You are not logged in.
Pretty much as the subject says: with the last update to eigen2 being 10+ years old and being it no longer included in the repos, is there any reason to keep the path /usr/include/eigen3/Eigen instead of a simpler /usr/include/Eigen?
Thank you for your attention!
Offline
This is an upstream decision, feel free to make the suggestion there as that subfolder is not added by the PKGBUILD or any arch specific patch.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
+1 for contacting upstream. This is not an Arch issue.
Nevertheless, moved to Pacman & Package Upgrade issues.
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
Yes, I had a look at the PKGBUILD, still I think that the installation path should not be an upstream decision, but a distro (or even a user) one.
But of course no pressure from me. After all it's not a big deal to
export CPATH=/usr/include/eigen3
Last edited by DarioP (2019-07-17 19:57:43)
Offline
still I think that the installation path should not be an upstream decision
That's a reasonable point of view. But it doesn't change the fact that it is the upstream source and build scripts that set that path (I have no opinion on whether they should, but they clearly do). So if you'd prefer that upstream did not do this, you'd still have to approach them about it.
Last edited by Trilby (2019-07-17 20:04:08)
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
Arch's policy is to avoid changing upstream's defaults unless absolutely necessary and each user is free to customize the PKGBUILD. One of the appeals of Arch is that it generally doesn't make decisions for you
*tiptoes towards the exit before people show up to rehash the systemd debate*
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
One of the appeals of Arch is that it generally doesn't make decisions for you
I have been sticking to Arch for the last ~10 years not because of that, but because of it's KISS philosophy where I think it is unbeatable, otherwise gentoo or LFS would have been better choices IMHO.
But yeah, whatever, the original question is pretty much solved
Offline
I would say that KISS includes not tinkering with upstream. Of course I concede that it makes more choices for you than Gentoo and LFS.
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
From an upstream's perspective, I think it's sensible to keep the `eigen3` subdirectory around. I mean, what happens when eigen4 is released?
Even Debian's eigen3 package keeps it as is.
After all it's not a big deal to
export CPATH=/usr/include/eigen3
Given the presence of an eigen.pc pkgconf file, shouldn't the location of the include directory be a non-issue anyway?
Last edited by ayekat (2019-07-18 04:57:36)
Offline
Given the presence of an eigen.pc pkgconf file, shouldn't the location of the include directory be a non-issue anyway?
I am not sure what that file is for, but I am sure that a lot of other libraries just #include <Eigen/something.hpp>
Before exporting CPATH, I kept needing to -I /usr/include/eigen3 on every single compilation command that I issued, while for many other system libraries, which just install in /usr/include, that is not the case.
Offline
I am not sure what that file is for […]
pkg-config (.pc) files are small files that describe information required for using a library (including compilation and linker flags).
They are typically installed to /usr/share/pkgconfig and /usr/lib/pkgconfig, and you can use a pkg-config aware tool (such as `pkgconf`) to query that information. For eigen3, it's
$ pkgconf --cflags eigen3
-I/usr/include/eigen3
The output can then be passed to gcc as-is:
$gcc -Wall -Wextra -std=… $(pkgconf --cflags {lib1} {lib2} {lib3} …)
(the same for linking, where you invoke `pkgconf --libs …`).
[…] but I am sure that a lot of other libraries just #include <Eigen/something.hpp>
That's because they assume that the compiler will be invoked with the correct compilation flags. You do that right now, but you assume that every system will have Eigen installed in /usr/include/eigen3, and your code will not compile on systems where that is not the case.
It's therefore recommended to set library-specific compilation flags using pkgconf, as shown above. Don't hardcode -I… flags for external libraries.
Offline
$ pkgconf --cflags eigen3 -I/usr/include/eigen3
Cool! I have learnt something
Offline