Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

LibreOffice 3.5 available for testing on openSUSE

I’m happy to announce first LibreOffice 3.5 packages for openSUSE. They are available in the Build Service LibreOffice:Unstable project. It provides many interesting features:

  • better UI for header/footer handling
  • multi-line input bar in Calc
  • Import filter for Microsoft Visio documents
  • enhanced custom shapes import
  • modeless  word count dialog
  • improved font hinting for high quality docs
  • more secure encryption algorithm (AES-256) for password protected files
  • better displaying of non-printable characters on the end of line
  • and much more

The current openSUSE packages are based on the LibreOffice 3.5.2 release. Please, look for more details about the openSUSE LibreOffice build on the wiki page.

The openSUSE LO team hopes that you will be happy with this release. Though, any software contains bugs and we kindly ask you to report bugs. It will help us to fix them in the future releases.

Known bugs:

Other information and plans:

The current LibreOffice-3.5 packages are based on the second bugfix release and should be pretty stable. I want to move them into the LibreOffice:Stable project within next two weeks. I just want to make sure that I did not do any mistake during packaging, e.g. breaking dependencies. Also the KDE4 integration need to be tested because it was not provided by the upstream build. Any feedback is welcome.

the avatar of Raymond Wooninck

Plymouth in openSUSE Factory

As some of you know, I have been working on plymouth support in openSUSE. This was a feature that was requested already some time ago, but nobody found the time to actually implement it. 

Since a couple of weeks I have been working on getting plymouth to work and to resolve the known issues. This can be tracked on the following link :  http://en.opensuse.org/openSUSE:Plymouth 
With the help of teammembers of the openSUSE KDE team (tigerfoot, einar77), the issues were resolved and Plymouth got accepted in openSUSE:Factory
To get full support for password requests and displaying text, the initrd was enhanced with some additional libraries and fonts. The luks initrd script was reworked to get plymouth support for the password requests and a patch was submitted to the maintainer of the package cryptsetup. 
The full set of packages (including all the latest patches, etc), can be obtained from the OBS project home:tittiatcoke. Plymouth of course can be directly obtained from Factory. 
I would like to ask everybody to test the new Plymouth packages and to fill bugs for things that are not working or to indicate these on the webpage : http;//en.opensuse.org/openSUSE:Plymouth. 
Currently we are working on the openSUSE branding for Plymouth, so that we can complete the new boot experience. 
the avatar of Raymond Wooninck

KDE:Unstable:SC has become alive again

I know that for quite some time the KDE:Unstable:SC repo didn’t contain any recent snapshots. The repo was used to test the 4.8.0 tarballs and since then no more updates took place. 

However since today that has changed. As of now KDE:Unstable:SC contains a very recent snapshot of the KDE SC 4.9 and the packages got published. As always the target is to provide weekly snapshots of the KDE SC 4.9 and other packages. 
At this moment the kdemultimedia packages (juk, kmix, kio_audiocd, etc) are still on the 4.8.2 level as that the main KDE repository is moved from SVN to GIT. As soon as this has been completed, the packages in KDE:Unstable:SC will be updated with the next possible snapshot. 
I have been running snapshots of KDE 4.9 and I have to say that the stability is quite good. Most of the changes are the rewrite of plasmoids, etc to the new QML language. 
Enjoy!
a silhouette of a person's head and shoulders, used as a default avatar

openSUSE guide for Ubuntu users

