Как избежать пробелов в спецификации исходного кода rpm?

Я пытаюсь создать RPM, но исходный файл от производителя содержит пробел в имени файла, и, похоже, нет никакого хорошего способа избежать имени файла, чтобы он его собирал.

Я пытался положить \ перед пространствами. Я пытался заменить их на %20, Я старался +, Я пытался положить "вокруг, я пытался ' вокруг него.

На данный момент я работаю над этим, переименовывая исходный файл от поставщика, чтобы не было пробелов, но я действительно предпочитаю оставлять исходные имена исходных файлов поставщика неповрежденными, когда это возможно.

Без побега или цитирования я получаю:

+ unzip .../Foo Bar.zip
unzip:  cannot find or open .../Foo, .../Foo.zip or .../Foo.ZIP.

С \Распаковка работает, но потом:

error: Bad file: .../Foo\ Bar.zip: No such file or directory

Вот полностью функциональный файл test.spec (я сделал zip "Foo Bar.zip" test.spec получить образец zipfile):

Summary: Test
Name: test
Version: 1
Release: 1
License: Whatever
URL: http://www.example.com/
Source1: Foo Bar.zip

%description
Just a test of escaping stuff...

%prep
%build
%install
%{__install} -d -m0755 %{buildroot}/foo
cd %{buildroot}/foo
unzip %SOURCE1

%clean
%{__rm} -rf %{buildroot}

%files
/foo

%changelog
* Wed May 8 2013 Example <example@example.org>
- Whatever

1 ответ

Оказывается, что покидая Source unescaped, и цитирование его в%install делает свое дело:

Source1: Foo Bar.zip
...
%install
...
unzip "%SOURCE1"
Другие вопросы по тегам