Home Home > Packaging
Sign up | Login

Archive for the ‘Packaging’ Category

Some updates on the Banshee repositories…

May 31st, 2011 by

Sometime ago Gabriel asked me if I could give him help with the Banshee repositories for openSUSE; This repositories have many users hanging around and some packages are enabled on other projects, which makes them somehow sensible to deep changes.

Today I’ve pushed to openSUSE:Factory Banshee 2.0.1 (latest stable release) and a few packages which live in the Banshee repository. I’ve also submitted a deletion request to ipod-sharp which is no longer maintained and was replaced in the past for libgpod.

I’ve fixed the pending issues I’ve seen on the Banshee repository and Banshee 2.0.1 and disabled SLE 11 builds (not requiring all the dependencies). The repository serves now the following platforms (banshee and banshee-community-extensions):
* SLE 11 SP1;
* openSUSE 11.3;
* openSUSE 11.4;
* openSUSE Factory;
* openSUSE Tumbleweed (new).

On Banshee:Unstable (which should hold the unstable releases, currently 2.1.0) I’ll be introducing some changes during the next days which will feature:
* Package being renamed to ‘banshee’, thus dropping the current banshee-1;
* Migration to pkgconfig() calls for >= 1130;
* Packages banshee and banshee-core get merged into banshee (currently banshee had only 4 documentation files);
*  New sub-package banshee-common to hold all the architecture independent files (ex: text files, icons, etc);
* A few cleanups on the spec file for unsupported platforms (SLE11 and SLE11SP1 do not meet the requirements for this version and superior).

Once this is implemented and tested I will look into Banshee:Alpha and see the best way to start building daily/weekly snapshots using the OBS magic available and some magic tricks hidden in Dimstar’s sleeve which kindly accepted my request to give me a hand on such evil task.

In the future, on the next stable release (2.2.0), I’ll move the changes from Banshee:Unstable to Banshee and hopefully change the development repository to Banshee (as if Factory has the latest stable release it makes no sense in having Banshee’s development repository in Banshee:Unstable) and synch all at once.

Users subscribed to Banshee:Unstable repository might see some turbulence during the next days, while users subscribing now through the 1-Click installer will already be installing Banshee with the changes described above.

Gpick – An advanced color picker…

May 5th, 2011 by

It was brought to my attention through I article (german) the existence of gpick, an advanced and high featured color picker. I’ve taken a quick look at it to make it available for openSUSE as it seems an interesting tool for artists and web designers (maybe GTK3+ themers) and others.

To build this package a few files are generated with the Lemon Parser Generator which isn’t really available. I’m contacting upstream regarding the possibility of including the generated files in the tarball, or eventually if that fails, I’ll probably need to include lemon.c, hand compile it and hack scons build to use the local binary to generate those files.

The screenshots have a tiny glitch on an icon, this is mainly because I haven’t rebuilt the icon cache when I took them. I look forward to explore the possibility of having such a great tool available for openSUSE 12.1.

UPDATE: I’ve made available a small test package on home:ketheriel:gpick (needs some work before submitting to factory) which should be working. Any testing/feedback will be most welcomed. Also enabled builds for Fedora 14, since I believe this package isn’t available for Fedora.

subversion with libserf

April 26th, 2011 by

I packaged subversion to built against libserf in addition to neon. This adds a second repository access module to handle http and https schemes with potential improvements. To enable, install the packages from my home repository See updated package location.

To enable, adjust your ~/.subversion/servers file:


[global]
http-library = serf

Beyond this, the package tracks the package from devel:tools:scm:svn.

The ‘DreamChess’ incident!

April 25th, 2011 by

Today I was reading the openSUSE forums and found an interesting thread on the ‘Games’ section, from which I quote:

I remember playing DreamChess on Ubuntu, but the one is not available for Suse 11.4 KDE.

I’ve taken a look around, gathered the stuff required and made a quick package of this game, thus pushing it forward to the games repository. Within a few minutes of the submission, the package was approved and it’s ready to be served to the masses.

We can’t leave transitioning users from Ubuntu unhappy can we ?! Once more thanks to Dimstar and Prusnak for the quick answer in getting this package into the games repository.

DreamChess 0.2.0 on openSUSE 11.4 with GNOME3

Calibre Repository Moved

April 15th, 2011 by

Maybe not everybody knows it or it may be a bit too late, but nevertheless… the Calibre repository on home:thomas-schraitle:calibre has been moved to Documentation:Tools. It was necessary due to some internal reorganisation. The new location is now the official devel project.

Have fun! :-)

osc plugin – changes

March 23rd, 2011 by

OSC is a powerful tool for packaging experts, exposing all the latest and greats features of the Build Service. It’s written on python and easy in studying and using. However there are situations when its functionality is not enough; sometimes we need something special. In this case to us will help plug-in mechanism, which in osc is realised very simply.
Plugin can use all of the features, which already implemented osc, as well as provide an output in a convenient format for you. For example, if I want to check changes in kdelibs4 between openSUSE:11.3 and openSUSE:11.4, I can do something like this:

> osc rdiff openSUSE:11.3 kdelibs4 openSUSE:Factory kdelibs4

After that I will receive a detailed output about all changes. Yes, that’s great… but not always it’s convenient. For example, in this case output will contain more than 2000 strings, and I need time to find, say, a *.changes file if I want quickly to understand that has been changed. In case if I want to transfer output to processing to another program (as often happens in practice), I have to shape this data. Unfortunately osc is not as intelligent and can’t show changes from one file (from *.changes, for example) only…

Hello world

Let’s me show how we can create a very simple osc-plugin. In the derectory /var/lib/osc-plugins/ we create a new file tell_me_something.py with such content:

@cmdln.alias('say')
def do_say_something(self, subcmd, opts, *args):
    if sys.argv[2] == "something":
        print "openSUSE rulezzz"
    else:
        print sys.argv[2]

At start, osc will check this directory and will register all found there plugins. In that case, if in the plugin’s content there are errors, osc will report about it immediately. If now we run

> osc help

we will see in the list our function say_something and the key to start it – say. Let’s test:

> osc say "hello"
hello
> osc say GNU/Linux
GNU/Linux
> osc say something
openSUSE rulezzz
>

As you can see, it’s very easy – just python and nothing else. Let’s go back to the output of the function rdiff(), which we mentioned at the beginning.

show me changes

In output of rdiff() nothing wrong, but I would like to immediately get information about what exactly has been done and, for example, which bugzilla-reports (related to this package) have been closed, etc. All what I need, are in rdiff’s output. It means that all what I have to do is just to shape this output.

In 40 minutes of hacking I got such output:

> osc changes kdelibs4 openSUSE:11.3 openSUSE:11.4
PACKAGE: kdelibs4
BUGZILLA_NOVELL: 668185, 670426, 644236, 596021
BUGZILLA_OTHER: 246652, 170806, 149991, 221989, 252280, 253387, 253294, 193364, 253414
CHANGES:

- work around random error on first startup, bnc#668185,
  kubuntu has a similiar patch applied
