what next for the pkg_install rewrite

David Forsythe dforsyth at FreeBSD.org
Thu Sep 2 08:02:55 UTC 2010

Eh, why didn't this thread spring up before summer of code got under
way (or during the many weeks it was running)?

Concerning the database situation, sqlite would be cool.  If we can
ship the sqlite code either with libpkg or with the pkg_install tools,
it's a win (I don't read licenses, someone will have to tell me if we
can do that).  Realistically, if this is doable, then there can be no
opposition because the pkg_install tools as they are now create their
own "database", so nothing is changing.  Plus we'll get free
concurrency, which everybody wants.  If I can get an okay on this,
I'll start reworking libpkg to handle it.

The manifest format really does need to change.  We should go with
JSON and either write our own specialized parser/writer or go with
something like yajl.  Writing a parser and a writer that plug into my
libpkg will give you conversion tools (both forwards and backwards)
for free and adding properties and changing formats isn't really a big
deal because I store package information in a plist(5) (from OS X)
like structure.  Bringing a fat library into base just for manifest
parsing will meet with resistance, so if you guys can find some really
small json lib (I'm talking 1 or 2 files) that's license compatible,
I'll happily suck it into libpkg.

The lua stuff is way too far off in dream land for my taste...

The things that you guys want to drop from plists are things gcooper
has been wanting to get rid of and replace for a while, and libarchive
restoring group/mode/owner perms has been the plan for a while now I
believe (I actually just ignore this stuff in libpkg).

Separating ports and packages is silly, because they need to coexist.
Like gcooper pointed out, ports should be using the pkg tools to build
and install packages.

The repository format is something that you guys didn't really touch
on that I think could use some fixing, but I'll wait to see where this
all goes and maybe throw some ideas on a wiki page later on.

In the mean time, I'll keep building libpkg too work with the pkg
system in its current state.


More information about the freebsd-ports mailing list