Замечание: оригинал этого документа новее, чем перевод.

Переносы ] [ Debian GNU/Hurd ] [ Новости ] [ Настройка ] [ Компакт-диски Hurd ] [ Документация ] [ Разработка ] [ Как связаться ]

Debian GNU/Hurd

Разработка дистрибутива

Создание пакетов с ПО Hurd

Специфичные для Hurd пакеты сопровождаются в рамках команды https://salsa.debian.org/hurd-team/.

Перенос пакетов Debian

Если вы хотите помочь переносу Debian GNU/Hurd, вам следует познакомиться с системой создания пакетов Debian. После того, как вы прочтёте доступную документацию и посетите Уголок разработчика, вы будете знать, как распаковывать пакеты Debian с исходным кодом и собирать пакеты Debian. Для ленивых людей имеется ускоренный курс:

Получение исходного кода и сборка пакетов

Вы можете получить исходный код, просто выполнив команду apt source package, эта команда также развернёт исходный код.

Для распаковки пакета Debian с исходным кодом требуется файл package_version.dsc и указанные в нём файлы. Вы создаёте каталог Debian для сборки с помощью команды dpkg-source -x package_version.dsc

Сборка пакета происходит в созданном каталоге Debian для сборки package-version с помощью команды dpkg-buildpackage -B "-mMyName <MyEmail>". Вместо -B вы можете использовать -b, если также хотите собрать независимые от архитектуры части пакета (однако обычно это бесполезно, так как они уже имеются в архиве, а для их сборки могут потребоваться дополнительные зависимости). Вы можете добавить -uc, чтобы не подписывать пакет вашим ключом pgp.

Для сборки могут потребоваться дополнительные пакеты. Проще всего выполнить команду apt build-dep package, которая установит все требуемые пакеты.

Удобно испольовать pbuilder. Пакет может быть собран с помощью команды sudo pbuilder create --mirror http://deb.debian.org/debian-ports/ --debootstrapopts --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg --debootstrapopts --extra-suites=unreleased --extrapackages debian-ports-archive-keyring, затем можно использовать команду pdebuild -- --binary-arch, которая загрузит сборочные зависимости и др., а потом поместит результат в /var/cache/pbuilder/result.

Выберите пакет

Над каким пакетом нужно поработать? Ну, над любым пакетом, который ещё не был перенесён, но должен быть перенесён. Список таких пакетов постоянно меняется, поэтому предпочтительно сконцентрироваться в первую очередь на пакетах с большим количеством обратных зависимостей, список таких пакетов можно посмотреть на графике зависимости пакетов https://people.debian.org/~sthibault/graph-radial.pdf, обновляемом каждый день, либо в списке наиболее желаемых пакетов https://people.debian.org/~sthibault/graph-total-top.txt (это список пакетов, желаемых в далёкой перспективе, список пакетов, желаемых в короткой перспективе находится здесь: https://people.debian.org/~sthibault/graph-top.txt). Неплохо также выбрать какой-нибудь пакет из списков устаревших пакетов https://people.debian.org/~sthibault/out_of_date2.txt и https://people.debian.org/~sthibault/out_of_date.txt, поскольку обычно они работают, но сломаны в настоящий момент лишь вероятно из-за пары каких-то причин. Вы также можете случайным образом выбрать один из отсутствующих пакетов, либо посмотреть журналы автоматической сборки в списке рассылки debian-hurd-build-logs, либо использовать список пакетов, которые требуют доработки https://people.debian.org/~sthibault/failed_packages.txt .

Также проверьте, может быть работа по переносу какого-то пакета уже выполнена, см. https://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse, https://alioth.debian.org/tracker/?atid=411594&group_id=30628&func=browse, систему отслеживания ошибок (https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-hurd@lists.debian.org;tag=hurd) и https://wiki.debian.org/Debian_GNU/Hurd, а также статус пакетов на buildd.debian.org, напр. https://buildd.debian.org/util-linux.

Пакеты, которые не будут перенесены

Некоторые из этих пакетов или их части могут быть перенесены позже, но в настоящее время они считаются по меньшей мере непереносимыми. Обычно они помечены как NotForUs в базе данных buildd.

Общие проблемы переноса

Список общих проблем доступен на веб-сайте основной ветки разработки. Следующие общие проблемы специфичны для Debian.

До того, как предпринять попытку исправить что-то, проверьте, может быть в переносе на kfreebsd* это уже исправлено и нужно лишь распространить это решение на hurd-i386.

Изучение и работа с программой установки Debian

Чтобы создать ISO-образ, проще всего начать с существующего образа, размещённого на странице CD-образов Hurd. Его можно примонтировать и скопировать:

 
mount debian-sid-hurd-i386-NETINST-1.iso /mnt
cp -a /mnt /tmp/myimage
umount /mnt
chmod -R +w /tmp/myimage

Далее, можно примонтировать начальный ram-диск и, например, заменить какой-то транслятор на ту версию, которая вам нужна:

 
gunzip /tmp/myimage/initrd.gz
mount /tmp/myimage/initrd /mnt
cp ~/hurd/rumpdisk/rumpdisk /mnt/hurd/
umount /mnt
gzip /tmp/myimage/initrd

Теперь можно заново собрать iso с помощью grub-mkrescue:

 
rm -fr /tmp/myimage/boot/grub/i386-pc
grub-mkrescue -o /tmp/myimage.iso /tmp/myimage