Home Home > Build-service
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 the ‘Build Service’ Category

Hamradio packages ready !

June 19th, 2008 by

Tim and I updated the Amateur radio (hamradio) packages and made them ready for 11.0 .

Amateur radio (also Hamradio) is both a hobby and a service in which participants, called “hams”, use various types of radio communications equipment (also homebrew) to communicate with other radio amateurs for public service, recreation and self-training.

The repository is available at http://download.opensuse.org/repositories/hamradio/ .

You can also install single packages via the 1-click-Installer of the software-search-portal at http://software.opensuse.org/search or add the repository to YaST2/zypper.

YaST2:

Open the repository editor and add http://download.opensuse.org/repositories/hamradio/<your distribution version>

Example: http://download.opensuse.org/repositories/hamradio/openSUSE_11.0/

zypper:

10.1: zypper ar -r http://download.opensuse.org/repositories/hamradio/SUSE_Linux_10.1/hamradio.repo

10.2: zypper ar -r http://download.opensuse.org/repositories/hamradio/openSUSE_10.2/hamradio.repo

10.3: zypper ar -r http://download.opensuse.org/repositories/hamradio/openSUSE_10.3/hamradio.repo

11.0 zypper ar -r http://download.opensuse.org/repositories/hamradio/openSUSE_11.0/hamradio.repo

Here’s a list of available packages:

7plus
acfax
aldo
aprsd
as296-tty
ax25-apps
ax25-doc
ax25spyd
ax25-tools
axssh
axw3
baken
baycomepp
conlogv
cwdaemon
digi_ned
dpbox
dxc
fbbdoc
fbbsrv
fldigi
fltk
fpac
glfer
gmfsk
gnuradio
gpredict
gpsk31
gpsman
gpsmanshp
grig
HamFax
hamlib
hamlog
hf
ibp
kamplus
klog
kpsk
kptc
ktrack
libax25
libgdal
libgeos
libgeotiff
libhdf4
libproj4
linkt
linrad
minimuf
mtrack
multimon
node
qgrid
qrq
qsstv
rspfd
sdcc
shapelib
soundmodem
spandsp
splat
svxlink
tfkiss
tkconv
tlf
tnt
twpsk
unixcw
wxapt
xastir
xcall
xcircuit
xconvers
xdemorse
xdx
xfhell
xlog
xoscope
xsmc-calc
xwxapt
yfklog
z8530drv-utils

Thats > 80 packages in our repository.

I you find a bug you can report it HERE .

vy 73 es 55 de

DG7GT es DL9PF

Little Hermes

June 16th, 2008 by

some code was added to the buildservice backend already that generates Hermes notifications. That means that Hermes is getting closer, I will work this week to start a first test with Hermes on the production build service.

So let me introduce Hermes a bit.

Hermes is a system that helps it’s user to get back the decision about who is sending a message when and in which way. Using Hermes it is up to the user to decide if a message comes through at all, when and in which way. Hermes is going to be the central part of notifications in the openSUSE Buildservice.

Digest messages will be supported through Hermes. That means that messages (mostly automatically generated) of the same type coming regularly can be combined to one message combining all the bits. For example, imagine a notification about a package build fail. It might not make sense to send lets say 50 of them a day due to numerous rebuilds on different platforms that failed. It seems to be much more efficient to combine all these 50 to a digest message that lists all of the 50 fails. However, it’s users choice in Hermes.

The other important feature of Hermes is choice in the way of delivery. It is up to the user in which way the message comes through: Mail, RSS and jabber notification are already implemented in beta stadium, others may follow. It’s users choice based on the message type when and in which way the message is delivered.

Hermes LogoThe backend already has some code in it to notify Hermes. I hope I will be able to make let’s say some RSS feeds or mail running this week, especially for the submit requests. That would be another step into collaboration with the buildservice.

And since I seem to talk a lot about Hermes these days, Robert was cool enough to come up with a very cool logo for the (still little) Hermes. Do you like it? I think it is awesome – kind of 1960’s aircraft company 😉

Thank you very much, Robert!

More about Hermes to follow…

Build Service 1.0 Release Candidate is out

June 11th, 2008 by

We just released the Build Service 1.0 release candidate. The final release is expected in two weeks.

Most important about this release are the improvements in source handling. Submissions to foreign projects are possible now. That does mean that after two years of development, direct work on openSUSE distribution becomes possible, without bugzilla in between ! You see, we need sometimes a bit longer, but we keep our promises 🙂

