Home Home > 2014
Sign up | Login

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

Archive for 2014

Echoes from oSC’14: state of Factory and openQA

May 8th, 2014 by

No tests, no feature

There has a been a lot of work going on regarding the stabilization of Factory. It is still ongoing process. We have a lot of submissions, Factory is moving really fast and was hard to keep stable. Over the time, there were more and more checks added to the process to make Factory more stable and usable in everyday life. Last of them being added right now are rings and openQA. You can learn more about that in the talk by our release manager coolo. It will also allow you a quick peek behind the curtain on what future will bring.

In that future, one of the core roles in making Factory stable will be played by openQA. As such it got quite some attention during openSUSE Conference 2014 in Dubrovnik. Stable Factory will not happen by itself, it need quite some work. Currently openQA is under heavy development to match the new needs. You can help improving it! The work is being coordinated in a progress.o.o project, the sources are available in a Github’s organization and there is even a talk to introduce you to the world of openQA development 😉

At some point, when openQA gets integrated well enough, users will be able to enjoy “almost” bug free Factory as a rolling distro. How bugfree it will be will depend on our test coverage of the distribution. What is the current state? We have basics pretty well covered, but still sometimes existing tests break and sometimes we miss more tests. If you want to help with making Factory better tested, you can get openQA running locally and start writing tests for stuff that matters to you! During a nice workshop in openSUSE Conference, Ludwig Nussel trained some geekos on how to get a local openQA running and start writing tests. Luckily, workshop was recorded so even if you missed the conference, you can watch it and start writing tests. New tests are welcome, although due to performance reasons (we want openQA to finish at some point, right?), not everything might get run every time. Even though, you can always run your own openQA instance for testing stuff that you care about and reporting to bugzilla!

Looks like there is a bright future in front of us with stable well tested Factory continually rolling forward. There is plenty of work to be done to achieve this, but progress made so far is starting to show results and we will approach the final goal faster as we get more people involved.

Proprietary AMD/ATI Catalyst fglrx 14.4 (14.10.1006-1) rpm released

May 2nd, 2014 by

As of May 2nd, a bunch of new rpm for FGLRX has been released for openSUSE 11.4 to 13.1 including Tumbleweed

Notice

This release concern only owners of radeon HD5xxx or above.
For older gpu, the fglrx-legacy is still 13.1, and thus didn’t work with openSUSE 12.3 or above.
SDB:AMD_fgrlx_legacy
Beware of that, and prefer the free open-source radeon driver which came out of the box from your openSUSE distribution.
For 12.3 and especially 13.1 the free radeon often offer a better experience than the old fglrx-legacy, especially for HD2xxx-HD4xxx range.

Help for spreading the word

Dear fellow I’m counting on you to spread the word, in the different social media you’re subscribed, and also on Mailing list, forums.
Feel free also to translate it into your native language

Release note about 14.4

AMD Full release note

New Features:
The following section provides a summary of new features in this driver version.

Support for the AMD Radeon R9 295X
Ubuntu 12.04.4  support
Full support for OpenGL 4.4
  OpenGL 4.4 supports the following extensions:
		ARB_buffer_storage
		ARB_enhanced_layouts
		ARB_query_buffer_object
		ARB_clear_texture
		ARB_texture_mirror_clamp_to_edge
		ARB_texture_stencil8
		ARB_vertex_type_10f_11f_11f_rev
		ARB_multi_bind
		ARB_bindless_texture
		ARB_spare_texture
		ARB_seamless_cubemap_per_texture
		ARB_indirect_parameters
		ARB_shader_group_vote

Resolved Issues:
This section provides information on resolved known issues in this release of the AMD Catalyst Linux Software Suite.

        Corruption and system hang observed while running Sanctuary BM with Tear Free Desktop enabled
        Memory leak about hardware context
        EGL create context error for glesx
        GPU hand in CrossFire Mode
        [Piglit] Test "spec/arb_vertex_array_object" failed
        [Piglit] Test "glx/GLX_EXT_import_context/free context" failed
        [Piglit] Test "spec/ARB_seamless_cube_map" failed
        Piglit] Test "texture swizzle with border color" failed
        Glxtest failures observed in log file
        Blank screen observed while running steam games with Big picture
        4ms delay observed in the glxSwapBuffers when vsync is enabled
        RBDoom3BFG the game auto quit when use the security camera terminal
        ETQW segmentation fault

Known Issues:
The following section provides a summary of open issues that may be experienced with the AMD Catalyst Linux Software Suite.

Performance on some Steam OS games is lower on 1GB graphics memory cards, compared with 2GB graphics memory cards
Some Piglit tests cause a system hang under Ubuntu

This Catalyst fglrx version support openSUSE version from 11.4 to 13.1 plus Tumbleweed (thus covering kernel from 3.11 to 3.14 series).
A special thanks to Sebastian Siebert for his effort on making this driver working under openSUSE and latest kernel.

If a kind German geeko can take the time to translate his article, put the result in comments below, you will understand that getting it working,
is not just Fun.

(more…)

Have some fun today… try your new kernel

April 30th, 2014 by

Last blog was about how to compile openSUSE kernel from GIT. Now we see how to get it up and running in your system. Again word of warning: Changing kernel is always bit of a hardcore trick! Even if it comes from trusted and tested binary from openSUSE (sorry I’m server admin). If you do it by yourself then you are also on your own if your machine won’t boot anymore! (more…)

Have some fun today… compile kernel

April 15th, 2014 by

Are you bored or seeking something to do? Do you want to do something that your friends will call just waste of time but it is so highly nerdy and most cool? Do you want to know what makes openSUSE or Linux in general tick? (more…)

Emscripten and openSUSE: Hands on.. Hands up!

March 24th, 2014 by

Emscripten logo
I can code with javascript and I’m fairly good at it (not marvelous just brialiant!). If you have read some of my resent blog post I think in C/C++/Perl or Bash. I also have some kind of a hobby to help out with UnReal world RPG game. Mostly my part is to make it work with *nix platform (mainly Linux and Mac OS X).
As we have seen world is moving fast forward towards web. It’s the-place-to-be for everyone. There is huge potential for players just wandering around and yelling for pleasure to play UrW! So I thought let’s see if we could port SDL to javascript/Flash or something straight from same source. after tiny amount of searching I popped up Emscripten. (more…)

Proprietary AMD/ATI Catalyst fglrx rpms released

March 23rd, 2014 by

Proprietary AMD/ATI Catalyst fglrx rpms released

Patience is a virtue, especially with AMD gpu drivers, but today is the FGLRX day!

Yesterday Sebastian Siebert has published new versions for almost everything (except legacy dead horse).

So after 3 versions of the driver, compiled for 6 versions of openSUSE, under 2 arch, the rpms have been published today

Question : how many compilation does that mean? 🙂

Résumé

# # AMD fglrx standard (HD5xxx+ radeon gpu) 13.251-4

So we got a new build of the 13.12 standard version, including support for newer 3.14x kernel.Available for openSUSE 11.4 to 13.1 plus Tumbleweed

mirror link

Informations & bugreport Sebastian’s blog

# # AMD fglrx standard BETA 14.3V1.0 (HD5xxx+ radeon gpu)

Sebastian refresh the script to build the last beta offered by AMD

If you feel brave enough to work them, the rpm are located at the repository address

beta mirror link

Informations & bugreport Sebastian’s blog

# # NEW AMD fglrx unified for FirePro & FireMV gpu 13.251-1

Sebastian now offer also the support for the unified driver for FirePro & FireMV gpu.

The driver is also called fglrx, and you should not mix the different repository. So take care of that.

We create a new repository you could use.

amd-fire-unified mirror link

Informations & bugreport Sebastian’s blog

(more…)

Cloudy with a touch of Green

March 19th, 2014 by

Finally there is some news regarding our public cloud presence and openSUSE 13.1. We now have openSUSE 13.1 images published in Amazon EC2, Google Compute Engine, and Windows Azure.

