[pacman-dev] Unusable pacman-key help by default

Ivan c00kiemon5ter Kanak ivan.kanak at gmail.com
Mon Mar 28 19:05:28 EDT 2011

On 28 March 2011 20:27, Dan McGee <dpmcgee at gmail.com> wrote:

> This is not cool at all, patches welcome from anyone. :)
> dmcgee at clifden ~/projects/pacman (master)
> $ ./scripts/pacman-key --help
> mkdir: cannot create directory `/etc/pacman.d/gnupg': Permission denied
Hi all, I'm pretty new here, so I'm not sure how I should send this. I've
read the submitting-patches page but there are lots of things to experiment
with. So I thought I'd just send it as it is now and look more into how to
submit patches tomorrow and maybe ask for some help on irc. This is actually
the output of 'git show'.

also two comments:
a. On line 227 we define a default location for the PACMAN_KEYRING_DIR . On
lines 228-234 we read the command line options and set the
PACMAN_KEYRING_DIR to the one specified by the appropriate switch. On lines
244-246 we read the configuration file and look for GPGDir variable which
sets again the PACMAN_KEYRING_DIR.
I find this behaviour a bit strange. I would expect the command line options
to overide the configuration file settings. Is that a bug or a wanted
behavior ?
b. I like that we use bash, and not restrict ourselves to sh. Is that valid
for devtools too ? Are we restricted to some bash version ? I've seen some
of the devtools scripts and I think bash would make some things easier and


commit 4004b8e927705cab0e0d4fefcf7d04cf7630a2e7
Author: Ivan Kanakarakis <ivan.kanak at gmail.com>
Date:   Tue Mar 29 01:47:07 2011 +0300

    This fixes the issue raised by Dan McGee, the wrong processing of -h,
         --help switches. It ignores any other switch given if any of those
         two are present. It also skips the root check. Why would one need
         to be root to see the help message ?

    Signed-off-by: Ivan Kanakarakis <ivan.kanak at gmail.com>

diff --git a/scripts/pacman-key.sh.in b/scripts/pacman-key.sh.in
index 89e52fc..490dc39 100644
--- a/scripts/pacman-key.sh.in
+++ b/scripts/pacman-key.sh.in
@@ -211,6 +211,14 @@ if ! type gettext &>/dev/null; then

+for opt in ${opts[@]}; do
+    if [[ $opt == "--help" || $opt == "-h" ]]; then
+        usage
+        exit 0
+    fi
 if [[ $1 != "--version" && $1 != "-V" && $1 != "--help" && $1 != "-h" && $1
!= "" ]]; then
  if type -p gpg >/dev/null 2>&1 = 1; then
  error "$(gettext "gnupg does not seem to be installed.")"
@@ -316,8 +324,6 @@ case "${command}" in
  ${GPG_PACMAN} "$@" || ret=$?
  exit $ret
- -h|--help)
- usage; exit 0 ;;
  version; exit 0 ;;

More information about the pacman-dev mailing list