Commit Graph

286 Commits

Author SHA1 Message Date
Fabio Erculiani
ae3a431d84 [entropy.security] rename filter_advisories() to _filter_advisories() 2012-04-15 17:34:34 +02:00
Fabio Erculiani
4a8c53af08 [entropy.client] Repository: do not generate Security Advisories cache 2012-04-15 17:34:13 +02:00
Fabio Erculiani
728726128b Release Entropy 1.0_rc102 2012-04-15 12:31:22 +02:00
Fabio Erculiani
8f0c37323a [entropy.spm] PortagePlugin: introduce conditional deps support
Introduce Entropy conditional dependencies supoort if
ETP_PORTAGE_CONDITIONAL_DEPS_ENABLE is set in the environment.
This feature is disabled by default because it braks backward
compatibility and older Entropy Clients are broken wrt this.
2012-04-15 12:24:20 +02:00
Fabio Erculiani
58846f12ad [entropy.spm] PortagePlugin: use enumerate() instead of range(len()) 2012-04-15 12:13:45 +02:00
Fabio Erculiani
6dd6cb23cb [entropy.spm] PortagePlugin._usedeps_reduce: fix usage with conditional dependencies 2012-04-15 12:12:13 +02:00
Fabio Erculiani
d1a61e20c6 [entropy.spm] PortagePlugin._calculate_dependencies: return list for everything
Do not return strings for *DEPEND, LICENSE, PROVIDE and SRC_URI
2012-04-15 12:08:56 +02:00
Fabio Erculiani
5ba0b0771c [entropy.spm] PortagePlugin: fix ParseError exception initialization 2012-04-15 12:07:24 +02:00
Fabio Erculiani
736ee363bf [entropy.dep] fix DependencyStringParser usage by expand_dependencies() 2012-04-15 12:04:26 +02:00
Fabio Erculiani
cdf6be90be [tests] Spm: add PortageEntropyDepTranslator tests 2012-04-14 17:49:18 +02:00
Fabio Erculiani
b52a1bdde7 Release Entropy 1.0_rc101 2012-04-14 17:34:42 +02:00
Fabio Erculiani
292af94cf0 [entropy.spm] PortagePlugin: read CATEGORY, PF, C*FLAGS from environment if files are missing 2012-04-14 16:40:33 +02:00
Fabio Erculiani
d3aa4af5c4 [entropy.spm] move Portage bashism to external script
Portage stores package environment variables inside it's environment
file that has to be sourced in order to correctly retrieve the
variable value
2012-04-14 16:04:25 +02:00
Fabio Erculiani
ab832f1cf0 [entropy.misc] EINTR can be raised by both IOError and OSError 2012-04-14 13:52:35 +02:00
Fabio Erculiani
8a3c13183a [entropy.const] do not change entropy directory permissions on every library load
The logic has been moved to Makefile and upstream ebuilds.
2012-04-14 08:34:05 +02:00
Fabio Erculiani
a0d9458212 Release Entropy 1.0_rc100 2012-04-13 12:15:51 +02:00
Fabio Erculiani
437ac32ac8 Release Entropy 1.0_rc99 2012-04-12 19:58:28 +02:00
Fabio Erculiani
043a0aeeeb [entropy.misc] DirectoryMonitor: make possible to monitor multiple dirs 2012-04-12 12:48:43 +02:00
Fabio Erculiani
1f9c4fb720 [entropy.client] add installed_repository_path() public method 2012-04-12 12:48:43 +02:00
Fabio Erculiani
461ddc712f Release Entropy 1.0_rc98 2012-04-11 23:24:39 +02:00
Fabio Erculiani
7f273165be Release Entropy 1.0_rc97 2012-04-09 18:05:17 +02:00
Fabio Erculiani
41195cbd03 Release Entropy 1.0_rc96 2012-04-08 23:18:57 +02:00
Fabio Erculiani
3562d69a7f [entropy.server] fix syntax error 2012-04-08 23:18:09 +02:00
Fabio Erculiani
f8aceb4379 Release Entropy 1.0_rc95 2012-04-08 19:53:01 +02:00
Fabio Erculiani
6669a7e80c [entropy.client] migrate to the new ConfigurationUpdates class 2012-04-06 17:00:17 +02:00
Fabio Erculiani
52aa120a9a [entropy.server] migrate to the new ConfigurationUpdates class 2012-04-06 17:00:17 +02:00
Fabio Erculiani
e10b6e264e [entropy.client] introduce ConfigurationUpdates class
This is a complete rewrite of the now old FileUpdates class,
aiming to become easier to use and concurrently deal with.
Client code must be updated to use the new ConfigurationUpdates
class before 2012-12-31, backward compatibility won't be guaranteed
after this date.
2012-04-06 17:00:17 +02:00
Fabio Erculiani
1208861ca9 Release Entropy 1.0_rc94 2012-04-04 21:05:54 +02:00
Fabio Erculiani
030c45b7cf Release Entropy 1.0_rc93 2012-04-04 11:38:43 +02:00
Fabio Erculiani
bdecb8c969 Release Entropy 1.0_rc92 2012-04-03 16:06:21 +02:00
Fabio Erculiani
1785f9d876 [entropy.client.interfaces.package] expose Package.splitdebug_enabled() 2012-04-03 14:52:52 +02:00
Fabio Erculiani
58efd1cc9d [entropy.misc] add DirectoryMonitor class 2012-04-02 14:07:04 +02:00
Fabio Erculiani
7335c0e0eb Release Entropy 1.0_rc91 2012-04-01 20:20:55 +02:00
Fabio Erculiani
af69c294aa [entropy.i18n] make possible to override the default gettext domain (entropy) 2012-03-31 20:01:38 +02:00
Fabio Erculiani
374845e913 [entropy.client] introduce Client.calculate_orphaned_packages()
This method has been introduced in order to remove this calculation
logic from Sulfur, Equo and RigoDaemon that resulted in unwanted
code duplication.
2012-03-31 11:59:21 +02:00
Fabio Erculiani
1084359821 [entropy.const] const_debug_write: make posible to write to arbitrary files 2012-03-29 19:07:23 +02:00
Fabio Erculiani
1dcff4ce0a [entropy.client.interfaces.package] better handle download when network is unavailable
When network is unavailable, the package file fetch function returns an error
whilst the file itself has been completely and successfully downloaded already.
With this commit it is ensured that the event is correctly handled.
2012-03-28 23:21:31 +02:00
Fabio Erculiani
e25ebbb59e [entropy.const] dump_signal: print stack variables if extended=True 2012-03-28 23:14:43 +02:00
Fabio Erculiani
0e3b18be2f [entropy.client] only setup differential download when edelta support is available 2012-03-28 18:24:49 +02:00
Fabio Erculiani
940b99b656 [entropy.client] trivial code style update 2012-03-28 18:23:54 +02:00
Fabio Erculiani
4c954a9194 [entropy.client] _lock_resource: always increase lock reference count
Entropy Resouce Locks are reentrant, thus reference counted on lock()
and unlock() operations. For this reason, the counter must be increased
on every lock() request. This did not happen if the lock was already
held by the process with the unwanted effect of improperly releasing it.
This caused the "Calculating dependencies" glitch on each package
transaction.
2012-03-26 14:03:43 +02:00
Fabio Erculiani
228e0a7da1 [entropy.db] add EntropyRepository.retrieveRuntimeDependencies() 2012-03-24 17:29:41 +01:00
Fabio Erculiani
dd46c23b20 [entropy.spm] PortagePlugin.add_installed_package: make sure to always run os.utime 2012-03-23 10:35:47 +01:00
Fabio Erculiani
99b20257a4 [entropy.client] handle _repodb_cache atomically
This prevents close_repositories() and _open_repository()
to concurrently mess with _repodb_cache, which is a dict, thus
not thread-safe.
2012-03-23 10:14:06 +01:00
Fabio Erculiani
115988a08c [entropy.client,entropy.server] drop __del__(), can be racey 2012-03-23 10:13:01 +01:00
Fabio Erculiani
d465bb56e2 [entropy.db] EntropyRepository: use RLock() to handle connection pooling
This is much safer than being fault tolerant and shouldn't have any
tangible impact on performance
2012-03-23 10:07:48 +01:00
Fabio Erculiani
92e42ca3aa [entropy.db*] EntropyRepository, do not close() on object destruction
Closing the underlying sqlite3 db on object destruction (__del__())
causes funny race conditions when concurrently accessing the object
itself.

When the Garbage Collector tries to free memory, which can happen
when no more references pointing to self are used, by calling __del__()
(which called close()) it is possible to run into troubles if another
thread is inside a method of the same object holding a valid sqlite cursor.

Moreover, no external arbitration is possible if the garbage collection
gets in the middle and calls close() through the destructor on behalf
of a poor random innocent thread.

Solution is simple, destructor is evil and resource leaks have to be
handled where they actually are. Bye bye __del__().
2012-03-22 19:09:24 +01:00
Fabio Erculiani
5557bf8b3f [entropy.misc] add non-blocking methods to ReadersWritersSemaphore 2012-03-20 14:32:37 +01:00
Fabio Erculiani
5839d81819 [entropy.const] const_debug_write: add force argument support 2012-03-18 18:29:09 +01:00
Fabio Erculiani
c62790b933 [entropy.db] add searchKeySlotTag()
Implement searchKeySlotTag(), it is the same as searchKeySlot() but
it also allows to specify package tag.
2012-03-17 17:05:39 +01:00