Compare commits

..

No commits in common. "rawhide" and "f23" have entirely different histories.

13 changed files with 414 additions and 470 deletions

View file

@ -1,50 +0,0 @@
From d49e808ed6c027db3a682a731d74ec3ffa7c6076 Mon Sep 17 00:00:00 2001
From: Andy Buckley <andy.buckley@cern.ch>
Date: Mon, 9 Mar 2026 19:33:39 +0000
Subject: [PATCH] Correct the lhapdf-config help message to use --includedir
rather than --incdir, but also add a backward-compatibility handling for
--incdir if given. Thanks to Mark Sutton.
---
ChangeLog | 6 ++++++
bin/lhapdf-config.in | 3 ++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index cd35d70..7eabc3f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-03-09 Andy Buckley <andy.buckley@cern.ch>
+
+ * Correct the lhapdf-config help message to use --includedir
+ rather than --incdir, but also add a backward-compatibility
+ handling for --incdir if given. Thanks to Mark Sutton.
+
2026-02-19 Andy Buckley <andy.buckley@cern.ch>
* Version 6.5.6 release.
diff --git a/bin/lhapdf-config.in b/bin/lhapdf-config.in
index b62a217..d13b6f1 100644
--- a/bin/lhapdf-config.in
+++ b/bin/lhapdf-config.in
@@ -13,7 +13,7 @@ Options:
--help | -h : show this help message
--prefix : show the installation prefix (cf. autoconf)
- --incdir : show the path to the LHAPDF C++ header directory
+ --includedir : show the path to the LHAPDF C++ header directory
--libdir : show the path to the LHAPDF library directory
--datadir : show the path to the LHAPDF data directory
--pythonpath|--pydir : show the path(s) to the directory containing LHAPDF's Python package
@@ -48,6 +48,7 @@ for opt in "$@"; do
--version) echo "@PACKAGE_VERSION@" && exit 0 ;;
--prefix) show_prefix=1 ;;
--includedir) show_incdir=1 ;;
+ --incdir) show_incdir=1 ;; #< TODO: for backward compatibility from 6.5.7, remove eventually
--libdir) show_libdir=1 ;;
--datadir) show_datdir=1 ;;
--pythonpath) show_pypath=1 ;;
--
2.53.0

View file

