Home Home > 2011 > 09 > 27 > Get your package in Factory for 12.1!
Sign up | Login

Get your package in Factory for 12.1!

September 27th, 2011 by

Walter Baker Factory

The upcoming openSUSE 12.1 release is being developed in Factory. According to the release schedule the Toolchain and several other critical components are frozen, but there is still time to get most package updates in! It’s not hard to do that, especially if you build packages on the Open Build Service anyway and you get your software to be part of openSUSE! Read on to learn more.

About Factory

The openSUSE Factory Development Process

The openSUSE Factory Development Process

Factory is ‘just’ another repository on openSUSE’s Open Build Service. The 4745 packages make it the largest OBS project. Factory is maintained by the openSUSE Release team, members of which currently are Stephan ‘Coolo’ Kulow and Marcus ‘darix’ Rueckert.

gnome project page

Devel projects

The Factory Development Model describes package development happening in the devel projects. A devel project, as the name suggests, is a project where development happens for a specific group of packages, like multimedia, GNOME, KDE or Kernel.

Each devel project has its own set of processes, rules and communication channels that fits them best. Usually you can find information about that on the project home page. Otherwise, asking on IRC or the Factory mailinglist will do fine. The current devel projects feeding into factory can be found in the drop-down menu on top of this page. A list of all public projects in the Open Build Service can be found here.

BURPing!

Say a package in a devel project feeding into Factory is outdated or broken. You might need this package and want to fix it. Now you easily can branch them in OBS and get yourself a fixed package. But why not contribute the fix back to Factory? That way – you don’t have to maintain it. Merging changes is very easy thanks to the collaborative feature of OBS. Once you branched and fixed the package, create a submit request and you’re done. The maintainer from the devel project will pick it up and merge the change. This process is called Branching, Updating and Requesting a Package (BURPing). See the image below or read more on this page for commandline steps.

Getting new packages in

As said, packages for Factory have to go through Devel projects. The reasons for that are quite simple: together, a team of maintainers can do a better job than alone. A devel project provides you with some feedback on your work and helping hands where needed. And of course it gets your software in the hands of tens, if not hundreds, of thousands of users!

So once you have found the appropriate devel project (see the drop-down on this page) it’s time to contact the team and tell them you want to have a package in. The easiest way of doing that is simply submitting it! Create a submit request, enter the devel project details (see the BURP picture above for an example) and send it in. If you can’t find a decent devel project, you can either use the catchall project devel:openSUSE:Factory or even start a new devel project. Starting a new devel project means asking on the factory mailing list, you’ll get some input on your package(s) and the need for a separate devel project there.

After you have found a devel project you can submit-request your package to openSUSE:Factory. The submit-request must contain a note with information about the package. Preferably you introduce the package to the opensuse-factory list and point to that introduction in your submitrequest. A good introduction contains information on the state of the upstream project and how maintainable it is and what the purpose of having it in the distribution will be.

All the above can be done either from the nice web interface of OBS or following the command line instructions on this page.

Conclusion

So getting updates or completely new packages in openSUSE 12.1 is not hard. Being a Factory maintainer might sound like a heavy responsibility and to some extent it is. But it’s more than likely being a maintainer in a Devel project actually doesn’t involve more work than what you currently do to keep your own packages building in your own home project. You will even get some help now and then. And you’ll get the satisfaction of making a difference and being part of an awesome team!

Both comments and pings are currently closed.

4 Responses to “Get your package in Factory for 12.1!”

  1. Bruno Gerz

    It would be fine to see “faust”, a audio stream processing language in opensuse.

    http://sourceforge.net/projects/faudiostream/
    http://rpmfind.net/linux/rpm2html/search.php?query=faust (version 0.9.30)

    But I think it`s not a good idea to create a new repository for it.
    I`m not able to add all i want in openstudio, because there is a 30 repository limit :-(
    (workaround: own private repository to combine existing repositories)

  2. jdd

    Hello,

    Very good article, indeed!

    That said I think we can makes this even better, targetting a slightly different part of the users.

    I’m sure we are a lot of people that from time to time compile themselve some crucial software. For example I could compile digiKam 2.1 on 11.4 without updating ked4.

    I was said that using the Open Build Service is even simpler than compiling locally. THAT would be a good news. I, for example, can’t make it to compile for my 32 bits netbook with my 64 bits desktop, so that I had to install all the compile stuff on the netbook and wait forever to have the result.

    Is this easy on OBS?

    If so, a article explaining how to get an OBS account and setup a compile envieonment, building the software as rpm and downloading locally only after that would be very usefull for me, and certainly others. And in the mean time the result will be available for anybody.

    Is all this possible? how?
    thanks
    jdd

    • Joseph

      I looked into this too and OBS doesn’t really help make a package. It’s not too difficult to compile a package on your own machine. However, to create a package requires writing all sorts of configuration files in that accursed XML to the point where it’s just slightly less difficult than coding the program you’re trying to install!

      Right now I’m about to try two different pieces of software:
      RUST
      http://rust.sourceforge.net/faq.html

      and PKGBUILD
      http://rpm-pkgbuild.sourceforge.net/

      that both seem able to create the package description file that OBS doesn’t help at all with (all OBS really does is compile things). In theory one of these combined with OBS might make package building possible for mere mortals. This is the one area I’ve found where Windows excels over Linux. In a different career I used to be involved in programming commercial software and there were many tools such as InstallShield and Inno Setup which really required no effort at all to set up a standard install. Software installation is one area where the Linux stereotype of arcane command line gibberish turning molehills into mountains seems to be true. ;-(

      If one is interested in abandoning OBS, I’ve found two other options:
      Listaller
      http://listaller.tenstral.net/

      0Install
      http://zero-install.sourceforge.net/why.html

      • Actually there’s a tool (OBS Generator) which can test a tarball and spit out the files you are talking about. But yeah, something more newbie-friendly would be very nice. It does need someone to develop it but I dunno about anyone who is/might be interested right now :(