Bug 31924 - Скрип /usr/bin/nxloadconfig рассчитан на CUPS/1*, в сизифе присутствует CUPS/2.1
Summary: Скрип /usr/bin/nxloadconfig рассчитан на CUPS/1*, в сизифе присутствует CUPS/2.1
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: freenx-server (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-27 17:48 MSK by Стас
Modified: 2016-03-27 19:43 MSK (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Стас 2016-03-27 17:48:10 MSK
Команда `/usr/bin/nxloadconfig --check` сообщает об ошибке:

(standard_in) 1: syntax error
/usr/bin/nxloadconfig: line 696: [: -ne: ожидается использование унарного оператора

В строках 696-697 находится проверка версии CUPS:

		[ $(echo "`strings $COMMAND_CUPSD | egrep 'CUPS\/1\.' | head -1 | sed 's|CUPS\/\(1\.[0-9]\+\).*|\1|'` >= 1.2" | bc) -ne 1 ] && \
			WARNING="yes" && echo "Warning: Invalid cupsd version of \"$COMMAND_CUPSD\". Need version more or equal than 1.2."

Пустой результат появляется в цепочке:
strings $COMMAND_CUPSD | egrep 'CUPS\/1\.'
Дело в том, что в строках файла /usr/sbin/cupsd нет подстроки "CUPS/1.", зато есть "CUPS/%d" и CUPS/2.1

По смыслу условия "версия CUPS больше 1.2" думаю, будет правильным модифицировать регулярное выражение egrep так:
strings $COMMAND_CUPSD | egrep 'CUPS\/[1-9]\.'
Или упростить всёю цепочку (sed может и грепать, и взять только первую строку из найденных):
		[ $(echo "`strings $COMMAND_CUPSD | sed -n '/^CUPS\/[0-9.]*$/{s/[^0-9.]//gp;q}'` >= 1.2" | bc) -ne 1 ] && \
			WARNING="yes" && echo "Warning: Invalid cupsd version 

Но IMHO в Altlinux надёжнее извлечь версию из rpm:
rpm -qf $COMMAND_CUPSD | cut -d - -f 2 | sed s/[^0-9.]//g
Comment 1 Стас 2016-03-27 19:43:02 MSK
Ошибся в выражении для sed. Правильно и ещё короче строка 696 будет такой:

[ $( strings /usr/sbin/cupsd | sed -n '/^CUPS\/[0-9.]*$/s|.*/\([0-9]\+\.[0-9]\+\)[^0-9].*|\1 >= 1.2|p' | bc ) -ne 1 ] && \