osc man page

osc — openSUSE build service command-line tool.

Synopsis

osc [GLOBALOPTS] SUBCOMMAND [OPTS] [ARGS...]
osc help SUBCOMMAND

Description

openSUSE build service command-line tool.

Commands

add

Mark files to be added upon the next commit

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...]

addchannels

Add channels to project.

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:
   -h, --help  show this help message and exit
   -e, --enable-all
               Enable all added channels including the ones disabled
               by default.
   -s, --skip-disabled
               Skip disabled channels. Otherwise the source gets
               added, but not the repositories.

addremove (ar)

Adds new files, removes disappeared files

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

ARG, if specified, is a package working copy.

Usage:
   osc addremove [ARGS...]

Options:
   -h, --help  show this help message and exit
   -r, --recursive
               If CWD is a project dir then scan all package dirs as
               well

aggregatepac

"Aggregate" a package to another package

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 DESTPRJ [DESTPAC] Options:
   -h, --help  show this help message and exit
   -d, --disable-publish
               disable publishing of the aggregated package
   -m SRC=TARGET[,SRC=TARGET], --map-repo=SRC=TARGET[,SRC=TARGET]
               Allows repository mapping(s) to be given as
               SRC=TARGET[,SRC=TARGET]
   --nosources
               ignore source packages when copying build results to
               destination project

api

Issue an arbitrary request to the API

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

Usage:
   osc api URL

Options:
   -h, --help  show this help message and exit
   -a NAME STRING, --add-header=NAME STRING
               add the specified header to the request
   -T FILE, -f FILE, --file=FILE
               specify filename to upload, uses PUT mode by default
   -d STRING, --data=STRING
               specify string data for e.g. POST
   -e, --edit  GET, edit and PUT the location
   -X HTTP_METHOD, -m HTTP_METHOD, --method=HTTP_METHOD
               specify HTTP method to use (GET|PUT|DELETE|POST)

branch (bco, branchco, getpac)

Branch a package

[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
   openSUSE:Factory (list of projects from oscrc:getpac_default_project) if nothing else is specfied 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:
   -h, --help  show this help message and exit
   --add-repositories-rebuild=add_repositories_rebuild
               specify the used rebuild strategy for new repositories
   --add-repositories-block=add_repositories_block
               specify the used block strategy for new repositories
   --linkrev=linkrev
               specify the used revision in the link target.
   -r rev, --revision=rev
               branch against a specific revision
   -N, --new-package
               create a branch pointing to a not yet existing package
   -M, --maintenance
               Create project and package in maintenance mode
   -m TEXT, --message=TEXT
               specify message TEXT
   --noaccess  Create a hidden project
   --extend-package-names
               Extend packages names with project name as suffix
   --add-repositories
               Add repositories to target project (happens by default
               when project is new)
   -f, --force
               force branch, overwrite target
   -c, --checkout
               Checkout branched package afterwards using "co -e
               -S"('osc bco' is a shorthand for this option)
   --nodevelproject
               do not follow a defined devel project (primary project
               where a package is developed)

build

Build a package on your local machine

You need to call the command inside a package directory, which should be a buildsystem checkout. (Local modifications are fine.)

The arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output. BUILD_DESCR is either a RPM spec file, or a Debian dsc file.

The command honours 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 please use the --alternative-project <alternative-project> option: Example:
   osc build [OPTS] --alternative-project openSUSE:10.3 standard i586 BUILD_DESCR

usage:
   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)

# 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:
   -h, --help  show this help message and exit
   --nopreinstallimage, --no-preinstallimage
               Do not use preinstall images for creating the build
               root.
   --trust-all-projects
               trust packages from all projects
   --host=HOST
               perform the build on a remote server -
               user@server:~/remote/directory
   --oldpackages=DIR
               take previous build from DIR (special values: _self,
               _link)
   --download-api-only
               only fetch packages from the api
   --disable-cpio-bulk-download
               disable downloading packages as cpio archive from api
   --release=N
               set release number of the package to N
   -b, --baselibs
               Create -32bit/-64bit/-x86 rpms for other architectures
   --disable-debuginfo
               disable build of debuginfo packages
   -d, --debuginfo
               also build debuginfo sub-packages
   --alternative-project=PROJECT
               specify the build target project
   --target=TARGET
               define target platform
   --vm-telnet=TELNET
               Launch a telnet server inside of VM build
   --vm-type=TYPE
               use VM type TYPE (e.g. kvm)
   --vm-memory=TYPE
               use given MB for VM
   --linksources
               use hard links instead of a deep copied source
   --local-package
               build a package which does not exist on the server
   --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
   --userootforbuild
               Run build as root. The default is to build as
               unprivileged user. Note that a line "# norootforbuild"
               in the spec file will invalidate this option.
   --define='X Y'
               define macro X with value Y
   --without=X
               disable feature X for build
   --with=X    enable feature X for build
   --ccache    use ccache to speed up rebuilds
   --icecream=N
               use N parallel build jobs with icecream
   -t N, --threads=N
               Compile with N threads
   -j N, --jobs=N
               Compile with N jobs
   --root=ROOT
               Build in specified directory
   -x PAC, --extra-pkgs=PAC
               Add this package when installing the build-root
   -M MPAC, --multibuild-package=MPAC
               Build the specified multibuild package
   -k DIR, --keep-pkgs=DIR
               Save built packages into this directory
   -p DIR, --prefer-pkgs=DIR
               Prefer packages from this directory when installing
               the build-root
   --noservice, --no-service
               Skip run of local source services as specified in
               _service file.
   --no-verify, --noverify
               Skip signature verification (via pgp keys) of packages
               used for build. (Global config in .oscrc: no_verify)
   --nochecks, --no-checks
               Do not run build checks on the resulting packages.
   --noinit, --no-init
               Skip initialization of build root and start with build
               immediately.
   --overlay=OVERLAY
               Copy overlay filesystem to buildroot after installing
               all RPMs .
   --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 .
   --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 .
   --no-changelog
               don't update the package changelog from a changes file
   -l, --preload
               Preload all files into the cache for offline operation
   -o, --offline
               Start with cached prjconf and packages without
               contacting the api server
   --clean     Delete old build root before initializing it

