(Adding draft for invalid-soname) |
m (Wording, spelling) |
||
Line 9: | Line 9: | ||
* debuginfo-without-sources | * debuginfo-without-sources | ||
invalid-soname | == Draft: invalid-soname == | ||
The handling of this error depends on ld.so's load path (the "linker path") and whether it refers to a private or public library. | |||
The linker path is %{_libdir} + any path listed in /etc/ld.so.conf or in a file in /etc/ld.so.conf.d. | |||
The | |||
Public libraries are libs expected to be used by other packages, Other libraries e. g., plugins and functionality internal to the package are private. | Public libraries are libs expected to be used by other packages, Other libraries e. g., plugins and functionality internal to the package are private. | ||
We have four cases: | We have four cases: | ||
* The library is public. Inform upstream about the issue and propose that they add or fixes versioning, possibly by sending a patch. Don't apply patch until it's merged upstream to avoid upgrade problems. | * The library is public. Inform upstream about the issue and propose that they add or fixes versioning, possibly by sending a patch. Don't apply the patch until it's merged upstream to avoid upgrade problems. | ||
* The library is stored outside the linker paths. In this case the error can be ignored. | * The library is stored outside the linker paths. In this case the error can be ignored. | ||
* The library is private and stored in a directory included in the linker paths. If possible, move the library to another directory outside the linker paths. This might require patching build scripts. | * The library is private and stored in a directory included in the linker paths. If possible, move the library to another directory outside the linker paths. This might require patching build scripts. | ||
* The library is private, stored in a directory included in the linker paths and can't be moved. Here, the library must have a name unlikely to clash with other libraries. | * The library is private, stored in a directory included in the linker paths and can't be moved. Here, the library must have a name unlikely to clash with other libraries. Consider filtering the Provides: to make sure the private library isn't visible. | ||
The standard way to move a private library is to create a new directory under %{_libdir} e. g., /usr/lib/myapp. Don't list it in /etc/ld.so.conf files! Instead, use a rpath to let the application locate the library. | The standard way to move a private library is to create a new directory under %{_libdir} e. g., /usr/lib/myapp. Don't list it in /etc/ld.so.conf files! Instead, use a rpath to let the application locate the library. | ||
Line 30: | Line 28: | ||
See also: | See also: | ||
[[#no-soname]] | [[#no-soname]] | ||
[http://lists.fedoraproject.org/pipermail/devel/2012-April/166104.html | [http://lists.fedoraproject.org/pipermail/devel/2012-April/166104.html Thread on fedora-devel] |
Revision as of 02:39, 23 April 2012
The following metadata was found in MoinMoin that could not be converted to a useful value in MediaWiki:
- : hack to omit unused-direct-shlib-dependencies
- acl: Known:read,write All:read
I really miss "official" info which is easy to link to for things I run into too often:
- debuginfo-without-sources
Draft: invalid-soname
The handling of this error depends on ld.so's load path (the "linker path") and whether it refers to a private or public library.
The linker path is %{_libdir} + any path listed in /etc/ld.so.conf or in a file in /etc/ld.so.conf.d.
Public libraries are libs expected to be used by other packages, Other libraries e. g., plugins and functionality internal to the package are private.
We have four cases:
- The library is public. Inform upstream about the issue and propose that they add or fixes versioning, possibly by sending a patch. Don't apply the patch until it's merged upstream to avoid upgrade problems.
- The library is stored outside the linker paths. In this case the error can be ignored.
- The library is private and stored in a directory included in the linker paths. If possible, move the library to another directory outside the linker paths. This might require patching build scripts.
- The library is private, stored in a directory included in the linker paths and can't be moved. Here, the library must have a name unlikely to clash with other libraries. Consider filtering the Provides: to make sure the private library isn't visible.
The standard way to move a private library is to create a new directory under %{_libdir} e. g., /usr/lib/myapp. Don't list it in /etc/ld.so.conf files! Instead, use a rpath to let the application locate the library.
Filtering has some limitations, see #no-soname
See also:
#no-soname Thread on fedora-devel