@ -1,76 +0,0 @@
From d4dd6202016754052f7f7f0cfedd3913a08afbbf Mon Sep 17 00:00:00 2001
From: Mattias Ellert <mattias.ellert@physics.uu.se>
Date: Fri, 3 Apr 2026 07:45:56 +0200
Subject: [PATCH] Fix double -I in lhapdf-config --cflags output Don't put
-L/usr/lib and -L/usr/lib64 in build flags Fix pkg-config --define-variable
libdir=/path --libs lhapdf
---
ChangeLog | 6 ++++++
bin/lhapdf-config.in | 2 +-
configure | 9 +++++++--
lhapdf.pc.in | 4 ++--
4 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7eabc3f..74f4c7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-04-03 Mattias Ellert <mattias.ellert@physics.uu.se>
+
+ * Fix double -I in lhapdf-config --cflags output
+ * Don't put -L/usr/lib and -L/usr/lib64 in build flags
+ * Fix pkg-config --define-variable libdir=/path --libs lhapdf
+
2026-03-09 Andy Buckley <andy.buckley@cern.ch>
* Correct the lhapdf-config help message to use --includedir
diff --git a/bin/lhapdf-config.in b/bin/lhapdf-config.in
index d13b6f1..4b5afcd 100644
--- a/bin/lhapdf-config.in
+++ b/bin/lhapdf-config.in
@@ -102,7 +102,7 @@ if [ "$show_iflags" -eq 1 ]; then
ilhapdf="@includedir@"
test -n "$ilhapdf" && OUT="$OUT -I${ilhapdf}"
iyamlcpp="@YAML_CPP_CPPFLAGS@"
- test -n "$iyamlcpp" && OUT="$OUT -I${iyamlcpp}"
+ test -n "$iyamlcpp" && OUT="$OUT ${iyamlcpp}"
fi
if [ "$show_Lflags" -eq 1 ]; then
llhapdf="@libdir@"
diff --git a/configure b/configure
index 7fafae6..d530cd7 100644
--- a/configure
+++ b/configure
@@ -19972,8 +19972,13 @@
YAML_CPP_CPPFLAGS=""
YAML_CPP_LDFLAGS=""
if test "x$yaml_cpp_prefix" != "xno"; then
- YAML_CPP_CPPFLAGS="-I$yaml_cpp_prefix/include"
- YAML_CPP_LDFLAGS="-L$yaml_cpp_prefix/lib -L$yaml_cpp_prefix/lib64 -lyaml-cpp"
+ if test "x$yaml_cpp_prefix" = "x/usr"; then
+ YAML_CPP_CPPFLAGS=""
+ YAML_CPP_LDFLAGS="-lyaml-cpp"
+ else
+ YAML_CPP_CPPFLAGS="-I$yaml_cpp_prefix/include"
+ YAML_CPP_LDFLAGS="-L$yaml_cpp_prefix/lib -L$yaml_cpp_prefix/lib64 -lyaml-cpp"
+ fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lyaml-cpp" >&5
printf %s "checking for main in -lyaml-cpp... " >&6; }
if test ${ac_cv_lib_yaml_cpp_main+y}
diff --git a/lhapdf.pc.in b/lhapdf.pc.in
index 964d0ae..1a7d80a 100644
--- a/lhapdf.pc.in
+++ b/lhapdf.pc.in
@@ -8,5 +8,5 @@ Name: lhapdf
Description: LHAPDF parton density library
URL: https://lhapdf.hepforge.org
Version: @VERSION@
-Libs: -L@libdir@ @YAML_CPP_LDFLAGS@ -lLHAPDF
-Cflags: -I@includedir@ @YAML_CPP_CPPFLAGS@
+Libs: -L${libdir} @YAML_CPP_LDFLAGS@ -lLHAPDF
+Cflags: -I${includedir} @YAML_CPP_CPPFLAGS@
--
2.53.0

40
lhapdf-config.1 Normal file
View file

@ -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@gmail.com> for the Debian system (but may be used by others).

View file

@ -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=""

View file

@ -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@am__append_1 = lhapdf-example4 lhapdf-example5 lhapdf-example6
@ENABLE_LHAGLUE_TRUE@am__append_2 = lhapdf-example4
@ENABLE_CCWRAP_TRUE@am__append_3 = lhapdf-cctest1 lhapdf-cctest2 lhapdf-cctest3 lhapdf-cctest4 lhapdf-cctest5

13
lhapdf-fix-typo.patch Normal file
View file

@ -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

64
lhapdf-getdata.1 Normal file
View file

@ -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@gmail.com> for the Debian system (but may be used by others).

13
lhapdf-lhacontrol.patch Normal file
View file

@ -0,0 +1,13 @@
diff -ur lhapdf-5.9.1.orig/examples/Example6.f lhapdf-5.9.1/examples/Example6.f
--- lhapdf-5.9.1.orig/examples/Example6.f 2008-10-21 13:09:33.000000000 +0200
+++ lhapdf-5.9.1/examples/Example6.f 2015-03-07 06:15:27.094311950 +0100
@@ -10,7 +10,8 @@
data inset/20200,20201,231/
character*20 lhaparm(20)
double precision lhavalue(20)
- common/lhacontrol/lhaparm,lhavalue
+ character*20 commoninitflag
+ common/lhacontrol/lhaparm,lhavalue,commoninitflag
common/W50513/xmin,xmax,q2min,q2max
!open(7,file='/home/whalley/lhapdf/lhanames')
parm(1)='DEFAULT'

13
lhapdf-path-max.patch Normal file
View file

@ -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 */

25
lhapdf-query.1 Normal file
View file

@ -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@gmail.com> for the Debian system (but may be used by others).

View file

@ -1,351 +1,238 @@
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
Name: lhapdf
Version: 6.5.6
Release: 6%{?dist}
Version: 5.9.1
Release: 14%{?dist}
Summary: Les Houches Accord PDF Interface
Group: System Environment/Libraries
License: GPL-3.0-only
URL: https://lhapdf.hepforge.org/
Source0: https://www.hepforge.org/archive/lhapdf/LHAPDF-%{version}.tar.gz
# PDFs used during testing
Source1: https://lhapdfsets.web.cern.ch/current/CT10nlo.tar.gz
Source2: https://lhapdfsets.web.cern.ch/current/MSTW2008nlo68cl.tar.gz
Source3: https://lhapdfsets.web.cern.ch/current/NNPDF31_lo_as_0130.tar.gz
# Missing file in source tarfile
# See: https://gitlab.com/hepcedar/lhapdf/-/merge_requests/120
Source4: testunc.py
# https://gitlab.com/hepcedar/lhapdf/-/merge_requests/123
Patch0: 0001-Correct-the-lhapdf-config-help-message-to-use-includ.patch
# https://gitlab.com/hepcedar/lhapdf/-/merge_requests/124
Patch1: 0001-Fix-double-I-in-lhapdf-config-cflags-output.patch
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
Patch4: %{name}-lhacontrol.patch
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: yaml-cpp-devel
BuildRequires: python3-Cython
BuildRequires: python3-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: octave-devel
BuildRequires: ncurses-devel
BuildRequires: python-devel
BuildRequires: gcc-gfortran
BuildRequires: swig
BuildRequires: doxygen
# Obsolete LHAPDF5 packages not provided by LHAPDF6
Obsoletes: octave-lhapdf < 6
Obsoletes: lhapdf-pdfsets-minimal < 6
BuildRequires: tex(latex)
BuildRequires: ghostscript
%description
LHAPDF is a general purpose C++ interpolator, used for evaluating PDFs
from discretized data files. Previous versions of LHAPDF were written
in Fortran 77/90 and are documented at http://lhapdf.hepforge.org/lhapdf5/.
LHAPDF6 vastly reduces the memory overhead of the Fortran LHAPDF (from
gigabytes to megabytes!), entirely removes restrictions on numbers of
concurrent PDFs, allows access to single PDF members without needing
to load whole sets, and separates a new standardized PDF data format
from the code library so that new PDF sets may be created and released
easier and faster. The C++ LHAPDF6 also permits arbitrary parton
contents via the standard PDG ID code scheme, is computationally more
efficient (particularly if only one or two flavors are required at
each phase space point, as in PDF reweighting), and uses a flexible
metadata system which fixes many fundamental metadata and concurrency
bugs in LHAPDF5.
Compatibility routines are provided as standard for existing C++ and
Fortran codes using the LHAPDF5 and PDFLIB legacy interfaces, so you
can keep using your existing codes. But the new interface is much more
powerful and pleasant to work with, so we think you'll want to switch
once you've used it!
LHAPDF6 is documented in more detail in http://arxiv.org/abs/1412.7420
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}
Requires: yaml-cpp-devel
%description devel
This package provides development files of LHAPDF, including C++ bindings.
%package -n python3-%{name}
Summary: Les Houches Accord PDF Interface - Python 3 module
%py_provides python3-%{name}
%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 %{_libexecdir}/octave/packages/%{octpkg}-%{version}}
%{!?octave_cmd: %global octave_cmd() octave -H -q --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 python3-%{name}
This package provides Python 3 bindings for LHAPDF.
This package also provides a script called "lhapdf" which can be used
to query the catalog of PDF sets and to install and update them from
the command line. It accepts commands "list", "update", "install" and
"upgrade". Please run "lhapdf help" for full usage instructions.
%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
%description doc
This package provides API documentation and examples for LHAPDF.
%prep
%setup -q -n LHAPDF-%{version}
%patch -P0 -p1
%patch -P1 -p1
mkdir tests/SETS
tar -z -x -f %{SOURCE1} -C tests/SETS
tar -z -x -f %{SOURCE2} -C tests/SETS
tar -z -x -f %{SOURCE3} -C tests/SETS
cp -p %{SOURCE4} tests
# Remove bundled yaml-cpp
rm -rf src/yamlcpp/
# Fix shebangs
sed 's!/usr/bin/env python3!%{__python3}!' -i bin/lhapdf
sed 's!/usr/bin/env python!%{__python3}!' -i examples/*.py
sed 's!/usr/bin/env bash!/bin/bash!' -i bin/lhapdf-config.in
%build
%configure \
--disable-static \
--with-yaml-cpp \
--enable-librelease \
--docdir=%{_pkgdocdir} \
PYTHON=%{__python3}
%if %{?rhel}%{!?rhel:0} == 8
# cython version on RHEL 8 is too old and generates broken code.
# touch the pregenerated bundled source file to prevent regeneration.
# See: https://gitlab.com/hepcedar/lhapdf/-/merge_requests/122
touch wrappers/python/lhapdf.cpp
%else
rm wrappers/python/lhapdf.cpp
%endif
%make_build
%description doc
This package provides documentation of C++ bindings for LHAPDF.
# Build doxygen documentation
%make_build doxy
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -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
%if %{?fedora}%{!?fedora:0} >= 7 || %{?rhel}%{!?rhel:0} >= 6
# Remove bundled swig generated sources
rm pyext/lhapdf_wrap.cc
rm pyext/lhapdf.py
%endif
%build
%configure --disable-static --enable-octave
# Reduce overlinking
sed 's!CC \(.*-shared\) !CC \\\${wl}--as-needed \1 !' -i libtool
make %{?_smp_mflags}
%install
%make_install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
mkdir %{buildroot}%{python3_sitearch}/%{name}-%{version}.dist-info
cat << EOF > %{buildroot}%{python3_sitearch}/%{name}-%{version}.dist-info/METADATA
Name: %{name}
Version: %{version}
EOF
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
find %{buildroot}%{_pkgdocdir}/examples -type f -a '!' -name '*.*' -delete
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@fnal.gov>, Mike R Whalley <m.r.whalley@durham.ac.uk>
Maintainer: W Giele <giele@fnal.gov>, Mike R Whalley <m.r.whalley@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
sed '2a pkg load lhapdf' octave/lhapdf-octave-example1.m \
> lhapdf-octave-example1.m
mkdir -p %{buildroot}%{_datadir}/%{name}/PDFsets
install -m 644 -p PDFsets/* %{buildroot}%{_datadir}/%{name}/PDFsets
%check
# Workaround incomplete test environment
# See: https://gitlab.com/hepcedar/lhapdf/-/merge_requests/121
cp -p pdfsets.index tests/SETS
cp -p lhapdf.conf tests/SETS
export PYTHONPATH=$PWD/wrappers/python/build
export LD_LIBRARY_PATH=$PWD/src/.libs
%make_build check
%ifnarch s390 %{arm}
GNUTERM=dumb make check
%endif
%clean
rm -rf %{buildroot}
%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-%{version}.so
%{_datadir}/LHAPDF
%doc AUTHORS ChangeLog
%license COPYING
%{_libdir}/libLHAPDF.so.*
%doc AUTHORS ChangeLog COPYING README TODO
%files devel
%{_bindir}/%{name}-config
%{_bindir}/lhapdf-config
%{_mandir}/man1/lhapdf-config.1*
%{_includedir}/LHAPDF
%{_libdir}/libLHAPDF.so
%{_libdir}/pkgconfig/%{name}.pc
%doc examples/CC*.cc examples/Example*.f
%files -n python3-%{name}
%{_bindir}/%{name}
%{python3_sitearch}/%{name}-%{version}.dist-info
%{python3_sitearch}/%{name}
%files -n octave-%{name}
%{octpkglibdir}
%{octpkgdir}
%doc 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 %{_pkgdocdir}/doxygen
%doc %{_pkgdocdir}/examples
%license COPYING
%doc ccwrap/doxy/html COPYING
%changelog
* Wed Jul 22 2026 Python Maint <python-maint@redhat.com> - 6.5.6-6
- Rebuilt for Python 3.15.0b4 ABI change
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.6-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Wed Jun 03 2026 Python Maint <python-maint@redhat.com> - 6.5.6-4
- Rebuilt for Python 3.15
* Fri Apr 03 2026 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.5.6-3
- More fixes to lhapdf-config and lhapdf.pc
* Sat Mar 28 2026 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.5.6-2
- Correct the lhapdf-config output (backport from upstream git)
* Thu Mar 05 2026 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.5.6-1
- Update to version 6.5.6
- Add PDFs used by new tests to the source RPM
- Add test file missing from the source tarfile to the source RPM
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Fri Dec 05 2025 Orion Poplawski <orion@nwra.com> - 6.5.5-2
- Rebuild for yaml-cpp 0.8 (epel10)
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 6.5.5-6
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 6.5.5-5
- Rebuilt for Python 3.14.0rc2 bytecode
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Mon Jun 02 2025 Python Maint <python-maint@redhat.com> - 6.5.5-3
- Rebuilt for Python 3.14
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Jan 01 2025 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.5.5-1
- Update to version 6.5.5
- Drop soname patch, use new configure option --enable-librelease instead
- Unbundle yaml-cpp, using new configure option --with-yaml-cpp
- EPEL 7 EOL specfile cleanup
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.4-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 6.5.4-7
- Rebuilt for Python 3.13
* Mon Jun 03 2024 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.5.4-6
- Eliminate use of obsolete patchN syntax
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.5.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 6.5.4-2
- Rebuilt for Python 3.12
* Mon Mar 13 2023 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.5.4-1
- Update to version 6.5.4
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.4.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.4.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 6.4.0-3
- Rebuilt for Python 3.11
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sun Dec 19 2021 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.4.0-1
- Update to version 6.4.0
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.3.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 6.3.0-3
- Rebuilt for Python 3.10
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sun Aug 23 2020 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.3.0-1
- Update to version 6.3.0
- Drop patch lhapdf-cython-configure.patch (previously backported)
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.1-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 6.2.1-10
- Rebuilt for Python 3.9
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.1-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 6.2.1-8
- Rebuilt for Python 3.8
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Mar 07 2019 Troy Dawson <tdawson@redhat.com> - 6.2.1-6
- Rebuilt to change main python from 3.4 to 3.6
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Nov 10 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.2.1-5
- Drop Python 2 bindings for Fedora 29+
- Make Cython checking script usable with Python3 (backport)
- Add Python 3.6 package for EPEL 7
* Tue Jul 31 2018 Florian Weimer <fweimer@redhat.com> - 6.2.1-4
- Rebuild with fixed binutils
* Sun Jul 29 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.2.1-3
- Move lhapdf script to python3 package for Fedora 29+
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Jul 04 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 6.2.1-1
- Update to version 6.2.1
- Change license tag from GPLv2+ to GPLv3+
- Add Python 3 bindings
- Drop packages not provided by LHAPDF6: octave-lhapdf, lhapdf-pdfsets-minimal
* Wed Feb 07 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 5.9.1-23
- Compile with -std=legacy when using gfortran >= 8
* Thu Aug 10 2017 Mattias Ellert <mattias.ellert@physics.uu.se> - 5.9.1-22
- Rename python package
- EPEL 5 End-Of-Life specfile clean-up
- Remove Group and BuildRoot tags
- Don't clear the buildroot in the install section
- Remove the clean section
- Remove octave packaging macro definitions
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.9.1-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 5.9.1-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.9.1-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
* Wed Feb 08 2017 Kalev Lember <klember@redhat.com> - 5.9.1-18
- Rebuilt for libgfortran soname bump
* Wed Dec 07 2016 Orion Poplawski <orion@cora.nwra.com> - 5.9.1-17
- Rebuild for octave 4.2
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.9.1-16
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Wed Feb 17 2016 Mattias Ellert <mattias.ellert@fysast.uu.se> - 5.9.1-15
- Disable octave support for EPEL 6 ppc64 - octave no longer available
* Mon Feb 08 2016 Mattias Ellert <mattias.ellert@fysast.uu.se> - 5.9.1-14
- Disable tests on arm
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 5.9.1-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Jul 06 2015 Orion Poplawski <orion@cora.nwra.com> - 5.9.1-12
* Mon Jul 6 2015 Orion Poplawski <orion@cora.nwra.com> - 5.9.1-12
- Rebuild for octave 4.0
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.9.1-11

11
sources
View file

@ -1,4 +1,7 @@
SHA512 (LHAPDF-6.5.6.tar.gz) = 03cf1c848b127d76ab6f13b852743827c00ae9312721dcd1fd17a9d9d88fa50e5f004fcf2fa1b23d15a0b2c30515d5f2a5e2bee85e67be5c675864bdc364ca78
SHA512 (CT10nlo.tar.gz) = 64c1ae32380a8e8ae647bdd79a63bdb252540777f802bebf003d20ec3e7532370601619a85f6fd872f7d0e39e1a1f66ea96fcd4b9179e1f23e27d533906af493
SHA512 (MSTW2008nlo68cl.tar.gz) = 4bf44b96363c91cb85f298d139b356ed4111c842476f02b44efac18710e4ca168691d0cbb5222839b0d219ccb264e387fc8ac93a689f5d0981fed9478f45749b
SHA512 (NNPDF31_lo_as_0130.tar.gz) = 7f2ef921e8ddd938438978383778c5e7538105c78defe34abfe6212a480da9ccdfedbec30174f0aed18576a3c3fc03866bc22b329667b41f2896dfb3814d9d1a
5260c1979355243f6584c16a5f19bfd1 lhapdf-5.9.1.tar.gz
b592db3245a875f1a2ab5b0be0e06b5b cteq5l.LHgrid
330dc600f0ee7f9b5fa8051eef732930 cteq6ll.LHpdf
f85b82894b43df936fa395465ba155c4 cteq61.LHgrid
49276a39307a609d446722302915b09a CT10.LHgrid
4b93c4101fa8f162ae744da3b3fce031 GRV98nlo.LHgrid
a5121e3ab1912a4a72e85889ba5e9234 MRST2001nlo.LHgrid

View file

@ -1,45 +0,0 @@
#! /usr/bin/env python3
import lhapdf
print("Version:", lhapdf.version())
print()
#pdfset = lhapdf.getPDFSet("CT10nlo")
pdfset = lhapdf.getPDFSet("NNPDF31_lo_as_0130")
print(pdfset)
print("m_t =", pdfset.get_entry("MTop", 123.4))
print()
pdfs = pdfset.mkPDFs()
print()
xfs_g = [pdfs[k].xfxQ(21, 1e-4, 100.) for k in range(pdfset.size)]
print("Gluon PDFs at x = 0.001, Q = 100 GeV:", xfs_g)
print()
for alt_ci_method in [True,False]:
print(f"Using alt (asymm) CI calculation = {alt_ci_method}")
u = pdfset.uncertainty(xfs_g, 95., alt_ci_method)
print(u)
print(u.central)
print(" + ", u.errplus)
print(" - ", u.errminus)
print(" +-", u.errsymm)
print()
#import numpy as np
#for cl in np.linspace(0.0, 1.0, 20):
xfmin, xfmax = min(xfs_g), max(xfs_g)
print("Range =", xfmax - xfmin)
for i in range(11):
cl = i/10
print(f"CL = {cl:0.2f} -> CI = {pdfset.uncertainty(xfs_g, 100*cl, True).errsymm:0.2f}")
print(f" ... last interval should equal half-range = {(xfmax - xfmin)/2:0.2f}")
print()
e = pdfset.errorInfo
print(e)
print()
# pdf = lhapdf.mkPDF("CT10/0")
# print(pdf)