buildconfig

Shows the build config

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
'osc repos' output.

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

buildhistory (buildhist)

Shows the build history of a package

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 REPOSITORY ARCHITECTURE Options:
   -h, --help  show this help message and exit
   -M MPAC, --multibuild-package=MPAC
               Show the buildhistory of the specified multibuild
               package
   -l limit, --limit=limit
               for setting the number of results
   --csv       generate output in CSV (separated by |)

buildinfo

Shows the build info

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_repositoy' 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 REPOSITORY ARCH [BUILD_DESCR]

Options:
   -h, --help  show this help message and exit
   -p DIR, --prefer-pkgs=DIR
               Prefer packages from this directory when installing
               the build-root
   -x PAC, --extra-pkgs=PAC
               Add this package when computing the buildinfo
   -M MPAC, --multibuild-package=MPAC
               Show the buildinfo of the specified multibuild package
   -d, --debug
               verbose output of build dependencies

buildlog (bl, blt, buildlogtail)

Shows the build log of a package

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.

Usage:
   osc buildlog [ARGS...]

[REPOSITORY ARCH | BUILDLOGURL] Options:
   -h, --help  show this help message and exit
   -s, --strip-time
               strip leading build time from the log
   -o OFFSET, --offset=OFFSET
               get log start or end from the offset
   -M MPAC, --multibuild-package=MPAC
               get log of the specified multibuild package
   -l, --last  Show the last finished log file

cat (blame, less)

Output the content of a file to standard output

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

Usage:
   osc cat [ARGS...]

Options:
   -h, --help  show this help message and exit
   -M, --meta  list meta data files
   -u, --unexpand
               always work with unexpanded packages.
   -e, --expand
               force expansion of linked packages.
   -r rev, --revision=rev
               print out the specified revision

changedevelrequest (changedevelreq, cr)

Create request to change the devel package definition.

[See http://en.opensuse.org/openSUSE:Build_Service_Collaboration for information on this topic.]

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

osc changedevelrequest PROJECT PACKAGE DEVEL_PROJECT [DEVEL_PACKAGE]

checkconstraints

check the constraints and view compliant workers

Checks the constraints for compliant workers.

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

Options:
   -h, --help  show this help message and exit
   --ignore-file
               ignore _constraints file and only check project
               constraints

checkout (co)

Check out content from the repository

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}0 PACKAGE
      osc co obs://API/PROJECT/PLATFORM/REVISION-PACKAGE

Options:
   -h, --help  show this help message and exit
   -l limit_size, --limit-size=limit_size
               Skip all files with a given size
   -S, --server-side-source-service-files
               Use server side generated sources instead of local
               generation.
   -s, --source-service-files
               Run source services.
   -o outdir, --output-dir=outdir
               place package in the specified directory instead of a
               PROJECT/PACKAGE directory
   -c, --current-dir
               place PACKAGE folder in the current directory instead
               of a PROJECT/PACKAGE directory
   -M, --meta  checkout out meta data instead of sources
   -u, --unexpand-link
               if a package is a link, check out the _link file
               instead of the expanded sources
   -e, --expand-link
               if a package is a link, check out the expanded sources
               (no-op, since this became the default)
   -r rev, --revision=rev
               checkout the specified revision. NOTE: if you checkout
               the complete project this option is ignored!

chroot

opens a shell inside of the build root

chroot into the build root for the given repository, arch and build description (NOTE: this command does not work if a VM is used)

usage:
   osc chroot [OPTS] REPOSITORY ARCH BUILD_DESCR
   osc chroot [OPTS] REPOSITORY (ARCH = hostarch, BUILD_DESCR is detected automatically)
   osc chroot [OPTS] ARCH (REPOSITORY = build_repository (config option), BUILD_DESCR is detected automatically)
   osc chroot [OPTS] BUILD_DESCR (REPOSITORY = build_repository (config option), ARCH = hostarch)
   osc chroot [OPTS] (REPOSITORY = build_repository (config option), ARCH = hostarch, BUILD_DESCR is detected automatically) Options:
   -h, --help  show this help message and exit
   -f, --force
               Do not ask confirmation for wipe
   --wipe      Delete the build root instead of chrooting into it
   -o, --offline
               Use cached data without contacting the api server
   --root=ROOT
               Path to the buildroot
   -r, --login-as-root
               login as root instead of abuild
   --noinit, --no-init
               do not guess/verify specified repository
   --alternative-project=PROJECT
               specify the used build target project
   --local-package
               package doesn't exist on the server

clean

removes all untracked files from the package working copy

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 '?'.

Usage:
   osc clean [ARGS...]

Options:
   -h, --help  show this help message and exit
   -n, --dry-run
               print the results without actually removing a file

comment

List / create / delete comments

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

