public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/, pym/portage/dbapi/, pym/_emerge/
@ 2013-01-04  2:23 Zac Medico
  0 siblings, 0 replies; 5+ messages in thread
From: Zac Medico @ 2013-01-04  2:23 UTC (permalink / raw
  To: gentoo-commits

commit:     b1637bc9d66bbee3a036dae968ef05aa4d4ac15d
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Fri Jan  4 02:23:42 2013 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Fri Jan  4 02:23:42 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=b1637bc9

portage._internal_caller: use global_event_loop

It's more efficient to use global_event_loop than a local EventLoop
instance, so do that when we know it's safe.

---
 pym/_emerge/PollScheduler.py                 |    6 ++++--
 pym/portage/dbapi/vartree.py                 |   15 ++++++++++-----
 pym/portage/package/ebuild/_spawn_nofetch.py |    6 ++++--
 pym/portage/package/ebuild/doebuild.py       |   20 ++++++++++++++------
 4 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/pym/_emerge/PollScheduler.py b/pym/_emerge/PollScheduler.py
index 220394b..b118ac1 100644
--- a/pym/_emerge/PollScheduler.py
+++ b/pym/_emerge/PollScheduler.py
@@ -1,4 +1,4 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 try:
@@ -6,6 +6,7 @@ try:
 except ImportError:
 	import dummy_threading as threading
 
+import portage
 from portage.util._async.SchedulerInterface import SchedulerInterface
 from portage.util._eventloop.EventLoop import EventLoop
 from portage.util._eventloop.global_event_loop import global_event_loop
@@ -35,7 +36,8 @@ class PollScheduler(object):
 		elif main:
 			self._event_loop = global_event_loop()
 		else:
-			self._event_loop = EventLoop(main=False)
+			self._event_loop = (portage._internal_caller and
+				global_event_loop() or EventLoop(main=False))
 		self._sched_iface = SchedulerInterface(self._event_loop,
 			is_background=self._is_background)
 

diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 7a930e5..beff5bd 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -1,4 +1,4 @@
-# Copyright 1998-2012 Gentoo Foundation
+# Copyright 1998-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 __all__ = [
@@ -34,6 +34,7 @@ portage.proxy.lazyimport.lazyimport(globals(),
 	'portage.util._dyn_libs.LinkageMapELF:LinkageMapELF@LinkageMap',
 	'portage.util._async.SchedulerInterface:SchedulerInterface',
 	'portage.util._eventloop.EventLoop:EventLoop',
+	'portage.util._eventloop.global_event_loop:global_event_loop',
 	'portage.versions:best,catpkgsplit,catsplit,cpv_getkey,vercmp,' + \
 		'_pkgsplit@pkgsplit,_pkg_str,_unknown_repo',
 	'subprocess',
@@ -1800,7 +1801,8 @@ class dblink(object):
 		if self._scheduler is None:
 			# We create a scheduler instance and use it to
 			# log unmerge output separately from merge output.
-			self._scheduler = SchedulerInterface(EventLoop(main=False))
+			self._scheduler = SchedulerInterface(portage._internal_caller and
+				global_event_loop() or EventLoop(main=False))
 		if self.settings.get("PORTAGE_BACKGROUND") == "subprocess":
 			if self.settings.get("PORTAGE_BACKGROUND_UNMERGE") == "1":
 				self.settings["PORTAGE_BACKGROUND"] = "1"
@@ -4742,7 +4744,8 @@ class dblink(object):
 
 			proc = SyncfsProcess(paths=paths,
 				scheduler=(self._scheduler or
-				SchedulerInterface(EventLoop(main=False))))
+				SchedulerInterface(portage._internal_caller and
+					global_event_loop() or EventLoop(main=False))))
 			proc.start()
 			returncode = proc.wait()
 
@@ -4766,7 +4769,8 @@ class dblink(object):
 			self.lockdb()
 		self.vartree.dbapi._bump_mtime(self.mycpv)
 		if self._scheduler is None:
