[00:00] <nhandler> Please modify your copy of 01_kubuntu_fix_etc_sensors_conf.diff to match my patch.
[00:01] <Laney> QUESTION: Debian have bumped to libsensors4. Shouldn't we investigate this patch more closely as it looks tied to libsensors3?
[00:01] <nhandler> Laney: That is a very good point.
[00:02] <nhandler> If you look at the changelog, you will see that Richard Johnson (nixternal) was the one who made this change
[00:03] <nhandler> If you were doing this merge for real, you would want to talk to Richard as well as look at Launchpad Bug #194103 to verify that this change is still needed.
[00:03] <nhandler> I have already taken care of this, and the change is still needed.
[00:03] <nhandler> However, we need to modify the patch slightly to allow it to be applied to the modified file
[00:04] <nhandler> Did that answer your question?
[00:04] <Laney> I trust you ;)
[00:04] <Laney> (yes)
[00:04] <nhandler> Now that we know all of the changes we want are present, we need to document these changes in debian/changelog.
[00:04] <nhandler> Enter 'dch -e' to edit the changelog. You should see an entry that resembles this: http://paste.ubuntu.com/37315/
[00:05] <nhandler> If anyone gets any errors when they run that command, it is most likely because you do not have devscripts installed.
[00:06] <nhandler> There are a few things you should notice about the changelog entry. First, on the first line, it says 'intrepid'. This is because Ubuntu 8.10, Intrepid Ibex, is the current development release of Ubuntu. Second, the last line of the entry should have your name and email address.
[00:08] <nhandler> Before we can finish this changelog entry, we need to create a bug report on https://launchpad.net/. Somebody has already done this, and you can view the report here: https://bugs.launchpad.net/ubuntu/+source/ksensors/+bug/254660. Please refrain from uploading the patches you will produce in a little bit to this bug report. I will take care it so that we don't have everyone in this channel uploading their patch. However, you do want
[00:08] <nhandler> to copy the bug number, 254660, from the report.
[00:08] <nhandler> Now, go back to the changelog, and edit the line that says "* Merge from debian unstable, remaining changes:" to say "* Merge from debian unstable, remaining changes (LP: #254660):". The '(LP: #254660)' part will cause the bug to be marked as 'Fix Released' once the patch has been uploaded.
[00:09] <nhandler> We now need to document what Ubuntu changes we kept. These are the Ubuntu changes that have not been added upstream in Debian, but are still needed.
[00:10] <nhandler> We now need to document what Ubuntu changes we kept. These are the Ubuntu changes that have not been added upstream in Debian, but are still needed.
[00:10] <nhandler> The Ubuntu changes that you need to include are:
[00:10] <nhandler> Add quilt as a Build-Depends for patch management
[00:10] <nhandler> Modify debian/menu to install in kmenu/utilities instead of kmenu/system
[00:10] <nhandler> Add 01_kubuntu_fix_etc_sensors_conf.diff to have ksensors use /etc/sensors3.conf instead of sensors.conf
[00:10] <nhandler> Add dh_icons to debian/rules
[00:10] <nhandler> Update debian/rules for patch and unpatch
[00:13] <nhandler> Aside from the Ubuntu changes that we kept, we also introduced a brand new one.
[00:13] <nhandler> This change was the one from james_w that we added in debian/rules to allow us to build the package
[00:14] <nhandler> We need to make sure we add something like "admin/config.{sub,guess} are removed by libtool, copy them back to allow this package to be built again."
[00:14] <nhandler> Once you make these changes, please upload you changelog file to http://paste.ubuntu.com/, and paste a link in #ubuntu-classroom-chat.
[00:16] <nhandler> You can view my debian/changelog entry here: http://paste.ubuntu.com/37569/
[00:16] <nhandler> The only thing left to do now is generate the patch. First, we have to build the source package. To do this, type 'debuild -S'. If you don't have a GPG key, you can do 'debuild -S -us -uc'.
[00:21] <nhandler> This will create a file called ksensors_0.7.3-16ubuntu1.dsc. We now need to make sure that our new version of the package builds in a clean intrepid environment.
[00:22] <nhandler> I usually use pbuilder to do this. You can read https://wiki.ubuntu.com/PbuilderHowto to learn about creating an intrepid pbuilder chroot.
[00:22] <nhandler> If you already have an intrepid pbuilder chroot created, you can run this command to try and build our new version of ksensors:
[00:22] <nhandler> sudo pbuilder build ~/Merges/ksensors/ksensors_0.7.3-16ubuntu1.dsc
[00:25] <nhandler> Hopefully, james_w's fix should allow pbuilder to build the package without any errors
[00:26]  * james_w crosses his fingers
[00:26] <nhandler> If it builds successfully, you should end up with a .deb file for ksensors in /var/cache/pbuilder/result
[00:27] <nhandler> Once it finishes building, we have to generate 2 debdiff files. One will show the changes between the Debian version, 0.7.3-16, and this one, 0.7.3-16ubuntu1. The second one will show the changes between the last Ubuntu version, 0.7.3-15ubuntu2, and this one, 0.7.3-16ubuntu1. You can generate the Debian->Ubuntu debdiff by running this command from ~/Merges/ksensors:
[00:29] <nhandler> Well, it looks like the fix still didn't work. We are most likely missing a Build-Depends in debian/control. pbuilder produces this error "/bin/sh: ifneq: not found"
[00:30] <nhandler> We won't worry about this, and we will assume that it built successfully.
[00:30] <nhandler> The command to generate the Debian->Ubuntu debdiff is:
[00:30] <nhandler> debdiff ksensors_0.7.3-16.dsc ksensors_0.7.3-16ubuntu1.dsc > ksensors_0.7.3-16ubuntu1.debdiff
[00:31] <nhandler> This is where many people accidentally make mistakes when performing a merge. They simply attach the debdiff to the bug report without even looking at it. You should ALWAYS open up the debdiff, and verify that it only contains the changes you want. For the Debian->Ubuntu debdiff, all of the changes you see should be listed in debian/changelog.
[00:32] <james_w> nhandler: the "ifneq" line shouldn't be indented
[00:34] <nhandler> james_w: It must have gotten indented when I was copying and pasting. I'm rebuilding it now
[00:34] <nhandler> Back to the lesson, after verifying that the debdiff had the correct changes, you would then attach that patch to the bug report that we made earlier.
[00:35] <nhandler> You can generate the Ubuntu->Ubuntu debdiff by running this command from ~/Merges/ksensors:
[00:35] <nhandler> debdiff ksensors_0.7.3-15ubuntu2.dsc ksensors_0.7.3-16ubuntu1.dsc > ksensors_0.7.3-16ubuntu1.debdiff
[00:35] <nhandler> You might be wondering why we have to generate an Ubuntu->Ubuntu debdiff. The reason for this is because in some instances, the Ubuntu->Ubuntu debdiff is smaller than the Debian->Ubuntu debdiff. This makes it easier to check for mistakes, and then sponsor. This usually happens when the most recent Ubuntu batch of changes was very large, and the most recent Debian version introduced very little changes.
[00:37] <nhandler> After verifying that the Ubuntu->Ubuntu debdff only contains the changes you want, you would then attach that patch to the bug report as well.
[00:37] <nhandler> This step isn't required, but it is still a good thing to do. You should add a comment in the bug report on Launchpad, that contains the debian/changelog entry that we made. This allows a person who is reviewing the merge to quickly figure out what Ubuntu changes were kept in the merge.
[00:38] <nhandler> The last step is to add our bug to the sponsorship queue (https://wiki.ubuntu.com/MOTU/Sponsorship/SponsorsQueue). Once it is in the queue, a MOTU will review our patch. If it is acceptable, he/she will upload it.
[00:39] <nhandler> To add our bug to the queue, set the Status to 'Confirmed', and make sure it isn't assigned to anybody. Now, we need to subscribe, not assign, 'ubuntu-universe-sponsors' to the bug since the package is in Universe. If it had been in main or restricted, we would subscribe 'ubuntu-main-sponsors' instead.
[00:39] <nhandler> After you have done that, I would suggest adding a comment on DaD that says 'Bug #254660'. This makes it easier for other people to quickly figure out what packages still need to be merged/synced.
[00:40] <nhandler> Now, you are done with the merge!
[00:41] <nhandler> At this point, I would like to apologize. This lesson did not go nearly as smooth as I originally intended.
[00:41] <nhandler> I still hope that at least some of you learned something from listening to it.
[00:42] <medo_> thanks a lot it was really helpfull and enjoyable
[00:42] <nhandler> I gave a similar lecture a while ago. You can find the IRC log on my wiki. Feel free to read through it if you are interested. https://wiki.ubuntu.com/Cheater7/Lectures/Merges_080613.
[00:43] <nhandler> Does anyone have any questions?
[00:44] <medo_> Nop
[00:44] <nhandler> If you have any interest at all in merging packages. Please feel free to ask me for help.
[00:46] <nhandler> Well, if nobody has any more questions, I guess the lesson on merging packages from Debian is over.
[00:48] <james_w> thanks a lot nhandler
[00:48] <james_w> I'll post logs shortly or tomorrow morning
[00:53] <nhandler> That is fine james_w.
[20:23] <Traveler7> irc?