Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Jul 2013 12:27:20 +0100
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        freebsd-pkg@freebsd.org
Subject:   Re: Distribute FreeBSD via packages instead of "global" tarballs
Message-ID:  <51E52E18.6040605@infracaninophile.co.uk>
In-Reply-To: <51E527A5.9090604@peterschmitt.fr>
References:  <51E165F2.20801@peterschmitt.fr> <51E1879B.7050300@FreeBSD.org> <51E527A5.9090604@peterschmitt.fr>

next in thread | previous in thread | raw e-mail | index | archive | help
On 16/07/2013 11:59, Florent Peterschmitt wrote:
> Le 13/07/2013 19:00, Matthew Seaman a écrit :
>> On 13/07/2013 15:36, Florent Peterschmitt wrote:
>>> Is it possible to package FreeBSD distribution under little packages,
>>> aiming easy and small upgrades ?
>>>
>>> Or this has already been thought ?
>>
>> This is certainly technically possible, and it's something there's been
>> occasional speculation about; but as far as I know, no one has yet come
>> up with a demonstration setup.
>>
>> There are a number of practical problems that would need sorting out --
>>
>>    * pkg isn't part of the base system -- by design -- which makes it
>>      tricky to use to register installing base system components on a
>>      bare metal system.
> 
> But it will be in FreeBSD 10 ?

No.  pkg is the default packaging system in FreeBSD 10, but it isn't
part of the base system.  Think of it as a ports component, rather than
a base system component.  Of course, that design decision was made given
the assumption that the only thing pkg would be used for is managing
add-on packages; ie. stuff that by definition is not in base.

Doesn't preclude using it for base, but, like I said, a bit trickier to
deal with.

>>    * Similarly, pkg pretty much ignores the facilities and shared
>>      libraries from base when calculating dependencies and so forth for
>>      ports.  If base is pkg-ised, should that still be the case?
> 
> Hum. It will be a lot of work to turn the base system in a port-like
> way. Maybe it would be simpler to have some "diff" packages, a bit like
> freebsd-update does but with pkg.

Well, we are working towards a generic 'provides/requires/conflicts'
dependency scheme.  Base system packages could just provide a symbolic
'FreeBSD-10.0-base' token that ports packages could require.  Actually,
that's quite an interesting idea even if we don't supply the base system
as a bunch of pkgs.  Hmmm....

>>    * Given that the base system is divided up into numerous smaller
>>      packages, should those packages be registered in the same database
>>      as is used for ports? (ie. /var/db/pkg/local.sqlite)
> 
> Certainly not. If an rm -rf /usr/local/* /var/db/pkg/local.sqlite can
> clean up the system of every third-party software, base components
> doesn't have their place with them. *BSD always separate base from the
> rest, why this should change here ?

Well, having the 'provides/requires/conflicts' dependency stuff all
registered in the same database makes using the package solver against
dependency trees using base system components workable without any
faffing around.  Straight up deletion of /var/db/pkg/local.sqlite is
certainly not recommended as a routine procedure in any case: 'pkg
delete -fa' is much better.

Pursuing the logic of this: we'd probably have a flag in the DB to
identify base system packages and so be able to treat them differently
to regular packages.

>> Packaging the base system is an idea that has been floating around for a
>> long time -- since long before pkg was conceived, certainly.  But it has
>> never really gone anywhere.  Using pkg for the job would have some
>> advantages over trying to do the same thing with the old pkg_tools, but
>> would it ultimately be competitive with the way the installation media
>> works now or to freebsd-update(8)?
> 
> In never used freebsd-update between more than one version. For examble
> I never tried going from 8.0 to 9.1. I let me told that freebsd-update
> must go through each version to finally upgrade to the version we want.
> If that's true, packaging the base would avoid this behavior, make thing
> simpler for users (of course not for packaging :-) ) and surely faster.

True, true.  All pkg is, ultimately, is a tool for managing various
collections of files efficiently, and it could do that for any
collection of files you care to imagine.

	Cheers,

	Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.

PGP: http://www.infracaninophile.co.uk/pgpkey
JID: matthew@infracaninophile.co.uk



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51E52E18.6040605>