Sto provando a convertire il nostro sistema di generazione sul posto di lavoro in cmake e ho incontrato un problema interessante con gli RPM che genera (tramite cpack): aggiunge automaticamente tutte le dipendenze che pensa che il tuo RPM abbia nel suo elenco di librerie richiesteCome si fa a fare in modo che cpack non aggiunga le librerie richieste a un RPM?
In generale, è grandioso, ma nel mio caso è catastrofico. Sfortunatamente, i pacchetti di sviluppo che costruiamo finiscono per essere installati con uno strumento sviluppato internamente che utilizza rpm per installarli in un database RPM separato da quello di sistema. È stupido, ma non posso cambiarlo. Ciò significa che tutte le librerie di sistema su cui si baserà qualsiasi libreria normale (come libc o libpthread) non si trovano nel database RPM utilizzato con i nostri pacchetti di sviluppo. Quindi, se un RPM per uno dei nostri pacchetti di sviluppo elenca le librerie di sistema come richieste, non possiamo installarlo, poiché rpm penserà che non sono installate (dato che sono elencate nel normale database piuttosto che in quello che viene detto di usare durante l'installazione dei nostri pacchetti). La nostra attuale build lo gestisce bene, perché non elenca le librerie di sistema come dipendenze negli RPM, ma cpack popola automaticamente l'elenco delle librerie richieste del RPM e inserisce le librerie di sistema. Ho bisogno di un modo per impedirgli di farlo.
Ho provato a impostare CPACK_RPM_PACKAGE_REQUIRES
su ""
, ma ciò non ha alcun effetto. Il pacchetto RPM genera ancora finisce con le librerie di sistema elencate come richieste. Tutto quello che posso pensare di fare a questo punto è copiare il generatore di cpack RPM e hackerarlo per fare quello che voglio e usarlo al posto di quello standard, ma preferirei evitarlo. Qualcuno ha idea di come posso ottenere che cpack smetta di compilare l'RPM con le librerie richieste?
Sembra proprio quello che ho bisogno di impostare, ma la domanda è: come faccio a farlo usando cmake e cpack? –
Ok. La tua risposta non mi ha dato tutte le informazioni di cui avevo bisogno, ma è stato sufficiente per capire come risolverlo, quindi ho aggiornato la risposta per includere le istruzioni su come impostare 'AutoReqProv' usando cmake. –