OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
Creando mi primer paquete para Mandriva: buoh - 1ª Parte
Antes de continuar creando más paquetes para Mandriva quería documentar todo lo que he aprendido en la creación de mi primer paquete, y que pudiese servir tanto para mi, para refrescar de nuevo los conceptos aprendidos, como para hacer ver a los interesados en crear paquetes que no es tan fiero el león como lo pintan.
Ante el llamamiento a colaborar con el grupo de empaquetadores de BlogDrake, me dí de alta en su lista de correo, y después de leer la documentación que sobre empaquetamiento había colgada, me dispuse a pasar a la acción.
Lo primero fue encontrar un programa empaquetar. Eso fue fácil ya que conocía de tiempo atrás el programa buoh, un visualizador de tiras cómicas, que ya había instalado hace años en mi ordenador a base de compilarlo desde las fuentes. Entonces no existía paquete para Mandriva, ni tampoco ahora, por lo que era un programa ideal para empaquetarlo. A parte de que el programa es bastante curioso, también me llamó la atención que estuviese hecho por españoles, concretamente Esteban Sánchez, Pablo Arroyo y Carlos García Campos.
Para ponerlo más sencillo aun, en la página de descargas del programa ponen las dependencias, siendo estas:
-
GTK, al menos 2.6.
-
Libsoup, al menos 2.2
-
Libgnomeui, al menos 2.6
-
Gconf, al menos 2.2
1. CREANDO EL ENTORNO DE COMPILACIÓN
Mi primera pregunta en la lista de empaquetadores fue qué repositorios había que tener instalados (y SOLO esos), contestándome que debía instalar Main, Main32 (si tenía la versión de 64 bits), Contrib, Non-free, PLF, PLF non free y los dos BDK: noarch y mi arquitectura. Nada de MIB, backports u otros repositorios. Así pues para Mandriva 2010.1 los repositorios que debería tener activos son:
Main-2010.1
Contrib-2010.1
Non-free-2010.1
Main
Updates-2010.1
Contrib Updates-2010.1
Non-free
Updates-2010.1
PLF Free-2010.1
PLF Non-free-2010.1
BDK-Free-i586
BDK-Free-noarch
BDK-NonFree-i586
teniendo en cuenta que mi máquina es un Athlon 2400+, sistema 32 bits con un solo core.
Por otra parte, en mi instalación de Mandriva 2010.1 tengo activado el repositorio MIB y los backports de Mandriva con bastantes paquetes ya instalados. Como mi instalación no estaba “limpia” lo que hice fue crear una máquina virtual con VirtualBox donde instalé Mandriva 2010.1 a partir de la imagen mandriva-linux-free-2010-spring-dual.iso (se puede encontrar en este servidor). La versión instalada desde esta imagen es mucho más pequeña que si se hace desde la versión ONE o FREE, muy acorde con lo que yo quería, que es que cualquier dependencia que tengan los paquetes, tanto para crearlos como para instalarlos sea solicitada a los repositorios en lugar de tener los paquetes ya instalados. Una vez creada la maquina virtual y finalizada la instalación de Mandriva 2010.1 desde la imagen dual, instalé los repositorios anteriores.
Para poder trabajar más cómodamente, y ya que el entorno de escritorio que instala es LXDE (nada de KDE o Gnome), me instale el mc (Midnight Commander) y el mousepad, un sencillo editor de texto del escritorio Xfce.
Mi primera idea era clonar la unidad de disco virtual para crear una maquina virtual para crear paquetes y otra para instalarlos, pero VirtualBox no me deja tener 2 máquinas virtuales a partir de ficheros de unidades disco que internamente tienen el mismo UUID. Seguramente esto será fácilmente solucionable, pero como quería avanzar en la creación de mi paquete, utilicé la máquina virtual para crear los paquetes y la partición normal de Mandriva para instalarlos.
2. TAREAS PREVIAS
Ya dentro de la máquina virtual, seguí los puntos 1, 2 y 3 de la Clase de empaquetado rpm. Parte 1 - Inicio, configuración y conceptos.
A continuación descargue el fichero buoh-0.8.2.tar.bz2 con las fuentes del programa en mi directorio ~/Downloads, lo descomprimí allí mismo, cambié al nuevo directorio creado buoh-0.8.2, y compile sin errores el programa mediante ./configure y make. Para entender esto que acabo de decir se puede consultar el documento Clase de empaquetado rpm. Parte 3 - Compilando e instalando desde las fuentes. En fin, lo compilé, pero no lo instalé, ya que eso quería dejarlo para mi paquete una vez que lo hubiese creado.
En teoría mi maquina virtual ya estaba lista para crear el paquete rpm, ya que había conseguido compilar con éxito el programa. El siguiente paso fue copiar el fichero buoh-0.8.2.tar.bz2 al directorio~/rpm/SOURCES e hice una pequeña trampa antes de crear el fichero spec. Desde el sitio web rpm.pbone.net me baje el paquete de código fuente de la versión para Fedora 9 del programa buoh. Fedora es la distribución linux que más se parece a nivel de empaquetado a Mandriva, por lo que viendo el spec que se había utilizado en Fedora para empaquetar buoh pensaba sacar unas cuantas buenas ideas (y otras que finalmente no lo fueron tanto). Bajado el paquete con el código fuente, y ejecutando rpm -ivh buoh-0.8.2-4.fc9.src.rpm, ya tuve el fichero buoh.spec en el directorio ~/rpm/SPECS.
Renombre este fichero a buoh.spec.fedora9 y lo utilice como base para crear mi fichero ~/rpm/SPECS/buoh.spec
3. CREANDO EL FICHERO SPEC Y COMPILÁNDOLO
Tras varios ciclos de creación, intento de compilación , y vuelta a empezar, obtuve la versión definitiva del fichero SPEC que quedó así:
Name: buoh
Summary: Online comics reader
Version: 0.8.2
Release: %mkrel 1
Source: http://buoh.steve-o.org/downloads/%{name}-%{version}.tar.bz2
URL: http://buoh.steve-o.org/
Group: Graphics
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
License: GPLv2
BuildRequires: intltool
BuildRequires: desktop-file-utils
BuildRequires: %{_lib}gtk+2.0_0-devel >= 2.6
BuildRequires: %{_lib}GConf2-devel >= 2.2
BuildRequires: %{_lib}gnomeui2-devel >= 2.6
BuildRequires: %{_lib}soup-2.2-devel >= 2.2
Requires: gtk+2.0 >= 2.6
Requires: GConf2 >= 2.2
Requires: %{_lib}gnomeui2_0 >= 2.6
Requires: %{_lib}soup-2.2_8
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
%description
Buoh is a reader for online strips comics. It has a number of features, including: Selecting your favorites comic through a list of more
than 130 comics, easy & simple an eye-candy view of an online comic, browsing over
the comic strip archives.
%define Werror_cflags %nil
%prep
%setup -q
iconv -f iso8859-1 -t utf-8 NEWS > NEWS.conv && mv -f NEWS.conv NEWS
%build
%configure
autoreconf
%make
%install
rm -rf %{buildroot}
%{makeinstall_std}
desktop-file-install \
--add-category="Graphics" \
--add-category="Viewer" \
--dir %{buildroot}%{_datadir}/applications \
%{buildroot}%{_datadir}/applications/buoh.desktop
%clean
rm -rf %{buildroot}
%post
%{update_menus}
%update_icon_cache hicolor
%post_install_gconf_schemas %{name}
%postun
%{clean_menus}
%update_icon_cache hicolor
%post_uninstall_gconf_schemas %{name}
%files
%defattr(-,root,root)
%doc README NEWS COPYING AUTHORS TODO INSTALL
%dir %{_datadir}/buoh
%dir %{_datadir}/buoh/comics
%dir %{_datadir}/buoh/ui
%config(noreplace) %{_sysconfdir}/gconf/schemas/buoh.schemas
%{_bindir}/buoh
%{_datadir}/applications/buoh.desktop
%{_datadir}/buoh/*
%{_iconsdir}/hicolor/*/apps/%{name}.png
%changelog
* Sat Sep 25 2010 desUBIKado <desubikado@gmail.com> 0.8.2-1bdk2010.1
- buoh for Mandriva 2010.1
Bonito ¿verdad? Para entenderlo se puede consultar el documento: Clase de empaquetado rpm. Parte 2 - Entendiendo el fichero SPEC
De todas formas esta es la versión final definitiva, pero para llegar a ella tuve que ir creando versiones mejoradas del fichero buoh.spec e intentando construir el paquete rpm con la instrucción rpmbuild -ba buoh.spec.
A base de ir depurando los errores y llevando a cabo modificaciones al fichero spec fue como fui avanzando, pero eso lo contaré en la segunda parte de esta narración.
- Blog de desUBIKado
- Entra a tu cuenta o crea una para poder comentar.
Usuario
# 109028 Genial !
Me recuerda el dia que logre empaquetar el primer rpm ... !
Espero esa segunda narracion :-D
--
Which Terminator Character Are You?Fernando Andrés Muñoz
Tg. Análisis y desarrollo de Sistemas de Información
Linux user #487547