информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяАтака на InternetВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Победил ;-)) 07.08.06 18:40  Число просмотров: 3077
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
Стал жертвой собственного кастомизинга ;-))
Сначала такое случилось на одном из серверов, потом на втором. После того как стало на третьем и четвертом решил разобратья. Дело вот в чем:

.if exists(${HTTPD})
AP_CUR_VERSION!= ${HTTPD} -V | ${SED} -ne 's/^Server version: Apache\/\([0-9]\)\.\([0-9]*\).*/\1
\2/p'
. if ${AP_CUR_VERSION} > 13
APACHE_MPM!= ${APXS} -q MPM_NAME
. endif
.elif defined(APACHE_PORT)
AP_CUR_VERSION!= ${ECHO_CMD} ${APACHE_PORT} | ${SED} -ne 's,/apache\([0-9]*\).\1,p'
.endif

версия апача определяется по htttpd -V, но так как я немного покастомизил src/include/httpd.h на предмет выдачи хедера, то паттерном она уже не ловилась, и переменная устанавливалась в none

APACHE_VERSION= ${AP_CUR_VERSION}
.else
AP_CUR_VERSION= none
<sysadmin>
Знатокам make 07.08.06 14:07  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
с какого-то момента при выполнении make на FreeBSD 4.11 выдает такие варнинги:
/usr/ports/lang/php4]# make clean
[: -le: argument expected
[: -le: argument expected
[: -le: argument expected
[: -le: argument expected
===> Cleaning for apache-1.3.37

Думал сначала что поменялась утилита [ (test) и с ней что-то не так. Переименовал файлы [ и test, вместо них оставил скрипт
#!/usr/local/bin/bash
echo $* >>/tmp/test.log

запустил make - вывод точно такой же, т.е. запуск утилиты test не проходил.
Сделал следующее
make -d A сlean>test 2>&1
получил пошаговое выполнение команды make, но с синтакисом не знаком. Кто-то может помочь?
Фрагмент test

Applying :M to "13"
Result is "13"
lhs = "13", rhs = "", op = !=
Global:AP_PORT_IS_MODULE = YES
Apply[: -le: argument expected

Ошибка возникает при выполнении /usr/ports/Mk/bsd.apache.mk. Нужно только определиться где именно.
Скорее всего какой-то shell-скрипт 07.08.06 16:12  
Автор: :-) <:-)> Статус: Elderman
Отредактировано 07.08.06 16:23  Количество правок: 1
<"чистая" ссылка>
> запустил make - вывод точно такой же, т.е. запуск утилиты
> test не проходил.

В большинстве шеллов "test" и "[" - встроенные команды. Поэтому твой скрипт и не вызывается.
Например в bash:
$ type \[
[ is a shell builtin

Проблему наверное стоит искать в строках вида
if [ $a -le $b ]
Где переменным $a или $b - не присвоено значение.

Попробуй добавить опцию -v в первую строчку скрипта, чтобы команды печатались по мере исполнения.
#! /bin/sh -v
вот что наковырял после дебага 07.08.06 18:32  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
> В большинстве шеллов "test" и "[" - встроенные команды. Поэтому твой скрипт и не
> вызывается.
похоже что так и есть
вот лог выполнения make (make -d A clean >test 2>&1)

---8<---
Global:_ERROR_MSG = : Error from bsd.apache.mk.
Global:APACHE_SUPPORTED_VERSION = 13 20 21 22
Applying :M to "1.3+"
Result is ""
lhs = "", rhs = "", op = !=
Applying :L to "1.3+"
Result is "1.3+"
lhs = "1.3+", rhs = "apr", op = ==
Applying :C to "1.3+"
Result is "13+"
Applying :C to "13+"
Result is "13"
Applying :M to "13"
Result is "13"
lhs = "13", rhs = "", op = !=
Global:AP_PORT_IS_MODULE = YES
Apply[: -le: argument expected
---8<---

смотрим файл /usr/ports/Mk/bsd.apache.mk
находим единстевенное место где есть -le

---8<---
if defined(AP_CUR_VERSION)
VERSION_CHECK!= eval `${ECHO_CMD} "[ ${AP_VERSION} -eq ${AP_CUR_VERSION} ]" | ${SED} -e 's/- -eq/ -ge/ ; s/+ -eq/ -le/' ` ; ${ECHO_CMD} $${?}
. if ${VERSION_CHECK} == 1
IGNORE= ${_ERROR_MSG} apache${AP_CUR_VERSION} is installed (or APACHE_PORT is defined) and port requires ${USE_APACHE}
. endif
---8<---

как я понял не устанавливаются переменные {AP_CUR_VERSION} - это скорее всего версия установленного апача. Почему так происходит - непонятно.
Победил ;-)) 07.08.06 18:40  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
Стал жертвой собственного кастомизинга ;-))
Сначала такое случилось на одном из серверов, потом на втором. После того как стало на третьем и четвертом решил разобратья. Дело вот в чем:

.if exists(${HTTPD})
AP_CUR_VERSION!= ${HTTPD} -V | ${SED} -ne 's/^Server version: Apache\/\([0-9]\)\.\([0-9]*\).*/\1
\2/p'
. if ${AP_CUR_VERSION} > 13
APACHE_MPM!= ${APXS} -q MPM_NAME
. endif
.elif defined(APACHE_PORT)
AP_CUR_VERSION!= ${ECHO_CMD} ${APACHE_PORT} | ${SED} -ne 's,/apache\([0-9]*\).\1,p'
.endif

версия апача определяется по htttpd -V, но так как я немного покастомизил src/include/httpd.h на предмет выдачи хедера, то паттерном она уже не ловилась, и переменная устанавливалась в none

APACHE_VERSION= ${AP_CUR_VERSION}
.else
AP_CUR_VERSION= none
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach