バージョンによって rpm --addsign する GPG 鍵を切り替える

最近、VineSeedvine-keyring に 4096R の GPG 鍵を登録されたので、.rpmmacros の設定を以下のように切り替えました。

#%_gpg_name 0x7637A1D1
%_gpg_name 0xC24B55FD

しかし、Vine Linux 5 向けの rpm に鍵署名をする場合、まだ vine-keyring に新しい鍵が登録されていないため、以前の鍵で署名しないといけません。

いちいち .rpmmacros を切り替えるのが面倒だったので、鍵署名をするための簡単なスクリプトを書いてみました。

#!/bin/bash

TARGET_DIR="${HOME}/rpm/RPMS/ ${HOME}/rpm/SRPMS/ ${HOME}/rpm/vbuilder/"

RPM_addsign(){
    while read dest_release _gpg_name; do

	echo "Please enter passphrase of ${_gpg_name}"
	rpm -D "_gpg_name ${_gpg_name}" \
	    --addsign $(find ${TARGET_DIR} -type f -name "*${dest_release}*.rpm")
    done

    return 0
}

## prep
sed -e "s/^%_gpg_name/#%_gpg_name/" ${HOME}/.rpmmacros

cat<<EOF | RPM_addsign
vl6 0xC24B55FD
vl5 0x7637A1D1
EOF

## post
sed -e "s/^#%_gpg_name/%_gpg_name/" ${HOME}/.rpmmacros

exit

私はいつも rpm を投げる前にまとめて鍵署名をする人なので、しばらくこれで対応します。