Skip to content

Instantly share code, notes, and snippets.

@guw
Last active February 19, 2021 19:10
Show Gist options
  • Save guw/30bc8b14756e364c3d158fababbbd62d to your computer and use it in GitHub Desktop.
Save guw/30bc8b14756e364c3d158fababbbd62d to your computer and use it in GitHub Desktop.
Re-building webkit2gtk package on Ubuntu for Eclipse

Rebuilding webkit2gtk on Ubuntu for Eclipse

The webkitgtk library is used by Eclipse's SWT GTK port for showing formatted content such as in Content Assist. We have been experiencing frequent lock ups of Eclipse when using Content Assist on Ubuntu. It turns out the issue is with customization of the library on Ubuntu.

The following is a set of notes how I re-built the package and uploaded it to my PPA.

Setup Dev/Build Environment

Links

  1. Install essential packages and tools
sudo apt install gnupg pbuilder ubuntu-dev-tools apt-file
  1. Setup Launchpad Account and GPG key

In order to work with PPA you need to have an account on https://launchpad.net/. You also need a PGP key for signing. The key must be uploaded to Launchpad. The article linked above contains all the essential steps.

You can use Keybase to manage your keys across computers.

I ran into an issue with importing the secret key with GPG (while pipeing from keybase to gpg). A simple export GPG_TTY=$(tty) fixed it for me.

  1. Update .bashrc with the exports as mentioned in the article.

Get the source and prepare it

Links

Do the following steps in an empty directoy for convenience.

cd ~
mkdir webkitgtk
cd webkitgtk
apt-get source webkit2gtk     # no sudo!

When this is complete, the directory should contain three files and a sub directory. The specific version numbers maybe different.

webkit2gtk-2.30.5
webkit2gtk_2.30.5-0ubuntu0.20.04.1.debian.tar.xz
webkit2gtk_2.30.5-0ubuntu0.20.04.1.dsc
webkit2gtk_2.30.5.orig.tar.xz

Change into the directory of processing operations.

$ cd webkit2gtk-2.30.5

$ pwd
/home/username/webkitgtk/webkit2gtk-2.30.5

Next we have to revert the Debian/Ubuntu patches (this requires the quilt utility)

$ quilt pop -a
Removing patch debian/patches/...
...

No patches applied

Once this is done open debian/patches/series in an editor and remove the line prefer-pthread.patch. Then re-apply the patches.

$ quilt push -a
Applying patch debian/patches/...
...

Now at patch ...   # this should match the last line from series file

Next we need to update the version and generate an entry in the changelog.

debchange -i

This command increases the version. You need to change a few things.

webkit2gtk (2.30.5-0ubuntu0.20.04.2) UNRELEASED; urgency=medium

  * <cursor>
 
 -- Your Name <email>  Fri, 19 Feb 2021 12:00:00 +0100
 
 webkit2gtk (2.30.5-0ubuntu0.20.04.1) focal-security; urgency=medium

  * ...
  1. Replace UNRELEASED with focal (or whatever Ubuntu distribution codename this is intended for).
  2. Revert the version 2.30.5-0ubuntu0.20.04.2 to the same as the previsou entry (2.30.5-0ubuntu0.20.04.1) and append ppa1 (full version should be 2.30.5-0ubuntu0.20.04.1ppa1). This is a best practise as explained in https://help.launchpad.net/Packaging/PPA/BuildingASourcePackage

We are now ready to build the new source package

Build source package and upload it

Links

After the package was updated build it with this single command.

debuild -S -sd

This creates a changes file which we'll upload to PPA.

dput ppa:your-username/your-ppa ../webkit2gtk_2.30.5-0ubuntu0.20.04.1ppa1_source.changes

Now sit back and wait while PPA is building your package. This can be checked online on the page of your PPA.

For Eclipse and Ubuntu 20.04 please don't hesitate and use my PPA: https://launchpad.net/~g-u-w/+archive/ubuntu/ubuntu20

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment