TODO/wish list for packaging the FreeBSD base system

Glen Barber gjb at FreeBSD.org
Sat Jan 30 02:15:41 UTC 2016


[Note, I did see Garrett's email.  Garrett, I'll reply to your questions
but following up on one specific point in this list.]

On Fri, Jan 29, 2016 at 05:35:06PM +0000, Glen Barber wrote:
> TODO List / Wish List:
> 
> [...]
> 
> - Unless there is a specific reason to have an in-tree <package>.ucl
>   file in src/release/packages/, I would like to see a template used
>   instead.  Use cases where an in-tree <package>.ucl file is needed are
>   runtime.ucl and kernel.ucl, where post-install scripts are defined.
>   For the rest of the currently-existing package definitions, it is not
>   necessary, and adds to the complexity of breaking down the base system
>   into more granular package sets.  I tried a few tests yesterday using
>   a file called '_template_.ucl', which if the release/packages/foo.ucl
>   did not exist, the '_template_.ucl' file would be copied to the stage
>   directory.  This did not work, however, because there can be several
>   '<package>.ucl' files for any given 'package', notably runtime.plist,
>   debug.plist (which should be runtime-debug.plist), runtime-lib32.plist
>   and so on.

It occurred to me that there is a use case for in-tree <package>.ucl
files, specifically when an update is necessary.  The package versions
come from the PKG_VERSION make(1) environment, and if not set, will
default to the epoch timestamp.  This was a design decision that was put
in place to handle SAs/ENs, where we could trivially bump the package
version.  Specifically, for an SA/EN, a commit to the tree that would
trigger a rebuild of an affected package would look similar to this:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 Index: release/packages/rcmds.ucl
 ===================================================================
 --- release/packages/rcmds.ucl	(revision 295058)
 +++ release/packages/rcmds.ucl	(working copy)
 @@ -1,6 +1,6 @@
  name = "FreeBSD-%PKGNAME%"
  origin = "base"
 -version = "%VERSION%"
 +version = "%VERSION%,1"
  comment = "Remote Command Tools"
  categories = [ base ]
  maintainer = "re at FreeBSD.org"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

So, while I do not necessarily like relying on in-tree <package>.ucl
files, as right now it makes it difficult to package components not
"normally" included in the base system, I now remember the necessity of
this.

It might be a better idea to add a TAGS or PACKAGE_VERSION value to the
relevant makefiles, which could be included in the mtree(8) tag when
creating the METALOG files.

Glen

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-pkgbase/attachments/20160130/74aa4e4d/attachment.sig>


More information about the freebsd-pkgbase mailing list