aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOskari Pirhonen <xxc3ncoredxx@gmail.com>2022-11-26 23:02:40 -0600
committerSam James <sam@gentoo.org>2022-11-30 06:01:00 +0000
commit854379debaaf30e3dad30974c3d4055a5c75d90b (patch)
treed9d43901a3393f0bea6b6f46b54c89232d3e416c
parentNEWS: update (diff)
downloadportage-854379debaaf30e3dad30974c3d4055a5c75d90b.tar.gz
portage-854379debaaf30e3dad30974c3d4055a5c75d90b.tar.bz2
portage-854379debaaf30e3dad30974c3d4055a5c75d90b.zip
Fix some type errors
Knock out some low-hanging fruit given by running mypy --pretty --show-error-context . inside lib/ (191 total errors found). portage/package/ebuild/_config/special_env_vars.py:248: error: Incompatible types in assignment (expression has type "FrozenSet[str]", variable has type "List[str]") [assignment] environ_whitelist = frozenset(environ_whitelist) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ portage/package/ebuild/_config/special_env_vars.py:353: error: Incompatible types in assignment (expression has type "FrozenSet[str]", variable has type "List[str]") [assignment] environ_filter = frozenset(environ_filter) ^~~~~~~~~~~~~~~~~~~~~~~~~ portage/checksum.py:342: error: Incompatible types in assignment (expression has type "int", variable has type "bool") [assignment] prelink_capable = 1 ^ _emerge/Package.py: note: At top level: _emerge/Package.py:865: error: Incompatible types in assignment (expression has type "FrozenSet[str]", variable has type "Set[str]") [assignment] _all_metadata_keys = frozenset(_all_metadata_keys) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ portage/getbinpkg.py:46: error: Incompatible types in assignment (expression has type "Tuple[Type[Exception], ...]", variable has type "List[Type[Exception]]") [assignment] _all_errors = tuple(_all_errors) ^~~~~~~~~~~~~~~~~~ Signed-off-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com> Closes: https://github.com/gentoo/portage/pull/948 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--lib/_emerge/Package.py4
-rw-r--r--lib/portage/checksum.py2
-rw-r--r--lib/portage/getbinpkg.py4
-rw-r--r--lib/portage/package/ebuild/_config/special_env_vars.py508
4 files changed, 248 insertions, 270 deletions
diff --git a/lib/_emerge/Package.py b/lib/_emerge/Package.py
index c50349e27..afb69024e 100644
--- a/lib/_emerge/Package.py
+++ b/lib/_emerge/Package.py
@@ -860,9 +860,7 @@ class Package(Task):
return pkg
-_all_metadata_keys = set(x for x in portage.auxdbkeys)
-_all_metadata_keys.update(Package.metadata_keys)
-_all_metadata_keys = frozenset(_all_metadata_keys)
+_all_metadata_keys = frozenset(set(portage.auxdbkeys).union(Package.metadata_keys))
_PackageMetadataWrapperBase = slot_dict_class(_all_metadata_keys)
diff --git a/lib/portage/checksum.py b/lib/portage/checksum.py
index 85cc36af3..7421b1c98 100644
--- a/lib/portage/checksum.py
+++ b/lib/portage/checksum.py
@@ -339,7 +339,7 @@ if os.path.exists(PRELINK_BINARY):
proc.communicate()
status = proc.wait()
if os.WIFEXITED(status) and os.WEXITSTATUS(status) == os.EX_OK:
- prelink_capable = 1
+ prelink_capable = True
del cmd, proc, status
diff --git a/lib/portage/getbinpkg.py b/lib/portage/getbinpkg.py
index 799f5b171..8d06ad862 100644
--- a/lib/portage/getbinpkg.py
+++ b/lib/portage/getbinpkg.py
@@ -43,8 +43,6 @@ except ImportError as e:
else:
_all_errors.append(http_client_error)
-_all_errors = tuple(_all_errors)
-
def make_metadata_dict(data):
warnings.warn(
@@ -615,7 +613,7 @@ def dir_get_metadata(
try:
conn = create_conn(baseurl, conn)[0]
- except _all_errors as e:
+ except tuple(_all_errors) as e:
# ftplib.FTP(host) can raise errors like this:
# socket.error: (111, 'Connection refused')
sys.stderr.write("!!! %s\n" % (e,))
diff --git a/lib/portage/package/ebuild/_config/special_env_vars.py b/lib/portage/package/ebuild/_config/special_env_vars.py
index 1de62e421..37fc2a290 100644
--- a/lib/portage/package/ebuild/_config/special_env_vars.py
+++ b/lib/portage/package/ebuild/_config/special_env_vars.py
@@ -72,8 +72,6 @@ env_blacklist = frozenset(
)
)
-environ_whitelist = []
-
# Whitelisted variables are always allowed to enter the ebuild
# environment. Generally, this only includes special portage
# variables. Ebuilds can unset variables that are not whitelisted
@@ -82,275 +80,259 @@ environ_whitelist = []
# important to set our special BASH_ENV variable in the ebuild
# environment in order to prevent sandbox from sourcing /etc/profile
# in it's bashrc (causing major leakage).
-environ_whitelist += [
- "ACCEPT_LICENSE",
- "BASH_ENV",
- "BASH_FUNC____in_portage_iuse%%",
- "BINPKG_FORMAT",
- "BROOT",
- "BUILD_ID",
- "BUILD_PREFIX",
- "COLUMNS",
- "D",
- "DISTDIR",
- "DOC_SYMLINKS_DIR",
- "EAPI",
- "EBUILD",
- "EBUILD_FORCE_TEST",
- "EBUILD_PHASE",
- "EBUILD_PHASE_FUNC",
- "ECLASSDIR",
- "ECLASS_DEPTH",
- "ED",
- "EMERGE_FROM",
- "ENV_UNSET",
- "EPREFIX",
- "EROOT",
- "ESYSROOT",
- "FEATURES",
- "FILESDIR",
- "HOME",
- "MERGE_TYPE",
- "NOCOLOR",
- "PATH",
- "PKGDIR",
- "PKGUSE",
- "PKG_LOGDIR",
- "PKG_TMPDIR",
- "PORTAGE_ACTUAL_DISTDIR",
- "PORTAGE_ARCHLIST",
- "PORTAGE_BASHRC_FILES",
- "PORTAGE_BASHRC",
- "PM_EBUILD_HOOK_DIR",
- "PORTAGE_BINPKG_FILE",
- "PORTAGE_BINPKG_TAR_OPTS",
- "PORTAGE_BINPKG_TMPFILE",
- "PORTAGE_BIN_PATH",
- "PORTAGE_BUILDDIR",
- "PORTAGE_BUILD_GROUP",
- "PORTAGE_BUILD_USER",
- "PORTAGE_BUNZIP2_COMMAND",
- "PORTAGE_BZIP2_COMMAND",
- "PORTAGE_COLORMAP",
- "PORTAGE_COMPRESS",
- "PORTAGE_COMPRESSION_COMMAND",
- "PORTAGE_COMPRESS_EXCLUDE_SUFFIXES",
- "PORTAGE_CONFIGROOT",
- "PORTAGE_DEBUG",
- "PORTAGE_DEPCACHEDIR",
- "PORTAGE_DOHTML_UNWARNED_SKIPPED_EXTENSIONS",
- "PORTAGE_DOHTML_UNWARNED_SKIPPED_FILES",
- "PORTAGE_DOHTML_WARN_ON_SKIPPED_FILES",
- "PORTAGE_EBUILD_EXIT_FILE",
- "PORTAGE_FEATURES",
- "PORTAGE_GID",
- "PORTAGE_GRPNAME",
- "PORTAGE_INTERNAL_CALLER",
- "PORTAGE_INST_GID",
- "PORTAGE_INST_UID",
- "PORTAGE_IPC_DAEMON",
- "PORTAGE_IUSE",
- "PORTAGE_ECLASS_LOCATIONS",
- "PORTAGE_LOG_FILE",
- "PORTAGE_OVERRIDE_EPREFIX",
- "PORTAGE_PIPE_FD",
- "PORTAGE_PROPERTIES",
- "PORTAGE_PYM_PATH",
- "PORTAGE_PYTHON",
- "PORTAGE_PYTHONPATH",
- "PORTAGE_QUIET",
- "PORTAGE_REPO_NAME",
- "PORTAGE_REPOSITORIES",
- "PORTAGE_RESTRICT",
- "PORTAGE_SIGPIPE_STATUS",
- "PORTAGE_SOCKS5_PROXY",
- "PORTAGE_TMPDIR",
- "PORTAGE_UPDATE_ENV",
- "PORTAGE_USERNAME",
- "PORTAGE_VERBOSE",
- "PORTAGE_WORKDIR_MODE",
- "PORTAGE_XATTR_EXCLUDE",
- "PORTDIR",
- "PORTDIR_OVERLAY",
- "PREROOTPATH",
- "PYTHONDONTWRITEBYTECODE",
- "REPLACING_VERSIONS",
- "REPLACED_BY_VERSION",
- "ROOT",
- "ROOTPATH",
- "SANDBOX_LOG",
- "SYSROOT",
- "T",
- "TMP",
- "TMPDIR",
- "USE_EXPAND",
- "USE_ORDER",
- "WORKDIR",
- "XARGS",
- "__PORTAGE_TEST_HARDLINK_LOCKS",
-]
-
-# user config variables
-environ_whitelist += ["DOC_SYMLINKS_DIR", "INSTALL_MASK", "PKG_INSTALL_MASK"]
-
-environ_whitelist += ["A", "AA", "CATEGORY", "P", "PF", "PN", "PR", "PV", "PVR"]
-
-# misc variables inherited from the calling environment
-environ_whitelist += [
- "COLORTERM",
- "DISPLAY",
- "EDITOR",
- "LESS",
- "LESSOPEN",
- "LOGNAME",
- "LS_COLORS",
- "PAGER",
- "TERM",
- "TERMCAP",
- "USER",
- "ftp_proxy",
- "http_proxy",
- "no_proxy",
-]
-
-# tempdir settings
-environ_whitelist += [
- "TMPDIR",
- "TEMP",
- "TMP",
-]
-
-# localization settings
-environ_whitelist += [
- "LANG",
- "LC_COLLATE",
- "LC_CTYPE",
- "LC_MESSAGES",
- "LC_MONETARY",
- "LC_NUMERIC",
- "LC_TIME",
- "LC_PAPER",
- "LC_ALL",
-]
-
-# other variables inherited from the calling environment
-environ_whitelist += [
- "CVS_RSH",
- "ECHANGELOG_USER",
- "GPG_AGENT_INFO",
- "SSH_AGENT_PID",
- "SSH_AUTH_SOCK",
- "STY",
- "WINDOW",
- "XAUTHORITY",
-]
-
-environ_whitelist = frozenset(environ_whitelist)
+environ_whitelist = frozenset(
+ (
+ "A",
+ "AA",
+ "ACCEPT_LICENSE",
+ "BASH_ENV",
+ "BASH_FUNC____in_portage_iuse%%",
+ "BINPKG_FORMAT",
+ "BROOT",
+ "BUILD_ID",
+ "BUILD_PREFIX",
+ "CATEGORY",
+ "COLUMNS",
+ "D",
+ "DISTDIR",
+ "DOC_SYMLINKS_DIR",
+ "EAPI",
+ "EBUILD",
+ "EBUILD_FORCE_TEST",
+ "EBUILD_PHASE",
+ "EBUILD_PHASE_FUNC",
+ "ECLASSDIR",
+ "ECLASS_DEPTH",
+ "ED",
+ "EMERGE_FROM",
+ "ENV_UNSET",
+ "EPREFIX",
+ "EROOT",
+ "ESYSROOT",
+ "FEATURES",
+ "FILESDIR",
+ "HOME",
+ "MERGE_TYPE",
+ "NOCOLOR",
+ "P",
+ "PATH",
+ "PF",
+ "PKGDIR",
+ "PKGUSE",
+ "PKG_LOGDIR",
+ "PKG_TMPDIR",
+ "PM_EBUILD_HOOK_DIR",
+ "PN",
+ "PORTAGE_ACTUAL_DISTDIR",
+ "PORTAGE_ARCHLIST",
+ "PORTAGE_BASHRC_FILES",
+ "PORTAGE_BASHRC",
+ "PORTAGE_BINPKG_FILE",
+ "PORTAGE_BINPKG_TAR_OPTS",
+ "PORTAGE_BINPKG_TMPFILE",
+ "PORTAGE_BIN_PATH",
+ "PORTAGE_BUILDDIR",
+ "PORTAGE_BUILD_GROUP",
+ "PORTAGE_BUILD_USER",
+ "PORTAGE_BUNZIP2_COMMAND",
+ "PORTAGE_BZIP2_COMMAND",
+ "PORTAGE_COLORMAP",
+ "PORTAGE_COMPRESS",
+ "PORTAGE_COMPRESSION_COMMAND",
+ "PORTAGE_COMPRESS_EXCLUDE_SUFFIXES",
+ "PORTAGE_CONFIGROOT",
+ "PORTAGE_DEBUG",
+ "PORTAGE_DEPCACHEDIR",
+ "PORTAGE_DOHTML_UNWARNED_SKIPPED_EXTENSIONS",
+ "PORTAGE_DOHTML_UNWARNED_SKIPPED_FILES",
+ "PORTAGE_DOHTML_WARN_ON_SKIPPED_FILES",
+ "PORTAGE_EBUILD_EXIT_FILE",
+ "PORTAGE_FEATURES",
+ "PORTAGE_GID",
+ "PORTAGE_GRPNAME",
+ "PORTAGE_INTERNAL_CALLER",
+ "PORTAGE_INST_GID",
+ "PORTAGE_INST_UID",
+ "PORTAGE_IPC_DAEMON",
+ "PORTAGE_IUSE",
+ "PORTAGE_ECLASS_LOCATIONS",
+ "PORTAGE_LOG_FILE",
+ "PORTAGE_OVERRIDE_EPREFIX",
+ "PORTAGE_PIPE_FD",
+ "PORTAGE_PROPERTIES",
+ "PORTAGE_PYM_PATH",
+ "PORTAGE_PYTHON",
+ "PORTAGE_PYTHONPATH",
+ "PORTAGE_QUIET",
+ "PORTAGE_REPO_NAME",
+ "PORTAGE_REPOSITORIES",
+ "PORTAGE_RESTRICT",
+ "PORTAGE_SIGPIPE_STATUS",
+ "PORTAGE_SOCKS5_PROXY",
+ "PORTAGE_TMPDIR",
+ "PORTAGE_UPDATE_ENV",
+ "PORTAGE_USERNAME",
+ "PORTAGE_VERBOSE",
+ "PORTAGE_WORKDIR_MODE",
+ "PORTAGE_XATTR_EXCLUDE",
+ "PORTDIR",
+ "PORTDIR_OVERLAY",
+ "PR",
+ "PREROOTPATH",
+ "PV",
+ "PVR",
+ "PYTHONDONTWRITEBYTECODE",
+ "REPLACING_VERSIONS",
+ "REPLACED_BY_VERSION",
+ "ROOT",
+ "ROOTPATH",
+ "SANDBOX_LOG",
+ "SYSROOT",
+ "T",
+ "TMP",
+ "TMPDIR",
+ "USE_EXPAND",
+ "USE_ORDER",
+ "WORKDIR",
+ "XARGS",
+ "__PORTAGE_TEST_HARDLINK_LOCKS",
+ # user config variables
+ "DOC_SYMLINKS_DIR",
+ "INSTALL_MASK",
+ "PKG_INSTALL_MASK",
+ # misc variables inherited from the calling environment
+ "COLORTERM",
+ "DISPLAY",
+ "EDITOR",
+ "LESS",
+ "LESSOPEN",
+ "LOGNAME",
+ "LS_COLORS",
+ "PAGER",
+ "TERM",
+ "TERMCAP",
+ "USER",
+ "ftp_proxy",
+ "http_proxy",
+ "no_proxy",
+ # tempdir settings
+ "TMPDIR",
+ "TEMP",
+ "TMP",
+ # localization settings
+ "LANG",
+ "LC_COLLATE",
+ "LC_CTYPE",
+ "LC_MESSAGES",
+ "LC_MONETARY",
+ "LC_NUMERIC",
+ "LC_TIME",
+ "LC_PAPER",
+ "LC_ALL",
+ # other variables inherited from the calling environment
+ "CVS_RSH",
+ "ECHANGELOG_USER",
+ "GPG_AGENT_INFO",
+ "SSH_AGENT_PID",
+ "SSH_AUTH_SOCK",
+ "STY",
+ "WINDOW",
+ "XAUTHORITY",
+ )
+)
environ_whitelist_re = re.compile(r"^(CCACHE_|DISTCC_).*")
# Filter selected variables in the config.environ() method so that
# they don't needlessly propagate down into the ebuild environment.
-environ_filter = []
-
# Exclude anything that could be extremely long here (like SRC_URI)
# since that could cause execve() calls to fail with E2BIG errors. For
# example, see bug #262647.
-environ_filter += [
- "DEPEND",
- "RDEPEND",
- "PDEPEND",
- "SRC_URI",
- "BDEPEND",
- "IDEPEND",
-]
-
-# misc variables inherited from the calling environment
-environ_filter += [
- "INFOPATH",
- "MANPATH",
- "USER",
-]
-
-# variables that break bash
-environ_filter += [
- "HISTFILE",
- "POSIXLY_CORRECT",
-]
-
-# portage config variables and variables set directly by portage
-environ_filter += [
- "ACCEPT_CHOSTS",
- "ACCEPT_KEYWORDS",
- "ACCEPT_PROPERTIES",
- "ACCEPT_RESTRICT",
- "AUTOCLEAN",
- "BINPKG_COMPRESS",
- "BINPKG_COMPRESS_FLAGS",
- "CLEAN_DELAY",
- "COLLISION_IGNORE",
- "CONFIG_PROTECT",
- "CONFIG_PROTECT_MASK",
- "EGENCACHE_DEFAULT_OPTS",
- "EMERGE_DEFAULT_OPTS",
- "EMERGE_LOG_DIR",
- "EMERGE_WARNING_DELAY",
- "FETCHCOMMAND",
- "FETCHCOMMAND_FTP",
- "FETCHCOMMAND_HTTP",
- "FETCHCOMMAND_HTTPS",
- "FETCHCOMMAND_RSYNC",
- "FETCHCOMMAND_SFTP",
- "GENTOO_MIRRORS",
- "NOCONFMEM",
- "O",
- "PORTAGE_BACKGROUND",
- "PORTAGE_BACKGROUND_UNMERGE",
- "PORTAGE_BINHOST",
- "PORTAGE_BINPKG_FORMAT",
- "PORTAGE_BUILDDIR_LOCKED",
- "PORTAGE_CHECKSUM_FILTER",
- "PORTAGE_ELOG_CLASSES",
- "PORTAGE_ELOG_MAILFROM",
- "PORTAGE_ELOG_MAILSUBJECT",
- "PORTAGE_ELOG_MAILURI",
- "PORTAGE_ELOG_SYSTEM",
- "PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS",
- "PORTAGE_FETCH_RESUME_MIN_SIZE",
- "PORTAGE_GPG_DIR",
- "PORTAGE_GPG_KEY",
- "PORTAGE_GPG_SIGNING_COMMAND",
- "PORTAGE_IONICE_COMMAND",
- "PORTAGE_PACKAGE_EMPTY_ABORT",
- "PORTAGE_REPO_DUPLICATE_WARN",
- "PORTAGE_RO_DISTDIRS",
- "PORTAGE_RSYNC_EXTRA_OPTS",
- "PORTAGE_RSYNC_OPTS",
- "PORTAGE_RSYNC_RETRIES",
- "PORTAGE_SSH_OPTS",
- "PORTAGE_SYNC_STALE",
- "PORTAGE_USE",
- "PORTAGE_LOG_FILTER_FILE_CMD",
- "PORTAGE_LOGDIR",
- "PORTAGE_LOGDIR_CLEAN",
- "QUICKPKG_DEFAULT_OPTS",
- "REPOMAN_DEFAULT_OPTS",
- "RESUMECOMMAND",
- "RESUMECOMMAND_FTP",
- "RESUMECOMMAND_HTTP",
- "RESUMECOMMAND_HTTPS",
- "RESUMECOMMAND_RSYNC",
- "RESUMECOMMAND_SFTP",
- "UNINSTALL_IGNORE",
- "USE_EXPAND_HIDDEN",
- "USE_ORDER",
- "__PORTAGE_HELPER",
-]
-
-# No longer supported variables
-environ_filter += ["SYNC"]
-
-environ_filter = frozenset(environ_filter)
+environ_filter = frozenset(
+ (
+ "DEPEND",
+ "RDEPEND",
+ "PDEPEND",
+ "SRC_URI",
+ "BDEPEND",
+ "IDEPEND",
+ # misc variables inherited from the calling environment
+ "INFOPATH",
+ "MANPATH",
+ "USER",
+ # variables that break bash
+ "HISTFILE",
+ "POSIXLY_CORRECT",
+ # portage config variables and variables set directly by portage
+ "ACCEPT_CHOSTS",
+ "ACCEPT_KEYWORDS",
+ "ACCEPT_PROPERTIES",
+ "ACCEPT_RESTRICT",
+ "AUTOCLEAN",
+ "BINPKG_COMPRESS",
+ "BINPKG_COMPRESS_FLAGS",
+ "CLEAN_DELAY",
+ "COLLISION_IGNORE",
+ "CONFIG_PROTECT",
+ "CONFIG_PROTECT_MASK",
+ "EGENCACHE_DEFAULT_OPTS",
+ "EMERGE_DEFAULT_OPTS",
+ "EMERGE_LOG_DIR",
+ "EMERGE_WARNING_DELAY",
+ "FETCHCOMMAND",
+ "FETCHCOMMAND_FTP",
+ "FETCHCOMMAND_HTTP",
+ "FETCHCOMMAND_HTTPS",
+ "FETCHCOMMAND_RSYNC",
+ "FETCHCOMMAND_SFTP",
+ "GENTOO_MIRRORS",
+ "NOCONFMEM",
+ "O",
+ "PORTAGE_BACKGROUND",
+ "PORTAGE_BACKGROUND_UNMERGE",
+ "PORTAGE_BINHOST",
+ "PORTAGE_BINPKG_FORMAT",
+ "PORTAGE_BUILDDIR_LOCKED",
+ "PORTAGE_CHECKSUM_FILTER",
+ "PORTAGE_ELOG_CLASSES",
+ "PORTAGE_ELOG_MAILFROM",
+ "PORTAGE_ELOG_MAILSUBJECT",
+ "PORTAGE_ELOG_MAILURI",
+ "PORTAGE_ELOG_SYSTEM",
+ "PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS",
+ "PORTAGE_FETCH_RESUME_MIN_SIZE",
+ "PORTAGE_GPG_DIR",
+ "PORTAGE_GPG_KEY",
+ "PORTAGE_GPG_SIGNING_COMMAND",
+ "PORTAGE_IONICE_COMMAND",
+ "PORTAGE_PACKAGE_EMPTY_ABORT",
+ "PORTAGE_REPO_DUPLICATE_WARN",
+ "PORTAGE_RO_DISTDIRS",
+ "PORTAGE_RSYNC_EXTRA_OPTS",
+ "PORTAGE_RSYNC_OPTS",
+ "PORTAGE_RSYNC_RETRIES",
+ "PORTAGE_SSH_OPTS",
+ "PORTAGE_SYNC_STALE",
+ "PORTAGE_USE",
+ "PORTAGE_LOG_FILTER_FILE_CMD",
+ "PORTAGE_LOGDIR",
+ "PORTAGE_LOGDIR_CLEAN",
+ "QUICKPKG_DEFAULT_OPTS",
+ "REPOMAN_DEFAULT_OPTS",
+ "RESUMECOMMAND",
+ "RESUMECOMMAND_FTP",
+ "RESUMECOMMAND_HTTP",
+ "RESUMECOMMAND_HTTPS",
+ "RESUMECOMMAND_RSYNC",
+ "RESUMECOMMAND_SFTP",
+ "UNINSTALL_IGNORE",
+ "USE_EXPAND_HIDDEN",
+ "USE_ORDER",
+ "__PORTAGE_HELPER",
+ # No longer supported variables
+ "SYNC",
+ )
+)
# Variables that are not allowed to have per-repo or per-package
# settings.