X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fxonotic.git;a=blobdiff_plain;f=misc%2Ftools%2Fall%2Frelease.subr;h=6894f3fd280acce7965045c1fb702576b2ea635c;hp=86ee76379b4cfe33889bdae0bf8f7467c6738ff9;hb=975add8a2e50e075479a329ff898da7957403ac4;hpb=9df4cd612db0aa099ece622bafaef9a9ff4692da diff --git a/misc/tools/all/release.subr b/misc/tools/all/release.subr index 86ee7637..6894f3fd 100644 --- a/misc/tools/all/release.subr +++ b/misc/tools/all/release.subr @@ -2,6 +2,13 @@ release_common() { export LC_ALL=C + if [ -z "$MAKEFLAGS" ]; then + ncpus=`getconf _NPROCESSORS_ONLN 2>/dev/null || getconf NPROCESSORS_ONLN 2>/dev/null || echo 1` + if [ $ncpus -gt 1 ]; then + export MAKEFLAGS=-j$ncpus + fi + fi + release_args="$cmd $*" msg "*** $release_args: start" release_starttime=`date +%s` @@ -131,9 +138,8 @@ case "$cmd" in # host names are reachable and have a compile # infrastructure set up: # - xonotic-build-linux64 (with gcc on x86_64) - # - xonotic-build-win32 (with i586-mingw32msvc-g++) - # - xonotic-build-win64 (with amd64-mingw32msvc-g++ - # and amd64-mingw32msvc-g++) + # - xonotic-build-win32 (with i686-w64-mingw32) + # - xonotic-build-win64 (with x86_64-w64-mingw32) # - xonotic-build-osx (with Xcode and SDL.framework) # - AMD Compressonator installed in WINE # - ResEdit installed in WINE @@ -172,11 +178,14 @@ 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 gmqcc source source/darkplaces source/gmqcc source/d0_blind_id mapping + verbose mkdir data 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 - verbose mv misc/buildfiles/win64 bin64 || true + #verbose mv bin32/SDL.dll . || true # Leftover? + + # We're going to be building these later + #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 @@ -192,16 +201,68 @@ case "$cmd" in 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 - for X in *-7z.exe; do - 7za x "$X" - rm -f "$X" - done + # bones_was_here: don't ship 10 year old netradiant + # also seems better to update netradiant independently of xonotic versions + #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 + #for X in *-7z.exe; do + # 7za x "$X" + # rm -f "$X" + #done # TODO possibly include other tools? + printf "Please find links to NetRadiant builds at https://netradiant.gitlab.io or https://xonotic.org/download\nNetRadiant source available at https://gitlab.com/xonotic/netradiant\n" > NetRadiant\ links.txt ) ./all each git rev-parse HEAD > Xonotic/misc/git-revisions.txt ;; + release-compile-run) + release_common + host=$1 + buildpath=$2 + maketargets=$3 + makeflags=$4 + srcdir=$5 + depsdir=$6 + targetfiles=$7 + set -x + if [ -z "$targetfiles" ]; then + exit + fi + 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 misc/logos/icons_ico/xonotic.ico "$buildpath"/darkplaces.ico + 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 misc/logos/icons_ico/xonotic.ico "$host":"$buildpath"/darkplaces.ico + 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 + ;; + release-compile) + release_common + suffix=$1 + makeflags=$2 + darkplaces_maketargets=$3 + darkplaces_files=$4 + host=xonotic-build-$suffix + verbose "$SELF" release-compile-run "$host" /tmp/Darkplaces.build."$suffix" "$darkplaces_maketargets" "$makeflags" "Xonotic/source/darkplaces" "$d0/misc/builddeps/$suffix" "$darkplaces_files" + ;; release-getbinary) release_common binary=$1 @@ -217,34 +278,73 @@ case "$cmd" in ;; esac ;; + release-dlls-compile) + release_common + arch=$1 + buildpath=$2 + targetdir=$3 + mkdir -p "$targetdir" + ( + cd "misc/buildsrc" + verbose ./dlls.sh all "$buildpath" "$arch" + ) + verbose cp -v $buildpath/out/$arch/* "$targetdir" + ;; + release-dlls-win32) + release_common + verbose "$SELF" release-dlls-compile win32 /tmp/dlls Xonotic/bin32 + ;; + release-dlls-win64) + release_common + verbose "$SELF" release-dlls-compile win64 /tmp/dlls Xonotic/bin64 + ;; + release-dlls) + release_common + verbose "$SELF" release-dlls-win32 + verbose "$SELF" release-dlls-win64 + verbose rm -rf /tmp/dlls + ;; release-engine-win32) release_common - good=true - verbose "$SELF" release-getbinary Xonotic/xonotic-x86.exe || good=false - verbose "$SELF" release-getbinary Xonotic/xonotic-x86-dedicated.exe || good=false - $good + #good=true + #verbose "$SELF" release-getbinary Xonotic/xonotic-x86.exe || good=false + #verbose "$SELF" release-getbinary Xonotic/xonotic-x86-dedicated.exe || good=false + #$good + verbose "$SELF" release-compile win32 \ + 'STRIP=: D3D=1 DP_MAKE_TARGET=mingw WIN32RELEASE=1 CC="i686-w64-mingw32-gcc -static -g1 -mstackrealign -Wl,--dynamicbase -Wl,--nxcompat -I../../../.deps/include -L../../../.deps/lib -DSUPPORTIPV6" WINDRES="i686-w64-mingw32-windres" SDL_CONFIG="../../../.deps/bin/sdl2-config" DP_LINK_CRYPTO=dlopen DP_LINK_CRYPTO_RIJNDAEL=dlopen DP_LINK_JPEG=dlopen DP_LINK_ODE=dlopen DP_LINK_ZLIB=dlopen' \ + release 'darkplaces.exe:Xonotic/xonotic-x86-wgl.exe darkplaces-sdl.exe:Xonotic/xonotic-x86.exe darkplaces-dedicated.exe:Xonotic/xonotic-x86-dedicated.exe' ;; release-engine-win64) release_common - good=true - verbose "$SELF" release-getbinary Xonotic/xonotic.exe || good=false - verbose "$SELF" release-getbinary Xonotic/xonotic-dedicated.exe || good=false - $good + #good=true + #verbose "$SELF" release-getbinary Xonotic/xonotic.exe || good=false + #verbose "$SELF" release-getbinary Xonotic/xonotic-dedicated.exe || good=false + #$good + verbose "$SELF" release-compile win64 \ + 'STRIP=: D3D=1 DP_MAKE_TARGET=mingw WIN64RELEASE=1 CC="x86_64-w64-mingw32-gcc -static -g1 -Wl,--dynamicbase -Wl,--nxcompat -I../../../.deps/include -L../../../.deps/lib -DSUPPORTIPV6" WINDRES="x86_64-w64-mingw32-windres" SDL_CONFIG="../../../.deps/bin/sdl2-config" DP_LINK_CRYPTO=dlopen DP_LINK_CRYPTO_RIJNDAEL=dlopen DP_LINK_JPEG=dlopen DP_LINK_ODE=dlopen DP_LINK_ZLIB=dlopen' \ + release 'darkplaces.exe:Xonotic/xonotic-wgl.exe darkplaces-sdl.exe:Xonotic/xonotic.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated.exe' ;; release-engine-osx) release_common - good=true - verbose "$SELF" release-getbinary Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin || good=false - verbose "$SELF" release-getbinary Xonotic/xonotic-osx-dedicated || good=false - $good + #good=true + #verbose "$SELF" release-getbinary Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin || good=false + #verbose "$SELF" release-getbinary Xonotic/xonotic-osx-dedicated || good=false + #$good + # Note: travis build script also had SDLCONFIG_MACOSX* flags; need to check if they're still needed with osxcross. + verbose "$SELF" release-compile osx \ + 'STRIP=: DP_MAKE_TARGET=macosx CC="$HOME/osxcross/out/bin/o64-clang -g1 -arch x86_64 -mmacosx-version-min=10.6 -Wl,-rpath -Wl,@loader_path/../Frameworks -Wl,-rpath -Wl,@loader_path -I../../../.deps/include -L../../../.deps/lib -DSUPPORTIPV6" SDLCONFIG_MACOSXCFLAGS="-I../../../.deps/SDL2.framework/Headers" SDLCONFIG_MACOSXLIBS="-F../../../.deps -framework SDL2 -framework Cocoa -I../../../.deps/SDL2.framework/Headers" SDLCONFIG_MACOSXSTATICLIBS="-F../../../.deps -framework SDL2 -framework Cocoa -I../../../.deps/SDL2.framework/Headers" DP_LINK_CRYPTO=dlopen DP_LINK_CRYPTO_RIJNDAEL=dlopen DP_LINK_JPEG=dlopen DP_LINK_ODE=dlopen DP_LINK_ZLIB=shared' \ + 'sv-release sdl-release' 'darkplaces-sdl:Xonotic/Xonotic.app/Contents/MacOS/xonotic-osx-sdl-bin darkplaces-dedicated:Xonotic/xonotic-osx-dedicated' ;; release-engine-linux64) release_common - good=true - verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-sdl || good=false - verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-glx || good=false - verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-dedicated || good=false - $good + #good=true + #verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-sdl || good=false + #verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-glx || good=false + #verbose "$SELF" release-getbinary Xonotic/xonotic-linux64-dedicated || good=false + #$good + verbose "$SELF" release-compile linux64 \ + 'STRIP=: CC="gcc -m64 -g1 -I../../../.deps/include -L../../../.deps/lib -DSUPPORTIPV6" DP_LINK_CRYPTO=shared LIB_CRYPTO="../../../.deps/lib/libd0_blind_id.a ../../../.deps/lib/libgmp.a" DP_LINK_CRYPTO_RIJNDAEL=shared DP_LINK_JPEG=shared LIB_JPEG=/usr/lib/x86_64-linux-gnu/libjpeg.a DP_LINK_ODE=shared CFLAGS_ODE="-DUSEODE -DLINK_TO_LIBODE -DdDOUBLE" LIB_ODE="../../../.deps/lib/libode.a -lstdc++ -pthread" DP_LINK_ZLIB=shared' \ + release 'darkplaces-glx:Xonotic/xonotic-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux64-dedicated' ;; release-engine) release_common @@ -262,8 +362,8 @@ case "$cmd" in ;; release-qc) release_common - 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 + verbose make -C "$d0/gmqcc" gmqcc + verbose env GIT_DIR="$d0/data/xonotic-data.pk3dir/.git" make -C Xonotic/source QCC="$d0/gmqcc/gmqcc" XON_BUILDSYSTEM=1 QCCFLAGS_WATERMARK='$(shell git describe --tags)' clean qc ;; release-buildpk3-transform-raw) release_common @@ -300,51 +400,6 @@ case "$cmd" in verbose export del_src=true find . -type f -print0 | verbose xargs -0 "$d0"/misc/tools/cached-converter.sh ;; - release-buildpk3-transform-low) - release_common - dir=$1 - verbose cd "$dir" - # texture: convert to jpeg and dds - # music: reduce bitrate - verbose export do_jpeg=true - verbose export jpeg_qual_rgb=80 - verbose export jpeg_qual_a=97 - verbose export do_dds=false - verbose export do_ogg=true - verbose export ogg_qual=1 - 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 - verbose cd "$dir" - # texture: convert to jpeg and dds - # music: reduce bitrate - verbose export do_jpeg=false - verbose export do_jpeg_if_not_dds=true - verbose export jpeg_qual_rgb=80 - verbose export jpeg_qual_a=99 - verbose export do_dds=true - verbose export dds_flags= - verbose export do_ogg=true - verbose export ogg_qual=1 - verbose export del_src=true - find . -type f -print0 | verbose xargs -0 "$d0"/misc/tools/cached-converter.sh - ;; release-buildpk3-transform-mapping) release_common dir=$1 @@ -409,16 +464,18 @@ case "$cmd" in # 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/; " < xonotic-common.cfg > xonotic-common.cfg.new + # Following line was included in sed above, ref https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1034 + # s/^gameversion_min [0-9]*/gameversion_min 0/; 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 ))/; " < xonotic-common.cfg > xonotic-common.cfg.new + # Following line was included in sed above, ref https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1034 + # s/^gameversion_min [0-9]*/gameversion_min $(( ($gv / 100) * 100 - 100 ))/; fi mv xonotic-common.cfg.new xonotic-common.cfg case "$RELEASETYPE" in @@ -481,10 +538,10 @@ case "$cmd" in release_common verbose "$SELF" release-buildpk3s data/font-unifont.pk3dir raw '' verbose "$SELF" release-buildpk3s data/font-xolonium.pk3dir raw '' - 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 low '-low' normaldds '' normal '-high' + verbose "$SELF" release-buildpk3s data/xonotic-data.pk3dir normaldds '' normal '-high' + verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir normaldds '' mapping '-mapping' normal '-high' + verbose "$SELF" release-buildpk3s data/xonotic-music.pk3dir raw '' + verbose "$SELF" release-buildpk3s data/xonotic-nexcompat.pk3dir normaldds '' normal '-high' ;; release-pack-needsx11) release_common @@ -503,59 +560,49 @@ 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 - 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 - 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-unifont-$pk3stamp.pk3 \ - 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 \ - Xonotic/data/xonotic-$pk3stamp-nexcompat-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 \ - Xonotic/data/xonotic-$pk3stamp-nexcompat-high.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 + # 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/gmqcc/ \ + Xonotic/source/qcsrc/ \ + Xonotic/Docs \ + Xonotic/misc \ + Xonotic/gmqcc \ + Xonotic/server \ + Xonotic/key_0.d0pk \ + Xonotic/data/font-unifont-$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/gmqcc/ \ + 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-high.zip + verbose mkzip0 Xonotic-$stamp-high.zip \ + Xonotic/data/xonotic-$pk3stamp-data-high.pk3 \ + Xonotic/data/xonotic-$pk3stamp-maps-high.pk3 \ + Xonotic/data/xonotic-$pk3stamp-music.pk3 \ + Xonotic/data/xonotic-$pk3stamp-nexcompat-high.pk3 verbose mkzip Xonotic-$stamp-mappingsupport.zip \ Xonotic/mapping verbose mkzip0 Xonotic-$stamp-mappingsupport.zip \ @@ -568,9 +615,10 @@ case "$cmd" in release_common verbose "$SELF" release-prepare verbose "$SELF" release-maps + verbose "$SELF" release-dlls verbose "$SELF" release-engine verbose "$SELF" release-qc - verbose "$SELF" release-pack-needsx11 + verbose "$SELF" release-pack verbose "$SELF" release-zip ;; *)