osc

Langue: en

Version: 366842 (MeeGo - 06/11/10)

Section: 1 (Commandes utilisateur)

NAME

osc - openSUSE build service command-line tool.

SYNOPSIS

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

DESCRIPTION

openSUSE build service command-line tool.

COMMANDS

abortbuild
Aborts the build of a certain project/package

With the optional argument <package> you can specify a certain package otherwise all builds in the project will be cancelled.

usage:
    osc abortbuild [OPTS] PROJECT [PACKAGE] Options:
    -h, --help  show this help message and exit
    -r REPO, --repo=REPO
                Abort builds for a specific repository
    -a ARCH, --arch=ARCH
                Abort builds for a specific architecture

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

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

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 -m PUT -f /etc/fstab source/home:user/test5/myfstab

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
    -f FILE, --file=FILE
                specify filename for e.g. PUT or DELETE
    -d STRING, --data=STRING
                specify string data for e.g. POST
    -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/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
    Trunk:Testing if nothing else specified.

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
    -r rev, --revision=rev
                branch against a specific revision
    -m TEXT, --message=TEXT
                specify message TEXT
    -f, --force
                force branch, overwrite target
    -c, --checkout
                Checkout branched package afterwards ('osc bco' is a
                shorthand for this option)
    --nodevelproject
                do not follow a defined devel project (primary project
                where a package is developed)

bugowner
Show bugowners of a project/package


    osc bugowner PRJ
    osc bugowner PRJ PKG

Shortcut for osc maintainer -B [PRJ] PKG

PRJ defaults to 'Trunk:Testing'. Prints bugowner if defined, or maintainer otherwise.

Options:
    -h, --help  show this help message and exit
    -e, --email
                show email addresses instead of user names
    --nodevelproject
                do not follow a defined devel project (primary project
                where a package is developed)
    -v, --verbose
                show more information

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 = 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
    --oldpackages=DIR
                take previous build from DIR (special values: _self,
                _link)
    --cpio-bulk-download
                enable 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
    --vm-type=TYPE
                use VM type TYPE (e.g. kvm)
    --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.
    --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
    -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
    -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
                Skip signature verification of packages used for
                build.
    --nochecks, --no-checks
                Do not run post 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 chache 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. It needs to be called from inside a package directory.

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 arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output.

usage:
    osc buildconfig REPOSITORY ARCH    (in pkg dir)
    osc buildconfig PROJECT PACKAGE REPOSITORY ARCH

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
    --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 can be taken from the first two columns of the 'osc repos' output.

usage:
    osc buildinfo REPOSITORY ARCH [BUILD_DESCR]    (in pkg dir)
    osc buildinfo PROJECT PACKAGE REPOSITORY ARCH [BUILD_DESCR]

Options:
    -h, --help  show this help message and exit
    -x PAC, --extra-pkgs=PAC
                Add this package when computing the buildinfo

buildlog (bl)
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.

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 START, --start=START
                get log starting from the offset

cat
Output the content of a file to standard output

Examples:
    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

Usage:
    osc cat [ARGS...]

Options:
    -h, --help  show this help message and exit
    -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/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]

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

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
                Use server side generated sources instead of local
                generation.
    -c, --current-dir
                place PACKAGE folder in the current directoryinstead
                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
chroot into the buildchroot

chroot into the buildchroot for the given repository, arch and build description (NOTE: this command does not work if "build-type" is set in the config)

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
    -o, --offline
                Use cached data without contacting the api server
    -r, --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

commit (checkin, ci)
Upload content to the repository server

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

Optionally checks the state of a working copy, if found a file with unknown state, it requests an user input:
 * skip - don't change anything, just move to another file
 * remove - remove a file from dir
 * edit file list - edit filelist using EDITOR
 * commit - don't check anything and commit package
 * abort - abort commit - this is default value This can be supressed by check_filelist config item, or -f/--force command line option.

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
    --verbose-validation
                Run the source validation with verbose informations
    --skip-validation
                Skip the source validation
    -f, --force
                force commit - do not tests a file list
    -F FILE, --file=FILE
                read log message from FILE
    -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 'generic')

Usage:
    osc config SECTION OPT [VAL...]

Options:
    -h, --help  show this help message and exit
    -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 is 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
                link the specified revision.
    -d, --keep-develproject
                keep develproject tag in the package metadata
    -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

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_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.
    -d, --diff  show diff only instead of creating the actual request
    --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)
Create request to delete a package or project

usage:
    osc deletereq [-m TEXT]                        # works in checked out project/package

    osc deletereq [-m TEXT] PROJECT [PACKAGE] Options:
    -h, --help  show this help message and exit
    -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

diff (di)
Generates a diff

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

ARG, specified, is a filename to include in the diff.

Usage:
    osc diff [ARGS...]

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

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 PACKAGE REPOSITORY ARCHITECTURE Options:
    -h, --help  show this help message and exit
    --sources   also fetch source packages
    -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
    -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.