So since the advent of Gnome 3 and the Ubuntu spin of that – Unity – a lot of people have been frantically seeking a familiar refuge. Now as I stated in another blog I like Gnome 3, but it was a long time coming and I can certainly understand the reluctance towards it... not to mention legitimate issues pertaining to your peculiar hardware. As for Unity, I briefly installed the newest Ubuntu. And I hated it. I can see it may be good someday, but for now it is alpha level. Sluggish, unresponsive, not something I would have pushed on possibly paying users. So now a lot of people are fleeing for KDE or some other more familiar desktop paradigm. So in this post, I want to basically give a guideline for those who have landed in our community. One thing I do recommend is RTFM, please read a little bit of the documentation. You'll learn so much more quickly, and learn some nice tricks along the way.

  1. Documentation; We do of course have other sources of documentation, but these three are more than enough to get you where you want to go. OpenSUSE is simple enough you should be able to get along without the documentation, but I personally would prefer to avoid any potential headaches.
    1. An excellent guide for beginners is the Unofficial openSUSE Guide. This guide is KDE oriented, but still touches on many of the important things in openSUSE regardless of your preferred desktop environment. Www.opensuse-guide.org
    2. The manuals should be installed already, and if not can be easily found in YaST. If they are installed, you'll be able to find them in the location file:///usr/share/doc/manual/opensuse-manuals_en/index.html which you can simply open in your web-browser. I suggest making a bookmark so its quickly handy when you need it. I keep mine as an 'app-tab' in Firefox.
    3. Gnome and KDE both have help viewers. In KDE you'll be able to get to it from the desktop link. In Gnome 3 you'll need to open the help browser from the activities dashboard, or when on the desktop (not within a particular application) press F1. Here you'll find plenty of tips and information so you can get the most out of your new Gnome 3 desktop.
  2. Installer
    1. The Ubuntu installer excels at simplicity... and that is part of its downfall. That and its instability. Our installer is actually part of our YaST graphical system utility suite. It is old, but always updated, and offers many highly advanced options for your installation. However, it is still simple and attractive enough for anybody with a smidgen of experience. We have a Live CD, and a DVD for openSUSE. The installer differs slightly on the two platforms. If you know your hardware well, use the DVD since it has some more options you may appreciate. I want to point out a few things you may miss, and that I think are particularly nifty.
      1. Additional software and desktop environments are available when using the DVD instead of the Live CD. On the DVD we ship four environments easily selectable; LXDE, XFCE, KDE, and Gnome. Rumor has it that in 12.2 we will also be offering Qt-Razor. You may simply select one of these, or by using the software management module you may choose to install the environments side by side. In order to do the latter, you merely need select for example, the XFCE 'pattern' and it will install. I will write more on how to use YaST software management from within the installer in a later section. If you are looking for an experience more like Gnome 2 with all its comfortable old programs, I HIGHLY recommend using our XFCE desktop.
      2. The partitioner in the installer is the same as used by the openSUSE desktop itself. This is thanks to the modular design of YaST and that the installer is itself a module of YaST. Thus, you get all the options of a full enterprise ready partitioner so you can cater your installation exactly. This includes such advanced options as being able to select a variety of file systems to format with (including btrfs), use Logical Volume Management (LVM), or even to encrypt your partitions for security purposes and be able to edit the fstab to graphically toggle special features of the filesystems.
      3. Getting into the software manager from the DVD installer is very simple. On the final page of the installer 'Installation Settings,' you'll see a button labeled 'change' below the textual summary of the changes to be made for your installation. Click there and you'll see a myriad of options, including 'Software.' There it is that you may select other patterns and packages, as well as other desktop environments. I personally will always select the 'Console Tools' pattern.
  3. YaST2 is a tool for administering and maintaining a openSUSE installation. It allows administrators to install software, configure hardware, set up networks and servers, and more.
    1. I made mention that our installer is part of something called YaST. Yet another Setup Tool (YaST) is in my opinion the heart of what makes openSUSE unique. Mandriva and Mageia have a similar tool, but it wasn't built with an Enterprise distribution in mind. And though YaST was built with the enterprise user in mind, it still manages to be excellent even for a naïve home user. Part of that is simply the help button. If you go clicking through the modules in YaST, you'll always see a help button. And lo and behold it is in fact actually helpful! It clearly explains what each module and each page of a module does. YaST is ideal for the new user learning about Linux due largely to this. YaST is immensely powerful despite being user friendly, and once again I recommend reading the documentation so that you can truly grasp the GUI goodness and power that is YaST. What more, is that YaST gives you a graphical tool to help you manage and fix issues that Ubuntu would always require you fiddle on a command line terminal, which is something even I am not very comfortable with.
    2. Edit GRUB graphically with the 'Bootloader' module. Often enough I find that people will have problems with the splash screen, and you can easily set the VGA mode with this module. Also, this module makes it easy to add parameters to the bootline in GRUB. All this and more without having to fiddle with the command line and obscure text based utilities.
    3. Printers and scanners can be easily and effectively configured in YaST. Frankly, on the three platforms of openSUSE, Mac, and Windows; openSUSE's YaST module was the only one that was clear and not a pain in the rear to get my HP all-in-one configured. All I needed was the IP of the printer, and I was able to get everything working perfectly.
  4. Package management
    1. Yet another YaST module is our Software Management. Though it is not quite as friendly as the Ubuntu Software Center, you'll quickly get the hang of it; especially if you take a little time to read the documentation. Often people mistake YaST as being merely a package management tool, but rather that is only one of several modules... but a notable one indeed.
      1. Adding a new desktop environment is easy. Simply look for the pattern for the desktop you want, select and go! In a while, you'll have a whole and complete new desktop environment to try out and use.
      2. You can browse through specific repositories in order to find new and interesting software. I find this particularly handy with the Games community repository.
    2. We also use PackageKit to fulfill some functionality, mostly updating. You can also use PackageKit to install new software packages you download, such as Google Earth. PackageKit does have a couple bugs. If you for example need to lock the package for your kernel from updating, then you will want to deactivate the updater applet since it won't honor those locks. It will also screw up if you use an external device as a repo such as a USB drive or the install DVD. It also occasionally has problems installing RPMs from sources such as Google. If you find it doesn't work, you can use zypper on the command line to do it. Simply 'cd' to the directory where your RPM is, then issue 'zypper in thatrpmthatpackagekitchokedon.rpm.'
  5. Finding more software
    1. Community Repositories are quickly and easily added from YaST, without needing to drop to CLI or even needing to manually copy and paste a URL. In YaST under Software, simply click 'Software Repositories.' Once that is loaded, click the button 'Add.' You'll see a list of options, select the radio button second from top that says 'community Repositories,' and click 'Next.' You'll see a listing of popular repositories. I usually add Packman, WINE CVS, and Gnome Extras.
    2. The openSUSE Build Service provides a simple and central place for developers to make software available, and use our servers to build it with so they don't stress their home computers. Why this matters to you, is that it also makes those packages available to you since it automatically creates a repository and a 'One Click Install.' With the one click install, it will download a .ymp (YaST Meta-Package) which will be handled by YaST. This will download and install the package, as well as subscribe you to the repository so you can get any updates. OBS also provides packages for many distributions besides openSUSE.
  6. Super User and sudo
    1. First off, you may quickly notice that sudo seems broken. In actuality it was configured that way for security purposes, ones that I honestly don't entirely understand. If sudo doesn't work, you'll need to use 'su' to drop into Super User or Root. If you just tried sudo, simply tap in 'sudo su' since sudo will remember your authentication briefly.
      1. In Gnome we use 'gnomesu' to invoke graphical applications as the root user. You can use the hotkey of Alt=F2 to quickly launch programs, or you may do this via a commandline (CLI) terminal such as Gnome Terminal.
      2. In KDE we use 'kdesu' to invoke graphical applications as the root user. All the Gnome instructions apply equally.
  7. Support
    1. Forums are the best place to find support. The gurus stalk the forums that are their fields of interest and specialty. Plus the more organized format of the forums help guarantee you won't get lost in a flood of other requests.
    2. Mailing lists are available, but you may not get the timely help you'd hope for. Your message can get lost in the sea of other messages. If your issue is terribly critical, such that it prevents you from using your computer properly then you can try the mailing list... but I'd recommend posting to the forums first.
    3. IRC is also available. If you are using Konversation, the default IRC client for KDE, it will automatically connect to the appropriate channel. If you are in Gnome and using Xchat our channel is #suse on the FreeNode (same as Ubuntu's channel) network. The channel is only very active at certain hours, so once again forums are a better choice for support.
  8. Notes on our Gnome 3
    1. Themeing browsers to look native. I personally enjoy a very consistent theme across all my applications. I like having a total environment that is consistent and beautiful, and so I was thrilled that finally in Gnome 3 I could make my two favorite browsers finally look like they totally belong in my environment. Of course, if you wind up using a custom theme, then this will not help your desire for consistency at all.
      1. Chrome/Chromium requires two different extensions to look right in the Gnome 3 Adwaita environment. Besides the obvious, you'll also want the Gnome 3 Scrollbars and may like to go into settings and set it to use the system window titles and borders.
      2. Firefox in general never looks as alien in either Gnome or KDE as Chrome does, but it still isn't perfectly themed. Until now with the Adwaita Theme for Firefox. https://addons.mozilla.org/en-US/firefox/addon/adwaita/
    2. Gnome Tweak Tool, also known as 'Advanced Settings' is included by default. This gives you access to some toggles, and the ability to change fonts, cursors, and even themes. It may take a little experimentation.
    3. I highly recommend reading through the help browser to learn the workflow of Gnome 3. Such things as the ability to simply type when in Activities rather than actually having to enter the search box aren't immediately evident.
  9. Multimedia
    1. Getting multimedia to all work properly can be tricky. Thankfully there is a One Click available to take care of your needs, including (limited) DVD playback. I'll simply point you to the page that will help you select the one that is right for your needs and system. http://opensuse-community.org/Restricted_formats
    2. On Gnome the default music player is Banshee, and the default video and DVD player is Totem. Totem can be problematic with DVD playback, and you may find that VLC works better for you as I did. I have had issues with Banshee being unable to play some radio streams as well. VLC can be installed via OBS or from the Packman repository.
    3. In KDE the defaults are Amarok for music, and Kaffeine for video. Amarok has had stability problems sometimes, so the team has included Clementine which has most of the features of Amarok but is lighter and I have found it to be much more stable. I have never had an issue with Kaffeine.