- call update-mime-database in pre/post install scripts
- don't show synthetic volume label when none is really available,
  allow kio_sysinfo to fall back to device path (bnc#670426)
- update to KDE Platform 4.6.0
  * Plasma applets can be written in QML
  * Plasma data engines can be written in Javascript
  * Plasma data engines can use generic cache for offline mode
  * udev, udisks, upower replace HAL in Solid
  * For more details, see http://kde.org/announcements/4.6
- add patch from 4.6 branch to fix plasma crash on exit
- Add dependencies on udisks and upower for 11.3 and up for Solid
- update to 4.5.95
  * KDE 4.6 RC2
  * no upstream changelog available.
- update to 4.5.90
  * KDE 4.6 RC1
  * no upstream changelog available.
- For 11.2 and 11.3 only : Will build now with polkit-qt-1
  v 0.99.1, which is an official requirement of KDE 4.6
- update to 4.5.85
  * KDE 4.6 Beta2
  * Final Beta before RC, various fixes from Beta1
  * no upstream changelog available.
- For 11.2 and 11.3 only : Added patch to revert changes that
  requires a higher version of polkit-qt-1
- update to 4.5.80
  * KDE 4.6 Beta1
  * no upstream changelog available.
-  Closing the shell via CTRL+D crashes [bko#246652]
- fix build with gcc 4.6
- tighten qt4 dependencies
- update to 4.5.3
  * see http://kde.org/announcements/changelogs/changelog4_5_2to4_5_3.php for details
- update branch diff for various bugs in 4.5:
  * Crash on configure toolbars (bko#170806)
  * KCookieJar can't read cookies from another port (bko#149991)
  * Fix oversized number input widgets (bko#221989)
  * CSS conformance issue (bko#252280)
  * Fix helper protocols such as mailto: and telnet:
  * Plasma crash on comic applet switch (bko#253387)
  * HTTPS urls in KMail do not open properly in browser (bko#253294)
  * Mailto: links in FireFox started by kmailservice fail (bnc#644236)
  * Crash in directory listings when toggling
    show hidden files flag (bko#193364)
- Upstream patch added for kmail issue (bko#253414)
- update to 4.5.2
  * see http://kde.org/announcements/changelogs/changelog4_5_1to4_5_2.php for details
- build apidocs separately to reduce build time
- BuildRequire utempter-devel
- update to 4.5.1
  * see http://kde.org/announcements/changelogs/changelog4_5_0to4_5_1.php for details
- new package: kdelibs4-apidocs (bnc#596021)
- update to 4.5.0
  * KDE 4.5.0 final (version bump over RC3)
- update to 4.4.95
  * KDE 4.5 RC3 (not announced)
  * critical fixes for 4.5.0 release
- Add libsoprano-devel Require to libkde4-devel
- update to 4.4.93svn1149349
- update to 4.4.5
  * bugfixes over 4.4.4
  * see http://kde.org/announcements/changelogs/changelog4_4_4to4_4_5.php for details

and between 11.4 and factory:

> osc changes kdelibs4 openSUSE:11.4 openSUSE:Factory
PACKAGE: kdelibs4
CHANGES:

- update to 4.6.1
  * Bugfixes over KDE 4.6.0
  *  see http://kde.org/announcements/changelogs/changelog4_6_0to4_6_1.php for details
- remove upstreamed patches

aha… and what’s about vim between 11.2 and 11.3?

> osc changes vim openSUSE:11.2 openSUSE:11.3
PACKAGE: vim
BUGZILLA_NOVELL: 598903
CHANGES:

- Add screen control sequences to inputrc (bnc#598903)
- Use the icon from the tarball instead of our custom icon. It
  looks much better.
- Drop gvim.png from the source package.
- build data subpackage as noarch
- updated patches to apply with fuzz=0

Now we can see exactly what was has been done and which bugzilla-reports was fixed/closed. Yes, we have bnc# and bko# reports: reports from bugzilla.novell.com and bugs.kde.org (it cut be also bugs.kernel.org). Second group will be always different (KDE/Gnome/Mozilla/Kernel…).

Source code of plugin is here, and I hope this post will be useful for you if you’ve never written a plugin before.

license implications when packaging TrueCrypt

March 6th, 2011 by

I use an encrypted USB stick to carry credentials and data for production servers I look after when I’m on call. One requirement was portability between my work (Windows) and home (GNU/Linux) desktops, so TrueCrypt came to mind. I packaged it all up an applied some patches to fix compiler issues and warnings. The TrueCrypt license, however, is not OSI-approved, and as such the program cannot be built in the openSUSE build service (see blacklist, discussion).

I almost forgot about the whole thing until I upgraded the package for new dependencies in the upcoming release of openSUSE 11.4. I talked with people over at packman, a popular 3rd-party repository for software not included in openSUSE proper for one reason or another. We analysed the license a bit and concluded that if we shipped binaries built from non-pristine sources, the product would have to be re-branded as per the requirements of their license. I am usually pragmatic about these things as long as FLOSS and non-FLOSS licences can be adhered to, but didn’t want to go the route Debian took with Firefox et al.

We contacted the TrueCrypt developers on this issue, we’ll see what comes out of that. Until then, if someone wants to build this package, here is what you need:

truecrypt.spec
truecrypt.desktop
truecrypt-tc_token_err.patch
truecrypt-NULL_PTR-redefinition-warning.patch
truecrypt-undefined-operation-warning.patch

Unity on openSUSE: UPDATE

January 30th, 2011 by

Unity works as a plugin for Compiz using the glib mainloop. Currently the development version of Compiz available in OBS X11:Compiz already provides this requirement (glib mainloop) as a plugin. This version and two git snapshots I’ve builded were crashing heavilly, so I’ve decided to take  a closer look into Ubuntu’s packages and build from their sources on my devel project. This has proven wise as their snapshots (2010-11-25) with their patches removed the crashes on compiz.

The patches applied include the new unity-window-decorator which works fine. Here’s a small screenshot of GNOME’s System Monitor using Unity’s window decorator (which relies on a patch on metacity to enable UX Shadows).

The theme for this screenshot is Ambiance (also from Ubuntu) with a changed color scheme. This shot was taken on M6 with the newest FireGL drivers from ATI. I’ve noticed some changes on the blur effects on this driver, but I really can’t develop much.

I haven’t seen crashes on individual components when I test them (ex: unity-panel-service and unity-window-decorator), which seems to be a good pointer.

Currently I’m working out in porting the Unity wrapper and some scripts from Ubuntu to the reality on openSUSE as many files seem to be distributed on the filesystem in very different places. Just to name an example… compiz on openSUSE currently stores it’s profiles and stuff on $HOME/.config/compiz-1, and Unity is searching those files on $HOME/.compiz-1, and as such, fails to find them. This is where I’m currently placing my efforts. This should fix soon the ‘unity’ wrapper.

To make this short… Compiz isn’t crashing anymore or seg faulting, and Unity is picking up the information required from different file locations on the file system. Once fixed, we should have a running Unity for BETA soon.

My very special thanks to Malcolm Lewis for making the integration of Unity with Compiz possible in a very nice way and for fixing many bugs that allowed us to successfully build this packages.

As soon as we have more developments, those will be posted.

New Package for packager: whohas

November 16th, 2010 by

Sometimes a packager asked himself, who has already packaged this Software? Maybe the Packagingfiles can help me to fix a error? Or maybe an other packager has a written a patch that i can use for my situation?
Philipp L. Wesche knows this situation, and he wrote a program, that allows to view in other Distributions and Repositories, who has a specific Software packaged. The commandline tool “whohas” supports Arch, Debian, Fedora, Gentoo, Mandriva, openSUSE, Slackware, linuxpackages.net, Source Mage, Ubuntu, FreeBSD, NetBSD, OpenBSD, Fink, MacPorts and Cygwin. Philipp wrote this tool in Perl and was designed to help package maintainers find ebuilds, pkgbuilds and similar package definitions to learn from.

The Tutorial from the Autor can found at: http://www.philippwesche.org/200811/whohas/intro.html

You can download this tool on: http://download.opensuse.org/repositories/openSUSE:/Factory:/Contrib

OBS 2.1: Status of SuperH (sh4) support with QEMU

October 24th, 2010 by

With established ARM support in OBS the as well as emulated MIPS and PowerPC is getting more mature, the last big embedded architecture not working in OBS with QEMU user mode was SH4. QEMU developers community had done a lot of work in improving QEMU user mode during the last months, so I can proudly present with currently only a few patches to QEMU git master OBS builds working with the SH4 port of Debian Sid. The new QEMU 0.13 released recently is a big milestone for this.

Another news is that I had fixed the bugs in Virtual Machine builds (build script) when using them with some architectures like PowerPC 32bit and SH4. So now also the combination of using for example KVM (XEN should also work) in a worker together with ARM, MIPS, PowerPC and SH4 is working. The appropriate fixes are in one of the next build script releases (if not even released already now with OBS 2.1, I have to check that). You can select architecture “sh4″ with OBS 2.1 and also start a scheduler with “sh4″.

With the use of the QEMU User Mode, you can build also accelerated native cross toolchains for your host architecture so time critical parts like the compiler can run without the emulator. This works with .deb as well as with .rpm based backages. The MeeGo Project as well as the openSUSE Port to ARM uses this technique to provide an optimum between compatibility and performance. It means you can mix natively build packages and use cross toolchains on it. The “CBinstall:” feature helps you to use native or cross builds automatically depending on if your build host is a native machine or a x86 machine with cross build. In summary, we have the current classics of linux embedded archs together now in OBS: ARM, x86, MIPS 32, PowerPC 32 and SH4.

I have uploaded the fixed QEMU package to the OBS project openSUSE:Tools:Unstable inside the package “qemu-devel” after some more testing. I have of course also a OBS meta prjconf file working with Debian Sid. The SH4 port of Debian Sid you can find at Debian Ports Site.

And last but not least I would like to thank Riku Voipio of the Debian Project, QEMU project and MeeGo project and other major contributors during the QEMU 0.13 development cycle for the restless work on QEMU user mode improvements. In case of KVM, QEMU is used even twice, with QEMU-KVM as well as QEMU User Mode. I am sure I had forgotten other important people, so thanks to them also.