IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
This is a helper function to find out which packages
from one repo can probably be immediately build for
the other one.
The implementation is suboptimal, but works just fine
for now.
Instead of global cache, we now have an object
which encapuslates it, together with parameters
that affect reports. This seems to be simpler
and more robust model.
missing_rating and recursive_build_report
now use it, also the refactoring is not yet
complete.
Use multiprocessing module to read the headers for each
repo in parallel. Usualy reading data for repository means
loading 6 lists, so the gain is considerable.
The plan is to split the recursive_build_report
into more structured and easy-to-operate pieces.
The first part of those pieces is introduction
of a separate class that walks the dependency
trees to build a closure of build requirements
for a given package.
To show what's already possible with it,
we add new report, missing_rating_report,
that shows the most wanted of packages that
are missing from a given repository.
Reports that consist of triplets (kind, dep, pkg)
are surprisingly common. This commit introduces
a class to store such report, in hope to be able
to manipulate them more intuitively.
The change is breaking, as some reports (like
build_report and unmet_report) are now returning
the new class instance instead of string.
To avoid hardcoding repository names and make
the code more easily extendable, we now
use the keys from the config file as
the repository names instead of hardcoding
the fixed set of names.
This means most config will require updating.
Instead of ignoring all the exceptions silently,
we check if the repository is present in the config
file, and the loading fail loudly for any other reason
if it happens to fail.
In the early bootstrap stage (like loongarch64 now)
repository may have some unmets (mostly build unmets)
that are worked around by adding additional (e.g. noarch)
source into the build environment.
This commit tries to model this by adding a set of binaries
to repo (we call this 'addon') and using it to satisfy
build requiremets if none are provided by the repo itself.
This commit also improves build report accuracy in presence
of unments: packages that are required to resolve the unmets
we find are added to build requirements of the package
with special marker.
On certain graphs, repeative topolgical sorting takes
too much time. So, we introduce an option to disable
the summary and produce all the required build
reports only.
Some checkinstall packages (like rpminstall-tests-checkinstall)
have large dependencies that affect ability to build package
when install checks are enabled.
Due to typo, recursive build reports sometimes
contained 'has NONE' lines for sources that
were, in fact, present in the target repository.
This commit fixes that.
Refactor unmet-based repos for cleaner code.
Add one more unmet-based repo, to check what
packages in the target repo still have
a dependency but should not.
By default, genbasedir saves several copies of every
package list, compressing them with different methods
(xz, bz2, uncompressed). With this change, we read
only the first one, thus avoiding extra work
and (false) warnings about duplicate binaries.