Ключевые слова:port, freebsd, (найти похожие документы)
Date: Sat, 31 Jan 2004 12:26:20 +0500
From: Sergey Matveychuk <[email protected]>
Newsgroups: ftn.ru.unix.bsd
Subject: Изменения в портах после выхода FreeBSD 5.2
И так, после выхода релиза 5.2 portmgr в лице Joe Marcus Clarke
([email protected]) после предварительного тестирования внес большой
набор исправлений/дополнений в систему сборки портов.
Всего этого еще нету в porters-handbook.
Самые заметные из них:
*** Добавлен новый макрос OPTIONS.
Ранее, для сборки порта с определенными параметрами пользователю нужно
было внимательно изучать Makefile на наличие различных WITH_*, WITHOUT_*
и, возможно, других переменных. Конечно, большинство портов выводили эти
переменные перед скачиванием или сборкой дистрибутива. Hо было все равно
не удобно. Скорее всего они быстро проскакивали и не давали возможности
их изучить. И в любом случае сборку порта необходимо было прервать, что
бы определить эти переменные в командной строке.
Теперь же маинтейнер может определить все переменные в макросе
OPTIONS. Hапример так:
OPTIONS= MYSQL "Enable MySQL support" on
Здесь MYSQL - имя для использованием в WITH_ или WITHOUT_. В нашем
примере это бы выглядело как WITH_MYSQL и WITHOUT_MYSQL. Далее идет
описание переменной и ее установка по-умолчанию. "on" соответсвует
установке WITH_XXX=yes и "off" - WITHOUT_XXX=yes.
В нашем примере по умолчанию определяется WITH_MYSQL=yes, то есть
поддержка MySQL включена.
При установке такого порта пользователю выдается диалоговое окно (c
помощью dialog(1)) со всеми возможными для этого порта параметрами.
Пользователь может выбрать необходимые ему параметры, после чего они
сохранятся в соответствующем этому порту файле -
/var/db/ports/имя_порта/options. Этот файл будет использован при
последующих сборках. То есть вам не надо беспокоится и вспоминать опции,
с которыми вы собирали порт при его обновлении!
Если же вас это не устраивает, вы можете вернуться к старому поведению
просто определив BATCH=yes, скажем, в /etc/make.conf.
Это наиболее существенное изменение и, как мне кажется, огромное
облегчение для всех пользователей портов. Поздравляю!
Теперь осталось только дождаться, когда все порты переедут на новую схему.
*** Теперь в файле distinfo может хранится не только контрольная сумма
файлов, но и их размер.
Я, наверное, как и многие, давно этого хотел - сначала посмотреть какой
же объем надо скачать, что бы установить порт.
С другой стороны, если скачен битый файл, у которого не совпала
контрольная сумма, система сборки не будет пытаться его докачивать.
В будущем, есть возможность реализовать нечто типа fetch-recursive-size,
что бы узнать общий объем со всеми портами, от которых данный порт зависит.
Капелька дегтя: это все работает только при установленной переменной
USE_SIZE. Hо в дальнейшем планируется (патч уже готов), что бы эта
возможность была включена по-умолчанию.
Hовые distinfo файлы уже потихоньку коммитятся.
=== не такие заметные и багфиксы:
* возможность определять WITHOUT_CPU_FLAGS для сборки портов
* RANDOMIZE_MASTER_SITES=yes не работало на -CURRENT
* при проверке CONFLICTS учитывается PREFIX. Так что теперь вы можете
установить два конфликтующих порта с различными префиксами.
* добавлены новые категории: accessibility и x11-themes
* оптимизированы по скорости:
- GNU configure за счет определения фиксированного
CONFIGURE_MAX_CMD_LEN. Ранее скрипт configure мог "зависать" до
нескольких минут при определении максимального размера командной строки.
- security check phase. Это то, что происходит после установки порта
- проверка на опасные функции и пр. Теперь выполняется быстрее.
=== для маинтейнеров
* добавились новые PLIST_DIRS и PLIST_FILES. Теперь вместе с PORTDOCS,
которая появилась ранее, для не больших портов можно совсем избавится от
pkg-plist!
* появились переменные для использования ghostscript: USE_GHOSTSCRIPT,
GHOSTSCRIPT_PORT и пр.
* цель configure разделилась на две - run-autotools и собственно
configure. Это сделано, что бы можно было корректно запускать aclocal,
если нужно, а так же переопределить run-autotools для запуска automake,
autoconf и не трогать configure:
* добавлено очень много переменных для команд, которых раньше не было:
${SORT}, ${PAX}, ${UNZIP_CMD}, ${CPIO} и много других. Hапомню, что
использование команд шел, а не этих пременных не одобряется.
*** Еще несколько мелких изменений, но я уже запарился печатать, а вы,
наверное, читать :)
Для затравки, скажу еще, что появился новый интересный порт -
security/portaudit. Checks installed ports against a list of security
vulnerabilities. Остальное копайте сами.
PS. Прошу прощения за возможные ошибки и, возможно, не точные
определения. Писал в большой спешке, времени на проверку и
редактирования нет.