#
# Conditional build
%bcond_without tcl # disable tcl support
-%bcond_without tests # do not run "make check"
+%bcond_without tests # do not run "make check"
+%bcond_without docs # do not build documentation
+#
+# NOTE:
+# - /etc/localtime must be present for tests to work
#
# TODO:
# - script for rpm to autoprovides/autorequires R internals
#
-%define KernSmooth_version 2.22r22
-%define VR_version 7.2r45
-%define boot_version 1.2r34
-%define cluster_version 1.11.11
-%define foreign_version 0.8r29
-%define lattice_version 0.17r17
-%define mgcv_version 1.4r1.1
-%define nlme_version 3.1r89
-%define rpart_version 3.1r42
-%define survival_version 2.34r1
-
%include /usr/lib/rpm/macros.perl
Summary: A language for data analysis and graphics
Summary(pl.UTF-8): Język do analizy danych oraz grafiki
Name: R
-Version: 2.8.1
-Release: 1.1
-License: Mixed (distributable), mostly GPL
+Version: 3.0.0
+Release: 0.1
+License: Mixed (distributable), mostly GPL v2+
Group: Development/Languages
# CRAN master site: ftp://cran.r-project.org/pub/R/src/
-Source0: ftp://stat.ethz.ch/R-CRAN/src/base/R-2/%{name}-%{version}.tar.gz
-# Source0-md5: acd40621b8942a2464daa2f9cef3273d
+Source0: ftp://stat.ethz.ch/R-CRAN/src/base/R-3/%{name}-%{version}.tar.gz
+# Source0-md5: 5fb80535b0e144a978f67aa2158015de
Source1: %{name}.desktop
-Patch0: %{name}-libicuuc.patch
+Source2: %{name}.xpm
URL: http://www.r-project.org/
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.62
BuildRequires: automake
-BuildRequires: blas-devel
-BuildRequires: bzip2-devel
-BuildRequires: cairo-devel
-BuildRequires: gcc-c++
+BuildRequires: blas-devel >= 3.2.2-2
+BuildRequires: bzip2-devel >= 1.0.6
+BuildRequires: cairo-devel >= 1.6
BuildRequires: gcc-fortran
-BuildRequires: gettext-devel
-BuildRequires: lapack-devel >= 3.1.1-4
+BuildRequires: gettext-devel >= 0.14.5
+BuildRequires: lapack-devel >= 3.2.2-2
BuildRequires: libicu-devel
BuildRequires: libjpeg-devel >= 6b
-BuildRequires: libpng-devel >= 1.0.5
+BuildRequires: libpng-devel >= 1.2.7
BuildRequires: libstdc++-devel
-BuildRequires: libtool
+BuildRequires: libtiff-devel
+BuildRequires: libtool >= 2:2.0
BuildRequires: libxml2-devel >= 2.6.26
BuildRequires: pango-devel
-BuildRequires: pcre-devel
+BuildRequires: pcre-devel >= 7.6
BuildRequires: perl-base >= 1:5.6
+BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: rpm-perlprov
-%{?with_tcl:BuildRequires: tcl-devel}
+%if %{with tcl}
+BuildRequires: tcl-devel >= 8.4
+BuildRequires: tk-devel >= 8.4
+%endif
+%if %{with docs}
BuildRequires: tetex-dvips
BuildRequires: tetex-latex
BuildRequires: tetex-pdftex
-%{?with_tcl:BuildRequires: tk-devel}
+BuildRequires: texinfo-texi2dvi >= 4.7
+%endif
BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXmu-devel
BuildRequires: xorg-lib-libXt-devel
+BuildRequires: xz-devel >= 4.999
BuildRequires: zip
-BuildRequires: zlib-devel >= 1.1.3
+BuildRequires: zlib-devel >= 1.2.3
#Requires: lpr
+Requires(post): perl-base
+Requires(post): textutils
+Requires: blas >= 3.2.2-2
+Suggests: rkward
+Obsoletes: R-base
+Obsoletes: R-contrib
+Obsoletes: R-recommended
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Chambersa i Wilksa) oraz Scheme (Sussmana). R jest podobny do S, ale
implementacja i semantyka wywodzi się ze Scheme.
-%package base
-Summary: The R base distribution
-Summary(pl.UTF-8): Podstawowa dystrybucja R
-License: GPL v2 / LGPL
-Group: Development/Languages
-Requires(post): perl-base
-Requires(post): textutils
-Provides: R-cran-base
-Provides: R-cran-boot = %{boot_version}
-Provides: R-cran-class = %{VR_version}
-Provides: R-cran-cluster = %{cluster_version}
-Provides: R-cran-datasets
-Provides: R-cran-foreign = %{foreign_version}
-Provides: R-cran-graphics
-Provides: R-cran-grDevices
-Provides: R-cran-grid
-Provides: R-cran-KernSmooth = %{KernSmooth_version}
-Provides: R-cran-lattice = %{lattice_version}
-Provides: R-cran-MASS = %{VR_version}
-Provides: R-cran-methods
-Provides: R-cran-mgcv = %{mgcv_version}
-Provides: R-cran-nlme = %{nlme_version}
-Provides: R-cran-nnet = %{VR_version}
-Provides: R-cran-rpart = %{rpart_version}
-Provides: R-cran-spatial = %{VR_version}
-Provides: R-cran-splines
-Provides: R-cran-stats
-Provides: R-cran-stats4
-Provides: R-cran-survival = %{survival_version}
-Provides: R-cran-tcltk
-Provides: R-cran-tools
-Provides: R-cran-utils
-Provides: R-cran-VR = %{VR_version}
-Obsoletes: R-contrib
-Obsoletes: R-cran-boot
-Obsoletes: R-cran-class
-Obsoletes: R-cran-cluster
-Obsoletes: R-cran-foreign
-Obsoletes: R-cran-KernSmooth
-Obsoletes: R-cran-lattice
-Obsoletes: R-cran-MASS
-Obsoletes: R-cran-mgcv
-Obsoletes: R-cran-nlme
-Obsoletes: R-cran-nnet
-Obsoletes: R-cran-rpart
-Obsoletes: R-cran-spatial
-Obsoletes: R-cran-survival
-Obsoletes: R-cran-VR
-Obsoletes: R-recommended
+%package java-tools
+Summary: R Java tools
+Summary(pl.UTF-8): Narzędzia R w Javie
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
-%description base
-R is a language and run-time environment for carrying out interactive
-statistical data analysis. It is not entirely dissimilar to the S
-language developed at AT&T Bell Laboratories (and now Lucent
-Technologies). Indeed, S users will find the environment quite
-familiar and a good deal of S software will run without change under
-R.
+%description java-tools
+R Java classes.
-%description base -l pl.UTF-8
-R jest językiem i środowiskiem uruchomieniowym do interaktywnej
-analizy danych statystycznych. R nie jest całkowicie zgodny z językiem
-S opracowanym w AT&T Bell Laboratiories (a teraz Lucent Technologies),
-mimo to użytkownicy S zauważą zbliżone środowisko, a duża część
-oprogramowania w S będzie działała bez zmian w R.
+%description java-tools -l pl.UTF-8
+Narzędzia R w Javie.
%prep
%setup -q
-%patch0 -p1
%build
%{__aclocal} -I m4
%{__autoconf}
-%configure \
+install -d build
+cd build
+../%configure \
+ F77=gfortran \
+ FC=gfortran \
--enable-R-shlib \
- --enable-linux-lfs \
- --with-system-zlib \
- --with-system-bzlib \
- --with-system-pcre \
- --with-libpng \
- --with-jpeglib \
+ --enable-largefile \
+ --with-ICU \
--with-blas \
- --with-lapack \
- --with-readline \
- --with%{!?with_tcl:out}-tcltk \
--with-cairo \
- --with-libpng \
--with-jpeglib \
- --with-system-zlib \
+ --with-lapack \
+ --with-libpng \
+ --with-readline \
+ --with-recommended-packages \
--with-system-bzlib \
--with-system-pcre \
- --with-iconv \
- --with-ICU \
- --with-x \
- --with-recommended-packages
+ --with-system-xz \
+ --with-system-zlib \
+%if %{with tcl}
+ --with-tcltk \
+ --with-tcl-config=/usr/lib/tclConfig.sh \
+ --with-tk-config=/usr/lib/tkConfig.sh \
+%else
+ --without-tcltk \
+%endif
+ --with-x
+
+%{__make} -j1
-%{__make}
%if %{with tests}
%{__make} check
%endif
-%{__make} docs help pdf html info
+
+%if %{with docs}
+%{__make} docs pdf info
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,%{_libdir}/R,%{_includedir},%{_desktopdir}}
-install -d $RPM_BUILD_ROOT%{perl_vendorlib}/{R,Text}
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,%{_libdir}/R,%{_includedir},%{_desktopdir},%{_pixmapsdir}}
-%{__make} -j1 install \
+%{__make} -C build -j1 install \
DESTDIR=$RPM_BUILD_ROOT
install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
+install %{SOURCE2} $RPM_BUILD_ROOT%{_pixmapsdir}
+
+ln -sf %{_libdir}/R/lib/libR.so $RPM_BUILD_ROOT%{_libdir}
-find $RPM_BUILD_ROOT%{_libdir}/R -name 'Makefile*' -exec rm -f {} \;
-mv $RPM_BUILD_ROOT%{_libdir}/R/lib/libR*.so $RPM_BUILD_ROOT%{_libdir}
mv $RPM_BUILD_ROOT%{_libdir}/%{name}/include $RPM_BUILD_ROOT%{_includedir}/R
ln -sf %{_includedir}/R $RPM_BUILD_ROOT%{_libdir}/R/include
-rm $RPM_BUILD_ROOT%{_bindir}/%{name}
-sed -i -e "s#$RPM_BUILD_ROOT##g" $RPM_BUILD_ROOT%{_libdir}/%{name}/bin/%{name}
-ln -sf %{_libdir}/%{name}/bin/%{name} $RPM_BUILD_ROOT%{_bindir}/%{name}
-
-(cd $RPM_BUILD_ROOT%{_libdir}/%{name}/share/perl/R/
-for f in * ; do
- ln -s %{_libdir}/%{name}/share/perl/R/$f $RPM_BUILD_ROOT%{perl_vendorlib}/R/
-done)
-(cd $RPM_BUILD_ROOT%{_libdir}/%{name}/share/perl/Text
-for f in * ; do
- ln -s %{_libdir}/%{name}/share/perl/Text/$f $RPM_BUILD_ROOT%{perl_vendorlib}/Text/
-done)
-rm -r $RPM_BUILD_ROOT%{perl_vendorlib}/{Text,R}
-rm -r $RPM_BUILD_ROOT%{_libdir}/R/share/perl/{File,Text}
-mv $RPM_BUILD_ROOT%{_libdir}/R/share/perl/R $RPM_BUILD_ROOT%{perl_vendorlib}
+gen_lang() {
+ dir="$1"
+ for d in $RPM_BUILD_ROOT${dir}/* ; do
+ bd=$(basename $d)
+ lang="${bd%@*}"
+ echo "%lang($lang) ${dir}/${bd}"
+ done
+}
+
+for moddir in $RPM_BUILD_ROOT%{_libdir}/R/library/* ; do
+ module=$(basename $moddir)
+ echo "%dir %{_libdir}/R/library/${module}"
+ for f in $moddir/* ; do
+ bf=$(basename $f)
+ case "$bf" in
+ po)
+ echo "%dir %{_libdir}/R/library/${module}/po"
+ gen_lang %{_libdir}/R/library/${module}/po
+ ;;
+ libs)
+ echo "%dir %{_libdir}/R/library/${module}/libs"
+ echo "%attr(755,root,root) %{_libdir}/R/library/${module}/libs/*.so"
+ ;;
+ *)
+ echo "%{_libdir}/R/library/${module}/${bf}"
+ ;;
+ esac
+ done
+done > R.files
%clean
rm -rf $RPM_BUILD_ROOT
-%post
-(cd %{_libdir}/R/library; umask 022; cat */CONTENTS > ../doc/html/search/index.txt
- R_HOME=%{_libdir}/R ../bin/Rcmd perl ../share/perl/build-help.pl --index)
-/sbin/ldconfig
-
+%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
-%files base
+%files -f R.files
%defattr(644,root,root,755)
%doc NEWS README doc/{AUTHORS,COPYRIGHTS,FAQ,RESOURCES,THANKS}
-
-%{_mandir}/man1/R.1*
-%{_mandir}/man1/Rscript*
%attr(755,root,root) %{_bindir}/R
%attr(755,root,root) %{_bindir}/Rscript
%dir %{_libdir}/R
-%attr(755,root,root) %{_libdir}/R/bin
-%attr(755,root,root) %{_libdir}/libR*.so
-%{_libdir}/R/etc
-%{_libdir}/R/include
-%{_includedir}/R
-%{_libdir}/R/share
+%dir %{_libdir}/R/lib
+%attr(755,root,root) %{_libdir}/R/lib/libR.so
+%attr(755,root,root) %{_libdir}/libR.so
%{_libdir}/R/COPYING
%{_libdir}/R/NEWS
%{_libdir}/R/SVN-REVISION
-%dir %{_libdir}/R/library
-%{_libdir}/%{name}/library/R.css
+%attr(755,root,root) %{_libdir}/R/bin
+%exclude %{_libdir}/R/bin/javareconf
# %{_libdir}/R/doc %except %{_libdir}/R/doc/html/{packages.html,search/index.txt}
%dir %{_libdir}/R/doc
%{_libdir}/R/doc/[KRm]*
%{_libdir}/R/doc/html/[Ra-lr-u]*.html
%{_libdir}/R/doc/html/packages-head*.html
%{_libdir}/R/doc/html/*.jpg
-%dir %{_libdir}/R/doc/html/search
-%{_libdir}/R/doc/html/search/[A-Z]*
-%ghost %{_libdir}/R/doc/html/search/index.txt
%ghost %{_libdir}/R/doc/html/packages.html
-%{_desktopdir}/*.desktop
-
-%{perl_vendorlib}/R
-
-%attr(755,root,root) %{_libdir}/%{name}/modules
-
-%{_libdir}/%{name}/library/KernSmooth
-%{_libdir}/%{name}/library/MASS
-%{_libdir}/%{name}/library/base
-%{_libdir}/%{name}/library/boot
-%{_libdir}/%{name}/library/class
-%{_libdir}/%{name}/library/cluster
-%{_libdir}/%{name}/library/codetools
-%{_libdir}/%{name}/library/datasets
-%{_libdir}/%{name}/library/foreign
-%{_libdir}/%{name}/library/grDevices
-%{_libdir}/%{name}/library/graphics
-%{_libdir}/%{name}/library/grid
-%{_libdir}/%{name}/library/lattice
-%{_libdir}/%{name}/library/methods
-%{_libdir}/%{name}/library/mgcv
-%{_libdir}/%{name}/library/nlme
-%{_libdir}/%{name}/library/nnet
-%{_libdir}/%{name}/library/rpart
-%{_libdir}/%{name}/library/spatial
-%{_libdir}/%{name}/library/splines
-%{_libdir}/%{name}/library/stats
-%{_libdir}/%{name}/library/stats4
-%{_libdir}/%{name}/library/survival
-%{_libdir}/%{name}/library/tcltk
-%{_libdir}/%{name}/library/tools
-%{_libdir}/%{name}/library/utils
+%{_libdir}/R/etc
+%{_libdir}/R/include
+%dir %{_libdir}/R/library
+# library files list is autogenerated (see R.files above)
+%attr(755,root,root) %{_libdir}/R/modules
+%dir %{_libdir}/R/share
+%{_libdir}/R/share/R
+%{_libdir}/R/share/encodings
+%{_libdir}/R/share/licenses
+%{_libdir}/R/share/make
+%{_libdir}/R/share/sh
+%{_libdir}/R/share/texmf
+%{_desktopdir}/R.desktop
+%{_pixmapsdir}/R.xpm
+%{_includedir}/R
+%{_pkgconfigdir}/libR.pc
+%{_mandir}/man1/R.1*
+%{_mandir}/man1/Rscript*
-%{_pkgconfigdir}/*.pc
+%files java-tools
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/R/bin/javareconf
+%{_libdir}/R/share/java