[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Odd patch behaviour [Was: quilt 3.0 source format and dpkg-source/dpkg-buildpackage]

tangke <mumutouv@gmail.com> writes:

> On 2010å¹´01æ??20æ?¥ 23:39, Goswin von Brederlow wrote:
>> Norbert Preining<preining@logic.at>  writes:
>>> On Mo, 28 Dez 2009, Raphael Hertzog wrote:
>>>>> Mind that git-buildpackage with normal 1.0 source format does NOT pollute
>>>>> the git repository, so my expectation is that the 3.0 format does the
>>>>> same, but alas, it doesn't.
>>>> Well, if you have the usual quilt rules, you working copy is also modified
>>>> until the next debian/rules clean. Here the clean doesn't unapply the
>>> I disagree:
>>> $ ls ~/.gbp.conf
>>> ls: cannot access /home/norbert/.gbp.conf: No such file or directory
>>> $ git status
>>> # On branch master
>>> nothing to commit (working directory clean)
>>> $ git-buildpackage -us -uc -rfakeroot -S
>>> ...
>>> dpkg-buildpackage: source only, diff-only upload (original source NOT included)
>>> Now running lintian...
>>> Finished running lintian.
>>> $ git status
>>> # On branch master
>>> nothing to commit (working directory clean)
>>> $
>>> So please tell me *what* has changed?
>>> Doing the same with source format 3.0 git status reports hundreds
>>> of differences.
>>> So please do not spread things that are not correct!
>> He did say that with 3.0 (quilt) format the "clean" state is with
>> patches applied, like you get after dpkg-source -x. That part is
>> different to 1.0 format where "clean" would have patches unapplied.
>> So when you go from 1.0 to 3.0 you will get a ton of files changed
>> after the first build + clean because now patches are applied.
>> MfG
>>          Goswin
> why not apply the patches when build automatically, and make clean to 
> unapply the patches?
> when I build the package, I must check quilt applied and quilt 
> unapplied, It's very trouble.
> thanks
> best regards.
> tangk@lemote.com

I was under the impression that build would always apply all missing
patches now that dpkg-source always creates a .pc dir. It certainly
does apply patches when none are applied.

% apt-get source mdadm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Need to get 469kB of source archives.
Get:1 http://chocos sid/main mdadm 3.0.3-2 (dsc) [1261B]
Get:2 http://chocos sid/main mdadm 3.0.3-2 (tar) [337kB]
Get:3 http://chocos sid/main mdadm 3.0.3-2 (tar) [131kB]
Fetched 469kB in 0s (1831kB/s)
dpkg-source: info: extracting mdadm in mdadm-3.0.3
dpkg-source: info: unpacking mdadm_3.0.3.orig.tar.gz
dpkg-source: info: unpacking mdadm_3.0.3-2.debian.tar.gz
dpkg-source: info: applying all patches with quilt push -q debian/conffile-location.diff
Applying patch fixes/udev-blkid.diff
Applying patch contrib/docs/raid5-vs-raid10.diff
Applying patch contrib/docs/superblock_formats.diff
Applying patch contrib/docs/md.txt.diff
Applying patch contrib/docs/jd-rebuilding-raid.diff
Applying patch debian/conffile-location.diff
Now at patch debian/conffile-location.diff

% cd mdadm-3.0.3 
% quilt pop 
Now at patch contrib/docs/jd-rebuilding-raid.diff
% debuild -us -uc
 dpkg-buildpackage -rfakeroot -D -us -uc -ICVS
dpkg-buildpackage: set CFLAGS to default value: -g -O2
dpkg-buildpackage: set CPPFLAGS to default value: 
dpkg-buildpackage: set LDFLAGS to default value: 
dpkg-buildpackage: set FFLAGS to default value: -g -O2
dpkg-buildpackage: set CXXFLAGS to default value: -g -O2
dpkg-buildpackage: source package mdadm
dpkg-buildpackage: source version 3.0.3-2
dpkg-buildpackage: source changed by martin f. krafft <madduck@debian.org>
dpkg-buildpackage: host architecture amd64
 fakeroot debian/rules clean
rm -f debian/bugscript debian/mkconf
rm -f build-stamp
[ ! -f Makefile ] || /usr/bin/make clean
make[1]: Entering directory `/tmp/mdadm/mdadm-3.0.3'
rm -f mdadm mdmon mdadm.o config.o mdstat.o  ReadMe.o util.o Manage.o Assemble.o Build.o Create.o Detail.o Examine.o Grow.o Monitor.o dlink.o Kill.o Query.o Incremental.o mdopen.o super0.o super1.o super-ddf.o super-intel.o bitmap.o restripe.o sysfs.o sha1.o mapfile.o crc32.o sg_io.o msg.o platform-intel.o probe_roms.o mdmon.o monitor.o managemon.o util.o mdstat.o sysfs.o config.o Kill.o sg_io.o dlink.o ReadMe.o super0.o super1.o super-intel.o super-ddf.o sha1.o crc32.o msg.o bitmap.o platform-intel.o probe_roms.o pwgr.o core *.man \
        mdadm.tcc mdadm.uclibc mdadm.static *.orig *.porig *.rej *.alt \
        mdadm.Os mdadm.O2 \
        mdassemble mdassemble.static mdassemble.auto mdassemble.uclibc \
        mdassemble.klibc swap_super \
        init.cpio.gz mdadm.uclibc.static test_stripe mdmon
make[1]: Leaving directory `/tmp/mdadm/mdadm-3.0.3'
rm -f mdadm.udeb mdadm
 dpkg-source -ICVS -b mdadm-3.0.3
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: warning: patches have not been applied, applying them now (use --no-preparation to override)
dpkg-source: info: applying all patches with quilt push -q debian/conffile-location.diff
Applying patch debian/conffile-location.diff
Now at patch debian/conffile-location.diff

But that is potentially too late. And it only does that when you build

Could that be changed to apply patches before invoking ANY target?
dpkg-buildpackage should check that and not just dpkg-source.


Reply to: