From: Roland Hieber <rhi@pengutronix.de>
To: Ahmad Fatoum <a.fatoum@pengutronix.de>
Cc: oss-tools@pengutronix.de
Subject: Re: [OSS-Tools] [PATCH dt-utils] meson: align libdt-utils version with autotools'
Date: Mon, 6 Nov 2023 14:56:36 +0100 [thread overview]
Message-ID: <20231106135636.z4u4l7qqxrjktmev@pengutronix.de> (raw)
In-Reply-To: <3f9dc13e7710d87ad6a022d07c0c3e2314c0e5a1.camel@pengutronix.de>
On Mon, Nov 06, 2023 at 01:12:48PM +0100, Enrico Jörns wrote:
> Am Montag, dem 06.11.2023 um 13:04 +0100 schrieb Roland Hieber:
> > On Mon, Nov 06, 2023 at 12:58:22PM +0100, Ahmad Fatoum wrote:
> > > Makefile.am has:
> > >
> > > 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.
> > >
> > > Reported-by: Enrico Jörns <e.joerns@pengutronix.de>
> > > Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> >
> > Reviewed-by: Roland Hieber <rhi@pengutronix.de>
> >
> > > ---
> > > meson.build | 9 +++++++++
> > > 1 file changed, 9 insertions(+)
> > >
> > > diff --git a/meson.build b/meson.build
> > > index 9579e712dfea..9894d7311bb3 100644
> > > --- a/meson.build
> > > +++ b/meson.build
> > > @@ -133,6 +133,15 @@ libdt = shared_library('dt-utils',
> > > c_args : ['-include', meson.current_build_dir() / 'version.h'],
> > > dependencies : [udevdep, versiondep],
> > > gnu_symbol_visibility : 'default',
> > > +# 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.
>
> Does this make sense?
> Isn't "current" meant to mark *incompatible* public API changes?
> This might be valid for "removed" or "changed", but not for "added".
>
> How does "interfaces" differ from "public interfaces" below?
>
> Regards, Enrico
>
> > > +# 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.
> > > + version: '6.0.0',
Wait. Enrico has a point. The "version" field in meson has the usual
"major.minor.patch" semantics [1], which does not relate to autotools'
current/revision/age scheme, which in autotools is used to calculate the
soversion (by some strange formula that I can never memorise). meson
however assumes the major number as soversion if nothing else is
specified.
Also [2] notes:
> To set the version of the library, libtool provides the
> -version-info parameter, which accepts three numbers, separated by
> colons, that are called respectively, current, revision and age.
> Both their name and their behaviour, nowadays, have to be considered
> fully arbitrary, as the explanation provided in the official
> documentation is confusing to say the least, and can be, in some
> cases, considered completely wrong.
As we want to get rid of autotools in the foreseeable future anyway, I
suggest that we drop the current/revision/age scheme and use semantic
versioning instead (i.e., increase major for ABI-incompatible changes,
increase minor for ABI-compatible new features, increase patch for
ABI-compatible bugfixes), which for versions like "6.1.2" results in
library names like "libdt-utils.so.6.1.2" and soversion of 6.
[1]: https://mesonbuild.com/Reference-manual_functions.html#shared_library_version
[2]: https://autotools.info/libtool/version.html#idm1602
(Please disregard my premature Reviewed-by.)
- Roland
> > > install : true)
> > >
> > > executable('barebox-state',
> > > --
> > > 2.39.2
> > >
> > >
> > >
> >
>
> --
> Pengutronix e.K. | Enrico Jörns |
> Embedded Linux Consulting & Support | https://www.pengutronix.de/ |
> Steuerwalder Str. 21 | Phone: +49-5121-206917-180 |
> 31137 Hildesheim, Germany | Fax: +49-5121-206917-9 |
>
>
--
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 |
next prev parent reply other threads:[~2023-11-06 13:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-06 11:58 Ahmad Fatoum
2023-11-06 12:04 ` Roland Hieber
2023-11-06 12:12 ` Enrico Jörns
2023-11-06 13:44 ` Ahmad Fatoum
2023-11-06 13:59 ` Enrico Jörns
2023-11-06 13:56 ` Roland Hieber [this message]
2023-11-06 14:04 ` Enrico Jörns
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231106135636.z4u4l7qqxrjktmev@pengutronix.de \
--to=rhi@pengutronix.de \
--cc=a.fatoum@pengutronix.de \
--cc=oss-tools@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox