X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=all;h=9ecb1763a25b5ea8a32cf4780f009de6b4017c72;hb=5a04e840ef10e75853e57ec1ac6b6f375efb322c;hp=1b80d9453c0ed2be4ecdaa05b6bc25f1ae53ea64;hpb=1eac317c1f61e6849c6a3762166b73e421951657;p=xonotic%2Fxonotic.git diff --git a/all b/all index 1b80d945..9ecb1763 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" } @@ -912,7 +979,7 @@ case "$cmd" in TARGETS="sv-$debug sdl-$debug" ;; esac - export CC="$CC -fno-reorder-blocks -I$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks/SDL.framework/Headers -F$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks" + export CC="$CC -fno-reorder-blocks -I$PWD/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks/SDL.framework/Headers -F$PWD/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks" else TARGETS="sv-$debug cl-$debug sdl-$debug" fi @@ -1053,8 +1120,8 @@ case "$cmd" in client= export PATH="$d0/misc/buildfiles/win32:$d0/d0_blind_id/.libs:$PATH" elif [ x"`uname`" = x"Darwin" ]; then - export DYLD_LIBRARY_PATH="$d0/misc/buildfiles/osx/Xonotic-SDL.app/Contents/MacOS:$d0/d0_blind_id/.libs" - export DYLD_FRAMEWORK_PATH="$d0/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks" + export DYLD_LIBRARY_PATH="$d0/misc/buildfiles/osx/Xonotic.app/Contents/MacOS:$d0/d0_blind_id/.libs" + export DYLD_FRAMEWORK_PATH="$d0/misc/buildfiles/osx/Xonotic.app/Contents/Frameworks" client=-sdl else export LD_LIBRARY_PATH="$d0/d0_blind_id/.libs" @@ -1539,46 +1606,25 @@ 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 + ( 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 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 +1665,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 @@ -1649,44 +1695,40 @@ case "$cmd" in ;; release-engine-win32) verbose "$SELF" release-compile win32 \ - 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -march=i686 -g -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DUSE_WSPIAPI_H -DSUPPORTIPV6" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN32RELEASE=1 D3D=0' \ + 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -march=i686 -g1 -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DUSE_WSPIAPI_H -DSUPPORTIPV6" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN32RELEASE=1 D3D=0' \ win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \ '' '' verbose "$SELF" release-compile win32 \ - 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-g++ -g -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DUSE_WSPIAPI_H -DSUPPORTIPV6" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN32RELEASE=1 D3D=1' \ + 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-g++ -g1 -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DUSE_WSPIAPI_H -DSUPPORTIPV6" WINDRES="i586-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN32RELEASE=1 D3D=1' \ '' '' \ release 'darkplaces.exe:Xonotic/xonotic.exe darkplaces-sdl.exe:Xonotic/xonotic-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated.exe' ;; release-engine-win64) verbose "$SELF" release-compile win64 \ - 'STRIP=: DP_MAKE_TARGET=mingw CC="amd64-mingw32msvc-gcc -g -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DSUPPORTIPV6" WINDRES="amd64-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=0' \ + 'STRIP=: DP_MAKE_TARGET=mingw CC="amd64-mingw32msvc-gcc -g1 -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DSUPPORTIPV6" WINDRES="amd64-mingw32msvc-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=0' \ win 'fteqcc.exe:Xonotic/fteqcc/fteqcc-x64.exe' \ 'sv-release sdl-release' 'darkplaces-sdl.exe:Xonotic/xonotic-x64-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-x64-dedicated.exe' verbose "$SELF" release-compile win64 \ - 'STRIP=: DP_MAKE_TARGET=mingw CC="x86_64-w64-mingw32-g++ -g -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DSUPPORTIPV6" WINDRES="x86_64-w64-mingw32-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=1' \ + 'STRIP=: DP_MAKE_TARGET=mingw CC="x86_64-w64-mingw32-g++ -g1 -Wl,--dynamicbase -Wl,--nxcompat -I.deps/include -L.deps/lib -DSUPPORTIPV6" WINDRES="x86_64-w64-mingw32-windres" SDL_CONFIG=".deps/bin/sdl-config" LIB_JPEG= CFLAGS_LIBJPEG= WIN64RELEASE=1 D3D=1' \ '' '' \ cl-release 'darkplaces.exe:Xonotic/xonotic-x64.exe' ;; release-engine-osx) # gcc on OSX is buggy, needs -fno-reorder-blocks for a release build to succeed verbose "$SELF" release-compile osx \ - 'STRIP=: CC="gcc -g -arch i386 -arch ppc -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -I.deps/include -L.deps/lib -fno-reorder-blocks -DSUPPORTIPV6"' \ + 'STRIP=: CC="gcc -g1 -arch i386 -arch ppc -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -I.deps/include -L.deps/lib -fno-reorder-blocks -DSUPPORTIPV6"' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.osx' \ - 'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic-SDL.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated' - verbose "$SELF" release-compile osx \ - 'STRIP=: CC="gcc -g -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -I.deps/include -L.deps/lib -fno-reorder-blocks -DSUPPORTIPV6"' \ - '' '' \ - 'cl-release' 'darkplaces-agl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-agl-bin' + 'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated' ;; release-engine-linux32) verbose "$SELF" release-compile linux32 \ - 'STRIP=: CC="gcc -m32 -march=i686 -g -I.deps/include -L.deps/lib -DSUPPORTIPV6" DP_MODPLUG_STATIC_LIBDIR=.deps/lib LIB_JPEG=.deps/lib/libjpeg.a DP_CRYPTO_STATIC_LIBDIR=.deps/lib' \ + 'STRIP=: CC="gcc -m32 -march=i686 -g1 -I.deps/include -L.deps/lib -DSUPPORTIPV6" DP_MODPLUG_STATIC_LIBDIR=.deps/lib LIB_JPEG=.deps/lib/libjpeg.a DP_CRYPTO_STATIC_LIBDIR=.deps/lib' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux32' \ release 'darkplaces-glx:Xonotic/xonotic-linux32-glx darkplaces-sdl:Xonotic/xonotic-linux32-sdl darkplaces-dedicated:Xonotic/xonotic-linux32-dedicated' ;; release-engine-linux64) verbose "$SELF" release-compile linux64 \ - 'STRIP=: CC="gcc -m64 -g -I.deps/include -L.deps/lib -DSUPPORTIPV6" DP_MODPLUG_STATIC_LIBDIR=.deps/lib LIB_JPEG=.deps/lib/libjpeg.a DP_CRYPTO_STATIC_LIBDIR=.deps/lib' \ + 'STRIP=: CC="gcc -m64 -g1 -I.deps/include -L.deps/lib -DSUPPORTIPV6" DP_MODPLUG_STATIC_LIBDIR=.deps/lib LIB_JPEG=.deps/lib/libjpeg.a DP_CRYPTO_STATIC_LIBDIR=.deps/lib' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux64' \ release 'darkplaces-glx:Xonotic/xonotic-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux64-dedicated' ;; @@ -1781,15 +1823,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 . @@ -1808,11 +1847,12 @@ case "$cmd" in versionstr="$versionstr$RELEASETYPE" ;; esac - verbose sed -i " + 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 > defaultXonotic.cfg.new + mv defaultXonotic.cfg.new defaultXonotic.cfg case "$RELEASETYPE" in release) echo "" >> defaultXonotic.cfg @@ -1822,6 +1862,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 @@ -1836,10 +1877,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`