]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - all
don't run admin-merge on the fteqcc repo
[xonotic/xonotic.git] / all
diff --git a/all b/all
index 96cd3b5b05ac8c45a92f95491036ea1772004cc6..26a302776e26e28588f4762ca315e83030ff93f2 100755 (executable)
--- a/all
+++ b/all
@@ -110,17 +110,17 @@ enter()
 }
 
 repos_urls="
-.                             |                                                   | master      |
-data/xonotic-data.pk3dir      |                                                   | master      |
-data/xonotic-music.pk3dir     |                                                   | master      |
-data/xonotic-nexcompat.pk3dir |                                                   | master      | no
-darkplaces                    |                                                   | div0-stable | svn
-netradiant                    |                                                   | master      |
-div0-gittools                 |                                                   | master      | no
-d0_blind_id                   | git://github.com/divVerent/d0_blind_id.git        | master      |
-data/xonotic-maps.pk3dir      |                                                   | master      |
-mediasource                   |                                                   | master      | no
-fteqcc                        | git://github.com/Blub/qclib.git                   | master      |
+.                             |                                                   | master         |
+data/xonotic-data.pk3dir      |                                                   | master         |
+data/xonotic-music.pk3dir     |                                                   | master         |
+data/xonotic-nexcompat.pk3dir |                                                   | master         | no
+darkplaces                    |                                                   | div0-stable    | svn
+netradiant                    |                                                   | master         |
+div0-gittools                 |                                                   | master         | no
+d0_blind_id                   |                                                   | master         |
+data/xonotic-maps.pk3dir      |                                                   | master         |
+mediasource                   |                                                   | master         | no
+fteqcc                        |                                                   | xonotic-stable | noautocrlf
 "
 # todo: in darkplaces, change repobranch to div0-stable
 
@@ -308,10 +308,19 @@ fix_git_config()
                verbose git config --unset remote.origin.pushurl || true
        fi
        verbose git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
-       verbose git config core.autocrlf input
-       if [ -z "`git config push.default`" ]; then
+       case ",`repoflags "$d"`," in
+               *,noautocrlf,*)
+                       verbose git config --unset core.autocrlf || true
+                       ;;
+               *)
+                       verbose git config core.autocrlf input
+                       ;;
+       esac
+       if [ -z "`git config push.default || true`" ]; then
                verbose git config push.default current # or is tracking better?
        fi
+       verbose git config filter.mapclean.clean "tr -d '\r' | grep '^[^/]'"
+       verbose git config filter.mapclean.smudge "cat"
 }
 
 mkzip()
@@ -362,9 +371,12 @@ case "$cmd" in
                        msg "To get access, your key has to be approved first. For that, visit"
                        msg "http://dev.xonotic.org/, then log in, create a \"New Issue\" on"
                        msg "the \"Support\" tracker in the \"Repository\" category where you"
-                       msg "apply for access and paste the following output into the ticket:"
+                       msg "apply for access and paste the following output into the issue:"
                        msg ""
                        msg "`cat ~/.ssh/id_rsa.pub`"
+                       msg ""
+                       msg "Note that you will only have write access to branches that start"
+                       msg "with your user name."
                elif [ -f ~/.ssh/id_dsa.pub ]; then
                        msg ""
                        msg "A key already exists and no new one will be generated. If you"
@@ -374,28 +386,36 @@ case "$cmd" in
                        msg "To get access, your key has to be approved first. For that, visit"
                        msg "http://dev.xonotic.org/, then log in, create a \"New Issue\" on"
                        msg "the \"Support\" tracker in the \"Repository\" category where you"
-                       msg "apply for access and paste the following output into the ticket:"
+                       msg "apply for access and paste the following output into the issue:"
                        msg ""
                        msg "`cat ~/.ssh/id_dsa.pub`"
+                       msg ""
+                       msg "Note that you will only have write access to branches that start"
+                       msg "with your user name."
                else
                        msg ""
                        msg "No key has been generated yet. One will be generated now."
                        msg "If other people are using your computer, it is recommended"
-                       msg "to specify a passphrase."
+                       msg "to specify a passphrase. Otherwise you can simply hit ENTER"
+                       msg "when asked for a passphrase."
                        msg ""
