Como obtenho um arquivo de especificações básico para trabalhar com o rpmbuild?

1

Eu instalei o rpmlint e o rpmdevtools. Eu usei o rpmdevtools para criar um template de um arquivo .spec. Eu modifiquei o arquivo spec para que ele instale o cfengine. Eu executei o rpmlint no arquivo de especificações e não vi avisos ou erros. Eu tentei executar o specfile para real, mas falhou. Aqui está o comando que eu executei:

$ rpmbuild -ba newpackage.spec

Aqui está o que eu vi:

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.wNGgcV
+ umask 022
+ cd /home/ec2-user//BUILD
+ cd /home/ec2-user/BUILD
+ rm -rf Propulsion-1
+ /usr/bin/tar -xf -
+ /usr/bin/gzip -dc /home/ec2-user/SOURCES/cfengine-3.6.5.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd Propulsion-1
/var/tmp/rpm-tmp.wNGgcV: line 35: cd: Propulsion-1: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.wNGgcV (%prep)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.wNGgcV (%prep)

O arquivo acima na linha 35 tem isto:

cd 'Propulsion-1'

O nome "Propulsion" vem do arquivo .spec. Evidentemente, aspas simples, hífen e 1 vêm do processamento do comando rpm-build.

O que devo fazer para não ter um erro de compilação do RPM? Eu quero que meu arquivo spec funcione para a instalação do cfengine.

Aqui está o arquivo de especificações:

Name:  Propulsion
Version: 1
Release:        1%{?dist}
Summary:  First time

License:        GNU
#URL:
Source0: http://s3.amazonaws.com/cfengine.package-repos/tarballs/cfengine-3.6.5.tar.gz

BuildRequires: gettext
# Requires:

%description
This is a test.

%prep
%setup -q


%build
%configure
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
%make_install


%files
%doc


%changelog
    
por Propulsion 06.06.2015 / 08:02

1 resposta

2

Esse erro está acontecendo porque %setup é, na verdade, uma macro que, quando expandida, tentará descompactar sua origem e cd no diretório de origem.

Se o diretório de origem no tarball for diferente do nome do pacote, você precisará definir -n , desta forma:

%setup -n cfengine-3.6.5

No seu caso, isso deve funcionar, porque quando você extrai o cfengine-3.6.5.tar.gz , você obtém um diretório chamado cfengine-3.6.5 - e o rpmbuild está esperando Propulsion-1 com base no nome e na versão do seu pacote.

Você pode ler mais sobre a macro de configuração aqui e aqui .

    
por 06.06.2015 / 20:35

Tags