Show Menu

OSC - Open Build Service Command Line Client Cheat Sheet by

Workflows for the Command Line Interface of the Build Service

Create or edit a package

osc co home:you
Check out you(r) home project.
cd home:you
Change into the new directory.
osc mkpac ctris
Create new package named ctris.
cd ctris
Change into the new package directory.
vi ctris.spec
Start writing the new spec file.
Download the sources into the directory. (Note: checks­um/­sig­nature validation should also be done as next step, if any of them are provided.)
osc addremove
Mark files to be added and/or removed from your package directory.
osc ci -m "­First checkin of the ctris packag­e"
Submit your files/­changes back to the remote build instance.
Editing or creating a (new) package (meta data) in project $PRJ with the name $PKG can also be done via the command:
osc meta pkg $PRJ $PKG -e

everywhere in the filesy­stem.

To work with the sources locally, a checkout via
osc co $PRJ $PKG

is needed.

Branch a package

osc branch home:lrupp ctris
Creates a branch of the package below your home project.
osc co home:y­ou:­bra­nch­es:­hom­e:l­rup­p/ctris
Check out the branched package.
cd home:y­ou:­bra­nch­es:­hom­e:l­rup­p/ctris
Change into the new directory.
vi ctris.spec
Do changes in spec file (or other files).
Download newer source tarballs (as example).
osc build ctris.spec
Do a test build of the package.
rm ctris-­0.4­1.t­ar.bz2
Cleanup before submit­ting, please. ;-)
osc vc
Add a new package changelog entry.
osc ci -m "­updated package to latest upstream versio­n"
Submit your files/­changes to the remote build instance.
osc results
Check the build results of your changes.
osc sr -m "Hi! I updated your package to the latest version. Have fun!"
Create a submit request against the original project.
osc request -M
Check the current status of your own requests.
You might also check tools like quilt for fixing packages, but this is not the topic of this cheat sheet.

Mainte­nance updates for openSUSE follow a slightly different workflow. Please check https:­//e­n.o­pen­sus­e.o­rg/­Por­tal­:Ma­int­enance for details.

Building a package

osc meta prj -e
Either use the WebUI or edit the project config­uration manually and add a build target reposi­tory.
osc build
Builds a package with the default values (for distri­bution and archit­ecture) from the file ~/.oscrc.
osc build Fedora_22 x86_64
Builds a package with given repository and archit­ecture.
osc lbl | less
Shows the build log of a local build (pipe into pager to allow scrolling and search­ing).
osc chroot
Jump into the chroot enviro­nment of the current local build. Might be useful for debugging and/or fixing a package.
osc ci -m "­fixed package build for Fedora­"
Submit your files/­changes to the remote build instance.
osc results
Shows the build results of a package or project.
osc prjresults
Shows projec­t-wide build results.
Building a package locally saves time, as the public instances need to find a free schedule for building, while the local machine can start the build immedi­ately. As the build is done in a chroot enviro­nment, the OS instal­lation on the local machine will not be affected.

Please remember that the public build instances do neither allow network access nor root permis­sions during build.

Collab­orating on packages

osc request list home:lrupp
Check for (open) submit requests against a reposi­tory.
osc request show -d $ID
Deeply inspect submit request with id $ID (show diff).
osc request accept $ID -m "­Thank you for your contri­bution :-)"
Accept a pending request.
osc request decline $ID -m "­Sorry, but you forgot to add missing files"
Decline a pending request.
osc request supersede -m "He did it better than me - use his submit request please­" $ID $SUPER­SED­ING_ID
Superseede a pending submit request with another one.
osc branch -N -M openSU­SE:­Bac­kpo­rts­:SL­E-1­2:U­pda­te/­glibc7
Create a branch pointing to a not yet existing package for a project and package in mainte­nance mode like the package hub project.

Working with meta inform­atoin

osc meta prj $PRJ
Show meta inform­atoin about a project.
osc meta pkg $PRJ $PKG
Show meta inform­ation about a package.
osc meta user $USER
Show inform­ation about a user.
osc meta prjconf $PRJ
Show meta inform­ation about a project.
osc update­pac­met­afr­omspec
Update package meta data with metadata taken from spec file.
osc comes with a very useful
option and man page. Please refer to this material if you want to get more inform­ation.



No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Linux Command Line Cheat Sheet
          mod_rewrite Cheat Sheet
          RPM Build Basics Cheat Sheet