• Stars
    star
    151
  • Rank 241,397 (Top 5 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created almost 13 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Command Line Interface to work with an Open Build Service

unit tests docs codecov code climate contributors

openSUSE Commander

openSUSE Commander (osc) is a command-line interface to the Open Build Service (OBS).

Installation

RPM packages are available in the openSUSE:Tools repository.

zypper addrepo --repo http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_Tumbleweed/openSUSE:Tools.repo
zypper install osc

Unstable RPM packages are available in the OBS:Server:Unstable repository.

zypper addrepo --repo http://download.opensuse.org/repositories/OBS:/Server:/Unstable/openSUSE_Factory/OBS:Server:Unstable.repo
zypper install osc

To install from git, do

./setup.py build
./setup.py install

Alternatively, you can directly use ./osc-wrapper.py from the source directory, which is easier if you develop on osc.

Configuration

When you use osc for the first time, it will ask you for your username and password, and store it in ~/.config/osc/oscrc.

Keyrings

Osc can store passwords in keyrings instead of ~/.config/osc/oscrc. To use them, you need python3-keyring with a backend of your choice installed:

  • kwalletd5 (A pasword manager for KDE)
  • secrets (A password manager for GNOME)
  • python3-keyring-keyutils (A python-keyring backend for the kernel keyring)

If you want to switch to using a keyring you need to delete apiurl section from ~/.config/osc/oscrc and you will be asked for credentials again, which will be then stored in the keyring application.

Usage

For more details please check the openSUSE wiki.

To list existing content on the server

osc ls                              # list projects
osc ls Apache                       # list packages in a project
osc ls Apache subversion            # list files of package of a project

Check out content

osc co Apache                       # entire project
osc co Apache subversion            # a package
osc co Apache subversion foo        # single file

Update a working copy

 osc up
 osc up [pac_dir]                   # update a single package by its path
 osc up *                           # from within a project dir, update all packages
 osc up                             # from within a project dir, update all packages
                                    #   AND check out all newly added packages

If an update can't be merged automatically, a file is in C (conflict) state, and conflicts are marked with special <<<<<<< and >>>>>>> lines. After manually resolving the problem, use

osc resolved foo

Upload change content

osc ci                              # current dir
osc ci <dir>
osc ci file1 file2 ...

Show the status (which files have been changed locally)

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

Mark files to be added or removed on the next 'checkin'

osc add file1 file2 ...
osc rm file1 file2 ...

Adds all new files in local copy and removes all disappeared files

osc addremove

Generates a diff, to view the changes

osc diff                            # current dir
osc diff file1 file2 ...

Shows the build results of the package

osc results
osc results [repository]

Shows the log file of a package (you need to be inside a package directory)

osc log <repository> <arch>

Shows the URLs of .repo files which are packages sources for Yum/YaST/smart

osc repourls [dir]

Triggers a package rebuild for all repositories/architectures of a package

osc rebuildpac [dir]

Shows available repository/build targets

osc repository

Shows the configured repository/build targets of a project

osc repository <project>

Shows meta information

osc meta Apache
osc meta Apache subversion
osc id username

Edit meta information (Creates new package/project if it doesn't exist)

osc editmeta Apache
osc editmeta Apache subversion

Update package meta data with metadata taken from spec file

osc updatepacmetafromspec <dir>

There are other commands, which you may not need (they may be useful in scripts)

osc repos
osc buildconfig
osc buildinfo

Locally build a package (see 'osc help build' for more info)

osc build <repo> <arch> specfile [--clean|--noinit]

Update a package to a different sources (directory foo_package_source)

cp -a foo_package_source foo
cd foo
osc init <prj> <pac>
osc addremove
osc ci
cd $OLDPWD
rm -r foo

Contributing

Report issues or submit pull-requests to the osc project on GitHub.

Testing

Unit tests can be run from a git checkout by executing

./setup.py test

More Repositories

1

open-build-service

Build and distribute Linux packages from sources in an automatic, consistent and reproducible way #obs
Ruby
852
star
2

osem

Open Source Event Manager. An event management tool tailored to Free and Open Source Software conferences.
Ruby
826
star
3

snapper

Manage filesystem snapshots and allow undo of system modifications
C++
736
star
4

libsolv

Library for solving packages and reading repositories
C
469
star
5

zypper

World's most powerful command line package manager
C++
354
star
6

opi

OBS Package Installer (CLI)
Python
225
star
7

hwinfo

Hardware information tool
C
220
star
8

kernel

Our patched kernel sources. This repository is generated from https://github.com/openSUSE/kernel-source
C
179
star
9

imagewriter

Utility for writing raw disk images & hybrid isos to USB keys
C++
166
star
10

catatonit

A container init that is so simple it's effectively brain-dead.
C
158
star
11

artwork

Contains the collaborative work of the openSUSE marketing and artwork teams. Content is licensed under CC-BY-SA 3.0 (Creative Commons Attribution-ShareAlike 3.0 Unported License).
HTML
148
star
12

kernel-source

A quilt-like series of patches plus scripts and .spec files to produce the kernel RPM package. If you are looking for a ready-to-use kernel tree, have a look at https://github.com/openSUSE/kernel
Python
139
star
13

obs-build

OBS build script, can be used with OBS or stand alone
Perl
123
star
14

software-o-o

The site behind https://software.opensuse.org. It is the default web interface to download openSUSE distributions and to search for OBS packages. Packaged at https://build.opensuse.org/project/show/openSUSE:infrastructure:software.opensuse.org
SCSS
121
star
15

agama

A service-based Linux installer
JavaScript
116
star
16

libzypp

ZYpp Package Management library
C++
107
star
17

wicked

Framework for network configuration
C
98
star
18

transactional-update

Atomic updates for Linux operating systems
C++
98
star
19

docker-containers

Source files required used to build the official openSUSE containers for Docker
Dockerfile
88
star
20

openSUSEway

dotfiles for Sway on openSUSE
CSS
81
star
21

libeconf

Enhanced config file parser, which merges config files placed in several locations into one.
C
78
star
22

libpathrs

C-friendly API to make path resolution safer on Linux.
Rust
66
star
23

SUSEPrime

Provide nvidia-prime like package for openSUSE
Shell
65
star
24

py2pack

Generate distribution packages from PyPI
Python
64
star
25

daps

DocBook Authoring and Publishing Suite (DAPS)
Shell
60
star
26

mentoring

The openSUSE Developer Mentoring Program
JavaScript
59
star
27

openSUSE-release-tools

Tools to aid in staging and release work for openSUSE/SUSE
Python
55
star
28

Customize-IBus

Full customization of appearance, behavior, system tray and input source indicator for IBus. (深度定制 IBus 的外观、行为、系统托盘以及输入指示)
JavaScript
54
star
29

landing-page

openSUSE landing page which features Tumbleweed and Leap
HTML
49
star
30

microos-toolbox

Script to run a toolbox container on openSUSE MicroOS
Shell
49
star
31

openSUSE-docs-revamped-temp

We're creating new, refreshed community user guides and documentation for the openSUSE distributions, centered on Tumbleweed, catering for inexperienced users and veterans alike. Target release: 2021
HTML
47
star
32

yomi

Yet one more installer
Python
41
star
33

trollolo

Trello command line client
Ruby
40
star
34

MirrorCache

Download Redirector
Perl
35
star
35

get-o-o

Website that provides detailed information about openSUSE distributions
HTML
34
star
36

docker-containers-build

openSUSE container builds used by Docker's stackbrew system
33
star
37

cheetah

Simple library for executing external commands safely and conveniently
Ruby
32
star
38

obs-docu

Official Open Build Service Documentation. Content gets reviewed and edited. Generated books are available at http://www.openbuildservice.org
32
star
39

obs-service-tar_scm

An OBS source service: fetches code from any SCM and archives it
Python
31
star
40

branding

openSUSE branding for the distribution - both branding-openSUSE and branding-baseonopensuse
29
star
41

supportutils

SUSE Linux Enterprise support utilities. Gathers system information.
Shell
28
star
42

cepces

cepces is an application for enrolling certificates through CEP and CES.
Python
28
star
43

scanny

Scanny — Ruby on Rails security scanner
Ruby
27
star
44

libstorage-ng

Next generation libstorage
C++
25
star
45

cavil

The legal review app used by SUSE Lawyers
Perl
25
star
46

vagrant

openSUSE for Vagrant
Shell
25
star
47

helm-mirror

Helm plugin used to mirror repositories
Go
24
star
48

salt-toaster

Salt Toaster: An ultimate test suite for Salt
Python
24
star
49

health-checker

Systemd service to check, if the system does come up correct after an update
Shell
24
star
50

multipath-tools-pre2021

Old (pre-2021) SUSE/SLES fork of Linux multipath tools. See github.com/openSUSE/multipath-tools for current code.
C
24
star
51

ca-certificates

Utilities for system wide CA certificate installation
Python
23
star
52

fuel-ignition

Easily generate new or edit existing Ignition configs. No more fiddling around with JSON or Butane.
Vue
23
star
53

wiki

openSUSE Wiki
PHP
23
star
54

salt

openSUSE and SUSE patches and backports for SaltStack
Python
22
star
55

python-rpm-macros

Multi-Python, Single-Spec macros generator
Lua
21
star
56

news-o-o

📰 News from the openSUSE Land
HTML
21
star
57

rapidquilt

Rust
20
star
58

mksusecd

Script to create a SUSE installation ISO image.
Perl
19
star
59

IBus-Theme-Hub

This is the hub for IBus theme that can be used by Customize IBus GNOME Shell Extension.(可被自定义IBus GNOME Shell 扩展使用的IBus主题集合)
CSS
19
star
60

kdump

kernel dump helpers
Shell
19
star
61

vagrant-ceph

Builds a cluster of servers using libvirt. Supports multiple configurations.
Ruby
17
star
62

osc2

The next Command Line Interface to work with an openSUSE Build Service
Python
17
star
63

kmozillahelper

KDE mozilla integration
C++
17
star
64

gfxboot

Graphical boot screen for GRUB, LILO, and SYSLINUX
HTML
17
star
65

linuxrc

Installation Setup
C
16
star
66

installation-images

openSUSE Installation Images
Perl
16
star
67

obs-landing

The Open Build Service project landing page
HTML
16
star
68

travel-support-program

A rails app to support the travel support program of openSUSE (TSP)
Ruby
16
star
69

old-landing-page

Former opensuse.org landing page
JavaScript
15
star
70

obs-service-cargo_vendor

OBS Source Service and utilities for Rust software packaging
Rust
15
star
71

gitarro

run all your test against a GitHub Pull request
Ruby
15
star
72

IBus-Theme-Tools

Generate the IBus GTK or GNOME Shell theme from existing themes. (从现有主题中生成 IBus GTK 或 GNOME Shell 主题)
Python
15
star
73

nailed

Collect and visualize product related data from Bugzilla and Github
Ruby
14
star
74

suse-vale-styleguide

Humble style guide for technical writers by a technical writer
14
star
75

containers-systemd

Systemd service files to run various openSUSE containers by systemd and podman
13
star
76

opensuse-themes

Themes used in openSUSE and OBS
Makefile
13
star
77

obsgit

Simple bridge between Open Build Server and git
Python
13
star
78

firefox-maintenance

Shell
13
star
79

orthos2

Orthos is a machine administration tool.
Python
13
star
80

chameleon

openSUSE Design System for Web
SCSS
13
star
81

jeos-firstboot

Lightweight firstboot wizard systemd service for SLE and openSUSE JeOS Images
Shell
12
star
82

sdbootutil

Shell
12
star
83

gloves

System configuration library, started by YaST developers
Ruby
12
star
84

obs-sign

sign daemon and client for remote gpg signing.
C
12
star
85

portusctl

A client for your Portus instance
Go
12
star
86

combustion

Configure MicroOS on the first boot
Shell
12
star
87

obs-service-format_spec_file

An OBS source service: reformats a spec file to SUSE standard
Python
12
star
88

suseviclient

SUSE VI Client: Lightweight tool for ESXi management from Linux box
JavaScript
11
star
89

suse-xsl

DocBook XSL Stylesheets for SUSE branding
XSLT
11
star
90

defrag-api

Python
11
star
91

openSUSE-repos

openSUSE-repos
11
star
92

os-update

Update automatically package based OS and reboot if necessary
Shell
11
star
93

perl-bootloader

Perl modules for configuring various boot loaders
Perl
11
star
94

cockpit-wicked

Cockpit module to configure the network using Wicked.
JavaScript
11
star
95

build-compare

Compare content of rpm package and find differences inside the files.
Shell
11
star
96

sat-solver

Library for solving packages and reading repositories (superseded by libsolv)
C
10
star
97

patterns

openSUSE patterns
Python
10
star
98

sysconfig

Shell
10
star
99

release-notes-openSUSE

Release Notes for openSUSE
Makefile
10
star
100

Mojo-IOLoop-ReadWriteProcess

Execute external programs or internal code blocks as separate process
Perl
9
star