- new "compact" template storage format
- common.sh:
- default arch when its not present at /etc/slackware-version is now assumed to be "i486"
- - other minor changes
+ - other minor changes and new functions
- repository metainformationg is now added at svn control if applicable
- new functions svn_remove_empty_folders, svn_del, su_svn, chown_svn, chgrp_svn,
regexp_slash, default_distro and svn_add
# check if the package was installed
pack="`echo $pack | sed -e 's/\+/\\\+/'`"
- installed=`eval "ls /$root/var/log/packages/ | grep -E '^$pack-[^-]+-[^-]+-[^-]+$'"`
+ installed="`check_installed $pack $root`"
check=$?
if [ ! -z "$installed" ] && [ "$check" == "0" ]; then
# check if the package is installed
pack="`echo $pack | sed -e 's/\+/\\\+/'`"
- installed=`eval "ls /$1/var/log/packages/ | grep -E '^$pack-[^-]+-[^-]+-[^-]+$'"`
+ installed="`check_installed $pack $1`"
check=$?
if [ -z "$installed" ] || [ "$check" != "0" ]; then
# usage: repo_gpg_key <folder>
- local folder="$1"
+ local folder="$1" tmp_gpg_folder
if [ -z "$SIGN_KEYID" ]; then
echo "GPG-KEY checking failed, no sign key id set."
if [ -f "$folder/GPG-KEY" ]; then
if ! gpg --with-colons < $folder/GPG-KEY | cut -d : -f 5 | grep -q -e "$SIGN_KEYID$"; then
echo "Adding OpenPGP key id $SIGN_KEYID to $folder/GPG-KEY file..."
+
+ tmp_gpg_folder="`mktemp -d $TMP/tmp_gpg_folder.XXXXXX`"
+ tmp_gpg_pubkey="`mktemp -d $TMP/tmp_gpg_pubkey.XXXXXX`"
+
if [ ! -z "$SIGN_PACKAGES_USER" ]; then
- su $SIGN_PACKAGES_USER -c "gpg --export --armor $SIGN_KEYID" >> $folder/GPG-KEY
+ chown $SIGN_PACKAGES_USER $tmp_gpg_folder
+ chown $SIGN_PACKAGES_USER $tmp_gpg_pubkey
+
+ # merge pubkey information in a temporary keyring
+ su $SIGN_PACKAGES_USER -c "gpg --export --armor $SIGN_KEYID > $tmp_gpg_pubkey/pubkey.asc"
+ su $SIGN_PACKAGES_USER -c "gpg --homedir $tmp_gpg_folder --import < $folder/GPG-KEY"
+ su $SIGN_PACKAGES_USER -c "gpg --homedir $tmp_gpg_folder --import < $tmp_gpg_pubkey/pubkey.asc"
+
+ # export temporary keyring to repository keyring
+ su $SIGN_PACKAGES_USER -c "gpg --homedir $tmp_gpg_folder --export --armor" > $folder/GPG-KEY
else
- gpg --export --armor $SIGN_KEYID >> $folder/GPG-KEY
+ # merge pubkey information in a temporary keyring
+ gpg --export --armor $SIGN_KEYID > $tmp_gpg_pubkey/pubkey.asc
+ gpg --homedir $tmp_gpg_folder --import < $folder/GPG-KEY
+ gpg --homedir $tmp_gpg_folder --import < $tmp_gpg_pubkey/pubkey.asc
+
+ # export temporary keyring to repository keyring
+ gpg --homedir $tmp_gpg_folder --export --armor > $folder/GPG-KEY
fi
+
+ # cleanup
+ rm -rf $tmp_gpg_folder $tmp_gpg_pubkey
+
fi
else
echo "Adding OpenPGP key id $SIGN_KEYID to $folder/GPG-KEY file..."
fi
}
+
+function check_installed {
+
+ # checks if a package is installed
+ # usage: check_installed <package_name> [root]
+
+ eval "ls /$2/var/log/packages/ | grep -E '^$1-[^-]+-[^-]+-[^-]+$'"
+
+}