Well, that’s the announcement, but would make for a rather short blog. Thus, let me talk a bit about how this all works and speculate a bit why we’ve not been all that good with getting stuff out into the public cloud.

Let me start with the speculation part, i.e. hindrances in getting openSUSE images published. In general to get anything into a public cloud one has to have an account. This implies that you hand over your credit card number to the cloud provider and they charge you for the resources you use. Resources in the public cloud are anything and everything that has something to do with data. Compute resources, i.e. the size of an instance w.r.t. memory and number of CPUs are priced differently. Sending data across the network to and from your instances incurs network charges and of course storing stuff in the cloud is not free either. Thus, while anyone can put an image into the cloud and publish it, this service costs the person money, granted not necessarily a lot, but it is a monthly recurring out of pocket expense.

Then there always appears to be the “official” apprehension, meaning if person X publishes an openSUSE image from her/his account what makes it “official”. Well first we have the problem that the “official” stamp is really just an imaginary hurdle. An image that gets published by me is no more or less “official” than any other images. I am after all not the release manager or have any of my fingers in the openSUSE release in any way. I do have access to the SUSE accounts and can publish from there and I guess that makes the images “official”. But please do not get any ideas about “official” images, they do not exist.

Last but not least there is a technical hurdle. Building images in OBS is not necessarily for the faint of heart. Additionally there is a bunch of other stuff that goes along with cloud images. Once you have one it still has to get into the cloud of choice, which requires tools etc.

That’s enough speculation as to why or why not it may have taken us a bit longer than others, and just for the record we did have openSUSE 12.1 and openSUSE 12.2 images in Amazon. With that lets talk about what is going on.

We have a project in OBS now, actually it has been there for a while, Cloud:Images that is intended to be used to build openSUSE cloud images. The GCE image that is public and the Amazon image that is public both came from this project. The Azure image that is currently public is one built with SUSE Studio but will at some point also stem from the Cloud:Images OBS project.

Each cloud framework has it’s own set of tools. The tools are separated into two categories, initialization tools and command line tools. The initialization tools are tools that reside inside the image and these are generally services that interact with the cloud framework. For example cloud-init is such an initialization tool and it is used in OpenStack images, Amazon images, and Windows Azure images. The command line tools let you interact with the cloud framework to start and stop instances for example. All these tools get built in the Cloud:Tools project in OBS. From there you can install the command line tools into your system and interact with the cloud framework they support. I am also trying to get all these tools into openSUSE:Factory to make things a bit easier for image building and cloud interaction come 13.2.

With this lets take a brief closer look at each framework, in alphabetical order no favoritism here.

Amazon EC2

An openSUSE 13.1 image is available in all regions, the AMI (Amazon Machine Image) IDs are as follows:

sa-east-1 => ami-2101a23c
ap-northeast-1 => ami-bde999bc
ap-southeast-2 => ami-b165fc8b
ap-southeast-1 => ami-e2e7b6b0
eu-west-1 => ami-7110ec06
us-west-1 => ami-44ae9101
us-west-2 => ami-f0402ec0
us-east-1 => ami-ff0e0696

These images use cloud-init as opposed to the “suse-ami-tools” that has been used previously and is no longer available in OBS. The cloud-init package is developed in launchpad and was started by the Canonical folks. Unfortunately to contribute you have to sign the Canonical Contributor Agreement (CCA). If you do not want to sign it or cannot sign it for company reasons you can still send stuff to the package and I’ll try and get the stuff integrated upstream. For the interaction with Amazon we have the aws-cli package. The “aws” command line client supersedes all the ec2-*-tools and is an integrated package that can interact with all Amazon services, not just EC2. It is well documented fully open source and hosted on github. The aws-cli package replaces the previously maintained ec2-api-tools package which I have removed from OBS.

Google Compute Engine