In conclusion I hope you can see that, though we are different... we aren't lacking anything Ubuntu had. We just go about it differently. No distribution is perfect, as you no doubt learned. To quote a friend, “every OS sucks.” The question is in finding one that keeps you happy, and I hope this brief (not as concise as I'd aimed for) guide will help you be happy as a part of our community. Welcome to openSUSE, and as we say (its probably cooler sounding in German) “have a lot of fun!”

a silhouette of a person's head and shoulders, used as a default avatar

Realtek Wireless RTL8187B fix for suspending

Basically the problem I experience was that if I suspended this laptop and resumed it, the wireless would not be available at all. I even tried a couple tricks to kick it active again which didn't work. Finally one of the gurus on our forums fixed my problem. Before the fix, I would have to reboot. Which meant instead of suspending, I'd simply shutdown. Thankfully the systemd booting made that a much shorter wait than in 11.4. But now, I can use it normally and am very satisfied.

As root, you need to create a file named /etc/pm/sleep.d/66_rtl8187. That is to say create a file called 66_rtl8187 without any file extension, and save it to the directory /etc/pm/sleep.d/. I did this using gedit run as root. To run gedit as root simply hit the hotkey alt+F2 and type in "gnomesu gedit". Then simply paste the following and save it to the /etc/pm/sleep.d directory. The code for the file is as follows:

