Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions bz2lib.spec
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ BuildRequires: gmake

%prep
%setup -n bzip2-bzip2-%{realversion}
sed -i 's/-Wl,-soname -Wl,libbz2.so.1.0/-Wl,-soname -Wl,libbz2.so.1/' Makefile-libbz2_so
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shimashimarin , I think this is not needed if you use the libzip spec from https://github.com/cms-sw/cmsdist/blob/IB/CMSSW_17_0_X/devel/libzip.spec . @akritkbehera mentioned that if few flags are not explicitly turned OFF for libzip then it picks up system bz2lib and that is why rpm dependnecy fails. Please use the libzip from devel branch and remove this line

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@smuzaffar thanks for you comments. I've update libzip.spec and modified related things accordingly

sed -e 's/ -shared/ -dynamiclib/' \
-e 's/ -Wl,-soname -Wl,[^ ]*//' \
-e 's/libbz2\.so/libbz2.dylib/g' \
Expand Down
16 changes: 16 additions & 0 deletions libzip.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
### RPM external libzip 1.11.4
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shimashimarin , @akritkbehera already have added libzip (which was needed for xrootd 6.x series) in devel branch https://github.com/cms-sw/cmsdist/blob/IB/CMSSW_17_0_X/devel/libzip.spec . Can you please use https://github.com/cms-sw/cmsdist/blob/IB/CMSSW_17_0_X/devel/libzip.spec so that we do not have to resolve any merge conflicts

Source: git+https://github.com/nih-at/libzip.git?obj=main/v%{realversion}&export=%{n}-%{realversion}&output=/%{n}-%{realversion}.tgz
Requires: zlib zstd
BuildRequires: cmake

%prep
%setup -n %{n}-%{realversion}

%build
rm -rf build && mkdir build
cmake -S . -B build \
-DCMAKE_INSTALL_PREFIX=%{i}
cmake --build build %{makeprocesses}

%install
cmake --install build
4 changes: 3 additions & 1 deletion openloops.spec
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ done
./openloops libinstall openloops-user.coll

