kpatch-build: clean up rpmbuild tmp directory handling

Setting HOME in a subshell is too hacky.  Instead just pass the rpmbuild
directory to the rpm and rpmbuild commands.
This commit is contained in:
Josh Poimboeuf 2015-11-03 14:33:49 -06:00
parent b2eeb59b8a
commit 0dec5136ee

View File

@ -41,7 +41,7 @@ CPUS="$(getconf _NPROCESSORS_ONLN)"
CACHEDIR="${CACHEDIR:-$HOME/.kpatch}" CACHEDIR="${CACHEDIR:-$HOME/.kpatch}"
SRCDIR="$CACHEDIR/src" SRCDIR="$CACHEDIR/src"
OBJDIR="$CACHEDIR/obj" OBJDIR="$CACHEDIR/obj"
TMPSRCDIR="$CACHEDIR/tmphome" TMPBUILDROOT="$CACHEDIR/buildroot"
VERSIONFILE="$CACHEDIR/version" VERSIONFILE="$CACHEDIR/version"
TEMPDIR="$CACHEDIR/tmp" TEMPDIR="$CACHEDIR/tmp"
LOGFILE="$CACHEDIR/build.log" LOGFILE="$CACHEDIR/build.log"
@ -82,7 +82,7 @@ cleanup() {
[[ -e $TEMPDIR/.config ]] && cp -f $TEMPDIR/.config $USERSRCDIR [[ -e $TEMPDIR/.config ]] && cp -f $TEMPDIR/.config $USERSRCDIR
fi fi
[[ "$DEBUG" -eq 0 ]] && rm -rf "$TEMPDIR" [[ "$DEBUG" -eq 0 ]] && rm -rf "$TEMPDIR"
rm -rf "$TMPSRCDIR" rm -rf "$TMPBUILDROOT"
unset KCFLAGS unset KCFLAGS
} }
@ -370,26 +370,15 @@ else
fi fi
echo "Unpacking kernel source" echo "Unpacking kernel source"
(
clean_cache
# By default, rpmdev-setuptree and rpmbuild use clean_cache
# ~/rpmbuild/ tree. However, this could clobber its
# existing contents, so let us use a fake home directory
# here to avoid that.
mkdir -p $TMPSRCDIR
HOME=$TMPSRCDIR
rpmdev-setuptree >> "$LOGFILE" 2>&1 || die rpm -D "_topdir $TMPBUILDROOT" -ivh "$SRCRPM" >> "$LOGFILE" 2>&1 || die
rpm -ivh "$SRCRPM" >> "$LOGFILE" 2>&1 || die rpmbuild -D "_topdir $TMPBUILDROOT" -bp "--target=$(uname -m)" "$TMPBUILDROOT"/SPECS/kernel.spec >> "$LOGFILE" 2>&1 ||
rpmbuild -bp "--target=$(uname -m)" "$(rpm --eval %{_specdir})"/kernel.spec >> "$LOGFILE" 2>&1 || die "rpmbuild -bp failed. you may need to run 'yum-builddep kernel' first."
die "rpmbuild -bp failed. you may need to run 'yum-builddep kernel' first."
RPM_BUILD_DIR=$(rpm --eval %{_builddir}) mv "$TMPBUILDROOT"/BUILD/kernel-*/linux-"${ARCHVERSION%.*}"*"${ARCHVERSION##*.}" "$SRCDIR" >> "$LOGFILE" 2>&1 || die
mv "$RPM_BUILD_DIR"/kernel-*/linux-"${ARCHVERSION%.*}"*"${ARCHVERSION##*.}" "$SRCDIR" >> "$LOGFILE" 2>&1 || die rm -rf "$TMPBUILDROOT"
rm -rf "$TMPSRCDIR"
)
cp "$SRCDIR/.config" "$OBJDIR" || die cp "$SRCDIR/.config" "$OBJDIR" || die
if [[ "$ARCHVERSION" == *-* ]]; then if [[ "$ARCHVERSION" == *-* ]]; then