So we have several nasty issues when using ignore-spm-downgrades here.
First of all, calculate_world_updates should get the setting directly from
SystemSettings instead of bugging developer asking for it.
Secondly, calculate_world_updates should return a 4D tuple, also containing
the matches ignored when ignore-spm-downgrades is enabled.
Moreover, Spritz packages.py getPackageItem featured an unused argument,
which has been dropped.
I know this commit is a bitch because we are talking about changing API
and affecting several files at once.
The aim is to make php handlers not always required when there is a FTP
server that supports "SITE MD5" commands (like proftpd with mod_md5).
This commit makes FtpServerHandler able to handle such feature and avoid
using any other external hook. If server support is found, this verification
is enough. If support is broken, FtpServerHandler will try to fallback to
previously supported features, if enabled (use_handlers variable).
Moreover, FtpServerHandler now makes use of entropy.tools.is_valid_md5
instead of just checking if provided strings are long 32 chars.
Proftpd server with mod_md5 supports SITE MD5 <filepath> that actually
retrieves the md5 hash of the provided filepath.
This commit add support for it. The aim is trying to use SITE MD5 instead
if available instead of using crappy php hooks that in our world are called
"repository handlers".
__update_available_cache wasn't working correctly: available cache
was not updated correctly, causing get_available_packages returning
wrong information when cached.
On some circumstances, post dependencies got a deplevel of 0, which
was overwritten by conflicts data. This patch fix the issue by
making deplevels >= 0 to always start from 1, leaving deplevel = 0
to conflicting packages.
Moreover, this patch improve generate_dependency_tree performance.
that it is read correctly.
It can happen that licenses are written in UTF-8 directly, as previous
commit states.
Moreover, make sure that there's a perfect match between what is returned
by get_pkg_metadata and entropy.db.getPackageData
extract_pkg_metadata now returns data in UTF-8 format and does it
correctly. This avoids failures on 'equo database generate' and
weird conversion conditions. Moreover, this commit should not break
backward compatibility since this is properly handled in entropy.db
methods.
Community Repositories support was broken due to codebase changes
and introduction of SystemSettings, which now overwrites any
overridden setting. This commit fixes all the issues and also
improves the current support.
If enabled in server.conf, entropy server side interface can now
allow multiple packages in the same scope without forcefully being
'injected'.
Through packages.db.fatscope in database dir, you can choose what
packages are eligible to this status, you can use '*' wildcard to
enable the feature for all the packages.
Be warned, this feature is EXPERIMENTAL (read server.conf) and not
enabled by default.
Using a database-wide CONFIG_PROTECT metadata is not wise and triggers
several issues, every package during install and removal should
use their own information (as in CONFIG_PROTECT and CONFIG_PROTECT_MASK)