openSUSE Build Service 2.0.5

Наконец переехал у себя с OBS 1.7 на 2.0. OBS — это, пожалуй, единственное ПО, которое я ставлю из пакета, делаю как в инструкции, и... и все падает с какими-то не информативными странными ошибками.

Начать следует с того, что, насколько я понял, эта штука теперь научилась работать с gpg2, поэтому gpg 1.4.5 со специальным патчем "files_are_digests" можно выкинуть. Не забыв при этом подправить путь к gpg в /etc/sign.conf

Порадовало, что наконец в пакет добавили конфиги для logrotate, теперь логи не вырастают до невиданных размеров.

Теперь более интересное. В связи с тем, что рабочие научились самостоятельно создавать себе образы дисков, в /etc/sysconfig/obs-worker добавлено очень много новых опций. В нем же можно изменить рабочую директорию (теперь по умолчанию /var/cache/obs/worker), размеры образов, количество памяти для виртуальной машины и указать её тип. В нем же мне пришлось обратить пристальное внимание на OBS_VM_KERNEL и OBS_VM_INITRD, у меня ничего не заработало пока я их не исправил:
OBS_VM_KERNEL="/boot/vmlinuz"
OBS_VM_INITRD="/boot/initrd-virtio"
Дело в том, что я предпочитаю использовать build с KVM. И, к сожалению, build не смог самостоятельно найти нужные образы для загрузки без явного указания этих параметров. Кстати, файл /boot/initrd-virtio (initrd с поддержкой virtio) делает сам скрипт build, так что не надо удивляться откуда он взялся.

Обновление на openSUSE 11.3.

По мотивам прошлогодней повести. При попытке обновиться с DVD ничего не отвалилось.

Kernel Module Packages

Ссылки на существующую документацию, политки и примеры по созданию пакетов с модулями ядра для разных дистрибутивов:


Комментарии. "Novell Kernel Module Packages Manual for CODE 11" и driverupdateprogram.com от RedHat кажутся оба совместимы с вариантом от LinuxFoundation. Fedora считает что все модули которые нужны, уже есть в ядре и поэтому пакеты с модулями вообще не нужны.

grub: загрузчик для образа диска

Иногда нужно по какой-то причине записать загрузчик прямо в образ диска, где расположены готовая таблица разделов и какие-то файловые системы. Можно использовать losetup для привязки образа к блочному устройству и затем kpartx для того, чтобы отобразить разделы, которые есть в образе на отдельные устройства пригодные для монтирования.

Запускаем (по всей видимости в окружении chroot) grub и начинаем командовать:

device (hd0) /dev/loop0

(или куда у образ подключен)

Далее опционально, например:

root (hd0,1)

(или какой раздел корневой)

setup --stage2=/boot/grub/stage2 (hd0)

(или где располагается загрузчик)

metztli

metztli is my own analogue of debootstrap tool for openSUSE. A set of shell scripts that makes openSUSE installation from scratch for you. It is something like KIWI but less complex and less customizable. I made small images (about 250 Mb) for embedded industrial computers with metztli.

You can see HTML version of man page.

Checkout the code from subversion:
svn co svn://curl.sai.msu.ru/metztli/branches/zypper metztli

gcc: ICE: tree check

Оставлю это здесь, в качестве шутки: исходный код, который я пишу, настолько суров, что помогает выявлять баги(всего один баг на самом деле) в компиляторах:
Интересно, в какие дистрибутивы вошел gcc 4.5.0?

openSUSE@ARM

Оказывается, после того как OBS научился собирать пакеты под самые хитрые архитектуры, возникла логичная идея портировать openSUSE на ARM (v5 и v7). Некоторые пакеты уже доступны: http://download.opensuse.org/repositories/Ports:/ARM:/, есть описание в виде презентации на openSUSE conference '09. В ней же, объяснено о том, что такое прозрачная кросс-компиляция.

Ожидается, что к концу лета будет доступен полностью портированный openSUSE 11.2. В свете того, что на июль запланирован выход 11.3 следует ожидать, что вскоре будет готова и эта версия. В данный момент архитектура ARM в различных вариантах используется во множестве встраиваемых устройств, промышленных компьютеров, мобильных телефонов, в то же время и в некоторых моделях нетбуков.