In GCE things work by name and the openSUSE 13.1 image is named opensuse131-20140227 and is available in all regions. Google images use a number of tools for initialization, google-daemon and google-startup-scripts. All the Google specific tools are in the Cloud:Tools project. Interaction with GCE is handled with two commands, gcutil and gsutil, both provided by the google-cloud-sdk package. As the name suggests google-cloud-sdk has the goal to unify the various Google tools, same basic idea as aws-cli, and Google is working on the unification. Unfortunately they have decided to do this on their own and there is no public project for google-cloud-sdk which makes contributing a bit difficult to say the least. The gsutil code is hosted on github, thus at least contributing to gsutil is straight forward. Both utilities, gsutil for storage and gcutil for interacting with GCE are well documented.

In GCE we also were able to stand up openSUSE mirrors. These have been integrated into our mirrorbrain infrastructure and are already being used quite heavily. The infrastructure team is taking care of the monitoring and maintenance and that deserves a big THANK YOU from my side. The nice thing about hosting the mirrors in GCE is that when you run an openSUSE instance in GCE you will not have to pay for network charges to pull your updated packages and things are really fast as the update server is located in the same data center as your instance.

Windows Azure

As mentioned previously the current image we have in Azure is based on a build from SUSE Studio. It does not yet contain cloud-init and only has WALinuxAgent integrated. This implies that processing of user data is not possible in the image. User data processing requires cloud-init and I just put the finishing touches on cloud-init this week. Anyway, the image in Azure works just fine, and I have no time line when we might replace it with an image that contains cloud-init in addition to WALinuxAgent.

Interacting with Azure is a bit more cumbersome than with the other cloud frameworks. Well, let me qualify this with, if you want packages. The Azure command line tools are implemented using nodejs and are integrated into the npm nodejs package system. Thus, you can use npm to install everything you need. The nodejs implementation provides a bit of a problem in that we hardly have a nodejs infrastructure in the project. I have started packaging the dependencies, but there is a large number and thus this will take a while. Who would ever implement….. but that’s a different topic.

That’s where we are today. There is plenty of work left to do. For example we should unify the “generic” OpenStack image in Cloud:Images with the HP specific one, the HP cloud is based on OpenStack, and also get an openSUSE image published in the HP cloud. There’s tons of packaging left to do for nodejs modules to support the azure-cli tool. It would be great if we could have openSUSE mirrors in EC2 and Azure to avoid network charges for those using openSUSE images in those clouds. This requires discussions with Amazon and Microsoft, basically we need to be able to run those services for free, which implies that both would become sponsors of our project just like Google has become a sponsor of our project by letting us run the openSUSE mirrors in GCE.

So if you are interested in cloud and public cloud stuff get involved, there is plenty of work and lots of opportunities. If you just want to use the images in the public cloud go ahead, that’s why they are there. If you want to build on the images we have in OBS and customize them in your own project feel free and use them as you see fit.

How to filter a certain class of hardware in dhcpd.conf

March 19th, 2014 by

To prepare the end of the XP world

Atfer 8th April 2014, Windows XP system will be Like children in the lions’ den, if connected to internet

In a network around, all the still running XP are all vmware virtual machine, and none of the end-users are the right to modify the settings of the virtual machine, nor has administrative right under XP

The idea is the simply to just suppress the gateway of the network.

Playing with dhcpd.conf

There’s lot of way to handle this classification, but I discover that you need to find the right syntax, and understand how the binary-to-ascii function of dhcpd work.

First binary-to-ascii remove any leading 0, then we will just readd them 🙂

Extract of the dhcpd.conf

# binary-to-ascii remove leading 0 rebuild the complete MAC
set testmac = concat ( suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":",  suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2) );

# Extract the only first 8 chars 
set testclass = substring(testmac, 0, 8);
# You will find a lot of this on internet but doesn't work
# set testmac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));

# All our VMware VM use the same prefix
if ( testclass = "00:0c:29" ){
  # put dummy router
  option routers 127.0.0.1;
  # useful debug log
  log (info, "xp32 lease");
}else{
  # Default gateway for anyone else
  option routers 192.168.1.254;
  log (info, "standard lease");
}

That’s all for today

osc build with kvm on an encrypted volume group

March 15th, 2014 by

How-to build a initrd-virtio on a fully encrypted volume group

If like me you care about your data stored on your laptop, you certainly use a fully encrypted (excepted /boot) configuration based on lvm.

