The sweethome3d program ships pre-compiled shared libraries for graphics that
need to be `patchelf`ed to work properly. Once the libraries are compressed into
the final .jar, Nix can no longer see the path references so they are not
declared a runtime dependency and the program won't run on a system that didn't
build it and doesn't happen to have the right paths already present on it by
chance.
This patch switches to autoPatchelfHook to ensure the libraries get patched
correctly, then scans the libraries to make a plain-text file with the same
paths so that Nix can see the references and account for them. I suspect this
problem might be lurking in other Java programs in nixpkgs.
Fixes#66471.
The default jdk was updated, but various applications were kept at
jdk8 so they could be updated one-by-one, testing that the update
does not break those packages.
I tested sweethome3d, and found out that while it runs fine with
the default jre, the build script of the current release does not
work on JDK9 or higher. This has already been fixed on trunk but
not yet released. Since this is specific to this package, I
moved the selection of 'jdk8' to inside the packages' .nix, with a
note so we don't forget to update to the default jdk as well when
a new version of sweethome3d is released.
* pkgs: refactor needless quoting of homepage meta attribute
A lot of packages are needlessly quoting the homepage meta attribute
(about 1400, 22%), this commit refactors all of those instances.
* pkgs: Fixing some links that were wrongfully unquoted in the previous
commit
* Fixed some instances
- Replace non freedesktop `CAD` desktop category
by categories taken from debian's desktop item.
This make the desktop items appear under the
`Graphic` category in DE menus instead of `Others`.
- Moved to new package icons as specified by
upstream release notes.
- Moved to icon name instead of full path to
a single icon as specified by freedesktop
specification.
- Human readable desktop item names.