The Build Service at http://build.opensuse.org is already running it, so it can be already used for submissions. You just need the current osc from openSUSE:Tools project.

(more…)

Installation Source creation status

June 6th, 2008 by

There is some work going on to put installation source creation functionality into kiwi.
At the moment kiwi can use prepared installation sources such as:

  • BuildService Repositories
  • mounted DVDs
  • FTP trees

But what if you have a local Build Service building some binary only packages and you wish tp make a installable media set from, say, “SLES + binary only drivers”?
You can use the inter-BS-Connectivity feature to only build the drivers (and not the whole distribution) in your BS and then create an installation source from your main BS project.

This is possible since release of the package kiwi-instsource which extends the functionality of the config.xmlfile to allow the compilation of an installation source from scratch.
Hereby “scratch” means directories containing .rpm and .spm files. Of course some information must be provided for the metadata creation — but this is also all in the config file (with one known exception — the PDB data).

The rest is figuring out which packages must be on the installation source.
Since it is perfectly ok to have conflicting packages in instsources, there is no dependency check or package resolving in this stage. The information must come from the user.

Therefore the package list may become rather long and I already plan to implement some simplification.
These plans include:

  • allowing more than one <repopackages> section
  • implement outsourcing blocks in separate files using XML functionality

It builds!

May 29th, 2008 by

Out of total insanity I promised Adrian a couple of weeks ago to test local installation of the OBS build service and interconnect it with the build.opensuse.org instance. Last night I couldn’t sleep due to the heat, so I finally did. Half an hour later, everything was installed and set up correctly according to the README.SETUP instructions in the obs-server package. I’ve fixed a couple of small issues in the README while doing so.

This morning, Michael Schroeder fixed the remaining bugs in the scheduler so that it actually runs. And now it builds 🙂

Source and binary interconnects work fine, so I can e.g. branch a package that is somewhere in the openSUSE buildservice (some KDE:KDE4: package or even openSUSE:Factory) and modify it locally in a test project, and watch the resulting build failures. There are some smaller issues with “osc linkpac” and “osc branch”, but editing the _link  files directly works.This way one can do experimental changes to packaging without actually breaking the repository for all other users, or slow down the build power ressources for everybody else due to unnecessary rebuilds.

As a test case, I’ve imported KDE 4.0.5 packages into a local branch of KDE:KDE4:STABLE:Desktop for testing. More seems possible, like for example doing a daily rebuild of the KDE 4.

Really cool stuff. Buildservice guys, keep rocking!

learning ruby…

May 26th, 2008 by

Recently, I wanted to show how the buildservice makes packaging easier by creating a specfile template for you (just click the “Create RPM SPEC file templat” checkbox when creating a new package). Unfortunatelly, the template it creates is not really useful for someone not skilled in writing spec files. Also, it’s just a static template, so you have to write the summary and description even though you have just entered both in the web form. Definitely nothing to show off to newbies ;-). But knowing that the buildservice developers have more important stuff to do, and wanting to learn something new, I decided give it a try and fix it myself.

My idea is: The buildservice api asks a set of questions, which are presented by the client (webclient, osc, …) to the user, and creates a specfile based on these questions. Also, the api tries to suggest good defaults where possible. After spending some time learning ruby, rails and the api code, I have an ugly 200 line patch to the api that generates a working specfile for GNU hello ;-).

wizard in action

The user interface part is not yet done, but should be easy. What’s more chalenging is adding heuristics to “do the right thing”: detecting the build system (autotools, cmake, Makefile.PL, etc), detecting build dependencies, and so on. Right now, it only extracts the version number from the tar name.

Collaboratio

May 21st, 2008 by

Collaboration is not always an easy thing: Talking, meetings, making decisions and finding compromises. Sometimes I have the impression that some people in our business find this inter personal activities very exhausting and thus prefer to work on their own. Depending on how genius one is that works far. But for obvious reasons working alone has limits. If we talk about a whole Linux distribution for example one can not succeed: The working power, creativity and time of one is not enough.

That is one reason why we consider it as one of the keys for success that the Build Service enables people to work together in a useful and non annoying way. We think of tools in the Build Service which help. That is difficult because some formalism and guidance (in business often called ‘process’) is needed to keep things going in a transparent and reproduceable way. Control should stay there where it needs to be, for example at the maintainer of a project. On the other hand collaboration tools should not constrict people and their working together.

