summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Brunel <i.am.jack.mail@gmail.com>2013-02-23 13:08:44 +0100
committerAllan McRae <allan@archlinux.org>2013-03-10 09:01:56 +1000
commit2259dff7f34b082d8e43af15228e74cba75580f6 (patch)
treed3b420fe0dd82606af11054693973f2b250e3bd4
parent93fa63ee8a7f17bea676ac4f29d1733cb04ef7d2 (diff)
makepkg: Add --verifysource to only download/verify source files
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 <i.am.jack.mail@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--doc/makepkg.8.txt5
-rw-r--r--scripts/makepkg.sh.in8
2 files changed, 11 insertions, 2 deletions
diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index 498c79bb..ecee63a1 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. Useful for performing subsequent offline builds.
+
*-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 e27ee3c2..8145cc3f 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
@@ -2475,6 +2476,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"
@@ -2525,7 +2527,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')
@@ -2574,6 +2576,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
@@ -2951,7 +2954,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 )) \
@@ -2963,6 +2966,7 @@ elif (( REPKG )); then
else
download_sources
check_source_integrity
+ (( VERIFYSOURCE )) && exit 0 # $E_OK
extract_sources
if (( PREPAREFUNC )); then
run_prepare