[pacman-dev] [PATCH] Provides generation for files (a.k.a. rpm fileattrs for makepkg)

Eli Schwartz eschwartz at archlinux.org
Mon Mar 9 00:07:45 UTC 2020


On 3/8/20 6:54 PM, Carson Black wrote:
>>>> Did you actually try this?
>>>
>>> Yes, I've been using the following packages as tests for this and
>>> inspecting their metadata by hand:
>>>
>>> - vte3 (pkgconfig)
>>> - kwayland (cmake)
>>> - discover (desktop file)
>>>
>>> I know pacman can already install packages given a provides capability,
>>> so I didn't bother setting up a local test repository to confirm the
>>> fact that pacman
>>> can install these packages given their capabilities.
>>
>> You're not reading what I said.
> 
> Pardon, what did you mean by "Did you actually try this"?
> 
> The large quote of the patch's description immediately beforehand had
> me assuming that you were asking about
> if I had tested the patch.

I meant "look at the next few paragraphs, where I will explain why I
don't think you tested this".

And I explicitly ended off with "one would still NOT be able
to use the automatically generated provides for packaging".

But you know what, given you've said

> Yes, I've been using the following packages as tests for this and
> inspecting their metadata by hand:

> I know pacman can already install packages given a provides capability,
> so I didn't bother setting up a local test repository to confirm the
> fact that pacman
> can install these packages given their capabilities.
I guess instead of not trying "use this as a packaging dependency in
PKGBUILDs", you simply didn't test it at all, which is worse than I
initially thought.

So in the interest of proving that "it got successfully written to the
.PKGINFO file" is not sufficient proof that the entire toolchain works,
I invite you to add this repo to pacman.conf (I hacked up write_pkginfo
to verbatim write the contents of any PKGBUILD-supplied function by a
given name, PKGBUILDs are in this http directory):

[junk]
Server = https://pkgbuild.com/~eschwartz/repo/junk/

And run:

$ printf '%s\n' '-`.^&=>=<: 1.0.0.0-:0  $""🤢' | sudo pacman -Syu -
$ printf '%s\n' '-`.^&=>=<: 1.0.0.0-:0/  $""🤢' | sudo pacman -Syu -


It's provided here, so it should work, right? :

$ bsdtar -xOf test-junk2-1-1-any.pkg.tar.zst .PKGINFO | grep provides
provides = -`.^&=>=<: 1.0.0.0-:0  $""🤢
$ bsdtar -xOf test-junk-1-1-any.pkg.tar.zst .PKGINFO | grep provides
provides = -`.^&=>=<: 1.0.0.0-:0/  $""🤢



...

Conclusion: just because it is in the .PKGINFO, doesn't mean pacman
itself can read it. You need to actually look at the changes you make,
and verify the parser will accept it, and document that  it works.

P.S. pacman *can* read 'pkgconfig(libcurl)' provided by the same
database, so that at least will be accepted by *pacman*'s parser. Even
though you didn't test it. Even though makepkg won't let you depend on
it in another package.

-- 
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-dev/attachments/20200308/c1426a6a/attachment.sig>


More information about the pacman-dev mailing list