[arch-commits] Commit in root/trunk (5 files)

Konstantin Gizdov kgizdov at archlinux.org
Wed Nov 27 23:59:35 UTC 2019


    Date: Wednesday, November 27, 2019 @ 23:59:35
  Author: kgizdov
Revision: 534244

restructure package, fix CMake, provide pkg-config

Added:
  root/trunk/root.pc.tpl
Modified:
  root/trunk/PKGBUILD
  root/trunk/settings-cuda.cmake
  root/trunk/settings.cmake
Deleted:
  root/trunk/rootd

---------------------+
 PKGBUILD            |   83 +++++++++++++++++++++++++++++++++-----------------
 root.pc.tpl         |   11 ++++++
 rootd               |   37 ----------------------
 settings-cuda.cmake |    3 +
 settings.cmake      |    3 +
 5 files changed, 73 insertions(+), 64 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-11-27 23:16:46 UTC (rev 534243)
+++ PKGBUILD	2019-11-27 23:59:35 UTC (rev 534244)
@@ -7,7 +7,7 @@
 pkgbase=root
 pkgname=('root' 'root-cuda')
 pkgver=6.18.04
-pkgrel=4
+pkgrel=5
 pkgdesc='C++ data analysis framework and interpreter from CERN'
 arch=('x86_64')
 url='https://root.cern.ch'
@@ -83,15 +83,15 @@
             'xrootd: Support remote file server and client')
 source=("https://root.cern.ch/download/root_v${pkgver}.source.tar.gz"
         'root.xml'
-        'rootd'
+        'root.pc.tpl'
         'settings.cmake'
         'settings-cuda.cmake'
         'add_missing_include_ROOT-10315.patch')
 sha256sums=('315a85fc8363f8eb1bffa0decbf126121258f79bd273513ed64795675485cfa4'
             '50c08191a5b281a39aa05ace4feb8d5405707b4c54a5dcba061f954649c38cb0'
-            '3c45b03761d5254142710b7004af0077f18efece7c95511910140d0542c8de8a'
-            '070256512fb94df55201891919168777f1c0d61316018e98cddaaa97c9063d55'
-            '4ae9f2971c4360fc216ecb793aa11f98e069b33a746c05cdb635fe684a5800c9'
+            'a0fc0c9404905f61fe8ba94e52ffbbefcdbcb198f2a577703b1924364a251395'
+            'e24884e67ad241e4893c8ecac973cd38f1ea523a54e774cc996989d40091cce3'
+            'a676e65d2615a5bb89943f72adc6e1552df60e9b0dc040c7bb05f6d640d9dbd6'
             '1cb2654f22b5f1de7f8621434c76266968db77a1f300de857e47d0f4ad5da217')
 
 get_pyver () {
@@ -123,8 +123,12 @@
     CFLAGS="${CFLAGS} -pthread" \
     CXXFLAGS="${CXXFLAGS} -pthread" \
     LDFLAGS="${LDFLAGS} -pthread -Wl,--no-undefined" \
-    cmake -C "${srcdir}/settings.cmake" -DTARGET_ARCHITECTURE:STRING=generic -DPYTHON_EXECUTABLE:PATH=/usr/bin/python \
-    "${srcdir}/${pkgbase}-${pkgver}"
+    cmake -C "${srcdir}/settings.cmake" \
+        -DTARGET_ARCHITECTURE:STRING=generic \
+        -DPYTHON_EXECUTABLE:PATH=/usr/bin/python \
+        -DINSTALL_PREFIX=/usr \
+        -DDEFAULT_SYSROOT=/usr \
+        "${srcdir}/${pkgbase}-${pkgver}"
 
     cd "${srcdir}/build"
     make
@@ -138,8 +142,12 @@
     CFLAGS="${CFLAGS} -pthread" \
     CXXFLAGS="${CXXFLAGS} -pthread" \
     LDFLAGS="${LDFLAGS} -pthread -Wl,--no-undefined" \
-    cmake -C "${srcdir}/settings-cuda.cmake" -DTARGET_ARCHITECTURE:STRING=generic -DPYTHON_EXECUTABLE:PATH=/usr/bin/python \
-    "${srcdir}/${pkgbase}-${pkgver}-cuda"
+    cmake -C "${srcdir}/settings-cuda.cmake" \
+        -DTARGET_ARCHITECTURE:STRING=generic \
+        -DPYTHON_EXECUTABLE:PATH=/usr/bin/python \
+        -DINSTALL_PREFIX=/usr \
+        -DDEFAULT_SYSROOT=/usr \
+        "${srcdir}/${pkgbase}-${pkgver}-cuda"
 
     cd "${srcdir}/build-cuda"
     make
@@ -146,8 +154,8 @@
 }
 
 _package() {
-    local bld_dir="${1}"
-    cd "${srcdir}/${bld_dir}"
+    local bld_dir="${srcdir}/${1}"
+    cd "${bld_dir}"
 
     make DESTDIR="${pkgdir}" install
 
@@ -160,7 +168,7 @@
     local _pydir="${pkgdir}/usr/lib/python${_pyver}/site-packages"
     install -d "${_pydir}"
     find "${pkgdir}/usr/lib/root" -maxdepth 1 -mindepth 1 \( -iname "*py*" -or -name "*Js*" \) ! -name "*EGPythia8*" -print0 | while read -rd $'\0' _lib; do
-        _base=$(basename ${_lib})
+        _base=$(basename "${_lib}")
         ln -sf "/usr/lib/root/${_base}" "${pkgdir}/usr/lib/python${_pyver}/site-packages/${_base}"
     done
 
@@ -170,29 +178,50 @@
     python -O -m compileall -d "/usr/lib/python${_pyver}" \
         "${pkgdir}/usr/lib/python${_pyver}"
 
-    install -D "${srcdir}/rootd" \
-        "${pkgdir}/etc/rc.d/rootd"
-    install -D -m644 "${srcdir}/root.xml" \
-        "${pkgdir}/usr/share/mime/packages/root.xml"
-
-    install -D -m644 "${srcdir}/${pkgbase}-${pkgver}/etc/root.desktop" \
+    # icon, shortcut and mime
+    install -Dm644 "${srcdir}/${pkgbase}-${pkgver}/icons/Root6Icon.png" \
+        "${pkgdir}/usr/share/icons/hicolor/48x48/apps/root.png"
+    install -Dm644 "${srcdir}/${pkgbase}-${pkgver}/etc/root.desktop" \
         "${pkgdir}/usr/share/applications/root.desktop"
-
-    install -D -m644 "${srcdir}/${pkgbase}-${pkgver}/icons/Root6Icon.png" \
-        "${pkgdir}/usr/share/icons/hicolor/48x48/apps/root.png"
     echo 'Icon=root.png' >> "${pkgdir}/usr/share/applications/root.desktop"
+    install -Dm644 "${srcdir}/root.xml" \
+        "${pkgdir}/usr/share/mime/packages/root.xml"
 
     # use a file that pacman can track instead of adding directly to ld.so.conf
     install -d "${pkgdir}/etc/ld.so.conf.d"
     echo '/usr/lib/root' > "${pkgdir}/etc/ld.so.conf.d/root.conf"
 
-    rm -rf "${pkgdir}/etc/root/daemons"
+    # create pkg-config file
+    local _prefix _exec_prefix _bindir _libdir _incdir _pkg_ver _libs _cflags
+    _prefix="$("${pkgdir}"/usr/bin/root-config --prefix)"
+    _exec_prefix="$("${pkgdir}"/usr/bin/root-config --exec-prefix)"
+    _bindir="$("${pkgdir}"/usr/bin/root-config --bindir)"
+    _libdir="$("${pkgdir}"/usr/bin/root-config --libdir)"
+    _incdir="$("${pkgdir}"/usr/bin/root-config --incdir)"
+    _pkg_ver="$(sed -n 's,.*ROOT_RELEASE *\"\(.*\)\".*,\1,p' < "${pkgdir}"/usr/include/RVersion.h)"
+    _libs="$("${pkgdir}"/usr/bin/root-config --libs)"
+    _cflags="$("${pkgdir}"/usr/bin/root-config --cflags)"
+    cp "${srcdir}/root.pc.tpl" "${bld_dir}"/
+    sed -e "s at _PREFIX@${_prefix}@" -e "s at _EXECPREFIX@${_exec_prefix}@" \
+        -e "s at _LIBDIR@${_libdir}@" -e "s at _INCDIR@${_incdir}@" \
+        -e "s at _PKGVERSION@${_pkg_ver}@" -e "s at _LIBRARIES@${_libs}@" \
+        -e "s at _CFLAGS@${_cflags}@" \
+        -i "${bld_dir}/root.pc.tpl"
+    install -Dm644 "${bld_dir}/root.pc.tpl" "${pkgdir}/usr/lib/pkgconfig/root.pc"
+
+    # put CMake config in correct path and fix relative paths
+    install -d "${pkgdir}/usr/lib/cmake"
+    mv "${pkgdir}/usr/share/root/cmake"/* "${pkgdir}/usr/lib/cmake"/
+    rm -rf "${pkgdir}/usr/share/root/cmake"
+    sed -e "s at ROOT_INCLUDE_DIRS .*include\"@ROOT_INCLUDE_DIRS \"${_incdir}\"@" \
+        -e "s at ROOT_LIBRARY_DIR .*lib/root\"@ROOT_LIBRARY_DIR \"${_libdir}\"@" \
+        -e "s at ROOT_BINARY_DIR .*bin\"@ROOT_BINARY_DIR \"${_bindir}\"@" \
+        -e 's@# ROOT configured for the install with relative paths, so use these@# ROOT was patched to use correct absolute paths, specifically these at g' \
+        -i "${pkgdir}"/usr/lib/cmake/ROOTConfig.cmake
+    ln -sf "/usr/lib/root/cmake/cling" "${pkgdir}/usr/lib/cmake/cling"
 }
 
 package_root() {
-    provides=('root-extra' 'python-pyroot')
-    replaces=('root-extra' 'python-pyroot')
-    conflicts=('root-extra' 'python-pyroot' 'python2-pyroot')
     optdepends+=('gcc-fortran: Enable the Fortran components of ROOT')
     _package build
 }
@@ -199,8 +228,8 @@
 
 package_root-cuda() {
     pkgdesc='C++ data analysis framework and interpreter from CERN with GPU (CUDA) features enabled'
-    provides=('root' 'root-extra')
-    conflicts=('root' 'root-extra' 'python-pyroot' 'python2-pyroot')
+    provides=('root')
+    conflicts=('root')
     depends+=('cuda')
     optdepends+=('gcc8-fortran: Enable the Fortran components of ROOT')
     _package build-cuda

Added: root.pc.tpl
===================================================================
--- root.pc.tpl	                        (rev 0)
+++ root.pc.tpl	2019-11-27 23:59:35 UTC (rev 534244)
@@ -0,0 +1,11 @@
+prefix=_PREFIX
+exec_prefix=_EXECPREFIX
+libdir=_LIBDIR
+includedir=_INCDIR
+
+Name: ROOT
+Version: _PKGVERSION
+Description: C++ data analysis framework and interpreter from CERN
+Requires:
+Libs: _LIBRARIES
+Cflags: _CFLAGS

Deleted: rootd
===================================================================
--- rootd	2019-11-27 23:16:46 UTC (rev 534243)
+++ rootd	2019-11-27 23:59:35 UTC (rev 534244)
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-. /etc/rc.conf
-. /etc/rc.d/functions
-
-PID=`pidof -o %PPID /usr/sbin/rootd`
-case "$1" in
-  start)
-  stat_busy "Starting ROOT file server daemon"
-    [ -z "$PID" ] && /usr/bin/rootd >>/var/log/root.log 2>&1
-    if [ $? -gt 0 ]; then
-      stat_fail
-    else
-      PID=`pidof -o %PPID /usr/sbin/rootd`
-      echo $PID >/var/run/rootd.pid
-      add_daemon rootd
-      stat_done
-    fi
-    ;;
-  stop)
-  stat_busy "Stopping ROOT file server daemon"
-    [ ! -z "$PID" ]  && kill $PID &>/dev/null
-    if [ $? -gt 0 ]; then
-      stat_fail
-    else
-      rm_daemon rootd
-      stat_done
-    fi
-    ;;
-  restart)
-    $0 stop
-    $0 start
-    ;;
-  *)
-    echo "usage: $0 {start|stop|restart}"
-esac
-exit 0

Modified: settings-cuda.cmake
===================================================================
--- settings-cuda.cmake	2019-11-27 23:16:46 UTC (rev 534243)
+++ settings-cuda.cmake	2019-11-27 23:59:35 UTC (rev 534244)
@@ -1,6 +1,9 @@
 set (CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE)
 set (BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)  # this option is currently incompatible
 set (CMAKE_INSTALL_PREFIX /usr CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_BINDIR bin CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_LIBDIR lib/root CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_INCLUDEDIR include CACHE PATH "" FORCE)
 set (CMAKE_INSTALL_SYSCONFDIR /etc/root CACHE PATH "" FORCE)
 set (CMAKE_INSTALL_DATAROOTDIR /usr/share CACHE PATH "" FORCE)
 set (CMAKE_CXX_STANDARD 14 CACHE STRING "" FORCE)

Modified: settings.cmake
===================================================================
--- settings.cmake	2019-11-27 23:16:46 UTC (rev 534243)
+++ settings.cmake	2019-11-27 23:59:35 UTC (rev 534244)
@@ -1,6 +1,9 @@
 set (CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE)
 set (BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)  # this option is currently incompatible
 set (CMAKE_INSTALL_PREFIX /usr CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_BINDIR bin CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_LIBDIR lib/root CACHE PATH "" FORCE)
+set (CMAKE_INSTALL_INCLUDEDIR include CACHE PATH "" FORCE)
 set (CMAKE_INSTALL_SYSCONFDIR /etc/root CACHE PATH "" FORCE)
 set (CMAKE_INSTALL_DATAROOTDIR /usr/share CACHE PATH "" FORCE)
 set (CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)



More information about the arch-commits mailing list