diff --git a/pkgs/by-name/ro/root/package.nix b/pkgs/by-name/ro/root/package.nix index 19d61c405c76..6c0c9b9b5dd8 100644 --- a/pkgs/by-name/ro/root/package.nix +++ b/pkgs/by-name/ro/root/package.nix @@ -1,56 +1,57 @@ -{ stdenv -, lib -, callPackage -, fetchgit -, fetchurl -, makeWrapper -, writeText -, apple-sdk -, cmake -, coreutils -, git -, davix -, ftgl -, gl2ps -, glew -, gnugrep -, gnused -, gsl -, gtest -, lapack -, libX11 -, libXpm -, libXft -, libXext -, libGLU -, libGL -, libxcrypt -, libxml2 -, llvm_16 -, lsof -, lz4 -, xz -, man -, openblas -, openssl -, pcre -, nlohmann_json -, pkg-config -, procps -, python3 -, which -, xxHash -, zlib -, zstd -, giflib -, libjpeg -, libtiff -, libpng -, patchRcPathCsh -, patchRcPathFish -, patchRcPathPosix -, tbb -, xrootd +{ + stdenv, + lib, + callPackage, + fetchgit, + fetchurl, + makeWrapper, + writeText, + apple-sdk, + cmake, + coreutils, + git, + davix, + ftgl, + gl2ps, + glew, + gnugrep, + gnused, + gsl, + gtest, + lapack, + libX11, + libXpm, + libXft, + libXext, + libGLU, + libGL, + libxcrypt, + libxml2, + llvm_16, + lsof, + lz4, + xz, + man, + openblas, + openssl, + pcre, + nlohmann_json, + pkg-config, + procps, + python3, + which, + xxHash, + zlib, + zstd, + giflib, + libjpeg, + libtiff, + libpng, + patchRcPathCsh, + patchRcPathFish, + patchRcPathPosix, + tbb, + xrootd, }: stdenv.mkDerivation rec { @@ -74,110 +75,125 @@ stdenv.mkDerivation rec { hash = "sha256-iKrZsuUerrlrjXBrxcTsFu/t0Pb0sa4UlfSwd1yhg3g="; }; - nativeBuildInputs = [ makeWrapper cmake pkg-config git ]; - propagatedBuildInputs = [ - nlohmann_json + nativeBuildInputs = [ + makeWrapper + cmake + pkg-config + git ]; - buildInputs = [ - davix - ftgl - gl2ps - glew - pcre - zlib - zstd - lapack - libxcrypt - libxml2 - llvm_16 - lz4 - xz - gsl - gtest - openblas - openssl - xxHash - giflib - libjpeg - libtiff - libpng - patchRcPathCsh - patchRcPathFish - patchRcPathPosix - python3.pkgs.numpy - tbb - xrootd - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - apple-sdk.privateFrameworksHook - ] - ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ] - ; + propagatedBuildInputs = [ nlohmann_json ]; + buildInputs = + [ + davix + ftgl + gl2ps + glew + pcre + zlib + zstd + lapack + libxcrypt + libxml2 + llvm_16 + lz4 + xz + gsl + gtest + openblas + openssl + xxHash + giflib + libjpeg + libtiff + libpng + patchRcPathCsh + patchRcPathFish + patchRcPathPosix + python3.pkgs.numpy + tbb + xrootd + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk.privateFrameworksHook ] + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ + libX11 + libXpm + libXft + libXext + libGLU + libGL + ]; - patches = [ - ./sw_vers.patch - ]; + patches = [ ./sw_vers.patch ]; - preConfigure = '' - for path in builtins/*; do - if [[ "$path" != "builtins/openui5" ]] && [[ "$path" != "builtins/rendercore" ]]; then - rm -rf "$path" - fi - done - substituteInPlace cmake/modules/SearchInstalledSoftware.cmake \ - --replace-fail 'set(lcgpackages ' '#set(lcgpackages ' + preConfigure = + '' + for path in builtins/*; do + if [[ "$path" != "builtins/openui5" ]] && [[ "$path" != "builtins/rendercore" ]]; then + rm -rf "$path" + fi + done + substituteInPlace cmake/modules/SearchInstalledSoftware.cmake \ + --replace-fail 'set(lcgpackages ' '#set(lcgpackages ' - # We have to bypass the connection check, because it would disable clad. - # This should probably be fixed upstream with a flag to disable the - # connectivity check! - substituteInPlace CMakeLists.txt \ - --replace-fail 'if(clad AND NO_CONNECTION)' 'if(FALSE)' - # Make sure that clad is not downloaded when building - substituteInPlace interpreter/cling/tools/plugins/clad/CMakeLists.txt \ - --replace-fail 'UPDATE_COMMAND ""' 'SOURCE_DIR ${clad_src} DOWNLOAD_COMMAND "" UPDATE_COMMAND ""' - # Make sure that clad is finding the right llvm version - substituteInPlace interpreter/cling/tools/plugins/clad/CMakeLists.txt \ - --replace-fail '-DLLVM_DIR=''${LLVM_BINARY_DIR}' '-DLLVM_DIR=${llvm_16.dev}/lib/cmake/llvm' + # We have to bypass the connection check, because it would disable clad. + # This should probably be fixed upstream with a flag to disable the + # connectivity check! + substituteInPlace CMakeLists.txt \ + --replace-fail 'if(clad AND NO_CONNECTION)' 'if(FALSE)' + # Make sure that clad is not downloaded when building + substituteInPlace interpreter/cling/tools/plugins/clad/CMakeLists.txt \ + --replace-fail 'UPDATE_COMMAND ""' 'SOURCE_DIR ${clad_src} DOWNLOAD_COMMAND "" UPDATE_COMMAND ""' + # Make sure that clad is finding the right llvm version + substituteInPlace interpreter/cling/tools/plugins/clad/CMakeLists.txt \ + --replace-fail '-DLLVM_DIR=''${LLVM_BINARY_DIR}' '-DLLVM_DIR=${llvm_16.dev}/lib/cmake/llvm' - substituteInPlace interpreter/llvm-project/clang/tools/driver/CMakeLists.txt \ - --replace-fail 'add_clang_symlink(''${link} clang)' "" + substituteInPlace interpreter/llvm-project/clang/tools/driver/CMakeLists.txt \ + --replace-fail 'add_clang_symlink(''${link} clang)' "" - # Don't require textutil on macOS - : > cmake/modules/RootCPack.cmake + # Don't require textutil on macOS + : > cmake/modules/RootCPack.cmake - # Hardcode path to fix use with cmake - sed -i cmake/scripts/ROOTConfig.cmake.in \ - -e '1iset(nlohmann_json_DIR "${nlohmann_json}/lib/cmake/nlohmann_json/")' + # Hardcode path to fix use with cmake + sed -i cmake/scripts/ROOTConfig.cmake.in \ + -e '1iset(nlohmann_json_DIR "${nlohmann_json}/lib/cmake/nlohmann_json/")' - patchShebangs build/unix/ - '' + lib.optionalString stdenv.hostPlatform.isDarwin '' - # Eliminate impure reference to /System/Library/PrivateFrameworks - substituteInPlace core/macosx/CMakeLists.txt \ - --replace-fail "-F/System/Library/PrivateFrameworks " "" - '' + lib.optionalString (stdenv.hostPlatform.isDarwin && lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") '' - MACOSX_DEPLOYMENT_TARGET=10.16 - ''; + patchShebangs build/unix/ + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + # Eliminate impure reference to /System/Library/PrivateFrameworks + substituteInPlace core/macosx/CMakeLists.txt \ + --replace-fail "-F/System/Library/PrivateFrameworks " "" + '' + + + lib.optionalString + (stdenv.hostPlatform.isDarwin && lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") + '' + MACOSX_DEPLOYMENT_TARGET=10.16 + ''; - cmakeFlags = [ - "-DCMAKE_INSTALL_BINDIR=bin" - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DCMAKE_INSTALL_INCLUDEDIR=include" - "-Dbuiltin_llvm=OFF" - "-Dfail-on-missing=ON" - "-Dfitsio=OFF" - "-Dgnuinstall=ON" - "-Dmathmore=ON" - "-Dmysql=OFF" - "-Dpgsql=OFF" - "-Dsqlite=OFF" - "-Dvdt=OFF" - ] - ++ lib.optional ((!stdenv.hostPlatform.isDarwin) && (stdenv.cc.libc != null)) "-DC_INCLUDE_DIRS=${lib.getDev stdenv.cc.libc}/include" - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - # fatal error: module map file '/nix/store/-Libsystem-osx-10.12.6/include/module.modulemap' not found - # fatal error: could not build module '_Builtin_intrinsics' - "-Druntime_cxxmodules=OFF" - ]; + cmakeFlags = + [ + "-DCMAKE_INSTALL_BINDIR=bin" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DCMAKE_INSTALL_INCLUDEDIR=include" + "-Dbuiltin_llvm=OFF" + "-Dfail-on-missing=ON" + "-Dfitsio=OFF" + "-Dgnuinstall=ON" + "-Dmathmore=ON" + "-Dmysql=OFF" + "-Dpgsql=OFF" + "-Dsqlite=OFF" + "-Dvdt=OFF" + ] + ++ lib.optional ( + (!stdenv.hostPlatform.isDarwin) && (stdenv.cc.libc != null) + ) "-DC_INCLUDE_DIRS=${lib.getDev stdenv.cc.libc}/include" + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # fatal error: module map file '/nix/store/-Libsystem-osx-10.12.6/include/module.modulemap' not found + # fatal error: could not build module '_Builtin_intrinsics' + "-Druntime_cxxmodules=OFF" + ]; postInstall = '' for prog in rootbrowse rootcp rooteventselector rootls rootmkdir rootmv rootprint rootrm rootslimtree; do @@ -187,11 +203,13 @@ stdenv.mkDerivation rec { # Make ldd and sed available to the ROOT executable by prefixing PATH. wrapProgram "$out/bin/root" \ - --prefix PATH : "${lib.makeBinPath [ - gnused # sed - stdenv.cc # c++ ld etc. - stdenv.cc.libc # ldd - ]}" + --prefix PATH : "${ + lib.makeBinPath [ + gnused # sed + stdenv.cc # c++ ld etc. + stdenv.cc.libc # ldd + ] + }" # Patch thisroot.{sh,csh,fish} @@ -199,36 +217,46 @@ stdenv.mkDerivation rec { # but it also need to support Bash-less POSIX shell like dash, # as they are mentioned in `thisroot.sh`. - patchRcPathPosix "$out/bin/thisroot.sh" "${lib.makeBinPath [ - coreutils # dirname tail - gnugrep # grep - gnused # sed - lsof # lsof - man # manpath - procps # ps - which # which - ]}" - patchRcPathCsh "$out/bin/thisroot.csh" "${lib.makeBinPath [ - coreutils - gnugrep - gnused - lsof # lsof - man - which - ]}" - patchRcPathFish "$out/bin/thisroot.fish" "${lib.makeBinPath [ - coreutils - man - which - ]}" + patchRcPathPosix "$out/bin/thisroot.sh" "${ + lib.makeBinPath [ + coreutils # dirname tail + gnugrep # grep + gnused # sed + lsof # lsof + man # manpath + procps # ps + which # which + ] + }" + patchRcPathCsh "$out/bin/thisroot.csh" "${ + lib.makeBinPath [ + coreutils + gnugrep + gnused + lsof # lsof + man + which + ] + }" + patchRcPathFish "$out/bin/thisroot.fish" "${ + lib.makeBinPath [ + coreutils + man + which + ] + }" ''; # error: aligned allocation function of type 'void *(std::size_t, std::align_val_t)' is only available on macOS 10.13 or newer - env.CXXFLAGS = lib.optionalString (stdenv.hostPlatform.system == "x86_64-darwin") "-faligned-allocation"; + env.CXXFLAGS = lib.optionalString ( + stdenv.hostPlatform.system == "x86_64-darwin" + ) "-faligned-allocation"; # workaround for # https://github.com/root-project/root/issues/14778 - env.NIX_LDFLAGS = lib.optionalString (!stdenv.hostPlatform.isDarwin) "--version-script,${writeText "version.map" "ROOT { global: *; };"}"; + env.NIX_LDFLAGS = lib.optionalString ( + !stdenv.hostPlatform.isDarwin + ) "--version-script,${writeText "version.map" "ROOT { global: *; };"}"; # To use the debug information on the fly (without installation) # add the outPath of root.debug into NIX_DEBUG_INFO_DIRS (in PATH-like format) @@ -245,7 +273,10 @@ stdenv.mkDerivation rec { homepage = "https://root.cern/"; description = "Data analysis framework"; platforms = platforms.unix; - maintainers = [ maintainers.guitargeek maintainers.veprbl ]; + maintainers = [ + maintainers.guitargeek + maintainers.veprbl + ]; license = licenses.lgpl21; }; } diff --git a/pkgs/by-name/ro/root5/package.nix b/pkgs/by-name/ro/root5/package.nix index b6e27322f5c7..0a03d44667d5 100644 --- a/pkgs/by-name/ro/root5/package.nix +++ b/pkgs/by-name/ro/root5/package.nix @@ -1,25 +1,26 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, cmake -, pcre -, pkg-config -, python3 -, libX11 -, libXpm -, libXft -, libXext -, libGLU -, libGL -, zlib -, libxml2 -, libxcrypt -, lz4 -, xz -, gsl -, xxHash -, noSplash ? false +{ + lib, + stdenv, + fetchurl, + fetchpatch, + cmake, + pcre, + pkg-config, + python3, + libX11, + libXpm, + libXft, + libXext, + libGLU, + libGL, + zlib, + libxml2, + libxcrypt, + lz4, + xz, + gsl, + xxHash, + noSplash ? false, }: stdenv.mkDerivation rec { @@ -31,10 +32,30 @@ stdenv.mkDerivation rec { sha256 = "1ln448lszw4d6jmbdphkr2plwxxlhmjkla48vmmq750xc1lxlfrc"; }; - nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ pcre python3 zlib libxml2 lz4 xz gsl xxHash libxcrypt ] - ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ] - ; + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = + [ + pcre + python3 + zlib + libxml2 + lz4 + xz + gsl + xxHash + libxcrypt + ] + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ + libX11 + libXpm + libXft + libXext + libGLU + libGL + ]; patches = [ ./sw_vers_root5.patch @@ -69,45 +90,47 @@ stdenv.mkDerivation rec { # https://github.com/root-project/root/issues/13216 hardeningDisable = [ "fortify3" ]; - preConfigure = '' - # binutils 2.37 fixes - fixupList=( - cint/demo/gl/make0 - cint/demo/exception/Makefile - cint/demo/makecint/KRcc/Makefile - cint/demo/makecint/Stub2/Make2 - cint/demo/makecint/Array/Makefile - cint/demo/makecint/DArray/Makefile - cint/demo/makecint/ReadFile/Makefile - cint/demo/makecint/stl/Makefile - cint/demo/makecint/Stub2/Make1 - cint/cint/include/makemat - cint/cint/lib/WildCard/Makefile - cint/cint/include/make.arc - cint/cint/lib/qt/Makefile - cint/cint/lib/pthread/Makefile - graf2d/asimage/src/libAfterImage/Makefile.in - ) - for toFix in "''${fixupList[@]}"; do - substituteInPlace "$toFix" --replace "clq" "cq" - done + preConfigure = + '' + # binutils 2.37 fixes + fixupList=( + cint/demo/gl/make0 + cint/demo/exception/Makefile + cint/demo/makecint/KRcc/Makefile + cint/demo/makecint/Stub2/Make2 + cint/demo/makecint/Array/Makefile + cint/demo/makecint/DArray/Makefile + cint/demo/makecint/ReadFile/Makefile + cint/demo/makecint/stl/Makefile + cint/demo/makecint/Stub2/Make1 + cint/cint/include/makemat + cint/cint/lib/WildCard/Makefile + cint/cint/include/make.arc + cint/cint/lib/qt/Makefile + cint/cint/lib/pthread/Makefile + graf2d/asimage/src/libAfterImage/Makefile.in + ) + for toFix in "''${fixupList[@]}"; do + substituteInPlace "$toFix" --replace "clq" "cq" + done - patchShebangs build/unix/ - ln -s ${lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/ + patchShebangs build/unix/ + ln -s ${lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/ - # __malloc_hook is deprecated - substituteInPlace misc/memstat/src/TMemStatHook.cxx \ - --replace "defined(R__GNU) && (defined(R__LINUX) || defined(__APPLE__))" \ - "defined(R__GNU) && (defined(__APPLE__))" - '' - # Fix CINTSYSDIR for "build" version of rootcint - # This is probably a bug that breaks out-of-source builds - + '' - substituteInPlace cint/cint/src/loadfile.cxx\ - --replace 'env = "cint";' 'env = "'`pwd`'/cint";' - '' + lib.optionalString noSplash '' - substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true" - ''; + # __malloc_hook is deprecated + substituteInPlace misc/memstat/src/TMemStatHook.cxx \ + --replace "defined(R__GNU) && (defined(R__LINUX) || defined(__APPLE__))" \ + "defined(R__GNU) && (defined(__APPLE__))" + '' + # Fix CINTSYSDIR for "build" version of rootcint + # This is probably a bug that breaks out-of-source builds + + '' + substituteInPlace cint/cint/src/loadfile.cxx\ + --replace 'env = "cint";' 'env = "'`pwd`'/cint";' + '' + + lib.optionalString noSplash '' + substituteInPlace rootx/src/rootx.cxx --replace "gNoLogo = false" "gNoLogo = true" + ''; cmakeFlags = [ "-Drpath=ON"