Como @tripleee right points, o motivo de error: Macro % has illegal name (%define)
são aspas extras em -D|--define
diretivas como:
-D "\"_gpg_name $gpgname\""
a versão correta é:
-D "_gpg_name $gpgname"
Eu tenho um script de suporte à criação para criar meus pacotes. Agora eu quero definir automaticamente a versão em meus arquivos de especificação. Eu uso a macro %{auto_version}
para isso. No meu script, quero invocar rpmbuild -D 'auto_version 1.1' packet.spec
, por exemplo.
#!/bin/bash
version=$(version.sh)
#snip
define="'auto_version ${version}'"
build_spec () {
spec=$1
define=$2
#snip
build_output=$(rpmbuild -D "$define" $spec)
# snip
}
build_spec $build_spec "$define"
No entanto, isso gera o erro error: Macro % has illegal name (%define)
Eu tentei escapar, citando e criando define
um array, tratado com ${define[@]}
.
Como @tripleee right points, o motivo de error: Macro % has illegal name (%define)
são aspas extras em -D|--define
diretivas como:
-D "\"_gpg_name $gpgname\""
a versão correta é:
-D "_gpg_name $gpgname"