Создаем порт для FreeBSD своими руками. Часть I :: Ачилов Рашид
Страница: 6 из 8 | |||
| ||||||||||||||
| ||||||||||||||
КАТЕГОРИИ КНИГПОСЛЕДНИЕ ОТЗЫВЫ О КНИГАХМихаил (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) СЛУЧАЙНОЕ ПРОИЗВЕДЕНИЕкогда мне выдали билет из врат небесных,напутствуя: -ну что ж,иди - живи... багаж мой был:следы от бывших крыльев, и свежий шрам посеянной души. и не было проклятий или гнева - к чему роптать на собственных детей... и мой исход,конечно,не был первым- за горьким опытом пожить среди людей... и Ты,спасибо,отпустил - но не оставил.... >> 28.08.10 - 20:45 Хотите чтобы ваше произведение или ваш любимый стишок появились здесь? добавьте его! |
Что нам советуют сейчас? Добавить поддержку параметра WITHOUT_NLS для тех, кто не хочет устанавливать файлы языковых сообщений и увеличить количество зеркал, на которых размещен данный файл. Здесь надо заметить, что любой дистрибутив порта после его принятия в систему дополнительно зеркалится на сайте проекта FreeBSD, так что замечание о дополнительных зеркалах мы игнорируем, а вот замечание о WITHOUT_NLS исправим. Для этого добавим в Makefile следующий код: .if defined(WITHOUT_NLS) PLIST_SUB+= NLS="@comment " .else USE_GETTEXT= yes PLIST_SUB+= NLS="" .endif а в файле pkg-plist изменим строки, описывающие файлы языковой поддержки таким образом: %%NLS%%share/locale/bg/LC_MESSAGES/libkickermenu_contactsmenu. mo %%NLS%%share/locale/br/LC_MESSAGES/libkickermenu_contactsmenu. mo %%NLS%%share/locale/da/LC_MESSAGES/libkickermenu_contactsmenu. mo %%NLS%%share/locale/de/LC_MESSAGES/libkickermenu_contactsmenu. mo %%NLS%%share/locale/ga/LC_MESSAGES/libkickermenu_contactsmenu. mo %%NLS%%share/locale/fr/LC_MESSAGES/libkickermenu_contactsmenu. mo %%NLS%%share/locale/pt/LC_MESSAGES/libkickermenu_contactsmenu. mo %%NLS%%share/locale/sv/LC_MESSAGES/libkickermenu_contactsmenu. mo Как это будет работать? Параметр PLIST_SUB содержит список подстановок, которые выполняются, когда система обрабатывает файл pkg-plist. Если при сборке порта будет задан параметр «WITHOUT_NLS=yes», то в pkg-plist будет подставлено значение, превращающее строки с «%%NLS%%» в строки комментария. Обратите внимание, что в этом случае зависимость от devel/gettext не вставляется. В противном случае NLS принимает значение пустой строки, и зависимость от devel/gettext вставляется. Этот прием (модификация pkg-plist в зависимости от параметров сборки порта) является очень широко распространенным. Запускаем portlint еще раз, получаем одно замечание про MASTER_SITES, которое игнорируем. Осталось создать файл distinfo. Это просто. Система сама его создаст, если ее об этом попросить: # make makesum Созданный файл имеет следующий вид: MD5 (34479-contactsmenu-0.3.4b.tar.bz2) = 65af4e3103c906edl3508bflb2dd217a SHA256 (34479-contactsmenu-0.3.4b.tar.bz2) = 88e05096b2f9C8d659be61daed5e6da977a056033a52c79789dade217709afee SIZE (34479-contactsmenu-0.3.4b.tar.bz2) = 457076 Теперь пробуем собрать программу, используя порт. Для проверки правильности составления файла pkg-plist в качестве корневого каталога сборки назначим /tmp/1 (после деинсталляции программы не должно оставаться файлов или каталогов, которые она создает). # make PREFIX=/tmp/l => Vulnerability check disabled, database not found => Extracting for contactsmenu-0.3.4b => MD5 Checksum OK for 34479-contactsmenu-0.3.4b.tar.bz2. => SHA256 Checksum OK for 34479-contactsmenu-0.3.4b.tar.bz2. => Patching for contactsmenu-0.3.4b => contactsmenu-0.3.4b depends on file: /usr/XllR6/qt33/bin/moc - found => contactsmenu-0.3.4b depends on executable: gmake - found => contactsmenu-0.3.4b depends on shared library: kfontinst - found => contactsmenu-0.3.4b depends on shared library: kimproxy - found => contactsmenu-0.3.4b depends on shared library: intl - found => Configuring for contactsmenu-0.3.4b => Building for contactsmenu-0.3.4b cd: can't cd to /usr/ports/mail/contactsmenu/work/34479-contactsmenu-0.3.4b *** Error code 2 Stop in /usr/ports/mail/contactsmenu. Вот мы и получили первую ошибку. Она связана с некоторой бестолковостью имен дистрибутивных файлов на http://www.kde-apps.org, когда сам файл имеет имя с числом впереди, а каталог, упакованный внутри него, - без этого числа. Для решения этой проблемы следует указать системе, что имя каталога, в которую будет распакован дистрибутив, будет задано вручную. После (!!) переменной MAINTAINER впишем следующую строчку: WRKSRC= $/$-$ указывая таким образом, что дистрибутив будет распакован в каталог с именем, состоящим из имени и номера версии пакета. Повторяем сборку. Сборка проходит нормально. Запускаем установку. Видим, что в каталоге /tmp/1 появились все нужные файлы. Создаем пакет с помощью pkg_create (хотя можно то же самое проделать через make package): # cd /var/db/pkg # pkg_create -b contactsmenu-0.3.4b Проверяем файл +CONTENTS внутри архива - под каждой строчкой, описывающей файл программы, должна располагаться строчка комментария с контрольной суммой: Iib/kde3/kickermenu_contactsmenu.so @comment MD5:fd3cf198770bac4elb8453f3ba2d6f90 Iib/kde3/kickermenu_contactsmenu.la @comment MD5:4de2541c36ea248066aecb851aedbbe5 Если такой строчки нет - значит, в файле pkg-plist ошибка - при установке файл не был найден. |
ИНТЕРЕСНОЕ О ЛИТЕРАТУРЕ
ТОП 20 КНИГ
ТОП 20 АВТОРОВ
| ||||||||||||
|