>>Порты ВСЕ время в развитии. Какая проблема зайти в директорию doc
>>и посмотреть Makefile и найти в чем ошибка, после чего сделать patch
>
>Да я там уже рылся... не смог понять, в чем дело, вот
>и решил совета спросить. Ладно, спасибо, погляжу еще.
делов на ДВЕ копейки:
[alone]/mnt/pub/ftp/ports/mail/dovecot > make
...
Making all in doc
-e:No such file or directory
*** Error code 1
Stop in /mnt/pub/ftp/ports/mail/dovecot.
[alone]/mnt/pub/ftp/ports/mail/dovecot >
смотрим внимательно:
[alone]/mnt/pub/ftp/ports/mail/dovecot > make -n
...
(cd /mnt/pub/ftp/ports/mail/dovecot/work/dovecot-1.0.beta3; /usr/bin/env SHELL=/bin/sh PORTOBJFORMAT=elf NO_LINT=YES PREFIX=/usr/local LOCALBASE=/usr/local X11BASE=/usr/X11R6 MOTIFLIB="-L/usr/X11R6/lib -lXm -lXp" LIBDIR="/usr/lib" CFLAGS="-O2 -fno-strict-aliasing -pipe " CXXFLAGS="-O2 -fno-strict-aliasing -pipe" MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install -s -o root -g wheel -m 555" BSD_INSTALL_SCRIPT="install -o root -g wheel -m 555" BSD_INSTALL_DATA="install -o root -g wheel -m 444" BSD_INSTALL_MAN="install -o root -g wheel -m 444" make -f Makefile all)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
сборка завершилась Ok, ну а ниже НАШ: make all in doc:
-e 's,%%PREFIX%%,/usr/local,g'
/mnt/pub/ftp/ports/mail/dovecot/work/dovecot-1.0.beta3/dovecot-example.conf
if [ -f /mnt/pub/ftp/ports/mail/dovecot/scripts/post-build ]; then cd /mnt/pub/ftp/ports/mail/dovecot && /usr/bin/env PORTOBJFORMAT=elf BSD_INSTALL_PROGRAM="install -s -o root -g wheel -m 555" BSD_INSTALL_SCRIPT="install -o root -g wheel -m 555" BSD_INSTALL_DATA="install -o root -g wheel -m 444" BSD_INSTALL_MAN="install -o root -g wheel -m 444" CURDIR=/mnt/pub/ftp/ports/mail/dovecot DISTDIR=/usr/ports/distfiles WRKDIR=/mnt/pub/ftp/ports/mail/dovecot/work WRKSRC=/mnt/pub/ftp/ports/mail/dovecot/work/dovecot-1.0.beta3 PATCHDIR=/mnt/pub/ftp/ports/mail/dovecot/files SCRIPTDIR=/mnt/pub/ftp/ports/mail/dovecot/scripts FILESDIR=/mnt/pub/ftp/ports/mail/dovecot/files PORTSDIR=/usr/ports DEPENDS="" PREFIX=/usr/local LOCALBASE=/usr/local X11BASE=/usr/X11R6 /bin/sh /mnt/pub/ftp/ports/mail/dovecot/scripts/post-build; fi
/usr/bin/touch -f /mnt/pub/ftp/ports/mail/dovecot/work/.build_done.dovecot-1.0.b3._usr_local
[alone]/mnt/pub/ftp/ports/mail/dovecot >
итого: -e 's,%%PREFIX%%,/usr/local,g'
есть ничто иное как post-build из Makefile порта dovecot:
[alone]/mnt/pub/ftp/ports/mail/dovecot > less Makefile
...
...
## SQLite Support
#
.if defined(WITH_SQLITE)
USE_SQLITE= 3
CONFIGURE_ARGS+= --with-sqlite
.endif
post-build:
@${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},g' \
${WRKSRC}/dovecot-example.conf
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- вот он
наш кусок, понятно что REINPLACE_CMD НЕОПРЕДЕЛЕН.
pre-install:
@${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
...
...
дальше просто, поиск REINPLACE_CMD в /usr/ports/Mk/*
имеем:
[alone]/mnt/pub/ftp/ports/mail/dovecot > less /usr/ports/Mk/bsd.port.mk
...
# Special macro for doing in-place file editing using regexps
.if defined(USE_REINPLACE)
REINPLACE_ARGS?= -i.bak
REINPLACE_CMD?= ${SED} ${REINPLACE_ARGS}
.endif
если определена переменная USE_REINPLACE, выполняется то что выше,
а именно:
REINPLACE_CMD= /usr/bin/sed -i.bak
Итого, все что нужно сделать - добавить в /usr/ports/mail/dovecot/Makefile
строку:
...
...
USE_ICONV= yes
USE_RC_SUBR= dovecot.sh
#--lavr corrected dovecot Makefile
USE_REINPLACE= yes
все:
[alone]/mnt/pub/ftp/ports/mail/dovecot > grep USE_REINPLACE Makefile
USE_REINPLACE= yes
[alone]/mnt/pub/ftp/ports/mail/dovecot > make
===> Building for dovecot-1.0.b3
make all-recursive
Making all in src
Making all in lib
Making all in lib-dict
Making all in lib-sql
Making all in lib-ntlm
Making all in lib-settings
Making all in lib-charset
Making all in lib-mail
Making all in lib-imap
Making all in lib-index
Making all in lib-storage
Making all in index
Making all in maildir
Making all in mbox
Making all in dbox
Making all in subscription-file
Making all in register
make all-am
Making all in lib-auth
Making all in auth
Making all in dict
Making all in master
Making all in login-common
Making all in imap-login
Making all in imap
Making all in pop3-login
Making all in pop3
Making all in util
Making all in plugins
Making all in convert
Making all in quota
Making all in imap-quota
Making all in trash
Making all in zlib
Making all in doc
[alone]/mnt/pub/ftp/ports/mail/dovecot >