savedconfig
savedconfig is a USE flag that preserves the saved configuration files upon package updates. It allows for the updating of other files from a package update while, at the same time, guaranteeing no changes will be made to some specific files defined under Portage's /etc/portage/savedconfig/ directory.
Prerequisites
To understand how Portage handles configuration files, it is wise to the review the CONFIGURATION FILES section of emerge's man page:
user $
man 1 emerge
By default, files under the /etc directory are protected from modification or deletion unless Portage has been explicitly instructed otherwise.
Usage
Although it is possible to add savedconfig
USE flag to the system's make.conf file, it is better to define it on per-package basis.
Setting savedconfig
will restore the configuration files from, in order of priority, the /etc/portage/savedconfig/${CATEGORY}/${PF}, /etc/portage/savedconfig/${CATEGORY}/${P}, or /etc/portage/savedconfig/${CATEGORY}/${PN} file. Make sure the USE flags allow for appropriate dependencies.
Example
Enable the savedconfig
USE flag on the sys-kernel/gentoo-kernel package:
sys-kernel/gentoo-kernel savedconfig
Emerge the package; note that after package installation a message similar to the following will be displayed:
root #
emerge --ask --update --changed-use sys-kernel/gentoo-kernel
* Building using saved config directory "/etc/portage/savedconfig/sys-kernel/gentoo-kernel" * Your configuration for sys-kernel/gentoo-kernel-5.9.2 has been saved in * "/etc/portage/savedconfig/sys-kernel/gentoo-kernel" for your editing pleasure. * You can edit these files by hand and remerge this package with * USE=savedconfig to customise the configuration. * You can rename this file/directory to one of the following for * its configuration to apply to multiple versions: * ${PORTAGE_CONFIGROOT}/etc/portage/savedconfig/ * [${CTARGET}|${CHOST}|""]/${CATEGORY}/[${PF}|${P}|${PN}]
On the next emerge of the package, Portage will use the saved configuration file located at /etc/portage/savedconfig/sys-kernel/gentoo-kernel as the .config file for compiling the kernel. This file may be modified as necessary, or, for example, can be replaced by another .config entirely.
See also
- CONFIG_PROTECT — contains a space-delimited list of files and/or directories that Portage will protect from automatic modification.
External resources
- https://packages.gentoo.org/useflags/savedconfig - An online view of packages containing the
savedconfig
USE flag.
- https://devmanual.gentoo.org/eclass-reference/savedconfig.eclass/index.html - savedconfig eclass man page
- https://gitweb.gentoo.org/repo/gentoo.git/tree/eclass/savedconfig.eclass - savedconfig eclass source