- use temp dir for rpm topdir avoiding overwriting any file
authorElan Ruusamäe <glen@pld-linux.org>
Sat, 22 Apr 2006 18:35:46 +0000 (18:35 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    license-installer.sh -> 1.10

license-installer.sh

index d089f89..31a81f7 100644 (file)
@@ -1,25 +1,13 @@
 #!/bin/sh
 if [ "$1" = "--with" -a "$2" = "license_agreement" ]; then
-       TMPDIR=`rpm --eval "%{tmpdir}"`; export TMPDIR
-       SPECDIR=`rpm --eval "%{_specdir}"`; export SPECDIR
-       SRPMDIR=`rpm --eval "%{_srcrpmdir}"`; export SRPMDIR
-       SOURCEDIR=`rpm --eval "%{_sourcedir}"`; export SOURCEDIR
-       BUILDDIR=`rpm --eval "%{_builddir}"`; export BUILDDIR
-       RPMDIR=`rpm --eval "%{_rpmdir}"`; export RPMDIR
-       BACKUP=0
-       mkdir -p $TMPDIR $SPECDIR $SRPMDIR $RPMDIR $SRPMDIR $SOURCEDIR $BUILDDIR
-       if [ -f $SPECDIR/@BASE_NAME@.spec ]; then
-               BACKUP=1
-               mv -f $SPECDIR/@BASE_NAME@.spec $SPECDIR/@BASE_NAME@.spec.prev
-       fi
-       if [ '@COPYSOURCES@' != '@'COPYSOURCES'@' ]; then
-               for i in @COPYSOURCES@; do
-                       if [ -f $SOURCEDIR/$i ]; then
-                               mv -f $SOURCEDIR/$i $SOURCEDIR/$i.prev
-                               BACKUP=1
-                       fi
-               done
-       fi
+       tmp=$(mktemp -d)
+       SPECDIR=`rpm --define "_topdir $tmp" --eval "%{_specdir}"`
+       SRPMDIR=`rpm --define "_topdir $tmp" --eval "%{_srcrpmdir}"`
+       SOURCEDIR=`rpm --define "_topdir $tmp" --eval "%{_sourcedir}"`
+       BUILDDIR=`rpm --define "_topdir $tmp" --eval "%{_builddir}"`
+       RPMDIR=`rpm --define "_topdir $tmp" --eval "%{_rpmdir}"`
+       mkdir -p $SPECDIR $SRPMDIR $RPMDIR $SRPMDIR $SOURCEDIR $BUILDDIR
+
        if echo "$3" | grep '\.src\.rpm$' >/dev/null; then
                (
                if echo "$3" | grep '://' >/dev/null; then
@@ -27,7 +15,6 @@ if [ "$1" = "--with" -a "$2" = "license_agreement" ]; then
                        wget --passive-ftp -t0 "$3"
                else
                        cp -f "$3" $SRPMDIR
-                       cd $SRPMDIR
                fi
                rpm2cpio `basename "$3"` | ( cd $SPECDIR; cpio -i @BASE_NAME@.spec )
                if [ '@COPYSOURCES@' != '@'COPYSOURCES'@' ]; then
@@ -43,24 +30,12 @@ if [ "$1" = "--with" -a "$2" = "license_agreement" ]; then
                fi
        fi
        ( cd $SPECDIR
-       /usr/bin/builder -nm -nc -ncs --with license_agreement --target @TARGET_CPU@ @BASE_NAME@.spec
+       /usr/bin/builder --define _topdir $tmp -nm -nc -ncs --with license_agreement --target @TARGET_CPU@ @BASE_NAME@.spec
        if [ "$?" -ne 0 ]; then
                exit 2
        fi
        RPMNAMES="$RPMDIR/@BASE_NAME@-@VERSION@-@RELEASE@wla.@TARGET_CPU@.rpm"
        rpm -Uhv $RPMNAMES || echo -e "Install manually the file(s):\n   $RPMNAMES" )
-       if [ "$BACKUP" -eq 1 ]; then
-               if [ -f $SPECDIR/@BASE_NAME@.spec.prev ]; then
-                       mv -f $SPECDIR/@BASE_NAME@.spec.prev $SPECDIR/@BASE_NAME@.spec
-               fi
-               if [ '@COPYSOURCES@' != '@'COPYSOURCES'@' ]; then
-                       for i in @COPYSOURCES@; do
-                               if [ -f $SOURCEDIR/$i ]; then
-                                       mv -f $SOURCEDIR/$i.prev $SOURCEDIR/$i
-                               fi
-                       done
-               fi
-       fi
 else
        if [ "@LICENSE@" != '@'LICENSE'@' ]; then
                cat @LICENSE@
This page took 0.034978 seconds and 4 git commands to generate.