#!/bin/bash
case $1 in
hibernate)
echo "Suspending to disk!"
/sbin/modprobe -r rtl8187
;;
suspend)
echo "Suspending to RAM!"
/sbin/modprobe -r rtl8187
;;
thaw)
echo "Resuming from disk..."
/sbin/modprobe rtl8187
;;
resume)
echo "Resuming from RAM..."
/sbin/modprobe rtl8187
;;
*)  echo "somebody is calling me totally wrong."
;;
esac

If I understand the code here, it simply removes the driver on suspending, then reloads it when the system resumes. So simple its no wonder I didn't think of it! LOL.

This may not work for you as it seems to be a very particular issue with my hardware, but you should be able to adapt the script. If it doesn't work that would eliminate your driver as being the cause of the issue at least. My laptop being a Gateway T1200 if I recall. But if you have similar hardware, this fix may do the trick. I hope you find it as helpful as I did!

Special thanks to lwfinger, our wireless forum ninja.
a silhouette of a person's head and shoulders, used as a default avatar

Giving 12.1 and Gnome 3 a second chance.


When I started this blog, I intended to make it my step by step log of the trials and fixes experienced in openSUSE so that it may be a benefit to others. However, when I first tried 12.1 with KDE it was such a terrible experience that I rolled my machines back to 11.4. But this time I went with Gnome instead of KDE; since I had experienced some of the speed improvements in the newer KDE I knew that rolling back would make it seem even worse than it really was. And in any event, I needed the experience with Gnome in order to help others. Indeed, I learned the Gnome way and it was good. Brilliant actually, we have a FANTASTIC Gnome implementation. But now, I have recently acquired a new (to me) laptop with which to be a little more risky and experiment on. So, after trying a few distros I have come back to openSUSE 12.1, but this time with Gnome 3. And I must say, it is fantastic.

