Package: lintian; Maintainer for lintian is Debian Lintian Maintainers <lintian-maint@debian.org>; Source for lintian is src:lintian (PTS, buildd, popcon).
Reported by: Daniel Leidert <daniel.leidert@wgdd.de>
Date: Sun, 16 Mar 2008 23:36:01 UTC
Severity: wishlist
Tags: wontfix
Found in versions lintian/1.23.46, lintian/1.23.48
Done: Niels Thykier <niels@thykier.net>
Bug is archived. No further changes may be made.
View this report as an mbox folder, status mbox, maintainer mbox
Report forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Daniel Leidert <daniel.leidert@wgdd.de>:
New Bug report received and forwarded. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
Package: lintian
Version: 1.23.46
Severity: wishlist
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Please consider docbook-defguide and docbook-xml/docbook-simple as
examples. In these packages I created a build-system (docbook-defguide)
or catalogs (docbook-xml, docbook-simple). Because I use a patch system
to change upstream sources, lintian complains about the fact, that I do
not create these files by patch.
It simply doesn't make sense to create these files by patch. lintian
should only warn, if changes are really changes to an existing file, but
not if "change" means, that a file has been created.
Would you agree to this? Is it possible to exclude created files from
this warning? I would further vote for excluding
changes.{sub,guess,rpath} and maybe even Makefiles and/or configure
scripts from this test. However, this is hust an optional suggestion.
Regards, Daniel
- -- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (850, 'unstable'), (700, 'testing'), (550, 'stable'), (110, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.22-3-k7 (SMP w/1 CPU core)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages lintian depends on:
ii binutils 2.18.1~cvs20080103-1 The GNU assembler, linker and bina
ii diffstat 1.45-2 produces graph of changes introduc
ii dpkg-dev 1.14.16.6 package building tools for Debian
ii file 4.23-2 Determines file type using "magic"
ii gettext 0.17-2 GNU Internationalization utilities
ii intltool-debian 0.35.0+20060710.1 Help i18n of RFC822 compliant conf
ii libparse-debianchan 1.1.1-2 parse Debian changelogs and output
ii liburi-perl 1.35.dfsg.1-1 Manipulates and accesses URI strin
ii man-db 2.5.1-3 on-line manual pager
ii perl [libdigest-md5 5.8.8-12 Larry Wall's Practical Extraction
lintian recommends no packages.
- -- no debconf information
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFH3a3Ym0bx+wiPa4wRAjTTAKC2LkWSEHDHbecv4Tmuf/VObnKydwCePc3k
oyhr484WQfCGJAF1/KFxe7U=
=hDTQ
-----END PGP SIGNATURE-----
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #10 received at 471263@bugs.debian.org (full text, mbox, reply):
Daniel Leidert <daniel.leidert@wgdd.de> writes:
> Package: lintian
> Version: 1.23.46
> Severity: wishlist
>
> Please consider docbook-defguide and docbook-xml/docbook-simple as
> examples. In these packages I created a build-system (docbook-defguide)
> or catalogs (docbook-xml, docbook-simple). Because I use a patch system
> to change upstream sources, lintian complains about the fact, that I do
> not create these files by patch.
>
> It simply doesn't make sense to create these files by patch.
Why not?
> lintian should only warn, if changes are really changes to an existing
> file, but not if "change" means, that a file has been created.
I can see why you did it the way that you did, but I don't see any clear
advantages over doing it that way versus creating the build files in a
dpatch. It seems like about the same thing to me. Not warning about
newly created files would miss some of the things that this check is
designed to look for (basically, editing the package without being aware
that there's an existing patch system). If a patch created a file and
that file was also shipped in the diff, you end up putting the patch
system in an inconsistent state.
Part of the problem is that people use patch systems in a wide variety of
sometimes odd ways. To some extent, lintian is intentionally being
conservative right now about what uses it's willing to be quiet about,
although I don't know if we'll be able to stick with that in the long run.
> Would you agree to this? Is it possible to exclude created files from
> this warning? I would further vote for excluding
> changes.{sub,guess,rpath} and maybe even Makefiles and/or configure
> scripts from this test. However, this is hust an optional suggestion.
I personally think such changes should be made by running the relevant
Autotools at build time, but I realize this is an ongoing debate and
that's far from the consensus at the moment. I think we're still trying
to feel out what Lintian's role should be here. I'd welcome any feedback
from other people reading the mailing list.
--
Russ Allbery (rra@debian.org) <http://www.eyrie.org/~eagle/>
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Daniel Leidert <daniel.leidert@wgdd.de>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #15 received at 471263@bugs.debian.org (full text, mbox, reply):
Sorry for the late answer. Am Sonntag, den 16.03.2008, 17:07 -0700 schrieb Russ Allbery: > Daniel Leidert <daniel.leidert@wgdd.de> writes: > > > Please consider docbook-defguide and docbook-xml/docbook-simple as > > examples. In these packages I created a build-system (docbook-defguide) > > or catalogs (docbook-xml, docbook-simple). Because I use a patch system > > to change upstream sources, lintian complains about the fact, that I do > > not create these files by patch. > > > > It simply doesn't make sense to create these files by patch. > > Why not? I could ask the opposite: Why do you think it makes sense to create files by patch? > > lintian should only warn, if changes are really changes to an existing > > file, but not if "change" means, that a file has been created. > > I can see why you did it the way that you did, but I don't see any clear > advantages over doing it that way versus creating the build files in a > dpatch. It makes the life of the package maintainer or any contributor harder. I also don't create examples in the debian/ directory by patch. I simply write them and put them under debian/. Why shouldn't I do this for files outside of debian/ as long as these files are part of the Debian packaging. In the above cases we speak about compilation packages, that are not provided by upstream in this form. In the case of docbook-defguide the created files are a self-written build-system. > It seems like about the same thing to me. Not warning about > newly created files would miss some of the things that this check is > designed to look for (basically, editing the package without being aware > that there's an existing patch system). If a patch created a file and > that file was also shipped in the diff, you end up putting the patch > system in an inconsistent state. This is true. But it is wrong for changes, that create a file. All you said is valid for existing files, that are changed. But you cannot put the patch system in an inconsistent state by creation of files. I would really suggest to downgrade this warning (W) for existing files to an information (I). There is no danger and there are clearly situations, where creation fo these files by patch makes less or at least only the same sense then creation of these files without a patch system. Regards, Daniel
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Neil Williams <codehelp@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #20 received at 471263@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
My take on this is that lintian is getting the check wrong.
Files that are changed as the result of a patch to a file that is
processed during the build should be ignored - e.g. patching
configure.in|ac should mean that changes in ./configure must be ignored.
Why should a patch system try (and necessarily fail) to
patch ./configure only to (fail to) implement the very change that
patching configure.in|ac and running autoreconf achieves cleanly? (The
patch will fail because ./configure changes frequently due to autotools
updates when configure.in|ac does not.) --maintainer-mode is already
dead, why should I need to return to the days of patching the same
change twice?
In practise, this undermines the entire check because it is not going to
be easy for lintian to identify which files contain generated changes on
a reliable basis.
"this check is
designed to look for (basically, editing the package without being aware
that there's an existing patch system)."
In which case, I fear, the check appears to be over-simplified and I
don't see a reliable method for doing what the check is designed to do
without causing false positives like libgpewidget.
" If a patch created a file and
that file was also shipped in the diff, you end up putting the patch
system in an inconsistent state."
That is a case of trying to patch the same file twice - what we need to
avoid is the check for that problem causing maintainers to patch the
same *change* twice in more than one file when changing only one file
will generate the necessary changes in the second file during an
entirely normal build and without any other intervention.
These files are not being "patched twice" or "patched and changed
again", they are being changed by the effect of a patch on another file
causing a change in output from build tools. To fix that problem, we'd
need a radically different autotools design that strips out large parts
of the _orig.tar.gz and only packages the files that upstream actually
change (Makefile.am and configure.in) not the files that upstream
generate (Makefile.in and ./configure). Even that would be all well and
good for new or developing projects but unachievable on older projects
(like libjpeg6b) that haven't actually updated the build system for some
time. (That model is closer to the RCS model of upstream source -
generate everything everytime.)
If a patch modifies a file that is regenerated during the build using
data contributed from an external tool (like intltool, gettext,
autotools, gtk-doc, docbook, xsltproc, ....) then this patch is actually
far more likely to fail and may even fail simply when trying to rebuild
the package twice in a row. (The patch could not be unapplied cleanly
because the patched file has been changed by the build process.)
Simple example: If a package uses xsltproc to update a manpage from XML
but the package also contains the upstream manpage in order to make
generating the manpage optional for some builds, what is the point of
patching the manpage *and* the XML? Only the XML needs to be patched -
patching the manpage itself simply means that as soon as docbook-xsl is
updated to fix some bug in manpage output, my package becomes RC buggy
because the patch fails to apply - a patch that wasn't actually needed
in the first place. Does the maintainer now need to repackage the
_orig.tar.gz to remove the upstream manpage in order to patch it?
This whole thing was bad enough with --maintainer-mode causing patches
to ./configure and configure.in. (I've still got a few packages with
that problem - hopefully upstream will get it right for the next
release.)
These "patching-a-generated-file" bugs are *more* of a problem because
they cause a FTBFS due to the update of some third party package
(typically when the maintainer is busy with something else or away on
hols). If the generated file is not patched, the patch cannot fail - as
long as the effect of the patch is achieved through a patch to the
"source" file, the package will continue to build when other packages
change.
I found this lintian warning to be a problem with the libgpewidget
package - I cannot patch the changes to the doc/tmpl files because those
changes depend on how gtk-doc processes the doc/tmpl/ files in the first
place. Now it may well be that upstream could do with updating the
doc/tmpl files in the next release, but if there is nothing I can do
about it in the Debian package, why should I need a lintian override?
> > Would you agree to this? Is it possible to exclude created files from
> > this warning? I would further vote for excluding
> > changes.{sub,guess,rpath} and maybe even Makefiles and/or configure
> > scripts from this test. However, this is hust an optional suggestion.
>
> I personally think such changes should be made by running the relevant
> Autotools at build time, but I realize this is an ongoing debate and
> that's far from the consensus at the moment. I think we're still trying
> to feel out what Lintian's role should be here. I'd welcome any feedback
> from other people reading the mailing list.
If there is no consensus on changes to files like ./configure,
Makefile.in (when Makefile.am is patched), why has lintian gone ahead
anyway?
I think the check should only seek to find changes to *files that are
already patched* from also appearing in the .diff.gz - skipping any
files in the .diff.gz that are not listed in the patch set. It is these
"patch-and-change-same-file" bugs that will corrupt the patch process,
not the other changes that affect unrelated (and typically generated)
files.
IMHO it is a bad idea to try to patch a file that is modified during the
build process - wherever possible, patches should be against files that
upstream would normally edit to implement the desired change, not the
files that the build tools generate from those changes. Lintian should
not inadvertently undermine that principle.
--
Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/
[signature.asc (application/pgp-signature, inline)]
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Danai SAE-HAN (韓達耐) <danai.sae-han@edpnet.be>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #28 received at 471263@bugs.debian.org (full text, mbox, reply):
Package: lintian Version: 1.23.48 Followup-For: Bug #471263 Hi! I'm the maintainer of "cjk", which produces binary files like latex-cjk-common and latex-cjk-chinese. The upstream author uses CWEB, a language that produces C and TeX documentation files through ctangle and cweave respectively. I used to leave the .c file, as it would be overwritten anyway when you would rebuild cjk. However, when I build it now, lintian produces a warning that the .c file appears in the diff.gz file, presuming that it is an extra patch that is not handled through dpatch (which I also use). To solve this issue, I remove the .c file during the cleaning target of debian/rules, clean the directory with "debuild clean", recreate the source with git-buildpackage and then rebuild the whole thing once or twice. I'm not sure if I've done the Right Thing(tm), but it seems to work regardless. Best regards Danai SAE-HAN -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.24-hefaistos (PREEMPT) Locale: LANG=nl_BE.UTF-8, LC_CTYPE=nl_BE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages lintian depends on: ii binutils 2.18.1~cvs20080103-4+b1 The GNU assembler, linker and bina ii diffstat 1.45-2 produces graph of changes introduc ii dpkg-dev 1.14.18 package building tools for Debian ii file 4.24-2 Determines file type using "magic" ii gettext 0.17-2 GNU Internationalization utilities ii intltool-debian 0.35.0+20060710.1 Help i18n of RFC822 compliant conf ii libparse-debianc 1.1.1-2 parse Debian changelogs and output ii liburi-perl 1.35.dfsg.1-1 Manipulates and accesses URI strin ii man-db 2.5.2-1 on-line manual pager ii perl [libdigest- 5.10.0-10 Larry Wall's Practical Extraction lintian recommends no packages. -- no debconf information
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #33 received at 471263@bugs.debian.org (full text, mbox, reply):
Danai SAE-HAN "(韓達耐)" <danai.sae-han@edpnet.be> writes: > I used to leave the .c file, as it would be overwritten anyway when you > would rebuild cjk. However, when I build it now, lintian produces a > warning that the .c file appears in the diff.gz file, presuming that it > is an extra patch that is not handled through dpatch (which I also use). > > To solve this issue, I remove the .c file during the cleaning target of > debian/rules, clean the directory with "debuild clean", recreate the > source with git-buildpackage and then rebuild the whole thing once or > twice. > > I'm not sure if I've done the Right Thing(tm), but it seems to work > regardless. That is indeed exactly the right thing to do. -- Russ Allbery (rra@debian.org) <http://www.eyrie.org/~eagle/>
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Neil Williams <codehelp@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #38 received at 471263@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
I'm getting into a crazy situation with this lintian warning: patch-system-but-direct-changes-in-diff I've removed one diversion from libgpewidget but I still need to use one and this requires a patch to configure.ac using dpatch. This then regenerates configure and aclocal.m4. I think patch-system-but-direct-changes-in-diff is just too buggy to be deployed - that isn't the fault of lintian, I think the "problem" cannot be detected/determined in a sane manner. Maybe a downgrade to info? From #471263 > I personally think such changes should be made by running the relevant > Autotools at build time, but I realize this is an ongoing debate and > that's far from the consensus at the moment. I think we're still trying > to feel out what Lintian's role should be here. I'd welcome any feedback > from other people reading the mailing list. > > -- > Russ Allbery (rra@debian.org) http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=471263#10 So I am running the relevant autotools at build time but I still get the warning. Then a more bizarre problem arrives - the first build I get: Now running lintian... W: libgpewidget source: patch-system-but-direct-changes-in-diff aclocal.m4 Finished running lintian. Any subsequent build produces: Now running lintian... W: libgpewidget source: patch-system-but-direct-changes-in-diff aclocal.m4 W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/color-slider.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/colordialog.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/colorrenderer.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gpeclockface.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gpedialog.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gpehelp.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gtkdatecombo.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gtksimplemenu.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/libgpewidget-unused.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/link-warning.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/pixmaps.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/smallbox.sgml W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/spacing.sgml Finished running lintian. I don't see why I should "patch" aclocal.m4 and I consider it a harmful thing to do seeing as every update of autotools will likely cause the other changes in aclocal.m4 and the patch will to fail to apply causing a FTBFS - a much more serious issue. Having aclocal.m4 in the .diff.gz causes problems with uscan; uupdate because it does fail to apply from one upstream release to the next but that is only a problem for me and I can live with it. What is the solution here? Do the other dpkg source formats have a solution for generated files? (PLEASE don't spout on and on about git. I don't use git, I have no intention of using git - I do not particularly want to use any RCS with this particular package although I might consider SVN seeing as svn-buildpackage at least has sane MergeWithUpstream support. The more noise the git-fanclub make, the less I listen so don't expect a reply from me if you want to talk about git.) Do I have to move aclocal.m4 aside in debian/rules and move it back? How does that help? - it'll still be in the .diff.gz under a different filename. That doesn't help the build-twice release goal issue. Yes, the package meets the letter of the release goal by building twice in a row but not without either spurious lintian overrides or spurious lintian warnings. What is the problem that this lintian check is trying to solve, why does it apply to generated files and is there a sane way to tell the difference (especially when a "generated file" can still mean a file present in the upstream source and modified in the .diff.gz because modifications result from the actions of a third-party build-tool)? I'm not sure why gtk-doc-tools is making these changes - this is a new upstream release (although there appear to be differences in the autotools environment between myself and upstream, hence the aclocal.m4 diff) and the tmp/ files have been updated upstream. Quite why I get no error with the first build but errors with all subsequent builds I have no idea. I can reproduce the "silent" build by simply copying the tmp/*.sgml files back into place from the .orig.tar.gz so those could be "moved aside" as well but it seems a lot of work if the lintian warning itself is dubious or cannot be applied in a sane manner. I don't see that creating patches for these tmpl/ files is correct either - a change in gtk-doc-tools could easily break many such patches and I do not consider it "my fault" that those files have been changed, hence no patches. This, to me, is where the "all changes are patches" approach falls down. A patch, IMHO, is a deliberate action - similar to a GnuPG signature on an email. It should require a conscious act to solve an identifiable problem - preferably one with a bug report. Changes that result merely from differences in build environment between upstream and Debian should not even be in the .diff.gz if at all possible - such changes are, IMHO, certainly not deliberate actions by the maintainer. Changes that themselves change independently of the actions of the maintainer cannot be implemented by the maintainer as patches, imho. The "silent" build is available from my repo: dget -x http://www.linux.codehelp.co.uk/packages/pool/main/libg/libgpewidget/libgpewidget_0.116-1.dsc I won't upload to ftp-master just yet - I do need to do some more tests to ensure that other GPE packages build and function correctly so that I don't inadvertently trigger a transition in over 40 packages. ;-) -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
[signature.asc (application/pgp-signature, inline)]
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Mark Brown <broonie@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #43 received at 471263@bugs.debian.org (full text, mbox, reply):
On Sun, May 25, 2008 at 01:07:56PM +0100, Neil Williams wrote: > So I am running the relevant autotools at build time but I still get the > warning. If you run autotools at build time you should also ensure that the changes which autotools makes are reverted in the clean target. This means that your diff doesn't get cluttered with automatically generated things and ensures that repeated builds of the package produce the same diff.gz. This is the same idea as patch systems reverting the changes they make in the clean target. > Do I have to move aclocal.m4 aside in debian/rules and move it back? How > does that help? - it'll still be in the .diff.gz under a different > filename. That doesn't help the build-twice release goal issue. Yes, the > package meets the letter of the release goal by building twice in a row > but not without either spurious lintian overrides or spurious lintian > warnings. If you actually move it back in the clean target (rather than just copying it back) then it won't appear in the diff.gz. -- "You grabbed my hand and we fell into it, like a daydream - or a fever."
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Raphael Hertzog <hertzog@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #48 received at 471263@bugs.debian.org (full text, mbox, reply):
On Sun, 25 May 2008, Mark Brown wrote: > On Sun, May 25, 2008 at 01:07:56PM +0100, Neil Williams wrote: > > > So I am running the relevant autotools at build time but I still get the > > warning. > > If you run autotools at build time you should also ensure that the > changes which autotools makes are reverted in the clean target. This > means that your diff doesn't get cluttered with automatically generated > things and ensures that repeated builds of the package produce the same > diff.gz. Exactly, it's the reason why I filed http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482716 in the first place. Removing the files which are regenerated in the configure stage is a simple way to make sure that that you don't end up with such clutter. Several of the packages which contain such useless changes in the diff end up causing problems once you try to convert them to source format 3.0 (quilt) because the changes can't be applied/unapplied at any point of time if the files are regenerated by some intermediate step. Some examples: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482749 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482733 So I'm in favor of keeping this lintian warning because if the maintainer makes the effort to keep clean patches, it should also make the effort to make sure that the package cleans up nicely and doesn't clutter the .diff.gz. Cheers, -- Raphaël Hertzog Le best-seller français mis à jour pour Debian Etch : http://www.ouaza.com/livre/admin-debian/
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Goswin von Brederlow <goswin-v-b@web.de>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #53 received at 471263@bugs.debian.org (full text, mbox, reply):
Neil Williams <codehelp@debian.org> writes:
> I'm getting into a crazy situation with this lintian warning:
>
> patch-system-but-direct-changes-in-diff
>
> I've removed one diversion from libgpewidget but I still need to use one
> and this requires a patch to configure.ac using dpatch. This then
> regenerates configure and aclocal.m4.
>
> I think patch-system-but-direct-changes-in-diff is just too buggy to be
> deployed - that isn't the fault of lintian, I think the "problem" cannot
> be detected/determined in a sane manner. Maybe a downgrade to info?
If you regenerate those files then remove them in clean. If lintian
still complains then that is imho a bug.
If you can't work without those files then the only way out is to save
them and restore them in clean.
MfG
Goswin
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Lintian Maintainers <lintian-maint@debian.org>:
Bug#471263; Package lintian.
(full text, mbox, link).
Acknowledgement sent to Neil Williams <codehelp@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Lintian Maintainers <lintian-maint@debian.org>.
(full text, mbox, link).
Message #58 received at 471263@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Oops, sent to the wrong bug report. On Wed, 2008-05-28 at 11:45 +0100, Neil Williams wrote: > On Tue, 2008-05-27 at 18:06 -0700, Russ Allbery wrote: > > Neil Williams <codehelp@debian.org> writes: > > > On Sun, 2008-05-25 at 08:40 -0700, Russ Allbery wrote: > > > > >> Lots of other packages do this -- one of mine off the top of my head is > > >> xml-security-c. > > > > > Nope. No mention of aclocal.m4 in debian/rules for that package, > > > just /usr/share/misc/config.guess and config.sub. > > > > Uh, it's the same problem. Surely the generalization is obvious? > > It's not quite the same problem because aclocal.m4 is regenerated in the > clean rule itself because changing it causes ./configure --recheck to > recreate the (modified) file. So instead of copying it around, it has to > be deleted - merely because a patch system is in use. Seems crazy to me. > > > > I need to patch configure and configure.ac in this package, that means > > > that aclocal.m4 is constantly being changed and reverted. It shouldn't > > > matter - it really should not. > > > > Right, so delete it in the clean rule. > > OK. It's a bit like collateral damage - need a patch to configure, > patching causes configure --recheck which modifies aclocal.m4 so delete > aclocal.m4. Hmmm. I don't like it but I'll do it anyway. > > > > I see no purpose in lintian (or dpkg come to that) testing for changes > > > in aclocal.m4 - IMHO it should simply be exempt from this check. > > > > Absolutely not -- you're introducing unexpected changes to the packaging > > diff file, > > Well my point is that the change is entirely expected (because the > patch modifies a file that is involved in generating the changes) - the > changes are merely a consequence of the patch. It feels wrong to have to > add a clean rule for aclocal.m4 as a direct result of patching > configure.ac when aclocal.m4 was not a problem before the patch. > > Anyway, the "problem" of the tmpl/* files is far more resistant. > > > >>> I really don't want to do all that for the tmpl/* files as well - I > > >>> don't see the need, copying dozens of files into foo.safe or > > >>> foo.upstream and then moving them back? > > > > >> Just delete them then. > > > > > ??? That simply does not work. The problem is that running gtk-doc not > > > only requires tmpl/*.sgml files to exist but it *then modifies them*! > > > > This is extremely unusual. Are you *sure* that it does an inplace edit of > > the files during the build process? > > $ ls libgpewidget-0.115.orig/doc/tmpl/ -1 > colordialog.sgml > color-slider.sgml > dirbrowser.sgml > errorbox.sgml > gpeclockface.sgml > gpehelp.sgml > gpeiconlistitem.sgml > gpe-iconlist.sgml > gpeiconlistview.sgml > gpetimesel.sgml > gpewindowlist.sgml > gtkdatecombo.sgml > gtksimplemenu.sgml > infoprint.sgml > init.sgml > libgpewidget-unused.sgml > picturebutton.sgml > pixmaps.sgml > popup_menu.sgml > popup.sgml > question.sgml > smallbox.sgml > spacing.sgml > stylus.sgml > translabel.sgml > tray.sgml > windows.sgml > > From the build log: > gtkdoc-mkdb --module=libgpewidget --source-dir=.. --output-format=xml > --sgml-mode --output-format=xml --tmpl-dir=tmpl > > Now running lintian... > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/color-slider.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/colordialog.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/colorrenderer.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gpeclockface.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gpedialog.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gpehelp.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gtkdatecombo.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/gtksimplemenu.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/libgpewidget-unused.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/link-warning.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/pixmaps.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/smallbox.sgml > W: libgpewidget source: patch-system-but-direct-changes-in-diff doc/tmpl/spacing.sgml > Finished running lintian. > > 13 out of 27 files modified by gtk-doc. > > Copy those files back into doc/tmpl/ from the upstream source and they > are still modified at the next build. > > Add a rm -f doc/tmpl/*.sgml to clean:: and the build fails: No rule to > make doc/tmp/*.sgml > > So, yes, --enable-gtkdoc is modifying files included upstream and which > are essential to the build process. > > If I drop --enable-gtkdoc I get different contents in the > libgpewidget-doc package. > > > This is almost never what build > > systems do; instead, they generate files from other files using templating > > systems. They may ship the results of that operation and then redo it > > during the build, in which case you need to delete the regenerated files > > in your clean rule. > > Yes, that is what we might expect from build systems - unfortunately it > doesn't always work that way. > > The way gtk-doc works is that it adds a pre-defined gtk-doc.make file > into the upstream source and it is this file that determines everything > about how gtk-doc works. If upstream are using a different version, I > don't see what can be done. --enable-gtkdoc will update the .make file > according to the installed version on the build system. Disabling gtkdoc > means packaging outdated documentation. > > It seems to me you're expecting gtk-doc-tools to implement something > like AM_MAINTAINER_MODE where upstream gtk-doc-tools is allowed to make > changes to doc/tmpl/*.sgml but Debian gtk-doc-tools is not. (I always > thought that AM_MAINTAINER_MODE was considered harmful for precisely > this reason.) > > > If they really expect the files to exist and to edit them in-place during > > the build, upstream is doing something insane, and it's really something > > that should be fixed upstream; a lintian warning is drawing your attention > > to a very broken behavior. > > AFAICT this is not a fault upstream - the tmpl/*.sgml files need to be > included. I suspect it is merely because upstream don't happen to use > the same version of gtk-doc-tools. The "they" in the quoted paragraph > refers to the gtk-doc-tools upstream, not libgpewidget upstream. > > It is not at all insane - every package using gtk-doc-tools has the same > process. I'm not sure why only libgpewidget is currently showing this > problem but it is wrong to call it "insane". > > gtk-doc-tools is, in essence, an upstream tool. It is meant to modify > upstream files during the build, that is the reason it exists. The need > to run it in the build arises, I'm presuming, from a difference in the > version of gtk-doc-tools between Debian and the libgpewidget upstream > team. Debian simply cannot stipulate that a certain version must be used > upstream. I don't see the bug. > > > Right, lintian is diagnosing build system brokenness. I'm fairly happy > > with lintian's behavior here; what it's drawing attention to is exactly > > the kind of thing that breaks repeated package builds or causes NMUs to > > introduce spurious package diffs, and is something that should really > > ideally be fixed. > > Well, I'm not sure that it can be fixed - other than requiring upstream > to use the same version of gtk-doc-tools as Debian which is frankly, > absurd. > > > > With these gtk-doc files, it's not so much that the tmpl/*.sgml files > > > are generated but that a tool essential to the build modifies them in a > > > way that cannot be patched because the results of the patches are > > > variable according to that third party tool. > > > > If the tool behaves and only behaves in that way (I haven't checked), that > > tool is broken and we should fix that tool. > > It probably is behaving that way but there's no accounting for changes > between versions - or for changes that may yet be made that also tweak > the output. I simply cannot risk patching these tmpl/*.sgml files and > having the patches fail at some point in the future, turning a bug in > lintian into a FTBFS in libgpewidget (which has 40 reverse > dependencies). > > I still think that lintian is out of line here - this is not a problem > for the maintainer and it is only the maintainer who needs to worry > about updating the package from 0.115 to 0.116 and 0.117 etc. > > These files are in the .diff.gz because of the behaviour of a third > party tool which updates a data source within the upstream source > according to internal rules for that tool. OK, maybe that tool could be > improved but that is not necessarily trivial - especially when Debian > cannot stipulate that any particular upstream team must use a particular > version or configuration for that tool. > > I haven't been able to identify the supposed bug in gtk-doc-tools and I > don't see that it is up to me to do that - AFAICT this is something that > is not a problem in the real world and lintian is imposing unrealistic > expectations on libgpewidget. > > I'm perfectly happy with the behaviour of gtk-doc-tools in libgpewidget > (I'd like gtk-doc-tools to be workable in a cross-build environment but > that's minor because cross-builds rarely care for API documentation > anyway and it is fairly easy to disable gtk-doc if the docs are not > wanted.). If others disagree, it is up to them to file a bug in > gtk-doc-tools and work out just how it should be improved. The mere fact > of a spurious lintian warning is an annoyance, not a problem but I would > still like lintian to be more intelligent about these things, accept > that the world is not 100% perfect and not blame the messenger. > > If this is a bug in libgpewidget that I've missed, please let me know in > the usual manner, but for now I'm just going to ignore lintian for this > check. > -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
[signature.asc (application/pgp-signature, inline)]
Tags added: wontfix
Request was from Russ Allbery <rra@debian.org>
to control@bugs.debian.org.
(Fri, 18 Jul 2008 16:42:14 GMT) (full text, mbox, link).
Changed Bug title to `[checks/patch-systems] suppress patch-system-but-direct-changes-in-diff for generated files' from `[patch-systems]: please no patch-system-but-direct-changes-in-diff for generated files'.
Request was from Russ Allbery <rra@debian.org>
to control@bugs.debian.org.
(Sun, 11 Jan 2009 04:09:40 GMT) (full text, mbox, link).
Reply sent
to Niels Thykier <niels@thykier.net>:
You have taken responsibility.
(Sat, 20 Aug 2011 13:15:20 GMT) (full text, mbox, link).
Notification sent
to Daniel Leidert <daniel.leidert@wgdd.de>:
Bug acknowledged by developer.
(Sat, 20 Aug 2011 13:15:20 GMT) (full text, mbox, link).
Message #67 received at 471263-done@bugs.debian.org (full text, mbox, reply):
Hi, This bug has been marked wontfix for over 3 years and no comments have appeared since then. Therefore I am closing it to clean up the bug tracker. For this particular bug, I believe dpkg-source has better support for excluding some files from the resulting diff (or the auto-generated patch), which should cover common cases for this issue. ~Niels
Bug archived.
Request was from Debbugs Internal Request <owner@bugs.debian.org>
to internal_control@bugs.debian.org.
(Sun, 18 Sep 2011 07:33:11 GMT) (full text, mbox, link).
Send a report that this bug log contains spam.
Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.