From 1a814660a94b955bbb84a747a902c161918becba Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Fri, 7 Feb 2014 15:57:15 -0500 Subject: [PATCH] add support for using system tre on f21+, el7+ --- R-3.0.2-system-tre.patch | 112 +++++++++++++++++++++++++++++++++++++++ R.spec | 30 ++++++++++- 2 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 R-3.0.2-system-tre.patch diff --git a/R-3.0.2-system-tre.patch b/R-3.0.2-system-tre.patch new file mode 100644 index 0000000..60aab47 --- /dev/null +++ b/R-3.0.2-system-tre.patch @@ -0,0 +1,112 @@ +diff -up R-3.0.2/configure.ac.system-tre R-3.0.2/configure.ac +--- R-3.0.2/configure.ac.system-tre 2014-02-04 18:14:04.233778538 -0500 ++++ R-3.0.2/configure.ac 2014-02-04 18:14:52.635733566 -0500 +@@ -420,6 +420,10 @@ AC_ARG_WITH([system-pcre], + [AS_HELP_STRING([--with-system-pcre],[use system PCRE library (if available) @<:@no@:>@])], + [R_ARG_USE_SYSTEM(pcre)], + [use_system_pcre=no]) ++AC_ARG_WITH([system-tre], ++[AS_HELP_STRING([--with-system-tre],[use system tre library (if available) @<:@no@:>@])], ++[R_ARG_USE_SYSTEM(tre)], ++[use_system_tre=no]) + AC_ARG_WITH([system-xz], + [AS_HELP_STRING([--with-system-xz],[use system xz (lzma) library (if available) @<:@yes@:>@])], + [R_ARG_USE_SYSTEM(xz)], +@@ -2221,6 +2225,9 @@ R_LZMA + ## PCRE headers and libraries. + R_PCRE + ++## tre headers and libraries. ++R_TRE ++ + ## POSIX times. + R_SYS_POSIX_LEAPSECONDS + +diff -up R-3.0.2/m4/R.m4.system-tre R-3.0.2/m4/R.m4 +--- R-3.0.2/m4/R.m4.system-tre 2014-02-04 18:15:08.196719109 -0500 ++++ R-3.0.2/m4/R.m4 2014-02-04 18:27:32.854028384 -0500 +@@ -3150,6 +3150,26 @@ fi + AM_CONDITIONAL(BUILD_BZLIB, [test "x${have_bzlib}" = xno]) + ])# R_BZLIB + ++## R_TRE ++## ------- ++## Try finding tre library and headers. ++## We check that both are installed, ++AC_DEFUN([R_TRE], ++[if test "x${use_system_tre}" = xyes; then ++ AC_CHECK_LIB(tre, tre_regncompb, [have_tre=yes], [have_tre=no]) ++ if test "${have_tre}" = yes; then ++ AC_CHECK_HEADERS(tre/tre.h, [have_tre=yes], [have_tre=no]) ++ fi ++if test "x${have_tre}" = xyes; then ++ AC_DEFINE(HAVE_TRE, 1, [Define if your system has tre.]) ++ LIBS="-ltre ${LIBS}" ++fi ++else ++ have_tre="no" ++fi ++AM_CONDITIONAL(BUILD_TRE, [test x${have_tre} != xyes]) ++])# R_TRE ++ + ## R_LZMA + ## ------- + ## Try finding liblzma library and headers. +diff -up R-3.0.2/src/extra/Makefile.in.system-tre R-3.0.2/src/extra/Makefile.in +--- R-3.0.2/src/extra/Makefile.in.system-tre 2014-02-04 18:31:50.263790068 -0500 ++++ R-3.0.2/src/extra/Makefile.in 2014-02-04 18:32:11.792770146 -0500 +@@ -22,7 +22,7 @@ LIBPCRE =@BUILD_PCRE_TRUE@ make.pcre + LIBZ =@BUILD_ZLIB_TRUE@ make.zlib + LIBXDR =@BUILD_XDR_TRUE@ make.xdr + LIBINTL =@BUILD_LIBINTL_TRUE@ make.intl +-LIBTRE = make.tre ++LIBTRE =@BUILD_TRE_TRUE@ make.tre + LIBXZ =@BUILD_XZ_TRUE@ make.xz + EXTRAS = $(RBLAS) $(LIBBZ2) $(LIBPCRE) $(LIBZ) $(LIBXDR) $(LIBINTL) $(LIBTRE) $(LIBXZ) + +diff -up R-3.0.2/src/extra/tre/Makefile.in.system-tre R-3.0.2/src/extra/tre/Makefile.in +--- R-3.0.2/src/extra/tre/Makefile.in.system-tre 2014-02-04 18:29:54.812896929 -0500 ++++ R-3.0.2/src/extra/tre/Makefile.in 2014-02-04 18:31:15.046822660 -0500 +@@ -33,7 +33,7 @@ libtre_a_SOURCES = $(SOURCES) + libtre_a_OBJECTS = $(OBJECTS) + + +-all: R ++all: @BUILD_TRE_TRUE@ R + + Makefile: $(srcdir)/Makefile.in \ + $(top_builddir)/config.status \ +@@ -44,9 +44,9 @@ Makedeps: Makefile $(DEPENDS) + @cat $(DEPENDS) >> Makefile + @touch $@ + +-R: Makefile +- @$(MAKE) Makedeps +- @$(MAKE) $(noinst_LIBRARIES) ++R: Makefile @BUILD_TRE_TRUE@ ++ @BUILD_TRE_TRUE@ @$(MAKE) Makedeps ++ @BUILD_TRE_TRUE@ @$(MAKE) $(noinst_LIBRARIES) + + libtre.a: $(libtre_a_OBJECTS) + rm -f $@ +diff -up R-3.0.2/src/main/Makefile.in.system-tre R-3.0.2/src/main/Makefile.in +--- R-3.0.2/src/main/Makefile.in.system-tre 2014-02-04 18:28:02.924000533 -0500 ++++ R-3.0.2/src/main/Makefile.in 2014-02-04 18:29:06.677941495 -0500 +@@ -69,7 +69,7 @@ DISTFILES = Makefile.in Makefile.win \ + ZLIB_CPPFLAGS = @BUILD_ZLIB_TRUE@ -I$(top_srcdir)/src/extra/zlib + BZLIB_CPPFLAGS = @BUILD_BZLIB_TRUE@ -I$(top_srcdir)/src/extra/bzip2 + PCRE_CPPFLAGS = @BUILD_PCRE_TRUE@ -I$(top_srcdir)/src/extra/pcre +-TRE_CPPFLAGS = -I$(top_srcdir)/src/extra ++TRE_CPPFLAGS = @BUILD_TRE_TRUE@ -I$(top_srcdir)/src/extra + XDR_CPPFLAGS = @BUILD_XDR_TRUE@ -I$(top_srcdir)/src/extra/xdr + @BUILD_XDR_FALSE@XDR_CPPFLAGS = @TIRPC_CPPFLAGS@ + XZ_CPPFLAGS = @BUILD_XZ_TRUE@ -I$(top_srcdir)/src/extra/xz/api +@@ -84,7 +84,7 @@ ALL_CPPFLAGS = $(ZLIB_CPPFLAGS) $(BZLIB_ + R_ZLIBS = @BUILD_ZLIB_TRUE@ ../extra/zlib/libz.a + R_BZLIBS = @BUILD_BZLIB_TRUE@ ../extra/bzip2/libbz2.a + R_PCRE = @BUILD_PCRE_TRUE@ ../extra/pcre/libpcre.a +-R_TRE = ../extra/tre/libtre.a ++R_TRE = @BUILD_TRE_TRUE@ ../extra/tre/libtre.a + R_XDR = @BUILD_XDR_TRUE@ ../extra/xdr/libxdr.a + R_XZ = @BUILD_XZ_TRUE@ ../extra/xz/liblzma.a + R_LIBINTL = @BUILD_LIBINTL_TRUE@ ../extra/intl/libintl.a diff --git a/R.spec b/R.spec index b14fcc6..081748b 100644 --- a/R.spec +++ b/R.spec @@ -7,6 +7,16 @@ # Assume not modern. Override if needed. %global modern 0 +%global system_tre 0 +# We need to use system tre on F21+/RHEL7 +%if 0%{?fedora} >= 21 +%global system_tre 1 +%endif + +%if 0%{?rhel} >= 7 +%global system_tre 1 +%endif + %if 0%{?fedora} %global modern 1 %endif @@ -17,7 +27,7 @@ Name: R Version: 3.0.2 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A language for data analysis and graphics URL: http://www.r-project.org Source0: ftp://cran.r-project.org/pub/R/src/base/R-3/R-%{version}.tar.gz @@ -25,6 +35,7 @@ Source1: macros.R Source2: R-make-search-index.sh # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679180 Patch0: R-3.0.1-arm-compile-fix.patch +Patch1: R-3.0.2-system-tre.patch License: GPLv2+ Group: Applications/Engineering BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -38,6 +49,10 @@ BuildRequires: java %else BuildRequires: java-1.4.2-gcj-compat %endif +%if %{system_tre} +BuildRequires: tre-devel +BuildRequires: autoconf, automake, libtool +%endif BuildRequires: lapack-devel BuildRequires: libSM-devel, libX11-devel, libICE-devel, libXt-devel BuildRequires: bzip2-devel, libXmu-devel, cairo-devel, libtiff-devel @@ -243,6 +258,9 @@ from the R project. This package provides the static libRmath library. %prep %setup -q %patch0 -p1 -b .armfix +%if %{system_tre} +%patch1 -p1 -b .system-tre +%endif # Filter false positive provides. cat < %{name}-prov @@ -262,6 +280,10 @@ EOF %define __perl_requires %{_builddir}/R-%{version}/%{name}-req chmod +x %{__perl_requires} +%if %{system_tre} +autoreconf -ifv -I m4 +%endif + %build # Add PATHS to Renviron for R_LIBS_SITE echo 'R_LIBS_SITE=${R_LIBS_SITE-'"'/usr/local/lib/R/site-library:/usr/local/lib/R/library:%{_libdir}/R/library:%{_datadir}/R/library'"'}' >> etc/Renviron.in @@ -303,6 +325,9 @@ esac export FCFLAGS="%{optflags}" ( %configure \ +%if %{system_tre} + --with-system-tre \ +%endif --with-system-zlib --with-system-bzlib --with-system-pcre \ --with-lapack \ --with-blas \ @@ -819,6 +844,9 @@ R CMD javareconf \ %postun -n libRmath -p /sbin/ldconfig %changelog +* Fri Feb 7 2014 Tom Callaway - 3.0.2-5 +- add support for system tre (f21+, rhel 7+) + * Fri Feb 7 2014 Orion Poplawski - 3.0.2-4 - Use BR java