| 10 Feb 2025 |
| @me:caem.dev joined the room. | 00:48:53 |
ruro | AFAIC, FreeImage is "undead". I think I read that the original devs insist that it is still being maintained, but they are stubbornly stuck on SourceForge and the last official release was in 2018. :sigh: | 02:59:55 |
ruro | I guess, the relevant questions would be:
- Is it backwards compatible with the older official versions of FreeImage?
- Is there some sort of consensus around this fork being a good replacement?
- Which CVEs does this fork fix?
- Are these fixes verified / documented by whatever authorities published the original CVEs?
| 03:04:46 |
ruro | Taking a cursory look at that repository, it seems that the original author just commited the whole SVN repo instead of importing the history from SVN, which is kind of annoying/problematic. | 03:08:43 |
ruro | * Taking a cursory look at that repository, it seems that the original author just commited the whole SVN repo in the initial commit instead of importing the history from SVN, which is kind of annoying/problematic. | 03:09:06 |
stick | another option would be to just remove freeImageInteropNPP from the cuda-samples build | 08:19:23 |
stick | * another option would be to just remove freeImageInteropNPP sample from the cuda-samples build | 08:19:34 |
stick | by changing SAMPLE_ENABLED := 1 to SAMPLE_ENABLED := 0 here:
https://github.com/NVIDIA/cuda-samples/blob/9c688d7ff78455ed42e345124d1495aad6bf66de/Samples/4_CUDA_Libraries/freeImageInteropNPP/Makefile#L284
| 08:22:11 |
stick | or maybe even that is not necessary and the build correctly detects that FreeImage is not available and skips that sample | 08:23:19 |
ruro | I was under the impression that there were a lot more samples that depended on FreeImage. If this is indeed the only sample that requires FreeImage, then I will simply remove it since I am already going to remove a few broken samples that don't have easy fixes. | 09:40:54 |
ruro | * I was under the impression that there were a lot more samples that depended on FreeImage. If this is indeed the only sample that requires FreeImage, then I will simply remove it since I am already planning to remove a few broken samples that don't have easy fixes. | 09:41:03 |
ruro | * Nice catch! I was under the impression that there were a lot more samples that depended on FreeImage. If this is indeed the only sample that requires FreeImage, then I will simply remove it since I am already planning to remove a few broken samples that don't have easy fixes. | 09:41:12 |
SomeoneSerge (back on matrix) | They're both aarch64, it can build both, just it doesn't have the runtime | 13:29:37 |
SomeoneSerge (back on matrix) |
Afaik, the official hydra builders don't build insecure packages, so I am kind of against setting
Yeah but honestly I see no reason for that
| 13:30:47 |
SomeoneSerge (back on matrix) |
I still think that we should just change freeimage to
That would be lies though?
| 13:31:27 |
SomeoneSerge (back on matrix) |
Message deleted by NixOS Moderation Bot
o_0
| 13:32:39 |
ruro | I think that only 5 samples actually depend on freeimage - FilterBorderControlNPP, boxFilterNPP, cannyEdgeDetectorNPP, freeImageInteropNPP and histEqualizationNPP. That's not that many (given that there are like 200 total or something), so I am probably going to throw my over-engineered freeimage.overrideAttrs chicanery out of the window and just disable these samples by default. | 13:56:04 |
ruro | On a related note, can somebody tell me:
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?
| 14:02:59 |
ruro | * ~~On a related note, can somebody tell me:
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?~~
| 14:03:16 |
ruro | * On a related note, can somebody tell me:
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?
Edit: nvm, I am blind. libGL is an alias for libglvnd
| 14:03:56 |
ruro | * ~~On a related note, can somebody tell me:~~
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?
Edit: nvm, I am blind. libGL is an alias for libglvnd
| 14:04:04 |
ruro | * ~On a related note, can somebody tell me:~
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?
Edit: nvm, I am blind. libGL is an alias for libglvnd
| 14:04:12 |
ruro | * On a related note, can somebody tell me:
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?
Edit: nvm, I am blind. libGL is an alias for libglvnd
| 14:05:15 |
ruro | * On a related note, can somebody tell me:
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?
Edit: nvm, I am blind. libGL is an alias for libglvnd
| 14:05:30 |
ruro | *
On a related note, can somebody tell me:
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?
Edit: nvm, I am blind. libGL is an alias for libglvnd
| 14:06:04 |
ruro | * On a related note, can somebody tell me:
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?
Edit: nvm, I must be blind and/or sleep deprived. libGL is an alias for libglvnd
| 14:06:35 |
ruro | *
On a related note, can somebody tell me:
- Should I prefer linking to
libglvnd instead of libGL?
- Is it bad if I end up having both
libGL and libglvnd in the same closure?
- It seems that
libglvnd doesn't provide libGLU or libglut. Is there an equivalent vender-neutral dispatch mechanism for those libraries?
Edit: nvm, I must be blind and/or sleep deprived. libGL is an alias for libglvnd
| 14:08:14 |
stick | sounds good | 15:05:28 |
ruro | Btw, it seems that there is a mismatch in CUDA vs GCC version compatibility after all. In particular, for me
cudaPackages_11_2.backendStdenv.cc.version == "12.4.0"
and with that compiler, a couple of the samples in cuda-samples are failing to compile due to errors inside cuda_cccl headers. Here is a forum post discussing this exact error.
I wasn't able to find precise compatibility matrices for CUDA 12.1, but according to this stackoverflow answer, CUDA 12.1 supports GCC versions up to 12.2 which is lower than the current 12.4.0.
Minor versions don't work in pkgs/development/cuda-modules/nvcc-compatibilities.nix, but setting gccMaxMajorVersion = "11" for "12.1" I was able to successfully build the problematic samples that fail with GCC 12.4.0. So it looks like CUDA 12.1 doesn't fully support GCC 12.4 after all.
Thoughts?
| 15:53:25 |
SomeoneSerge (back on matrix) | Hm. The logic for choosing gcc initially used gccMaxMajorVersion from some other file, nvcc-compatibilities was added later | 15:54:53 |