Меня часто спрашивают как применить патч (исправление) от разработчика порта в системе портов.
В системе FreeBSD применяем патч к порту так, должен быть файл с расширением .diff.
В нем будут указаны правки какие добавятся и какие удалять в текущем порту.
Приступим, разработчик предоставил исправления в виде файла nginx.diff с исправлениями порта www/nginx в системе FreeBSD.
# cat /mnt/nginx.diff diff --git a/www/nginx/Makefile b/www/nginx/Makefile index fbb21e6a1d..0b08c5cf37 100644 --- a/www/nginx/Makefile +++ b/www/nginx/Makefile @@ -1,6 +1,6 @@ PORTNAME= nginx PORTVERSION= 1.22.1 -PORTREVISION?= 1 +PORTREVISION?= 2 PORTEPOCH= 3 CATEGORIES= www
Я указал пример по содержанию файлов исправлений.
Применяем его так.
Сначала положим файл nginx.diff в корневую директорию портов /usr/ports/
Теперь запустим правки к порту.
# cd /usr/ports/ && patch -p1 < nginx.diff Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/www/nginx/Makefile b/www/nginx/Makefile |index fbb21e6a1d..0b08c5cf37 100644 |--- a/www/nginx/Makefile |+++ b/www/nginx/Makefile --------------------------
Вот и все, порт исправлен (пропатчен), осталось пересобрать сам порт.
# cd /usr/ports/www/nginx/ && make reistall clean
Вот и вся небольшая инструкция как в FreeBSD применяем патч к порту.
FreeBSD обновления портов с помощью git
gitup получаем ports и исходники системы
FreeBSD очистка портов от ненужного хлама