Skip to main content

the avatar of Frédéric Crozat

The road to systemd for openSUSE 12.1

Hi all,

img_2326

systemd is coming for next openSUSE (12.1) scheduled next fall.

I'll help for systemd integration in openSUSE Factory and will act as an interface between you (openSUSE testers, packagers, developers) and systemd upstream.

As you might guess, switching boot manager is not a trivial task and issues will be found. So, we want to have as much feedback and testing as possible, to try to tackle as much (if not all) issues in time for 12.1.

Here is our action plan, in several phases:
  • phase 1: detecting current issues with systemd. Install systemd package and "manually" boot with it, by adding "init=/bin/systemd" at you kernel boot command line. In this setup, we want to find ALL the issues caused by switching to systemd, so please, check systemd on Factory status page and follow the instructions there to fill bug reports. We also want to ensure there is no regression, when using legacy sysvinit initscripts with systemd as boot manager.
  • phase 2: systemd-sysvinit package installed by default and replace sysvinit.
  • phase 3: providing systemd unit files to replace legacy sysvinit initscripts: this is a huge task which won't be completed before openSUSE 12.1, but it can be parallelized among a lot of people (ideally, each packager should be able to create unit systemd file). And we should also split this effort in manageable milestones :
    • phase 3.1: GNOME and KDE live CDs should only use "native" systemd, without any sysvinit involved
    • phase 3.2: installed system using GNOME and KDE live CDs be a "native" systemd (this involves testing additional paths in live installer)
    • phase 3.3: install from DVD for GNOME and KDE should be "native" systemd
Of course, providing systemd unit file should not be a pure "openSUSE" task, because the ultimate goal for those files is to be cross-distribution and merged in relevant upstream projects. And we also don't want to duplicate effort which is starting in other distributions like Fedora, so, collaboration is key. I strongly recommend reading systemd for Administrators, Part III post about the conversion (and also all other posts : systemd for Administrators #1, #2, #3, #4, #5, #6, #7,#8 they are highly instructive).

For discussing / helping with systemd integration for Factory, please use opensuse-factory mailing list or go to #opensuse-factory IRC channel on Freenode.

We need your help to make sure openSUSE 12.1 will use systemd at 200% ;)
the avatar of Alex Eftimie

PackageKit backend for Software Center: week 2 report

A week of fail and win has almost ended.

On the fail part, I had a hard time building pygobject, gobject-introspection and glib from git.gnome.org. At first I’ve trying pulling from git, configuring and building, without luck. Then I switched to jhbuild, which after a few sanitychecks, bootstraps and configuration, worked; a day after I found that I’m on the stable branch (-2-28/gnome-3) which wasn’t good enough for my aim at patching master, and have switched branches to master, trying build -n. Of course it didn’t work until I hacked PKG_CONFIG_PATH to include paths such as /usr/share/pkgconfig, /usr/lib/pkgconfig and /usr/lib/i386-linux-gnu/pkgconfig – with help from walters on #introspection. This week my hard drive was about to die – because of a bug in the kernel driver for ata, it was reset every 30 seconds, causing everything to freeze. Different liveCDs have failed, the symptoms were ambigous and hard to reproduce – almost an entire day of fun.

On the win side, I figured out the hdd problem, and locked the kernel version to 2.6.38-9 for now. Hacked pygobject, posted patch in bugzilla B-), I’m one step further into making packagekit python bindings work; also I used the remaining time to push forward some more preparation refactor on software-center.

I have also updated the GSoC timeline – I’ll try to keep it up to date.

For the next week, same objectives remain.

PS: If you’re a python hacker and feel like helping out :-) , please check this bug report out.

the avatar of Efstathios Agrapidis

Greek openSUSE community, Translation of openSUSE Weekly news in Greek(issue 178)

Hello out there,

I am very pleased to announce the new issue (178) of openSUSE Weekly
News in Greek.

In this one you will read about:

* First step towards 12.1 with Milestone 1
* Andreas Jaeger: Factory Progress 2011-06-03
* Sebastian Kügler: kollaboration in at platform 11
* Linus Torvalds: Linux 3.0-rc1
* Sean Michael Kerner: Oracle gives OpenOffice to Apache

And of course many many interesting news about openSUSE, plus usefull
advice for making our lives easier.

Enough… read more at: own.opensuse.gr or at
http://el.opensuse.org/Weekly_news.

Looking forward to hearing your comments, advice and anything you would
like to read about at the next issue.

The openSUSE Weekly News is translated in the Greek language from issue #150. You can read older translated issues here: http://el.opensuse.org/Κατηγορία:Weekly_news_issues

Enjoy it!
Efstathios Agrapidis (efagra)

the avatar of Alex Eftimie

PackageKit backend for Software Center: week 1 report

This week was a good week for coding, and the best part about it: most of my changes are now in s-c’s upstream trunk.

I started out trying to populate s-c database with only a few applications; this meant updating the update-software-center tool, and also changing some bits on the database update module. I was glad to discover that some functionality I have planned to develop in week 6 (parsing AppStream app-data xmls) was already there, thus making my job easier :-)

After that, work continued by abstracting backend parts, such as InstallBackend and TransactionsWatcher, and also isolating as much as posible apt and apt_pkg usage. I have then expanded the PackageInfo abstraction to implement a dictionary like interface, containing _Package objects (before that, apt.Package were returned). It took some small steps, and sometimes mistakes from my side, but in the end, I guess I have got it done right. Work still needs to be done regarding usage of candidate and installed properties (which currently are apt.Version objects), and also on AptCache try_install_and_*depends methods (this should be either abstracted, either made apt-backend specific.

At the end of the week, preparing the next point of focus, I have managed to get a developing environment with PackageKit with Python gobject introspection data. Here comes the bad news: the py GI for packagekit is not ready for prime time. Reasons for that: GI is relatively new, there are no other users of PK from Python (only C and Vala). With help from ximion, hughsie, dantti and tomeu (and many other kind souls on #PackageKit, #introspection or #python), we isolated the problem inside pygobject, apparently an incomplete implementation of GPtrArray. I hope to get it fixed next week :-) , so that I can continue work with PK.

Although I am a bit worried seeing segfaults in Python, it’s a sunny day out here (so I can finish my report on a non-technical note) so I’m sure that with help from these awesome people on IRC,  problem will be solved, and my project will continue according to the plan.

Next week: gi ninja and more PK!

the avatar of Andreas Jaeger

Factory Progress 2011-06-03

This week saw the release of the first milestone of openSUSE 12.1 and work on factory is continuing, I’ve found the following changes important:

GNU C Library (glibc) 2.13

We’ve updated glibc from version 2.11 to 2.13 which brings many bug fixes and AFAIK no major breakages to packages. The package itself got cleaned up a little bit as well, so please report any problems.

GO Programming Language

Factory now contains a compiler for the GO language which is “is an expressive, concurrent, garbage collected systems programming language that is type safe and memory safe.”. More details about GO are available on the openSUSE Wiki, the devel project with additional packages is devel:languages:go.

Packaging: Source Processing

The usage of _service files in Factory confused many packagers and resulted in broken packages so that these will be deprecated. As a replacement, Adrian implemented now a new source processing method and asks for testers.

Packaging: Adding useful Provides to cups drivers

Vincent “updated python-cups to a new version, and it is now shipping
files to automatically add Provides tag to packages that are shipping
cups drivers.”. This allows desktop packages to install the right printer driver – or users to do it via zypper. Packages with cups drivers just need to add a “BuildRequires: python-cups”.

Open Build Service Improvement

The “My Work” view has been updated to better show packages that are in review state and need your review. I suggest everybody to check out the page and cleanup your list.

Multiple Buildroots with osc

If you like to use more than one build at the same time, there are several options like pointed out on the opensuse-packaging mailing list:

  • Use of the environment variable OSC_BUILD_ROOT to define a build root.
  • Editing of the osc config file ~/.oscrc and setting build-root to contain the variables %(repo), %(arch),  %(project) or %(package).

Correction on auto-legal build service check

Jürgen corrected my report from last week: He would love to see the checks for auto-legal moved and welcomes any help.

Thanks

Thanks for the words of encouragement to my first blog post. I’ll try to continue this series. If there’s anything you think should be added to it, please contact me via email at aj at opensuse dot org.

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

A utility for merging configuration / sysconfig files – Week 2 Report

This is my second report about my gsoc project, well what is new: This week I occupied my self with augeas, it is the first time I try to use and expand an already existing library and utility. Even thought Augeas is very well documented and the people in their community are very helpful, i had some problems combining my thoughts and ideas with the existing code, because i was trying to find out the best way to avoid code duplication etc. That was at least at the start, now at the end of the week I can say that I am more familiar with the Augeas API and this will certainly help me in the coming weeks.

As long as it concerns the actual merging procedure, i began coding an implementation i have thought. Unfortunately, the approach i used was not sufficient generalized to work with all the configuration files. Therefor i had, to erase most of the coding i did these days. However, from every negative thing comes a positive, in this case, I was able to find a better solution that rise some new problems, however i hope I will be able to find out an answer for them in the following days and implement the right code.

Finally, a merge tool command was added in augtool that is able to use the aug_merge command i added in the library, the particular command will accept a source and a dest tree/path and will then try to combine them according to the flags that i will add as enumeration. The final conclusion I must speed up things a bit 🙂 cause there are unexpected problems that may occur at the implementation at any time.

Best Regards,
Christos

the avatar of Matthias Hopf

RAnsrID: Galois Field / Reed-Solomon code rewrite pending

While starting to implement error resilience (not erasure resilience, which is already working nicely) in my RAID-lookalike multi-disk block device RAnsrID, I finally had to notice that I didn't understand one aspect of Galois Field mathematics - the Reed-Solomon representation type has heavy influence on how to deal with errors (read: corrupted data).

So far, I only understood the canonical matrix style representation (basically a linear combination over the data disks for each redundancy disk). Turns out that with polynomial representation you can create way better (read: faster) algorithms for error correction - according to my analysis, erasure and error recovery is O(N²), compared to O(N³) for erasure correction in the linear combination case, and unknown (presumably O(N³⋅M²)) in the error case (N: total number of disks, M: number of redundancy disks).

Thus I will rewrite the redundancy routines based on Phil Karn's Reed-Solomon implementation - the best implementation with an open license I could find. Most implementations (like in par2) don't bother with error correction, and use block-level checksums to detect errors. That done, erasure recovery can be used. Needless to say, this is no option for my block device (where and why should I store the checksums).

No need to say that this delays delivery timeframe of RAnsrID further; especially as I'd like to incorporate the change in an at least data preserving backwards compatible way.

Also Hackweek 6 wasn't as productive as I hoped; I only managed to get the test suite up and running. Oh well.

the avatar of Efstathios Agrapidis

Greek openSUSE community, Translation of openSUSE Weekly news in Greek(issue 177)

Hello out there,

I am very pleased to announce the new issue (177) of openSUSE Weekly
News in Greek. In this one you will read about:

* openSUSE renames OBS
* Bryen Yunashko: Ready…Set…Code!
* Andreas Jaeger: Factory Progress
* Matt Barringer: SUSE Gallery Desktop Client
* Christos Bountalis: A utility for merging configuration / sysconfig files – Week 1
Report

And of course many many interesting news about openSUSE, plus usefull
advice for making our lives easier.

Enough… read more at: own.opensuse.gr or at
http://el.opensuse.org/Weekly_news.

Looking forward to hearing your comments, advice and anything you would
like to read about at the next issue.

The openSUSE Weekly News is translated in the Greek language from issue #150. You can read older translated issues here: http://el.opensuse.org/Κατηγορία:Weekly_news_issues

Enjoy it!
Efstathios Agrapidis (efagra)

the avatar of Efstathios Agrapidis

Greek openSUSE community, Translation of openSUSE Weekly news in Greek(issue 176)

Hello out there,

I am very pleased to announce the new issue (176) of openSUSE Weekly
News in Greek. In this one you will read a lot about free (as in freedom) software conferences, either they have already been done, or they will be done in the direct future.
A little sample from the subjects:

* openSUSE Conference 2011 to be creative and open!
* Manu Gupta: My GSoC Project – SaX3
* Michal Hrušecký: LinuxTag 2011
* Will Stephenson: Have you BURPed yet today?
* Anastasios Ksouzafeiris: How to install Enlightenment (E17) in openSUSE 11.4

And of course many many interesting news about openSUSE, plus usefull
advice for making our lives easier.

Enough… read more at: own.opensuse.gr or at
http://el.opensuse.org/Weekly_news.

Looking forward to hearing your comments, advice and anything you would
like to read about at the next issue.

Enjoy it!
Efstathios Agrapidis (efagra)

the avatar of Andreas Jaeger

Factory Progress

A lot of things are happening in our Factory distribution that will be released in November 2011 as openSUSE 12.1 and I’d like to point out a few things from the last few weeks that users and developers of factory shouldn’t miss.

Roadmap openSUSE 12.1

Stephan “Coolo” Kulow has updated the openSUSE 12.1 Roadmap, the next milestone is Milestone 1 which is delayed and targeted now for release on Tuesday, 30th May. The next paragraphs highlight some of the updates for this versions.

GCC 4.6

The GNU Compiler Collection has been updated to version 4.6, the list of  changes includes the following new warning that will be visible while compiling packages for openSUSE Factory:

  • “New -Wunused-but-set-variable and -Wunused-but-set-parameter warnings were added for C, C++, Objective-C and Objective-C++. These warnings diagnose variables respective parameters which are only set in the code and never otherwise used. Usually such variables are useless and often even the value assigned to them is computed needlessly, sometimes expensively. The -Wunused-but-set-variable warning is enabled by default by -Wall flag and -Wunused-but-set-parameter by -Wall -Wextra flags.”

Some packages have been failing by the new GCC due to new warnings and new optimizations and most have been fixed already but please double check that your packages are building and running fine.

RPM 4.9

Michael Schröder announced RPM 4.9 for Factory. He explains the main packager visible changes as:

“Besides some bug fixes and an update to a newer BerkeleyDB
library rpm-4.9.0 contains plugin architecture for dependency
generation. In older rpms, the internal dependency generator
was pretty much hardcoded in C, so we always used the old
external one to generate dependencies. With rpm-4.9.0, the
internal generator has become flexible enough so that we
can use it.

This means for you, that rpm will no longer use the %__find_provides and %__find_requires macros. Some packages redefined those macros to be able to filter the generated dependencies.
This will no longer work in rpm-4.9.0. Instead, support for
dependency filtering was added to rpm…”

GNOME 3

GNOME 3 has now hit Factory as well and Vincent Untz explained how to fix failures due to the large push.

Linux Kernel 2.6.39

This update was a “boring” update – nothing broke AFAIK ;), so I hope it’s a solid version. Users will benefit from the new features in it. 2.6.39 is the first kernel without the Big Kernel Lock at all!

Packaging Changes

Besides new software, also new ways of handling it get introduced. The following catched my eyes:

Rpmlint update

Ludwig Nussel updated rpmlint to version 1.2 and explained the new warnings about packaging of rpm packages – and what to do about them.

Changing the process of Factory submissions with the Open Build Service

Now with every submission to Factory scripts are run automatically that do two different reviews before the package goes to human check-in review:

  • The “legal-auto” review checks the updated package for changes in licenses.
  • The “factory-auto” review checks that the updated package builds actually in the devel project – and if not, rejects it.

The “legal-auto” review has quite a long backlog at the moment and Jürgen is working on moving some of the checks to rpmlint or osc checks – so that the packager notices and fixes them before submission to Factory.

Also, you can now submit packages to Factory even if you are not the maintainer of the package but in this case the maintainer (packager) gets a review request to review that the package really can go to factory and thus a plea to packagers to handle their review requests.

openSUSE Conference

The openSUSE Conference is this year co-located with the SUSE Labs conference. Join us to present and discuss also Factory related topics. The Call for papers is open now!

I’m interested on feedback on this article – should I start a series?