Criando um arquivo rpm com um qualificador exclusivo anexado

6

Estou criando RPMs em um ambiente de integração contínua, e preciso distinguir entre compilações sucessivas, mas obviamente o arquivo de especificações não é modificado em cada check-in.

O cabeçalho do arquivo de especificação contém algo como

Version:        1.0beta7
Release:        1.1

Eu gostaria de substituí-lo para que o RPM criado tenha um anexo qualificado para a versão, por exemplo

Version:        1.0.beta7.2913

Supondo que o qualificador já esteja disponível, como uma variável de ambiente, qual é a maneira mais fácil de anexar um qualificado à versão?

    
por Robert Munteanu 06.11.2009 / 16:55

2 respostas

8

Bastante fácil:

Version: 1.0.beta7.%(echo $ENVVAR)

Você pode executar qualquer comando que desejar dentro de% (); apenas certifique-se de que não há espaço em branco na saída.

Pessoalmente, acho que é um toque mais limpo para colocá-lo em uma variável no topo:

%define buildnumber %(whatever command to get the build number)

Version: 1.0.beta7.%{buildnumber}

Ou para torná-lo condicional à variável que está sendo definida:

Version: 1.0.beta7%{?buildnumber:.%{buildnumber}}

Isso só deve imprimir o '.' se% buildnumber estiver definido.

    
por 06.11.2009 / 17:09
2

O problema com essa abordagem é que tais especificações requerem um parâmetro definido externamente (buildnumber) ... por exemplo, a reconstrução de um arquivo .src.rpm provavelmente resultará em um número de versão diferente daquele originalmente usado por seu Sistema de CI.

Acho que o que você realmente quer é incorporar a versão de origem (por exemplo, número de revisão do subversion) ao número da versão do RPM. Eu gero RPM .specs de modelos. O modelo é controlado por fonte e o processo de criação gera um arquivo de especificações real a partir dele, então

Version: 1.0.beta7.svn@SVN_REV@ 

torna-se algo como

Version: 1.0.beta7.svn1234
    
por 30.09.2011 / 05:46

Tags