pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc R2pkg: update to 0.4.
details: https://anonhg.NetBSD.org/pkgsrc/rev/d4fd27e6157b
branches: trunk
changeset: 397466:d4fd27e6157b
user: brook <brook%pkgsrc.org@localhost>
date: Mon Jun 24 13:46:04 2019 +0000
description:
R2pkg: update to 0.4.
Changes since 0.3:
* Fix recursion.
* Add both c and c++ to USE_LANGUAGES.
* Add maintainer email handling (-M).
* Use buildlink3.mk files for dependencies when available.
diffstat:
doc/CHANGES-2019 | 3 +-
pkgtools/R2pkg/Makefile | 4 +-
pkgtools/R2pkg/files/R2pkg.8 | 23 ++++++-
pkgtools/R2pkg/files/R2pkg.sh | 139 ++++++++++++++++++++++++++++-------------
pkgtools/R2pkg/files/RELEASE | 30 +++++++++
5 files changed, 149 insertions(+), 50 deletions(-)
diffs (truncated from 389 to 300 lines):
diff -r 9897e3ce6284 -r d4fd27e6157b doc/CHANGES-2019
--- a/doc/CHANGES-2019 Mon Jun 24 12:05:36 2019 +0000
+++ b/doc/CHANGES-2019 Mon Jun 24 13:46:04 2019 +0000
@@ -1,4 +1,4 @@
-$NetBSD: CHANGES-2019,v 1.2670 2019/06/24 11:35:45 jperkin Exp $
+$NetBSD: CHANGES-2019,v 1.2671 2019/06/24 13:46:04 brook Exp $
Changes to the packages collection and infrastructure in 2019:
@@ -4434,3 +4434,4 @@
Added games/oshu version 2.0.0 [nia 2019-06-23]
Updated emulators/mame to 0.210 [wiz 2019-06-23]
mk/bsd.pkg.mk: started freeze for pkgsrc-2019Q2 branch [jperkin 2019-06-24]
+ Updated pkgtools/R2pkg to 0.4 [brook 2019-06-24]
diff -r 9897e3ce6284 -r d4fd27e6157b pkgtools/R2pkg/Makefile
--- a/pkgtools/R2pkg/Makefile Mon Jun 24 12:05:36 2019 +0000
+++ b/pkgtools/R2pkg/Makefile Mon Jun 24 13:46:04 2019 +0000
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.2 2017/07/18 17:24:31 brook Exp $
+# $NetBSD: Makefile,v 1.3 2019/06/24 13:46:04 brook Exp $
#
-VERS= 0.3
+VERS= 0.4
PKGNAME= R2pkg-${VERS}
CATEGORIES= pkgtools
diff -r 9897e3ce6284 -r d4fd27e6157b pkgtools/R2pkg/files/R2pkg.8
--- a/pkgtools/R2pkg/files/R2pkg.8 Mon Jun 24 12:05:36 2019 +0000
+++ b/pkgtools/R2pkg/files/R2pkg.8 Mon Jun 24 13:46:04 2019 +0000
@@ -1,6 +1,6 @@
-.\" $NetBSD: R2pkg.8,v 1.4 2017/07/18 18:44:06 wiz Exp $
+.\" $NetBSD: R2pkg.8,v 1.5 2019/06/24 13:46:04 brook Exp $
.\"
-.\" Copyright (c) 2014,2015,2016,2017
+.\" Copyright (c) 2014,2015,2016,2017,2018,2019
.\" Brook Milligan. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -38,6 +38,7 @@
.Nm
.Op Fl DehqruVv
.Op Fl E Ar editor
+.Op Fl M Ar maintainer_email
.Op Fl R Ar dependency_file
.Op Ar package
.Sh DESCRIPTION
@@ -105,6 +106,8 @@
Do not edit Makefile and DESCR.
.It Fl h
Produce a short help message.
+.It Fl M Ar maintainer_email
+Set the maintainer email address for any newly created packages.
.It Fl q
Do not produce status messages along the way.
.It Fl R Ar dependency_file
@@ -182,6 +185,22 @@
Remember to test the resulting package and remove any extra files
created by
.Nm .
+Adding
+.Fl r
+to the command line will also recursively create all necessary
+dependencies in the
+.Pa wip
+directory.
+.Pp
+Use the following commands to update a
+.Xr pkgsrc 7
+package (and dependencies) for the R package
+.Ar foo :
+.Dl cd pkgsrc/math/R-foo
+.Dl R2pkg -r -u
+Packages built for any new dependencies will be added to the
+.Pa wip
+directory.
.Sh SEE ALSO
.Xr pkgsrc 7
.Sh AUTHORS
diff -r 9897e3ce6284 -r d4fd27e6157b pkgtools/R2pkg/files/R2pkg.sh
--- a/pkgtools/R2pkg/files/R2pkg.sh Mon Jun 24 12:05:36 2019 +0000
+++ b/pkgtools/R2pkg/files/R2pkg.sh Mon Jun 24 13:46:04 2019 +0000
@@ -1,8 +1,7 @@
#!/bin/sh
-# $NetBSD: R2pkg.sh,v 1.3 2018/01/13 09:10:33 jperkin Exp $
-# R2pkg
+# $NetBSD: R2pkg.sh,v 1.4 2019/06/24 13:46:04 brook Exp $
#
-# Copyright (c) 2014,2015,2016,2017
+# Copyright (c) 2014,2015,2016,2017,2018,2019
# Brook Milligan. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -35,7 +34,9 @@
NAME="R2pkg"
VERS="@VERS@"
-USAGE="${NAME} [-DVehqrv] [-E editor] [-R dependency_file] [package] -- create an R package for pkgsrc"
+R2PKG=${0}
+
+USAGE="${NAME} [-DVehqrv] [-E editor] [-M maintainer] [-R dependency_file] [package] -- create an R package for pkgsrc"
: ${CRAN_URL:=ftp://cran.r-project.org}
: ${PKGEDITOR:=${EDITOR:=vi}}
@@ -43,6 +44,7 @@
# Substituted by pkgsrc at pre-configure time.
MAKE=@MAKE@
EDIT=1
+MAINTAINER_EMAIL=pkgsrc-users%NetBSD.org@localhost
QUIET=0
RECURSIVE=0
TOP_LEVEL=1
@@ -51,18 +53,19 @@
DESCRIPTION_CONNECTION=connection
-while getopts DE:R:Vehqruv f
+while getopts DE:M:R:Vehqruv f
do
case $f in
D) DESCRIPTION=yes; DESCRIPTION_CONNECTION="'DESCRIPTION'"; ARGS="${ARGS} -D";;
E) PKGEDITOR=${OPTARG}; ARGS="${ARGS} -E ${PKGEDITOR}";;
+ M) MAINTAINER_EMAIL=${OPTARG}; ARGS="${ARGS} -M ${MAINTAINER_EMAIL}";;
R) DEPENDENCY_LIST=${OPTARG}; RECURSIVE=1; TOP_LEVEL=0; ARGS="${ARGS} -R ${DEPENDENCY_LIST}";;
V) echo "${NAME} v${VERS}"; exit 0;;
e) EDIT=0; ARGS="${ARGS} -e";;
h) echo ${USAGE}; exit 0;;
q) QUIET=1; ARGS="${ARGS} -q";;
r) RECURSIVE=1; RECURSIVE_MESSAGE=1; ARGS="${ARGS} -r";;
- u) UPDATE=1;;
+ u) UPDATE=1; ARGS="${ARGS} -u";;
v) VERBOSE=$((${VERBOSE}+1)); ARGS="${ARGS} -v";;
\?) echo ${USAGE}; exit 1;;
esac
@@ -149,6 +152,7 @@
preserve_original_files ()
{
[ -f DESCR ] && mv DESCR DESCR.orig
+ [ -f Makefile ] && grep -e "MAINTAINER=" Makefile > MAINTAINER
[ -f Makefile ] && mv Makefile Makefile.orig
[ -f distinfo ] && mv distinfo distinfo.orig
}
@@ -209,6 +213,19 @@
version <- function(s) field('R_PKGVER',one.line(s))
comment <- function(s) field('COMMENT',one.line(s))
license <- function(s) field(todo.license(s),pkgsrc.license(s))
+maintainer <- function(email)
+ {
+ if (file.exists('MAINTAINER'))
+ {
+ x <- scan('MAINTAINER','character',quiet=TRUE)
+ if (length(x) == 2)
+ email = x[2]
+ else
+ message('WARNING: previous MAINTAINER is ignored')
+ }
+ email <- paste0('MAINTAINER= ',email)
+ email
+ }
categories <- function() paste('CATEGORIES=',paste(basename(dirname(getwd())),'R'),sep=' ')
description <- function(s) strwrap(s,width=71)
@@ -244,7 +261,8 @@
depends <- function(s1,s2)
{
imports <- make.imports(s1,s2)
- DEPENDS <- list()
+ DEPENDS <- data.frame()
+ BUILDLINK3.MK <- data.frame()
if (length(imports) > 0)
{
for (i in 1:length(imports))
@@ -252,46 +270,85 @@
dependency <- make.dependency(imports[i])
depends <- dependency[1]
depends.pkg <- Sys.glob(paste('../../*/R-',depends,sep=''))
- if (length(depends.pkg) != 1) # a unique dependency cannot be found
+ if (length(depends.pkg) == 0) # a dependency cannot be found
{
+ message('WARNING: creating the dependency',depends)
if (${RECURSIVE})
{
- dependency.dir <- paste('../../R/R-',depends,sep='')
+ dependency.dir <- paste('../../wip/R-',depends,sep='')
dir.create(path=dependency.dir,recursive=TRUE)
- error <- system(paste('(cd',dependency.dir,'&& R2pkg.sh ${ARGS}',depends,')'))
+ error <- system(paste('(cd',dependency.dir,'&& ${R2PKG} ${ARGS}',depends,')'))
if (error != 0)
file.remove(dependency.dir)
}
}
depends.pkg <- Sys.glob(paste('../../*/R-',depends,sep=''))
- if (length(depends.pkg) == 1) # a unique dependency found
+ if (length(depends.pkg) == 0) # no dependency was created
+ message('WARNING: the dependency',depends,'does not exist')
+ else if (length(depends.pkg) == 1) # a unique dependency found
{
- depends.pkg.fullname <- system(paste('cd',depends.pkg,'&& bmake show-var VARNAME=PKGNAME'),intern=TRUE)
- depends.pkg.name <- sub('^(.*)-([^-]*)$','\\\\1',depends.pkg.fullname)
- depends.pkg.vers <- sub('^(.*)-([^-]*)$','\\\\2',depends.pkg.fullname)
- if (length(dependency) == 2)
- depends.vers <- dependency[2]
- else
- depends.vers <- paste('>=',depends.pkg.vers,sep='')
- depends.line <- paste('DEPENDS+=\tR-',depends,depends.vers,':',depends.pkg,sep='')
- if (length(dependency) == 2)
- depends.line <- paste(depends.line,' # XXX - found ',depends.pkg.fullname,' (',depends.pkg,')',sep='')
+ fields <- strsplit(depends.pkg,'/',fixed=TRUE)
+ depends.dir <- fields[[1]][3]
+ buildlink3.mk <- paste(depends.pkg,'/buildlink3.mk',sep='')
+ if (file.exists(buildlink3.mk))
+ {
+ buildlink3.line <- paste('.include "',buildlink3.mk,'"',sep='')
+ BUILDLINK3.MK <- rbind(BUILDLINK3.MK,data.frame(key=depends.dir,value=buildlink3.line))
+ }
+ else
+ {
+ depends.pkg.fullname <- system(paste('cd',depends.pkg,'&& bmake show-var VARNAME=PKGNAME'),intern=TRUE)
+ depends.pkg.name <- sub('^(.*)-([^-]*)$','\\\\1',depends.pkg.fullname)
+ depends.pkg.vers <- sub('^(.*)-([^-]*)$','\\\\2',depends.pkg.fullname)
+ if (length(dependency) == 2)
+ depends.vers <- dependency[2]
+ else
+ depends.vers <- paste('>=',depends.pkg.vers,sep='')
+ depends.line <- paste('DEPENDS+=\tR-',depends,depends.vers,':',depends.pkg,sep='')
+ depends.line <- paste(depends.line,' # XXX - found ',depends.pkg.fullname,' (',depends.pkg,')',sep='')
+ DEPENDS <- rbind(DEPENDS,data.frame(key=depends.dir,value=depends.line))
+ }
}
- else
+ else # more than 1 dependency found
{
+ msg <- paste('WARNING: too many dependencies found for ',depends,':',sep='')
+ for (pkg in depends.pkg)
+ msg <- paste(msg,' ',pkg,sep='')
+ message(msg)
depends.vers <- ifelse(length(dependency) == 2, dependency[2], '>=???')
depends.vers <- trim.space(depends.vers)
- depends.line <- paste('DEPENDS+=\tR-',depends,depends.vers,':../../R/R-',depends,sep='')
+ depends.line <- paste('DEPENDS+=\tR-',depends,depends.vers,':../../???/R-',depends,sep='')
+ depends.line <- paste(depends.line,' # XXX - found',sep='')
+ for (pkg in depends.pkg)
+ depends.line <- paste(depends.line,' ',pkg,sep='')
+ DEPENDS <- rbind(DEPENDS,data.frame(key='???',value=depends.line))
}
- DEPENDS <- list(DEPENDS,depends.line)
- new.depends.pkg <- Sys.glob(paste('../../R/R-',depends,sep=''))
+ new.depends.pkg <- Sys.glob(paste('../../wip/R-',depends,sep=''))
if (length(new.depends.pkg) > 0)
system(paste('echo',depends,'${RPKG} >> ${DEPENDENCY_LIST}'))
}
}
- if (length(DEPENDS) > 0)
- DEPENDS <- append(DEPENDS,'')
- DEPENDS
+ if (nrow(DEPENDS) > 0)
+ {
+ key <- as.vector(DEPENDS[,1])
+ value <- as.vector(DEPENDS[,2])
+ key <- order(key,value)
+ DEPENDS <- as.list(value[key])
+ if (length(DEPENDS) > 0)
+ DEPENDS <- append(DEPENDS,'')
+ }
+ else
+ DEPENDS = list()
+ if (nrow(BUILDLINK3.MK) > 0)
+ {
+ key <- as.vector(BUILDLINK3.MK[,1])
+ value <- as.vector(BUILDLINK3.MK[,2])
+ key <- order(key,value)
+ BUILDLINK3.MK <- as.list(value[key])
+ }
+ else
+ BUILDLINK3.MK <- list()
+ list(DEPENDS,BUILDLINK3.MK)
}
use.languages <- function(s1,s2)
@@ -300,22 +357,12 @@
s <- paste(s1,s2)
Rcpp <- grepl('Rcpp',s)
if (Rcpp)
- USE_LANGUAGES <- append(USE_LANGUAGES,list('USE_LANGUAGES+= c++'))
+ USE_LANGUAGES <- append(USE_LANGUAGES,list('USE_LANGUAGES+= c c++'))
if (length(USE_LANGUAGES) > 0)
USE_LANGUAGES <- append(USE_LANGUAGES,'')
USE_LANGUAGES
}
-buildlink <- function(s1,s2)
-{
- BUILDLINK <- list()
- s <- paste(s1,s2)
- Rcpp <- grepl('Rcpp',s)
- if (Rcpp)
- BUILDLINK <- append(BUILDLINK,'.include "../../devel/R-Rcpp/buildlink3.mk"')
- BUILDLINK
-}
-
Home |
Main Index |
Thread Index |
Old Index