%install
mkdir %i/{lib,proclib}
mkdir %i/{lib,proclib,include}
cp lib/*.so %i/lib
cp proclib/*.so %i/proclib
cp proclib/*.info %i/proclib
cp proclib/*.rinfo %i/proclib
cp include/* %i/include
10 changes: 10 additions & 0 deletions scram-tools.file/tools/libzip/libzip.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<tool revision="1">
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shimashimarin , is sherpa v3 linking against libzip.so? If yes then please add the following here

  <lib name="zip"/>

<client>
<environment name="LIBDIR" default="$TOOL_BASE/lib"/>
<environment name="INCLUDE" default="$TOOL_BASE/include"/>
</client>
<runtime name="PATH" value="$TOOL_BASE/bin" type="path"/>
<runtime name="ROOT_INCLUDE_PATH" value="$INCLUDE" type="path"/>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ROOT_INCLUDE_PATH should only be added if the headers files of this tool end up in root dictionaries? Do you think that libzip headers will will end up in root dicts generated in cmssw (directly or indirectly via sherpa headers)? If not then please remove this line

<use name="zlib"/>
<use name="zstd"/>
</tool>
1 change: 1 addition & 0 deletions scram-tools.file/tools/openloops/openloops.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<tool revision="3">
<client>
<environment name="LIBDIR" default="$TOOL_BASE/lib"/>
<environment name="INCLUDE" default="$TOOL_BASE/include"/>
<runtime name="CMS_OPENLOOPS_PREFIX" value="$TOOL_BASE" type="path"/>
</client>
</tool>
18 changes: 11 additions & 7 deletions scram-tools.file/tools/sherpa/sherpa.xml
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
<tool revision="3">
<lib name="SherpaMain"/>
<lib name="ToolsPhys"/>
<lib name="ToolsMath"/>
<lib name="ToolsYaml"/>
<lib name="ToolsOrg"/>
<lib name="SherpaSingleEvents"/>
<lib name="SherpaTools"/>
<client>
<environment name="BINDIR" default="$TOOL_BASE/bin"/>
<environment name="LIBDIR" default="$TOOL_BASE/lib/SHERPA-MC"/>
<environment name="LIBDIR" default="$TOOL_BASE/lib64/SHERPA-MC"/>
<environment name="INCLUDE" default="$TOOL_BASE/include/SHERPA-MC"/>
</client>
<runtime name="CMSSW_FWLITE_INCLUDE_PATH" value="$TOOL_BASE/include" type="path"/>
<runtime name="SHERPA_SHARE_PATH" value="$TOOL_BASE/share/SHERPA-MC" type="path"/>
<runtime name="SHERPA_INCLUDE_PATH" value="$TOOL_BASE/include/SHERPA-MC" type="path"/>
<runtime name="ROOT_INCLUDE_PATH" value="$INCLUDE" type="path"/>
<runtime name="SHERPA_LIBRARY_PATH" value="$TOOL_BASE/lib/SHERPA-MC" type="path"/>
<use name="root_cxxdefaults"/>
<use name="HepMC"/>
<runtime name="SHERPA_LIBRARY_PATH" value="$TOOL_BASE/lib64/SHERPA-MC" type="path"/>
<runtime name="SHERPA_CMAKE_PATH" value="$TOOL_BASE/share/SHERPA-MC" type="path"/>
<use name="HepMC3"/>
<use name="lhapdf"/>
<use name="qd"/>
<use name="blackhat"/>
<use name="fastjet"/>
<use name="sqlite"/>
<use name="mpi"/>
<use name="openmpi"/>
<use name="rivet"/>
<use name="pythia8"/>
<use name="libzip"/>
<ifarchitecture name="!ppc64le">
<use name="openloops"/>
</ifarchitecture>
Expand Down
85 changes: 34 additions & 51 deletions sherpa.spec
Original file line number Diff line number Diff line change
@@ -1,60 +1,43 @@
### RPM external sherpa 2.2.16
Source: git+https://gitlab.com/sherpa-team/sherpa.git?obj=master/v%{realversion}&export=%{n}-%{realversion}&output=/%{n}-%{realversion}.tgz
Requires: hepmc lhapdf blackhat sqlite python3 fastjet openmpi hepmc3
BuildRequires: mcfm swig autotools
Patch0: sherpa-2.2.16-hepmcshort
#Avoid calling setenv: https://gitlab.com/sherpa-team/sherpa/-/commit/6ead62d7a2758612f8965fb5b61df8c012cf9cae.diff
Patch1: sherpa-setenv
#Disable build Manual and Examples
Patch2: sherpa-disable-manual
### RPM external sherpa 3.0.4
Source: git+https://gitlab.com/sherpa-team/sherpa.git?obj=master/v%{realversion}&export=%{n}-%{realversion}&output=/%{n}-%{realversion}.tgz
Requires: hepmc3 lhapdf blackhat fastjet openmpi rivet pythia8 libzip
BuildRequires: cmake swig

%{!?without_openloops:Requires: openloops}

%prep
%setup -q -n sherpa-%{realversion}
%patch0 -p1
%patch1 -p1
%patch2 -p1

autoreconf -i --force

# Force architecture based on %%cmsplatf
%ifarch x86_64
ARCH_CMSPLATF="-m64"
%endif
%setup -q -n %{n}-%{realversion}

%build
export PYTHON=$(which python3)
./configure --prefix=%i --enable-analysis --disable-silent-rules \
--enable-fastjet=$FASTJET_ROOT \
--enable-hepmc2=$HEPMC_ROOT \
--enable-hepmc3=$HEPMC3_ROOT \
--enable-lhapdf=$LHAPDF_ROOT \
--enable-blackhat=$BLACKHAT_ROOT \
--enable-pyext \
--enable-ufo \
${OPENLOOPS_ROOT+--enable-openloops=$OPENLOOPS_ROOT} \
--enable-mpi \
--with-sqlite3=$SQLITE_ROOT \
--enable-analysis \
CC="mpicc" \
CXX="mpicxx" \
MPICXX="mpicxx" \
FC="mpifort" \
CXXFLAGS="-fuse-cxa-atexit $ARCH_CMSPLATF -O2 -std=c++0x -I$LHAPDF_ROOT/include -I$BLACKHAT_ROOT/include -I$RIVET_ROOT/include" \
LDFLAGS="-ldl -L$BLACKHAT_ROOT/lib/blackhat -L$QD_ROOT/lib"

make %{makeprocesses}
rm -rf build && mkdir build

cmake -S . -B build \
-DCMAKE_INSTALL_PREFIX=%i \
-DSHERPA_ENABLE_MPI=ON -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_Fortran_COMPILER=mpifort \
-DSHERPA_ENABLE_ANALYSIS=ON \
-DSHERPA_ENABLE_EXAMPLES=ON \
-DSHERPA_ENABLE_LIBZIP=ON -DLibZip_DIR=$LIBZIP_ROOT \
-DSHERPA_ENABLE_GZIP=ON \
-DSHERPA_ENABLE_HEPMC3=ON -DHEPMC3_DIR=$HEPMC3_ROOT -DSHERPA_ENABLE_HEPMC3_ROOT=OFF \
-DSHERPA_ENABLE_LHAPDF=ON -DLHAPDF_DIR=$LHAPDF_ROOT -DSHERPA_ENABLE_INTERNAL_PDFS=OFF \
-DSHERPA_ENABLE_BLACKHAT=ON -DBLACKHAT_DIR=$BLACKHAT_ROOT \
${OPENLOOPS_ROOT+-DSHERPA_ENABLE_OPENLOOPS=ON -DOPENLOOPS_DIR=$OPENLOOPS_ROOT} \
-DSHERPA_ENABLE_ROOT=OFF \
-DSHERPA_ENABLE_PYTHIA8=ON -DPYHIA8_DIR=$PYTHIA8_ROOT \
-DSHERPA_ENABLE_RECOLA=OFF \
-DSHERPA_ENABLE_RIVET=ON -DRIVET_DIR=$RIVET_ROOT \
-DSHERPA_ENABLE_EWSUD=ON \
-DSHERPA_ENABLE_PYTHON=ON \
-DSHERPA_ENABLE_UFO=ON \
-DSHERPA_ENABLE_THREADING=ON \
-DSHERPA_ENABLE_DIHIGGS=OFF \
-DSHERPA_ENABLE_MADLOOP=OFF \
-DSHERPA_ENABLE_MCFM=OFF \
-DSHERPA_ENABLE_TESTING=OFF \
-DSHERPA_ENABLE_INTEGRATION_TESTS=OFF \
-DSHERPA_ENABLE_BINRELOC=OFF
cmake --build build %{makeprocesses}

%install
make install
find %{i}/lib -name '*.la' -delete
cmake --install build
sed -i -e 's|^#!/.*|#!/usr/bin/env python3|' %{i}/bin/Sherpa-generate-model

%post
%{relocateConfig}lib/python%{cms_python3_major_minor_version}/site-packages/ufo_interface/sconstruct_template
%{relocateConfig}bin/make2scons
%{relocateConfig}share/SHERPA-MC/makelibs
%{relocateConfig}bin/Sherpa-config
%{relocateConfig}bin/Sherpa-generate-model
%{relocateConfig}include/SHERPA-MC/ATOOLS/Org/CXXFLAGS*.H