aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* doc/html: Package Rule Files, Configuration0.2.3André Erdmann2013-03-051-226/+738
|
* doc/rst: Package Rule Files, ConfigurationAndré Erdmann2013-03-051-57/+496
| | | | | | | | 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.
* argutil: rename --distdir to --local-distdirAndré Erdmann2013-03-051-1/+1
| | | | | | 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".
* packagerules/parser: use line number as priorityAndré Erdmann2013-03-016-42/+82
| | | | | | 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).
* overlay/category: fix RERAISEAndré Erdmann2013-02-091-1/+1
| | | | this fixes a python 2 vs 3 issue
* fix setup.pyAndré Erdmann2013-02-091-1/+1
|
* portagemanifest: always add pkg file to DISTDIRAndré Erdmann2013-02-091-0/+8
| | | | | | | 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.
* overlay/pkgdir/distroot: fix _add()André Erdmann2013-02-091-1/+3
| | | | | | | 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
* add DISTDIR, DISTDIR_STRATEGY to R-overlay.confAndré Erdmann2013-02-092-1/+19
|
* gitignore: ignore *.localAndré Erdmann2013-02-091-0/+1
|
* roverlay/overlay/pkgdir: use DISTROOTAndré Erdmann2013-02-094-117/+111
| | | | | | | | | | | | 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
* overlay/pkgdir/distroot replaces ./symlinkAndré Erdmann2013-02-096-373/+479
| | | | | | | | | | | | | | 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".
* overlay/category: RERAISE with correct tracebackAndré Erdmann2013-02-091-6/+5
| | | | self.RERAISE contains the exception info (as returned by sys.exc_info()) now
* rpackage/descriptionreader: remove FIXME commentAndré Erdmann2013-02-091-3/+2
| | | | this has already been fixed by using strutil.bytes_try_decode().
* move roverlay.py to roverlay/main.pyAndré Erdmann2013-02-092-333/+361
| | | | | The roverlay main() function is now part of the roverlay modules, which allows byte-compiling.
* config/entrymap: OVERLAY_DISTDIR[_STRATEGY,_FLAT]André Erdmann2013-02-091-19/+54
| | | | | | | | | 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.
* config/const: remove SYMLINK_DISTROOT_*André Erdmann2013-02-091-4/+0
|
* config/loader: list of choices, value functionsAndré Erdmann2013-02-091-31/+113
| | | | | | | | | | | | | | | | | * 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
* overlay/creator: timestatsAndré Erdmann2013-02-091-25/+77
| | | | added (vague) time measurement for get_stats().
* packageinfo: _remove_auto(), fix has_key*()André Erdmann2013-02-091-31/+34
| | | | | | | | | _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 portageDenis Dupeyron2013-02-071-1/+2
| | | | | | 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.
* Fix src_prepare for epatch_userDenis Dupeyron2013-02-061-0/+1
|
* overlay/pkgdir/symlink/distroot: HardlinkDistrootAndré Erdmann2013-02-051-52/+143
| | | | | | 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.
* packagedir_portagemanifest: fix indent typoAndré Erdmann2013-02-051-1/+8
| | | | | Fixed an indention mistake in _scan_add_package() that caused incremental overlay creation to malfunction.
* roverlay: --print-package-rules (--ppr)André Erdmann2013-02-052-0/+33
| | | | | | 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.
* Introducing package rules, part 2André Erdmann2013-02-0520-99/+1506
| | | | | | | | | 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
* roverlay/util: for_all_files(), get_dict_hash()André Erdmann2013-02-051-1/+55
| | | | | | | | 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
* roverlay/strutil: wildcard_to_regex()André Erdmann2013-02-051-0/+14
|
* roverlay/config: PACKAGE_RULESAndré Erdmann2013-02-052-0/+15
| | | | added PACKAGE_RULES, PACKAGE_RULE_FILES to the config entry map.
* setup.py: fix package listAndré Erdmann2013-02-031-2/+10
|
* overlay/creator: use package rulesAndré Erdmann2013-01-301-4/+11
| | | | | Currently, this is a no-op as package rule loading is not implemented (also previous commit).
* Introducing package rulesAndré Erdmann2013-01-309-0/+506
| | | | | | | | | | | | | | | | | | 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).
* util: priosort()André Erdmann2013-01-301-1/+20
| | | | Sorts the items of an iterable by priority.
* ebuild/creation: use PackageInfo ebuild variablesAndré Erdmann2013-01-301-0/+8
| | | | add evars from the PackageInfo instance to the ebuild if available
* ebuild/evars: KEYWORDSAndré Erdmann2013-01-301-5/+17
| | | | | | Added the KEYWORDS ebuild variable Also removed some param_expansion= keywords from the var constructors.
* ebuild/ebuilder: has(<name>), get_names()André Erdmann2013-01-301-0/+20
| | | | | Added helper functions that can be used to add an evar only if it does not already exist (etc.).
* ebuild/abstractcomponents: typo + docAndré Erdmann2013-01-301-5/+9
| | | | | | Added parameter description for param_expansion to EbuildVar.__init__() Fixed Typo: Use ' (instead of") as quote char if param_expansion is false.
* packageinfo: update_unsafe(), add ebuild variablesAndré Erdmann2013-01-301-9/+36
| | | | | | | 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)
* ebuild: add sys-apps/portage to RDEPENDAndré Erdmann2013-01-291-0/+1
| | | | virtual/package-manager from @system is not sufficient
* increase version number to 0.2.3André Erdmann2013-01-292-3/+3
| | | | | | | 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)
* doc/rst: Configuration ReferenceAndré Erdmann2013-01-291-0/+31
| | | | added SYMLINK_DISTROOT, SYMLINK_DISTROOT_TMP options
* roverlay/argutil: --manifest-implementationAndré Erdmann2013-01-291-0/+9
| | | | | Choose Manifest implementation via command line arg. Meant for testing the portagemanifest impl.
* roverlay/overlay/pkgdir: portagemanifestAndré Erdmann2013-01-291-0/+163
| | | | | | | | | | | | | 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)
* roverlay/overlay/pkgdir: SymlinkDistroot/dirAndré Erdmann2013-01-293-0/+286
| | | | | | A SymlinkDistroot manages zero or more per-package SymlinkDistdirs that contain symlinks to the R package files. Used for Manifest file creation.
* roverlay/overlay/pkgdir: manifest impl choicesAndré Erdmann2013-01-291-4/+6
| | | | | | Removed the 'external:' prefix in _PACKAGE_DIR_IMPLEMENTATIONS, added short names for the available implementations and added 'portage'.
* roverlay/config: new config entriesAndré Erdmann2013-01-292-5/+26
| | | | | | * new entry [OVERLAY_]SYMLINK_DISTROOT * new entry [OVERLAY_]SYMLINK_DISTROOT_TMP with default value True * value choices changed for [OVERLAY_]MANIFEST_IMPLEMENTATION
* roverlay/config: added ConfigError exceptionAndré Erdmann2013-01-291-1/+4
|
* roverlay/packageinfo: ebuild_filename, remove_autoAndré Erdmann2013-01-291-4/+22
| | | | | * new key: ebuild_filename * update(): call _remove_auto() after processing all other keywords
* roverlay/strutil.py: split_whitespace() functionAndré Erdmann2013-01-291-1/+7
|
* roverlay/overlay: pass parent to PackageDirAndré Erdmann2013-01-292-4/+16
| | | | | | | | | * 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.