Re: [HEADSUP & CFT] pkg 1.0rc1 and schedule

From: Peter Wemm <peter_at_wemm.org>
Date: Fri, 13 Jul 2012 13:41:31 -0700
On Fri, Jul 13, 2012 at 5:14 AM, Fbsd8 <fbsd8_at_a1poweruser.com> wrote:
> What I want to know is this new pkg system going to remove the requirement
> of having the complete ports tree on my system?
>
> What I am looking for in an port system, is to install a port and any files
> needed for the parent port and its dependents to automatically be
> downloaded. So in the end my system ports tree only contain the files used
> to install the ports I use and their dependents.

That is precisely what pkgng is for.

At the risk of over-simplifying:
* Generally eliminate the need for having /usr/ports installed for end
user consumers of freebsd if you have no desire to compile ports with
custom options.
* Generally eliminate the need for layers over the top of pkg* like
portupgrade/portmaster/portmanager for those people.
* Play nicely with people who *are* building some (or all) of their
packages from /usr/ports.
* Provide enough look and feel compatibility with the old pkg_* tools
so people will feel enough at home.
* Assimilate an existing pkg_* machine.
* Store complete metadata so that going foward we have much better
support for package sets - eg: package repositories with custom
options that play nicely with official packages.
* Be extensible so that we can add to it as we go forward.

In the new world order, things like portupgrade and portmanager tend
to be used to manage interactions between personally build ports from
/usr/ports and external binary packages.  If you continue to build
from /usr/ports, the only thing that changes is bsd.port.mk uses a
different command to register a package and you still use
portupgrade/portmaster/whatever to orchestrate your personal package
rebuilding.  (Well, portmaster does if you apply the simple patch to
it).

pkg-1.0 is primarily an infrastructure change.   Instead of metadata
being stored in discrete +FOO and +BAR files in a .tgz file, it is
stored in a structured, extensible file.  Instead of an incomplete set
of metadata being stored in /var/db/pkg/* and having to be augmented
by reaching over to /usr/ports/*, a full set of data is stored in a
.sqlite file.  Instead of version numbers being baked into the package
name as an ascii string, the package system uses version numbers as
first class metadata.

In reality, not much will change at the switch throwing, except that
of having good reason to be afraid of "pkg_add -r", you'll be able to
reasonably expect it's replacement (pkg install) to work.  And a bunch
of people who have a /usr/ports tree will suddenly wonder why they
even have it there at all.  It becomes incredibly convenient and fast
to use packages.

-- 
Peter Wemm - peter_at_wemm.org; peter_at_FreeBSD.org; peter_at_yahoo-inc.com; KI6FJV
"All of this is for nothing if we don't go to the stars" - JMS/B5
"If Java had true garbage collection, most programs would delete
themselves upon execution." -- Robert Sewell
Received on Fri Jul 13 2012 - 18:41:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC