X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=all;h=166f4caed867f2b0699f72ec44d2077c651a702a;hb=c35a408fbac529553aec828edcbc209a64d241fa;hp=207f645b3af5d4b795cb71ecde8706bedde98eb8;hpb=d5b2b8067a4b7aa59390a5a8e5528671a8010294;p=xonotic%2Fxonotic.git diff --git a/all b/all index 207f645b..166f4cae 100755 --- a/all +++ b/all @@ -268,8 +268,55 @@ cmd=$1 shift case "$cmd" in - release-*) + release|release-*) export LC_ALL=C + + release_args="$cmd $*" + msg "*** $release_args: start" + release_starttime=`date +%s` + release_end() + { + release_endtime=`date +%s` + release_deltatime=$(($release_endtime - $release_starttime)) + msg "*** $release_args: $release_deltatime seconds" + } + trap release_end EXIT + release_tempstarttime=$release_starttime + release_timereport() + { + release_endtime=`date +%s` # RELEASE NOW!!! + if [ -n "$*" ]; then + release_deltatime=$(($release_endtime - $release_tempstarttime)) + msg "**** $release_args: $*: $release_deltatime seconds" + fi + release_tempstarttime=$release_endtime + } + release_git_extract_dir() + { + release_src=$1; shift + release_dst=$1; shift + # try to create a hardlink + if ln -f "$release_src/.git/HEAD" "$release_dst/.hardlink-test"; then + rm -f "$release_dst/.hardlink-test" + { + verbose cd "$release_src" + git ls-files HEAD -- "$@" + } | { + while IFS= read -r F; do + case "$F" in */*) mkdir -p "$release_dst/${F%/*}" ;; esac + verbose ln -f "$release_src/$F" "$release_dst/$F" + done + } + else + { + verbose cd "$release_src" + verbose git archive --format=tar HEAD -- "$@" + } | { + verbose cd "$release_dst" + verbose tar xvf - + } + fi + } ;; esac @@ -358,21 +405,41 @@ fix_git_config() mkzipr() { archive=$1; shift + case "$RELEASETYPE" in + release) + sevenzipflags=-mx=9 + zipflags=-9 + ;; + *) + sevenzipflags=-mx=1 + zipflags=-1 + ;; + esac find "$@" -exec touch -d "2001-01-01 01:01:01 +0000" {} \+ # ugly hack to make the pk3 files rsync-friendly ziplist=`mktemp` find "$@" -xtype f \( -executable -or -type l \) -print > "$ziplist" - 7za a -tzip -mx=9 -x@"$ziplist" "$archive" "$@" || true - zip -9y -@<"$ziplist" "$archive" || true + 7za a -tzip $sevenzipflags -x@"$ziplist" "$archive" "$@" || true + zip $zipflags -y -@<"$ziplist" "$archive" || true rm -f "$ziplist" } mkzip() { archive=$1; shift + case "$RELEASETYPE" in + release) + sevenzipflags=-mx=9 + zipflags=-9 + ;; + *) + sevenzipflags=-mx=1 + zipflags=-1 + ;; + esac ziplist=`mktemp` find "$@" -xtype f \( -executable -or -type l \) -print > "$ziplist" - 7za a -tzip -mx=9 -x@"$ziplist" "$archive" "$@" || true - zip -9y -@<"$ziplist" "$archive" || true + 7za a -tzip $sevenzipflags -x@"$ziplist" "$archive" "$@" || true + zip $zipflags -y -@<"$ziplist" "$archive" || true rm -f "$ziplist" } @@ -704,10 +771,8 @@ case "$cmd" in else b=`repobranch "$d"` if git rev-parse "refs/heads/$b" >/dev/null 2>&1; then - exists=true verbose git checkout $checkoutflags "$b" elif git rev-parse "refs/remotes/$remote/$b" >/dev/null 2>&1; then - exists=true verbose git checkout $checkoutflags --track -b "$b" "$remote/$b" else $ECHO "WTF? Not even branch $b doesn't exist in $d" @@ -1539,46 +1604,26 @@ case "$cmd" in else verbose date +%Y%m%d > Xonotic/stamp.txt fi - verbose git archive --format=tar HEAD -- Docs misc server xonotic-linux-glx.sh xonotic-linux-sdl.sh misc/buildfiles key_0.d0pk | { + release_git_extract_dir "." "Xonotic" Docs misc server xonotic-linux-glx.sh xonotic-linux-sdl.sh misc/buildfiles key_0.d0pk COPYING GPL-2 GPL-3 + ( verbose cd Xonotic verbose mkdir data fteqcc source source/darkplaces source/fteqcc source/d0_blind_id mapping - verbose tar xvf - verbose rm -rf misc/builddeps - verbose mv misc/buildfiles/win32/* . || true + verbose mv misc/buildfiles/win32 bin32 || true + verbose mv bin32/SDL.dll . || true verbose mv misc/buildfiles/win64 bin64 || true verbose mv misc/buildfiles/osx/* . || true verbose rm -rf misc/buildfiles verbose rm -rf misc/pki - } - { - verbose cd darkplaces - verbose git archive --format=tar HEAD - } | { - verbose cd Xonotic/source/darkplaces - verbose tar xvf - - } - { - verbose cd fteqcc - verbose git archive --format=tar HEAD - } | { - verbose cd Xonotic/source/fteqcc - verbose tar xvf - - } - { - verbose cd data/xonotic-data.pk3dir - verbose git archive --format=tar HEAD -- qcsrc Makefile - } | { - verbose cd Xonotic/source - verbose tar xvf - - } - { - verbose cd d0_blind_id - verbose git archive --format=tar HEAD - } | { + ) + release_git_extract_dir "darkplaces" "Xonotic/source/darkplaces" . + release_git_extract_dir "fteqcc" "Xonotic/source/fteqcc" . + release_git_extract_dir "data/xonotic-data.pk3dir" "Xonotic/source" qcsrc Makefile + release_git_extract_dir "d0_blind_id" "Xonotic/source/d0_blind_id" . + ( verbose cd Xonotic/source/d0_blind_id - verbose tar xvf - verbose sh autogen.sh - } + ) rm -f Xonotic/key_15.d0pk { verbose cd Xonotic/mapping @@ -1619,7 +1664,7 @@ case "$cmd" in *) verbose rsync --delete -zLvaSHP "$srcdir"/ "$host:$buildpath/" verbose rsync --delete -zLvaSHP "$depsdir"/ "$host:$buildpath.deps/" - verbose ssh "$host" "export LC_ALL=C; ln -snf $buildpath.deps $buildpath/.deps && cd $buildpath && nice -`nice` make clean $maketargets $makeflags" + verbose ssh "$host" "[ -f /etc/profile ] && . /etc/profile; [ -f ~/.profile ] && . ~/.profile; export LC_ALL=C; ln -snf $buildpath.deps $buildpath/.deps && cd $buildpath && nice -`nice` make clean $maketargets $makeflags" for f in $targetfiles; do verbose rsync -zvaSHP "$host:$buildpath/${f%:*}" "${f##*:}" || true done @@ -1777,15 +1822,12 @@ case "$cmd" in dst="$PWD/$dst" ;; esac + release_timereport verbose rm -rf Xonotic/temp + release_timereport "deleted temp directory" verbose mkdir -p Xonotic/temp - { - verbose cd "$src" - verbose git archive --format=tar HEAD - } | { - verbose cd Xonotic/temp - verbose tar xvf - - } + release_git_extract_dir "$src" "Xonotic/temp" . + release_timereport "extracted data" verbose cd Xonotic/temp if [ x"$src" = x"data/xonotic-data.pk3dir" ]; then verbose cp ../source/progs.dat . @@ -1804,11 +1846,22 @@ case "$cmd" in versionstr="$versionstr$RELEASETYPE" ;; esac - verbose sed -i " - s/^set g_xonoticversion [^ ]* /set g_xonoticversion $versionstr /; - s/^gameversion_min [0-9]*/gameversion_min $(( ($gv / 100) * 100 - 100 ))/; - s/^gameversion_max [0-9]*/gameversion_max $(( ($gv / 100) * 100 + 199 ))/; - " defaultXonotic.cfg + if [ $gv -lt 900 ]; then + # pre-1.0: compatible with any other pre-1.0 + verbose sed " + s/^set g_xonoticversion [^ ]* /set g_xonoticversion $versionstr /; + s/^gameversion_min [0-9]*/gameversion_min 0/; + s/^gameversion_max [0-9]*/gameversion_max 9999/; + " < defaultXonotic.cfg > defaultXonotic.cfg.new + else + # >= 1.0 + verbose sed " + s/^set g_xonoticversion [^ ]* /set g_xonoticversion $versionstr /; + s/^gameversion_min [0-9]*/gameversion_min $(( ($gv / 100) * 100 - 100 ))/; + s/^gameversion_max [0-9]*/gameversion_max $(( ($gv / 100) * 100 + 199 ))/; + " < defaultXonotic.cfg > defaultXonotic.cfg.new + fi + mv defaultXonotic.cfg.new defaultXonotic.cfg case "$RELEASETYPE" in release) echo "" >> defaultXonotic.cfg @@ -1818,6 +1871,7 @@ case "$cmd" in esac ( verbose cd gfx/menu/luminos + verbose rm -f background_l2.tga background_ingame_l2.tga verbose cp "$d0"/mediasource/gfx/menu/luminos_versionbuilder/background_l2.svg . verbose "$d0"/mediasource/gfx/menu/luminos_versionbuilder/versionbuilder "$versionstr" verbose rm background_l2.svg @@ -1832,10 +1886,14 @@ case "$cmd" in done fi verbose export git_src_repo="$d0/$src" # skip hash-object + release_timereport "processed data" verbose "$SELF" release-buildpk3-transform-$transform "Xonotic/temp" + release_timereport "transformed data" verbose mkzipr "../../$dst" * + release_timereport "zipped data" verbose cd ../.. verbose rm -rf Xonotic/temp + release_timereport "deleted temp directory again" ;; release-buildpk3s) stamp=`cat Xonotic/stamp.txt` @@ -1882,17 +1940,19 @@ case "$cmd" in crypto_libs=`find Xonotic -name \*d0_rijndael\*.so -o -name \*d0_rijndael\*.dylib -o -name \*d0_rijndael\*.dll -o -name \*d0_rijndael\*.c` if [ -n "$crypto_libs" ]; then verbose mkzip Xonotic-$stamp-crypto.zip \ - $crypto_libs + $crypto_libs \ + Xonotic/COPYING Xonotic/GPL-2 Xonotic/GPL-3 rm -f $crypto_libs fi # build the archives verbose mkzip Xonotic-$stamp-engine.zip \ - Xonotic/*.dll \ + Xonotic/bin32/*.dll \ Xonotic/bin64/*.dll \ Xonotic/*.app \ Xonotic/xonotic-* \ Xonotic/xonotic.exe \ - Xonotic/source/darkplaces/ + Xonotic/source/darkplaces/ \ + Xonotic/COPYING Xonotic/GPL-2 Xonotic/GPL-3 verbose cp Xonotic-$stamp-engine.zip Xonotic-$stamp-common.zip verbose mkzip Xonotic-$stamp-common.zip \ Xonotic/source/fteqcc/ \