"Создаем порт для FreeBSD своими руками" - читать интересную книгу автора (Ачилов Рашид)В RUN_DEPENDS перечисляются все порты, от которых зависит данный скрипт, а именно GNU AWK, sudo и Samba, из которой на самом деле нужна только программа findsmb. "USE_BZIP2=yes" указывает на то, что дистрибутив упакован программой bzip2. "NO_BUILD=yes" указывает на то, что программа не требует сборки. Если этого не указать, то система будет пытаться выполнить команду make в каталоге порта, не найдет Makefile и аварийно завершится. Инсталляцией порт управляет самостоятельно - в Makefile присутствует заменяющая подмишень do-install. Здесь хорошо видно, как можно организовать цикл, который установит несколько файлов, перечисленных в списке, в указанное место. После первого цикла, который устанавливает собственно скрипты идет команда создания каталога для документации - система сама не будет делать ничего, все необходимые каталоги должны быть созданы портом. Такая странная форма записи команды означает что: ∙ если команда завершается неудачно, например, такой каталог уже существует, то make не прекращает работу (минус перед командой); ∙ команда не отображается на терминале (знак @ перед командой). Потом идет второй цикл, который устанавливает файлы примеров в каталог, который для этого предварительно создается, создается каталог документации и в него копируется файл README.FreeBSD. Команда sed подготавливает файл pkg-message к отображению. В файле, который распространяется вместе с портом присутствует макроподстановка %%EXAMPLESDIR%%, которая, перед тем как это сообщение будет показано пользователю, заменяется на значение переменной ${EXAMPLESDIR}. Чтобы не будет проходить с другим значением ${EXAMPLESDIR}), старый файл сохраняется, измененный файл удаляется, старый файл переименовывается в оригинальное имя. Порт несложный, но он демонстрирует, как можно использовать заменяющие подмишени. При создании таких портов следует быть предельно внимательными - помните, что любой каталог, не входящий в стандартное дерево каталогов, описанное в bsd.local.mk, имеет право не существовать и должен быть предварительно создан. Модификация порта OpenOffice 1.1.4 С моей точки зрения, порт для сборки OpenOffice editors/openoffice имел множество недостатков, но эти изменения я никогда не пробовал отправить во FreeBSD Team для помещения их в дерево портов. Какие изменения были внесены мной: ∙ возможность отказаться от сборки Mozilla Suite, нужной только для работы с адресной книгой формата Mozilla; ∙ возможность загрузить и применить последний (на тот момент) файл локализации интерфейса; ∙ возможность загрузить и применить внешние патчи, созданные в "Инфра-Ресурс" для версии для Linux. Порт на самом деле состоит из двух файлов - editors/openoffice-1.1 и russian/openoffice. Makefile порта russian/openoffice-1.1 достаточно прост: CATEGORIES= russian |
|
|