tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: R packages



brook%biology.nmsu.edu@localhost (Brook Milligan) writes:

> I end up using a lot of R packages and tend to find that they are not
> yet in pkgsrc.  Over the years I have either added them or created
> them privately, but that has become tedious enough that I have now
> written a tool to automatically create them (see the current version
> of the man page below).  I would like to commit this as pkgtools/R2pkg
> at some point in the future.  However, I would like to seek some
> consensus on how we wish to handle R packages into the future, because
> this tool will (I hope) make it easier to import and maintain R
> packages within pkgsrc so there may very well be _many_ new ones.

There are a lot of python packages, and a lot of perl packages, so that
seems ok.

Do you think it makes sense to have R2pkg, or to have a mk/r.mk that one
can set a few variables and include?  In other words, do the packages
created with R2pkg have a lot of lines ripe for common subexpression
elimination?

Looking, it seems like it's:

  .include "../../math/R/Makefile.extension"

which seems reasonable.

Of R-geoR/Makefile, I only see HOMEPAGE as something that could be ?= in
the common Makefile:

/usr/pkgsrc/math > egrep HOMEPAGE\|R_PKGNAME R*/Makefile
R-CGIwithR/Makefile:HOMEPAGE=           ${R_HOMEPAGE_BASE}/CGIwithR/
R-CGIwithR/Makefile:R_PKGNAME=          CGIwithR
R-DAAG/Makefile:HOMEPAGE=       ${R_HOMEPAGE_BASE}/DAAG/
R-DAAG/Makefile:R_PKGNAME=      DAAG

Which isn't a big deal.   So if your script makes packages that look
like these, that seems entirely sensible.

> First, all R packages are currently under the "math" category.  I
> propose creating a new category "R" and moving them all.  This will
> better separate R packages (which are in fact not all math related)
> and will prevent overwhelming the legitimate math packages with more R
> packages.

I am generally opposed to renaming.

In this case, it would be like having a python category for all the
py-foo scripts, and then perl, ruby, etc..  I'd say each R-foo package
should go where it should go, in the existing categories.

> Second, I would appreciate help on license handling for R packages.
> Most R packages have an indication of the license that applies.  I
> have built into the tool a map between those descriptions and the
> known licenses in pkgsrc.  In some cases, however, the mapping is
> unclear.  For example, how would "BSD" map given the several variants
> of the BSD license?  And, how would "GPL (>= 2)" map?  Please see the
> current set of known licenses below and offer any suggestions.

If it is not entirely clear what the actual text of the license is from
data in the upstream distribution, upstream is broken and you should
file a bug report.   Someone who says "Permission granted to copy under
the BSD license." is being unclear.

As Thomas says, we denote "GPL Version 2 or later" as gnu-gpl-v2.  "or
later" is perhaps very important to the project, so that it can change
to "GPL Version 3 or later" without needing to get permission from all
contributors (because it already had it).  But the notion that there are
people out there that really object to *using* software under v2, and
are ok with v3, and want to encode this in their mk.conf, really seems
to be a bit hard to believe.  So we just label v2-or-later as v2, and
don't worry about it - if you're ok with v2, you're (correctly) ok, and
if you aren't, IMHO that theoretical person, once real, can volunteer to
deal with this issue :-)

But, if you want to put in

# GNU GPL v2 or later
LICENSE=        gnu-gpl-v2 OR gnu-gpl-v3

that seems entirely appropriate.

> Finally, as the command line arguments are currently set up, the
> normal case is to use both --fetch and --recurse.  Should I make these
> the default cases and have corresponding --no-* options to turn them
> off?

--fetch seems like it should just be on; url2pkg works that way.

--recurse: I can see the point, but it seems like the right thing is to
  default to off, and to fail with a list of the prereqs that are not
  installed.

> ===========================================================================
>                  R license : pkgsrc license
> ------------------------------------------------------------
>         Apache License 2.0 : apache-2.0
>                        BSD : no corresponding pkgsrc license

Confused; if they refuse to fix this would assume original-bsd, since
complying with that results in complying with modified-bsd.

> GNU General Public License : no corresponding pkgsrc license

This is confused -- does not name a license.  Surely they don't mean
version 1.

>                        GPL : no corresponding pkgsrc license

as above.

>                 GPL (>= 2) : gnu-gpl-v2
>                      GPL-2 : gnu-gpl-v2
>              GPL-2 | GPL-3 : gnu-gpl-v2 OR gnu-gpl-v3
>                LGPL (>= 2) : gnu-lgpl-v2
>                   LGPL-2.1 : gnu-lgpl-v2.1
>                        MIT : mit

Confused; there  is no such thing as an "MIT" license.  MIT has used a
number of licenses, and  usually when people say "MIT license" they mean
"X11 license".

>                  Unlimited : no corresponding pkgsrc license

Confused, with vigor.

>               file LICENSE : no corresponding pkgsrc license
> ===========================================================================

So there perhaps one needs to maybe add a license, or (manually) wdiff
to find one that's textually equivalent.

Attachment: pgpkCPQLKoDDf.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index