[pacman-contrib] [PATCH 1/2] updpkgsums: rely on makepkg's exported schema declaration for algo types
Eli Schwartz
eschwartz at archlinux.org
Wed Apr 24 17:35:13 UTC 2019
On 4/23/19 2:47 PM, Johannes Löthberg wrote:
> Sorry for the delay, I've been rather busy as of late..
>
> Excerpts from Eli Schwartz's message of April 17, 2019 4:49:
>> Rather than heuristically match (md|sha)[[:digit:]]+sums or even .*sums,
>> read makepkg's internal description of known hash algorithms, and use it
>> to generate a search pattern. This ensures that we will always be in
>> sync with the makepkg installed on the user's system.
>>
>> Fixes support for the newly added b2sums algorithm.
>>
>> Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
>> ---
>
> I really like the idea, but...
>
>>
>> This depends on pacman from git master, because schema.sh does not exist
>> in pacman 5.1.x
>>
>> src/updpkgsums.sh.in | 10 ++++++++--
>> 1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/updpkgsums.sh.in b/src/updpkgsums.sh.in
>> index 9c545ea..618f471 100644
>> --- a/src/updpkgsums.sh.in
>> +++ b/src/updpkgsums.sh.in
>> @@ -22,6 +22,11 @@ shopt -s extglob
>> declare -r myname='updpkgsums'
>> declare -r myver='@PACKAGE_VERSION@'
>>
>> +LIBRARY=${LIBRARY:-'@datarootdir@/makepkg'}
>
> ... I don't really like using @datarootdir@ for this, since we don't
> necessarily know that pacman was installed to the same datarootdir that
> we will be installed to.
>
> Would be nicer if there was a libmakepkg.pc that pointed to the
> libmakepkg install dir, or at least its prefix, so we could query the
> system for the proper path..
Pending
https://lists.archlinux.org/pipermail/pacman-dev/2019-April/023345.html
This patch is therefore delayed until then.
>> +
>> +# Import libmakepkg
>> +source "$LIBRARY"/util/schema.sh
>> +
>> usage() {
>> printf "%s v%s\n" "${myname}" "${myver}"
>> echo
>> @@ -92,9 +97,10 @@ export BUILDDIR=$(mktemp -d "${TMPDIR:-/tmp}/updpkgsums.XXXXXX")
>> newbuildfile=$(mktemp "${TMPDIR:-/tmp}/updpkgsums.XXXXXX")
>>
>> trap "rm -rf '$BUILDDIR' '$newbuildfile'" EXIT
>> +sumtypes=$(IFS='|'; echo "${known_hash_algos[*]}")
>> newsums=$(makepkg -g -p "$buildfile" "${MAKEPKG_OPTS[@]}") || die 'Failed to generate new checksums'
>> -awk -v newsums="$newsums" '
>> - /^[[:blank:]]*(md|sha)[[:digit:]]+sums(_[^=]+)?=/,/\)[[:blank:]]*(#.*)?$/ {
>> +awk -v sumtypes="$sumtypes" -v newsums="$newsums" '
>> + $0 ~"^[[:blank:]]*(" sumtypes ")sums(_[^=]+)?=", $0 ~ "\)[[:blank:]]*(#.*)?$" {
>> if (!w) {
>> print newsums
>> w++
>> --
>> 2.21.0
>>
--
Eli Schwartz
Bug Wrangler and Trusted User
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1601 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/pacman-contrib/attachments/20190424/24c7f5ff/attachment.sig>
More information about the pacman-contrib
mailing list