aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2009-01-22 01:55:26 +0000
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2009-01-22 01:55:26 +0000
commit9bdbd82aa16d3ff0b4cd2828adde49a73c3f1c9b (patch)
tree3a47075c2e259da6176bd05c75362f25e48e28de
parentc46804a91d09ae9d737715dfb14019458bceefa1 (diff)
downloadsimplepkg-9bdbd82aa16d3ff0b4cd2828adde49a73c3f1c9b.tar.gz
simplepkg-9bdbd82aa16d3ff0b4cd2828adde49a73c3f1c9b.tar.bz2
more changes towards #41 completion
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@766 04377dda-e619-0410-9926-eae83683ac58
-rw-r--r--trunk/lib/common.sh36
-rw-r--r--trunk/mkbuild/generic.mkSlackBuild9
-rw-r--r--trunk/mkbuild/kde4.mkSlackBuild9
-rw-r--r--trunk/mkbuild/perl.mkSlackBuild9
-rw-r--r--trunk/src/createpkg3
-rwxr-xr-xtrunk/src/mkbuild29
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 <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
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
}