From dece66ac180ccc9fa0854e2bb181cd7585ac81a3 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Sun, 19 May 2013 00:03:36 +1000 Subject: 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 --- scripts/makepkg.sh.in | 41 +++++++++++------------------------------ 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index d22d25ae..fca2f2e3 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -2240,7 +2240,12 @@ check_sanity() { ret=1 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 if ! have_function package_${i}; then error "$(gettext "Missing %s function for split package '%s'")" "package_$i()" "$i" @@ -2873,17 +2878,7 @@ if (( INFAKEROOT )); then if (( ! SPLITPKG )); then pkgdir="$pkgdirbase/$pkgname" mkdir "$pkgdir" - 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 + if (( PKGFUNC )); then run_package fi tidy_install @@ -2900,10 +2895,6 @@ fi fullver=$(get_full_version) 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 (( SOURCEONLY )); then if [[ -f $SRCPKGDEST/${pkgbase}-${fullver}${SRCEXT} ]] \ @@ -2981,14 +2972,7 @@ cd_safe "$srcdir" if (( NOEXTRACT && ! VERIFYSOURCE )); then warning "$(gettext "Using existing %s tree")" "src/" -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 +elif (( !REPKG )); then download_sources check_source_integrity (( VERIFYSOURCE )) && exit 0 # $E_OK @@ -3002,8 +2986,8 @@ if (( NOBUILD )); then msg "$(gettext "Sources are ready.")" exit 0 #E_OK else - # check for existing pkg directory; don't remove if we are repackaging - if [[ -d $pkgdirbase ]] && (( ! REPKG || PKGFUNC || SPLITPKG )); then + # clean existing pkg directory + if [[ -d $pkgdirbase ]]; then msg "$(gettext "Removing existing %s directory...")" "pkg/" rm -rf "$pkgdirbase" fi @@ -3027,9 +3011,6 @@ else mkdir -p "$pkgdir" if (( PKGFUNC )); then 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 tidy_install create_package @@ -3038,7 +3019,7 @@ else run_split_packaging fi else - if (( ! REPKG && ( PKGFUNC || SPLITPKG ) )); then + if (( ! REPKG )); then (( BUILDFUNC )) && run_build (( CHECKFUNC )) && run_check cd_safe "$startdir" -- cgit v1.2.3-70-g09d2