Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 01 Aug 2018 17:54:10 -0600
From:      Brad Davis <brd@FreeBSD.org>
To:        freebsd-arch@FreeBSD.org, freebsd-pkgbase@freebsd.org
Subject:   pkgbase: Move of head/etc/ files
Message-ID:  <1533167650.2567721.1460524472.3AC8CC35@webmail.messagingengine.com>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1533167650.2567721.1460524472.3AC8CC35>