Commit Graph

1221 Commits

Author SHA1 Message Date
Fabio Erculiani b4f445a61b [entropy.client.repository] drop entropy_updates_alert argument
This is no longer useful for the implemented use cases
2013-12-26 22:52:12 +01:00
Fabio Erculiani cf3305ed43 [entropy.client.repository] do not check the instance type of installed_repository
This check is no longer needed
2013-12-26 22:52:12 +01:00
Fabio Erculiani d2c47cc3ba [entropy.client.db] add installed packages repository locking support 2013-12-26 22:52:12 +01:00
Fabio Erculiani 12c34ab8d4 [entropy.client.dep] add installed packages repository locking support 2013-12-26 22:52:12 +01:00
Fabio Erculiani f143614555 [entropy.client.client] add installed packages repository locking support 2013-12-26 22:52:12 +01:00
Fabio Erculiani 6f44f5c40a [entropy.locks] UpdatesNotificationResourceLock: do not dictate any particular lock mode 2013-12-26 22:52:12 +01:00
Fabio Erculiani 69d4473249 [entropy.locks] introduce UpdatesNotificationResourceLock
This will make possible to stop available updates notifications
from being issued while an install/upgrade is in progress
2013-12-26 22:52:12 +01:00
Fabio Erculiani 8049f88c56 [entropy.locks] make sure not to leak fds when using non-blocking calls 2013-12-26 22:52:12 +01:00
Fabio Erculiani ca862463d4 [entropy.locks] make sure not to leak fds when using non-blocking calls 2013-12-26 22:52:12 +01:00
Fabio Erculiani cf8984982a [entropy.output] sychronize writes to stdout/stderr to avoid garbled output
In a multithreaded scenario, text may get garbled if there is no
synchronization between threads wrt the shared resources (std{out,err}).
This happens even when stdio buffering is enabled, of course.
2013-12-26 22:52:12 +01:00
Fabio Erculiani 8ed4bff872 Revert "[entropy.client.package] synchronize text output calls to avoid garbled output"
This reverts commit e722455432317516235e56fb386a60f05d237804.
2013-12-26 22:52:11 +01:00
Fabio Erculiani a0ec911e68 [entropy.client.package] synchronize text output calls to avoid garbled output
Some parts of the package actions code are now multithreaded and some
other will likely become that in the near future.
For this reason, all the TextInterface.output calls are now wrapped and
synchronized by a mutex.

