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

Shortcut for the package download

July 9th, 2010 by

If you look at the list of binaries for a package (e.g. icecream), you may think that you can download the RPM right away – but if you follow the link in a browser you get to see details about the rpm.

Now if you only want to download it, you may already know the details and don’t care. So I added a little shortcut: if you request the binary url with a client not accepting html explicitly (e.g. curl, wget…), you get the file directly. Just copy & paste the link to your console and be done.

And due to the joy of rails, it’s just a couple of lines and now I get:


--2010-07-09 13:51:31-- https://build.opensuse.org/stage/package/binary?arch=i586&filename=icecream-0.9.5-11.1.i586.rpm&package=icecream&project=home%3Acoolo&repository=openSUSE_11.3
Resolving build.opensuse.org... 195.135.221.34
Connecting to build.opensuse.org|195.135.221.34|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://download.opensuse.org/repositories/home:/coolo/openSUSE_11.3/i586/icecream-0.9.5-11.1.i586.rpm [following]
--2010-07-09 13:51:32-- http://download.opensuse.org/repositories/home:/coolo/openSUSE_11.3/i586/icecream-0.9.5-11.1.i586.rpm
Resolving download.opensuse.org... 195.135.221.130
Connecting to download.opensuse.org|195.135.221.130|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://widehat.opensuse.org/repositories/home:/coolo/openSUSE_11.3/i586/icecream-0.9.5-11.1.i586.rpm [following]
--2010-07-09 13:51:32-- http://widehat.opensuse.org/repositories/home:/coolo/openSUSE_11.3/i586/icecream-0.9.5-11.1.i586.rpm
Resolving widehat.opensuse.org... 62.146.92.202, 2a01:138:a004:0:21a:a0ff:fe26:efa9
Connecting to widehat.opensuse.org|62.146.92.202|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 184745 (180K) [application/x-rpm]
Saving to: `icecream-0.9.5-11.1.i586.rpm'

Buildservice development on 11.3

June 26th, 2010 by

The build service (and any other of openSUSE infrastructure software using RoR) is using rails 2.3.5, because we once decided to harmonize on the version of SLE11 SP1. Of course the latest version has less bugs (usually), but mixing RoR versions between different developers and deployment is a nightmare, so we had to decide on one.

Now comes the catch: 11.3 has rails 2.3.8 and as such you can’t develop the build service on factory/11.3 as is. But the good news, openSUSE:Tools has all the right versions, so you can add the repo (zypper ar -r http://r.opensu.se/openSUSE:Tools/f/r) and then install zypper in -f rubygem-rack-1.0.1 rubygem-activesupport-2_3-2.3.5

To make sure, the next zypper dup is not going to take it away, use zypper al rubygem-rack rubygem-activesupport-2_3

Hackweek V: mkdiststats

June 16th, 2010 by

When Coolo mentioned that he is looking into improving the rebuild time of Factory
I couldn’t resist to try the script he was using myself. It turned
out that the script was extremly slow, it took about 15 minutes for
the calculation on my computer. The script was originally written a
long time ago for the old autobuild with a much lower number of
packages and dependencies to take care of. The ad-hoc method used
for the ‘rebuild simulation’ just didn’t scale well. Hackweek was a
good opportunity to improve the performance and to add some more
options.
(more…)

Hackweek V: osc bash completion

June 15th, 2010 by

During last week , I was working on my Hackweek V project: bash completion for osc. It’s still far from being complete, but IMHO it is usable already, so here we go.

Download

The project is hosted on gitorious.org. To get the sources, use git:

git clone git://gitorious.org/opensuse/osc-bash-completion.git

Installation

You need working and configured osc. I have tested the completion with osc-0.126git, but it should more or less work with older/newer versions too. Naturally, your shell has to be bash (I used bash-4.x). The easiest way how to try the completion is simply to do
~> source osc.shThis will enable the completion for the given shell only – see README for more “persistent” ways how to enable the osc completion.

Features

The script provides support for completing:

  • osc subcommand names (checkout, commit, …)
  • global long osc options (e.g. –quiet, –debug, …)
  • long subcommand options
  • project names
  • package names (in given project)
  • file names (in given project/package)
  • repository names (openSUSE_Factory, …)
  • architectures (i586, x86_64, …)

Some examples:
osc com<tab><tab> => osc commit
osc --ht<tab><tab> => osc --http-debug
osc build --a<tab><tab> => osc build --alternative-project
osc ls Ar<tab><tab> => osc ls Archiving
osc ls Base:System pa<tab><tab> => osc ls Base:System parted
osc cat Base:System parted ba<tab><tab> => osc cat Base:System parted baselibs.conf
osc buildlog openSUSE_<tab><tab> => osc buildlog openSUSE_
openSUSE_Factory openSUSE_11.0 openSUSE_11.1 openSUSE_11.2

osc buildlog openSUSE_Factory x<tab><tab> => osc buildlog openSUSE_Factory x86_64
osc createrequest -a<tab><tab> => osc createrequest -a
add_role delete change_devel set_bugowner submit

osc ? d<tab><tab> => osc ?
delete deleterequest dependson dif

osc meta a<tab><tab> => osc meta attribute
osc my <tab><tab> => osc my
pkg prj rq sr

osc request <tab><tab> => osc request
accept approvenew co decline checkout
list log revoke show wipe

osc getpac for<tab><tab> => osc gepac fortune

At the moment, the script DOES NOT provide support for completing

  • short options
  • arguments for most of the options
  • some complex combinations of arguments

Caching

To avoid long delays and spamming OBS server too much, the script caches several information:

  • list of projects in OBS
  • list of packages in individual projects (only in those that have been accessed by osc)
  • output of “osc repos prj” (dtto)

Please see the README file for more information about how the caching works and how to customize it (to make the completion significantly faster).

Known issues, TODO

  • The script does not work correctly if there is a long option with argument and there is ‘=’ between the option and argument (–long-option=arg). Please use the ‘–long-option arg’ form instead.
  • For the time being, the script does not recognize alternative apiurl (-A|–apiurl) and thus it works only with default (https://api.opensuse.org) api.
  • Sourcing the script removes the colon from COMP_WORDBREAKS variable to make completion of Build Service projects easier. This was known to break e.g. git completion in the past (however, I didn’t notice any issues). In the future, the script should be fixed so that modifying of COMP_WORDBREAKS is not necessary.
  • The script should dynamically create list of osc subcommands and lists of their options by parsing osc help output (or something similar). Now the lists and logic are hardcoded in the script, which will make it maintenance nightmare when osc changes.
  • Completing of “osc {chroot,build}” is not yet implemented.
  • See TODO file

Testing and feedback

The completion script is very new, tested only by me and mvyskocil for a while, so it definitely has a lot of bugs. Before releasing it as a separate package, I’d like to collect some feedback first (and fix the already known problems and TODOs), so, if you are interested, please give it a try and report any bugs, suggestions or patches directly to me (petr.uzel@suse.cz). Also, feel free to ping me on IRC: ptr_uzl @ freenode.net.

I hope at least somebody (except me 🙂 ) will find the completion useful. Thanks and happy completing.

Some wrap-up from LinuxTag

June 14th, 2010 by

Just traveling back by train from LinuxTag, Berlin to Nürnberg. How was LinuxTag? In general it seems to me that LinuxTag may should change their motto “Were .com meets .org” as the event changed over the years more and more to an community project events with a few companies attending and a few business visitors passing by. I wonder who’s willing to pay the bill for LinuxTag ongoing? But that’s not of my business. Apart of the trade show the LinuxTag team served a pretty broad and high quality 4 days conference. For the community guys and girls I’d say it was a pretty good event with much conversation and meeting of people you normally just meet on mailingslists, forums or IRC and with a bunch of poeple new or intersted in Linux and open source.

We had big fun at the openSUSE booth showing mainly the openSUSE Build Service 2.0 and milestone 7 of openSUSE 11.3. Additional of this usual trade show program we served daily 3-4 small hack sessions on the booth to teach people in things like, Roll your first package in the Build Service, Insights into GNOME 3.0 or learning some Inkscape magic.  They all were well attended and gave room for intensive 1:few conversations. The biggest fun we had with “Henne’s handicraft workshop” which took place daily at 5pm at the booth and covered stuff like creating your openSUSE bag, match LinuxNacht dress cody by wearing an openSUSE pin etc.

In the conference I visited a few presentation to get more knowledge about SUSE Studio, Mono, open sourc in companies etc. I visited as well Microsoft’s keynote and I was not alone in the room 😉
The keynote was given by James Utzschneider who’s heading the open source department at Microsoft since less then a year but is with Microsoft for over 15 years. He’s a good talker and it looks to me that he’s a smart guy as well. He was pretty clear on the open source strategy Microsoft is following:

  • Microsoft changed heavily. Everything can be put on the table for disussion today but should be backed with good arguments.
  • Customer are asking that Microsoft products work seamlessly with open source products where ever they are used at customers location. So, main goal here is to follow common standards and improve the interoperability in literally all areas to make the customers confident and stay with Microsoft products.
  • Microsoft is a business company and is mainly driven through business cases – if the open source path is beneficial in $ for Microsoft – Microsoft will take it further down. Its pretty unlikely that things are done for the open source community just to make them happy.

We might get in touch with James as Microsoft could spice up the openSUSE conference in October. Ahh, with regards to that we informed pretty many other projects and developers at LinuxTag about the openSUSE conference and this years motto “Collaboration accross borders” and it was well received and we should be able to cover a number of interesting topics working together with communities other then the openSUSE one. Now it the time to shape the conference, call for papers is open till July 31.

Pavol put up a collection of photos which give a good summary of openSUSE @ LinuxTag 2010. We had fun at LinuxTag 2010, had many good conversations, got new valuable input in many areas and are keen on how LinuxTag evolves in the future.

Some LinuxTag 2010 impressions

June 13th, 2010 by

LinuxTag 2010 has ended, openSUSE had a booth in the community area and we had a number talks. We also released OBS 2.0 on LinuxTag. You know this of course already, but here are some impressions.

openSUSE booth was very well visited. Various workshops and activities created several times actually a big swarm around it. Many people were interessted about OBS in special and I hope we won some more OBS users and developers.

Hennes and mine talk about “how to escape the free software hell” was provocant enough to get quite some people into our room directly after the keynote. I hope we were able to show off the coolness of OBS there.

Read the comments in the picture gallery for some background information.

Improve Software Quality

June 12th, 2010 by

Today I and some hundred others on LinuxTag in Berlin attended a keynote by Mark Shuttleworth, the “head dreamer” of the ubuntu Linux distribution.

He had pretty few slides with hardly any words on it. The headlines were “Cadence”, “Quality” and “Design”. As I have been working towards openSUSE quality, this interested me most – so this is what this text is going to be about. His thoughts were mostly what I was thinking anyway.

Quality works like this: if Factory (equivalent of Debian/sid or whatever it is called in ubuntu) breaks horribly every other week, few people will feel inclined to keep running on Factory or even on factory-snapshot. Mark spoke about a difference in number of testers of “one or two orders of magnitude” (which would mean a factor of 10-100 in mathematical terms). And having fewer testers during development can only mean lower quality for the final release.

This is why efforts should be taken to ensure a working Factory. Automated testsuites and reviews were specifically mentioned, among others. Some packages like gcc include own test-suites, but most do not. When asked how that was handled in ubuntu, he described an approach with scripts using computer vision, recognizing/clicking buttons which most likely referred to sikuli which has many similarities to what I did, just with a different focus (more user-friendliness) and quite some sophistication. Also for text-mode there is still good old “expect”.

Another thing that was not mentioned there, but which I was always thinking of as an odd shortcoming of openSUSE is that Debian has a “testing” distribution which is not like factory-snapshot. Debian/testing contains only packages migrated from sid after a certain time with no bugs above a certain criticality threshold. Of course, this needs a way to track automatically which bug applies to which package (something that ubuntu does in launchpad).

Launchpad is also nicely integrated with bazaar, so that adding “(LP: #12345)” into a changelog will cause the bug to have a link to the proposed fix and later be automatically closed, once the branch was merged into the main trunk.

This is not only cool, but plain useful. It can save a lot of work and frustration. I think Adrian Schröter will be working into that direction with better integration of buildservice into bugzilla and other openSUSE tools.

There is also a big human component. Especially with testers which are non-technicians. It is not so much about motivating them, but about not demotivating them (which can happen surprisingly easy in some cases). I have seen crash messages along the lines of “xxx has crashed. This is in no way your fault. You could help us by …” which is a very good thing in this regard.

Yet another related note: there are openSUSE-Promo and openSUSE-Biarch DVD iso variants which are so well hidden, that few people even know about their existence, so that there can not be much public testing. However, those are the variants that are given away to hordes of interested people at openSUSE booths around the world, but those are also the variants that are least tested. I still have bad memories of the 11.1 or 11.0 one which was degraded to coaster after three unsuccessful tries on different machines. If bandwidth or mirror-space is a problem, offering them only via bittorrent could be a solution.

Overall, still some way to go, but IMHO we are moving into the right direction.

AcetoneISO2 and LXDE

June 3rd, 2010 by

I am sure that most of you know and like acetoneiso2, a nice tool to menage isos and lots of other things. Latest release, 2.2.1 support only kde, gnome and xfce as DE and allow to open their file managers to browse files and mounted stuffs…

So, you know, FLOSS is our world.. i took the code, and improved it, just a trivial change, but really nice. I added LXDE/PcmanFM support, as you can see from the picture:

Now you can have acetoneiso2 run pcmanfm too.

The patched package is already into Packman repository and a submit-request (#41069) has been submitted to KDE:KDE4:Community repository, so hopefully, it would be available even there quite soon.

So people.. enjoy it 😀

Andrea

openSUSE-LXDE and Italian Press

May 14th, 2010 by

We all know we are doing well, we see that from your feedbacks, bugreports, obs submitreqs, and IRC. So guys.. Thank you a lot for supporting and helping us.

But do you think there is something better to see your work on a magazine? a national magazine? I guess it’s really exciting isn’t it?

Well we did it! The Italian Linux Magazine wrote two entire pages for us, and our live cd (together with XFCE one) was into the attached DVD or CD!

That was cool!!!

Andrea

osc 0.126

April 22nd, 2010 by

Hi,

I just submitted the new osc 0.126 release to the openSUSE:Tools
project. The new packages should be available soon at
http://download.opensuse.org/repositories/openSUSE:/Tools

(user visible) Changes:
0.126

  • – added VM autosetup to osc. This requires appropriate OBS version and build script version.
  • – enhanced QEMU cross build support with ‘armv4l’ ‘armv5el’ ‘armv6el’ ‘armv7el’ ‘armv8el’ ‘mips’ ‘mips64’ ‘ppc’ ‘ppc64’ ‘sh4’ arch strings now supported on x86 host
  • – suggest git, svn, … if indicated, after oscerr.NoWorkingCopy
  • – “osc cat” & “osc ls” now auto-expands through link.
  • – fixed “osc add” after “osc delete”.
  • – fix “osc patchinfo” command (crashed before)
  • – fixed SSL proxy support
  • – fixed meta attribute create and set calls
  • – osc remotebuildlog supports a buildlogurl
  • – Allow –prefer-pkgs to parse repodata
  • – new “osc build –no-service” option to skip source service update
  • – fix linktobranch apiurl usage
  • – “maintained package” search is telling relevant projects now
  • * requires OBS 1.7.2 or 2.0
  • – added “osc chroot” command
  • – fixed #547005 (“osc co could show download progress”)
  • – added “–interactive” option to “osc request”
  • – store commit message so it doesn’t get lost on failure
  • – added “–cpio-bulk-download” and “–download-api-only” options to “osc build”
  • – added “osc localbuildlog” command
  • – added “–build-uid uid:gid|caller” option to “osc build” to specify abuild id in chroot
  • – verify files using rpm bindings and keys supplied by buildservice
  • – added “–exclude-target-project <prj>” option to “osc rq list”
  • – added “–message” option to “osc branch”
  • – added “osc config” command to set/get/delete a config option
  • – added “–binary” and “–baseproject” options to “osc search”
  • – added “-o/–offline” and “-l/–preload” options to osc build
  • – osc build -l standard i586 foo.spec (to cache all dependencies)
  • – osc build -o standard i586 foo.spec (to build without contacting the api)

Thanks to everyone who contributed to osc!