1.2. Compilar exitosamente el software desde el código fuente
Antes de iniciar el proyecto de empaquetado se deben obtener los archivos fuentes desde los que se va a crear el paquete, todo RPM debe ser construido desde las fuentes originales sin ninguna modificación alguna, incluso se debe tratar de conservar la marca de tiempo, luego se debe poder instalar exitosamente la aplicación en el sistema, para luego poder proceder a repetir los pasos de la instalación al crear el paquete.
Los archivos fuentes o "sources" generalmente se encuentran disponibles en formato comprimido, los formatos mas comunes para distribuir archivos fuentes son .tar.gz y .zip, a este archivo comprimido que contiene el código fuente de la aplicación que nos gustaría empaquetar se le suele llamar "tarball". Para obterner el tarball del proyecto que queremos empaquetar conservando las marcas de tiempo originales se puede usar:
$ wget -N link-para-bajar-el-tarball
Una vez descargado el archivo fuente es necesario descomprimirlo, luego de descomprimirlo debemos buscar cualquier información que el desarrollador incluye en la fuentes, generalmente un archivo "Readme" o similar, en la documentación debemos seguir los pasos para compilar e instalar el programa manualmente en muestro sistema operativo, hay que prestar especial atención a aquellas dependencias para necesarias para compilar el programa y aquellas dependencias necesarias para el correcto funcionamiento del mismo.
La compilación del código fuente es algo incierto, dependiendo del lenguaje de programación, las bibliotecas utilizadas, el entorno de escritorio que se esté utilizando e incluso el tipo de aplicación o lo que el desarrollador pensó al momento de escribir el código.
Debido a que esta es una guía para realizar un paquete RPM bajo los lineamientos de Fedora no hablaremos mucho de cómo se compila una determinada aplicación aplicación o con un determinado lenguaje de programación.
1.2.1. Identificar las dependencias
Si estas familiarizado con instalar aplicaciones en Fedora, el termino "dependencia" te debe resultar familiar, una dependencía es una aplicación o librearía necesaria para que el programa funcione correctamente, o necesaria para compilar exitosamente la aplicación. Es decir, el software que estamos empaquetando puede depender de otras aplicaciones para funcionar correctamente, si estas aplicaciones no estan disponibles el software no funcionara como se espera.
Al momento de crear un RPM es necesario definir claramente aquellas depencias necesarias para compilar la aplicación, así como aquellas dependencias necesarias para que el usuario pueda hacer uso de la aplicación una vez empaquetada.
Hay que prestar mucha atención a las dependencias del software que estamos tratando de empaquetar, así como la versión necesaria. Si nuestro paquete depende de una aplicación que no esta disponible en Fedora debemos empaquetar esa dependencia para asegurar que todas las dependecias de nuestro paquetes esten disponibles
Si el software que estamos tratando de empaquetar depende de aplicaciones que por asuntos de licencias no pueden estar disponibles en Fedora, y sin esa dependencia no es posible un correcto funcionamiento del software, el paquete no podra ser incluido en Fedora. Para paquetes que por problemas de licencias no puede estar disponibles en Fedora existe el proyecto
RPMFusion.