From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path:
At its current state, roverlay is capable of creating a complete overlay with metadata and Manifest files by reading R packages. -It's also able to work incrementally, i.e. update an existing R Overlay. +It is also able to work incrementally, i.e. update an existing R Overlay. Most aspects of overlay creation are configurable with text files.
-roverlay is written in python. There's no homepage available, only a +
roverlay is written in python. A homepage is not available, only a git repository that contains the source code.
This document is targeted at
@@ -445,7 +445,7 @@ e.g. configure which R packages will be part of the generated overlay-Depending on what you want to configure, chapters 5-8 are relevant, namely Repositories / Getting Packages, Dependency Rules, Configuration Reference and Field Definition Config.
-There's another chapter that is only interesting for testing, the +
There is another chapter that is only interesting for testing, the Dependency Resolution Console (9), which can be used to interactively test dependency rules.
@@ -456,8 +456,13 @@ references to other chapters (4-8) where required.
It's expected that you already know about R packages (basically a tarball) -and some portage basics, e.g. Depend Atoms and what an overlay is.
+Expected prior knowlegde:
+++
+- a few R package basics
+- portage basics, e.g. Depend Atoms and what an overlay is
+
After installing the dependencies as listed in Prerequisites, -clone the roverlay git repo and then -install roverlay and its python modules:
+After installing the dependencies as listed in Prerequisites, clone the +roverlay git repo and then install roverlay and its python modules:
git clone git://git.overlays.gentoo.org/proj/R_overlay.git @@ -540,8 +544,8 @@ The make targets take care of this.
Warning
-Support for this installation type is limited - it doesn't create/install -any config files!
+Support for this installation type is limited - no config files will be +installed!
roverlay needs a configuration file to run. -If you've installed roverlay with emerge, it will look for the config -file in that order:
+If roverlay has been installed with emerge, it will for the config file in +that order:Otherwise, an example config file is available in the R Overlay src directory -and roverlay will only look for R-overlay.conf in the current directory.
-The config file is a text file with '<option> = <value>' syntax. -Some options accept multiple values (e.g. <option> = file1, file2), in which -case the values have to be enclosed -with quotes (-> <option> = "file1 file2").
+Otherwise, roverlay will only look for R-overlay.conf in the current +directory. An example config file is available in the +R Overlay src directory.
+The config file is a text file with '<option> = <value>' syntax. Some options +accept multiple values (e.g. <option> = file1, file2), in which case the +values have to be enclosed with quotes (-> <option> = "file1 file2").
The following options should be set before running roverlay:
-
There's another option that is useful if you want to create new dependency -rules, LOG_FILE_UNRESOLVABLE, which will write all unresolvable dependencies +
There is another option that is useful for creating new dependency rules, +LOG_FILE_UNRESOLVABLE, which will write all unresolvable dependencies to the specified file (one dependency string per line).
Proceed with Running it if you're fine with the default configuration -and the changes you've already made, otherwise the following chapters are -relevant and should provide you with the knowledge to determine the ideal -configuration.
+Proceed with Running it if the default configuration and the changes already +made are fine, otherwise the following chapters are relevant and should +provide you with the knowledge to determine the ideal configuration.
If you've installed roverlay, you can run it with roverlay, otherwise -you'll have to cd into the R overlay src directory and run ./roverlay.py.
+If roverlay has been installed, you can run it with roverlay, otherwise +cd into the R overlay src directory and run ./roverlay.py.
In any case, the basic roverlay script usage is
roverlay --config <config file> [<options>] [<commands>] @@ -703,13 +706,12 @@ roverlay --config <config file> [<options>] [<commands>]roverlay [<options>] [<commands>]-which will search for the config file -as described in Required configuration steps. -The default command is create, which downloads the R packages (unless -explicitly forbidden to do so) and generates the overlay. This is the -desired behavior in most cases, so simply running roverlay should be -fine. See Basic Implementation Overview if you'd rather like to know -in detail what roverlay does before running it.
+which will search for the config file as described in +Required configuration steps. The default command is create, which +downloads the R packages (unless explicitly forbidden to do so) and generates +the overlay. This is the desired behavior in most cases, so simply running +roverlay should be fine. See Basic Implementation Overview if you want +to know in detail what roverlay does before running it.
roverlay also accepts some options, most notably:
--nosync, --no-sync | |
Don't download R packages. | |
Disable downloading of R packages. | |
--no-incremental | |
--immediate-ebuild-writes | |
Immediately write ebuilds when they're ready. -The default behavior is -to wait for all ebuilds and then write them using ebuild write threads. -The latter one is faster, but consumes more memory since ebuilds must be -kept until all packages have been processed. + | |
Immediately write ebuilds when they are ready. +The default behavior is to wait for all ebuilds and then write them using +ebuild write threads. The latter one is faster, but consumes more memory +since ebuilds must be kept until all packages have been processed. Test results show that memory consumption increases by factor 2 when using the faster write mechanism (at ca. 95% ebuild creation success rate), <<while ebuild write time decreases by ???>>. @@ -748,8 +749,8 @@ the default package repositories. |
Note
---no-incremental doesn't delete an existing overlay, it will merely -ignores and, potentially, overwrites existing ebuilds. +
--no-incremental does not delete an existing overlay, it merely ignores +and, potentially, overwrites existing ebuilds. Use rm -rf <overlay> to do that.
For testing roverlay, these options may be convenient:
@@ -766,7 +767,7 @@ an overlay that is not suitable for production usage.Assuming that you're using the default configuration (where possible) and -the R-packages eclass file, the result should look like:
+Assuming that the default configuration (where possible) and the R-packages +eclass file are used, the result should look like:
<overlay root>/ <overlay root>/eclass @@ -917,7 +918,7 @@ RDEPEND="${DEPEND:-} _UNRESOLVED_PACKAGES=(<unresolvable, but optional dependencies>)-
Some of the variables may be missing if they're not needed.
+Some of the variables may be missing if they are not needed.
A really minimal ebuild would look like:
<ebuild header> @@ -1030,8 +1031,8 @@ if a package has more than one, e.g. one in its Title and one in its5 Repositories / Getting Packages
roverlay is capable of downloading R packages via rsync and http, and is able to use any packages locally available. The method used to get and -use the packages is determined by the concrete type of a repository and -that's what this section is about. It also covers repository configuration.
+use the packages is determined by the concrete type of a repository, +which is the topic of this section. It also covers repository configuration.5.1 A word about repo config files
Repo config files use ConfigParser syntax (known from ini files).
@@ -1116,10 +1117,10 @@ Options with whitespace are not supported.5.3 Getting packages from a repository that supports http only
-This is your best bet if the remote is a repository but doesn't offer -rsync access. Basic digest verification is supported (MD5). -The remote has to have a package list file, typically named -PACKAGES, with a special syntax (debian control file syntax).
+This is your best bet if the remote is a repository but does not offer rsync +access. Basic digest verification is supported (MD5). The remote has to have +a package list file, typically named PACKAGES, +with a special syntax (debian control file syntax).
A package list example, excerpt from omegahat's PACKAGES file (as of Aug 2012):
@@ -1202,15 +1203,15 @@ file would be: src_uri = http://localhost/R-packagesThis will use all packages from /var/local/R-packages and assumes -that they're available via http://localhost/R-packages.
+that they are available via http://localhost/R-packages.A local directory will never be modified.
Important
Using this repo type is not recommended for production usage because -the SRC_URI variable in created ebuilds will be invalid unless you've -downloaded all packages from the same remote in which case -you should consider using one of the websync repo types, -websync_repo and websync_pkglist.
+the SRC_URI variable in created ebuilds will be invalid unless you have +downloaded all packages from the same remote in which case you should +consider using one of the websync repo types, websync_repo and +websync_pkglist.
Please see the default rule files for more extensive examples that cover other aspects like limiting a rule to certain dependency types. -They're found in /etc/roverlay/simple-deprules.d -if you've installed roverlay with emerge, -else in <R Overlay src directory>/simple-deprules.d.
+They can be found in /etc/roverlay/simple-deprules.d if roverlay has been +installed with emerge, else in <R Overlay src directory>/simple-deprules.d.Available dependency types choices are
+Available dependency types are
Note
Technically, this rule syntax can be used to specify rules with -zero or more dependency strings. An empty rule doesn't make much sense, +zero or more dependency strings. An empty rule makes little sense, though.
There's a shorter syntax for selfdeps. -For example, if your OVERLAY_CATEGORY is sci-R, -zoo should be resolved as sci-R/zoo. -This rule can be written as a single word, zoo.
+Selfdeps can be written using a shorter syntax. +For example, if your OVERLAY_CATEGORY is sci-R, zoo should be resolved +as sci-R/zoo. This rule can be written as a single word, zoo.
@@ -1520,14 +1519,14 @@ be replaced by the user's home etc.). Additionaly the value has to be a file (or directory) if it exists.
The following sections will list all config entries.
Name or path of the ebuild executables that is required for (external) +Manifest file creation. A wrong value will cause ebuild creation late, +which is a huge time loss, so make sure that this option is properly set.
+Defaults to ebuild, which should be fine in most cases.
+Set a max. average bandwidth usage in kilobytes per second. +This will pass '--bwlimit=<value>' to all rsync commands.
+Defaults to <not set>, which disables bandwidth limitation.
+Sets the default log level. Log targets that don't have their own log -level set will use this value.
+Sets the default log level. Log targets will use this value unless they +have their own log level.
Defaults to <not set> - all log targets will use their own defaults
Enable/Disable buffering of log entries in memory before they're written +
Enable/Disable buffering of log entries in memory before they are written to the log file. Enabling this reduces I/O blocking, especially when using low log levels. The value must be a bool.
Defaults to enabled.
@@ -1753,14 +1767,6 @@ results.Defaults to <not set>, which disables writing of description data files.
Name or path of the ebuild executables that is required for (external) -Manifest file creation. A wrong value will cause ebuild creation late, -which is a huge time loss, so make sure that this option is properly set.
-Defaults to ebuild, which should be fine in most cases.
-A file where all unresolved dependency strings will be written into @@ -1768,13 +1774,6 @@ on roverlay exit. Primarily useful for creating new rules.
Defaults to <not set>, which disables this feature.
Set a max. average bandwidth usage in kilobytes per second. -This will pass '--bwlimit=<value>' to all rsync commands.
-Defaults to <not set>, which disables bandwidth limitation.
-Each information field has its own section which declares a set of options -and flags. Flags are case-insensitive options without a value - they're +and flags. Flags are case-insensitive options without a value - they are enabled by listing them.
-Known field options:
+Available field options:
- default_value
@@ -1857,7 +1856,7 @@ such a field is found.
Note
-It won't be checked whether a flag is known or not.
+It is not checked whether a flag is known or not.
As previously stated, the DepRes Console is only meant for testing. -It's an interactive console with the following features:
+It is an interactive console with the following features:Initialization may fail if the package's name cannot be understood, which is most likely due to unsupported versioning schemes.
It is then checked whether the newly created PackageInfo p can be part of -the overlay. The overlay may refuse to accept p if there's already an ebuild +the overlay. The overlay may refuse to accept p if an ebuild already exists for it. Otherwise, p is now part of the overlay and has to pass ebuild creation.
Adding new repository types is best done by creating a new repo class that inherits BasicRepo. The table below shows BasicRepo's subclass -awareness (concerning sync) and what may be changed if required. +awareness concerning sync() and what may be changed if required. Most repository types want to define their own sync functionality and can do so by implementing _dosync():