commit (checkin, ci)

Upload content to the repository server

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 ...

Usage:
   osc commit [ARGS...]

Options:
   -h, --help  show this help message and exit
   --skip-local-service-run, --noservice
               Skip service run of configured source services for
               local run
   -v, --verbose
               Run the source services with verbose information
   --skip-validation
               deprecated, don't use it
   -f, --force
               force commit, even if there were no changes
   -F FILE, --file=FILE
               read log message from FILE, '-' denotes standard
               input.
   -n, --no-message
               do not specify a log message
   -m TEXT, --message=TEXT
               specify log message TEXT

config

get/set a config option

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)
   (section is either an apiurl or an alias or 'general')
   osc config --dump (dump the complete configuration)

Usage:
   osc config [ARGS...]

Options:
   -h, --help  show this help message and exit
   --dump-full
               dump the complete configuration (including 'pass' and
               'passx' options)
   --dump      dump the complete configuration (without 'pass' and
               'passx' options)
   --no-echo   prompt for a value but do not echo entered characters
   -p, --prompt
               prompt for a value
   -s, --stdin
               indicates that the config value should be read from
               stdin
   -d, --delete
               delete option from config or reset option to the
               default)

copypac

Copy a package

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.

usage:
   osc copypac SOURCEPRJ SOURCEPAC DESTPRJ [DESTPAC] Options:
   -h, --help  show this help message and exit
   -e, --expand
               if the source package is a link then copy the expanded
               version of the link
   -m TEXT, --message=TEXT
               specify message TEXT
   -t URL, --to-apiurl=URL
               URL of destination api server. Default is the source
               api server.
   -r rev, --revision=rev
               copy the specified revision.
   -d, --keep-develproject
               keep develproject tag in the package metadata
   -K, --keep-link
               keep the source link in target, this also expands the
               source
   -k, --keep-maintainers
               keep original maintainers. Default is remove all and
               replace with the one calling the script.
   -c, --client-side-copy
               do a (slower) client-side copy

createincident

Create a maintenance incident

[See http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.maintenance_setup.html for information on this topic.]

This command is asking to open an empty maintence 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:
   -h, --help  show this help message and exit
   -m TEXT, --message=TEXT
               specify message TEXT
   --noaccess  Create a hidden project
   -a ATTRIBUTE, --attribute=ATTRIBUTE
               Use this attribute to find default maintenance project
               (default is OBS:MaintenanceProject)

createrequest (creq)

create multiple requests with a single command

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]
       ]

   Option -m works for all types of request, 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:
   -h, --help  show this help message and exit
   --yes       proceed without asking.
   --no-update
               never touch source package on accept (will break
               source links)
   --no-cleanup
               never remove source package on accept, but update its
               content
   --cleanup   remove package if submission gets accepted (default
               for home:<id>:branch projects)
   --nodevelproject
               do not follow a defined devel project (primary project
               where a package is developed)
   -s SUPERSEDE, --supersede=SUPERSEDE
               Superseding another request by this one
   -r REV, --revision=REV
               for "create", specify a certain source revision ID
               (the md5 sum)
   -m TEXT, --message=TEXT
               specify message TEXT
   -a, --action
               specify action type of a request, can be :
               submit/delete/change_devel/add_role/set_bugowner

delete (del, remove, rm)

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

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:
   -h, --help  show this help message and exit
   -f, --force
               forces removal of entire package and its files

deleterequest (deletereq, dr, dropreq, droprequest)

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

usage:
   osc deletereq [-m TEXT]                     # works in checked out project/package
   osc deletereq [-m TEXT] PROJECT [PACKAGE]
   osc deletereq [-m TEXT] PROJECT [--repository REPOSITORY] Options:
   -h, --help  show this help message and exit
   --accept-in-hours=HOURS
               specify time when request shall get accepted
               automatically. Only works with write permissions in
               target.
   -r REPOSITORY, --repository=REPOSITORY
               specify repository
   -m TEXT, --message=TEXT
               specify message TEXT

dependson (whatdependson)

Show the build dependencies

The command dependson and 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.

dependson shows the build dependencies inside of a project, valid for a given repository and architecture. 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
   osc whatdependson REPOSITORY ARCH

usage:
   osc dependson PROJECT [PACKAGE] REPOSITORY ARCH
   osc whatdependson PROJECT [PACKAGE] REPOSITORY ARCH

detachbranch

replace a link with its expanded sources

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

usage:
   osc detachbranch                    # can be used in package working copy
   osc detachbranch PROJECT PACKAGE Options:
   -h, --help  show this help message and exit
   -m TEXT, --message=TEXT
               specify message TEXT

develproject (bsdevelproject, dp)

print the devel project / package of a package

Examples:
   osc develproject PRJ PKG
   osc develproject Options:
   -h, --help  show this help message and exit
   -r, --raw   deprecated option

diff (di, ldiff, linkdiff)

Generates a diff

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

Usage:
   osc diff [ARGS...]

       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:
   -h, --help  show this help message and exit
   --missingok
               do not fail if the source or target project/package
               does not exist on the server
   -l, --link  (osc linkdiff): compare against the base revision of
               the link
   -p, --plain
               output the diff in plain (not unified) diff format
   -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)
   -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.

distributions (dists)

Shows all available distributions

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

enablechannels (enablechannel)

Enables channels

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 [CHANNEL_PACKAGE]]

getbinaries

