}
+function update_keyring {
+
+ # update keyring using GPG-KEY from a repository
+ # usage: update_keyring <keyfile>
+
+ local keyring keys key
+
+ keyring="$1"
+
+ if [ ! -e "$keyring" ]; then
+ repo_gpg_key $MKBUILDS_DIR
+ return
+ fi
+
+ keys="`gpg --with-colons $keyring | cut -d : -f 5 | sed -e '/^$/d'`"
+
+ for key in $keys; do
+ if [ ! -z "$SIGN_USER" ] && [ "`whoami`" != "$SIGN_USER" ]; then
+ su $SIGN_USER -c "gpg --list-keys $key &> /dev/null"
+ if [ "$?" != "0" ]; then
+ echo "Updating keyring using $keyring..."
+ su $SIGN_USER -c "gpg --import $keyring"
+ break
+ fi
+ else
+ gpg --list-keys $key &> /dev/null
+ if [ "$?" != "0" ]; then
+ echo "Updating keyring using $keyring..."
+ gpg --import $keyring
+ break
+ fi
+ fi
+ done
+
+}
+
function rmd160sum {
# computes RIPEMD-160 message digest
# Check Manifest file
if [ -e "$CWD/Manifest" ]; then
+ # Manifest signature checking
+ if grep -q -- "-----BEGIN PGP SIGNED MESSAGE-----" $CWD/Manifest; then
+ echo "Checking Manifest signature..."
+ gpg --verify $CWD/Manifest
+ if [ "$?" != "0" ]; then
+ exit $ERROR_MANIFEST
+ fi
+ fi
+
MANIFEST_LINES="`grep -E -v "^(MKBUILD|SLACKBUILD)" $CWD/Manifest | wc -l`"
for ((MANIFEST_COUNT=1; MANIFEST_COUNT <= $MANIFEST_LINES; MANIFEST_COUNT++)); do
# Check Manifest file
if [ -e "$CWD/Manifest" ]; then
+ # Manifest signature checking
+ if grep -q -- "-----BEGIN PGP SIGNED MESSAGE-----" $CWD/Manifest; then
+ echo "Checking Manifest signature..."
+ gpg --verify $CWD/Manifest
+ if [ "$?" != "0" ]; then
+ exit $ERROR_MANIFEST
+ fi
+ fi
+
MANIFEST_LINES="`grep -E -v "^(MKBUILD|SLACKBUILD)" $CWD/Manifest | wc -l`"
for ((MANIFEST_COUNT=1; MANIFEST_COUNT <= $MANIFEST_LINES; MANIFEST_COUNT++)); do
# Check Manifest file
if [ -e "$CWD/Manifest" ]; then
+ # Manifest signature checking
+ if grep -q -- "-----BEGIN PGP SIGNED MESSAGE-----" $CWD/Manifest; then
+ echo "Checking Manifest signature..."
+ gpg --verify $CWD/Manifest
+ if [ "$?" != "0" ]; then
+ exit $ERROR_MANIFEST
+ fi
+ fi
+
MANIFEST_LINES="`grep -E -v "^(MKBUILD|SLACKBUILD)" $CWD/Manifest | wc -l`"
for ((MANIFEST_COUNT=1; MANIFEST_COUNT <= $MANIFEST_LINES; MANIFEST_COUNT++)); do
# Synchronize repository
[ $SYNC -eq $yes ] && sync_repo $SLACKBUILDS_DIR $SLACKBUILDS_SVN
+# Update keyring
+update_keyring $SLACKBUILDS_DIR/GPG-KEY
+
# Get SlackBuild script
BUILD_SCRIPT="`find_slackbuild $PACKAGE`"
# Update keyring using GPG-KEY from
# mkbuild repository
- local keyring keys key
-
- keyring="$MKBUILDS_DIR/GPG-KEY"
-
- if [ ! -e "$keyring" ]; then
- repo_gpg_key $MKBUILDS_DIR
- return
- fi
-
- keys="`gpg --with-colons $MKBUILDS_DIR/GPG-KEY | cut -d : -f 5 | sed -e '/^$/d'`"
-
- for key in $keys; do
- if [ ! -z "$SIGN_USER" ] && [ "`whoami`" != "$SIGN_USER" ]; then
- su $SIGN_USER -c "gpg --list-keys $key &> /dev/null"
- if [ "$?" != "0" ]; then
- echo "Updating keyring using $keyring..."
- su $SIGN_USER -c "gpg --import $keyring"
- break
- fi
- else
- gpg --list-keys $key &> /dev/null
- if [ "$?" != "0" ]; then
- echo "Updating keyring using $keyring..."
- gpg --import $keyring
- break
- fi
- fi
- done
+ update_keyring $MKBUILDS_DIR/GPG-KEY
}