Ideally, this synchronization could have gone directly into entropy.output
but I am reluctant about placing expensive locking so deep into the code at
this time.
2013-12-26 22:52:11 +01:00
Fabio Erculiani ca3b960dca [entropy.client.sets] make Sets a new-style class 2013-12-26 22:52:11 +01:00
Fabio Erculiani c2d15ddd23 [entropy.client.misc] add sharedinstlock and exclusiveinstlock decorators 2013-12-26 22:52:11 +01:00
Fabio Erculiani 0df7092e05 [entropy.locks] drop "_lock", just "acquire" or "release", it's cleaner 2013-12-26 22:52:11 +01:00
Fabio Erculiani 1f2575204e [entropy.locks] make ResourceLock reentrant wrt to individual threads only 2013-12-26 22:52:11 +01:00
Fabio Erculiani 3a448a3b19 [entropy.client.package] use atom as part of the unpack directory
This greatly reduce the size of the path, mitigating the issue at bug #4078
2013-12-24 15:57:40 +01:00
Fabio Erculiani 0cb12a0dae [entropy.misc] RSS: be more tolerant against xml file corruptions 2013-12-20 13:03:32 +01:00
Fabio Erculiani 24b5b8c661 Release Entropy 255 2013-12-18 11:00:10 +01:00
Fabio Erculiani 304f57434f [entropy.db.skel] filterTreeUpdatesActions: warn and fix illegal circular slotmoves
See gentoo-dev ML thread called "Doing and then undoing slotmoves"
2013-12-18 10:59:26 +01:00
Fabio Erculiani 5bafa6e755 [entropy.spm] PortagePlugin: make __get_portage_update_actions protected 2013-12-18 09:50:28 +01:00
Fabio Erculiani c9629b9457 [entropy.spm.skel] allocate_protected_file: python2 os is not unicode friendly 2013-12-17 22:09:55 +01:00
Fabio Erculiani ea52b8630b [entropy.client.package] _handle_config_protect: python2 os module is not unicode friendly 2013-12-17 21:56:24 +01:00
Fabio Erculiani 9b78a9b6a0 [entropy.db.sqlite] lock_path() should not use id(self) for memory repositories 2013-12-15 10:50:13 +01:00
Fabio Erculiani ae8b91ac0c [entropy.*] s:occured:occurred: 2013-12-13 10:57:19 +01:00
Fabio Erculiani fe80752612 [entropy.output] use nice unicode chars for warning and error messages 2013-12-13 07:25:10 +01:00
Fabio Erculiani e23396625b [entropy.const] set entropy git version to 1 2013-12-13 07:24:49 +01:00
Fabio Erculiani c60cee8082 Release Entropy 254 2013-12-12 21:24:24 +01:00
Fabio Erculiani 7bb3007704 [entropy.services.client] always append the entropy version string to requests 2013-12-12 21:16:16 +01:00
Fabio Erculiani da31e2b49d Release Entropy 253 2013-12-12 20:11:50 +01:00
Fabio Erculiani 4d3eef0d19 [entropy.server] Server: initialize Client superclass as soon as possible 2013-12-12 20:11:19 +01:00
Fabio Erculiani 42c66c84b4 Release Entropy 252 2013-12-12 19:38:50 +01:00
Fabio Erculiani c02da8d315 [entropy.output] make the message header variable public 2013-12-12 19:27:05 +01:00
Fabio Erculiani e6b129ae7e [entropy.client] move ClientSystemSettingsPlugin to a separate module
This will break the circular dependency between loaders and client modules
2013-12-12 19:24:19 +01:00
Fabio Erculiani c78b90563c [entropy.client.package] use ClientSettings() rather than SystemSettings()[id] 2013-12-12 19:23:41 +01:00
Fabio Erculiani 1eed3123c8 [entropy.client.misc] use ClientSettings() rather than SystemSettings()[id] 2013-12-12 19:23:20 +01:00
Fabio Erculiani aa4e2441be [entropy.client] move _enabled_repos to a property, allow lazy loading 2013-12-12 18:35:17 +01:00
Fabio Erculiani 88ca752724 [entropy.client] remove repositories list cache validation code
Dead code, no longer needed.
2013-12-12 18:14:43 +01:00
Fabio Erculiani fdceeaffbd [entropy.client] always use repositories hashes for cache keys 2013-12-12 18:10:59 +01:00
Fabio Erculiani 3574cb029f [entropy.client] do not clear cache if xcache is False
Nowadays, cache in entropy.client uses hashes of repositories
as part of the key, there is no need to clear cache explicitly
2013-12-12 17:26:14 +01:00
Fabio Erculiani 67cccf3e8a [entropy.client] lazy load ClientSystemSettingsPlugin 2013-12-12 17:13:19 +01:00
Fabio Erculiani 8a7afe97e8 [entropy.client] use ClientSettings() whenever needed
This commit also drops the sys_settings_client_plugin_id attribute
2013-12-12 16:49:01 +01:00
Fabio Erculiani 56f0ed4fd5 [entropy.client] Client: move object attributes to @property to enable lazy loading 2013-12-12 15:05:02 +01:00
Fabio Erculiani 3a7269aa5c [entropy.db] EntropyBaseRepository: turn lock methods into no-op if direct mode
Now that the repository lock is reentrant, it's good to have the
methods take into account direct mode as well. In direct mode,
we explicitly don't want to deal with any kind of locking, because
we accept to manipulate stale data. In order to hide locking code
from the outside and have it transparently managed inside entropy.*
methods, we must respect requests made in direct mode.
2013-12-12 14:25:44 +01:00
Fabio Erculiani 412759e20f Release Entropy 251 2013-12-12 12:38:28 +01:00
Fabio Erculiani db8bd0fb40 [entropy.client.package] multifetch: ensure that path exists before calling _match_checksum 2013-12-12 12:36:45 +01:00
Fabio Erculiani 4b8b3b1af7 [entropy.client.package] multifetch: use the same path for both calls 2013-12-12 12:36:03 +01:00
Fabio Erculiani 864e3ecf21 [entropy.client.package] multifetch: fix exit status in case of download failures 2013-12-12 12:30:25 +01:00
Fabio Erculiani 36b634aea7 [entropy.output] _print_prio: use nice unicode header chars :-) 2013-12-12 11:56:04 +01:00
Fabio Erculiani e21d564669 Release Entropy 250 2013-12-12 10:50:15 +01:00