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.