Download binaries to a local directory

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 ARCHITECTRUE
  osc getbinaries PROJECT PACKAGE REPOSITORY ARCHITECTURE
  osc getbinaries PROJECT PACKAGE REPOSITORY ARCHITECTURE FILE Options:
   -h, --help  show this help message and exit
   --debug     also fetch debug packages
   --sources   also fetch source packages
   -M MULTIBUILD_PACKAGE, --multibuild-package=MULTIBUILD_PACKAGE
               get binaries from specified multibuild package
   -d DIR, --destdir=DIR
               destination directory
   -q, --quiet
               do not show downloading progress

help (?, h)

give detailed help on a specific sub-command

usage:
   osc help [SUBCOMMAND]

importsrcpkg

Import a new package from a src.rpm

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.

Usage:
   osc importsrcpkg SRPM

Options:
   -h, --help  show this help message and exit
   -c, --commit
               commit the new files
   --delete-old-files
               delete existing files from the server
   -d description, --description=description
               set the description of the package
   -t title, --title=title
               set a title
   -n name, --name=name
               specify a package name
   -p project, --project=project
               specify the path to a project

info

Print information about a working copy

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

Usage:
   osc info [ARGS...]

init

Initialize a directory as working copy

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

jobhistory (jobhist)

Shows the job history of a project

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] REPOSITORY ARCHITECTURE Options:
   -h, --help  show this help message and exit
   -M MPAC, --multibuild-package=MPAC
               get jobhistory for the specified multibuild package
   -l limit, --limit=limit
               for setting the number of results
   --csv       generate output in CSV (separated by |)

linkpac

"Link" a package to another package

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

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

Afterwards, you will want to 'checkout DESTPRJ DESTPAC'.

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 SOURCEPRJ SOURCEPAC DESTPRJ [DESTPAC] Options:
   -h, --help  show this help message and exit
   -N, --new-package
               create a link to a not yet existing package
   -d, --disable-publish
               disable publishing of the linked package
   -f, --force
               overwrite an existing link file if it is there.
   -r rev, --revision=rev
               link the specified revision.
   -c, --current
               link fixed against current revision.
   -C CICOUNT, --cicount=CICOUNT
               cicount attribute in the link, known values are add,
               copy, and local, default in buildservice is currently
               add.

linktobranch

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

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                    # can be used in checked out package
   osc linktobranch PROJECT PACKAGE

list (LL, lL, ll, ls)

List sources or binaries on the server

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
  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:
  list (LL, lL, ll, ls) [PROJECT [PACKAGE]]
  list (LL, lL, ll, ls) -b [PROJECT [PACKAGE [REPO [ARCH]]]] Options:
   -h, --help  show this help message and exit
   -R REVISION, --revision=REVISION
               specify revision (only for sources)
   -M, --meta  list meta data files
   -D, --deleted
               show only the former deleted projects or packages
   -l, --long  print extra information
   -v, --verbose
               print extra information
   -u, --unexpand
               always work with unexpanded (source) packages
   -e, --expand
               expand linked package (only for sources)
   -b, --binaries
               list built binaries instead of sources
   -r REPO, --repo=REPO
               specify repository (only for binaries)
   -a ARCH, --arch=ARCH
               specify architecture (only for binaries)

localbuildlog (lbl)

Shows the build log of a local buildchroot

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

Options:
   -h, --help  show this help message and exit
   -s, --strip-time
               strip leading build time from the log
   -o OFFSET, --offset=OFFSET
               get log starting from offset

lock

Locks a project or package.

usage:
  osc lock PROJECT [PACKAGE]

Options:
   -h, --help  show this help message and exit
   -m TEXT, --message=TEXT
               specify log message TEXT

log

Shows the commit log of a package

Usage:
   osc log (inside working copy)
   osc log remote_project [remote_package]

Options:
   -h, --help  show this help message and exit
   -M, --meta  checkout out meta data instead of sources
   -D, --deleted
               work on deleted package
   --xml       generate output in XML
   --csv       generate output in CSV (separated by |)
   -r rev, --revision=rev
               show log of the specified revision

maintainer (bugowner)

Show maintainers according to server side configuration

   # Search for official maintained sources in OBS instance
   osc maintainer BINARY <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.

Usage:
   osc maintainer [ARGS...]

Options:
   -h, --help  show this help message and exit
   -m MESSAGE, --message=MESSAGE
               Define message as commit entry or request description
   -r role, --role=role
               Specify user role
   -d user, --delete=user
               delete a maintainer/bugowner (can be specified via
               --role)
   -G GROUP, --group=GROUP
               All official maintained instances for the specified
               GROUP
   -U USER, --user=USER
               All official maintained instances for the specified
               USER
   -S user, --set-bugowner-request=user
               Set the bugowner to specified person via a request (or
               group via group: prefix)
   -s user, --set-bugowner=user
               Set the bugowner to specified person (or group via
               group: prefix)
   -A, --all   list all found entries not just the first one
   -a user, --add=user
               add a new person for given role ("maintainer" by
               default)
   -D devel_project, --devel-project=devel_project
               define the project where this package is primarily
               developed
   -v, --verbose
               show more information
   --nodevelproject
               do not follow a defined devel project (primary project
               where a package is developed)
   -e, --email
               show email addresses instead of user names
   -B, --bugowner
               Show only the bugowner if defined, or maintainer
               otherwise
   -b, --bugowner-only
               Show only the bugowner

maintenancerequest (mr)

Create a request for starting a maintenance incident.

[See http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.maintenance_setup.html for information on this topic.]

