reorganise const.py to have logical grouping based on usage
authorFabian Groffen <grobian@gentoo.org>
Sat, 5 Sep 2009 10:53:44 +0000 (10:53 -0000)
committerFabian Groffen <grobian@gentoo.org>
Sat, 5 Sep 2009 10:53:44 +0000 (10:53 -0000)
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

index 6e202bfa95a377486c9be38266fcf22476332e53..a6ac8e8c231ff8fad498527baf0617dea6b2a691 100644 (file)
@@ -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
 # ===========================================================================