February 09, 2008

openSUSE presentations

While thinking about content for my talk at FOSDEM I was reminded that I never uploaded the slides for the talks I did at my local GNU Linux user group . I have now uploaded the slides, and they are also available here:

Also check out some of the other interesting talks that members of WUGLUG have given this year.

The description for my FOSDEM talk is at http://fosdem.org/2008/schedule/events/opensuse_one_click_install . If anyone has anything in particular they would like me to cover then please let me know.

February 05, 2008

openSUSE & desktop environment choice.

One of the strengths of openSUSE is that configuration tools written using the YaST platform do not have to be re-written to fit within a different desktop environment. For example here is the same printer configuration dialogue being drawn using the Qt/GTK and ncurses user interface toolkits.

If this configuration tool had been written as a KDE application it would appear out of place on GNOME, and if it were written as a GNOME application it would appear out of place in KDE.

The user interface for the One Click Install handler was implemented using YaST, which meant that GNOME users could benefit from it without having to depend on a KDE application KDE , GNOME . In other distributions new features may be focused on one particular desktop, and users of another desktop, may be left to wait until someone ports the features.

It also helps to allow the desktop teams to focus on working on KDE or GNOME rather than only writing and fixing configuration tools.

While this is a great strength, it is perhaps simultaneously a great weakness. Most other distributions which are targetted at end users have a default desktop environment, for example:

  • Ubuntu: GNOME
  • Debian: GNOME
  • Red Hat: GNOME
  • Mandriva: KDE
  • Freespire: KDE

etc.. (no need to list them all)

This is all very sensible, quite apart from allowing them to focus their development resource, it also allows them to market the distribution as a complete product. Take the main product description page for ubuntu for example , they are able to give a flavour of what the product looks and feels like because they recognise that the desktop environment is part of the product, perhaps the most important part. It also means users can install from an ubuntu install cd without having to understand what a desktop environment is. It also allows them to arrange deals to install the product on OEM machines.

Historically SUSE Linux was much the same as these others, the default desktop environment was KDE, there were personal and professional boxed sets of the SUSE Linux operating system. There was also an enterprise version SLD . SUSE Linux built up a significant userbase, primarily of KDE users. Even now, as of last count there are 70% KDE users vs 20% GNOME . These historical users being the most experienced, are perhaps the most likely to get involved with openSUSE development.

Since the Novell purchase of SUSE political pressures, presumably partly from ex-ximian people, led to the switch of the enterprise desktop product to GNOME as the default desktop environment. The thinking, apparently, was that SUSE’s niche as a great KDE based OS was insufficient and there was a better chance competing against Red Hat directly by copying exactly what Red Hat were doing.

After this the openSUSE default desktop was also changed, but not to GNOME, instead to have no default at all. Instead, users are now presented with a confusing step during installation , during which they have to choose which desktop environment they wish to use (Or an equally confusing download page if using 1cd install) . This is an impossible choice to make for someone who does not know what a desktop environment is, and the politically correct descriptive text does nothing to help. (Efforts have been made to improve the descriptions of the desktop environments shown during installation, and to show previews of each desktop, but these do not really solve any problems, only slightly alleviates them.)

This has the following implications:

  • The potential userbase is limited to those few who know what a “desktop environment” is.

Others won’t even get over the installation hurdle.

  • Reviewers assume the de-facto default desktop environment is GNOME.

As it is the default for the enterprise version, and also listed first. Consequently the poor quality GNOME desktop leads to bad reviews.

  • openSUSE can’t be marketed as a product, just a collection of packages and choices.
  • openSUSE can’t be installed on OEM systems without someone picking a desktop or forcing choice on users at first boot.
  • openSUSE is relegated from being a product to simply a playground for testing packages.

Quotes from the GNOME team such as “If you want a stable system, there’s SLED”, in addition to frequently broken GNOME packages in openSUSE releases would seem to support this view. SLED is the only remaining desktop product.

  • openSUSE quality decreases, can only be used by those who can fix the problems themselves.
  • Novell have more to develop and support as openSUSE and SLE diverge.

Many desktop features were added first to SLED10, and then moved to openSUSE. Development ends up having to be done twice, once on the enterprise products, and then on openSUSE. The more the codebases diverge the more work there is to support security & bugfix updates on both openSUSE and SLE products.

  • Only people who are interested in developing a distribution aimed at a geek niche will contribute to openSUSE.

None of which is good for the future of SUSE.

In my not-so humble opinion this situation is untenable, yet I can’t forsee any change. The de-facto SUSE Linux / openSUSE desktop has always been KDE by the user and developer base. Choosing GNOME would mean a loss of users/contributors as staunch KDE advocates move on. It possibly also means attracting few users as other distributors such as Red Hat/Fedora and Debian or Ubuntu already do much better jobs of shipping a GNOME desktop. Going back to KDE is unlikely to happen due to internal Novell politics & pressure from ex-ximian people. So most likely the situation will stay as it is now, with use slowly declining due to the problems above.

While some people have been complaining in recent weeks about kubuntu being a second class citizen to ubuntu, I see this as one of its greatest strengths. The alternative is like with openSUSE, the whole distribution ends up becoming the “second citizen”.

February 02, 2008

One Click Install Hot–Linking

I’ve noticed a trend of people hot-linking ‘One-Click-Install’ YMP files directly from http://software.opensuse.org on their blogs and news stories. While it’s great that people are including these it is worth considering whether it would be wise to take a copy of the YMP file and host it yourselves, or on openSUSE wiki, or somewhere else which can host static content.

If your web-host doesn’t understand the YMP mimetype a link directly to a YMP file will not work, you can work around this using “data:” URLs by creating a link as follows:



<a href="data:text/x-suse-ymu,http://example.com/mysoftware.ymp">My Install Link</a>

The install links on http://software.opensuse.org/search are:

  • Auto-generated.
  • Subject to deletion/renaming at any time.

If you blog including a link taken directly from there then other people may simply copy it onto their blog/news site, and if the original disappears, or you need to make a change you end up with lots of broken or outdated links everywhere, even if you update your blog.

If someone points out a problem (need another package included, or a conflicting package removed, etc, then there’s no way to fix it. Additionally the YMPs generated by the buildservice are fairly inflexible at present as they are auto-generated from patterns. You might wish to alter it in a way not supported by the build-service.

Hotlinking is most likely to lead to headaches when the YMPs are complex, and frequently changing. Like the “install KDE4” links for example.

Hopefully that should help inform so as to enable you to make a decision as to whether to hotlink or copy the YMP.

Software Portal Progress

Some people have commented on the lack of public progress on the Software Portal Project so I suppose I should blog about it.

The goal of the project is to make it easy for users to locate and install software.

Some distributions are shipping with simplified application installers now (Such as Ubuntu’s “Add/Remove Applications”), these abstract away from the detail of packages and display only applications to the user. So, for example a package such as kdenetwork may contain multiple applications (kopete, knewsticker, ... ) and other applications such as amarok may be composed of multiple packages (amarok, amarok-xine, ...). The simplified installers therefore only show the applications themselves: amarok, kopete, knewsticker.

The software portal combines automatic detection of applications from package repository metadata, with user generated content. So it can import metadata from the main distribution repositories, buildservice repositories, packman, etc, and then detect applications which will then be browsable by the users. Users can submit new applications, and edit existing ones where the autodetection was not perfect. Users can attach screenshots, tags, comments etc to existing applications. Users will be able to install applications using a one click install link.

So how much is complete? We announced the project 9 months or so ago, progress has been slow as all those involved have been busy. Nevertheless there has been tangible progress.

Here are some screenshots

application view

application view


Now that Pascal has added support for users and roles all the core components are in place. Now it’s a case of Features features features. At some point we need to decide what features are necessary for an initial release.

I hope this has enlightened some as to what the software portal project is about, let us know if you have any suggestions or comments. There is a mailing list . Help is even more welcome than comments ;)

October 31, 2007

Nicer YaST progress reporting.

I was prompted by a bug report to look at the progress reporting employed by YaST whenever the package management is used. At present separate popup windows are used to indicate progress/activity for reading each repository cache, and any downloads etc.

This makes the UI look rather busy & distracting. It also can cause problems for people using some window managers which fail at stopping the progress dialogues from stealing focus. This behaviour is one of the most frequent complaints now.

Additionally there is no global progress indication, which means people have no real idea how long the operation will take to complete. And for people on dialup it could be fairly slow.

I had a poke to see how difficult it would be to embed the progress reporting into the main window, and show global progress. It turned out to be relatively easy.

I’ll upload the source when I’ve refined the design a bit and make it work alongside the existing progress callbacks to avoid breaking everything else currently using them.

October 17, 2007

openSUSE 10.3 box

My openSUSE 10.3 box arrived today :)

The box has two dual-layer DVDs with all the software available in the online repository, and the startup manual in printed form.

October 16, 2007

A few webpin improvements

I spent some time rewriting the backend for my package search over the weekend to

a) Improve indexing efficiency
b) Improve search result accuracy

Many of the repositories the search indexes change frequently, especially factory & packman. Updates to the index were starting to take unacceptably long, when indexing now about 208,000 packages, their descriptions & filelists.

With a few improvements such as skipping package details & files from packages which are unchanged after a repository update, redesigning the table/index structure. The indexer is now far faster and less i/o intensive when performing incremental updates. This should mean I can keep the search index more up to date, and be less annoying to other users of the server.

I also spent some time analysing the search queries, and used what I learnt to enable full search of the files within a package. Previously only a rough comparison to the filenames was made. Now you can even search for a full filename, like /opt/kde3/bin/kopete . Normal queries such as konversation or kde irc client will still work.

I made a few other small improvements too, e.g. filenames with binary matches will be ranked higher, so searches for something like kopete are a bit more useful, finding /opt/kde3/bin/kopete

The next thing on webpin TODO, after fixing all the problems that arise from these changes, is to make some frequently requested improvements to the web frontend, such as adding Install Now links to each search result. And perhaps alter the theme to fit with the new openSUSE-community theme .

If you prefer the command line to a web browser, check out yaloki’s command line client

October 09, 2007

openSUSE 10.3 metareview

So a few days now since openSUSE 10.3 release. I reviewed the reviews of 10.3 that my RSS feed agregator has accumulated in the last 5 days. The results somewhat surprised me as I thought we had addressed the most common complaints with 10.2 and previous versions of openSUSE. Also reviews of the pre-releases had seemed very positive. The reviews were divided as follows:

Bad: 11
Neutral: 2
Good: 2
Invalid*: 4

  • Simply re-pastes or rehashes of Novell/openSUSE press release.

Not including reviews published by openSUSE community members.

The good news is that it seems we are competing on technical merit again, The MS-Novell FUD has mostly been dropped.

Comments on news sites, IRC, and mailing lists seem considerably more favourable but are a more biased source.

Anyhow it seems we have an entirely new set of most frequent complaints for 10.3…

Most annoying issues [ Going by reviews ]

1: Installation issues caused by mirror infrastructure problems.

Hopefully will somewhat resolve itself as demand decreases, but clearly a problem that needs to be addressed.

2: Codec installation still too difficult.

I am at this point unsure how this can be improved:
MP3 support installed is by default with dvd / cd + internet.
– Attempting to play codecs which arn’t available leads to page with instructions involving just a click to install. Perhaps need to monitor some users to see where this process is failing.

3: Enabling compiz too difficult.

It seems everyone expects compiz to be enabled by default nowadays, probably thanks to ubuntu enabling it by default in gutsy. In my opinion it is still not appropriate to enable by default as I’ve not seen any hardware on which it doesn’t cause instability with long periods of running (nvidia or ati). However, it seems most users don’t like having to find a checkbox to turn it on, and or experiment with whether AIGLX or XGL works best with their hardware.

4: Java crashes with gnome.

A conflict between gnome’s crash handler and java’s seems to be causing java applications to crash for gnome users. Fortunately this is not affecting KDE users.

5: No live-cd

This is a misconception – livecd with live-installer will be available in a few days once some critical bugs have been fixed. Although the traditional installer will still be more functional & more reliable.

6: Online repositories included by default during installation.

This was in response to user demand for easier network installs, and 1 cd install media while still having all the software they were used to installed by default. To not utilise the online repositories One simply has to uncheck a box. Not having it selected by default would break “click next” network installs, and mean that users of the 1cd install media would not have any of the features that many users want such as codecs, flash etc.

7: Unspecific performance complaints

Rarely substantiated with benchmarks or analysis it’s difficult to comment on this one. It is clear that in the average case 10.3 both boots faster and package management operates significantly faster. Perhaps people are comparing performance with beagle in suse to without beagle in another distribution, etc.

8: Too complex installer

Somewhat puzzling as the “click next” approach should work completely, now that we have separate KDE & GNOME media. Sure removing functionality from the installer is possible, but would break use cases. Some things can be made friendlier, but as long as you can click next repeatedly you should at least get a working system, and if you need to customise the install you have full control over the procedure.

What can we do about these?

(1) Will improve as the mirror infrastructure load decreases, and as improvements are made to the redirector, It’s a shame it has given some people a bad impression at release, hopefully it will mature quickly.
(2) Could be improved for 10.3 if the problem is with http://software.opensuse.org/codecs design, or the YMP composition etc.
(3) Could perhaps be improved for 10.3 by additional packages which can be easily installed, but we obviously can’t go back and enable it by default.
(4) Should be fixed by an online update first.
(5) Should be partly fixed when the livecd is released, although I’m skeptical about the maturity of the livecd installer, it might cause more problems.
(6) I think this is just a case of “you can’t please everyone” and we did pick the right default for 10.3. Users do want most of the software that is installed, people still complain that the entire double-dvd worth of software is not included on the 1cd. Also network install difficulty was a big complaint in the past, which is now a non-issue. Hopefully this will be complained about less when (1) is improved.
(7) Not really anything that can be done about this one except optimisations where specific problems are obvious or reported.
(8) Not something that can be fixed for 10.3

Anyway, try it out for yourself and let us know what can be improved on the mailing lists ( http://lists.opensuse.org ) and on bugzilla ( http://bugzilla.novell.com ).

August 26, 2007

Restful webservices in java.

This week I’ve been experimenting with Jersey Which is an implementation of the JSR-311 specification of a java API for Restful Webservices.

One of the problems with developing restful webservices using java or c# is the tool support doesn’t really exist yet. So with SOAP you can easily expose any interface as a web service, and add web references in your IDE of choice & call a remote system as easily as if it were part of your local application. With a RESTful webservices it has tended to involve messing about with HTTP apis and manually parsing URLs & XML (at least in java & .net).

Anyhow, I’ve been quite impressed with the JSR-311 API, it is exceptionally easy to use. You can do something like the following:

public Foo getFoo() {
return new Foo();

Jersey will then do all the hard work so if you run/deploy the service you can go to http://localhost/foo and will be returned a shiny new Foo object converted to XML format courtesy of jaxb.

Consuming this on the client is also quite easy thanks to jaxb, and jax-ws. Consuming a method such as above could be as simple as the following (with a small wrapper around JAX-WS api).

RestClient client = new RestClient(“http://localhost”,Foo.class,Bar.class);
Foo foo = client.get(”/foo”);
Bar bar = client.get(”/bar”);

And have it make a request, unmarshal the XML back into a java object and give it to you.

HttpMethod can indicate the verb if it’s not obvious from the method name. e.g. @HttpMethod(“PUT”). Different methods at the same UriTemplate with different Mimetypes will be picked depending on the accepted mimes in the http headers. So you can display an html page when viewing in a browser, or plain XML to other systems, or images etc.

Accepting parameters is equally easy:

public Baz getBaz(@UriParam(“id”) int id)

will automatically convert an id parameter on the URL to an integer for the method parameter.

August 15, 2007

Package Manager + WebServices = ?

One of the things it would be nice to do in future versions of openSUSE (after 10.3) is connect the package management user interface up to webservices such as the openSUSE buildservice api , my package search api , or the software portal api once it is ready.

This would enable users to find and install software whether or not they have previously subscribed their package manager to the relevant repository. Potentially in the event of a dependency resolution failure a webservice could also be used to attempt to find a solution.

This evening I knocked up a quick functional demo YaST module which talks both to the local system package management, and the package search api. This screenshot shows it with search results for “tux” from:

  • The local system rpm database
  • The package manager’s repository cache
  • Webpin search results

and actually installing a package.

This took about 1 hour from conception to the screenshot above. With a little time some quite exciting features could be developed utilising webservices.

The main challenges to making use of webservices from client like this are:

  • Defining the API carefully enough so it can remain constant for the lifetime of the product.
  • Hosting to cope with the potentially large number of requests arising from integrating web services with client-side software.

October 2022

Mo Tu We Th Fr Sa Su
Sep |  Today  |
               1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Search this blog



Most recent comments

  • Hey skx, how do you do that ? I run into the fu….. problem, that curl terminate with unspec. error… by David on this entry
  • With some minor changes this will also work for updating from 11.0 to 11.1. by skx on this entry
  • You are the man!!! Great work and good documentation! It worked without any problem for me. Thanks a… by Vany on this entry
  • didn't work for me. In fact killed the system. Have to download 11.0 and burn to dvd to fix it. by maybe windows on this entry
  • Will this method work for 11 => 11.1 ? by Erik Jakobsen on this entry

Blog archive

RSS2.0 Atom
Not signed in
Sign in

Powered by BlogBuilder