O problema:
Depois de ler a resposta de Ignacio Vazquez-Abrams, percebi que o rpmbuild está gerando uma lista de requisitos automática. Depois de uma ou duas goole, encontrei a página Dependências automáticas , isso diz:
When a package is built by RPM, if any file in the package's %files list is a shared library, the library's soname is automatically added to the list of capabilities the package provides. The soname is the name used to determine compatibility between different versions of a library.
...
RPM does this by running ldd on every executable program in a package's %files list. Since ldd provides a list of the shared libraries each program requires, both halves of the equation are complete — that is, the packages that make shared libraries available, and the packages that require those shared libraries, are tracked by RPM. RPM can then take that information into account when packages are installed, upgraded, or erased.
A solução:
Na parte inferior da página, diz:
There may be times when RPM's automatic dependency processing is not desired. In these cases, the autoreqprov tag may be used to disable it. This tag takes a yes/no or 0/1 value. For example, to disable automatic dependency processing, the following line may be used:
AutoReqProv: no
Então, adicionei o AutoReqProv: no
ao meu arquivo de especificação (após a parte Provides
) e todas as dependências ruins foram eliminadas!
Aviso:
Como escreveu Ignacio Vazquez-Abrams, normalmente esta é uma solução ruim. Normalmente, você gostaria de se livrar de todos os binários de 32 bits e deixar apenas os de 64 bits. Minha solução funciona comigo desde que eu estou construindo um RPM baseado no código de outra pessoa, e eu não quero começar a classificar seus arquivos. Por outro lado, eu sei quais dependências meu rpm precisa, e eu posso escrevê-las eu mesmo. Se esse for o seu caso, use o sinalizador AutoReqProv: no
. Caso contrário - leve Ignacio a bons conselhos e obtenha o código de 32 bits.