One thing I feared with Gnome 3 was losing some of the functionality and refinement of Gnome 2 in openSUSE. In our Gnome 2 we had the special start menu made by Novell which was quite handy, giving quick and clean access to programs, documents, and tools. Though of course that menu is not present in 12.1 with Gnome 3, the functionality is not actually lost. In fact, it looks rather like Gnome 3 got some hints from it in its interface. Indeed, with just three clicks I can get to YaST, and the fantastic system monitor that was in the Novell start menu can simply be added to favorites so I can look at my system and kill tasks that freak out. As you may already know, that odd vertical dock in the left hand side of the “Activities” dashboard is called “Favorites.”

Certainly Gnome Shell takes some getting used to. Its a very different sort of interface, and is something of a new paradigm even. When I had tried the preview version made available for 11.4 I found it fairly comfortable on my netbook, but ultimately was put off by the stability issues. Now, that is scarcely an issue. I can of course see a few issues that need some love, but overall its more stable than KDE was when it shipped in 12.1. Quite frankly, I recommend taking a look at the Gnome Help so that you can get a feel for how to efficiently use the interface. And efficient is indeed the achieved goal. At first of course, it seems alien... but for me at least I quickly got the hang of the workflow and found it to be very comfortable. You can quickly take care of business, and do it in style.

Speaking of style, Gnome 3 delivers. Elegant, responsive, simple. The latter two are of particular note. My GPU is an older Radeon that is not supported by the fglrx driver, and thus can have odd behavior. However, you would never know that I wasn't running an Nvidia card. Gnome 3 has caught a lot of guff for its window decoration having only the one button, and indeed this put me off at first; until I realized a double click or a right click can achieve everything I need. At that point it occurred to me that it makes more sense considering how much of what we do on the desktop PC is achieved by a context click... it makes more sense to extend that paradigm to all areas.

Now so far I have sung the praises of Gnome 3. Nonetheless there are a couple things I'd like to see personally. First on my wish list would be to make it possible to move the “Favorites” dock to the bottom of the screen. I like having a good number of things on my dock, and would prefer to not have dinky icons when I have a fairly large screen. Secondly, I'd like to see the Gnome System Monitor accessible via the status menu in the upper left hand corner, by system settings. Thirdly, I'd like to be able to set more IM statuses from the status menu. Other than that, this is a brilliant desktop that satisfies my needs, wants, and does so in style that makes the Mac snobs jealous.

I should make clear mention that apparently all my bad experience of 12.1 boiled down to the KDE regressions. Under Gnome 3, I notice several subtle improvements even over 11.4. With this computer, it has an odd issue that I can't resume WiFI if it has been suspended, and I must reboot it in order to reconnect. In this situation I am very thankful for systemd since it speeds up the boot process by quite a glorious bit. Surprisingly, Gnome 3 seems to perform just as well as Gnome 2 did. In fact, I find it is a bit more responsive than Gnome 2 with 11.4 was. Needless to say, that came as quite a surprise. I know some of this could be coming from the kernel, but can tell it is as much if not more due to the environment.

So far the only two issues that are not necessarily hardware specific are the massive issues with Evolution. I have fallen thoroughly in love with Evolution and am saddened to see it become only slightly more reliable than the newest Kmail. I hope this gets fixed. The other issue is oddity with getting my webcam to work. It worked in Ubuntu (the only thing that worked in Ubuntu I may add, the whole thing was one polished shit sandwich) hence why I don't consider it hardware specific.

