Re: Syncing `master`

2022-12-31 Thread Piotr P. Karwasz
Hi Ralph,

On Fri, 30 Dec 2022 at 21:56, Ralph Goers  wrote:
> I am not understanding the format of this table. I expected it to contain a 
> list of PRs/Jira issues that were not propagated. Instead it seems to be a 
> list of modules and package names. Are we supposed to mark the packages that 
> have been validated?

If I knew which Jira issues were not propagated, I would easily
propagate the changes. Maybe after Volkan splits `changes.xml` we can
find out the differences

The problem is I don't know what is missing: I do a diff of the two
branches to see which changes are missing and where. I think that
anything that does not concern the DI, removing deprecated methods or
replacing Java 8 methods with Java 11 is suspicious.

Piotr


Re: [log4cxx] Next steps / release?

2022-12-31 Thread Tobias Frost
On Fri, Dec 30, 2022 at 12:43:18PM -0500, Robert Middleton wrote:
> On Fri, Dec 30, 2022 at 11:43 AM Tobias Frost  wrote:
> > When doing the same against the branch "next_stable", currently at [2]
> > the result is much much worse:
> > https://people.debian.org/~tobi/log4cxx/1_to_next/compat_report.html
> >
> > /me confused… (I've read your text as it should be the opposite…)
> >
> 
> The new version should be ABI stable moving forward, but it needs to
> be released first.
> 
> > If it is only API compatible, but not ABI compable, we'll need a SONAME 
> > bump.
> >
> 
> I bumped the SONAME a little bit ago; you probably grabbed the code
> shortly before I bumped it.

Indeed :)

> I think I've done it correctly, but it
> would be nice to have somebody double-check it.  I arbitrarily bumped
> it to version 15, skipping 14.  The version of the SO file should also
> now match the version of log4cxx, but that version is not the same as
> the SONAME.

The generated file names look strange:

Now:
tobi@isildor:~/workspace/deb/packages/log4cxx/upstream/log4cxx/debian/tmp/usr/lib/x86_64-linux-gnu$
 ls -la liblog4cxx*
lrwxrwxrwx 1 tobi tobi   20 Dec 31 08:51 liblog4cxx.so -> 
liblog4cxx.so.15.0.0
-rw-r--r-- 1 tobi tobi 22632496 Dec 31 08:50 liblog4cxx.so.1.0.0.0
lrwxrwxrwx 1 tobi tobi   21 Dec 31 08:51 liblog4cxx.so.15.0.0 -> 
liblog4cxx.so.1.0.0.0

I'd expect the (actually) library be liblog4cxx.so.15.0.0 and symlinks pointing 
to it:
liblog4cxx.so --> liblog4cxx.so.15 --> liblog4cxx.so.15.0.0
(linker name) --> (soname)--> (real name)

(References: https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html,
 https://man7.org/conf/lca2006/shared_libraries/slide5b.html and following 
slides)

before it was like this, which matches what I see on other libraries and what I 
would expect:
tobi@isildor:~/workspace/deb/packages/log4cxx/log4cxx/debian/tmp/usr/lib/x86_64-linux-gnu$
 ls -la liblog4cxx*
total 22780
lrwxrwxrwx 1 tobi tobi   16 Dec 31 08:55 liblog4cxx.so -> liblog4cxx.so.13
lrwxrwxrwx 1 tobi tobi   20 Dec 31 08:55 liblog4cxx.so.13 -> 
liblog4cxx.so.13.0.0
-rw-r--r-- 1 tobi tobi 23308784 Dec 31 08:54 liblog4cxx.so.13.0.0
)

(If you want to encode the project version into the name, it would be more
liblog4cxx-1.0.0.so, liblog4cxx-1.0.0.so.15 and sliblog4cxx-1.0.0.so.15.0.0 , 
but that's breaking
the concept of soanmes alltogether, as for the linker/loader 
liblog4cxx-1.0.0.so.15 and liblog4cxx-1.0.1.so.15 would
be different, unrelated libraries)

> -Robert Middletona

-- 
tobi


Re: [log4cxx] Next steps / release?

2022-12-31 Thread Tobias Frost
On Thu, Dec 29, 2022 at 05:21:34PM -0500, Robert Middleton wrote:

> The last time we talked about this Tobias Frost said that the
> soft-freeze for Debian is the 12th of January[1], so after that point
> an updated library wouldn't make it into Debian.  I would like to get
> this version into Debian if possible(as that is the distribution I
> use), but that depends on Tobias' availability.

To have a chance to make that happen, I've started the transistion workflow [1].
TBH, due to the soft freeze is in less than two weeks, changes are high that
we won't make it, but at least I want to have tried it.

The first step is "Upload your new version to experimental (and have it clear
NEW)", which is what I've just have done: I've uploaded a snapshot (commit
cbd23ff1) to debian experimental. This needs now to be approved by the (Debian)
ftp masters, which is (usually) for such a change quick, but if they aren't or
not happy for any reason, this can spoil the game. [2]

Only after that, I can ask for a transition slot from the release team. If they 
are
not happy with a transition that late (IOW that short before the freeze), well
that will be something I have to accept and that will mean 1.0.0 not in
bookworm.

In parallel I'll see if the reverse dependencies are still building with the
new version, as for any breakage I will need to have patches available…

So, let's see how it works out.

[1] if you want to know the details: 
https://wiki.debian.org/Teams/ReleaseTeam/Transitions
[2] It needs to go through NEW due to the binary package rename, due to the 
SONAME bump.

-- 
tobi


Re: [log4cxx] Next steps / release?

2022-12-31 Thread Robert Middleton
On Sat, Dec 31, 2022 at 4:22 AM Tobias Frost  wrote:
> The generated file names look strange:
>
> Now:
> tobi@isildor:~/workspace/deb/packages/log4cxx/upstream/log4cxx/debian/tmp/usr/lib/x86_64-linux-gnu$
>  ls -la liblog4cxx*
> lrwxrwxrwx 1 tobi tobi   20 Dec 31 08:51 liblog4cxx.so -> 
> liblog4cxx.so.15.0.0
> -rw-r--r-- 1 tobi tobi 22632496 Dec 31 08:50 liblog4cxx.so.1.0.0.0
> lrwxrwxrwx 1 tobi tobi   21 Dec 31 08:51 liblog4cxx.so.15.0.0 -> 
> liblog4cxx.so.1.0.0.0
>
> I'd expect the (actually) library be liblog4cxx.so.15.0.0 and symlinks 
> pointing to it:
> liblog4cxx.so --> liblog4cxx.so.15 --> liblog4cxx.so.15.0.0
> (linker name) --> (soname)--> (real name)
>
> (References: 
> https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html,
>  https://man7.org/conf/lca2006/shared_libraries/slide5b.html and following 
> slides)
>
> before it was like this, which matches what I see on other libraries and what 
> I would expect:
> tobi@isildor:~/workspace/deb/packages/log4cxx/log4cxx/debian/tmp/usr/lib/x86_64-linux-gnu$
>  ls -la liblog4cxx*
> total 22780
> lrwxrwxrwx 1 tobi tobi   16 Dec 31 08:55 liblog4cxx.so -> liblog4cxx.so.13
> lrwxrwxrwx 1 tobi tobi   20 Dec 31 08:55 liblog4cxx.so.13 -> 
> liblog4cxx.so.13.0.0
> -rw-r--r-- 1 tobi tobi 23308784 Dec 31 08:54 liblog4cxx.so.13.0.0
> )
>
> (If you want to encode the project version into the name, it would be more
> liblog4cxx-1.0.0.so, liblog4cxx-1.0.0.so.15 and sliblog4cxx-1.0.0.so.15.0.0 , 
> but that's breaking
> the concept of soanmes alltogether, as for the linker/loader 
> liblog4cxx-1.0.0.so.15 and liblog4cxx-1.0.1.so.15 would
> be different, unrelated libraries)

