X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=misc%2Ftools%2Fall%2Frelease.subr;h=0b02b11f92bff049cc3980cd135ae4371af58af2;hp=e97bddb2595e270435d9dad2b9ae864b4f8f5dd8;hb=b35b443c4cbd0030784422e38e76c146059e33aa;hpb=fd313797e4b3fb8ced8f13ad4a42413b7e47e803 diff --git a/misc/tools/all/release.subr b/misc/tools/all/release.subr index e97bddb2..0b02b11f 100644 --- a/misc/tools/all/release.subr +++ b/misc/tools/all/release.subr @@ -134,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 @@ -173,7 +173,7 @@ case "$cmd" in 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,123 +200,63 @@ case "$cmd" in rm -f "$X" done # TODO possibly include other tools? - } - ;; - release-compile-run) - release_common - host=$1 - buildpath=$2 - maketargets=$3 - makeflags=$4 - srcdir=$5 - depsdir=$6 - targetfiles=$7 - set -x - if [ -n "$targetfiles" ]; then - case " $HOSTS_THAT_ARE_DISABLED " in - *\ $host\ *) - exit - ;; - esac - case " $HOSTS_THAT_ARE_MYSELF " in - *\ $host\ *) - verbose rsync --delete -zLvaSHP "$srcdir"/ "$buildpath/" - verbose rsync --delete -zLvaSHP "$depsdir"/ "$buildpath.deps/" - verbose ln -snf "$buildpath.deps" "$buildpath/.deps" - verbose eval make -C "$buildpath" clean $maketargets $makeflags - for f in $targetfiles; do - verbose mv "$buildpath/${f%:*}" "${f##*:}" || true - done - ;; - *) - verbose rsync --delete -zLvaSHP "$srcdir"/ "$host:$buildpath/" - verbose rsync --delete -zLvaSHP "$depsdir"/ "$host:$buildpath.deps/" - 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 - ;; - esac - # now rebrand the binaries... - for f in $targetfiles; do - #verbose "$d0/misc/tools/rebrand-darkplaces-engine.sh" "${XONOTIC_BRAND:-$d0/misc/tools/xonotic.brand}" "${f##*:}" || true - case "${f##*:}" in - Xonotic/xonotic*.exe) - verbose "$d0/misc/tools/change-icon-of-exe.sh" "$d0/misc/logos/icons_ico/xonotic.ico" "${f##*:}" - ;; - esac - done - fi + ) + ./all each git rev-parse HEAD > Xonotic/misc/git-revisions.txt ;; - release-compile) + release-getbinary) release_common - suffix=$1 - makeflags=$2 - fteqcc_maketargets=$3 - fteqcc_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/Darkplaces.build."$suffix" "$darkplaces_maketargets" "$makeflags" "Xonotic/source/darkplaces" "$d0/misc/builddeps/dp.$suffix" "$darkplaces_files" + binary=$1 + basename=${binary##*/} + rev=`( cd "$d0/darkplaces" && git rev-parse HEAD )` + verbose wget -O "$binary" "http://beta.xonotic.org/autobuild-bin/$rev/$basename" + [ -s "$binary" ] + # TODO eventually do the rebranding on travis too. + case "$binary" in + Xonotic/xonotic*.exe) + verbose "$d0/misc/tools/change-icon-of-exe.sh" "$d0/misc/logos/icons_ico/xonotic.ico" "$binary" + ;; + Xonotic/*osx*|Xonotic/*linux*) + chmod +x "$binary" + ;; + esac ;; 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' \ - '' '' \ - release 'darkplaces.exe:Xonotic/xonotic.exe darkplaces-sdl.exe:Xonotic/xonotic-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated.exe' + verbose "$SELF" release-getbinary Xonotic/xonotic.exe || true + verbose "$SELF" release-getbinary Xonotic/xonotic-sdl.exe || true + verbose "$SELF" release-getbinary Xonotic/xonotic-dedicated.exe || true ;; 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' + verbose "$SELF" release-getbinary Xonotic/xonotic-x64.exe || true + verbose "$SELF" release-getbinary Xonotic/xonotic-x64-sdl.exe || true + verbose "$SELF" release-getbinary Xonotic/xonotic-x64-dedicated.exe || true ;; 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' \ - 'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated' + verbose "$SELF" release-getbinary Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin || true + verbose "$SELF" release-getbinary Xonotic/xonotic-osx-dedicated || true ;; 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 DP_GMP_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' + verbose "$SELF" release-getbinary Xonotic/xonotic-linux32-glx || true + verbose "$SELF" release-getbinary Xonotic/xonotic-linux32-sdl || true + verbose "$SELF" release-getbinary Xonotic/xonotic-linux32-dedicated || true ;; 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 DP_GMP_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' + verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-glx || true + verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-sdl || true + verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-dedicated || true ;; release-engine) release_common - verbose "$SELF" release-engine-linux32 & - verbose "$SELF" release-engine-linux64 & - verbose "$SELF" release-engine-win32 & - verbose "$SELF" release-engine-win64 & - verbose "$SELF" release-engine-osx & - wait %1 - wait %2 - wait %3 - wait %4 - wait %5 - wait + # TODO report failures here. + verbose "$SELF" release-engine-linux32 || true + verbose "$SELF" release-engine-linux64 || true + verbose "$SELF" release-engine-win32 || true + verbose "$SELF" release-engine-win64 || true + verbose "$SELF" release-engine-osx || true ;; release-maps) release_common @@ -324,8 +264,8 @@ 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 make -C "$d0/gmqcc" all + verbose env GIT_DIR="$d0/data/xonotic-data.pk3dir/.git" make -C Xonotic/source QCC="$d0/gmqcc/gmqcc" XON_BUILDSYSTEM=1 clean all ;; release-buildpk3-transform-raw) release_common @@ -377,6 +317,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 @@ -523,10 +476,9 @@ 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 low '-low' normaldds '' - verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir low '-low' normaldds '' mapping '-mapping' + verbose "$SELF" release-buildpk3s data/xonotic-data.pk3dir low '-low' normaldds '' normal '-high' + verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir low '-low' normaldds '' mapping '-mapping' normal '-high' verbose "$SELF" release-buildpk3s data/xonotic-music.pk3dir raw '' low '-low' verbose "$SELF" release-buildpk3s data/xonotic-nexcompat.pk3dir normaldds '' ;; @@ -547,60 +499,63 @@ case "$cmd" in 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 - 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 \ + for suffix in '' '-noaes'; do + # build the archives + verbose mkzip Xonotic-$stamp-enginesource$suffix.zip \ + Xonotic/Makefile \ + Xonotic/source/darkplaces/ \ Xonotic/COPYING Xonotic/GPL-2 Xonotic/GPL-3 - rm -f $crypto_libs - 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 - verbose mkzip Xonotic-$stamp-engine.zip \ - Xonotic/*.dll \ - Xonotic/bin32/*.dll \ - Xonotic/bin64/*.dll \ - Xonotic/*.app \ - Xonotic/xonotic-* \ - Xonotic/xonotic.exe - 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/qcsrc/ \ - Xonotic/Docs \ - Xonotic/misc \ - Xonotic/fteqcc \ - Xonotic/server \ - Xonotic/key_0.d0pk \ - 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/qcsrc/ \ - Xonotic/misc/logos - verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp.zip - verbose mkzip0 Xonotic-$stamp.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-$pk3stamp-data-low.pk3 \ - Xonotic/data/xonotic-$pk3stamp-maps-low.pk3 \ - Xonotic/data/xonotic-$pk3stamp-music-low.pk3 + verbose cp Xonotic-$stamp-enginesource$suffix.zip Xonotic-$stamp-engine$suffix.zip + verbose mkzip Xonotic-$stamp-engine$suffix.zip \ + Xonotic/*.dll \ + Xonotic/bin32/*.dll \ + Xonotic/bin64/*.dll \ + Xonotic/*.app \ + Xonotic/xonotic-* \ + Xonotic/xonotic.exe + verbose cp Xonotic-$stamp-engine$suffix.zip Xonotic-$stamp-common$suffix.zip + verbose mkzip Xonotic-$stamp-common$suffix.zip \ + Xonotic/source/d0_blind_id/ \ + Xonotic/source/gmqcc/ \ + Xonotic/source/qcsrc/ \ + Xonotic/Docs \ + Xonotic/misc \ + Xonotic/gmqcc \ + Xonotic/server \ + Xonotic/key_0.d0pk \ + Xonotic/data/font-xolonium-$pk3stamp.pk3 + verbose cp Xonotic-$stamp-enginesource$suffix.zip Xonotic-$stamp-source$suffix.zip + verbose mkzip Xonotic-$stamp-source$suffix.zip \ + Xonotic/source/d0_blind_id/ \ + Xonotic/source/gmqcc/ \ + Xonotic/source/qcsrc/ \ + Xonotic/misc/logos + verbose cp Xonotic-$stamp-common$suffix.zip Xonotic-$stamp$suffix.zip + verbose mkzip0 Xonotic-$stamp$suffix.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 cp Xonotic-$stamp-common$suffix.zip Xonotic-$stamp-low$suffix.zip + verbose mkzip0 Xonotic-$stamp-low$suffix.zip \ + 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$suffix.zip Xonotic-$stamp-high$suffix.zip + verbose mkzip0 Xonotic-$stamp-high$suffix.zip \ + Xonotic/data/xonotic-$pk3stamp-data-high.pk3 \ + Xonotic/data/xonotic-$pk3stamp-maps-high.pk3 \ + Xonotic/data/xonotic-$pk3stamp-music.pk3 + # let's pass crypto import laws of some nasty countries + find Xonotic -name \*d0_rijndael\*.so -o -name \*d0_rijndael\*.dylib -o -name \*d0_rijndael\*.dll -o -name \*d0_rijndael\*.c -delete + done verbose mkzip Xonotic-$stamp-mappingsupport.zip \ Xonotic/mapping verbose mkzip0 Xonotic-$stamp-mappingsupport.zip \ Xonotic/data/xonotic-$pk3stamp-maps-mapping.pk3 + verbose mkzip gmqcc-$stamp.zip \ + Xonotic/gmqcc \ + Xonotic/source/gmqcc ;; release) release_common