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