patching

Differences between revisions 4 and 5
Revision 4 as of 2007-04-24 03:52:26
Size: 208
Editor: pool-129-44-211-206
Comment:
Revision 5 as of 2007-04-24 19:10:23
Size: 5634
Editor: pool-71-240-250-31
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
{{{
(03:02:43 PM) pitti: splendid; sounds like a good size for a hands-on workshop :)
(03:02:49 PM) pitti: if anyone has any question, or I'm totally uncomprehensible (sorry for my English, I'm German), please do not hesitate to interrupt and ask *immediately*
(03:02:49 PM) artdeco left the room.
(03:03:07 PM) pitti: technical questions in #-chat, please
(03:03:11 PM) pitti: Also, don't bother trying to take notes, we'll sort that out at the end. You can fully concentrate on the discussion and examples.
(03:03:17 PM) pitti: Let's begin with a little bit of history:
(03:03:27 PM) pitti: <rohan> pitti: just before we start - is it specifically debian/ubuntu packages patching, or source package patching ?
(03:04:09 PM) pitti: ^ this seminar is very Debian/Ubuntu specific
(03:04:09 PM) pitti: I assume that you already know what a 'patch' is
(03:04:09 PM) pitti: and why you want to do one :)
(03:04:09 PM) pitti: == Why use separate patches in Debian/Ubuntu source packages ==
(03:04:19 PM) pitti: In earlier times, people just applied patches inline (i. e. directly in the source code tree). However, this makes it very hard to extract patches later to modify them, send them upstream, etc. Also this means that new upstream versions are a pain, since they generate a lot of rejections when applying the package diff.gz to them.
(03:04:52 PM) pitti: With split-out patches it is much easier to send them upstream, keep track of them, develop them, etc., since you always see which changes belong together.
(03:05:00 PM) pitti: The ideal state is an unmodified tarball from upstream, plus clean and separate patches, plus the packaging bits in debian/. That means that lsdiff <sourcepackage>.diff.gz only contains debian/.
(03:05:16 PM) asosa [n=asosa@c-71-57-42-171.hsd1.il.comcast.net] entered the room.
(03:05:21 PM) pitti: The first attempts to split-out patches were pretty trivial: storing patches in debian/patches/, and adding some patch/patch -R snippets to debian/rules. This worked for small patches, but provided no tools for editing these patches, updating them for new upstream versions, etc.
(03:05:27 PM) AlexExtreme [n=AlexExtr@frugalware/developer/AlexExtreme] entered the room.
(03:05:29 PM) robotangel [n=robo@xdsl-87-79-219-176.netcologne.de] entered the room.
(03:05:38 PM) tmske left the room (quit: Connection timed out).
(03:05:40 PM) pitti: Thus several standard patch systems were created which are easy to deploy and provide tools for patch juggling and editing.
(03:05:45 PM) chapular left the room (quit: Remote closed the connection).
(03:05:54 PM) pitti: What I would like to do now is to introduce the most common patch systems and show some hands-on demo how to add a new patch and how to edit one. For this, I will point at a source package from the current feisty archive, quickly explain the patch system, and show how to apply some (braindead) modifications to it. I recommend you to do the same steps in a terminal, so that you get a feeling for the process and can immediately ask questions.
(03:06:10 PM) pitti: everyone you fine with this approach?
(03:06:18 PM) pitti: erm, s/you/is/
(03:06:22 PM) MRjinxtoo left the room (quit: "Leaving").
(03:06:49 PM) habeeb: yes, sir.
(03:06:51 PM) ***shiyee nods
(03:06:52 PM) heikki: yep
(03:07:00 PM) cellojoe: o/
(03:07:07 PM) alienSkul1 left the room (quit: Read error: 104 (Connection reset by peer)).
(03:07:08 PM) pitti: btw, feel free to put answers to my questions directly here; that's easier to follow than in -chat
(03:07:14 PM) pitti: If you want to try the stuff yourself, please do the following commands (on feisty) as preparation:
(03:07:20 PM) pitti: sudo apt-get install dpatch cdbs quilt patchutils devscripts
(03:07:20 PM) pitti: apt-get source cron udev pmount gnome-volume-manager ed xterm
(03:07:20 PM) pitti: wget http://people.ubuntu.com/~pitti/scripts/dsrc-new-patch
(03:07:20 PM) pitti: chmod 755 dsrc-new-patch
(03:07:20 PM) pitti: I deliberately picked the smallest packages I could find
(03:07:21 PM) tiagoboldt_ [n=tiagobol@87-196-50-62.net.novis.pt] entered the room.
(03:07:32 PM) rpw left the room ("Kopete 0.12.4 : http://kopete.kde.org").
(03:07:36 PM) ***pitti waits a bit for people to do the preparations; any questions so far?
(03:07:42 PM) jmoore [n=chatzill@66-224-211-218.atgi.net] entered the room.
(03:07:48 PM) habeeb: pitti: let's say that we use Gentoo. Can we try it?
(03:08:02 PM) rohan: habeeb: no, read the question to my answer :)
(03:08:06 PM) thekorn left the room (quit: Read error: 104 (Connection reset by peer)).
(03:08:11 PM) habeeb: sorry.
(03:08:13 PM) jmoore: hey everyone! You guys liking Open Week?
(03:08:21 PM) jjesse left the room ("Konversation terminated!").
(03:08:21 PM) rohan: jmoore: rocking ! :)
(03:08:28 PM) luca_b [n=Luca@213-140-6-122.ip.fastwebnet.it] entered the room.
(03:08:29 PM) pitti: habeeb: sorry, as I said this stuff only applies to packaging Debian-style source packages
(03:08:51 PM) pitti: please someone give me a ping when you are finished with above preparations
(03:08:51 PM) habeeb: pitti: ok, sorry. move on, please.
(03:08:57 PM) jmoore is now known as the
(03:09:02 PM) Xk2c left the room (quit: "sudo umount /dev/Xk2c").
(03:09:19 PM) heikki: i'm ready
(03:09:23 PM) scresawn: ready
(03:09:25 PM) the: So the next class is at 3pm
(03:09:26 PM) shiyee: done
....
}

Ubuntu Open week - Patching Packages - Martin Pitt - Tue, Apr 24, 2007

see also [:MeetingLogs/openweekfeisty/patching2:Thursday Session].

MeetingLogs/openweekfeisty/patching (last edited 2008-08-06 16:21:42 by localhost)