1
0
mirror of https://github.com/moparisthebest/pacman synced 2024-08-13 17:03:46 -04:00

makepkg: remove support for PKGBUILDs without a package() function

Not having a package() function means all building occurs as root
and repackaging can lose permissions.  Given the use of package()
functions has been around for years and we deprecated not having
one in pacman-4.1, we can remove support for PKGBUILDs without
package() functions altogether. However, keep PKGBUILDs that have
neither a build() or package() function working.

Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Allan McRae 2013-05-19 00:03:36 +10:00
parent 3b4e74cb3b
commit dece66ac18

View File

@ -2240,7 +2240,12 @@ check_sanity() {
ret=1 ret=1
fi fi
if (( ${#pkgname[@]} > 1 )); then if (( ${#pkgname[@]} == 1 )); then
if have_function build && ! ( have_function package || have_function package_${pkgname}); then
error "$(gettext "Missing %s function in %s")" "package()" "$BUILDFILE"
ret=1
fi
else
for i in ${pkgname[@]}; do for i in ${pkgname[@]}; do
if ! have_function package_${i}; then if ! have_function package_${i}; then
error "$(gettext "Missing %s function for split package '%s'")" "package_$i()" "$i" error "$(gettext "Missing %s function for split package '%s'")" "package_$i()" "$i"
@ -2873,17 +2878,7 @@ if (( INFAKEROOT )); then
if (( ! SPLITPKG )); then if (( ! SPLITPKG )); then
pkgdir="$pkgdirbase/$pkgname" pkgdir="$pkgdirbase/$pkgname"
mkdir "$pkgdir" mkdir "$pkgdir"
if (( ! PKGFUNC )); then if (( PKGFUNC )); then
if (( ! REPKG )); then
if (( BUILDFUNC )); then
run_build
(( CHECKFUNC )) && run_check
fi
else
warning "$(gettext "Repackaging without the use of a %s function is deprecated.")" "package()"
plain "$(gettext "File permissions may not be preserved.")"
fi
else
run_package run_package
fi fi
tidy_install tidy_install
@ -2900,10 +2895,6 @@ fi
fullver=$(get_full_version) fullver=$(get_full_version)
msg "$(gettext "Making package: %s")" "$pkgbase $fullver ($(date))" msg "$(gettext "Making package: %s")" "$pkgbase $fullver ($(date))"
if (( !PKGFUNC && !SPLITPKG )); then
warning "$(gettext "Using a %s without a %s function is deprecated.")" "$BUILDSCRIPT" "package()"
fi
# if we are creating a source-only package, go no further # if we are creating a source-only package, go no further
if (( SOURCEONLY )); then if (( SOURCEONLY )); then
if [[ -f $SRCPKGDEST/${pkgbase}-${fullver}${SRCEXT} ]] \ if [[ -f $SRCPKGDEST/${pkgbase}-${fullver}${SRCEXT} ]] \
@ -2981,14 +2972,7 @@ cd_safe "$srcdir"
if (( NOEXTRACT && ! VERIFYSOURCE )); then if (( NOEXTRACT && ! VERIFYSOURCE )); then
warning "$(gettext "Using existing %s tree")" "src/" warning "$(gettext "Using existing %s tree")" "src/"
elif (( REPKG )); then elif (( !REPKG )); then
if (( ! PKGFUNC && ! SPLITPKG )) \
&& { [[ ! -d $pkgdirbase ]] || dir_is_empty "$pkgdirbase"; }; then
error "$(gettext "The package directory is empty, there is nothing to repackage!")"
plain "$(gettext "Aborting...")"
exit 1
fi
else
download_sources download_sources
check_source_integrity check_source_integrity
(( VERIFYSOURCE )) && exit 0 # $E_OK (( VERIFYSOURCE )) && exit 0 # $E_OK
@ -3002,8 +2986,8 @@ if (( NOBUILD )); then
msg "$(gettext "Sources are ready.")" msg "$(gettext "Sources are ready.")"
exit 0 #E_OK exit 0 #E_OK
else else
# check for existing pkg directory; don't remove if we are repackaging # clean existing pkg directory
if [[ -d $pkgdirbase ]] && (( ! REPKG || PKGFUNC || SPLITPKG )); then if [[ -d $pkgdirbase ]]; then
msg "$(gettext "Removing existing %s directory...")" "pkg/" msg "$(gettext "Removing existing %s directory...")" "pkg/"
rm -rf "$pkgdirbase" rm -rf "$pkgdirbase"
fi fi
@ -3027,9 +3011,6 @@ else
mkdir -p "$pkgdir" mkdir -p "$pkgdir"
if (( PKGFUNC )); then if (( PKGFUNC )); then
run_package run_package
elif (( REPKG )); then
warning "$(gettext "Repackaging without the use of a %s function is deprecated.")" "package()"
plain "$(gettext "File permissions may not be preserved.")"
fi fi
tidy_install tidy_install
create_package create_package
@ -3038,7 +3019,7 @@ else
run_split_packaging run_split_packaging
fi fi
else else
if (( ! REPKG && ( PKGFUNC || SPLITPKG ) )); then if (( ! REPKG )); then
(( BUILDFUNC )) && run_build (( BUILDFUNC )) && run_build
(( CHECKFUNC )) && run_check (( CHECKFUNC )) && run_check
cd_safe "$startdir" cd_safe "$startdir"