Создаем порт для FreeBSD своими руками. Часть II :: Ачилов Рашид
Страница: 6 из 7 | |||
| ||||||||||||||
| ||||||||||||||
КАТЕГОРИИ КНИГПОСЛЕДНИЕ ОТЗЫВЫ О КНИГАХМихаил (19.04.2017 - 06:11:11) Антихрист666 (18.04.2017 - 21:05:58) Ладно, теперь поспешили вы... (18.04.2017 - 20:50:34) Роман (18.04.2017 - 18:12:26) АНДРЕЙ (18.04.2017 - 16:42:55) СЛУЧАЙНОЕ ПРОИЗВЕДЕНИЕЗеленоглазая, холодная, седая... 13.05.10 - 05:18 Хотите чтобы ваше произведение или ваш любимый стишок появились здесь? добавьте его! |
endif
# When USE_INFRA_PATCHSET was defined, ensure, # that INFRA_PATCHER was also defined .if defined(USE_INFRA_PATCHSET) INFRA_PATCHER= $/$/$/do_infrapatch .endif Для работы с файлом трансляции интерфейса потребуется начальная обработка его программой transex3, что и задается соответствующим параметром. Также устанавливается имя скрипта, который запустит эту программу. Это небольшой скрипт, который будет создан автоматически. Кроме того, задается имя распакованного файла трансляции элементов интерфейса и имя программы, которая будет использована для наложения патчей. Переходим к реальным действиям: .if defined(USE_RUSSIAN_GSI) @$ "===> Extracting russian GSI file" @$ $/$ @$ $/$/gsi-$-sorted.txt.bz2 $/$ @cd $/$ && \ $ -d gsi-$-sorted.txt.bz2 .endif .if defined(USE_INFRA_PATCHSET) @$ "===> Extracting Infra patches set" @$ $/$ @$ $/$/$.tar.gz $/$ @cd $/$ && \ $ -xzvf $.tar.gz .endif Копируем упакованный файл трансляции интерфейса из /usr/ports/distfiles/openoffice (задана DIST_SUBDIR) в каталог, который был создан заранее, и распаковываем его архиватором bzip2. Копируем архив патчей «Инфра-Ресурс» в другой, предварительно созданный каталог и распаковываем его, но уже программой tar. Обратите внимание, что все команды параметризированы, – всюду используется $, а не /bin/program! post-patch: .if defined(USE_INFRA_PATCHSET) @$ "===> Patching OOo with Infra patches set" @cd $/$/$ && \ $ $ .endif Дополняем мишень patch подмишенью post-patch, в которой собственно и запускаем скрипт, вносящий изменения. Обратите внимание – записать это в две строки нельзя! Если записать команды cd и запуск скрипта на разных строках, то запуск скрипта произойдет не из каталога, в который перешли командой cd, а из текущего, потому что make, выполнив запрошенное действие, возвращается в каталог, из которого она была запущена. Точно так же выполняются все другие действия, связанные со сменой каталога, – например распаковка файлов. .if defined(PREBUILD_TRANSEX3) @$ "===> Pre-build TRANSEX3" @$ "source $/FreeBSDEnv.Set" > $ @$ "cd transex3 && build --all && deliver" >> $ @$ +x $ @cd $ && PATH="$:$/bin:$/sbin" && $ $ .endif .if defined(USE_RUSSIAN_GSI) @$ "===> Build russian GSI" @cd $ && PATH="$:$/bin:$/sbin" && $ -c 'source FreeBSDEnv.Set && localize -m -i ru-RU -l $ -f $' .endif Первая часть задает предварительную сборку программы transex3, для чего формируется скрипт, затем осуществляется переход в каталог с распакованными исходниками и запуск сборки. Обратите внимание, как передается значение переменной PATH. Вторая часть задает обработку исходных текстов OpenOffice согласно новому файлу локализации интерфейса. Полный текст Makefile из editors/openoffice-1.1 с внесенными мной изменениями можно скачать с [3] . Этот файл уже не используется как файл порта, но как образец написания Makefile, там есть чему поучиться. Некоторые переменные USE_* Здесь описаны некоторые наиболее часто используемые переменные USE_*, не упомянутые до сих пор. Полный список их значительно больше, смотреть его нужно в bsd.port.mk. • IGNOREFILES= <список файлов> – задает список файлов, для которых не выполняется проверка контрольной суммы из distinfo. • EXTRACT_ONLY=yes – только распаковать файлы дистрибутива, не выполнять никакой работы по сборке. Как правило, в таком порту применяется заменяющая подмишень do-install. • RESTRICTED=yes – запрещает помещать собранный пакет на FTP или распространять на CD-ROM. Как правило вследствие лицензионных ограничений. Это не такая уже редкость, например такое ограничение имеет виртуальная машина Java. • NO_CDROM=yes – почти то же самое, только разрешает помещение на FTP. • FORBIDDEN=yes – запрещает сборку из-за уязвимостей программы. • IGNORE=yes – запрещает сборку из-за грубых ошибок при сборке программы. |
ИНТЕРЕСНОЕ О ЛИТЕРАТУРЕ
ТОП 20 КНИГ
ТОП 20 АВТОРОВ
| ||||||||||||
|