Hola, al final se ha conseguido el objetivo de poder debianizar los scripts para nautilus realizados por Javielinux, bajo la ayuda de Alberto. Ha costado pero se ha llegado a buen puerto. Lo más costoso ha sido que Nautilus no permite que instalemos los scripts en el root, así que había que ingeniárselas para que se instalasen en la home de cada usuario y con los permisos correctos. Pero vayamos poco a poco.
Bien, lo primero es que al bajar los scripts y descomprimirlos nos damos cuenta de que no contienen ningún fichero de compilación e instalación (los típicos configure, make o scons); así pues vamos a tener que debianizarlos a mano, sin posibilidad de utilizar comandos como debuild. Pues visto lo visto tendremos que montar los directorios a mano.
Para ello creamos una carpeta en nuestro home llamada scripts y dentro de ella iremos metiendo todo lo necesario y en su sitio. Primero meteremos los ficheros de la licencia y del copyright, no son mas que ficheros de texto creados por nosotros mismos con Gedit. Tenemos que meterlos en la ruta que toca, y que será: /usr/share/doc/javielinux-nautilus-scripts/, esto es tan sencillo como ir creando estas carpetas de forma anidada y en el orden especificado, dentro de la carpeta scripts. Vale, ya tenemos una cosa hecha, vamos a por la siguiente.
Ahora deberíamos meter los scripts en donde tocan, por lo general debería de ser en la ruta /usr/share/gnome2/nautilus-scripts/ o en alguna equivalente, pero desgraciadamente nautilus no nos permite hacer esto, me lo confirmaron por e-mail los mismos desarrolladores del proyecto. Así pues debemos instalarlos en el único sitio que se nos permite, a saber: /home/nuestrousuario/.gnome2/nautilus-scripts, pero claro no podemos crear esta ruta a manos porque la carpeta o directorio que he llamado "nuestrousuario" es un nombre variable, es decir, cambia según el nombre del usuario que vaya a instalar el paquete debianizado, así pues problemón difícil de solventar, pero no imposible 
Recordé el paquete sun-java6-doc que tenemos en los repositorios y lo que hacía para instalar la extensa documentación de java. Para instalar correctamente este paquete tenemos que bajarnos primero de la web oficial de Sun la documentación y moverla a /tmp, para finalmente instalar sun-java6-doc nediante Synaptic, Adept o terminal; el cual lleva metido un fichero o script de postinstalación el cual se encarga de descomprimir la documentación de Java y moverla a la ruta deseada, aunque este script no limpia lo de tmp, pero nosotros sí lo limpiaremos, ya veréis.
Vale peña, hasta aquí ya tenía claras muchas ideas y montado mi propio organigrama mental del proyecto este. Seguidamente lo que hice fue crearme la ruta de carpetas /tmp/nautilus-scripts/ dentro de /scripts, y meter allí dentro los scripts de javielinux, ¡No olvidéis esta ruta porque va a ser clave chavales!
Ahora dentro de loa carpeta scripts hay que crear unba carpeta llamada DEBIAN (ha de ser en mayúsculas obligado), y ahí meteremos los ficheros: control, md5sums, postinst y prerm. El fichero control es el fichero en el cual especificamos el nombre del paquete o programa, su versión, arquitectura en la que se va a instalar, el nombre y e-mail del creador del deb, las dependencias del paquete y una descripción del programa. Para nuestro caso el fichero control tendrá el contenido siguiente:
-
Package: javi-nautilus-scripts
-
Version: 1.0-1ubuntu1
-
Section: gnome
-
Priority: extra
-
Installed-Size: 4502
-
Maintainer: Cristobal Lopez <lopeztobal@gmail.com>
-
Architecture: all
-
Depends: nautilus, python, python-dev, python-eyed3, python-nautilus, vorbis-tools, lame, mplayer, mp3splt, id3, dvdauthor, dvd-slideshow (>= 0.8.0), dvd-slideshow-themes (>= 0.8.0), sox, ffmpeg, mkisofs, mp3info, pdftk, pdfjam, imagemagick, ufraw, mencoder, mpgtx
-
Homepage: http://nautilus-scripts.javielinux.com/
-
Description: Scripts de Javielinux
-
Conjunto de scripts realizados por Javielinux para nautilus bajo licencia GPL3. Con ellos podras manipular tus ficheros de audio, dvd, imagenes o pdf, entre otros.
El fichero md5sums es un fichero que lo que hará es verificar que todos los archivos que contienen el paquete debianizado no están corruptos, vamos que son de confianza. La forma de crearlo os pongo al final del artículo un enlace para verlo, no es difícil. Antes de pasar a explicar los ficheros postinst y prerm os pongo un árbol de cómo debe quedar la colocación de los distintos ficheros y carpetas del paquete a debianizar dentro del directorio padre que hemos llamado en este artículo /scripts.
-
.
-
|-- DEBIAN
-
| |-- control
-
| |-- md5sums
-
| |-- postinst
-
| `-- prerm
-
|-- tmp
-
| `-- nautilus-scripts
-
| |-- Audio
-
| | |-- Convertir Mp3 a Ogg
-
| | |-- Convertir Mp3 a Wav
-
| | |-- Convertir Ogg a Mp3
-
| | |-- Convertir Ogg a Wav
-
| | |-- Convertir Wav a Mp3
-
| | |-- Convertir Wav a Ogg
-
| | |-- Convertir Wma a Mp3
-
| | |-- Convertir Wma a Ogg
-
| | |-- Dividir Mp3
-
| | |-- ID3 con datos de directorio y archivo
-
| | `-- Ver datos ID3
-
| |-- Comandos en ventana
-
| | |-- Añadir o Ejecutar Programa
-
| | |-- Procesar al vuelo juntos
-
| | |-- Procesar al vuelo uno a uno
-
| | |-- add_command.jpg
-
| | |-- add_parameter.jpg
-
| | |-- commands.xml
-
| | |-- doc_anadir_o_editar_programa.xml
-
| | |-- main.jpg
-
| | `-- sample_parameter.jpg
-
| |-- Comentarios
-
| | |-- Añadir comentarios a directorio
-
| | `-- Añadir comentarios a fotografías
-
| |-- DVD
-
| | `-- Crear DVD de fotografias
-
| |-- Imagenes
-
| | |-- Agregar borde
-
| | |-- Conversor de RAW a JPG
-
| | |-- Conversor de imágenes
-
| | |-- Convertir a polaroid
-
| | |-- Crear foto collage
-
| | |-- Crear miniaturas
-
| | |-- Crear mosaico fotográfico
-
| | |-- Crear mosaico polaroids
-
| | |-- Espejo Horizontal
-
| | |-- Espejo Vertical
-
| | |-- Redimensionar
-
| | |-- Reducir Calidad
-
| | |-- Rotar a la derecha
-
| | `-- Rotar a la izquierda
-
| |-- Otros
-
| | `-- Renombrar ficheros
-
| |-- PDF
-
| | |-- Combinar imágenes en PDF
-
| | |-- Comprimir PDF
-
| | |-- Extraer páginas JPG de un PDF
-
| | |-- Reducir páginas PDF
-
| | `-- Unir archivos PDF
-
| |-- Process.py
-
| |-- Process.pyc
-
| `-- Video
-
| |-- Extraer AVI
-
| `-- Extraer MPEG
-
`-- usr
-
`-- share
-
`-- doc
-
`-- javielinux-nautilus-scripts
-
|-- LICENCIA
-
|-- LICENSE
-
`-- copyright
Bien, pasemos pues a la parte más difícil del asunto, el fichero postinst. En realidad postinst va a ser un script (así pues deberemos darle permisos de ejecución). Este script se llama postinst porque va a ser un script que llevará metido un conjunto de órdenes escritas, en este caso en lenguaje script, que se realizarán durante la instalación del paquete e inmediatamente después de habernos puesto la licencia y los scripts en /tmp, de ahí su nombre, postinst es la abreviatura de post-installation (post-instalación).
Del código de este fichero tenía claro lo de copiar o mover la carpeta /nautilus-scripts a /home/nuestrousuario/.gnome2/, y que debía cambiar los premisos de todos esos directorios, tanto de propietario y grupo con el comando chown, lo que pasa es que no sabía cómo declarar eso en el script para que el sistema lo identificase por él mismo, ya que recordad que el nombre de usuario en este caso es variable, no es fijo, varía según el que vaya a instalar el programa; ¡yo no conozco a to kiskiii!!!
El otro escollo era que esto se debía de instalar para todos los posibles usuarios que estuviesen el Linux dionde se instalase el programa, de esto no sabía nada de cómo hacerlo; de lo del chown todavía intuía que debí9a haber algún tipo de variable identificativa como la de $HOME, pero desconocía sus nombres; ya que mis conocimientos de lenguaje script son bastante pobres, aunque ahora he aprendido bastante 
Y aquí es donde entra en acción mi colega Alberto de Diario De Un Linux3ro, le conté por mensajero lo que quería y en 5 minutos ya lo tenía hecho, ¡tio eres el puto amo de los scripts! ¡Crack!
Pues nada, después de no se cuántos intentos de prueba, más que nada porque soy un patoso, el script postinst tiene el siguiente código:
-
#! /bin/sh
-
cd
-
find /home/ -maxdepth 1 -type d -name "*" -exec basename '{}' \;> usuarios.txt
-
grep -v "home" usuarios.txt> usuarios_b.txt
-
rm usuarios.txt
-
mv usuarios_b.txt usuarios.txt
-
usuario="algo"
-
while [ ! -z "$usuario" ]
-
do
-
read usuario
-
if [ ! -z "$usuario" ]
-
then
-
if `grep -e "^$usuario:.*" /etc/passwd>/dev/null`
-
then
-
uiid=`grep -e "^$usuario:.*" /etc/passwd | cut -d ":" -f 3>/dev/null`
-
if [ ! -d /home/$usuario/.gnome2/nautilus-scripts/ ]; then
-
cd /home/$usuario/.gnome2/
-
mkdir nautilus-scripts
-
cd
-
fi
-
cd /tmp/nautilus-scripts
-
cp -r Audio Comandos\ en\ ventana Comentarios DVD Imagenes Otros PDF Video Process.py Process.pyc /home/$usuario/.gnome2/nautilus-scripts/
-
cd
-
cd /home/$usuario/.gnome2/nautilus-scripts/
-
chown -R $usuario.$uiid *
-
chmod -R +x *
-
chmod -x Process.py Process.pyc
-
cd Comandos\ en\ ventana
-
chmod -x *.xml
-
fi
-
fi
-
done <./usuarios.txt
-
cd
-
rm usuarios.txt
-
rm -R /tmp/nautilus-s*
Bueno no voy a pararme a explicarme todo ese código porque esto se esta haciendo bastante largo, y hay cosas que no entiendo todavía muy bien 
Ahora me falta explicaros el prerm, éste también va a ser un script, el cual va a tener unas funciones a realizar claves, a saber, nos va a borrar los scripts de javielinux cuando desinstalemos el paquete debianizado o cuando lo actualicemos a una nueva versión. Esto se hará antes de instalar el programa durante la instalación del deb, por eso su nombre de prerm, abreviatura de pre-romove (pre-borrado). No me costó mucho ya crear este script, me fijé en el que había en el sun-java6-doc y en el del postinst, además de coregírmelo cada dos por tres Alberto. El código de este script es:
-
#! /bin/sh
-
cd
-
find /home/ -maxdepth 1 -type d -name "*" -exec basename '{}' \;> usuarios.txt
-
grep -v "home" usuarios.txt> usuarios_b.txt
-
rm usuarios.txt
-
mv usuarios_b.txt usuarios.txt
-
usuario="algo"
-
-
if [ "$1" = remove ] || [ "$1" = upgrade ]
-
then
-
while [ ! -z "$usuario" ]
-
do
-
read usuario
-
if [ ! -z "$usuario" ]
-
then
-
if `grep -e "^$usuario:.*" /etc/passwd>/dev/null`
-
then
-
uiid=`grep -e "^$usuario:.*" /etc/passwd | cut -d ":" -f 3>/dev/null`
-
if [ -f /home/$usuario/.gnome2/nautilus-scripts/Process.py ]
-
then
-
cd /home/$usuario/.gnome2/nautilus-scripts/
-
rm -R Audio
-
rm -R Comandos\ en\ ventana
-
rm -R Comentarios
-
rm -R DVD
-
rm -R Imagenes
-
rm -R Otros
-
rm -R PDF
-
rm -R Video
-
rm Process.py
-
rm Process.pyc
-
fi
-
fi
-
fi
-
done <./usuarios.txt
-
cd
-
rm usuarios.txt
-
fi
En este script también hemos tenid que hacer la búsqueda de usuarios, conm el trozo de código:
-
find /home/ -maxdepth 1 -type d -name "*" -exec basename '{}' \;> usuarios.txt
-
grep -v "home" usuarios.txt> usuarios_b.txt
-
rm usuarios.txt
-
mv usuarios_b.txt usuarios.txt
-
usuario="algo"
Lo que más me interesó fue la siguiente instrucción:
-
if [ "$1" = remove ] || [ "$1" = upgrade ]
Esta condición de if es muy importante, ya que si $1 es remove (borrar) o update (actualizar) hará lo que haya dentro del if, en este caso borrar los scripts de javielinux donde estaban instalados. Es importante porque las opciones remove y update son precisamente las opciones que podríamos haber especificado por terminal con el programa apt-get o aptitude, y que nujestro Linux ya reconoce al ejecutar el script con este if y porque el script lo hemos llamado prerm y no otra cosa.
Pues vale, hasta aquí ya lo tenemos todo montado chavales, ha cvostado eh? Ahora nos queda debianizarlo, ¿cómo?, con los siguientes comandos: (suponiendo que en la terminal nos encontramos en nuestro propio home)
-
cd scripts
-
dpkg -b /home/tobal/scripts /home/tobal/javi-nautilus-scripts_1.0-1ubuntu1_all.deb
Y con esto ya tenemos construido nuestro paquete debianizado, tan sólo queda insttalarlo, disfrutarlo y compartirlo
Enlaces de consulta:
Videotutorial Debianizar Sin Autotools
Debianizando Programas. Parte 2
Scripting. Diario De Un Linux3ro
Los scripts de Javielinux para nautilus los podéis descargar PINCHANDO AQUÍ
Saludos :-h



