PERFORCE change 178963 for review

Garrett Cooper gcooper at FreeBSD.org
Sun May 30 03:55:18 UTC 2010


On Sat, May 29, 2010 at 6:57 PM, Julien Laffaye <jlaffaye at freebsd.org> wrote:
> http://p4web.freebsd.org/@@178963?ac=10
>
> Change 178963 by jlaffaye at gsoc on 2010/05/30 01:57:14
>
>        Plans and thoughts for complete packages support.
>
> Affected files ...
>
> .. //depot/projects/soc2010/pkg_complete/Milestones#2 edit
>
> Differences ...
>
> ==== //depot/projects/soc2010/pkg_complete/Milestones#2 (text+ko) ====
>
> @@ -1,0 +1,26 @@
> +pkg_create:
> +       The options of pkg_create are useless for creating a complete package.
> +Should we add support for complete package in pkg_create or into a new tool?
> +The tool for creating a complete package would take for first argument the meta
> +(traditionnal) package. Then the tool read the plist to look for @pkgdep and
> +repeat the operation for each dependency.
> +After ordering the dependencies, the tool tar'up all the traditionnal packages
> +(without compression as the packages are already bz'ed).
> +This step would require factorisation of the code in pkg_info into a libpkg
> +function, with libarchive support for efficiency.
> +
> +ports tree:
> +       Add a "complete-package" target which depends on package-recursive and
> +call the tool of step 1.

Check with portmgr (at least flz), but it would probably be better to
stick with the package- prefixed target status quo.

FWIW though this will require rewriting bits of package-noinstall, or
similar targets, as ports currently doesn't use pkg_install except to
register the install of all of the bits from ${WRKDIR}
(/usr/ports/.../work if not specified otherwise) into ${PREFIX}.

> +pkg_add:
> +       Add simple routine to test if the package is a traditionnal or complete package.
> +If the package is complete, loop over the traditionnal packages in it,
> +call the function to install a traditionnal package (this function may work
> +with streams). If the package is tradionnal, pass directly the stream to the
> +function.
> +
> +As a side effect, remove playpen and embrace libarchive.

Yes... this will be a good thing, as several people have agreed, but
requires a ton of tests (including negative ones), and there's some
forethought that needs to be done and potential rewriting that's
required as whether or not the installed bits exist in the right
spots, and the permissions are sane will need to be properly evaluated
beforehand.

You can't completely remove libarchive unless you properly use the
mktemp(3) family of functions though because there are some files
(like +CONTENTS) which need to be generated on the fly.

> +pkg_info:
> +       Show if the package is complete (list of contained packages) or the
> +info of the traditionnal package.

s/traditionnal/traditional/

Thanks!
-Garrett


More information about the p4-projects mailing list