if [ -z "$r_me" ] || [ -z "$r_other" ]; then
return
fi
+
+ # one of the two sides of the merge should be remote upstream, or all is fine
+ r_r=`git symbolic-ref HEAD`
+ r_r=${r_r#refs/heads/}
+ r_rem=`git config "branch.$r_rem.remote" || $ECHO origin`
+ r_bra=`git config "branch.$r_bra.merge" || $ECHO "$r_r"`
+ r_bra=${r_bra#refs/heads/}
+ if [ x"$r_me" != x"`git rev-parse "$r_rem/$r_bra"`" ]; then
+ if [ x"$r_other" != x"`git rev-parse "$r_rem/$r_bra"`" ]; then
+ return
+ fi
+ fi
+
r_base=`git merge-base "$r_me" "$r_other"`
# no merge-base? upstream did filter-branch
m=$pre$in$suf
if t=`mirrorspeed "$m"`; then
if [ -n "$t" ]; then
- t=$(($t$op)) # fudge factor
- msg "$m -> $t ticks ($op)"
- if [ -z "$bestt" ] || [ "$t" -lt "$bestt" ]; then
+ tt=$(($t$op)) # fudge factor
+ msg "$m -> $t$op = $tt ticks"
+ if [ -z "$bestt" ] || [ "$tt" -lt "$bestt" ]; then
bestin=$in
- bestt=$t
+ bestt=$tt
fi
else
msg "$m -> error"
fi
shift
done
+ case "$location" in
+ current)
+ if [ x"`git config xonotic.all.mirrorselection 2>/dev/null || true`" != x"done" ]; then
+ git config xonotic.all.mirrorselection done
+ location=best
+ fi
+ ;;
+ esac
case "$location" in
best)
+ # if we fetched via ssh://, switch to git:// for fetching and keep using ssh:// for pushing
+ case "$base" in
+ ssh://*)
+ pushbase=$base
+ base=git://git.xonotic.org/xonotic/
+ ;;
+ esac
newbase=`$ECHO "$base" | sed "s,://\(.*\.\)\?git.xonotic.org/,:// .git.xonotic.org/,"`
case "$newbase" in
*\ *)
- if location=`bestmirror $newbase"xonotic.git" de us nl:'*3/2'`; then
+ if location=`bestmirror $newbase"xonotic.git" de us nl:'*6/5'`; then # 20% malus to the NL server to not overload it too much
:
else
location=current
release-prepare)
#"$SELF" each git clean -fxd
case "$RELEASETYPE" in
- beta)
- msg "Building a BETA"
- ;;
- release)
- msg "Building a RELEASE"
- ;;
- *)
+ '')
$ECHO >&2 -n "$ESC[2J$ESC[H"
msg ""
msg ""
# (YYYYMMDD)
exit 1
;;
+ release)
+ msg "Building a FINISHED RELEASE"
+ ;;
+ *)
+ msg "Building a $RELEASETYPE"
+ ;;
esac
verbose rm -rf Xonotic Xonotic*.zip
verbose mkdir -p Xonotic
fi
verbose git archive --format=tar HEAD -- 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
+ verbose mkdir data fteqcc source source/darkplaces source/fteqcc source/d0_blind_id
verbose tar xvf -
verbose rm -rf misc/builddeps
verbose mv misc/buildfiles/win32/* . || true
verbose cd Xonotic/source
verbose tar xvf -
}
+ {
+ verbose cd d0_blind_id
+ verbose git archive --format=tar HEAD
+ } | {
+ verbose cd Xonotic/source/d0_blind_id
+ verbose tar xvf -
+ verbose sh autogen.sh
+ }
rm -f Xonotic/key_15.d0pk
;;
release-compile-run)
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*.exe)
+ Xonotic/xonotic*.exe)
verbose "$d0/misc/tools/change-icon-of-exe.sh" "$d0/misc/logos/icons_ico/xonotic.ico" "${f##*:}"
(
d=`mktemp -d -t rebrand.XXXXXX`
win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \
'' ''
verbose "$SELF" release-compile win32 \
- 'STRIP=: DP_MAKE_TARGET=mingw CC="i586-mingw32msvc-gcc -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-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' \
'' '' \
release 'darkplaces.exe:Xonotic/xonotic.exe darkplaces-sdl.exe:Xonotic/xonotic-sdl.exe darkplaces-dedicated.exe:Xonotic/xonotic-dedicated.exe'
;;
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-gcc -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=0' \
+ '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' \
'' '' \
cl-release 'darkplaces.exe:Xonotic/xonotic-x64.exe'
;;
verbose "$SELF" update-maps
;;
release-qc)
- case "$RELEASETYPE" in
- beta)
- verbose make -C Xonotic/source FTEQCC="../../../fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 clean all
- # back out of: source/qcsrc/server
- ;;
- release)
- verbose make -C Xonotic/source FTEQCC="../../../fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 FTEQCCFLAGS_WATERMARK= clean all
- ;;
- esac
+ verbose make -C Xonotic/source FTEQCC="../../../fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 clean all
verbose rm -f Xonotic/source/*/fteqcc.log
;;
release-buildpk3-transform-raw)
verbose rm -rf qcsrc
gv=`grep "^gameversion " "defaultXonotic.cfg" | awk '{ print $2 }'`
major=$(($gv / 10000))
- minor=$(($gv / 100 - $major * 100))
- patch=$(($gv - $major * 10000 - $minor * 100))
+ minor=$((($gv / 100) - ($major * 100)))
+ patch=$(($gv - ($major * 10000) - ($minor * 100)))
versionstr="$major.$minor.$patch"
case "$RELEASETYPE" in
- beta)
- versionstr="$versionstr""beta"
+ release)
+ ;;
+ *)
+ versionstr="$versionstr$RELEASETYPE"
;;
esac
verbose sed -i "
s/^gameversion_min [0-9]*/gameversion_min $(( ($gv / 100) * 100 - 100 ))/;
s/^gameversion_max [0-9]*/gameversion_max $(( ($gv / 100) * 100 + 199 ))/;
" defaultXonotic.cfg
+ case "$RELEASETYPE" in
+ release)
+ echo "" >> defaultXonotic.cfg
+ echo "// nicer menu" >> defaultXonotic.cfg
+ echo "set menu_watermark \"\"" >> defaultXonotic.cfg
+ ;;
+ esac
(
verbose cd gfx/menu/luminos
verbose cp "$d0"/mediasource/gfx/menu/luminos_versionbuilder/background_l2.svg .
# 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\*`
+ 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
Xonotic/data/xonotic-$stamp-data-low.pk3 \
Xonotic/data/xonotic-$stamp-maps-low.pk3 \
Xonotic/data/xonotic-$stamp-music-low.pk3
-# verbose cp Xonotic-$stamp-common.zip Xonotic-$stamp-high.zip
-# verbose mkzip0 Xonotic-$stamp-high.zip \
-# Xonotic/data/xonotic-$stamp-data-raw.pk3 \
-# Xonotic/data/xonotic-$stamp-maps-raw.pk3 \
-# Xonotic/data/xonotic-$stamp-music.pk3 \
-# Xonotic/data/xonotic-$stamp-nexcompat.pk3
verbose mv Xonotic-$stamp-common.zip Xonotic-$stamp-lowdds.zip
verbose mkzip0 Xonotic-$stamp-lowdds.zip \
Xonotic/data/xonotic-$stamp-data-lowdds.pk3 \