# Whether to use gpg-agent to sign Manifests
SIGN_MANIFESTS_WITH_GPG_AGENT="off"
+# Whether to just build packages that have Manifest files.
+FORCE_MANIFEST_CHECK="off"
+
+# Whether to just build packages that have signed Manifest files.
+FORCE_MANIFEST_CHECK_SIGNATURE="off"
+
#---------------------------------------------------------------------
# SIMPLARET SECTION
#---------------------------------------------------------------------
- minor changes
- renamed config parameter CREATE_ARCH to CREATEPKG_ARCH
- renamed all "MAKEPKG" config parameters to "PACKAGES", "MAKEPKG_REPOS" to "PACKAGES_DIR"
- - new config parameters PACKAGES_REPOS_STYLE, MOVE_SLACK_REQUIRED, MKBUILDS_SVN_USER,
- PACKAGES_SVN_USER, PACKAGES_SVN_GROUP, MKBUILDS_SVN_GROUP, PACKAGES_REPOS_NOARCH,
- PACKAGES_SVN, CREATEPKG_AUTHOR, SIGN_PACKAGES, SIGN_PACKAGES_USER. SIGN_PACKAGES_KEYID,
- SIGN_PACKAGES_WITH_GPG_AGENT, SOURCE_DIR_USER, SOURCE_DIR_GROUP, SIGN_MANIFESTS,
- SIGN_MANIFESTS_KEYID, SIGN_MANIFESTS_WITH_GPG_AGENT
- cleaner -s option output
+ - new config parameters PACKAGES_REPOS_STYLE, MOVE_SLACK_REQUIRED, MKBUILDS_SVN_USER,
+ PACKAGES_SVN_USER, PACKAGES_SVN_GROUP, MKBUILDS_SVN_GROUP, PACKAGES_REPOS_NOARCH,
+ PACKAGES_SVN, CREATEPKG_AUTHOR, SIGN_PACKAGES, SIGN_PACKAGES_USER. SIGN_PACKAGES_KEYID,
+ SIGN_PACKAGES_WITH_GPG_AGENT, SOURCE_DIR_USER, SOURCE_DIR_GROUP, SIGN_MANIFESTS,
+ SIGN_MANIFESTS_KEYID, SIGN_MANIFESTS_WITH_GPG_AGENT, FORCE_MANIFEST_CHECK,
+ FORCE_MANIFEST_CHECK_SIGNATURE
- lspkg: fix on package search routine
- jail-commit: using unified diff
MOVE_BIN_PACKAGE="`eval_boolean_parameter MOVE_BIN_PACKAGE $off`"
MOVE_SLACK_REQUIRED="`eval_boolean_parameter MOVE_SLACK_REQUIRED $off`"
PACKAGES_REPOS_NOARCH="`eval_boolean_parameter PACKAGES_REPOS_NOARCH $on`"
+ FORCE_MANIFEST_CHECK="`eval_boolean_parameter FORCE_MANIFEST_CHECK $off`"
+ FORCE_MANIFEST_CHECK_SIGNATURE="`eval_boolean_parameter FORCE_MANIFEST_CHECK_SIGNATURE $off`"
}
else
FAKEROOT=""
fi
+
+ # Manifest checking
+ if [ $FORCE_MANIFEST_CHECK -eq $on ] || [ $FORCE_MANIFEST_CHECK_SIGNATURE -eq $on ]; then
+ if [ ! -e "`dirname $SCRIPT_NAME`/Manifest" ]; then
+ eecho $messag "$BASENAME: ERROR: no Manifest file for $PACKAGE."
+ return 1
+ fi
+ fi
+
+ # Manifest signature checking
+ if [ $FORCE_MANIFEST_CHECK_SIGNATURE -eq $on ]; then
+ if grep -q -- "-----BEGIN PGP SIGNED MESSAGE-----" `dirname $SCRIPT_NAME`/Manifest; then
+ gpg --verify `dirname $SCRIPT_NAME`/Manifest &> /dev/null
+ if [ "$?" != "0" ]; then
+ eecho $messag "$BASENAME: ERROR: invalid signature for $PACKAGES's Manifest file."
+ return 1
+ fi
+ else
+ eecho $messag "$BASENAME: ERROR: no signed Manifest file for $PACKAGE."
+ return 1
+ fi
+ fi
# Run SlackBuild script
[ $DEBUG -eq $off ] && SHELL_FLAG="+x" || SHELL_FLAG="-x"
# createpkg's build queue
# usage: build_queue <package1> ... <packageN>
- local unable_to_install built=0 total=0
+ local unable_to_install last_status built=0 total=0
if [ -z "$1" ]; then
return
for PACKAGE in $*; do
create_package
- if [ "$?" != "0" ]; then
+ last_status="$?"
+ let total++
+ if [ "$last_status" != "0" ]; then
unable_to_install="$unable_to_install\n\t`echo $PACKAGE | sed -e 's/\\\+/\+/'`"
- let total++
else
let built++
fi
done
- if [ ! -z "$unable_to_install" ]; then
- eecho $messag "$BASENAME: done building $built of $total existing SlackBuilds."
+ if [ ! -z "$unable_to_install" ] && [[ $total > 1 ]]; then
+ eecho $messag "$BASENAME: done building $built of $total requested SlackBuilds."
eecho $messag "$BASENAME: unable to create the following packages:"
echo -e "$unable_to_install"
fi
+ # Exit if last build package exit status
+ exit $last_status
+
}
#---------------------------------------------------