Bug#1056595: dgit: must not override dpkg include lists

2023-11-25 Thread Sean Whitton
control: tag -1 + wontfix
control: close -1

Hello,

As has been explained, this bug is invalid, at least as currently titled
-- it's fundamental to the design of dgit that it behaves in this way.
If the discussion yields some ways in which dgit can become friendlier
to users and non-users, then it might be better to file new bugs with
those concrete change proposals.

Julien, given that you have decided not to use dgit in the near future,
it would have been more helpful to frame this bug explicitly in terms of
helping people like you, who have decided that.  As it stands, your
submission rather like a complaint, and that is not fair or kind to
those of us who work on dgit.  We don't want you to feel frustrated!

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#1056595: dgit: must not override dpkg include lists

2023-11-23 Thread Ian Jackson
Johannes Schauer Marin Rodrigues writes ("Re: Bug#1056595: dgit: must not 
override dpkg include lists"):
> this bug was triggered by julian trying to work on my package sbuild
> in ubuntu.  I usually upload all my packages with "dgit --quilt=gbp
> push-source" and hence the problem julian faces was created.

I'm still not sure what the precise problem is.  Is it that the .dsc
in the Debian archive contains a .gitignore ?

> I'd also have no problem with resolving this particular situation by
> adding an appropriate debian/source/options to sbuild for the next
> upload. Then the same thing would happen independent of whether the
> person building sbuild uses dgit or not.

I think probably that would help.  IIRC there are some strange
interactions between dpkg command line options and d/s/options.
(I can't remember the details offhand.)

dgit does look in d/s/options but mostly to check that there's nothing
there that would make dpkg-source do something that dgit doesn't want.

Maybe some of our documentation (eg, dgit-maint-native(7)) should
recommend creating d/s/options, and maybe dgit ought to check that?

> But would that be future proof as in: will dgit maybe adjust these options in
> the future and if yes, is there something dgit could do to inform me that my
> debian/source/options might be incomplete?

dgit's default behaviour in this area hasn't changed for a very long
time.  It always wants to upload precisely your git tree, and
therefore it must pass dpkg-source options that make it able to
generate such a source package.

I think the only thing that might change is that #908747 might get
fixed, but that also seems unlikely and wouldn't invalidate your
d/s/options anyway.

Ian.

-- 
Ian JacksonThese opinions are my own.  

Pronouns: they/he.  If I emailed you from @fyvzl.net or @evade.org.uk,
that is a private address which bypasses my fierce spamfilter.



Bug#1056595: dgit: must not override dpkg include lists

2023-11-23 Thread Johannes Schauer Marin Rodrigues
Hi,

On Thu, 23 Nov 2023 19:52:13 +0100 Julian Andres Klode  wrote:
> > I consider dpkg-source's behaviour, of excluding .gitignore by default,
> > to be wrong:
> >   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908747
> > (You may recall that report, since you commented on it.)
> I see, I consider dpkg's behavior to be the correct one, and if you
> want to override it, do it in debian/source/options, not by passing
> arguments to dpkg.

this bug was triggered by julian trying to work on my package sbuild in ubuntu.
I usually upload all my packages with "dgit --quilt=gbp push-source" and hence
the problem julian faces was created.

I'd also have no problem with resolving this particular situation by adding an
appropriate debian/source/options to sbuild for the next upload. Then the same
thing would happen independent of whether the person building sbuild uses dgit
or not.

But would that be future proof as in: will dgit maybe adjust these options in
the future and if yes, is there something dgit could do to inform me that my
debian/source/options might be incomplete?

What do you think?

Thanks!

cheers, josch

signature.asc
Description: signature


Bug#1056595: dgit: must not override dpkg include lists

2023-11-23 Thread Julian Andres Klode
On Thu, Nov 23, 2023 at 05:57:42PM +, Ian Jackson wrote:
> Severity: -1 normal
> 
> Julian Andres Klode writes ("Bug#1056595: dgit: must not override dpkg 
> include lists"):
> > dgit overrides the include lists for dpkg, causing packages to include
> > additional .gitignore and similar files which dpkg-source -b will
> > exclude.
> 
> Yes.
> 
> This is necessary (1) so that the git trees correspond precisely to
> the .dscs (which is the invariant of the dgit git view), and
> (2) to comply with our promise to provide people with the source code.
> 
> I consider dpkg-source's behaviour, of excluding .gitignore by default,
> to be wrong:
>   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908747
> (You may recall that report, since you commented on it.)


I see, I consider dpkg's behavior to be the correct one, and if you
want to override it, do it in debian/source/options, not by passing
arguments to dpkg.

> 
> > This creates a significant hurdle to the NMU process and downstream
> > distribution maintainers who have to figure out how to reduce the
> > delta again, because in both cases, unrelated changes should not
> > be present in the diff between the two uploads.
> 
> I'm afraid I don't understand your scenario precisely.  I'm
> sympathetic to the goal of removing hurdles for NMUers and downstream
> maintainers.
> 
> > Like I had to spend about 20 minutes or so today trying to figure out
> > how to actually get that sorted out for a native package (I was trying
> > -i all the time when I should have passed -I), in turn I discovered
> > some other process issues but that's beside the point :D
> 
> Were you trying to use dgit to make an NMU?  If so what git branch
> did you start with?  What options did you give to dgit?


No, I have no intention to ever use dgit. I believe its design is
directly opposed to what I consider the right workflow.

In my case it was not actually an NMU but I was building a prepared
merge downstream in Ubuntu which removed files that were present
in the Debian upload, but it's the same issue NMUers in Debian
face.

If I start with the .dsc, have no intention of ever touching dgit,
I need to manually figure out why files go missing vs the previous
upload and how to make them not disappear.

Like for both NMUs, and downstream work, what we care about is not
"oh rebuild is cleaning out some garbage in the tarball" (normally
we are happy about that), but about maintaining the smallest possible
change to the base version.

-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer  i speak de, en



Bug#1056595: dgit: must not override dpkg include lists

2023-11-23 Thread Ian Jackson
Severity: -1 normal

Julian Andres Klode writes ("Bug#1056595: dgit: must not override dpkg include 
lists"):
> dgit overrides the include lists for dpkg, causing packages to include
> additional .gitignore and similar files which dpkg-source -b will
> exclude.

Yes.

This is necessary (1) so that the git trees correspond precisely to
the .dscs (which is the invariant of the dgit git view), and
(2) to comply with our promise to provide people with the source code.

I consider dpkg-source's behaviour, of excluding .gitignore by default,
to be wrong:
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908747
(You may recall that report, since you commented on it.)

> This creates a significant hurdle to the NMU process and downstream
> distribution maintainers who have to figure out how to reduce the
> delta again, because in both cases, unrelated changes should not
> be present in the diff between the two uploads.

I'm afraid I don't understand your scenario precisely.  I'm
sympathetic to the goal of removing hurdles for NMUers and downstream
maintainers.

> Like I had to spend about 20 minutes or so today trying to figure out
> how to actually get that sorted out for a native package (I was trying
> -i all the time when I should have passed -I), in turn I discovered
> some other process issues but that's beside the point :D

Were you trying to use dgit to make an NMU?  If so what git branch
did you start with?  What options did you give to dgit?

Or, are you the maintainer?  In which case, I'd like to know more
about what went wrong.  Did some NMUer using dgit make an upload that
is causing you trouble?

As background:

I generally recommend that someone doing an NMU which they intend to
upload with dgit, also obtain their baseline package with dgit.  Eg,
see
  https://manpages.debian.org/bookworm/dgit/dgit-nmu-simple.7.en.html
I recommend that users should *not* use the semi-official Debian git
sources because they're not suitable for non-Debian-experts:
  https://diziet.dreamwidth.org/9556.html

Of course if - like you do - you know what you're doing, then you can
start from (eg) a salsa branch.  But then I'm afraid that this problem
with .gitignore may be just another one of the strange Debian things
that you have to know.

Even so, I'm open to ideas of ways to make this wrinkle less annoying.

Ian.

-- 
Ian JacksonThese opinions are my own.  

Pronouns: they/he.  If I emailed you from @fyvzl.net or @evade.org.uk,
that is a private address which bypasses my fierce spamfilter.



Bug#1056595: dgit: must not override dpkg include lists

2023-11-23 Thread Julian Andres Klode
Package: dgit
Severity: important
X-Debbugs-Cc: j...@debian.org

dgit overrides the include lists for dpkg, causing packages to include
additional .gitignore and similar files which dpkg-source -b will
exclude.

This creates a significant hurdle to the NMU process and downstream
distribution maintainers who have to figure out how to reduce the
delta again, because in both cases, unrelated changes should not
be present in the diff between the two uploads.

Like I had to spend about 20 minutes or so today trying to figure out
how to actually get that sorted out for a native package (I was trying
-i all the time when I should have passed -I), in turn I discovered
some other process issues but that's beside the point :D

-- System Information:
Debian Release: trixie/sid
  APT prefers noble
  APT policy: (500, 'noble'), (500, 'mantic-security')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.5.0-10-generic (SMP w/16 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to 
C.UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages dgit depends on:
ii  apt2.7.6
ii  ca-certificates20230311ubuntu1
ii  coreutils  9.1-1ubuntu2
ii  curl   8.4.0-2ubuntu1
ii  devscripts 2.23.6build1
ii  dpkg-dev   1.22.1ubuntu2
ii  dput   1.1.3ubuntu3
ii  git [git-core] 1:2.40.1-1ubuntu1
ii  git-buildpackage   0.9.32
ii  libdpkg-perl   1.22.1ubuntu2
ii  libjson-perl   4.1-1
ii  liblist-moreutils-perl 0.430-2
ii  liblocale-gettext-perl 1.07-6
ii  libtext-csv-perl   2.03-1
ii  libtext-glob-perl  0.11-3
ii  libtext-iconv-perl 1.7-8
pn  libwww-curl-perl   
ii  perl [libdigest-sha-perl]  5.36.0-9ubuntu1

Versions of packages dgit recommends:
ii  distro-info-data 0.59
ii  liburi-perl  5.21-1
ii  openssh-client [ssh-client]  1:9.4p1-1ubuntu1

Versions of packages dgit suggests:
ii  cowbuilder  0.89
ii  pbuilder0.231build1
ii  sbuild  0.85.2ubuntu1

-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer  i speak de, en