Минимальный набор для packager-а:

sudo zypper in osc build rpm-build rpmlint spec-cleaner rpmdevtools quilt
sudo zypper in obs-service-download_files obs-service-recompress obs-service-set_version

osc хранит конфигурацию в ~/.config/osc/oscrc; старый путь ~/.oscrc ещё встречается в документации. Пароль в файле конфигурации защищай правами, лучше включай keyring, если он доступен.

Пример oscrc:

[general]
apiurl = https://api.opensuse.org
packagecachedir = /var/tmp/osbuild-packagecache
build-root = /var/tmp/build-root/%(repo)s-%(arch)s
build-jobs = 4
extra-pkgs = gdb less strace tmux vim

[https://api.opensuse.org]
user = LOGIN
aliases = obs
use_keyring = 1

Типовая локальная сборка:

osc co devel:tools foo
cd devel:tools/foo
osc build openSUSE_Tumbleweed x86_64 foo.spec --clean
osc build openSUSE_Leap_16.0 x86_64 foo.spec
osc build openSUSE_Leap_16.0 aarch64 foo.spec --vm-type=qemu

Сборка aarch64 на x86_64 требует настроенного qemu/binfmt; если это не настроено, проверяй через OBS worker.

Отладка:

osc results
osc buildlog openSUSE_Tumbleweed x86_64
osc build openSUSE_Tumbleweed x86_64 foo.spec --noinit
osc chroot openSUSE_Tumbleweed x86_64
less /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/.build.log

brp-check-suse запускается после %install через RPM build root policy scripts, post-build-checks выполняются build script-ом, rpmlint запускается после сборки. Если build упал до RPM-файлов, смотри .build.log; если упал на проверках, смотри конец build log и rpmlint output.

Где искать дополнительно