| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
This commit adds a new chapter, Package Rules, which explains how to write
rules that control overlay/ebuild creation.
Additionally, the configuration reference has been updated to reflect the
changes recently made, namely the DISTDIR config options.
|
|
|
|
|
|
| |
The meaning of "distdir" has changed as it is also used for
Manifest file creation and as package mirror directory while
'--distdir' means "create ebuilds for packages from a local directory".
|
|
|
|
|
|
| |
This commit adds stable/reliable sorting for package rules (rule-,match- and
action-blocks). The order of the rule entries will be exactly the same as in
the rule file(s).
|
|
|
|
| |
this fixes a python 2 vs 3 issue
|
| |
|
|
|
|
|
|
|
| |
Always add package files to the distdir even if <manifest>.hasFile() returns
True (which is what ebuildmanifest does).
This can only happen when running "roverlay --no-incremental" after deleting
the distdir manually.
|
|
|
|
|
|
|
| |
in _add():
* fixed the log message that is printed when a specific mode is not supported
* also added a comment concerning a race condition when using distroot with
threads
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds usage of the distroot/distdir feature to all PackageDir
variants.
Additionally, Manifest creation is now partially controlled by the base
class:
* The base (PackageDirBase) class creates the "packages for manifest" list now
* Derived classes now implement manifest writing for a given package list
in "_write_manifest(<>)" and do not need to provide a "write_manifest(<>)"
method
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The functionality of Distroot/Distdir has been extended by support
for hard links and (potentially) file copies, thus the "symlink"
module has been (partially) rewritten and renamed to "distroot".
This commit adds transparent (i.e., manifest creation etc. doesn't have to
care about the configuration) access to DISTDIRs via
get_distdir(<ebuild_name>).
Adding files to a distdir is done with <distdir>.add (<package_file>).
Whether this results in a sym-, hardlink or a file copy in a temporary or
persistent directory is up to the "distdir strategy" and only known to
the "Distroot".
|
|
|
|
| |
self.RERAISE contains the exception info (as returned by sys.exc_info()) now
|
|
|
|
| |
this has already been fixed by using strutil.bytes_try_decode().
|
|
|
|
|
| |
The roverlay main() function is now part of the roverlay modules,
which allows byte-compiling.
|
|
|
|
|
|
|
|
|
| |
Important: This commit changes the meaning of the DISTDIR config option.
added three new config keys, OVERLAY_DISTDIR (alias DISTDIR),
OVERLAY_DISTDIR_STRATEGY (DISTDIR_STRATEGY) and
OVERLAY_DISTDIR_FLAT (DISTDIR_FLAT), which will be used for creating
the "overlay distdir" that is able to serve as package mirror directory.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* added the ability to load a "list of choices"
example config_entry_map entry <<
config_option = dict (
value_type = "list",
choices = frozenset (( "first", "second", )),
)
>>
* added the ability to convert values after validating their value_type via
'f_convert' and 'f_convert_item' in the config entry dict
* added the ability to verify the (final) value of a config option via
'f_verify' in the config entry dict
|
|
|
|
| |
added (vague) time measurement for get_stats().
|
|
|
|
|
|
|
|
|
| |
_remove_auto() deletes keys that are no longer required now instead of
creating a new dict() (behavior changed from a "whitelist"- to a "blacklist"
approach)
has_key()/has_key_or(): catch KeyError and log it as error since
<package>.get( key, do_fallback=True ) should not raise it.
|
|
|
|
|
|
| |
Use {C,CXX,F,FC,LD}FLAGS from /etc{/portage}/make.conf instead of those from
/usr/${get_libdir}/R/etc/Makeconf. This way, sci-R package have the same flags
as other Gentoo packages.
|
| |
|
|
|
|
|
|
| |
added HardlinkDistroot, a distroot class that manages package files
in a flat hardlink structure (one dir for all links).
This will be used as replacement for the __tmp__ dir in pkgdir_ebuildmanifest.
|
|
|
|
|
| |
Fixed an indention mistake in _scan_add_package() that caused incremental
overlay creation to malfunction.
|
|
|
|
|
|
| |
Added new arg --print-package-rules (--ppr) that prints the package rules
to stdout after reading them. Similar to --print-config, roverlay will
exit afterwards.
|
|
|
|
|
|
|
|
|
| |
This commit adds the following functionality to the packagerules module:
* load rules from files (using a new syntax)
* add logging capabilities to Rules/Acceptors/Actions
* misc fixups / changes
* add new modules to setup.py
* an example package rules file in config/package_rules
|
|
|
|
|
|
|
|
| |
for_all_files(): accepts a list of "files or dirs" and calls a function
for each file (dirs will be recursively expanded)
get_dict_hash(): a (slow) function that creates a hash for a dict
by hashing a frozenset of (key,value)-tuples
|
| |
|
|
|
|
| |
added PACKAGE_RULES, PACKAGE_RULE_FILES to the config entry map.
|
| |
|
|
|
|
|
| |
Currently, this is a no-op as package rule loading is not implemented (also
previous commit).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A PackageRule matches zero or more PackageInfo instances and manipulates them,
e.g by filtering it out ("do not process") or adding ebuild variables
("KEYWORDS='amd64 -86', ...).
This commit adds the abstract layout of such rules,
each rule consists of acceptors (Acceptor objects) that determine if the rule
matches a package, and actions (PackageRuleAction objects) that manipulate the
PackageInfo instance.
NestedPackageRules add the ability to add subordinate rules to a rule.
Acceptors can also be part of boolean expressions,
e.g. "match package if name == 'seewave' or repo == 'CRAN'" (just an example).
What's missing is the creation of such rules from file (PackageRulesLoader),
so the added code doesn't do much (currently).
|
|
|
|
| |
Sorts the items of an iterable by priority.
|
|
|
|
| |
add evars from the PackageInfo instance to the ebuild if available
|
|
|
|
|
|
| |
Added the KEYWORDS ebuild variable
Also removed some param_expansion= keywords from the var constructors.
|
|
|
|
|
| |
Added helper functions that can be used to add an evar only if it does not
already exist (etc.).
|
|
|
|
|
|
| |
Added parameter description for param_expansion to EbuildVar.__init__()
Fixed Typo: Use ' (instead of") as quote char if param_expansion is false.
|
|
|
|
|
|
|
| |
new function update_unsafe() that simply adds information to a PackageInfo
instance without locking or checking for writability.
added EVAR* key that can be used to add per-package ebuild variables (evar)
|
|
|
|
| |
virtual/package-manager from @system is not sufficient
|
|
|
|
|
|
|
| |
Notable changes:
* use portage libs directly for Manifest file creation
* SymlinkDistroot/SymlinkDistdir for safe per-package DISTDIRs during
Manifest file creation (currently only used by the portage implementation)
|
|
|
|
| |
added SYMLINK_DISTROOT, SYMLINK_DISTROOT_TMP options
|
|
|
|
|
| |
Choose Manifest implementation via command line arg.
Meant for testing the portagemanifest impl.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A Manifest file creation that uses the portage python libs directly.
This has the following advantages over the "ebuild" implementation:
* create more than one Manifest at once (thread safe)
* faster file creation time (direct "create Manifest" function call
instead of calling an external executable a few thousand times)
The downsides are:
* highly EXPERIMENTAL (currently)
* less stable to changes in portage (written for portage version 2.1.11.31)
|
|
|
|
|
|
| |
A SymlinkDistroot manages zero or more per-package SymlinkDistdirs that
contain symlinks to the R package files.
Used for Manifest file creation.
|
|
|
|
|
|
| |
Removed the 'external:' prefix in _PACKAGE_DIR_IMPLEMENTATIONS,
added short names for the available implementations and added
'portage'.
|
|
|
|
|
|
| |
* new entry [OVERLAY_]SYMLINK_DISTROOT
* new entry [OVERLAY_]SYMLINK_DISTROOT_TMP with default value True
* value choices changed for [OVERLAY_]MANIFEST_IMPLEMENTATION
|
| |
|
|
|
|
|
| |
* new key: ebuild_filename
* update(): call _remove_auto() after processing all other keywords
|
| |
|
|
|
|
|
|
|
|
|
| |
* roverlay/overlay/category.py:
Pass "self" as parent parameter to the PackageDir constructor
* roverlay/overlay/pkgdir/packagedir_base.py:
Accept the parent parameter.
Also added some comments.
|