Last active
March 29, 2019 04:40
-
-
Save b1tninja/2e41571a444a7641cb220c8cf5d1011e to your computer and use it in GitHub Desktop.
archlinux-packages-keyring
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pkgname='archlinux-packages-keyring-git' | |
pkgver=0.g6541223ad07 | |
pkgrel=1 | |
#SOURCE_DATE_EPOCH=$(date -u '+%s') | |
arch=('any') | |
_arch_git=${archgit:-'https://git.archlinux.org/svntogit/packages.git'} | |
_keyserver=${keyserver:-'hkps://hkps.pool.sks-keyservers.net'} | |
arch=('any') | |
makedepends=('pacman' 'bash') | |
depends=('pacman') | |
source=( | |
"https://sks-keyservers.net/sks-keyservers.netCA.pem" | |
# "git+${_arch_git}" | |
) | |
_keyring=${keyfile:-"pacakges.gpg"} | |
pkgver() { | |
_git_commit=$(git describe --long --all); | |
_git_timestamp=$(git log -1 --pretty=format:%ct) | |
echo "0.${_git_commit/'heads/master-0-'/}" | |
epoch=$_git_timestamp; | |
} | |
prepare() { | |
[[ -f "${_keyring}" ]] && rm "${_keyring}"; | |
if [[ -d "${pkgname}" ]] | |
then | |
pushd "${pkgname}"; | |
git pull; | |
else | |
git clone --depth=1 --no-checkout "${_arch_git}" "${pkgname}"; | |
pushd "${pkgname}"; | |
fi; | |
#git reset --hard HEAD | |
git checkout HEAD -- */trunk/PKGBUILD | |
} | |
build() { | |
( | |
declare -A pubkeys; | |
pkgbuilds=("${pkgname}/"*/trunk/PKGBUILD); | |
for pkgbuild in ${pkgbuilds[@]}; | |
do | |
unset validpgpkeys; | |
shopt -u extglob; | |
source "${pkgbuild}"; | |
if [[ -z "${validpgpkeys[@]}" ]]; | |
then | |
: #echo "${pkgbuild} - ${pkgname} has no validpgpkeys"; | |
else | |
for pgpkey in ${validpgpkeys[@]}; | |
do | |
if [[ ! $pgpkey=~'[A-F0-9]{40}' ]] || [[ ! $pkgname=~'[^\s]+' ]] | |
then | |
echo "$pkgbuild has an invalid pkgname/key: ${pkgname}/${pgpkey}"; | |
else | |
if [[ ! -z ${pubkeys[${pgpkey}]} ]]; then | |
echo "${pubkeys[${pgpkey}]} and ${pkgbase:-${pkgname[@]}} from ${pkgbuild} both use pgp key: ${pgpkey}" | |
multipkgkeys+=("${pgpkey}") | |
else | |
pubkeys[${pgpkey}]="${pkgbase:-${pkgname[@]}}"; | |
fi; | |
echo $pgpkey $pkgbuild; | |
fi | |
done; | |
fi; | |
done; | |
echo "Found ${#pubkeys[@]} unique pgp keys in ${#pkgbuilds[@]} packages"; | |
# [[ -d ".gnupg" ]] || mkdir .gnugpg -m 750 | |
# cat > .gnupg/dirmngr.conf <<-EOF | |
# --standard-resolver | |
# keyserver --resolve ${_keyserver} | |
# hkp-cacert sks-keyservers.netCA.pem | |
#EOF | |
#gpg-connect-agent reloadagent /bye | |
gpg --auto-key-locate local,keyserver --keyserver "${_keyserver}" --no-default-keyring --keyring "${_keyring}" --auto-key-retrieve --recv-keys "${!pubkeys[@]}"; | |
) | |
} | |
package() { | |
install -d -m 644 -o root -g root "${_keyring}" "${pkgdir}/usr/share/pacman/keyrings/${_keyring}" | |
} | |
sha256sums=('SKIP') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment