Added: makedist-newrelease,autobuild cron and sysconfig file
This commit is contained in:
84
bin/makedist-newrelease
Executable file
84
bin/makedist-newrelease
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
echo "makedist media release script"
|
||||
echo "Copyright (c) 2008-2012 by Silvan Calarco <silvan.calarco@mambasoft.it>"
|
||||
echo
|
||||
|
||||
function usage()
|
||||
{
|
||||
echo "Usage:"
|
||||
echo "makedist-newrelease release [distversion] [-f] [--only platform[/subplatform]]"
|
||||
echo
|
||||
echo "-f: force full rebuild"
|
||||
echo "--only: only build the specified platform and subplatform"
|
||||
echo "-h: show this help and exit"
|
||||
echo
|
||||
echo "Example:"
|
||||
echo "makedist-newrelease 2.0.10 milestone2 --only livecd/livecd-root"
|
||||
echo
|
||||
}
|
||||
|
||||
[ "$1" ] || {
|
||||
echo "Error: release must be specified; aborting"
|
||||
usage
|
||||
exit 1
|
||||
}
|
||||
|
||||
while [ "$1" ]; do
|
||||
case $1 in
|
||||
-f) FORCE_ADD="FORCE=1" ;;
|
||||
--only) ONLY_PLATFORM=$2
|
||||
[ "$ONLY_PLATFORM" ] || {
|
||||
echo "Error: platform must be specified after --only; aborting."
|
||||
}
|
||||
shift ;;
|
||||
-h) usage; exit 0 ;;
|
||||
-*) echo "Error: uknown option $1; aborting."
|
||||
exit 1
|
||||
;;
|
||||
*) if [ ! "$RELEASE" ]; then
|
||||
RELEASE=$1
|
||||
elif [ ! "$DISTVERSION" ]; then
|
||||
DISTVERSION=$2
|
||||
else
|
||||
echo "Error: exceeding option $1; aborting."
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ "$RELEASE" ] || { usage; exit 1; }
|
||||
[ "$2" ] || DISTVERSION="milestone2"
|
||||
|
||||
. /etc/sysconfig/makedist
|
||||
|
||||
echo "Releasing media for openmamba $DISTVERSION $RELEASE"
|
||||
|
||||
ALLMEDIALAST=`expr ${#MEDIA_NAME[*]} - 1`
|
||||
for i in `seq 0 $ALLMEDIALAST`; do
|
||||
PLATFORM=${MEDIA_PLATFORM[i]/\/*/}
|
||||
SUBPLATFORM=${MEDIA_SUBPLATFORM[i]/*\//}
|
||||
[ "$SUBPLATFORM" = "$PLATFORM" ] && SUBPLATFORM=
|
||||
[ "${ONLY_PLATFORM/\//}" = "${ONLY_PLATFORM}" ] && ONLY_PLATFORM="$ONLY_PLATFORM/"
|
||||
[ ! "$ONLY_PLATFORM" -o "$ONLY_PLATFORM" = "$PLATFORM/$SUBPLATFORM" ] || continue
|
||||
for lang in ${MEDIA_LANGUAGES[i]}; do
|
||||
for arch in ${MEDIA_ARCHS[i]}; do
|
||||
sudo makedist openmamba-$DISTVERSION PLATFORM=$PLATFORM SUBPLATFORM=$SUBPLATFORM LANGUAGE=$lang RELEASE=$DISTVERSION ARCH=$arch $FORCE_ADD || {
|
||||
echo "Error: fatal error running 'makedist openmamba-$DISTVERSION PLATFORM=$PLATFORM SUBPLATFORM=$SUBPLATFORM LANGUAGE=$lang RELEASE=$DISTVERSION ARCH=$arch $FORCE_ADD'; aborting."
|
||||
exit 1
|
||||
}
|
||||
done
|
||||
done
|
||||
FORCE_OVERWRITE=1 \
|
||||
RELEASE=$RELEASE \
|
||||
RELEASEPLATFORM=$PLATFORM \
|
||||
RELEASESUBPLATFORM=$SUBPLATFORM \
|
||||
DISTVERSION=$DISTVERSION /etc/cron.daily/20-openmamba-autobuild-makedist
|
||||
done
|
||||
|
||||
# Workaround: updates home page HTML which always show previous version after first run
|
||||
RELEASE=$RELEASE \
|
||||
DISTVERSION=$DISTVERSION \
|
||||
/etc/cron.daily/20-openmamba-autobuild-makedist
|
||||
exit 0
|
||||
130
bin/makedist-recordvm
Executable file
130
bin/makedist-recordvm
Executable file
@@ -0,0 +1,130 @@
|
||||
#!/bin/bash
|
||||
RECORDVM_DATA=/var/makedist/recordvm
|
||||
#VBOX=1
|
||||
VBOX_VMNAME="openmamba-recordvm"
|
||||
VBOX_DISPLAY=:1
|
||||
EXECUTION_TIME=200
|
||||
VIDEO_EXT=.flv
|
||||
VIDEO_EXT2=.ogv
|
||||
|
||||
[ $1 ] || {
|
||||
echo "Usage:"
|
||||
echo "recordvm.sh iso_path"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
ISO_PATH=$1
|
||||
ISO_DIR=`dirname $ISO_PATH`
|
||||
ISO_NAME=`basename $ISO_PATH`
|
||||
|
||||
[ -e $ISO_PATH ] || {
|
||||
echo "Error: file $ISO_PATH does not exist; aborting."
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo "Preparing ISO image $ISO_PATH"
|
||||
ln -sf $ISO_PATH $RECORDVM_DATA/recordvm.iso
|
||||
echo "Starting virtual machine for $ISO_PATH"
|
||||
export HOME=$RECORDVM_DATA
|
||||
xinit -- $VBOX_DISPLAY &
|
||||
|
||||
if [ "$VBOX" ]; then
|
||||
# -nocursor &
|
||||
# &>$RECORDVM_DATA/recordvm.log &
|
||||
#VBOX_USER_HOME=$RECORDVM_DATA/VirtualBox DISPLAY=:0 /opt/VirtualBox/VBoxSDL --startvm $VBOX_VMNAME --fixedmode 1024 768 32 >/dev/null &
|
||||
trap "VBoxManage controlvm $VBOX_VMNAME poweroff" INT QUIT TSTP
|
||||
|
||||
sleepcnt=0
|
||||
while true; do
|
||||
if [ "`VBoxManage list runningvms | grep $VBOX_VMNAME`" ]; then
|
||||
break
|
||||
fi
|
||||
# xwininfo -display $VBOX_DISPLAY -name "$VBOX_VMNAME - Oracle VM VirtualBox" 2>/dev/null |grep "Window id:"| sed "s|.*Window id: \([0-9a-fx]*\).*|\1|"
|
||||
# [ "$WINID" ] && break
|
||||
sleep 1
|
||||
if [ $sleepcnt -gt 20 ]; then
|
||||
echo "VirtualBox did not start; aborting."
|
||||
exit 1
|
||||
fi
|
||||
let sleepcnt=sleepcnt+1
|
||||
done
|
||||
WINID=`xwininfo -display $VBOX_DISPLAY -name "$VBOX_VMNAME - Oracle VM VirtualBox" 2>/dev/null |grep "Window id:"| sed "s|.*Window id: \([0-9a-fx]*\).*|\1|"`
|
||||
VBoxManage controlvm $VBOX_VMNAME reset
|
||||
else
|
||||
sleepcnt=0
|
||||
while true; do
|
||||
WINID=`xwininfo -display $VBOX_DISPLAY -name "QEMU (qemu-recordvm)" 2>/dev/null |grep "Window id:"| sed "s|.*Window id: \([0-9a-fx]*\).*|\1|"`
|
||||
[ "$WINID" ] && break
|
||||
if [ $sleepcnt -gt 20 ]; then
|
||||
echo "qemu did not start; aborting."
|
||||
exit 1
|
||||
fi
|
||||
let sleepcnt=sleepcnt+1
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
|
||||
echo "Windowid is: $WINID"
|
||||
|
||||
echo "Capturing window output"
|
||||
mkdir -p $ISO_DIR/preview/
|
||||
DBUS_SESSION_BUS_ADDRESS= HOME=$RECORDVM_DATA DISPLAY=$VBOX_DISPLAY xvidcap \
|
||||
--cap_geometry 1024x768+0+0 \
|
||||
--verbose 2 --gui no --audio no \
|
||||
--time $EXECUTION_TIME --file $ISO_DIR/preview/${ISO_NAME}${VIDEO_EXT} \
|
||||
--quality 100 >>$RECORDVM_DATA/recordvm.log
|
||||
#recordmydesktop --no-frame --display $VBOX_DISPLAY --windowid $WINID -o $ISO_DIR/preview/$ISO_NAME.ogv --overwrite --no-sound --no-wm-check --fps 10 --no-cursor &
|
||||
#echo "Sleeping $EXECUTION_TIME seconds..."
|
||||
#sleep $EXECUTION_TIME
|
||||
|
||||
#killall -TERM recordmydesktop
|
||||
|
||||
#echo "Waiting for recordmydesktop to exit"
|
||||
#while [ "`pidof recordmydesktop`" ]; do
|
||||
# sleep 1
|
||||
#done
|
||||
|
||||
echo "Powering off VM"
|
||||
if [ "$VBOX" ]; then
|
||||
VBoxManage controlvm $VBOX_VMNAME poweroff &
|
||||
|
||||
count=0
|
||||
while [ "`pidof VBoxManage`" ]; do
|
||||
let count=count+1
|
||||
sleep 1
|
||||
if [ $count -gt 60 ]; then
|
||||
killall -9 VBoxManage
|
||||
break
|
||||
fi
|
||||
done
|
||||
else
|
||||
xkill -id $WINID -display $VBOX_DISPLAY
|
||||
fi
|
||||
|
||||
echo "Creating preview images"
|
||||
rm -f $ISO_DIR/preview/*.jpg
|
||||
ffmpeg -y -i $ISO_DIR/preview/$ISO_NAME${VIDEO_EXT} -r 1 -f image2 $ISO_DIR/preview/image-%03d.jpg >/dev/null
|
||||
for i in `seq 200 -1 1`; do
|
||||
f=`printf %03d $i`
|
||||
[ -e $ISO_DIR/preview/image-$f.jpg ] && {
|
||||
convert -size 320x200 $ISO_DIR/preview/image-$f.jpg $ISO_DIR/preview/preview.jpg
|
||||
convert -size 400x300 $ISO_DIR/preview/image-$f.jpg $ISO_DIR/preview/preview-400x300.jpg
|
||||
break
|
||||
}
|
||||
done
|
||||
|
||||
echo "Creating ${VIDEO_EXT2} video from ${VIDEO_EXT}"
|
||||
#ffmpeg -y -i $ISO_DIR/preview/$ISO_NAME${VIDEO_EXT} $ISO_DIR/preview/$ISO_NAME${VIDEO_EXT2} >/dev/null
|
||||
ffmpeg2theora -y -i $ISO_DIR/preview/$ISO_NAME${VIDEO_EXT} $ISO_DIR/preview/$ISO_NAME${VIDEO_EXT2} >/dev/null
|
||||
|
||||
#cleanup old files
|
||||
for f in `ls $ISO_DIR/preview/*${VIDEO_EXT}`; do
|
||||
[ "$f" = "$ISO_DIR/preview/$ISO_NAME${VIDEO_EXT}" ] || rm -f $f
|
||||
done
|
||||
for f in `ls $ISO_DIR/preview/*${VIDEO_EXT2}`; do
|
||||
[ "$f" = "$ISO_DIR/preview/$ISO_NAME${VIDEO_EXT2}" ] || rm -f $f
|
||||
done
|
||||
|
||||
echo "Done."
|
||||
exit 0
|
||||
Reference in New Issue
Block a user