LINUX.ORG.RU

Какая-то фигня с sed

 


0

1

Как я уже много раз говорил, в 2016 году SLES 11 был лучшим линуксом. А потом его начали искуственно убивать - не иначе как Грег Кроа-Хартман выпустил секретную директиву так делать. В 2016 я установил SLED 11 SP3, купил на него лицензию, а затем проапгрейдил до SP4. Подключил несколько десятков OBS и установил кучу софта. А теперь 20 из 30 используемых мной OBS удалили поддержку SLES 11 (но остался бэкап - Грег, соси чупа-чупс).

Мне понадобился LinuxDC++. Я склонировал его из OBS «filesharing» в свой домашний OBS. При компиляции - ошибка:

[  116s] ++ grep -rl '\-D_REENTRANT'
[  116s] + sed -e 's/\(.-D_REENTRANT.\)/\1\,\'\''-std=gnu++98\'\''/' -i
[  116s] sed: no input files

Вот кусок SPEC-файла:

%prep
%setup -q

sed -e "s/\(.-D_REENTRANT.\)/\1\,\'-std=gnu++98\'/" \
	-i $(grep -rl '\-D_REENTRANT')

Вот полный файл. Как исправить? Я знаю sed только на базовом уровне, и меня эта конструкция пугает.

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 8)

Мне кажется, что ошибка из-за того, что на вход sed ничего не приходит (нет файлов в выводе grep)

grem ★★★★★
()
Ответ на: комментарий от grem

Странно: исходник распаковался:

[  116s] + cd /usr/src/packages/BUILD
[  116s] + rm -rf linuxdcpp-1.1.0
[  116s] + tar -xf -
[  116s] + /usr/bin/bzip2 -dc /usr/src/packages/SOURCES/linuxdcpp-1.1.0.tar.bz2
[  116s] + STATUS=0
[  116s] + '[' 0 -ne 0 ']'
[  116s] + cd linuxdcpp-1.1.0
[  116s] ++ /usr/bin/id -u
[  116s] + '[' 399 = 0 ']'
[  116s] ++ /usr/bin/id -u
[  116s] + '[' 399 = 0 ']'
[  116s] + /bin/chmod -Rf a+rX,u+w,g-w,o-w .
[  116s] ++ grep -rl '\-D_REENTRANT'
[  116s] + sed -e 's/\(.-D_REENTRANT.\)/\1\,\'\''-std=gnu++98\'\''/' -i
[  116s] sed: no input files
[  116s] error: Bad exit status from /var/tmp/rpm-tmp.35548 (%prep)
ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от grem

Может, старый grep не знает параметров -rl? Я сейчас пишу из SLES 11, могу проверить.

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

выполнить

cd /usr/src/packages/BUILD/linuxdcpp-1.1.0; grep -rl '\-_REENTRANT' .
и посмотреть результат.

arto ★★
()

grep .. '\-

если подстрока все же есть, то можно попробовать grep -e '-...' (по идее \- нестандарт)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.