New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
igraph: 0.8.5 -> 0.9.1 #117512
igraph: 0.8.5 -> 0.9.1 #117512
Conversation
This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch). Result of 6 packages failed to build and are new build failures:
2 packages built:
The following issues got detected with the above build packages.
hal-hardware-analyzer:
warning: build-tools-in-build-inputs Near pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix:25:3:
See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/build-tools-in-build-inputs.md |
d43e41a
to
21da39b
Compare
I now disabled the two failing tests on aarch64 and unvendored CXSparse. |
Some comments on this from an igraph developer:
|
And of course: thanks for making igraph available to NixOS users! |
Sorry about so many comments, just one more note that came to mind: the release tarball (not the git repo) includes pre-built HTML documentation in |
@szhorvat Thank you so much! I'm building a shared library now and also the docs. Is there a big downside to turning on thread-local storage? Also,
|
I included a patch to fix the paths in
|
There should not be, but this functionality is not well tested. Without it, igraph will not be thread-safe. If used from multiple threads, things are pretty much guaranteed to break. With it, some functions that depend on external libraries will still not be thread safe (in particular anything that uses an external ARPACK won't, and anything that uses GLPK depends on how GLPK was built). |
If you use python-igraph 0.9.0, but link to a different C/igraph than a matched one (the vendored one), then this will happen. It's because C/igraph 0.9.1 is less tolerant of internal errors than 0.9.0, and will now trigger a fatal error on this specific type of error. This bug is already fixed in python-igraph, and the fix will be in version 0.9.1, hopefully out next week. |
@dotlambda @szhorvat On the other hand, I totally understand that this is unsuitable for package maintainers because the typical way of building a package on pretty much any Linux-based system is to install the library into a staging area and then bundle the staging area into a package file. If anyone knows about any other CMake-based packages that handle this better than igraph, I'd be interested to learn about best practices. |
@ntamas We don't install it into a temporary directory. The only problem is that |
On my system |
In particular, these variables are supposed to be populated by the GNUInstallDirs CMake module, and it seems to provide two variants for each variable, one with a relative path and one with an absolute path (see here). The one with the absolute path should have |
That's the way NixOS sets up these variables. See https://github.com/jtojnar/cmake-snips#assuming-cmake_install_dir-is-relative-path. |
I suggest you simply use the |
Thanks for the reference -- we'll patch this on our side for 0.9.2 so we can deal with both absolute and relative paths in |
8cf4017
to
4b2848d
Compare
This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch). Result of 8 packages built:
|
Motivation for this change
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)$out/lib/pkgconfig/igraph.pc
contains incorrect paths:Does someone knowledgable about CMake and pkg-config have time to dig into that? Upstream seems to have wanted to fix something similar with igraph/igraph@8bf4adb, but it doesn't work for us.