Re: Quilt patch for patching things in the debian folder
Raphael Hertzog <email@example.com> writes:
> On Wed, 07 Mar 2012, Thomas Goirand wrote:
>> I've just seen an (ugly) instance of many quilt patches in
>> debian/patches that are patching things inside the debian/ folder. I am
>> wondering if it would be wise to forbid this entirely, and write about
>> it in the policy (maybe it is there already?). There's no sane reason
>> why this would happen: our package_<version>.debian.tar.gz should come
>> patched already, and shouldn't need any quilt patch.
>> Thoughts anyone? Is there reasons why this would be a valid way to do
> It's already caught by lintian as an error:
> In any case it's definitely not a good idea and it breaks when you use 3.0
Maybe this could be fixed so that it doesn't break with the default that
it is only allowed in debian/patches/series.vendor. No source in Debian
should need to patch files in debian/ but derivatives might want/need
> I don't know of any valid usage of such a feature. Even when derivatives
> want different packaging rules, we have a proper interface for this
> and it's dpkg-vendor.
Some problems with that:
1) It assumes the patch is already accepted by debian and isn't just
present in the derivative. Maintaining it as patch in the derivative
until it is accepted by Debian (if at all) has advantages.
2) Not everything can be done through vendor stuff, not nicely, or
simply not yet.
I'm not sure but can you have debian/foobar.install.vendor? How many
packages with .in files support .in.vendor or .vendor.in files?
3) Changes are not incremental
With a patch I can alter the contents of debians files. Changes Debian
makes to the file will automatically be merged into the derivative (or
the patch fails to apply but then you fix it). Replacing generic files
with vendor specific copies does not do this and need to be checked and
adjusted on every change.
Maybe most problematic there is debian/patches/series.vendor. The series
files format doesn't have an include directive. So series.vendor can not
include the generic series file. And for example when Debian adds a
security patch in debian/patches/series then derivatives with a
debian/patches/servies.vendor file will not automatically get them.
It would be much nicer if one could put the following in series.vendor: