Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi Sebastian, On Tue, Jan 09, 2024 at 10:49:23AM +0100, Sebastian Ramacher wrote: > > > > > > 22 libobs-dev > > > > > That's a change to the plugin ABI only. > > > > Can you explain how you've reached that conclusion? This is a package > > > > that failed to be analyzed in the latest run; an earlier run against > > > > Ubuntu lunar showed no change in ABI at all. > > > libobs-dev and the shared library are an oddity of obs-studio. There > > > only purpose is to build plugins. > > Ok, but it appears there are a large number of reverse-dependencies on > > libobs0 from other source packages, and there is no OTHER encoding of > > information about plugin ABI aside from this (no Provides: field on > > obs-studio). So what do you suggest here with respect to ABI skew between > > obs-studio and its plugins on armhf? > I need some more time to check the current situation. Have you had enough time to check this out? Are we ok to proceed with handling libobs0 along with the other libraries, which would address the ABI skew despite it technically not being libobs0 whose ABI is changing? > > > > > > 9 libopenmpt-dev > > > > > > > Seems to be a false positive. > > > > > > > > > > > > Your responses here are to the contents of the `sorted-revdep-count` > > > > list. > > > > This is the list of header packages that *we were unable to analyze with > > > > abi-compliance-checker*, and so in the interest of avoiding ABI > > > > mismatches > > > > and broken systems for users when upgrading on 32-bit archs, would get a > > > > package rename to be safe. > > > > This is the plan I had outlined at: > > > > https://lists.debian.org/debian-devel/2023/07/msg00232.html > > > > I am happy for any help in the form of patches to > > > > https://salsa.debian.org/adrien-n/armhf-time_t that fix the failures of > > > > these header packages to be analyzed, or explanations for how a given > > > > header > > > > package's API changes cannot affect the ABI of the runtime libraries > > > > from > > > > the source package so that we can manually exclude those libraries from > > > > the > > > > transition. I am not sure I would *recommend* that maintainers spend a > > > > lot > > > > of time on proving one or another individual library does not have an > > > > ABI > > > > breakage, especially in the long tail of libraries with few > > > > reverse-dependencies whose involvement in the transition is unlikely to > > > > substantially slow down Debian development. > I was looking at the repo but it is unclear to me how packages that can > be skipped are handled there. What would a PR look like to exclude > specific packages? The skip handling is in the block starting at https://salsa.debian.org/vorlon/armhf-time_t/-/blob/main/check-armhf-time_t?ref_type=heads#L852 Thanks, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi, On 20-01-2024 23:22, Steve Langasek wrote: So I think an algorithm for deciding the uploads to experimental looks like this: - download source from unstable. - apply the packagename conversion to the source. - grab the debdiff. - submit the NMU diff to the BTS. - download the source again from experimental (possibly a no-op). - apply the debdiff to the source. Except with a *lower* version number than you submitted to the BTS or in two steps below, with a higher version than you submitted to the BTS. (I assume everybody reading this realized that, but just in case.) - if it fails to apply (meaning: debian/control has changed), skip. otherwise, build and upload to experimental. - after packages have cleared binary NEW, upload sourceful NMUs to unstable for all these packages with the same debdiff as before. - if there are any packages included in the uploads to unstable that were skipped for experimental because of different sonames there, deal with binary NEW then in unstable. Paul OpenPGP_signature.asc Description: OpenPGP digital signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Sun, Jan 07, 2024 at 09:30:37AM +0100, Rene Engelhard wrote: > Am 07.01.24 um 02:01 schrieb Steve Langasek: > > If you say you are going to fix eventual breakage (and not ignoring the > > test results!) and if that means fixing asm on all affected archs, then > > it's OK :) > > Well, yes; though I hope we would see some help from e.g. arm porters if > > there were actually breakage of this nature. > Hope doesn't help when it got to the actual problem and this doesn't happen. Relying on me or any *other* non-ARM porter to fix (hypothetical) ARM-specific asm issues is also aspirational. But also, I don't know what else you would propose here. We can't practically hold libreoffice back from the time_t transition with dpkg-buildflags overrides, it depends on other libraries that are also affected (e.g. poppler); and 32-bit time_t is already on borrowed time. It fails not when the *current* date reaches 2038, but when *any dates you want to work with on the system* reach 2038. There are known instances already of software failures due to this limitation, and this will only accelerate with time. I don't think it's reasonable to postpone the transition. (Also, the intention here was first posted to debian-devel 6 months ago, and you didn't raise any objections then? So I don't think a hypothetical concern in libreoffice asm should block things now.) > > Alternatively, maybe it would > > be better to stop shipping libreoffice on 32-bit archs, in that case? I'm > I'd like to avoid this. Getting rid of i386 is fine, noone needs it, armhf > is a bit different. > (rpis etc - even though they could run arm64, but..) I understand wanting to avoid it, but I think that should be the fallback position if there are intractable porting problems. Losing libreoffice on armhf is better than carrying 32-bit time_t forward. As a data point, Ubuntu will only ship arm64 for raspi in 24.04, not armhf. > > > > > > - the source packages which need an ABI change > > > > > > ("source-packages"+"lfs-and-depends-time_t" will have > > > > > > sourceful NMUs to > > > > > I get that you probably want NMUs for not needing to ping every > > > > > maintainer, > > > > > but this is bad. > > > > > That e.g. would cause me to upload libreoffice 24.2 rc2 to sid > > > > > immediately > > > > > when tagged end of next week to not have this caught in the > > > > > transition. (see > > > > > also below for the comment about new upstream versions in > > > > > experimental.) > > > > What about the suggestion to not push changes to experimental for > > > > packages > > > > that already have new versions in experimental, and do the binary > > > > package > > > > renames in unstable instead, leaving the package in experimental alone? > > > If at all - *both*. At the same time. > > Most of these packages that are staged in experimental are going to be there > > because of library transitions... > And ignore those who use experimental as a testbed of major new upstreams? > Doesn't sound good. The purpose of uploading to experimental is twofold. - to clear binary NEW in an orderly fashion, and minimize the window of possible misbuilds in unstable once dpkg lands there - to let the usrmerge tooling run against the packages in experimental and check for any issues there. Of course, the second of these doesn't apply to libreoffice. I hear you that you would like libreoffice to be included because of the second point. In another subthread I identified that 130 of the binary packages currently in experimental are runtime libraries requiring name changes (from 64 source packages). Since these are explicitly runtime library packages staged in experimental whose binary package names have NOT changed, they do all need source NMUs (i.e.: we can't simply promote these packages from experimental to unstable and rebuild with new dpkg without changing the binary package names). This is enough packages that it seems fair to expect them to also have the binary NEW handling done in experimental, not in unstable. So I am convinced that we should do NMUs of these to experimental as well, rather than uploading them straight to unstable. Packages that already have new sonames in experimental should still NOT have NMUs uploaded to experimental, because we don't want to add package name annotations for the new not-yet-in-unstable soname. So I think an algorithm for deciding the uploads to experimental looks like this: - download source from unstable. - apply the packagename conversion to the source. - grab the debdiff. - submit the NMU diff to the BTS. - download the source again from experimental (possibly a no-op). - apply the debdiff to the source. - if it fails to apply (meaning: debian/control has changed), skip. otherwise, build and upload to experimental. - after packages have cleared binary NEW, upload sourceful NMUs to unstable for all these packages with the same debdiff as before. - if there are any packages
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi again, On Sun, Jan 07, 2024 at 01:09:48PM +0100, Rene Engelhard wrote: > Am 07.01.24 um 04:38 schrieb Steve Langasek: > > The ordering here would be: > > - dpkg will be uploaded to experimental with 64-bit time_t in the default > >flags > > - the source packages which need an ABI change > >("source-packages"+"lfs-and-depends-time_t") and do not already have > >versions in experimental, will have sourceful NMUs to experimental with > >the new binary package names in order to clear binary NEW, in > > coordination > > - once these packages have all cleared binary NEW, the new dpkg defaults > >will be uploaded to unstable > And in the meanwhile in experimental it will be built with the old time_t on > other architectures. > Since the new dpkg won't be picked up. > Not in the experimental builders unstable+experimental chroots which only > install experimental packages when Build-Depends: need them. > (For an undefined time given how much the packages later in the chain wait > in NEW) > Especially on armhf which is affected. Or will you do the source NMUs on > armhf/i386? (For some packages where some features are disabled on 32bit > this is probably not a good idea) There is no intention here to do the source NMUs on armhf/i386; they will be done on amd64. Yes, autobuilds of these packages in experimental would, in the naive implementation, still build with the old ABI and the new name. I am not overly concerned about this, experimental is a staging ground for developers and not something that folks are intended to install from in production. And there would be very few if any reverse-dependencies of these packages uploaded to experimental to pick up the new name. The intent is to work with the ftp team to batch-accept these through binary NEW once all of the uploads are done, and then promptly proceed with upgrades to experimental. Do you have a different suggestion? Note that even including a versioned build-dependency on dpkg-dev in the uploads to experimental doesn't really address the possibility of ABI skew if reverse-dependencies are uploaded during the critical window where dpkg has not yet been uploaded to unstable, because *those* packages will not have a versioned build-dependency on dpkg: so will link against the libraries with the new names but will themselves be using the old ABI. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi Colin, On Tue, Jan 09, 2024 at 01:32:11PM +, Colin Watson wrote: > On Mon, Jan 08, 2024 at 03:01:11PM -0800, Steve Langasek wrote: > > On Fri, Jan 05, 2024 at 09:17:52PM +0100, Paul Gevers wrote: > > > On 05-01-2024 17:36, Rene Engelhard wrote: > > > > Also a problem is that experimental also might already contain totally > > > > unrelated updates like new upstream versions... > > > I share this worry. Have you thought about how to handle the cases where > > > you > > > don't have experimental to upload to? How big is this problem? > In the current situation, though, not having experimental available > means that there's no opportunity for dumat to weigh in regarding > usrmerge interactions, which seems problematic given Helmut's > preliminary analysis. I guess this is a reply to the bits of context I retained above rather than directly a reply to my most immediate preceding message. In a separate subthread, I laid out what I thought the process should be for handling the transition of packages in that situation; but you are raising a separate point. Which parallels what Helmut had to say: > Whenever you face files in aliased locations (other than systemd units), > please go via experimental to let dumat judge your upload. Check the > bookworm package for files in aliased locations, not the unstable one. I have also had other out-of-band conversations with Helmut about the overlapping issues between usrmerge and time_t, so this was generally speaking on my radar although I didn't address it in my proposed transition plan. I think it is unrealistic to ask experimental to be otherwise quiesced of transitions to ensure that we can stage all of the affected libraries in experimental, and I also think that making false transitions for packages that are ALREADY in experimental because of transitions would be counterproductive. ("False" because if the library package has a different soname between unstable and experimental, then renaming the runtime library package in the *experimental* version is unnecessary because there's nothing "in the wild" depending on that package name but with the old ABI for which upgrade compatibility is of concern.) My preferred path forward here would be, as Helmut suggests, to check which libraries are in the intersection of (packages in experimental for which we won't stage time_t uploads) and (packages that exist in bookworm and need transitioning of aliased paths), and ensure that these packages are handled carefully according to Helmut's own guidance. My optimistic expectation is that the intersection will be null, or nearly; but in any case I will bring data. And my proposal for checking that set, since we're only talking about runtime library packages, is to check whether any of the contents of these packages in bookworm match ^/lib - as a runtime library package NOT matching this pattern, but matching a pattern for one of the other aliased directories, would be something ... special. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Mon, Jan 08, 2024 at 03:01:11PM -0800, Steve Langasek wrote: > On Fri, Jan 05, 2024 at 09:17:52PM +0100, Paul Gevers wrote: > > On 05-01-2024 17:36, Rene Engelhard wrote: > > > Also a problem is that experimental also might already contain totally > > > unrelated updates like new upstream versions... > > > I share this worry. Have you thought about how to handle the cases where you > > don't have experimental to upload to? How big is this problem? > > > Another worry, how will you provide the required changes to the maintainers > > of the packages? Via BTS? For those working on salsa: MR? Both? Something > > else? Obviously we should not end in the situation that a new upload goes > > back to the old name (or are the ftp-masters so keen on this transition that > > that won't happen? But what about newer versions with the old name already > > in experimental, conform the former worry?). I've seen NMU's being ignored > > by subsequent uploads by the maintainer, even when they fixed RC issues > > which were then reintroduced. > > I would intend to provide diffs via the BTS. This remains the standard > policy for NMUs in Debian per the Developer's Reference, and as far as I > know has worked effectively for all such previous ABI transitions. In the current situation, though, not having experimental available means that there's no opportunity for dumat to weigh in regarding usrmerge interactions, which seems problematic given Helmut's preliminary analysis. -- Colin Watson (he/him) [cjwat...@debian.org]
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Mon, 08 Jan 2024 at 15:01:11 -0800, Steve Langasek wrote: > If a maintainer ignores the NMU and drops the rename, they'll be introducing > a new library transition again on 32-bit archs. Won't they also be caught > again in binary NEW, for those packages that don't have the same runtime > library package name in experimental? To have a concrete example of this, I think you are saying: - NMU of src:foo renames libfoo0 to libfoo0t64 - maintainer ignores NMU and uploads, effectively renaming libfoo0t64 back to libfoo0 - you want the maintainer's upload to get stuck in NEW I am not a ftp team member, but if I understand NEW correctly, this will only trigger a new trip through NEW if the ftp team have already removed libfoo0 from the overrides file ("decrufting"), which is not done immediately, only after libfoo0 has not been built by src:foo for a little while. If libfoo0 exists in testing and/or stable, I'm not sure whether that prevents the ftp team's processes from removing it from the overrides file. If it does, then a new, maintainer upload of libfoo0 will certainly not be considered NEW, and the safety-catch that you are thinking of will not be effective. smcv
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi Steve On 2024-01-05 20:26:56 -0800, Steve Langasek wrote: > On Fri, Jan 05, 2024 at 09:32:28PM +0100, Sebastian Ramacher wrote: > > On 2024-01-05 11:06:09 -0800, Steve Langasek wrote: > > > On Fri, Jan 05, 2024 at 06:53:50PM +0100, Sebastian Ramacher wrote: > > > > Hi Steve > > > > > > - perl will also get a sourceful upload, to manually handle 'perlapi' > > > > > Provides. > > > > > Can we combine this one with the upcoming perl transition? See #1055955. > > > > Pros and cons of combining: > > > > - it will save another rebuild of perl modules > > > - new perl upstream versions usually break at least some > > > reverse-dependencies in the archive, so this may slow down the time_t > > > transition to testing for other packages by entangling it with sourceful > > > perl changes. > > > > The release team has already suggested not entangling the two. > > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1055955#10 > > > That was two months ago and we were expecting some progress. There was > > however none so far. > > Sorry, what were you expecting exactly? I've had no communication from the > Release Team until now about expectations, including on the debian-devel > thread back in July. Sorry for being unclear. My comment was related to the perl transition. Perl 5.38 will start (ACKed yesterday, it was blocked on our side) before this one and we try to complete it before starting time_t. > > As perl 5.38 is already staged in exeperimental, there are only two > > options: time64_t waits until perl 5.38 is done or we entangle them. > > Rene and Paul raise this concern as well. However, there is another option. > > For any packages involved in this transition which currently have new > versions staged in experimental which are not yet ready to go to unstable, > we can simply exclude them from the upload to experimental, and do the > NEW processing for this subset of packages directly in unstable as part of > the second step. Sounds good to me (provided FPT master are happy to fast track those uploads). > > > > > 22 libobs-dev > > > > > That's a change to the plugin ABI only. > > > > Can you explain how you've reached that conclusion? This is a package > > > that failed to be analyzed in the latest run; an earlier run against > > > Ubuntu lunar showed no change in ABI at all. > > > libobs-dev and the shared library are an oddity of obs-studio. There > > only purpose is to build plugins. > > Ok, but it appears there are a large number of reverse-dependencies on > libobs0 from other source packages, and there is no OTHER encoding of > information about plugin ABI aside from this (no Provides: field on > obs-studio). So what do you suggest here with respect to ABI skew between > obs-studio and its plugins on armhf? I need some more time to check the current situation. > > > > > 9 libopenmpt-dev > > > > > Seems to be a false positive. > > > > > > > > Your responses here are to the contents of the `sorted-revdep-count` list. > > > This is the list of header packages that *we were unable to analyze with > > > abi-compliance-checker*, and so in the interest of avoiding ABI mismatches > > > and broken systems for users when upgrading on 32-bit archs, would get a > > > package rename to be safe. > > > > This is the plan I had outlined at: > > > > https://lists.debian.org/debian-devel/2023/07/msg00232.html > > > > I am happy for any help in the form of patches to > > > https://salsa.debian.org/adrien-n/armhf-time_t that fix the failures of > > > these header packages to be analyzed, or explanations for how a given > > > header > > > package's API changes cannot affect the ABI of the runtime libraries from > > > the source package so that we can manually exclude those libraries from > > > the > > > transition. I am not sure I would *recommend* that maintainers spend a > > > lot > > > of time on proving one or another individual library does not have an ABI > > > breakage, especially in the long tail of libraries with few > > > reverse-dependencies whose involvement in the transition is unlikely to > > > substantially slow down Debian development. I was looking at the repo but it is unclear to me how packages that can be skipped are handled there. What would a PR look like to exclude specific packages? > > > > Change to vlc plugin ABI. This does not require a change of the binary > > > > package name. > > > > There are other reverse-dependencies of libvlccore9 in the archive that > > > are > > > not VLC plugins (phonon4qt5-backend-vlc etc). Are these packages simply > > > mis-linked against that library? > > > No, they are not. The part that changes is exclusiv to plugins. I will > > deal with this change by updating the vlc-plugin-abi-$x Provides. > > This further reduces the count of reverse-dependencies needing rebuilt from > 5452+177 to 5450+178. A net gain of 1 package as a result of you handling > this manually instead for the plugin abi, and it's not even >
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Fri, Jan 05, 2024 at 09:17:52PM +0100, Paul Gevers wrote: > Hi Steve, > On 05-01-2024 17:36, Rene Engelhard wrote: > > Also a problem is that experimental also might already contain totally > > unrelated updates like new upstream versions... > I share this worry. Have you thought about how to handle the cases where you > don't have experimental to upload to? How big is this problem? > Another worry, how will you provide the required changes to the maintainers > of the packages? Via BTS? For those working on salsa: MR? Both? Something > else? Obviously we should not end in the situation that a new upload goes > back to the old name (or are the ftp-masters so keen on this transition that > that won't happen? But what about newer versions with the old name already > in experimental, conform the former worry?). I've seen NMU's being ignored > by subsequent uploads by the maintainer, even when they fixed RC issues > which were then reintroduced. I would intend to provide diffs via the BTS. This remains the standard policy for NMUs in Debian per the Developer's Reference, and as far as I know has worked effectively for all such previous ABI transitions. I think it is reasonable to expect maintainers to pay attention to their bug mail as our defined Debian process. I don't think it would be reasonable to expect people working on cross-archive toolchain transitions to cater to individual maintainer preference in this regard. If a maintainer ignores the NMU and drops the rename, they'll be introducing a new library transition again on 32-bit archs. Won't they also be caught again in binary NEW, for those packages that don't have the same runtime library package name in experimental? It seems to me there's ample opportunity to catch such mistakes if they happen. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Mon, Jan 08, 2024 at 04:12:42PM +0100, Julian Andres Klode wrote: > > - once these packages have all cleared binary NEW, the new dpkg defaults > > will be uploaded to unstable > What happened to the plan to workaround this by doing dak database > shenanigans prior to uploading to avoid binary-NEW altogether, that > I chatted about with mhy/#debian-ftp and you? Did that not work out? That wasn't called out here but is part of the implementation details of the plan. The intention is still to go through binary NEW in experimental before copying to unstable, because it will take time to get all the binary uploads done (longer than it will take to get the sourceful uploads to unstable done), so it's better to stage in experimental to minimize the window in unstable when uploads can be broken. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hey Steve, On Sat, Jan 06, 2024 at 07:38:42PM -0800, Steve Langasek wrote: > On Sat, Jan 06, 2024 at 09:25:52AM +0100, Rene Engelhard wrote: > > Hi, > > > Am 06.01.24 um 06:51 schrieb Steve Langasek: > > > > > - dpkg will be uploaded to experimental with 64-bit time_t in the > > > > > default > > > > > flags > > > [...] > > > What about the suggestion to not push changes to experimental for packages > > > that already have new versions in experimental, and do the binary package > > > renames in unstable instead, leaving the package in experimental alone? > > > How does that play together with the needed dpkg only in experimental? > > > You can't build stuff for unstable involving experimental packages (except > > manually with binary upload, which would block testing migration) > > The ordering here would be: > > - dpkg will be uploaded to experimental with 64-bit time_t in the default > flags > > - the source packages which need an ABI change > ("source-packages"+"lfs-and-depends-time_t") and do not already have > versions in experimental, will have sourceful NMUs to experimental with > the new binary package names in order to clear binary NEW, in coordination > > - once these packages have all cleared binary NEW, the new dpkg defaults > will be uploaded to unstable What happened to the plan to workaround this by doing dak database shenanigans prior to uploading to avoid binary-NEW altogether, that I chatted about with mhy/#debian-ftp and you? Did that not work out? -- debian developer - deb.li/jak | jak-linux.org - free software dev ubuntu core developer i speak de, en signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On 2024-01-05, Sebastian Ramacher wrote: >> libpoppler-cpp0v5 >> libpoppler-glib8 >> libpoppler-qt5-1 >> libpoppler-qt6-3 >> libpoppler126 Poppler core (126ish) changes SONAME by release and is in general not supposed to be used by well-behaving applications. the frontentds (cpp,glib,Qt*) is supposedly stable. But I can confirm that all of them uses time-related types in their api's. (time_t specifically) For added fun, the cpp frontend does it like this on all architectures: typedef unsigned int /* time_t */ time_type; in deprecated api, replaced with time_t in non-deprecated methods. That might require extra investigations. (The commit deprecating and replacing api specifically mentions y2k38) /Sune
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi, Am 07.01.24 um 04:38 schrieb Steve Langasek: The ordering here would be: - dpkg will be uploaded to experimental with 64-bit time_t in the default flags - the source packages which need an ABI change ("source-packages"+"lfs-and-depends-time_t") and do not already have versions in experimental, will have sourceful NMUs to experimental with the new binary package names in order to clear binary NEW, in coordination - once these packages have all cleared binary NEW, the new dpkg defaults will be uploaded to unstable And in the meanwhile in experimental it will be built with the old time_t on other architectures. Since the new dpkg won't be picked up. Not in the experimental builders unstable+experimental chroots which only install experimental packages when Build-Depends: need them. (For an undefined time given how much the packages later in the chain wait in NEW) Especially on armhf which is affected. Or will you do the source NMUs on armhf/i386? (For some packages where some features are disabled on 32bit this is probably not a good idea) Regards, Rene
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi, Am 07.01.24 um 02:01 schrieb Steve Langasek: If you say you are going to fix eventual breakage (and not ignoring the test results!) and if that means fixing asm on all affected archs, then it's OK :) Well, yes; though I hope we would see some help from e.g. arm porters if there were actually breakage of this nature. Hope doesn't help when it got to the actual problem and this doesn't happen. Alternatively, maybe it would be better to stop shipping libreoffice on 32-bit archs, in that case? I'm I'd like to avoid this. Getting rid of i386 is fine, noone needs it, armhf is a bit different. (rpis etc - even though they could run arm64, but..) not sure how usable libreoffice is these days on such archs. popcon.debian.org doesn't appear to have the granularity to tell us if there actually *are* users; and with only 615 armhf popcon reports (vs 215,562 on amd64) we don't exactly have a statistically significant sample there. Only recently I got https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1059158. Maybe UI is not used much, but I can imagine people using it in paperless-ngx or other stuff. I don't really want to bastardize those uses. - the source packages which need an ABI change ("source-packages"+"lfs-and-depends-time_t" will have sourceful NMUs to I get that you probably want NMUs for not needing to ping every maintainer, but this is bad. That e.g. would cause me to upload libreoffice 24.2 rc2 to sid immediately when tagged end of next week to not have this caught in the transition. (see also below for the comment about new upstream versions in experimental.) What about the suggestion to not push changes to experimental for packages that already have new versions in experimental, and do the binary package renames in unstable instead, leaving the package in experimental alone? If at all - *both*. At the same time. Most of these packages that are staged in experimental are going to be there because of library transitions... And ignore those who use experimental as a testbed of major new upstreams? Doesn't sound good. experimental with the new binary package names in order to clear binary NEW, in coordination And what about skipped ones? When will those be tried? What do you mean here by "skipped ones"? https://adrien.dcln.fr/misc/armhf-time_t/2023-12-18/results_skipped.txt (which incidentially contains libreoffice) Ah! These are packages that have been omitted from the analysis because they've been manually identified as packages that don't have C or C++-compatible header files related to a shared library, and therefore even if they do need updated for 64-bit time_t, they are not affected by CPPFLAGS and are not part of this transition. (I am not 100% sure this is accurate for ObjC; in any case ObjC headers are impossible to analyze using abi-compliance-checker so if ObjC libraries are possibly affected, someone would have to figure out what to do with them.) I have no idea on how you indentified it In the libreoffice case that is not true. libreoffice-dev-(common) *does* contain C/C++ header files. And most of them *do* correspond to the libuno* shared packages. Just that they are not split per library because that wouldn't really make sense since you need any of them anyway. And I definitely see e.g. /usr/include/libreoffice/osl/time.h (libuno-sal3) No idea whether it actually will be broken by the change, but... I'm not sure precisely why Adrien found it necessary/useful to add libreoffice-dev to this exclude list, Probably because he didn't look at the whole but just at the package but I can confirm that it's reasonable, as this particular package contains only a single header file with #define's and no function prototypes; so in effect it has been manually analyzed and determined to be unaffected. But libreoffice-dev-common not (on which libreoffice-dev depends) which contains all the arch-indep headers. Just libreoffice-dev contains one header diferent between archs. Regards, Rene
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Sat, Jan 06, 2024 at 09:25:52AM +0100, Rene Engelhard wrote: > Hi, > Am 06.01.24 um 06:51 schrieb Steve Langasek: > > > > - dpkg will be uploaded to experimental with 64-bit time_t in the > > > > default > > > > flags > > [...] > > What about the suggestion to not push changes to experimental for packages > > that already have new versions in experimental, and do the binary package > > renames in unstable instead, leaving the package in experimental alone? > How does that play together with the needed dpkg only in experimental? > You can't build stuff for unstable involving experimental packages (except > manually with binary upload, which would block testing migration) The ordering here would be: - dpkg will be uploaded to experimental with 64-bit time_t in the default flags - the source packages which need an ABI change ("source-packages"+"lfs-and-depends-time_t") and do not already have versions in experimental, will have sourceful NMUs to experimental with the new binary package names in order to clear binary NEW, in coordination - once these packages have all cleared binary NEW, the new dpkg defaults will be uploaded to unstable - source packages which need an ABI change but already have versions in experimental will be uploaded to unstable, with binaries, to clear binary NEW - sourceful NMUs of all the libraries will be reuploaded to unstable (without binaries, so that they can be promoted to testing without additional uploads). - perl will also get a sourceful upload, to manually handle 'perlapi' Provides. - binNMUs will be scheduled for all of the reverse-dependencies. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Sat, Jan 06, 2024 at 09:07:15AM +0100, Rene Engelhard wrote: > Am 06.01.24 um 06:51 schrieb Steve Langasek: > > > > - dpkg will be uploaded to experimental with 64-bit time_t in the > > > > default > > > > flags > > > I think at that point in time one should know what breaks and whatnot. > > > Archive rebuild? > > > (Probably in stages) > > What kind of breakage are you looking to avoid here? > build failures/test failures. > > As mentioned in other points in the thread, regressions as a result of > > this change should be rare and easy to fix. I do not think it's a good > > use of time / CPU power to do test rebuilds for this instead of just > > landing the transition. > Here especially LibreOffices bridge code worries me. > That one is tied to ABI and calling conventions. I don't see time_t > mentioned there but "just" in the public libraries (sal), but I am not sure > what making a type bigger will cause. > (And since already > - i386 needs gcc-12 to build since otherwise the test fails > - armhf (and other archs like ppc64el and s390x) need Java disabled[1] - > without any help from any porter to prevent this - I *do* want to avoid > breakage here. > If you say you are going to fix eventual breakage (and not ignoring the test > results!) and if that means fixing asm on all affected archs, then it's OK > :) Well, yes; though I hope we would see some help from e.g. arm porters if there were actually breakage of this nature. Alternatively, maybe it would be better to stop shipping libreoffice on 32-bit archs, in that case? I'm not sure how usable libreoffice is these days on such archs. popcon.debian.org doesn't appear to have the granularity to tell us if there actually *are* users; and with only 615 armhf popcon reports (vs 215,562 on amd64) we don't exactly have a statistically significant sample there. > > > > - the source packages which need an ABI change > > > > ("source-packages"+"lfs-and-depends-time_t" will have sourceful > > > > NMUs to > > > I get that you probably want NMUs for not needing to ping every > > > maintainer, > > > but this is bad. > > > That e.g. would cause me to upload libreoffice 24.2 rc2 to sid immediately > > > when tagged end of next week to not have this caught in the transition. > > > (see > > > also below for the comment about new upstream versions in experimental.) > > What about the suggestion to not push changes to experimental for packages > > that already have new versions in experimental, and do the binary package > > renames in unstable instead, leaving the package in experimental alone? > If at all - *both*. At the same time. Most of these packages that are staged in experimental are going to be there because of library transitions... so I think we definitely don't want to be renaming those binary packages, they should just drop the t64 suffix when they move to unstable. > But yes, that could work. > (In this specific case I an worrying that the transition will take some > time, and that I am stuck with 7.6.x instead of uploading 24.2 when it is > released.) Ok. I don't think there would be any need for you to wait before uploading 24.2. It might have to wait for time_t for testing migration, but I don't think that should really be long. > > > > experimental with the new binary package names in order to clear > > > > binary > > > > NEW, in coordination > > > And what about skipped ones? When will those be tried? > > What do you mean here by "skipped ones"? > https://adrien.dcln.fr/misc/armhf-time_t/2023-12-18/results_skipped.txt > (which incidentially contains libreoffice) Ah! These are packages that have been omitted from the analysis because they've been manually identified as packages that don't have C or C++-compatible header files related to a shared library, and therefore even if they do need updated for 64-bit time_t, they are not affected by CPPFLAGS and are not part of this transition. (I am not 100% sure this is accurate for ObjC; in any case ObjC headers are impossible to analyze using abi-compliance-checker so if ObjC libraries are possibly affected, someone would have to figure out what to do with them.) I'm not sure precisely why Adrien found it necessary/useful to add libreoffice-dev to this exclude list, but I can confirm that it's reasonable, as this particular package contains only a single header file with #define's and no function prototypes; so in effect it has been manually analyzed and determined to be unaffected. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Drawbacks of lack of mandated packaging workflow (Was: Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline)
On Sun, Jan 07, 2024 at 02:23:32AM +0900, Simon Richter wrote: > > Aren't all these problems just inherent in Debian's lack of a mandated > > packaging tooling and workflow [1,2]? > > We have a mandated tooling and workflow. > > The tooling follows an interface that is defined in Policy. The interface is > deliberately designed to be as flexible as possible. Most packages do not > require this flexibility, which is why a majority use a library of helper > functions that trades that flexibility for ease of use. > > This works because it is a solution that solves 95% of cases, and does not > impose requirements on the remaining 5%. If you wanted 100% of packages to > use this, and turn this into the new interface, then all these corner cases > would need to be handled as well, and the interface extended. > > We also have a version control system -- the Debian archive. It, too, has a > different focus than other version control systems, because it also includes > a mirroring strategy. > > Switching to git would, again, require replication of the missing > functionality, and it would require a lot of work to properly define all > these interfaces and make sure they are extensible in the future. This is, unironically, why we can't have nice things.
Re: Drawbacks of lack of mandated packaging workflow (Was: Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline)
Hi, On 06.01.24 22:15, Gioele Barabucci wrote: Aren't all these problems just inherent in Debian's lack of a mandated packaging tooling and workflow [1,2]? We have a mandated tooling and workflow. The tooling follows an interface that is defined in Policy. The interface is deliberately designed to be as flexible as possible. Most packages do not require this flexibility, which is why a majority use a library of helper functions that trades that flexibility for ease of use. This works because it is a solution that solves 95% of cases, and does not impose requirements on the remaining 5%. If you wanted 100% of packages to use this, and turn this into the new interface, then all these corner cases would need to be handled as well, and the interface extended. We also have a version control system -- the Debian archive. It, too, has a different focus than other version control systems, because it also includes a mirroring strategy. Switching to git would, again, require replication of the missing functionality, and it would require a lot of work to properly define all these interfaces and make sure they are extensible in the future. Simon
Re: Drawbacks of lack of mandated packaging workflow (Was: Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline)
Oops, should have waited sending... On 06-01-2024 14:30, Paul Gevers wrote: On 06-01-2024 14:15, Gioele Barabucci wrote: Aren't all these problems just inherent in Debian's lack of a mandated packaging tooling and workflow [1,2]? Might be, but that doesn't mean that problem goes away. I was talking about bugs, so, only minor. We expect maintainers to track bugs filed in the bts, so that would serve the purpose. But because *most* (according to trends.d.n) are hosted on salsa, an MR might help for an awfully big group. Paul OpenPGP_signature.asc Description: OpenPGP digital signature
Re: Drawbacks of lack of mandated packaging workflow (Was: Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline)
Hi Gioele, On 06-01-2024 14:15, Gioele Barabucci wrote: Aren't all these problems just inherent in Debian's lack of a mandated packaging tooling and workflow [1,2]? Might be, but that doesn't mean that problem goes away. Paul OpenPGP_signature.asc Description: OpenPGP digital signature
Drawbacks of lack of mandated packaging workflow (Was: Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline)
On 05/01/24 21:17, Paul Gevers wrote: Another worry, how will you provide the required changes to the maintainers of the packages? Via BTS? For those working on salsa: MR? Both? Something else? Obviously we should not end in the situation that a new upload goes back to the old name (or are the ftp-masters so keen on this transition that that won't happen? But what about newer versions with the old name already in experimental, conform the former worry?). I've seen NMU's being ignored by subsequent uploads by the maintainer, even when they fixed RC issues which were then reintroduced. Aren't all these problems just inherent in Debian's lack of a mandated packaging tooling and workflow [1,2]? And the fact that maintainers can decide to maintain their packages in idiosyncratic ways (e.g., no VCS) "just because"? [1] https://salsa.debian.org/debian/grow-your-ideas/-/issues/24 [2] https://salsa.debian.org/debian/grow-your-ideas/-/issues/34 Regards, -- Gioele Barabucci
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi, Am 06.01.24 um 06:51 schrieb Steve Langasek: - dpkg will be uploaded to experimental with 64-bit time_t in the default flags [...] What about the suggestion to not push changes to experimental for packages that already have new versions in experimental, and do the binary package renames in unstable instead, leaving the package in experimental alone? How does that play together with the needed dpkg only in experimental? You can't build stuff for unstable involving experimental packages (except manually with binary upload, which would block testing migration) Regards, Rene
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi Steve, Am 06.01.24 um 06:51 schrieb Steve Langasek: - dpkg will be uploaded to experimental with 64-bit time_t in the default flags I think at that point in time one should know what breaks and whatnot. Archive rebuild? (Probably in stages) What kind of breakage are you looking to avoid here? As mentioned in other build failures/test failures. points in the thread, regressions as a result of this change should be rare and easy to fix. I do not think it's a good use of time / CPU power to do test rebuilds for this instead of just landing the transition. Here especially LibreOffices bridge code worries me. That one is tied to ABI and calling conventions. I don't see time_t mentioned there but "just" in the public libraries (sal), but I am not sure what making a type bigger will cause. (And since already - i386 needs gcc-12 to build since otherwise the test fails - armhf (and other archs like ppc64el and s390x) need Java disabled[1] - without any help from any porter to prevent this - I *do* want to avoid breakage here. If you say you are going to fix eventual breakage (and not ignoring the test results!) and if that means fixing asm on all affected archs, then it's OK :) - the source packages which need an ABI change ("source-packages"+"lfs-and-depends-time_t" will have sourceful NMUs to I get that you probably want NMUs for not needing to ping every maintainer, but this is bad. That e.g. would cause me to upload libreoffice 24.2 rc2 to sid immediately when tagged end of next week to not have this caught in the transition. (see also below for the comment about new upstream versions in experimental.) What about the suggestion to not push changes to experimental for packages that already have new versions in experimental, and do the binary package renames in unstable instead, leaving the package in experimental alone? If at all - *both*. At the same time. But yes, that could work. (In this specific case I an worrying that the transition will take some time, and that I am stuck with 7.6.x instead of uploading 24.2 when it is released.) libreoffice libs only have one reverse-dep, zemberek-ooo; so the risk of entanglement here is small anyway. Except in poppler etc. transitions.. But yeah, nothing really uses the C++ libs nowadays. I think the above proposal, to skip packages already in experimental from the set of uploads to experimental, would address your concern. It's not as if there is going to be any time that it's ok to tell maintainers they can't use experimental at all because we're doing this transition. experimental with the new binary package names in order to clear binary NEW, in coordination And what about skipped ones? When will those be tried? What do you mean here by "skipped ones"? https://adrien.dcln.fr/misc/armhf-time_t/2023-12-18/results_skipped.txt (which incidentially contains libreoffice) Regards, Rene [1] Ubuntu just ignores the test failures. No, not an option.
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Fri, Jan 05, 2024 at 05:36:10PM +0100, Rene Engelhard wrote: > > My strawman proposal is to give this thread 2 weeks from today for feedback > > and further refinement, and also to further reduce the number of > > false-positives included in the transition. Then, starting on Jan 18: > > - dpkg will be uploaded to experimental with 64-bit time_t in the default > >flags > I think at that point in time one should know what breaks and whatnot. > Archive rebuild? > (Probably in stages) What kind of breakage are you looking to avoid here? As mentioned in other points in the thread, regressions as a result of this change should be rare and easy to fix. I do not think it's a good use of time / CPU power to do test rebuilds for this instead of just landing the transition. > > - the source packages which need an ABI change > >("source-packages"+"lfs-and-depends-time_t" will have sourceful NMUs to > I get that you probably want NMUs for not needing to ping every maintainer, > but this is bad. > That e.g. would cause me to upload libreoffice 24.2 rc2 to sid immediately > when tagged end of next week to not have this caught in the transition. (see > also below for the comment about new upstream versions in experimental.) What about the suggestion to not push changes to experimental for packages that already have new versions in experimental, and do the binary package renames in unstable instead, leaving the package in experimental alone? libreoffice libs only have one reverse-dep, zemberek-ooo; so the risk of entanglement here is small anyway. I think the above proposal, to skip packages already in experimental from the set of uploads to experimental, would address your concern. It's not as if there is going to be any time that it's ok to tell maintainers they can't use experimental at all because we're doing this transition. > >experimental with the new binary package names in order to clear binary > >NEW, in coordination > And what about skipped ones? When will those be tried? What do you mean here by "skipped ones"? -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Fri, Jan 05, 2024 at 09:32:28PM +0100, Sebastian Ramacher wrote: > On 2024-01-05 11:06:09 -0800, Steve Langasek wrote: > > On Fri, Jan 05, 2024 at 06:53:50PM +0100, Sebastian Ramacher wrote: > > > Hi Steve > > > > - perl will also get a sourceful upload, to manually handle 'perlapi' > > > > Provides. > > > Can we combine this one with the upcoming perl transition? See #1055955. > > Pros and cons of combining: > > - it will save another rebuild of perl modules > > - new perl upstream versions usually break at least some > > reverse-dependencies in the archive, so this may slow down the time_t > > transition to testing for other packages by entangling it with sourceful > > perl changes. > > The release team has already suggested not entangling the two. > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1055955#10 > That was two months ago and we were expecting some progress. There was > however none so far. Sorry, what were you expecting exactly? I've had no communication from the Release Team until now about expectations, including on the debian-devel thread back in July. > As perl 5.38 is already staged in exeperimental, there are only two > options: time64_t waits until perl 5.38 is done or we entangle them. Rene and Paul raise this concern as well. However, there is another option. For any packages involved in this transition which currently have new versions staged in experimental which are not yet ready to go to unstable, we can simply exclude them from the upload to experimental, and do the NEW processing for this subset of packages directly in unstable as part of the second step. This should be an ABI change but not an API change; the rate of new build failures should be very small (small enough that I have not proposed any rebuild testing as part of this transition). As previously discussed, there may be some impact from -Werror=implicit-function-declaration but those can be quickly dealt with. Barring any existing testing migration blockages, I expect this whole assembly to be able to migrate to testing rather quickly. The main point is that we don't want to have a large window between landing dpkg in unstable, and uploading the libraries in unstable, due to NEW processing; because that will result in misbuilt and crashy combinations of packages on armhf until resolved. And if the time_t transition goes into unstable, has not yet migrated to testing, and some of the library transitions in question are ready to go to unstable, I don't mind; I'm happy to work with the maintainers of those libraries to get the transitions done, and also they can just ignore the previous NMUs because they're getting a new SONAME anyway. Does this seem practicable to you (and the release team generally)? > > > > 22 libobs-dev > > > That's a change to the plugin ABI only. > > Can you explain how you've reached that conclusion? This is a package > > that failed to be analyzed in the latest run; an earlier run against > > Ubuntu lunar showed no change in ABI at all. > libobs-dev and the shared library are an oddity of obs-studio. There > only purpose is to build plugins. Ok, but it appears there are a large number of reverse-dependencies on libobs0 from other source packages, and there is no OTHER encoding of information about plugin ABI aside from this (no Provides: field on obs-studio). So what do you suggest here with respect to ABI skew between obs-studio and its plugins on armhf? > > Looks like the failure to analyze should be easily fixable (maybe libobs-dev > > shouldn't be shipping this header?) > > https://adrien.dcln.fr/misc/armhf-time_t/2023-12-18/logs/libobs-dev/base/log.txt > > > > 14 gnuradio > > > gnuradio bump its SONAME every other month. > > And usually takes time, at least from what I've seen on the Ubuntu side, > > to settle all reverse-dependencies out into a consistent state where > > they can migrate to testing > I wouldn't waste my time with gnuradio. The maintainers does not > coordinate transitions. After January 10th assuming that AUTORM kicks > in, it won't be relevant any more. It wastes less of my time to *not* special-case it, then ;-) > > > > 9 libopenmpt-dev > > > Seems to be a false positive. > > > > Your responses here are to the contents of the `sorted-revdep-count` list. > > This is the list of header packages that *we were unable to analyze with > > abi-compliance-checker*, and so in the interest of avoiding ABI mismatches > > and broken systems for users when upgrading on 32-bit archs, would get a > > package rename to be safe. > > This is the plan I had outlined at: > > https://lists.debian.org/debian-devel/2023/07/msg00232.html > > I am happy for any help in the form of patches to > > https://salsa.debian.org/adrien-n/armhf-time_t that fix the failures of > > these header packages to be analyzed, or explanations for how a given header > > package's API changes cannot affect the ABI of the runtime libraries from > > the source
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On 2024-01-05 11:06:09 -0800, Steve Langasek wrote: > On Fri, Jan 05, 2024 at 06:53:50PM +0100, Sebastian Ramacher wrote: > > Hi Steve > > > > - perl will also get a sourceful upload, to manually handle 'perlapi' > > > Provides. > > > Can we combine this one with the upcoming perl transition? See #1055955. > > Pros and cons of combining: > > - it will save another rebuild of perl modules > - new perl upstream versions usually break at least some > reverse-dependencies in the archive, so this may slow down the time_t > transition to testing for other packages by entangling it with sourceful > perl changes. > > The release team has already suggested not entangling the two. > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1055955#10 That was two months ago and we were expecting some progress. There was however none so far. As perl 5.38 is already staged in exeperimental, there are only two options: time64_t waits until perl 5.38 is done or we entangle them. The same is true for all the other transitions (poppler, g2clib, ...) that are currently staged in experimental. So unless we want to tell everyone to stop preparing transitions in experimental (which is contrary to what we, the RT, tell maintainers to do all the time), get everything from experimental removed, etc, I expect that we have to entangle time64_t and all transitions that are staged in experimental. > > Here are some more comments on individual packages. > > > > 22 libobs-dev > > > That's a change to the plugin ABI only. > > Can you explain how you've reached that conclusion? This is a package that > failed to be analyzed in the latest run; an earlier run against Ubuntu lunar > showed no change in ABI at all. libobs-dev and the shared library are an oddity of obs-studio. There only purpose is to build plugins. > > Looks like the failure to analyze should be easily fixable (maybe libobs-dev > shouldn't be shipping this header?) > https://adrien.dcln.fr/misc/armhf-time_t/2023-12-18/logs/libobs-dev/base/log.txt > > > > 14 gnuradio > > > gnuradio bump its SONAME every other month. > > And usually takes time, at least from what I've seen on the Ubuntu side, to > settle all reverse-dependencies out into a consistent state where they can > migrate to testing I wouldn't waste my time with gnuradio. The maintainers does not coordinate transitions. After January 10th assuming that AUTORM kicks in, it won't be relevant any more. > > > 9 libopenmpt-dev > > > Seems to be a false positive. > > > > Your responses here are to the contents of the `sorted-revdep-count` list. > This is the list of header packages that *we were unable to analyze with > abi-compliance-checker*, and so in the interest of avoiding ABI mismatches > and broken systems for users when upgrading on 32-bit archs, would get a > package rename to be safe. > > This is the plan I had outlined at: > > https://lists.debian.org/debian-devel/2023/07/msg00232.html > > I am happy for any help in the form of patches to > https://salsa.debian.org/adrien-n/armhf-time_t that fix the failures of > these header packages to be analyzed, or explanations for how a given header > package's API changes cannot affect the ABI of the runtime libraries from > the source package so that we can manually exclude those libraries from the > transition. I am not sure I would *recommend* that maintainers spend a lot > of time on proving one or another individual library does not have an ABI > breakage, especially in the long tail of libraries with few > reverse-dependencies whose involvement in the transition is unlikely to > substantially slow down Debian development. Based on the number of false positives in the libraries that I maintain, the time it takes to prepare, upload, accept from binNEW, etc. with involvement from different teams, I wonder if would not be more efficient to give maintainers some time to check their packages. > > > 5 gcc-10-plugin-dev > > > Can be skipped, not part of testing. Should be RMed from the archive > > instead. > > Thanks, I had already manually excluded gcc-13-plugin-dev from the > transition, but there are gcc-*-plugin-dev in the archive for 4 other > versions of gcc. I've updated things here to exclude all of them now. > > I will not, in general, exclude a library from the transition only because > it's currently not in testing; this could be a transient situation, and > users' shouldn't wind up with broken partial upgrades of this library later > if it returns to testing. I added a hint so that gcc-10 cannot migrate back to testing. > > > 4 llvm-15-dev > > > llvm-toolchain-15 is scheduled for removal. Reverse dependencies should > > get an RC bug instead. > > > > libavutil58 > > > av_timegm is not used by any package in the archive. I'd skip ffmpeg and > > it's libraries. > > How did you determine that it's unused by any reverse-dependencies? I'd be > happy to exclude it, but want to be sure we're not exposing users to bugs in >
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi Steve, On 05-01-2024 17:36, Rene Engelhard wrote: Also a problem is that experimental also might already contain totally unrelated updates like new upstream versions... I share this worry. Have you thought about how to handle the cases where you don't have experimental to upload to? How big is this problem? Another worry, how will you provide the required changes to the maintainers of the packages? Via BTS? For those working on salsa: MR? Both? Something else? Obviously we should not end in the situation that a new upload goes back to the old name (or are the ftp-masters so keen on this transition that that won't happen? But what about newer versions with the old name already in experimental, conform the former worry?). I've seen NMU's being ignored by subsequent uploads by the maintainer, even when they fixed RC issues which were then reintroduced. Paul OpenPGP_signature.asc Description: OpenPGP digital signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Fri, Jan 05, 2024 at 06:53:50PM +0100, Sebastian Ramacher wrote: > Hi Steve > > - perl will also get a sourceful upload, to manually handle 'perlapi' > > Provides. > Can we combine this one with the upcoming perl transition? See #1055955. Pros and cons of combining: - it will save another rebuild of perl modules - new perl upstream versions usually break at least some reverse-dependencies in the archive, so this may slow down the time_t transition to testing for other packages by entangling it with sourceful perl changes. The release team has already suggested not entangling the two. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1055955#10 > Here are some more comments on individual packages. > > 22 libobs-dev > That's a change to the plugin ABI only. Can you explain how you've reached that conclusion? This is a package that failed to be analyzed in the latest run; an earlier run against Ubuntu lunar showed no change in ABI at all. Looks like the failure to analyze should be easily fixable (maybe libobs-dev shouldn't be shipping this header?) https://adrien.dcln.fr/misc/armhf-time_t/2023-12-18/logs/libobs-dev/base/log.txt > > 14 gnuradio > gnuradio bump its SONAME every other month. And usually takes time, at least from what I've seen on the Ubuntu side, to settle all reverse-dependencies out into a consistent state where they can migrate to testing > > 9 libopenmpt-dev > Seems to be a false positive. Your responses here are to the contents of the `sorted-revdep-count` list. This is the list of header packages that *we were unable to analyze with abi-compliance-checker*, and so in the interest of avoiding ABI mismatches and broken systems for users when upgrading on 32-bit archs, would get a package rename to be safe. This is the plan I had outlined at: https://lists.debian.org/debian-devel/2023/07/msg00232.html I am happy for any help in the form of patches to https://salsa.debian.org/adrien-n/armhf-time_t that fix the failures of these header packages to be analyzed, or explanations for how a given header package's API changes cannot affect the ABI of the runtime libraries from the source package so that we can manually exclude those libraries from the transition. I am not sure I would *recommend* that maintainers spend a lot of time on proving one or another individual library does not have an ABI breakage, especially in the long tail of libraries with few reverse-dependencies whose involvement in the transition is unlikely to substantially slow down Debian development. > > 5 gcc-10-plugin-dev > Can be skipped, not part of testing. Should be RMed from the archive > instead. Thanks, I had already manually excluded gcc-13-plugin-dev from the transition, but there are gcc-*-plugin-dev in the archive for 4 other versions of gcc. I've updated things here to exclude all of them now. I will not, in general, exclude a library from the transition only because it's currently not in testing; this could be a transient situation, and users' shouldn't wind up with broken partial upgrades of this library later if it returns to testing. > > 4 llvm-15-dev > llvm-toolchain-15 is scheduled for removal. Reverse dependencies should > get an RC bug instead. > > libavutil58 > av_timegm is not used by any package in the archive. I'd skip ffmpeg and > it's libraries. How did you determine that it's unused by any reverse-dependencies? I'd be happy to exclude it, but want to be sure we're not exposing users to bugs in the process. > > libpoppler-cpp0v5 > > libpoppler-glib8 > > libpoppler-qt5-1 > > libpoppler-qt6-3 > > libpoppler126 > Can be combined with the upcoming poppler transiton (see #1060019) Again, combining the time_t transition with transitions introducing sourceful changes (and possible API incompatibilities) to existing libraries risks slowing the transition down to Debian's detriment. > > libvlc5 > > libvlccore9 > Change to vlc plugin ABI. This does not require a change of the binary > package name. There are other reverse-dependencies of libvlccore9 in the archive that are not VLC plugins (phonon4qt5-backend-vlc etc). Are these packages simply mis-linked against that library? Thanks, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi Steve > - perl will also get a sourceful upload, to manually handle 'perlapi' > Provides. Can we combine this one with the upcoming perl transition? See #1055955. Here are some more comments on individual packages. > 22 libobs-dev That's a change to the plugin ABI only. > 14 gnuradio gnuradio bump its SONAME every other month. > 9 libopenmpt-dev Seems to be a false positive. > 9 libogre-1.9-dev > 9 libgirara-dev Why is this one on the list? > 5 gcc-10-plugin-dev Can be skipped, not part of testing. Should be RMed from the archive instead. > 4 llvm-15-dev llvm-toolchain-15 is scheduled for removal. Reverse dependencies should get an RC bug instead. > 4 libspatialaudio-dev Why is this package on the list? > 3 libdvbpsi-dev Seems to be a false positive > libavutil58 av_timegm is not used by any package in the archive. I'd skip ffmpeg and it's libraries. > libpoppler-cpp0v5 > libpoppler-glib8 > libpoppler-qt5-1 > libpoppler-qt6-3 > libpoppler126 Can be combined with the upcoming poppler transiton (see #1060019) > libvlc5 > libvlccore9 Change to vlc plugin ABI. This does not require a change of the binary package name. > g2clib Can be combined with the upcoming transition (see #1060077). Cheers -- Sebastian Ramacher
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
On Fri, Jan 05, 2024 at 12:05:57PM +, Simon McVittie wrote: > On Fri, 05 Jan 2024 at 00:17:04 -0800, Steve Langasek wrote: > > - In multi-library packages, there is no reliable way to map from a set of > > headers in a dev package to specific shared libraries in a runtime library > > package that's not additionally computationally prohibitive; we therefore > > conservatively assume that if any headers from a source package show > > time_t ABI changes, all the runtime library packages from the source > > package are affected by the transition. > > 0 dbus-tests > Please ignore this specific binary package. The only public API/ABI > of src:dbus is in libdbus-1-3 + libdbus-1-dev, so analyzing those two > is enough. (dbus-tests accidentally contains one header file, but that's > a minor bug.) > libdbus-1-dev is widely depended-on, so I hope that taking src:dbus off > your list will avoid some unnecessary rebuilds? > > 0 gobject-introspection > Similarly the only public API/ABI of src:gobject-introspection is in > libgirepository1.0-dev, libgirepository-1.0-1, and (in experimental) > libgirepository-1.0-dev. gobject-introspection contains some source > and header files that are used by other packages' regression tests, > but they are not public ABI. Yes, sorry - the way my scripts are set up to do the analysis right now, these packages still show up in the `sorted-revdep-count` list but there are manual overrides mapping both of these to an empty set of runtime libraries. So you'll see they don't show up in the `runtime-libs` or `source-packages` lists, and none of the reverse-dependencies of libdbus or libgirepository are tagged for rebuild. https://salsa.debian.org/adrien-n/armhf-time_t/-/blob/c62a594236374469b2181e9c5578ed124b57c48c/packagelist.py#L304 -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org signature.asc Description: PGP signature
Re: Bug#1036884: 64-bit time_t: updated archive analysis, proposed transition plan with timeline
Hi, Am 05.01.24 um 09:17 schrieb Steve Langasek: - Packages that could not be analyzed for whatever reason are still assumed to have an ABI that's sensitive to time_t and have to be included in the transition. Happily, due to improvements in this run of the number of packages that could successfully be analyzed, the number of libraries in this category has dropped from 1541 to 929, of which 69 have no reverse-dependencies at all. The final list of these header packages that could not be analyzed is attached, in case anyone still wants to identify that a library on this list whose ABI is not affected by time_t and should therefore be excluded from the transition. Note, however, that no effort has been made to filter out dev packages from this list that come from source packages containing OTHER dev packages that are known to have ABI breakage; for a number of the packages listed, further analysis would not change the outcome. (e.g. qt5-qmake failed to be analyzed, but qtbase-opensource-src also ships qtbase5-private-dev which shows time_t ABI sensitivity.) [...] My strawman proposal is to give this thread 2 weeks from today for feedback and further refinement, and also to further reduce the number of false-positives included in the transition. Then, starting on Jan 18: - dpkg will be uploaded to experimental with 64-bit time_t in the default flags I think at that point in time one should know what breaks and whatnot. Archive rebuild? (Probably in stages) - the source packages which need an ABI change ("source-packages"+"lfs-and-depends-time_t" will have sourceful NMUs to I get that you probably want NMUs for not needing to ping every maintainer, but this is bad. That e.g. would cause me to upload libreoffice 24.2 rc2 to sid immediately when tagged end of next week to not have this caught in the transition. (see also below for the comment about new upstream versions in experimental.) experimental with the new binary package names in order to clear binary NEW, in coordination And what about skipped ones? When will those be tried? Those also will need clear NEW if needed. (And they might even FTBFS because the ABI did change and ABI-assuming test break? Though I don't assume so for time_t, but if time is passed around... I don't assume so, but... At least that would be the case for libreoffice (and libreoffice-dev-common is in the affected set, which means some stuff relies on it...)) (Maybe even needing asm fixes) - once these packages have all cleared binary NEW, the new dpkg defaults will be uploaded to unstable - the sourceful NMUs of the libraries will be reuploaded to unstable (without binaries, so that they can be promoted to testing without additional uploads). Please let me know of any problems with this plan. Also a problem is that experimental also might already contain totally unrelated updates like new upstream versions... Regards, Rene