X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=misc%2Ftools%2Fall%2Frelease.subr;h=e312f0876e246169a5185f1fc9c001ea030d5697;hb=a71d4950477e8abe3b0fc9e9d3767f72210d1bfe;hp=df50cfe9de4e1dea195f2c520b31f40e7963ddac;hpb=32db1a9a33a137171f5ab6dbd477e6a8a37c1db4;p=xonotic%2Fxonotic.git diff --git a/misc/tools/all/release.subr b/misc/tools/all/release.subr index df50cfe9..e312f087 100644 --- a/misc/tools/all/release.subr +++ b/misc/tools/all/release.subr @@ -52,49 +52,40 @@ release_common() mkzipr() { archive=$1; shift - case "$RELEASETYPE" in - release) - sevenzipflags=-mx=9 - zipflags=-9 - ;; - *) - sevenzipflags=-mx=1 - zipflags=-1 - ;; - esac + + # get rid of this hack once we have done large enough changes + # to be no longer rsync compatible (and then enable the below + # code) + sevenzipflags=-mx=9 + zipflags=-9 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" + find "$@" -xtype f \( -executable -or -type l \) -print | sed 's,\([./][^./]*$\),\1 \1,' | sort -k2 | cut -d\ -f1 > "$ziplist" 7za a -tzip $sevenzipflags -x@"$ziplist" "$archive" "$@" || true zip $zipflags -y -@<"$ziplist" "$archive" || true rm -f "$ziplist" + + #zipflags=-1r + #find "$@" -exec touch -d "2001-01-01 01:01:01 +0000" {} \+ # ugly hack to make the pk3 files rsync-friendly + #zip $zipflags -y "$archive" "$@" || true + #advzip -4 "$archive" } 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 $sevenzipflags -x@"$ziplist" "$archive" "$@" || true - zip $zipflags -y -@<"$ziplist" "$archive" || true - rm -f "$ziplist" + zipflags=-1ry + zip $zipflags "$archive" "$@" || true + advzip -z -4 "$archive" } mkzip0() { archive=$1; shift - zip -0ry "$archive" "$@" + zipflags=-0ry + zip $zipflags "$archive" "$@" || true } + getversion() { gv=`grep "^gameversion " "$1/defaultXonotic.cfg" | awk '{ print $2 }'` @@ -143,7 +134,7 @@ case "$cmd" in # - xonotic-build-linux64 (with gcc on x86_64) # - xonotic-build-win32 (with i586-mingw32msvc-g++) # - xonotic-build-win64 (with amd64-mingw32msvc-g++ - # and x86_64-w64-mingw32-g++) + # and amd64-mingw32msvc-g++) # - xonotic-build-osx (with Xcode and SDL.framework) # - AMD Compressonator installed in WINE # - ResEdit installed in WINE @@ -167,13 +158,22 @@ case "$cmd" in verbose mkdir -p Xonotic if [ -n "$RELEASEDATE" ]; then verbose $ECHO "$RELEASEDATE" > Xonotic/stamp.txt + case "$RELEASETYPE" in + release) + verbose $ECHO "${RELEASEDATE%_*}" > Xonotic/pk3stamp.txt + ;; + *) + verbose $ECHO "$RELEASEDATE" > Xonotic/pk3stamp.txt + ;; + esac else verbose date +%Y%m%d > Xonotic/stamp.txt + verbose date +%Y%m%d > Xonotic/pk3stamp.txt fi - 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 + release_git_extract_dir "." "Xonotic" Docs misc server xonotic-linux-glx.sh xonotic-linux-sdl.sh xonotic-linux-dedicated.sh Makefile 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 mkdir data gmqcc source source/darkplaces source/gmqcc source/d0_blind_id mapping verbose rm -rf misc/builddeps verbose mv misc/buildfiles/win32 bin32 || true verbose mv bin32/SDL.dll . || true @@ -183,7 +183,7 @@ case "$cmd" in verbose rm -rf misc/pki ) release_git_extract_dir "darkplaces" "Xonotic/source/darkplaces" . - release_git_extract_dir "fteqcc" "Xonotic/source/fteqcc" . + release_git_extract_dir "gmqcc" "Xonotic/source/gmqcc" . release_git_extract_dir "data/xonotic-data.pk3dir" "Xonotic/source" qcsrc Makefile release_git_extract_dir "d0_blind_id" "Xonotic/source/d0_blind_id" . ( @@ -191,7 +191,7 @@ case "$cmd" in verbose sh autogen.sh ) rm -f Xonotic/key_15.d0pk - { + ( verbose cd Xonotic/mapping verbose wget http://www.icculus.org/netradiant/files/netradiant-1.5.0-20120301.tar.bz2 verbose wget http://www.icculus.org/netradiant/files/netradiant-1.5.0-20120301-win32-7z.exe @@ -200,7 +200,8 @@ case "$cmd" in rm -f "$X" done # TODO possibly include other tools? - } + ) + ./all each git rev-parse HEAD > Xonotic/misc/git-revisions.txt ;; release-compile-run) release_common @@ -252,56 +253,48 @@ case "$cmd" in release_common suffix=$1 makeflags=$2 - fteqcc_maketargets=$3 - fteqcc_files=$4 + gmqcc_maketargets=$3 + gmqcc_files=$4 darkplaces_maketargets=$5 darkplaces_files=$6 host=xonotic-build-$suffix - verbose "$SELF" release-compile-run "$host" /tmp/fteqcc.build."$suffix" "$fteqcc_maketargets" "$makeflags" "Xonotic/source/fteqcc" "$d0/misc/builddeps/dp.$suffix" "$fteqcc_files" + verbose "$SELF" release-compile-run "$host" /tmp/gmqcc.build."$suffix" "$gmqcc_maketargets" "$makeflags" "Xonotic/source/gmqcc" "$d0/misc/builddeps/dp.$suffix" "$gmqcc_files" verbose "$SELF" release-compile-run "$host" /tmp/Darkplaces.build."$suffix" "$darkplaces_maketargets" "$makeflags" "Xonotic/source/darkplaces" "$d0/misc/builddeps/dp.$suffix" "$darkplaces_files" ;; release-engine-win32) release_common verbose "$SELF" release-compile win32 \ - '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++ -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' \ - '' '' \ + 'STRIP=: DP_MAKE_TARGET=mingw UNAME=MINGW32 CC="i586-mingw32msvc-gcc -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' \ + gmqcc.exe 'gmqcc.exe:Xonotic/gmqcc/gmqcc.exe' \ release 'darkplaces.exe:Xonotic/xonotic.exe darkplaces-sdl.exe:Xonotic/xonotic-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated.exe' ;; release-engine-win64) release_common verbose "$SELF" release-compile win64 \ - '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++ -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' + 'STRIP=: DP_MAKE_TARGET=mingw UNAME=MINGW32 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=1' \ + gmqcc.exe 'gmqcc.exe:Xonotic/gmqcc/gmqcc-x64.exe' \ + release 'darkplaces.exe:Xonotic/xonotic-x64.exe darkplaces-sdl.exe:Xonotic/xonotic-x64-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-x64-dedicated.exe' ;; release-engine-osx) release_common # gcc on OSX is buggy, needs -fno-reorder-blocks for a release build to succeed verbose "$SELF" release-compile osx \ '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' \ + gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc.osx' \ 'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated' ;; release-engine-linux32) release_common verbose "$SELF" release-compile linux32 \ - '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' \ + '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 DP_GMP_STATIC_LIBDIR=.deps/lib' \ + gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc.linux32' \ release 'darkplaces-glx:Xonotic/xonotic-linux32-glx darkplaces-sdl:Xonotic/xonotic-linux32-sdl darkplaces-dedicated:Xonotic/xonotic-linux32-dedicated' ;; release-engine-linux64) release_common verbose "$SELF" release-compile linux64 \ - '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' \ + '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 DP_GMP_STATIC_LIBDIR=.deps/lib' \ + gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc.linux64' \ release 'darkplaces-glx:Xonotic/xonotic-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux64-dedicated' ;; release-engine) @@ -324,8 +317,7 @@ case "$cmd" in ;; release-qc) release_common - verbose env GIT_DIR="$d0/data/xonotic-data.pk3dir/.git" make -C Xonotic/source FTEQCC="$d0/Xonotic/fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 clean all - verbose rm -f Xonotic/source/qcsrc/*/fteqcc.log + verbose env GIT_DIR="$d0/data/xonotic-data.pk3dir/.git" make -C Xonotic/source QCC="$d0/Xonotic/gmqcc/gmqcc.linux64" XON_BUILDSYSTEM=1 clean all ;; release-buildpk3-transform-raw) release_common @@ -377,6 +369,19 @@ case "$cmd" in verbose export del_src=true find . -type f -print0 | verbose xargs -0 "$d0"/misc/tools/cached-converter.sh ;; + release-buildpk3-transform-webp) + release_common + dir=$1 + verbose cd "$dir" + # texture: convert to jpeg and dds + verbose export do_jpeg=false + verbose export do_webp=true + verbose export do_dds=false + verbose export do_ogg=false + verbose export ogg_ogg=false + verbose export del_src=true + find . -type f -print0 | verbose xargs -0 "$d0"/misc/tools/cached-converter.sh + ;; release-buildpk3-transform-lowdds) release_common dir=$1 @@ -503,16 +508,16 @@ case "$cmd" in ;; release-buildpk3s) release_common - stamp=`cat Xonotic/stamp.txt` + pk3stamp=`cat Xonotic/pk3stamp.txt` src=$1 shift dst=${src%.pk3dir} case "$dst" in data/xonotic-*) - dst="data/xonotic-$stamp-${dst#data/xonotic-}" + dst="data/xonotic-$pk3stamp-${dst#data/xonotic-}" ;; *) - dst="$dst-$stamp" + dst="$dst-$pk3stamp" ;; esac while [ "$#" -gt 1 ]; do @@ -523,12 +528,12 @@ case "$cmd" in ;; release-pack) release_common - verbose "$SELF" release-buildpk3s data/font-nimbussansl.pk3dir raw '' - verbose "$SELF" release-buildpk3s data/font-xolonium.pk3dir raw '' - verbose "$SELF" release-buildpk3s data/xonotic-data.pk3dir normal '-high' low '-low' normaldds '' - verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir normal '-high' low '-low' normaldds '' mapping '-mapping' - verbose "$SELF" release-buildpk3s data/xonotic-music.pk3dir raw '' low '-low' - verbose "$SELF" release-buildpk3s data/xonotic-nexcompat.pk3dir normal '-high' normaldds '' + verbose "$SELF" release-buildpk3s data/font-nimbussansl.pk3dir raw '' + verbose "$SELF" release-buildpk3s data/font-xolonium.pk3dir raw '' + verbose "$SELF" release-buildpk3s data/xonotic-data.pk3dir low '-low' normaldds '' webp '-high' + verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir low '-low' normaldds '' mapping '-mapping' webp '-high' + verbose "$SELF" release-buildpk3s data/xonotic-music.pk3dir raw '' low '-low' + verbose "$SELF" release-buildpk3s data/xonotic-nexcompat.pk3dir normaldds '' ;; release-pack-needsx11) release_common @@ -544,6 +549,7 @@ case "$cmd" in release-zip) release_common stamp=`cat Xonotic/stamp.txt` + pk3stamp=`cat Xonotic/pk3stamp.txt` # exe and dll files do not need +x, so this makes them eligible for 7zip compression too chmod a-x Xonotic/*.exe Xonotic/*.dll || true # let's pass crypto import laws of some nasty countries @@ -556,6 +562,7 @@ case "$cmd" in fi # build the archives verbose mkzip Xonotic-$stamp-enginesource.zip \ + Xonotic/Makefile \ Xonotic/source/darkplaces/ \ Xonotic/COPYING Xonotic/GPL-2 Xonotic/GPL-3 verbose cp Xonotic-$stamp-enginesource.zip Xonotic-$stamp-engine.zip @@ -569,44 +576,44 @@ case "$cmd" in verbose cp Xonotic-$stamp-engine.zip Xonotic-$stamp-common.zip verbose mkzip Xonotic-$stamp-common.zip \ Xonotic/source/d0_blind_id/ \ - Xonotic/source/fteqcc/ \ + Xonotic/source/gmqcc/ \ Xonotic/source/qcsrc/ \ Xonotic/Docs \ Xonotic/misc \ - Xonotic/fteqcc \ + Xonotic/gmqcc \ Xonotic/server \ Xonotic/key_0.d0pk \ - Xonotic/data/font-nimbussansl-$stamp.pk3 \ - Xonotic/data/font-xolonium-$stamp.pk3 + Xonotic/data/font-nimbussansl-$pk3stamp.pk3 \ + Xonotic/data/font-xolonium-$pk3stamp.pk3 verbose cp Xonotic-$stamp-enginesource.zip Xonotic-$stamp-source.zip verbose mkzip Xonotic-$stamp-source.zip \ Xonotic/source/d0_blind_id/ \ - Xonotic/source/fteqcc/ \ + Xonotic/source/gmqcc/ \ Xonotic/source/qcsrc/ \ Xonotic/misc/logos verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp.zip verbose mkzip0 Xonotic-$stamp.zip \ - Xonotic/data/xonotic-$stamp-data.pk3 \ - Xonotic/data/xonotic-$stamp-maps.pk3 \ - Xonotic/data/xonotic-$stamp-music.pk3 \ - Xonotic/data/xonotic-$stamp-nexcompat.pk3 + Xonotic/data/xonotic-$pk3stamp-data.pk3 \ + Xonotic/data/xonotic-$pk3stamp-maps.pk3 \ + Xonotic/data/xonotic-$pk3stamp-music.pk3 \ + Xonotic/data/xonotic-$pk3stamp-nexcompat.pk3 verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp-low.zip verbose mkzip0 Xonotic-$stamp-low.zip \ - Xonotic/data/xonotic-$stamp-data-low.pk3 \ - Xonotic/data/xonotic-$stamp-maps-low.pk3 \ - Xonotic/data/xonotic-$stamp-music-low.pk3 + Xonotic/data/xonotic-$pk3stamp-data-low.pk3 \ + Xonotic/data/xonotic-$pk3stamp-maps-low.pk3 \ + Xonotic/data/xonotic-$pk3stamp-music-low.pk3 verbose mv Xonotic-$stamp-common.zip Xonotic-$stamp-high.zip - verbose mkzip Xonotic-$stamp-high.zip \ - Xonotic/mapping verbose mkzip0 Xonotic-$stamp-high.zip \ - Xonotic/data/xonotic-$stamp-data-high.pk3 \ - Xonotic/data/xonotic-$stamp-maps-high.pk3 \ - Xonotic/data/xonotic-$stamp-music.pk3 \ - Xonotic/data/xonotic-$stamp-nexcompat-high.pk3 + Xonotic/data/xonotic-$pk3stamp-data-high.pk3 \ + Xonotic/data/xonotic-$pk3stamp-maps-high.pk3 \ + Xonotic/data/xonotic-$pk3stamp-music.pk3 verbose mkzip Xonotic-$stamp-mappingsupport.zip \ Xonotic/mapping verbose mkzip0 Xonotic-$stamp-mappingsupport.zip \ - Xonotic/data/xonotic-$stamp-maps-mapping.pk3 + Xonotic/data/xonotic-$pk3stamp-maps-mapping.pk3 + verbose mkzip gmqcc-$stamp.zip \ + Xonotic/gmqcc \ + Xonotic/source/gmqcc ;; release) release_common