new package system proposal

Chris Whitehouse cwhiteh at onetel.com
Sat Apr 4 07:13:25 PDT 2009


Hi all

I was thinking about the waste of energy and time involved in lots of 
people around the world all compiling the same code such as openoffice, 
firefox, kde etc and wondering how the package system could be improved.

Ports is rightly a flagship element of FreeBSD. The benefit is 
configureability and consistency. The obvious downside is it takes so 
long to update a desktop machine with a normal set of ports installed, 
particularly lower spec hardware or laptops.

pkg_add somewhat addresses this but it doesn't work quite as well as 
ports because of possible version mismatches.

The suggestion below is not aimed at servers because they have 
completely different requirements.

My suggestion is to start with a ports tree that is fixed in time. Make 
that ports tree available as part of this package system and compile a 
typical desktop set of ports, particularly choosing ones which are large 
or have many dependencies. When it is all complete release it and start 
again. Surely quite a wide selection of desktops, wm's and apps could be 
compiled in a couple of weeks?

Modify pkg_add so that it can be told to use this 'snapshot' including 
downloading the fixed ports tree that was used.

Some benefits to this system are
- much easier for lower power or laptop users to keep their desktop 
machine up to date
- problems with particular ports can be centrally fixed by knowledgeable 
people, possibly reducing time on lists.
- reduced energy use for everyone.
- the ports system is still available for those who do want to change 
the config options
- ports which are not included in the snapshot are still available - 
since this system has already provided the larger ports as packages, the 
  remaining ones would be less onerous to install
- ports that are installed with make install would maintain 
compatibility with the other installed packages.
- don't need to mess with portupgrade etc.
- it could (I think) be fitted fairly well into the existing package 
building process.
- it generally increases the useability of FreeBSD as a desktop system.


I think this could work because I think the default config options are 
probably suitable for most desktop users so it wouldn't be necessary to 
create loads of different binaries for the same port, and security 
considerations are not so important as for server admins.

I would probably limit it to i386 architecture initially as that is 
probably by far the most common desktop system.

It might be possible to distribute the actual compiling to users with 
spare cpu cycles, a bit like the SETI at home projects etc.

Chris


More information about the freebsd-questions mailing list