Control: retitle -1 dpkg-source: 3.0 (native) silently ignores many binary 
files by default

Hi!

On Sat, 2014-01-18 at 00:05:03 +0000, peter green wrote:
> Raphael Hertzog wrote:
> >So yes, *.a, *.la, *.o and *.so are ignored by default in native source 
> >package
> >and this is is so for as long as I can remember.

> Afaict if I leave a .so or similar file in the source tree (and
> don't override anything) the different source formats currently
> behave as follows
> 
> 1.0 native: include the file in the tarball
> 1.0 non-native: scream and die
> 3.0 (native): quietly ignore the file
> 3.0 (quilt): scream and die
> 
> I can see the justification for quietly ignoring VCS files, they are
> unlikely to be used by the build and screaming and dying on them
> could be a pain since people may want to build from VCS checkouts.
> 
> But for  *.a, *.la, *.o and *.so . If they are present in the source
> tree then most likely one of two things is true.
> 
> 1: The files are built as part of the package build process. In this
> case they should be removed by the clean target to ensure that
> freshly built versions are used in the package build.
> 2: The files are not built as part of the package build process and
> therefore need to be included in the source package (which of course
> makes the package unsuitable for Debian main).
>
> In both of these cases quietly ignoring the files is broken
> behaviour. So I don't see any justification for quietly ignoring
> them being the default. Screaming and dieing would be a more sane
> behaviour and would be more consistent with the behaviour of
> non-native package builds.

Yeah, I'd tend to agree. I was looking into this the day you filed the
bug, and it seems like initially -I (w/o any argument) got a default set
of ignore wildcards (commit f548f40ba483fe8c2b0eab32ccfd1f3bd3cf769e),
and some time after that, that same ignore list was used unmodified
as the default for formats >= 2.0 (commit
ddf788627634080a39931061af354d8d8e15c433). The problem is, that as a
default for a user specified -I, it's fine, but as a default for a
source format, I'd say not so much. It also does not cover all current
object files, so it's not good at that either.

> >If you are unhappy with the default, please change it for your package
> >with debian/source/options:

> The problem is noticing the breakage in the first place. The
> packager takes his source tree, runs dpkg-buildpackage and the build
> completes succesfully so he assumes everything is ok. It's only
> later when someone (either the original packager or someone else)
> goes to work on the package again and unpacks the "source" package
> that they realise it does not contain everything needed for a
> successful build.

Another problem is that to remove just some of the ignore wildcards
is pretty tricky, as one has then to reproduce and carry over the
rest of the ignore list (see #615828 or #718984).

I've to say I'm a bit unhappy about the current -I and -i option
behaviours in general. :/

I'll ponder about changing the default (the object files part), I might
want to run it through debian-devel first though. And in addition I'll
probably add a way to unignore specific wildcards or (un)ignore groups
of wildcards, so that you could say to ignore vcs and object files, but
not backup files, for example.

Thanks,
Guillem


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to