Использование файла mk.conf - OpenBSD - BSD - Каталог статей - Игры под Ос Линукс
Воскресенье, 20.05.2012, 07:10 Приветствую Вас Гость

Cайт посвящённый играм под Linux

Меню сайта
Форма входа
E-mail:
Пароль:
Категории раздела
PC-BSD [22]
OpenBSD [12]
solaris [67]
FreeBSD [40]
Поиск
Главная » Статьи » BSD » OpenBSD

Использование файла mk.conf

        Рассмотрим некоторые варианты использования mk.conf на примере набора для облегчения жизни site.tar.gz. Данный набор состоит собственно из файла mk.conf и набора патчей, используемых им в своих целях. Данный набор можно установить в свою систему и дополнять по мере надобности. Для установки достаточно скачать файл site.tar.gz и выполнить следующие команды:

        # cd /etc
        # tar xfz <путь-до-файла>/site.tar.gz
        # ln -sf site/mk.conf .

После установки данного набора остается только отредактировать файл mk.conf и настроить его под свои нужды (рассматриваемые в данной статье настройки могут отличаться от настроек в текущей версии site.tar.gz):

# Настройки собираемой системы.
#
SKEY?=                 Yes            # Включать поддержку S/Key
KERBEROS5?=            Yes            # Включать поддержку Kerberos V
YP?=                   Yes            # Включать поддержку NIS
TCP_WRAPPERS?=         Yes            # Включать поддержку libwrap и tcpd
AFS?=                  Yes            # Включать поддержку AFS

Данные настройки определяют, какие стандартные компоненты должны быть включены в собираемую из исходных текстов систему.

NOPROFILE?=            No              # Не собирать profiled библиотеки

Данные настройки определяют, нужно ли собирать profiled библиотеки.

CRUNCH?=               No             # Собирать crunchgen и crunchide

Данная настройка определяет, нужно ли собирать crunchgen и crunchide, необходимые для сборки дистрибутива OpenBSD.

# Настройки suexec для хостинга
#
PATCH_SUEXEC?=         Yes            # Научить suexec понимать login.conf
SUEXEC_DOCROOT?=       /home/www      # Корневой каталог серверов
SETUID_SUEXEC?=        Yes            # Устанавливать как setuid

Данные настройки определяют, требуется ли поддержка login классов в suexec, корневой каталог для документов с точки зрения suexec и следует ли его устанавливать как setuid программу (необходимо, если планируется использование suexec).

SENDMAIL_SASL?=        No             # Включить поддержку SASL2
#SENDMAIL_LIBMILTER?=  No             # Включить поддержку libmilter
#INSTALL_LIBMILTER?=   No             # Устанавливать libmilter

