Home Home
Sign up | Login

Deprecation notice: openSUSE Lizards user blog platform is deprecated, and will remain read only for the time being. Learn more...

LibreOffice 3.4 available for openSUSE

September 15th, 2011 by

I’m happy to announce LibreOffice 3.4 packages for openSUSE. They are available in the Build Service LibreOffice:Stable project.

LibreOffice 3.4 provides many interesting features and fixes. The openSUSE packages are based on the LibreOffice 3.4.2 release but they include all fixes from the last 3.4.3 bugfix 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.

Other information and plans:

It took me quite some time to prepare the 3.4 update because the split build was not longer supported and I had to completely rework the packages.

We are going to prepare official maintenance update for openSUSE-11.3 and 11.4. You might expect it within next few weeks.

I am going further improve the build framework to be able to early provide LO-3.5 packages in the LibreOffice:Unstable project. You might expect something about Christmas, see the LibreOffice 3.5 schedule.

Thoughts about using test driven development for my gsoc project

September 11th, 2011 by

Hi,

as you might know I participated in the GSoC this year. When the coding period
started my mentors and I decided to use the “test driven development” (TDD)
approach to develop the python obs library. In the following I’ll summarize
why I think using this approach was a good idea and how it helped me to write
the code.

  • It helps with designing a class interface
    With TDD you usually write the testcases _before_ the actual code. When
    doing so you already get a feeling if the design of the interface or method
    is practical because you use the interface multiple times in your testcases.
    Example:
    One of the first coding tasks was to write a class for managing (editing,
    saving etc.) project/package xml metadata. For instance a common use case
    is to add a new repository the project’s metadata so I wrote a testcase for
    it. The first version looked something like this:

    prj = RemoteProject('foobar')
    repo = prj.add_element('repository', name='openSUSE_11.4')
    repo.add_element('arch', 'x86_64')
    repo.add_element('path', project='openSUSE:11.4', repository='standard')

    I think this doesn’t really look pythonic (but of course this is just a
    matter of taste) so finally I ended up with the following:

    prj = RemoteProject('foobar')
    repo = prj.add_repository(name='openSUSE_11.4')
    repo.add_arch('x86_64')
    repo.add_path(project='openSUSE:11.4', repository='standard')

    (of course the add_* methods aren’t statically coded in the RemoteProject’s
    class – instead we use a “ElementFactory” which is returned by an overridden
    __getattr__ (for the details have a look at the code:) ))
    Without TDD I probably would have implemented the first version and
    afterwards I had realized that I didn’t like it…

  • It helps structuring the code
    Let’s consider some “bigger” method which needs quite some logic like
    the wc.package.Package class’ update method (the update method is used to
    update an osc package working copy). Before writing the testcases I started
    to think about how the update method can be structured and what parts can
    reside in its own (private) method (probably a natural thing which has
    nothing to do with TDD). I ended with the following rough layout:

    • calculate updateinfo: a method which calculates which files have to be
      updated (in particalur it returns an object which encapsulates newly added
      filenames, deleted filenames, modified filenames, unchanged filenames etc.)
    • perform merges: a method which merges the updated remote file with the
      local file
    • perform adds: simply adds the new files to the working copy
    • perform deletes: deletes local files which don’t exist anymore in the
      remote repo

    Then I started to write some testcases for the calculate_updateinfo method
    and implemented it. Next I wrote testcases for the various different update
    scenarios and implemented the methods and so on. It is probably much
    easier to write testcases for many small methods than for a few “big” methods.
    From time to time I realized that I forgot to test some “special cases”, so
    I added a new testcase, fixed the code and ran the testsuite again. The cool
    thing is if the testsuite succeeds (that is the fix doesn’t break any of
    the existing testcases + the newly added testcase succeeds) one gains
    confidence that the fix was “correct”.

  • It speeds up the actual coding
    My overall impression is that TDD “speeds” up the actual coding a bit. While writing
    the testcases I also thought how it could be implemented. So when all testcases
    were done I had rough blueprint of the method in my mind and “just” transformed
    it into code. For instance it didn’t take much time to write the initial
    version of calculate_updateinfo method.
    But of course this doesn’t work for all methods. Stuff like the Package class’
    update method took quite some time (and thinking!) even though I already wrote
    some testcases. The main reason was the fact that the update should be
    implemented as a single “transaction” (the goal was that the working copy
    isn’t corrupted if the update was interrupted). As you can see TDD is no
    black magic approach which makes everything easier – thinking is still
    required:)
  • It helps to avoid useless/unused code paths
    I just wrote the code to comply with the existing testcases – no other
    (optional) features were added. Sometimes I realized that some feature was
    missing. In this case I added another testcase and implemented the missing
    feature. So the rule was whenever a new feature was required a testcase had to
    exist (either a testcase which directly tests the modified method or a testcase
    which tests a method which implicitly calls the modified method).
  • It helps to overcome one’s weaker self
    From time to time I had to write some trivial class or method where I
    thought it isn’t worth the effort to write testcases for it. A perfectly
    prominent example was the wc.package.UnifiedDiff class (it’s only purpose is
    to do a “svn diff”-like file diff). At the beginning I wanted to start coding
    without writing testcases because I thought it’s enough to test its base class
    (that’s the place were the interesting things happen and the rest is just
    “presentation/visualization”).
    Luckily I abandoned this idea and wrote the testcases. It turned out that it
    was a good idea because this “trivial” visualization I had in mind was more
    complicated than I initially thought;)
    What I learned from this example is that it is most likely better to write
    testcases because the class/method might evolve and might get more complicated.

