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

RFC: dpatch - past, present and future


Some of you may have heard of this ancient beast called 'dpatch'[1],
some of you might have noticed that it's been recentishly orphaned[2],
and that someone (hi!) intends to pick it up[3].

The past

My involvement with dpatch goes back a loong long time, and I feel
somewhat responsible for it, even though it was meant to be a relatively
short-term transitional thing until the archive starts to allow multiple

Obviously, it wasn't as short term a solution, because as of this
writing there are 809[4] source packges build-depending on it still.

Nevertheless, it hasn't been touched since 2009, and only saw a couple
of bugfixes since the end of 2007. At the same time, it accumulated a
fair number of bugreports[5]. (And that list is already shorter than it
was a couple of days ago, when I started to triage dpatch bugs)

The present

Even a package that's meant to be temporary deserves better, so I took
up the task, and triaged the bugs, and prepared a new version[6] that
can be tested. It fixes 18 reported bugs, out of the 31 that is still
open. The rest are marked wontfix at the moment.

Now, why on earth am I writing all this instead of just going ahead and
uploading, and enjoying the incoming BTS spam? Good question, dear
reader, and I'll promptly get to the point!

Back in the previous decade, a tool named 'dpatch-get-origtargz' was
added to the package, which was supposed to find a way to get some kind
of upstream source: either by checking a few directories, or via apt-get
source, or by trying to do something with the watch file.

At the time, this worked remarkably well, and everyone was happy. But in
this decade, the tool is broken and bleeding from many wounds. So many,
that I opted to drop it completely: there are better and more flexible
solutions to achieve a similar goal: debian/rules get-orig-source being
one of them, debian/README.source and similar being another option,
along with version control systems, and Vcs-* fields.

However, this had the consequence of "slightly" altering
dpatch-edit-patch -b's behaviour: it used to call out to
dpatch-get-origtargz to fetch sources. Now, it doesn't.

I would like to have Your opinion, whether this is acceptable, or
whether I should reintroduce said tool (except that it would attempt to
apt-get source first, followed by debian/rules get-orig-source, and fail
afterwards, instead of trying to be needlessly clever)?

There's also a couple of interesting changes in the updated package,
which I would love to have more comments on:

 * dpatch comes with a DH7+ sequence now, and one can do "dh $@ --with
   dpatch". I'd love to have more testing on that, and opinions about it

 * dpatches that don't do anything clever (ie, they're really patch -p1
   files, using the standard template) will reset the timestamp of all
   patched files to the same timestamp, provided the lsdiff utility from
   patchutils is present.

   My question here would be whether patchutils should be promoted to
   Depends for this feature? Or - $deity forbid - should this behaviour
   be made optional? Or is it fine as it is, if I add a note about this
   behaviour to the manual page aswell (it's alreadin in debian/NEWS)?

Furthermore, there's a couple of bugs in the BTS that are marked as
wontfix, yet, I'm not completely convinced that's the right thing to
do. So if anyone feels up to it, the following issues could use a few
pairs of eyes: #400092, #400897, #342768, #397290.

The future

As for the future: I still believe dpatch is a temporary solution, and
that better tools exist now. Therefore, it is my long-term plan to
slowly deprecate dpatch, and eventually make it gracefully leave the

However, seeing that this temporary solution has existed for nine years
already, the deprecation will be of similar speed, I imagine. Therefore,
I set a personal goal to remove dpatch by 2017, which would be wheezy+2
or so. 2017, because it's been about 6 years I last touched dpatch, and
that number seemed like as good as anything, as goal when I want to
touch it for the last time, and lay it down to have a well deserved

Closing notes

There's quite a lot of changes in the version I prepared[6], if you have
a dpatch using package, or simply feel like helping me, please test it,
break it, and report bugs.

Thank you!


 1: http://packages.debian.org/sid/dpatch
 2: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562697#14
 3: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562697#23
 4: grep-dctrl -F Build-Depends "$1" -s Package \
    /var/lib/apt/lists/*_Sources | sort -u | awk '{print $2}' | wc -l
 5: http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=dpatch;dist=unstable
 6: http://madhouse-project.org/algernon/dpatch/2.0.32-preview/


Reply to: