X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=misc%2Ftools%2Fall%2Frelease.subr;h=c367ae7658fb54ee235dd7dc9ddf23dbf85f02d7;hb=c933ff1be68e2f32a080ef47344b9327e0abf5cc;hp=df50cfe9de4e1dea195f2c520b31f40e7963ddac;hpb=6feed6f3196d42a3d649e1a6012c15a7c98f911a;p=xonotic%2Fxonotic.git diff --git a/misc/tools/all/release.subr b/misc/tools/all/release.subr index df50cfe9..c367ae76 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 }'` @@ -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 fteqcc source source/darkplaces source/fteqcc 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 @@ -184,6 +184,7 @@ case "$cmd" in ) 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" . ( @@ -254,53 +255,53 @@ case "$cmd" in makeflags=$2 fteqcc_maketargets=$3 fteqcc_files=$4 - darkplaces_maketargets=$5 - darkplaces_files=$6 + gmqcc_maketargets=$5 + gmqcc_files=$6 + darkplaces_maketargets=$7 + darkplaces_files=$8 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' \ + 'STRIP=: DP_MAKE_TARGET=mingw 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 'gmqcc:Xonotic/gmqcc/gmqcc.exe' \ 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' \ - '' '' \ 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 CC="x86_64-w64-mingw32-gcc -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' \ + gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc-x64.exe' \ + win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.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"' \ + gmqcc 'gmqcc:Xonotic/gmqcc/gmqcc.osx' \ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.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' \ + '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' \ 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) 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' \ + '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' \ 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' ;; @@ -324,7 +325,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 env GIT_DIR="$d0/data/xonotic-data.pk3dir/.git" make -C Xonotic/source QCC="$d0/Xonotic/fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 clean all verbose rm -f Xonotic/source/qcsrc/*/fteqcc.log ;; release-buildpk3-transform-raw) @@ -503,16 +504,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 +524,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 '' + verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir low '-low' normaldds '' mapping '-mapping' + 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 +545,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 +558,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 @@ -570,43 +573,38 @@ case "$cmd" in 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 - verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp-low.zip + 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 mv 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 - 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-low.pk3 \ + Xonotic/data/xonotic-$pk3stamp-maps-low.pk3 \ + Xonotic/data/xonotic-$pk3stamp-music-low.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 ;; release) release_common