-			self._scheduler = SchedulerInterface(EventLoop(main=False))
+			self._scheduler = SchedulerInterface(portage._internal_caller and
+				global_event_loop() or EventLoop(main=False))
 		try:
 			retval = self.treewalk(mergeroot, myroot, inforoot, myebuild,
 				cleanup=cleanup, mydbapi=mydbapi, prev_mtimes=prev_mtimes,
@@ -4950,7 +4954,8 @@ def merge(mycat, mypkg, pkgloc, infloc,
 	merge_task = MergeProcess(
 		mycat=mycat, mypkg=mypkg, settings=settings,
 		treetype=mytree, vartree=vartree,
-		scheduler=(scheduler or EventLoop(main=False)),
+		scheduler=(scheduler or portage._internal_caller and
+			global_event_loop() or EventLoop(main=False)),
 		background=background, blockers=blockers, pkgloc=pkgloc,
 		infloc=infloc, myebuild=myebuild, mydbapi=mydbapi,
 		prev_mtimes=prev_mtimes, logfile=settings.get('PORTAGE_LOG_FILE'))

diff --git a/pym/portage/package/ebuild/_spawn_nofetch.py b/pym/portage/package/ebuild/_spawn_nofetch.py
index 151fc2e..898eb03 100644
--- a/pym/portage/package/ebuild/_spawn_nofetch.py
+++ b/pym/portage/package/ebuild/_spawn_nofetch.py
@@ -1,4 +1,4 @@
-# Copyright 2010-2012 Gentoo Foundation
+# Copyright 2010-2013 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 import tempfile
@@ -12,6 +12,7 @@ from portage.package.ebuild.doebuild import doebuild_environment
 from portage.package.ebuild.prepare_build_dirs import prepare_build_dirs
 from portage.util._async.SchedulerInterface import SchedulerInterface
 from portage.util._eventloop.EventLoop import EventLoop
+from portage.util._eventloop.global_event_loop import global_event_loop
 from _emerge.EbuildPhase import EbuildPhase
 
 def spawn_nofetch(portdb, ebuild_path, settings=None):
@@ -79,7 +80,8 @@ def spawn_nofetch(portdb, ebuild_path, settings=None):
 		prepare_build_dirs(settings=settings)
 		ebuild_phase = EbuildPhase(background=False,
 			phase='nofetch',
-			scheduler=SchedulerInterface(EventLoop(main=False)),
+			scheduler=SchedulerInterface(portage._internal_caller and
+				global_event_loop() or EventLoop(main=False)),
 			settings=settings)
 		ebuild_phase.start()
 		ebuild_phase.wait()

diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index ff7776c..646faf4 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -33,6 +33,7 @@ portage.proxy.lazyimport.lazyimport(globals(),
 	'portage.util._desktop_entry:validate_desktop_entry',
 	'portage.util._async.SchedulerInterface:SchedulerInterface',
 	'portage.util._eventloop.EventLoop:EventLoop',
+	'portage.util._eventloop.global_event_loop:global_event_loop',
 	'portage.util.ExtractKernelVersion:ExtractKernelVersion'
 )
 
@@ -141,7 +142,8 @@ def _spawn_phase(phase, settings, actionmap=None, **kwargs):
 		return _doebuild_spawn(phase, settings, actionmap=actionmap, **kwargs)
 
 	ebuild_phase = EbuildPhase(actionmap=actionmap, background=False,
-		phase=phase, scheduler=SchedulerInterface(EventLoop(main=False)),
+		phase=phase, scheduler=SchedulerInterface(portage._internal_caller and
+			global_event_loop() or EventLoop(main=False)),
 		settings=settings)
 	ebuild_phase.start()
 	ebuild_phase.wait()
@@ -699,7 +701,8 @@ def doebuild(myebuild, mydo, _unused=None, settings=None, debug=0, listonly=0,
 			if not returnpid and \
 				'PORTAGE_BUILDDIR_LOCKED' not in mysettings:
 				builddir_lock = EbuildBuildDir(
-					scheduler=EventLoop(main=False),
+					scheduler=(portage._internal_caller and
+						global_event_loop() or EventLoop(main=False)),
 					settings=mysettings)
 				builddir_lock.lock()
 			try:
@@ -841,7 +844,8 @@ def doebuild(myebuild, mydo, _unused=None, settings=None, debug=0, listonly=0,
 					if builddir_lock is None and \
 						'PORTAGE_BUILDDIR_LOCKED' not in mysettings:
 						builddir_lock = EbuildBuildDir(
-							scheduler=EventLoop(main=False),
+							scheduler=(portage._internal_caller and
+								global_event_loop() or EventLoop(main=False)),
 							settings=mysettings)
 						builddir_lock.lock()
 					try:
@@ -864,7 +868,8 @@ def doebuild(myebuild, mydo, _unused=None, settings=None, debug=0, listonly=0,
 			if not returnpid and \
 				'PORTAGE_BUILDDIR_LOCKED' not in mysettings:
 				builddir_lock = EbuildBuildDir(
-					scheduler=EventLoop(main=False),
+					scheduler=(portage._internal_caller and
+						global_event_loop() or EventLoop(main=False)),
 					settings=mysettings)
 				builddir_lock.lock()
 			mystatus = prepare_build_dirs(myroot, mysettings, cleanup)
@@ -1204,7 +1209,9 @@ def _prepare_env_file(settings):
 	"""
 
 	env_extractor = BinpkgEnvExtractor(background=False,
-		scheduler=EventLoop(main=False), settings=settings)
+		scheduler=(portage._internal_caller and
+			global_event_loop() or EventLoop(main=False)),
+		settings=settings)
 
 	if env_extractor.dest_env_exists():
 		# There are lots of possible states when doebuild()
@@ -1476,7 +1483,8 @@ def spawn(mystring, mysettings, debug=0, free=0, droppriv=0, sesandbox=0, fakero
 
 	proc = EbuildSpawnProcess(
 		background=False, args=mystring,
-		scheduler=SchedulerInterface(EventLoop(main=False)),
+		scheduler=SchedulerInterface(portage._internal_caller and
+			global_event_loop() or EventLoop(main=False)),
 		spawn_func=spawn_func,
 		settings=mysettings, **keywords)
 


^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/, pym/portage/dbapi/, pym/_emerge/
@ 2013-07-25 21:54 Zac Medico
  0 siblings, 0 replies; 5+ messages in thread
From: Zac Medico @ 2013-07-25 21:54 UTC (permalink / raw
  To: gentoo-commits

commit:     1d790c4c1526e01e45f27b977fc2eff739be50b8
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 25 21:54:32 2013 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Thu Jul 25 21:54:32 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=1d790c4c

Refer to /etc/portage/make.conf in messages.

---
 pym/_emerge/actions.py              | 2 +-
 pym/portage/dbapi/vartree.py        | 2 +-
 pym/portage/package/ebuild/fetch.py | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index c5ee353..03074fe 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -3555,7 +3555,7 @@ def repo_name_duplicate_check(trees):
 			"All profiles/repo_name entries must be unique in order " + \
 			"to avoid having duplicates ignored. " + \
 			"Set PORTAGE_REPO_DUPLICATE_WARN=\"0\" in " + \
-			"/etc/make.conf if you would like to disable this warning."))
+			"/etc/portage/make.conf if you would like to disable this warning."))
 		msg.append("\n")
 		writemsg_level(''.join('%s\n' % l for l in msg),
 			level=logging.WARNING, noiselevel=-1)

diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index bc17a59..fe61229 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -3804,7 +3804,7 @@ class dblink(object):
 					_("Manually run `emerge --unmerge =%s` if you "
 					"really want to remove the above files. Set "
 					"PORTAGE_PACKAGE_EMPTY_ABORT=\"0\" in "
-					"/etc/make.conf if you do not want to "
+					"/etc/portage/make.conf if you do not want to "
 					"abort in cases like this.") % other_dblink.mycpv,
 					wrap_width))
 				eerror(msg)

diff --git a/pym/portage/package/ebuild/fetch.py b/pym/portage/package/ebuild/fetch.py
index fe5c5e3..5316f03 100644
--- a/pym/portage/package/ebuild/fetch.py
+++ b/pym/portage/package/ebuild/fetch.py
@@ -347,7 +347,7 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0,
 				_("!!! For fetching to a read-only filesystem, "
 				"locking should be turned off.\n")), noiselevel=-1)
 			writemsg(_("!!! This can be done by adding -distlocks to "
-				"FEATURES in /etc/make.conf\n"), noiselevel=-1)
+				"FEATURES in /etc/portage/make.conf\n"), noiselevel=-1)
 #			use_locks = 0
 
 	# local mirrors are always added
@@ -752,7 +752,7 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0,
 							"remaining space.\n"), noiselevel=-1)
 						if userfetch:
 							writemsg(_("!!! You may set FEATURES=\"-userfetch\""
-								" in /etc/make.conf in order to fetch with\n"
+								" in /etc/portage/make.conf in order to fetch with\n"
 								"!!! superuser privileges.\n"), noiselevel=-1)
 
 				if fsmirrors and not os.path.exists(myfile_path) and has_space:


^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/, pym/portage/dbapi/, pym/_emerge/
@ 2012-06-11 23:08 Zac Medico
  0 siblings, 0 replies; 5+ messages in thread
From: Zac Medico @ 2012-06-11 23:08 UTC (permalink / raw
  To: gentoo-commits

commit:     dd340e4492adc2377ebff566b5897facd234ec11
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 11 23:08:21 2012 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Jun 11 23:08:21 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=dd340e44

Move post_src_install metadata code to one func.

---
 pym/_emerge/EbuildPhase.py             |    4 +-
 pym/portage/dbapi/bintree.py           |    1 -
 pym/portage/package/ebuild/doebuild.py |   77 +++++++++++++++----------------
 3 files changed, 39 insertions(+), 43 deletions(-)

diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py
index 741f608..fe44abc 100644
--- a/pym/_emerge/EbuildPhase.py
+++ b/pym/_emerge/EbuildPhase.py
@@ -27,9 +27,9 @@ portage.proxy.lazyimport.lazyimport(globals(),
 	'portage.elog:messages@elog_messages',
 	'portage.package.ebuild.doebuild:_check_build_log,' + \
 		'_post_phase_cmds,_post_phase_userpriv_perms,' + \
-		'_post_src_install_chost_fix,' + \
 		'_post_src_install_soname_symlinks,' + \
 		'_post_src_install_uid_fix,_postinst_bsdflags,' + \
+		'_post_src_install_write_metadata,' + \
 		'_preinst_bsdflags'
 )
 from portage import os
@@ -215,7 +215,7 @@ class EbuildPhase(CompositeTask):
 
 		if self.phase == "install":
 			out = io.StringIO()
-			_post_src_install_chost_fix(settings)
+			_post_src_install_write_metadata(settings)
 			_post_src_install_uid_fix(settings, out)
 			msg = out.getvalue()
 			if msg:

diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py
index a8027ee..fb31572 100644
--- a/pym/portage/dbapi/bintree.py
+++ b/pym/portage/dbapi/bintree.py
@@ -10,7 +10,6 @@ portage.proxy.lazyimport.lazyimport(globals(),
 	'portage.dep:dep_getkey,isjustname,match_from_list',
 	'portage.output:EOutput,colorize',
 	'portage.locks:lockfile,unlockfile',
-	'portage.package.ebuild.doebuild:_vdb_use_conditional_atoms',
 	'portage.package.ebuild.fetch:_check_distfile,_hide_url_passwd',
 	'portage.update:update_dbentries',
 	'portage.util:atomic_ofstream,ensure_dirs,normalize_path,' + \

diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index bb2c2e0..edc5d0b 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -1623,7 +1623,7 @@ def _check_build_log(mysettings, out=None):
 	if f_real is not None:
 		f_real.close()
 
-def _post_src_install_chost_fix(settings):
+def _post_src_install_write_metadata(settings):
 	"""
 	It's possible that the ebuild has changed the
 	CHOST variable, so revert it to the initial
@@ -1646,9 +1646,44 @@ def _post_src_install_chost_fix(settings):
 			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'),
+		mode='w', encoding=_encodings['repo.content'],
+		errors='strict') as f:
+		f.write(_unicode_decode("%.0f\n" % (time.time(),)))
+
+	use = frozenset(settings['PORTAGE_USE'].split())
+	for k in _vdb_use_conditional_keys:
+		v = settings.configdict['pkg'].get(k)
+		filename = os.path.join(build_info_dir, k)
+		if v is None:
+			try:
+				os.unlink(filename)
+			except OSError:
+				pass
+			continue
+
+		if k.endswith('DEPEND'):
+			token_class = Atom
+		else:
+			token_class = None
+
+		v = use_reduce(v, uselist=use, token_class=token_class)
+		v = paren_enclose(v)
+		if not v:
+			try:
+				os.unlink(filename)
+			except OSError:
+				pass
+			continue
+		with io.open(_unicode_encode(os.path.join(build_info_dir,
+			k), encoding=_encodings['fs'], errors='strict'),
+			mode='w', encoding=_encodings['repo.content'],
+			errors='strict') as f:
+			f.write(_unicode_decode(v + '\n'))
+
 _vdb_use_conditional_keys = ('DEPEND', 'LICENSE', 'PDEPEND',
 	'PROPERTIES', 'PROVIDE', 'RDEPEND', 'RESTRICT',)
-_vdb_use_conditional_atoms = frozenset(['DEPEND', 'PDEPEND', 'RDEPEND'])
 
 def _preinst_bsdflags(mysettings):
 	if bsd_chflags:
@@ -1817,44 +1852,6 @@ def _post_src_install_uid_fix(mysettings, out):
 	f.write(_unicode_decode(str(size) + '\n'))
 	f.close()
 
-	f = io.open(_unicode_encode(os.path.join(build_info_dir,
-		'BUILD_TIME'), encoding=_encodings['fs'], errors='strict'),
-		mode='w', encoding=_encodings['repo.content'],
-		errors='strict')
-	f.write(_unicode_decode("%.0f\n" % (time.time(),)))
-	f.close()
-
-	use = frozenset(mysettings['PORTAGE_USE'].split())
-	for k in _vdb_use_conditional_keys:
-		v = mysettings.configdict['pkg'].get(k)
-		filename = os.path.join(build_info_dir, k)
-		if v is None:
-			try:
-				os.unlink(filename)
-			except OSError:
-				pass
-			continue
-
-		if k.endswith('DEPEND'):
-			token_class = Atom
-		else:
-			token_class = None
-
-		v = use_reduce(v, uselist=use, token_class=token_class)
-		v = paren_enclose(v)
-		if not v:
-			try:
-				os.unlink(filename)
-			except OSError:
-				pass
-			continue
-		f = io.open(_unicode_encode(os.path.join(build_info_dir,
-			k), encoding=_encodings['fs'], errors='strict'),
-			mode='w', encoding=_encodings['repo.content'],
-			errors='strict')
-		f.write(_unicode_decode(v + '\n'))
-		f.close()
-
 	_reapply_bsdflags_to_image(mysettings)
 
 def _reapply_bsdflags_to_image(mysettings):



^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/, pym/portage/dbapi/, pym/_emerge/
@ 2012-01-14 15:30 Zac Medico
  0 siblings, 0 replies; 5+ messages in thread
From: Zac Medico @ 2012-01-14 15:30 UTC (permalink / raw
  To: gentoo-commits

commit:     93b654199a32fc3df1299b030317720b9294b0c3
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 14 15:29:08 2012 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Jan 14 15:29:08 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=93b65419

Apply INSTALL_MASK prior to collision-protect.

It may be useful to avoid collisions in some scenarios.

---
 pym/_emerge/MiscFunctionsProcess.py    |   10 ++++++++--
 pym/portage/dbapi/vartree.py           |   25 +++++++++++++++++--------
 pym/portage/package/ebuild/doebuild.py |    2 +-
 3 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/pym/_emerge/MiscFunctionsProcess.py b/pym/_emerge/MiscFunctionsProcess.py
index ce0ab14..afa44fb 100644
--- a/pym/_emerge/MiscFunctionsProcess.py
+++ b/pym/_emerge/MiscFunctionsProcess.py
@@ -29,5 +29,11 @@ class MiscFunctionsProcess(AbstractEbuildProcess):
 		AbstractEbuildProcess._start(self)
 
 	def _spawn(self, args, **kwargs):
-		self.settings.pop("EBUILD_PHASE", None)
-		return spawn(" ".join(args), self.settings, **kwargs)
+		# Temporarily unset EBUILD_PHASE so that bashrc code doesn't
+		# think this is a real phase.
+		phase_backup = self.settings.pop("EBUILD_PHASE", None)
+		try:
+			return spawn(" ".join(args), self.settings, **kwargs)
+		finally:
+			if phase_backup is not None:
+				self.settings["EBUILD_PHASE"] = phase_backup

diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index af70ec3..5bb4fa4 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -3506,14 +3506,6 @@ class dblink(object):
 			if installed_files:
 				return 1
 
-		# check for package collisions
-		blockers = self._blockers
-		if blockers is None:
-			blockers = []
-		collisions, symlink_collisions, plib_collisions = \
-			self._collision_protect(srcroot, destroot,
-			others_in_slot + blockers, myfilelist, mylinklist)
-
 		# Make sure the ebuild environment is initialized and that ${T}/elog
 		# exists for logging of collision-protect eerror messages.
 		if myebuild is None:
@@ -3525,6 +3517,23 @@ class dblink(object):
 			for other in others_in_slot])
 		prepare_build_dirs(settings=self.settings, cleanup=cleanup)
 
+		if self.settings.get("INSTALL_MASK"):
+			# Apply INSTALL_MASK before collision-protect, since it may
+			# be useful to avoid collisions in some scenarios.
+			phase = MiscFunctionsProcess(background=False,
+				commands=["preinst_mask"], phase="preinst",
+				scheduler=self._scheduler, settings=self.settings)
+			phase.start()
+			phase.wait()
+
+		# check for package collisions
+		blockers = self._blockers
+		if blockers is None:
+			blockers = []
+		collisions, symlink_collisions, plib_collisions = \
+			self._collision_protect(srcroot, destroot,
+			others_in_slot + blockers, myfilelist, mylinklist)
+
 		if collisions:
 			collision_protect = "collision-protect" in self.settings.features
 			protect_owned = "protect-owned" in self.settings.features

diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index cb7cc1c..c52ab31 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -1487,7 +1487,7 @@ _post_phase_cmds = {
 		"preinst_sfperms",
 		"preinst_selinux_labels",
 		"preinst_suid_scan",
-		"preinst_mask"]
+		]
 }
 
 def _post_phase_userpriv_perms(mysettings):



^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/, pym/portage/dbapi/, pym/_emerge/
@ 2011-10-18  5:45 Zac Medico
  0 siblings, 0 replies; 5+ messages in thread
From: Zac Medico @ 2011-10-18  5:45 UTC (permalink / raw
  To: gentoo-commits

commit:     654fd3e173e7e92f9ff1ee1e55caa5c2e7a96ad9
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 18 05:45:13 2011 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Oct 18 05:45:13 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=654fd3e1

python3.2 fixes: "ResourceWarning: unclosed file"

---
 pym/_emerge/EbuildMetadataPhase.py     |    6 +++---
 pym/portage/dbapi/porttree.py          |    6 +++---
 pym/portage/package/ebuild/doebuild.py |    7 ++++---
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/pym/_emerge/EbuildMetadataPhase.py b/pym/_emerge/EbuildMetadataPhase.py
index 06cabe7..aa26e19 100644
--- a/pym/_emerge/EbuildMetadataPhase.py
+++ b/pym/_emerge/EbuildMetadataPhase.py
@@ -38,11 +38,11 @@ class EbuildMetadataPhase(SubProcess):
 		eapi = self.eapi
 		if eapi is None and \
 			'parse-eapi-ebuild-head' in settings.features:
-			eapi = portage._parse_eapi_ebuild_head(
-				io.open(_unicode_encode(ebuild_path,
+			with io.open(_unicode_encode(ebuild_path,
 				encoding=_encodings['fs'], errors='strict'),
 				mode='r', encoding=_encodings['repo.content'],
-				errors='replace'))
+				errors='replace') as f:
+				eapi = portage._parse_eapi_ebuild_head(f)
 
 		if eapi is not None:
 			if not portage.eapi_is_supported(eapi):

diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py
index aad72e1..6f3d90f 100644
--- a/pym/portage/dbapi/porttree.py
+++ b/pym/portage/dbapi/porttree.py
@@ -519,11 +519,11 @@ class portdbapi(dbapi):
 
 			if eapi is None and \
 				'parse-eapi-ebuild-head' in self.doebuild_settings.features:
-				eapi = portage._parse_eapi_ebuild_head(io.open(
-					_unicode_encode(myebuild,
+				with io.open(_unicode_encode(myebuild,
 					encoding=_encodings['fs'], errors='strict'),
 					mode='r', encoding=_encodings['repo.content'],
-					errors='replace'))
+					errors='replace') as f:
+					eapi = portage._parse_eapi_ebuild_head(f)
 
 			if eapi is not None:
 				self.doebuild_settings.configdict['pkg']['EAPI'] = eapi

diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index e479159..a324af2 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -290,10 +290,11 @@ def doebuild_environment(myebuild, mydo, myroot=None, settings=None,
 	eapi = None
 	if mydo == 'depend' and 'EAPI' not in mysettings.configdict['pkg']:
 		if eapi is None and 'parse-eapi-ebuild-head' in mysettings.features:
-			eapi = _parse_eapi_ebuild_head(
-				io.open(_unicode_encode(ebuild_path,
+			with io.open(_unicode_encode(ebuild_path,
 				encoding=_encodings['fs'], errors='strict'),
-				mode='r', encoding=_encodings['content'], errors='replace'))
+				mode='r', encoding=_encodings['content'],
+				errors='replace') as f:
+				eapi = _parse_eapi_ebuild_head(f)
 
 		if eapi is not None:
 			if not eapi_is_supported(eapi):



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

end of thread, other threads:[~2013-07-25 21:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-04  2:23 [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/, pym/portage/dbapi/, pym/_emerge/ Zac Medico
  -- strict thread matches above, loose matches on Subject: below --
2013-07-25 21:54 Zac Medico
2012-06-11 23:08 Zac Medico
2012-01-14 15:30 Zac Medico
2011-10-18  5:45 Zac Medico

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