[lhapdf/el5] Initial import after review
Mattias Ellert
ellert at fedoraproject.org
Wed Jun 5 15:51:42 UTC 2013
commit 6b281f56559cc62b5dad52f5313b4bd7040567a1
Author: Mattias Ellert <mattias.ellert at fysast.uu.se>
Date: Wed Jun 5 17:48:25 2013 +0200
Initial import after review
.gitignore | 3 +
lhapdf-config.1 | 40 +++++++
lhapdf-fix-lhapdf-config.patch | 13 ++
lhapdf-fix-test-environment.patch | 44 +++++++
lhapdf-fix-typo.patch | 13 ++
lhapdf-getdata.1 | 64 +++++++++++
lhapdf-path-max.patch | 13 ++
lhapdf-query.1 | 25 ++++
lhapdf.spec | 224 +++++++++++++++++++++++++++++++++++++
sources | 7 +
10 files changed, 446 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..4633889 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/*.tar.gz
+/*.LHgrid
+/*.LHpdf
diff --git a/lhapdf-config.1 b/lhapdf-config.1
new file mode 100644
index 0000000..e0f63d2
--- /dev/null
+++ b/lhapdf-config.1
@@ -0,0 +1,40 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.39.4.
+.TH LHAPDF-CONFIG "1" "May 2011" "lhapdf-config" "User Commands"
+.SH NAME
+lhapdf-config \- script to get version number and compiler flags of the installed LHAPDF library
+.SH SYNOPSIS
+.B lhapdf-config
+[[\fI--help|-h\fR] \fI| \fR[\fI--prefix\fR] \fI| \fR[\fI--pdfsets-path\fR]]
+.SH DESCRIPTION
+\fIlhapdf-config\fP is a tool that is used to configure to determine
+the compiler and linker flags that should be used to compile
+and link programs that use \fILHAPDF\fP.
+.SH OPTIONS
+.TP
+\fB\-\-help\fR | \fB\-h\fR
+: show this help message
+.TP
+\fB\-\-prefix\fR
+: show the installation prefix (cf. autoconf)
+.TP
+\fB\-\-incdir\fR
+: show the path to the LHAPDF header directory (for C++ interface)
+.TP
+\fB\-\-libdir\fR
+: show the path to the LHAPDF library directory
+.TP
+\fB\-\-datadir\fR
+: show the path to the LHAPDF installed data directory
+.HP
+\fB\-\-pdfsets\-path\fR : show the path to the directory containing the PDF set data files
+.TP
+\fB\-\-cppflags\fR
+: get compiler flags for use with the C preprocessor stage of C++ compilation
+.TP
+\fB\-\-ldflags\fR
+: get compiler flags for use with the linker stage of any compilation
+.TP
+\fB\-\-version\fR
+: returns LHAPDF release version number
+.SH AUTHOR
+This manual page was written by Lifeng Sun <lifongsun at gmail.com> for the Debian system (but may be used by others).
diff --git a/lhapdf-fix-lhapdf-config.patch b/lhapdf-fix-lhapdf-config.patch
new file mode 100644
index 0000000..09b5ee6
--- /dev/null
+++ b/lhapdf-fix-lhapdf-config.patch
@@ -0,0 +1,13 @@
+Fix the package name in lhapdf-config.
+
+--- a/bin/lhapdf-config.in
++++ b/bin/lhapdf-config.in
+@@ -22,7 +22,7 @@
+ echo " --cppflags : get compiler flags for use with the C preprocessor stage of C++ compilation"
+ echo " --ldflags : get compiler flags for use with the linker stage of any compilation"
+ echo
+- echo " --version : returns Rivet release version number"
++ echo " --version : returns LHAPDF release version number"
+ fi
+
+ OUT=""
diff --git a/lhapdf-fix-test-environment.patch b/lhapdf-fix-test-environment.patch
new file mode 100644
index 0000000..8287201
--- /dev/null
+++ b/lhapdf-fix-test-environment.patch
@@ -0,0 +1,44 @@
+Fix test environment.
+
+--- a/octave/Makefile.am
++++ b/octave/Makefile.am
+@@ -5,5 +5,5 @@
+ lhapdf.oct: wrapoctave.cc
+ $(MKOCTFILE) -I$(top_srcdir)/include -v -g -o lhapdf.oct wrapoctave.cc -L$(top_builddir)/lib -L$(top_builddir)/lib/.libs -lLHAPDF
+
+-TESTS_ENVIRONMENT = LHAPATH=$(top_srcdir)/PDFsets $(OCTAVE)
++TESTS_ENVIRONMENT = LHAPATH=$(top_srcdir)/PDFsets LD_LIBRARY_PATH="$(top_builddir)/lib/.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" $(OCTAVE)
+ TESTS = $(srcdir)/lhapdf-octave-example1.m
+--- a/octave/Makefile.in
++++ b/octave/Makefile.in
+@@ -195,7 +195,7 @@
+ top_srcdir = @top_srcdir@
+ EXTRA_DIST = lhapdf-octave-example1.m wrapoctave.cc
+ pkgdata_DATA = lhapdf.oct
+-TESTS_ENVIRONMENT = LHAPATH=$(top_srcdir)/PDFsets $(OCTAVE)
++TESTS_ENVIRONMENT = LHAPATH=$(top_srcdir)/PDFsets LD_LIBRARY_PATH="$(top_builddir)/lib/.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" $(OCTAVE)
+ TESTS = $(srcdir)/lhapdf-octave-example1.m
+ all: all-am
+
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -12,7 +12,7 @@
+ lhapdf_example9_SOURCES = Example9.f
+ lhapdf_example10_SOURCES = Example10.f
+
+-#TESTS_ENVIRONMENT = LHAPATH=$(top_srcdir)/PDFsets
++TESTS_ENVIRONMENT = LHAPATH=$(top_srcdir)/PDFsets
+ TESTS = lhapdf-example1
+ # lhapdf-example2 lhapdf-example3
+
+diff -ur lhapdf-5.8.8.orig/examples/Makefile.in lhapdf-5.8.8/examples/Makefile.in
+--- a/examples/Makefile.in
++++ b/examples/Makefile.in
+@@ -37,6 +37,7 @@
+ lhapdf-example8$(EXEEXT) lhapdf-example9$(EXEEXT) \
+ lhapdf-example10$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2)
+ TESTS = lhapdf-example1$(EXEEXT) $(am__EXEEXT_3) $(am__EXEEXT_4)
++TESTS_ENVIRONMENT = LHAPATH=$(top_srcdir)/PDFsets
+ @ENABLE_LHAGLUE_TRUE at am__append_1 = lhapdf-example4 lhapdf-example5 lhapdf-example6
+ @ENABLE_LHAGLUE_TRUE at am__append_2 = lhapdf-example4
+ @ENABLE_CCWRAP_TRUE at am__append_3 = lhapdf-cctest1 lhapdf-cctest2 lhapdf-cctest3 lhapdf-cctest4 lhapdf-cctest5
diff --git a/lhapdf-fix-typo.patch b/lhapdf-fix-typo.patch
new file mode 100644
index 0000000..71eb447
--- /dev/null
+++ b/lhapdf-fix-typo.patch
@@ -0,0 +1,13 @@
+Fix typo: AVAIABLE->AVAILABLE.
+
+--- a/src/wrapevolve.F
++++ b/src/wrapevolve.F
+@@ -315,7 +315,7 @@
+ if(index(setpath,'NNPDF').gt.0) then
+ if(nset.gt.1) then
+ if((index(setpath,'1000.').gt.0.and.nnpdf.gt.0).or.(index(setpath,'100.').gt.0.and.nnpdf1000.gt.0)) then
+- print *,'LHAPDF ERROR: MULTISET-INITIALIZATION with NNPDF 1000 sets IS NOT AVAIABLE (AT THE MOMENT)!'
++ print *,'LHAPDF ERROR: MULTISET-INITIALIZATION with NNPDF 1000 sets IS NOT AVAILABLE (AT THE MOMENT)!'
+ STOP
+ endif
+ endif
diff --git a/lhapdf-getdata.1 b/lhapdf-getdata.1
new file mode 100644
index 0000000..aaec653
--- /dev/null
+++ b/lhapdf-getdata.1
@@ -0,0 +1,64 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.39.4.
+.TH LHAPDF-GETDATA "1" "May 2011" "lhapdf-getdata" "User Commands"
+.SH NAME
+lhapdf-getdata \- Get PDF sets from the LHAPDF repository
+.SH SYNOPSIS
+.B lhapdf-getdata
+[\fI--main\fR] [\fI--all\fR] [\fI--repo=URL\fR] [\fI--dest=DEST\fR] [\fI--dryrun\fR]
+<name|number> [<name|number> ...]
+.SH DESCRIPTION
+.IP
+.PP
+Grab PDF grid and param files from the LHAPDF repository and install
+them into the local LHAPDF data directory.
+.SH OPTIONS
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+show this help message and exit
+.TP
+\fB\-\-repo\fR=\fIURL\fR
+Base URL of online sets repository
+(http://www.hepforge.org/archive/lhapdf/pdfsets/current)
+.TP
+\fB\-\-dest\fR=\fIDEST\fR
+PDF sets directory to install to (/usr/share/lhapdf/PDFsets)
+.TP
+\fB\-\-all\fR
+Get ALL sets (this will be hundreds of megabytes... be
+careful!)
+.TP
+\fB\-\-list\fR
+Just list available files
+.TP
+\fB\-\-force\fR
+Overwrite existing files
+.TP
+\fB\-\-dryrun\fR
+Don't actually do any downloading
+.TP
+\fB\-Q\fR, \fB\-\-quiet\fR
+Suppress normal messages
+.TP
+\fB\-V\fR, \fB\-\-verbose\fR
+Add extra debug messages
+.SH EXAMPLES
+.TP
+Show all available sets:
+lhapdf\-getdata \fB\-\-list\fR
+.TP
+Get all NNPDF PDFs with pattern matching:
+lhapdf\-getdata NNPDF
+.TP
+Get CTEQ6L1, CTEQ66, MRST\-S LO* and LO** PDFs with pattern matching:
+lhapdf\-getdata CTEQ6ll CTEQ66 lomod MCal
+.TP
+Get MSTW2008 68% confidence PDF by full name:
+lhapdf\-getdata MSTW2008lo68cl.LHgrid
+.TP
+See how much downloading would be involved in getting all PDF sets:
+lhapdf\-getdata \fB\-\-all\fR \fB\-\-dryrun\fR
+.TP
+I'm hardcore, give me the whole collection:
+lhapdf\-getdata \fB\-\-all\fR
+.SH AUTHOR
+This manual page was written by Lifeng Sun <lifongsun at gmail.com> for the Debian system (but may be used by others).
diff --git a/lhapdf-path-max.patch b/lhapdf-path-max.patch
new file mode 100644
index 0000000..b209dc9
--- /dev/null
+++ b/lhapdf-path-max.patch
@@ -0,0 +1,13 @@
+--- a/src/binreloc.c
++++ b/src/binreloc.c
+@@ -24,6 +24,10 @@
+ #include <string.h>
+ #include "binreloc.h"
+
++#ifndef PATH_MAX
++#define PATH_MAX 4096
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif /* __cplusplus */
diff --git a/lhapdf-query.1 b/lhapdf-query.1
new file mode 100644
index 0000000..43a09c5
--- /dev/null
+++ b/lhapdf-query.1
@@ -0,0 +1,25 @@
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.39.4.
+.TH LHAPDF-QUERY "1" "May 2011" "lhapdf-query" "User Commands"
+.SH NAME
+lhapdf-query \- Query PDF values from LHAPDF
+.SH SYNOPSIS
+.B lhapdf-query
+[cmd] [setname|num] [memnum] x Q [flavourID]
+.SH DESCRIPTION
+.PP
+Retrieve PDF values from LHAPDF, given a set name, member number
+and values for x and Q. This will return a list of xf(x,Q2) values
+for each parton; specifying a parton name on the command line will
+return the single appropriate xf(x,Q2) value for that flavour.
+.SH OPTIONS
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Show this help message and exit
+.TP
+\fB\-Q\fR, \fB\-\-quiet\fR
+Suppress normal messages
+.TP
+\fB\-V\fR, \fB\-\-verbose\fR
+Add extra debug messages
+.SH AUTHOR
+This manual page was written by Lifeng Sun <lifongsun at gmail.com> for the Debian system (but may be used by others).
diff --git a/lhapdf.spec b/lhapdf.spec
new file mode 100644
index 0000000..4345928
--- /dev/null
+++ b/lhapdf.spec
@@ -0,0 +1,224 @@
+%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
+
+Name: lhapdf
+Version: 5.8.9
+Release: 3%{?dist}
+Summary: Les Houches Accord PDF Interface
+Group: System Environment/Libraries
+
+License: GPLv2+
+URL: http://lhapdf.hepforge.org/
+Source0: http://www.hepforge.org/archive/lhapdf/%{name}-%{version}.tar.gz
+# Minimal set of PDFs (needed to run make check)
+Source1: http://www.hepforge.org/archive/lhapdf/pdfsets/%{version}/cteq5l.LHgrid
+Source2: http://www.hepforge.org/archive/lhapdf/pdfsets/%{version}/cteq6ll.LHpdf
+Source3: http://www.hepforge.org/archive/lhapdf/pdfsets/%{version}/cteq61.LHgrid
+Source4: http://www.hepforge.org/archive/lhapdf/pdfsets/%{version}/CT10.LHgrid
+Source5: http://www.hepforge.org/archive/lhapdf/pdfsets/%{version}/GRV98nlo.LHgrid
+Source6: http://www.hepforge.org/archive/lhapdf/pdfsets/%{version}/MRST2001nlo.LHgrid
+# Man pages (from the Debian package)
+Source7: %{name}-config.1
+Source8: %{name}-getdata.1
+Source9: %{name}-query.1
+# Patches (from the Debian package)
+Patch0: %{name}-fix-lhapdf-config.patch
+Patch1: %{name}-fix-test-environment.patch
+Patch2: %{name}-fix-typo.patch
+Patch3: %{name}-path-max.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: octave-devel%{?_isa}
+BuildRequires: ncurses-devel%{?_isa}
+BuildRequires: python-devel%{?_isa}
+BuildRequires: gcc-gfortran
+BuildRequires: swig
+BuildRequires: doxygen
+BuildRequires: tex(latex)
+BuildRequires: ghostscript
+
+%description
+LHAPDF provides a unified and easy to use interface to modern PDF
+sets. It is designed to work not only with individual PDF sets but
+also with the more recent multiple "error" sets. It can be viewed as
+the successor to PDFLIB, incorporating many of the older sets found in
+the latter, including pion and photon PDFs. In LHAPDF the computer
+code and input parameters/grids are separated thus allowing more easy
+updating and no limit to the expansion possibilities.
+
+%package devel
+Summary: Les Houches Accord PDF Interface - development files
+Group: Development/Libraries
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+This package provides development files of LHAPDF, including C++ bindings.
+
+%global octpkg %{name}
+%{!?octave_api: %global octave_api %(octave-config -p API_VERSION || echo 0)}
+%{!?octpkgdir: %global octpkgdir %{_datadir}/octave/packages/%{octpkg}-%{version}}
+%{!?octpkglibdir: %global octpkglibdir %{_libdir}/octave/packages/%{octpkg}-%{version}}
+%{!?octave_cmd: %global octave_cmd() octave -H -q --no-window-system --no-site-file --eval "%*";}
+
+%package -n octave-%{name}
+Summary: Les Houches Accord PDF Interface - Octave module
+Group: Applications/Engineering
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: octave(api) = %{octave_api}
+Requires(post): octave
+Requires(postun): octave
+
+%description -n octave-%{name}
+This package provides Octave bindings for LHAPDF.
+
+%package -n python-%{name}
+Summary: Les Houches Accord PDF Interface - Python module
+Group: Applications/Engineering
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description -n python-%{name}
+This package provides Python bindings for LHAPDF.
+
+%package pdfsets-minimal
+Summary: Les Houches Accord PDF Interface - PDF sets
+Group: Applications/Engineering
+%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6
+BuildArch: noarch
+%endif
+Requires: %{name} = %{version}-%{release}
+
+%description pdfsets-minimal
+This package provides a minimal PDF sets required by the test suites.
+Note: the python-lhapdf package provides the lhapdf-getdata script to
+download other PDF sets.
+
+%package doc
+Summary: Les Houches Accord PDF Interface - documentation
+Group: Documentation
+%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6
+BuildArch: noarch
+%endif
+
+%description doc
+This package provides documentation of C++ bindings for LHAPDF.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+mkdir PDFsets
+install -m 644 -p %SOURCE1 PDFsets
+install -m 644 -p %SOURCE2 PDFsets
+install -m 644 -p %SOURCE3 PDFsets
+install -m 644 -p %SOURCE4 PDFsets
+install -m 644 -p %SOURCE5 PDFsets
+install -m 644 -p %SOURCE6 PDFsets
+
+sed 's!/usr/bin/env python!/usr/bin/python!' -i bin/lhapdf-* examples/*.py
+sed 's!/usr/bin/env bash!/bin/bash!' -i bin/lhapdf-config.in
+
+%build
+%configure --disable-static
+
+# Reduce overlinking
+sed 's!CC -shared !CC \${wl}--as-needed -shared !g' -i libtool
+
+make %{?_smp_mflags}
+
+%install
+rm -rf %{buildroot}
+make install DESTDIR=%{buildroot}
+
+mkdir -p %{buildroot}%{_mandir}/man1
+install -m 644 -p %SOURCE7 %{buildroot}%{_mandir}/man1
+install -m 644 -p %SOURCE8 %{buildroot}%{_mandir}/man1
+install -m 644 -p %SOURCE9 %{buildroot}%{_mandir}/man1
+
+rm %{buildroot}%{_libdir}/libLHAPDF.la
+rm %{buildroot}%{_datadir}/%{name}/doc/html
+
+APIDIR=$(octave-config -p CANONICAL_HOST_TYPE)-$(octave-config -p API_VERSION)
+mkdir -p %{buildroot}%{octpkglibdir}/${APIDIR}
+mv %{buildroot}%{_datadir}/%{name}/%{name}.oct \
+ %{buildroot}%{octpkglibdir}/${APIDIR}/%{name}.oct
+chmod 755 %{buildroot}%{octpkglibdir}/${APIDIR}/%{name}.oct
+mkdir -p %{buildroot}%{octpkgdir}/packinfo
+install -m 644 -p COPYING %{buildroot}%{octpkgdir}/packinfo/COPYING
+cat << EOF > %{buildroot}%{octpkgdir}/packinfo/DESCRIPTION
+Name: %{name}
+Version: %{version}
+Date: `date -I`
+Author: W Giele <giele at fnal.gov>, Mike R Whalley <m.r.whalley at durham.ac.uk>
+Maintainer: W Giele <giele at fnal.gov>, Mike R Whalley <m.r.whalley at durham.ac.uk>
+Title: Les Houches Accord PDF Interface
+Description: LHAPDF provides a unified and easy to use interface to
+ modern PDF sets. It is designed to work not only with individual PDF
+ sets but also with the more recent multiple "error" sets. It can be
+ viewed as the successor to PDFLIB, incorporating many of the older sets
+ found in the latter, including pion and photon PDFs. In LHAPDF the
+ computer code and input parameters/grids are separated thus allowing
+ more easy updating and no limit to the expansion possibilities.
+EOF
+
+mkdir -p %{buildroot}%{_datadir}/%{name}/PDFsets
+install -m 644 -p PDFsets/* %{buildroot}%{_datadir}/%{name}/PDFsets
+
+%check
+make check
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%post -n octave-%{name}
+%octave_cmd pkg rebuild
+
+%postun -n octave-%{name}
+%octave_cmd pkg rebuild
+
+%files
+%{_libdir}/libLHAPDF.so.*
+%doc AUTHORS ChangeLog COPYING README TODO
+
+%files devel
+%{_bindir}/lhapdf-config
+%{_mandir}/man1/lhapdf-config.1*
+%{_includedir}/LHAPDF
+%{_libdir}/libLHAPDF.so
+%doc examples/CC*.cc examples/Example*.f
+
+%files -n octave-%{name}
+%{octpkglibdir}
+%{octpkgdir}
+%doc octave/lhapdf-octave-example1.m
+
+%files -n python-%{name}
+%{_bindir}/lhapdf-getdata
+%{_bindir}/lhapdf-query
+%{_mandir}/man1/lhapdf-getdata.1*
+%{_mandir}/man1/lhapdf-query.1*
+%{python_sitearch}/*
+%doc examples/pdf-*.py
+
+%files pdfsets-minimal
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/PDFsets
+%{_datadir}/%{name}/PDFsets.index
+
+%files doc
+%doc ccwrap/doxy/html COPYING
+
+%changelog
+* Wed Jun 05 2013 Mattias Ellert <mattias.ellert at fysast.uu.se> - 5.8.9-3
+- Make doc package independent
+
+* Wed May 22 2013 Mattias Ellert <mattias.ellert at fysast.uu.se> - 5.8.9-2
+- Reduce libtool overlinking
+- Add isa to dependencies
+
+* Sat May 18 2013 Mattias Ellert <mattias.ellert at fysast.uu.se> - 5.8.9-1
+- New upstream version
+
+* Wed Nov 14 2012 Mattias Ellert <mattias.ellert at fysast.uu.se> - 5.8.8-1
+- Initial build
diff --git a/sources b/sources
index e69de29..dd8779b 100644
--- a/sources
+++ b/sources
@@ -0,0 +1,7 @@
+51e61fa316957abd13d1b76b44e665cf lhapdf-5.8.9.tar.gz
+b592db3245a875f1a2ab5b0be0e06b5b cteq5l.LHgrid
+330dc600f0ee7f9b5fa8051eef732930 cteq6ll.LHpdf
+f85b82894b43df936fa395465ba155c4 cteq61.LHgrid
+49276a39307a609d446722302915b09a CT10.LHgrid
+4b93c4101fa8f162ae744da3b3fce031 GRV98nlo.LHgrid
+a5121e3ab1912a4a72e85889ba5e9234 MRST2001nlo.LHgrid
More information about the scm-commits
mailing list