-                       ssh-keygen -t rsa -b 4096
+                       ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
                        msg ""
                        msg "To get access, your key has to be approved first. For that, visit"
                        msg "http://dev.xonotic.org/, then log in, create a \"New Issue\" on"
                        msg "the \"Support\" tracker in the \"Repository\" category where you"
-                       msg "apply for access and paste the following output into the ticket:"
+                       msg "apply for access and paste the following output into the issue:"
                        msg ""
                        msg "`cat ~/.ssh/id_rsa.pub`"
+                       msg ""
+                       msg "Note that you will only have write access to branches that start"
+                       msg "with your user name."
                fi
                ;;
        update|pull)
                allow_pull=true
                fix_config=false
+               location=current
                while :; do
                        if [ x"$1" = x"-N" ]; then
                                allow_pull=false
@@ -414,11 +434,51 @@ case "$cmd" in
                        elif [ x"$1" = x"-h" ]; then
                                fix_config=true
                                base=http://git.xonotic.org/xonotic/
+                       elif [ x"$1" = x"-l" ]; then
+                               case "$2" in
+                                       nl) ;;
+                                       de) ;;
+                                       default) ;;
+                                       *)
+                                               msg "Invalid location!"
+                                               msg "Possible locations for the -l option:"
+                                               msg "  nl (Netherlands, run by merlijn)"
+                                               msg "  de (Germany, run by divVerent)"
+                                               msg "  default (currently nl)"
+                                               exit 1
+                                               ;;
+                               esac
+                               fix_config=true
+                               location=$2
+                               shift
                        else
                                break
                        fi
                        shift
                done
+               case "$location" in
+                       default)
+                               location=
+                               ;;
+                       current)
+                               case "$base" in
+                                       *://*.git.xonotic.org/*)
+                                               location=${base%%.git.xonotic.org/*}
+                                               location=${location##*://}
+                                               ;;
+                                       *)
+                                               location=
+                                               ;;
+                               esac
+                               ;;
+               esac
+               if [ -n "$location" ]; then
+                       base=`echo "$base" | sed "s,://\(.*\.\)\?git.xonotic.org/,://$location.git.xonotic.org/,"`
+                       pushbase=`echo "$pushbase" | sed "s,://\(.*\.\)\?git.xonotic.org/,://$location.git.xonotic.org/,"`
+               else
+                       base=`echo "$base" | sed "s,://\(.*\.\)\?git.xonotic.org/,://git.xonotic.org/,"`
+                       pushbase=`echo "$pushbase" | sed "s,://\(.*\.\)\?git.xonotic.org/,://git.xonotic.org/,"`
+               fi
                if $fix_config; then
                        url=`repourl .`
                        pushurl=`repopushurl .`
@@ -651,6 +711,7 @@ case "$cmd" in
                cleanqc=false
                compiled0=false
                debug=debug
+               snowleopardhack=false
                if [ -z "$CC" ]; then
                        export CC="gcc -DSUPPORTIPV6"
                fi
@@ -658,6 +719,7 @@ case "$cmd" in
                        case "$1" in
                                -0)
                                        compiled0=true
+                                       shift
                                        ;;
                                -c)
                                        cleand0=true
@@ -685,6 +747,7 @@ case "$cmd" in
                                        ;;
                                *)
                                        # AGL cannot be compiled on systems with a kernel > 10.x (Snow Leopard)
+                                       snowleopardhack=true
                                        TARGETS="sv-$debug sdl-$debug"
                                        ;;
                        esac
@@ -706,7 +769,13 @@ case "$cmd" in
                                        sdl)
                                                TARGETS="$TARGETS sdl-debug"
                                                ;;
-                                       glx|agl|wgl)
+                                       agl)
+                                               TARGETS="$TARGETS cl-debug"
+                                               if $snowleopardhack; then
+                                                       export CC="$CC -arch i386"
+                                               fi
+                                               ;;
+                                       glx|wgl)
                                                TARGETS="$TARGETS cl-debug"
                                                ;;
                                        dedicated)
@@ -793,9 +862,10 @@ case "$cmd" in
 
                enter "$d0/data/xonotic-data.pk3dir" verbose
                if $cleanqc; then
-                       verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS clean
+                       verbose make FTEQCC="../../../../fteqcc/fteqcc.bin" "$@" $MAKEFLAGS clean
                fi
-               verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" "$@" $MAKEFLAGS
+               verbose make FTEQCC="../../../../fteqcc/fteqcc.bin" "$@" $MAKEFLAGS
+               # 4 levels up: data, xonotic-data, qcsrc, server
 
                enter "$d0/darkplaces" verbose
                if [ x"$BAD_TARGETS" = x" " ]; then
@@ -976,6 +1046,12 @@ case "$cmd" in
                        reportecho "$o"
                }
                for d in $repos; do
+                       case "$d" in
+                               fteqcc)
+                                       # sorry, fteqcc repo is managed manually
+                                       continue
+                                       ;;
+                       esac
                        enter "$d0/$d" verbose
                        base="`repobranch "$d"`"
                        reportecho "In $d:"
@@ -1059,6 +1135,11 @@ case "$cmd" in
                                                                reportecho4 "--> test failed, postponed"
                                                        fi
                                                else
+                                                       # apply crlf, or other cleanup filters (non-behavioural changes)
+                                                       git reset --hard
+                                                       find . -type f -exec touch {} \;
+                                                       git commit -a --amend -c HEAD
+
                                                        echo "MERGING"
                                                        case ",`repoflags "$d"`," in
                                                                *,svn,*)
@@ -1112,33 +1193,33 @@ case "$cmd" in
                #   ./all clean [-m] [-f | -fu | -fU] [-r] [-D]
                #   ./all clean --reclone
                found=false
-               while :; do
-                       if [ x"$1" = x"--reclone" ]; then
+               for X in "$@"; do
+                       if [ x"$X" = x"--reclone" ]; then
                                force=true
                                fetchupstream=true
                                gotoupstream=true
                                gotomaster=true
                                rmuntracked=true
                                killbranches=true
-                       elif [ x"$1" = x"-f" ]; then
+                       elif [ x"$X" = x"-f" ]; then
                                force=true
-                       elif [ x"$1" = x"-u" ]; then
+                       elif [ x"$X" = x"-u" ]; then
                                gotoupstream=true
-                       elif [ x"$1" = x"-U" ]; then
+                       elif [ x"$X" = x"-U" ]; then
                                gotoupstream=true
                                fetchupstream=true
-                       elif [ x"$1" = x"-fu" ]; then
+                       elif [ x"$X" = x"-fu" ]; then
                                force=true
                                gotoupstream=true
-                       elif [ x"$1" = x"-fU" ]; then
+                       elif [ x"$X" = x"-fU" ]; then
                                force=true
                                gotoupstream=true
                                fetchupstream=true
-                       elif [ x"$1" = x"-m" ]; then
+                       elif [ x"$X" = x"-m" ]; then
                                gotomaster=true
-                       elif [ x"$1" = x"-r" ]; then
+                       elif [ x"$X" = x"-r" ]; then
                                rmuntracked=true
-                       elif [ x"$1" = x"-D" ]; then
+                       elif [ x"$X" = x"-D" ]; then
                                killbranches=true
                        else
                                break
@@ -1207,6 +1288,7 @@ case "$cmd" in
                                git rev-parse refs/heads/master >/dev/null 2>&1 || verbose git branch -t master origin/master || true
                                git rev-parse "refs/heads/`repobranch "$d"`" >/dev/null 2>&1 || verbose git branch -t "`repobranch "$d"`" origin/"`repobranch "$d"`" || true
                        fi
+                       checkself "$cmd" "$@"
                done
                ;;
 
@@ -1341,9 +1423,9 @@ case "$cmd" in
                        # 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
+                               case "${f##*:}" in
                                        xonotic*.exe)
-                                               verbose "$d0/misc/tools/change-icon-of-exe.sh" "$d0/misc/logos/icons_ico/xonotic.ico" "$f"
+                                               verbose "$d0/misc/tools/change-icon-of-exe.sh" "$d0/misc/logos/icons_ico/xonotic.ico" "${f##*:}"
                                                (
                                                        d=`mktemp -d -t rebrand.XXXXXX`
                                                        cd "$d"
@@ -1352,7 +1434,7 @@ case "$cmd" in
                                                        cat darkplaces.zip
                                                        cd "$d0"
                                                        rm -rf "$d"
-                                               ) >> "$f"
+                                               ) >> "${f##*:}"
                                                ;;
                                esac
                        done
@@ -1431,10 +1513,11 @@ case "$cmd" in
        release-qc)
                case "$RELEASETYPE" in
                        beta)
-                               verbose make -C Xonotic/source FTEQCC="$d0/Xonotic/fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 clean all
+                               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="$d0/Xonotic/fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 FTEQCCFLAGS_WATERMARK= clean all
+                               verbose make -C Xonotic/source FTEQCC="../../../fteqcc/fteqcc.linux32" XON_BUILDSYSTEM=1 FTEQCCFLAGS_WATERMARK= clean all
                                ;;
                esac
                verbose rm -f Xonotic/source/*/fteqcc.log
@@ -1462,7 +1545,7 @@ case "$cmd" in
                # music: reduce bitrate
                verbose export do_jpeg=true
                verbose export jpeg_qual_rgb=80
-               verbose export jpeg_qual_a=95
+               verbose export jpeg_qual_a=99
                verbose export do_dds=false
                verbose export do_ogg=true
                verbose export ogg_qual=1
@@ -1477,7 +1560,7 @@ case "$cmd" in
                verbose export do_jpeg=false
                verbose export do_jpeg_if_not_dds=true
                verbose export jpeg_qual_rgb=80
-               verbose export jpeg_qual_a=95
+               verbose export jpeg_qual_a=99
                verbose export do_dds=true
                verbose export dds_flags=
                verbose export do_ogg=true
@@ -1568,8 +1651,8 @@ case "$cmd" in
                ;;
        release-pack)
                verbose "$SELF" release-buildpk3s data/font-nimbussansl.pk3dir             raw ''
