Gentoo Archives: gentoo-pms

From: Brian Harring <ferringb@×××××.com>
To: Micha?? G??rny <mgorny@g.o>
Cc: gentoo-pms@l.g.o
Subject: Re: [gentoo-pms] [PATCH] Make it clear that PMs are allowed to handle 'invalid' names.
Date: Sun, 23 Sep 2012 01:24:55
Message-Id: 20120923012440.GL5384@localhost
In Reply to: [gentoo-pms] [PATCH] Make it clear that PMs are allowed to handle 'invalid' names. by "Michał Górny"
1 On Sun, Sep 23, 2012 at 12:41:06AM +0200, Micha?? G??rny wrote:
2 > ---
3 > names.tex | 6 ++++--
4 > 1 file changed, 4 insertions(+), 2 deletions(-)
5 >
6 > diff --git a/names.tex b/names.tex
7 > index decc8f4..5a3866f 100644
8 > --- a/names.tex
9 > +++ b/names.tex
10 > @@ -2,8 +2,10 @@
11 >
12 > \section{Restrictions upon Names}
13 >
14 > -No name may be empty. Package managers must not impose fixed upper boundaries upon the length of any
15 > -name. A package manager should indicate or reject any name that is invalid according to these rules.
16 > +No name may be empty. Package managers must not impose fixed upper
17 > +boundaries upon the length of any name. A package manager should
18 > +indicate or reject any name that is invalid according to these rules.
19 > +Package managers are allowed to accept names not following those rules.
20
21 "Here's some rules. You must abide by them. Or you can ignore them."
22
23 This patch really doesn't deserve a response on that alone.
24
25
26 Honestly, it's a stupid minor wart of PMS names that's a pain in the
27 ass to remove, and was added at the time (going from memory, but this
28 should be accurate) because portage internally used a combined cp/cpv
29 parser, and didn't pass in context as to whether or not a version was
30 needed- and the code consuming that results didn't enforce
31 version/non-version matching operator. Meaning an atom of
32 'dev-util/diffball-1' portage would be view as 'dev-util/diffball'.
33
34
35 Annoying? Fuck Yes. Worth removing? Sure, after scoping the
36 breakage, and figuring out the implications for code that doesn't
37 support the new rules in light of the fact the vdb's package names
38 rules are *unversioned*. That's the real problem here, not setting
39 some "well we'll just block it from being usable in gentoo-x86;
40 problem solved!".
41
42 Offhand, and frankly I'm kind of pissed I had to even do this legwork
43 because your noisy fucking ass couldn't be bothered to do the
44 the necessary legwork looking at sources (god forbid rather
45 than chattering like a poop-flinging monkey, someone fire up a term
46 and go grep'ing and reading sources); right now, changing the rule
47 that way means that a package name of 'diffball-1' would break on
48 portage, pkgcore, and paludis. In other words, as has been said,
49 all current versions, and likely versions from years ago, *will*
50 go boom if they encounter this.
51
52 In portages case, the exact consequence are hard to state- their
53 design isn't exactly centralized, but whacky/fantactistcally/daffy
54 results should be expected. Minimally it spots the borkedness, but to
55 identify exactly what it'll do in each case requires checking each
56 case; as said, they don't have a centralizd handling.
57
58 Minimally, pkgcore and paludis, current versions see this anywhere,
59 they *will* throw an exception because its broken data- to make it
60 into the vdb is either corruption of the disk, or corruption of the
61 VDB by a broken PM implementation. Both things have to be flagged,
62 even though it sucks, and that's what we do.
63
64 For portage, go figure out the results; I already know it flags
65 'diffball-1' as a bad package name, the full way that causes
66 explosions, don't know, but I've already burnt 20 minutes doing
67 legwork you should've done, so now you need to go do the legwork for
68 your fucking proposal.
69
70 ~harring

Replies