If you have been spooked off of Gnome 3, read some cheat sheets and get ready to read the help thingy. You may just like it after all.

the avatar of Will Stephenson

April KDE Updates available for openSUSE (KDE 4.8.2)

The April set of KDE updates to Workspaces, Apps and Platform are available now for openSUSE in our KDE:Release:48 repository. This offers you the latest stable software from upstream KDE for openSUSE releases. As point releases, these are an essential upgrade for your production openSUSE installations.

Get them now at http://download.opensuse.org/repositories/KDE:/Release:/48/openSUSE_12.1/.

The repository for openSUSE 11.4 is being created at the time of writing at http://download.opensuse.org/repositories/KDE:/Release:/48/openSUSE_11.4

Users who already have the KDE:Release:48 registered in YaST need only zypper up or upgrade with YaST.

As always, have a lot of fun and report bugs!

the avatar of Sascha Peilicke

Official Last.fm scrobbler for openSUSE

Good news, the official Last.fm audio scrobbler is now available for openSUSE through the Packman package repositories. Why do I care, you might question yourselves and you're partly right, openSUSE already ships a big bunch of multimedia apps (like Amarok, Clementine and Banshee) that all have Last.fm support built-in. However, for all of those you … Continue reading Official Last.fm scrobbler for openSUSE

a silhouette of a person's head and shoulders, used as a default avatar

Puppet Ruby DSL using Gloves Library on openSUSE 12.1

Motivation

I've published two articles recently: How to use Gloves on Ubuntu and How to use Puppet on openSUSE 12.1. I wanted to connect these two into Using Gloves (formerly YaST++) on openSUSE via Puppet. And because Gloves library is written in Ruby, it could also use Ruby DSL.

This example will show how to download Gloves from GitHub, install it to the system and use it to open a special port in SuSEfirewall2.

What You Might Need

  • One server with openSUSE 12.1 (could be virtual), AKA server.example.com hostname in this example
  • One or more clients with openSUSE 12.1 (could be virtual), using client.example.com hostname
I've created a small appliance for client available in SUSE Gallery that should save you some time if you want to try yourself (root password is linux).

Configuring a Puppet Server

Let's assume you already have a Puppet server installed and configured. If you don't, follow section Configuring a Puppet Server in this blog.

  • Now we'll create the recipe in Ruby:  touch /etc/puppet/manifests/site.rb 
  • And use it from Puppet by adding manifest = /etc/puppet/manifests/site.rb into your /etc/puppet/puppet.conf
  • Restart the Puppet server:  rcpuppetmasterd restart 

Recipe Written in Ruby DSL

Edit your /etc/puppet/manifests/site.rb to contain these definitions, they will be explained later:

hostclass :SuSEfirewall2 do
  # Installs requred packages
  package :ntp,                            :ensure => :installed
  package :'rubygem-rake',                 :ensure => :installed
  package :'rubygem-packaging_rake_tasks', :ensure => :installed
  package :git,                            :ensure => :installed
  
  # Fetch from git
  create_resource :exec,
    'sources_from_git',
    :require => 'Package[git]',
    :cwd     => '/tmp',
    :command => '/usr/bin/git clone git://github.com/yast/yast--.git'
  
  # Install from git
  create_resource :exec,
    'install_from_sources',
    :require => 'Exec[sources_from_git]',
    :cwd     => '/tmp/yast--',
    :command => '/usr/bin/rake install'
  
  # Removest the git repository
  create_resource :exec,
    'remove_sources',
    :require => 'Exec[install_from_sources]',
    :cwd     => '/tmp/',
    :command => '/bin/rm -rf yast--'
  
  # Creates file with configuration commands (Ruby)
  # Later a command-line interface would be better
  # Yes, I know there's a security risk, don't use this in production!
  file '/tmp/open_port_in_firewall',
    :require => 'Exec[sources_from_git]',
    :content => "
    require 'y_lib/susefirewall2'
    YLib::Susefirewall2::add({},
      {'kind' => 'open_port', 'port' => 'port_opened_by_Gloves',
      'zone' => 'EXT'})\n"
  
  # Calls the file with commands (Ruby)
  create_resource :exec,
    'open_port_in_firewall',
    :require => 'File[/tmp/open_port_in_firewall]',
    :command => '/usr/bin/ruby /tmp/open_port_in_firewall',
    :path    => ['/usr/bin'],
    :notify  => 'Service[SuSEfirewall2_setup]'
  
  # Adjusts the SuSEfirewall2 service
  service :SuSEfirewall2_setup,
    :start      => '/sbin/rcSuSEfirewall2 start',
    :restart    => '/sbin/rcSuSEfirewall2 restart',
    :ensure     => :running,
    :enable     => :true,
    :hasrestart => :true
