On Thu, 2018-03-22 at 09:16 -0400, Eli Schwartz via arch-general wrote:
On 03/21/2018 11:42 PM, Eli Schwartz wrote:
On 03/21/2018 11:31 PM, Morgan Adamiec via arch-general wrote:
I was doing some packing parsing and my parser failed to parse gtk-sharp-2 from extra. Turns out it's because gtk-sharp-2 conflicts with gtk# and my parser refuses to parse it because of man PKGBUILD stating:
PKGNAME: Valid characters for members of this array are alphanumerics, and any of the following characters: “@ . _ + -”. Additionally, names are not allowed to start with hyphens or dots.
Now that's for pgkname but I assume that would extend to conflicts and provides or am I mistaken?
Conflicts/provides should be linted just like pkgname (but this is *not* enforced in code).
Note that pacman will accept many things that makepkg does not, nevertheless makepkg *will* complain with:
==> ERROR: pkgname contains invalid characters: '#'
I'm guessing gtk# used to be a package before those rules were defined and has since been removed. If that's the case I realise that the conflict needs to be there for people who still have gtk# installed. But then again you now have a package in your repos have break your own standards.
I don't know if its a good idea to remove that conflict, that's up to the devs. Would just lfike to know what you think before i go and patch the parser to allow '#'.
That has been there since 2008, I don't think it qualifies as a specific decision. :p
I would say, your tool should correctly detect something wonky with that package.
Ideally I think I would like to implement https://bugs.archlinux.org/task/57833 which would mean gtk-sharp-2 would fail to compile with the next pkgver bump until that conflicts was removed. ;)
Just noticed you're the one who started that other thread. ;) Check out my patch...
Yep, so glad to see someone who knows what they are doing getting this done. :) Also if this is going through then "conflicts=(gtk#)" is going to refuse to build. It would be easy to fix this now, no need to wait for makepkg to tell you.