atom feed37 messages in org.freebsd.freebsd-portsRe: [ECFT] pkgng 0.1-alpha1: a replac...
FromSent OnAttachments
Baptiste DaroussinMar 25, 2011 3:10 am 
Alexander LeidingerMar 25, 2011 7:06 am 
Baptiste DaroussinMar 25, 2011 7:14 am 
Alexander LeidingerMar 25, 2011 7:37 am 
Julien LaffayeMar 25, 2011 8:02 am 
Pietro CeruttiMar 25, 2011 8:34 am 
Baptiste DaroussinMar 25, 2011 8:41 am 
Andriy GaponMar 25, 2011 9:35 am 
Michel TalonMar 25, 2011 9:44 am 
Michel TalonMar 25, 2011 9:47 am 
Eitan AdlerMar 25, 2011 9:54 am 
Thomas DickeyMar 25, 2011 12:32 pm 
Alexander LeidingerMar 25, 2011 1:14 pm 
Jos BackusMar 25, 2011 1:24 pm 
Garrett CooperMar 25, 2011 1:46 pm 
YuriMar 25, 2011 2:31 pm 
Baptiste DaroussinMar 25, 2011 2:37 pm 
Alexander LeidingerMar 25, 2011 2:52 pm 
Marcin WisnickiMar 25, 2011 4:00 pm 
Baptiste DaroussinMar 26, 2011 3:22 am 
Marin Atanasov NikolovMar 26, 2011 5:38 am.patch
Marcin WisnickiMar 26, 2011 6:18 am 
Michel TalonMar 26, 2011 6:18 am 
Julien LaffayeMar 26, 2011 4:01 pm 
Andriy GaponMar 28, 2011 10:43 am 
Garrett CooperMar 28, 2011 10:58 am 
Julien LaffayeMar 28, 2011 11:22 am 
Benjamin KadukMar 28, 2011 8:30 pm 
Tim KientzleMar 28, 2011 9:15 pm 
Baptiste DaroussinMar 28, 2011 10:50 pm 
Julien LaffayeMar 29, 2011 5:11 am 
Super BisquitMar 29, 2011 7:50 am 
Andriy GaponMar 29, 2011 10:37 am 
Baptiste DaroussinMar 29, 2011 11:27 am 
Baptiste DaroussinMar 29, 2011 1:29 pm 
Andriy GaponMar 31, 2011 7:54 am 
Baptiste DaroussinMar 31, 2011 8:01 am 
Subject:Re: [ECFT] pkgng 0.1-alpha1: a replacement for pkg_install
From:Garrett Cooper (gcoo@FreeBSD.org)
Date:Mar 28, 2011 10:58:54 am
List:org.freebsd.freebsd-ports

On Mon, Mar 28, 2011 at 10:44 AM, Andriy Gapon <av@freebsd.org> wrote:

on 25/03/2011 12:11 Baptiste Daroussin said the following:

Hi all,

miwi@ launched the new thing called Experimental Call For Testing, it's our turn :)

Julien Laffaye (jlaffaye@) and I, helped by Philippe Pepiot (huge contributor) have been working since the end of the last GSoC on a rewrite of pkg_install.

pkgng is a binary package manager written from scratch for FreeBSD.

After a long period of technology testing, (json, tinycdb, bdb, etc) and we now have achieved to implement the basic functionnality. We would greatly approciate to have some feedback, wider testing, patching, documenting etc, before implementing the higher level features.

pkgng is built on top of a new libpkg, which allow to deal with the database of installed packages, to deal with remote repositories, manage packages: creation, installation gathering informations, registering new ports.

features supported are or will be :

- smooth integration with bsd.port.mk (including bsd.pkg.mk line 2486) which allow  to have a bsd.port.mk which deal with both pkg_install and pkgng. (done in alpha)

- the register command can analyse elf files when registering a new port to discover forgotten dependencies if necessary. (done in alpha using libelf)

- the register command has two mode available : when dealing with old fashion ports it just registers the package, in new mode it does everything that would have been done by pkg add when installing the package : should display messages,  execute post-install, execute @exec etc. (old fashion done in the alpha)

- pkg add supports two mode : the old fashion one (no real upgrade support) and  new one: upgrade scripts supported. (old fashion in the alpha)

- new scripts supported +PREINSTALL +POSTINSTALL, +PREDEINSTALL, +POSTDEINSTALL, +PREUPGRADE, +POSTUPGRADE as well as the old fashion scripts : +INSTALL +DEINSTALL +UPGRADE (all supported *UPGRADES aren't supported in the alpha)

- new +MANIFEST (plist-like format) with new metadatas : options, arch, os version, etc. (done in the alpha)

- pkgng supports checking arch of the package which means that users won't be able to install sparc64 binary package into amd64 machines. (not done yet)

- a special architecture "all" allows to specify when a package can be used on every architecture. (not done yet)

- @dirrm and @dirrmtry are now deprecated, pkgng can discover itself which directory has to be removed. (done in the alpha but needs love :))

- new repository (apt-like feature) (only the repository generation is done)

- real support for reverse dependency (no ugly +REQUIRED_BY) (done in the alpha)

- test unit (libcheck) on libpkg. (done in the alpha needs some more love)

- many more

Perhaps I am too impatient :) but I would like to inquire about the following features:

I. A provides/requires interface for packages. Each package specified a list of files (and perhaps other entities) that it provides and requires.  At the initial stage, without ports modifications, these could be: (1) a list of all files installed by package for provides; (2) for requires - an auto-generated list of dependencies based on required shared libraries plus dependency specifications in ports. I think that this kind of interface should help with using alternatives that provide the same interface (e.g. like gamin vs fam).

II. Package signing.

That would be really nice.

III. Package naming that includes architecture, major OS version (for API/ABI), maybe more.

This could be provided in the manifest. Doing it in the filename sort of turns into a mess, as I've discovered working at Cisco :).

IV. "Convenient" support for i386 packages on amd64. Distinct installation directories, proper installation conflict detection/avoidance between i386 and amd64 packages, proper library paths, etc.

There are other architectures that would benefit from this as well, like powerpc 32-bit on 64-bit, MIPs 32-bit on n32, etc.

This involves more work than pkgng could provide IIRC as build infrastructure would need to be fixed to look at and link against usr/lib32 instead of usr/lib, unless you mean to rewrite the linker stuff at install-time.

And finally some exotic ideas - support for multiple package sources (when different people build packages in different ways (e.g. with different options,
or different optimizations) from the same ports tree; support for multiple ports sources.(when people maintain different ports tree (e.g. kde or gnome
development ports tree)).  Perhaps, with some compatibility/hierarchy support for packages
and ports sources.  But that's almost a pipe dream, so don't take it seriously :)

It would be nice. That's a request in the same general area that Gentoo portage's overlay goes into, but I think that would require rewriting certain bits of ports infrastructure to be extensible, not extend pkgng in this area.

Thanks, -Garrett