Here is a little story of Karl who wants to change something in the openSUSE Factory project. He needs to work with the Factory maintainers and this is how that is planned for the future:

Karl, a developer working for a small software company, loves openSUSE but not really the one package Kabax because there is a packaging problem Karl has analyzed.

Karl wants to change that to make sure that the next version of openSUSE contains a good version of Kabax.

For that, a branch of Kabax in Factory is needed where the fixes can be put in, built and tested. Karl uses osc to create a branch. The package is not really maintained in Factory itself, because the few Factory maintainers can not care about all packages there. Kabax has a Devel Project entry in its meta data that points to the project where it is actually maintained by the expert Karsten.

Because of the devel project, osc branches not really from the Factory package but from the development project where the development happens by Karsten. That might be different from the Factory package, but is clearly the development version that soon will be synced to Factory. When that happens is up to Karsten and the maintainers of Factory.

In the branch Karl starts to work on Kabax and creates a beautiful patch. Since his branch package also lives on the Build Service, it builds live for all relevant repos and along the changes of the devel project.

Once Karl is happy with his work he raises the attention of Karsten on his change by creating a submit request. A request in general informs others of something somebody else has done which requires action. In the case of the submit request it tells Karsten that there is a valuable change to his package that should make it’s way to Factory. Karsten now accepts the request and Karls contribution is in.

The nice thing about all this is also that the branch packages as well as the requests are open and visible to everybody who is interested in. That gives us the transparency we need. And of course that does not only work for Factory but for all projects if one wants to change something on a package where he/she does not have permissions yet.

How do you like this story?

Playing with openSUSE on LiveUSB Stick

May 19th, 2008 by

Today (Tuesday in Indonesia, May 20, 2008) is a public holiday in Indonesia regarding Waisak day (Waisak is a Buddhist event). My agenda for this holiday is give a training session about Zimbra Collaboration Suite with openSUSE 10.3. The training session started on 09.00 am until 03.00 pm but I think I can spare about minimum 20% of my holiday time to an interesting stuff. It’s a public holiday and I don’t want to work all of the time 😉 .

The first interesting stuff is making a LiveUSB stick for openSUSE. It’s not a really new because KIWI has an entry about how to make a live usb on openSUSE wiki, but I give it another try after reading Coolo’s announcement about new factory snapshot on Sunday, May 18, 2008.

http://ftp.suse.com/pub/projects/FactoryLiveCDs/ has new live cds as of today. Please note that it also has the first experimental release of live usb images.

  • Plugin in usb stick
  • Check dmesg output about the device name (e.g. sdc)
  • Umount all possibly automounted file systems
  • bzip2 -cd <download>.raw.bz2 | dd of=/dev/<device_name> bs=4096

(more…)

Hamradio packages for openSUSE 11.0

May 13th, 2008 by

Together with Tim Fischer I’m packaging hamradio-related software in the “hamradio”-repository in openSUSE Build Service. We are now prepairing updates and start of packaging for upcoming openSUSE 11.0 .

If you are interested in helping us, feel free to contact us! Also if you miss a package in our repo.

I’ll blog on the progress here …

Edit: The repository is http://download.opensuse.org/repositories/hamradio/

Easy OBS Web Client Development

May 7th, 2008 by

The web interface of the openSUSE Build Service behind http://build.opensuse.org is written with Ruby on Rails. The good thing about this is that you can easily setup an own instance of the web interface on your workstation using the server behind http://api.opensuse.org. All what you need is to checkout the sources, install the ruby on rails packages and run the server.

Installing the Ruby framework in matching release can be done as root user via:

# zypper sa http://download.opensuse.org/repositories/openSUSE:Tools/YOUR_DISTRO openSUSE:Tools
# zypper install rubygem-rails-2_0

Getting the source code is easy just by anonymous checkout from svn:

# svn co https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/

Running the web interface is really easy now just by running

# cd buildservice/src/webclient
# ruby script/server

This runs a local instance where you can connect with any web browser using http://0.0.0.0:3000/ URL. So there is no need to install a full build service, no database administration, just checkout and run it 🙂 You can easily edit files esp. below the app/ directory and customize or improve the web interface for your needs.

Of course it is easy to get svn write access, if you provide a useful patch 🙂

Have fun.