3. Инструментарий
Раздел руководства по RPM-пакетированию для openSUSE.
Минимальный набор для 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.