Zac Medico [Wed, 14 Dec 2011 17:54:22 +0000 (09:54 -0800)]
create_trees: pass __PORTAGE_TEST_HARDLINK_LOCKS
This allows testing of stage builds with __PORTAGE_TEST_HARDLINK_LOCKS
set in the environment, since __PORTAGE_TEST_HARDLINK_LOCKS needs to
propagate to childs processes for all ROOTs.
Zac Medico [Wed, 14 Dec 2011 09:42:56 +0000 (01:42 -0800)]
Filter __PORTAGE_TEST_HARDLINK_LOCKS from env.
Zac Medico [Wed, 14 Dec 2011 09:17:16 +0000 (01:17 -0800)]
tests/locks: save/restore global env state
This ensures that global __PORTAGE_TEST_HARDLINK_LOCKS overrides work
correctly for all tests.
Zac Medico [Wed, 14 Dec 2011 09:11:07 +0000 (01:11 -0800)]
hardlink_lockfile: preserve existing permissions
Zac Medico [Wed, 14 Dec 2011 07:33:28 +0000 (23:33 -0800)]
lockfile: deprecate file object or fd parameters
Support for file object or integer file descriptor parameters is
deprecated due to ambiguity in whether or not it's safe to close
the file descriptor, making it prone to "Bad file descriptor" errors
or file descriptor leaks.
Zac Medico [Wed, 14 Dec 2011 07:31:43 +0000 (23:31 -0800)]
emergelog: pass path to lockfile, not file object
Zac Medico [Wed, 14 Dec 2011 06:30:19 +0000 (22:30 -0800)]
SpawnProcess: use /dev/null fd from subclass
Zac Medico [Wed, 14 Dec 2011 05:59:59 +0000 (21:59 -0800)]
hardlink_lockfile: optimize away most link calls
If fstat shows more than one hardlink, then it's extremely unlikely
that the following link call will result in a lock, so optimize away
the wasteful link call and sleep or raise TryAgain.
Zac Medico [Wed, 14 Dec 2011 05:32:32 +0000 (21:32 -0800)]
ebuild-ipc.py: return 2 when forked child crashes
Zac Medico [Wed, 14 Dec 2011 05:26:17 +0000 (21:26 -0800)]
hardlink_is_mine: return False, never None
Zac Medico [Wed, 14 Dec 2011 04:47:22 +0000 (20:47 -0800)]
emerge: disable --quiet-build by default
This reverts the behavior change from commit
0cc174b6fc28feb26ea151d76f794e0ff2c2fa39, since Gentoo's council has
voted to revert it in their
20111213 meeting, as requested on the
gentoo-project mailing list:
http://archives.gentoo.org/gentoo-project/msg_4e282bb4e6ac2611de2a39171a803c48.xml
Zac Medico [Wed, 14 Dec 2011 04:24:35 +0000 (20:24 -0800)]
locks.py: fix hardlink locks for bug #394195
This updates the hardlink locking code to support the non-blocking,
lockfile(wantnewlockfile=False), and lockfile(file_object) behaviors
which are used by portage code.
Zac Medico [Wed, 14 Dec 2011 04:06:10 +0000 (20:06 -0800)]
ebuils-ipc.py: _exit in finally block after fork
Zac Medico [Wed, 14 Dec 2011 02:02:23 +0000 (18:02 -0800)]
locks.py: make hardlink lock files hidden
This is for consistency with the behavior for normal lock files, since
commit
ce44ea3e914098a52bc0d1d995e71661659e77ca (bug #142369).
Zac Medico [Tue, 13 Dec 2011 22:19:05 +0000 (14:19 -0800)]
RepoConfigLoader: masters eclass override order
Only append the current repo to eclass_locations if it's not there
already. This allows masters to have more control over eclass override
order, which may be useful for scenarios in which there is a plan to
migrate eclasses to a master repo. Thanks to Brian Harring
<ferringb@gentoo.org) for suggesting this behavior.
Zac Medico [Tue, 13 Dec 2011 20:01:23 +0000 (12:01 -0800)]
FifoIpcDaemon: use plain fd instead of fdopen
Zac Medico [Tue, 13 Dec 2011 18:35:19 +0000 (10:35 -0800)]
AbstractEbuildProcess: interactive pkg_config
Zac Medico [Tue, 13 Dec 2011 17:27:38 +0000 (09:27 -0800)]
AbstractEbuildProcess: null in if not interactive
Zac Medico [Tue, 13 Dec 2011 17:00:21 +0000 (09:00 -0800)]
config: use frozenset for _constant_keys lookup
Zac Medico [Sun, 11 Dec 2011 21:00:28 +0000 (13:00 -0800)]
Don't nest sandbox in emerge/repoman tests.
Zac Medico [Sun, 11 Dec 2011 08:15:16 +0000 (00:15 -0800)]
data._init(): use 'portage' default in first call
Zac Medico [Sun, 11 Dec 2011 07:49:40 +0000 (23:49 -0800)]
load_emerge_config: change order of code back
A couple of recent commits touched this function, and code got moved
around unnecessarily.
Zac Medico [Sun, 11 Dec 2011 07:24:12 +0000 (23:24 -0800)]
PORTAGE_OVERRIDE_EPREFIX: alphabetize vars
Zac Medico [Sun, 11 Dec 2011 06:51:56 +0000 (22:51 -0800)]
Remove _SANDBOX_COMPAT_LEVEL.
Zac Medico [Sun, 11 Dec 2011 06:41:01 +0000 (22:41 -0800)]
Add _ENABLE_XATTR constant for the stable branch.
Zac Medico [Sun, 11 Dec 2011 00:19:34 +0000 (16:19 -0800)]
ResolverPlayground: don't nest sandbox
Zac Medico [Sat, 10 Dec 2011 23:49:21 +0000 (15:49 -0800)]
data.py: avoid portage.settings when possible
Zac Medico [Sat, 10 Dec 2011 23:39:16 +0000 (15:39 -0800)]
lock-helper.py: disable_legacy_globals
This prevents the portage.data module from accessing portage.settings.
Zac Medico [Sat, 10 Dec 2011 22:40:21 +0000 (14:40 -0800)]
data.py: rename var to _portage_username
Zac Medico [Sat, 10 Dec 2011 22:33:42 +0000 (14:33 -0800)]
config: init data/output modules in constructor
The first constructed config object initializes these modules, and
subsequent calls to the _init() functions have no effect.
Zac Medico [Sat, 10 Dec 2011 22:19:31 +0000 (14:19 -0800)]
config: skip unneeded constructor code for clones
Zac Medico [Sat, 10 Dec 2011 22:01:55 +0000 (14:01 -0800)]
const.py: fix spelling of a comment
Zac Medico [Sat, 10 Dec 2011 21:46:58 +0000 (13:46 -0800)]
Make eprefix=None params map to const.EPREFIX
Zac Medico [Sat, 10 Dec 2011 21:37:15 +0000 (13:37 -0800)]
actions.py: fix grammar in comment
Zac Medico [Sat, 10 Dec 2011 21:13:08 +0000 (13:13 -0800)]
Binpkg: move imports to top
Zac Medico [Sat, 10 Dec 2011 20:52:07 +0000 (12:52 -0800)]
repoman: eliminate eclass_db variable
Zac Medico [Sat, 10 Dec 2011 20:05:38 +0000 (12:05 -0800)]
Use portage.shutil for safer unicode handling.
Zac Medico [Sat, 10 Dec 2011 19:41:18 +0000 (11:41 -0800)]
vartree.py: lazy movefile import
Zac Medico [Sat, 10 Dec 2011 19:41:07 +0000 (11:41 -0800)]
movefile.py: open /dev/null in binary mode
Zac Medico [Sat, 10 Dec 2011 19:13:28 +0000 (11:13 -0800)]
get_term_size: all values >= 0 for bug #394091
Zac Medico [Sat, 10 Dec 2011 18:45:20 +0000 (10:45 -0800)]
Remove redundant eprefix in config constructors.
Since commit
11a7448f1d5a0bfb38f8de9d66a8fa8d7118c877, the config
constructor uses portage.const.EPREFIX by default.
Zac Medico [Sat, 10 Dec 2011 17:49:33 +0000 (09:49 -0800)]
config.environ: allow prefix vars if no EAPI
This allows access to EPREFIX inside things like post_sync hooks, where
EAPI is undefined.
Zac Medico [Sat, 10 Dec 2011 17:40:19 +0000 (09:40 -0800)]
doebuild: disable noauto for binpkgs later
This is safer since doebuild_environment() can modify FEATURES if
setcpv isn't called before.
Zac Medico [Sat, 10 Dec 2011 07:08:00 +0000 (23:08 -0800)]
emerge: allow search when profile is missing
Zac Medico [Sat, 10 Dec 2011 07:04:24 +0000 (23:04 -0800)]
Make portdbapi.eclassdb a property.
Zac Medico [Sat, 10 Dec 2011 06:40:14 +0000 (22:40 -0800)]
config: set PORTAGE_OVERRIDE_EPREFIX for subprocs
Zac Medico [Sat, 10 Dec 2011 06:32:44 +0000 (22:32 -0800)]
Rename override var to PORTAGE_OVERRIDE_EPREFIX.
Zac Medico [Sat, 10 Dec 2011 06:23:04 +0000 (22:23 -0800)]
create_trees: add public eprefix parameter
Zac Medico [Sat, 10 Dec 2011 06:13:29 +0000 (22:13 -0800)]
config: make eprefix constructor parameter public
Zac Medico [Sat, 10 Dec 2011 06:07:07 +0000 (22:07 -0800)]
config: constructor default portage.const.EPREFIX
Zac Medico [Sat, 10 Dec 2011 06:02:01 +0000 (22:02 -0800)]
Use portage.const.EPREFIX more.
Arfrever Frehtes Taifersar Arahesis [Sat, 10 Dec 2011 05:27:18 +0000 (06:27 +0100)]
portage.util.movefile._copyxattr(): Print more informative exception
when target filesystem does not support extended attributes.
Arfrever Frehtes Taifersar Arahesis [Sat, 10 Dec 2011 05:26:32 +0000 (06:26 +0100)]
Add portage.exception.OperationNotSupported exception.
Zac Medico [Sat, 10 Dec 2011 03:58:47 +0000 (19:58 -0800)]
Binpkg: ensure $ED exists after extraction
Zac Medico [Sat, 10 Dec 2011 03:55:36 +0000 (19:55 -0800)]
Binpkg: handle missing dir after chpathtool
Zac Medico [Sat, 10 Dec 2011 03:31:20 +0000 (19:31 -0800)]
Binpkg: fix os.path.dirname() usage
It doesn't behave as intended for $ED which has a trailing slash.
Zac Medico [Sat, 10 Dec 2011 03:21:44 +0000 (19:21 -0800)]
Binpkg: add chpathtool support for prefix
This uses a python-based chpathtool implementation which is intended to
be compatible with the C-based implemenation that the prefix branch
uses.
Zac Medico [Sat, 10 Dec 2011 03:03:15 +0000 (19:03 -0800)]
BinpkgEnvExtractor: fix PORTAGE_LOG_FILE spelling
Zac Medico [Sat, 10 Dec 2011 00:47:52 +0000 (16:47 -0800)]
Support FEATURES=xattr.
Arfrever Frehtes Taifersar Arahesis [Sat, 10 Dec 2011 00:01:46 +0000 (01:01 +0100)]
portage.util.movefile._copyxattr(): Support usage of xattr module from
dev-python/pyxattr.
Arfrever Frehtes Taifersar Arahesis [Fri, 9 Dec 2011 23:51:31 +0000 (00:51 +0100)]
portage.util.movefile._copyxattr(): Support usage of getfattr and
setfattr executables.
Zac Medico [Fri, 9 Dec 2011 23:23:16 +0000 (15:23 -0800)]
data.py: grp/pwd struct attrs, not indexes
Zac Medico [Fri, 9 Dec 2011 23:16:08 +0000 (15:16 -0800)]
Auto-generate PORTAGE_GRP/USERNAME for prefix.
For prefix environments, default to the UID and GID of the top-level
EROOT directory. This allows us to avoid using hardcoded defaults. It's
still possible to override these variables via make.conf.
Zac Medico [Fri, 9 Dec 2011 22:36:12 +0000 (14:36 -0800)]
Auto-generate PORTAGE_INST_GID/UID for prefix.
For prefix environments, default to the UID and GID of the top-level
EROOT directory. This allows us to avoid using hardcoded defaults. It's
still possible to override these variables via make.conf.
Zac Medico [Fri, 9 Dec 2011 18:54:04 +0000 (10:54 -0800)]
portageq: get_repo* uses_root
Arfrever Frehtes Taifersar Arahesis [Fri, 9 Dec 2011 05:51:26 +0000 (06:51 +0100)]
Delete portage.dbapi.porttree._repo_info class and _repo_info attribute of
portage.dbapi.porttree.portdbapi objects. Migrate consumers to repositories
attribute of portage.dbapi.porttree.portdbapi objects.
Zac Medico [Fri, 9 Dec 2011 04:58:33 +0000 (20:58 -0800)]
tests/bin: sanitize env
This fixes interference from FEATURES=force-prefix in the env.
Arfrever Frehtes Taifersar Arahesis [Fri, 9 Dec 2011 04:43:20 +0000 (05:43 +0100)]
Add eclass_db attribute in portage.repository.config.RepoConfig objects.
Zac Medico [Fri, 9 Dec 2011 03:21:13 +0000 (19:21 -0800)]
load_emerge_config: init portage.data earlier
The portage_uid initialization here must to happend before the
_init_dirs() calls.
Zac Medico [Fri, 9 Dec 2011 02:54:41 +0000 (18:54 -0800)]
Enable PORTAGE_GRPNAME/USERNAME in make.conf.
This is handy for prefix installs, since it allows these variables to
be set in make.conf rather than having them hardcoded. Eventually,
the corresponding portage.data constants may be deprecated in favor of
config attributes, since it's conceivable that multiple configurations
with different constants could be used simultaneously.
Zac Medico [Thu, 8 Dec 2011 21:15:55 +0000 (13:15 -0800)]
Add portage.const.EPREFIX, for prefix installs.
The EPREFIX for the current install is hardcoded here, but access to
this constant should be minimal, in favor of access via the EPREFIX
setting of a config instance (since it's possible to contruct a config
instance with a different EPREFIX).
Zac Medico [Thu, 8 Dec 2011 20:20:54 +0000 (12:20 -0800)]
dispatch-conf: substitute ${EPREFIX} archive-dir
This allows prefix installs to avoid hardcoding archive-dir.
Zac Medico [Thu, 8 Dec 2011 19:51:06 +0000 (11:51 -0800)]
etc-update: use PORTAGE_INST_UID/GID
Zac Medico [Thu, 8 Dec 2011 19:39:16 +0000 (11:39 -0800)]
make.globals: use ${EPREFIX} for PORTDIR, etc...
Zac Medico [Thu, 8 Dec 2011 18:21:04 +0000 (10:21 -0800)]
Use 'wget' instead of /usr/bin/wget everywhere.
This reduces the amount of patching needed for prefix installs.
Zac Medico [Thu, 8 Dec 2011 18:03:00 +0000 (10:03 -0800)]
etc-update: experimental prefix support
Zac Medico [Thu, 8 Dec 2011 17:57:00 +0000 (09:57 -0800)]
Whitelist/filter __PORTAGE_TEST_EPREFIX.
Zac Medico [Thu, 8 Dec 2011 17:46:55 +0000 (09:46 -0800)]
Support FEATURES=force-prefix.
This adjusts the logic from commit
ff52f9dc31004becb8022e6437088d01917f413c to use FEATURES=force-prefix
instead of USE=prefix. This has the advantage that we don't have to
make any assumptions about the USE=prefix.
Zac Medico [Thu, 8 Dec 2011 07:26:02 +0000 (23:26 -0800)]
dispatch-conf: experimental prefix support
Zac Medico [Thu, 8 Dec 2011 06:43:06 +0000 (22:43 -0800)]
Save EPREFIX in vdb when appropriate.
The prefix branch already does this since it makes it easy to use
chpathtool to adjust the content of a binary package so that it will
work in a different EPREFIX from the one is was built for.
Zac Medico [Thu, 8 Dec 2011 06:22:31 +0000 (22:22 -0800)]
Make USE=prefix enable EPREFIX in all EAPIs.
This is safe because the prefix flag should be masked in all non-prefix
profiles, and older EAPIs would otherwise be useless with prefix
configurations. This brings compatibility with the prefix branch of
portage, which also supports EPREFIX for all EAPIs (for obvious
reasons).
Zac Medico [Wed, 7 Dec 2011 19:20:39 +0000 (11:20 -0800)]
man: document fixpackages for bug #393517
Zac Medico [Tue, 6 Dec 2011 22:21:03 +0000 (14:21 -0800)]
sets.docbook: fix 'strictly' spelling
Zac Medico [Tue, 6 Dec 2011 21:57:34 +0000 (13:57 -0800)]
ebuild.sh: don't export inherit E_* vars
Zac Medico [Tue, 6 Dec 2011 19:06:24 +0000 (11:06 -0800)]
emerge-webrsync: use --quiet with --check-news
This suppresses output if there are no relevant items.
Zac Medico [Tue, 6 Dec 2011 19:01:10 +0000 (11:01 -0800)]
emerge-webrsync: call emerge --check-news
Zac Medico [Tue, 6 Dec 2011 18:52:50 +0000 (10:52 -0800)]
action_sync: fix git_sync_timestamps KeyError
This fixes the case where $PORTDIR doesn't exist prior to sync.
Zac Medico [Mon, 5 Dec 2011 02:28:03 +0000 (18:28 -0800)]
ebuild.sh: add note about quoting export ${FOO}=
Zac Medico [Mon, 5 Dec 2011 01:52:37 +0000 (17:52 -0800)]
ebuild.sh: quote sandbox export args
Zac Medico [Sun, 4 Dec 2011 23:55:49 +0000 (15:55 -0800)]
fix logic from last commit
Zac Medico [Sun, 4 Dec 2011 23:43:36 +0000 (15:43 -0800)]
depgraph: fix case insensitive search for unsat
This fixes an interaction between the code from commits
9ce6da43ab90c4dab97ebf3b8339e5dbc113a0a8 and
cbe44d92ff13b8a22f5b4215b73078ce600c6bf4, so that we don't discard
matches that are identical except for differnces in upper/lower case.
Zac Medico [Fri, 2 Dec 2011 18:30:25 +0000 (10:30 -0800)]
action_depclean: fix return code
The fixes some cases where emerge.log would show that depclean was
unsuccessful when it was really successful but there was nothing to
remove.
Zac Medico [Fri, 2 Dec 2011 06:14:13 +0000 (22:14 -0800)]
Handle OSError from os.read and loop if needed.
Looping fixes EbuildMetadataPhase failures for ebuilds that produce
more than 4096 bytes of metadata, broken since commit
b432a1b3051d91546649e8f3190675767461d8e8.
Zac Medico [Fri, 2 Dec 2011 03:24:10 +0000 (19:24 -0800)]
process._exec: tweak opt_name for PyPy
PyPy 1.7 will die due to "libary path not found" if argv[0] does not
contain the full path of the binary.
Zac Medico [Fri, 2 Dec 2011 02:34:08 +0000 (18:34 -0800)]
PipeReader: use os.read/write
Zac Medico [Fri, 2 Dec 2011 02:07:21 +0000 (18:07 -0800)]
test_uniqueArray.py: fix 'is' usage PyPy incompat
Zac Medico [Fri, 2 Dec 2011 01:43:57 +0000 (17:43 -0800)]
AsynchronousLock: use os.read/write
Similar to commit
b432a1b3051d91546649e8f3190675767461d8e8, don't use
unecessary file objects. It also happens that these changes fix
compatibility issues with PyPy.
Zac Medico [Thu, 1 Dec 2011 23:25:31 +0000 (15:25 -0800)]
checksum.py: detect PyPy crashes in hashlib
Use a fork to try and PyPy by digesting random data with hashlib
functions. It doesn't look like a bug has been reported upstream for
this yet, so it may or may not be reproducible by others. Anyway, this
allows me to avoid crashing the main PyPy process until I find a real
fix.
Zac Medico [Thu, 1 Dec 2011 21:22:00 +0000 (13:22 -0800)]
_emerge/EbuildMetadataPhase.py: use os.read()
There's no need for a file object, and file objects introduce
complexity that can lead to bugs as mentioned in bug 337465 comment 31,
so use os.read() directly on the file descriptor.
Zac Medico [Thu, 1 Dec 2011 21:05:24 +0000 (13:05 -0800)]
_emerge/SubProcess.py: support int fd in _files