From d493a029add855e6ade95d60b57ec7b8f5aba067 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 15 Aug 2010 18:54:48 -0700 Subject: [PATCH] Add support for /etc/portage/make.conf. If present, this file will override settings from /etc/make.conf. --- man/make.conf.5 | 4 ++-- man/portage.5 | 5 +++++ pym/portage/package/ebuild/config.py | 15 ++++++++++----- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/man/make.conf.5 b/man/make.conf.5 index d110b3acd..540a15e4b 100644 --- a/man/make.conf.5 +++ b/man/make.conf.5 @@ -2,7 +2,7 @@ .SH "NAME" make.conf \- custom settings for Portage .SH "SYNOPSIS" -.B /etc/make.conf +\fB/etc/make.conf\fR and \fB/etc/portage/make.conf\fR .SH "DESCRIPTION" This file contains various variables that are used by Portage. Portage will check the currently\-defined environment variables @@ -809,7 +809,7 @@ Saleem Abdulrasool .fi .SH "FILES" .TP -.B /etc/make.conf +\fB/etc/make.conf\fR and \fB/etc/portage/make.conf\fR Contains variables for the build\-process and overwrites those in make.defaults. .TP .B /etc/make.globals diff --git a/man/portage.5 b/man/portage.5 index c3e8d8655..d13eee524 100644 --- a/man/portage.5 +++ b/man/portage.5 @@ -48,6 +48,7 @@ virtuals bashrc categories color.map +make.conf mirrors modules package.keywords @@ -437,6 +438,10 @@ media\-other .BR color.map Contains variables customizing colors. See \fBcolor.map\fR(5). .TP +.BR make.conf +The global custom settings for Portage. See \fBmake.conf\fR(5). +If present, this file will override settings from /etc/make.conf. +.TP .BR mirrors Whenever portage encounters a mirror:// style URI it will look up the actual hosts here. If the mirror set is not found here, it will check the global diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py index cdfbdc28a..d01f7aeab 100644 --- a/pym/portage/package/ebuild/config.py +++ b/pym/portage/package/ebuild/config.py @@ -447,6 +447,7 @@ class config(object): config_root)).rstrip(os.path.sep) + os.path.sep check_var_directory("PORTAGE_CONFIGROOT", config_root) + abs_user_config = os.path.join(config_root, USER_CONFIG_PATH) self.depcachedir = DEPCACHE_PATH @@ -619,8 +620,11 @@ class config(object): make_conf = getconfig( os.path.join(config_root, MAKE_CONF_FILE), tolerant=tolerant, allow_sourcing=True) - if make_conf is None: - make_conf = {} + + make_conf.update(getconfig( + os.path.join(abs_user_config, 'make.conf'), + tolerant=tolerant, allow_sourcing=True, + expand=make_conf)) # Allow ROOT setting to come from make.conf if it's not overridden # by the constructor argument (from the calling environment). @@ -723,8 +727,10 @@ class config(object): self.mygcfg = getconfig( os.path.join(config_root, MAKE_CONF_FILE), tolerant=tolerant, allow_sourcing=True, expand=expand_map) - if self.mygcfg is None: - self.mygcfg = {} + + self.mygcfg.update(getconfig( + os.path.join(abs_user_config, 'make.conf'), + tolerant=tolerant, allow_sourcing=True, expand=expand_map)) # Don't allow the user to override certain variables in make.conf profile_only_variables = self.configdict["defaults"].get( @@ -778,7 +784,6 @@ class config(object): self._plicensedict = portage.dep.ExtendedAtomDict(dict) self._ppropertiesdict = portage.dep.ExtendedAtomDict(dict) self.punmaskdict = portage.dep.ExtendedAtomDict(list) - abs_user_config = os.path.join(config_root, USER_CONFIG_PATH) # locations for "categories" and "arch.list" files locations = [os.path.join(self["PORTDIR"], "profiles")] -- 2.26.2