* [OSS-Tools] [PATCH dt-utils v2] meson: align libdt-utils version with autotools'
@ 2023-11-06 13:49 Ahmad Fatoum
2023-11-24 11:23 ` Roland Hieber
0 siblings, 1 reply; 2+ messages in thread
From: Ahmad Fatoum @ 2023-11-06 13:49 UTC (permalink / raw)
To: oss-tools; +Cc: rhi, Enrico Jörns
Makefile.am has following defines for libtool versioning:
LIBDT_CURRENT=6
LIBDT_REVISION=0
LIBDT_AGE=0
along with a comment on how the values were chosen. Copy the comment and
the values into the meson.build as well, so appropriate symlinks
pointing at the versioned library are created. We forego the extra
complexity of having a common file that's read from both build systems
as we are intent on phasing out autotools anyway, once wrinkles such as
what's fixed here are ironed out.
The translation from libtool versioning to major/minor/revision as
expected by meson is taken from GNOME's gcab[1]. More information
about libtool versioning is available in its documentation[2].
[1]: https://gitlab.gnome.org/GNOME/gcab/-/commit/2c8048f74ec8c088397
[2]: https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
Reported-by: Enrico Jörns <e.joerns@pengutronix.de>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
v1 -> v2:
- set library version major as current - age
---
meson.build | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/meson.build b/meson.build
index 9579e712dfea..6489e4c4d52e 100644
--- a/meson.build
+++ b/meson.build
@@ -122,6 +122,18 @@ versiondep = declare_dependency(sources: version_h)
meson.add_dist_script('version-gen', meson.project_version())
+# If the library source code has changed at all since the last release,
+# then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
+# If any interfaces have been added/removed/changed since the last release,
+# then increment current, and set revision to 0.
+# If any public interfaces have been added since the last public release,
+# then increment age.
+# If any interfaces have been removed or changed since the last release,
+# then set age to 0.
+lt_current = 6
+lt_revision = 0
+lt_age = 0
+
mapfile = 'src/libdt-utils.sym'
libdt_ld_flags = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile)
@@ -133,6 +145,7 @@ libdt = shared_library('dt-utils',
c_args : ['-include', meson.current_build_dir() / 'version.h'],
dependencies : [udevdep, versiondep],
gnu_symbol_visibility : 'default',
+ version: '@0@.@1@.@2@'.format(lt_current - lt_age, lt_age, lt_revision),
install : true)
executable('barebox-state',
--
2.39.2
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [OSS-Tools] [PATCH dt-utils v2] meson: align libdt-utils version with autotools'
2023-11-06 13:49 [OSS-Tools] [PATCH dt-utils v2] meson: align libdt-utils version with autotools' Ahmad Fatoum
@ 2023-11-24 11:23 ` Roland Hieber
0 siblings, 0 replies; 2+ messages in thread
From: Roland Hieber @ 2023-11-24 11:23 UTC (permalink / raw)
To: Ahmad Fatoum; +Cc: oss-tools, Enrico Jörns
On Mon, Nov 06, 2023 at 02:49:07PM +0100, Ahmad Fatoum wrote:
> Makefile.am has following defines for libtool versioning:
>
> LIBDT_CURRENT=6
> LIBDT_REVISION=0
> LIBDT_AGE=0
>
> along with a comment on how the values were chosen. Copy the comment and
> the values into the meson.build as well, so appropriate symlinks
> pointing at the versioned library are created. We forego the extra
> complexity of having a common file that's read from both build systems
> as we are intent on phasing out autotools anyway, once wrinkles such as
> what's fixed here are ironed out.
>
> The translation from libtool versioning to major/minor/revision as
> expected by meson is taken from GNOME's gcab[1]. More information
> about libtool versioning is available in its documentation[2].
>
> [1]: https://gitlab.gnome.org/GNOME/gcab/-/commit/2c8048f74ec8c088397
> [2]: https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
>
> Reported-by: Enrico Jörns <e.joerns@pengutronix.de>
> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Thanks, this patch is now released in v2023.11.0.
- Roland
> ---
> v1 -> v2:
> - set library version major as current - age
> ---
> meson.build | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/meson.build b/meson.build
> index 9579e712dfea..6489e4c4d52e 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -122,6 +122,18 @@ versiondep = declare_dependency(sources: version_h)
>
> meson.add_dist_script('version-gen', meson.project_version())
>
> +# If the library source code has changed at all since the last release,
> +# then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
> +# If any interfaces have been added/removed/changed since the last release,
> +# then increment current, and set revision to 0.
> +# If any public interfaces have been added since the last public release,
> +# then increment age.
> +# If any interfaces have been removed or changed since the last release,
> +# then set age to 0.
> +lt_current = 6
> +lt_revision = 0
> +lt_age = 0
> +
> mapfile = 'src/libdt-utils.sym'
> libdt_ld_flags = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile)
>
> @@ -133,6 +145,7 @@ libdt = shared_library('dt-utils',
> c_args : ['-include', meson.current_build_dir() / 'version.h'],
> dependencies : [udevdep, versiondep],
> gnu_symbol_visibility : 'default',
> + version: '@0@.@1@.@2@'.format(lt_current - lt_age, lt_age, lt_revision),
> install : true)
>
> executable('barebox-state',
> --
> 2.39.2
>
>
>
--
Roland Hieber, Pengutronix e.K. | r.hieber@pengutronix.de |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-11-24 11:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-06 13:49 [OSS-Tools] [PATCH dt-utils v2] meson: align libdt-utils version with autotools' Ahmad Fatoum
2023-11-24 11:23 ` Roland Hieber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox