Home Home
Sign up | Login

Author Archive

Read The Fabulous Manual

October 26th, 2010 by

We have a new place where we collect static documentation like manuals, user guides, quick start pages, developer documentation … and so on.
This new place is: rtfm.opensuse.org doc.opensuse.org.
Our “fabulous manuals” are also accessible at: doc.opensuse.org (in case you don’t like the word “fabulous”).

A few days ago Thomas Schraitle already wrote about this site before it was in a state that we wanted to announce – so sorry for any confusion this might have created.

This site is not meant to be a competitor to the documentation in the wiki. It was rather born from the need to have a central place to publish generated static documentation. Content on rtfm is not meant to be edited. If you want to contribute documentation we very welcome this in the wiki and encourage  you to link back to rtfm where applicable. The pages on rtfm are static but however they will be updated automatically upon changes (new releases of a project or product).

Currently we have published some great user guides and quick start pages for openSUSE (KDE, Gnome, Security, …) and SLES (AppArmor, Admin Guide, kvm, Xen, Security, …) as well as a user and vendor guide for WebYaST. There is also developer documentation available for YaST and Zypp (libzypp, satsolver) development.
In the next days or weeks we will add more documentation as soon as it is ready to be published.

Update:
We changed the domain name of that site. To read the fabulous manuals please use and link only to doc.opensuse.org. The domain docs.opensuse.org will be alias for it – please only link to doc and do not use rtfm anymore. Thanks for your appreciation.

YaST module the C++ way

July 15th, 2008 by

From May 30th to July 4th we had a YaST workshop in Nuremberg. The workshop was basically a hackshop as we wanted to work on cool and new things for YaST during this week.

There is one big change in YaST in openSUSE 11.0 – yea, we found out that there are even more colors than gray, ok – but there is one that is not really visible to the end-user. Stefan Hundhammer, maintainer our YaST UI, completely separated the UI from the rest of the YaST infrastructure. This now makes it possible to use the UI directly, from anywhere, independent from our YaST-own-language YCP. So with a team of four hackers we wanted to prove that we can write a YaST module in plain C++ using the new modularized UI directly. And here is the outcome:

We went for rewriting the registration module (well, we chose it because I know it well, as I am the maintainer, and it will change anyhow for the next release). This module is not that integrated in the overall YCP world, so it should be feasible. First we had to find an alternative way to access system configuration files, as this is done by so-called SCR agents in YCP. To make life easier (and future development faster) we had to look for a replacement of our YCP Wizard Seqencer. And of course we redesigned all dialogs to make them more intuitive.

We solved all the issues and now have

  • a wrapper class for accessing different configuration files (currently only ini files)
  • an automatic wizard sequencer equivalent (using the advantages of an object oriented language, btw YCP is not)
  • three clear and intuitive dialogs, every user should understand

And as everybody wants to see screenshots, here they are:

Configure Update Source Send Hardware Information Register for Installation Support

The code is just a proof of concept and not yet reusable for new YaST modules but everything we wanted to show works great. We will continue to work on such kind of modules and in that process move the generic parts out into single libraries so that they can be reused and even may be exposed to scripting languages.

Writing YaST module this way has lots of advantages

  • YaST modules evolved into the object oriented world and can make use of it (the automatic sequencer is the first benefit)
  • the code is reusable
  • a huge bunch of documentation and lots of tools exist for C++
  • its a compiled language and has a better performance than an interpreted one
  • we can bind automatically to the most important scripting languages and give them access to the modules logic

If you are interested in the source code, have a look at my svn repo and if you want to help join the team and contact us on our mailinglist.