Данные настройки определяют, следует ли собирать sendmail с поддержкой SASL2 для использования возможности авторизации SMTP (в системе должен быть установлен порт secuity/cyrus-sasl2, а также следует ли включить поддержку Milter API и устанавливать библиотеку libmilter (обычно требуется для почтовых антивирусных программ и некоторых спам-фильтров). Начиная с OpenBSD 3.6, последние две настройки не нужны, так как libmilter всегда собирается и устанавливается.

# Разрешение авторизации в ppp по PostgreSQL базе
#
# Авторизация по PostgreSQL включается в ppp.conf командой
# set postgres ["conninfo"].
#
# В базе должна присутствовать таблица как минимум со следующими полями:
#
# CREATE TABLE ppp (
#       authname       VARCHAR(32)    NOT NULL UNIQUE,
#       authkey        TEXT,
#       hisaddr        TEXT,
#       label          TEXT,
#       enabled        BOOLEAN        NOT NULL DEFAULT TRUE
# );
#
# Типы TEXT/VARCHAR взаимозаменяемы.
#
PPP_PGSQL?=            No             # Разрешить авторизацию по PostgreSQL

Данная настройка определяет, следует ли включать в ppp поддержку авторизации по PostgreSQL базе данных.

# Разное
#
PATCH_MOUNT?=          Yes            # Патчить mount с целью слегка
#                                     # укоротить кое-какие надписи
PATCH_MODLOAD?=        Yes            # Заставляет работать modload так,
#                                     # как он и должен работать :)
PATCH_LOCALE?=         Yes            # Подпатчить libc на предмет LC_CTYPE,
#                                     # дабы подружить ru XKB и X программы

Данные настройки определяют, следует ли патчить mount (на предмет укорачивания некоторых сообщений), modload (на предмет спасения системы от краха, если был загружен кернел не из /bsd) и libc (на предмет locale, чтобы подружить XKB и старые X программы).

# Качать distfiles для портов сначала отсюда
#
MASTER_SITE_OVERRIDE?= ftp://pdp-11.org.ru/pub/OpenBSD/distfiles/${DIST_SUBDIR}/

Данная настройка позволяет указать сервера, которые должны просматриваться в первую очередь в поисках distfiles для портов.

PIPE?=                 -pipe          # Использовать pipes вместо /tmp при
#                                     # компиляции

Данная настройка заставляет gcc использовать unix pipes вместо временных файлов в /tmp.

SUDO?=                 /usr/bin/sudo  # sudo (для make build)

Устанавливает переменную SUDO, которая используется при сборке от лица простого пользователя, входящего в группу wsrc.

SITEDIR?=              /etc/site      # Где все это лежит
BSDSRCDIR?=            /usr/src       # Где находится src
BSDOBJDIR?=            /usr/obj       # Где находится obj
PORTSDIR?=             /usr/ports     # Где находится ports

Данный настройки указывают расположение исходных текстов системы, дерева портов и других каталогов, используемых при сборке.

# Научка GQmpeg конвертировать windows-1251 заголовки в koi8-r
#
.if ${.CURDIR} == ${PORTSDIR}/audio/gqmpeg
CONFIGURE_ARGS+=       --enable-russian
.endif

Данный фрагмент включает автоматическую перекодировку заголовков MP3 файлов windows-1251 в koi8-r в программе GQMpeg, собираемой из порта audio/gqmpeg.

# Установка IRC сервера по умолчанию для BitchX и IrcII на irc.pdp-11.org.ru
#
.if ${.CURDIR} == ${PORTSDIR}/net/ircII || ${.CURDIR} == ${PORTSDIR}/net/bitchx
CONFIGURE_ARGS+=       --with-default-server=irc.pdp-11.org.ru
.endif

Данный фрагмент устанавливает IRC сервер по умолчанию для ircII и BitchX, собираемых из портов net/ircII и net/bitchx соответственно.

# Научка ipfm запускать несколько копий и создавать pidfile в виде
# /var/run/ipfm-<interface>.pid
#
.if ${.CURDIR} == ${PORTSDIR}/net/ipfm
post-patch:
        @${PATCH} ${PATCH_ARGS} < ${SITEDIR}/patches/ipfm.patch
.endif

Данный фрагмент исправляет порт net/ipfm, добавляя в него поддержку одновременной работы с несколькими сетевыми интерфейсами. При этом PID файл будет создаваться в виде /var/run/ipfm-<интерфейс>.pid

# Отучка courier-imap писать IPv4->IPv6 mapped адреса в логе (и от IPv6 :)
#
.if ${.CURDIR} == ${PORTSDIR}/mail/courier-imap
CONFIGURE_ARGS+=       --without-ipv6
.endif

Данный фрагмент убирает из логов все, что похоже на IPv6 для порта mail/courier-imap.

# Улучшение SPAM-protect feature в hypermail
#
.if ${.CURDIR} == ${PORTSDIR}/mail/hypermail
post-patch:
        @${ECHO_MSG} "===>  Applying SPAM-protect patch"
        @cd ${WRKSRC} && ${PATCH} -sp0 < ${SITEDIR}/patches/hypermail.patch
.endif

Данный фрагмент улучшает spamprotect feature для порта mail.hypermail. При этом вместо почтовых адресов в HTML документах будут фигурировать только имена пользователей без указания почтовых доменов.

# Грязный хак для sylpheed, чтобы subject не поганил
# (не нужен, если выше включена опция PATCH_LOCALE).
#
#.if ${.CURDIR} == ${PORTSDIR}/mail/sylpheed
#post-patch:
#       @${ECHO_MSG} "===>  Applying ugly charset hack"
#       @cd ${WRKSRC} && ${PATCH} -sp0 < \
#              ${SITEDIR}/patches/sylpheed-charset.patch
#.endif

Данный фрагмент с помощью грубой физической силы заставляет порт mail/sylpheed писать поле Subject по-русски. Криво, но на безлокальи сойдет. :) Данный хак не нужен, если используется настройка PATCH_LOCALE.

# Включение поддержки SSL в postgresql. Начиная с OpenBSD 3.6, поддержка
# уже включена в порте.
#
#.if ${.CURDIR} == ${PORTSDIR}/databases/postgresql
#CONFIGURE_ARGS+=      --with-openssl=/usr
#.endif

Данный фрагмент свключает поддержку SSL для порта databases/postgresql. Начиная с OpenBSD 3.6, поддержка SSL включена в порте сразу.

# Запись IP адреса PPTP клиента в env PPTP_CLIENT для poptop.
#
.if ${.CURDIR} == ${PORTSDIR}/net/poptop
post-patch:
        @${ECHO_MSG} "===>  Applying PPTP_CLIENT env patch"
        @cd ${WRKSRC} && ${PATCH} -sp0 < ${SITEDIR}/patches/poptop.patch
.endif

Данный фрагмент заставляет порт net/poptop записывать адрес клиента в переменную PPTP_CLIENT. Данную переменную можно затем использовать в скриптах /etc/ppp/ppp.linkup и /etc/ppp/ppp.linkdown.

.if ${.CURDIR} == ${BSDSRCDIR}/usr.sbin/httpd && defined(PATCH_SUEXEC) \
    && ${PATCH_SUEXEC:U} == YES && ${.CURDIR} != ${.OBJDIR}
prereq: ${.OBJDIR}/config.status
        @echo "Patching suexec..."
        @sh ${SITEDIR}/patches/suexec.sh ${SUEXEC_DOCROOT}
.endif
 
.if ${.CURDIR} == ${BSDSRCDIR}/usr.sbin && defined(SETUID_SUEXEC) && \
    ${SETUID_SUEXEC:U} == YES
afterinstall:
        @chmod u+s ${DESTDIR}/usr/sbin/suexec
.endif

Данный фрагмент занимается разборками с suexec на тему вышеописанных настроек.

.if ${.CURDIR} == ${BSDSRCDIR}/gnu/usr.sbin/sendmail/sendmail && \
    exists(/usr/local/include/sasl/sasl.h) && \
    defined(SENDMAIL_SASL) && ${SENDMAIL_SASL:U} == YES
ENVDEF+=               -DSASL -I/usr/local/include/sasl
LDADD+=                -L/usr/local/lib -lsasl2
.endif
 
# Начиная с OpenBSD 3.6, libmilter автоматически собирается и
# устанавливается.
#.if ${.CURDIR} == ${BSDSRCDIR}/gnu/usr.sbin/sendmail && \
#    defined(SENDMAIL_LIBMILTER) && ${SENDMAIL_LIBMILTER:U} == YES
#WANT_LIBMILTER=               1
#.if !make(install)
#SUBDIR:=              libmilter ${SUBDIR}
#.elif defined(INSTALL_LIBMILTER) && ${INSTALL_LIBMILTER:U} == YES
#SUBDIR:=              libsm libmilter ${SUBDIR} 
#
#afterinstall:
#       install -o ${BINOWN} -g ${BINGRP} -m ${DIRMODE} -d \
#           ${DESTDIR}/usr/include/libmilter
#       install -o ${BINOWN} -g ${BINGRP} -m ${NONBINMODE} \
#           ${.CURDIR}/include/libmilter/*.h ${DESTDIR}/usr/include/libmilter
#.endif
#.endif
#
#.if (${.CURDIR} == ${BSDSRCDIR}/gnu/usr.sbin/sendmail/libmilter || \
#    ${.CURDIR} == ${BSDSRCDIR}/gnu/usr.sbin/sendmail/sendmail) && \
#    defined(SENDMAIL_LIBMILTER) && ${SENDMAIL_LIBMILTER:U} == YES
#WANT_LIBMILTER=               1
#.endif

Разборки с sendmail на тему вышеописанных настроек.

# Разборки с ppp
#
.if ${.CURDIR} == ${BSDSRCDIR}/usr.sbin/ppp/ppp && defined(PPP_PGSQL) && \
    ${PPP_PGSQL:U} == YES && exists(/usr/local/lib/libpq.a) && \
    ${.CURDIR} != ${.OBJDIR}
CFLAGS+=               -DPOSTGRES -I/usr/local/include/postgresql
CFLAGS+=               -I${.CURDIR}
CLEANFILES+=           auth.c auth.c.orig bundle.h bundle.h.orig
CLEANFILES+=           command.c command.c.orig
 
DPADD+=                /usr/local/lib/libpq.a ${LIBSSL} ${LIBCRYPTO}
LDADD+=                /usr/local/lib/libpq.a -lssl -lcrypto
 
beforedepend: auth.c.orig bundle.h.orig command.c.orig
 
auth.c.orig bundle.h.orig command.c.orig:
.if !defined(SITE_REENTER)
        @echo "Applying PostgreSQL authentication patch..." && \
            cp ${.CURDIR}/auth.c ${.CURDIR}/bundle.h ${.CURDIR}/command.c \
               ${.OBJDIR} && \
            patch -sp0 < ${SITEDIR}/patches/ppp-pgsql.patch && \
            cd ${.CURDIR} && ${MAKE} depend SITE_REENTER=Yes
.endif
.endif

Разборки с PPP на предмет включения поддержки PostgreSQL авторизации.

# Разборки с mount
#
.if ${.CURDIR} == ${BSDSRCDIR}/sbin/mount && defined(PATCH_MOUNT) && \
    ${PATCH_MOUNT:U} == YES && ${.CURDIR} != ${.OBJDIR}
CFLAGS+=               -I${.CURDIR}
CLEANFILES+=           mount.c mount.c.orig
 
beforedepend: mount.c.orig
 
mount.c.orig:
.if !defined(SITE_REENTER)
        @echo "Patching mount..." && \
            cp ${.CURDIR}/mount.c ${.OBJDIR} && cd ${.OBJDIR} && \
            patch -sp0 < ${SITEDIR}/patches/mount.patch && \
            cd ${.CURDIR} && ${MAKE} depend SITE_REENTER=Yes
.endif
.endif

Разборки с mount на предмет укорачивания сообщений.

# Разборки с modload
#
.if ${.CURDIR} == ${BSDSRCDIR}/sbin/modload && defined(PATCH_MODLOAD) && \
    ${PATCH_MODLOAD:U} == YES && ${.CURDIR} != ${.OBJDIR}
 
CFLAGS+=               -I${.CURDIR}
CLEANFILES+=           modload.8 modload.8.orig modload.c modload.c.orig
 
beforedepend: modload.8.orig modload.c.orig
 
modload.8.orig modload.c.orig:
.if !defined(SITE_REENTER)
        @echo "Patching modload..." && \
            cp ${.CURDIR}/modload.8 ${.CURDIR}/modload.c ${.OBJDIR} && \
            cd ${.OBJDIR} && patch -sp0 < ${SITEDIR}/patches/modload.patch && \
            cd ${.CURDIR} && ${MAKE} depend SITE_REENTER=Yes
.endif
.endif

Разборки с modload на предмет использования /dev/ksyms вместо /bsd и предотвращения краха при использовании в системе, загруженной не из /bsd.

# Разборки с локалью
#
.if ${.CURDIR} == ${BSDSRCDIR}/lib/libc && defined(PATCH_LOCALE) && \
    ${PATCH_LOCALE:U} == YES && ${.CURDIR} != ${.OBJDIR}
CLEANFILES+=            setlocale.c setlocale.c.orig
 
beforedepend: setlocale.c.orig
 
setlocale.c.orig:
.if !defined(SITE_REENTER)
        @echo "Patching locale..." && \
            cp ${.CURDIR}/locale/setlocale.c ${.OBJDIR} && cd ${.OBJDIR} && \
            patch -sp0 < ${SITEDIR}/patches/locale-hack.patch && \
            cd ${.CURDIR} && ${MAKE} depend SITE_REENTER=Yes
.endif
.endif

Разборки с локалью с целью подружить XKB и старые X программы, не умеющие им пользоваться.

# Разборки с игрушками
#
.if ${.CURDIR} == ${BSDSRCDIR} && defined(NO_GAMES) && ${NO_GAMES:U} == YES
SKIPDIR+=      games
.endif
 
# Разборки с библиотеками
#
.if defined(NO_PROFILE) && ${NO_PROFILE:U} == YES && \
    ${.CURDIR:C/^${BSDSRCDIR}\/lib\///1} != ${.CURDIR}
NOPROFILE=
.endif

Разборки с играми и profiled библиотеками на предмет надобности их собирать и устанавливать.

# Разборки с crunch
#
.if ${.CURDIR} == ${BSDSRCDIR} && defined(CRUNCH) && ${CRUNCH:U} == YES && \
    !make(obj) && !make(clean) && !make(cleandir)
SUBDIR+=       distrib/crunch
.endif

 

Категория: OpenBSD | Добавил: Lorg_Andre (11.04.2010)
Просмотров: 182 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *:
Архив записей
Библиотека минотавра
Мини-чат
200
Статистика
... Хостинг от uCoz