| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Ignore rules should come later than positive rules.
Closes: https://bugs.gentoo.org/653694
|
|
|
|
| |
When checking/normalizing vmod_str, set vmod directly if possible.
|
| |
|
|
|
|
|
| |
The wide_match option accepts a boolean value now:
wide_match[=[1|y|yes|0|n|no|...]]
|
|
|
|
|
|
| |
In continuation of commit #50bd6d5aac48317c46b777acf9c1836e792bff58,
make the slot match behavior configurable (depending on the slot rule,
not the dep env<-package).
|
|
|
|
|
|
|
| |
do not slot-resolve dep_env with a vmod of '>' or '>='.
This is a temporary fix. A more controllable (configurable) solution will be
added once that "regenerate $list of ebuilds" has been implemented.
|
| |
|
|
|
|
| |
get_constructor_args()
|
| |
|
|
|
|
|
|
| |
Python 2 checks for __nonzero__(), not __bool__(). roverlay usually relies
explicit checks ("if obj.attr == $expected" or "obj.exists()" rather than
"if object:"), so this is not a major issue.
|
|
|
|
|
|
|
| |
fix a small bug that affects logging only where
SimpleDependencyRuleReader.read() always reports a file count of 0.
Also, remove an unnecessary "self._pool_add is [not] None" check.
|
|
|
|
|
| |
This commit fixes some issues, most of them are theoretical only, e.g. variables
that might be accessed before assignment in with/try..except blocks.
|
| |
|
|
|
|
| |
Cython complained about the old constructs.
|
| |
|
|
|
|
| |
remove unused imports, fix undefined/unused args etc.
|
|
|
|
| |
sort rule dict by repo
|
| |
|
|
|
|
|
| |
Try to resolve selfdeps within a repo first, before trying to get a match in any
repo.
|
|
|
|
|
|
|
|
|
|
| |
DepEnv objects can now (optionally) contain a reference to "their" PackageInfo
object. This allows the dynamic selfdep pool to decide which rules to try (and
in which order) based on the package being processed.
(I've chosen a (weak) reference because DepEnv objects should not keep
PackageInfos in memory.)
The actual PackageInfo can then be accessed via <DepEnv>.get_package_info().
|
| |
|
|
|
|
|
| |
This allows to take the whole dep environment into account when deciding whether
it can be resolved by a specific rule pool or not.
|
|
|
|
|
|
| |
Like add_dependencies(), but accepts two additional args, a common and a
specific dep string blacklist. A dep str won't be added if it appears in any of
these blacklists.
|
| |
|
| |
|
|
|
|
|
| |
according to the usage guide, these dependency types should be "package
_first_" / "system _first_", not "package _only_" / ....
|
|
|
|
| |
lets the dep parser raise an exception, which causes roverlay to exit.
|
|
|
|
| |
dep result class that cannot participate in selfdep validation.
|
|
|
|
|
| |
Use common for_all_files() functionality, e.g. ignore ".git" dirs while
recursively searching for files.
|
| |
|
|
|
|
| |
is_selfdep=N was missing in SimpleRuleMaker.handle_multiline_begin().
|
|
|
|
|
|
|
|
|
|
|
|
| |
The non-greedy channel processes all deps, whether successful or not. The
default behavior (EbuildJobChannel) is to stop if any mandatory dep cannot be
resolved. This is desirable when running overlay creation (it's faster),
but can hide unresolvable dep strings, which is not useful when writing dep
rules. Single-threaded depres shouldn't be affected, though, since the ebuild
channel has to wait until the resolver is done.
So, the typical use case for non-greedy depres channels is when dealing with
partial results (which overlay creation doesn't).
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This commit fixes some issues (mostly typos).
It also adds some logging concerning selfdep validation.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Dependency strings containing an '<whitespace>and<whitespace>' will now be
splitted, and each part is resolved individually.
Note that this "breaks" some of the existing dependency rules.
|
|
|
|
|
| |
Create multiple DepEnv instances for a dependency string.
This can be used to split strings like '<dep1> and <dep2>'.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit fixes a bug in the dynamic selfdep pool concerning dot chars '.' in
dependency strings (which are replaced by '_' in ebuild names). Basically, the
dynamic selfdep pool did not call <newly created rule>.done_reading() after
reloading its rules which resulted in not having dot-remapped aliases available
for dep resolution.
In addition to fixing this (mis-)behavior, real package names (provided by
packageinfo instances) are now used when available (instead of replacing all '_'
chars with '.').
|
| |
|
|
|
|
|
|
| |
* rulemaker: use common code provided by util.mapreader.MapfileParser
* reader: offload file reading/parsing to rulemaker, skip vcs directories when
scanning directories for rule files
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds support for (un-)pausing ebuild creation.
EbuildCreation jobs are now able to stop themselves when certain conditions
are not met and resume later.
This is necessary for performing selfdep reduction at overlay creation time
and not after creating all ebuilds.
Additionally (and the main motivation for implementing this), it allows to
handle optional/mandatory selfdeps individually. Optional and unsatisfiable
are simply removed from the ebuild, while mandatory ones cause ebuild creation
to fail for a given package.
This commit also fixes some exception-handling related issues in the overlay
worker module (roverlay/overlay/worker.py->OverlayWorker).
|
| |
|
| |
|