mirror of
https://github.com/dynup/kpatch
synced 2025-02-03 10:41:33 +00:00
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:
parent
b2eeb59b8a
commit
0dec5136ee
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user