1 |
On Sat, Sep 19, 2015 at 5:05 AM, Michał Górny <mgorny@g.o> wrote: |
2 |
> Dnia 2015-09-19, o godz. 03:50:52 |
3 |
> konsolebox <konsolebox@×××××.com> napisał(a): |
4 |
> |
5 |
>> On Sat, Sep 19, 2015 at 2:23 AM, Michał Górny <mgorny@g.o> wrote: |
6 |
>> > And similarly to the current solution it's full of silly special cases and magical rules. If you really want something simple and clean, take a look at the scheme used by pkg-config and rpm. |
7 |
>> |
8 |
>> Silly because it uses a not-so-monolithic approach which is more |
9 |
>> convenient to implement and actually works? What special cases or |
10 |
>> magical rules where you could find it more complex than the current |
11 |
>> spec? |
12 |
> |
13 |
> It's silly because it shifts the existing terrible structure a bit |
14 |
> and doesn't really solve most of its issues |
15 |
|
16 |
What issues? My spec was not meant to solve issues which can't be |
17 |
solved by any universal algorithm. And it's not meant to add a |
18 |
feature, but it can be used as a basis for one that would. |
19 |
|
20 |
Perhaps provide your own spec on how you could solve those issues then |
21 |
let's see if your point is correct. |
22 |
|
23 |
> It's silly because you |
24 |
> still have a fair number of limitations which make parsing harder |
25 |
> rather than easier. |
26 |
|
27 |
What limitations specifically? I'm not sure why you'd find it harder, |
28 |
as compared to the current spec. And it's not even hard generally. |
29 |
|
30 |
> It's silly because you still have to remember |
31 |
> the relation between 'alpha', 'beta', 'rc' and 'pre'. |
32 |
|
33 |
What kind of implementation would you have where you don't remember |
34 |
those? Do you imply to completely avoid them? How would you get to |
35 |
compare versions having alpha, beta, pre and rc then? Do you mean to |
36 |
use another library to get each one's priority? Wouldn't that still |
37 |
need to be specified in the spec? |
38 |
|
39 |
> It's silly |
40 |
> because those magical suffixes never match what upstreams use. |
41 |
> And those are just a few sillinesses. |
42 |
|
43 |
Yeah unfortunately there could be just unlimited number of possible |
44 |
suffixes and unlimited ways on how they could be used so the best |
45 |
thing you could do is provide what's commonly used and just let the |
46 |
ebuild maintainer decide how he could work around with those suffixes |
47 |
so he could present it well on the ebuild. |
48 |
|
49 |
>> And about pkg-config and rpm: I haven't thoroughly examined them yet, |
50 |
>> but you sure their implementation is applicable to Gentoo? It might |
51 |
>> just turn simpler because it's more limited or strict. Gentoo allows |
52 |
>> stages, patches and revisions and uses predefined prefixes. Mine |
53 |
>> starts on a flexible approach where "version nodes" are allowed |
54 |
>> everywhere. |
55 |
> |
56 |
> Then you should have. It is appreciated when people do some *research* |
57 |
> before throwing out random ideas on areas they have almost no idea of. |
58 |
|
59 |
It's not a random idea as it only intends to simplify the current |
60 |
spec, not drastically change it. And it doesn't really matter for me |
61 |
to thoroughly understand them if you only intend to completely change |
62 |
Gentoo's packaging system to be like them. It's not my spec's concern |
63 |
to change things that way. |
64 |
|
65 |
> And to save you some time reading: the rpm implementation is simpler |
66 |
> and more flexible. It's free of stupidities like hardcoded suffix |
67 |
> lists or forced component ordering. Ordering (pre/post) is expressed |
68 |
> explicitly, and in many more cases you can avoid writing something |
69 |
> completely different than what upstream uses. |
70 |
|
71 |
I'm not sure what you mean, but you sure that adding the ability to |
72 |
expression pre/post ordering does not make the algorithm even more |
73 |
complicated? Note that you have to consider how you'd be able to |
74 |
compare versions against other versions. |
75 |
|
76 |
That also sounds to me like you just have to add a _post stage with a |
77 |
+1 value and it would be enough, rather than having a complete |
78 |
overhaul. |
79 |
|
80 |
You say that you can express ordering explicitly: I find that it's |
81 |
just the same problem you encounter when deciding what value to give |
82 |
on _pre when encountering word versions like trial, devel, testing, |
83 |
etc. |
84 |
|
85 |
I really think adding more commonly used suffixes should be enough. |
86 |
|
87 |
Btw, can you give a link on how the pre/post ordering is expressed? I |
88 |
can't find any RPM versioning spec that describes how it's done. |
89 |
|
90 |
>> If perhaps you mean to completely overhaul Gentoo's way of |
91 |
>> implementing package versions, I don't think that would work. |
92 |
> |
93 |
> And is your change going to work? Because if you understood how ebuilds |
94 |
> work, you'd know you practically can't change versioning because you'd |
95 |
> immediately break compatibility between 'old' and 'new' ebuilds. |
96 |
|
97 |
Except that mine is unlikely to break compatibility with current |
98 |
packages. You have issues against the very foundations of the current |
99 |
implementation, but that's not really about my spec per se. You seem |
100 |
to be barking at the wrong tree and I don't think that would help. |
101 |
|
102 |
> This |
103 |
> isn't something that was designed to support changes in version scheme, |
104 |
> and changing that won't be anywhere close to easy. And if we ever agree |
105 |
> on doing that, we should go for a complete and useful solution rather |
106 |
> than some minor change with even smaller benefit. |
107 |
|
108 |
Unfortunately doing an overhaul may never happen unless you create |
109 |
Gentoo 2.0 where a mirror of every package would work on it. So |
110 |
simplifying it first (and optionally enhancing without breaking) could |
111 |
be a good choice whether an overhaul happens later or not. |