Архивы: ports

apache + php

В связи с очередной дырой в php, пришлось проапгрейдить 5.3.6 до 5.3.7. Естественно при этом использовался portupgrade. apache начал падать по 6-му сигналу.

Оказалось (я как бы давно подозревал, но не думал, что все настолько плохо), что апач с php падает или не падает в зависимости от порядка экстеншнов в extensions.ini.

Добрые люди подсказали скрипт, который располагает экстеншны в правильном порядке. Там же, внутри скрипта информация о том, откуда собирались идеи о «правильном порядке».

http://people.freebsd.org/~ohauer/scripts/fixphpextorder.sh

FreeBSD + Perl 5.10=>5.12 + dependencies

# grep ^PERL_VERSION /usr/ports/Mk/bsd.perl.mk
PERL_VERSION?=  5.12.3

В связи с чем встал вопрос о пересборке всего, что зависит от перла. Но как оказалось, на моём рабочем десктопе — такового — 512 из 1139 пакетов, включая Xorg, firefox, openoffice и прочие, казалось бы никак не связанные с перлом пакеты.

Копание приводит к выводу, что все эти «непонятные» пакеты прямо или косвенно используют devel/glib20, который, в свою очередь требует Perl для выполнения в одном месте генерилки кода из темплейта.

gio/makefile.msc:       $(PERL) ..\gobject\glib-mkenums —template gioenumtypes.h.template $(gio_headers) > gioenumtypes.h
gio/makefile.msc:       $(PERL) ..\gobject\glib-mkenums —template gioenumtypes.c.template $(gio_headers) > gioenumtypes.c

После изучения этого самого glib-mkenums можно сделать вывод, что особо в нём ничего недостижимого для sed+awk+sh нет, в 90% случаев регекспы вида s/zuka/buka/.

В связи с этим возникает вопрос адекватности авторов glib, которые не смогли/не захотели реализовать это на sed+awk+sh и заставили ради трёх строчек кода тащить весь Perl.