From 0a56c71865f60127f1d0ce4c0b6408f747cde846 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ayd=C4=B1n=20Mercan?= Date: Thu, 24 Jul 2025 12:25:55 +0300 Subject: [PATCH 1/4] Remove install_rpath from installed targets Specifying the RPATH deviates from widespread packaging norms where the value isn't expected to be set by the project. [1] [2] [3] Meet this expectation by restoring meson's default behavior where targets in the build directory have the RPATH fixed with meson stripping the value during installation. [1]: https://wiki.debian.org/RpathIssue [2]: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_beware_of_rpath [3]: https://en.opensuse.org/openSUSE:Packaging_checks#Beware_of_Rpath --- meson.build | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/meson.build b/meson.build index b4a4ca75d7..0bda208f9c 100644 --- a/meson.build +++ b/meson.build @@ -1020,7 +1020,6 @@ libisc = library( isc_srcconf.sources(), objects: isc_probe_objects, install: true, - install_rpath: libdir, implicit_include_directories: false, include_directories: [isc_inc, isc_inc_p], dependencies: isc_srcconf.dependencies(), @@ -1047,7 +1046,6 @@ libdns = library( dns_srcconf.sources(), include_directories: dns_inc, install: true, - install_rpath: libdir, objects: dns_probe_objects, dependencies: [ libisc_dep, @@ -1081,7 +1079,6 @@ libns = library( ns_srcconf.sources(), objects: ns_probe_objects, install: true, - install_rpath: libdir, implicit_include_directories: false, include_directories: ns_inc, dependencies: [ @@ -1108,7 +1105,6 @@ libisccc = library( implicit_include_directories: false, include_directories: isccc_inc, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1129,7 +1125,6 @@ libisccfg = library( implicit_include_directories: false, include_directories: isccfg_inc, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1152,7 +1147,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libisc_dep, ], @@ -1164,7 +1158,6 @@ executable( export_dynamic: true, implicit_include_directories: true, install: true, - install_rpath: libdir, sources: bind_keys, dependencies: [ libisc_dep, @@ -1179,7 +1172,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1195,7 +1187,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1209,7 +1200,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1223,7 +1213,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1237,7 +1226,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1251,7 +1239,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1265,7 +1252,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1279,7 +1265,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1293,7 +1278,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1307,7 +1291,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1321,7 +1304,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1336,7 +1318,6 @@ if config.has('HAVE_DNSTAP') export_dynamic: true, implicit_include_directories: true, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1352,7 +1333,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1368,7 +1348,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1381,7 +1360,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libisc_dep, libdns_dep, @@ -1395,7 +1373,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libisc_dep, libdns_dep, @@ -1416,7 +1393,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1429,7 +1405,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1443,7 +1418,6 @@ if config.has('HAVE_LMDB') export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1459,7 +1433,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1475,7 +1448,6 @@ executable( include_directories: named_inc_p, install: true, install_dir: sbindir, - install_rpath: libdir, sources: bind_keys, dependencies: [ libdns_dep, @@ -1504,7 +1476,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1517,7 +1488,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1534,7 +1504,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, dependencies: [ libdns_dep, libisc_dep, @@ -1553,7 +1522,6 @@ executable( implicit_include_directories: false, include_directories: confgen_inc_p, install: true, - install_rpath: libdir, install_dir: sbindir, dependencies: [ libdns_dep, @@ -1567,7 +1535,6 @@ executable( export_dynamic: true, implicit_include_directories: false, install: true, - install_rpath: libdir, install_dir: sbindir, dependencies: [ libdns_dep, @@ -1584,7 +1551,6 @@ executable( implicit_include_directories: false, include_directories: confgen_inc_p, install: true, - install_rpath: libdir, install_dir: sbindir, dependencies: [ libdns_dep, @@ -1605,7 +1571,6 @@ shared_library( filter_a_src, implicit_include_directories: false, install: true, - install_rpath: libdir, install_dir: libdir / 'bind', name_prefix: '', dependencies: [ @@ -1621,7 +1586,6 @@ shared_library( filter_aaaa_src, implicit_include_directories: false, install: true, - install_rpath: libdir, install_dir: libdir / 'bind', name_prefix: '', dependencies: [ From e8c3bcc0a2b5b734b8ea3629a0db0b44aff6468d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ayd=C4=B1n=20Mercan?= Date: Thu, 24 Jul 2025 12:56:51 +0300 Subject: [PATCH 2/4] Remove unused datadir variable --- meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/meson.build b/meson.build index 0bda208f9c..25e5388e7e 100644 --- a/meson.build +++ b/meson.build @@ -113,7 +113,6 @@ sphinx_build = find_program('sphinx-build', required: doc_opt) prefix = get_option('prefix') bindir = prefix / get_option('bindir') -datadir = prefix / get_option('datadir') libdir = prefix / get_option('libdir') localstatedir = prefix / get_option('localstatedir') mandir = prefix / get_option('mandir') From 6ae002f1ae94cb88bec69f960594828840fd4244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ayd=C4=B1n=20Mercan?= Date: Mon, 28 Jul 2025 13:19:41 +0000 Subject: [PATCH 3/4] Use a proper compiler test for constexpr support After GCC 15, C23 became the default version. [1] Add a proper compiler test for constexpr support to ensure that GCC 15+ invoked with `c_std` set to `none` does not erroneously use the constexpr shim. This change does not affect the build in its default configuration (which uses GNU C11); it is only meant to prepare the build system for adding C23 elements to the code. [1]: https://gcc.gnu.org/gcc-15/changes.html --- meson.build | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index 25e5388e7e..a2377345f6 100644 --- a/meson.build +++ b/meson.build @@ -293,9 +293,14 @@ config.set_quoted('NAMED_CONFFILE', sysconfdir / 'named.conf') config.set_quoted('CACHEDB_DEFAULT', get_option('cachedb')) config.set_quoted('ZONEDB_DEFAULT', get_option('zonedb')) -# Shim constexpr for pre-C23 -# "ne" => "none" -if c_std.substring(-2) in ['ne', '89', '99', '11', '17', '18'] +constexpr_test = ''' +static constexpr int r = 0; + +int main(void) { + return r; +} +''' +if not cc.compiles(constexpr_test, name: 'usage of constexpr') config.set('constexpr', 'static const') endif From 234d0e9e8de3be3095ffdd2b499ba7c7639a94dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Mon, 4 Aug 2025 12:16:13 +0200 Subject: [PATCH 4/4] Add the project version to the library name Restore the library naming that included the current project version in the library name, e.g. SONAME is going to be libisc-9.21.11.so. --- meson.build | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index a2377345f6..d0ae062092 100644 --- a/meson.build +++ b/meson.build @@ -1020,7 +1020,7 @@ subdir('util') isc_srcconf = isc_srcset.apply(config, strict: false) libisc = library( - 'isc', + 'isc-' + meson.project_version(), isc_srcconf.sources(), objects: isc_probe_objects, install: true, @@ -1046,7 +1046,7 @@ libisc_dep = declare_dependency( dns_srcconf = dns_srcset.apply(config, strict: false) libdns = library( - 'dns', + 'dns-' + meson.project_version(), dns_srcconf.sources(), include_directories: dns_inc, install: true, @@ -1079,7 +1079,7 @@ libdns_dep = declare_dependency( ns_srcconf = ns_srcset.apply(config, strict: false) libns = library( - 'ns', + 'ns-' + meson.project_version(), ns_srcconf.sources(), objects: ns_probe_objects, install: true, @@ -1104,7 +1104,7 @@ libns_dep = declare_dependency( isccc_srcconf = isccc_srcset.apply(config, strict: false) libisccc = library( - 'isccc', + 'isccc-' + meson.project_version(), isccc_srcconf.sources(), implicit_include_directories: false, include_directories: isccc_inc, @@ -1124,7 +1124,7 @@ libisccc_dep = declare_dependency( isccfg_srcconf = isccfg_srcset.apply(config, strict: false) libisccfg = library( - 'isccfg', + 'isccfg-' + meson.project_version(), isccfg_srcconf.sources(), implicit_include_directories: false, include_directories: isccfg_inc,