Hi!

On Wed, 2023-07-05 at 14:24:02 -0700, Steve Langasek wrote:
> On Fri, Jun 09, 2023 at 03:56:28AM +0200, Guillem Jover wrote:
> > On Mon, 2023-06-05 at 21:18:10 -0700, Steve Langasek wrote:
> > > Package: dpkg-dev
> > > Version: 1.21.22
> > > Tags: patch
> > > User: ubuntu-de...@lists.ubuntu.com
> > > Usertags: origin-ubuntu mantic patch

> > > The discussion on debian-devel around 64-bit time_t has died down, so I
> > > figure it's time to propose some patches to implement what's been 
> > > discussed
> > > there.
> 
> > Yeah, I'm not sure whether it has died off or it's just being slow.
> 
> > > I'm not sure whether you were persuaded that i386 should stay with the
> > > current ABI, but anyway thought I would propose the patches and we could
> > > discuss further if necessary.
> 
> > In any case I've tried to reply there. Also my impression was that
> > there was still some analysis pending (perhaps that was a wrong
> > impression though)?
> 
> There is analysis pending, unfortunately 90% of the -dev packages have been
> analyzed leaving 90% to go (~1600 -dev packages that require fixes to be

Ack, thanks. Is that last % supposed to be 10%? Otherwise I think I'm
missing something :).

> compilable and therefore analyzable).  I don't have any answer yet from the
> Release Team, so I'm not sure if we need this analysis to be completely done
> before starting the transition or if we can leave the long tail of packages
> with 1 or 2 reverse-build-dependencies to be figured out later.

I don't know. Perhaps ask on d-d?

> > > From 5a861d19b1610ae82bf95e6c5142a3365436fbd2 Mon Sep 17 00:00:00 2001
> > > From: Steve Langasek <steve.langa...@ubuntu.com>
> > > Date: Fri, 2 Jun 2023 14:30:20 +0000
> > > Subject: [PATCH 1/3] lfs and time64 are no longer "future", call them
> > >  "feature" instead
> 
> > Ah, I actually had implemented locally the alias with your original
> > suggestion of "abi"! :) Using "feature" here seems would be rather
> > more confusing as these are called feature flags, and feature areas.
> 
> > I'll try to push the stuff I've got queued locally during the weekend,
> > then I can rebase these patches on a branch or similar.
> 
> As far as I can tell, this hasn't been pushed anywhere yet?

Right, sorry got entangled in a local branch with random stuff, but
rebased that and added on top now several other fixes including these
changes or ones similar in intention. See at:

  https://git.hadrons.org/git/debian/dpkg/dpkg.git/log/?h=next/time64-default

(Beware that I might rebase that branch, before merging it, although I
think I'll start pushing some of the foundation work into main already.)

> > > From 7eff8f89b32b6921a0d86c50c6c62154c6ddc96e Mon Sep 17 00:00:00 2001
> > > From: Steve Langasek <steve.langa...@ubuntu.com>
> > > Date: Fri, 2 Jun 2023 16:30:19 +0000
> > > Subject: [PATCH 3/3] Also emit -Werror=implicit-function-declaration for
> > >  feature=+time64
> > > 
> > > Per https://lists.debian.org/debian-devel/2023/05/msg00262.html et al.,
> > > missing glibc includes can cause packages to link to the wrong symbols,
> > > potentially causing crashes or misbehavior.  Since functions that use
> > > time_t are fairly ubiquitous, there's a high risk of this happening for
> > > *some* package in Debian.  Better to make all software with missing
> > > function declarations fail to build now, than to spend all cycle tracking
> > > down runtime bugs.
> > > ---
> > >  scripts/Dpkg/Vendor/Debian.pm | 2 ++
> > >  1 file changed, 2 insertions(+)
> > > 
> > > diff --git a/scripts/Dpkg/Vendor/Debian.pm b/scripts/Dpkg/Vendor/Debian.pm
> > > index 20d77fea1..803949024 100644
> > > --- a/scripts/Dpkg/Vendor/Debian.pm
> > > +++ b/scripts/Dpkg/Vendor/Debian.pm
> > > @@ -400,6 +400,8 @@ sub _add_build_flags {
> > >  
> > >      if ($flags->use_feature('feature', 'time64')) {
> > >          $flags->append('CPPFLAGS', '-D_TIME_BITS=64');
> > > +        $flags->append('CFLAGS', 
> > > '-Werror=implicit-function-declaration');
> > > +        $flags->append('CXXFLAGS', 
> > > '-Werror=implicit-function-declaration');
> > >      }
> 
> > I'm not sure I like intermingling the different semantics here, if
> > necessary I'd rather make time64 forcibly enable another feature flag,
> > like it is done for lfs.
> 
> > As I mentioned on the recent thread about the modern C stuff, I do
> > have a branch that adds these as part of a new qa=+c99 feature, but
> > that's too broad. :/
> 
> >   
> > <https://git.hadrons.org/git/debian/dpkg/dpkg.git/commit/?h=next/modern-c&id=3316845bf415436299d61501db655fd2c1813436>
> 
> > Maybe I could add a new feature area instead and add the flags
> > individually, and then make time64 also enable that other specific
> > feature. Hmmm.
> 
> Did you reach a decision here?  Anything you'd like from me to move this
> forward?

I realized now that this cannot be set for CXXFLAGS as at least g++
will warn about that. And I've gone for now by depending on qa=+bug,
but I'm not sure whether that would cause too many regressions. OTOH
and AFAIK any such problem should be considered a genuine bug anyway,
so…

But if this is too much I guess I could split that warning into its
own feature and make both the qa=+bug and abi=+time64 depend on it
instead.

Thanks,
Guillem

Reply via email to