This command is asking the maintence team to start a maintence 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:
   -h, --help  show this help message and exit
   -s SUPERSEDE, --supersede=SUPERSEDE
               Superseding another request by this one
   --incident-project=INCIDENT_PROJECT
               specify incident project to merge in
   --incident=INCIDENT
               specify incident number to merge in
   --cleanup   do remove source project on accept
   --no-cleanup
               do not remove source project on accept
   --release-project=RELEASEPROJECT
               Specify the release project
   -m TEXT, --message=TEXT
               specify message TEXT
   -a ATTRIBUTE, --attribute=ATTRIBUTE
               Use this attribute to find default maintenance project
               (default is OBS:MaintenanceProject)

man

generates a man page

usage:
   osc man

mbranch (maintained, sm)

Search or branch multiple instances of a package

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.

usage:
   osc sm [SOURCEPACKAGE] [-a ATTRIBUTE]
   osc mbranch [ SOURCEPACKAGE [ TARGETPROJECT ] ] Options:
   -h, --help  show this help message and exit
   --nodevelproject
               do not follow a defined devel project (primary project
               where a package is developed)
   --noaccess  Create a hidden project
   --dryrun    Just simulate the action and report back the result.
   -u UPDATE_ATTRIBUTE, --update-project-attribute=UPDATE_ATTRIBUTE
               Use this attribute to find update projects (default is
               OBS:UpdateProject)
   -a ATTRIBUTE, --attribute=ATTRIBUTE
               Use this attribute to find affected packages (default
               is OBS:Maintained)
   -c, --checkout
               Checkout branched package afterwards ('osc bco' is a
               shorthand for this option)

meta

Show meta information, or edit it

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. 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|pattern> ARGS...
   osc meta <prj|pkg|prjconf|user|pattern> [-m|--message TEXT] -e|--edit ARGS...
   osc meta <prj|pkg|prjconf|user|pattern> [-m|--message TEXT] -F|--file ARGS...
   osc meta pattern --delete PRJ PATTERN
   osc meta attribute PRJ [PKG [SUBPACKAGE]] [--attribute ATTRIBUTE] [--create|--delete|--set [value_list]] Options:
   -h, --help  show this help message and exit
   --delete    delete a pattern or attribute
   -s ATTRIBUTE_VALUES, --set=ATTRIBUTE_VALUES
               set attribute values
   -R, --remove-linking-repositories
               Try to remove also all repositories building against
               remove ones.
   -c, --create
               create attribute without values
   -e, --edit  edit metadata
   -m TEXT, --message=TEXT
               specify log message TEXT. For prj and prjconf meta
               only
   -r REV, --revision=REV
               checkout given revision instead of head revision. For
               prj and prjconf meta only
   -F FILE, --file=FILE
               read metadata from FILE, instead of opening an editor.
               '-' denotes standard input.
   -f, --force
               force the save operation, allows one to ignores some
               errors like depending repositories. For prj meta only.
   --attribute-project
               include project values, if missing in packages
   --attribute-defaults
               include defined attribute defaults
   -a ATTRIBUTE, --attribute=ATTRIBUTE
               affect only a given attribute

mkpac

Create a new package under version control

usage:
   osc mkpac new_package

mv

Move SOURCE file to DEST and keep it under version control

Usage:
   osc mv SOURCE DEST

Options:
   -h, --help  show this help message and exit
   -f, --force
               forces removal of entire package and its files

my

show waiting work, packages, projects or requests involving yourself

   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 [ARGS...]

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

   Options:
       -h, --help
               show this help message and exit
       --maintained
               limit search results to packages with maintained
               attribute set.
       -v, --verbose
               verbose listing
       --exclude-project=EXCLUDE_PROJECT
               exclude requests for specified project
       -U USER, --user=USER
               search for USER instead of yourself
       -a, --all
               all involvements
       -m, --maintainer
               restrict listing to items where the user is maintainer
       -b, --bugowner
               restrict listing to items where the user is bugowner

patchinfo

Generate and edit a patchinfo file.

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:
   -h, --help  show this help message and exit
   -f, --force
               force generation of new patchinfo file, do not update
               existing one.

pdiff

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

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:
   -h, --help  show this help message and exit
   -n, --nomissingok
               fail if the parent package does not exist on the
               server
   -p, --plain
               output the diff in plain (not unified) diff format

prdiff (projdiff, projectdiff)

Server-side diff of two projects

Compares two projects and either summarises 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:
   -h, --help  show this help message and exit
   -d, --diffstat
               show diffstat of differences
   -u, --unified
               show full unified diffs of differences
   -o, --show-not-in-new
               show packages only in the old project
   -n, --show-not-in-old
               show packages only in the new project
   -i REGEXP, --include=REGEXP
               only consider packages matching REGEXP
   -e REGEXP, --exclude=REGEXP
               skip packages matching REGEXP
   -r, --requests
               show open requests for any packages with differences

prjresults (pr)

Shows project-wide build results

Usage:
   osc prjresults (inside working copy)
   osc prjresults PROJECT

Options:
   -h, --help  show this help message and exit
   --show-excluded
               show packages that are excluded in all repos, also
               hide repos that have only excluded packages
   -V, --vertical
               list packages vertically instead horizontally
   -r REPO, --repo=REPO
               show results only for specified repo(s)
   -a ARCH, --arch=ARCH
               show results only for specified architecture(s)
   -n EXPR, --name-filter=EXPR
               show only packages whose names match EXPR
   -s STATUS, --status-filter=STATUS
               show only packages with buildstatus STATUS (see
               legend)
   --xml       generate output in XML
   -c, --csv   csv output
   -q, --hide-legend
               hide the legend

pull

merge the changes of the link target into your working copy.

rdelete

Delete a project or packages on the server.

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:
   -h, --help  show this help message and exit
   -m TEXT, --message=TEXT
               specify log message TEXT
   -f, --force
               deletes a project where other depends on
   -r, --recursive
               deletes a project with packages inside

rdiff

Server-side "pretty" diff of two packages

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.

Note that this command doesn't return a normal diff (which could be applied as patch), but a "pretty" diff, which also compares the content of tarballs.

usage:
   osc rdiff OLDPRJ OLDPAC NEWPRJ [NEWPAC]
   osc rdiff PROJECT PACKAGE Options:
   -h, --help  show this help message and exit
   -u, --unexpand
               diff unexpanded version if sources are linked
   --missingok
               do not fail if the source or target project/package
               does not exist on the server
   -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.
   -p, --plain
               output the diff in plain (not unified) diff format
   -r N[:M], --revision=N[:M]
               revision id, where N = old revision and M = new
               revision
   -M, --meta  diff meta data
   --oldpkg=OLDPKG
               package to compare against (deprecated, use 3 argument
               form)
   --oldprj=OLDPRJ
               project to compare against (deprecated, use 3 argument
               form)

rebuild (rebuildpac)

Trigger package rebuilds

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 [REPOSITORY [ARCH]]]] Options:
   -h, --help  show this help message and exit
   --all       Rebuild all packages of entire project
   -M MULTIBUILD_PACKAGE, --multibuild-package=MULTIBUILD_PACKAGE
               rebuild specified multibuild package
   -f, --failed
               rebuild all failed packages
   -r REPO, --repo=REPO
               trigger rebuilds for a specific repository
   -a ARCH, --arch=ARCH
               trigger rebuilds for a specific architecture

release

Release sources and binaries

This command is used to transfer sources and binaries without rebuilding them. It requires defined release targets set to trigger="manual". Please refer the release management chapter in the OBS book for details.

usage:
   osc release [ SOURCEPROJECT [ SOURCEPACKAGE ] ]

Options:
   -h, --help  show this help message and exit
   --set-release=RELEASETAG
               rename binaries during release using this release tag
   --target-repository=TARGETREPOSITORY
               Release only to specified repository
   --target-project=TARGETPROJECT
               Release only to specified project
   -r REPO, --repo=REPO
               Release only binaries from the specified repository

releaserequest

Create a request for releasing a maintenance update.

[See http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.maintenance_setup.html
for information on this topic.]

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

usage:
   osc releaserequest [ SOURCEPROJECT ]

Options:
   -h, --help  show this help message and exit
   -m TEXT, --message=TEXT
               specify message TEXT

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

Shows the build log of a package

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 repository arch
   or
   osc remotebuildlog project/package/repository/arch
   or
   osc remotebuildlog buildlogurl Options:
   -h, --help  show this help message and exit
   -s, --strip-time
               strip leading build time from the log
   -o OFFSET, --offset=OFFSET
               get log starting or ending from the offset
   -M MPAC, --multibuild-package=MPAC
               show log file for specified multibuild package
   -l, --last  Show the last finished log file

repairlink

Repair a broken source link

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:
   -h, --help  show this help message and exit
   -d DIR, --destdir=DIR
               destination directory

repairwc

try to repair an inconsistent working copy

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').

Usage:
   osc repairwc [ARGS...]

Options:
   -h, --help  show this help message and exit
   --force-apiurl
               ask once for an apiurl and force this apiurl for all
               inconsistent projects/packages

repositories (platforms, repos)

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

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

repourls

Shows URLs of .repo files

Shows URLs on which to access the project .repos files (yum-style metadata) on download.opensuse.org.

usage:
  osc repourls [PROJECT]

request (review, rq)

Show or modify requests and reviews

[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"

"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.

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

"priorize" change the prioritity 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 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 priorize [-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:
   -h, --help  show this help message and exit
   --source-buildstatus
               print the buildstatus of the source package (only
               works with "show" and the interactive review)
   --involved-projects
               show all requests for project/packages where USER is
               involved
   --exclude-target-project=EXCLUDE_TARGET_PROJECT
               exclude target project from request list
   --non-interactive
               non-interactive review of request
   --or-revoke
               For automatisation 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.
   -i, --interactive
               interactive review of request
   -e, --edit  edit a submit action
   -B, --bugowner
               also show requests about packages where I am bugowner
   -M, --mine  only show requests created by yourself
   -b, --brief
               print output in list view as list subcommand
   -p PACKAGE, --package=PACKAGE
               requests or reviews limited for the specified PACKAGE,
               requires also a PROJECT
   -P PROJECT, --project=PROJECT
               requests or reviews limited for the specified PROJECT
   -G GROUP, --group=GROUP
               requests or reviews limited for the specified GROUP
   -U USER, --user=USER
               requests or reviews limited for the specified USER
   -D DAYS, --days=DAYS
               only list requests in state "new" or changed in the
               last DAYS. [default=0]
   -s STATE, --state=STATE
               only list requests in one of the comma separated given
               states (new/review/accepted/revoked/declined) or "all"
               [default="declined,new,review", or "all", if no args
               given]
   -f, --force
               enforce state change, can be used to ignore open
               reviews
   -a, --all   all states. Same as'-s all'
   -t TYPE, --type=TYPE
               limit to requests which contain a given action type
               (submit/delete/change_devel)
   -m TEXT, --message=TEXT
               specify message TEXT
   --no-devel  Do not attempt to forward to devel project
   -u, --unified
               output the diff in the unified diff format
   -d, --diff  generate a diff

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

requests to add user as maintainer or bugowner

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 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:
   -h, --help  show this help message and exit
   -r role, --role=role
               specify user role (default: maintainer)
   -m TEXT, --message=TEXT
               specify message TEXT

resolved

Remove 'conflicted' state on working copy files

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...]

restartbuild (abortbuild)

Restart the build of a certain project or package

usage:
   osc restartbuild [PROJECT [PACKAGE [REPOSITORY [ARCH]]]] Options:
   -h, --help  show this help message and exit
   --all       Restart all running builds of entire project
   -r REPO, --repo=REPO
               Restart builds for a specific repository
   -M MULTIBUILD_PACKAGE, --multibuild-package=MULTIBUILD_PACKAGE
               Restart builds for specified multibuild package
   -a ARCH, --arch=ARCH
               Restart builds for a specific architecture

results (r)

Shows the build results of a package or project

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

Options:
   -h, --help  show this help message and exit
   --format=FORMAT
               format string for csv output
   --csv       generate output in CSV format
   --xml       generate output in XML (former results_meta)
   -w, --watch
               watch the results until all finished building
   -M MULTIBUILD_PACKAGE, --multibuild-package=MULTIBUILD_PACKAGE
               Only show results for the specified multibuild package
   --no-multibuild
               Disable results for all direct affect packages inside
               of the project
   -v, --verbose
               more verbose output
   -a ARCH, --arch=ARCH
               Show results only for specified architecture(s)
   -r REPO, --repo=REPO
               Show results only for specified repo(s)
   -l, --last-build
               show last build results (succeeded/failed/unknown)

revert

Restore changed files or the entire working copy.

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

Usage:
   osc revert [FILES...]

rremove

Remove source files from selected package

Usage:
   osc rremove PROJECT PACKAGE [FILES...]

Options:
   -h, --help  show this help message and exit
   -f, --force
               Don't ask and delete files

search (bse, se)

Search for a project and/or package.

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 --package perl-Foo-Bar') Options:
   -h, --help  show this help message and exit
   --binaryversion=VERSION
               search for binary with specified version (implies
               --binary)
   -B PROJECT, --baseproject=PROJECT
               search packages built for PROJECT (implies --binary)
   --binary    search binary packages
   --csv       generate output in CSV (separated by |)
   -M, --mine  shorthand for --bugowner --package
   --maintained
               OBSOLETE: please use maintained command instead.
   -m, --maintainer
               as -i, but only maintainer
   -b, --bugowner
               as -i, but only bugowner
   -i, --involved
               show projects/packages where given person (or myself)
               is involved as bugowner or maintainer
               [[{group|person}/]<name>] default: person
   -V, --version
               show package version, revision, and srcmd5. CAUTION:
               This is slow and unreliable
   -v, --verbose
               show more information
   -a ATTRIBUTE, --limit-to-attribute=ATTRIBUTE
               match only when given attribute exists in meta data
   --description
               search for matches in the 'description' element
   --title     search for matches in the 'title' element
   --project   search for a project
   --package   search for a package
   -s, --substring
               Show also results where the search term is a sub
               string, slower search
   -e, --exact
               show only exact matches, this is default now
   --repos-baseurl
               show base URLs of download repositories

service

Handle source services

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 localrun
   osc service disabledrun
   osc service remoterun [PROJECT PACKAGE]
   osc service merge [PROJECT PACKAGE]
   osc service wait [PROJECT PACKAGE]

   COMMAND can be:
   run         r  run defined services locally, it takes 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 independend of the used mode
   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

setdevelproject (sdp)

Set the devel project / package of a package

Examples:
   osc setdevelproject [PRJ PKG] DEVPRJ [DEVPKG] Options:
   -h, --help  show this help message and exit
   -u, --unset
               remove devel project

setlinkrev

Updates a revision number in a source link.

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:
   -h, --help  show this help message and exit
   -u, --unset
               remove revision in link, it will point always to
               latest revision
   -R, --use-plain-revision
               Do not expand revision the specified or latest rev
   -r rev, --revision=rev
               use the specified revision.

signkey

Manage Project Signing Key

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 (eg. when dropping "KDE:KDE4:Community" key, the one from "KDE:KDE4" will be used).

WARNING: THE OLD KEY WILL NOT BE RESTORABLE WHEN USING DELETE OR CREATE

Usage:
   osc signkey [ARGS...]

Options:
   -h, --help  show this help message and exit
   --sslcert   fetch SSL certificate instead of GPG key
   --notraverse
               don' traverse projects upwards to find key
   --delete    delete the gpg signing key in this project
   --extend    extend expiration date of the gpg public key for this
               project
   --create    create new gpg signing key for this project

status (st)

Show status of files in working copy

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
 'A' Added
 'C' Conflicted
 'D' Deleted
 'M' Modified
 '?' 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:
   -h, --help  show this help message and exit
   -e, --show-excluded
               also show files which are excluded by the
               "exclude_glob" config option
   -v, --verbose
               print extra information
   -q, --quiet
               print as little as possible

submitrequest (sr, submitpac, submitreq)

Create request to submit source into another Project

[See http://en.opensuse.org/openSUSE:Build_Service_Collaboration for information on this topic.]

See the "request" command for showing and modifing 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:
   -h, --help  show this help message and exit
   --yes       proceed without asking.
   -d, --diff  show diff only instead of creating the actual request
   --update-link
               This transfers the source including the _link file.
   --no-update
               never touch source package on accept (will break
               source links)
   --no-cleanup
               never remove source package on accept, but update its
               content
   --cleanup   remove package if submission gets accepted (default
               for home:<id>:branch projects)
   --seperate-requests
               Deprecated (wrong spelling - see --separate-requests)
   --separate-requests
               Create multiple requests instead of a single one (when
               command is used for entire project)
   --nodevelproject
               do not follow a defined devel project (primary project
               where a package is developed)
   -s SUPERSEDE, --supersede=SUPERSEDE
               Superseding another request by this one
   -r REV, --revision=REV
               specify a certain source revision ID (the md5 sum) for
               the source package
   -m TEXT, --message=TEXT
               specify message TEXT

token

Show and manage authentication token

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

Usage:
   osc token
   osc token --create [<PROJECT> <PACKAGE>]
   osc token --delete <TOKENID>
   osc token --trigger <TOKENID> Options:
   -h, --help  show this help message and exit
   -t TOKENID, --trigger=TOKENID
               Trigger the action of a token
   -d TOKENID, --delete=TOKENID
               Create a new token
   -c, --create
               Create a new token

triggerreason (tr)

Show reason why a package got triggered to build

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 (eg. 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 reason REPOSITORY ARCH
   osc reason PROJECT PACKAGE REPOSITORY ARCH

undelete

Restores a deleted project or package on the server.

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 [PACKAGE ...]

Options:
   -h, --help  show this help message and exit
   -m TEXT, --message=TEXT
               specify log message TEXT

unlock

Unlocks a project or package

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

usage:
  osc unlock PROJECT [PACKAGE]

Options:
   -h, --help  show this help message and exit
   -m TEXT, --message=TEXT
               specify log message TEXT

update (up)

Update a working copy

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).

Usage:
   osc update [ARGS...]

Options:
   -h, --help  show this help message and exit
   -l limit_size, --limit-size=limit_size
               Skip all files with a given size
   -S, --server-side-source-service-files
               Use server side generated sources instead of local
               generation.
   -s, --source-service-files
               Run local source services after update.
   -e, --expand-link
               if a package is a link, update to the expanded sources
   -u, --unexpand-link
               if a package is an expanded link, update to the raw
               _link file
   -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)

updatepacmetafromspec (metafromspec, updatepkgmetafromspec)

Update package meta information from a specfile

ARG, if specified, is a package working copy.

Usage:
   osc updatepacmetafromspec [ARGS...]

Options:
   -h, --help  show this help message and exit
   --specfile=FILE
               Path to specfile. (if you pass more than working copy
               this option is ignored)

vc

Edit the changes file

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.

Usage:
   osc vc [ARGS...]

Options:
   -h, --help  show this help message and exit
   -e, --just-edit
               just open changes (cannot be used with -m)
   -F FILE, --file=FILE
               read changes message from FILE (do not open an editor)
   -m MESSAGE, --message=MESSAGE
               add MESSAGE to changes (do not open an editor)

whois (user, who)

Show fullname and email of a buildservice user

Usage:
   osc whois [USERNAMES...]

wipebinaries (unpublish)

Delete all binary packages of a certain project/package

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]
   osc unpublish OPTS                       # works in checked out project dir
   osc unpublish OPTS PROJECT [PACKAGE] Options:
   -h, --help  show this help message and exit
   --all       Delete all binaries regardless of the package status
               (previously default)
   --unresolvable
               Delete all binaries of packages which have dependency
               errors
   --broken    Delete all binaries of packages for which the package
               source is bad
   --build-failed
               Delete all binaries of packages for which the build
               failed
   --build-disabled
               Delete all binaries of packages for which the build is
               disabled
   -r REPO, --repo=REPO
               Delete all binary packages for a specific repository
   -M MULTIBUILD_PACKAGE, --multibuild-package=MULTIBUILD_PACKAGE
               Delete all binary packages for specified multibuild
               package
   -a ARCH, --arch=ARCH
               Delete all binary packages for a specific architecture

workerinfo

gets the information to a worker from the server

Examples:
   osc workerinfo <workername>

Usage:
   osc workerinfo WORKER

Global Options

Options:
   --version           show program's version number and exit
   -h, --help          show this help message and exit
   --debugger          jump into the debugger before executing anything
   --post-mortem       jump into the debugger in case of errors
   -t, --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)
   -d, --debug         print info useful for debugging
   -A URL/alias, --apiurl=URL/alias
                       specify URL to access API server at or an alias
   -c FILE, --config=FILE
                       specify alternate configuration file
   --no-keyring        disable usage of desktop keyring system
   --no-gnome-keyring  disable usage of GNOME Keyring
   -v, --verbose       increase verbosity
   -q, --quiet         be quiet, not verbose

See Also

Type 'osc help <subcommand>' for more detailed help on a specific subcommand.

For additional information, see
* http://en.opensuse.org/openSUSE:Build_Service_Tutorial
* http://en.opensuse.org/openSUSE:OSC

You can modify osc commands, or roll your own, via the plugin API:
* http://en.opensuse.org/openSUSE:OSC_plugins

Author

osc was written by several authors. This man page is automatically generated.

Info

Mar 2017 osc 0.157 User Commands