ebuild environment setup function for pkg_{prerm,postrm} can raise
OSError during os.makedirs(). Better catch it and handle the failure
nicely so that the user can take proper measures to fix it, instead
of completely bailing out with garbageish text.
It can happen that HTTP servers (or those accessed via Proxy) do not
actually provide Content-Length information in the response.
This caused UrlFetcher to keep __remotesize = 0, which means that
the same thought that the file has been fully downloaded already
under some circumstances.
As of today, both Equo and Sulfur implemented their own search
functions because the API didn't provide any direct support for
searching through all the repositories. atom_search() now offers
a basic way to do this, without reinventing the weel every time
in consumer code.
If the installed packages repository has been regenerated manually,
some entries may contain invalid digest values. Given this, the same
value is forced to be equal to "0" so that we can skip the check during
dep calculation if an entry like that is found.
Using pragma inside executescript() won't work and foreign_keys were
kept enabled, resulting in extrainfo table being wiped.
At the same time, dropping all the indexes before starting dramatically
improves the execution speed.
Graph caching must hold copies of cache objects instead of giving
them away for free and risk of having them polluted or even completely
cleared out under its own chair.
Example:
$ equo remove linux-sabayon:3.1 [--deep]
The --deep version doesn't pull in all the reverse deps due to
Graph.solve() being called twice in
entropy.client.interfaces.dep's _generate_reverse_dependency_tree()
when deep = True.
Fixes bug #2989
Removing "splitdebug" from FEATURES if splitdebug is disabled is
pointless and not really needed. Better leave FEATURES untouched.
Moreover, pkgcore doesn't provide FEATURES at all.
internal levels dict must be reinitialized every time deptree object
is actually modified. At the same time, when making room on a certain
deptree key (moving the entries to another key), make sure to always
drop the dep item that is going to be written back.
"equo install --empty --pretend lighttpd" triggered the issue.
Thanks to micia for reporting.