All commands begins with
osc contrib (or
osc cb) prefix.
The osc-contrib package is available in a Contrib itself, so just add the Contrib repository and install the package.
New package request
osc contrib new
If you are in the package dir, this is enough. You can also specify a new package name in argument. If you are not in a package dir, then you have to specify a source project and a package name (and as a last argument a new package name).
Show of opened requests
osc contrib show
This command shows you all opened requests. If you are a maintainer, you are interested at it.
osc contrib checkout package|ID
This will save a package to local disc. You could use a package name, or a request's ID as argument.
vi spec_file # review the spec osc contrib build ...
The last command is for a test build againts Contrib. This checks, that package is correct and there are not missing build dependencies. It's and equivalent of
osc build --alternative-project=openSUSE:Factory:Contrib standard
but it's shorter (and it's an original purpose of this tool, reduce an amount of typing)
osc contrib accept|decline package|ID
Note: the -m "message" is mandatory. Only the accept will work without it. You could use a package name, or a request's ID as argument.
For help type
osc cb --help
and you will get a complete help for all available commands. Please note that this documentation should be older than current described version (0.1.6) of
osc-contrib. Help is actual with a current state.
osc contrib show [-f|--full-view] [-s|--state] [PACKAGE]
The 'show' command shows all new requests opened for Contrib. The default output is compact, so for a full view (like
osc submitreq show ID) you have to type -f argument. With argument '-s' you could list other requests, not only the new ones. For complete list of all requests type
The optional parameter PACKAGE will filter a result only for selected package.
Show all opened requests:
osc cb show 4940 new (saigkill) home:saigkill/kde4-skrooge -> openSUSE:Factory:Contrib 'add kde4-skrooge'
A full view
osc cb show -f Request to submit (sri4940): home:saigkill/kde4-skrooge -> openSUSE:Factory:Contrib/kde4-skrooge Source revision MD5: 8bdef461a88807a4672d8d3e86c0b9b0 Message: add kde4-skrooge State: new 2009-01-12T01:28:45 saigkill Comment: None
View of all requests
osc cb show -s 'any' 4908 declined (elvigia) home:m4r3k:fatrat/libgloox -> openSUSE:Factory:Contrib 'new library needed for fatrat :-)' 4916 accepted (mvyskocil) home:saigkill/lynis -> openSUSE:Factory:Contrib 'add lynis' 4918 accepted (mvyskocil) home:saigkill/rkhunter -> openSUSE:Factory:Contrib 'add rkhunter' 4927 accepted (elvigia) home:m4r3k:fatrat/libgloox -> openSUSE:Factory:Contrib 4940 new (saigkill) home:saigkill/kde4-skrooge -> openSUSE:Factory:Contrib 'add kde4-skrooge' 4954 accepted (puzel) Java:esmska/esmska -> openSUSE:Factory:Contrib "please add a 'esmska' to Contrib"
View all requests for one package
osc cb show -s 'any' scheme48 4390 declined (puzel) home:mvyskocil:Contrib/scheme48 -> openSUSE:Factory:Contrib 'add scheme48' 4704 accepted (puzel) home:mvyskocil:Contrib/scheme48 -> openSUSE:Factory:Contrib 'Fixed version, now use RPM_OPT_FLAGS and all gcc and warnings errors has been fixed.'
osc contrib new [-m|--message] [DEST_PACKAGE] osc contrib new [-m|--message] PROJECT PACKAGE [DEST_PACKAGE]
The first form of command is for case if the current directory is the package one. The information about source project and a package will be read from metadata, so the user doesn't have to specify them. The
DEST_PACKAGE should be used if the name of package in Contrib may be different.
The second form is intended to run from a common dir, because in that case it is not possible to read the metadata automatically. So the user needs to specify a source project and a package by hand. The new package name should be also given.
The argument [-m|message] is fully optional here.
osc contrib checkout (co) [-l|--last] [-i|--id=ID] PACKAGE|ID
This download the requested package. This command is useful for reviewers, if they want to build the package in their local machine. The
--id are for handling of cases if the same package was requested several times (and all requests have a new state), so reviewer could specify a last request, or type an exact id. You could use a package name or a request ID as argument.
Note: this command download the package to the
package/ directory, not to
osc checkout does!
osc cb co esmska A /home/mvyskocil/work/contrib_test/esmska A /home/mvyskocil/work/contrib_test/esmska/esmska-0.12.2.tar.bz2 A /home/mvyskocil/work/contrib_test/esmska/esmska.desktop A /home/mvyskocil/work/contrib_test/esmska/esmska.spec
The package esmska is now in esmska directory.
How are the multiple requests handled:
osc cb co scheme48 There are multiple requests (4390, 4704) towards package scheme48. Specify one by -i/--id, or use -l/--last-request argument!
In this case you can use a
osc cb co -i <ID> or
osc cb co -l scheme48 to checkout the last request, which is probably reasonable in most cases.
What if I specify a wrong id:
osc cb co -i 1234 scheme48 The package scheme48 and request id 1234 doesn't match! Use one of these (4390, 4704)
There's some minor error in output :), but the osc cb -i always check if the current id and a package name match!
request state change
osc contrib [accept|decline|revoke] PACKAGE|ID
It's an equivalent of
osc submitreq [accept|decline|revoke] PACKAGE_REQ_ID. Multiple requests could be handled via --last or --id argument. It's the same as in the 'new' command descibed above. You could use a package name or a request ID as argument.
The --message argument is mandatory for decline and revoke commands. For 'accept' exists a default one.
The accept command also do some additional job, which the original
osc submitreq accept doesn't. It warn if the current state of the requests was changed, so users have to manually commit his change. And for new packages it also set the requesting user as a new maintainer and a bugowner of package in Contrib, so the reviewer don't need to change it manually.
-i, --id id of request (if multiple exists) -l, --last use a last request (if multiple exists) -m, --message the submit message (optional for accept)
who is a maintainer/bugowner
osc cb maintainer/bugowner PACKAGE [PACKAGE2...]
Introduced in 0.1.5. Shows a maintainer/bugowner of specific package(s). Command prints a result as package:person. It has a
-f/--full-view option which shows an email.
Show maintainers of some packages
osc cb maintainer apg esmska apg: csbuild esmska: mvyskocil esmska: kamil_paral
Show an email
osc cb maintainer openproj -f openproj: mvyskocil, firstname.lastname@example.org
A bugowner command
osc cb bugowner openproj openproj: mvyskocil
osc cb build [ARCH]
Introduced in 0.1.6. It is an abbrev for
osc build --alternative-project openSUSE:Factory:Contrib standard [ARCH] and it serves for test build. So reviewer should be able to check, if package will work after accept. The optional argument is an architecture.
Comments, bugs, etc.
If you found a bug, just contact me (mvyskocil at suse cz). If you have a feature request, you could also contact me directly (patches are welcome ;-)), or it could be discussed in opensuse-contrib ML first.
For download, just type: