---
name: "osc"
section: "1"
platform: "linux"
package: "osc"
version: "1.12.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/osc"
---

# osc(1)

openSUSE build service command-line tool

## NAME

osc - openSUSE build service command-line tool

## SYNOPSIS

**osc** \[global opts\] \<command\> \[--help\] \[opts\] \[args\]

## OPTIONS

- **-v**, **--verbose**

  increase verbosity (conflicts with --quiet)

- **-q**, **--quiet**

  be quiet, not verbose (conflicts with --verbose)

- **--debug**

  print info useful for debugging

- **--debugger**

  jump into the debugger before executing anything

- **--post-mortem**

  jump into the debugger in case of errors

- **--traceback**

  print call trace in case of errors

- **-H**, **--http-debug**

  debug HTTP traffic (filters some headers)

- **--http-full-debug**

  debug HTTP traffic (filters no headers)

- **-A** *URL*, **--apiurl** *URL*

  Open Build Service API URL or a configured alias

- **--config** *FILE*

  specify alternate configuration file

- **--setopt** *KEY=VALUE*

  set a config option for the current program run

- **--no-keyring**

  disable usage of desktop keyring system

## COMMANDS

### osc person

Manage persons

osc \[global opts\] person

usage: osc \[global opts\] person \[-h\] {register,search} ...

### osc person register

Register a new person (user)

usage: osc \[global opts\] register \[-h\] --login LOGIN --realname REALNAME\
                                   \--email EMAIL \[--password PASSWORD\]\
                                   \[--note NOTE\] \[--state STATE\]

options:

- **--login** *LOGIN*

  Login.

- **--realname** *REALNAME*

  Real name of the person.

- **--email** *EMAIL*

  Email address.

- **--password** *PASSWORD*

  Password. An interactive prompt is shown if password is not specified.

- **--note** *NOTE*

  Any notes about the person.

- **--state** *STATE*

  State of the account. Defaults to 'unconfirmed'.

### osc person search

Search a person (user)

usage: osc \[global opts\] search \[-h\] \[--login LOGIN\] \[--login-contains SUBSTR\]\
                                 \[--realname-contains SUBSTR\] \[--email EMAIL\]\
                                 \[--email-contains SUBSTR\]

options:

- **--login** *LOGIN*

  Search by a login.

- **--login-contains** *SUBSTR*

  Search by a substring in a login.

- **--realname-contains** *SUBSTR*

  Search by a substring in a realname.

- **--email** *EMAIL*

  Search by an email address.

- **--email-contains** *SUBSTR*

  Search by a substring in an email address.

### osc repo

Manage repositories in project meta

osc \[global opts\] repo

usage: osc \[global opts\] repo \[-h\] {add,list,ls,remove,rm} ...

### osc repo add

Add a repository to project meta

usage: osc \[global opts\] add \[-h\] --repo NAME --arch \[ARCH\]\
                              \--path \[PROJECT/REPO\] \[--disable-publish\] \[--yes\]\
                              project

arguments:

- **project**

  Name of the project

options:

- **--repo** *NAME*

  Name of the repository we're adding

- **--arch** *\[ARCH\]*

  Architecture of the repository. Can be specified multiple times.

- **--path** *\[PROJECT/REPO\]*

  Path associated to the repository. Format is PROJECT/REPO. Can be specified multiple times.

- **--disable-publish**

  Disable publishing the added repository

- **--yes**

  Proceed without asking

### osc repo list (ls)

List repositories in project meta

usage: osc \[global opts\] list \[-h\] project

arguments:

- **project**

  Name of the project

### osc repo remove (rm)

Remove repositories from project meta

usage: osc \[global opts\] remove \[-h\] --repo \[NAME\] \[--yes\] project

arguments:

- **project**

  Name of the project

options:

- **--repo** *\[NAME\]*

  Name of the repository we're removing. Can be specified multiple times.

- **--yes**

  Proceed without asking

### osc add

Mark files to be added upon the next commit

usage: osc \[global opts\] add \[-h\] \[-f\]

In case a URL is given the file will get downloaded and registered to be downloaded by the server as well via the download\_url source service.

This is recommended for release tar balls to track their source and to help others to review your changes esp. on version upgrades.

usage:\
     osc add URL \[URL...\]\
     osc add FILE \[FILE...\]

options:

- **-f**, **--force**

  add files even if they are excluded by the exclude\_glob config option

### osc addchannels

Add channels to project

usage: osc \[global opts\] addchannels \[-h\] \[-s\] \[-e\]

The command adds all channels which are defined to be used for a given source package. The source link target is used to lookup the channels. The command can be used for a certain package or for all in the specified project.

In case no channel is defined the operation is just returning.

Examples:\
     osc addchannels \[PROJECT \[PACKAGE\]\]

options:

- **-s**, **--skip-disabled**

  Skip disabled channels. Otherwise the source gets added, but not the repositories.

- **-e**, **--enable-all**

  Enable all added channels including the ones disabled by default.

### osc addcontainers

Add maintained containers for a give package

usage: osc \[global opts\] addcontainers \[-h\] \[--extend-package-names\]

The command adds all containers which are marked as maintained and contain an rpm originating from the specified source package.

Examples:\
     osc addcontainers \[PROJECT PACKAGE\]

options:

- **--extend-package-names**

  Extend packages names with project name as suffix

### osc addremove (ar)

Adds new files, removes disappeared files

usage: osc \[global opts\] addremove \[-h\] \[-r\]

Adds all files new in the local copy, and removes all disappeared files.

ARG, if specified, is a package working copy.

options:

- **-r**, **--recursive**

  If CWD is a project dir then scan all package dirs as well

### osc aggregatepac

"Aggregate" a package to another package

usage: osc \[global opts\] aggregatepac \[-h\] \[--nosources\]\
                                       \[-m SRC=TARGET\[,SRC=TARGET\]\] \[-d\]

Aggregation of a package means that the build results (binaries) of a package are basically copied into another project. This can be used to make packages available from building that are needed in a project but available only in a different project. Note that this is done at the expense of disk space. See http://en.opensuse.org/openSUSE:Build\_Service\_Tips\_and\_Tricks#link\_and\_aggregate for more information.

The DESTPAC name is optional; the source packages' name will be used if DESTPAC is omitted.

usage:\
     osc aggregatepac SOURCEPRJ SOURCEPAC\[:FLAVOR\] DESTPRJ \[DESTPAC\]

options:

- **--nosources**

  ignore source packages when copying build results to destination project

- **-m** *SRC=TARGET\[,SRC=TARGET\]*, **--map-repo** *SRC=TARGET\[,SRC=TARGET\]*

  Allows repository mapping(s) to be given as SRC=TARGET\[,SRC=TARGET\]

- **-d**, **--disable-publish**

  disable publishing of the aggregated package

### osc api

Issue an arbitrary request to the API

usage: osc \[global opts\] api \[-h\] \[-X HTTP\_METHOD\] \[-e\] \[-d STRING\] \[-T FILE\]\
                              \[-a NAME STRING NAME STRING\]\
                              url

Useful for testing.

URL can be specified either partially (only the path component), or fully with URL scheme and hostname ('http://...').

Note the global -A and -H options (see osc help).

Examples:\
   osc api /source/home:user\
   osc api -X PUT -T /etc/fstab source/home:user/test5/myfstab\
   osc api -e /configuration

arguments:

- **url**

  either URL '/path' or full URL with 'scheme://hostname/path'

options:

- **-X** *HTTP\_METHOD*, **-m** *HTTP\_METHOD*, **--method** *HTTP\_METHOD*

  specify HTTP method to use (HEAD\|GET\|PUT\|DELETE\|POST)

- **-e**, **--edit**

  GET, edit and PUT the location

- **-d** *STRING*, **--data** *STRING*

  specify string data for e.g. POST

- **-T** *FILE*, **-f** *FILE*, **--file** *FILE*

  specify filename to upload, uses PUT mode by default

- **-a** *NAME STRING NAME STRING*, **--add-header** *NAME STRING NAME STRING*

  add the specified header to the request

### osc branch (getpac, bco, branchco)

Branch a package

usage: osc \[global opts\] branch \[-h\] \[--nodevelproject\] \[-c\] \[-f\]\
                                 \[--add-repositories\] \[--extend-package-names\]\
                                 \[--noaccess\] \[-m TEXT\] \[-M\] \[-N\] \[-r rev\]\
                                 \[--linkrev linkrev\]\
                                 \[--add-repositories-block add\_repositories\_block\]\
                                 \[--add-repositories-rebuild add\_repositories\_rebuild\]\
                                 \[--disable-build\]

\[See http://en.opensuse.org/openSUSE:Build\_Service\_Collaboration for information on this topic.\]

Create a source link from a package of an existing project to a new subproject of the requesters home project (home:branches:)

The branched package will live in\
     home:USERNAME:branches:PROJECT/PACKAGE if nothing else specified.

With getpac or bco, the branched package will come from one of\
     %(getpac\_default\_project)s (list of projects from oscrc:getpac\_default\_project) if nothing else is specified on the command line.

In case of branch errors, where the source has currently merge conflicts use --linkrev=base option.

usage:\
     osc branch\
     osc branch SOURCEPROJECT SOURCEPACKAGE\
     osc branch SOURCEPROJECT SOURCEPACKAGE TARGETPROJECT\|.\
     osc branch SOURCEPROJECT SOURCEPACKAGE TARGETPROJECT\|. TARGETPACKAGE\
     osc getpac SOURCEPACKAGE\
     osc bco ...

options:

- **--nodevelproject**

  do not follow a defined devel project (primary project where a package is developed)

- **-c**, **--checkout**

  Checkout branched package afterwards using "co -e -S"('osc bco' is a shorthand for this option)

- **-f**, **--force**

  force branch, overwrite target

- **--add-repositories**

  Add repositories to target project (happens by default when project is new)

- **--extend-package-names**

  Extend packages names with project name as suffix

- **--noaccess**

  Create a hidden project

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

- **-M**, **--maintenance**

  Create project and package in maintenance mode

- **-N**, **--new-package**

  create a branch pointing to a not yet existing package

- **-r** *rev*, **--revision** *rev*

  branch against a specific revision

- **--linkrev** *linkrev*

  specify the used revision in the link target.

- **--add-repositories-block** *add\_repositories\_block*

  specify the used block strategy for new repositories

- **--add-repositories-rebuild** *add\_repositories\_rebuild*

  specify the used rebuild strategy for new repositories

- **--disable-build**

  disable building of the branched package

### osc browse

Opens browser

usage: osc \[global opts\] browse \[-h\]

usage:\
    osc browse \[PROJECT \[PACKAGE\]\]\
    osc browse \[REQUEST\_ID\]

### osc build (wipe, shell, chroot)

Build a package on your local machine

usage: osc \[global opts\] build \[-h\] \[--clean\] \[-o\] \[-l\] \[--no-changelog\]\
                                \[--rsync-src RSYNCSRCPATH\]\
                                \[--rsync-dest RSYNCDESTPATH\]\
                                \[--overlay OVERLAY\] \[--noinit\] \[--checks\]\
                                \[--nochecks\] \[--no-verify\] \[--nodebugpackages\]\
                                \[--skip-local-service-run\] \[-p DIR\] \[-k DIR\]\
                                \[-M FLAVOR\] \[-x PAC\] \[-X FILE\] \[--root ROOT\]\
                                \[-j N\] \[-t N\] \[--icecream N\] \[--ccache\]\
                                \[--pkg-ccache /path/to/\_ccache.tar\] \[--sccache\]\
                                \[--sccache-uri redis://127.0.0.1:6389\]\
                                \[--with X\] \[--without X\] \[--define 'X Y'\]\
                                \[--build-opt OPT\] \[--buildtool-opt OPT\]\
                                \[--userootforbuild\]\
                                \[--build-uid uid:gid\|"caller"\]\
                                \[--local-package\] \[--stage STAGE\]\
                                \[--linksources\] \[--vm-memory MEMORY\]\
                                \[--vm-disk-size DISKSIZE\] \[--vm-type TYPE\]\
                                \[--vm-telnet TELNET\] \[--target TARGET\]\
                                \[--alternative-project PROJECT\] \[-d\]\
                                \[--disable-debuginfo\] \[-b\] \[--release N\]\
                                \[--disable-cpio-bulk-download\]\
                                \[--download-api-only\] \[--oldpackages DIR\]\
                                \[--verbose-mode MODE\] \[--shell-after-fail\]\
                                \[--shell-cmd COMMAND\] \[-f\] \[--host HOST\]\
                                \[--trust-all-projects\] \[--nopreinstallimage\]\
                                \[--just-print-buildroot\] \[--no-timestamps\]

The command works from a package checkout (local changes are fine).

You can use \`osc repos\` to look up REPOSITORY and ARCH arguments. If they are not set, \`osc\` choses from configured repos in this priority:\
   1\. \`build\_repository\` mentioned in config file\
   2\. "standard"\
   3\. "openSUSE\_Factory"\
   4\. "openSUSE\_Tumbleweed"\
   5\. last repo from the sorted list

BUILD\_DESCR is either a RPM spec file, or a Debian dsc file.

The command honors packagecachedir, build-root and build-uid settings in oscrc, if present. You may want to set su-wrapper = 'sudo' in oscrc, and configure sudo with option NOPASSWD for /usr/bin/build.

If neither --clean nor --noinit is given, build will reuse an existing build-root again, removing unneeded packages and add missing ones. This is usually the fastest option.

If the package doesn't exist on the server please use the --local-package option. If the project of the package doesn't exist on the server use the --alternative-project \<alternative-project\> option. Example:\
     osc build \[OPTS\] --alternative-project openSUSE:10.3 standard i586 BUILD\_DESCR

usage:\
     osc build \[OPTS\]                      # will try to guess a build environment\
     osc build \[OPTS\] REPOSITORY ARCH BUILD\_DESCR\
     osc build \[OPTS\] REPOSITORY ARCH\
     osc build \[OPTS\] REPOSITORY (ARCH = hostarch, BUILD\_DESCR is detected automatically)\
     osc build \[OPTS\] ARCH (REPOSITORY = build\_repository (config option), BUILD\_DESCR is detected automatically)\
     osc build \[OPTS\] BUILD\_DESCR (REPOSITORY = build\_repository (config option), ARCH = hostarch)\
     osc build \[OPTS\] (REPOSITORY = build\_repository (config option), ARCH = hostarch, BUILD\_DESCR is detected automatically)

For debugging after a build you can jump into the build environment:\
     osc shell \[OPTS\] REPOSITORY ARCH

Run a single command inside of the build environment:\
     osc shell --shell-cmd=COMMAND \[OPTS\] REPOSITORY ARCH

Useful \`shell\` OPTS\
     \--noinit             # for faster run\
     \--shell-cmd=COMMAND\
     \--shell-after-fail\
     \--extra-pkgs=PACKAGE # install additional packages

To clean up the build environment run\
     osc wipe \[OPTS\]\
     osc wipe \[OPTS\] REPOSITORY ARCH

If you've set the used VM type in oscrc, it can be also overridden here

    \--vm-type=chroot     # for faster, but uncleaner and unsecure build\
     \--vm-type=kvm        # for clean and secure build\
     \--vm-type=qemu       # for slow cross architecture build using system emulator

\# Note: # Configuration can be overridden by envvars, e.g. # OSC\_SU\_WRAPPER overrides the setting of su-wrapper. # OSC\_BUILD\_ROOT overrides the setting of build-root. # OSC\_PACKAGECACHEDIR overrides the setting of packagecachedir.

options:

- **--clean**

  Delete old build root before initializing it

- **-o**, **--offline**

  Start with cached prjconf and packages without contacting the api server

- **-l**, **--preload**

  Preload all files into the cache for offline operation

- **--no-changelog**

  don't update the package changelog from a changes file

- **--rsync-src** *RSYNCSRCPATH*

  Copy folder to buildroot after installing all RPMs. Use together with --rsync-dest. This is the path on the HOST filesystem e.g. /tmp/linux-kernel-tree. It defines RSYNCDONE 1 .

- **--rsync-dest** *RSYNCDESTPATH*

  Copy folder to buildroot after installing all RPMs. Use together with --rsync-src. This is the path on the TARGET filesystem e.g. /usr/src/packages/BUILD/linux-2.6 .

- **--overlay** *OVERLAY*

  Copy overlay filesystem to buildroot after installing all RPMs .

- **--noinit**, **--no-init**

  Skip initialization of build root and start with build immediately.

- **--checks**

  Run checks even if disabled in the build config

- **--nochecks**, **--no-checks**

  Do not run build checks on the resulting packages.

- **--no-verify**, **--noverify**

  Skip signature verification (via pgp keys) of packages used for build. (Global config in oscrc: no\_verify)

- **--nodebugpackages**, **--no-debug-packages**

  Skip installation of additional debug packages for CLI builds (specified in obs:cli\_debug\_packages in project metadata)

- **--skip-local-service-run**, **--noservice**, **--no-service**

  Skip run of local source services as specified in \_service file.

- **-p** *DIR*, **--prefer-pkgs** *DIR*

  Prefer packages from this directory when installing the build-root

- **-k** *DIR*, **--keep-pkgs** *DIR*

  Save built packages into this directory

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

- **-x** *PAC*, **--extra-pkgs** *PAC*

  Add this package when installing the build-root

- **-X** *FILE*, **--extra-pkgs-from** *FILE*

  Add packages listed in this file when installing the build-root

- **--root** *ROOT*

  Build in specified directory

- **-j** *N*, **--jobs** *N*

  Compile with N jobs

- **-t** *N*, **--threads** *N*

  Compile with N threads

- **--icecream** *N*

  use N parallel build jobs with icecream

- **--ccache**

  use ccache to speed up rebuilds

- **--pkg-ccache** */path/to/\_ccache.tar*

  path to an existing uncompressed archive ccache. Using this option implies --ccache

- **--sccache**

  use sccache to speed up rebuilds. Conflicts with --cache

- **--sccache-uri** *redis://127.0.0.1:6389*

  Optional remote URI for sccache storage. Implies --sccache.

- **--with** *X*

  enable feature X for build

- **--without** *X*

  disable feature X for build

- **--define** *'X Y'*

  define macro X with value Y

- **--build-opt** *OPT*

  pass option OPT to the build command

- **--buildtool-opt** *OPT*

  pass option OPT to the build tool command (rpmbuild), for example:\
     \* don't clean build environment after a successful build:\
       \--buildtool-opt=--noclean

- **--userootforbuild**, **--login-as-root**

  Run build or shell as root. The default is to build as unprivileged user. Note that a line "# norootforbuild" in the spec file will invalidate this option.

- **--build-uid** *uid:gid\|"caller"*

  specify the numeric uid:gid pair to assign to the unprivileged "abuild" user or use "caller" to use the current user uid:gid

- **--local-package**

  build a package which does not exist on the server

- **--stage** *STAGE*

  runs a specific stage, default is "a" for all. Append a trailing "="to only run the specified stage. Append a trailing "+" to runthe specified stage and all stages coming after it. With nosuffix, stages up to and included the specified stage are run.

- **--linksources**

  use hard links instead of a deep copied source

- **--vm-memory** *MEMORY*

  amount of memory for VM defined in MB

- **--vm-disk-size** *DISKSIZE*

  size for newly created disk image in MB

- **--vm-type** *TYPE*

  use VM type TYPE (e.g. kvm)

- **--vm-telnet** *TELNET*

  Launch a telnet server inside of VM build

- **--target** *TARGET*

  define target platform

- **--alternative-project** *PROJECT*

  specify the build target project

- **-d**, **--debuginfo**

  also build debuginfo sub-packages

- **--disable-debuginfo**

  disable build of debuginfo packages

- **-b**, **--baselibs**

  Create -32bit/-64bit/-x86 rpms for other architectures

- **--release** *N*

  set release number of the package to N

- **--disable-cpio-bulk-download**

  disable downloading packages as cpio archive from api

- **--download-api-only**

  only fetch packages from the api

- **--oldpackages** *DIR*

  take previous build from DIR (special values: \_self, \_link)

- **--verbose-mode** *MODE*

  set verbose mode of the "build" program, arguments can be "all" or "vm"

- **--shell-after-fail**

  run a shell if the build tool fails

- **--shell-cmd** *COMMAND*

  run specified command instead of bash

- **-f**, **--force**

  Do not ask for confirmation to wipe

- **--host** *HOST*

  perform the build on a remote server - user@server:~/remote/directory

- **--trust-all-projects**

  trust packages from all projects

- **--nopreinstallimage**, **--no-preinstallimage**

  Do not use preinstall images for creating the build root.

- **--just-print-buildroot**

  Print build root path and exit.

- **--no-timestamps**, **-s**, **--strip-time**

  Hide the time prefix in output.

### osc buildconfig

Shows the build config

usage: osc \[global opts\] buildconfig \[-h\]

Shows the build configuration which is used in building a package. This command is mostly used internally by the 'build' command.

The returned data is the project-wide build configuration in a format which is directly readable by the build script. It contains RPM macros and BuildRequires expansions, for example.

The argument REPOSITORY an be taken from the first column of the

usage:\
     osc buildconfig REPOSITORY                      (in pkg or prj dir)\
     osc buildconfig PROJECT REPOSITORY

### osc buildhistory (buildhist)

Shows the build history of a package

usage: osc \[global opts\] buildhistory \[-h\] \[--csv\] \[-l limit\] \[-M FLAVOR\]

The arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output.

usage:\
    osc buildhist REPOSITORY ARCHITECTURE\
    osc buildhist PROJECT PACKAGE\[:FLAVOR\] REPOSITORY ARCHITECTURE

options:

- **--csv**

  generate output in CSV (separated by \|)

- **-l** *limit*, **--limit** *limit*

  for setting the number of results

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

### osc buildinfo

Shows the build info

usage: osc \[global opts\] buildinfo \[-h\] \[--alternative-project PROJECT\] \[-d\]\
                                    \[-M FLAVOR\] \[-x PAC\] \[-p DIR\]\
                                    \[--nodebugpackages\]

Shows the build "info" which is used in building a package. This command is mostly used internally by the 'build' subcommand. It needs to be called from within a package directory.

The BUILD\_DESCR argument is optional. BUILD\_DESCR is a local RPM specfile or Debian "dsc" file. If specified, it is sent to the server, and the buildinfo will be based on it. If the argument is not supplied, the buildinfo is derived from the specfile which is currently on the source repository server.

The returned data is XML and contains a list of the packages used in building, their source, and the expanded BuildRequires.

The arguments REPOSITORY and ARCH are optional. They can be taken from the first two columns of the 'osc repos' output. If not specified, REPOSITORY defaults to the 'build\_repository' config entry in your 'oscrc' and ARCH defaults to your host architecture.

usage:\
     in a package working copy:\
         osc buildinfo \[OPTS\] REPOSITORY ARCH BUILD\_DESCR\
         osc buildinfo \[OPTS\] REPOSITORY (ARCH = hostarch, BUILD\_DESCR is detected automatically)\
         osc buildinfo \[OPTS\] ARCH (REPOSITORY = build\_repository (config option), BUILD\_DESCR is detected automatically)\
         osc buildinfo \[OPTS\] BUILD\_DESCR (REPOSITORY = build\_repository (config option), ARCH = hostarch)\
         osc buildinfo \[OPTS\] (REPOSITORY = build\_repository (config option), ARCH = hostarch, BUILD\_DESCR is detected automatically)\
         Note: if BUILD\_DESCR does not exist locally the remote BUILD\_DESCR is used

    osc buildinfo \[OPTS\] PROJECT PACKAGE\[:FLAVOR\] REPOSITORY ARCH \[BUILD\_DESCR\]

options:

- **--alternative-project** *PROJECT*

  specify the build target project

- **-d**, **--debug**

  verbose output of build dependencies

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

- **-x** *PAC*, **--extra-pkgs** *PAC*

  Add this package when computing the buildinfo

- **-p** *DIR*, **--prefer-pkgs** *DIR*

  Prefer packages from this directory when installing the build-root

- **--nodebugpackages**, **--no-debug-packages**

  Skip installation of additional debug packages for CLI builds (specified in obs:cli\_debug\_packages in project metadata)

### osc buildlog (buildlogtail, blt, bl)

Shows the build log of a package

usage: osc \[global opts\] buildlog \[-h\] \[-l\] \[--lastsucceeded\] \[-M FLAVOR\]\
                                   \[-o OFFSET\] \[-s\]

Shows the log file of the build of a package. Can be used to follow the log while it is being written. Needs to be called from within a package directory.

When called as buildlogtail (or blt) it just shows the end of the logfile. This is useful to see just a build failure reasons.

The arguments REPOSITORY and ARCH are the first two columns in the 'osc results' output. If the buildlog url is used buildlog command has the same behavior as remotebuildlog.

buildlog \[REPOSITORY ARCH \| BUILDLOGURL\]

options:

- **-l**, **--last**

  Show the last finished log file

- **--lastsucceeded**, **--last-succeeded**

  Show the last succeeded log file

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

- **-o** *OFFSET*, **--offset** *OFFSET*

  get log start or end from the offset

- **-s**, **--strip-time**

  strip leading build time from the log

### osc cat (less, blame)

Output the content of a file to standard output

usage: osc \[global opts\] cat \[-h\] \[-r rev\] \[-e\] \[-u\] \[-D\] \[-M\]

Examples:\
     osc cat file\
     osc cat project package file\
     osc cat project/package/file\
     osc cat http://api.opensuse.org/build/.../\_log\
     osc cat http://api.opensuse.org/source/../\_link

    osc less file\
     osc less project package file

    osc blame file\
     osc blame project package file

options:

- **-r** *rev*, **--revision** *rev*

  print out the specified revision

- **-e**, **--expand**

  (default) force expansion of linked packages.

- **-u**, **--unexpand**

  always work with unexpanded packages.

- **-D**, **--deleted**

  access file in a deleted package

- **-M**, **--meta**

  list meta data files

### osc changedevelrequest (changedevelreq, cr)

Create request to change the devel package definition

usage: osc \[global opts\] changedevelrequest \[-h\] \[-m TEXT\]

\[See http://en.opensuse.org/openSUSE:Build\_Service\_Collaboration for information on this topic.\]

See the "request" command for showing and modifying existing requests.

usage:\
     osc changedevelrequest PROJECT PACKAGE DEVEL\_PROJECT \[DEVEL\_PACKAGE\]

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

### osc checkconstraints

Check the constraints and view compliant workers

usage: osc \[global opts\] checkconstraints \[-h\] \[--ignore-file\] \[-M FLAVOR\]

Checks the constraints for compliant workers.

usage:\
     remote request:\
         osc checkconstraints \[OPTS\] PROJECT PACKAGE REPOSITORY ARCH \[CONSTRAINTSFILE\]

    in a package working copy:\
         osc checkconstraints \[OPTS\] REPOSITORY ARCH \[CONSTRAINTSFILE\]\
         osc checkconstraints \[OPTS\] CONSTRAINTSFILE\
         osc checkconstraints \[OPTS\]

options:

- **--ignore-file**

  ignore \_constraints file and only check project constraints

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

### osc checkout (co)

Check out content from the repository

usage: osc \[global opts\] checkout \[-h\] \[-r rev\] \[-e\] \[-D\] \[-u\] \[-M\] \[-c\]\
                                   \[-o outdir\] \[-s\] \[-S\] \[-l limit\_size\]\
                                   \[--native-obs-package\]

Check out content from the repository server, creating a local working copy.

When checking out a single package, the option --revision can be used to specify a revision of the package to be checked out.

When a package is a source link, then it will be checked out in expanded form. If --unexpand-link option is used, the checkout will instead produce the raw \_link file plus patches.

usage:\
     osc co PROJECT \[PACKAGE\] \[FILE\]\
        osc co PROJECT                    # entire project\
        osc co PROJECT PACKAGE            # a package\
        osc co PROJECT PACKAGE FILE       # single file -\> to current dir

    while inside a project directory:\
        osc co PACKAGE                    # check out PACKAGE from project

    with the result of rpm -q --qf '%%{DISTURL}\\n' PACKAGE\
        osc co obs://API/PROJECT/PLATFORM/REVISION-PACKAGE

options:

- **-r** *rev*, **--revision** *rev*

  checkout the specified revision. NOTE: if you checkout the complete project this option is ignored!

- **-e**, **--expand-link**

  if a package is a link, check out the expanded sources (no-op, since this became the default)

- **-D**, **--deleted**

  checkout an already deleted package. No meta information

- **-u**, **--unexpand-link**

  if a package is a link, check out the \_link file instead of the expanded sources

- **-M**, **--meta**

  checkout out meta data instead of sources

- **-c**, **--current-dir**

  place PACKAGE folder in the current directory instead of a PROJECT/PACKAGE directory

- **-o** *outdir*, **--output-dir** *outdir*

  place package in the specified directory instead of a PROJECT/PACKAGE directory

- **-s**, **--source-service-files**

  Run source services.

- **-S**, **--server-side-source-service-files**

  Use server side generated sources instead of local generation.

- **-l** *limit\_size*, **--limit-size** *limit\_size*

  Skip all files with a given size

- **--native-obs-package**

  Do not clone native scm repositories: Different representation and you will not be able to submit changes!

### osc clean

Removes all untracked files from the package working copy

usage: osc \[global opts\] clean \[-h\] \[-n\]

Examples:\
     osc clean \<path\>

Note: if \<path\> is omitted it defaults to '.' (\<path\> has to be a package working copy)

Warning: This command removes all files with status '?'.

options:

- **-n**, **--dry-run**

  print the results without actually removing a file

### osc cleanassets (ca)

Clean all previous downloaded assets

usage: osc \[global opts\] cleanassets \[-h\]

This is useful to prepare a new git commit.

### osc comment

List / create / delete comments

usage: osc \[global opts\] comment \[-h\] \[-c COMMENT\] \[-p PARENT\]

On create:\
     If -p is given a reply to the ID is created. Otherwise\
     a toplevel comment is created.\
     If -c is not given the default editor will be opened and\
     you can type your comment

usage:\
     osc comment list package PROJECT PACKAGE\
     osc comment list project PROJECT\
     osc comment list request REQUEST\_ID

    osc comment create \[-p PARENT\_ID\] \[-c COMMENT\] package PROJECT PACKAGE\
     osc comment create \[-p PARENT\_ID\] \[-c COMMENT\] project PROJECT\
     osc comment create \[-p PARENT\_ID\] \[-c COMMENT\] request REQUEST\_ID

    osc comment delete ID

options:

- **-c** *COMMENT*, **--comment** *COMMENT*

  comment text

- **-p** *PARENT*, **--parent** *PARENT*

  reply to comment with parent id

### osc commit (checkin, ci)

Upload content to the repository server

usage: osc \[global opts\] commit \[-h\] \[-m TEXT\] \[-n\] \[-F FILE\] \[-f\]\
                                 \[--skip-local-service-run\]

Upload content which is changed in your working copy, to the repository server.

examples:\
    osc ci                   # current dir\
    osc ci \<dir\>\
    osc ci file1 file2 ...

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify log message TEXT

- **-n**, **--no-message**

  do not specify a log message

- **-F** *FILE*, **--file** *FILE*

  read log message from FILE, '-' denotes standard input.

- **-f**, **--force**

  Allow empty commit with no changes. When committing a project, allow removing packages even if other packages depend on them.

- **--skip-local-service-run**, **--noservice**, **--no-service**

  Skip run of local source services as specified in \_service file.

### osc config

Get/set a config option

usage: osc \[global opts\] config \[-h\] \[-d\] \[-s\] \[-p\] \[--change-password\]\
                                 \[--select-password-store\] \[--no-echo\] \[--dump\]\
                                 \[--dump-full\]

Examples:\
     osc config section option (get current value)\
     osc config section option value (set to value)\
     osc config section option --delete (delete option/reset to the default)\
     osc config section --change-password (changes the password in section "section")\
     (section is either an apiurl or an alias or 'general')\
     osc config --dump (dump the complete configuration)

options:

- **-d**, **--delete**

  delete option from config or reset option to the default)

- **-s**, **--stdin**

  indicates that the config value should be read from stdin

- **-p**, **--prompt**

  prompt for a value

- **--change-password**

  Change password

- **--select-password-store**

  Change the password store

- **--no-echo**

  prompt for a value but do not echo entered characters

- **--dump**

  dump the complete configuration (without 'pass' and 'passx' options)

- **--dump-full**

  dump the complete configuration (including 'pass' and 'passx' options)

### osc copypac

Copy a package

usage: osc \[global opts\] copypac \[-h\] \[-c\] \[-k\] \[-K\] \[-d\] \[-r rev\] \[-t URL\]\
                                  \[-m TEXT\] \[-e\]

A way to copy package to somewhere else.

It can be done across buildservice instances, if the -t option is used. In that case, a client-side copy and link expansion are implied.

Using --client-side-copy always involves downloading all files, and uploading them to the target.

The DESTPAC name is optional; the source packages' name will be used if DESTPAC is omitted.

If SOURCEPRJ or DESTPRJ is '.' it will be expanded to the PRJ of the current directory.

usage:\
     osc copypac SOURCEPRJ SOURCEPAC DESTPRJ \[DESTPAC\]

options:

- **-c**, **--client-side-copy**

  do a (slower) client-side copy

- **-k**, **--keep-maintainers**

  keep original maintainers. Default is remove all and replace with the one calling the script.

- **-K**, **--keep-link**

  If the target package is a link, the link is kept, but may be updated. If the source package is a link, its expanded version is considered.

- **-d**, **--keep-develproject**

  keep develproject tag in the package metadata

- **-r** *rev*, **--revision** *rev*

  copy the specified revision.

- **-t** *URL*, **--to-apiurl** *URL*

  URL of destination api server. Default is the source api server.

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

- **-e**, **--expand**

  if the source package is a link then copy the expanded version of the link

### osc create-pbuild-config (cpc)

This command is creating the necessary files to build using pbuild tool.

usage: osc \[global opts\] create-pbuild-config \[-h\] repository arch

It basically creates \_config and \_pbuild file in the project directory. Changes from there can not get submitted back, except the project is managed in git.

Examples:\
     osc cpc REPOSITORY ARCH

arguments:

- **repository**

  - **arch**

  ### osc createincident

Create a maintenance incident

usage: osc \[global opts\] createincident \[-h\] \[-a ATTRIBUTE\] \[--noaccess\]\
                                         \[-m TEXT\]

\[See https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.maintenance\_setup.html for information on this topic.\]

This command is asking to open an empty maintenance incident. This can usually only be done by a responsible maintenance team. Please see the "mbranch" command on how to full such a project content and the "patchinfo" command how add the required maintenance update information.

usage:\
     osc createincident \[ MAINTENANCEPROJECT \]

options:

- **-a** *ATTRIBUTE*, **--attribute** *ATTRIBUTE*

  Use this attribute to find default maintenance project (default is OBS:MaintenanceProject)

- **--noaccess**

  Create a hidden project

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

### osc createrequest (creq)

Create a request with multiple actions

usage: osc \[global opts\] createrequest \[-h\] \[-a ACTION \[\[ARGS\] ...\]\] \[-m TEXT\]\
                                        \[-r REV\] \[-s REQUEST\_ID\]\
                                        \[--nodevelproject\] \[--cleanup\]\
                                        \[--no-cleanup\] \[--no-update\] \[--yes\]

usage:\
     osc creq \[OPTIONS\] \[\
         \-a submit SOURCEPRJ SOURCEPKG DESTPRJ \[DESTPKG\]\
         \-a delete PROJECT \[PACKAGE\]\
         \-a change\_devel PROJECT PACKAGE DEVEL\_PROJECT \[DEVEL\_PACKAGE\]\
         \-a add\_me ROLE PROJECT \[PACKAGE\]\
         \-a add\_group GROUP ROLE PROJECT \[PACKAGE\]\
         \-a add\_role USER ROLE PROJECT \[PACKAGE\]\
         \-a set\_bugowner USER PROJECT \[PACKAGE\]\
         \-a release PROJECT PACKAGE TARGET\_PROJECT \[\[SOURCE\_REPOSITORY\] TARGET\_REPOSITORY\]\
         \]

    Option -m works for all types of request actions, the rest work only for submit.

Example:\
     osc creq -a submit -a delete home:someone:branches:openSUSE:Tools -a change\_devel openSUSE:Tools osc home:someone:branches:openSUSE:Tools -m ok

    This will submit all modified packages under current directory, delete project home:someone:branches:openSUSE:Tools and change the devel project to home:someone:branches:openSUSE:Tools for package osc in project openSUSE:Tools.

options:

- **-a** *ACTION \[\[ARGS\] ...\]*, **--action** *ACTION \[\[ARGS\] ...\]*

  specify action type of a request, can be : submit/delete/change\_devel/add\_role/set\_bugowner

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

- **-r** *REV*, **--revision** *REV*

  for "create", specify a certain source revision ID (the md5 sum)

- **-s** *REQUEST\_ID*, **--supersede** *REQUEST\_ID*

  Superseding another request by this one

- **--nodevelproject**

  do not follow a defined devel project (primary project where a package is developed)

- **--cleanup**

  remove package if submission gets accepted (default for home:\<id\>:branch projects)

- **--no-cleanup**

  never remove source package on accept, but update its content

- **--no-update**

  never touch source package on accept (will break source links)

- **--yes**

  proceed without asking.

### osc delete (remove, del, rm)

Mark files or package directories to be deleted upon the next 'checkin'

usage: osc \[global opts\] delete \[-h\] \[-f\]

usage:\
     cd .../PROJECT/PACKAGE\
     osc delete FILE \[...\]\
     cd .../PROJECT\
     osc delete PACKAGE \[...\]

This command works on check out copies. Use "rdelete" for working on server side only. This is needed for removing the entire project.

As a safety measure, projects must be empty (i.e., you need to delete all packages first).

If you are sure that you want to remove a package and all its files use '--force' switch. Sometimes this also works without --force.

options:

- **-f**, **--force**

  forces removal of entire package and its files

### osc deleterequest (deletereq, droprequest, dropreq, dr)

Request to delete (or 'drop') a package or project

usage: osc \[global opts\] deleterequest \[-h\] \[-m TEXT\] \[-r REPOSITORY\] \[--all\]\
                                        \[--accept-in-hours HOURS\]

usage:\
     osc deletereq \[-m TEXT\]                     # works in checked out project/package\
     osc deletereq \[-m TEXT\] PROJECT PACKAGE\
     osc deletereq \[-m TEXT\] PROJECT \[--all\|--repository REPOSITORY\]

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

- **-r** *REPOSITORY*, **--repository** *REPOSITORY*

  specify repository

- **--all**

  deletes entire project with packages inside

- **--accept-in-hours** *HOURS*

  specify time when request shall get accepted automatically. Only works with write permissions in target.

### osc dependson

Dependson shows the build dependencies inside of a project, valid for a given repository and architecture

usage: osc \[global opts\] dependson \[-h\] \[-M FLAVOR\]

The command can be used to find build dependencies (wrt. a given repository and arch) that reside in the same project. To see all build dependencies use the buildinfo command.

This is no guarantee, since the new build might have changed dependencies.

NOTE: to see all binary packages, which can trigger a build you need to\
       refer the buildinfo, since this command shows only the dependencies\
       inside of a project.

The arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output.

usage in package or project directory:\
     osc dependson REPOSITORY ARCH

usage:\
     osc dependson PROJECT \[PACKAGE\[:FLAVOR\]\] REPOSITORY ARCH

options:

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

### osc detachbranch

Replace a link with its expanded sources

usage: osc \[global opts\] detachbranch \[-h\] \[-m TEXT\]

If a package is a link it is replaced with its expanded sources. The link does not exist anymore.

usage:\
     osc detachbranch                    # from a package working copy\
     osc detachbranch PROJECT PACKAGE

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

### osc develproject (dp, bsdevelproject)

Print the devel project / package of a package

usage: osc \[global opts\] develproject \[-h\]

Examples:\
     osc develproject \[PROJECT PACKAGE\]

### osc diff (di, ldiff, linkdiff)

Generates a diff

usage: osc \[global opts\] diff \[-h\] \[-c rev\] \[-r rev1\[:rev2\]\] \[-M\] \[-p\] \[-l\]\
                               \[--missingok\] \[-u\]

Generates a diff, comparing local changes against the repository server.

usage:\
         ARG, if specified, is a filename to include in the diff.\
         Default: all files.

    osc diff --link\
     osc linkdiff\
         Compare current checkout directory against the link base.

    osc diff --link PROJ PACK\
     osc linkdiff PROJ PACK\
         Compare a package against the link base (ignoring working copy changes).

options:

- **-c** *rev*, **--change** *rev*

  the change made by revision rev (like -r rev-1:rev).If rev is negative this is like -r rev:rev-1.

- **-r** *rev1\[:rev2\]*, **--revision** *rev1\[:rev2\]*

  If rev1 is specified it will compare your working copy against the revision (rev1) on the server. If rev1 and rev2 are specified it will compare rev1 against rev2 (NOTE: changes in your working copy are ignored in this case)

- **-M**, **--meta**

  operate on meta files

- **-p**, **--plain**

  output the diff in plain (not unified) diff format

- **-l**, **--link**

  (osc linkdiff): compare against the base revision of the link

- **--missingok**

  do not fail if the source or target project/package does not exist on the server

- **-u**, **--unexpand**

  Local changes only, ignore changes in linked package sources

### osc distributions (dists)

Shows all available distributions

usage: osc \[global opts\] distributions \[-h\]

This command shows the available distributions. For active distributions it shows the name, project and name of the repository and a suggested default repository name.

usage:\
     osc distributions

### osc downloadassets (da)

usage: osc \[global opts\] downloadassets \[-h\]

### osc enablechannels (enablechannel)

Enables channels

usage: osc \[global opts\] enablechannels \[-h\]

Enables existing channel packages in a project. Enabling means adding the needed repositories for building. The command can be used to enable a specific one or all channels of a project.

Examples:\
     osc enablechannels \[PROJECT \[PACKAGE\]\]

### osc getbinaries

Download binaries to a local directory

usage: osc \[global opts\] getbinaries \[-h\] \[-d DIR\] \[-M FLAVOR\] \[--sources\]\
                                      \[--debuginfo\] \[--ccache\]

This command downloads packages directly from the api server. Thus, it directly accesses the packages that are used for building others even when they are not "published" yet.

usage:\
    osc getbinaries REPOSITORY                                 # works in checked out project/package (check out all archs in subdirs)\
    osc getbinaries REPOSITORY ARCHITECTURE                    # works in checked out project/package\
    osc getbinaries PROJECT REPOSITORY ARCHITECTURE\
    osc getbinaries PROJECT PACKAGE REPOSITORY ARCHITECTURE\
    osc getbinaries PROJECT PACKAGE REPOSITORY ARCHITECTURE FILE

options:

- **-d** *DIR*, **--destdir** *DIR*

  destination directory

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Get binaries from the specified flavor of a multibuild package. It is meant for use from a package checkout when it is not possible to specify package:flavor.

- **--sources**

  also fetch source packages

- **--debuginfo**

  also fetch debug packages

- **--ccache**

  allow fetching ccache archive

### osc help (?)

Give detailed help on a specific sub-command

usage: osc \[global opts\] help \[-h\]

usage:\
   %(prog)s \[SUBCOMMAND\]

### osc importsrcpkg

Import a new package from a src.rpm

usage: osc \[global opts\] importsrcpkg \[-h\] \[-p project\] \[-n name\] \[-t title\]\
                                       \[-d description\] \[--delete-old-files\]\
                                       \[-c\]\
                                       srpm

A new package dir will be created inside the project dir (if no project is specified and the current working dir is a project dir the package will be created in this project). If the package does not exist on the server it will be created too otherwise the meta data of the existing package will be updated (\<title /\> and \<description /\>). The src.rpm will be extracted into the package dir. The files won't be committed unless you explicitly pass the --commit switch.

SRPM is the path of the src.rpm in the local filesystem, or an URL.

arguments:

- **srpm**

  options:

- **-p** *project*, **--project** *project*

  specify the path to a project

- **-n** *name*, **--name** *name*

  specify a package name

- **-t** *title*, **--title** *title*

  set a title

- **-d** *description*, **--description** *description*

  set the description of the package

- **--delete-old-files**

  delete existing files from the server

- **-c**, **--commit**

  commit the new files

### osc info

Print information about a working copy

usage: osc \[global opts\] info \[-h\]

Print information about each ARG (default: '.') ARG is a working-copy path.

### osc init

Initialize a directory as working copy

usage: osc \[global opts\] init \[-h\] project \[package\] \[scm\_url\]

Initialize an existing directory to be a working copy of an (already existing) buildservice project/package.

(This is the same as checking out a package and then copying sources into the directory. It does NOT create a new package. To create a package, use 'osc meta pkg ... ...')

You wouldn't normally use this command.

To get a working copy of a package (e.g. for building it or working on it, you would normally use the checkout command. Use "osc help checkout" to get help for it.

usage:\
     osc init PRJ\
     osc init PRJ PAC\
     osc init PRJ PAC SCM\_URL

arguments:

- **project**

  - **package**

  - **scm\_url**

  ### osc jobhistory (jobhist)

Shows the job history of a project

usage: osc \[global opts\] jobhistory \[-h\] \[--csv\] \[-l limit\] \[-M FLAVOR\]

The arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output.

usage:\
    osc jobhist REPOSITORY ARCHITECTURE  (in project dir)\
    osc jobhist PROJECT \[PACKAGE\[:FLAVOR\]\] REPOSITORY ARCHITECTURE

options:

- **--csv**

  generate output in CSV (separated by \|)

- **-l** *limit*, **--limit** *limit*

  for setting the number of results

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

### osc linkpac

"Link" a package to another package

usage: osc \[global opts\] linkpac \[-h\] \[-C {add,copy,local}\] \[-c\] \[-r rev\] \[-f\]\
                                  \[--disable-build\] \[-d\] \[-N\]

A linked package is a clone of another package, but plus local modifications. It can be cross-project.

The TARGET\_PACKAGE name is optional; the source packages' name will be used if TARGET\_PACKAGE is omitted.

Afterwards, you will want to 'checkout TARGET\_PROJECT TARGET\_PACKAGE'.

To add a patch, add the patch as file and add it to the \_link file. You can also specify text which will be inserted at the top of the spec file.

See the examples in the \_link file.

NOTE: In case you want to fix or update another package, you should use the 'branch'\
       command. A branch has correct repositories (and a link) setup up by default and\
       will be cleaned up automatically after it was submitted back.

usage:\
     osc linkpac PROJECT PACKAGE TARGET\_PROJECT \[TARGET\_PACKAGE\]\
     osc linkpac TARGET\_PROJECT \[TARGET\_PACKAGE\]  # from a package checkout

options:

- **-C** *{add,copy,local}*, **--cicount** *{add,copy,local}*

  cicount attribute in the link, known values are add, copy, and local, default in buildservice is currently add.

- **-c**, **--current**

  link fixed against current revision.

- **-r** *rev*, **--revision** *rev*

  link the specified revision.

- **-f**, **--force**

  overwrite an existing link file if it is there.

- **--disable-build**

  disable building of the linked package

- **-d**, **--disable-publish**

  disable publishing of the linked package

- **-N**, **--new-package**

  create a link to a not yet existing package

### osc linktobranch

Convert a package containing a classic link with patch to a branch

usage: osc \[global opts\] linktobranch \[-h\]

This command tells the server to convert a \_link with or without a project.diff to a branch. This is a full copy with a \_link file pointing to the branched place.

usage:\
     osc linktobranch                    # from a package working copy\
     osc linktobranch PROJECT PACKAGE

### osc list (LL, lL, ll, ls)

List sources or binaries on the server

usage: osc \[global opts\] list \[-h\] \[-a ARCH\] \[-r REPO\] \[-b\] \[-e\] \[-u\] \[-l\]\
                               \[-D\] \[-M\] \[-R REVISION\]

Examples for listing sources:\
    ls                          # list all projects (deprecated)\
    ls /                        # list all projects\
    ls .                        # take PROJECT/PACKAGE from current dir.\
    ls PROJECT                  # list packages in a project\
    ls PROJECT PACKAGE          # list source files of package of a project\
    ls PROJECT PACKAGE \<file\>   # list \<file\> if this file exists\
    ls -v PROJECT PACKAGE       # verbosely list source files of package\
    ls -l PROJECT PACKAGE       # verbosely list source files of package\
    ll PROJECT PACKAGE          # verbosely list source files of package\
    LL PROJECT PACKAGE          # verbosely list source files of expanded link

With --verbose, the following fields will be shown for each item:\
    MD5 hash of file (doesn't apply to binaries)\
    Revision number of the last commit\
    Size (in bytes)\
    Date and time of the last commit

Examples for listing binaries:\
    ls -b PROJECT               # list all binaries of a project\
    ls -b PROJECT -a ARCH       # list ARCH binaries of a project\
    ls -b PROJECT -r REPO       # list binaries in REPO\
    ls -b PROJECT PACKAGE REPO ARCH

usage:\
    ls \[PROJECT \[PACKAGE\]\]\
    ls -b \[PROJECT \[PACKAGE \[REPO \[ARCH\]\]\]\]

options:

- **-a** *ARCH*, **--arch** *ARCH*

  specify architecture (only for binaries)

- **-r** *REPO*, **--repo** *REPO*

  specify repository (only for binaries)

- **-b**, **--binaries**

  list built binaries instead of sources

- **-e**, **--expand**

  expand linked package (only for sources)

- **-u**, **--unexpand**

  always work with unexpanded (source) packages

- **-l**, **--long**

  print extra information

- **-D**, **--deleted**

  show only the former deleted projects or packages

- **-M**, **--meta**

  list meta data files

- **-R** *REVISION*, **--revision** *REVISION*

  specify revision (only for sources)

### osc localbuildlog (lbl)

Shows the build log of a local buildchroot

usage: osc \[global opts\] localbuildlog \[-h\] \[-o OFFSET\] \[-s\]

usage:\
     osc lbl \[REPOSITORY \[ARCH\]\]\
     osc lbl # show log of newest last local build

options:

- **-o** *OFFSET*, **--offset** *OFFSET*

  get log starting from offset

- **-s**, **--strip-time**

  strip leading build time from the log

### osc lock

Locks a project or package

usage: osc \[global opts\] lock \[-h\] \[-m TEXT\]

usage:\
    osc lock PROJECT \[PACKAGE\]

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify log message TEXT

### osc log

Shows the commit log of a package

usage: osc \[global opts\] log \[-h\] \[-r rev\] \[-p\] \[--csv\] \[--xml\] \[-D\] \[-M\]

usage:\
     osc log (inside working copy)\
     osc log remote\_project \[remote\_package\]

options:

- **-r** *rev*, **--revision** *rev*

  show log of the specified revision

- **-p**, **--patch**

  show patch for each revision; NOTE: use this option carefully because it loads patches on demand in a pager

- **--csv**

  generate output in CSV

- **--xml**

  generate output in XML

- **-D**, **--deleted**

  work on deleted package

- **-M**, **--meta**

  checkout out meta data instead of sources

### osc maintainer (bugowner)

Show maintainers according to server side configuration

usage: osc \[global opts\] maintainer \[-h\] \[-b\] \[-B\] \[-e\] \[--nodevelproject\]\
                                     \[-D devel\_project\] \[-a user\] \[-A\]\
                                     \[-s user\] \[-S user\] \[-U USER\] \[-G GROUP\]\
                                     \[-d user\] \[-r role\] \[-m MESSAGE\]

\# Search for official maintained sources in OBS instance osc maintainer BINARY\_OR\_PACKAGE\_NAME \<options\> osc maintainer -U \<user\> \<options\> osc maintainer -G \<group\> \<options\>

\# Lookup via containers osc maintainer \<options\> osc maintainer PRJ \<options\> osc maintainer PRJ PKG \<options\>

The tool looks up the default responsible person for a certain project or package. When using with an OBS 2.4 (or later) server it is doing the lookup for a given binary according to the server side configuration of default owners.

The tool is also looking into devel packages and supports to fallback to the project in case a package has no defined maintainer.

Please use "osc meta pkg" in case you need to know the definition in a specific container.

PRJ and PKG default to current working-copy path.

options:

- **-b**, **--bugowner-only**

  Show only the bugowner

- **-B**, **--bugowner**

  Show only the bugowner if defined, or maintainer otherwise

- **-e**, **--email**

  show email addresses instead of user names

- **--nodevelproject**

  do not follow a defined devel project (primary project where a package is developed)

- **-D** *devel\_project*, **--devel-project** *devel\_project*

  define the project where this package is primarily developed

- **-a** *user*, **--add** *user*

  add a new person for given role ("maintainer" by default)

- **-A**, **--all**

  list all found entries not just the first one

- **-s** *user*, **--set-bugowner** *user*

  Set the bugowner to specified person (or group via group: prefix)

- **-S** *user*, **--set-bugowner-request** *user*

  Set the bugowner to specified person via a request (or group via group: prefix)

- **-U** *USER*, **--user** *USER*

  All official maintained instances for the specified USER (specified by the username or email)

- **-G** *GROUP*, **--group** *GROUP*

  All official maintained instances for the specified GROUP

- **-d** *user*, **--delete** *user*

  delete a maintainer/bugowner (can be specified via --role)

- **-r** *role*, **--role** *role*

  Specify user role

- **-m** *MESSAGE*, **--message** *MESSAGE*

  Define message as commit entry or request description

### osc maintenancerequest (mr)

Create a request for starting a maintenance incident

usage: osc \[global opts\] maintenancerequest \[-h\] \[-a ATTRIBUTE\] \[-m TEXT\]\
                                             \[--release-project RELEASEPROJECT\]\
                                             \[--enforce-branching\]\
                                             \[--no-cleanup\] \[--cleanup\]\
                                             \[--incident INCIDENT\]\
                                             \[--incident-project INCIDENT\_PROJECT\]\
                                             \[-s REQUEST\_ID\]

\[See https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.maintenance\_setup.html for information on this topic.\]

This command is asking the maintenance team to start a maintenance incident based on a created maintenance update. Please see the "mbranch" command on how to create such a project and the "patchinfo" command how add the required maintenance update information.

usage:\
     osc maintenancerequest \[ SOURCEPROJECT \[ SOURCEPACKAGES RELEASEPROJECT \] \]\
     osc maintenancerequest .

The 2nd line when issued within a package directory provides a short cut to submit a single package (the one in the current directory) from the project of this package to be submitted to the release project this package links to. This syntax is only valid when specified from a package subdirectory.

options:

- **-a** *ATTRIBUTE*, **--attribute** *ATTRIBUTE*

  Use this attribute to find default maintenance project (default is OBS:MaintenanceProject)

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

- **--release-project** *RELEASEPROJECT*

  Specify the release project

- **--enforce-branching**

  submit from a fresh branched project

- **--no-cleanup**

  do not remove source project on accept

- **--cleanup**

  do remove source project on accept

- **--incident** *INCIDENT*

  specify incident number to merge in

- **--incident-project** *INCIDENT\_PROJECT*

  specify incident project to merge in

- **-s** *REQUEST\_ID*, **--supersede** *REQUEST\_ID*

  Superseding another request by this one

### osc mbranch (maintained, sm)

Search or branch multiple instances of a package

usage: osc \[global opts\] mbranch \[-h\] \[-c\] \[-a ATTRIBUTE\]\
                                  \[-u UPDATE\_ATTRIBUTE\] \[--dryrun\] \[--noaccess\]\
                                  \[--nodevelproject\] \[--version\]

This command is used for searching all relevant instances of packages and creating links of them in one project. This is esp. used for maintenance updates. It can also be used to branch all packages marked before with a given attribute.

\[See http://en.opensuse.org/openSUSE:Build\_Service\_Concept\_Maintenance for information on this topic.\]

The branched package will live in\
     home:USERNAME:branches:ATTRIBUTE:PACKAGE if nothing else specified.

If osc maintained or sm is issued only the relevant instances of a package will be shown. No branch will be created. This is similar to osc mbranch --dryrun.

usage:\
     osc sm \[SOURCEPACKAGE\] \[-a ATTRIBUTE\]\
     osc mbranch \[ SOURCEPACKAGE \[ TARGETPROJECT \] \]

options:

- **-c**, **--checkout**

  Checkout branched package afterwards ('osc bco' is a shorthand for this option)

- **-a** *ATTRIBUTE*, **--attribute** *ATTRIBUTE*

  Use this attribute to find affected packages (default is OBS:Maintained)

- **-u** *UPDATE\_ATTRIBUTE*, **--update-project-attribute** *UPDATE\_ATTRIBUTE*

  Use this attribute to find update projects (default is OBS:UpdateProject)

- **--dryrun**

  Just simulate the action and report back the result.

- **--noaccess**

  Create a hidden project

- **--nodevelproject**

  do not follow a defined devel project (primary project where a package is developed)

- **--version**

  print version of maintained package

### osc meta

Show meta information, or edit it

usage: osc \[global opts\] meta \[-h\] \[-a ATTRIBUTE\] \[--attribute-defaults\]\
                               \[--attribute-project\] \[--blame\] \[-f\] \[-F FILE\]\
                               \[-r REV\] \[-m TEXT\] \[-e\] \[-c\] \[-R\]\
                               \[-s ATTRIBUTE\_VALUES\] \[--add ATTRIBUTE\_VALUES\]\
                               \[--delete\]

Show or edit build service metadata of type \<prj\|pkg\|prjconf\|user\|pattern\>.

This command displays metadata on buildservice objects like projects, packages, or users. The type of metadata is specified by the word after "meta", like e.g. "meta prj".

prj denotes metadata of a buildservice project. prjconf denotes the (build) configuration of a project. pkg denotes metadata of a buildservice package. user denotes the metadata of a user. group denotes the metadata of a group. pattern denotes installation patterns defined for a project.

To list patterns, use 'osc meta pattern PRJ'. An additional argument will be the pattern file to view or edit.

With the --edit switch, the metadata can be edited. Per default, osc opens the program specified by the environmental variable EDITOR with a temporary file. Alternatively, content to be saved can be supplied via the --file switch. If the argument is '-', input is taken from stdin: osc meta prjconf home:user \| sed ... \| osc meta prjconf home:user -F -

For meta prj and prjconf updates optional commit messages can be applied with --message.

When trying to edit a non-existing resource, it is created implicitly.

Examples:\
     osc meta prj PRJ\
     osc meta pkg PRJ PKG\
     osc meta pkg PRJ PKG -e

usage:\
     osc meta \<prj\|prjconf\> \[-r\|--revision REV\] ARGS...\
     osc meta \<prj\|pkg\|prjconf\|user\|group\|pattern\> ARGS...\
     osc meta \<prj\|pkg\|prjconf\|user\|group\|pattern\> \[-m\|--message TEXT\] -e\|--edit ARGS...\
     osc meta \<prj\|pkg\|prjconf\|user\|group\|pattern\> \[-m\|--message TEXT\] -F\|--file ARGS...\
     osc meta pattern --delete PRJ PATTERN\
     osc meta attribute PRJ \[PKG \[SUBPACKAGE\]\] \[--attribute ATTRIBUTE\] \[--create \[--set \<value\_list\>\]\|--delete\|--set \<value\_list\>\]

options:

- **-a** *ATTRIBUTE*, **--attribute** *ATTRIBUTE*

  affect only a given attribute

- **--attribute-defaults**

  include defined attribute defaults

- **--attribute-project**

  include project values, if missing in packages

- **--blame**

  show author and time of each line

- **-f**, **--force**

  force the save operation, allows one to ignores some errors like depending repositories. For prj meta only.

- **-F** *FILE*, **--file** *FILE*

  read metadata from FILE, instead of opening an editor. '-' denotes standard input.

- **-r** *REV*, **--revision** *REV*

  checkout given revision instead of head revision. For prj and prjconf meta only

- **-m** *TEXT*, **--message** *TEXT*

  specify log message TEXT. For prj and prjconf meta only

- **-e**, **--edit**

  edit metadata

- **-c**, **--create**

  create attribute without values

- **-R**, **--remove-linking-repositories**

  Try to remove also all repositories building against remove ones.

- **-s** *ATTRIBUTE\_VALUES*, **--set** *ATTRIBUTE\_VALUES*

  set attribute values

- **--add** *ATTRIBUTE\_VALUES*

  add to the existing attribute values, skip duplicates

- **--delete**

  delete a pattern or attribute

### osc mkpac

Create a new package under version control

usage: osc \[global opts\] mkpac \[-h\]

usage:\
     osc mkpac new\_package

### osc mv

Move SOURCE file to DEST and keep it under version control

usage: osc \[global opts\] mv \[-h\] \[-f\] source dest

arguments:

- **source**

  - **dest**

  options:

- **-f**, **--force**

  forces removal of entire package and its files

### osc my

Show waiting work, packages, projects or requests involving yourself

usage: osc \[global opts\] my \[-h\] \[-b\] \[-m\] \[-a\] \[-U USER\]\
                             \[--exclude-project EXCLUDE\_PROJECT\] \[--maintained\]

Examples:\
     \# list all open tasks for me\
     osc my \[work\]\
     \# list packages where I am bugowner\
     osc my pkg -b\
     \# list projects where I am maintainer\
     osc my prj -m\
     \# list request for all my projects and packages\
     osc my rq\
     \# list requests, excluding project 'foo' and 'bar'\
     osc my rq --exclude-project foo,bar\
     \# list requests I made\
     osc my sr

usage:\
     osc my \<TYPE\>

    where TYPE is one of requests, submitrequests,\
     projects or packages (rq, sr, prj or pkg)

options:

- **-b**, **--bugowner**

  restrict listing to items where the user is bugowner

- **-m**, **--maintainer**

  restrict listing to items where the user is maintainer

- **-a**, **--all**

  all involvements

- **-U** *USER*, **--user** *USER*

  search for USER instead of yourself

- **--exclude-project** *EXCLUDE\_PROJECT*

  exclude requests for specified project

- **--maintained**

  limit search results to packages with maintained attribute set.

### osc patchinfo

Generate and edit a patchinfo file

usage: osc \[global opts\] patchinfo \[-h\] \[-f\]

A patchinfo file describes the packages for an update and the kind of problem it solves.

This command either creates a new \_patchinfo or updates an existing one.

Examples:\
     osc patchinfo\
     osc patchinfo \[PROJECT \[PATCH\_NAME\]\]

options:

- **-f**, **--force**

  force generation of new patchinfo file, do not update existing one.

### osc pdiff

Quick alias to diff the content of a package with its parent

usage: osc \[global opts\] pdiff \[-h\] \[-p\] \[-n\]

usage:\
     osc pdiff \[--plain\|-p\] \[--nomissing-ok\|-n\]\
     osc pdiff \[--plain\|-p\] \[--nomissing-ok\|-n\] PKG\
     osc pdiff \[--plain\|-p\] \[--nomissing-ok\|-n\] PRJ PKG

options:

- **-p**, **--plain**

  output the diff in plain (not unified) diff format

- **-n**, **--nomissingok**

  fail if the parent package does not exist on the server

### osc prdiff (projdiff, projectdiff)

Server-side diff of two projects

usage: osc \[global opts\] prdiff \[-h\] \[-r\] \[-e REGEXP\] \[-i REGEXP\] \[-n\] \[-o\]\
                                 \[-u\] \[-d\]

Compares two projects and either summarizes or outputs the differences in full.  In the second form, a project is compared with one of its branches inside a home:$USER project (the branch is treated as NEWPRJ).  The home branch is optional if the current working directory is a checked out copy of it.

usage:\
     osc prdiff \[OPTIONS\] OLDPRJ NEWPRJ\
     osc prdiff \[OPTIONS\] \[home:$USER:branch:$PRJ\]

options:

- **-r**, **--requests**

  show open requests for any packages with differences

- **-e** *REGEXP*, **--exclude** *REGEXP*

  skip packages matching REGEXP

- **-i** *REGEXP*, **--include** *REGEXP*

  only consider packages matching REGEXP

- **-n**, **--show-not-in-old**

  show packages only in the new project

- **-o**, **--show-not-in-new**

  show packages only in the old project

- **-u**, **--unified**

  show full unified diffs of differences

- **-d**, **--diffstat**

  show diffstat of differences

### osc prjresults (pr)

Shows project-wide build results

usage: osc \[global opts\] prjresults \[-h\] \[-b\] \[-w\] \[-c\] \[--xml\] \[-s STATUS\]\
                                     \[-n EXPR\] \[-a ARCH\] \[-r REPO\] \[-V\]\
                                     \[--show-excluded\]

usage:\
     osc prjresults (inside working copy)\
     osc prjresults PROJECT

options:

- **-b**, **--brief**

  show the result in "pkgname repo arch result"

- **-w**, **--watch**

  watch the results until all finished building, only supported with --xml

- **-c**, **--csv**

  csv output

- **--xml**

  generate output in XML

- **-s** *STATUS*, **--status-filter** *STATUS*

  show only packages with buildstatus STATUS (see legend)

- **-n** *EXPR*, **--name-filter** *EXPR*

  show only packages whose names match EXPR

- **-a** *ARCH*, **--arch** *ARCH*

  show results only for specified architecture(s)

- **-r** *REPO*, **--repo** *REPO*

  show results only for specified repo(s)

- **-V**, **--vertical**

  list packages vertically instead horizontally

- **--show-excluded**

  show packages that are excluded in all repos, also hide repos that have only excluded packages

### osc pull

Merge the changes of the link target into your working copy

usage: osc \[global opts\] pull \[-h\]

### osc rdelete

Delete a project or packages on the server

usage: osc \[global opts\] rdelete \[-h\] \[-r\] \[-f\] \[-m TEXT\]

As a safety measure, project must be empty (i.e., you need to delete all packages first). Also, packages must have no requests pending (i.e., you need to accept/revoke such requests first). If you are sure that you want to remove this project and all its packages use '--recursive' switch. It may still not work because other depends on it. If you want to ignore this as well use '--force' switch.

usage:\
    osc rdelete \[-r\] \[-f\] PROJECT \[PACKAGE\]

options:

- **-r**, **--recursive**

  deletes a project with packages inside

- **-f**, **--force**

  deletes a project where other depends on

- **-m** *TEXT*, **--message** *TEXT*

  specify log message TEXT

### osc rdiff

Server-side "pretty" diff of two packages

usage: osc \[global opts\] rdiff \[-h\] \[--issues-only\] \[-M\] \[-r N\[:M\]\] \[-p\]\
                                \[-c rev\] \[--missingok\] \[-u\] \[--xml\]

Compares two packages (three or four arguments) or shows the changes of a specified revision of a package (two arguments)

If no revision is specified the latest revision is used.

usage:\
     osc rdiff OLDPRJ OLDPAC NEWPRJ \[NEWPAC\]\
     osc rdiff PROJECT PACKAGE\
     osc rdiff PROJECT --meta

options:

- **--issues-only**

  show only issues in diff

- **-M**, **--meta**

  diff meta data

- **-r** *N\[:M\]*, **--revision** *N\[:M\]*

  revision id, where N = old revision and M = new revision

- **-p**, **--plain**

  output the diff in plain (not unified) diff format and show diff of files in archives

- **-c** *rev*, **--change** *rev*

  the change made by revision rev (like -r rev-1:rev). If rev is negative this is like -r rev:rev-1.

- **--missingok**

  do not fail if the source or target project/package does not exist on the server

- **-u**, **--unexpand**

  diff unexpanded version if sources are linked

- **--xml**

  show diff as xml (only for issues diff)

### osc rebuild (rebuildpac)

Trigger package rebuilds

usage: osc \[global opts\] rebuild \[-h\] \[-a ARCH\] \[-r REPO\] \[-f\] \[-M FLAVOR\]\
                                  \[--all\]

Note that it is normally NOT needed to kick off rebuilds like this, because they principally happen in a fully automatic way, triggered by source check-ins. In particular, the order in which packages are built is handled by the build service.

The arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output.

usage:\
     osc rebuild \[PROJECT \[PACKAGE\[:FLAVOR\] \[REPOSITORY \[ARCH\]\]\]\]

options:

- **-a** *ARCH*, **--arch** *ARCH*

  trigger rebuilds for a specific architecture

- **-r** *REPO*, **--repo** *REPO*

  trigger rebuilds for a specific repository

- **-f**, **--failed**

  rebuild all failed packages

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavors of a multibuild package. Globs are resolved according to \_multibuild file from server. Empty string is resolved to a package without a flavor.

- **--all**

  Rebuild all packages of entire project

### osc release

Release sources and binaries

usage: osc \[global opts\] release \[-h\] \[-a ARCH\] \[-r REPO\]\
                                  \[--target-project TARGETPROJECT\]\
                                  \[--target-repository TARGETREPOSITORY\]\
                                  \[--set-release RELEASETAG\] \[--no-delay\]

This command is used to transfer sources and binaries without rebuilding them. It requires defined release targets set to trigger="manual".

usage:\
     osc release \[PROJECT \[PACKAGE\]\]

options:

- **-a** *ARCH*, **--arch** *ARCH*

  Release only binaries from the specified architecture

- **-r** *REPO*, **--repo** *REPO*

  Release only binaries from the specified repository

- **--target-project** *TARGETPROJECT*

  Release only to specified project

- **--target-repository** *TARGETREPOSITORY*

  Release only to specified repository

- **--set-release** *RELEASETAG*

  rename binaries during release using this release tag

- **--no-delay**

  Don't put the release job in a queue to be run later, but immediately run it. Thus the next call to osc prjresult will reflect it. Otherwise there is no way to know if it is finished or didn't start yet.

### osc releaserequest

Create a release request

usage: osc \[global opts\] releaserequest \[-h\] \[-m TEXT\] \[-p PKG\]

For maintenance incident projects:

This command is used by the maintenance team to start the release process of a maintenance update. This includes usually testing based on the defined reviewers of the update project.

\[See https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.maintenance\_setup.html\
  for information on this topic.\]

For normal projects:

This command is used to transfer sources and binaries without rebuilding them. It requires defined release targets set to trigger="manual".

\[See https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.request\_and\_review\_system.html\
  for information on this topic.\]

usage:\
     osc releaserequest \[-p package\] \[ SOURCEPROJECT \]

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

- **-p** *PKG*, **--package** *PKG*

  specify packages to release

### osc remotebuildlog (remotebuildlogtail, rbuildlogtail, rblt, rbuildlog, rbl)

Shows the build log of a package

usage: osc \[global opts\] remotebuildlog \[-h\] \[-l\] \[--lastsucceeded\]\
                                         \[-M FLAVOR\] \[-o OFFSET\] \[-s\]

Shows the log file of the build of a package. Can be used to follow the log while it is being written.

remotebuildlogtail shows just the tail of the log file.

usage:\
     osc remotebuildlog project package\[:flavor\] repository arch\
     or\
     osc remotebuildlog project/package\[:flavor\]/repository/arch\
     or\
     osc remotebuildlog buildlogurl

options:

- **-l**, **--last**

  Show the last finished log file

- **--lastsucceeded**, **--last-succeeded**

  Show the last succeeded log file

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

- **-o** *OFFSET*, **--offset** *OFFSET*

  get log starting or ending from the offset

- **-s**, **--strip-time**

  strip leading build time from the log

### osc repairlink

Repair a broken source link

usage: osc \[global opts\] repairlink \[-h\] \[-d DIR\]

This command checks out a package with merged source changes. It uses a 3-way merge to resolve file conflicts. After reviewing/repairing the merge, use 'osc resolved ...' and 'osc ci' to re-create a working source link.

usage: \* For merging conflicting changes of a checkout package:\
     osc repairlink

\* Check out a package and merge changes:\
     osc repairlink PROJECT PACKAGE

\* Pull conflicting changes from one project into another one:\
     osc repairlink PROJECT PACKAGE INTO\_PROJECT \[INTO\_PACKAGE\]

options:

- **-d** *DIR*, **--destdir** *DIR*

  destination directory

### osc repairwc

Try to repair an inconsistent working copy

usage: osc \[global opts\] repairwc \[-h\] \[--force-apiurl\]

Examples:\
     osc repairwc \<path\>

Note: if \<path\> is omitted it defaults to '.' (\<path\> can be a project or package working copy)

Warning: This command might delete some files in the storedir (.osc). Please check the state of the wc afterwards (via 'osc status').

options:

- **--force-apiurl**

  ask once for an apiurl and force this apiurl for all inconsistent projects/packages

### osc repositories (platforms, repos)

Shows repositories configured for a project

usage: osc \[global opts\] repositories \[-h\]

It skips repositories by default which are disabled for a given package.

usage:\
     osc repos\
     osc repos \[PROJECT\] \[PACKAGE\]

### osc repourls

Shows URLs of .repo files

usage: osc \[global opts\] repourls \[-h\]

Shows URLs on which to access the project repositories.

usage:\
    osc repourls \[PROJECT\]

### osc request (review, rq)

Show or modify requests and reviews

usage: osc \[global opts\] request \[-h\] \[-d\] \[-S SUPERSEDED\_REQUEST\] \[-u\]\
                                  \[--no-devel\] \[-m TEXT\] \[-t TYPE\] \[-a\] \[-f\]\
                                  \[-s STATE\] \[-D DAYS\] \[-U USER\] \[-G GROUP\]\
                                  \[-P PROJECT\] \[-p PACKAGE\] \[-b\] \[-M\] \[-B\] \[-e\]\
                                  \[-i\] \[--or-revoke\] \[--non-interactive\]\
                                  \[--exclude-target-project EXCLUDE\_TARGET\_PROJECT\]\
                                  \[--keep-packages-locked\] \[--incoming\]\
                                  \[--involved-projects\]\
                                  \[--target-package-filter TARGET\_PACKAGE\_FILTER\]\
                                  \[--source-buildstatus\]

\[See http://en.opensuse.org/openSUSE:Build\_Service\_Collaboration for information on this topic.\]

The 'request' command has the following sub commands:

"list" lists open requests attached to a project or package or person. Uses the project/package of the current directory if none of -M, -U USER, project/package are given.

"log" will show the history of the given ID

"show" will show the request itself, and generate a diff for review, if used with the --diff option. The keyword show can be omitted if the ID is numeric.

"decline" will change the request state to "declined"

"reopen" will set the request back to new or review.

"setincident" will direct "maintenance" requests into specific incidents

"supersede" will supersede one request with another existing one.

"revoke" will set the request state to "revoked" WARNING: Revoking a maitenance release request unlocks packages in the source project.\
          To avoid unlocking, use the --keep-packages-locked option.

"accept" will change the request state to "accepted" and will trigger the actual submit process. That would normally be a server-side copy of the source package to the target package.

"approve" marks a requests in "review" state as approved. This request will get accepted automatically when the last review got accepted.

"checkout" will checkout the request's source package ("submit" requests only).

"prioritize" change the priority of a request to either "critical", "important", "moderate" or "low"

The 'review' command has the following sub commands:

"list" lists open requests that need to be reviewed by the specified user or group

"add" adds a person or group as reviewer to a request

"accept" mark the review positive

"decline" mark the review negative. A negative review will decline the request.

usage:\
     osc request list \[-M\] \[-U USER\] \[-s state\] \[-D DAYS\] \[-t type\] \[-B\] \[PRJ \[PKG\]\]\
     osc request log ID\
     osc request \[show\] \[-d\] \[-b\] ID

    osc request accept \[-m TEXT\] ID\
     osc request approve \[-m TEXT\] ID\
     osc request cancelapproval \[-m TEXT\] ID\
     osc request decline \[-m TEXT\] ID\
     osc request revoke \[-m TEXT\] ID\
     osc request reopen \[-m TEXT\] ID\
     osc request setincident \[-m TEXT\] ID INCIDENT\
     osc request supersede \[-m TEXT\] ID SUPERSEDING\_ID\
     osc request approvenew \[-m TEXT\] PROJECT\
     osc request prioritize \[-m TEXT\] ID PRIORITY

    osc request checkout/co ID\
     osc request clone \[-m TEXT\] ID

    osc review show \[-d\] \[-b\] ID\
     osc review list \[-U USER\] \[-G GROUP\] \[-P PROJECT \[-p PACKAGE\]\] \[-s state\]\
     osc review add \[-m TEXT\] \[-U USER\] \[-G GROUP\] \[-P PROJECT \[-p PACKAGE\]\] ID\
     osc review accept \[-m TEXT\] \[-U USER\] \[-G GROUP\] \[-P PROJECT \[-p PACKAGE\]\] ID\
     osc review decline \[-m TEXT\] \[-U USER\] \[-G GROUP\] \[-P PROJECT \[-p PACKAGE\]\] ID\
     osc review reopen \[-m TEXT\] \[-U USER\] \[-G GROUP\] \[-P PROJECT \[-p PACKAGE\]\] ID\
     osc review supersede \[-m TEXT\] \[-U USER\] \[-G GROUP\] \[-P PROJECT \[-p PACKAGE\]\] ID SUPERSEDING\_ID

options:

- **-d**, **--diff**

  generate a diff

- **-S** *SUPERSEDED\_REQUEST*, **--superseded-request** *SUPERSEDED\_REQUEST*

  Create the diff relative to a given former request

- **-u**, **--unified**

  output the diff in the unified diff format

- **--no-devel**

  Do not attempt to forward to devel project

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

- **-t** *TYPE*, **--type** *TYPE*

  limit to requests which contain a given action type (submit/delete/change\_devel/add\_role/set\_bugowner/maintenance\_incident/maintenance\_release)

- **-a**, **--all**

  all states. Same as'-s all'

- **-f**, **--force**

  enforce state change, can be used to ignore open reviews, devel-package dependencies and more

- **-s** *STATE*, **--state** *STATE*

  only list requests in one of the comma separated given states (new/review/accepted/revoked/declined) or "all" \[default="new,review,declined"\]

- **-D** *DAYS*, **--days** *DAYS*

  only list requests in state "new" or changed in the last DAYS.

- **-U** *USER*, **--user** *USER*

  requests or reviews limited for the specified USER

- **-G** *GROUP*, **--group** *GROUP*

  requests or reviews limited for the specified GROUP

- **-P** *PROJECT*, **--project** *PROJECT*

  requests or reviews limited for the specified PROJECT

- **-p** *PACKAGE*, **--package** *PACKAGE*

  requests or reviews limited for the specified PACKAGE, requires also a PROJECT

- **-b**, **--brief**

  print output in list view as list subcommand

- **-M**, **--mine**

  only show requests created by yourself

- **-B**, **--bugowner**

  also show requests about packages where I am bugowner

- **-e**, **--edit**

  edit a submit action

- **-i**, **--interactive**

  interactive review of request

- **--or-revoke**

  For automation scripts: accepts (if using with accept argument) a request when it is in new or review state. Or revoke it when it got declined. Otherwise just do nothing.

- **--non-interactive**

  non-interactive review of request

- **--exclude-target-project** *EXCLUDE\_TARGET\_PROJECT*

  exclude target project from request list

- **--keep-packages-locked**

  Avoid unlocking of packages in maintenance incident when revoking release requests

- **--incoming**

  Show only requests where the project is target

- **--involved-projects**

  show all requests for project/packages where USER is involved

- **--target-package-filter** *TARGET\_PACKAGE\_FILTER*

  only list requests for the packages matching the package filter. A (python) regular expression is expected.

- **--source-buildstatus**

  print the buildstatus of the source package (only works with "show" and the interactive review)

### osc requestmaintainership (reqbs, reqms, reqmaintainership, requestbugownership, reqbugownership)

Requests to add user as maintainer or bugowner

usage: osc \[global opts\] requestmaintainership \[-h\] \[-m TEXT\] \[-r role\]

usage:\
     osc requestmaintainership                            # for current user in checked out package\
     osc requestmaintainership USER                       # for specified user in checked out package\
     osc requestmaintainership PROJECT                    # for current user if cwd is not a checked out package\
     osc requestmaintainership PROJECT group:NAME         # request for specified group\
     osc requestmaintainership PROJECT PACKAGE            # for current user\
     osc requestmaintainership PROJECT PACKAGE USER       # request for specified user\
     osc requestmaintainership PROJECT PACKAGE group:NAME # request for specified group

    osc requestbugownership ...                          # accepts same parameters but uses bugowner role

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

- **-r** *role*, **--role** *role*

  specify user role (default: maintainer)

### osc resolved

Remove 'conflicted' state on working copy files

usage: osc \[global opts\] resolved \[-h\]

If an upstream change can't be merged automatically, a file is put into in 'conflicted' ('C') state. Within the file, conflicts are marked with special \<\<\<\<\<\<\< as well as ======== and \>\>\>\>\>\>\> lines.

After manually resolving all conflicting parts, use this command to remove the 'conflicted' state.

Note:  this subcommand does not semantically resolve conflicts or remove conflict markers; it merely removes the conflict-related artifact files and allows PATH to be committed again.

usage:\
     osc resolved FILE \[FILE...\]

### osc restartbuild (abortbuild)

Restart the build of a certain project or package

usage: osc \[global opts\] restartbuild \[-h\] \[-a ARCH\] \[-M FLAVOR\] \[-r REPO\]\
                                       \[--all\]

usage:\
     osc restartbuild \[PROJECT \[PACKAGE\[:FLAVOR\] \[REPOSITORY \[ARCH\]\]\]\]

options:

- **-a** *ARCH*, **--arch** *ARCH*

  Restart builds for a specific architecture

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavors of a multibuild package. Globs are resolved according to \_multibuild file from server. Empty string is resolved to a package without a flavor.

- **-r** *REPO*, **--repo** *REPO*

  Restart builds for a specific repository

- **--all**

  Restart all running builds of entire project

### osc results (r)

Shows the build results of a package or project

usage: osc \[global opts\] results \[-h\] \[-l\] \[-r REPO\] \[-a ARCH\] \[-b\]\
                                  \[--no-multibuild\] \[-M FLAVOR\] \[-V\] \[-w\] \[-F\]\
                                  \[-s STATUS\_FILTER\] \[-f\] \[--xml\] \[--csv\]\
                                  \[--format FORMAT\] \[--show-excluded\]

usage:\
     osc results                 # (inside working copy of PRJ or PKG)\
     osc results PROJECT \[PACKAGE\[:FLAVOR\]\]

options:

- **-l**, **--last-build**

  show last build results (succeeded/failed/unknown)

- **-r** *REPO*, **--repo** *REPO*

  Show results only for specified repo(s)

- **-a** *ARCH*, **--arch** *ARCH*

  Show results only for specified architecture(s)

- **-b**, **--brief**

  show the result in "pkgname repo arch result". Default for -f

- **--no-multibuild**

  Disable results for all direct affect packages inside of the project

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavors of a multibuild package. Globs are resolved according to \_multibuild file from server. Empty string is resolved to a package without a flavor.

- **-V**, **--vertical**

  list packages vertically instead horizontally for entire project

- **-w**, **--watch**

  watch the results until all finished building

- **-F**, **--fail-on-error**

  fail with exit 1 if any build has errored

- **-s** *STATUS\_FILTER*, **--status-filter** *STATUS\_FILTER*

  only show packages with the given build status

- **-f**, **--failed**

  show only failed results

- **--xml**

  generate output in XML (former results\_meta)

- **--csv**

  generate output in CSV format

- **--format** *FORMAT*

  Change the format of the text (default) or csv output. Not supported for xml output. Supported fields: project, package, repository, arch, state, dirty, code, details. Text output format requires using the field names in form of named fields for string interpolation: \`\`%(field)s\`\`. CSV output format requires field names separated with commas.

- **--show-excluded**

  show repos that are excluded for this package

### osc revert

Restore changed files or the entire working copy

usage: osc \[global opts\] revert \[-h\] file \[file ...\]

Examples:\
     osc revert \<modified file(s)\>\
     osc revert . Note: this only works for package working copies

arguments:

- **file**

  ### osc rpmlintlog (lint, rpmlint)

Shows the rpmlint logfile

usage: osc \[global opts\] rpmlintlog \[-h\]

Shows the rpmlint logfile to analyse if there are any problems with the spec file and the built binaries.

usage:\
     osc rpmlintlog project package repository arch

### osc rremove

Remove source files from selected package

usage: osc \[global opts\] rremove \[-h\] \[-f\] project package file \[file ...\]

arguments:

- **project**

  - **package**

  - **file**

  options:

- **-f**, **--force**

  Don't ask and delete files

### osc search (bse, se)

Search for a project and/or package

usage: osc \[global opts\] search \[-h\] \[--repos-baseurl\] \[-e\] \[-s\] \[--package\]\
                                 \[--project\] \[--title\] \[--description\]\
                                 \[-a ATTRIBUTE\] \[-V\] \[-i\] \[-b\] \[-m\] \[-M\]\
                                 \[--csv\] \[--binary\] \[-B PROJECT\]\
                                 \[--binaryversion VERSION\]

If no option is specified osc will search for projects and packages which contains the 'search term' in their name, title or description.

usage:\
     osc search 'search term' \<options\>\
     osc bse ...                         ('osc search --binary')\
     osc se 'perl(Foo::Bar)'             ('osc search --package perl-Foo-Bar')

options:

- **--repos-baseurl**

  show base URLs of download repositories

- **-e**, **--exact**

  show only exact matches, this is default now

- **-s**, **--substring**

  Show also results where the search term is a sub string, slower search

- **--package**

  search for a package

- **--project**

  search for a project

- **--title**

  search for matches in the 'title' element

- **--description**

  search for matches in the 'description' element

- **-a** *ATTRIBUTE*, **--limit-to-attribute** *ATTRIBUTE*

  match only when given attribute exists in meta data

- **-V**, **--version**

  show package version, revision, and srcmd5. CAUTION: This is slow and unreliable

- **-i**, **--involved**

  show projects/packages where given person (or myself) is involved as bugowner or maintainer \[\[{group\|person}/\]\<name\>\] default: person

- **-b**, **--bugowner**

  as -i, but only bugowner

- **-m**, **--maintainer**

  as -i, but only maintainer

- **-M**, **--mine**

  shorthand for --bugowner --package

- **--csv**

  generate output in CSV (separated by \|)

- **--binary**

  search binary packages

- **-B** *PROJECT*, **--baseproject** *PROJECT*

  search packages built for PROJECT (implies --binary)

- **--binaryversion** *VERSION*

  search for binary with specified version (implies --binary)

### osc sendsysrq

Trigger a sysrq in a running build

usage: osc \[global opts\] sendsysrq \[-h\] \[-M FLAVOR\]

This is only going to work when the build is running in a supported VM. Also only a subset of sysrq are supported. Typical use case for debugging are 9, t and w in this sequence.

usage:\
     osc sendsysrq REPOSITORY ARCH SYSRQ\
     osc sendsysrq PROJECT PACKAGE\[:FLAVOR\] REPOSITORY ARCH SYSRQ

options:

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavors of a multibuild package. Globs are resolved according to \_multibuild file from server. Empty string is resolved to a package without a flavor.

### osc service

Handle source services

usage: osc \[global opts\] service \[-h\] \[-v\]

Source services can be used to modify sources like downloading files, verify files, generating files or modify existing files.

usage:\
     osc service COMMAND (inside working copy)\
     osc service run \[SOURCE\_SERVICE\]\
     osc service runall\
     osc service manualrun \[SOURCE\_SERVICE\]\
     osc service remoterun \[PROJECT PACKAGE\]\
     osc service merge \[PROJECT PACKAGE\]\
     osc service wait \[PROJECT PACKAGE\]

    COMMAND can be:\
     run         r  run defined services with modes "trylocal", "localonly", or no mode set locally,\
                    may take an optional parameter to run only a specified source service. In case\
                    parameters exist for this one in \_service file they are used.\
     runall      ra run all services independent of the used mode\
     manualrun   mr run all services with mode "manual", may take an optional parameter to run only a\
                    specified source service\
     remoterun   rr trigger a re-run on the server side\
     merge          commits all server side generated files and drops the \_service definition\
     wait           waits until the service finishes and returns with an error if it failed

    Not for common usage anymore:\
     localrun    lr the same as "run" but services with mode "serveronly" are also executed\
     disabledrun dr run all services with mode "disabled"

options:

- **-v**, **--verbose**

  verbose run of local services for debugging purposes

### osc setdevelproject (sdp)

Set the devel project / package of a package

usage: osc \[global opts\] setdevelproject \[-h\] \[-u\]

Examples:\
     osc setdevelproject \[PROJECT PACKAGE\] DEVEL\_PROJECT \[DEVEL\_PACKAGE\]

options:

- **-u**, **--unset**

  remove devel project

### osc setlinkrev

Updates a revision number in a source link

usage: osc \[global opts\] setlinkrev \[-h\] \[-r rev\] \[-R\] \[-u\] \[--vrev vrev\]

This command adds or updates a specified revision number in a source link. The current revision of the source is used, if no revision number is specified.

usage:\
     osc setlinkrev\
     osc setlinkrev PROJECT \[PACKAGE\]

options:

- **-r** *rev*, **--revision** *rev*

  use the specified revision.

- **-R**, **--use-plain-revision**

  Do not expand revision the specified or latest rev

- **-u**, **--unset**

  remove revision in link, it will point always to latest revision

- **--vrev** *vrev*

  Enforce a given vrev

### osc showlinked

Show all packages linking to a given one

usage: osc \[global opts\] showlinked \[-h\]

Examples:\
     osc showlinked \[PROJECT PACKAGE\]

### osc signkey

Manage Project Signing Key

usage: osc \[global opts\] signkey \[-h\] \[--create\] \[--extend\] \[--delete\]\
                                  \[--notraverse\] \[--sslcert\]

osc signkey \[--create\|--delete\|--extend\] \<PROJECT\> osc signkey \[--notraverse\] \<PROJECT\>

This command is for managing gpg keys. It shows the public key by default. There is no way to download or upload the private part of a key by design.

However you can create a new own key. You may want to consider to sign the public key with your own existing key.

If a project has no key, the key from upper level project will be used (e.g. when dropping "KDE:KDE4:Community" key, the one from "KDE:KDE4" will be used).

WARNING: THE OLD KEY CANNOT BE RESTORED AFTER USING DELETE OR CREATE

options:

- **--create**

  create new gpg signing key for this project

- **--extend**

  extend expiration date of the gpg public key for this project

- **--delete**

  delete the gpg signing key in this project

- **--notraverse**

  don't traverse projects upwards to find key

- **--sslcert**

  fetch SSL certificate instead of GPG key

### osc status (st)

Show status of files in working copy

usage: osc \[global opts\] status \[-h\] \[-e\]

Show the status of files in a local working copy, indicating whether files have been changed locally, deleted, added, ...

The first column in the output specifies the status and is one of the following characters:\
   ' ' no modifications (shown only in verbose output)\
   'A' Added\
   'C' Conflicted\
   'D' Deleted\
   'M' Modified\
   'R' Replaced (file was deleted and added again afterwards)\
   '?' item is not under version control\
   '!' item is missing (removed by non-osc command) or incomplete\
   'S' item is skipped (item exceeds a file size limit or is \_service:\* file)\
   'F' Frozen (use "osc pull" to merge conflicts) (package-only state)

examples:\
   osc st\
   osc st \<directory\>\
   osc st file1 file2 ...

usage:\
     osc status \[OPTS\] \[PATH...\]

options:

- **-e**, **--show-excluded**

  also show files which are excluded by the "exclude\_glob" config option

### osc submitrequest (submitpac, submitreq, sr)

Create request to submit source into another Project

usage: osc \[global opts\] submitrequest \[-h\] \[-m TEXT\] \[-F FILE\] \[-r REV\]\
                                        \[-s REQUEST\_ID\] \[--nodevelproject\]\
                                        \[--separate-requests\] \[--cleanup\]\
                                        \[--no-cleanup\] \[--no-update\]\
                                        \[--update-link\] \[-d\] \[--yes\]

\[See http://en.opensuse.org/openSUSE:Build\_Service\_Collaboration for information on this topic.\]

See the "request" command for showing and modifying existing requests.

usage:\
     osc submitreq \[OPTIONS\]\
     osc submitreq \[OPTIONS\] DESTPRJ \[DESTPKG\]\
     osc submitreq \[OPTIONS\] SOURCEPRJ SOURCEPKG DESTPRJ \[DESTPKG\]

    osc submitpac ... is a shorthand for osc submitreq --cleanup ...

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify message TEXT

- **-F** *FILE*, **--file** *FILE*

  read log message from FILE, '-' denotes standard input.

- **-r** *REV*, **--revision** *REV*

  specify a certain source revision ID (the md5 sum) for the source package

- **-s** *REQUEST\_ID*, **--supersede** *REQUEST\_ID*

  Superseding another request by this one

- **--nodevelproject**

  do not follow a defined devel project (primary project where a package is developed)

- **--separate-requests**

  Create multiple requests instead of a single one (when command is used for entire project)

- **--cleanup**

  remove package if submission gets accepted (default for home:\<id\>:branch projects)

- **--no-cleanup**

  never remove source package on accept, but update its content

- **--no-update**

  never touch source package on accept (will break source links)

- **--update-link**

  This transfers the source including the \_link file.

- **-d**, **--diff**

  show diff only instead of creating the actual request

- **--yes**

  proceed without asking.

### osc token

Show and manage authentication token

usage: osc \[global opts\] token \[-h\] \[-c\] \[-d TOKENID\] \[-o OPERATION\]\
                                \[-t TOKENSTRING\] \[--scm-token SCM\_TOKEN\]\
                                \[-a ARCH\] \[-r REPO\] \[--target-project PROJECT\]\
                                \[--target-repo REPO\]\
                                \[--set-release RELEASE\_TAG\]

Authentication token can be used to run specific commands without sending credentials.

usage:\
     osc token\
     osc token --create --operation \<OPERATION\> \[\<PROJECT\> \<PACKAGE\>\]\
     osc token --delete \<TOKENID\>\
     osc token --trigger \<TOKENSTRING\> \[--operation \<OPERATION\>\] \[\<PROJECT\> \<PACKAGE\>\]

options:

- **-c**, **--create**

  Create a new token

- **-d** *TOKENID*, **--delete** *TOKENID*

  Delete a token

- **-o** *OPERATION*, **--operation** *OPERATION*

  Operation associated with the token. Choices: runservice, branch, release, rebuild, workflow

- **-t** *TOKENSTRING*, **--trigger** *TOKENSTRING*

  Trigger the action of a token

- **--scm-token** *SCM\_TOKEN*

  The scm's access token (only in combination with a --operation=workflow option)

- **-a** *ARCH*, **--arch** *ARCH*

  Release/Rebuild only binaries from the specified architecture

- **-r** *REPO*, **--repo** *REPO*

  Release/Rebuild only binaries from the specified repository

- **--target-project** *PROJECT*

  Release only to specified project

- **--target-repo** *REPO*

  Release only to specified repository

- **--set-release** *RELEASE\_TAG*

  Rename binaries during release using this release tag

### osc triggerreason (tr)

Show reason why a package got triggered to build

usage: osc \[global opts\] triggerreason \[-h\] \[-M FLAVOR\]

The server decides when a package needs to get rebuild, this command shows the detailed reason for a package. A brief reason is also stored in the jobhistory, which can be accessed via "osc jobhistory".

Trigger reasons might be:\
   \- new build (never build yet or rebuild manually forced)\
   \- source change (e.g. on updating sources)\
   \- meta change (packages which are used for building have changed)\
   \- rebuild count sync (In case that it is configured to sync release numbers)

usage in package or project directory:\
     osc triggerreason REPOSITORY ARCH\
     osc triggerreason PROJECT PACKAGE\[:FLAVOR\] REPOSITORY ARCH

options:

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

### osc undelete

Restores a deleted project or package on the server

usage: osc \[global opts\] undelete \[-h\] \[-m TEXT\]

The server restores a package including the sources and meta configuration. Binaries remain to be lost and will be rebuild.

usage:\
    osc undelete PROJECT\
    osc undelete PROJECT PACKAGE

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify log message TEXT

### osc unlock

Unlocks a project or package

usage: osc \[global opts\] unlock \[-h\] \[-m TEXT\]

Unlocks a locked project or package. A comment is required.

usage:\
    osc unlock PROJECT \[PACKAGE\]

options:

- **-m** *TEXT*, **--message** *TEXT*

  specify log message TEXT

### osc update (up)

Update a working copy

usage: osc \[global opts\] update \[-h\] \[-r REV\] \[--linkrev REV\] \[-u\] \[-e\] \[-s\]\
                                 \[-S\] \[-l limit\_size\]

examples:

1\. osc up\
         If the current working directory is a package, update it.\
         If the directory is a project directory, update all contained\
         packages, AND check out newly added packages.

        To update only checked out packages, without checking out new\
         ones, you might want to use "osc up \*" from within the project\
         dir.

2\. osc up PAC\
         Update the packages specified by the path argument(s)

When --expand-link is used with source link packages, the expanded sources will be checked out. Without this option, the \_link file and patches will be checked out. The option --unexpand-link can be used to switch back to the "raw" source with a \_link file plus patch(es).

options:

- **-r** *REV*, **--revision** *REV*

  update to specified revision (this option will be ignored if you are going to update the complete project or more than one package)

- **--linkrev** *REV*

  revision of the link target that is used during link expansion

- **-u**, **--unexpand-link**

  if a package is an expanded link, update to the raw \_link file

- **-e**, **--expand-link**

  if a package is a link, update to the expanded sources

- **-s**, **--source-service-files**

  Run local source services after update.

- **-S**, **--server-side-source-service-files**

  Use server side generated sources instead of local generation.

- **-l** *limit\_size*, **--limit-size** *limit\_size*

  Skip all files with a given size

### osc updatepacmetafromspec (updatepkgmetafromspec, metafromspec)

Update package meta information from a specfile

usage: osc \[global opts\] updatepacmetafromspec \[-h\] \[--specfile FILE\]

ARG, if specified, is a package working copy.

options:

- **--specfile** *FILE*

  Path to specfile. (if you pass more than working copy this option is ignored)

### osc vc

Edit the changes file

usage: osc \[global opts\] vc \[-h\] \[-m MESSAGE\] \[-F FILE\] \[-e\]

osc vc \[-m MESSAGE\|-e\] \[filename\[.changes\]\|path \[file\_with\_comment\]\] If no \<filename\> is given, exactly one \*.changes or \*.spec file has to be in the cwd or in path.

The email address used in .changes file is read from BuildService instance, or should be defined in oscrc \[https://api.opensuse.org/\] user = login pass = password email = user@defined.email

or can be specified via mailaddr environment variable.

By default, osc vc opens the program specified by the EDITOR environment variable (and it uses Vim if that variable is not set) with a temporary file that should replace the \*.changes file when saved by the editor, or discarded otherwise.

options:

- **-m** *MESSAGE*, **--message** *MESSAGE*

  add MESSAGE to changes (do not open an editor)

- **-F** *FILE*, **--file** *FILE*

  read changes message from FILE (do not open an editor)

- **-e**, **--just-edit**

  just open changes (cannot be used with -m)

### osc version

Give version of osc binary

usage: osc \[global opts\] version \[-h\]

usage:\
     osc version

### osc whatdependson

Show the packages that require the specified package during the build

usage: osc \[global opts\] whatdependson \[-h\] \[-M FLAVOR\]

The command whatdependson can be used to find out what will be triggered when a certain package changes.

This is no guarantee, since the new build might have changed dependencies.

The packages marked with the \[i\] flag are inherited to the project.

The arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output.

usage in package or project directory:\
     osc whatdependson REPOSITORY ARCH

usage:\
     osc whatdependson PROJECT \[PACKAGE\[:FLAVOR\]\] REPOSITORY ARCH

options:

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavor of a multibuild package.

### osc whois (user, who)

Show fullname and email of a buildservice user

usage: osc \[global opts\] whois \[-h\] \[user ...\]

arguments:

- **user**

  ### osc wipebinaries (unpublish)

Delete all binary packages of a certain project/package

usage: osc \[global opts\] wipebinaries \[-h\] \[-a ARCH\] \[-M FLAVOR\] \[-r REPO\]\
                                       \[--build-disabled\] \[--build-failed\]\
                                       \[--broken\] \[--unresolvable\] \[--all\]

With the optional argument \<package\> you can specify a certain package otherwise all binary packages in the project will be deleted.

usage:\
     osc wipebinaries OPTS                       # works in checked out project dir\
     osc wipebinaries OPTS PROJECT \[PACKAGE\[:FLAVOR\]\]\
     osc unpublish OPTS                       # works in checked out project dir\
     osc unpublish OPTS PROJECT \[PACKAGE\[:FLAVOR\]\]

options:

- **-a** *ARCH*, **--arch** *ARCH*

  Delete all binary packages for a specific architecture

- **-M** *FLAVOR*, **--multibuild-package** *FLAVOR*

  Only work with the specified flavors of a multibuild package. Globs are resolved according to \_multibuild file from server. Empty string is resolved to a package without a flavor.

- **-r** *REPO*, **--repo** *REPO*

  Delete all binary packages for a specific repository

- **--build-disabled**

  Delete all binaries of packages for which the build is disabled

- **--build-failed**

  Delete all binaries of packages for which the build failed

- **--broken**

  Delete all binaries of packages for which the package source is bad

- **--unresolvable**

  Delete all binaries of packages which have dependency errors

- **--all**

  Delete all binaries regardless of the package status (previously default)

### osc workerinfo

Gets the information to a worker from the server

usage: osc \[global opts\] workerinfo \[-h\] \<hostarch\>:\<workerid\>

Examples:\
     osc workerinfo x86\_64:goat:1

usage:\
     osc workerinfo \<hostarch\>:\<workerid\>

arguments:

- **\<hostarch\>:\<workerid\>**

  ## AUTHOR

```
Contributors to the osc project.
```

## DISTRIBUTION

The latest version of osc may be downloaded from ⟨https://github.com/openSUSE/osc/⟩
