Date: Tuesday, November 30, 2021 @ 20:24:17 Author: foutrelis Revision: 1058211
archrelease: copy trunk to community-staging-x86_64 Added: root/repos/community-staging-x86_64/ root/repos/community-staging-x86_64/8351.patch (from rev 1058203, root/trunk/8351.patch) root/repos/community-staging-x86_64/PKGBUILD (from rev 1058203, root/trunk/PKGBUILD) root/repos/community-staging-x86_64/ROOFIT_LICENSE (from rev 1058203, root/trunk/ROOFIT_LICENSE) root/repos/community-staging-x86_64/jupyter_notebook_config.py (from rev 1058205, root/trunk/jupyter_notebook_config.py) root/repos/community-staging-x86_64/nbman-for-arch.patch (from rev 1058205, root/trunk/nbman-for-arch.patch) root/repos/community-staging-x86_64/root.pc.tpl (from rev 1058205, root/trunk/root.pc.tpl) root/repos/community-staging-x86_64/root.xml (from rev 1058205, root/trunk/root.xml) root/repos/community-staging-x86_64/settings-cuda.cmake (from rev 1058206, root/trunk/settings-cuda.cmake) root/repos/community-staging-x86_64/settings.cmake (from rev 1058206, root/trunk/settings.cmake) root/repos/community-staging-x86_64/thisroot.fail (from rev 1058207, root/trunk/thisroot.fail) ----------------------------+ 8351.patch | 29 ++++ PKGBUILD | 304 +++++++++++++++++++++++++++++++++++++++++++ ROOFIT_LICENSE | 22 +++ jupyter_notebook_config.py | 1 nbman-for-arch.patch | 177 +++++++++++++++++++++++++ root.pc.tpl | 12 + root.xml | 14 + settings-cuda.cmake | 112 +++++++++++++++ settings.cmake | 112 +++++++++++++++ thisroot.fail | 49 ++++++ 10 files changed, 832 insertions(+) Copied: root/repos/community-staging-x86_64/8351.patch (from rev 1058203, root/trunk/8351.patch) =================================================================== --- community-staging-x86_64/8351.patch (rev 0) +++ community-staging-x86_64/8351.patch 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1,29 @@ +From 87a0caf0c8b2b4158a6f35e948087ae64c4c06a7 Mon Sep 17 00:00:00 2001 +From: Enrico Guiraud <enrico.guir...@cern.ch> +Date: Mon, 7 Jun 2021 11:02:48 +0200 +Subject: [PATCH] [io] Avoid nullptr deref when printing warning in + TStreamerInfo + +--- + io/io/src/TStreamerInfo.cxx | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/io/io/src/TStreamerInfo.cxx b/io/io/src/TStreamerInfo.cxx +index d545ab7be8e3..a02663589066 100644 +--- a/io/io/src/TStreamerInfo.cxx ++++ b/io/io/src/TStreamerInfo.cxx +@@ -1109,12 +1109,12 @@ void TStreamerInfo::BuildCheck(TFile *file /* = 0 */, Bool_t load /* = kTRUE */) + fClassVersion, GetName(), GetName(), GetName(), fClassVersion); + } else { + Warning("BuildCheck", "\n\ +- The StreamerInfo from %s does not match existing one (%s:%d)\n\ ++ The StreamerInfo does not match existing one (%s:%d)\n\ + The existing one has not been used yet and will be discarded.\n\ + Reading should work properly, however writing object of\n\ + type %s will not work properly. Most likely the version number\n\ + of the class was not properly updated [See ClassDef(%s,%d)].", +- file->GetName(), GetName(), fClassVersion, GetName(), GetName(), fClassVersion); ++ GetName(), fClassVersion, GetName(), GetName(), fClassVersion); + } + } + } Copied: root/repos/community-staging-x86_64/PKGBUILD (from rev 1058203, root/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1,304 @@ +# Maintainer: Konstantin Gizdov < arch at kge dot pw > +# Contributor: Frank Siegert < frank.siegert at googlemail dot com > +# Contributor: Scott Lawrence < bytbox at gmail dot com > +# Contributor: Thomas Dziedzic < gostrc at gmail dot com > +# Contributor: Sebastian Voecking < voeck at web dot de > + +pkgbase=root +pkgname=('root' 'root-cuda') +pkgver=6.24.06 +pkgrel=9 +pkgdesc='C++ data analysis framework and interpreter from CERN' +arch=('x86_64') +url='https://root.cern' +license=('LGPL2.1' 'GPL' 'custom:University of California and Stanford University License') +makedepends=( + 'ccache' + 'cern-vdt' + 'chromium' + 'cfitsio' + 'cmake' + 'cuda' + 'cudnn' + 'gcc-fortran' + 'git' + 'go' + 'libxml2' + 'libmariadbclient' + 'ocaml' + 'ocaml-ctypes' + 'openmp' + 'openmpi' + 'openssl' + 'openui5' + 'postgresql-libs' + 'pythia8>=8.2.40-1' + 'python-pygments' + 'qt5-webengine' + 'sqlite' + 'unuran' + 'vc' + 'xrootd>5' + 'z3' +) +depends=( + 'blas' + 'desktop-file-utils' + 'fcgi' + 'fftw' + 'ftgl' + 'giflib' + 'gl2ps' + 'glew' + 'graphviz' + 'gsl' + 'hicolor-icon-theme' + 'libafterimage' + 'librsvg' + 'libxpm' + 'nlohmann-json' + 'python' + 'python-numpy' + 'tbb' + 'tex-gyre-fonts' + 'unixodbc' + 'xxhash>=0.6.5-1' + 'zstd' +) +optdepends=( + 'cern-vdt: Add a set of fast and vectorisable mathematical functions' + 'chromium: Support for WebGUI' + 'cfitsio: Read images and data from FITS files' + 'libmariadbclient: MySQL support' + 'libxml2: XML parser interface' + 'openmp: Support OpenMP extensions in Minuit2' + 'openmpi: Support OpenMPI extensions in Minuit2' + 'openssl: OpenSSL support' + 'openui5: JSROOT support' + 'postgresql-libs: PostgreSQL support' + 'pythia8>=8.2.40-1: Pythia8 EG support' + 'python-pygments: syntax highlighting in interactive console' + 'qt5-webengine: Support for WebGUI' + 'sqlite: SQLite support' + 'tcsh: Legacy CSH support' + 'unuran: Support non-uniform random numbers' + 'vc: Add types for portable and intuitive SIMD programming' + 'xrootd>5: Support remote file server and client' + 'z3: Suuport the Z3 theorem prover' +) +source=( + "https://root.cern.ch/download/root_v${pkgver}.source.tar.gz" + 'ROOFIT_LICENSE' + 'root.xml' + 'root.pc.tpl' + 'settings.cmake' + 'settings-cuda.cmake' + 'jupyter_notebook_config.py' + 'nbman-for-arch.patch' + '8351.patch' + 'thisroot.fail' +) +sha512sums=('356d6287df2900de9e831347d9513f444bf7cbd29c39fbb5841051ae877dac1e22dc255c64166cd3925b82aac860ae67ef6ce171732c16fd23d7919a47e7cb5a' + 'af8f178fc9df66997d5495b271e38adcd1636aab4c8fc994c6600c2496127829d831250d73d3fc229b02dfe49b9867d0be979beacb959f2f3a05351b8118a4a6' + '1fe6f4aa09d583d33f27cc766f4935510bb7ab6bbb8d4700baa1aaab92ea6c876500b67da1e4f6e0b510aa5616e4e193b860264b86925de85f2d9f558d75d5dc' + '3c81d255a17b902ffac0187af1752847036137e16641a88b17eef0d9c944e6f0d3c954bc93307d6270603f43f6c23f2e04f98dc7a68f9d076dbaa8006a2527d6' + '4ef971eac7520d27fa88848c8d477243b1fc372e42122e3928092dc68ed2eea19ad0dea6203cf77b61406eea1da7a260a39d2bc116a19e59de99e99a51fb6bf5' + '99cfdd351f1ec1eaca84fffefa82d1f9f9af691e5d5dd8955b047aac324b8cb0ba2b657074d8e0a707e44f024d2f465a9a410bf7c729f12c0d84fcd17c63ca01' + '1c905ee7a3f8f5f3f567d957f9be6b503a8631565d4d9b9bfea5e496ef86865c5a8be1a1f8c7842754029879cf0afd2465249f532a116cc43660aa2e460ae682' + '12814f50b7016bd86d3f91e0e31c052783a0c0fa72b7d6a072d3ae6f86c2437323d585e531235377ebbfdd9cb76abd7da84d9631de821151547f1d4b13417e69' + '870740fbbd678056dd71b275c5d96f9b0db503ca8e0e9e84f784c3115aae66bb28a1eb531f665c1c8306a52686e5ce484ef65b3194bef6cb0d631664ccb1e3f9' + '3b9e382480b28f60af0b096ac9a42e6ba611b899717988bdebffd5aeabab054e37a28a7421f4a0f39198638c31f56a657a8a9ccc3db54a87daf50d43d35b1ca9') + +get_pyver () { + python -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))' +} + +prepare() { + local src + for src in "${source[@]}"; do + src="${src%%::*}" + src="${src##*/}" + [[ $src = *.patch ]] || continue + echo " -> Applying patch $src..." + patch -Np1 -i "../$src" -d "${srcdir}/${pkgbase}-${pkgver}" + done + + # specify some custom flags + # needed by vc to link properly + CUSTOM_CMAKE_FLAGS="-DTARGET_ARCHITECTURE:STRING=generic" + # make sure it finds python + CUSTOM_CMAKE_FLAGS+=" -DPYTHON_EXECUTABLE:PATH=/usr/bin/python" + # need to set install prefix like so + CUSTOM_CMAKE_FLAGS+=" -DINSTALL_PREFIX=/usr" + export CUSTOM_CMAKE_FLAGS + + # update system flags + # don't let ROOT play around with lib paths + # the following is no longer necessary + # sed -i -e 's@SetLibraryPath();@@g' \ + # "${srcdir}/${pkgbase}-${pkgver}/rootx/src/rootx.cxx" + # now only depends on IS_RPATH_BUILD being set + # so pass it to GCC + export CPPFLAGS="${CPPFLAGS} -DIS_RPATH_BUILD=1" + # make sure pthread gets detected + CUSTOM_COMPILER_FLAGS="${CPPFLAGS} -pthread" + export CFLAGS="${CFLAGS} ${CUSTOM_COMPILER_FLAGS}" + export CXXFLAGS="${CXXFLAGS} ${CUSTOM_COMPILER_FLAGS}" + # do not link undefined + CUSTOM_COMPILER_FLAGS+=" -Wl,--no-undefined" + export LDFLAGS="${LDFLAGS} ${CUSTOM_COMPILER_FLAGS}" + + # go flags for built-in clang + export CGO_LDFLAGS="${LDFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -modcacherw" + + # pass CUDA architectures to nvcc calls + # Not yet supported in root: TBD + export CUSTOM_CUDA_ARCH='-DCMAKE_CUDA_ARCHITECTURES="52-real 52-virtual + 53-real 53-virtual 60-real 60-virtual + 61-real 61-virtual 62-real 62-virtual + 70-real 70-virtual 72-real 72-virtual + 75-real 75-virtual 80-real 80-virtual + 86-real 86-virtual"' + + cp -r "${pkgbase}-${pkgver}" "${pkgbase}-${pkgver}-cuda" +} + +build() { + ## ROOT + mkdir -p "${srcdir}/build" + cd "${srcdir}/build" + + cmake -C "${srcdir}/settings.cmake" \ + ${CUSTOM_CMAKE_FLAGS} \ + "${srcdir}/${pkgbase}-${pkgver}" + make + + ## ROOT with CUDA + mkdir -p "${srcdir}/build-cuda" + cd "${srcdir}/build-cuda" + + CC=/usr/bin/gcc \ + CXX=/usr/bin/g++ \ + FC=/usr/bin/f95 \ + cmake -C "${srcdir}/settings-cuda.cmake" \ + ${CUSTOM_CMAKE_FLAGS} \ + ${CUSTOM_CUDA_ARCH} \ + "${srcdir}/${pkgbase}-${pkgver}-cuda" + make +} + +_package() { + local bld_dir="${srcdir}/${1}" + cd "${bld_dir}" + + make DESTDIR="${pkgdir}" install + + # fix missing hardlinks for genreflex and rootcint + cd "${pkgdir}"/usr/bin + ln -f rootcling rootcint + ln -f rootcling genreflex + cd "${bld_dir}" # go back + + # rename the modulemap + mv "${pkgdir}"/usr/include/module.modulemap "${pkgdir}"/usr/include/root.modulemap + + # fix python env call + sed -e 's/@python@/python/' -i "${pkgdir}/usr/lib/root/cmdLineUtils.py" + + # try to deal with weird PyROOT, PyMVA and JupyROOT stuff + rm -rf "${pkgdir}/usr/lib/root/__pycache__" + local _pyver=$(get_pyver) + 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*' -or -name 'ROOT' \) \ + ! \( -name '*EGPythia8*' -or -iname '*.rootmap' -or -iname '*.pcm' \) -print0 | while read -rd $'\0' _lib; do + _base=$(basename "${_lib}") + ln -sf "/usr/lib/root/${_base}" "${pkgdir}/usr/lib/python${_pyver}/site-packages/${_base}" + done + + # recompile pycache to strip $pkgdir from embedded paths + python -m compileall -d "/usr/lib/python${_pyver}" \ + "${pkgdir}/usr/lib/python${_pyver}" + python -O -m compileall -d "/usr/lib/python${_pyver}" \ + "${pkgdir}/usr/lib/python${_pyver}" + + # 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" + 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" + + # create pkg-config file + local _prefix _exec_prefix _bindir _libdir _incdir _pkg_ver _libs _cflags _requires + _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)" + printf -v _requires '%s,' "${depends[@]}" + cp "${srcdir}/root.pc.tpl" "${bld_dir}"/ + sed -e "s@_PREFIX@${_prefix}@" -e "s@_EXECPREFIX@${_exec_prefix}@" \ + -e "s@_LIBDIR@${_libdir}@" -e "s@_INCDIR@${_incdir}@" \ + -e "s@_PKGVERSION@${_pkg_ver}@" -e "s@_LIBRARIES@${_libs}@" \ + -e "s@_CFLAGS@${_cflags}@" -e "s@_UPSTREAM_URL@${url}@" \ + -e "s@_REQUIRES@${_requires}@" \ + -i "${bld_dir}/root.pc.tpl" + install -Dm644 "${bld_dir}/root.pc.tpl" "${pkgdir}/usr/lib/pkgconfig/root.pc" + + # install all licenses & docs + install -d "${pkgdir}/usr/share/licenses/roofit" + install "${srcdir}/ROOFIT_LICENSE" "${pkgdir}/usr/share/licenses/roofit/LICENSE" + install -d "${pkgdir}/usr/share/licenses/${pkgname}" + ln -s '/usr/share/doc/root/LICENSE' "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + for _fold in fonts js; do + install -d "${pkgdir}/usr/share/licenses/${pkgname}/${_fold}" + ln -s "/usr/share/root/${_fold}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/${_fold}"/ + done + ln -s '/usr/share/licenses/roofit' "${pkgdir}/usr/share/licenses/${pkgname}/roofit" + if [ "${pkgname}" != "root" ]; then + ln -s "/usr/share/licenses/${pkgname}" "${pkgdir}/usr/share/licenses/root" + ln -s "/usr/share/doc/root" "${pkgdir}/usr/share/doc/${pkgname}" + fi + + # install jupyter kernels and `root --notebook` config + install -d "${pkgdir}/usr/share/jupyter/kernels" + ln -s '/etc/root/notebook/kernels/root' "${pkgdir}/usr/share/jupyter/kernels/root" + install "${srcdir}/jupyter_notebook_config.py" "${pkgdir}/etc/root/notebook"/ + + # drop thisroot.* shell files + rm -rf "${pkgdir}"/usr/bin/thisroot.* + install -Dm755 "${srcdir}/thisroot.fail" "${pkgdir}/usr/bin/thisroot.sh" + for suffix in csh fish; do + ln -s '/usr/bin/thisroot.sh' "${pkgdir}/usr/bin/thisroot.${suffix}" + done + + # set correct LD_LIBRARY_PATH at runtime + sed -i.orig \ + -e "s@#Unix.*.Root.DynamicPath:.*@Unix.*.Root.DynamicPath: .:${_libdir}:/usr/lib@" \ + "${pkgdir}/etc/root/system.rootrc" +} + +package_root() { + optdepends+=('gcc-fortran: Enable the Fortran components of ROOT') + _package build +} + +package_root-cuda() { + pkgdesc='C++ data analysis framework and interpreter from CERN with GPU (CUDA) features enabled' + provides=('root') + conflicts=('root') + depends+=('cuda' 'cudnn') + optdepends+=('gcc-fortran: Enable the Fortran components of ROOT') + _package build-cuda +} Copied: root/repos/community-staging-x86_64/ROOFIT_LICENSE (from rev 1058203, root/trunk/ROOFIT_LICENSE) =================================================================== --- community-staging-x86_64/ROOFIT_LICENSE (rev 0) +++ community-staging-x86_64/ROOFIT_LICENSE 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1,22 @@ +RooFit --- Copyright (c) 2000-2005, Regents of the University of California and Stanford University +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copied: root/repos/community-staging-x86_64/jupyter_notebook_config.py (from rev 1058205, root/trunk/jupyter_notebook_config.py) =================================================================== --- community-staging-x86_64/jupyter_notebook_config.py (rev 0) +++ community-staging-x86_64/jupyter_notebook_config.py 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1 @@ +c.NotebookApp.ip = '*' Copied: root/repos/community-staging-x86_64/nbman-for-arch.patch (from rev 1058205, root/trunk/nbman-for-arch.patch) =================================================================== --- community-staging-x86_64/nbman-for-arch.patch (rev 0) +++ community-staging-x86_64/nbman-for-arch.patch 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1,177 @@ +diff --color -aur root-6.22.00-old/main/src/nbmain.cxx root-6.22.00-new/main/src/nbmain.cxx +--- root-6.22.00-old/main/src/nbmain.cxx 2020-07-20 15:26:53.983725609 +0300 ++++ root-6.22.00-new/main/src/nbmain.cxx 2020-07-20 15:29:53.940386060 +0300 +@@ -33,10 +33,6 @@ + #define NB_OPT "notebook" + #define JUPYTER_CONF_DIR_V "JUPYTER_CONFIG_DIR" + #define JUPYTER_PATH_V "JUPYTER_PATH" +-#define NB_CONF_DIR "notebook" +-#define ROOTNB_DIR ".rootnb" +-#define COMMIT_FILE ".rootcommit" +-#define JUPYTER_CONFIG "jupyter_notebook_config.py" + + using namespace std; + +@@ -46,161 +46,12 @@ + #endif + + //////////////////////////////////////////////////////////////////////////////// +-/// Checks whether ROOT notebook files are installed and they are +-/// the current version. +- +-static int CheckNbInstallation(string dir) +-{ +- string commit(gROOT->GetGitCommit()); +- string inputfname(dir + pathsep + ROOTNB_DIR + pathsep + COMMIT_FILE); +- ifstream in(inputfname); +- if (in.is_open()) { +- string line; +- in >> line; +- in.close(); +- if (line.compare(commit) == 0) return 0; // already installed +- else return -1; // install, it's outdated +- } +- else if (gSystem->AccessPathName(inputfname.c_str())) { +- // There is no installation +- return -1; +- } +- else { +- fprintf(stderr, +- "Error checking notebook installation -- cannot open %s\n", +- inputfname.c_str()); +- return -2; +- } +-} +- +-//////////////////////////////////////////////////////////////////////////////// +-/// Installs ROOT notebook files in the user's home directory. +- +-static bool InstallNbFiles(string source, string dest) +-{ +- // Create installation directory +- if (gSystem->AccessPathName(dest.c_str())) { +- if (gSystem->mkdir(dest.c_str())) { +- fprintf(stderr, +- "Error installing notebook configuration files -- cannot create directory %s\n", +- dest.c_str()); +- return false; +- } +- } +- +- // Copy files in source to dest +- TSystemDirectory dir(source.c_str(), source.c_str()); +- std::unique_ptr<TList> files; +- files.reset(dir.GetListOfFiles()); +- if (files) { +- TSystemFile *file; +- TListIter it(files.get()); +- while ((file = (TSystemFile*)it())) { +- TString s = file->GetName(); +- string fname(s.Data()); +- string sourcefile = source + pathsep + fname; +- string destfile = dest + pathsep + fname; +- if (!file->IsDirectory()) { +- if (gSystem->CopyFile(sourcefile.c_str(), destfile.c_str(), true)) { +- fprintf(stderr, +- "Error installing notebook configuration files -- cannot copy file %s to %s\n", +- sourcefile.c_str(), destfile.c_str()); +- return false; +- } +- } +- else if (fname.compare(".") && fname.compare("..") && fname.compare("html")) { +- if (!InstallNbFiles(sourcefile, destfile)) +- return false; +- } +- } +- } +- +- return true; +-} +- +-//////////////////////////////////////////////////////////////////////////////// +-/// Creates the Jupyter notebook configuration file that sets the +-/// necessary environment. +- +-static bool CreateJupyterConfig(string dest, string rootbin, string rootlib, string rootdata) +-{ +- string jupyconfig = dest + pathsep + JUPYTER_CONFIG; +- ofstream out(jupyconfig, ios::trunc); +- if (out.is_open()) { +- out << "import os" << endl; +- out << "rootbin = '" << rootbin << "'" << endl; +- out << "rootlib = '" << rootlib << "'" << endl; +-#ifdef WIN32 +- string jsrootsys = rootdata + "\\js\\"; +- out << "os.environ['PYTHONPATH'] = '%s' % rootlib + ':' + os.getenv('PYTHONPATH', '')" << endl; +- out << "os.environ['PATH'] = '%s:%s\\bin' % (rootbin,rootbin) + ':' + '%s' % rootlib + ':' + os.getenv('PATH', '')" << endl; +-#else +- string jsrootsys = rootdata + "/js/"; +- out << "os.environ['PYTHONPATH'] = '%s' % rootlib + ':' + os.getenv('PYTHONPATH', '')" << endl; +- out << "os.environ['PATH'] = '%s:%s/bin' % (rootbin,rootbin) + ':' + os.getenv('PATH', '')" << endl; +- out << "os.environ['LD_LIBRARY_PATH'] = '%s' % rootlib + ':' + os.getenv('LD_LIBRARY_PATH', '')" << endl; +-#endif +- out << "c.NotebookApp.extra_static_paths = ['" << jsrootsys << "']" << endl; +- out.close(); +- return true; +- } +- else { +- fprintf(stderr, +- "Error installing notebook configuration files -- cannot create IPython config file at %s\n", +- jupyconfig.c_str()); +- return false; +- } +-} +- +-//////////////////////////////////////////////////////////////////////////////// +-/// Creates a file that stores the current commit id in it. +- +-static bool CreateStamp(string dest) +-{ +- ofstream out(dest + pathsep + COMMIT_FILE, ios::trunc); +- if (out.is_open()) { +- out << gROOT->GetGitCommit(); +- out.close(); +- return true; +- } +- else { +- fprintf(stderr, +- "Error installing notebook configuration files -- cannot create %s\n", +- COMMIT_FILE); +- return false; +- } +-} +- +-//////////////////////////////////////////////////////////////////////////////// + /// Spawn a Jupyter notebook customised by ROOT. + + int main(int argc, char **argv) + { +- string rootbin(TROOT::GetBinDir().Data()); +- string rootlib(TROOT::GetLibDir().Data()); +- string rootetc(TROOT::GetEtcDir().Data()); +- string rootdata(TROOT::GetDataDir().Data()); +- +- // If needed, install ROOT notebook files in the user's home directory +-#ifdef WIN32 +- string homedir(getenv("USERPROFILE")); +-#else +- string homedir(getenv("HOME")); +-#endif +- int inst = CheckNbInstallation(homedir); +- if (inst == -1) { +- // The etc directory contains the ROOT notebook files to install +- string source(rootetc + pathsep + NB_CONF_DIR); +- string dest(homedir + pathsep + ROOTNB_DIR); +- bool res = InstallNbFiles(source, dest) && +- CreateJupyterConfig(dest, rootbin, rootlib, rootdata) && +- CreateStamp(dest); +- if (!res) return 1; +- } +- else if (inst == -2) return 1; +- + // Set IPython directory for the ROOT notebook flavour +- string rootnbpath = homedir + pathsep + ROOTNB_DIR; ++ string rootnbpath = pathsep + string("etc") + pathsep + string("root") + pathsep + string("notebook"); + string jupyconfdir(JUPYTER_CONF_DIR_V + ("=" + rootnbpath)); + string jupypathdir(JUPYTER_PATH_V + ("=" + rootnbpath)); + putenv((char *)jupyconfdir.c_str()); Copied: root/repos/community-staging-x86_64/root.pc.tpl (from rev 1058205, root/trunk/root.pc.tpl) =================================================================== --- community-staging-x86_64/root.pc.tpl (rev 0) +++ community-staging-x86_64/root.pc.tpl 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1,12 @@ +prefix=_PREFIX +exec_prefix=_EXECPREFIX +libdir=_LIBDIR +includedir=_INCDIR + +Name: ROOT +Description: C++ data analysis framework and interpreter from CERN +Version: _PKGVERSION +URL: _UPSTREAM_URL +Requires: _REQUIRES +Libs: _LIBRARIES +Cflags: _CFLAGS Copied: root/repos/community-staging-x86_64/root.xml (from rev 1058205, root/trunk/root.xml) =================================================================== --- community-staging-x86_64/root.xml (rev 0) +++ community-staging-x86_64/root.xml 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> + <mime-type type="application/x-root"> + <comment>ROOT file</comment> + <comment xml:lang="de">ROOT-Datei</comment> + <comment xml:lang="en">ROOT-File</comment> + <comment xml:lang="fr">ROOT-Fichier</comment> + <comment xml:lang="it">ROOT-File</comment> + <glob pattern="*.root"/> + <magic priority="80"> + <match value="root" type="string" offset="0:64"/> + </magic> + </mime-type> +</mime-info> Copied: root/repos/community-staging-x86_64/settings-cuda.cmake (from rev 1058206, root/trunk/settings-cuda.cmake) =================================================================== --- community-staging-x86_64/settings-cuda.cmake (rev 0) +++ community-staging-x86_64/settings-cuda.cmake 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1,112 @@ +set (CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE) +set (BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE) +set (CMAKE_INSTALL_PREFIX /usr CACHE PATH "" FORCE) +set (CMAKE_INSTALL_CMAKEDIR /usr/lib/cmake/ROOT CACHE PATH "" FORCE) +set (CMAKE_INSTALL_BINDIR /usr/bin CACHE PATH "" FORCE) +set (CMAKE_INSTALL_LIBDIR /usr/lib/root CACHE PATH "" FORCE) +set (CMAKE_INSTALL_INCLUDEDIR /usr/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) +set (CMAKE_CUDA_STANDARD 17 CACHE STRING "" FORCE) +set (PYTHIA8_DATA /usr/share/pythia8/xmldoc CACHE PATH "" FORCE) # sync with pythia8 package +set (GLEW_DIR /usr/include/GL CACHE PATH "" FORCE) # need to set manually +set (alien OFF CACHE BOOL "" FORCE) +set (all OFF CACHE BOOL "" FORCE) +set (asimage ON CACHE BOOL "" FORCE) +set (builtin_afterimage OFF CACHE BOOL "" FORCE) +set (builtin_clang ON CACHE BOOL "" FORCE) +set (CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "" FORCE) +set (CLANG_ANALYZER_BUILD_Z3 ON CACHE BOOL "" FORCE) +set (builtin_cfitsio OFF CACHE BOOL "" FORCE) +set (builtin_davix OFF CACHE BOOL "" FORCE) +set (builtin_fftw3 OFF CACHE BOOL "" FORCE) +set (builtin_ftgl OFF CACHE BOOL "" FORCE) +set (builtin_freetype OFF CACHE BOOL "" FORCE) +set (builtin_gl2ps OFF CACHE BOOL "" FORCE) +set (builtin_glew OFF CACHE BOOL "" FORCE) +set (builtin_gsl OFF CACHE BOOL "" FORCE) +set (builtin_lzma OFF CACHE BOOL "" FORCE) +set (builtin_nlohmannjson OFF CACHE BOOL "" FORCE) +set (builtin_openui5 OFF CACHE BOOL "" FORCE) +set (builtin_llvm ON CACHE BOOL "" FORCE) +set (builtin_openssl OFF CACHE BOOL "" FORCE) +set (builtin_pcre OFF CACHE BOOL "" FORCE) +set (builtin_tbb OFF CACHE BOOL "" FORCE) +set (builtin_unuran OFF CACHE BOOL "" FORCE) +set (builtin_vc OFF CACHE BOOL "" FORCE) +set (builtin_xxhash OFF CACHE BOOL "" FORCE) +set (builtin_xrootd OFF CACHE BOOL "" FORCE) +set (builtin_zlib OFF CACHE BOOL "" FORCE) +set (ccache ON CACHE BOOL "" FORCE) +set (clad ON CACHE BOOL "" FORCE) +set (cocoa OFF CACHE BOOL "" FORCE) # MacOS only +set (cuda ON CACHE BOOL "" FORCE) +set (cudnn ON CACHE BOOL "" FORCE) +set (dataframe ON CACHE BOOL "" FORCE) +set (davix OFF CACHE BOOL "" FORCE) +set (dcache OFF CACHE BOOL "" FORCE) +set (exceptions ON CACHE BOOL "" FORCE) +set (fail-on-missing ON CACHE BOOL "" FORCE) +set (fcgi ON CACHE BOOL "" FORCE) +set (fftw3 ON CACHE BOOL "" FORCE) +set (fitsio ON CACHE BOOL "" FORCE) +set (fortran ON CACHE BOOL "" FORCE) +set (gdml ON CACHE BOOL "" FORCE) +set (genvector ON CACHE BOOL "" FORCE) +set (gfal OFF CACHE BOOL "" FORCE) +set (gl2ps ON CACHE BOOL "" FORCE) +set (gminimal OFF CACHE BOOL "" FORCE) +set (gnuinstall ON CACHE BOOL "" FORCE) +set (gsl_shared ON CACHE BOOL "" FORCE) +set (gviz ON CACHE BOOL "" FORCE) +set (http ON CACHE BOOL "" FORCE) +set (imt ON CACHE BOOL "" FORCE) +set (jemalloc OFF CACHE BOOL "" FORCE) +set (mathmore ON CACHE BOOL "" FORCE) +set (minimal OFF CACHE BOOL "" FORCE) +set (minuit2 ON CACHE BOOL "" FORCE) +set (minuit2_mpi ON CACHE BOOL "" FORCE) +set (minuit2_omp ON CACHE BOOL "" FORCE) +set (mlp ON CACHE BOOL "" FORCE) +set (monalisa OFF CACHE BOOL "" FORCE) +set (mpi ON CACHE BOOL "" FORCE) +set (mt ON CACHE BOOL "" FORCE) +set (mysql ON CACHE BOOL "" FORCE) +set (odbc ON CACHE BOOL "" FORCE) +set (opengl ON CACHE BOOL "" FORCE) +set (OpenGL_GL_PREFERENCE GLVND CACHE STRING "" FORCE) # use new policy since 3.11 +set (oracle OFF CACHE BOOL "" FORCE) +set (pgsql ON CACHE BOOL "" FORCE) +set (pythia6 OFF CACHE BOOL "" FORCE) +set (pythia6_nolink OFF CACHE BOOL "" FORCE) +set (pythia8 ON CACHE BOOL "" FORCE) +set (pyroot ON CACHE BOOL "" FORCE) +set (qt5web ON CACHE BOOL "" FORCE) +set (roofit ON CACHE BOOL "" FORCE) +set (root7 ON CACHE BOOL "" FORCE) +set (roottest OFF CACHE BOOL "" FORCE) +set (rpath OFF CACHE BOOL "" FORCE) +set (runtime_cxxmodules OFF CACHE BOOL "" FORCE) # breaks python +set (r OFF CACHE BOOL "" FORCE) # requires r-rcpp +set (shadowpw ON CACHE BOOL "" FORCE) +set (shared ON CACHE BOOL "" FORCE) +set (soversion OFF CACHE BOOL "" FORCE) +set (spectrum ON CACHE BOOL "" FORCE) +set (sqlite ON CACHE BOOL "" FORCE) +set (ssl ON CACHE BOOL "" FORCE) +set (tbb ON CACHE BOOL "" FORCE) +set (tcmalloc OFF CACHE BOOL "" FORCE) +set (testing OFF CACHE BOOL "" FORCE) +set (tmva ON CACHE BOOL "" FORCE) +set (tmva-cpu OFF CACHE BOOL "" FORCE) +set (tmva-gpu ON CACHE BOOL "" FORCE) +set (tmva-pymva ON CACHE BOOL "" FORCE) +set (unuran ON CACHE BOOL "" FORCE) +set (vc ON CACHE BOOL "" FORCE) +set (vdt ON CACHE BOOL "" FORCE) +set (winrtdebug OFF CACHE BOOL "" FORCE) # windows only +set (webgui ON CACHE BOOL "" FORCE) +set (x11 ON CACHE BOOL "" FORCE) +set (xml ON CACHE BOOL "" FORCE) +set (xrootd ON CACHE BOOL "" FORCE) Copied: root/repos/community-staging-x86_64/settings.cmake (from rev 1058206, root/trunk/settings.cmake) =================================================================== --- community-staging-x86_64/settings.cmake (rev 0) +++ community-staging-x86_64/settings.cmake 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1,112 @@ +set (CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE) +set (BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE) +set (CMAKE_INSTALL_PREFIX /usr CACHE PATH "" FORCE) +set (CMAKE_INSTALL_CMAKEDIR /usr/lib/cmake/ROOT CACHE PATH "" FORCE) +set (CMAKE_INSTALL_BINDIR /usr/bin CACHE PATH "" FORCE) +set (CMAKE_INSTALL_LIBDIR /usr/lib/root CACHE PATH "" FORCE) +set (CMAKE_INSTALL_INCLUDEDIR /usr/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) +set (CMAKE_CUDA_STANDARD 17 CACHE STRING "" FORCE) +set (PYTHIA8_DATA /usr/share/pythia8/xmldoc CACHE PATH "" FORCE) # sync with pythia8 package +set (GLEW_DIR /usr/include/GL CACHE PATH "" FORCE) # need to set manually +set (alien OFF CACHE BOOL "" FORCE) +set (all OFF CACHE BOOL "" FORCE) +set (asimage ON CACHE BOOL "" FORCE) +set (builtin_afterimage OFF CACHE BOOL "" FORCE) +set (builtin_clang ON CACHE BOOL "" FORCE) +set (CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "" FORCE) +set (CLANG_ANALYZER_BUILD_Z3 ON CACHE BOOL "" FORCE) +set (builtin_cfitsio OFF CACHE BOOL "" FORCE) +set (builtin_davix OFF CACHE BOOL "" FORCE) +set (builtin_fftw3 OFF CACHE BOOL "" FORCE) +set (builtin_ftgl OFF CACHE BOOL "" FORCE) +set (builtin_freetype OFF CACHE BOOL "" FORCE) +set (builtin_gl2ps OFF CACHE BOOL "" FORCE) +set (builtin_glew OFF CACHE BOOL "" FORCE) +set (builtin_gsl OFF CACHE BOOL "" FORCE) +set (builtin_lzma OFF CACHE BOOL "" FORCE) +set (builtin_nlohmannjson OFF CACHE BOOL "" FORCE) +set (builtin_openui5 OFF CACHE BOOL "" FORCE) +set (builtin_llvm ON CACHE BOOL "" FORCE) +set (builtin_openssl OFF CACHE BOOL "" FORCE) +set (builtin_pcre OFF CACHE BOOL "" FORCE) +set (builtin_tbb OFF CACHE BOOL "" FORCE) +set (builtin_unuran OFF CACHE BOOL "" FORCE) +set (builtin_vc OFF CACHE BOOL "" FORCE) +set (builtin_xxhash OFF CACHE BOOL "" FORCE) +set (builtin_xrootd OFF CACHE BOOL "" FORCE) +set (builtin_zlib OFF CACHE BOOL "" FORCE) +set (ccache ON CACHE BOOL "" FORCE) +set (clad ON CACHE BOOL "" FORCE) +set (cocoa OFF CACHE BOOL "" FORCE) # MacOS only +set (cuda OFF CACHE BOOL "" FORCE) +set (cudnn OFF CACHE BOOL "" FORCE) +set (dataframe ON CACHE BOOL "" FORCE) +set (davix OFF CACHE BOOL "" FORCE) +set (dcache OFF CACHE BOOL "" FORCE) +set (exceptions ON CACHE BOOL "" FORCE) +set (fail-on-missing ON CACHE BOOL "" FORCE) +set (fcgi ON CACHE BOOL "" FORCE) +set (fftw3 ON CACHE BOOL "" FORCE) +set (fitsio ON CACHE BOOL "" FORCE) +set (fortran ON CACHE BOOL "" FORCE) +set (gdml ON CACHE BOOL "" FORCE) +set (genvector ON CACHE BOOL "" FORCE) +set (gfal OFF CACHE BOOL "" FORCE) +set (gl2ps ON CACHE BOOL "" FORCE) +set (gminimal OFF CACHE BOOL "" FORCE) +set (gnuinstall ON CACHE BOOL "" FORCE) +set (gsl_shared ON CACHE BOOL "" FORCE) +set (gviz ON CACHE BOOL "" FORCE) +set (http ON CACHE BOOL "" FORCE) +set (imt ON CACHE BOOL "" FORCE) +set (jemalloc OFF CACHE BOOL "" FORCE) +set (mathmore ON CACHE BOOL "" FORCE) +set (minimal OFF CACHE BOOL "" FORCE) +set (minuit2 ON CACHE BOOL "" FORCE) +set (minuit2_mpi ON CACHE BOOL "" FORCE) +set (minuit2_omp ON CACHE BOOL "" FORCE) +set (mlp ON CACHE BOOL "" FORCE) +set (monalisa OFF CACHE BOOL "" FORCE) +set (mpi ON CACHE BOOL "" FORCE) +set (mt ON CACHE BOOL "" FORCE) +set (mysql ON CACHE BOOL "" FORCE) +set (odbc ON CACHE BOOL "" FORCE) +set (opengl ON CACHE BOOL "" FORCE) +set (OpenGL_GL_PREFERENCE GLVND CACHE STRING "" FORCE) # use new policy since 3.11 +set (oracle OFF CACHE BOOL "" FORCE) +set (pgsql ON CACHE BOOL "" FORCE) +set (pythia6 OFF CACHE BOOL "" FORCE) +set (pythia6_nolink OFF CACHE BOOL "" FORCE) +set (pythia8 ON CACHE BOOL "" FORCE) +set (pyroot ON CACHE BOOL "" FORCE) +set (qt5web ON CACHE BOOL "" FORCE) +set (roofit ON CACHE BOOL "" FORCE) +set (root7 ON CACHE BOOL "" FORCE) +set (roottest OFF CACHE BOOL "" FORCE) +set (rpath OFF CACHE BOOL "" FORCE) +set (runtime_cxxmodules OFF CACHE BOOL "" FORCE) # breaks python +set (r OFF CACHE BOOL "" FORCE) # requires r-rcpp +set (shadowpw ON CACHE BOOL "" FORCE) +set (shared ON CACHE BOOL "" FORCE) +set (soversion OFF CACHE BOOL "" FORCE) +set (spectrum ON CACHE BOOL "" FORCE) +set (sqlite ON CACHE BOOL "" FORCE) +set (ssl ON CACHE BOOL "" FORCE) +set (tbb ON CACHE BOOL "" FORCE) +set (tcmalloc OFF CACHE BOOL "" FORCE) +set (testing OFF CACHE BOOL "" FORCE) +set (tmva ON CACHE BOOL "" FORCE) +set (tmva-cpu ON CACHE BOOL "" FORCE) +set (tmva-gpu OFF CACHE BOOL "" FORCE) +set (tmva-pymva ON CACHE BOOL "" FORCE) +set (unuran ON CACHE BOOL "" FORCE) +set (vc ON CACHE BOOL "" FORCE) +set (vdt ON CACHE BOOL "" FORCE) +set (winrtdebug OFF CACHE BOOL "" FORCE) # windows only +set (webgui ON CACHE BOOL "" FORCE) +set (x11 ON CACHE BOOL "" FORCE) +set (xml ON CACHE BOOL "" FORCE) +set (xrootd ON CACHE BOOL "" FORCE) Copied: root/repos/community-staging-x86_64/thisroot.fail (from rev 1058207, root/trunk/thisroot.fail) =================================================================== --- community-staging-x86_64/thisroot.fail (rev 0) +++ community-staging-x86_64/thisroot.fail 2021-11-30 20:24:17 UTC (rev 1058211) @@ -0,0 +1,49 @@ +#!/bin/bash + +# thisroot.* scripts should not be used to +# configure ROOT on Arch. Notify user and +# return an error + +# default behaviour +__THIS_ROOT_ERROR_AS_WARNING__=0 +__THIS_ROOT_RETURNCODE__=1 +__THIS_ROOT_MESSAGE__='ERROR' +__THIS_ROOT_REGEX_TEST__='^(no|n|0|off)$' + + +function fail { + printf '%s\n' "$1" >&2 + return "${2:-$1}" +} + +# [FS#71639](https://bugs.archlinux.org/task/71639) +if [[ ! -z "${THIS_ROOT_ERROR_AS_WARNING}" ]]; then + THIS_ROOT_ERROR_AS_WARNING=$(echo "${THIS_ROOT_ERROR_AS_WARNING}" | tr '[:upper:]' '[:lower:]') + if [[ ! ${THIS_ROOT_ERROR_AS_WARNING} =~ ${__THIS_ROOT_REGEX_TEST__} ]]; then + __THIS_ROOT_ERROR_AS_WARNING__=1 + fi +fi + +if [[ ${__THIS_ROOT_ERROR_AS_WARNING__} -eq 1 ]]; then + __THIS_ROOT_RETURNCODE__=0 + __THIS_ROOT_MESSAGE__='WARNING' +fi + +__THIS_ROOT_CORE_MESSAGE__="""${__THIS_ROOT_MESSAGE__}: thisroot.sh type scripts are no longer supported. +They should never be used! This includes their other forms: thisroot.csh, thisroot.fish, etc.""" + +__THIS_ROOT_ERROR_EXTRA_MESSAGE__="""If you would prefer to see this error as a warning, please use the +environment variable 'THIS_ROOT_ERROR_AS_WARNING'. +For example, you may run your original command like so: + THIS_ROOT_ERROR_AS_WARNING=1 mycommand +or even: + THIS_ROOT_ERROR_AS_WARNING=ON mycommand""" + +if [[ ${__THIS_ROOT_ERROR_AS_WARNING__} -eq 1 ]]; then + __THIS_ROOT_FINAL_MESSAGE__="${__THIS_ROOT_CORE_MESSAGE__}" +else + __THIS_ROOT_FINAL_MESSAGE__="""${__THIS_ROOT_CORE_MESSAGE__} +${__THIS_ROOT_ERROR_EXTRA_MESSAGE__=}""" +fi + +fail "${__THIS_ROOT_FINAL_MESSAGE__}" ${__THIS_ROOT_RETURNCODE__}