Linux Distribution Popularity Across the Globe
Royal Pingdom has issued an article about “Linux Distribution Popularity Across the Globe”. They have included eight common Linux distributions in their survey: Ubuntu, OpenSUSE, Fedora, Debian, Red Hat, Mandriva, Slackware and Gentoo and used Google Insights for Search, for determining the results.
Below is the summary from their results :
- Ubuntu is most popular in Italy and Cuba.
- OpenSUSE is most popular in Russia and the Czech Republic.
- Red Hat is most popular in Bangladesh and Nepal.
- Debian is most popular in Cuba.
- Cuba is in the top five (interest-wise) of three of the eight distributions in this survey.
- Indonesia is in the top five of four of the distributions.
- Russia and the Czech Republic are in the top five of five of the distributions.
- The United States is not in the top five of any of the distributions.
There is an interesting result, Rusia, Czech and Moldova beating Germany about openSUSE popularity
. Oh, of course this is not complete survey, and it is not the weakness of openSUSE itself. In the other side, the survey show us that openSUSE gained much popularity in outside Germany.
Another interesting result, congratulation for Indonesian openSUSE Community, Indonesia is in top five (number #5 of 5) of openSUSE popularity in the world and Indonesian openSUSE Community contributed in the survey results to make Indonesia as top five of four of the distributions.
Please navigate to the survey results for another interesting results and detail statictics.
ENOS 2008: news and changes
- Oxygen chief artist Nuno Pinheiro will attend ENOS 2008 and give a talk entitled - "Oxygen, um pilar do KDE 4"
- Agenda has been rescheduled
- Meeting point is auditorium H2, ISEP, Porto.
- Maps added
- openSUSE Install Party
openSUSE Build service: layering, linking, patching and aggregating
Today I used some of the coolest openSUSE Build Service features: project layering, patches against linked packages and aggregates. I want to write about them.
I needed to test a feature in PackageKit. I am using openSUSE 11.0. However upstream PackageKit does not play nice with 11.0. Stefan Haas fixed this, taking our PackageKit sources, adding some patches, and building them in his home project, which results in a repository here.
My feature involved a patch against PackageKit and then testing it from a client application (to adapt it), so what I wanted to achieve was to use Stefan’s PackageKit plus my patch, packaged in a rpm.
I could just copy Stefan’s sources and patches to my home project, and add my patch, but that would be duplication. Any change Stefan does later would require to copy it again.
Luckily the build service has a feature call linking, so I can link Stefan’s package to my home project. You can do that from osc or from the web user interface (Link package from another project), and that would result in a new package called PackageKit in my project (I created a subproject home:dmacvicar:packagekit for this purpose) with a single file called _link.
This version of PackageKit only builds with Factory’s libzypp, so here we have various options:
- build on top of zypp:svn/openSUSE_11.0 which is ZYpp svn built on openSUSE_11.0
- link all zypp:svn packages to my project (too inefficient, Adrian would kill me if I start to rebuild ZYpp in every project :-) )
- aggregate all ZYpp openSUSE_11.0 packages from zypp:svn in my project (aggregate explained later)
Because I already have the repo zypp:svn in my repo list, I chose building on top of zypp:svn. (This will mean that in order to use this modified PackageKit repo, you need to add zypp:svn as well).
So now, I can add my patch next to the _link file. However, How to make this patch appear in Stefan’s specfile? Do we need to patch the spec file too? No. The build service does it for you. Just edit the _link file which looks like this:
So it looks like:
<link project='zypp:svn' package='PackageKit'> <patches> <apply name="patch" /> </patches> </link>
This will insert the patch in the spec file when building. That is real magic.
Sadly, this bleeding edge PackageKit version requires some libtar-devel not available in 11.0. Stefan had a backport to 11.0 in his home project too. Do we need to link the package to our project too? No. Linking here is unnecessary because we don’t really need to rebuild a copy of this package, we only need to make it available in our repository for people installing PackageKit from our project, who don’t have Stefan’s project added in their repository list, that will get libtar grabbed via dependencies, but we don’t care if the metadata grabs the final rpm from Stefan’s project.
That is called “aggregate”. To aggregate a package from another project, we create a new package (called libtar) and add to it a file called _aggregate (the web interface does not help you here). Edit that file so it looks like:
<aggregatelist> <aggregate project="home:haas"> <package>libtar</package> <package>libtar-devel</package> </aggregate> </aggregatelist>
This will map home:haass repositories 1:1 to our repositories. So if we build our project against openSUSE_11.0, it will aggregate our package with home:haass/openSUSE_11.0 too. If you don’t have a 1:1 mapping, look the Build Service Tips and Tricks to do more complex aggregates.
Then I am ready to install my new PackageKit:
$ sudo zypper in -r home_dmacvicar_packagekit PackageKit PackageKit-devel Reading installed packages... The following NEW packages are going to be installed: PackageKit-devel PackageKit Overall download size: 1.1 M. After the operation, additional 5.1 M will be used. Continue? [YES/no]: y
10 inches in one year!
KDE Project:
Tomorrow is the last power-of-two day in the year and this happens to be Felix's birthday (if you remember 2^4*2^3=2^007 - a year has passed). I just finished burning a DVD with the movies we recorded and a slideshow of the best pictures and it's a strange feeling seeing him grow up in 5 1/2 minutes.
But this date is more important than that: Maren returns into her job on monday and I'll stay home with him for two months. In this time I will still be part of the KDE and the openSUSE community, but won't have a lot of time for either.
So it will be an adventure for myself and I guess I'll return into official duties with a different view on life :)

Accessing the Build Service from Eclipse
One of this year’s Google Summer of Code projects is a an Eclipse plugin to access the Build Service, developed by Long Hong from Beijing. If you are interested, read on.
While there are still issues to be solved, I think it’s in a state that everybody can try it out. Grab a package from my home project, launch eclipse and open the Build Service perspective. Please note that the package itself is a bit experimental and was only tested to work on openSUSE 11.0. Enjoy! 
New YaST2 printer configuration module

Please anybody interested in improving current status of printing configuration - test it and give me (any) feedback.
Thank you,
Michal
Encontro Nacional de openSUSE 2008

The acronym ENOS stands for 'Encontro Nacional de openSUSE', a Portuguese expression which can be translated to 'National openSUSE Meeting', an event meant to unite the Portuguese openSUSE users.
The purpose of ENOS is to give an opportunity to the Portuguese openSUSE users to be together, as well as provide the participants an insight view on the latest developments on the openSUSE project and stimulate them to take an active part on the community itself.
ENOS 2008 is the second yearly edition (read about ENOS 2007 here) of the event and will be held in Instituto Superior de Engenharia do Porto (ISEP), Porto, Portugal on September 6th.
This year we will have special guests giving some talks:
- Ricardo Cruz (YaST-GTK maintainer) will introduce us YaST and how easily is to create a module for it. PackageKit and libzypp will be be introduced.
- Andreia Gaita (Mono developer) presenting Mono open source project, sponsored by Novell.
- Rui Capela (Linux Audio hacker) will talk about his audio applications, focusing on Qtractor, an Audio/MIDI multi-track sequencer application.

