URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 60324
[ Назад ]

Исходное сообщение
"Обновление портов. Параметры для CONFIGURE_ARGS в make.conf...."

Отправлено SerK , 23-Сен-05 17:33 
Суть вопроса:
Хочу, чтобы инсталляция порта проходила с заранее определенными параметрами.

Пример:
Если я хочу проинсталлировать php4 (дефолтная конфигурация меня не устраивает), то:

1. правлю /usr/ports/lang/php4/Makefile, а именно
добавляю нужные параметры
CONFIGURE_ARGS+=--with-mysql

2. устанавливаю PHP с нужными мне параметрами, определенными в Makefile
make deinstall install clean

Способ рабочий, но слегка муторный. Много портов, требующих специфические недефолтные настройки, частые критические уязвимости, частый апгрейд то одного порта то другого...  Makefile с нужной конфигурацией живет до первого обновления портов через cvsup, а затем приходится его править вновь.

Правда я нашел способ. Ведь для установки заранее заданных переменных можно использовать /etc/make.conf . Он инклудится при вызове make из /usr/share/mk/sys.mk даже до вызова Makefile, имеет тот же синтаксис что и Makefile.
В итоге получается следующая картина в /etc/make.conf :

.if ${.CURDIR} == "/usr/ports/lang/php4"
WITH_MYSQL=yes
.endif

И это работает! Но вот если в make.conf поместить

.if ${.CURDIR} == "/usr/ports/lang/php4"
CONFIGURE_ARGS+=--with-mysql
.endif

то это работать не будет, поскольку позже в Makefile переменная CONFIGURE_ARGS переопределится:

CONFIGURE_ARGS= --enable-versioning \
<...>

ВОПРОС:  Как предопределить параметры вида  --with-mysql (a не WITH_MYSQL) в /etc/make.conf ?



Содержание

Сообщения в этом обсуждении
"Обновление портов. Параметры для CONFIGURE_ARGS в make.conf...."
Отправлено SerK , 27-Сен-05 09:09 
^^up^^

"Обновление портов. Параметры для CONFIGURE_ARGS в make.conf...."
Отправлено funkblaster , 27-Сен-05 10:16 
Сначала ставишь cd /usr/ports/lang/php4
make install clean WITH_MYSQL=yes
Затем ставишь portupgrade и куришь pkgtools.conf на предмет MAKE_ARGS и вносишь туда WITH_MYSQL=yes.
При дальнейших апгрейдам порта, он будет собираться с заданными в pkgtools.conf опциями.


"Обновление портов. Параметры для CONFIGURE_ARGS в make.conf...."
Отправлено SerK , 27-Сен-05 11:02 
>Сначала ставишь cd /usr/ports/lang/php4
>make install clean WITH_MYSQL=yes
>Затем ставишь portupgrade и куришь pkgtools.conf на предмет MAKE_ARGS и вносишь туда
>WITH_MYSQL=yes.
>При дальнейших апгрейдам порта, он будет собираться с заданными в pkgtools.conf опциями.
>
Да, все это прекрасно работает, когда речь идет о параметрах вида WITH_MYSQL
Ну а если к примеру мне необходимо скомпилить порт с:
--with-config-file-scan-dir=/usr/local/etc/php
По идее должен соответствовать параметр WITH_CONFIG_FILE_SCAN_DIR, но не катит с ним.
Как мне прописать параметр вида --with-config-file-scan-dir в pkgtools.conf или make.conf?

"Обновление портов. Параметры для CONFIGURE_ARGS в make.conf...."
Отправлено Askon , 28-Ноя-06 17:30 
>>Сначала ставишь cd /usr/ports/lang/php4
>>make install clean WITH_MYSQL=yes
>>Затем ставишь portupgrade и куришь pkgtools.conf на предмет MAKE_ARGS и вносишь туда
>>WITH_MYSQL=yes.
>>При дальнейших апгрейдам порта, он будет собираться с заданными в pkgtools.conf опциями.
>>
>Да, все это прекрасно работает, когда речь идет о параметрах вида WITH_MYSQL
>
>Ну а если к примеру мне необходимо скомпилить порт с:
>--with-config-file-scan-dir=/usr/local/etc/php
>По идее должен соответствовать параметр WITH_CONFIG_FILE_SCAN_DIR, но не катит с ним.
>Как мне прописать параметр вида --with-config-file-scan-dir в pkgtools.conf или make.conf?

Про pkgtools.conf не знаю, самому было бы интересно узнать. Я делал так:
1. Смотрим какие файлы использует make - make -n -V .MAKEFILE_LIST
2. В любой из файлов который идет после Makefile порта (я делал в /usr/share/mk/bsd.port.pre.mk) вставляю:
.if ${.CURDIR:M*/usr/ports*}
.include "/etc/ports.conf"
.endif
3. В /etc/ports.conf прописываю нужные мне аргументы:
.if ${.CURDIR:M*/www/apache*}
CONFIGURE_ARGS+=--enable-suexec
.....
.....
.endif
4. При отладке полезно коммандой make -n - посмотреть что же все-таки будет делать make.


"Обновление портов. Параметры для CONFIGURE_ARGS в make.conf...."
Отправлено leksey , 02-Мрт-10 19:20 
чтобы просунуть в configure можно использовать это прямо в строке

cd /usr/ports/lang/php5
make CONFIGURE_ARGS+="--with-layout=PHP" install clean


"Обновление портов. Параметры для CONFIGURE_ARGS в make.conf...."
Отправлено Александр , 20-Май-10 16:10 
>чтобы просунуть в configure можно использовать это прямо в строке
>
>cd /usr/ports/lang/php5
>make CONFIGURE_ARGS+="--with-layout=PHP" install clean

Если так сделать, то переменная CONFIGURE_ARGS вообще перетрется и будет только запись из ком. строки, т.е., в данном случае, будет --with-layout=PHP и все. Все, что было прописано в Makefile до этого будет переписано одним единственным параметром. А надо, чтобы все, что есть сохранилось и только добавилось, что написал.

Так что вопрос открытый.


"Обновление портов. Параметры для CONFIGURE_ARGS в make.conf...."
Отправлено Аноним , 20-Май-10 18:27 
>[оверквотинг удален]
>>cd /usr/ports/lang/php5
>>make CONFIGURE_ARGS+="--with-layout=PHP" install clean
>
>Если так сделать, то переменная CONFIGURE_ARGS вообще перетрется и будет только запись
>из ком. строки, т.е., в данном случае, будет --with-layout=PHP и все.
>Все, что было прописано в Makefile до этого будет переписано одним
>единственным параметром. А надо, чтобы все, что есть сохранилось и только
>добавилось, что написал.
>
>Так что вопрос открытый.

по идее нет, параметры будут дополнены, ну можешь еще создать файл:
/usr/ports/lang/php5/Makefile.local
в который добавить:
CONFIGURE_ARGS+= --with-layout=PHP


"Обновление портов. Параметры для CONFIGURE_ARGS в make.conf...."
Отправлено Аноним , 20-Май-10 18:55 
>по идее нет, параметры будут дополнены, ну можешь еще создать файл:
>/usr/ports/lang/php5/Makefile.local
>в который добавить:
>CONFIGURE_ARGS+= --with-layout=PHP

собирать при этом как обычно: make install clean