From 9bdbd82aa16d3ff0b4cd2828adde49a73c3f1c9b Mon Sep 17 00:00:00 2001 From: rhatto Date: Thu, 22 Jan 2009 01:55:26 +0000 Subject: more changes towards #41 completion git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@766 04377dda-e619-0410-9926-eae83683ac58 --- trunk/lib/common.sh | 36 ++++++++++++++++++++++++++++++++++++ trunk/mkbuild/generic.mkSlackBuild | 9 +++++++++ trunk/mkbuild/kde4.mkSlackBuild | 9 +++++++++ trunk/mkbuild/perl.mkSlackBuild | 9 +++++++++ trunk/src/createpkg | 3 +++ trunk/src/mkbuild | 29 +---------------------------- 6 files changed, 67 insertions(+), 28 deletions(-) diff --git a/trunk/lib/common.sh b/trunk/lib/common.sh index cc63bc6..c3b09d6 100644 --- a/trunk/lib/common.sh +++ b/trunk/lib/common.sh @@ -1686,6 +1686,42 @@ function get_sign_user { } +function update_keyring { + + # update keyring using GPG-KEY from a repository + # usage: update_keyring + + 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 diff --git a/trunk/mkbuild/generic.mkSlackBuild b/trunk/mkbuild/generic.mkSlackBuild index 93e7746..972c9f4 100644 --- a/trunk/mkbuild/generic.mkSlackBuild +++ b/trunk/mkbuild/generic.mkSlackBuild @@ -239,6 +239,15 @@ echo Success. # 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 diff --git a/trunk/mkbuild/kde4.mkSlackBuild b/trunk/mkbuild/kde4.mkSlackBuild index 0e34547..7ca8989 100644 --- a/trunk/mkbuild/kde4.mkSlackBuild +++ b/trunk/mkbuild/kde4.mkSlackBuild @@ -226,6 +226,15 @@ echo Success. # 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 diff --git a/trunk/mkbuild/perl.mkSlackBuild b/trunk/mkbuild/perl.mkSlackBuild index 3a8f091..a7fa7a8 100644 --- a/trunk/mkbuild/perl.mkSlackBuild +++ b/trunk/mkbuild/perl.mkSlackBuild @@ -187,6 +187,15 @@ echo Success. # 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 diff --git a/trunk/src/createpkg b/trunk/src/createpkg index 705b10b..bbb0a4b 100644 --- a/trunk/src/createpkg +++ b/trunk/src/createpkg @@ -657,6 +657,9 @@ esac # 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`" diff --git a/trunk/src/mkbuild b/trunk/src/mkbuild index 6ca1259..0f786e1 100755 --- a/trunk/src/mkbuild +++ b/trunk/src/mkbuild @@ -1540,34 +1540,7 @@ function mkbuild_update_keyring { # 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 } -- cgit v1.2.3