package, package2, package3 naming-with-version exploit

Panu Matilainen pmatilai at laiskiainen.org
Fri Mar 29 10:31:30 UTC 2013


On 03/29/2013 12:02 PM, Tomas Mraz wrote:
> On Thu, 2013-03-28 at 14:43 -0400, James Antill wrote:
>> On Thu, 2013-03-28 at 13:53 +0100, Vít Ondruch wrote:
>>> Dne 28.3.2013 13:30, Jan Zelený napsal(a):
>>>> On 28. 3. 2013 at 12:59:44, Vít Ondruch wrote:
>>>>> Dne 28.3.2013 12:09, Florian Festi napsal(a):
>>>>>> This is done to make life easier for package maintainers.
>>>>> Sorry, you definitely not speak for me! This are just excuses. And I
>>>>> asked already several times to have some way to reliable support
>>>>> multiple version of packages without mangling their names.
>>>> Víťo,
>>>> I certainly understand your frustration, as it comes from talking about this
>>>> topic over and over again. However Ruby community is a *very* special case in
>>>> this regard and I'd like to treat it as such.
>>>>
>>>> If you want, we can start a discussion here. But if we do, let's keep the
>>>> discussion strictly constructive and just about *technical* problems. Let's
>>>> not take this to design level of things, as Ruby and Fedora are two completely
>>>> different worlds that will never be fully compatible by design. Therefore the
>>>> final solution (if there is any) has to be some sort of compromise.
>>>>
>>>> Thanks
>>>> Jan
>>>
>>> My point is: "First step to find technical solution for some issue is
>>> admit that there is some issue".
>>
>>   I agree this is a problem, everyone who knows how Fedora packaging
>> works has said, to you, some variant of:
>>
>>   The technical problem is being able to install multiple versions of a
>> package, and you can do that now (and have been able to for the last 10
>> years).
>>   Here is a long list of technical reasons why your desire to have all
>> the parallel installable versions of "foo" called "foo" is not going to
>> work.
>
> I can imagine only one reason for this desire - so that the user can do
> just "yum install foo" when he just wants the latest version of "foo".
>
> What I can see as a possible solution is the following (whether the
> desire above is really worth implementing it is another question):
> Add a new field to the current NEVR fields called for example Branch.
>
> So you would have a NBEVR.
>
> For rpm and yum the Branch field would be something to be treated as
> part of Name, except situation when 'yum install Name' would just choose
> to install Name-Branch package with highest Branch.
>
> The Fedora packaging infrastructure on the other hand would work with
> Branch rather as part of the version except it would allow having
> multiple packages of the same name but different branch in the
> repositories. The infrastructure would have to also allow both having a
> different git branch in the git repositories for different "package
> branch" and also having different "package branches" built from a single
> git branch.
>
> The question is whether good backwards compatibility can be achieved and
> whether all this work needed to support this is really worth the
> improvements for developers and end users.

This is actually fairly close to what I've suggested: it wouldn't be 
hard to add a little bit of spec syntax sugar to allow specifying a 
"branch" in the spec or even on the command line. Except that in this 
case the spec-level "branch" would just be something thats encoded 
(well, likely appended) to the resulting binary package name(s) and not 
a new concrete tag which rpm, yum and all the related tools will need to 
be very tediously (getting such a thing deployed in Fedora is a 
multi-year process) taught about. When a "branch" is present, rpmbuild 
could add extra provides to allow name-branch and name to work.

That would make things easier for packagers, but be fully compatible 
with all rpm related tools as in the binary-level, nothing actually changes.

	- Panu -


More information about the devel mailing list