| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Normally EAPI doesn't contain unicode, but as in bug #359675, it can
contain practically anything if files in /var/db/pkg are corrupt.
|
|
|
|
|
|
| |
Previously, the slow approach was used whenever more than 10 files were
given as input. However, large numbers of files don't necessarily
mean the hashed approach is a bad choice, so try it in any case.
|
|
|
|
|
|
|
|
|
|
|
| |
Before, some temporary directories would be created directly in
$PORTAGE_TMPDIR. Now, all are subdirectories of $PORTAGE_TMPDIR/portage
since it's common for people to assume that this is the case anyway.
With the default PORTAGE_TMPDIR setting of /var/tmp, this allows
/var/tmp to be mounted with the "noexec" option, as long as the
/var/tmp/portage subdirectory is a separate mount (people have already
tended to assume that they can do this, so we're making it a reality
in order to avoid any more bug reports). This will fix bug #346899.
|
|
|
|
|
|
| |
This code is redunant now, since similar code has been added to
dblink.getcontents() in commit
e0b4048274b2cfc1617f2eff379cbe8435e13ed4.
|
|
|
|
|
| |
We can't necessarily assume that they are explicitly listed in
CONTENTS, and they are crucial for callers such as dblink.isowner().
|
| |
|
|
|
|
|
| |
This reverts commit 43e0b3ea4289aab9b4258d29d06afac40abd6c01 and
renames the root_len variable to eroot_len (for clarity).
|
| |
|
|
|
|
|
| |
We can't necessarily assume that they are explicitly listed in
CONTENTS.
|
|
|
|
|
| |
We can't necessarily assume that they are explicitly listed in
CONTENTS.
|
| |
|
| |
|
| |
|
|
|
|
| |
This will fix bug #351814.
|
|
|
|
| |
This will fix bug #349757.
|
|
|
|
|
| |
Fix bug #348790, make sure that CONTENTS entries keep their EPREFIX, by
using ROOT, instead of EROOT.
|
|
|
|
|
|
|
|
|
| |
The previous code created hardlinks rather aggressively, which was
helpful as a workaround for lack of hardlinks in tarballs created
by quickpkg due to bug #185305. Since bug #338509, quickpkg tarballs
preserve hardlinks, so there's no need for aggressive hardlink
creation. Therefore, simply preserve existing hardlinks during merge,
by comparison of st_dev and st_ino from the source files.
|
|
|
|
|
| |
For some reason, bug #185305 no longer seems to be an issue, and the
fix/workaround seems to cause bug 338509.
|
|
|
|
|
| |
Thanks to Fabio Erculiani <lxnay@gentoo.org> for reporting a
UnicodeDecodeError here.
|
| |
|
|
|
|
|
| |
This allows the Scheduler to run in the main thread while files are
moved or copied asynchronously.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
on them
|
|
|
|
| |
have EPREFIX
|
| |
|
| |
|
| |
|
|
|
|
|
| |
when reading files from CONTENTS, don't prepend EROOT, since the package
already HAS prefix recorded in CONTENTS
|
| |
|
|
|
|
| |
unmerged!
|
|
|
|
| |
makes double offsets occur
|
|
|
|
| |
dir_path attribute.
|
|
|
|
|
| |
inside dblink.unmerge(), so that the scheduler can concurrently service
ipc calls in the main thread.
|
| |
|
|
|
|
|
| |
inside dblink.treewalk(), periodically yield to the scheduler so that
it can service ipc calls.
|
|
|
|
|
| |
dblink.lockdb() so that the scheduler can concurrently service ipc
calls in the main thread.
|
| |
|
|
|
|
| |
TaskScheduler isn't really needed.
|
|
|
|
| |
error handling to portage.util.ensure_dirs().
|
|
|
|
| |
on FreeBSD (see bug #187518).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If multiple ebuild processes create the same directory, portage should not
exit with an error message. Instead we should just be okay with the fact
that another process created the directory.
This is only necessary for fast build because we eliminate the giant lock that
surrounds package merges.
TEST=Create fresh chroot and do full build from source start to finish
BUG=none
Review URL: http://codereview.chromium.org/2998002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Portage should use the ensure_dirs function instead of os.makedirs to create
directories, because this function ensures atomicity. It prevents failures
when more than one process tries to create the same directory.
This fixes a crash bug reported by msb:
[...]
File "/usr/lib64/portage/pym/portage/dbapi/vartree.py", line 3258, in _merge
self.vartree.dbapi._bump_mtime(self.mycpv)
File "/usr/lib64/portage/pym/portage/dbapi/vartree.py", line 152, in _bump_mtime
os.makedirs(catdir)
File "/usr/lib64/portage/pym/portage/__init__.py", line 210, in __call__
rval = self._func(*wrapped_args, **wrapped_kwargs)
File "/usr/lib64/python2.6/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 17] File exists: '/home/msb/trunk/src/build/images/x86-generic/0.8.63.2010_08_03_1844-a1/rootfs//var/db/pkg/x11-proto'
BUG=chromium-os:5366
TEST=build_packages && build_image
Review URL: http://codereview.chromium.org/3113014
|
| |
|
|
|
|
| |
'_eroot'" in vartree.get_provide().
|
|
|
|
|
|
|
|
|
| |
git.eclass or has 9999 in its version, trigger the 'use copy of current
sources for install, then restart portage' routine. This is required
since with the live git portage-9999 ebuild we can't use the version
to detect incompatible changes to ebuild.sh. This issue was noticed
due to recent versions of ebuild.sh expecting PORTAGE_BZIP2_COMMAND to
be set, causing incompatibility with installed portage-9999 instances.
|