«мой первый порт в OpenBSD» - вольный перевод

вольный перевод статьи My first OpenBSD port
homing-on-code.blogspot.de/2015/01/my-first-openbsd-port.html

Мой первый порт для OpenBSD...

... только что успешно приземлился в дереве портов. Сама гонка мне понравилась, и этот пост - краткое изложение впечатлений, как в первый раз успешно приземлиться. Хочу заметить, что это не учебник, просто мои личные переживания (в переводе буратины) от того, что мой первый порт влился в дерево.

OpenBSD впервые завёлся у меня 7 декабря 2014 года. Первые нескколько недель я посвятил тому, чтобы изучить эту систему, и тут мне очень помогла книжка «Michael W. Lucas - Absolute OpenBSD, 2nd edition». Также я подписался на рассылки, чтобы быть в курсе того, как живёт и разрабатывается эта система. Достаточно освоившись, я пересел на -CURRENT (в основном - в бинарном виде, через snapshot).

С самых первых дней я хотел портировать Otter для OpenBSD. Мне нравится этот браузер, он выглядит многообещающе, он активно развивается, и меня впечатлило его развитие за год. Но был один маленький недостаток - отсутствие порта Qt5 в OpenBSD. Я проверял 'pkg_add -Q qt5' время от времени, и в один прекрасный день вместо традиционного «опять ты?» система смирилась, и отдала мне qt5. Тогда я и занялся портированием.

Начал я с прощупывания разработчиков Otter на предмет наличия отсутствия OpenBSD-шников - чтобы не дублировать работу, если кто уже начал портирование.

Узнав, что я такой один, что я сделал первый шаг на эту опасную дорогу, и попытался это собрать. Сейчас я понимаю, что это немного неверное решение, так инфраструктура портов OpenBSD берёт на себя множество проблем, которые я решал вручную. Некоторые из проблем были связаны с самим портом Qt, поэтому 25 декабря я составил список проблем и пошёл разбираться в ports@. К тому времени у меня была рабочая, но падучая версия.

http://marc.info/?t=141953939000001&r=1&w=2

По мотивам моих выступлений «что сказал компилятор» было исправлено небезопасное использование API - это хорошо, это порядок. Но, что ещё лучше, - была обнаружена ошибка в самом Qt5, которая ломала загрузку GTK из-за захардкоженых версий библиотек. Знающие люди потом доложили, что баг зарепорчен в апстрим - тот самый баг, который привёл к двум самым ужасающим крахам в моей отдельно взятой сборке (падало на изменении размера окна или выдвижении подоконника)

я тут нифига не понял, о чём идёт речь - это одна ошибка или две разных. даю, как есть

The compiler warnings I reported resulted in a review of the Qt5 port for insecure API usage - which is nice. Though the biggest win at that point was detecting a bug in Qt5 that failed to load GTK due to hard coded library versions. Later down in the thread another user pointed out a bug he reported upstream to Qt developers - that bug was responsible for the two biggest crashes I hit with Otter (crash on modal dialog/window resize).

Моя слабенькая музейная i386 отказалась компилировать весь qt5, сославшись на более важные дела на этот год-два, поэтому я дождался, когда в снапшотах появится бинарная qt5 со всеми исправленными проблемами.

Вообще, в OpenBSD есть чёбые вещи для новичков портового фронта. Porters Handbook охватывает почти всё, что нужно для успешного портирования. Я прочёл его весь, и прошёл указанные там примеры по шагам.

Также неоценимую помощь мне оказали ответы на мой первый e-mail - мне не пришлось изобретать всё с нуля, люди поделились готовыми модулями портовой инфраструктуры для gcc4, CMake и Qt - это сэкономило много времени на первоначальную подготовку, освоение и погружение.

Служение портам не терпит суеты. Своим портом я занимался примерно раз в неделю по вечерам. И 13 января у меня был рабочий порт, который я отправил в рассылку ports@ для ревью. И началось великое обсуждение между мною, опытными портовиками и разработчкиками. И были тонны фидбека. И был порт. И 24 января он успешно приземлился в дерево.

Меня всё ещё напрягало, что программа падала у zhuk@ с его настройками [и у меня - прим. бур.], но в упор не хотела падать у меня. Но вместе с этим я был горд, что мой порт, сложенный из опер и слов....

    # cvs -q up -Pd
    P Makefile
    U otter-browser/Makefile
    U otter-browser/distinfo
    U otter-browser/patches/patch-CMakeLists_txt
    U otter-browser/pkg/DESCR
    U otter-browser/pkg/PLIST

Что дальше? Это очевидно. Маинтайнить, чекать репорты, фиксить баги, и радоваться тому, как хорошо в стране OpenBSD-шной жить. Также я начал засматриваться на другие порты, которые пролетают в рассылке.

http://marc.info/?t=142189020100001&r=1&w=2

Почему я решил этим заняться? Ну, во-первых - мне нужен Otter, и теперь он у меня есть. Во-вторых - держи ноги в тепле, а порты - в актуальности, и тогда жизнь сразу наладится. Люди любят свежие и интересные порты, они помогают им нежно окунуться в мир OpenBSD, а не бултыхаться в разбегу в воду с каких-то древних соооружений.

А тестирование портов не занимает много времени, но если никто не будет тестировать порты - они не попадут в дерево, и жизнь пройдёт мимо них.

Я буду продолжать дело портирования. Будучи большим вентилятором (по другим вариантам перевода - фанатом) Fallout, я хочу добавить falltergeist.org и уже начал заниматься этим.

http://marc.info/?t=142118894500001&r=1&w=2

Porting. Porting never changes...