Finally here’s a small statistic about osc2’s current code coverage (generated
with python-nose’s nosetest):

Name                Stmts   Miss  Cover
---------------------------------------
osc                     1      0   100%
osc.build              79      4    95%
osc.core               19      2    89%
osc.httprequest       180     19    89%
osc.oscargs           145      1    99%
osc.remote            278     11    96%
osc.source             68      2    97%
osc.util                1      0   100%
osc.util.io            85      8    91%
osc.util.xml           23      0   100%
osc.wc                  1      0   100%
osc.wc.base           173     20    88%
osc.wc.convert         71      6    92%
osc.wc.package        792     39    95%
osc.wc.project        397     20    95%
osc.wc.util           387     28    93%

(line numbers and non osc2 modules are removed)

As a conclusion I would say that using the TDD approach was a good idea and
helped a lot. So you might want to give it a try too – it probably won’t harm:)

Last but not least I want to thank my mentors Sascha Peilicke and
Marcus ‘darix’ Rueckert for their time and tremendous help (meetings,
suggestions, interesting links etc.) during the GSoC. Thanks!

AR.Drone with openCV in the openSUSE 11.4

September 10th, 2011 by

After publishing an article in the openSUSE Wiki (in portuguese sorry) about AR.Drone, I am developing an application to control it using the library opencv computer vision to Processing and using your camera in the operating system openSUSE 11.4. The source code soon in The Open Build Service (OBS), For now, watch the video below of the image HERE.

fsck.ocfs2: I/O error on channel while performing pass 1

September 5th, 2011 by

When running fsck.ocfs2 if you get an error like below, turn off feature metaecc and run it again.

fsck -f -y /dev/drbd0
fsck from util-linux-ng 2.17.2
fsck.ocfs2 1.4.3
Checking OCFS2 filesystem in /dev/drbd0:
Label: vmimages
UUID: B5A45669962C4E40AE9FB2BF16184981
Number of blocks: 157281328
Block size: 4096
Number of clusters: 19660166
Cluster size: 32768
Number of slots: 4

/dev/drbd0 was run with -f, check forced.
Pass 0a: Checking cluster allocation chains
Pass 0b: Checking inode allocation chains
Pass 0c: Checking extent block allocation chains
Pass 1: Checking inodes and blocks.
extent.c: I/O error on channel reading extent block at 112162 in owner 516113 for verification
pass1: I/O error on channel while iterating over the blocks for inode 516113
fsck.ocfs2: I/O error on channel while performing pass 1

#disable metaecc (man tunefs.ocfs2 for more)
tunefs.ocfs2 --fs-features=nometaecc /dev/drbd0

#run fsck again
fsck -f -y /dev/drbd0

to re-enable it after completing fsck, run:
tunefs.ocfs2 --fs-features=metaecc /dev/drbd0

ATI/AMD flgrx : status of the helping pledge

September 1st, 2011 by

Dear users of fglrx drivers (pre-packaged or .run installer)
On 19th August I’ve opened a pledge see this article, and I’m give you today a refresh status :
Click here to lend your support to: Funding ATI-AMD fglrx packager Sebastian Siebert and make a donation at www.pledgie.com !

