Change:
I want like to use root with nix. I successfully installed nix, and I ran the command . However, rootcint is not available. I used the 22.11 channel as the program is not provided in the unstable channel. Steps to reproduce the behavior: nix-shell -p root to the location of the executable is not present rootcint in installed ! Please run and paste the result.
AFAIK, cint is replaced by cling in ROOT6. We do have the package if you insist on using cint.
Hello, thanks for your answer. It is interesting, I am moving from homebrew to nix and rootcint is installed with brew (root version 6.29). I tested to install root from scratch and rootcint is also present in the install directory. If it is not a bug, I think we can close the issue, I will modify my script and use rootcling. Maybe could I suggest removing rootcint from the root package on ? !
It's quite interesting to learn that "bin/rootcint" is available in ROOT 6. As you say that you are using Nixpkgs 22.11 (i.e. the current stable), what is the exact commit of Nixpkgs you are using? This piece of information happens to get lost in the nix-info output. Could you also provide the ROOT version from Nixpkgs 22.11 with bin/rootcint ? I remember that there are no big changes made to since the Nixpkgs 22.11 branch-off. Update: turns out to be identical to . Maybe it's there just to be backward compatible.
If I correctly get the info: commit id: root version: But if rootcint is installed when I build root from scratch, I don’t understand why this is not the case when I used nix-shell. Sorry, I am new to nix-environment :)
I see in but not in
It's still there in built from (on branch release-22.11), but not in built from (on bratch master).
Didn't we enable gnu directories since then?
Could this be related to the operating system? I am on macOS.
It's reproducible on Linux, so no. Oops! You're right. <details<summaryBuild result</summary<pre$ nix build --no-link .?rev=#root $ nix path-info .?rev=#root /nix/store/kkvb829yd3sr4fbs8r0nw6w93m82fwa6-root-6.26.10 $ ls /nix/store/kkvb829yd3sr4fbs8r0nw6w93m82fwa6-root-6.26.10 bin etc include lib nix-support share $ ls /nix/store/kkvb829yd3sr4fbs8r0nw6w93m82fwa6-root-6.26.10/bin/ hadd proofserv root root-config rooteventselector rootmkdir roots hist2workspace rootbrowse rootcp rootmv rootprint prepareHistFactory rmkdepend rootcling rootdrawtree rootls rootrm rootslimtree xpdtest $ nix path-info .?rev=#root this path will be fetched (117.65 MiB download, 424.13 MiB unpacked): /nix/store/ngkpxibxzjhb2k6kgmz0dzcrbij5ma27-root-6.26.10 error: path '/nix/store/ngkpxibxzjhb2k6kgmz0dzcrbij5ma27-root-6.26.10' is not valid $ nix build --no-link .?rev=#root $ ls /nix/store/ngkpxibxzjhb2k6kgmz0dzcrbij5ma27-root-6.26.10/bin/ genreflex proofserv rootbrowse rootcp rootls hadd rootcint rootdrawtree rootmkdir rootprint rootslimtree hist2workspace rmkdepend rootcling rooteventselector rootmv rootrm prepareHistFactory root root-config roots xpdtest $ ls /nix/store/ngkpxibxzjhb2k6kgmz0dzcrbij5ma27-root-6.26.10 bin cmake config emacs etc fonts geom icons include js lib macros nix-support share tutorials </pre</detailsI think it's an upstream issue anyway. I guess it will no longer be there when building with the CMake flag. I think it's an upstream issue / upstream decision anyway. Nevertheless, we can work around by providing a symbolic link or just .
Sorry, I'm wrong. It was another commit in the same PR that causes the issue. I deleted from , thinking they had been default, but the default was always . Sorry for the trouble. But what's the original purpose for us to set these? Won't they overlap with the flags by the setup hook of CMake?
Often downstream build systems don't handle absolute paths in BINDIR and such. I did bisect and it also points to .
Hello, Thanks a lot for the fix. I just have two questions: Do I need to change the nix-channel by using: ? I read in the documentation that there is a delay to update a channel but how can I update the derivations? Is it sufficient to do ?
The issue was fixed on unstable, there was no issue on stable, so any channel works as long as it gets updated by Hydra and you do There is a tracker

Discussion:
cmakeFlags = [ "-Drpath=ON" <ins> "-DCMAKE_INSTALL_BINDIR=bin" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_INCLUDEDIR=include" </ins> "-Dbuiltin_llvm=OFF" "-Dbuiltin_nlohmannjson=OFF" "-Dbuiltin_openui5=OFF"