FWIW my reference is mostly from this (old) thread on the KDE mailing
list: https://mail.kde.org/pipermail/kde-buildsystem/2008-April/004543.html
This would seem to agree with the TLDP documentation, which states:
"Every shared library has a special name called the ``soname''. The
soname has the prefix ``lib'', the name of the library, the phrase
``.so'', followed by a period and a version number that is incremented
whenever the interface changes (as a special exception, the
lowest-level C libraries don't start with ``lib''). A fully-qualified
soname includes as a prefix the directory it's in; on a working system
a fully-qualified soname is simply a symbolic link to the shared
library's ``real name''.

Every shared library also has a ``real name'', which is the filename
containing the actual library code. The real name adds to the soname a
period, a minor number, another period, and the release number. The
last period and release number are optional. The minor number and
release number support configuration control by letting you know
exactly what version(s) of the library are installed. Note that these
numbers might not be the same as the numbers used to describe the
library in documentation, although that does make things easier."

So setting the SONAME to 15.0.0 results in the liblog4cxx.so.15, with
a version of 1.0.0.0(liblog4cxx.so.1.0.0.0) which would correspond to
the correct log4cxx version in this case(CMake allows for
major.minor.patch.tweak, but for the human-readable release I do just
major.minor.patch).  As far as I can tell, the important thing is that
the SONAME does not always equal the version name(if we were following
semantic versioning earlier it probably would be the same), but that's
part of this release to get it into a state where the versions and
SONAME should increment independently of each other.

Anyway, I'm going to do the following:
* Update the changelog for this new release
* Make sure the ABI dump is up to date(only needed for builds on
github, this is not in the release tarball)
* Merge next_stable into master and delete next_stable, so that master
becomes the new master
* Call a release vote

-Robert Middleton


Re: [log4cxx] Next steps / release?

2022-12-31 Thread Tobias Frost
On Sat, Dec 31, 2022 at 10:38:37AM -0500, Robert Middleton wrote:
> On Sat, Dec 31, 2022 at 4:22 AM Tobias Frost  wrote:
> > The generated file names look strange:
> >
> > Now:
> > tobi@isildor:~/workspace/deb/packages/log4cxx/upstream/log4cxx/debian/tmp/usr/lib/x86_64-linux-gnu$
> >  ls -la liblog4cxx*
> > lrwxrwxrwx 1 tobi tobi   20 Dec 31 08:51 liblog4cxx.so -> 
> > liblog4cxx.so.15.0.0
> > -rw-r--r-- 1 tobi tobi 22632496 Dec 31 08:50 liblog4cxx.so.1.0.0.0
> > lrwxrwxrwx 1 tobi tobi   21 Dec 31 08:51 liblog4cxx.so.15.0.0 -> 
> > liblog4cxx.so.1.0.0.0
> >
> > I'd expect the (actually) library be liblog4cxx.so.15.0.0 and symlinks 
> > pointing to it:
> > liblog4cxx.so --> liblog4cxx.so.15 --> liblog4cxx.so.15.0.0
> > (linker name) --> (soname)--> (real name)
> >
> > (References: 
> > https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html,
> >  https://man7.org/conf/lca2006/shared_libraries/slide5b.html and following 
> > slides)
> >
> > before it was like this, which matches what I see on other libraries and 
> > what I would expect:
> > tobi@isildor:~/workspace/deb/packages/log4cxx/log4cxx/debian/tmp/usr/lib/x86_64-linux-gnu$
> >  ls -la liblog4cxx*
> > total 22780
> > lrwxrwxrwx 1 tobi tobi   16 Dec 31 08:55 liblog4cxx.so -> 
> > liblog4cxx.so.13
> > lrwxrwxrwx 1 tobi tobi   20 Dec 31 08:55 liblog4cxx.so.13 -> 
> > liblog4cxx.so.13.0.0
> > -rw-r--r-- 1 tobi tobi 23308784 Dec 31 08:54 liblog4cxx.so.13.0.0
> > )
> >
> > (If you want to encode the project version into the name, it would be more
> > liblog4cxx-1.0.0.so, liblog4cxx-1.0.0.so.15 and sliblog4cxx-1.0.0.so.15.0.0 
> > , but that's breaking
> > the concept of soanmes alltogether, as for the linker/loader 
> > liblog4cxx-1.0.0.so.15 and liblog4cxx-1.0.1.so.15 would
> > be different, unrelated libraries)
> 
> FWIW my reference is mostly from this (old) thread on the KDE mailing
> list: https://mail.kde.org/pipermail/kde-buildsystem/2008-April/004543.html
> This would seem to agree with the TLDP documentation, which states:
> "Every shared library has a special name called the ``soname''. The
> soname has the prefix ``lib'', the name of the library, the phrase
> ``.so'', followed by a period and a version number that is incremented
> whenever the interface changes (as a special exception, the
> lowest-level C libraries don't start with ``lib''). A fully-qualified
> soname includes as a prefix the directory it's in; on a working system
> a fully-qualified soname is simply a symbolic link to the shared
> library's ``real name''.
> 
> Every shared library also has a ``real name'', which is the filename
> containing the actual library code. The real name adds to the soname a
> period, a minor number, another period, and the release number. The
> last period and release number are optional. The minor number and
> release number support configuration control by letting you know
> exactly what version(s) of the library are installed. Note that these
> numbers might not be the same as the numbers used to describe the
> library in documentation, although that does make things easier."
> 
> So setting the SONAME to 15.0.0 results in the liblog4cxx.so.15, with
> a version of 1.0.0.0(liblog4cxx.so.1.0.0.0) which would correspond to
> the correct log4cxx version in this case(CMake allows for
> major.minor.patch.tweak, but for the human-readable release I do just
> major.minor.patch).  As far as I can tell, the important thing is that
> the SONAME does not always equal the version name(if we were following
> semantic versioning earlier it probably would be the same), but that's
> part of this release to get it into a state where the versions and
> SONAME should increment independently of each other.

(sorry for being short worded, not having much time right now)
Please note that library versioning has nothing do do with project versioning,
don't conflate them… It is a sign of improper library versioning if the
project has the same version as the library. IOW, so name versioning do
not follow semantic versioning.

I still believe that the real name needs to be liblog4cxx.15.0.0, and this
also matches my experience how it is done generally. I pretty please ask not
to deviate from that, libraries are very easily made so that they are subtly
break, and my experience shows that your are always best of by following 
established
practices. 

BTW, I'm getting a (new) lintian warning [0]
W: liblog4cxx15: package-name-doesnt-match-sonames liblog4cxx15.0.0

readelf -a liblog4cxx.so.1.0.0.0 | grep SONAME
 0x000e (SONAME) Library soname: [liblog4cxx.so.15.0.0]

compare that to eg. of libpng:
readelf -a /usr/lib/x86_64-linux-gnu/libpng16.so.16.39.0 | grep SONAME
 0x000e (SONAME) Library soname: [libpng16.so.16]

I think there is something broken, ENOTIME to investiate right now, probably
SO version* is set to 15.0.0 instead of only 15.

* sorry for the non-exact wording… 

[0] https://lintian.de

Re: [log4cxx] Next steps / release?

2022-12-31 Thread Robert Middleton
On Sat, Dec 31, 2022 at 1:57 PM Tobias Frost  wrote:
> (sorry for being short worded, not having much time right now)
> Please note that library versioning has nothing do do with project versioning,
> don't conflate them… It is a sign of improper library versioning if the
> project has the same version as the library. IOW, so name versioning do
> not follow semantic versioning.
>

So it seems that there are like three versions to take into account
here(using liblog4cxx11):
1. The user-visible version(e.g. 0.11.0)
2. The version that the SO file has(e.g. liblog4cxx.so.11.0.0)
3. The ABI version of the library(e.g. 11)

As for the project version being the same version as the library, that
is the case with certain libraries:

robert@debian:/usr/lib/x86_64-linux-gnu$ apt-cache policy libqt5core5a
libqt5core5a:
  Installed: 5.11.3+dfsg1-1+deb10u5
  Candidate: 5.11.3+dfsg1-1+deb10u5
  Version table:
 *** 5.11.3+dfsg1-1+deb10u5 500
500 http://deb.debian.org/debian buster/main amd64 Packages
100 /var/lib/dpkg/status
 5.11.3+dfsg1-1+deb10u3 500
500 http://security.debian.org/debian-security
buster/updates/main amd64 Packages
robert@debian:/usr/lib/x86_64-linux-gnu$ ls -l libQt5Core*
-rw-r--r-- 1 root root1256 Mar 26  2022 libQt5Core.prl
lrwxrwxrwx 1 root root  20 Mar 26  2022 libQt5Core.so ->
libQt5Core.so.5.11.3
lrwxrwxrwx 1 root root  20 Mar 26  2022 libQt5Core.so.5 ->
libQt5Core.so.5.11.3
lrwxrwxrwx 1 root root  20 Mar 26  2022 libQt5Core.so.5.11 ->
libQt5Core.so.5.11.3
-rw-r--r-- 1 root root 5208360 Mar 26  2022 libQt5Core.so.5.11.3

If I'm understanding all of this correctly, using Qt as an example
there the user-visible version is 5.11.3, the SO version is 5.11.3,
and the ABI version is 5(since all Qt versions are ABI stable for
every minor release in their major).

> I still believe that the real name needs to be liblog4cxx.15.0.0, and this
> also matches my experience how it is done generally. I pretty please ask not
> to deviate from that, libraries are very easily made so that they are subtly
> break, and my experience shows that your are always best of by following 
> established
> practices.
>
> BTW, I'm getting a (new) lintian warning [0]
> W: liblog4cxx15: package-name-doesnt-match-sonames liblog4cxx15.0.0
>
> readelf -a liblog4cxx.so.1.0.0.0 | grep SONAME
>  0x000e (SONAME) Library soname: 
> [liblog4cxx.so.15.0.0]
>
> compare that to eg. of libpng:
> readelf -a /usr/lib/x86_64-linux-gnu/libpng16.so.16.39.0 | grep SONAME
>  0x000e (SONAME) Library soname: [libpng16.so.16]
>
> I think there is something broken, ENOTIME to investiate right now, probably
> SO version* is set to 15.0.0 instead of only 15.
>
> * sorry for the non-exact wording…
>
> [0] https://lintian.debian.org/tags/package-name-doesnt-match-sonames
>
> > Anyway, I'm going to do the following:
> > * Update the changelog for this new release
> > * Make sure the ABI dump is up to date(only needed for builds on
> > github, this is not in the release tarball)
> > * Merge next_stable into master and delete next_stable, so that master
> > becomes the new master
> > * Call a release vote
>
> Please lets first fix the SONAME issue… This is something which has a huge
> impact and having the need to have a Debian specific patch here would be 
> really bad.

I'll make everything with the SONAME 15.0.0, since that follows what
we have been doing before.  That lintian error is useful; now that I
know that you're getting that error, it makes sense to fix it on the
upstream end instead of having you fix that on yours.

-Robert Middleton