Creando paquete deb del editor de Markdown "VNote" en MX Linux 21 al estilo Alien (este método podría servir para crear el deb desde cualquier programa Qt si no tiene el archivo rules ni install_manifest.txt )

Entre aquí en este tutorial solo si usted va a compilar el programa y crear los deb, ese es el proposito de este tutorial

VNote está escrito en Qt y tiene un problema para poder crear el deb y es que al compilarlo no crea el archivo install_manifest.txt ejemplo como si aparece al compilar drumstick (o algún otro programa):

 
/drumstick-2.7.2/build/install_manifest.txt
 
y como no hay la carpeta debian el archivo rules que se crearía allí no tendrá un archivo rules que sea valido y como yo no se cómo crear un archivo rules correcto he encontrado otro modo de solucionar estos dos problemas y es que modifiqué el método que usa Alien cuando se convierten paquetes desde rpm a deb

Nota: Este método podría servir para crear el deb desde cualquier programa Qt si no tiene el archivo rules ni install_manifest.txt, pero si lo que quiere crear es una librería podría servir pero habría que en dh_make usar -l y en el archivo control debería ser editardo para crear las diferentes librerías, y si hubiera que crear más dependencias esas se deberían de instalar para que se cree en el sistema un registro de las dependencias. En otras palabras si es para una librería falta información para poder usar este tutorial para ello.

Descargar deb

Si necesitan rapidamente los deb necesarios y empaquetados pueden encontrarlos aquí:



Añadir el nombre del Mantenedor (o Responsable) a su Sistema para que se compile con ese nombre

Para hacer esto ponga en una terminal lo siguiente (teniendo instalado Gedit):

gedit ~/.bashrc 

allí debe llegar hasta abajo y con enter hacerse un espacio::


y allí debe de poner lo siguiente:

DEBEMAIL="your.email.address@example.org"
DEBFULLNAME="Firstname Lastname"
export DEBEMAIL DEBFULLNAME

y cambiar con sus datos, a mi me queda así:

 

ahora cierro Gedit y reinicio el ordenador. Con esto una vez que usted haya creado el deb al revisarlo en Synaptic se verá allí su nombre y su correo en la descripción (Pestaña: Comunes / Responsable o Mantenedor).Además servirá al momento de crear el archivo changelog.

Instalar las dependencias

Ponga en una terminal de una sola vez todas estas líneas y ejecútelas:
 
sudo apt install cmake build-essential libqt5x11extras5-dev qt5-qmake \
	qtbase5-dev-tools extra-cmake-modules qtdeclarative5-dev-tools \
	qtdeclarative5-dev qtcreator qttools5-dev qttools5-dev-tools \
	libqt5svg5-dev qtwebengine5-dev libqt5svg5-dev \
	libqt5location5 qtlocation5-dev dh-make

VNote depende de varios sub-modulos

Si lo desea ubíquese en alguna carpeta para que dentro clone VNote. Ahora si, ponga en una terminal en el lugar deseado:

git clone https://github.com/vnotex/vnote.git vnote.git
cd vnote.git
git submodule update --init --recursive
 
aquí les dejo una imagen:
 


una vez clonado cámbiele el nombre poniéndole al final el nombre de la versión, es decir, como dice así:
 
vnote.git
 
cambieselo:
 

 
 a la versión que corresponde de la fecha con que clonó el repositorio:
 
 
Nota: Si no apacere el numero asi como en la imagen de arriba, de doble clic al archivo changes.md para que entre y allí estará la versión

y debe quedar ejemplo a esta fecha que hago este tutorial:

vnote-3.15.0


queda así:
 


y éntre allí en una terminal allí:



Compilar VNote en HOME

Esto es para saber qué archivos se instalan en el sistema, para hacerlo debemos compilar e instalar VNote en HOME. Cree una carpeta llamada "usr" en HOME así:


 y me queda así:

ahora yo debo poner (yo debo poner el nombre de mi usuario) en la terminal donde entramos anteriormente las siguientes líneas poniéndolas una por una ejecutandolas:
mkdir build
cd build
qmake PREFIX=/home/wachin/usr/ ../vnote.pro
make
sudo make install

bien allí les dejé en negrita el nombre de usuario mío "wachin", usted debe poner el de usted no el mío

En la siguiente imagen les muestro dónde empiezo a poner los comandos, en esa ruta para mi:

 

al dar Enter se empezará a compilar:

y cuando ya esté poner la contraseña:

esta compilación demorará algunas horas, instalado pero con todos los archivos del programa en HOME en la carpeta usr, les explico ahora con el administrador de archivos Dolphin que ya están instalados los archivos:

si usted deseara lanzar el programa no se lanzará porque las librerias no están en el lugar correcto, y la ruta del programa no está en el path

Ahora usted copie toda la carpeta usr


y pegar en nuestro vnote:


y queda así:

copiar estos nombres:

para copiar los nombres le sugiero usar tree, instálelo si no lo tiene:

sudo apt-get install tree 

y abra allí en usr una terminal:


allí ponga tree y ejecutelo con Enter:

y copie lo que le indico:


y peguelo en algún lado, yo aquí lo con Ctrl + Shift + V para pegarlo sin formato:

├── bin
│   ├── vnote
│   └── vnote_extra.rcc
├── lib
│   ├── libVSyntaxHighlighting.so -> libVSyntaxHighlighting.so.1.0.0
│   ├── libVSyntaxHighlighting.so.1 -> libVSyntaxHighlighting.so.1.0.0
│   ├── libVSyntaxHighlighting.so.1.0 -> libVSyntaxHighlighting.so.1.0.0
│   ├── libVSyntaxHighlighting.so.1.0.0
│   ├── libVTextEdit.so -> libVTextEdit.so.1.0.0
│   ├── libVTextEdit.so.1 -> libVTextEdit.so.1.0.0
│   ├── libVTextEdit.so.1.0 -> libVTextEdit.so.1.0.0
│   └── libVTextEdit.so.1.0.0

 Nota: El signo -> significa que eso es un enlace a otro archivo, en ese caso al siguiente

esos archivos ahora usted bórrelos de allí, en la siguiente imagen borrando los 8 que están en la carpeta lib:


también borre los de la carpeta bin

así debe de quedarle:

 

ahora borre la carpeta:

build


Compilando VNote correctamente

Ahora vuelva a la terminal donde estábamos compilando VNote y ponga uno por uno los comandos anteriores:

mkdir build
cd build
qmake ../vnote.pro
make
sudo make install

Nota: En este programa VNote cuando lo compilamos la ruta de instalación será a /usr por defecto, pero en algunos otros programas podría no serlo y ejemplo ser en usr/local por lo que de ser así usted debería usar qmake PREFIX=/usr/ ../vnote.pro para corregirlo, en el caso como este que es un programa escrito en Qt y se usa qmake pero en programas escritos en otros lenguajes debe de consultar en Google.

así compilaremos correctamente el programa:

 

esperemos un par de horas hasta que se compile (o depende de su ordenador estaría más rápido)

ahora lo puede buscar entre las aplicaciones y abrirlo. En la siguiente imagen VNote 3.15.1 en MX Linux 21 de 32 bits, veo que el desarrollador a avanzado y ya no es 3.15.0 sino 3.15.1 pero bueno:


veo que el desarrollador no ha actualizado el archivo changes a esta fecha 2022-10-27 (pero ya lo ha de actualizar):

https://github.com/vnotex/vnote


pero sigamos

Copiemos los archivos:

├── bin
│   ├── vnote
│   └── vnote_extra.rcc
├── lib
│   ├── libVSyntaxHighlighting.so
│   ├── libVSyntaxHighlighting.so.1
│   ├── libVSyntaxHighlighting.so.1.0
│   ├── libVSyntaxHighlighting.so.1.0.0
│   ├── libVTextEdit.so
│   ├── libVTextEdit.so.1
│   ├── libVTextEdit.so.1.0
│   └── libVTextEdit.so.1.0.0

que ahora están en usr/bin y usr/lib

en la siguiente imagen copiando desde /usr/bin

