)
IFS=$OLDIFS
- # Add a new UID if appropriate. GPG will detect and merge duplicates.
- gpg --homedir=$homedir --no-permission-warning --batch --no-tty --yes \
- --no-default-keyring \
- --secret-keyring=$PLC_ROOT_GPG_KEY \
- --keyring=$PLC_ROOT_GPG_KEY_PUB \
- --command-fd 0 --status-fd 1 --edit-key $fingerprint <<EOF
+
+ # Add a new UID if appropriate. GPG (v1) will detect and
+ # merge duplicates but this is considered as a bug in GPG2
+ # and we need to check for existence.
+ gpg --homedir=$homedir --no-permission-warning --batch --no-tty --yes \
+ --list-keys \
+ --no-default-keyring \
+ --secret-keyring=/etc/planetlab/secring.gpg \
+ --keyring=/etc/planetlab/pubring.gpg \
+ | grep "$PLC_NAME Central" \
+ | grep "$PLC_MAIL_SUPPORT_ADDRESS" \
+ | grep "http://$PLC_WWW_HOST/"
+
+ if [ $? -ne 1 ]; then
+ gpg --homedir=$homedir --no-permission-warning --batch --no-tty --yes \
+ --no-default-keyring \
+ --secret-keyring=$PLC_ROOT_GPG_KEY \
+ --keyring=$PLC_ROOT_GPG_KEY_PUB \
+ --Command-Fd 0 --status-fd 1 --edit-key $fingerprint <<EOF
adduid
$PLC_NAME Central
$PLC_MAIL_SUPPORT_ADDRESS
save
EOF
check
+ fi
+
fi
# Install the key in the RPM database