diff --git a/collier.spec b/collier.spec
index 327dc9c627e..d0c51bd7dee 100644
--- a/collier.spec
+++ b/collier.spec
@@ -20,8 +20,13 @@ cmake ../ \
make -j1
%install
-mkdir -p %{i}/lib %{i}/include
+mkdir -p %{i}/lib %{i}/include %{i}/cmake
cp libcollier.a %{i}/lib
cp modules/*.mod %{i}/include/
+cp collierConfig.cmake %{i}/cmake
+cp collierConfigVersion.cmake %{i}/cmake
+sed -i 's;^.*set(COLLIER_LIBRARY_DIR.*$;get_filename_component(COLLIER_LIBRARY_DIR "${CMAKE_CURRENT_LIST_DIR}/../lib" ABSOLUTE);' %{i}/cmake/collierConfig.cmake
+sed -i 's;^.*set(COLLIER_INCLUDE_DIR.*$;get_filename_component(COLLIER_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/../include" ABSOLUTE);' %{i}/cmake/collierConfig.cmake
+
diff --git a/recola.spec b/recola.spec
new file mode 100644
index 00000000000..889bc6add23
--- /dev/null
+++ b/recola.spec
@@ -0,0 +1,23 @@
+### RPM external recola 1.5.0
+Source: https://recola.hepforge.org/downloads/%{n}-%{realversion}.tar.gz
+Requires: collier
+BuildRequires: cmake
+
+%define keep_archives true
+
+%prep
+%setup -q -n recola-%{realversion}
+
+%build
+rm -rf build && mkdir build
+cmake -S . -B build \
+ -DCMAKE_INSTALL_PREFIX=%{i} \
+ -Dcollier_path=${COLLIER_ROOT} \
+ -Dwith_smtests=ON
+cmake --build build %{makeprocesses}
+
+
+%install
+cmake --install build
+sed -i 's;^.*set(RECOLA_LIBRARY_DIR.*$;get_filename_component(RECOLA_LIBRARY_DIR "${CMAKE_CURRENT_LIST_DIR}/../../lib" ABSOLUTE);' %{i}/lib/cmake/recolaConfig.cmake
+sed -i 's;^.*set(RECOLA_INCLUDE_DIR.*$;get_filename_component(RECOLA_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../include" ABSOLUTE);' %{i}/lib/cmake/recolaConfig.cmake
diff --git a/scram-tools.file/tools/recola/recola.xml b/scram-tools.file/tools/recola/recola.xml
new file mode 100644
index 00000000000..98d323226f0
--- /dev/null
+++ b/scram-tools.file/tools/recola/recola.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/sherpa-2.2.10-hepmcshort.patch b/sherpa-2.2.16-hepmcshort.patch
similarity index 77%
rename from sherpa-2.2.10-hepmcshort.patch
rename to sherpa-2.2.16-hepmcshort.patch
index 44fecbb943e..5c28e584f11 100644
--- a/sherpa-2.2.10-hepmcshort.patch
+++ b/sherpa-2.2.16-hepmcshort.patch
@@ -1,7 +1,8 @@
-diff -Naur a/SHERPA/Main/Sherpa.C b/SHERPA/Main/Sherpa.C
---- a/SHERPA/Main/Sherpa.C 2020-08-24 10:09:46.822502996 +0200
-+++ b/SHERPA/Main/Sherpa.C 2020-08-24 10:15:36.098836763 +0200
-@@ -294,21 +294,23 @@
+diff --git a/SHERPA/Main/Sherpa.C b/SHERPA/Main/Sherpa.C
+index 0a16d23..ecb58e0 100644
+--- a/SHERPA/Main/Sherpa.C
++++ b/SHERPA/Main/Sherpa.C
+@@ -300,21 +300,23 @@ bool Sherpa::GenerateOneEvent(bool reset)
}
#ifdef USING__HEPMC2
@@ -29,10 +30,11 @@ diff -Naur a/SHERPA/Main/Sherpa.C b/SHERPA/Main/Sherpa.C
p_hepmc3->AddCrossSection(event, TotalXS(), TotalErr());
}
#endif
-diff -Naur a/SHERPA/Main/Sherpa.H b/SHERPA/Main/Sherpa.H
---- a/SHERPA/Main/Sherpa.H 2020-08-24 10:09:46.822502996 +0200
-+++ b/SHERPA/Main/Sherpa.H 2020-08-24 10:11:27.751754145 +0200
-@@ -54,10 +54,10 @@
+diff --git a/SHERPA/Main/Sherpa.H b/SHERPA/Main/Sherpa.H
+index 599178b..d654d2c 100644
+--- a/SHERPA/Main/Sherpa.H
++++ b/SHERPA/Main/Sherpa.H
+@@ -54,10 +54,10 @@ namespace SHERPA {
bool GenerateOneEvent(bool reset=true);
#ifdef USING__HEPMC2
diff --git a/sherpa-cpp20.patch b/sherpa-cpp20.patch
deleted file mode 100644
index b76c3ace7a5..00000000000
--- a/sherpa-cpp20.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 1de52ee230891277370fc4f787fc8cb4b7626ef2 Mon Sep 17 00:00:00 2001
-From: iarspider
-Date: Wed, 28 Jun 2023 07:35:10 +0000
-Subject: [PATCH] [ATOOLS] Fix C++20 compilation errors
-
----
- ATOOLS/Org/Getter_Function.H | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/ATOOLS/Org/Getter_Function.H b/ATOOLS/Org/Getter_Function.H
-index f68d190ca2..09340da390 100644
---- a/ATOOLS/Org/Getter_Function.H
-+++ b/ATOOLS/Org/Getter_Function.H
-@@ -84,7 +84,7 @@ namespace ATOOLS {
- void PrintInfo(std::ostream &str,const size_t width) const; \
- Object_Type *operator()(const Parameter_Type ¶meters) const; \
- public: \
-- Getter