Bug #7755
closedlibrary/gnu-libiconv should not deliver files to /usr/gnu/ prefix
0%
Description
library/gnu-libiconv delivers files to /usr/gnu/ prefix which leads to occupying two directory-namespaces.
Librariey files go to /usr/lib but binary executalbs and manpages go to /usr/gnu/ prefix, this is not consitent.
These files should be moved to /usr prefix: (remove "gnu/" from libiconv.p5m)
/usr/gnu/bin/iconv
/usr/gnu/bin/amd64/iconv
/usr/gnu/include/iconv.h
/usr/gnu/include/libcharset.h
/usr/gnu/include/localcharset.h
/usr/gnu/share/man/man1/iconv.1
/usr/gnu/share/man/man3/iconv.3
/usr/gnu/share/man/man3/iconv_close.3
/usr/gnu/share/man/man3/iconv_open.3
/usr/gnu/share/man/man3/iconv_open_into.3
/usr/gnu/share/man/man3/iconvctl.3
Once this change is implemented and available, the SFE variant of libiconv can live propperly in /usr/gnu/ prefix and this enables Libreoffice installs.
Updated by Alexander Pyhalov over 6 years ago
Some parts of GNU libiconv live under /usr/gnu to avoid collisions with illumos iconv.
Currently the following OI packages depend on GNU libiconv:
pkg:/library/audio/libcdio pkg:/library/samba/libsmbclient pkg:/service/network/samba pkg:/utility/gammu
I don't think that moving all library files to /usr/gnu is a good idea, as this will break existing applications.
Updated by Th. Wagner over 6 years ago
I don't think that moving all library files to /usr/gnu is a good idea, as this will break existing applications.
Sorry, that wasn't my question. Not delivering into /usr/gnu/ is what I was asking for.
Why is this package delivering these files into the path /usr/lib and delivering the header+manpages into /usr/gnu/ ?
Doing this in one single package doesn't look right to me.
/usr/gnu/bin/<amd64/|>iconv <<<--- remove gnu/
/usr/gnu/include/* <<<--- remove gnu/
/usr/gnu/share/man/* <<<--- remove gnu/
/usr/lib/amd64/libcharset.so.1.0.0
/usr/lib/amd64/libiconv.so.2.5.1
/usr/lib/amd64/preloadable_libiconv.so
/usr/lib/libcharset.so.1.0.0
/usr/lib/libiconv.so.2.5.1
/usr/lib/preloadable_libiconv.so
So over all, I was asking to not deliver any files into /usr/gnu/ path, instead deliver everything into /usr/<lib|share|bin> - dynmic libaries lib*.so are already there.
There is no illumos iconv in the IPS repository for hipster 2016, right?
The named dependent packages should all load iconv dynamic libraries from /usr/lib, so I'm wondering what the conflict with illumos iconv would be if headers and manpage and binaries are moved to /usr/ without the "gnu/" part?
Regards
Thomas
Updated by Alexander Pyhalov over 6 years ago
Short answer: to avoid conflits with illumos iconv - packages system/header, man(3c) pages from system/library vs man(3) pages from library/gnu-libiconv.
Updated by Th. Wagner over 6 years ago
So we have new file conflicts introduced by this gnu-iconv package. The former unengaged prefix /usr/gnu is in use since several years by 3rd party packagers on all other Solaris OS except latest OI-Hipster where we now get file conflicts.
New suggestion:
Packages using this gnu-iconv package need special compile-time settings anyways. So it is almost zero effort to not let those packages like samab4 include the header for iconv from /usr/gnu/include, instead, let them include the file from /usr/include/gnu/ or from /usr/gnu/include/gnu/ or any other directory with a name that indicates "This replaces an illumos library by the gnu variant".
The man page files of gnu-iconv can be renamed to have a "gnu-" prefix and stored anwhere.
The package samba4 will need the change "-I/usr/gnu/include" to "-I/usr/include/gnu" or whatever has been chosen as directory.
gnu-iconv package introduced serious file conflicts with the 3rd-party package project. We are approaching FOSDEM conference and end up with Solaris 11 having Libreoffice 4.7 and 5.2, but recent OI-Hipster has none of both. We'll have to tell people to use an older Hipster if they want Libreoffice.
So I can't accept a simple reasoning that gnu-iconv needs go in the way because of file conflicts within illumos iconv itself. It is more that the illumos-ivconv needs to be enhanced to meet the needs as mentioned on IRC e.g. the function iconv_open(“char” | “wchar_t”... )
Please implemment the different storage location for /usr/gnu/include/iconv.h and I'll promise to try compiling a Libreoffice5 package for recent OI-Hipster to be available at the time of FOSDEM (Feb 4th and 5th).
Updated by Aurélien Larcher over 6 years ago
I guess part of the question is to decide whether 3rd party packages should deliver in /usr.
Updated by Th. Wagner over 6 years ago
Aurélien Larcher wrote:
I guess part of the question is to decide whether 3rd party packages should deliver in /usr.
No, it is that OI package iconv should not split over /usr and /usr/gnu prefix.
That way, it occupies two directory-namespaces.
Best would be a solution where OI iconv package only delivers files into /usr
or second best:
samba (and potentially other packages) as consumer of OI iconv is changed to use OI builtin iconv functions so OI iconv package is obsolete.
Updated by Alexander Pyhalov almost 6 years ago
https://github.com/OpenIndiana/oi-userland/pull/3758 - first try on removing GNU libiconv
Updated by Alexander Pyhalov almost 6 years ago
- Status changed from New to Resolved