Home Home > 2009 > 06 > 20 > openSUSE Factory: Fixing Packages
Sign up | Login

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

openSUSE Factory: Fixing Packages

June 20th, 2009 by

I’m back now for some days from my two months of parental leave and decided to get reacquainted with the openSUSE Build Service and the osc command line client.

I’ve checked which packages are failing in Factory on x86-64 (via this link) and checked the log files for some low hanging fruits that I could easily fix.

So, I found knock (build failure log) and noticed that it fails.  The reason looked like a missing prototype, error message is:

src/knockd.c:134: error: 'PATH_MAX' undeclared here (not in a function)

Now came the fun part – fixing it with osc using the collaboration features of the Build Service.  This is nicely explained in the openSUSE Wiki but let me tell how it worked exactly in my case:

  • First I had to update osc to the newest version on my openSUSE 11.1
    zypper ar http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.1/ openSUSE-Tools
    zypper in osc
  • branch the package from factory – where I get told that the devel project is elsewhere (fortunately the Build Service figures this out itself for me!):
    osc branch openSUSE:Factory knock
  • Check out the package to my local machine:
    osc co home:a_jaeger:branches:network:utilities/knock
  • Build the package locally:
    cd home\:a_jaeger\:branches\:network\:utilities/knock
    osc build openSUSE_Factory
  • and fix the build failure with creation of a new patch, and then rebuilding to test that everything works
  • Add the new patch to the package:
    osc add knock-0.5-include.patch
  • Commit everything into my home project:
    osc commit -m "Add knock-0.5-include.patch to fix build failure."
    This also builds the package on the server, osc results shows me the status
  • Once it builds for all architectures, I can submit it to the devel project:
    osc submitreq -m 'Add knock-0.5-include.patch to fix build failure.'
  • Now I have to wait for the maintainer of knock to process my submit request.  I can check the status of this specif request (it has the id 12135) or of all submit requests to the project knock is in:
    osc request show 12135

    osc request list home:hennevogel:Factory
  • Once Henne has reviewed and accepted my request, he pushes it to factory.
  • One caveat: If you want to get emails about submit requests, remember to configure them in Hermes.

That’s all.  This works with an occasional package fix as well as with maintaing packages with others.

Both comments and pings are currently closed.

2 Responses to “openSUSE Factory: Fixing Packages”

  1. I would add one more point – editing .changes file with “osc vc” just before “osc commit”, so the maintainer does not need to do it right after accepting your change (and you’ll appear in the changelog of the package :-))

  2. Marcel

    Hello. I am on Fedora, but please don’t flame or kill me. This problem isn’t effectly addressed anywhere else on the internet.

    I have the exact same problem as you. How can I fix it?

    Please help 🙁