usage:
    osc linkpac SOURCEPRJ SOURCEPAC DESTPRJ [DESTPAC] Options:
    -h, --help  show this help message and exit
    -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
   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
    -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)
    -R REVISION, --revision=REVISION
                specify revision (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 START, --start=START
                get log starting from offset

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
    --xml       generate output in XML
    --csv       generate output in CSV (separated by |)
    -r rev, --revision=rev
                show log of the specified revision

maintainer
Show maintainers of a project/package

To be used like this:


    osc maintainer PRJ <options> or
    osc maintainer PRJ PKG <options>

Usage:
    osc maintainer [ARGS...]

Options:
    -h, --help  show this help message and exit
    -r role, --role=role
                Specify user role
    -d user, --delete=user
                delete a maintainer/bugowner (can be specified via
                --role)
    -a user, --add=user
                add a new maintainer/bugowner (can be specified via
                --role)
    -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

man
generates a man page

usage:
    osc man

mbranch
Multiple branch of a package

[See http://en.opensuse.org/Build_Service/Concepts/Maintenance for information on this topic.]

This command is used for creating multiple links of defined version of a package in one project. This is esp. used for maintenance updates.

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

usage:
    osc mbranch [ SOURCEPACKAGE [ TARGETPROJECT ] ] Options:
    -h, --help  show this help message and exit
    -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 -

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
    osc meta attribute PRJ [PKG [SUBPACKAGE]] [--attribute ATTRIBUTE] [--create|--delete|--set [value_list]]

Usage:
    osc meta <prj|pkg|prjconf|user|pattern|attribute> ARGS...
    osc meta <prj|pkg|prjconf|user|pattern|attribute> -e|--edit ARGS...
    osc meta <prj|pkg|prjconf|user|pattern|attribute> -F|--file ARGS...
    osc meta pattern --delete PRJ PATTERN Options:
    -h, --help  show this help message and exit
    --delete    delete a pattern or attribute
    -s ATTRIBUTE_VALUES, --set=ATTRIBUTE_VALUES
                set attribute values
    -c, --create
                create attribute without values
    -e, --edit  edit metadata
    -F FILE, --file=FILE
                read metadata from FILE, instead of opening an editor.
                '-' denotes standard input.
    --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 packages, projects or requests involving yourself


    Examples:
        # 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 submitrequests 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:
        -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.

Examples:
    osc patchinfo
    osc patchinfo PATCH_NAME Options:
    -h, --help  show this help message and exit
    --force-update
                drops away collected packages from an already built
                patch and let it collect again
    -f, --force
                force generation of new patchinfo file

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
    -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)
    -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). If you are sure that you want to remove this project and all its packages use '--force' switch.

usage:
   osc rdelete -f PROJECT
   osc rdelete PROJECT PACKAGE [PACKAGE ...]

Options:
    -h, --help  show this help message and exit
    -f, --force
                deletes a package or an empty project

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
    --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
    --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 (inside working copy)
    osc rebuild PROJECT [PACKAGE [REPOSITORY [ARCH]]] Options:
    -h, --help  show this help message and exit
    -f, --failed
                rebuild all failed packages

remotebuildlog (rbl, rbuildlog)
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.

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 START, --start=START
                get log starting from the offset

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

repos
shows repositories configured for a project or package

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

repositories (platforms)
Shows available repositories

Examples: 1. osc repositories
        Shows all available repositories/build targets

2. osc repositories <project>
        Shows the configured repositories/build targets of a project

Usage:
    osc repositories [ARGS...]

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 and modify requests

[See http://en.opensuse.org/Build_Service/Collaboration for information on this topic.]

This command shows and modifies existing requests. To create new requests you need to call one of the following:
  osc submitrequest
  osc deleterequest
  osc changedevelrequest To send low level requests to the buildservice API, use:
  osc api

This 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" and append a message that you specify with the --message option.

"wipe" will permanently delete a request.

"revoke" will set the request state to "revoked" and append a message that you specify with the --message 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.

"checkout" will checkout the request's source package. This only works for "submit" requests.

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 reopen [-m TEXT] ID
    osc request approvenew [-m TEXT] PROJECT
    osc request decline [-m TEXT] ID
    osc request revoke [-m TEXT] ID
    osc request wipe ID
    osc request checkout/co ID
    osc review accept [-m TEXT] ID
    osc review decline [-m TEXT] ID
    osc review new [-m TEXT] ID            # for setting a temporary comment without changing the state Options:
    -h, --help  show this help message and exit
    --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
    -i, --interactive
                interactive review of request
    -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
    -U USER, --user=USER
                same as -M, but for the specified USER
    -D DAYS, --days=DAYS
                only list requests in state "new" or changed in the
                last DAYS. [default=30]
    -s STATE, --state=STATE
                only list requests in one of the comma separated given
                states (new/accepted/revoked/declined) or "all"
                [default=new, or all, if no args given]
    -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
    -u, --unified
                output the diff in the unified diff format
    -d, --diff  generate a diff

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

results (r)
Shows the build results of a package

Usage:
    osc results (inside working copy)
    osc results remote_project remote_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)
    -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)

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, sm)
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 sm 'source package name'      ('osc search --maintained')
    osc bse ...                         ('osc search --binary')
    osc se ... Options:
    -h, --help  show this help message and exit
    -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
                limit search results to packages with maintained
                attribute set.
    -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
    -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

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

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

usage:
    osc status [OPTS] [PATH...] Options:
    -h, --help  show this help message and exit
    -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/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] Options:
    -h, --help  show this help message and exit
    --yes       proceed without asking.
    -d, --diff  show diff only instead of creating the actual request
    --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

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

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
                Use server side generated sources instead of local
                generation.
    -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)
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)
    -m MESSAGE, --message=MESSAGE
                add MESSAGE to changes (not open an editor)

wipebinaries
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] 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
    -a ARCH, --arch=ARCH
                Delete all binary packages for a specific architecture

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
    -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/Build_Service_Tutorial
 * http://en.opensuse.org/Build_Service/CLI

You can modify osc commands, or roll you own, via the plugin API:
 * http://en.opensuse.org/Build_Service/osc_plugins

AUTHOR

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