-               verbose "$SELF" release-buildpk3s data/xonotic-data.pk3dir       normal '' raw '-raw' low '-low' lowdds '-lowdds'
-               verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir       normal '' raw '-raw' low '-low' lowdds '-lowdds'
+               verbose "$SELF" release-buildpk3s data/xonotic-data.pk3dir       normal ''            low '-low' lowdds '-lowdds'
+               verbose "$SELF" release-buildpk3s data/xonotic-maps.pk3dir       normal ''            low '-low' lowdds '-lowdds'
                verbose "$SELF" release-buildpk3s data/xonotic-music.pk3dir                raw ''     low '-low'
                verbose "$SELF" release-buildpk3s data/xonotic-nexcompat.pk3dir                       low ''
                ;;
@@ -1623,17 +1706,17 @@ case "$cmd" in
                        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-lowdds.zip
+#              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 \
                        Xonotic/data/xonotic-$stamp-maps-lowdds.pk3 \
                        Xonotic/data/xonotic-$stamp-music-low.pk3
-               verbose mv 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
                ;;
        release)
                verbose "$SELF" release-prepare
@@ -1654,9 +1737,10 @@ case "$cmd" in
                echo "  $SELF checkout|switch <remote>/<branch>"
                echo "  $SELF clean [-m] [-f | -fu | -fU] [-r] [-D]"
                echo "  $SELF clean --reclone"
-               echo "  $SELF compile [-c]"
+               echo "  $SELF compile [-c] [-r] [-0]"
                echo "  $SELF each|foreach [-k] command..."
                echo "  $SELF fix_upstream_rebase"
+               echo "  $SELF keygen"
                echo "  $SELF merge"
                echo "  $SELF push|commit [-s]"
                echo "  $SELF release"
@@ -1664,6 +1748,6 @@ case "$cmd" in
                echo "  $SELF run [sdl|glx|wgl|agl|dedicated] options..."
                echo "  $SELF save-patches"
                echo "  $SELF update-maps"
-               echo "  $SELF update|pull [-N]"
+               echo "  $SELF update|pull [-N] [-s | -h [-p] | -g [-p]] [-l de|nl|default]"
                ;;
 esac