packaging: fix pkg-config files
Notably, this adds the Requires.private required for proper static linkage of Lix libraries. Some minor missing or duplicated dependencies are also fixed along the way (although some optional dependencies are omitted due to their size). Fixes: https://git.lix.systems/lix-project/lix/issues/789 Change-Id: I6a6a696413d538124d9ac75c68f100cc3089284f
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
---
|
||||
synopsis: "Lix libraries can now be linked statically"
|
||||
issues: [fj#789]
|
||||
cls: [3775, 3778]
|
||||
category: Fixes
|
||||
credits: [alois31]
|
||||
---
|
||||
Previously the pkg-config files distributed with Lix were only suitable for dynamic linkage, causing "undefined reference to…" linker errors when trying to link statically.
|
||||
Private dependency information has now been added to make static linkage work as expected without user intervention.
|
||||
In addition, relevant static libraries are now prelinked to avoid strange failures due to missing static initializers.
|
||||
@@ -5,5 +5,6 @@ includedir=@includedir@
|
||||
Name: Lix (libcmd)
|
||||
Description: Lix Package Manager (libcmd)
|
||||
Version: @PACKAGE_VERSION@
|
||||
Requires: lix-base lix-util
|
||||
Libs: -L${libdir} -llixcmd
|
||||
Requires: lix-base lix-util lix-store
|
||||
Requires.private: lix-fetchers lix-expr lix-main @BOEHM_IF_FOUND@ libeditline lowdown ncurses
|
||||
Libs: -L${libdir} @LIBLIX_DOC_IF_STATIC@ -llixcmd
|
||||
|
||||
@@ -93,5 +93,7 @@ configure_file(
|
||||
'libdir' : libdir,
|
||||
'includedir' : includedir,
|
||||
'PACKAGE_VERSION' : meson.project_version(),
|
||||
'BOEHM_IF_FOUND' : boehm.found() ? 'bdw-gc' : '',
|
||||
'LIBLIX_DOC_IF_STATIC' : is_static ? '-llix_doc' : '',
|
||||
},
|
||||
)
|
||||
|
||||
@@ -5,5 +5,6 @@ includedir=@includedir@
|
||||
Name: Lix libexpr
|
||||
Description: Lix Package Manager (libexpr)
|
||||
Version: @PACKAGE_VERSION@
|
||||
Requires: lix-base lix-util lix-fetchers lix-store bdw-gc
|
||||
# dependencies on boost is omitted since it is optional (only required by some headers)
|
||||
Requires: lix-base lix-util lix-store lix-fetchers @BOEHM_IF_FOUND@
|
||||
Libs: -L${libdir} -llixexpr
|
||||
|
||||
@@ -357,5 +357,6 @@ configure_file(
|
||||
'libdir' : libdir,
|
||||
'includedir' : includedir,
|
||||
'PACKAGE_VERSION' : meson.project_version(),
|
||||
'BOEHM_IF_FOUND' : boehm.found() ? 'bdw-gc' : '',
|
||||
},
|
||||
)
|
||||
|
||||
@@ -5,5 +5,5 @@ includedir=@includedir@
|
||||
Name: Lix libfetchers
|
||||
Description: Lix Package Manager (libfetchers)
|
||||
Version: @PACKAGE_VERSION@
|
||||
Requires: lix-base lix-util
|
||||
Requires: lix-base lix-util lix-store
|
||||
Libs: -L${libdir} -llixfetchers
|
||||
|
||||
@@ -6,4 +6,5 @@ Name: Lix libmain
|
||||
Description: Lix Package Manager (libmain)
|
||||
Version: @PACKAGE_VERSION@
|
||||
Requires: lix-base lix-util
|
||||
Requires.private: lix-store
|
||||
Libs: -L${libdir} -llixmain
|
||||
|
||||
@@ -6,4 +6,5 @@ Name: Lix libstore
|
||||
Description: Lix Package Manager (libstore)
|
||||
Version: @PACKAGE_VERSION@
|
||||
Requires: lix-base lix-util
|
||||
Libs: -L${libdir} -llixstore -llixutil
|
||||
Requires.private: @AWS_SDK_IF_FOUND@ capnp-rpc libcurl libarchive libseccomp libsodium sqlite3
|
||||
Libs: -L${libdir} -llixstore
|
||||
|
||||
@@ -469,5 +469,6 @@ configure_file(
|
||||
'libdir' : libdir,
|
||||
'includedir' : includedir,
|
||||
'PACKAGE_VERSION' : meson.project_version(),
|
||||
'AWS_SDK_IF_FOUND' : aws_sdk.found() ? 'aws-cpp-sdk-core aws-cpp-sdk-s3 aws-cpp-std-transfer' : '',
|
||||
},
|
||||
)
|
||||
|
||||
@@ -5,5 +5,7 @@ includedir=@includedir@
|
||||
Name: Lix libutil
|
||||
Description: Lix Package Manager (libutil)
|
||||
Version: @PACKAGE_VERSION@
|
||||
Requires: lix-base lix-util
|
||||
# dependencies on boost, libarchive, nlohmann_json are omitted since they are optional (only required by some headers)
|
||||
Requires: lix-base
|
||||
Requires.private: libbrotlidec libbrotlienc libcpuid libarchive libcrypto
|
||||
Libs: -L${libdir} -llixutil
|
||||
|
||||
Reference in New Issue
Block a user