Создаем порт для FreeBSD своими руками. Часть I - [4]
То есть в нашем случае:
Iib/kde3/kickermenu_contactsmenu.so
Iib/kde3/kickermenu_contactsmenu.la
share/apps/kicker/menuext/contactsmenu.desktop
share/locale/bg/LC_MESSAGES/libkickermenu_contactsmenu.mo
share/locale/br/LC_MESSAGES/libkickermenu_contactsmenu.mo
share/locale/da/LC_MESSAGES/libkickermenu_contactsmenu.mo
share/locale/de/LC MESSAGES/libkiekemenu contactsmenu.mo
share/locale/ga/LC_MESSAGES/libkickermenu_contactsmenu.mo
share/locale/fr/LC_MESSAGES/libkickermenu_contactsmenu.mo
share/locale/pt/LC_MESSAGES/libkickermenu_contactsmenu.mo
share/locale/sv/LC MESSAGES/libkiekemenu contactsmenu.mo
то есть одна динамическая библиотека, один файл .desktop и восемь файлов локализации. Тут надо заметить, что, как правило, с файлами локализации в KDE сплошная морока - их бывает по 20-30 шт. Но пропустить, случайно или намеренно, какой-либо файл нельзя - порт будет впоследствии отослан на тестирование во FreeBSD Team, где проверят все этапы его установки и удаления, и если после удаления в каталоге будут обнаружены оставшиеся файлы, то майнтайнер порта получит сообщение об ошибке, не устранив которую, он никогда не увидит своего порта принятым.
Во второй части файла pkg-plist перечисляются команды, которые необходимо выполнить системе при деинсталляции программы. Как правило, это команды удаления каталогов, которые могли быть созданы в процессе инсталляции. Если в команде упоминается каталог, который к моменту выполнения деинсталляции непустой - он не будет удален.
@dirrm share/locale/bg/LC_MESSAGES
@dirrm share/locale/bg
@dirrm share/locale/br/LC_MESSAGES
@dirrm share/locale/br
@dirrm share/locale/da/LC_MESSAGES
@dirrm share/locale/da
@dirrm share/locale/de/LC_MESSAGES
@dirrm share/locale/de
@dirrm share/locale/ga/LC_MESSAGES
@dirrm share/locale/ga
@dirrm share/locale/fr/LC_MESSAGES
@dirrm share/locale/fr
@dirrm share/locale/pt/LC_MESSAGES
@dirrm share/locale/pt
@dirrm share/locale/sv/LC_MESSAGES
@dirrm share/locale/sv
Опять упоминаются в основном каталоги для сообщений, потому что их могло и не быть. Здесь опять же нельзя пропустить ни одного каталога, который создается исключительно данной программой и больше никем не используется.
Файл pkg-descr
Как уже говорилось выше, это просто текстовый файл с небольшим описанием того, что делает данная программа. Чтобы не сочинять самому описание, в нашем случае мы просто берем описание, приведенное автором на странице kde-apps и заносим его в этот файл, сопровождая ссылкой на собственно страницу программы (файл см. на сайте журнала в разделе «Исходный код»).
На этом этап первоначального формирования файлов можно считать законченным. Мы еще не сформировали distinfo, но он формируется автоматически после того, как порт будет проверен. Переходим к проверке порта.
Для проверки правильности написания файлов порта существует специальная программа portlint, которую необходимо установить каждому, кто собирается заниматься разработкой собственных портов. Это небольшой скрипт, написанный на языке Perl, устанавливается он из devel/portlint:
cd /usr/ports/devel/portlint
make all install
После установки запускаем portlint в текущем каталоге с ключами, которые включают все возможные проверки:
# portlint -abvtAN
. . .
WARN: /usr/ports/mail/contactsmenu/pkg-plist [4]: installing gettext translation files, please define USE_GETTEXT as appropriate
. . .
0 fatal errors and 9 warnings found.
Здесь приведена часть вывода portlint, в которой выводится замечание. В последней строке приводится итог - сколько ошибок и сколько замечаний было обнаружено. Отмечу сразу, что необходимо добиться устранения всех ошибок и желательно всех замечаний. В данном случае portlint предупреждает о том, что устанавливаются файлы сообщений gettext, но в порт не включено неявной зависимости от devel/gettext (это может привести к невозможности работы с данными файлами). Для исправления данной ситуации добавляем в секцию USE_* строку «USE_GETTEXT=YES» и повторно запускаем portlint.
# portlint -abvtAN
. . .
WARN: Makefile: Consider adding support for a WITHOUT_NLS knob to conditionally disable gettext support.
. . .
WARN: Makefile: only one MASTER_SITE configured. Consider adding additional mirrors.
. . .
0 fatal errors and 2 warnings found.
Что нам советуют сейчас? Добавить поддержку параметра 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
В учебно-методическом пособии рассматриваются основы языка программирования PL/SQL, реализованного в системе управления базами данных Oracle Database Server. Приводятся сведения о поддерживаемых типах данных, структуре программ PL/SQL и выполнении SQL-предложений в них. Отдельно рассмотрено создание хранимых в базах данных Oracle программ PL/SQL – процедур, функций, пакетов и триггеров.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИИнформационная технологияРУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯInformation technology. Guidelines for the management of software documentationИздание официальноеДата введения 1994-07-01ГОССТАНДАРТ РОССИИ Москва© Издательство стандартов, 1994.
Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы.