public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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