Port system "problems"

Matthew Seaman m.seaman at infracaninophile.co.uk
Tue Jun 26 10:42:20 UTC 2012


On 26/06/2012 10:31, Andrea Venturoli wrote:
> On 06/26/12 11:03, Matthew Seaman wrote:
> 
>> Yes, it will multiply the number of ports.  By three is about right,
>> given that most ports will only have port-docs and port-examples
>> sub-ports.  However, first of all, you are assuming that the effort
>> required to install each of those sub-ports is the same as it is to
>> install a single port now.  That is simply not the case.
> 
> Not exactly.
> I still didn't get the details, so I might speak nonsense, however...
> 
> The "effort" will be 3x processing time for portupgrade (or whatever) to
> update the package database 3 times as much as before.
> I remember the big X.org split up: going from a few ports to tens of
> them slowed down an installation/upgrade process by an order of
> magnitude (or even more).

The X.org split up is an extreme case -- it went from three or four
ports to several hundred ports as I recall.  Yes, that made a big
difference, because they were all individual ports and all of the
processing steps required to install a port had to be repeated for each
of them.

Sub-ports should be much more efficient, as there's a lot of the work
involved in installing which is a one-time thing when installing port
plus some collection of sub-ports.

Also remember that this whole change is driven in part by the switch to
pkgng, and that uses a completely different package database system to
the current ports.  I can't say for certain that it will be a lot
faster, because as far as I know, no one has done a properly designed
study of the difference in performance.  However anecdotal evidence is
that it does seem quite a lot faster.

>> A typical example would involve client-server apps -- so mysqlNN-server
>> becomes a sub-port of mysqlNN-client.  You get to check a box saying
>> 'install the server as well as the client' when you go to install
>> mysqlNN.  Similarly all those php5-XYZ modules become sub-ports of
>> lang/php5.
> 
> We had this in the past: a php-extension port with options to include
> each extension or leave it out.
> Each time we needed to add a missing extension, we needed to reconfigure
> this port and rebuild all.
> Now we have each extension in its own port and I think it's much better.
> I just hope we don't get back to that.
> 
> 
> 
> What I anticipate will often happen is installing some port, finding out
> that some part is missing, install the missing part, repeat that several
> times.
> I just hope I'm wrong (and again, it is at all possible that I am wrong
> here).

Yes, you raise a valid point.  Should you have to compile and maybe
reinstall all of php5  just to add some extra modules?  Clearly not.

This isn't going to be a problem for people that use binary packages,
because they can just download and install the extra module from the
standard pkg repositories on the net.

What about people that want to compile their own?  They certainly should
not be relegated to second-class citizens even in this bright new dawn
of pkgng.  Well, part of the answer is under development:

http://wiki.freebsd.org/ports/StageDir

With this, you can create packages without having to install them.  You
can equally well create sub-packages without having to install them.
So, you might compile all of the php5 sub-packages, but only install
some of them.  The rest you keep stashed away somewhere, so that when
you suddenly discover a pressing need to add php5-shiny to your existing
collection of php-related bits, it's just a matter of 'pkg add php5-shiny'.

	Cheers,

	Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey     Ramsgate
JID: matthew at infracaninophile.co.uk               Kent, CT11 9PW



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 267 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20120626/c4ed7b5f/signature-0001.pgp


More information about the freebsd-ports mailing list