mirror of
https://github.com/MariaDB/server.git
synced 2025-02-02 03:51:50 +01:00
52 lines
1.3 KiB
Bash
Executable file
52 lines
1.3 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
script_base_dir=`dirname $0`
|
|
|
|
if [ $# != 3 ]; then
|
|
echo "Usage: $0 GPG_UID DESTINATION DISTRIBUTIONS"
|
|
echo " e.g.: $0 'F10399C0' repositories/ 'fedora centos'"
|
|
exit 1
|
|
fi
|
|
|
|
GPG_UID=$1
|
|
DESTINATION=$2
|
|
DISTRIBUTIONS=$3
|
|
|
|
run()
|
|
{
|
|
"$@"
|
|
if test $? -ne 0; then
|
|
echo "Failed $@"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
unsigned_rpms()
|
|
{
|
|
while read rpm; do
|
|
rpm --checksig "$rpm" | grep -v 'gpg OK' | grep -v 'MISSING KEYS' | cut -d":" -f1
|
|
done
|
|
}
|
|
|
|
if ! gpg --list-keys "${GPG_UID}" > /dev/null 2>&1; then
|
|
run gpg --keyserver keyserver.ubuntu.com --recv-key "${GPG_UID}"
|
|
fi
|
|
run mkdir -p tmp
|
|
run gpg --armor --export "${GPG_UID}" > tmp/sign-key
|
|
run rpm --import tmp/sign-key
|
|
run rm -rf tmp/sign-key
|
|
|
|
rpms=""
|
|
for distribution in ${DISTRIBUTIONS}; do
|
|
rpms="${rpms} $(find ${DESTINATION}${distribution} -name '*.rpm' | unsigned_rpms)"
|
|
done
|
|
|
|
echo "NOTE: YOU JUST ENTER! YOU DON'T NEED TO INPUT PASSWORD!"
|
|
echo " IT'S JUST FOR rpm COMMAND RESTRICTION!"
|
|
run echo $rpms | xargs rpm \
|
|
-D "_gpg_name ${GPG_UID}" \
|
|
-D "_gpg_digest_algo sha1" \
|
|
-D "__gpg /usr/bin/gpg2" \
|
|
-D "__gpg_check_password_cmd /bin/true true" \
|
|
-D "__gpg_sign_cmd %{__gpg} gpg --batch --no-verbose --no-armor %{?_gpg_digest_algo:--digest-algo %{_gpg_digest_algo}} --no-secmem-warning -u \"%{_gpg_name}\" -sbo %{__signature_filename} %{__plaintext_filename}" \
|
|
--resign
|