Menuda explicación que te has montado tío… ahora solo queda que todo el mundo se lo instale gracias a ti
Por cierto son 10.000 xD !
En cuanto a lo de Valencia… pues más o menos me ha dicho mi padre que estaremos moviéndonos por varios sitios, así que no creo que pueda ser tomar algo, pero yo prometo que el año que viene me apunto a la campus y si no me apunto me hago un viaje y quedamos para tomar lo que sea y donde sea xDDD
Es más puede que dentro de muy poco vuelva a ir por que tengo un amigo que se va y queremos darle una sorpresita yendo a Alicante, que no me importa subir para Valencia después… así que ya te contaré
Saludos!!!
Enhorabuena Cristóbal. Yo cuando sea mayor quiero “debianizar” como tu.
Sólo una pequeña petición , creo que este paquete se podría hacer para arquitectura=all y así poder instalarlo en sistemas que no sean i386 y compatibles.
Un saludo.
Espartacus me voy a poner colorado :>
Lo que dices ya lo he corregido en el artículo y en el deb que se lo he mandado por e-mail a Javielinux, en breve lo tendrás disponible en su web
Sí lo había hecho para todas las arquitecturas pero tuve un desliz en el fichero control, siento mucho las molestias causadas.
Saludos
Gracias por la explicación Cristóbal
De nada elcura, es un placer y algo que me gusta hacer