From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:master commit in: /, simple-deprules.d/
Date: Fri, 29 Jun 2012 22:48:23 +0000 (UTC) [thread overview]
Message-ID: <1341009745.2228865f328434a781ab91c2e8a81daac5ff8e94.dywi@gentoo> (raw)
commit: 2228865f328434a781ab91c2e8a81daac5ff8e94
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Fri Jun 29 22:42:25 2012 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Fri Jun 29 22:42:25 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=2228865f
config files update
* simple-deprules.conf explains the usage of such files
* rules are in simple-deprules.d/ now
* added rule files to R-overlay.conf
modified: R-overlay.conf
modified: simple-deprules.conf
new file: simple-deprules.d/R
new file: simple-deprules.d/other
new file: simple-deprules.d/selfdeps
---
R-overlay.conf | 6 ++-
simple-deprules.conf | 150 +++++++++++++++++++++++++++++++++++++-------
simple-deprules.d/R | 8 +++
simple-deprules.d/other | 1 +
simple-deprules.d/selfdeps | 8 +++
5 files changed, 148 insertions(+), 25 deletions(-)
diff --git a/R-overlay.conf b/R-overlay.conf
index b6eb8d9..7c06d9f 100644
--- a/R-overlay.conf
+++ b/R-overlay.conf
@@ -8,7 +8,11 @@ LOG_FILE_UNRESOLVABLE = log/dep_unresolvable.log
# SIMPLE_RULES_FILE lists the rule files for dependency resolution
# SIMPLE_RULES_FILE ::= "<file>[ <file>]"
-SIMPLE_RULES_FILE = "simple-deprules.conf"
+SIMPLE_RULES_FILE = "
+simple-deprules.d/R
+simple-deprules.d/selfdeps
+simple-deprules.d/other
+"
OVERLAY_NAME = ROverlay
OVERLAY_DIR = overlay-root
diff --git a/simple-deprules.conf b/simple-deprules.conf
index d0d7321..b8fc3b4 100644
--- a/simple-deprules.conf
+++ b/simple-deprules.conf
@@ -1,24 +1,62 @@
+#! NOPARSE
+#
# simple dependency rules file
-# you can specify single and multiline rules here
+#
+# This file has been replaced by the dep rule files in simple-deprules.d/,
+# but explains the syntax.
+#
+# === Syntax ===
+#
+# You can specify single and multiline rules here,
+# the basic syntax is "<portage identifier> <matches> <keyword(s)>".
+#
+#
+# There are two types of dependency string matching:
+# standard : a dep string has to match exactly
+# "R(>=2.15)" != "R" => UNRESOLVABLE
+#
+# fuzzy : the resolver will try to find a match using string
+# interpolation/metrics
+# "R(>=2.15)" ~ "R" => ">=dev-lang/R-2.15"
+# "R(!=2.15)" ~ "R" => "(!dev-lang/R-2.15 dev-lang/R)"
+# "R(>=2.15)" % "R" => <ignored> (% is fuzzy ignore)
+#
#
# a single line entry looks like
-## <portage package> :: <dependency string>
+## (1) <portage package> :: <dependency string> (standard simple dep)
+## (2) ~<portage package> :: <dependency string> (fuzzy simple dep)
+## (3) <dependency string> (standard selfdep)
+## (4) ~<dependency string> (fuzzy selfdep)
+## (5) ! :: <dependency string> (standard ignored dep)
+## (6) % :: <dependency string> (fuzzy ignored dep)
+#
+# Dependency strings are case-insensitive.
+#
+# (3) and (4) are shortcuts for [~]<overlay category>/<dep> :: <dep>,
+# e.g. "fftw" matches "fftw" and resolves to "sci-R/fftw".
+# This is useful 'cause you don't have to use a hardcoded overlay category
+# here.
+# (5) and (6) are ways to define deps that should be ignored
+# (=resolved to nothing). They're identical to (1)/(2), but use ! / % as
+# portage package.
+#
#
# a multiline entry looks like
-## <portage package> {
+## [~]<portage package> {
## <dependency string 1>
## <dependency string 2>
## ...
## <dependency string n>
## }
#
-# ignored dependency strings can be written with '!' as portage package, e.g.
-## ! :: dev-lang/R
+# selfdeps cannot be declared in a multiline rule
#
# The precedence order of the rules in this file is
## single line ignore > single line > multi line ignore > multi line
+#### this has to be fixed in the dep rule reader
#
-# Note that you cannot write comments in a multiline rule, writing
+# Note:
+# * you cannot write comments in a multiline rule, writing
## dev-lang/R {
## # the following dep should resolve to R
## R(>= 2.15.0)
@@ -26,32 +64,96 @@
# means that both strings '# the following dep should resolve to R' and
# 'R(>= 2.15.0)' resolve to 'dev-lang/R'!
#
+# * compound portage dependency statements (man 5 ebuild) are supported,
+# but only in standard simple deps, e.g.
+## || ( <dev-lang/R-2.14.0 >dev-lang/R-2.14.0 ) :: R (!= 2.14.0)
+#
+#
-# the entries in this file are used to test ebuild creation of seewave_1.6.3.tar.gz.
+# === Examples ===
-# provided by eclass
-! {
- R(>= 2.15.0)
-}
+# == single line entries ==
-# used to test rule priorities
->=dev-lang/R-2.15.0 {
- R(>= 2.15.0)
-}
+# = standard simple dep =
+# this rule matches 'R (>= 2.15.0)' and resolves it as 'dev-lang/R-2.15.0'
+dev-lang/R-2.15.0 :: R (>= 2.15.0)
+
+# = fuzzy simple dep =
+
+# this rule matches
+## (a) R <version modifier?> <version>
+## (b) R (<version modifier?> <version>)
+## (c) R [<version modifier?> <version>]
+## (d) R {<version modifier?> <version>}
+## (e) R
+# variant (a) is whitespace sensitive (>= 1 whitespace char between R and
+# the version modifier/version), the others ignore all whitespace chars.
+# variant (e) is the standard simple rule behaviour.
+#
+# the dep string is then resolved as <version modifier?>dev-lang/R-<version>
+#
+# version modifier is optional and can be one out of {>=, <=, >, <, !=, =, ! },
+# where ! / != are being resolved a 'specific version is forbidden'.
+# '>=' is assumed as version modifier if it is left out and a specific version
+# is required.
+#
+# examples matches:
+# (a) r 2.13 -> >=dev-lang/R-2.13
+# (b) R(>= 2.14) -> >=dev-lang/R-2.14
+# (c) R [<2.10] -> <dev-lang/R-2.10
+# (d) r{ !2.12 } -> ( !=dev-lang/R-2.12 dev-lang/R )
+# (e) R -> dev-lang/R
+#
+~dev-lang/R :: R
-# for R_SUGGESTS
-sci-R/sound :: sound
+# = standard selfdep =
+# resolves "tuneR","tuner",.. as "sci-R/tuneR"
+tuneR
-sci-libs/fftw :: FFTW
+# = fuzzy selfdep =
+# * see fuzzy simple dep
+# example match: resolves "zoo 1.10" as ">=sci-R/zoo-1.10"
+~zoo
-media-libs/flac :: FLAC
+# = standard ignored dep =
+# ignores "R"
+! :: R
+# = fuzzy ignored dep =
+# ignores everything that fuzzy-matches R (see fuzzy simple dep)
+% :: R
-! :: rgl
-! :: rpanel
+# == multi line entries ==
+# = simple multiline rule =
+# matches "R (>= 2.15)", "R" and resolves them as dev-lang/R
+dev-lang/R {
+ R (>= 2.15)
+ R
+}
+
+# = fuzzy multiline rule =
+~dev-lang/R {
+ R
+ the R programming language
+}
+
+# = ignored dep multiline rule =
+# equals ! :: see README
! {
- tcltk
- tuneR
- audio
+ see README
}
+
+# = fuzzy ignored dep multiline rule =
+# equals % :: R
+% {
+ R
+}
+
+# === Extra ===
+
+# There's a special keyword that tells the rule reader to stop parsing,
+# see line #1. It has to be exactly '#! NOPARSE' or '#! BREAK', with no
+# additional content at the end of the line.
+#! NOPARSE
+#! BREAK
diff --git a/simple-deprules.d/R b/simple-deprules.d/R
new file mode 100644
index 0000000..0bdba02
--- /dev/null
+++ b/simple-deprules.d/R
@@ -0,0 +1,8 @@
+# R versions available in portage:
+# 2.10.1, 2.14.1, 2.14.2, 2.15.0, 2.15.1
+
+# R is always compiled with '--enabled-R-shlib'; from: 'Rserve_0.6.8'
+! :: R must be compiled with --enable-R-shlib if the server is to be built
+
+# using fuzzy dep matches
+~dev-lang/R :: R
diff --git a/simple-deprules.d/other b/simple-deprules.d/other
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/simple-deprules.d/other
@@ -0,0 +1 @@
+
diff --git a/simple-deprules.d/selfdeps b/simple-deprules.d/selfdeps
new file mode 100644
index 0000000..d3306ad
--- /dev/null
+++ b/simple-deprules.d/selfdeps
@@ -0,0 +1,8 @@
+~fftw
+~sound
+~audio
+~rgl
+~rpanel
+~tuneR
+~flac
+~tcltk
reply other threads:[~2012-06-29 22:49 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1341009745.2228865f328434a781ab91c2e8a81daac5ff8e94.dywi@gentoo \
--to=dywi@mailerd.de \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox