pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/pkgtools/R2pkg Initial import of the R2pkg package:
details: https://anonhg.NetBSD.org/pkgsrc/rev/68c3ddcebcda
branches: trunk
changeset: 650683:68c3ddcebcda
user: brook <brook%pkgsrc.org@localhost>
date: Sat Apr 25 22:06:34 2015 +0000
description:
Initial import of the R2pkg package:
The R2pkg program, which is modeled after url2pkg, creates a new
pkgsrc package for the corresponding R package. It is intended to
help pkgsrc developers create new R packages quickly and easily.
This package was discussed in a thread beginning with the following:
http://mail-index.netbsd.org/tech-pkg/2015/02/04/msg014227.html
diffstat:
pkgtools/R2pkg/DESCR | 3 +
pkgtools/R2pkg/Makefile | 41 +++++
pkgtools/R2pkg/PLIST | 3 +
pkgtools/R2pkg/files/R2pkg.8 | 149 ++++++++++++++++++++
pkgtools/R2pkg/files/R2pkg.sh | 301 ++++++++++++++++++++++++++++++++++++++++++
5 files changed, 497 insertions(+), 0 deletions(-)
diffs (truncated from 517 to 300 lines):
diff -r fc06f4a83ac5 -r 68c3ddcebcda pkgtools/R2pkg/DESCR
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pkgtools/R2pkg/DESCR Sat Apr 25 22:06:34 2015 +0000
@@ -0,0 +1,3 @@
+The R2pkg program, which is modeled after url2pkg, creates a new
+pkgsrc package for the corresponding R package. It is intended to
+help pkgsrc developers create new R packages quickly and easily.
diff -r fc06f4a83ac5 -r 68c3ddcebcda pkgtools/R2pkg/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pkgtools/R2pkg/Makefile Sat Apr 25 22:06:34 2015 +0000
@@ -0,0 +1,41 @@
+# $NetBSD: Makefile,v 1.1 2015/04/25 22:06:34 brook Exp $
+#
+
+VERS= 0.2
+PKGNAME= R2pkg-${VERS}
+CATEGORIES= pkgtools
+
+MAINTAINER= brook%NetBSD.org@localhost
+HOMEPAGE= # none
+COMMENT= Tool to automate initial steps in building an R package
+LICENSE= modified-bsd
+
+WRKSRC= ${WRKDIR}
+NO_BUILD= yes
+USE_LANGUAGES= # none
+AUTO_MKDIRS= yes
+
+SUBST_CLASSES+= version
+SUBST_STAGE.version= pre-configure
+SUBST_MESSAGE.version= Substituting version in R2pkg.sh.
+SUBST_FILES.version= R2pkg.sh
+SUBST_VARS.version= VERS
+
+SUBST_CLASSES+= tools
+SUBST_STAGE.tools= pre-configure
+SUBST_MESSAGE.tools= Substituting tool locations.
+SUBST_FILES.tools= R2pkg.sh
+SUBST_VARS.tools= MAKE
+
+INSTALLATION_DIRS+= sbin ${PKGMANDIR}/man8
+
+do-extract:
+ ${CP} ${FILESDIR}/R2pkg.sh ${WRKSRC}
+ ${CP} ${FILESDIR}/R2pkg.8 ${WRKSRC}
+
+do-install:
+ ${INSTALL_SCRIPT} ${WRKSRC}/R2pkg.sh ${DESTDIR}${PREFIX}/sbin/R2pkg
+ ${INSTALL_MAN} ${WRKSRC}/R2pkg.8 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man8/R2pkg.8
+
+.include "../../math/R/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff -r fc06f4a83ac5 -r 68c3ddcebcda pkgtools/R2pkg/PLIST
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pkgtools/R2pkg/PLIST Sat Apr 25 22:06:34 2015 +0000
@@ -0,0 +1,3 @@
+@comment $NetBSD: PLIST,v 1.1 2015/04/25 22:06:34 brook Exp $
+man/man8/R2pkg.8
+sbin/R2pkg
diff -r fc06f4a83ac5 -r 68c3ddcebcda pkgtools/R2pkg/files/R2pkg.8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pkgtools/R2pkg/files/R2pkg.8 Sat Apr 25 22:06:34 2015 +0000
@@ -0,0 +1,149 @@
+.\" $NetBSD: R2pkg.8,v 1.1 2015/04/25 22:06:34 brook Exp $
+.\"
+.\" Copyright (c) 2014,2015
+.\" Brook Milligan. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the author nor the names of any contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"
+.Dd April 25, 2015
+.Dt R2pkg 8
+.Os
+.Sh NAME
+.Nm R2pkg
+.Nd create a pkgsrc package for an R package
+.Sh SYNOPSIS
+.Nm
+.Op Fl DVehqv
+.Op Fl E Ar editor
+.Op Ar package
+.Sh DESCRIPTION
+.Nm
+takes the name of an R
+.Ar package
+that should be turned into a
+.Xr pkgsrc 7
+package in the current directory. The generated package includes a
+.Pa Makefile
+and a mostly complete set of files to get the package going. However, the files should be reviewed and perhaps adjusted manually after
+.Nm
+has finished its job. To help with this, the original versions of files created by
+.Nm
+are preserved for reference.
+.Pp
+.Nm
+is intended to help the process of creating a package but is not
+intended to fly on autopilot.
+.Pp
+The
+.Pa Makefile
+contains all of the variables required for an R package, with information being taken from the package's
+.Pa DESCRIPTION
+file on CRAN, which is automatically fetched by
+.Nm .
+Likewise, the
+.Pa DESCR
+file is populated with information from the same file. After
+.Pa Makefile
+and
+.Pa DESCR
+are completed,
+.Nm
+fetches the package and computes its checksum via the
+.Ic makesum
+target. Then the package is extracted via the
+.Ic extract
+target.
+.Pp
+If the user does not supply the
+.Ar package
+on the command line, then
+.Nm
+will prompt for it.
+.Pp
+The following options are available:
+.Bl -tag -width indent
+.It Fl D
+Write the package's description into
+.Pa DESCRIPTION .
+This may be useful for verifying the information obtained from CRAN. However, this file must be removed as it is not part of a
+.Xr pkgsrc 7
+package.
+.It Fl E Ar editor
+Use
+.Ar editor
+instead of the user's default editor.
+.It Fl V
+Print the version.
+.It Fl e
+Do not edit Makefile and DESCR.
+.It Fl h
+Produce a short help message.
+.It Fl q
+Do not produce status messages along the way.
+.It Fl v
+Generate verbose output. This may be repeated to increase the verbosity.
+.El
+.Sh ENVIRONMENT
+The following environment variables affect the execution of
+.Nm :
+.Bl -tag -width BLOCKSIZE
+.It Ev PKGEDITOR, EDITOR
+Editor used for editing
+.Pa Makefile
+and
+.Pa DESCR .
+.It Ev CRAN_URL
+The URL to the CRAN mirror for downloading the package's DESCRIPTION
+file. By default,
+.Pa ftp://cran.r-project.org .
+.El
+.Sh EXAMPLES
+Use the following commands to create a
+.Xr pkgsrc 7
+package for the R package
+.Ar foo :
+.Dl cd pkgsrc/math
+.Dl mkdir R-foo
+.Dl cd R-foo
+.Dl R2pkg foo
+Remember to test the resulting package and remove any extra files created by
+.Nm .
+.Sh BUGS
+.Nm
+does not create a finished package; instead, it facilitates the task.
+However, the resulting files must be reviewed and possibly edited by
+hand. Although dependencies are included in the generated
+.Pa Makefile ,
+they are only comments; no attempt is made to find corresponding
+packages within
+.Xr pkgsrc 7 .
+As a consequence, the category of dependencies is also not determined.
+.Sh SEE ALSO
+.Xr pkgsrc 7
+.Sh AUTHORS
+.Nm
+was written by
+.An Brook Milligan Aq Mt brook%NetBSD.org@localhost .
diff -r fc06f4a83ac5 -r 68c3ddcebcda pkgtools/R2pkg/files/R2pkg.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pkgtools/R2pkg/files/R2pkg.sh Sat Apr 25 22:06:34 2015 +0000
@@ -0,0 +1,301 @@
+#!/bin/sh
+# R2pkg
+#
+# Copyright (c) 2014,2015
+# Brook Milligan. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the author nor the names of any contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+#
+# Create an R package in the current directory
+#
+NAME="R2pkg"
+VERS="@VERS@"
+
+USAGE="${NAME} [-DVehqv] [-E editor] [package] -- create an R package for pkgsrc"
+
+: ${CRAN_URL:=ftp://cran.r-project.org}
+: ${PKGEDITOR:=${EDITOR:=vi}}
+
+# Substituted by pkgsrc at pre-configure time.
+MAKE=@MAKE@
+ECHO=echo
+EDIT=1
+QUIET=0
+VERBOSE=0
+
+while getopts DE:Vehqv f
+do
+ case $f in
+ D) DESCRIPTION=yes;;
+ E) PKGEDITOR=${OPTARG};;
+ V) echo "${NAME} v${VERS}"; exit 0;;
+ e) EDIT=0;;
+ h) echo ${USAGE}; exit 0;;
+ q) ECHO=":"; QUIET=1;;
+ v) VERBOSE=$((${VERBOSE}+1));;
+ \?) echo ${USAGE}; exit 1;;
+ esac
+done
+shift `expr ${OPTIND} - 1`
+
+if [ ${#} -eq 0 ]; then
+ read -p "package: " RPKG TAIL
+ if [ "X${TAIL}" != "X" ]; then
+ echo "Error: multiple package names given."
+ echo ${USAGE}
+ exit 1
+ fi
+elif [ ${#} -eq 1 ]; then
+ RPKG=${1}
+else
+ echo ${USAGE}
+ exit 1
+fi
+
+if [ ${VERBOSE} -eq 0 ]; then
+ STDOUT=">/dev/null 2>&1"
+ STDOUT2=">/dev/null 2>&1"
+elif [ ${VERBOSE} -eq 1 ]; then
+ STDOUT=""
+ STDOUT2=">/dev/null 2>&1"
+else
Home |
Main Index |
Thread Index |
Old Index