From cbf77c4a1e99b771648bceee024c0c99b8a79681 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 30 Jun 2022 10:24:20 -0400 Subject: [PATCH 1/5] geant4: remove configuration for optional non-toolkit dependencies Configuring such small details is not practical because of long build times. --- .../libraries/physics/geant4/default.nix | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix index 5fb220580655..b23f0812ba1e 100644 --- a/pkgs/development/libraries/physics/geant4/default.nix +++ b/pkgs/development/libraries/physics/geant4/default.nix @@ -1,7 +1,5 @@ { enableMultiThreading ? true -, enableG3toG4 ? false , enableInventor ? false -, enableGDML ? false , enableQT ? false , enableXM ? false , enableOpenGLX11 ? true @@ -11,13 +9,10 @@ # Standard build environment with cmake. , lib, stdenv, fetchurl, fetchpatch, cmake -# Optional system packages, otherwise internal GEANT4 packages are used. , clhep ? null # not packaged currently , expat -, zlib - -# For enableGDML. , xercesc +, zlib # For enableQT. , qtbase @@ -59,8 +54,8 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DGEANT4_INSTALL_DATA=OFF" - "-DGEANT4_USE_GDML=${if enableGDML then "ON" else "OFF"}" - "-DGEANT4_USE_G3TOG4=${if enableG3toG4 then "ON" else "OFF"}" + "-DGEANT4_USE_GDML=ON" + "-DGEANT4_USE_G3TOG4=ON" "-DGEANT4_USE_QT=${if enableQT then "ON" else "OFF"}" "-DGEANT4_USE_XM=${if enableXM then "ON" else "OFF"}" "-DGEANT4_USE_OPENGL_X11=${if enableOpenGLX11 then "ON" else "OFF"}" @@ -68,8 +63,8 @@ stdenv.mkDerivation rec { "-DGEANT4_USE_PYTHON=${if enablePython then "ON" else "OFF"}" "-DGEANT4_USE_RAYTRACER_X11=${if enableRaytracerX11 then "ON" else "OFF"}" "-DGEANT4_USE_SYSTEM_CLHEP=${if clhep != null then "ON" else "OFF"}" - "-DGEANT4_USE_SYSTEM_EXPAT=${if expat != null then "ON" else "OFF"}" - "-DGEANT4_USE_SYSTEM_ZLIB=${if zlib != null then "ON" else "OFF"}" + "-DGEANT4_USE_SYSTEM_EXPAT=ON" + "-DGEANT4_USE_SYSTEM_ZLIB=ON" "-DGEANT4_BUILD_MULTITHREADED=${if enableMultiThreading then "ON" else "OFF"}" ] ++ lib.optionals stdenv.isDarwin [ "-DXQuartzGL_INCLUDE_DIR=${libGL.dev}/include" @@ -93,8 +88,7 @@ stdenv.mkDerivation rec { ++ lib.optionals enableInventor [ libXpm coin3d soxt motif ] ++ lib.optionals enablePython [ boost_python python3 ]; - propagatedBuildInputs = [ clhep expat zlib libGL ] - ++ lib.optionals enableGDML [ xercesc ] + propagatedBuildInputs = [ clhep expat xercesc zlib libGL ] ++ lib.optionals enableXM [ motif ] ++ lib.optionals enableQT [ qtbase ]; From 210830ec771bf937592001a2f2aea24a0ba6ce7e Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 30 Jun 2022 10:31:11 -0400 Subject: [PATCH 2/5] geant4: s/enableQT/enableQt/g --- .../libraries/physics/geant4/default.nix | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix index b23f0812ba1e..958720be37a0 100644 --- a/pkgs/development/libraries/physics/geant4/default.nix +++ b/pkgs/development/libraries/physics/geant4/default.nix @@ -1,6 +1,7 @@ { enableMultiThreading ? true , enableInventor ? false -, enableQT ? false +, enableQT ? false # deprecated name +, enableQt ? enableQT , enableXM ? false , enableOpenGLX11 ? true , enablePython ? false @@ -14,7 +15,7 @@ , xercesc , zlib -# For enableQT. +# For enableQt. , qtbase , wrapQtAppsHook @@ -26,7 +27,7 @@ , soxt , libXpm -# For enableQT, enableXM, enableOpenGLX11, enableRaytracerX11. +# For enableQt, enableXM, enableOpenGLX11, enableRaytracerX11. , libGLU, libGL , xlibsWrapper , libXmu @@ -43,6 +44,8 @@ let boost_python = boost.override { enablePython = true; python = python3; }; in +lib.warnIf (enableQT != false) "geant4: enableQT is deprecated, please use enableQt" + stdenv.mkDerivation rec { version = "11.0.0"; pname = "geant4"; @@ -56,7 +59,7 @@ stdenv.mkDerivation rec { "-DGEANT4_INSTALL_DATA=OFF" "-DGEANT4_USE_GDML=ON" "-DGEANT4_USE_G3TOG4=ON" - "-DGEANT4_USE_QT=${if enableQT then "ON" else "OFF"}" + "-DGEANT4_USE_QT=${if enableQt then "ON" else "OFF"}" "-DGEANT4_USE_XM=${if enableXM then "ON" else "OFF"}" "-DGEANT4_USE_OPENGL_X11=${if enableOpenGLX11 then "ON" else "OFF"}" "-DGEANT4_USE_INVENTOR=${if enableInventor then "ON" else "OFF"}" @@ -78,11 +81,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake - ] ++ lib.optionals enableQT [ + ] ++ lib.optionals enableQt [ wrapQtAppsHook ]; - dontWrapQtApps = !enableQT; + dontWrapQtApps = !enableQt; buildInputs = [ libGLU xlibsWrapper libXmu ] ++ lib.optionals enableInventor [ libXpm coin3d soxt motif ] @@ -90,12 +93,12 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ clhep expat xercesc zlib libGL ] ++ lib.optionals enableXM [ motif ] - ++ lib.optionals enableQT [ qtbase ]; + ++ lib.optionals enableQt [ qtbase ]; postFixup = '' # Don't try to export invalid environment variables. sed -i 's/export G4\([A-Z]*\)DATA/#export G4\1DATA/' "$out"/bin/geant4.sh - '' + lib.optionalString enableQT '' + '' + lib.optionalString enableQt '' wrapQtAppsHook ''; From b7e50b7b21911385c9e50bf52fb54e033de692af Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 30 Jun 2022 10:32:46 -0400 Subject: [PATCH 3/5] geant4: add geant4.passthru.enableQt --- pkgs/development/libraries/physics/geant4/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix index 958720be37a0..6c143de91a19 100644 --- a/pkgs/development/libraries/physics/geant4/default.nix +++ b/pkgs/development/libraries/physics/geant4/default.nix @@ -111,6 +111,8 @@ stdenv.mkDerivation rec { }; tests = callPackage ./tests.nix {}; + + inherit enableQt; }; # Set the myriad of envars required by Geant4 if we use a nix-shell. From 714b6a7665d86acecea99e52e3e2af19bdb5712b Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 30 Jun 2022 10:34:18 -0400 Subject: [PATCH 4/5] geant4: propagate wrapQtAppsHook if enableQt --- pkgs/development/libraries/physics/geant4/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix index 6c143de91a19..8f724e21a0c5 100644 --- a/pkgs/development/libraries/physics/geant4/default.nix +++ b/pkgs/development/libraries/physics/geant4/default.nix @@ -81,11 +81,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake - ] ++ lib.optionals enableQt [ - wrapQtAppsHook ]; - dontWrapQtApps = !enableQt; + propagatedNativeBuildInputs = lib.optionals enableQt [ + wrapQtAppsHook + ]; + dontWrapQtApps = true; # no binaries buildInputs = [ libGLU xlibsWrapper libXmu ] ++ lib.optionals enableInventor [ libXpm coin3d soxt motif ] From 6489c1e2a643c4cf7115eacabd31c0cfc898b1de Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 30 Jun 2022 11:26:16 -0400 Subject: [PATCH 5/5] geant4.data: refactor to use callPackage This should enable some overriding capability. --- pkgs/development/libraries/physics/geant4/datasets.nix | 6 +++--- pkgs/development/libraries/physics/geant4/default.nix | 5 +---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/physics/geant4/datasets.nix b/pkgs/development/libraries/physics/geant4/datasets.nix index 18809654c467..b1df2875fab7 100644 --- a/pkgs/development/libraries/physics/geant4/datasets.nix +++ b/pkgs/development/libraries/physics/geant4/datasets.nix @@ -1,10 +1,10 @@ -{ lib, stdenv, fetchurl, geant_version }: +{ lib, stdenv, fetchurl, geant4 }: let mkDataset = { pname, version, sha256, envvar }: stdenv.mkDerivation { inherit pname version; - inherit geant_version; + geant_version = geant4.version; src = fetchurl { url = "https://cern.ch/geant4-data/datasets/${pname}.${version}.tar.gz"; @@ -15,7 +15,7 @@ let dontBuild = true; dontConfigure = true; - datadir = "${placeholder "out"}/share/Geant4-${geant_version}/data/${pname}${version}"; + datadir = "${placeholder "out"}/share/Geant4-${geant4.version}/data/${pname}${version}"; installPhase = '' mkdir -p $datadir mv ./* $datadir diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix index 8f724e21a0c5..3a23d25d8751 100644 --- a/pkgs/development/libraries/physics/geant4/default.nix +++ b/pkgs/development/libraries/physics/geant4/default.nix @@ -106,10 +106,7 @@ stdenv.mkDerivation rec { setupHook = ./geant4-hook.sh; passthru = { - data = import ./datasets.nix { - inherit lib stdenv fetchurl; - geant_version = version; - }; + data = callPackage ./datasets.nix {}; tests = callPackage ./tests.nix {};