Fabio Erculiani
0346f74c1a
[entropy.client.package] catch InterruptError raised by fetch_abort functions
2013-12-31 12:28:29 +01:00
Fabio Erculiani
c5adbc0b20
Release Entropy 257
2013-12-27 19:21:09 +01:00
Fabio Erculiani
b088df88bd
[entropy.cache] EntropyCacher: drop CACHE_IDS (\o/) and clear_cache()
2013-12-27 19:15:20 +01:00
Fabio Erculiani
4fc40101ec
[entropy.core.settings.base] drop any explicit clear_cache() call
...
clear_cache() is no longer required since cache keys are now
correctly generated.
2013-12-27 19:12:05 +01:00
Fabio Erculiani
f7bebcba0f
[entropy.core.settings.base] drop _clear_repository_cache(), no longer needed
2013-12-27 19:03:53 +01:00
Fabio Erculiani
1d42427eb1
[entropy.core.settings.base] add license_accept and system_mask to packages_configuration_hash()
2013-12-27 19:02:40 +01:00
Fabio Erculiani
29af516046
[entropy.client.methods] drop _clear_repository_cache() usage
...
This is no longer needed because cache keys are now properly generated
2013-12-27 18:51:39 +01:00
Fabio Erculiani
df6d28f58f
[entropy.client.db] stop using EntropyCacher.CACHE_IDS['mask_filter']
...
Use atomMatchCacheKey() instead
2013-12-27 18:50:41 +01:00
Fabio Erculiani
6d1f2ab77f
[entropy.db.skel] expose atomMatch cache key generation hook
...
This method adds atomMatchCacheKey() that can be reimplemented
by subclasses in order to cooperatively generate a cache key for
atomMatch calls.
2013-12-27 18:49:21 +01:00
Fabio Erculiani
b2fe272ebf
[entropy.client.dep] use ClientSettings.packages_configuration_hash() as part of cache keys
2013-12-27 18:05:29 +01:00
Fabio Erculiani
f31cdb59ff
[entropy.client.settings] add packages_configuration_hash()
...
This method serves the purpose of returning a hash of the current
packages configuration (masking, unmasking, keywording, etc).
This will be used by upper layers as part of cache keys generation.
2013-12-27 17:56:02 +01:00
Fabio Erculiani
68e664c947
[entropy.client.dep] use SystemSettings.packages_configuration_hash() for cache validation
2013-12-27 17:34:23 +01:00
Fabio Erculiani
d461ffa02f
[entropy.core.settings.base] introduce packages_configuration_hash()
...
This method serves the purpose of returning a hash of the current
packages configuration (masking, unmasking, keywording, etc).
This will be used by upper layers as part of cache keys generation.
2013-12-27 17:22:49 +01:00
Fabio Erculiani
1f75376b8e
[entropy.cache] drop EntropyCacher.CACHE_IDS['db_match']
...
This is no longer needed.
2013-12-27 16:44:19 +01:00
Fabio Erculiani
6c9ffc0e59
Release Entropy 256
2013-12-26 23:05:39 +01:00
Fabio Erculiani
2a034e4a05
[entropy.client.methods] add an "unlocked" version of get_package_action()
2013-12-26 22:52:13 +01:00
Fabio Erculiani
11e6d596b8
[entropy.db.sqlite] do not clear the cache if locks are already acquired
2013-12-26 22:52:13 +01:00
Fabio Erculiani
603c96fc05
[entropy.locks] add is_already_acquired()
...
This method returns whether the lock has been already acquired.
It is useful in cases where the reentrancy property is leveraged.
2013-12-26 22:52:13 +01:00
Fabio Erculiani
528d4ff116
[entropy.client.dep] drop unused imports
2013-12-26 22:52:13 +01:00
Fabio Erculiani
6b3e5810fc
[entropy.client.settings] drop repos_installed{_keys,} settings metadata
...
Load the related data ondemand whenever it is needed, save SystemSettings
load time and avoid problems with stale information.
2013-12-26 22:52:13 +01:00
Fabio Erculiani
4da9953a71
[entropy.cache] drop EntropyCacher.CACHE_IDS['atom_match']
2013-12-26 22:52:13 +01:00
Fabio Erculiani
be311e7045
[entropy.cache] drop EntropyCacher.CACHE_IDS['atom_search']
2013-12-26 22:52:13 +01:00
Fabio Erculiani
0f59b909c9
[entropy.cache] drop EntropyCacher.CACHE_IDS['dep_tree']
2013-12-26 22:52:13 +01:00
Fabio Erculiani
55faf98b59
[entropy.cache] drop EntropyCacher.CACHE_IDS['check_package_update']
2013-12-26 22:52:13 +01:00
Fabio Erculiani
6121ab63bc
[entropy.cache] drop EntropyCacher.CACHE_IDS['depends_tree']
2013-12-26 22:52:13 +01:00
Fabio Erculiani
3bb2abc102
[entropy.cache] drop EntropyCacher.CACHE_IDS['library_breakage']
2013-12-26 22:52:13 +01:00
Fabio Erculiani
cbe52e67ce
[entropy.cache] drop EntropyCacher.CACHE_IDS['filter_satisfied_deps']
2013-12-26 22:52:12 +01:00
Fabio Erculiani
3fb6905387
[entropy.cache] drop EntropyCacher.CACHE_IDS['world_update']
2013-12-26 22:52:12 +01:00
Fabio Erculiani
57e2ab5ec8
[entropy.core] when clearing repository cache, don't clear the whole cache
...
This is no longer needed since cache keys are now properly generated
2013-12-26 22:52:12 +01:00
Fabio Erculiani
4c0bbd0789
[entropy.client.cache] drop methods used by the dep module only
2013-12-26 22:52:12 +01:00
Fabio Erculiani
cd199b0496
[entropy.client.dep] fix format string typo
2013-12-26 22:52:12 +01:00
Fabio Erculiani
a8bdb9a4ea
[entropy.cache] drop EntropyCacher.CACHE_IDS['critical_update']
2013-12-26 22:52:12 +01:00
Fabio Erculiani
034061620c
[entropy.cache] drop EntropyCacher.CACHE_IDS['world_masked']
2013-12-26 22:52:12 +01:00
Fabio Erculiani
01e54a75b9
[entropy.cache] drop EntropyCacher.CACHE_IDS['world_available']
2013-12-26 22:52:12 +01:00
Fabio Erculiani
55f5d892aa
[entropy.client.settings] add installed packages repository locking support
2013-12-26 22:52:12 +01:00
Fabio Erculiani
e976ea337c
[entropy.client.methods] add installed packages repository locking support
2013-12-26 22:52:12 +01:00
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