I personally already thanks of the actual donors. You rocks !
We are almost done at today, but almost is not done 🙂

So if you can spread the word a bit more, that’s would be really cool. My objective is been able to give the money back to Sebastian Siebert during our openSUSE conference. And so create a kind of ceremonial.

Can I count on you ?

 

openSUSE Conference 2011: Straight from the Lab

August 22nd, 2011 by

The annual get-together of openSUSE community, openSUSE Conference kicks at 11-14 September 2011 in lovely Nürnberg, Germany. This year we have more than 100 events scheduled. What makes this year extra special is that SUSE Labs Conference will be hosted along with the openSUSE Conference bringing many technical talks and workshops.

You might not know SUSE Labs beforehand, its the group of people who hacks on low level toolchain stuff like gcc (GNU Compiler Collection) , gdb (GNU Debugger) , binutils and others. So you can expect deep technical talks at the conference, starting with the Link Time Optimization (LTO) in GCC talk on Sunday by Jan Hubicka who works at suse.cz (SUSE Czech Republic) and is a prominent gcc hacker for quite a long time. LTO is a hot topic for any software project given the fact that it improves the overall application performance in most cases. So if you want to squueze more performance out of your own project(s), you shouldn’t miss Jan’s talk.

On Monday another member of suse.cz Jiri Slaby will give a talk titled Static Code Checking — the State of the Art . Recently static code checking got more exposure with the bugs found in projects like Apple’s clang C/C++ compiler, Google’s Chrome web browser and also id Software’s John Carmack praising the process for finding the bugs in their upcoming game title Rage. So if you are found of coding in a static language like C/C++ you should be attending this talk. Also during the day, visitors will also have a chance to attend the gdb workshop to teach some tricks to our beloved debugger gdb. Given that gdb is a powerful tool with an awkward interface I hope to learn more about using it like a pro.

If you are interested in the kernel development, you will be happy to know that two kernel debugging sessions Setting up and Analyzing Kernel Crash Dumps and Kernel Debugging / Instrumentation with Systemtap will be presented by Stefan Seyfried and Michel Rode from B1 Systems GmbH. Also yours truly, together with Vincent Untz will do a workshop titled How to contribute to Factory to get our hands dirty on the basic openSUSE Factory packaging and submission workflow. We hope to give a basic to intermediate introduction to openSUSE Factory packaging with solutions to common encountered problems.

Tuesday starts with another kernel debugging talk Linux IO Tracing by Jan Kara which will be followed by another talk from Jiri Slaby titled Automatic Regression Testing which hopefully will be interesting for all developers. In the evening there will an Advanced Packaging talk by Lars Vogdtand and Pascal Bleser which might teach you a packaging trick or two.

If performance is your thing, you shouldn’t miss Monitoring with Performance Co-Pilot talk by David Disseldorp on Friday. And just before we wrap up the conference Conny Seidel from AMD (Advanced Micro Devices) will give a talk titled Linux Testing – Complexity in a nutshell which will give an overview of Linux testing architecture used over in AMD. It will be interesting to learn about a real-world Linux testing setup.

So that was a small glimpse of what is coming. Remember that registration for openSUSE Conference is free, so hop over here for registration. We hope to see you there!

ATI/AMD fglrx 8.881 Catalyst 11.8 available for openSUSE 11.3, 11.4, 12.1 (Factory)

August 20th, 2011 by

A new version of amd/ati Catalyst 11.8 / fglrx 8.881 is available

I’ve rebuild and published the new rpms today

Catalyst 11.8 - fglrx-8.881 in action

  • 11.8 Quick review :
  • There’s no full changelog for Linux, but Catalyst 11.8 installer (pdf). You can always look for supported chipset at 11.8 Release Notes
  • Get the cheat-sheet 11.8 version
  • Kernel supported up to 3.0x version
  • Removed support of openSUSE 11.2, if you are still using it with Evergreen project, the repository still exist with older version
  • Tested and working on stock 11.4 kde 4.6.0
  • Tested and working on live usb stick 11.4 Gnome3 (GNOME_3.i686-1.3.0-Build1.3.iso + updates)

Contributing back

