From dd1a554aba720c5f23a529ddc32f1c7127b62af9 Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Mon, 15 Sep 2025 14:38:08 +0800 Subject: [PATCH] meson: add soversion with nix version to give SONAME to libs (#13960, #13979) remove 'pre' version suffix for non-releases (chokes Darwin ld) --- src/libcmd/meson.build | 1 + src/libexpr-c/meson.build | 1 + src/libexpr-test-support/meson.build | 1 + src/libexpr/meson.build | 1 + src/libfetchers-c/meson.build | 1 + src/libfetchers/meson.build | 1 + src/libflake-c/meson.build | 1 + src/libflake/meson.build | 1 + src/libmain-c/meson.build | 1 + src/libmain/meson.build | 1 + src/libstore-c/meson.build | 1 + src/libstore-test-support/meson.build | 1 + src/libstore/meson.build | 1 + src/libutil-c/meson.build | 1 + src/libutil-test-support/meson.build | 1 + src/libutil/meson.build | 1 + 16 files changed, 16 insertions(+) diff --git a/src/libcmd/meson.build b/src/libcmd/meson.build index 24e075246..b259182c2 100644 --- a/src/libcmd/meson.build +++ b/src/libcmd/meson.build @@ -95,6 +95,7 @@ this_library = library( 'nixcmd', sources, config_priv_h, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libexpr-c/meson.build b/src/libexpr-c/meson.build index 7c014d61d..95c2c8ac9 100644 --- a/src/libexpr-c/meson.build +++ b/src/libexpr-c/meson.build @@ -50,6 +50,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixexprc', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libexpr-test-support/meson.build b/src/libexpr-test-support/meson.build index d762eb85e..1d874320a 100644 --- a/src/libexpr-test-support/meson.build +++ b/src/libexpr-test-support/meson.build @@ -44,6 +44,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nix-expr-test-support', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, # TODO: Remove `-lrapidcheck` when https://github.com/emil-e/rapidcheck/pull/326 diff --git a/src/libexpr/meson.build b/src/libexpr/meson.build index 40d3f390b..dc43a9742 100644 --- a/src/libexpr/meson.build +++ b/src/libexpr/meson.build @@ -181,6 +181,7 @@ this_library = library( parser_tab, lexer_tab, generated_headers, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libfetchers-c/meson.build b/src/libfetchers-c/meson.build index 8542744b4..a381c792a 100644 --- a/src/libfetchers-c/meson.build +++ b/src/libfetchers-c/meson.build @@ -53,6 +53,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixfetchersc', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libfetchers/meson.build b/src/libfetchers/meson.build index 922a2c491..e5f5bd192 100644 --- a/src/libfetchers/meson.build +++ b/src/libfetchers/meson.build @@ -61,6 +61,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixfetchers', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libflake-c/meson.build b/src/libflake-c/meson.build index 933e06d90..837291786 100644 --- a/src/libflake-c/meson.build +++ b/src/libflake-c/meson.build @@ -53,6 +53,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixflakec', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libflake/meson.build b/src/libflake/meson.build index 191d8f068..a962258e7 100644 --- a/src/libflake/meson.build +++ b/src/libflake/meson.build @@ -58,6 +58,7 @@ this_library = library( 'nixflake', sources, generated_headers, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libmain-c/meson.build b/src/libmain-c/meson.build index 9e26ad8ad..61ec4d54b 100644 --- a/src/libmain-c/meson.build +++ b/src/libmain-c/meson.build @@ -45,6 +45,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixmainc', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libmain/meson.build b/src/libmain/meson.build index 4a90d2d83..d465dd6a4 100644 --- a/src/libmain/meson.build +++ b/src/libmain/meson.build @@ -77,6 +77,7 @@ this_library = library( 'nixmain', sources, config_priv_h, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libstore-c/meson.build b/src/libstore-c/meson.build index f8eaef803..b73822b0c 100644 --- a/src/libstore-c/meson.build +++ b/src/libstore-c/meson.build @@ -46,6 +46,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixstorec', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libstore-test-support/meson.build b/src/libstore-test-support/meson.build index b2977941f..90fef8489 100644 --- a/src/libstore-test-support/meson.build +++ b/src/libstore-test-support/meson.build @@ -44,6 +44,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nix-store-test-support', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, # TODO: Remove `-lrapidcheck` when https://github.com/emil-e/rapidcheck/pull/326 diff --git a/src/libstore/meson.build b/src/libstore/meson.build index 7aeacbab7..95dcf08bd 100644 --- a/src/libstore/meson.build +++ b/src/libstore/meson.build @@ -363,6 +363,7 @@ this_library = library( generated_headers, sources, config_priv_h, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libutil-c/meson.build b/src/libutil-c/meson.build index 8131c517c..b214266a1 100644 --- a/src/libutil-c/meson.build +++ b/src/libutil-c/meson.build @@ -53,6 +53,7 @@ this_library = library( 'nixutilc', sources, config_priv_h, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags, diff --git a/src/libutil-test-support/meson.build b/src/libutil-test-support/meson.build index 910f1d881..da2b443ec 100644 --- a/src/libutil-test-support/meson.build +++ b/src/libutil-test-support/meson.build @@ -41,6 +41,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nix-util-test-support', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, # TODO: Remove `-lrapidcheck` when https://github.com/emil-e/rapidcheck/pull/326 diff --git a/src/libutil/meson.build b/src/libutil/meson.build index cdffc892a..ff8b042c7 100644 --- a/src/libutil/meson.build +++ b/src/libutil/meson.build @@ -197,6 +197,7 @@ subdir('nix-meson-build-support/windows-version') this_library = library( 'nixutil', sources, + soversion : meson.project_version().replace('pre', ''), dependencies : deps_public + deps_private + deps_other, include_directories : include_dirs, link_args : linker_export_flags,