From 73962c1a9b24b956aa65c9475ef485fec3d571db Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Sat, 5 Sep 2009 10:53:44 +0000 Subject: [PATCH] reorganise const.py to have logical grouping based on usage grouped into use with config_root, target_root or nothing, made all variables that are used with config_root or target_root not start with a leading slash, such that they can be directly used with os.path.join (which they should because of xxxx_root). svn path=/main/trunk/; revision=14192 --- pym/portage/const.py | 77 ++++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 28 deletions(-) diff --git a/pym/portage/const.py b/pym/portage/const.py index 6e202bfa9..a6ac8e8c2 100644 --- a/pym/portage/const.py +++ b/pym/portage/const.py @@ -3,32 +3,61 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ +import os # =========================================================================== # START OF CONSTANTS -- START OF CONSTANTS -- START OF CONSTANTS -- START OF # =========================================================================== -import os +# There are two types of variables here which can easily be confused, +# resulting in arbitrary bugs, mainly exposed with an offset +# installation (Prefix). The two types relate to the usage of +# config_root or target_root. +# The first, config_root (PORTAGE_CONFIGROOT), can be a path somewhere, +# from which all derived paths need to be relative (e.g. +# USER_CONFIG_PATH) without EPREFIX prepended in Prefix. This means +# config_root can for instance be set to "$HOME/my/config". Obviously, +# in such case it is not appropriate to prepend EPREFIX to derived +# constants. The default value of config_root is EPREFIX (in non-Prefix +# the empty string) -- overriding the value loses the EPREFIX as one +# would expect. +# Second there is target_root (ROOT) which is used to install somewhere +# completely else, in Prefix of limited use. Because this is an offset +# always given, the EPREFIX should always be applied in it. Those +# constants (like VDB_PATH) are always absolute and hence DO have +# EPREFIX prepended in Prefix. +# The variables in this file are grouped by config_root, target_root. +# variables used with config_root (these need to be relative) +MAKE_CONF_FILE = "etc/make.conf" +USER_CONFIG_PATH = "etc/portage" +MODULES_FILE_PATH = USER_CONFIG_PATH + "/modules" +CUSTOM_PROFILE_PATH = USER_CONFIG_PATH + "/profile" +USER_VIRTUALS_FILE = USER_CONFIG_PATH + "/virtuals" +EBUILD_SH_ENV_FILE = USER_CONFIG_PATH + "/bashrc" +CUSTOM_MIRRORS_FILE = USER_CONFIG_PATH + "/mirrors" +COLOR_MAP_FILE = USER_CONFIG_PATH + "/color.map" +PROFILE_PATH = "etc/make.profile" +MAKE_DEFAULTS_FILE = PROFILE_PATH + "/make.defaults" # FIXME: not used +DEPRECATED_PROFILE_FILE = PROFILE_PATH + "/deprecated" + +# variables used with targetroot (these need to be absolute, but not +# have a leading '/' since they are used directly with os.path.join) VDB_PATH = "var/db/pkg" +CACHE_PATH = "var/cache/edb" +DEPCACHE_PATH = CACHE_PATH + "/dep" # FIXME: does not seem to use ROOT when used PRIVATE_PATH = "var/lib/portage" -CACHE_PATH = "/var/cache/edb" -DEPCACHE_PATH = CACHE_PATH+"/dep" +WORLD_FILE = PRIVATE_PATH + "/world" +CONFIG_MEMORY_FILE = PRIVATE_PATH + "/config" +NEWS_LIB_PATH = "var/lib/gentoo" -USER_CONFIG_PATH = "etc/portage" -MODULES_FILE_PATH = USER_CONFIG_PATH+"/modules" -CUSTOM_PROFILE_PATH = USER_CONFIG_PATH+"/profile" +# these variables are not used with target_root or config_root GLOBAL_CONFIG_PATH = "/usr/share/portage/config" - PORTAGE_BASE_PATH = os.path.join(os.sep, os.sep.join(__file__.split(os.sep)[:-3])) -PORTAGE_BIN_PATH = PORTAGE_BASE_PATH+"/bin" -PORTAGE_PYM_PATH = PORTAGE_BASE_PATH+"/pym" -PORTAGE_PACKAGE_ATOM = "sys-apps/portage" -NEWS_LIB_PATH = "/var/lib/gentoo" -PROFILE_PATH = "etc/make.profile" -LOCALE_DATA_PATH = PORTAGE_BASE_PATH+"/locale" - -EBUILD_SH_BINARY = PORTAGE_BIN_PATH+"/ebuild.sh" +PORTAGE_BIN_PATH = PORTAGE_BASE_PATH + "/bin" +PORTAGE_PYM_PATH = PORTAGE_BASE_PATH + "/pym" +LOCALE_DATA_PATH = PORTAGE_BASE_PATH + "/locale" # FIXME: not used +EBUILD_SH_BINARY = PORTAGE_BIN_PATH + "/ebuild.sh" MISC_SH_BINARY = PORTAGE_BIN_PATH + "/misc-functions.sh" SANDBOX_BINARY = "/usr/bin/sandbox" FAKEROOT_BINARY = "/usr/bin/fakeroot" @@ -36,20 +65,12 @@ BASH_BINARY = "/bin/bash" MOVE_BINARY = "/bin/mv" PRELINK_BINARY = "/usr/sbin/prelink" -WORLD_FILE = PRIVATE_PATH + "/world" -MAKE_CONF_FILE = "etc/make.conf" -MAKE_DEFAULTS_FILE = PROFILE_PATH + "/make.defaults" -DEPRECATED_PROFILE_FILE = PROFILE_PATH+"/deprecated" -USER_VIRTUALS_FILE = USER_CONFIG_PATH+"/virtuals" -EBUILD_SH_ENV_FILE = USER_CONFIG_PATH+"/bashrc" INVALID_ENV_FILE = "/etc/spork/is/not/valid/profile.env" -CUSTOM_MIRRORS_FILE = USER_CONFIG_PATH+"/mirrors" -CONFIG_MEMORY_FILE = PRIVATE_PATH + "/config" -COLOR_MAP_FILE = USER_CONFIG_PATH + "/color.map" - REPO_NAME_FILE = "repo_name" REPO_NAME_LOC = "profiles" + "/" + REPO_NAME_FILE +PORTAGE_PACKAGE_ATOM = "sys-apps/portage" + INCREMENTALS = ["USE", "USE_EXPAND", "USE_EXPAND_HIDDEN", "FEATURES", "ACCEPT_KEYWORDS", "CONFIG_PROTECT_MASK", "CONFIG_PROTECT", @@ -63,13 +84,13 @@ EBUILD_PHASES = ["setup", "unpack", "prepare", "configure", EAPI = 2 HASHING_BLOCKSIZE = 32768 -MANIFEST1_HASH_FUNCTIONS = ["MD5","SHA256","RMD160"] -MANIFEST2_HASH_FUNCTIONS = ["SHA1","SHA256","RMD160"] +MANIFEST1_HASH_FUNCTIONS = ["MD5", "SHA256", "RMD160"] +MANIFEST2_HASH_FUNCTIONS = ["SHA1", "SHA256", "RMD160"] MANIFEST1_REQUIRED_HASH = "MD5" MANIFEST2_REQUIRED_HASH = "SHA1" -MANIFEST2_IDENTIFIERS = ["AUX","MISC","DIST","EBUILD"] +MANIFEST2_IDENTIFIERS = ["AUX", "MISC", "DIST", "EBUILD"] # =========================================================================== # END OF CONSTANTS -- END OF CONSTANTS -- END OF CONSTANTS -- END OF CONSTANT # =========================================================================== -- 2.26.2