construir RPM com node-webkit (e o problema libudev.0)

Todos que estão desenvolvendo ou trabalhando com um aplicativo node-webkit conhecem esse problema estúpido do libudev.so.0

Existem muitas soluções alternativas, como iniciar seu aplicativo sem problemas.

Mas quando você tenta instalar seu pacote RPM auto-elaborado do seu aplicativo node-webkit, receberá uma mensagem de erro realmente irritante:

error: Failed dependencies:    
libudev
.so.0()(64bit) is needed by

Mesmo que você tenha vinculado seu libudev.so.1 a libudev.so.0, o RPM não consegue encontrar um pacote, fornecendo libudev.so.0.

Fonte do problema: Dependência automática do rpmbuild

Como o RPM sabe que seu software depende do libudev.so.0?

O rpmbuild tenta encontrar os requisitos automaticamente. Você pode ver isso neste grande resultado durante a construção:

+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars

Processing files: [...]
Requires: ld-linux-x86-64.so.2()(64bit) ld-linux-x86-64.so.2(GLIBC_2.2.5)(64bit) libX11.so.6()(64bit) libXcomposite.so.1()(64bit) libXdamage.so.1()(64bit) libXext.so.6()(64bit) libXfixes.so.3()(64bit) libXi.so.6()(64bit)
[...even more output...]
libstdc
++.so.6(GLIBCXX_3.4.11)(64bit) libstdc++.so.6(GLIBCXX_3.4.15)(64bit) libstdc++.so.6(GLIBCXX_3.4.5)(64bit) libstdc++.so.6(GLIBCXX_3.4.9)(64bit) libudev.so.0()(64bit) rtld(GNU_HASH)

Você pode ler no final libudev.so.0()(64bit) rtld(GNU_HASH)

Soluções

Para prevenir o rpmbuild, para adicionar libudev.so.0 ao seu depto, você pode tentar o script rpmbuild do chromiums . Eles têm problemas semelhantes.

Ou você pode adicionar este pequeno sinalizador ao seu preâmbulo em seu arquivo .spec: AutoReqProv: no

Isso irá desativar qualquer tipo de processamento de dependência automática