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"
 }

Reply via email to