maintainer-scripts: Use /sourceware/snapshot-tmp/gcc as temp directory if possible
authorJakub Jelinek <jakub@redhat.com>
Wed, 16 Dec 2020 23:14:30 +0000 (00:14 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 16 Dec 2020 23:15:23 +0000 (00:15 +0100)
> https://gcc.gnu.org/pipermail/gccadmin/2020q4/017037.html
>
> OSError: [Errno 28] No space left on device:
> '/tmp/tmp.Zq3p6D4MxS/gcc/.git/objects/objn31xpefh' ->
> '/tmp/tmp.Zq3p6D4MxS/gcc/.git/objects/db/ffb02a4bcdd4ec04af3db75d86b8cc2e52bdff'
>
> Maybe change the script to use /sourceware/snapshot-tmp/gcc (which has
> rather more space) instead of /tmp?

This patch implements that.

2020-12-17  Jakub Jelinek  <jakub@redhat.com>

* update_version_git: Put BASEDIR into /sourceware/snapshot-tmp/gcc
if it exist.

maintainer-scripts/update_version_git

index 4ebeee5afadcca70f346a16a4006a25932110de9..cf5191601694ca48290d7b214eb6d1335b60da91 100755 (executable)
@@ -5,24 +5,31 @@
 # commit messages.
 
 GITROOT=${GITROOT:-"/git/gcc.git"}
+if [ -z "$TMPDIR" ]; then
+  if [ -d /sourceware/snapshot-tmp/gcc ]; then
+    TMPDIR=/sourceware/snapshot-tmp/gcc
+  else
+    TMPDIR=/tmp
+  fi
+fi
 
-# Run this from /tmp.
-export GITROOT
+# Run this from $TMPDIR.
+export GITROOT TMPDIR
 BASEDIR=`mktemp -d`
 cd "$BASEDIR"
 
 GIT=${GIT:-/usr/local/bin/git}
 
 # Assume all will go well.
-SUBDIR=$BASEDIR/gcc
+SUBDIR="$BASEDIR/gcc"
 ${GIT} clone -q -b master "$GITROOT" "$SUBDIR"
 
-cp -a $SUBDIR/contrib/gcc-changelog $BASEDIR/gcc-changelog
+cp -a "$SUBDIR"/contrib/gcc-changelog "$BASEDIR"/gcc-changelog
 cd "$SUBDIR"
 python3 ../gcc-changelog/git_update_version.py -p
 RESULT=$?
 
-cd /tmp
+cd "$TMPDIR"
 
-/bin/rm -rf $BASEDIR
+/bin/rm -rf "$BASEDIR"
 exit $RESULT