[pacman-dev] [PATCH] Add --needed option to makepkg

wgiokas 1007380 at gmail.com
Mon Nov 19 19:51:06 EST 2012


Simply add the option to pass the --needed flag to pacman when using -i
with makepkg. When using makepkg in scripts, particularly for git
packages with the new version functions and not just a date, this can
save disk io and time instead of reinstalling.

This would mostly be useful with the --noconfirm option.

Signed-off-by: wgiokas <1007380 at gmail.com>
---
 doc/makepkg.8.txt     | 4 ++++
 scripts/makepkg.sh.in | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index 9d19e38..498c79b 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -173,6 +173,10 @@ Options
 	(Passed to pacman) Prevent pacman from waiting for user input before
 	proceeding with operations.
 
+*\--needed*::
+	(Passed to pacman) Tell pacman not to reinstall a target if it is already
+	up to date. (used with -i / --install).
+
 *\--asdeps*::
 	(Passed to pacman) Install packages as non-explicitly installed (used
 	with -i / --install).
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index e4bf296..a564a2f 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -2429,6 +2429,7 @@ usage() {
 	echo
 	printf -- "$(gettext "  --asdeps         Install packages as non-explicitly installed")\n"
 	printf -- "$(gettext "  --noconfirm      Do not ask for confirmation when resolving dependencies")\n"
+	printf -- "$(gettext "  --needed         Do not reinstall the targets that are already up to date")\n"
 	printf -- "$(gettext "  --noprogressbar  Do not show a progress bar when downloading files")\n"
 	echo
 	printf -- "$(gettext "If %s is not specified, %s will look for '%s'")\n" "-p" "makepkg" "$BUILDSCRIPT"
@@ -2464,7 +2465,7 @@ OPT_LONG=('allsource' 'asroot' 'check' 'clean' 'config:' 'force' 'geninteg'
           'source' 'syncdeps' 'version')
 
 # Pacman Options
-OPT_LONG+=('asdeps' 'noconfirm' 'noprogressbar')
+OPT_LONG+=('asdeps' 'noconfirm' 'needed' 'noprogressbar')
 
 if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then
 	exit 1 # E_INVALID_OPTION;
@@ -2477,6 +2478,7 @@ while true; do
 		# Pacman Options
 		--asdeps)         ASDEPS=1;;
 		--noconfirm)      PACMAN_OPTS+=" --noconfirm" ;;
+		--needed)         PACMAN_OPTS+=" --needed" ;;
 		--noprogressbar)  PACMAN_OPTS+=" --noprogressbar" ;;
 
 		# Makepkg Options
-- 
1.8.0



More information about the pacman-dev mailing list