This commit partially reverts commit d6b7a21314.
Package revision is no longer incremented across package moves.
This has two advantages:
- much less traffic generated on the mirror infrastructure
- less updates for sabayon-limbo users when packages are moved to main
Bumping the revision was required by sabayon-weekly, which had the problem
that some package files were replaced during normal activity on
sabayonlinux.org and sabayon-limbo on the mirror. This generated checksum
errors, thus adding the checksum in the package file name ensures that
Entropy Server will never overwrite package file names unless the checksum
also matches.
Having a SHA1 checksum in the file name is also good for security, and
we may even want to create a SHA1 from the GPG signature in future.
This commit moves all the SPM package metadata update logic, including
pkgmove and slotmove to entropy.spm plugins.
This makes possible to handle the event more reliably. In particular,
Entropy now controls what Portage does, basing on the repository treeupdates
information.
The scenario in where the Portage tree was not updated and the called
"emaint --fix moveinst" did not do what it was supposed to do is now
handled correctly.
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.