OSC(1)
π OSC(1) π β the Open Build Service command-line bestie
Generated Python Manual β¨ (yes bestie, that's literally the section the manual says we're in, and we're staying in it)
β¨ NAME β¨
osc β Command-line client for Open Build Service
πΈ SYNOPSIS πΈ
osc [global opts] <command> [--help] [opts] [args]
That's the whole vibe. Global opts first, command next, then whatever that command wants. π«Ά
π OPTIONS π
These are the global ones β they go before the command, okay? Like a little outfit you put on before you leave the house. π
-v,--verboseβ crank the verbosity up π¬ (heads up: this conflicts with--quiet)-q,--quietβ be quiet, not verbose π€« (and yeah, it conflicts with--verbose)--debugβ print info useful for debugging π--debuggerβ jump into the debugger before executing anything π--post-mortemβ jump into the debugger when stuff goes wrong π--tracebackβ print the call trace when errors happen π-H,--http-debugβ debug HTTP traffic (it filters out some headers) π--http-full-debugβ debug HTTP traffic, and this one filters no headers at all π-A URL,--apiurl URLβ the Open Build Service API URL, or a configured alias π--config FILEβ point at an alternate config file ποΈ--setopt KEY=VALUEβ set a config option just for the current program run βοΈ--no-keyringβ disable usage of the desktop keyring system π--no-pagerβ disable the pager in stdout output π
π COMMANDS π
Okay so this is the big part. Every command, no skipping, we're doing this properly. πͺ
π osc fork
Fork a scmsync project or a package with sources managed in Gitea π΄
usage: osc [global opts] fork [-h] [-q] [--gitea-config GITEA_CONFIG]
[-G GITEA_LOGIN]
[--target-project TARGET_PROJECT]
[--target-package TARGET_PACKAGE]
[--gitea-fork-org GITEA_FORK_ORG]
[--new-repo-name NEW_REPO_NAME]
[--git-branch GIT_BRANCH]
[--no-devel-project]
project [package]
Make a local checkout to be reviewed and pushed to the target branch, and here's why bestie:
- The target branch may or may not exist.
- If the target branch exists, it may contain outdated or unrelated contents.
- The branch may be used in scmsync packages or linked to git projects as a submodule, changing the branch impacts them all.
arguments:
projectβ Name of the projectpackageβ Name of the package
options:
-q,--quietβ Mute unnecessary output π€--gitea-config GITEA_CONFIGβ Path to gitea config. Default:$GIT_OBS_CONFIGor~/.config/tea/config.yml.-G GITEA_LOGIN,--gitea-login GITEA_LOGINβ Name of the login entry in the config file. Default:$GIT_OBS_LOGINor the default entry from the config file. Alternatively, you can use gitea url as long as there's only a single matching entry in the config file.
You can omit this argument and set GIT_OBS_GITEA_URL, GIT_OBS_GITEA_USER, and GIT_OBS_GITEA_TOKEN environmental variables instead. Optional variables: GIT_OBS_GITEA_SSH_KEY
To override the existing values from the config file, you can specify the following environmental variables:
- GIT_OBS_LOGIN_<LOGIN-NAME>_USER
- GIT_OBS_LOGIN_<LOGIN-NAME>_TOKEN
- GIT_OBS_LOGIN_<LOGIN-NAME>_SSH_KEY
Setting new name or url is not possible. β οΈ And please note that the login name that is part of the environmental variable name is case sensitive (iykyk, casing will humble you).
--target-project TARGET_PROJECTβ Name of the target project (defaults tohome:$user:branches)--target-package TARGET_PACKAGEβ Name of the package (defaults to$package)--gitea-fork-org GITEA_FORK_ORGβ Name of the org owning the fork--new-repo-name NEW_REPO_NAMEβ Name of the newly forked repo--git-branch GIT_BRANCHβ Name of the new git branch--no-devel-projectβ Fork the specified package instead the package from the devel project (which is the place where the package is developed)
π¦ osc person
Manage persons π€
usage: osc [global opts] person [-h] {register,search} ...
π osc person register
Register a new person (user) π
usage: osc [global opts] register [-h] --login LOGIN --realname REALNAME
--email EMAIL [--password PASSWORD]
[--note NOTE] [--state STATE]
options:
--login LOGINβ Login.--realname REALNAMEβ Real name of the person.--email EMAILβ Email address.--password PASSWORDβ Password. An interactive prompt is shown if password is not specified. π--note NOTEβ Any notes about the person.--state STATEβ State of the account. Defaults to'unconfirmed'.
π osc person search
Search a person (user) π
usage: osc [global opts] search [-h] [--login LOGIN] [--login-contains SUBSTR]
[--realname-contains SUBSTR] [--email EMAIL]
[--email-contains SUBSTR]
options:
--login LOGINβ Search by a login.--login-contains SUBSTRβ Search by a substring in a login.--realname-contains SUBSTRβ Search by a substring in a realname.--email EMAILβ Search by an email address.--email-contains SUBSTRβ Search by a substring in an email address.
π§ osc repo
Manage repositories in project meta ποΈ
usage: osc [global opts] repo [-h] {add,list,ls,remove,rm} ...
π osc repo add
Add a repository to project meta β
usage: osc [global opts] add [-h] --repo NAME --arch [ARCH]
--path [PROJECT/REPO] [--disable-publish] [--yes]
project
arguments:
projectβ Name of the project
options:
--repo NAMEβ Name of the repository we're adding--arch [ARCH]β Architecture of the repository. Can be specified multiple times. ποΈ--path [PROJECT/REPO]β Path associated to the repository. Format isPROJECT/REPO. Can be specified multiple times.--disable-publishβ Disable publishing the added repository π«--yesβ Proceed without asking β
π osc repo list (ls)
List repositories in project meta π
usage: osc [global opts] list [-h] project
arguments:
projectβ Name of the project
ποΈ osc repo remove (rm)
Remove repositories from project meta β
usage: osc [global opts] remove [-h] --repo [NAME] [--yes] project
arguments:
projectβ Name of the project
options:
--repo [NAME]β Name of the repository we're removing. Can be specified multiple times.--yesβ Proceed without asking β
β osc rmkpac
Make a package on OBS side. π¦
usage: osc [global opts] rmkpac [-h] [--scmsync SCMSYNC] [--force]
project package
The primary goal is to provide a convenient way for creating new package with scmsync enabled β¨
arguments:
projectβ Name of the project or.for current directorypackageβ Name of the new package
options:
--scmsync SCMSYNCβ URL to put to the scmsync tag in_metafile--forceβ Overwrite existing package, if any π₯
π«Ά osc add
Mark files to be added upon the next commit π
usage: osc [global opts] add [-h] [-f]
In case a URL is given the file will get downloaded and registered to be downloaded by the server as well via the download_url source service. π
This is recommended for release tar balls to track their source and to help others to review your changes esp. on version upgrades. π
usage:
osc add URL [URL...]
osc add FILE [FILE...]
options:
-f,--forceβ add files even if they are excluded by theexclude_globconfig option
π osc addchannels
Add channels to project π‘
usage: osc [global opts] addchannels [-h] [-s] [-e]
The command adds all channels which are defined to be used for a given source package. The source link target is used to lookup the channels. The command can be used for a certain package or for all in the specified project.
In case no channel is defined the operation is just returning. π«₯
Examples:
osc addchannels [PROJECT [PACKAGE]]
options:
-s,--skip-disabledβ Skip disabled channels. Otherwise the source gets added, but not the repositories.-e,--enable-allβ Enable all added channels including the ones disabled by default.
π osc addcontainers
Add maintained containers for a give package π¦ (yes, "give" β that's what the manual says, we don't fix quotes, we respect them π )
usage: osc [global opts] addcontainers [-h] [--extend-package-names]
The command adds all containers which are marked as maintained and contain an rpm originating from the specified source package. π³
Examples:
osc addcontainers [PROJECT PACKAGE]
options:
--extend-package-namesβ Extend packages names with project name as suffix
πΈ osc addremove (ar)
Adds new files, removes disappeared files β¨
usage: osc [global opts] addremove [-h] [-r]
Adds all files new in the local copy, and removes all disappeared files.
ARG, if specified, is a package working copy.
options:
-r,--recursiveβ If CWD is a project dir then scan all package dirs as well π
π₯ osc aggregatepac
"Aggregate" a package to another package π§²
usage: osc [global opts] aggregatepac [-h] [--nosources]
[-m SRC=TARGET[,SRC=TARGET]] [-d]
Aggregation of a package means that the build results (binaries) of a package are basically copied into another project. This can be used to make packages available from building that are needed in a project but available only in a different project. Note that this is done at the expense of disk space. πΎ See http://en.opensuse.org/openSUSE:Build_Service_Tips_and_Tricks#link_and_aggregate for more information.
The DESTPAC name is optional; the source packages' name will be used if DESTPAC is omitted.
usage:
osc aggregatepac SOURCEPRJ SOURCEPAC[:FLAVOR] DESTPRJ [DESTPAC]
options:
--nosourcesβ ignore source packages when copying build results to destination project π-m SRC=TARGET[,SRC=TARGET],--map-repo SRC=TARGET[,SRC=TARGET]β lets you hand over repo mapping(s) in that exactSRC=TARGET[,SRC=TARGET]shape π«-d,--disable-publishβ turns OFF publishing of the aggregated package, so nothing goes out the door πͺ
π¦ osc api
Issues an arbitrary request to the API. Yes bestie, any request. It's giving "let me just poke the server directly" π
usage:
osc [global opts] api [-h] [-X HTTP_METHOD] [-e] [-d STRING] [-T FILE]
[-a NAME STRING NAME STRING]
url
Super useful for testing. Like, testing testing. π§ͺ
The URL can be given either partially (just the path component) or fully with URL scheme and hostname ('http://...').
Heads up: the global-Aand-Hoptions matter here (peeposc help).
Examples, because examples are everything:
osc api /source/home:user
osc api -X PUT -T /etc/fstab source/home:user/test5/myfstab
osc api -e /configuration
arguments:
- url β either a URL like
'/path'or a full URL like'scheme://hostname/path'πΈ
options:
-X HTTP_METHOD,-m HTTP_METHOD,--method HTTP_METHODβ specify the HTTP method to use (HEAD|GET|PUT|DELETE|POST) π οΈ-e,--editβ GET it, edit it, then PUT it back at that location. Chef's kiss workflow β¨-d STRING,--data STRINGβ specify string data for, say, a POST π¨-T FILE,-f FILE,--file FILEβ specify a filename to upload; it uses PUT mode by default β¬οΈ-a NAME STRING NAME STRING,--add-header NAME STRING NAME STRINGβ add the specified header to the request π
π osc branch (also known as getpac, bco, branchco)
Branches a package π
usage:
osc [global opts] branch [-h] [--nodevelproject] [-c] [-f]
[--add-repositories]
[--extend-package-names]
[--noaccess] [-m TEXT] [-M] [-N] [-r rev]
[--linkrev linkrev]
[--add-repositories-block
add_repositories_block]
[--add-repositories-rebuild
add_repositories_rebuild]
[--disable-build]
[See http://en.opensuse.org/openSUSE:Build_Service_Collaboration for information on this topic.] π
Creates a source link from a package of an existing project to a new subproject of the requester's home project (home:branches:).
The branched package will live in
home:USERNAME:branches:PROJECT/PACKAGE
if nothing else is specified. π
With getpac or bco, the branched package will come from one of
%(getpac_default_project)s
(list of projects from oscrc:getpac_default_project) if nothing else is specified on the command line.
In case of branch errors, where the source currently has merge conflicts, use the --linkrev=base option. π
usage:
osc branch
osc branch SOURCEPROJECT SOURCEPACKAGE
osc branch SOURCEPROJECT SOURCEPACKAGE TARGETPROJECT|.
osc branch SOURCEPROJECT SOURCEPACKAGE TARGETPROJECT|. TARGETPACKAGE
osc getpac SOURCEPACKAGE
osc bco ...
options:
--nodevelprojectβ do not follow a defined devel project (that's the primary project where a package is developed) π ββοΈ-c,--checkoutβ check out the branched package afterwards using"co -e -S"('osc bco'is literally a shorthand for this option) ποΈ-f,--forceβ force the branch, overwrite the target π₯--add-repositoriesβ add repositories to the target project (this happens by default when the project is new) ποΈ--extend-package-namesβ extend package names with the project name as a suffix π·οΈ--noaccessβ create a hidden project π-m TEXT,--message TEXTβ specify message TEXT βοΈ-M,--maintenanceβ create the project and package in maintenance mode π§-N,--new-packageβ create a branch pointing to a not-yet-existing package π»-r rev,--revision revβ branch against a specific revision π--linkrev linkrevβ specify the used revision in the link target π―--add-repositories-block add_repositories_blockβ specify the used block strategy for new repositories π§±--add-repositories-rebuild add_repositories_rebuildβ specify the used rebuild strategy for new repositories π--disable-buildβ disable building of the branched package π«
π osc browse
Opens browser π
usage:
osc [global opts] browse [-h]
usage:
osc browse [PROJECT [PACKAGE]]
osc browse [REQUEST_ID]
π osc build (also wipe, shell, chroot)
Build a package on your local machine π₯οΈπ₯
usage:
osc [global opts] build [-h] [--clean] [-o] [-l] [--no-changelog]
[--rsync-src RSYNCSRCPATH]
[--rsync-dest RSYNCDESTPATH]
[--overlay OVERLAY] [--noinit] [--checks]
[--nochecks] [--no-verify]
[--nodebugpackages]
[--skip-local-service-run] [-p DIR] [-k DIR]
[-M FLAVOR] [-x PAC] [-X FILE] [--root ROOT]
[-j N] [-t N] [--icecream N] [--ccache]
[--pkg-ccache /path/to/_ccache.tar]
[--sccache]
[--sccache-uri redis://127.0.0.1:6389]
[--with X] [--without X] [--define 'X Y']
[--build-opt OPT] [--buildtool-opt OPT]
[--userootforbuild]
[--build-uid uid:gid|"caller"]
[--local-package] [--stage STAGE]
[--linksources] [--vm-memory MEMORY]
[--vm-disk-size DISKSIZE] [--vm-type TYPE]
[--vm-telnet TELNET] [--target TARGET]
[--alternative-project PROJECT] [-d]
[--disable-debuginfo] [-b] [--release N]
[--disable-cpio-bulk-download]
[--download-api-only] [--oldpackages DIR]
[--verbose-mode MODE]
[--shell-after-fail]
[--shell-cmd COMMAND] [-f] [--host HOST]
[--trust-all-projects]
[--nopreinstallimage]
[--just-print-buildroot] [--buildinfo]
[--buildinfo-debug] [--no-timestamps]
The command works from a package checkout (local changes are fine, no stress π).
You can use osc repos to look up REPOSITORY and ARCH arguments. If they are not set, osc chooses from configured repos in this priority:
build_repositorymentioned in config file"standard""openSUSE_Factory""openSUSE_Tumbleweed"- last repo from the sorted list
BUILD_DESCR is either a RPM spec file, or a Debian dsc file. π
The command honors packagecachedir, build-root and build-uid settings in oscrc, if present. You may want to set su-wrapper = 'sudo' in oscrc, and configure sudo with option NOPASSWD for /usr/bin/build. π
If neither --clean nor --noinit is given, build will reuse an existing build-root again, removing unneeded packages and adding missing ones. This is usually the fastest option. β‘
If the package doesn't exist on the server please use the --local-package option. If the project of the package doesn't exist on the server use the --alternative-project <alternative-project> option. Example:
osc build [OPTS] --alternative-project openSUSE:10.3 standard i586 BUILD_DESCR
usage:
osc build [OPTS] # will try to guess a build environment
osc build [OPTS] REPOSITORY ARCH BUILD_DESCR
osc build [OPTS] REPOSITORY ARCH
osc build [OPTS] REPOSITORY (ARCH = hostarch, BUILD_DESCR is detected automatically)
osc build [OPTS] ARCH (REPOSITORY = build_repository (config option), BUILD_DESCR is detected automatically)
osc build [OPTS] BUILD_DESCR (REPOSITORY = build_repository (config option), ARCH = hostarch)
osc build [OPTS] (REPOSITORY = build_repository (config option), ARCH = hostarch, BUILD_DESCR is detected automatically)
For debugging after a build you can jump into the build environment:
osc shell [OPTS] REPOSITORY ARCH
Run a single command inside of the build environment:
osc shell --shell-cmd=COMMAND [OPTS] REPOSITORY ARCH
Useful shell OPTS π
--noinit # for faster run
--shell-cmd=COMMAND
--shell-after-fail
--extra-pkgs=PACKAGE # install additional packages
To clean up the build environment run
osc wipe [OPTS]
osc wipe [OPTS] REPOSITORY ARCH
If you've set the used VM type in oscrc, it can be also overridden here
--vm-type=chroot # for faster, but uncleaner and unsecure build
--vm-type=kvm # for clean and secure build
--vm-type=qemu # for slow cross architecture build using system emulator
# Note: # Configuration can be overridden by envvars, e.g. #
OSC_SU_WRAPPER overrides the setting of su-wrapper. # OSC_BUILD_ROOT
overrides the setting of build-root. # OSC_PACKAGE_CACHE_DIR overrides
the setting of packagecachedir.
options:
--cleanβ delete the old build root before initializing it π§Ό-o,--offlineβ start with cached prjconf and packages without contacting the api server π΄-l,--preloadβ preload all files into the cache for offline operation π¦--no-changelogβ don't update the package changelog from a changes file π--rsync-src RSYNCSRCPATHβ copy folder to buildroot after installing all RPMs. Use together with--rsync-dest. This is the path on the HOST filesystem, e.g./tmp/linux-kernel-tree. It definesRSYNCDONE 1. ποΈ--rsync-dest RSYNCDESTPATHβ copy folder to buildroot after installing all RPMs. Use together with--rsync-src. This is the path on the TARGET filesystem, e.g./usr/src/packages/BUILD/linux-2.6. π―--overlay OVERLAYβ copy overlay filesystem to buildroot after installing all RPMs π§--noinit,--no-initβ skip initialization of build root and start with build immediately β©--checksβ run checks even if disabled in the build config β--nochecks,--no-checksβ do not run build checks on the resulting packages β--no-verify,--noverifyβ skips the whole signature-checking moment (the pgp keys thing) for the packages you're building with. Global config key inoscrc:no_verifyβ¨--nodebugpackages,--no-debug-packagesβ don't install those extra debug packages for CLI builds (the ones specified byobs:cli_debug_packagesin the project metadata). Lowkey trims the install list π--skip-local-service-run,--noservice,--no-serviceβ skips running the local source services that are specified in the_servicefile. Not me dodging the service run π-p DIR,--prefer-pkgs DIRβ when installing the build-root, prefer packages from this directory. Bestie's faves first. π-k DIR,--keep-pkgs DIRβ saves the built packages into this directory, so they don't just vanish into the void π-M FLAVOR,--multibuild-package FLAVORβ only work with the specified flavor of a multibuild package. Pick your fighter β-x PAC,--extra-pkgs PACβ add this package when installing the build-root, like a little bonus π¦-X FILE,--extra-pkgs-from FILEβ add every package listed in this file when installing the build-root. A whole roster of extras π--root ROOTβ build in the specified directory. Seeoscrc(5)for the supported substitutions. Yes, there are substitutions, go read them.-j N,--jobs Nβ compile withNjobs π₯-t N,--threads Nβ compile withNthreads π§΅--icecream Nβ useNparallel build jobs with icecream π¦ (the distributed build kind, not the dessert kind, sadly)--ccacheβ useccacheto speed up rebuilds. Rebuilds go brrr β‘--pkg-ccache /path/to/_ccache.tarβ path to an existing uncompressed archive ccache. Using this option implies--ccacheβ¨--sccacheβ usesccacheto speed up rebuilds. Conflicts with--ccacheβ pick one, bestie, you can't have both π--sccache-uri redis://127.0.0.1:6389β optional remote URI for sccache storage. Implies--sccache. Look at that example URI living its best life π--with Xβ enable featureXfor the build β--without Xβ disable featureXfor the build β--define 'X Y'β define macroXwith valueY. Note the quotes, they're doing the heavy lifting π«Ά--build-opt OPTβ pass optionOPTto the build command--buildtool-opt OPTβ pass optionOPTto the build tool command (rpmbuild). For example:- don't clean the build environment after a successful build:
--buildtool-opt=--noclean
--userootforbuild,--login-as-rootβ run build or shell as root. The default is to build as an unprivileged user. Heads up: a line# norootforbuildin the spec file will invalidate this option. The spec file said no and it meant it π--build-uid uid:gid|"caller"β specify the numericuid:gidpair to assign to the unprivilegedabuilduser, or use"caller"to use the current user'suid:gid. Choose your identity era π--local-packageβ build a package which does not exist on the server. Main character energy, building something the server has never even heard of β¨--stage STAGEβ runs a specific stage; the default is"a"for all. Append a trailing=to only run the specified stage. Append a trailing+to run the specified stage and all stages coming after it. With no suffix at all, stages up to and including the specified stage are run. Three behaviors, one flag, iconic tbh.--linksourcesβ use hard links instead of a deep copied source π--vm-memory MEMORYβ amount of memory for the VM, defined in MB π§--vm-disk-size DISKSIZEβ size for the newly created disk image, in MB πΎ--vm-type TYPEβ use VM typeTYPE(e.g.kvm) π₯οΈ--vm-telnet TELNETβ launch a telnet server inside of the VM build π‘--target TARGETβ define the target platform π―--alternative-project PROJECTβ specify the build target project-d,--debuginfoβ also build debuginfo sub-packages π--disable-debuginfoβ disable the build of debuginfo packages π«π-b,--baselibsβ create-32bit/-64bit/-x86rpms for other architectures. Spreading the love across architectures fr fr π--release Nβ set the release number of the package toN--disable-cpio-bulk-downloadβ disable downloading packages as a cpio archive from the api π¦--download-api-onlyβ only fetch packages from the api π«‘--oldpackages DIRβ take the previous build fromDIR. Special values:_self,_linkπ--verbose-mode MODEβ set the verbose mode of the"build"program; arguments can be"all"or"vm"--shell-after-failβ run a shell if the build tool fails. Post-failure shell time, we investigate together π«--shell-cmd COMMANDβ run the specified command instead ofbash-f,--forceβ do not ask for confirmation to wipe. It just wipes. No take-backs. π--host HOSTβ perform the build on a remote server βuser@server:~/remote/directoryπ--trust-all-projectsβ trust packages from all projects. All of them. Every single one. Trust fall, but make it packages π«Ά--nopreinstallimage,--no-preinstallimageβ do not use preinstall images for creating the build root π ββοΈ--just-print-buildrootβ print the build root path and exit. In and out, no notes πͺ--buildinfoβ printbuildinfoand exit π--buildinfo-debugβ printbuildinfoin debug mode and exit π--no-timestamps,-s,--strip-timeβ hide the time prefix in the output. Clean logs, clean mind β¨
π οΈ osc buildconfig π οΈ
Shows the build config π
usage: osc [global opts] buildconfig [-h]
Shows the build configuration which is used in building a package. This command is mostly used internally by the 'build' command.
The returned data is the project-wide build configuration in a format which is directly readable by the build script. It contains RPM macros and BuildRequires expansions, for example. iykyk
The argument REPOSITORY an be taken from the first column of the
usage:
osc buildconfig REPOSITORY (in pkg or prj dir)
osc buildconfig PROJECT REPOSITORY
(yes bestie, that sentence in the original really does just stop mid-thought. we keep every detail, including the cliffhanger π)
π osc buildhistory (buildhist) π
Shows the build history of a package π°οΈ
usage: osc [global opts] buildhistory [-h] [--csv] [-l limit] [-M
FLAVOR]
The arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output.
usage:
osc buildhist REPOSITORY ARCHITECTURE
osc buildhist PROJECT PACKAGE[:FLAVOR] REPOSITORY ARCHITECTURE
options:
--csvβ generate output in CSV (separated by|) π-l limit,--limit limitβ for setting the number of results π’-M FLAVOR,--multibuild-package FLAVORβ only work with the specified flavor of a multibuild package β
π osc buildinfo π
Shows the build info π§
usage: osc [global opts] buildinfo [-h] [--alternative-project PROJECT] [-d]
[-M FLAVOR] [-x PAC] [-p DIR]
[--nodebugpackages]
Shows the build "info" which is used in building a package. This command is mostly used internally by the 'build' subcommand. It needs to be called from within a package directory. π
The BUILD_DESCR argument is optional. BUILD_DESCR is a local RPM specfile or Debian "dsc" file. If specified, it is sent to the server, and the buildinfo will be based on it. If the argument is not supplied, the buildinfo is derived from the specfile which is currently on the source repository server. π
The returned data is XML and contains a list of the packages used in building, their source, and the expanded BuildRequires. β¨
The arguments REPOSITORY and ARCH are optional. They can be taken from the first two columns of the 'osc repos' output. If not specified, REPOSITORY defaults to the 'build_repository' config entry in your 'oscrc' and ARCH defaults to your host architecture. π»
usage:
in a package working copy:
osc buildinfo [OPTS] REPOSITORY ARCH BUILD_DESCR
osc buildinfo [OPTS] REPOSITORY (ARCH = hostarch, BUILD_DESCR is detected automatically)
osc buildinfo [OPTS] ARCH (REPOSITORY = build_repository (config option), BUILD_DESCR is detected automatically)
osc buildinfo [OPTS] BUILD_DESCR (REPOSITORY = build_repository (config option), ARCH = hostarch)
osc buildinfo [OPTS] (REPOSITORY = build_repository (config option), ARCH = hostarch, BUILD_DESCR is detected automatically)
Note: if BUILD_DESCR does not exist locally the remote BUILD_DESCR is used
osc buildinfo [OPTS] PROJECT PACKAGE[:FLAVOR] REPOSITORY ARCH [BUILD_DESCR]
options:
--alternative-project PROJECTβ specify the build target project π―-d,--debugβ verbose output of build dependencies π£οΈ-M FLAVOR,--multibuild-package FLAVORβ only work with the specified flavor of a multibuild package β-x PAC,--extra-pkgs PACβ add this package when computing the buildinfo β-p DIR,--prefer-pkgs DIRβ prefer packages from this directory when installing the build-root π--nodebugpackages,--no-debug-packagesβ skip installation of additional debug packages for CLI builds (specified inobs:cli_debug_packagesin project metadata) ππ«
πΊ osc buildlog (remotebuildlogtail, rbuildlogtail, rblt, remotebuildlog, rbuildlog, rbl, buildlogtail, blt, bl) πΊ
Shows the build log of a package π
usage: osc [global opts] buildlog [-h] [-l] [--lastsucceeded] [-M FLAVOR]
[-o OFFSET] [-s]
Shows the log file of the build of a package. Can be used to follow the log while it is being written. π Live-tweeting your build, essentially.
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.
buildlog [PROJECT PACKAGE REPOSITORY [ARCH] | REPOSITORY ARCH | BUILDLOGURL]
options:
-l,--lastβ show the last finished log file π--lastsucceeded,--last-succeededβ show the last succeeded log file β-M FLAVOR,--multibuild-package FLAVORβ only work with the specified flavor of a multibuild package β-o OFFSET,--offset OFFSETβ get log start or end from the offset π-s,--strip-timeβ strip the leading build time from the log βοΈ
π± osc cat (less, blame) π±
Output the content of a file to standard output π¨οΈ
okay so picking up right where we left off, bestie β here's the full tea on osc cat π
usage: osc [global opts] cat [-h] [-r rev] [-e] [-u] [-D] [-M]
Examples, eat them up:
osc cat file
osc cat project package file
osc cat project/package/file
osc cat http://api.opensuse.org/build/.../_log
osc cat http://api.opensuse.org/source/../_link
osc less file
osc less project package file
osc blame file
osc blame project package file
Options β¨
-r rev,--revision revβ print out the specified revision, periodt-e,--expandβ (this is the default btw) force expansion of linked packages-u,--unexpandβ always work with unexpanded packages-D,--deletedβ access file in a deleted package-M,--metaβ list meta data files
πΈ osc changedevelrequest (changedevelreq, cr) πΈ
Create request to change the devel package definition β lowkey iconic behavior
usage: osc [global opts] changedevelrequest [-h] [-m TEXT]
[See http://en.opensuse.org/openSUSE:Build_Service_Collaboration for information on this topic.]
Also go look at the request command if you wanna see and modify requests that already exist, bestie.
usage:
osc changedevelrequest PROJECT PACKAGE DEVEL_PROJECT [DEVEL_PACKAGE]
options:
-m TEXT,--message TEXTβ specify message TEXT
π¦ osc checkconstraints π¦
Check the constraints and view compliant workers. Vibe check for workers basically.
usage: osc [global opts] checkconstraints [-h] [--ignore-file] [-M FLAVOR]
Checks the constraints for compliant workers.
usage:
remote request:
osc checkconstraints [OPTS] PROJECT PACKAGE REPOSITORY ARCH [CONSTRAINTSFILE]
in a package working copy:
osc checkconstraints [OPTS] REPOSITORY ARCH [CONSTRAINTSFILE]
osc checkconstraints [OPTS] CONSTRAINTSFILE
osc checkconstraints [OPTS]
options:
--ignore-fileβ ignore the_constraintsfile and only check project constraints-M FLAVOR,--multibuild-package FLAVORβ Only work with the specified flavor of a multibuild package.
π osc checkout (co) π
Check out content from the repository β this is the main character command ngl
usage: osc [global opts] checkout [-h] [-r rev] [--linkrev REV] [-e] [-D] [-u]
[-M] [-c] [-o outdir] [-s] [-S]
[-l limit_size] [--native-obs-package]
Check out content from the repository server, creating a local working copy. It's giving "your whole setup, but local".
When checking out a single package, the option --revision can be used to specify a revision of the package to be checked out.
When a package is a source link, then it will be checked out in expanded form. If --unexpand-link option is used, the checkout will instead produce the raw _link file plus patches.
usage:
osc co PROJECT [PACKAGE] [FILE]
osc co PROJECT # entire project
osc co PROJECT PACKAGE # a package
osc co PROJECT PACKAGE FILE # single file -> to current dir
while inside a project directory:
osc co PACKAGE # check out PACKAGE from project
with the result of rpm -q --qf '%%{DISTURL}\n' PACKAGE
osc co obs://API/PROJECT/PLATFORM/REVISION-PACKAGE
options:
-r rev,--revision revβ checkout the specified revision. NOTE: if you checkout the complete project this option is ignored! π«--linkrev REVβ Revision of the link target that is used during link expansion. Use--linkrev=baseto checkout the exact revision of a package with_link.-e,--expand-linkβ if a package is a link, check out the expanded sources (no-op, since this became the default)-D,--deletedβ checkout an already deleted package. No meta information-u,--unexpand-linkβ if a package is a link, check out the_linkfile instead of the expanded sources-M,--metaβ checkout out meta data instead of sources-c,--current-dirβ place PACKAGE folder in the current directory instead of a PROJECT/PACKAGE directory-o outdir,--output-dir outdirβ place package in the specified directory instead of a PROJECT/PACKAGE directory-s,--source-service-filesβ Run source services.-S,--server-side-source-service-filesβ Use server side generated sources instead of local generation.-l limit_size,--limit-size limit_sizeβ Skip all files with a given size--native-obs-packageβ Do not clone native scm repositories: Different representation and you will not be able to submit changes! π
π osc clean π
Removes all untracked files from the package working copy. Spring cleaning but make it git.
usage: osc [global opts] clean [-h] [-n]
Examples:
osc clean <path>
Note: if<path>is omitted it defaults to'.'(<path>has to be a package working copy)
Warning: This command removes all files with status '?'. Like, actually deletes them. Be so fr before you run this π
options:
-n,--dry-runβ print the results without actually removing a file
π§ osc cleanassets (ca) π§
Clean all previous downloaded assets. Decluttering era β¨
usage: osc [global opts] cleanassets [-h]
This is useful to prepare a new git commit.
π osc comment π
List / create / delete comments β yes, the build service has a comment section and it's lowkey fun
usage: osc [global opts] comment [-h] [-c COMMENT] [-p PARENT]
On create:
If -p is given a reply to the ID is created. Otherwise a toplevel comment is created. If -c is not given the default editor will be opened and you can type your comment.
usage:
osc comment list package PROJECT PACKAGE
osc comment list project PROJECT
osc comment list request REQUEST_ID
osc comment create [-p PARENT_ID] [-c COMMENT] package PROJECT PACKAGE
osc comment create [-p PARENT_ID] [-c COMMENT] project PROJECT
osc comment create [-p PARENT_ID] [-c COMMENT] request REQUEST_ID
osc comment delete ID
options:
-c COMMENT,--comment COMMENTβ comment text-p PARENT,--parent PARENTβ reply to comment with parent id
β osc commit (checkin, ci) β
Upload content to the repository server. This is the moment of truth, bestie.
usage: osc [global opts] commit [-h] [-m TEXT] [-n] [-F FILE] [-f]
[--skip-local-service-run]
Upload content which is changed in your working copy, to the repository server.
examples:
osc ci # current dir
osc ci <dir>
osc ci file1 file2 ...
options:
-m TEXT,--message TEXTβ specify log message TEXT-n,--no-messageβ do not specify a log message-F FILE,--file FILEβ read log message from FILE,'-'denotes standard input.-f,--forceβ Allow empty commit with no changes. When committing a project, allow removing packages even if other packages depend on them.--skip-local-service-run,--noservice,--no-serviceβ Skip run of local source services as specified in_servicefile.
π osc config π
Get/set a config option. Tiny command, huge power.
usage: osc [global opts] config [-h] [-d] [-s] [-p] [--change-password]
[--select-password-store] [--no-echo] [--dump]
[--dump-full]
Examples:
osc config section option (get current value)
osc config section option value (set to value)
osc config section option --delete (delete option/reset to the default)
osc config section --change-password (changes the password in section "section")
(section is either an apiurl or an alias or 'general')
osc config --dump (dump the complete configuration)
options:
-d,--deleteβ delete option from config or reset option to the default)-s,--stdinβ indicates that the config value should be read from stdin-p,--promptβ prompt for a value--change-passwordβ Change password--select-password-storeβ Change the password store--no-echoβ prompt for a value but do not echo entered characters--dumpβ dump the complete configuration (withoutpassandpassxoptions)--dump-fullβ dump the complete configuration (includingpassandpassxoptions)
π osc copypac π
Copy a package. It's giving "ctrl+c ctrl+v but for the build service".
usage: osc [global opts] copypac [-h] [-c] [-k] [-K] [-d] [-r rev] [-t URL]
[-m TEXT] [-e]
A way to copy package to somewhere else.
It can be done across buildservice instances, if the -t option is used. In that case, a client-side copy and link expansion are implied.
Using --client-side-copy always involves downloading all files, and uploading them to the target.
The DESTPAC name is optional; the source packages' name will be used if DESTPAC is omitted.
If SOURCEPRJ or DESTPRJ is '.' it will be expanded to the PRJ of the current directory.
usage:
osc copypac SOURCEPRJ SOURCEPAC DESTPRJ [DESTPAC]
options:
-c,--client-side-copyβ do a (slower) client-side copy-k,--keep-maintainersβ keep original maintainers. Default is remove all and replace with the one calling the script.-K,--keep-linkβ If the target package is a link, the link is kept, but may be updated. If the source package is a link, its expanded version is considered.-d,--keep-develprojectβ keep develproject tag in the package metadata-r rev,--revision revβ copy the specified revision.-t URL,--to-apiurl URLβ URL of destination api server. Default is the source api server.-m TEXT,--message TEXTβ specify message TEXT-e,--expandβ if the source package is a link then copy the expanded version of the link
π osc create-pbuild-config (cpc) π
This command is creating the necessary files to build using pbuild tool.
usage: osc [global opts] create-pbuild-config [-h] repository arch
It basically creates _config and _pbuild file in the project directory. Changes from there can not get submitted back, except the project is managed in git. π
Examples:
osc cpc REPOSITORY ARCH
and the two arguments it's asking for are:
repositoryarch
πΈ osc createincident πΈ
Okay so this one creates a maintenance incident β¨
usage: osc [global opts] createincident [-h] [-a ATTRIBUTE] [--noaccess]
[-m TEXT]
[See https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.maintenance_setup.html for information on this topic.]
So basically this command asks to open an empty maintenance incident, and ngl usually only a responsible maintenance team can even do that π Please go look at the mbranch command for how to fill such a project content, and the patchinfo command for how to add the required maintenance update information. iykyk.
usage:
osc createincident [ MAINTENANCEPROJECT ]
options:
-a ATTRIBUTE,--attribute ATTRIBUTEβ use this attribute to find the default maintenance project (the default isOBS:MaintenanceProject)--noaccessβ create a hidden project π-m TEXT,--message TEXTβ specify messageTEXT
π
osc createrequest (creq) π
Create a request with multiple actions β multi-tasking queen behavior fr fr.
usage: osc [global opts] createrequest [-h] [-a ACTION [[ARGS] ...]] [-m TEXT]
[-r REV] [-s REQUEST_ID]
[--nodevelproject] [--cleanup]
[--no-cleanup] [--no-update] [--yes]
usage:
osc creq [OPTIONS] [
-a submit SOURCEPRJ SOURCEPKG DESTPRJ [DESTPKG]
-a delete PROJECT [PACKAGE]
-a change_devel PROJECT PACKAGE DEVEL_PROJECT [DEVEL_PACKAGE]
-a add_me ROLE PROJECT [PACKAGE]
-a add_group GROUP ROLE PROJECT [PACKAGE]
-a add_role USER ROLE PROJECT [PACKAGE]
-a set_bugowner USER PROJECT [PACKAGE]
-a release PROJECT PACKAGE TARGET_PROJECT [[SOURCE_REPOSITORY] TARGET_REPOSITORY]
]
The option -m works for all types of request actions, but 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 the 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. iconic, honestly.
options:
-a ACTION [[ARGS] ...],--action ACTION [[ARGS] ...]β specify action type of a request, can be :submit/delete/change_devel/add_role/set_bugowner-m TEXT,--message TEXTβ specify messageTEXT-r REV,--revision REVβ for "create", specify a certain source revision ID (the md5 sum)-s REQUEST_ID,--supersede REQUEST_IDβ Superseding another request by this one--nodevelprojectβ do not follow a defined devel project (primary project where a package is developed)--cleanupβ remove package if submission gets accepted (default forhome:<id>:branchprojects)--no-cleanupβ never remove source package on accept, but update its content--no-updateβ never touch source package on accept (will break source links) π--yesβ proceed without asking.
π¦ osc delete (remove, del, rm) π¦
Mark files or package directories to be deleted upon the next 'checkin' β¨
usage: osc [global opts] delete [-h] [-f]
usage:
cd .../PROJECT/PACKAGE
osc delete FILE [...]
cd .../PROJECT
osc delete PACKAGE [...]
Lowkey important: this command works on check out copies. Use rdelete for working on the server side only. That's what you need 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 the --force switch. Sometimes this also works without --force. Sometimes. no promises.
options:
-f,--forceβ forces removal of entire package and its files
π osc deleterequest (deletereq, droprequest, dropreq, dr) π
Request to delete (or 'drop') a package or project. bye bestie π
usage: osc [global opts] deleterequest [-h] [-m TEXT] [-r REPOSITORY] [--all]
[--accept-in-hours HOURS]
usage:
osc deletereq [-m TEXT] # works in checked out project/package
osc deletereq [-m TEXT] PROJECT PACKAGE
osc deletereq [-m TEXT] PROJECT [--all|--repository REPOSITORY]
options:
-m TEXT,--message TEXTβ specify messageTEXT-r REPOSITORY,--repository REPOSITORYβ specify repository--allβ deletes entire project with packages inside--accept-in-hours HOURSβ specify time when request shall get accepted automatically. Only works with write permissions in target. π
π osc dependson π
Dependson shows the build dependencies inside of a project, valid for a given repository and architecture.
usage: osc [global opts] dependson [-h] [-M FLAVOR]
The command can be used to find build dependencies (wrt. a given repository and arch) that reside in the same project. To see all build dependencies use the buildinfo command instead.
This is no guarantee, since the new build might have changed dependencies. β οΈ
NOTE: to see all binary packages, which can trigger a build you need to refer the buildinfo, since this command shows only the dependencies inside of a project.
The arguments REPOSITORY and ARCH can be taken from the first two columns of the osc repos output. cute, right?
usage in package or project directory:
osc dependson REPOSITORY ARCH [-M FLAVOR]
usage:
osc dependson PROJECT [PACKAGE[:FLAVOR]] REPOSITORY ARCH
options:
-M FLAVOR,--multibuild-package FLAVORβ Only work with the specified flavor of a multibuild package.
β¨ osc detachbranch β¨
Replace a link with its expanded sources. glow up moment π
usage: osc [global opts] detachbranch [-h] [-m TEXT]
If a package is a link it is replaced with its expanded sources. The link does not exist anymore. it's gone, it's over, periodt.
usage:
osc detachbranch # from a package working copy
osc detachbranch PROJECT PACKAGE
options:
-m TEXT,--message TEXTβ specify messageTEXT
π osc develproject (dp, bsdevelproject) π
Print the devel project / package of a package.
usage: osc [global opts] develproject [-h]
Examples:
osc develproject [PROJECT PACKAGE]
π₯ osc diff (di, ldiff, linkdiff) π₯
Generates a diff. the moment of truth bestie π
usage: osc [global opts] diff [-h] [-c rev] [-r rev1[:rev2]] [-M] [-p] [-l]
[--missingok] [-u]
Generates a diff, comparing local changes against the repository server.
usage:
ARG, if specified, is a filename to include in the diff.
Default: all files.
osc diff --link
osc linkdiff
Compare current checkout directory against the link base.
osc diff --link PROJ PACK
osc linkdiff PROJ PACK
Compare a package against the link base (ignoring working copy changes).
options:
-c rev,--change revβ the change made by revisionrev(like-r rev-1:rev). Ifrevis negative this is like-r rev:rev-1.-r rev1[:rev2],--revision rev1[:rev2]β Ifrev1is specified it will compare your working copy against the revision (rev1) on the server. Ifrev1andrev2are specified it will comparerev1againstrev2(NOTE: changes in your working copy are ignored in this case) π-M,--metaβ operate on meta files-p,--plainβ output the diff in plain (not unified) diff format-l,--linkβ (osc linkdiff): compare against the base revision of the link--missingokβ do not fail if the source or target project/package does not exist on the server-u,--unexpandβ Local changes only, ignore changes in linked package sources
π osc distributions (dists) π
Shows all available distributions.
usage: osc [global opts] distributions [-h]
This command shows the available distributions. For active distributions it shows the name, project and name of the repository and a suggested default repository name. so much info, so organized β¨
usage:
osc distributions
π§ osc downloadassets (da) π§
usage: osc [global opts] downloadassets [-h]
that's literally it, bestie. short and sweet π
π osc enablechannels (enablechannel) π
Enables channels.
usage: osc [global opts] enablechannels [-h]
Enables existing channel packages in a project. Enabling means adding the needed repositories for building. The command can be used to enable a specific one or all channels of a project. all of them?? slay.
Examples:
osc enablechannels [PROJECT [PACKAGE]]
π osc getbinaries π
Download binaries to a local directory.
usage: osc [global opts] getbinaries [-h] [-d DIR] [-M FLAVOR] [--sources]
[--debuginfo] [--ccache]
This command downloads packages directly from the api server. Thus, it directly accesses the packages that are used for building others even when they are not "published" yet. sneaky but legal π
usage:
osc getbinaries REPOSITORY # works in checked out project/package (check out all archs in subdirs)
osc getbinaries REPOSITORY ARCHITECTURE # works in checked out project/package
osc getbinaries PROJECT REPOSITORY ARCHITECTURE
osc getbinaries PROJECT PACKAGE REPOSITORY ARCHITECTURE
osc getbinaries PROJECT PACKAGE REPOSITORY ARCHITECTURE FILE
options:
-d DIR,--destdir DIRβ destination directory-M FLAVOR,--multibuild-package FLAVORβ Get binaries from the specified flavor of a multibuild package. It is meant for use from a package checkout when it is not possible to specifypackage:flavor.--sourcesβ also fetch source packages--debuginfoβ also fetch debug packages--ccacheβ allow fetching ccache archive
π«Ά osc help (?) π«Ά
Give detailed help on a specific sub-command. when you're lost, this is your bestie π₯Ί
usage: osc [global opts] help [-h]
usage:
%(prog)s [SUBCOMMAND]
β osc importsrcpkg β
Import a new package from a src.rpm
osc importsrcpkg π¦
okay bestie, this one imports a source RPM and sets you up a whole package dir. iconic behaviour tbh.
usage: osc [global opts] importsrcpkg [-h] [-p project] [-n name] [-t title]
[-d description]
[--delete-old-files]
[-c]
srpm
A new package dir will be created inside the project dir β and lowkey here's the tea: if no project is specified and your current working dir is a project dir, the package gets created in that project. If the package doesn't exist on the server yet, it'll be created too; otherwise the meta data of the existing package gets updated (<title /> and <description />). The src.rpm gets extracted into the package dir. And listen β the files won't be committed unless you explicitly pass the --commit switch. no cap.
SRPM is the path of the src.rpm in the local filesystem, or an URL.
arguments:
srpmβ the source rpm, either a local path or a URL β¨
options:
-p project,--project projectβ specify the path to a project-n name,--name nameβ specify a package name-t title,--title titleβ set a title-d description,--description descriptionβ set the description of the package--delete-old-filesβ delete existing files from the server-c,--commitβ commit the new files
osc info π
Print information about a working copy. that's it, that's the vibe.
usage: osc [global opts] info [-h]
Print information about each ARG (default: '.'). ARG is a working-copy path.
osc init π£
Initialize a directory as working copy.
usage: osc [global opts] init [-h] project [package] [scm_url]
Initialize an existing directory to be a working copy of an (already existing) buildservice project/package.
ngl this is literally the same as checking out a package and then copying sources into the directory. It does NOT create a new package. If you want to create a package, use osc meta pkg ... ... π«Ά
You wouldn't normally use this command. bestie, we're just being thorough.
To get a working copy of a package (for building it or working on it), you'd normally use the checkout command. Use "osc help checkout" to get help for it.
usage:
osc init PRJ
osc init PRJ PAC
osc init PRJ PAC SCM_URL
arguments:
projectpackagescm_url
osc jobhistory (jobhist) π°οΈ
Shows the job history of a project.
usage: osc [global opts] jobhistory [-h] [--csv] [-l limit] [-M FLAVOR]
The arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output. cute, right?
usage:
osc jobhist REPOSITORY ARCHITECTURE (in project dir)
osc jobhist PROJECT [PACKAGE[:FLAVOR]] REPOSITORY ARCHITECTURE
options:
--csvβ generate output in CSV (separated by|)-l limit,--limit limitβ for setting the number of results-M FLAVOR,--multibuild-package FLAVORβ Only work with the specified flavor of a multibuild package.
osc linkpac π
"Link" a package to another package. it's giving clone-with-benefits.
usage: osc [global opts] linkpac [-h] [-C {add,copy,local}] [-c] [-r rev] [-f]
[--disable-build] [-d] [-N]
A linked package is a clone of another package, but plus local modifications. It can be cross-project. π
The TARGET_PACKAGE name is optional; the source packages' name will be used if TARGET_PACKAGE is omitted.
Afterwards, you will want to 'checkout TARGET_PROJECT TARGET_PACKAGE'.
To add a patch, add the patch as file and add it to the _link file. You can also specify text which will be inserted at the top of the spec file.
See the examples in the _link file.
NOTE: In case you want to fix or update another package, you should use the 'branch' command. A branch has correct repositories (and a link) setup up by default and will be cleaned up automatically after it was submitted back. fr fr, just use branch.
usage:
osc linkpac PROJECT PACKAGE TARGET_PROJECT [TARGET_PACKAGE]
osc linkpac TARGET_PROJECT [TARGET_PACKAGE] # from a package checkout
options:
-C {add,copy,local},--cicount {add,copy,local}β cicount attribute in the link, known values areadd,copy, andlocal, default in buildservice is currentlyadd.-c,--currentβ link fixed against current revision.-r rev,--revision revβ link the specified revision.-f,--forceβ overwrite an existing link file if it is there.--disable-buildβ disable building of the linked package-d,--disable-publishβ disable publishing of the linked package-N,--new-packageβ create a link to a not yet existing package
osc linktobranch πΏ
Convert a package containing a classic link with patch to a branch.
usage: osc [global opts] linktobranch [-h]
This command tells the server to convert a _link with or without a project.diff to a branch. This is a full copy with a _link file pointing to the branched place. obsessed.
usage:
osc linktobranch # from a package working copy
osc linktobranch PROJECT PACKAGE
osc list (LL, lL, ll, ls) π
List sources or binaries on the server. so many aliases, main character energy.
usage: osc [global opts] list [-h] [-a ARCH] [-r REPO] [-b] [-e] [-u] [-l]
[-D] [-M] [-R REVISION]
Examples for listing sources:
ls # list all projects (deprecated)
ls / # list all projects
ls . # take PROJECT/PACKAGE from current dir.
ls PROJECT # list packages in a project
ls PROJECT PACKAGE # list source files of package of a project
ls PROJECT PACKAGE <file> # list <file> if this file exists
ls -v PROJECT PACKAGE # verbosely list source files of package
ls -l PROJECT PACKAGE # verbosely list source files of package
ll PROJECT PACKAGE # verbosely list source files of package
LL PROJECT PACKAGE # verbosely list source files of expanded link
With --verbose, the following fields will be shown for each item:
- MD5 hash of file (doesn't apply to binaries)
- Revision number of the last commit
- Size (in bytes)
- Date and time of the last commit
Examples for listing binaries:
ls -b PROJECT # list all binaries of a project
ls -b PROJECT -a ARCH # list ARCH binaries of a project
ls -b PROJECT -r REPO # list binaries in REPO
ls -b PROJECT PACKAGE REPO ARCH
usage:
ls [PROJECT [PACKAGE]]
ls -b [PROJECT [PACKAGE [REPO [ARCH]]]]
options:
-a ARCH,--arch ARCHβ specify architecture (only for binaries)-r REPO,--repo REPOβ specify repository (only for binaries)-b,--binariesβ list built binaries instead of sources-e,--expandβ expand linked package (only for sources)-u,--unexpandβ always work with unexpanded (source) packages-l,--longβ print extra information-D,--deletedβ show only the former deleted projects or packages-M,--metaβ list meta data files-R REVISION,--revision REVISIONβ specify revision (only for sources)
osc localbuildlog (lbl) π
Shows the build log of a local buildchroot.
usage: osc [global opts] localbuildlog [-h] [-o OFFSET] [-s]
usage:
osc lbl [REPOSITORY [ARCH]]
osc lbl # show log of newest last local build
options:
-o OFFSET,--offset OFFSETβ get log starting from offset-s,--strip-timeβ strip leading build time from the log
osc lock π
Locks a project or package.
usage: osc [global opts] lock [-h] [-m TEXT]
usage:
osc lock PROJECT [PACKAGE]
options:
-m TEXT,--message TEXTβ specify log message TEXT
osc log π
Shows the commit log of a package.
usage: osc [global opts] log [-h] [-r rev] [-p] [--csv] [--xml] [-D] [-M]
usage:
osc log (inside working copy)
osc log remote_project [remote_package]
options:
-r rev,--revision revβ show log of the specified revision-p,--patchβ show patch for each revision; NOTE: use this option carefully because it loads patches on demand in a pager--csvβ generate output in CSV--xmlβ generate output in XML-D,--deletedβ work on deleted package-M,--metaβ checkout out meta data instead of sources
osc maintainer (bugowner) π
Show maintainers according to server side configuration. who's responsible? let's find out bestie.
usage: osc [global opts] maintainer [-h] [-b] [-B] [-e] [--nodevelproject]
[-D devel_project] [-a user] [-A]
[-s user] [-S user] [-U USER] [-G GROUP]
[-d user] [-r role] [-m MESSAGE]
# Search for official maintained sources in OBS instance
osc maintainer BINARY_OR_PACKAGE_NAME <options>
osc maintainer -U <user> <options>
osc maintainer -G <group> <options>
# Lookup via containers
osc maintainer <options>
osc maintainer PRJ <options>
osc maintainer PRJ PKG <options>
The tool looks up the default responsible person for a certain project or package. When using with an OBS 2.4 (or later) server it is doing the lookup for a given binary according to the server side configuration of default owners.
The tool is also looking into devel packages and supports to fallback to the project in case a package has no defined maintainer. π«Ά
Please use "osc meta pkg" in case you need to know the definition in a specific container.
PRJ and PKG default to current working-copy path.
options:
-b,--bugowner-onlyβ Show only the bugowner-B,--bugownerβ Show only the bugowner if defined, or maintainer otherwise-e,--emailβ show email addresses instead of user names--nodevelprojectβ do not follow a defined devel project (primary project where a package is developed)-D devel_project,--devel-project devel_projectβ define the project where this package is primarily developed-a user,--add userβ add a new person for given role ("maintainer"by default)-A,--allβ list all found entries not just the first one-s user,--set-bugowner userβ sets the bugowner to the person you name (or, if you wanna hand it to a whole group, prefix it withgroup:). π-S user,--set-bugowner-request userβ same idea but it goes through a request instead of just Doing The Thing. Samegroup:prefix trick applies. β¨-U USER,--user USERβ pulls every officially maintained instance for thatUSER(you can give a username or an email, either one slays).-G GROUP,--group GROUPβ all the officially maintained instances for theGROUP. π-d user,--delete userβ deletes a maintainer/bugowner. You can say who via--role, iykyk.-r role,--role roleβ specifies the user role.-m MESSAGE,--message MESSAGEβ setsMESSAGEas the commit entry or the request description.
π osc maintenancerequest (mr) π
okay bestie, this one creates a request to start a maintenance incident. Iconic behaviour tbh.
usage: osc [global opts] maintenancerequest [-h] [-a ATTRIBUTE] [-m
TEXT]
[--release-project
RELEASEPROJECT]
[--enforce-branching]
[--no-cleanup] [--cleanup]
[--incident INCIDENT]
[--incident-project
INCIDENT_PROJECT]
[-s REQUEST_ID]
See https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.maintenance_setup.html for information on this topic.
So what's happening here: this command is literally asking the maintenance team to start a maintenance incident based on a maintenance update you already made. π
Wanna know how to make such a project? Peep the mbranch command. Wanna know how to add the required maintenance update info? That's the patchinfo command, bestie. They're a duo fr fr.
usage:
osc maintenancerequest [ SOURCEPROJECT [ SOURCEPACKAGES RELEASEPROJECT ] ]
osc maintenancerequest .
The 2nd line hits different when you run it inside a package directory β it's a lil shortcut to submit a single package (the one sitting in your current directory) from that package's project, submitted over to the release project this package links to. π Heads up though: that syntax is only valid when you run it from a package subdirectory. No cap.
β¨ options β¨
-a ATTRIBUTE,--attribute ATTRIBUTEβ use this attribute to find the default maintenance project (default isOBS:MaintenanceProject).-m TEXT,--message TEXTβ specify messageTEXT.--release-project RELEASEPROJECTβ specify the release project.--enforce-branchingβ submit from a fresh branched project.--no-cleanupβ do not remove the source project on accept.--cleanupβ do remove the source project on accept.--incident INCIDENTβ specify the incident number to merge in.--incident-project INCIDENT_PROJECTβ specify the incident project to merge in.-s REQUEST_ID,--supersede REQUEST_IDβ superseding another request by this one. π¦
π osc mbranch (maintained, sm) π
Search or branch multiple instances of a package. So many. So much slay.
usage: osc [global opts] mbranch [-h] [-c] [-a ATTRIBUTE]
[-u UPDATE_ATTRIBUTE] [--dryrun]
[--noaccess]
[--nodevelproject] [--version]
This command is for searching all relevant instances of packages and then creating links of them inside one project. It's esp. used for maintenance updates (iykyk). You can also use it to branch every package that was 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 is specified. π
And listen: if you run osc maintained or sm, it only shows the relevant instances of a package. No branch gets created. That's basically the same energy as osc mbranch --dryrun. π«Ά
usage:
osc sm [SOURCEPACKAGE] [-a ATTRIBUTE]
osc mbranch [ SOURCEPACKAGE [ TARGETPROJECT ] ]
β¨ options β¨
-c,--checkoutβ checkout the branched package afterwards (osc bcois a shorthand for this option, cute right).-a ATTRIBUTE,--attribute ATTRIBUTEβ use this attribute to find affected packages (default isOBS:Maintained).-u UPDATE_ATTRIBUTE,--update-project-attribute UPDATE_ATTRIBUTEβ use this attribute to find update projects (default isOBS:UpdateProject).--dryrunβ just simulate the action and report back the result. No commitment, just vibes. πΈ--noaccessβ create a hidden project.--nodevelprojectβ do not follow a defined devel project (that's the primary project where a package is developed).--versionβ print version of maintained package.
π osc meta π
Show meta information, or edit it. Main character energy honestly.
usage: osc [global opts] meta [-h] [-a ATTRIBUTE] [--attribute-defaults]
[--attribute-project] [--blame] [-f] [-F
FILE]
[-r REV] [-m TEXT] [-e] [-c] [-R]
[-s ATTRIBUTE_VALUES] [--add
ATTRIBUTE_VALUES]
[--delete]
Show or edit build service metadata of type <prj|pkg|prjconf|user|pattern>. π¦
This command displays metadata on buildservice objects β projects, packages, users, the whole fam. The type of metadata is specified by the word after "meta", like e.g. "meta prj".
Let's break the types down, bestie:
prjdenotes metadata of a buildservice project.prjconfdenotes the (build) configuration of a project.pkgdenotes metadata of a buildservice package.userdenotes the metadata of a user.groupdenotes the metadata of a group.patterndenotes 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. Surprise! It manifests. π
Examples:
osc meta prj PRJ
osc meta pkg PRJ PKG
osc meta pkg PRJ PKG -e
usage:
osc meta <prj|prjconf> [-r|--revision REV] ARGS...
osc meta <prj|pkg|prjconf|user|group|pattern> ARGS...
osc meta <prj|pkg|prjconf|user|group|pattern> [-m|--message TEXT] -e|--edit ARGS...
osc meta <prj|pkg|prjconf|user|group|pattern> [-m|--message TEXT] -F|--file ARGS...
osc meta pattern --delete PRJ PATTERN
osc meta attribute PRJ [PKG [SUBPACKAGE]] [--attribute ATTRIBUTE] [--create [--set <value_list>]|--delete|--set <value_list>]
β¨ options β¨
-a ATTRIBUTE,--attribute ATTRIBUTEβ affect only a given attribute.--attribute-defaultsβ include defined attribute defaults.--attribute-projectβ include project values, if missing in packages.--blameβ show author and time of each line. Detective mode π (but make it fashion).-f,--forceβ force the save operation, allows one to ignores some errors like depending repositories. Forprjmeta only.-F FILE,--file FILEβ read metadata fromFILE, instead of opening an editor.'-'denotes standard input.-r REV,--revision REVβ checkout given revision instead of head revision. Forprjandprjconfmeta only.-m TEXT,--message TEXTβ specify log messageTEXT. Forprjandprjconfmeta only.-e,--editβ edit metadata.-c,--createβ create attribute without values.-R,--remove-linking-repositoriesβ try to remove also all repositories building against remove ones.-s ATTRIBUTE_VALUES,--set ATTRIBUTE_VALUESβ set attribute values.--add ATTRIBUTE_VALUESβ add to the existing attribute values, skip duplicates. π--deleteβ delete a pattern or attribute.
πΈ osc mkpac πΈ
Create a new package under version control. Baby's first package, but make it git-coded. π
usage: osc [global opts] mkpac [-h]
usage:
osc mkpac new_package
β osc mv β
Move SOURCE file to DEST and keep it under version control. So the history stays intact β we love a queen who doesn't lose her receipts. π
usage: osc [global opts] mv [-h] [-f] source dest
arguments
sourcedest
options
-f,--forceβ forces removal of entire package and its files.
Careful bestie β that's the whole package and its files, not just the one file. Read twice, run once. π
π¦ osc my π¦
Show waiting work, packages, projects or requests involving yourself. It's giving personal dashboard.
usage: osc [global opts] my [-h] [-b] [-m] [-a] [-U USER]
[--exclude-project EXCLUDE_PROJECT]
[--maintained]
Examples:
# list all open tasks for me
osc my [work]
# list packages where I am bugowner
osc my pkg -b
# list projects where I am maintainer
osc my prj -m
# list request for all my projects and packages
osc my rq
# list requests, excluding project 'foo' and 'bar'
osc my rq --exclude-project foo,bar
# list requests I made
osc my sr
usage:
osc my <TYPE>
where TYPE is one of requests, submitrequests,
projects or packages (rq, sr, prj or pkg)
β¨ options β¨
-b,--bugownerβ restrict listing to items where the user is bugowner.-m,--maintainerβ restrict listing to items where the user is maintainer.-a,--allβ all involvements. (Every single one. You're everywhere. π)-U USER,--user USERβ search forUSERinstead of yourself.--exclude-project EXCLUDE_PROJECTβ exclude requests for specified project.--maintainedβ limit search results to packages with maintained attribute set.
π§ osc patchinfo π§
Generate and edit a patchinfo file. π
usage: osc [global opts] patchinfo [-h] [-f]
A patchinfo file describes the packages for an update and the kind of problem it solves. Like a lil summary of "what was broken and what we fixed" β except it's machine-readable and lowkey iconic.
This command either creates a new _patchinfo or updates an existing one. β¨
Examples:
osc patchinfo
osc patchinfo [PROJECT [PATCH_NAME]]
options
-f,--forceβ force generation of a brand new patchinfo file, like, don't update the existing one, just make a fresh one. no editing, full rewrite energy π
π osc pdiff
Quick alias to diff the content of a package against its parent. just the diff bestie, nothing extra β¨
usage: osc [global opts] pdiff [-h] [-p] [-n]
usage:
osc pdiff [--plain|-p] [--nomissing-ok|-n]
osc pdiff [--plain|-p] [--nomissing-ok|-n] PKG
osc pdiff [--plain|-p] [--nomissing-ok|-n] PRJ PKG
options:
-p,--plainβ output the diff in plain (not unified) diff format-n,--nomissingokβ fail if the parent package does not exist on the server (like, it will literally refuse to continue, so know that going in π)
π osc prdiff (projdiff, projectdiff)
Server-side diff of two projects. the server does the work, you just vibe
usage: osc [global opts] prdiff [-h] [-r] [-e REGEXP] [-i REGEXP] [-n]
[-o] [-u] [-d]
Compares two projects and either summarizes or outputs the differences in full. In the second form, a project is compared with one of its branches inside a home:$USER project (the branch is treated as NEWPRJ). The home branch is optional if the current working directory is a checked out copy of it. iykyk π
usage:
osc prdiff [OPTIONS] OLDPRJ NEWPRJ
osc prdiff [OPTIONS] [home:$USER:branch:$PRJ]
options:
-r,--requestsβ show open requests for any packages with differences-e REGEXP,--exclude REGEXPβ skip packages matchingREGEXP-i REGEXP,--include REGEXPβ only consider packages matchingREGEXP-n,--show-not-in-oldβ show packages only in the new project-o,--show-not-in-newβ show packages only in the old project-u,--unifiedβ show full unified diffs of differences-d,--diffstatβ show diffstat of differences
π¦ osc prjresults (pr)
Shows project-wide build results. the big picture moment π
usage: osc [global opts] prjresults [-h] [-b] [-w] [-c] [--xml] [-s STATUS]
[-n EXPR] [-a ARCH] [-r REPO] [-V]
[--show-excluded]
usage:
osc prjresults (inside working copy)
osc prjresults PROJECT
options:
-b,--briefβ show the result in"pkgname repo arch result"short and sweet fr fr-w,--watchβ watch the results until all finished building, only supported with--xmlso don't try it solo bestie-c,--csvβ csv output--xmlβ generate output in XML-s STATUS,--status-filter STATUSβ show only packages with buildstatusSTATUS(see legend)-n EXPR,--name-filter EXPRβ show only packages whose names matchEXPR-a ARCH,--arch ARCHβ show results only for specified architecture(s)-r REPO,--repo REPOβ show results only for specified repo(s)-V,--verticalβ list packages vertically instead horizontally rotated, slayed π--show-excludedβ show packages that are excluded in all repos, also hide repos that have only excluded packages
πΈ osc pull
Merge the changes of the link target into your working copy. pull up, get the changes, periodt π«Ά
usage: osc [global opts] pull [-h]
π osc rdelete
Delete a project or packages on the server. careful bestie, this one's for real
usage: osc [global opts] rdelete [-h] [-r] [-f] [-m TEXT]
As a safety measure, project must be empty (i.e., you need to delete all packages first). Also, packages must have no requests pending (i.e., you need to accept/revoke such requests first). If you are sure that you want to remove this project and all its packages use --recursive switch. It may still not work because other depends on it. If you want to ignore this as well use --force switch.
ngl this will absolutely nuke stuff if you're not paying attention. The --force switch literally ignores the fact that other things depend on the project. Read twice, delete once. π
usage:
osc rdelete [-r] [-f] PROJECT [PACKAGE]
options:
-r,--recursiveβ deletes a project with packages inside-f,--forceβ deletes a project where other depends on (yikes, but okay)-m TEXT,--message TEXTβ specify log messageTEXT
β¨ osc rdiff
Server-side "pretty" diff of two packages. pretty diff, pretty slay β¨
usage: osc [global opts] rdiff [-h] [--issues-only] [-M] [-r N[:M]] [-p]
[-c rev] [--missingok] [-u] [--xml]
Compares two packages (three or four arguments) or shows the changes of a specified revision of a package (two arguments)
If no revision is specified the latest revision is used.
usage:
osc rdiff OLDPRJ OLDPAC NEWPRJ [NEWPAC]
osc rdiff PROJECT PACKAGE
osc rdiff PROJECT --meta
options:
--issues-onlyβ show only issues in diff-M,--metaβ diff meta data-r N[:M],--revision N[:M]β revision id, whereN= old revision andM= new revision-p,--plainβ output the diff in plain (not unified) diff format and show diff of files in archives-c rev,--change revβ the change made by revisionrev(like-r rev-1:rev). Ifrevis negative this is like-r rev:rev-1. negative revision math, iconic π§--missingokβ do not fail if the source or target project/package does not exist on the server-u,--unexpandβ diff unexpanded version if sources are linked--xmlβ show diff as xml (only for issues diff)
π₯ osc rebuild (rebuildpac)
Trigger package rebuilds. kick it off manually, if you must π«
usage: osc [global opts] rebuild [-h] [-a ARCH] [-r REPO] [-f] [-M FLAVOR]
[--all]
Note that it is normally NOT needed to kick off rebuilds like this, because they principally happen in a fully automatic way, triggered by source check-ins. In particular, the order in which packages are built is handled by the build service. the machine already got this, bestie, let it cook
The arguments REPOSITORY and ARCH can be taken from the first two columns of the osc repos output.
usage:
osc rebuild [PROJECT [PACKAGE[:FLAVOR] [REPOSITORY [ARCH]]]]
options:
-a ARCH,--arch ARCHβ trigger rebuilds for a specific architecture-r REPO,--repo REPOβ trigger rebuilds for a specific repository-f,--failedβ rebuild all failed packages the ones that went π-M FLAVOR,--multibuild-package FLAVORβ Only work with the specified flavors of a multibuild package. Globs are resolved according to_multibuildfile from server. Empty string is resolved to a package without a flavor.--allβ Rebuild all packages of entire project
π osc release
Release sources and binaries. ship it π
usage: osc [global opts] release [-h] [-a ARCH] [-r REPO]
[--target-project TARGETPROJECT]
[--target-repository TARGETREPOSITORY]
[--set-release RELEASETAG] [--no-delay]
This command is used to transfer sources and binaries without rebuilding them. It requires defined release targets set to trigger="manual". manual trigger only, no cap
usage:
osc release [PROJECT [PACKAGE]]
options:
-a ARCH,--arch ARCHβ Release only binaries from the specified architecture-r REPO,--repo REPOβ Release only binaries from the specified repository--target-project TARGETPROJECTβ Release only to specified project--target-repository TARGETREPOSITORYβ Release only to specified repository--set-release RELEASETAGβ rename binaries during release using this release tag--no-delayβ Don't put the release job in a queue to be run later, but immediately run it. Thus the next call toosc prjresultwill reflect it. Otherwise there is no way to know if it is finished or didn't start yet. instant gratification mode, lowkey obsessed
π osc releaserequest
Create a release request. paperwork but make it cute π
usage: osc [global opts] releaserequest [-h] [-m TEXT] [-p PKG]
For maintenance incident projects:
This command is used by the maintenance team to start the release process of a maintenance update. This includes usually testing based on the defined reviewers of the update project.
[See https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.maintenance_setup.html for information on this topic.]
For normal projects:
This command is used to transfer sources and binaries without rebuilding them. It requires defined release targets set to trigger="manual".
[See https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.request_and_review_system.html for information on this topic.]
usage:
osc releaserequest [-p package] [ SOURCEPROJECT ]
options:
-m TEXT,--message TEXTβ specify messageTEXT-p PKG,--package PKGβ specify packages to release
π§ osc repairlink
Repair a broken source link. glow-up for your link π§β¨
usage: osc [global opts] repairlink [-h] [-d DIR]
This command checks out a package with merged source changes. It uses a 3-way merge to resolve file conflicts. After reviewing/repairing the merge, use 'osc resolved ...' and 'osc ci' to re-create a working source link.
usage: * For merging conflicting changes of a checkout package:
osc repairlink
- Check out a package and merge changes:
osc repairlink PROJECT PACKAGE
- Pull conflicting changes from one project into another one:
osc repairlink PROJECT PACKAGE INTO_PROJECT [INTO_PACKAGE]
options:
-d DIR,--destdir DIRβ destination directory
π osc repairwc
Try to repair an inconsistent working copy. your wc is going through something, let's fix her π
usage: osc [global opts] repairwc [-h] [--force-apiurl]
Examples:
osc repairwc <path>
Note: if <path> is omitted it defaults to '.' (<path> can be a project or package working copy)
Warning: This command might delete some files in the storedir (.osc). Please check the state of the wc afterwards (via'osc status'). not me deleting your files without asking, check after, fr fr π
options:
--force-apiurlβ ask once for an apiurl and force this apiurl for all inconsistent projects/packages
πΈ osc repositories (platforms, repos)
Shows repositories configured for a project. where the packages get built, bestie π¦
usage: osc [global opts] repositories [-h]
It skips repositories by default which are disabled for a given package.
usage:
osc repos
osc repos [PROJECT] [PACKAGE]
π¦ osc repourls
Shows URLs of .repo files. links, but make it build-service β¨
usage: osc [global opts] repourls [-h]
Shows URLs on which to access the project repositories.
usage:
osc repourls [PROJECT]
π osc request (review, rq)
Show or modify requests and reviews
usage: osc [global opts] request [-h] [-d] [-S SUPERSEDED_REQUEST] [-u] [--no-devel] [-m TEXT] [-t TYPE] [-a] [-f] [-s STATE] [-D DAYS] [-U USER] [-G GROUP] [-P PROJECT] [-p PACKAGE] [-b] [-M] [-B] [-e] [-i] [--or-revoke] [--non-interactive] [--exclude-target-project EXCLUDE_TARGET_PROJECT] [--keep-packages-locked] [--incoming] [--involved-projects] [--target-package-filter TARGET_PACKAGE_FILTER] [--source-buildstatus]
[See http://en.opensuse.org/openSUSE:Build_Service_Collaboration for information on this topic.]
The request command has the following sub commands:
listβ lists open requests attached to a project or package or person. Uses the project/package of the current directory if none of-M,-U USER, project/package are given.logβ will show the history of the given ID.showβ will show the request itself, and generate a diff for review, if used with the--diffoption. The keyword show can be omitted if the ID is numeric. The-v/--verboseoptions shows comments in the request's history.declineβ will change the request state to "declined".reopenβ will set the request back to new or review.setincidentβ will direct "maintenance" requests into specific incidents.supersedeβ will supersede one request with another existing one.revokeβ will set the request state to "revoked".
β οΈ WARNING: Revoking a maintenance release request unlocks packages in the source project. To avoid unlocking, use the --keep-packages-locked option.
acceptβ will change the request state to "accepted" and will trigger the actual submit process. That would normally be a server-side copy of the source package to the target package.approveβ marks a requests in "review" state as approved. This request will get accepted automatically when the last review got accepted.checkoutβ will checkout the request's source package ("submit" requests only).prioritizeβ change the priority of a request to either "critical", "important", "moderate" or "low".
The review command has the following sub commands:
listβ lists open requests that need to be reviewed by the specified user or group.addβ adds a person or group as reviewer to a request.acceptβ mark the review positive.declineβ mark the review negative. A negative review will decline the request.
okay so here's the whole menu of how you actually type these, no cap:
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] [-v/--verbose] ID
osc request accept [-m TEXT] ID
osc request approve [-m TEXT] ID
osc request cancelapproval [-m TEXT] ID
osc request decline [-m TEXT] ID
osc request revoke [-m TEXT] ID
osc request reopen [-m TEXT] ID
osc request setincident [-m TEXT] ID INCIDENT
osc request supersede [-m TEXT] ID SUPERSEDING_ID
osc request approvenew [-m TEXT] PROJECT
osc request prioritize [-m TEXT] ID PRIORITY
osc request checkout/co ID
osc request clone [-m TEXT] ID
osc review show [-d] [-b] ID
osc review list [-U USER] [-G GROUP] [-P PROJECT [-p PACKAGE]] [-s state]
osc review add [-m TEXT] [-U USER] [-G GROUP] [-P PROJECT [-p PACKAGE]] ID
osc review accept [-m TEXT] [-U USER] [-G GROUP] [-P PROJECT [-p PACKAGE]] ID
osc review decline [-m TEXT] [-U USER] [-G GROUP] [-P PROJECT [-p PACKAGE]] ID
osc review reopen [-m TEXT] [-U USER] [-G GROUP] [-P PROJECT [-p PACKAGE]] ID
osc review supersede [-m TEXT] [-U USER] [-G GROUP] [-P PROJECT [-p PACKAGE]] ID SUPERSEDING_ID
β¨ options β¨
-d,--diffβ generate a diff π-S SUPERSEDED_REQUEST,--superseded-request SUPERSEDED_REQUESTβ Create the diff relative to a given former request.-u,--unifiedβ output the diff in the unified diff format.--no-develβ Do not attempt to forward to devel project. π-m TEXT,--message TEXTβ specify message TEXT.-t TYPE,--type TYPEβ limit to requests which contain a given action type (submit/delete/change_devel/add_role/set_bugowner/maintenance_incident/maintenance_release).-a,--allβ all states. Same as-s all.-f,--forceβ enforce state change, can be used to ignore open reviews, devel-package dependencies and more. π€-s STATE,--state STATEβ only list requests in one of the comma separated given states (new/review/accepted/revoked/declined) or "all" [default="new,review,declined"].-D DAYS,--days DAYSβ only list requests in state "new" or changed in the last DAYS.-U USER,--user USERβ requests or reviews limited for the specified USER.-G GROUP,--group GROUPβ requests or reviews limited for the specified GROUP.-P PROJECT,--project PROJECTβ requests or reviews limited for the specified PROJECT.-p PACKAGE,--package PACKAGEβ requests or reviews limited for the specified PACKAGE, requires also a PROJECT.-b,--briefβ print output in list view as list subcommand.-M,--mineβ only show requests created by yourself. main character energy only π«Ά-B,--bugownerβ also show requests about packages where I am bugowner.-e,--editβ edit a submit action.-i,--interactiveβ interactive review of request.--or-revokeβ For automation scripts: accepts (if using with accept argument) a request when it is in new or review state. Or revoke it when it got declined. Otherwise just do nothing.--non-interactiveβ non-interactive review of request.--exclude-target-project EXCLUDE_TARGET_PROJECTβ exclude target project from request list.--keep-packages-lockedβ Avoid unlocking of packages in maintenance incident when revoking release requests.--incomingβ Show only requests where the project is target.--involved-projectsβ show all requests for project/packages where USER is involved.--target-package-filter TARGET_PACKAGE_FILTERβ only list requests for the packages matching the package filter. A (python) regular expression is expected.--source-buildstatusβ print the buildstatus of the source package (only works with "show" and the interactive review).
π osc requestmaintainership (reqbs, reqms, reqmaintainership, requestbugownership, reqbugownership)
Requests to add user as maintainer or bugowner. it's giving "let me in" energy.
usage: osc [global opts] requestmaintainership [-h] [-m TEXT] [-r role]
usage:
osc requestmaintainership # for current user in checked out package
osc requestmaintainership USER # for specified user in checked out package
osc requestmaintainership PROJECT # for current user if cwd is not a checked out package
osc requestmaintainership PROJECT group:NAME # request for specified group
osc requestmaintainership PROJECT PACKAGE # for current user
osc requestmaintainership PROJECT PACKAGE USER # request for specified user
osc requestmaintainership PROJECT PACKAGE group:NAME # request for specified group
osc requestbugownership ... # accepts same parameters but uses bugowner role
options
-m TEXT,--message TEXTβ specify message TEXT.-r role,--role roleβ specify user role (default:maintainer).
π osc resolved
Remove 'conflicted' state on working copy files.
usage: osc [global opts] resolved [-h]
If an upstream change can't be merged automatically, a file is put into in 'conflicted' ('C') state. Within the file, conflicts are marked with special <<<<<<< as well as ======== and >>>>>>> lines.
After manually resolving all conflicting parts, use this command to remove the 'conflicted' state.
π Note: this subcommand does not semantically resolve conflicts or remove conflict markers; it merely removes the conflict-related artifact files and allows PATH to be committed again.
usage:
osc resolved FILE [FILE...]
π₯ osc restartbuild (abortbuild)
Restart the build of a certain project or package.
usage: osc [global opts] restartbuild [-h] [-a ARCH] [-M FLAVOR] [-r REPO] [--all]
usage:
osc restartbuild [PROJECT [PACKAGE[:FLAVOR] [REPOSITORY [ARCH]]]]
options
-a ARCH,--arch ARCHβ Restart builds for a specific architecture.-M FLAVOR,--multibuild-package FLAVORβ Only work with the specified flavors of a multibuild package. Globs are resolved according to_multibuildfile from server. Empty string is resolved to a package without a flavor.-r REPO,--repo REPOβ Restart builds for a specific repository.--allβ Restart all running builds of entire project. everything. all at once. slay.
π osc results (r)
Shows the build results of a package or project.
usage: osc [global opts] results [-h] [-l] [-r REPO] [-a ARCH] [-b] [--no-multibuild] [-M FLAVOR] [-V] [-w] [-F] [-s STATUS_FILTER] [-f] [--xml] [--csv] [--format FORMAT] [--show-excluded]
usage:
osc results # (inside working copy of PRJ or PKG)
osc results PROJECT [PACKAGE[:FLAVOR]]
options
-l,--last-buildβ show last build results (succeeded/failed/unknown).-r REPO,--repo REPOβ Show results only for specified repo(s).-a ARCH,--arch ARCHβ Show results only for specified architecture(s).-b,--briefβ show the result in"pkgname repo arch result". Default for-f.--no-multibuildβ Disable results for all direct affect packages inside of the project.-M FLAVOR,--multibuild-package FLAVORβ only mess with the flavors you named for a multibuild package π . Globs get resolved against the_multibuildfile from the server, and an empty string resolves to the package that has no flavor at all. iykyk.-V,--verticalβ list packages vertically instead of horizontally, and it applies to the entire project π-w,--watchβ sit there and watch the results until literally everything is done building π-F,--fail-on-errorβ bail out with exit1if any build has errored. no cap, she's strict π€-s STATUS_FILTER,--status-filter STATUS_FILTERβ only show packages with the build status you asked for π―-f,--failedβ show only the failed results. the flop report, if you will π--xmlβ generate output in XML (this is the formerresults_meta, fyi)--csvβ generate output in CSV format π--format FORMATβ change the format of the text output (that's the default) or the csv output. Heads up: it is not supported for xml output π«. The supported fields are:project,package,repository,arch,state,dirty,code,details. For text output you have to use those field names as named fields for string interpolation, like%(field)s. For CSV output you just separate the field names with commas β¨--show-excludedβ show the repos that are excluded for this package π«Ά
osc revert
Restore changed files, or honestly the whole entire working copy if that's the vibe π
osc [global opts] revert [-h] file [file ...]
Examples:
osc revert <modified file(s)>
osc revert . Note: this only works for package working copies
arguments:
file
osc rpmlintlog (lint, rpmlint)
Shows the rpmlint logfile π
osc [global opts] rpmlintlog [-h] [-M FLAVOR]
So this shows you the rpmlint logfile so you can analyse whether there are any problems with the spec file and the built binaries π
usage:
osc rpmlintlog repository arch # (inside checked out PKG dir)
osc rpmlintlog project package repository arch
options:
-M FLAVOR,--multibuild-package FLAVORβ only work with the specified flavor of a multibuild package πΈ
osc rremove
Remove source files from the selected package, bye bestie π
osc [global opts] rremove [-h] [-f] project package file [file ...]
arguments:
projectpackagefile
options:
-f,--forceβ don't ask, just delete the files. no questions, no hesitation π
osc search (bse, se)
Search for a project and/or package π
osc [global opts] search [-h] [--repos-baseurl] [-e] [-s] [--package] [--project] [--title] [--description] [-a ATTRIBUTE] [-V] [-i] [-b] [-m] [-M] [--csv] [--binary] [-B PROJECT] [--binaryversion VERSION]
If you don't specify any option, osc will search for projects and packages that contain the search term in their name, title or description. default behavior, iconic β¨
usage:
osc search 'search term' <options>
osc bse ... ('osc search --binary')
osc se 'perl(Foo::Bar)' ('osc search --package perl-Foo-Bar')
options:
--repos-baseurlβ show the base URLs of download repositories π-e,--exactβ show only exact matches, which is the default now btw-s,--substringβ also show results where the search term is a sub string. slower search, but thorough π--packageβ search for a package π¦--projectβ search for a project ποΈ--titleβ search for matches in thetitleelement--descriptionβ search for matches in thedescriptionelement-a ATTRIBUTE,--limit-to-attribute ATTRIBUTEβ only match when the given attribute exists in the meta data π-V,--versionβ show package version, revision, andsrcmd5. CAUTION: this is slow and unreliable β οΈ like, proceed with caution bestie-i,--involvedβ show projects/packages where the given person (or myself) is involved as bugowner or maintainer. Format is[[{group|person}/]<name>], default:personπ«Ά-b,--bugownerβ same as-i, but only bugowner-m,--maintainerβ same as-i, but only maintainer-M,--mineβ shorthand for--bugowner --packageπ--csvβ generate output in CSV (separated by|)--binaryβ search binary packages-B PROJECT,--baseproject PROJECTβ search packages built forPROJECT(this implies--binary)--binaryversion VERSIONβ search for a binary with the specified version (implies--binary)
osc sendsysrq
Trigger a sysrq in a running build π³
osc [global opts] sendsysrq [-h] [-M FLAVOR]
Okay so this is only going to work when the build is running in a supported VM, fr fr. Also, only a subset of sysrq are supported. The typical use case for debugging is 9, t and w, in this sequence π§
usage:
osc sendsysrq REPOSITORY ARCH SYSRQ
osc sendsysrq PROJECT PACKAGE[:FLAVOR] REPOSITORY ARCH SYSRQ
options:
-M FLAVOR,--multibuild-package FLAVORβ only work with the specified flavors of a multibuild package π . Globs are resolved according to the_multibuildfile from the server. An empty string is resolved to a package without a flavor.
osc service
Handle source services π οΈ
osc [global opts] service [-h] [-v]
Source services can be used to modify sources, like downloading files, verifying files, generating files, or modifying existing files β¨
usage:
osc service COMMAND (inside working copy)
osc service run [SOURCE_SERVICE]
osc service runall
osc service manualrun [SOURCE_SERVICE]
osc service remoterun [PROJECT PACKAGE]
osc service merge [PROJECT PACKAGE]
osc service wait [PROJECT PACKAGE]
COMMAND can be:
run r run defined services with modes "trylocal", "localonly", or no mode set locally,
may take an optional parameter to run only a specified source service. In case
parameters exist for this one in _service file they are used.
runall ra run all services independent of the used mode
manualrun mr run all services with mode "manual", may take an optional parameter to run only a
specified source service
remoterun rr trigger a re-run on the server side
merge commits all server side generated files and drops the _service definition
wait waits until the service finishes and returns with an error if it failed
precommit run the services exactly as would be before a commit, for use from the git hook
Not for common usage anymore:
localrun lr the same as "run" but services with mode "serveronly" are also executed
disabledrun dr run all services with mode "disabled"
options:
-v,--verboseβ verbose run of local services, for debugging purposes π
osc setdevelproject (sdp)
Set the devel project / package of a package π―
osc [global opts] setdevelproject [-h] [-u]
Examples:
osc setdevelproject [PROJECT PACKAGE] DEVEL_PROJECT [DEVEL_PACKAGE]
options:
-u,--unsetβ remove devel project π
osc setlinkrev
Updates a revision number in a source link π
osc [global opts] setlinkrev [-h] [-r rev] [-R] [-u] [--vrev vrev]
This command adds or updates a specified revision number in a source link. And if you don't specify a revision number, the current revision of the source gets used π«
usage:
osc setlinkrev
osc setlinkrev PROJECT [PACKAGE]
options:
-r rev,--revision revβ use the specified revision.-R,--use-plain-revisionβ do not expand the specified or latest rev π«-u,--unsetβ remove the revision in the link, so it will always point to the latest revision π--vrev vrevβ enforce a given vrev π
osc showlinked
Show all packages linking to a given one π
osc [global opts] showlinked [-h]
Examples:
osc showlinked [PROJECT PACKAGE]
osc signkey
Manage Project Signing Key π
osc [global opts] signkey [-h] [--create] [--extend] [--delete]
[--notraverse] [--sslcert]
osc signkey [--create|--delete|--extend] <PROJECT>
osc signkey [--notraverse] <PROJECT>
This command is for managing gpg keys. By default it shows the public key. And there is no way to download or upload the private part of a key β by design, bestie π«π
However, you can create a new own key. You may want to consider signing the public key with your own existing key π
If a project has no key, the key from the upper level project will be used. So like, if you drop the "KDE:KDE4:Community" key, the one from "KDE:KDE4" will be used πͺ
WARNING: THE OLD KEY CANNOT BE RESTORED AFTER USING DELETE OR CREATE π like it's gone gone. no takebacks, no undo, periodt π
options:
--createβ create a new gpg signing key for this project π--extendβ extend the expiration date of the gpg public key for this project β³--deleteβ delete the gpg signing key in this project ποΈ--notraverseβ don't traverse projects upwards to find the key--sslcertβ fetch the SSL certificate instead of the GPG key π
osc status (st)
Show status of files in working copy π
osc [global opts] status [-h] [-e]
Shows the status of files in a local working copy, indicating whether files have been changed locally, deleted, added, ... you know the drill π
The first column in the output specifies the status, and it's one of these characters:
' ' no modifications (shown only in verbose output)
'A' Added
'C' Conflicted
'D' Deleted
'M' Modified
'R' Replaced (file was deleted and added again afterwards)
'?' item is not under version control
'!' item is missing (removed by non-osc command) or incomplete
'S' item is skipped (item exceeds a file size limit or is _service:* file)
'F' Frozen (use "osc pull" to merge conflicts) (package-only state)
examples:
osc st
osc st <directory>
osc st file1 file2 ...
usage:
osc status [OPTS] [PATH...]
options:
-e,--show-excludedβ also show files that are excluded by the"exclude_glob"config option π
π¦ osc submitrequest (submitpac, submitreq, sr) π¦
okay so you wanna Create request to submit source into another Project? that's the collab move, bestie β¨
usage: osc [global opts] submitrequest [-h] [-m TEXT] [-F FILE] [-r REV]
[-s REQUEST_ID] [--nodevelproject]
[--separate-requests] [--cleanup]
[--no-cleanup] [--no-update]
[--update-link] [-d] [--yes]
there's a whole lore page on this btw: http://en.opensuse.org/openSUSE:Build_Service_Collaboration β go read it if you want the full tea π
and if you're trying to look at or modify requests that already exist, that is not this command, that's the request command's whole job π
usage:
osc submitreq [OPTIONS]
osc submitreq [OPTIONS] DESTPRJ [DESTPKG]
osc submitreq [OPTIONS] SOURCEPRJ SOURCEPKG DESTPRJ [DESTPKG]
osc submitpac ... is a shorthand for osc submitreq --cleanup ...
options πΈ
-m TEXT,--message TEXTβ say your piece: specify messageTEXT-F FILE,--file FILEβ read the log message fromFILEinstead, and'-'means standard input-r REV,--revision REVβ lock in a specific source revision ID for the source package (it's the md5 sum π)-s REQUEST_ID,--supersede REQUEST_IDβ superseding another request with this one, so it's the new main character--nodevelprojectβ do not follow a defined devel project (aka the primary project where a package is developed)--separate-requestsβ make multiple requests instead of one single one (only matters when you're running this on an entire project)--cleanupβ remove the package if the submission gets accepted (this is the default forhome:<id>:branchprojects)--no-cleanupβ never remove the source package on accept, but do update its content--no-updateβ never touch the source package on accept at allβ¦ β οΈ and heads up, this will break source links--update-linkβ transfers the source including the_linkfile-d,--diffβ just show the diff instead of actually creating the request (a lil peek, no commitment π)--yesβ proceed without asking, no take-backs
π osc token π
Show and manage authentication token
usage: osc [global opts] token [-h] [-c] [-d TOKENID] [-o OPERATION]
[-t TOKENSTRING] [--scm-token SCM_TOKEN]
[-a ARCH] [-r REPO] [--target-project PROJECT]
[--target-repo REPO]
[--set-release RELEASE_TAG]
the tea: an authentication token lets you run specific commands without sending credentials. yes, it's giving backstage pass π
usage:
osc token
osc token --create --operation <OPERATION> [<PROJECT> <PACKAGE>]
osc token --delete <TOKENID>
osc token --trigger <TOKENSTRING> [--operation <OPERATION>] [<PROJECT> <PACKAGE>]
options π
-c,--createβ Create a new token-d TOKENID,--delete TOKENIDβ Delete a token-o OPERATION,--operation OPERATIONβ the operation associated with the token. Choices:runservice,branch,release,rebuild,workflow-t TOKENSTRING,--trigger TOKENSTRINGβ Trigger the action of a token--scm-token SCM_TOKENβ the scm's access token (only in combination with a--operation=workflowoption)-a ARCH,--arch ARCHβ Release/Rebuild only binaries from the specified architecture-r REPO,--repo REPOβ Release/Rebuild only binaries from the specified repository--target-project PROJECTβ Release only to specified project--target-repo REPOβ Release only to specified repository--set-release RELEASE_TAGβ Rename binaries during release using this release tag
π₯ osc triggerreason (tr) π₯
Show reason why a package got triggered to build
usage: osc [global opts] triggerreason [-h] [-M FLAVOR]
so the server is the one who decides when a package needs to get rebuilt, right? and this command shows you the detailed reason for a package. a brief reason also lives in the jobhistory, which you can reach via osc jobhistory.
trigger reasons might be:
- new build (never build yet or rebuild manually forced)
- source change (e.g. on updating sources)
- meta change (packages which are used for building have changed)
- rebuild count sync (In case that it is configured to sync release numbers)
usage in package or project directory:
osc triggerreason REPOSITORY ARCH
osc triggerreason PROJECT PACKAGE[:FLAVOR] REPOSITORY ARCH
options β¨
-M FLAVOR,--multibuild-package FLAVORβ Only work with the specified flavor of a multibuild package.
π osc undelete π
Restores a deleted project or package on the server
usage: osc [global opts] undelete [-h] [-m TEXT]
the server restores a package including the sources and meta configuration. but listen β binaries remain to be lost and will be rebuild. so it's a glow-up, not a resurrection of the old binaries fr fr π
usage:
osc undelete PROJECT
osc undelete PROJECT PACKAGE
options π«Ά
-m TEXT,--message TEXTβ specify log messageTEXT
π§ osc unlock π§
Unlocks a project or package
usage: osc [global opts] unlock [-h] [-m TEXT]
Unlocks a locked project or package. and ngl, a comment is required β you can't just silently unlock, you gotta say something π¬
usage:
osc unlock PROJECT [PACKAGE]
options π
-m TEXT,--message TEXTβ specify log messageTEXT
β osc update (up) β
Update a working copy
usage: osc [global opts] update [-h] [-r REV] [--linkrev REV] [-u] [-e] [-s]
[-S] [-l limit_size]
examples:
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.
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. and --unexpand-link can be used to switch back to the "raw" source with a _link file plus patch(es) π
options π
-r REV,--revision REVβ update to specified revision (heads up, this option gets ignored if you're going to update the complete project or more than one package)--linkrev REVβ revision of the link target that is used during link expansion-u,--unexpand-linkβ if a package is an expanded link, update to the raw_linkfile-e,--expand-linkβ if a package is a link, update to the expanded sources-s,--source-service-filesβ Run local source services after update.-S,--server-side-source-service-filesβ Use server side generated sources instead of local generation.-l limit_size,--limit-size limit_sizeβ Skip all files with a given size
π osc updatepacmetafromspec (updatepkgmetafromspec, metafromspec) π
Update package meta information from a specfile
usage: osc [global opts] updatepacmetafromspec [-h] [--specfile FILE]
ARG, if specified, is a package working copy.
options πΈ
--specfile FILEβ Path to specfile. (if you pass more than working copy this option is ignored)
π osc vc π
Edit the changes file
usage: osc [global opts] vc [-h] [-m MESSAGE] [-F FILE] [-e]
osc vc [-m MESSAGE|-e] [filename[.changes]|path [file_with_comment]]
If no <filename> is given, exactly one *.changes or *.spec file has to be in the cwd or in path.
the email address used in .changes file is read from the BuildService instance, or should be defined in oscrc:
[https://api.opensuse.org/] user = login pass = password email = user@defined.email
or it can be specified via the mailaddr environment variable.
by default, osc vc opens the program specified by the EDITOR environment variable (and it uses Vim if that variable is not set) with a temporary file that should replace the *.changes file when saved by the editor β or just discarded otherwise π
options β¨
-m MESSAGE,--message MESSAGEβ addMESSAGEto changes (do not open an editor)-F FILE,--file FILEβ read changes message fromFILE(do not open an editor)-e,--just-editβ just open changes (cannot be used with-m)
π osc version π
Give version of osc binary
usage: osc [global opts] version [-h]
usage:
osc version
π¦ osc whatdependson π¦
Show the packages that require the specified package during the build
usage: osc [global opts] whatdependson [-h] [-M FLAVOR]
whatdependson is how you find out what will be triggered when a certain package changes π
β οΈ but this is no guarantee, since the new build might have changed dependencies.
the packages marked with the [i] flag are inherited to the project.
the arguments REPOSITORY and ARCH can be taken from the first two columns of the 'osc repos' output.
usage in package or project directory:
osc whatdependson REPOSITORY ARCH
usage:
osc whatdependson PROJECT [PACKAGE[:FLAVOR]] REPOSITORY ARCH
options π
-M FLAVOR,--multibuild-package FLAVORβ Only work with the specified flavors of a multibuild package. Globs are resolved according to_multibuildfile from server. Empty string is resolved to a package without a flavor.
π«Ά osc whois (user, who) π«Ά
Show fullname and email of a buildservice user
usage: osc [global opts] whois [-h] [user ...]
arguments πΈ
user
π osc wipebinaries (unpublish) π
Delete all binary packages of a certain project/package
usage: osc [global opts] wipebinaries [-h] [-a ARCH] [-M FLAVOR] [-r REPO]
[--build-disabled] [--build-failed]
[--broken] [--unresolvable] [--all]
with the optional argument <package> you can specify a certain package, otherwise all binary packages in the project will be deleted. gone. poof. π¨
osc wipebinaries OPTS # works in checked out project dir
osc wipebinaries OPTS PROJECT [PACKAGE[:FLAVOR]]
osc unpublish OPTS # works in checked out project dir
osc unpublish OPTS PROJECT [PACKAGE[:FLAVOR]]
okay so you know how sometimes you just need to yeet some binaries into the void? π that's this. run it from a checked-out project dir and it just knows, or hand it a PROJECT and optionally a PACKAGE[:FLAVOR] and it does the thing. unpublish is the same energy, same arguments, same flags. π
β¨ options β¨ (the wipebinaries/unpublish menu) π
-a ARCH,--arch ARCHβ nukes every binary package for one specific architecture. just that arch. bye bestie π«Ά-M FLAVOR,--multibuild-package FLAVORβ only messes with the flavors you name on a multibuild package. globs get resolved according to the_multibuildfile from the server, and an empty string resolves to a package with no flavor at all. no cap π§-r REPO,--repo REPOβ deletes all the binary packages for one specific repository. one repo, all the binaries β¨--build-disabledβ deletes all binaries of packages where the build is disabled. yeah. those ones. π--build-failedβ deletes all binaries of packages where the build failed. the sadness cleanup π--brokenβ deletes all binaries of packages where the package source is bad. it's giving broken, so it's going π¦--unresolvableβ deletes all binaries of packages that have dependency errors. unresolved drama? not on this server's watch π--allβ deletes all binaries regardless of package status. this used to be the default, fyi, so if you were relying on the old behaviour, that's the one you want. previously default, periodt π₯
bestie, gentle reminder: this is deleting stuff off the server. pick your flags like your life depends on it, because the binaries' lives literally do. π
π¦ osc workerinfo π¦
gets the information to a worker from the server. that's the whole vibe β you ask, it tells you about that worker. π
usage:
osc [global opts] workerinfo [-h] <hostarch>:<workerid>
examples, because a demo eats every time:
osc workerinfo x86_64:goat:1
usage, once more with feeling:
osc workerinfo <hostarch>:<workerid>
arguments π§
<hostarch>:<workerid>β the thing you're asking about. hostarch, colon, workerid. likex86_64:goat:1. that exact shape, bestie, don't freestyle it π
π AUTHOR π
contributors to the osc project. see the project's GIT history for the complete list. it's a whole group chat in there, and every single one of them ate π«Ά
π DISTRIBUTION π
the latest version of osc may be downloaded from https://github.com/openSUSE/osc/ β go get it, it's iconic β¨
and that's the whole page, bestie!! π you made it to the very end of OSC(1), which is giving main character energy fr fr π this one's osc, dated 2026-08-12, and that's the version/date stamp β slay, go wipe some binaries responsibly, iykyk π
π
π¦ where this page comes from
- fedora 43: osc 1.27.3-484.18.1.fc43 Β· GPL-2.0-or-later
- fedora 44: osc 1.27.3-484.18.1.fc44 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms