Intento de crear el paquete deb del reproductor dmidiplayer 1.7.0 en MX Linux 21 al estilo Alien (PERO NO SE PUDO)
NO FUNCIONA ESTE, PERO YA LOGRÉ CREAR LOS DEB AQUÍ CON NINJA.
dmidiplayer (Drumstick MIDI File Player) es un reproductor de archivos de formato .MID (Standard MIDI Files), .KAR (Karaoke), .RMI (RIFF MIDI), y .WRK (Cakewalk), y envía eventos MIDI a puertos MIDI de hardware y también a sintetizadores de software creado por Pedro López-Cabanillas
POSIBLE SOLUCIÓN AL ERROR DE ESTE TUTORIAL
Este método hubiera servido para crear el deb desde cualquier programa Qt si no tiene el archivo rules y si install_manifest.txt. El error parece estar en que yo cree la carpeta debian de sonivox como single y no como librería (eso está en la ayuda de dh_make --help), así que si lo hubiera creado como librería habría que haber creado en DEBIAN/control las entradas necesarias para que se creen los varios paquetes de librerías. Se hubiera podido como ejemplo el siguiente paquete drumstick-tools que es de donde salen varios paquetes de librerías (no usé el ejemplo de sonivox porque ese paquete no hay en packages.debian.org):
https://packages.debian.org/bullseye/drumstick-tools
wget http://deb.debian.org/debian/pool/main/libd/libdrumstick/libdrumstick_1.1.3-1.debian.tar.xz
donde, ejemplo de las librerías compartidas de paquetes que se crearían con control como librería:
pero como esa librería es vieja habría habido que hacer lo mismo que hizo Christian Marillat:
y no como yo en este tutorial hice pensando que se podría crear un solo paquete (le había puesto -s de single). Además si hubiera sido creada la librería con este método después de creado los deb de las librerías de sonivox habría habido necesario instalar esos debs pues de lo contrario no se hubieran creado los registros de esas dependencias en el sistema y no hubiera sido posible crear la siguiente drumstick. Pero en VNote si funcionó este método con Alien porque sólo era un paquete.
Para crear los paquetes deb de éste y sus dependencias necesitamos hacer algunas cosas
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, o si desea otro editor de texto solo cámbielo del comando):
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.
Desinstalando drumstick
Si usted tenía instalado desde los repositorios a drumstick desinstálelo:
sudo apt remove drumstick-tools
Eso porque es necesaria una librería de desarrollo que viene únicamente en el código fuente.
Herramientas usadas
Usaré en el tutorial:
Dolphin
Konsole
pero usted puede usar otro administrador de archivos u otra consola
Dependencias
Para poder compilar dmidiplayer 1.7 primero es necesario compilar a sonivox, drumstick y se necesita instalar las siguientes dependencias:
sudo apt install libasound2-dev doxygen libpulse-dev git \
libfluidsynth-dev qttools5-dev cmake qttools5-dev pandoc \
libxorg-gtest-dev libgmock-dev xsltproc graphviz \
libuchardet-dev dh-make
les aconsejo hacer lo siguiente dentro de una carpeta principal, ejemplo yo usaré una llamada:
dmidiplayer-1.7-building
y para cada una de las dependencias, subcarpetas
Compilando sonivox y creando el deb
wget -c https://github.com/pedrolcl/sonivox/archive/refs/tags/v3.6.11.tar.gz
tar -xvzf v3.6.11.tar.gz
cd sonivox-3.6.11
mkdir -p build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
make
sudo make install
cd ..
install_manifest.txt
en la carpeta:
build
tar cvf - -T ./build/install_manifest.txt | tar xvf - -C ./extraction
y al ejecutar el comando dando Enter ahora vemos dentro de la carpeta extraction y hay una carpeta llamada:
Nota: Hay la posibilidad remota de que algún programa instale además de usr en alguna carpeta mas, pero de ser así en las instrucciones de este tutorial para usar el archivo rules de la carpeta debian se deberá hacer un ajuste para añadir otra carpeta más y si fuer así yo no he investigado aún hacer eso por lo que deberá escribirme el interesado si hubiera un caso así.
Creando el directorio debian
En el siguiente comando usted modifique el correo y ponga el suyo:
dh_make -s --copyright apache --email su.correo@servidor.com --createorig
yo pongo el mío:
dh_make -s --copyright apache --email wachin.id@gmail.com --createorig
Nota: Si está usando Dolphin puede que tenga que usar la tecla F5 para actualizar los archivos y que se vea la carpeta debian.
le explico que en este programa la licencia es Apache:
https://manpages.debian.org/unstable/dh-make/dh_make.1.en.html
son:
changelog
git clone https://github.com/wachin/dmidiplayer-1.7-Wachin-Dev
dpkg-buildpackage -uc -b
espere un momento y cuando en la terminal se limpie lo que se estaba procesando, busque en la carpeta anterior y vea que allí estará el deb:
Nota: Si desea puede descomprimir al deb con clic derecho extraer aquí para que entre en la carpeta resultante y pueda verificar que allí está todo el contenido del programa
Compilando drumstick
Nota: Las dependencias xsltproc graphviz son necesarias para drumstick.
Realizo la compilación poniendo en la terminal en la carpeta principal en mi caso
/dmidiplayer-1.7-building/
en la sub carpeta:
drumstick-dev
wget -c https://sourceforge.net/projects/drumstick/files/2.7.2/drumstick-2.7.2.tar.gz
tar -xvzf drumstick-2.7.2.tar.gz
cd drumstick-2.7.2
mkdir -p build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
make
sudo make install
cd ..
Al compilarlo se instalarán los siguientes lanzadores en su sistema:
/usr/bin/drumstick-drumgrid
/usr/bin/drumstick-guiplayer
/usr/bin/drumstick-vpiano
Nota: Yo configuré en cmake para que haga la instalación en la ruta /usr pues de lo contrario se instalaba todo en /usr/local y no funcionaba el programa, además para este tutorial necesitamos que esté en /usr
ahora realizando el proceso anterior en la carpeta inicial de drumsitck creo la carpeta:
extraction
y allí en:
/dmidiplayer-1.7-building/drumstick-dev/drumstick-2.7.2/
abro una terminal
y pongo:
tar cvf - -T ./build/install_manifest.txt | tar xvf - -C ./extraction
dh_make -s --copyright gpl3 --email wachin.id@gmail.com --createorig
ponga:
y
Nota: Si está usando Dolphin puede que tenga que usar la tecla F5 para actualizar y que se vea la carpeta debian
entre en la carpeta debian y borre los archivos exepto:
changelog
control
ahora, del archivo control que yo le dejo en:
/dmidiplayer-1.7-Wachin-Dev/drumstick-dev/debian/
abralo y copie:
y pegue la información necesaria en el suyo así como anteriormente le expliqué, y también copie mi archivo del copyright y cambiele mi nombre por el suyo, y el archivo rules también copie el que yo le doy y peguelo en su carpeta debian (sobre el archivo changelog si usted desea que quede más personalizado vea este tutorial.)
dpkg-buildpackage -uc -b
y ejecútelo y luego se creará el deb esperando un momento, en la carpeta anterior:
Nota: Si desea puede descomprimir al deb con clic derecho extraer aquí para que entre en la carpeta resultante y pueda verificar que allí está todo el contenido del programa
Compilando dmidiplayer 1.7.0
Ahora compilar dmidiplayer 1.7.0 entrando en su administrador de archivos en la carpeta:
/dmidiplayer-1.7-building/
y allí cree una subcarpeta:
/dmidiplayer-1.7-building/dmidiplayer-dev
y abra una terminal allí y ponga:
wget -c https://github.com/pedrolcl/dmidiplayer/archive/refs/tags/v1.7.0.tar.gz
tar -xvzf v1.7.0.tar.gz
cd dmidiplayer-1.7.0
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX:PATH=/usr
make
sudo make install
cd ..
ahora entre en la carpeta:
/dmidiplayer-1.7-building/dmidiplayer-dev/dmidiplayer-1.7.0
cree la carpeta:
extraction
entre en una terminal en:
/dmidiplayer-1.7-building/dmidiplayer-dev/dmidiplayer-1.7.0/
y ponga:
tar cvf - -T ./build/install_manifest.txt | tar xvf - -C ./extraction
dh_make -s --copyright gpl3 --email wachin.id@gmail.com --createorig
Cambiando mi correo por el suyo
Nota: La licencia de este programa es GPL·
al dar Enter le preguntará y ponga:
y
y entre en el administrador de archivos en la carpeta debian que se ha creado y borre los archivos excepto:
control
Nota: Voy a personalizar el archivo changelog siguiendo el siguiente tutorial.
Personalizando el archivo changelog
Ahora vamos a crear un changelog que ya contenga la información con más exactitud (por cuestiones de tiempo no les pongo a los otros dos paquetes), para esto instalemos primero la siguiente dependencia:
sudo apt install libdistro-info-perl devscripts
Ahora analice la siguiente línea donde le he puesto en negrita lo que usted puede modificar:
dch --create --distribution stable --package "dmidiplayer" --newversion 1.7.0 "Building the 32 bit debian deb package for MX Linux 21"
La versión del programa que está a esta fecha es la 1.7.0 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 "dmidiplayer" --newversion 1.7.0 "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:
que están en el repositorio que le dejé:
/dmidiplayer-1.7-Wachin-Dev/dmidiplayer-dev/debian/
y peguelos a su carpeta
debian
debe quedar así:
dpkg-buildpackage -uc -b
y espere un momento, y en la carpeta anterior se creará el paquete deb:
Nota: Si desea al deb lo puede extraer con clic derecho Extraer aquí para que constate todo su contenido.
Ahora tenemos las dos dependencias con que se instala dmidiplayer
Descargar dmidiplayer 1.7.0 desde Github
He subido los paquetes a github, si los quiera usar:
https://github.com/wachin/dmidiplayer/releases/
https://github.com/wachin/dmidiplayer/releases/tag/v1.7.0
Cuando lo haya instalado el programa quedará instalado entre sus aplicaciones:
quedando con el nombre:
Reproductor Drumstick de archivos MIDI
Desinstalando las dependencias y dmidiplayer que instalamos desde código fuente
Para desinstalarlo drumstick y drumstick desde código fuente que hemos compilado
Estándo en la carpeta:
build
que está en el codigo fuente de cada uno se pone en una terminal:
sudo make uninstall
Alien para obtener el archivo rules
y encontré:
sudo alien -d -c vnote-1.20-1.11.i586.rpm
Usando dmidiplayer
Abra el programa y de clic en:
Archivo → Abrir
busque un archivo de alguna secuencia, pueden ser:
.kar
.mid
.midi
.rmi
.wrk
en la siguiente imagen estoy escuchando un MIDI:
Por defecto el programa está configurado para reproducir los archivos de secuencias usando SonivoxEAS, esto lo puede constalar en:
Preferencias → Ajustes MIDI
Usando dmidiplayer con JACK
Si usted desea usar este programa en UbuntuStudio o AV Linux debe usar ALSA
Antes de todo instale una fuente de sonido, ejemplo la siguiente que para mi tiene buen sonido:
sudo apt-get install musescore-general-soundfont-lossless
También puede instalar otras, aquí le dejo un tutorial:
Fuentes de sonido (SoundFonts) gratis desde paquetes de Ubuntu, Debian, Deepin Linux y TuxGuitar
Ahora, debe usted seguir estos pasos:
- Abrir QjackCtl y darle Play
- Abrir Qsynth y cargar una fuente de sonidos:
Configuración → SoundFonts → Abrir - Abrir dmidiplayer y en Ajustes MIDI seleccionar ALSA y debajo aparecerá FLUID Synth
En la siguiente imagen estoy escuchando un MIDI con muy buen sonido:
esta versión 1.7 trae algo muy especial, control de volumen para cada canal de instrumentos, esto está en:CONSULTA:
command line - Copy a list of files preserving directory structure, without scripts - Super User
https://superuser.com/a/668303
Drumstick MIDI File Player Multiplatform (mirror)
https://github.com/pedrolcl/dmidiplayer
https://dmidiplayer.sourceforge.io/
Command linux xsltproc not found in a script
https://stackoverflow.com/questions/69424536/command-linux-xsltproc-not-found-in-a-script
doxygen missing components: dot #129
https://github.com/labapart/gattlib/issues/129
https://github.com/labapart/gattlib/issues/129#issuecomment-699617624
CMake Error at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
Could NOT find Doxygen (missing: dot) (found version "1.9.1")
Call Stack (most recent call first):
/usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.18/Modules/FindDoxygen.cmake:633 (find_package_handle_standard_args)
CMakeLists.txt:302 (find_package)
Comentarios
Publicar un comentario