y pegando a HOME en nuestro proyecto de compilación:

 

luego copiando las librerías desde /usr/lib:


a nuestro proyecto en HOME en usr/lib:


Creando el directorio debian

Pongámonos en una terminal en nuestro proyecto:


el siguiente comando, pero usted modifique el correo y ponga el suyo:

dh_make -s --copyright lgpl3 --email su.correo@servidor.com --createorig

yo pongo el mío:

dh_make -s --copyright lgpl3 --email wachin.id@gmail.com --createorig

le explico que en este programa VNote la licencia es:

https://github.com/vnotex/vnote/


en el archivo dice:


y las licencias disponibles para dh-make según:

https://manpages.debian.org/unstable/dh-make/dh_make.1.en.html

son:


si desea ver esos archivos que están instalados en su sistema, los encontré en el paquete:


puede entrar en esa ruta con un administrador de archivos:


si pone en la terminal:
dh_make --help

allí aparecerán todas las opciones disponibles si desea cambiar algo.

Ahora si al poner en la terminal el comando:


al dar Enter aparecerá lo siguiente que le preguntará si están correctos los detalles que ha puesto, pongale que si aplastando en su teclado la tecla:

y

al aplastar la "y" parece que no sucede nada, pero si en su administrador de archivos regresa un directorio anterior verá que se está creando un archivo .tar.xz


cuando se termine de crear ese .tar.xz, en la carpeta de nuestro proyecto se habrá creado la carpeta debian: 

entonces ahora que hemos creado la carpeta debian:


Nota: Los archivos changelog y copyright si usted sabe cómo, usted los puede dejar y editar llenándolos según crea conveniente, pero en este tutorial vamos a usar los míos (aunque también los puede sacar a parte y tenerlos para poder compararlos con los míos, para que sepa qué es lo que he hecho)

como le explico en la imagen de arriba para este tutorial debemos borrar los archivos que no vamos a necesitar. Para este tutorial sólo necesitaremos el archivo:

control


ahora, clone el siguiente repositorio:

git clone https://github.com/wachin/VNote-Wachin-Dev

de este repositorio entre en la carpeta:

debian

abra el archivo control:

 

y copie el contenido de:


donde le indico en las flechas:


y reemplace esa información dentro de la carpeta de nuestro proyecto en el archivo control que dejamos:


y en la siguiente imagen yo ya le he pegado la información:


En section le puse editors pero si usted desea saber la información


están disponibles las siguientes:

admin, cli-mono, comm, database, debug, devel, doc, editors, education, electronics, embedded, fonts, games, gnome, gnu-r, gnustep, graphics, hamradio, haskell, httpd, interpreters, introspection, java, javascript, kde, kernel, libdevel, libs, lisp, localization, mail, math, metapackages, misc, net, news, ocaml, oldlibs, otherosfs, perl, php, python, ruby, rust, science, shells, sound, tasks, tex, text, utils, vcs, video, web, x11, xfce, zope. 

ahora, guarde los cambios.

Personalizando el  archivo changelog

Recuendan que en pasos anteriores borramos muchos archivos incluidos el changelog que se había generado, pues ahora vamos a crear uno que ya contenga la información con más exactitud, para esto instalemos primero la siguiente dependencia:

sudo apt install libdistro-info-perl

Ahora analice la siguiente línea donde le he puesto en negrita lo que usted puede modificar:

dch --create --distribution stable --package "vnote" --newversion 3.15.1 "Building the 32 bit debian deb package for MX Linux 21"

La versión del programa que está a esta fecha es la 3.15.1 y eso es lo que le puse, pero en el futuro estará otra versión y deberá editar esa parte, también puede poner otro mensaje en vez de "Building the 32 bit debian deb package for MX Linux 21" pero no se olvide de que está entre comillas. Luego que lo haya modificado ponga en la terminal en la raíz del nuestro proyecto:

dch --create --distribution stable --package "vnote" --newversion 3.15.1 "Building the 32 bit debian deb package for MX Linux 21"

así como en la siguiente imagen:


ahora revise la carpeta:

debian 


