Como escapar de espaços em um item “source” de especificação de rpm?

4

Estou tentando criar um RPM, mas o arquivo de origem do fornecedor tem um espaço no nome do arquivo, e não parece haver nenhuma boa maneira de escapar do nome do arquivo para que ele seja construído.

Eu tentei colocar um \ na frente dos espaços. Eu tentei substituí-los por %20 . Eu tentei + . Eu tentei colocar " s em torno dele, eu tentei ' em torno dele.

Por enquanto, estou trabalhando em torno dele renomeando o arquivo de origem do fornecedor para não ter espaços, mas eu realmente prefiro deixar os nomes dos arquivos originais dos fornecedores intactos sempre que possível.

Sem escapes ou citações, recebo:

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

Com \ , o unzip funciona, mas depois:

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

Aqui está um arquivo test.spec totalmente funcional (eu fiz zip "Foo Bar.zip" test.spec para obter um exemplo de arquivo zip):

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 <[email protected]>
- Whatever
    
por freiheit 08.05.2013 / 23:10

1 resposta

4

Acontece que deixar o Source sem escape e citá-lo no% install faz o seguinte:

Source1: Foo Bar.zip
...
%install
...
unzip "%SOURCE1"
    
por 08.05.2013 / 23:18

Tags