As in last year, attendees will have the opportunity to do the LPI Certification Exams at the event with a 50% discount off by LPI Master Affiliate DRI. Email eventos@opensusept.org to sign in.
Anyone interested in attend should sign in or email eventos@opensusept.org so we can have a better idea of how many people we should expect (tip: you will not leave the event without some openSUSE goodies!).
Big thanks to Porto Linux, ISEP, and Novell for the support!
Installation via wireless network
1 - Boot into any already installed linux, download kernel & initrd, create /boot/grub/menu.lst entry - some documentation here, also possible to use miniISO
2 - Into bootloader pass install=$custom_or_public_NETWORK_repository option
3 - Unplug your wired card
4 - With this setup will Linuxrc try to use your wireless network card to connect network repository. There are some dialogs to specify ESSID, WEP/WPA and sharedkey
5 - In case of connection succeed, do installation as usual (via wireless ;-))
6 - Before first reboot this network setup will be saved as persistent (into /etc/sysconfig/network/ifcfg-wlan0)
7 - During next boot (2nd stage of installation) wireless network is automatically up and you can finish installation
YaST network and Tunnels
But theory you can read on many places (including wikipedia), so here is practical example of configuration:
My previous "usual" configuration
urchin:/home/mzugec/svn/trunk/network # ip a
1: lo: <loopback,up,lower_up> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
2: eth0: <broadcast,multicast,promisc,up,lower_up> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:11:d8:39:4e:d0 brd ff:ff:ff:ff:ff:ff
inet 10.20.1.28/21 brd 10.20.7.255 scope global eth0
3: eth1: <broadcast,multicast> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:11:d8:39:5c:e4 brd ff:ff:ff:ff:ff:ff

In YaST, remove configuration from eth0 (because this configuration belongs to bridge - see later)

Create new TAP device, click Next

Leave default "Persistent Tunnel" and set owner and/or group to access this device from user account

Configuration overview

Create new network interface type bridge

Put eth0 and tap0 into bridge and configure bridge with DHCP (as eth0 before)

Configuration overview

urchin:/home/mzugec/svn/trunk/network/src # ip a
1: lo: <loopback,up,lower_up> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
2: eth0: <broadcast,multicast,promisc,up,lower_up> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:11:d8:39:4e:d0 brd ff:ff:ff:ff:ff:ff
3: eth1: <broadcast,multicast> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:11:d8:39:5c:e4 brd ff:ff:ff:ff:ff:ff
24: tap0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast qlen 500
link/ether 00:ff:1c:00:23:8b brd ff:ff:ff:ff:ff:ff
25: br0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc noqueue
link/ether 00:11:d8:39:4e:d0 brd ff:ff:ff:ff:ff:ff
inet 10.20.1.28/21 brd 10.20.7.255 scope global br0
urchin:/home/mzugec/svn/trunk/network/src # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0011d8394ed0 no eth0
tap0
Using TAP device with VirtualBox.
Virtualized machine through tunnel connected into bridge is accessible from outside network!
openSUSE 11.0 KDE3 Live CDst
The process of installing KDE3 on openSUSE no matter what desktop environment users were using was quite simple to follow:
# zypper install -t pattern kde3or if you just want a clean KDE 3 base:
# zypper install --no-recommends -t pattern kde3or even by selecting "KDE3 Base System" pattern on YaST. Easy, isn't it?
Well, for those lazy people who don't want to install openSUSE with KDE4, GNOME, XFCE or any other and then install KDE3 I have a gorgeous news: openSUSE 11.0 KDE3 Live CDs are now available!
- openSUSE 11.0 KDE3 LiveCD (i686)
- openSUSE 11.0 KDE3 LiveCD (x86_64)
- MD5SUM and SHA1UM
- Kiwi config (32bit) and Kiwi config (64bit)
These Live CDs are also installable CDs and were creating using the openSUSE KIWI Image System. They contain the latest official updates as also the latest packages from KDE:KDE3, KDE:Backports, KDE:KDE4:Factory:Desktop, and KDE:KDE4:Factory:Extra-Apps repositories as of this time of writing.
Big thanks to the KDE Team and Kiwi Team that supported me since the beginning encouraging and helping me in this adventure ;-)
Note: these ISOs are not officially supported by openSUSE nor Novell. If you want to report any bug found use Novell's Bugzilla for better tracking. Feedback or for any other purpose please contact me via email (cgoncalves [at] opensuse [dot] org).




