Because --noextract also implies to not download/verify source files, it wasn't
possible to simply do that, without either extracting and/or building.
(Note: --verifysource takes precedence over --noextract)

Signed-off-by: Olivier Brunel <[email protected]>
---
 doc/makepkg.8.txt     | 5 +++++
 scripts/makepkg.sh.in | 8 ++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index 498c79b..87d266b 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -65,6 +65,11 @@ Options
        then make a package out of the result. Keep in mind that creating a
        patch may be a better solution to allow others to use your PKGBUILD.
 
+*\--verifysource*::
+       For each source file in the source array of PKGBUILD, download the file
+       if required and perform the integrity checks. No extraction or build is
+       performed.
+
 *-f, \--force*::
        makepkg will not build a package if a built package already exists in
        the `PKGDEST` (set in linkman:makepkg.conf[5]) directory, which may
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index bd29d73..ce978b1 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -68,6 +68,7 @@ INSTALL=0
 NOBUILD=0
 NODEPS=0
 NOEXTRACT=0
+VERIFYSOURCE=0
 RMDEPS=0
 REPKG=0
 LOGGING=0
@@ -2409,6 +2410,7 @@ usage() {
        printf -- "$(gettext "  -s, --syncdeps   Install missing dependencies 
with %s")\n" "pacman"
        printf -- "$(gettext "  -S, --source     Generate a source-only tarball 
without downloaded sources")\n"
        printf -- "$(gettext "  --allsource      Generate a source-only tarball 
including downloaded sources")\n"
+       printf -- "$(gettext "  --verifysource   Download source files (if 
needed) and perform integrity checks")\n"
        printf -- "$(gettext "  --asroot         Allow %s to run as root 
user")\n" "makepkg"
        printf -- "$(gettext "  --check          Run the %s function in the 
%s")\n" "check()" "$BUILDSCRIPT"
        printf -- "$(gettext "  --config <file>  Use an alternate config file 
(instead of '%s')")\n" "$confdir/makepkg.conf"
@@ -2459,7 +2461,7 @@ OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'config:' 
'force' 'geninteg'
           'help' 'holdver' 'ignorearch' 'install' 'key:' 'log' 'nobuild' 
'nocolor'
           'nocheck' 'nodeps' 'noextract' 'nosign' 'pkg:' 'repackage' 'rmdeps'
           'skipchecksums' 'skipinteg' 'skippgpcheck' 'skippgpcheck' 'sign'
-          'source' 'syncdeps' 'version')
+          'source' 'syncdeps' 'verifysource' 'version')
 
 # Pacman Options
 OPT_LONG+=('asdeps' 'noconfirm' 'needed' 'noprogressbar')
@@ -2508,6 +2510,7 @@ while true; do
                --sign)           SIGNPKG='y' ;;
                -s|--syncdeps)    DEP_BIN=1 ;;
                -S|--source)      SOURCEONLY=1 ;;
+               --verifysource)   VERIFYSOURCE=1 ;;
 
                -h|--help)        usage; exit 0 ;; # E_OK
                -V|--version)     version; exit 0 ;; # E_OK
@@ -2885,7 +2888,7 @@ mkdir -p "$srcdir"
 chmod a-s "$srcdir"
 cd_safe "$srcdir"
 
-if (( NOEXTRACT )); then
+if (( NOEXTRACT && ! VERIFYSOURCE )); then
        warning "$(gettext "Using existing %s tree")" "src/"
 elif (( REPKG )); then
        if (( ! PKGFUNC && ! SPLITPKG )) \
@@ -2897,6 +2900,7 @@ elif (( REPKG )); then
 else
        download_sources
        check_source_integrity
+       (( VERIFYSOURCE )) && exit 0 # $E_OK
        extract_sources
        if (( PREPAREFUNC )); then
                run_prepare
-- 
1.8.1.4


Reply via email to