end
  
node 'client.example.com' do
  create_resource :class, :SuSEfirewall2
end

Recipe Explanation

There are two top-level definitions in the recipe:
  • hostclass defines a resource similar to class in Puppet DSL - usually used to describe one service to setup
  • node definition says which hostclasses are used for which clients - change client.example.com into your client hostname
Let's describe the SuSEfirewall2 hostclass in detail:
  • The first part just installs some required packages
  • Type :exec calls an external command, sources_from_git clones the Gloves repository hosted at GitHub
  • Parameter :require => 'Package[git]' adds new dependency on package git - this means that cloning the repository will not start before git is installed
  • Parameter :cwd defines the working directory
  • Another :exec install_from_sources will install Gloves library from sources to the system, in fact, also rubygem-packaging_rake_tasks package is required for this operation
  • Another :exec remove_sources removes the cloned repository
  • The the tricky part starts here :) Puppet will create file /tmp/open_port_in_firewall containing a short script written in Ruby using the Gloves library:

    require 'y_lib/susefirewall2'

    YLib::Susefirewall2::add({},
      {'kind' => 'open_port', 'port' => 'port_opened_by_Gloves', 'zone' => 'EXT'})


    This script will open port port_opened_by_Gloves in SuSEfirewall2. See documentation generated from YLib::Susefirewall2 sources. In fact, this port name actually doesn't exist in /etc/services but that's fine for our example. Frankly this is rather a hack than a solution - I'd like to have Gloves CLI soon.
  • And then we'll call the script with another :exec command open_port_in_firewall.
  • This definition also show another type of dependency :notify  => 'Service[SuSEfirewall2_setup]' - after port is opened, service SuSEfirewall2_setup is notified to re/start.

Applying the Recipe on Your Client


Follow steps written in Client Configuration section described at Mass Management Configuration Tool Puppet on openSUSE 12.1 excluding the last puppetd --test call. Additionally, do these changes:
  • Run:  zypper ar --refresh http://download.opensuse.org/repositories/devel:languages:ruby:extensions/openSUSE_12.1 devel:languages:ruby:extensions_12.1  to add repository containing required Ruby libraries into your system
  • Run:  zypper in  rubygem-ruby-dbus rubygem-open4 rubygem-ruby-augeas rubygem-packaging_rake_tasks rubygem-rake  to install all the required Rubygems
Make sure that server=server.example.com (replace with your server hostname) is added into the [main] section in /etc/puppet/puppet.conf on your client and finally call  puppetd --test --verbose . It should return something similar to this output:

info: Creating a new SSL key for client.example.com
warning: peer certificate won't be verified in this SSL session
info: Caching certificate for ca
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
info: Creating a new SSL certificate request for client.example.com
info: Certificate Request fingerprint (md5): EA:C7:28:73:B4:F1:F1:59:F6:3E:3E:BB:5E:E7:BB:31
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
info: Caching certificate for client.example.com
info: Caching certificate_revocation_list for ca
info: Caching catalog for client.example.com

This was the output from the initial client configuration. Continues with applying the configuration...

