Entropy Server now supports repositories defined inside
/etc/entropy/repositories.conf.d/ files, written using the
syntax detailed below. This improves the ability to enable, disable,
add and remove repositories programmatically. Furthermore, it
makes possible to extend the supported parameters without breaking
backward compatibility.
In order to differentiate Entropy Client repository definitions between
Entropy Server ones, each repository section must start with "[server=".
This is an example of the syntax (with a complete listing
of the supported arguments):
[server=sabayon-limbo]
desc = Sabayon Linux Official Testing Repository
repo = ssh://username@full.host:~username/sabayon-limbo
enabled = <true/false>
[server=sabayon-limbo]
desc = This statement will be ignored.
repo-only = ssh://username@repo.host:~username/sabayon-limbo
pkg-only = ssh://username@pkg.host:~username/sabayon-limbo
[server=sabayon-base]
desc = This is the base repository.
repo-only = ssh://username@repo.host:~username/sabayon-base
pkg-only = ssh://username@pkg.host:~username/sabayon-base
base = <true/false>
As you can see, multiple statements for the same repository
are allowed. However, only the first desc = statement will be
considered, while there can be as many {pkg,repo}* = as you want.
The repository order is important, but this is guaranteed by the
fact that configuration files are parsed in lexical order.
Statements description:
- "desc": stands for description, the repository name description.
- "repo": the push & pull URI, for both packages and repository database.
- "repo-only": same as repo, but only for the repository database
push & pull.
- "pkg-only": same as repo, but only for the packages push & pull.
The supported protocols are those supported by entropy.fetchers.
- "enabled": if set, its value can be either "true" or "false". The default
value is "true". It indicates if a repository is configured
but currently disabled or enabled. Please take into account
that config files in /etc/entropy/repositories.conf.d/ starting
with "_" are considered to contain disabled repositories. This
is just provided for convienence.
- "base": if set, its value can be either "true" or "false". The default
value is "false". If no repository has the flag set, the first
listed repository will be the base one. Only the first repository
with "base = true" will be considered. The base repository is the
repository that is considered base for all the others
(the main one).
This is backward compatible with the previous repository
implementation, in the sense that old repository syntax
is just ignored. However, a mix of old and new statements
may result in an undefined behaviour.
This is an example of the new syntax (with a complete listing
of the supported arguments):
[sabayon-limbo]
desc = Sabayon Linux Official Testing Repository
repo = http://pkg.sabayon.org,sabayon.org
pkg = http://pkg.sabayon.org
pkg = http://dl.sabayon.org/entropy
enabled = <true/false>
[sabayon-limbo]
desc = This statement will be ignored.
repo = This url will be ignored.
pkg = http://some.more.mirror.org/entropy
pkg = http://some.more.mirror.net/entropy
As you can see, multiple statements for the same repository
are allowed. However, only the first desc = and repo =
statements will be considered, while there can be as many pkg =
as you want.
Statements description:
- "desc": stands for description, the repository name description.
- "repo": the repository database URL string, plus other parameters
as supported in the previous configuration file syntax:
<db url prefix>[,<remote web services server url][#<compression>].
- "pkg": the repository packages URL string. This must be a valid URL.
The supported protocols are those supported by entropy.fetchers.
- "enabled": if set, its value can be either "true" or "false". The default
value is "true". It indicates if a repository is configured
but currently disabled or enabled. Please take into account
that config files in /etc/entropy/repositories.conf.d/ starting
with "_" are considered to contain disabled repositories. This
is just provided for convienence.
Selected matches was not respected by the simple or dependencies
resolution code. This commit addresses the problem and fixes the
virtual/glu dependendency handling.
Weak package files is a feature that makes possible to save a lot of
local space if enabled. Basically, all the package files no longer in
the repository are locally removed before their expiration. This reduces
local data redundancy with no real reliability impact.
equo {install,source,download} now support --onlydeps.
Using --onlydeps, only dependencies of the selected packages are installed,
unless the selected packages are dependencies themselves.
calculate_updates() now returns a dictionary containing the same pieces of
information available before. In addition, it now also returns if critical
updates were found and returned by the method itself.
This is particularly useful for enforcing relaxed deps calculation in case
of critical updates (which is what happens now).
This commit breaks the Entropy Client API.
This is the exception generated by reading CONTENTS expecting valid UTF-8 encoded
text (while it currently is raw_unicode_escape):
stacktrace: Traceback (most recent call last):
File "/usr/bin/equo", line 15, in <module>
main()
File "/usr/lib/entropy/client/solo/main.py", line 333, in main
exit_st = func(*func_args)
File "/usr/lib/entropy/client/solo/commands/command.py", line 335, in _call_locked
return func(client)
File "/usr/lib/entropy/client/solo/commands/install.py", line 183, in _install
relaxed, multifetch, packages)
File "/usr/lib/entropy/client/solo/commands/install.py", line 609, in _install_action
exit_st = pkg.run(xterm_header=xterm_header)
File "/usr/lib/entropy/lib/entropy/client/interfaces/package.py", line 4266, in run
rc = self._stepper(xterm_header)
File "/usr/lib/entropy/lib/entropy/client/interfaces/package.py", line 4251, in _stepper
rc = steps_data.get(step)()
File "/usr/lib/entropy/lib/entropy/client/interfaces/package.py", line 4153, in do_install_spm
self.pkgmeta['installed_package_id'])
File "/usr/lib/entropy/lib/entropy/client/interfaces/package.py", line 2262, in _spm_install_package
spm_uid = Spm.add_installed_package(self.pkgmeta)
File "/usr/lib/entropy/lib/entropy/spm/plugins/interfaces/portage_plugin/__init__.py", line 3078, in add_installed_package
splitdebug_dirs)
File "/usr/lib/entropy/lib/entropy/spm/plugins/interfaces/portage_plugin/__init__.py", line 2859, in __splitdebug_update_contents_file
line = cont_f.readline()
File "/usr/lib64/python2.7/codecs.py", line 675, in readline
return self.reader.readline(size)
File "/usr/lib64/python2.7/codecs.py", line 530, in readline
data = self.read(readsize, firstline=True)
File "/usr/lib64/python2.7/codecs.py", line 477, in read
newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xee in position 30: invalid continuation byte
etpConst['clientdbid'] is kept for backward compatibility, but will be removed soon
While etpConst['serverdbid'] and etpConst['clientserverrepoid'] are gone.