Ahí de por si ya funciona, pero si le desea agregar más información al archivo changelog yo lo hago con Gnome Builder porque me ayuda ver bien la estructura y que no se me muevan los carácteres importantes, lo puede instalar con:

sudo apt install gnome-builder

en la siguiente imagen lo he abierto con Gnome Builder:


mejor por el momento no lo edite, para evitar que después no le funcione (a usted le aparecerá su nombre, no el mío)

ahora copie los archivos:

copyright
rules


y peguelos en la carpeta de nuestro proyecto:


Nota: El archivo copyright tiene mi nombre en los archivos de la carpeta debian, usted lo puede cambiar y poner sus datos 

ahora en la terminal en nuestro proyecto ponga:
dpkg-buildpackage -uc -b

Donde:

-b: Compila solo el paquete binario o sea el deb.
-uc - No firma los archivos .buildinfo y .changes 

Si tiene curiosidad puede ver la ayuda en Inglés si poner en la terminal:

dpkg-buildpackage --help




en la siguiente imagen pongo el comando y lo ejecuto:


esta vez no se demorará mucho, sólo unos minutos o menos

ahora revise la carpeta anterior y encontrará el deb:

VNote 3.15.1 generado



Descargar paquete deb en github

El deb lo he subido a Github:





instálelo con gdebi, he dejado un tutorial sobre eso:

Cómo Instalar paquetes DEB con gdebi o kde-servicemenu-checkhash-installdebs(Dolphin)
https://facilitarelsoftwarelibre.blogspot.com/2016/09/instalar-paquetes-deb-con-gdebi.html

una vez instalado lo verá entre sus programas, lo puede buscar escribiendo el nobre:

VNote

o también depende de su sistema estará en Accesorios:


la imagen de arriba es de xfce4-appfinder en Fluxbox


Revisando VNote en Synaptic 

Una vez instalado, sucede que en Synaptic si uno lo quiere revisar a veces no aparece, para que me aparezca he tenido que escribir despacio las primeras palabras del nombre:

vno



o también tuve que cerrar synaptic y abrirlo 3 veces hasta que apareció vnote instalado:



Alien para obtener el archivo rules

Si se pregunta cómo se esto, bueno pues un día estaba convirtiendo un rpm de VNote a deb y allí empezó todo
 
Había buscado la palabra:
 
vnote
 
en:


y encontré:
 
sudo alien -d -c vnote-1.20-1.11.i586.rpm

 

ejecutando la conversión:
 

 Alien crea la carpeta debian:


copiar la carpeta debian y dentro está el archivo rules que Alien ha creado, ese es el archivo que modifiqué, puede comparar los cambios con por ejemplo Meld. Lo que hice yo fue modificar el comando que buscaba la carpeta usr pues el de Alien buscaba todos los archivos alrededor y en nuestro proyecto no podemos hacer eso pues alrededor de la carpeta usr tenemos las demás carpetas de vnote. 
 

¿Sobre cómo se crea el AppImage de 64 bits?

Le escribí al desarrollador y el me escribió que hay un script oculto que crea el AppImage:


Vea las carpetas y archivos ocultos con Ctrl + H

Manual de uso de VNote

Si necesita un manual vea:

Vnote para MX Linux 21, antiX 21 de 32 y 64 bits deb (y Linux basados en Debian 11 Bullseye) + Cómo compilarlo desde código fuente + Manual basico de uso

Dios les bendiga


CONSULTAS

Build VNote
https://vnotex.github.io/vnote/en_us/#!docs/Developers/Build%20VNote.md

packaging - Dch non-interactive mode - Ask Ubuntu
https://askubuntu.com/questions/579323/dch-non-interactive-mode
https://askubuntu.com/a/580393/145772 

Make a Debian Package (.deb) from a Qt Project - Ask Ubuntu
https://askubuntu.com/questions/274311/make-a-debian-package-deb-from-a-qt-project
https://askubuntu.com/a/320468

Empaquetamiento en Debian - Sitio oficial de Lihuen
https://lihuen.linti.unlp.edu.ar/index.php/Empaquetamiento_en_Debian



Comentarios