The module entropy_path_loader (used only for running from within the
checkout; otherwise not even installed) is made to provide the _entropy
namespace.
(Other ideas instead of this entropy_path_loader change would be to
reorganise files layout; drop support for running from the checkout as
is - and perhaps require virtualenvs; require sourcing a script that
sets PYTHONPATH. However, as implemented, it is not intrusive, and the
good part is that it is quite isolated, not used in normal usage after
installation. Basically, it only does sys.path + provides _entropy
namespace.)
After this commit alone it would not work when installed (unless module
paths are set in a special way). Next changes will introduce
installation to site-packages so no custom PYTHONPATH will be necessary.
For convenience (seemingly, and it really is convenient) equo and other
tools can be run from the checkout, and Entropy modules are loaded from
the checkout. Now there is a strict separation when system paths and
when paths from the checkout are used.
It makes it a bit more robust, secure and preditable at the cost of
a little more complexity.
A pleasant side effect of this change is that it is not required to
change directory to the tool (to use non-system one), as paths in the
checkout are relative to scripts.
Imports in lib/tests were not adjusted.
This new tool compares entropy installed packages repository stored file checksums
and mtimes with live system ones and reports altered ones.
Please note:
- configuration files can expose different checksums and mtime
obvious thing
- there can be some false positives and you manually have to check
them
This feature helps Entropy repository developers to simulate client
side repository status by merging packages in one repository into another.
Doing this client-side makes possible to distribute the testing effort
and avoid touching critical data server-side.
This allows easier NFS sharing over home networks. Previously,
paths were /var/lib/entropy/packages{-nonfree,-restricted,}.
Please note that if you want to share Entropy packages in a
larger infrastructure, it's advised to rsync the whole Entropy
mirror and serve your cache via FTP/HTTP/FILE protocols adding
the URI to repositories.conf.