Re: Conditionally applying an architecture-dependent patch
Russ Allbery <rra@debian.org> writes:
> Goswin von Brederlow <brederlo@informatik.uni-tuebingen.de> writes:
>
>> I need exactly the same thing. I was lloking for an include statement
>> for series files though. Something like
>
>> debian/patches/series.common:
>> version.patch
>> foo.patch
>> barf.patch
>
>> debian/patches/series.amd64:
>> #include "series.common"
>> amd64.patch
>
>> debian/patches/series.i386:
>> #include "series.common"
>> i386.patch
>
>> Quilt does not seem to have this. But it shouldn't be hard to write a
>> makefile target that creates the series file by running
>> debian/patches/series.$ARCH through cpp. That is the way I'm going
>> anyway, hence the syntax.
>
> That seems like overkill. Why not just do:
>
> ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
>
> patch: patch-stamp
> patch-stamp:
> cp debian/patches/series.common debian/patches/series
> set -e; if [ -f debian/patches/series.$(ARCH) ] ; then \
> cat debian/patches/series.$(ARCH) >> debian/patches/series ; \
> fi
> quilt push -a || test $$? == 2
> touch patch-stamp
>
> and remove debian/patches/series in unpatch?
That isn't very flexible.
By using cpp I can use #include recursively and at any point of the
series. I can also use #ifdef or any other cpp construct. I can insert
an architecture specific patch by enclosing it in #ifdef __arch__. If
I cat the files together I would have to split files into smaller
chunks.
Obviously I hope that quilt includes a feature like include and even
conditional patches in the future.
MfG
Goswin
Reply to: