KarmicKDEMerges

KDE merges for Karmic

package

assignee

Merged?

Uploaded?

Diff sent to Debian?

Patches sent to upstream?

pkg-kde-tools

JonathanRiddell

yes

yes

rosetta only

---

cmake

JontheEchidna

bug 368633

yes

---

---

qt4

JontheEchidna

bug 369329

yes

---

qt3

---

up-to-date

---

---

---

kdelibs (KDE 3)

JonathanRiddell

build issues

---

phonon

JontheEchidna

bug 366490

yes

kubuntu-specific

---

automoc

JontheEchidna

bug 368628

yes

---

---

akonadi

JontheEchidna

bug 367109

yes

kubuntu-specific

---

soprano

---

up-to-date

---

---

---

libs

JonathanRiddell

yes

yes

yes

pimlibs

JonathanRiddell

yes

yes

base

JonathanRiddell

yes

yes

yes

base-workspace

JonathanRiddell

yes

yes

yes

base-runtime

JonathanRiddell

yes

yes

yes

accessibility

JontheEchidna

yes

yes

yes

admin

mcasadevall

yes

yes

kubuntu-specific

N/A

artwork

JonathanRiddell

yes

yes

bindings

JonathanRiddell

having build issues

edu

RichardJohnson

yes

yes

yes

N/A

games

RichardJohnson

yes

yes

N/A

N/A

graphics

JontheEchidna

yes

yes

kubuntu-specific

N/A

multimedia

RichardJohnson

yes

yes

N/A

N/A

network

RichardJohnson

yes

yes

N/A

N/A

pim

JontheEchidna

yes

yes

yes

plasma-addons

JontheEchidna

yes

yes

kubuntu-specific

N/A

sdk

JontheEchidna

yes

yes

kubuntu-specific

N/A

toys

JontheEchidna

yes

yes

kubuntu-specific

N/A

utils

Lex79

bug 373912

yes

kubuntu-specific

webdev

JonathanRiddell

yes

yes

kubuntu-specific

An example Merge Process

See this link for an example merge.

For the current merge, we are taking the KDE packages from Karmic (currently KDE 4.2.2) and comparing them against the Debian KDE packages. We always merge back to Debian at the beginning of the development cycle for the new release (i.e. Karmic in this case).

The above table is for tracking our work. Please edit the table and pick a package to work on by placing your name in the correct column. That way we do not duplicate effort.

The Karmic packages are located here (replace PACKAGE with the relevant package you wish to retrieve the source files for):

e.g.)

The debian packages all come from sid (replace PACKAGE with the relevant package you wish to retrieve the source files for):

e.g.)

Make a directory with lots of space to develop in. You need enough to download the source code and extract it. A few GB would be handy. I have mine setup as /opt/pbuilder, but you could easily choose something different.

In that directory, do the following (replace PACKAGE with the relevant package you wish to merge):

  • mkdir PACKAGE; cd PACKAGE; mkdir current new sid

There are 3 files to retrieve for both URL's:

  1. PACKAGE_x.x.x.dsc
  2. PACKAGE_x.x.x.orig.tar.gz
  3. PACKAGE_x.x.x.diff.gz

Download the Karmic files to the directory named current and copy them to new. Current is our baseline for Karmic. We will merge changes into the new directory.

Next download the Debian files from sid (Debian Unstable). Unstable is the Debian baseline.

Now, do the following:

  • for i in current new sid; do
    • cd $i; dpkg-source -x *dsc; cd -
    done

You can type the above into your bash shell, or manually execute the dpkg-source -x *dsc from within each of the 3 directories. This will extract the source files and apply the diff.

Now it becomes more manual and tricky.

Let's do the easy bit first. Let's use debdiff to create a diff between our current and the Debian sid:

  • debdiff current/*.dsc sid/*.dsc > current-to-debian.debdiff

We'll upload this file later to a bug report in launchpad. We'll also use it to look for differences in the two packages. We want to introduce new changes and fixes from Debian, but not remove anything we have done in our version. For example, we do not use the cdbs directory in debian/cdbs. We have a system kde4.mk and that handles the cdbs part. So, in the above diff, you will see this, but we shouldn't add this back in. Read though the diff and examine the changes. Make notes on things we should add to our package. The other thing you should do is look at the changelog entries in the diff to see what the last couple of entries are as to any hint on what we should merge in from debian sid.

After you made some notes, we need to merge the sid/PACKAGE-x.x.x/debian/changelog with our new/PACKAGE-x.x.x/debian/changelog. To merge the changelog, I look at new/PACKAGE-x.x.x/debian/changelog and search for the last merge entry. Make note of the package version prior to that entry, as we will search for that in the sid changelog. We only need to grab the changes newer than that merge from the sid changelog and insert them into the new changelog (merge them in by hand and keep them in order according to version/date).

NOTE: your changes should only ever go i the new/PACKAGE-x.x.x/debian directory. There should never be a need to change anything outside of that for the merge.

Next, using the notes you made earlier, resolve any differences between the ubuntu and debian packages making changes in the new/PACKAGE-x.x.x/debian directory as required. Once you have made the changes, you need to add your own changelog entry. From within the new/PACKAGE-x.x.x directory, do this:

  • dch -i

For this entry, you should start with ' * Merge with Debian'. Then add in all changes you noted and added from Debian. You should also note any other things which are different in ours with a ' * Ubuntu differences' entry. As well, make a note about merging the changelog with debian and that the MD5SUM has changed.

NOTE: When doing your changelog via dch -i, remember to change jaunty to Karmic (OTHERWISE THINGS WILL GET MESSED UP). This is at the top of the changelog entry.

Next you need to build the source package.

  • debuild -S -sa

This is the package that contains your changes. You should also use pbuilder to test your changes and that it actually will make the debs (which can fail if you mess up the .install files during the merge). So, you should check this.

Once you are happy with the build, then you can diff between current/new and sid/new shown below:

  • debdiff current/*.dsc new/*.dsc > current-to-merged.debdiff

    debdiff sid/*.dsc new/*.dsc > debian-to-merged.debdiff

NOTE: In the new directory, you now have 2 .dsc files, so the *.dsc will fail with debdiff. you need to specify the actual filename.

Ok, once you have the three of these generated, you need to open a new bug in launchpad. Use this one as an example if you like: https://launchpad.net/bugs/294780

Once you open a bug (make sure you mark is against the PACKAGE you are merging), come back to the #kubuntu-devel channel and let us know. Someone will help review it, and if it is good, they will upload it. Make sure you go back to the wiki and update you entry with the bug report info.

Kubuntu/KarmicKDEMerges (last edited 2009-05-12 23:05:29 by host-84-9-232-165)