2gusia (2gusia) wrote,
2gusia
2gusia

Category:

Забавы с патчами портов FreeBSD на примере seafile

Последние два вечера я развлекался гикпорно с seafile. Переписывался с майнтайнером и пытался собирать. Вечером 23-го даже удалось. Но должен признаться, что как раз сейчас крайне неудачное время для установки seafile на FreeBSD. Накопилось огромное число измнений, частично они приняты (последнее - 23-его же), частично ждут чвоего часа. Частично - пишутся. К примеру свежак пришёл уже после того, как я всё собрал :)

Так что нормальному юзеру стоит дождаться, пока всё это будет проверено и принято. Ну а я решил записать опыт своего бега в мешке боком на тот случай, если в будущем понадобится - а то забуду же. Может и ещё кому пригодится. На seafile свет клином не сошёлся, а именно так апдейтится ещё куча софта.

Сначала надо найти патчи. В случае seafile их расположение мне дал майнтайнер

seafile - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203933
ccnet https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208979
libsearpc - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205669
seahub - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203929
seafile-gui - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203934
py-seafdav - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205122
py-seafobj - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205123

Причём на вчера и на сегодня патчи разные - уже изменилось.

Потом создаём где-то папку для патчей
mkdir /patch

Идём по каждой из ссылок и ищем ссылку на diff файл

В данном случе ссылка https://bugs.freebsd.org/bugzilla/attachment.cgi?id=169608 а дата обновления - 23 апреля 19:49 UTC. Как раз тот случай, когда стоит подождать следующих патчей и не бежать впереди паровоза. :)

Ну а мы идём в нашу папку для патчей
cd /patch
и грузим туда все требуемые патчи по одному, например

fetch --no-verify-peer "https://bugs.freebsd.org/bugzilla/attachment.cgi?id=169608" -o "seafile.diff"

Дальше патчи нужно перенести в дерево портов, а оно для это должно быть создано
portsnap fetch extract

а, если создано не только что - то приведено в актуальное состояние. Даже вчерашнее дерево - старое. (оказалось)
portsnap fetch upgrade

Для перенесения патчей есть простой способ
patch -i "/patch/seafile.diff" -d "/usr/ports"

А есть продвинутый - специальной утилитой portest
pkg install portest

и из папки, где лежат патчи
portest -p *.diff

Если ругается - что-то не так.

Можно откатиться
portest -r

Но я предпочитаю играть с отдельным датасетом на jail. Перед значительными именениями - создавть снапшот (можно гуем). А когда что-то идёт не так - откатывать через zfs rollback

Ну так мы все патчи в дерево перенесли - можно (помолясь) пытаться собирать порты.

cd /usr/ports/www/seahub
make config-recursive
make install clean

Для seafile я сначала собирал ccnet, потом, когда собралось, наконец, seafile и наконец - seahub. В принципе, сборка seahub включает в себя и два предыдущих шага.

Tags: cloud, jail, nas, nas4free
Subscribe

  • С чем и поздравляем

    Президент Владимир Путин поздравил участников команды Team Spirit с победой на чемпионате мира по Dota-2. Телеграмма опубликована на сайте Кремля.…

  • Мне-таки стыдно ходить с вами по одной Одессе

    Депутат Госдумы Виталий Милонов заявил в эфире радиостанции "Говорит Москва": «...незамужним россиянкам вообще нужно запретить ездить в Турцию»…

  • Но паразиты - никогда!

    Рекламная компания выборов достучалась и до меня. (вон сегодня Гугл с Эппл к раздаче подтянулись, отчитались об изъятии приложения Навальный). Решил…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 7 comments