Hello,

I want to give some information on what is happening to files in head/etc/ and 
open a discussion.

I am trying to move all config files out of head/etc/ and place them with the 
source files for the particular use.  For example, some of these are obvious 
moves like moving say portsnap.conf to usr.sbin/portsnap/portsnap.conf.  The 
review for this move shows exactly what would happen here: 
https://reviews.freebsd.org/D16554.  For these cases, there are some easy 
benefits, like:
1) Keeping all files as part of a program together, which makes maintenance for 
maintainers a little easier.
2) Simplicity, we do not need all the .if ${MK_FOO} lines in etc/Makefile 
because that is handled a level above the programs Makefile and so one CONFS= 
line is all that is needed.
3) Easier to avoid bugs where we install things that should not be installed.  
Like for apmd, we installed apmd.conf on all archs even though it only works on 
i386.  i.e. we don't have to keep knobs in sync in multiple locations.

Some of the more complicated things to move like etc/shells and the init 
scripts.  I picked the location of etc/shells based on it being used by 
getusershell(3) in libc, so it ended up in lib/libc/gen/shells.  The move of 
the init scripts was based on a few things, including the reasons above, but 
additionally:
1) Isolating a subcomponent, for example work is happening to bring in OpenRC, 
so we will have multiple init systems with different types of scripts, so 
moving them away from head/etc/ keeps them isolated.

This work was driven by needing to tag these files as config files in the 
METALOG so that pkg knows what is a config file so that pkg can 3-way merge 
them.

More info on pkgbase: https://wiki.freebsd.org/PkgBase


Regards,
Brad Davis
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-pkgbase
To unsubscribe, send any mail to "[email protected]"

Reply via email to