Date: Monday, April 17, 2023 @ 11:29:10
Author: dvzrv
Revision: 1446708
upgpkg: hepmc 3.2.6-1: Upgrade to 3.2.6 and rebuild against Python 3.11.
Apply cmake package guidelines to simplify build.
Run tests in check().
Pick files for docs instead of installing twice in the package_*() functions.
Apply depends/optdepends per split package not per pkgbase.
Modified:
hepmc/trunk/PKGBUILD
----------+
PKGBUILD | 105 ++++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 62 insertions(+), 43 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2023-04-17 11:21:10 UTC (rev 1446707)
+++ PKGBUILD 2023-04-17 11:29:10 UTC (rev 1446708)
@@ -4,61 +4,80 @@
pkgbase=hepmc
pkgname=("${pkgbase}" "${pkgbase}-docs")
_pkgname=HepMC3
-pkgver=3.2.5
+pkgver=3.2.6
pkgrel=1
pkgdesc="A particle physics package for storing collision events from Monte
Carlo generators"
arch=('x86_64')
url="http://hepmc.web.cern.ch/"
license=('GPL3')
-depends=('bash')
-makedepends=('cmake' 'doxygen' 'hepmc2' 'gcc-fortran' 'graphviz' 'root'
'pythia8' 'python')
-optdepends=('root: ROOT I/O'
- 'pythia8: Pythia support'
- 'python: Python interface')
+makedepends=('cmake' 'doxygen' 'gcc-fortran' 'graphviz' 'hepmc2' 'pythia8'
'python' 'root')
source=("${pkgbase}-${pkgver}.tar.gz::http://hepmc.web.cern.ch/${pkgbase}/releases/${_pkgname}-${pkgver}.tar.gz")
-sha256sums=('cd0f75c80f75549c59cc2a829ece7601c77de97cb2a5ab75790cac8e1d585032')
+sha256sums=('248f3b5b36dd773844cbe73d51f60891458334b986b259754c59dbf4bbf1d525')
+_pick() {
+ local p="$1" f d; shift
+ for f; do
+ d="$srcdir/$p/${f#$pkgdir/}"
+ mkdir -p "$(dirname "$d")"
+ mv "$f" "$d"
+ rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
+ done
+}
+
build() {
- mkdir build
- cd build
- PYTHIA8_ROOT_DIR=/usr \
- cmake "${srcdir}/${_pkgname}-${pkgver}" \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- -DHEPMC3_PYTHON_VERSIONS='3.X' \
- -DHEPMC3_ENABLE_TEST=ON \
- -DHEPMC3_BUILD_DOCS=ON \
- -DHEPMC3_BUILD_EXAMPLES=ON \
- -DHEPMC3_INSTALL_INTERFACES=ON \
- -DUSE_INTERFACE_FROM_PYTHIA8=ON \
- -DPYTHIA8_XMLDOC_DIR=/usr/share/pythia8/xmldoc
- make
+ local cmake_options=(
+ -B build
+ -D CMAKE_BUILD_TYPE=None
+ -D CMAKE_INSTALL_PREFIX=/usr
+ -D HEPMC3_BUILD_DOCS=ON
+ -D HEPMC3_BUILD_EXAMPLES=ON
+ -D HEPMC3_ENABLE_TEST=ON
+ -D HEPMC3_INSTALL_INTERFACES=ON
+ -D HEPMC3_PYTHON_VERSIONS='3.X'
+ -D USE_INTERFACE_FROM_PYTHIA8=ON
+ -D PYTHIA8_XMLDOC_DIR=/usr/share/pythia8/xmldoc
+ -S $_pkgname-$pkgver
+ -W no-dev
+ )
+
+ cmake "${cmake_options[@]}"
+ cmake --build build --verbose
}
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
package_hepmc() {
- cd "${srcdir}/build"
- make DESTDIR="${pkgdir}/" install
- # fix CMake
- install -d "${pkgdir}/usr/lib/cmake"
- mv "${pkgdir}/usr/share/HepMC3/cmake" "${pkgdir}/usr/lib/cmake/${_pkgname}"
- sed -i 's@${CMAKE_CURRENT_LIST_DIR}/../../../@/usr@' \
- "${pkgdir}/usr/lib/cmake/${_pkgname}/${_pkgname}Config.cmake"
- # drop docs
- rm -rf "${pkgdir}"/usr/share/doc
+ depends=(
+ bash
+ gcc-libs
+ glibc
+ )
+ optdepends=(
+ 'hpmc-docs: for documentation'
+ 'pythia8: Pythia support'
+ 'python: Python interface'
+ 'root: ROOT I/O'
+ )
+
+ DESTDIR="$pkgdir" cmake --install build
+
+ # fix CMake
+ # TODO: report upstream and have them fix this!
+ install -vd "${pkgdir}/usr/lib/cmake"
+ mv -v "${pkgdir}/usr/share/HepMC3/cmake"
"${pkgdir}/usr/lib/cmake/${_pkgname}"
+ sed -i 's@${CMAKE_CURRENT_LIST_DIR}/../../../@/usr@' \
+ "${pkgdir}/usr/lib/cmake/${_pkgname}/${_pkgname}Config.cmake"
+
+ (
+ cd "$pkgdir"
+ _pick $pkgbase-docs usr/share/doc
+ )
}
package_hepmc-docs() {
- depends=()
- pkgdesc="A particle physics package for storing collision events from
Monte Carlo generators (Documentation)"
- cd "${srcdir}/build"
- make DESTDIR="${pkgdir}/" install
- # fix CMake
- install -d "${pkgdir}/usr/lib/cmake"
- mv "${pkgdir}/usr/share/HepMC3/cmake" "${pkgdir}/usr/lib/cmake/${_pkgname}"
- sed -i 's@${CMAKE_CURRENT_LIST_DIR}/../../../@/usr@' \
- "${pkgdir}/usr/lib/cmake/${_pkgname}/${_pkgname}Config.cmake"
- # drop everything, but docs
- rm -rf "${pkgdir}"/usr/bin
- rm -rf "${pkgdir}"/usr/include
- rm -rf "${pkgdir}"/usr/lib
- rm -rf "${pkgdir}"/usr/share/HepMC3
+ pkgdesc+=" - documentation"
+
+ mv -v $pkgname/* "$pkgdir"
}