public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/portage:master commit in: bin/, pym/portage/package/ebuild/
@ 2014-11-29 18:34 Zac Medico
  0 siblings, 0 replies; 6+ messages in thread
From: Zac Medico @ 2014-11-29 18:34 UTC (permalink / raw
  To: gentoo-commits

commit:     743b3337644fbb3ea461d3a9137c9ac85e163f03
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  5 06:50:02 2014 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Nov 29 18:28:35 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=743b3337

ebuild.sh: force fresh env for pkg_setup (528274)

In ebuild.sh, $T/environment is loaded for most phases, but it should
always start with a fresh environment for pkg_setup. Therefore, skip
environment loading for pkg_setup, and force the ebuild to be sourced.

This also requires a change in the config.environ method, in order
to ensure that the calling environment is inherited by pkg_setup
(even though $T/environment may exist).

X-Gentoo-Bug: 528274
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=528274
Acked-by: Brian Dolbec <dolsen <AT> gentoo.org>

---
 bin/ebuild.sh                        | 4 ++--
 pym/portage/package/ebuild/config.py | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index 658884a..232bf44 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -501,7 +501,7 @@ fi
 export EBUILD_MASTER_PID=${BASHPID:-$(__bashpid)}
 trap 'exit 1' SIGTERM
 
-if ! has "$EBUILD_PHASE" clean cleanrm depend && \
+if ! has "$EBUILD_PHASE" clean cleanrm depend setup && \
 	[ -f "${T}"/environment ] ; then
 	# The environment may have been extracted from environment.bz2 or
 	# may have come from another version of ebuild.sh or something.
@@ -550,7 +550,7 @@ eval "PORTAGE_ECLASS_LOCATIONS=(${PORTAGE_ECLASS_LOCATIONS})"
 # Source the ebuild every time for FEATURES=noauto, so that ebuild
 # modifications take effect immediately.
 if ! has "$EBUILD_PHASE" clean cleanrm ; then
-	if [[ $EBUILD_PHASE = depend || ! -f $T/environment || \
+	if [[ $EBUILD_PHASE =~ ^(depend|setup)$ || ! -f $T/environment || \
 		-f $PORTAGE_BUILDDIR/.ebuild_changed || \
 		" ${FEATURES} " == *" noauto "* ]] ; then
 		# The bashrcs get an opportunity here to set aliases that will be expanded

diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
index aca27f2..ca15f81 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -2665,7 +2665,7 @@ class config(object):
 		phase = self.get('EBUILD_PHASE')
 		filter_calling_env = False
 		if self.mycpv is not None and \
-			phase not in ('clean', 'cleanrm', 'depend', 'fetch'):
+			phase not in ('clean', 'cleanrm', 'depend', 'fetch', 'setup'):
 			temp_dir = self.get('T')
 			if temp_dir is not None and \
 				os.path.exists(os.path.join(temp_dir, 'environment')):


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] proj/portage:master commit in: bin/, pym/portage/package/ebuild/
@ 2014-12-02 18:32 Zac Medico
  0 siblings, 0 replies; 6+ messages in thread
From: Zac Medico @ 2014-12-02 18:32 UTC (permalink / raw
  To: gentoo-commits

commit:     58c27aec81262d6840e36f2f56c32bec68c414c1
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 29 23:35:47 2014 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Dec  2 18:29:35 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=58c27aec

ebuild.sh: fix pkg_setup env for binary packages (528274)

In commit 743b3337644fbb3ea461d3a9137c9ac85e163f03, support for binary
packages broke, since binary packages must load the environment from
$T/environment. This patch fixes the logic to handle binary packages
correctly.

Fixes: 743b3337644f ("ebuild.sh: force fresh env for pkg_setup (528274)")
X-Gentoo-Bug: 528274
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=528274
Acked-by: Brian Dolbec <dolsen <AT> gentoo.org>

---
 bin/ebuild.sh                          | 6 ++++--
 pym/portage/package/ebuild/config.py   | 4 +++-
 pym/portage/package/ebuild/doebuild.py | 7 +++++--
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index 232bf44..2ed1335 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -501,7 +501,8 @@ fi
 export EBUILD_MASTER_PID=${BASHPID:-$(__bashpid)}
 trap 'exit 1' SIGTERM
 
-if ! has "$EBUILD_PHASE" clean cleanrm depend setup && \
+if ! has "$EBUILD_PHASE" clean cleanrm depend && \
+	! [[ $EMERGE_FROM = ebuild && $EBUILD_PHASE = setup ]] && \
 	[ -f "${T}"/environment ] ; then
 	# The environment may have been extracted from environment.bz2 or
 	# may have come from another version of ebuild.sh or something.
@@ -550,7 +551,8 @@ eval "PORTAGE_ECLASS_LOCATIONS=(${PORTAGE_ECLASS_LOCATIONS})"
 # Source the ebuild every time for FEATURES=noauto, so that ebuild
 # modifications take effect immediately.
 if ! has "$EBUILD_PHASE" clean cleanrm ; then
-	if [[ $EBUILD_PHASE =~ ^(depend|setup)$ || ! -f $T/environment || \
+	if [[ $EBUILD_PHASE = setup && $EMERGE_FROM = ebuild ]] || \
+		[[ $EBUILD_PHASE = depend || ! -f $T/environment || \
 		-f $PORTAGE_BUILDDIR/.ebuild_changed || \
 		" ${FEATURES} " == *" noauto "* ]] ; then
 		# The bashrcs get an opportunity here to set aliases that will be expanded

diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
index ca15f81..59e239b 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -2663,9 +2663,11 @@ class config(object):
 		eapi = self.get('EAPI')
 		eapi_attrs = _get_eapi_attrs(eapi)
 		phase = self.get('EBUILD_PHASE')
+		emerge_from = self.get('EMERGE_FROM')
 		filter_calling_env = False
 		if self.mycpv is not None and \
-			phase not in ('clean', 'cleanrm', 'depend', 'fetch', 'setup'):
+			not (emerge_from == 'ebuild' and phase == 'setup') and \
+			phase not in ('clean', 'cleanrm', 'depend', 'fetch'):
 			temp_dir = self.get('T')
 			if temp_dir is not None and \
 				os.path.exists(os.path.join(temp_dir, 'environment')):

diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index 6df3c69..bf97660 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -913,12 +913,15 @@ def doebuild(myebuild, mydo, _unused=DeprecationWarning, settings=None, debug=0,
 		if eapi_exports_merge_type(mysettings["EAPI"]) and \
 			"MERGE_TYPE" not in mysettings.configdict["pkg"]:
 			if tree == "porttree":
-				mysettings.configdict["pkg"]["EMERGE_FROM"] = "ebuild"
 				mysettings.configdict["pkg"]["MERGE_TYPE"] = "source"
 			elif tree == "bintree":
-				mysettings.configdict["pkg"]["EMERGE_FROM"] = "binary"
 				mysettings.configdict["pkg"]["MERGE_TYPE"] = "binary"
 
+		if tree == "porttree":
+			mysettings.configdict["pkg"]["EMERGE_FROM"] = "ebuild"
+		elif tree == "bintree":
+			mysettings.configdict["pkg"]["EMERGE_FROM"] = "binary"
+
 		# NOTE: It's not possible to set REPLACED_BY_VERSION for prerm
 		#       and postrm here, since we don't necessarily know what
 		#       versions are being installed. This could be a problem


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] proj/portage:master commit in: bin/, pym/portage/package/ebuild/
@ 2015-03-22 19:37 Zac Medico
  0 siblings, 0 replies; 6+ messages in thread
From: Zac Medico @ 2015-03-22 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     c9aebae4633a972b78f7f999aa755fa6d25c8451
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 22 00:04:12 2015 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Mar 22 19:36:48 2015 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=c9aebae4

_post_src_install_soname_symlinks: fix bug 543818

The SonameDepsProcessor.add() method raises AssertionError if the
multilib category of an ELF file is not recognized. It's not possible
to account for soname dependencies in this case (the file is probably
intended for a foreign architecture), so avoid the AssertionError and
generate an eqawarn message for this case. The eqawarn message is
suppressed for files matched by the QA_PREBUILT variable.

X-Gentoo-Bug: 543818
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=543818
Acked-by: Brian Dolbec <dolsen <AT> gentoo.org>

 bin/phase-functions.sh                 |  2 +-
 pym/portage/package/ebuild/doebuild.py | 59 +++++++++++++++++++++++-----------
 2 files changed, 42 insertions(+), 19 deletions(-)

diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
index def2080..2743e27 100644
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@ -580,7 +580,7 @@ __dyn_install() {
 		for f in ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX \
 			CXXFLAGS EXTRA_ECONF EXTRA_EINSTALL EXTRA_MAKE \
 			LDFLAGS LIBCFLAGS LIBCXXFLAGS QA_CONFIGURE_OPTIONS \
-			QA_DESKTOP_FILE PROVIDES_EXCLUDE REQUIRES_EXCLUDE ; do
+			QA_DESKTOP_FILE QA_PREBUILT PROVIDES_EXCLUDE REQUIRES_EXCLUDE ; do
 			x=$(echo -n ${!f})
 			[[ -n $x ]] && echo "$x" > $f
 		done

diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index 94785b5..1be83ad 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -8,6 +8,7 @@ __all__ = ['doebuild', 'doebuild_environment', 'spawn', 'spawnebuild']
 import grp
 import gzip
 import errno
+import fnmatch
 import io
 from itertools import chain
 import logging
@@ -2209,24 +2210,29 @@ def _post_src_install_soname_symlinks(mysettings, out):
 		if f is not None:
 			f.close()
 
-	qa_no_symlink = ""
-	f = None
-	try:
-		f = io.open(_unicode_encode(os.path.join(
-			mysettings["PORTAGE_BUILDDIR"],
-			"build-info", "QA_SONAME_NO_SYMLINK"),
-			encoding=_encodings['fs'], errors='strict'),
-			mode='r', encoding=_encodings['repo.content'],
-			errors='replace')
-		qa_no_symlink = f.read()
-	except IOError as e:
-		if e.errno not in (errno.ENOENT, errno.ESTALE):
-			raise
-	finally:
-		if f is not None:
-			f.close()
+	metadata = {}
+	for k in ("QA_PREBUILT", "QA_NO_SYMLINK"):
+		try:
+			with io.open(_unicode_encode(os.path.join(
+				mysettings["PORTAGE_BUILDDIR"],
+				"build-info", k),
+				encoding=_encodings['fs'], errors='strict'),
+				mode='r', encoding=_encodings['repo.content'],
+				errors='replace') as f:
+				v = f.read()
+		except IOError as e:
+			if e.errno not in (errno.ENOENT, errno.ESTALE):
+				raise
+		else:
+			metadata[k] = v
+
+	qa_prebuilt = metadata.get("QA_PREBUILT", "").strip()
+	if qa_prebuilt:
+		qa_prebuilt = re.compile("|".join(
+			fnmatch.translate(x.lstrip(os.sep))
+			for x in portage.util.shlex_split(qa_prebuilt)))
 
-	qa_no_symlink = qa_no_symlink.split()
+	qa_no_symlink = metadata.get("QA_NO_SYMLINK", "").split()
 	if qa_no_symlink:
 		if len(qa_no_symlink) > 1:
 			qa_no_symlink = "|".join("(%s)" % x for x in qa_no_symlink)
@@ -2297,6 +2303,7 @@ def _post_src_install_soname_symlinks(mysettings, out):
 		requires_exclude = ""
 
 	missing_symlinks = []
+	unrecognized_elf_files = []
 	soname_deps = SonameDepsProcessor(
 		provides_exclude, requires_exclude)
 
@@ -2326,7 +2333,14 @@ def _post_src_install_soname_symlinks(mysettings, out):
 		entry.multilib_category = compute_multilib_category(elf_header)
 		needed_file.write(_unicode(entry))
 
-		soname_deps.add(entry)
+		if entry.multilib_category is None:
+			if not qa_prebuilt or qa_prebuilt.match(
+				entry.filename[len(mysettings["EPREFIX"]):].lstrip(
+				os.sep)) is None:
+				unrecognized_elf_files.append(entry)
+		else:
+			soname_deps.add(entry)
+
 		obj = entry.filename
 		soname = entry.soname
 
@@ -2365,6 +2379,15 @@ def _post_src_install_soname_symlinks(mysettings, out):
 			errors='strict') as f:
 			f.write(soname_deps.provides)
 
+	if unrecognized_elf_files:
+		qa_msg = ["QA Notice: Unrecognized ELF file(s):"]
+		qa_msg.append("")
+		qa_msg.extend("\t%s" % _unicode(entry).rstrip()
+			for entry in unrecognized_elf_files)
+		qa_msg.append("")
+		for line in qa_msg:
+			eqawarn(line, key=mysettings.mycpv, out=out)
+
 	if not missing_symlinks:
 		return
 


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] proj/portage:master commit in: bin/, pym/portage/package/ebuild/
@ 2016-12-03 20:33 Zac Medico
  0 siblings, 0 replies; 6+ messages in thread
From: Zac Medico @ 2016-12-03 20:33 UTC (permalink / raw
  To: gentoo-commits

commit:     0c06ff5f8f3e86592bbaeb38f274797505c45b2a
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Dec  3 05:21:01 2016 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Dec  3 20:03:41 2016 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=0c06ff5f

bin/ebuild: fix EBUILD_FORCE_TEST / RESTRICT interaction (bug 601466)

Ensure that config adjustments are applied to all relevant
config instances, in order to prevent inconsistencies like
the one that triggered bug 601466. Move the "Forcing test"
message from config to bin/ebuild, in order to avoid
duplicate messages.

X-Gentoo-Bug: 601466
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=601466
Acked-by: Brian Dolbec <dolsen <AT> gentoo.org>

 bin/ebuild                           | 25 ++++++++++++++++++-------
 pym/portage/package/ebuild/config.py |  5 -----
 2 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/bin/ebuild b/bin/ebuild
index 1f99177..7930b41 100755
--- a/bin/ebuild
+++ b/bin/ebuild
@@ -53,6 +53,7 @@ from portage import _unicode_encode
 from portage.const import VDB_PATH
 from portage.exception import PermissionDenied, PortageKeyError, \
 	PortagePackageException, UnsupportedAPIException
+from portage.localization import _
 import portage.util
 from _emerge.Package import Package
 from _emerge.RootConfig import RootConfig
@@ -244,7 +245,11 @@ if mytree == "porttree" and build_dir_phases.intersection(pargs):
 	ebuild_changed = \
 		portage.portdb._pull_valid_cache(cpv, ebuild, ebuild_portdir)[0] is None
 
-tmpsettings = portage.config(clone=portage.settings)
+# Make configuration adjustments to portage.portdb.doebuild_settings,
+# in order to enforce consistency for EBUILD_FORCE_TEST support
+# (see bug 601466).
+tmpsettings = portage.portdb.doebuild_settings
+
 tmpsettings["PORTAGE_VERBOSE"] = "1"
 tmpsettings.backup_changes("PORTAGE_VERBOSE")
 
@@ -265,6 +270,7 @@ if "test" in pargs:
 	tmpsettings["EBUILD_FORCE_TEST"] = "1"
 	tmpsettings.backup_changes("EBUILD_FORCE_TEST")
 	tmpsettings.features.add("test")
+	portage.writemsg(_("Forcing test.\n"), noiselevel=-1)
 
 tmpsettings.features.discard("fail-clean")
 
@@ -272,6 +278,17 @@ if "merge" in pargs and "noauto" in tmpsettings.features:
 	print("Disabling noauto in features... merge disables it. (qmerge doesn't)")
 	tmpsettings.features.discard("noauto")
 
+if 'digest' in tmpsettings.features:
+	if pargs and pargs[0] not in ("digest", "manifest"):
+		pargs = ['digest'] + pargs
+	# We only need to build digests on the first pass.
+	tmpsettings.features.discard('digest')
+
+# Now that configuration adjustments are complete, create a clone of
+# tmpsettings. The current instance refers to portdb.doebuild_settings,
+# and we want to avoid the possibility of unintended side-effects.
+tmpsettings = portage.config(clone=tmpsettings)
+
 try:
 	metadata = dict(zip(Package.metadata_keys,
 		portage.db[portage.settings['EROOT']][mytree].dbapi.aux_get(
@@ -315,12 +332,6 @@ def stale_env_warning():
 				open(os.path.join(tmpsettings['PORTAGE_BUILDDIR'],
 					'.ebuild_changed'), 'w').close()
 
-if 'digest' in tmpsettings.features:
-	if pargs and pargs[0] not in ("digest", "manifest"):
-		pargs = ['digest'] + pargs
-	# We only need to build digests on the first pass.
-	tmpsettings.features.discard('digest')
-
 checked_for_stale_env = False
 
 for arg in pargs:

diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
index 505c7a2..4f7e5c9 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -1699,11 +1699,6 @@ class config(object):
 		ebuild_force_test = not restrict_test and \
 			self.get("EBUILD_FORCE_TEST") == "1"
 
-		if ebuild_force_test and \
-			not hasattr(self, "_ebuild_force_test_msg_shown"):
-				self._ebuild_force_test_msg_shown = True
-				writemsg(_("Forcing test.\n"), noiselevel=-1)
-
 		if "test" in explicit_iuse or iuse_implicit_match("test"):
 			if "test" not in self.features:
 				use.discard("test")


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] proj/portage:master commit in: bin/, pym/portage/package/ebuild/
@ 2017-08-26 21:16 Michał Górny
  0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2017-08-26 21:16 UTC (permalink / raw
  To: gentoo-commits

commit:     b6ac1641c752db48841f671e0ce7c4e1e98e1933
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 15 08:11:10 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug 26 21:16:07 2017 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=b6ac1641

Support post-postinst QA checks

Extend the QA check mechanics in Portage to support post-postinst QA
checks. They are like post-install QA checks, except they are run after
pkg_postinst(), and so they can be used to verify that necessary
postinst actions were performed (e.g. regenerating caches).

Reviewed-by: Zac Medico <zmedico <AT> gentoo.org>

 bin/misc-functions.sh                  | 57 ++++++++++++++++++++++++++++++++++
 pym/portage/package/ebuild/doebuild.py |  5 ++-
 2 files changed, 61 insertions(+), 1 deletion(-)

diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh
index 079369313..18cddea21 100755
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
@@ -256,6 +256,63 @@ install_qa_check() {
 	rm -f "${ED}"/usr/share/info/dir{,.gz,.bz2} || die "rm failed!"
 }
 
+postinst_qa_check() {
+	local d f paths qa_checks=()
+	if ! ___eapi_has_prefix_variables; then
+		local EPREFIX= EROOT=${ROOT}
+	fi
+
+	cd "${EROOT}" || die "cd failed"
+
+	# Collect the paths for QA checks, highest prio first.
+	paths=(
+		# sysadmin overrides
+		"${PORTAGE_OVERRIDE_EPREFIX}"/usr/local/lib/postinst-qa-check.d
+		# system-wide package installs
+		"${PORTAGE_OVERRIDE_EPREFIX}"/usr/lib/postinst-qa-check.d
+	)
+
+	# Now repo-specific checks.
+	# (yes, PORTAGE_ECLASS_LOCATIONS contains repo paths...)
+	for d in "${PORTAGE_ECLASS_LOCATIONS[@]}"; do
+		paths+=(
+			"${d}"/metadata/postinst-qa-check.d
+		)
+	done
+
+	paths+=(
+		# Portage built-in checks
+		"${PORTAGE_OVERRIDE_EPREFIX}"/usr/lib/portage/postinst-qa-check.d
+		"${PORTAGE_BIN_PATH}"/postinst-qa-check.d
+	)
+
+	# Collect file names of QA checks. We need them early to support
+	# overrides properly.
+	for d in "${paths[@]}"; do
+		for f in "${d}"/*; do
+			[[ -f ${f} ]] && qa_checks+=( "${f##*/}" )
+		done
+	done
+
+	# Now we need to sort the filenames lexically, and process
+	# them in order.
+	while read -r -d '' f; do
+		# Find highest priority file matching the basename.
+		for d in "${paths[@]}"; do
+			[[ -f ${d}/${f} ]] && break
+		done
+
+		# Run in a subshell to treat it like external script,
+		# but use 'source' to pass all variables through.
+		(
+			# Allow inheriting eclasses.
+			# XXX: we want this only in repository-wide checks.
+			_IN_INSTALL_QA_CHECK=1
+			source "${d}/${f}" || eerror "Post-postinst QA check ${f} failed to run"
+		)
+	done < <(printf "%s\0" "${qa_checks[@]}" | LC_ALL=C sort -u -z)
+}
+
 install_mask() {
 	local root="$1"
 	shift

diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index 14d96f57c..ac697a763 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -1738,7 +1738,10 @@ _post_phase_cmds = {
 		"preinst_sfperms",
 		"preinst_selinux_labels",
 		"preinst_suid_scan",
-		]
+		],
+
+	"postinst" : [
+		"postinst_qa_check"],
 }
 
 def _post_phase_userpriv_perms(mysettings):


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [gentoo-commits] proj/portage:master commit in: bin/, pym/portage/package/ebuild/
@ 2018-03-16  9:53 Michał Górny
  0 siblings, 0 replies; 6+ messages in thread
From: Michał Górny @ 2018-03-16  9:53 UTC (permalink / raw
  To: gentoo-commits

commit:     f5f6a6da0db1dfe824c0d4386e6b4458338df179
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 16 08:10:33 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Mar 16 09:53:19 2018 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=f5f6a6da

Stop crippling metadata for virtual/*

There is no technical requirement that virtual/* packages will reliably
contain no executable code. Therefore, stop crippling the metadata
stored in vdb for them.

Closes: https://github.com/gentoo/portage/pull/269
Reviewed-by: Zac Medico <zmedico <AT> gentoo.org>

 bin/phase-functions.sh                 | 24 ++++++++++--------------
 pym/portage/package/ebuild/doebuild.py | 11 ++++-------
 2 files changed, 14 insertions(+), 21 deletions(-)

diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
index 0ceddb451..6ae61b2f0 100644
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@ -662,23 +662,19 @@ __dyn_install() {
 	local f x
 	IFS=$' \t\n\r'
 	for f in CATEGORY DEFINED_PHASES FEATURES INHERITED IUSE \
-		PF PKGUSE SLOT KEYWORDS HOMEPAGE DESCRIPTION ; do
+		PF PKGUSE SLOT KEYWORDS HOMEPAGE DESCRIPTION \
+		ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX \
+		CXXFLAGS EXTRA_ECONF EXTRA_EINSTALL EXTRA_MAKE \
+		LDFLAGS LIBCFLAGS LIBCXXFLAGS QA_CONFIGURE_OPTIONS \
+		QA_DESKTOP_FILE QA_PREBUILT PROVIDES_EXCLUDE REQUIRES_EXCLUDE ; do
+
 		x=$(echo -n ${!f})
 		[[ -n $x ]] && echo "$x" > $f
 	done
-	if [[ $CATEGORY != virtual ]] ; then
-		for f in ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX \
-			CXXFLAGS EXTRA_ECONF EXTRA_EINSTALL EXTRA_MAKE \
-			LDFLAGS LIBCFLAGS LIBCXXFLAGS QA_CONFIGURE_OPTIONS \
-			QA_DESKTOP_FILE QA_PREBUILT PROVIDES_EXCLUDE REQUIRES_EXCLUDE ; do
-			x=$(echo -n ${!f})
-			[[ -n $x ]] && echo "$x" > $f
-		done
-		# whitespace preserved
-		for f in QA_AM_MAINTAINER_MODE ; do
-			[[ -n ${!f} ]] && echo "${!f}" > $f
-		done
-	fi
+	# whitespace preserved
+	for f in QA_AM_MAINTAINER_MODE ; do
+		[[ -n ${!f} ]] && echo "${!f}" > $f
+	done
 	echo "${USE}"       > USE
 	echo "${EAPI:-0}"   > EAPI
 

diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index 8cec8e4da..8436c0b10 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -1930,13 +1930,10 @@ def _post_src_install_write_metadata(settings):
 		if v is not None:
 			write_atomic(os.path.join(build_info_dir, k), v + '\n')
 
-	# The following variables are irrelevant for virtual packages.
-	if settings.get('CATEGORY') != 'virtual':
-
-		for k in ('CHOST',):
-			v = settings.get(k)
-			if v is not None:
-				write_atomic(os.path.join(build_info_dir, k), v + '\n')
+	for k in ('CHOST',):
+		v = settings.get(k)
+		if v is not None:
+			write_atomic(os.path.join(build_info_dir, k), v + '\n')
 
 	with io.open(_unicode_encode(os.path.join(build_info_dir,
 		'BUILD_TIME'), encoding=_encodings['fs'], errors='strict'),


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-03-16  9:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-03 20:33 [gentoo-commits] proj/portage:master commit in: bin/, pym/portage/package/ebuild/ Zac Medico
  -- strict thread matches above, loose matches on Subject: below --
2018-03-16  9:53 Michał Górny
2017-08-26 21:16 Michał Górny
2015-03-22 19:37 Zac Medico
2014-12-02 18:32 Zac Medico
2014-11-29 18:34 Zac Medico

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox