Claro.

Primero que nada quisiera dejar bien en claro que no soy un desarrollador de software, solo un usuario que lee mucho y experimenta aun más, así que el procedimiento que estoy por describir no espero que sea "correcto" sin embargo creo es lo más apegado y funciona bien.

Así que tampoco me puedo hacer responsable si tu equipo se prende en llamas y con ello tu casa dejándote sin hogar a ti y/o a tus mascotas por seguir estos pasos, sin embargo no creo que eso suceda, considero que lo peor que puede pasar es que aprendas algo nuevo :).

Bueno, he portado previamente algunos paquetes como squid y file-roller en caso de que gustes leer los artículos.

Comenzamos,

1. Preparación del sistema e información del paquete
Para este procedimiento, como todo proceso de desarrollo es recomendable que el equipo este completamente actualizado y así mismo necesitamos la suite de desarrollo, build-essential

sudo apt-get update ; sudo apt-get upgrade ; sudo apt-get -y install build-essential


Necesitamos la información al respecto del paquete que queremos portar a toutatis de belenos, este caso libmtp9
En esta página encontraremos lo necesario para poder armar nuestro paquete.

2. Validar dependencias
Segundo y muy importante, revisamos que las dependencias se cumplan, todas ellas, el archivo *.dsc te brinda esa información en la sección Build-Depends:, para el caso de libmtp9 es,

Build-Depends: autoconf, automake, chrpath, debhelper (>= 9), dh-autoreconf, docbook-xsl, doxygen, dpkg-dev (>= 1.13.19), libgcrypt11-dev, libusb-1.0-0-dev [linux-any], libusb-dev [!linux-any], lsb-release, pkg-config, xsltproc


En algunos paquetes pide que el programa sea >= (mayor o igual) a determinada versión, un simple

apt-cache show nombre_del_paquete_a_corroborar

te dará la información para corroborar.

En este caso, como lo mencioné todo se cumple, por lo que un simple,


sudo apt-get -y install autoconf automake chrpath debhelper dh-autoreconf docbook-xsl doxygen dpkg-dev libgcrypt11-dev libusb-1.0-0-dev libusb-dev lsb-release pkg-config xsltproc


instalará los paquetes necesarios.

3. Obtener código
En lo personal me gusta designar una carpeta para construir paquetes y no tener código volando entre mis archivos,


mkdir ~/build ; cd ~/build


lo que creará la carpeta build en tu carpeta personal, /home/nombre_de_usuario/build, la versión corta es ~/bluid y te llevará dentro de esa carpeta.

a continuación descargamos el código fuente del paquete en la versión belenos y las adaptaciones por los "mantenedores" de debian/ubuntu del paquete original. Básicamente son los 3 archivos mostrados en la parte derecha,

.dsc
.tar.gz
.tar.gz




wget http://archive.trisquel.info/trisquel/pool/main/libm/libmtp/libmtp_1.1.6-20-g1b9f164-1ubuntu2.dsc http://archive.trisquel.info/trisquel/pool/main/libm/libmtp/libmtp_1.1.6-20-g1b9f164.orig.tar.gz http://archive.trisquel.info/trisquel/pool/main/libm/libmtp/libmtp_1.1.6-20-g1b9f164-1ubuntu2.debian.tar.gz


y descomprimimos aplicando los cambios.

dpkg-source -x libmtp_1.1.6-20-g1b9f164-1ubuntu2.dsc


Creando la carpeta con el código a compilar, en este caso se llama libmtp-1.1.6-20-g1b9f164, entramos en ella

cd libmtp-1.1.6-20-g1b9f164


4.Modificaciones especiales
En ciertos casos, es posible que quieras aprovechar para añadir, adaptar, habilitar una característica que no es habilitada por default, fue el caso de agregar el soporte al Moto G.


nano src/music-players.h

y agrego

{ "Motorola", 0x22b8, "Moto G (XT1032)", 0x2e82, DEVICE_FLAGS_ANDROID_BUGS },

como se muestra en éste artículo, guardo cambios y cierro.

Nota importante: En este paso es necesario que sepas que estas haciendo, si no lo sabes, mejor evita tocar una letra del código o podrías causar las llamas de las que hablamos anteriormente.

5. Compilamos
Listo una vez que ya tenemos todos los paso anteriores y estamos dentro de la carpeta del código fuente (p.e. libmtp-1.1.6-20-g1b9f164)

solo debemos de compilar ;)


dpkg-buildpackage -rfakeroot -b


Y aquí es donde sucede la magia, dependiendo de que programa compilas puede tomar minutos a horas, bueno también depende del poder de tu ordenador.

Una vez terminado el proceso, deberás de tener los .deb portados del paquete en cuestión en la carpeta superior (~/build)

Al compilar libmtp9 obtenemos varios paquetes, para no errar yo he instalado todos (por favor observa que yo uso la versión i386/x86, en tu caso puede variar),


cd ~/build ; \
sudo dpkg -i libmtp9_1.1.6-20-g1b9f164-1ubuntu2_i386.deb libmtp-common_1.1.6-20-g1b9f164-1ubuntu2_all.deb libmtp-dbg_1.1.6-20-g1b9f164-1ubuntu2_i386.deb libmtp-dev_1.1.6-20-g1b9f164-1ubuntu2_i386.deb libmtp-doc_1.1.6-20-g1b9f164-1ubuntu2_all.deb libmtp-runtime_1.1.6-20-g1b9f164-1ubuntu2_i386.deb mtp-tools_1.1.6-20-g1b9f164-1ubuntu2_i386.deb


Y listo, con ello estarás instalando la versión libmtp9 portada de Belenos a Toutatis.

Fue un poco larga esta entrada y sin embargo espero haya sido sencilla de seguir.

Adicionalmente, dejo los binarios para x86/i386 a disposición bajo la siguiente dirección (temporalmente) hasta que los ponga en un lugar más "ordenado",

wget http://ark.switnet.org/tmp/libmtp9_1.1.6-20-g1b9f164-1ubuntu2_i386.deb \
http://ark.switnet.org/tmp/libmtp-common_1.1.6-20-g1b9f164-1ubuntu2_all.deb \
http://ark.switnet.org/tmp/libmtp-dbg_1.1.6-20-g1b9f164-1ubuntu2_i386.deb \
http://ark.switnet.org/tmp/libmtp-dev_1.1.6-20-g1b9f164-1ubuntu2_i386.deb \
http://ark.switnet.org/tmp/libmtp-doc_1.1.6-20-g1b9f164-1ubuntu2_all.deb \
http://ark.switnet.org/tmp/libmtp-runtime_1.1.6-20-g1b9f164-1ubuntu2_i386.deb \
http://ark.switnet.org/tmp/mtp-tools_1.1.6-20-g1b9f164-1ubuntu2_i386.deb


Fructíferas compilaciones y happy hacking.
Saludos.

Responder a