Port system "problems"

Marcus von Appen mva at FreeBSD.org
Tue Jun 26 08:56:14 UTC 2012


Baptiste Daroussin <bapt at FreeBSD.org>:

> On Tue, Jun 26, 2012 at 10:34:00AM +0200, Marcus von Appen wrote:
>> Matthew Seaman <m.seaman at infracaninophile.co.uk>:
>>
>> > On 26/06/2012 08:26, Marcus von Appen wrote:
>> >>>> 1. Ports are not modular
>> >
>> >>> What do you mean by modular? if you are speaking about subpackages it
>> >>> is coming,
>> >>> but it takes time
>> >
>> >> I hope, we are not talking about some Debian-like approach here (foo-bin,
>> >> foo-dev, foo-doc, ....).
>> >
>> > Actually, yes -- that's pretty much exactly what we're talking about
>> > here.  Why do you feel subpackages would be a bad thing?
>>
>> Because it makes installing ports more complex, causes maintainers to rip
>> upstream installation routines apart, and burdens users with  
>> additional tasks
>> to perform for what particular benefit (except saving some disk space)?
>>
>> If I want to do some development the Debian way, I would need to do the
>> following:
>>
>> - install foo-bin (if it ships with binaries)
>> - install foo-lib (libraries, etc.)
>> - install foo-dev (headers, etc.)
>> - install foo-doc (API docs)
>>
>> With the ports I am currently doing:
>>
>> - install foo
>>
>
> yes but you do not allow to install 2 packages one depending on  
> mysql51 and one
> depending on mysql55, there will be conflicts on dependency just because of
> developpement files, the runtime can be made not to conflict.

But I can't install mysql51-dev and mysql55-dev. Resolving those conflicts
by e.g. introducing unique prefixes would be much better. Shouldn't we
rather find a solid concept for avoiding CONFLICT entries by using e.g.
improved prefixes, instead of starting to split packages, which does not
add any noticeable benefit (at least I can't see one yet).

> I trust maintainers to no abuse package splitting and do it when it  
> make sense.
>
> In the case you give I would probably split the package that way:
> foo (everything needed in runtime: bin + libraries)

If the libs of e.g. mysql51 and mysql55 are named similar, we still have
the same problem as mentioned above and end up with additionaly hackery, which
better would be placed elsewhere.

> foo-dev (everything needed for developper: headers, static  
> libraries, pkg-config
> stuff, libtool stuff, API docs)
> foo-docs (all user documentation about the runtime)

For which version? 51, 55? Again, we need some prefix hackery to keep that
clean and allow a side-by-side installation.

Although I refer to your example, it is not limited to it. The same applies
to other ports, which install multiple versions. I doubt, that splitting ports
is the right way to go here, since it does not solve the initial problem.

As long as there are CONFLICTs, splitting just tries to circumvent them.
Instead we should handle them right from the start. We did it with  
some success
(and still existing regressions) for e.g. lang/python. So we surely can take
our time to edge out some guidelines and best practices for avoiding  
CONFLICTs.

Cheers
Marcus




More information about the freebsd-ports mailing list