info: Applying configuration version '1333466151'
notice: /Stage[main]/Susefirewall2/Package[ntp]/ensure: created
notice: /Stage[main]/Susefirewall2/Package[git]/ensure: created
notice: /Stage[main]/Susefirewall2/Exec[sources_from_git]/returns: executed successfully
notice: /Stage[main]/Susefirewall2/File[/tmp/open_port_in_firewall]/ensure: defined content as '{md5}3314e4c08f61e127fc3cc85170208f47'
notice: /Stage[main]/Susefirewall2/Exec[install_from_sources]/returns: executed successfully
notice: /Stage[main]/Susefirewall2/Exec[remove_sources]/returns: executed successfully
notice: /Stage[main]/Susefirewall2/Exec[open_port_in_firewall]/returns: executed successfully
info: /Stage[main]/Susefirewall2/Exec[open_port_in_firewall]: Scheduling refresh of Service[SuSEfirewall2_setup]    
notice: /Stage[main]/Susefirewall2/Service[SuSEfirewall2_setup]: Triggered 'refresh' from 1 events
info: Creating state file /var/lib/puppet/state/state.yaml                                                          
notice: Finished catalog run in 27.32 seconds

I've created a backup of my SuSEfirewall2 configuration before running the puppetd command so I can check the changes now:

 diff -u /etc/sysconfig/SuSEfirewall2.backup /etc/sysconfig/SuSEfirewall2  shows:

--- /etc/sysconfig/SuSEfirewall2.backup
+++ /etc/sysconfig/SuSEfirewall2
@@ -281,7 +281,7 @@
 #
 # Examples: "ssh", "123 514", "3200:3299", "ftp 22 telnet 512:514"
 #
-FW_SERVICES_EXT_TCP="22 80 443"
+FW_SERVICES_EXT_TCP="22 80 443 port_opened_by_Gloves"

Port port_opened_by_Gloves was indeed added. We can also check that the service was restarted:  tail -n 200 /var/log/messages | grep port_opened_by_Gloves  shows:

SuSEfirewall2_setup[15588]: Loading firewall rules iptables-batch v1.4.12.1: invalid port/service `port_opened_by_Gloves' specified

As the port name is unknown, SuSEfirewall2 reports this error during restart.

Where to Go Next?

Although Puppet’s Ruby DSL doesn't describe all the possibilities, it's still a nice intro. Blog article about Ruby DSL reveals some more details. A More Advanced Puppet Pattern informs about splitting the Puppet recipe into several files.

a silhouette of a person's head and shoulders, used as a default avatar

LibreOffice CorelDraw Import filter - the best file-format coverage in the FOSS world

I just realized that has been a long long time since I last blogged about libcdr and the CorelDraw import filter in LibreOffice. Those that know me well can imagine that it is much more fun to write code then to write blogs. Nonetheless, one serious breakthrough happened this weekend and I cannot prevent myself from climbing on the roofs and shout.

On 20th of March 2012, Corel released a new version of CorelDraw Graphics Suite X6. We got the information from this Wikipedia page and downloaded the evaluation version on Friday. Although it was usual to see the file-format mutate a bit with every released version, this release changed the file-format substantially in what concerns the RIFF chunks. To cut the long story short, we managed to get the last pieces reverse-engineered today and we released libcdr-0.0.6 with support of all 32-bit CorelDraw formats, from version 6 to 16.

The new release tarball was integrated in LibreOffice which became the first and only FOSS application that supports versions 6, 15 and 16 of the CorelDraw file-format. This goodness will be part of our 3.6 release later this year. For those that do not know fear, the feature can be tested in daily builds that will start to appear tomorrow morning here.

I know that the distinguished readership prefers pictures to words. Here is this simple document in CorelDraw X6 format:

Terra in Corel 1  Terra in Corel 2

Here is the same document opened by LibreOffice Draw:

Terra in LibreOffice Draw

And here is the libcdr-generated SVG opened in Inkscape:

Terra in converted to SVG

If you are tempted and think that it might be fun to participate in a reverse-engineering endavour, we have with Valek two project proposals for Google Summer of Code 2012. The first is the implementation of MS Publisher import filter for LibreOffice and the second is to help to improve and extend the Corel Draw import filter I am currently blogging about. Try to apply with LibreOffice and your life will never be the same again.

Be aware though that the application deadline is the 6th of April and you will need to accomplish a simple programing task in order to be eligible. More details in this blog.