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

  • Работаем

    Пригласили меня организаторы выступить на форуме « Шаг в будущее: искусственный интеллект и цифровая экономика» на тему роботизации. Но не срослось.…

  • Моя цифровая полиграфия

    По работе. Добили выпуск нашего корпоративного издания Собственно, если кому-то интересно как выглядит современная цифровая полиграфия. Инфа почти…

  • Zero - чумовой японский резак по гофре

    Цифровая печать - явление массовое. А вот цифровая высечка, особенно на листах гофрокартона типа 2х3 метра на сегодня медленная как телега. Кладем…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 7 comments