202 Commits

Author SHA1 Message Date
Fabio Erculiani 2d65d5b7bf [entropy.client] fix conflicts removal handling during upgrade.
In certain extreme situations, that are more likely if the install
state is old (e.g. 9 months +), Entropy may decide to remove packages
due to conflicts with the version being installed and shoot itself
in the foot, if this is the case of dev-lang/python :-).

So, this commit tries to avoid the scenario by filtering out package
removals for those that are being installed anyway as part of the
transaction (e.g. a system upgrade).

This should fix the very specific case, but increase uncertainty
and thus entropy in other cases where once a package that lists
conflicts is installed, it may not expect to find that package
installed. However, this case should be handled by the dependency
graph generator (and it currently does not), which would need to
reorder the execution of the queue to comply with conflicts.

Perhaps, someone in the future will improve that too, for now,
let's enjoy one more snowflake.

Current improvement:
- foo-1 and bar-2 are set to be installed
- foo-1 conflicts with <bar-2
- bar-1 is installed
- foo-1 wanted to remove bar-1 as part of foo-1 install transaction.
  (now fixed, it won't...)
- bar-2 is then installed

Better improvement:
- foo-1 and bar-2 are set to be installed
- foo-1 conflicts with <bar-2 (but bar-2 itself can be installed
  and does not conflict with foo-1)
- bar-2 is set to be installed before foo-1
- when entropy gets to foo-1 there is nothing to remove
2017-10-08 21:51:07 +02:00
Fabio Erculiani 5ae09bf9c3 Merge pull request #30 from Enlik/exc-handler-fix
[entropy.client] fixes to exception handler
2016-08-30 20:18:38 +02:00
Fabio Erculiani bf5e00d014 Merge pull request #24 from skwerlman/patch-1
[solo.commands.moo] fix `lxnay` speech bubble
2016-08-30 20:17:57 +02:00
Sławomir Nizio 706d6bca55 [solo.commands,lib] improve message about conflicted packages
Don't show the package itself. If there are no revdeps, nothing would be
shown so a custom "(no reverse dependencies)" message will appear, which
is clearer.
2016-08-06 20:55:33 +02:00
Sławomir Nizio e96db09ad7 [solo.commands,lib] display packages that pull in conflicting ones 2016-08-05 20:00:21 +02:00
Sławomir Nizio 37d15af8bf [entropy.client] fixes to exception handler
- correct negated logic in EPIPE hanling
- correct ENOSPC handling (it's IOError, but OSError was catched)
- support Python 3.3+ which got reworked exceptions
2016-08-04 01:30:22 +02:00
mudler 8af6a2678d [entropy.client] adding support for wildcard in ACCEPT_LICENSE
This allows to call equo with ACCEPT_LICENSE="*" and accept automatically all the licenses without user prompting
2016-05-14 23:08:08 +02:00
skwerlman f4d09bcef0 [solo.commands.moo] fix lxnay speech bubble 2016-04-08 15:48:24 -04:00
Sławomir Nizio b12a25e72d [entropy.client] print repository on conflict
Copy-pastable for equo mask.
2016-03-30 23:02:46 +02:00
Sławomir Nizio b43498596e [solo.commands.security] repair --mtime in oscheck
While testing the change that adds [package ...] to oscheck, I noticed
this bug.
2016-03-07 22:08:18 +01:00
Sławomir Nizio 449b1c3fe7 [solo.commands.security] support for package names in oscheck 2016-03-07 21:00:06 +01:00
Sławomir Nizio 1bda075ad0 [entropy.client] while asking to accept the license, interpret EOF as "no"
Otherwise it would loop indefinitely (bug 4849).
2015-05-16 00:01:55 +02:00
Fabio Erculiani 363c6a175f [entropy.*] migrate all retrieveNeeded uses to retrieveNeededLibraries 2014-10-20 15:04:19 +02:00
Fabio Erculiani 35542de6c0 Merge pull request #10 from Enlik/master-like-depclean
improved 'equo unused' algorithm
2014-10-17 23:20:40 +01:00
Sławomir Nizio bbb1b710c2 [entropy.client] updates to unused.py after review 2014-10-17 23:57:02 +02:00
Sławomir Nizio deeb3e8dd6 [entropy.client] equo unused that works more like emerge --depclean
Almost done, but there are comments with things I'd like to get
feedback about.
2014-10-17 23:15:26 +02:00
Fabio Erculiani 2a35e8a9d0 [solo.commands.pkg] EEXIST is fine when using makedirs() 2014-10-17 11:27:51 +01:00
Fabio Erculiani 713fd9dd74 [entropy.client] ignore package masking for the first element when only_deps is True 2014-05-31 14:02:54 +01:00
Fabio Erculiani 39e2ab6890 [solo.commands.pkg] add missing import: errno 2014-05-10 21:42:32 +01:00
Fabio Erculiani 1f6bd34749 [entropy] prefix package download URLs with the category directory
This makes possible to avoid directory hot spots on repository mirrors.
This commit requires some mileage and real-world testing, but it
seems to be running good on a relatively small repository.
No backward compatibility issues have been reported.
2014-02-15 19:10:16 +01:00
Fabio Erculiani 03ef3991bd [entropy.client] refactor NoticeBoard Entropy Client API 2014-02-14 13:10:16 +01:00
Fabio Erculiani 4a9980d37c [entropy.qa] rename ErrorReportInterface to ErrorReport, it's cleaner 2014-01-30 14:56:37 +01:00
Fabio Erculiani d856204a8d [solo.commands.rescue] simplify "generate" code 2014-01-11 10:43:53 +01:00
Fabio Erculiani c22a8efc2c [solo.commands.rescue] handle the inst_repo lock when needed 2014-01-11 09:57:38 +01:00
Fabio Erculiani 86820a9aba [solo.commands.hop] acquire the inst_repo exclusive lock before touching it 2014-01-11 09:44:04 +01:00
Fabio Erculiani f1a925c220 [solo.commands.install] acquire the notification lock in shared NB mode
This should avoid starvation in the scenario outlined in code comments.
2013-12-26 22:52:12 +01:00
Fabio Erculiani 00f43b043c [solo.commands.install] acquire the UpdatesNotificationResourceLock in shared mode
This will temporarily disable available updates notifications from
RigoDaemon
2013-12-26 22:52:12 +01:00
Fabio Erculiani beff483d19 [solo.commands] remove leading ">>" string from ask_question() message. 2013-12-16 19:53:11 +01:00
Fabio Erculiani 3e528ae1ae [solo.commands.*] rename call_unlocked to call_shared, call_locked to call_exclusive 2013-12-12 22:15:47 +01:00
Fabio Erculiani 162c08961f [solo.utils] use the public message header variable 2013-12-12 19:27:19 +01:00
Fabio Erculiani fc597d04c5 [entropy.security] refactor System, add internal locking support, improve speed 2013-12-10 16:39:17 +01:00
Fabio Erculiani ebf63e6060 [entropy.locks] fix shared/exclusive locking mix due to reentrancy, add tests 2013-12-08 16:15:39 +01:00
Fabio Erculiani 1917771b54 [entropy.locks] move Entropy Resources Lock code to a separate module 2013-12-08 14:37:57 +01:00
Fabio Erculiani 76df355ca4 [solo.commands.pkg] add concurrency support 2013-12-07 20:30:06 +01:00
Fabio Erculiani 53b5d9cddc [solo.commands.unused] add concurrency support 2013-12-07 20:30:06 +01:00
Fabio Erculiani e0142412d8 [solo.commands.mask] acquire the Entropy Resources Lock in shared mode 2013-12-07 20:30:06 +01:00
Fabio Erculiani 25d88d95b6 [solo.commands.conf] acquire the Entropy Resources Lock in shared mode 2013-12-07 20:30:06 +01:00
Fabio Erculiani 9298c740fe [solo.commands.ugc] acquire the Entropy Resources Lock in shared mode 2013-12-07 20:30:06 +01:00
Fabio Erculiani c8a0377845 [solo.commands.cache] add concurrency support 2013-12-07 20:29:20 +01:00
Fabio Erculiani e7555f4127 [solo.commands.manage] allow concurrency, use the Entropy Resources Lock in shared mode 2013-12-07 20:29:19 +01:00
Fabio Erculiani 19439db61c [solo.commands.security] add concurrency support 2013-12-07 20:29:19 +01:00
Fabio Erculiani 13af91c7ba [solo.commands.libtest] add concurrency support 2013-12-07 20:29:19 +01:00
Fabio Erculiani e317a71524 [solo.commands.deptest] add concurrency support 2013-12-07 20:29:19 +01:00
Fabio Erculiani f4a25af5d0 [solo.commands.upgrade] add concurrency support 2013-12-07 20:29:19 +01:00
Fabio Erculiani 5dfcdb2794 [solo.commands.remove] add concurrency support 2013-12-07 20:29:19 +01:00
Fabio Erculiani 3e97a39779 [solo.commands.preservedlibs] add concurrency support 2013-12-07 20:29:19 +01:00
Fabio Erculiani 008b65d11b [solo.commands.download] add concurrency support 2013-12-07 20:29:19 +01:00
Fabio Erculiani 55d1b8aa8f [solo.commands.source] add concurrency support 2013-12-07 20:29:19 +01:00
Fabio Erculiani 7046aedc52 [solo.commands.config] add concurrency support 2013-12-07 20:29:19 +01:00
Fabio Erculiani ac0e1ca28e [solo.commands._manage] make _show_preserved_libraries process and thread safe 2013-12-07 20:29:19 +01:00