[PATCH v2] paclist: list packages which version differs from the repo version

Michael Straube michael.straube at posteo.de
Thu Dec 6 11:27:38 UTC 2018


Paclist does not list installed packages if the version is different
from the version in the repository. Change the awk command to also
match such packages from the 'pacman -Sl' output and print the
installed version. Also paclist fails for languages which translate
'installed' to more than one word. So do not use the field numbers
in a record for matching.

Fixes FS#60412

Signed-off-by: Michael Straube <michael.straube at posteo.de>
---
v1 -> v2
Do not use filed numbers for matching.
Also remove export of TEXTDOMAIN and TEXTDOMAINDIR.

 src/paclist.sh.in | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/src/paclist.sh.in b/src/paclist.sh.in
index f827dcf..efd47af 100644
--- a/src/paclist.sh.in
+++ b/src/paclist.sh.in
@@ -20,16 +20,6 @@
 declare -r myname='paclist'
 declare -r myver='@PACKAGE_VERSION@'
 
-export TEXTDOMAIN='pacman'
-export TEXTDOMAINDIR='/usr/share/locale'
-
-# determine whether we have gettext; make it a no-op if we do not
-if ! type gettext &>/dev/null; then
-	gettext() {
-		echo "$@"
-	}
-fi
-
 usage() {
 	printf "%s v%s\n" "${myname}" "${myver}"
 	echo
@@ -59,8 +49,8 @@ elif [[ $1 = -@(V|-version) ]]; then
 	exit 0
 fi
 
-printf -v installed '[%s]' "$(gettext installed)"
-pacman -Sl $1 | awk -v i="$installed" '$NF == i { print $2,$3 }'
+pacman -Sl $1 | awk '/\[.*[[:alpha:]]+]$/ {print $2,$3};
+                     /\[.*[[:digit:]]+]$/ {print $2,substr($NF, 1, length($NF) - 1)}'
 
 # exit with pacman's return value, not awk's
 exit ${PIPESTATUS[0]}
-- 
2.19.2


More information about the pacman-contrib mailing list