1
0
mirror of https://github.com/moparisthebest/pacman synced 2025-01-07 11:58:02 -05:00

makepkg: clean up BUILDSCRIPT usage

FS#15448 (which is made worse by the "fix" for FS#14727...), highlighted
some deficiencies in the usage of the BUILDSCRIPT variable. In particular,
only relative paths worked with "-p" and some output was very strange in
combination with the "-p" flag or reading from /dev/stdin. e.g.
"Please add a license line to your /dev/stdin!".

This patch adds a new variable, BUILDFILE, which contains the full path
to the BUILDSCRIPT.  This defaults to $startdir/$BUILDSCRIPT.

Also, fix a missed quoting of $BUILD{SCRIPT->FILE} and remove warning
about missing BUILDSCRIPT definition in makepkg.conf as the default
BUILDSCRIPT value is now specified during configure. Add check that
BUILDFILE is writable before updating VCS PKGBUILDs. When making a source
package, the BUILDSCRIPT always gets given the default name, regardless
of what it was originally called.

Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Allan McRae 2009-07-12 17:10:11 +10:00
parent 104daa16a6
commit 5dc0b80c26

View File

@ -1032,7 +1032,7 @@ create_srcpackage() {
mkdir "${srclinks}"/${pkgbase} mkdir "${srclinks}"/${pkgbase}
msg2 "$(gettext "Adding %s...")" "$BUILDSCRIPT" msg2 "$(gettext "Adding %s...")" "$BUILDSCRIPT"
ln -s "${startdir}/${BUILDSCRIPT}" "${srclinks}/${pkgbase}/" ln -s "${BUILDFILE}" "${srclinks}/${pkgbase}/${BUILDSCRIPT}"
if [ -n "$install" ]; then if [ -n "$install" ]; then
if [ -f $install ]; then if [ -f $install ]; then
@ -1192,8 +1192,9 @@ devel_check() {
newpkgver="" newpkgver=""
# Do not update pkgver if --holdver is set, when building a source package, # Do not update pkgver if --holdver is set, when building a source package,
# or when reading PKGBUILD from pipe # when reading PKGBUILD from pipe (-f), or if we cannot write to the file (-w)
if [ "$HOLDVER" -eq 1 -o "$SOURCEONLY" -ne 0 -o ! -f "./$BUILDSCRIPT" ]; then if [ "$HOLDVER" -eq 1 -o "$SOURCEONLY" -ne 0 -o ! -f "$BUILDFILE" \
-o ! -w "$BUILDFILE" ]; then
return return
fi fi
@ -1262,10 +1263,10 @@ devel_update() {
# #
if [ -n "$newpkgver" ]; then if [ -n "$newpkgver" ]; then
if [ "$newpkgver" != "$pkgver" ]; then if [ "$newpkgver" != "$pkgver" ]; then
if [ -f "./$BUILDSCRIPT" ]; then if [ -f "$BUILDFILE" -a -w "$BUILDFILE" ]; then
@SEDINPLACE@ "s/^pkgver=[^ ]*/pkgver=$newpkgver/" "./$BUILDSCRIPT" @SEDINPLACE@ "s/^pkgver=[^ ]*/pkgver=$newpkgver/" "$BUILDFILE"
@SEDINPLACE@ "s/^pkgrel=[^ ]*/pkgrel=1/" "./$BUILDSCRIPT" @SEDINPLACE@ "s/^pkgrel=[^ ]*/pkgrel=1/" "$BUILDFILE"
source "$BUILDSCRIPT" source "$BUILDFILE"
fi fi
fi fi
fi fi
@ -1480,7 +1481,7 @@ while true; do
-L|--log) LOGGING=1 ;; -L|--log) LOGGING=1 ;;
-m|--nocolor) USE_COLOR='n' ;; -m|--nocolor) USE_COLOR='n' ;;
-o|--nobuild) NOBUILD=1 ;; -o|--nobuild) NOBUILD=1 ;;
-p) shift; BUILDSCRIPT=$1 ;; -p) shift; BUILDFILE=$1 ;;
-r|--rmdeps) RMDEPS=1 ;; -r|--rmdeps) RMDEPS=1 ;;
-R|--repackage) REPKG=1 ;; -R|--repackage) REPKG=1 ;;
--source) SOURCEONLY=1 ;; --source) SOURCEONLY=1 ;;
@ -1565,11 +1566,6 @@ if [ "$CLEANCACHE" -eq 1 ]; then
fi fi
fi fi
if [ -z "$BUILDSCRIPT" ]; then
error "$(gettext "BUILDSCRIPT is undefined! Ensure you have updated %s.")" "$MAKEPKG_CONF"
exit 1
fi
if [ "$INFAKEROOT" -eq 0 ]; then if [ "$INFAKEROOT" -eq 0 ]; then
if [ $EUID -eq 0 -a "$ASROOT" -eq 0 ]; then if [ $EUID -eq 0 -a "$ASROOT" -eq 0 ]; then
# Warn those who like to live dangerously. # Warn those who like to live dangerously.
@ -1616,23 +1612,27 @@ unset pkgname pkgbase pkgver pkgrel pkgdesc url license groups provides
unset md5sums replaces depends conflicts backup source install build unset md5sums replaces depends conflicts backup source install build
unset makedepends optdepends options noextract unset makedepends optdepends options noextract
if [ ! -f "$BUILDSCRIPT" ]; then BUILDFILE=${BUILDFILE:-$BUILDSCRIPT}
if [ ! -f "$BUILDFILE" ]; then
if [ -t 0 ]; then if [ -t 0 ]; then
error "$(gettext "%s does not exist.")" "$BUILDSCRIPT" error "$(gettext "%s does not exist.")" "$BUILDFILE"
exit 1 exit 1
else else
# PKGBUILD passed through a pipe # PKGBUILD passed through a pipe
BUILDSCRIPT=/dev/stdin BUILDFILE=/dev/stdin
source "$BUILDSCRIPT" source "$BUILDFILE"
fi fi
else else
crlftest=$(file $BUILDSCRIPT | grep -F 'CRLF' || true) crlftest=$(file "$BUILDFILE" | grep -F 'CRLF' || true)
if [ -n "$crlftest" ]; then if [ -n "$crlftest" ]; then
error "$(gettext "%s contains CRLF characters and cannot be sourced.")" "$BUILDSCRIPT" error "$(gettext "%s contains CRLF characters and cannot be sourced.")" "$BUILDFILE"
exit 1 exit 1
fi fi
source ./"$BUILDSCRIPT" if [ "${BUILDFILE:0:1}" != "/" ]; then
BUILDFILE="$startdir/$BUILDFILE"
fi
source "$BUILDFILE"
fi fi
if [ "$GENINTEG" -eq 1 ]; then if [ "$GENINTEG" -eq 1 ]; then