In my case I also like to create, build, fix packages locally with our tool osc. I’ve plenty of power, beefy ssd, so I dedicate a logical lvm for building cleanly package with qemu-kvm configuration, like obs does

Prepare the kvm building system

As root you create 2 lvm volume with lvcreate, one will be the build root, the other one will be the additional swap

In ~/.oscrc I enable the following parameters

build-type = kvm
build-device = /dev/mapper/vg0-lvobsbuild
build-swap = /dev/mapper/vg1-lvobsswap
build-memory = 4096
build-vmdisk-rootsize = 16000
build-vmdisk-swapsize = 4000
build-vmdisk-filesystem = ext4

You just have to adjust the Memory quantity and the device to what you create for your own environment.

(more…)

Help yourselves to our low hanging fruit!

March 13th, 2014 by

An update on what we’re doing and a call for help!

openQAv2

openQAv2

What was going on

From our previous posts you probably know what do we do these days. We are working on our goal to make Factory more stable by using staging projects and openQA. Both projects are close to reaching important milestones. Regarding the osc plugin that is helping out with staging, we are in the state that coolo and scarabeus can manage Factory and staging projects using it. We did some work on covering it with tests and currently we are somewhere half-way there. Yes, there is a room for improvement (patches are welcome), but it is good enough for now. We are missing integration with OBS, automation and much more. But as the most important part of all this is integration with openQA, we decided to put this sprint on hold and focus even more on openQA.

How to play with it and help move this forward?

During our work, we found some tasks that are not blocking us but would be nice to have. Some of these are quite easy for people interested in diving in and making a difference in these projects. We put them aside in progress.opensuse.org to make it easilly recognizable that these tasks can be taken and are relatively easy. Let’s take a closer look at what tasks are there to play with. Of course – it would be very cool if, through using the new tools, you find out other things that improve the work flow!

  • Helping staging. I already mentioned one way you can help our factory staging plugin.
  • Improving test coverage. It might sound boring at first, but is a quite entertaining task. We have a short documentation explaining how tests work. In summary, we have a class simulating a limited subset of OBS and we just run commands and wait whether our fake OBS ends up in correct state. This makes writing tests much easier. To make it more interesting, we use Travis CI and Coveralls. Big advantage of those is that it does a test run on every pull request and shows you how you improved the test coverage. It also shows what is not covered yet. In other words, it shows what should be covered next 🙂
  • What else needs to be done to make staging project more reliable is to fix all packages that are randomly failing. This is mostly packaging/obs debugging task. So doesn’t require any python and can be done package by package.
  • Last thing on the staging projects todo list for now is making the staging api class into singletons. For those who know python this is actually really easy. But while at it, you will be taking a look at the rest of our code and we will definitely not mind anybody polishing it or removing bugs!
coveralls in action

coveralls in action

Helping openQA

In openQA, currently we have code cleaning tasks. It’s about polishing the code we have – like removing useless index controller and fixing code highlighting. Or doing simple optimizations – like caching image thumbnails.

In case of openQA, you might be a little confused where to send your code. We have been doing some short and mid term planning with Bernhard M. Wiedemann, the man behind openqa.opensuse.org and one of the original openQA developers, together with Dominik Heidler. Now the code considered to be ‘upstream’ have been moved to several repositories under the os-autoinst organization in github. This code contains all the improvements introduced to extensivelly test our beloved openSUSE 13.1. The next generation of the tool is being developed right now in a separate repository and will be merged into upstream as soon as we feel confident enough, which means more automated testing, more staging deployments and more code revisions and audits. If you want to help us, you are welcome to send pull requests to either of those repositories and someone will take a look at them.

What next?

As we wrote, we are currently putting all our effort into openQA. We already have basic authentication and authorization, we are working on tests, fixing bugs and making sure the service in general is easy to deploy. And of course we are working toward our main goal – having a new openQA instance with all cool features available in public. Currently it is already kind of easy to get your own instance running, so if you are web or perl developer, nothing should stop you from playing with it and making it more awesome!