I’m refering about my previous post, and invite you to help back contributing to
Click here to lend your support to: Funding ATI-AMD fglrx packager Sebastian Siebert and make a donation at www.pledgie.com !

Sebastian Siebert (freespacer) : 11.8 article (German)

Read the rest of this entry »

openSUSE-LXDE logo contest starting now!

August 19th, 2011 by

As recently announced here, the LXDE team is looking for graphics contributors. Trying to involve as much people as possible i created a graphic contest! Is time for you, cool graphics, to create a logo for the openSUSE-LXDE team!

The contest will start tomorrow, everyone is welcome to join!

All the rules are in our wiki!

So? what are you waiting for???

Is just the right time to

Have a lot of fun…

ATI/AMD fglrx : giving back this time

August 19th, 2011 by

Dear flgrx’s users of rpm or ati-installer.run, this time I’m asking your help.
geeko love
Sebastian Siebert (freespacer) give his time to maintain the SuSE part inside the installer. Unfortunately he didn’t have high-end graphics card, nor double screen, and thus is not able to test nor report results to AMD.
He’s also spending time on irc and forum to help users when things goes wrong.

So how can we help him? Simply giving back a little amount of money, if you can afford it.
I’ve opened a pledgie for that : see the full explanation at
pledgie.com/campaigns/15879.

I really count on you. Spread the word.

ps : Catalyst 11.8 is out, stay tuned, I’ll be back this week-end.

openSUSE Conference 2011 Schedule Available

August 17th, 2011 by

Its quite some work to get to a reasonable schedule for a FOSS conference done. You want a balanced program with topics where all visitors can find their interests in. Moreover the level of the talks must be taken care of as well as there should be gravitation centers for key topics within the community. As you usually also seek out for new community members with a conference, some topics which attract new people are also a very good idea. And all that needs to be sorted between rooms with different sizes, the times people can be around, the tracks you think are useful on the event and such. Quite some parameters to take into account.

That said, I am very happy that we could issue the schedule for the openSUSE Conference 2011 today.

For conference organization there is tooling. Or should I say: Should be? Given the huge amount of FOSS conferences around, the number of free alternatives of conference organization systems is fairly small. We decided to go again with Indico, a python based system developed by CERN. It provides support for the whole conference life cycle such as the call for abstracts, the internal judging process, the scheduling and such. With nice help from the developers we got it running smoothly and integrated. Sometimes the interface is not really straightforward, but finally its a very feature rich yet flexible tool that feels like it has managed some large (CERN) conferences already.

For the openSUSE conference 102 contributions were scheduled into four rooms in four days, so it will be quite a exhausting event :-). Unfortunately we still had to reject quite some submissions as the program is stuffed already. Please bear with us.

This year we are really happy to have a joint event with the former SUSE Labs Conference for the first time. That not only brings a lot of high potential speaker to the event, but also much more low level topics around kernel, gcc and such. I think we lacked that a bit at the last conference. Also cool that Greg KH, well known kernel hacker, will enlighten us with a keynote.

Beside the low level topics, we will hear a lot about community affairs, such as social skills for geeks or impressions from our ambassadors work. Another big block is around packaging and the organization and management of openSUSE Factory, our next stable distribution. Some knowledge sharing is always appreciated, I personally look forward to “Working Effectively with GIT” as I am still dreaming of svn in the nights 😉 And what we need to continue to grow our identity as openSUSE project are contributions around our setup and the relationship to SUSE, the commercial offering of SUSE and the importance of openSUSE in that. Michael Miller, SUSE Vice President of Global Alliances & Marketing, will give a keynote here, and there are other talks in that space.

The motto of osc2011 is rwx³ which is a synonym of the idea of interactivity and creativity on the conference. That is a success already as more than the half of the contributions to the conference are BoFs, Workshops or hacking sessions. You do not have to fear to fall asleep in lengthy talks instead you will do stuff 😉

And finally there is the venue. If you have been to the conference last year I need to say its different this year. Nobody will serve you Coke, instead with Zentrifuge you are at a place where usually artists work and do exhibitions. This spirit of hands-on work quickly jumped over on us as the orga team and we are sure that spirit is good for openSUSE 🙂

I hope you have registered for oSC 2011 already….
openSUSE Conference 2011: All openSUSE- and Free Software enthusiasts are invited to come together at this conference to learn, hack and have a lot of fun.