Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Emuladores y aplicaciones que ayudarán a la perpetuación del Spectrum y su software en el futuro

Moderador: Sir Cilve Sinclair

Avatar de Usuario
horace
Jack The Nipper
Mensajes: 147
Registrado: Mar Abr 17, 2007 7:57 am
Ubicación: 16384-23295
Contactar:

Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por horace » Dom Ene 06, 2008 8:05 pm

Aprovechando que ha salido una nueva versión de este estupendo emulador, ahí os va una pequeña guía de compilación...

1) Descargar los siguientes paquetes de la web del emulador FUSE ( http://fuse-emulator.sf.net ):

fuse-0.9.0.tar.gz
fuse-utils-0.9.0.tar.gz
libspectrum-0.4.0.tar.gz

y desde la web de libDSK ( http://www.seasip.demon.co.uk/Unix/LibDsk/ ), estos otros:

lib765-0.4.1.tar.gz
libdsk-1.2.0.tar.gz

2) Entrar en una consola o X-Term, como usuario 'root'.

3) Comprobar la existencia del directorio '/usr/local/lib' dentro del PATH de librerías del sistema, ya que ahí es dónde se instalarán las librerías que compilaremos y necesitaremos. Debiera existir en un fichero *.conf en el directorio /etc/ld.so.conf.d/. Concretamente en mi sistema Debian GNU/Linux Sid está en /etc/ld.so.conf.d/libc.conf.

Si no fuera así, basta con ejecutar los siguientes comandos:

Código: Seleccionar todo

   # echo "/usr/local/lib" > /etc/ld.so.conf.d/libc.conf
   # ldconfig -v


4) Instalar los siguientes paquetes desde un repositorio de Debian mediante APT:

Código: Seleccionar todo

   # apt-get install build-essential libaudiofile-dev libbz2-dev libglib2.0-dev zlib1g-dev libxml2-dev libpng12-dev libasound2-dev libsamplerate0-dev libgcrypt11-dev


y los siguientes paquetes dependen de con qué interface queramos usar el emulador:

GTK+ (el mejor):

Código: Seleccionar todo

      # apt-get install libgtk2.0-dev

SDL:

Código: Seleccionar todo

      # apt-get install libsdl1.2-dev

SVGALIB:

Código: Seleccionar todo

      # apt-get install libsvga1-dev


y éste último es por si queremos usar un mando de control o pad:

Código: Seleccionar todo

   # apt-get install libjsw-dev


Seguramente, por tema de dependencias, se os pida instalar más paquetes que los que pedís. Lo aceptaís, ya que es normal.

5) Crear un directorio llamado 'fuse' y dentro de este directorio descomprimir los 5 archivos descargados inicialmente: fuse-0.9.0.tar.gz, fuse-utils-0.9.0.tar.gz, libspectrum-0.4.0.tar.gz, lib765-0.4.1.tar.gz y libdsk-1.2.0.tar.gz

Nos debería quedar una jerarquía de directorios tal que así:

~/fuse/fuse-0.9.0/
~/fuse/fuse-utils-0.9.0/
~/fuse/lib765-0.4.1/
~/fuse/libdsk-1.2.0/
~/fuse/libspectrum-0.4.0/

6) Y ahora empieza el proceso de compilación, que como veréis es un proceso bastante mecánico. El orden de compilación es importante seguirlo para habilitar ciertas características.

7) Compilando libDSK:

Código: Seleccionar todo

   # cd ~/fuse/libdsk-1.2.0/
   # ./configure
   # make
   # make install
   # ldconfig


8) Compilando lib765:

Código: Seleccionar todo

   # cd ~/fuse/lib765-0.4.1/
   # ./configure
   # make
   # make install
   # ldconfig


9) Compilando libspectrum:

Código: Seleccionar todo

   # cd ~/fuse/libspectrum-0.4.0/
   # ./configure
   # make
   # make install
   # ldconfig


10) Compilando fuse-utils:

Código: Seleccionar todo

   # cd ~/fuse/fuse-utils-0.9.0/
   # ./configure
   # make
   # make install


11) Compilando fuse (según los paquetes del interface instalados en el paso 3), compilará una u otra versión):

Código: Seleccionar todo

   # cd ~/fuse/fuse-0.9.0/
   # ./configure
   # make
   # make install


12) Ahora, ya como usuario normal (es decir, sin ser 'root'), bastaría con ir a una consola o X-Term y ejecutar:

Código: Seleccionar todo

   $ fuse


Et voilá!
Última edición por horace el Jue Ene 10, 2008 9:38 pm, editado 2 veces en total.
Un saludo, Josetxu (@HoracioGloton)
http://espectrum.speccy.org - ESpectrum
http://mhoogle.speccy.org - Buscador MHoogle
http://retroaccion.org - Asociación RetroAcción

sromero
Nonamed
Mensajes: 1221
Registrado: Mar Abr 17, 2007 12:35 pm
Ubicación: Valencia
Contactar:

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por sromero » Mar Ene 08, 2008 10:19 am

¿Sabes cómo compilar la versión GTK o XLIB sin tener que desinstalar libsdl1.2-dev?

Lo digo porque yo tengo libsdl y no lo puedo desinstalar por millones de dependencias que tengo (python-pygame, etc), y probé el --without-gtk de fuse y no me funcionó ...
NoP / Compiler

zx_spectrum_plus3
Jack The Nipper
Mensajes: 185
Registrado: Mar Abr 17, 2007 12:32 pm

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por zx_spectrum_plus3 » Mar Ene 08, 2008 10:57 am

horace escribió:Aprovechando que ha salido una nueva versión de este estupendo emulador, ahí os va una pequeña guía de compilación...

1) Descargar los siguientes paquetes de la web del emulador FUSE ( http://fuse-emulator.sf.net ):

fuse-0.9.0.tar.gz
fuse-utils-0.9.0.tar.gz
libspectrum-0.4.0.tar.gz
(...)

Muchas gracias Horace.

Siempre he querido compilar el Fuse pero nunca lo he logrado, así que me he tenido que conformar con la instalación desde paquetes precompilados.

Ahora con la salida de la versión 0.9 y tu guía es una buena excusa para intentarlo otra vez :D

Saludos

dmuriel
rst 0
Mensajes: 11
Registrado: Mar Abr 17, 2007 7:30 am
Ubicación: Madrid

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por dmuriel » Mar Ene 08, 2008 2:23 pm

sromero escribió:¿Sabes cómo compilar la versión GTK o XLIB sin tener que desinstalar libsdl1.2-dev?

Lo digo porque yo tengo libsdl y no lo puedo desinstalar por millones de dependencias que tengo (python-pygame, etc), y probé el --without-gtk de fuse y no me funcionó ...


Si no se especifica otra cosa (y están instaladas las librerías y cabeceras adecuadas) se compila la versión GTK. Es para compilar las otras versiones cuando hace falta añadir el parámetro del configure para forzar un interfaz u otro. Por tanto, debería compilarte por defecto la versión GTK, y si no lo está haciendo es porque te falta algún paquete de cabeceras por instalar o no las está detectando el configure. Al ejecutar el configure busca que aparezca algo así:

Código: Seleccionar todo

$ ./configure
...
checking whether Win32 UI requested... no
checking whether svgalib UI requested... no
checking whether framebuffer UI requested... no
checking whether SDL UI requested... no
checking whether GTK+ UI requested... yes
checking for pkg-config... /usr/bin/pkg-config
checking for GTK+ - version >= 2.0.0... yes (version 2.10.13)
...


Para la versión SDL sería algo así:

Código: Seleccionar todo

$ ./configure --with-sdl
...
checking whether Win32 UI requested... no
checking whether svgalib UI requested... no
checking whether framebuffer UI requested... no
checking whether SDL UI requested... yes
checking for sdl-config... /usr/bin/sdl-config
checking for SDL - version >= 1.2.4... yes
...


Hasta luego.

sromero
Nonamed
Mensajes: 1221
Registrado: Mar Abr 17, 2007 12:35 pm
Ubicación: Valencia
Contactar:

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por sromero » Mar Ene 08, 2008 2:45 pm

Ya está claro, Horace, yo estaba usando la v0.8 de fuse y con la 0.9 ya no pasa eso.

El problema que tengo ahora en la versión 0.9 es otro:

gcc -g -O2 -Wall -o fuse ay.o dck.o display.o divide.o event.o fuse.o ide.o if1.o if2.o input.o joystick.o kempmouse.o keyboard.o loader.o machine.o memory.o menu.o module.o periph.o printer.o profile.o psg.o rzx.o scld.o screenshot.o settings.o simpleide.o slt.o snapshot.o sound.o spectrum.o tape.o ui.o uidisplay.o ula.o utils.o zxatasp.o zxcf.o ui/gtk/.libs/libuigtk.a /usr/lib/libgtk-x11-2.0.so /usr/lib/libgdk-x11-2.0.so /usr/lib/libatk-1.0.so /usr/lib/libgdk_pixbuf-2.0.so /usr/lib/libpangocairo-1.0.so -lXext -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage /usr/lib/libpango-1.0.so /usr/lib/libcairo.so /usr/lib/libfreetype.so -lfontconfig -lpng12 -lXrender -lXfixes /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so -ldl /usr/lib/libglib-2.0.so -lX11 disk/libdisk.a machines/libmachines.a pokefinder/libpokefinder.a sound/libsound.a ui/scaler/libscaler.a debugger/libdebugger.a timer/libtimer.a z80/libz80.a -l765 -ldsk -lspectrum -lpng -lm -lz -L/usr/lib /usr/lib/libxml2.so compat/unix/libcompatos.a
machines/libmachines.a(specplus3.o): In function `specplus3_disk_insert':
/root/sources/fuse/fuse-0.9.0/machines/specplus3.c:555: undefined reference to `fdl_settype'
/root/sources/fuse/fuse-0.9.0/machines/specplus3.c:556: undefined reference to `fdl_setfilename'
machines/libmachines.a(specplus3.o): In function `specplus3_765_init':
/root/sources/fuse/fuse-0.9.0/machines/specplus3.c:224: undefined reference to `fd_newldsk'
collect2: ld returned 1 exit status


Y esos símbolos no están en ninguna de las librerías compiladas:

[root@compiler:~/sources/fuse/fuse-0.9.0]# strings /usr/local/lib/* | grep fdl
NoP / Compiler

Avatar de Usuario
horace
Jack The Nipper
Mensajes: 147
Registrado: Mar Abr 17, 2007 7:57 am
Ubicación: 16384-23295
Contactar:

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por horace » Mar Ene 08, 2008 8:34 pm

Aupa Santi,

Asegúrate de que tengas las versiones de la libDSK y lib765 que menciono y que las has instalado en el orden del tutorial. La biblioteca lib765 depende de que exista instalada la libDSK previamente para habilitar el soporte de disco del +3 (lo que te falla).

En el ./configure de lib765 debieras ver algo como:

Código: Seleccionar todo

checking for dsk_open in -ldsk... yes


Ah, y borra el fichero 'config.cache' tanto de lib765 como de libDSK antes de hacer los respectivos ./configure.
Un saludo, Josetxu (@HoracioGloton)
http://espectrum.speccy.org - ESpectrum
http://mhoogle.speccy.org - Buscador MHoogle
http://retroaccion.org - Asociación RetroAcción

Avatar de Usuario
marce
Herbert
Mensajes: 79
Registrado: Lun Jun 11, 2007 8:05 pm
Ubicación: Mallorca
Contactar:

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por marce » Mar Ene 08, 2008 9:20 pm

Buenas.

Sería una buena idea publicar el programa ya compilado. Un .deb ya sería la h*#!tia. Anda, animaos, yo os lo agradecería un montón.

Saludos,
//.arce

sromero
Nonamed
Mensajes: 1221
Registrado: Mar Abr 17, 2007 12:35 pm
Ubicación: Valencia
Contactar:

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por sromero » Mar Ene 08, 2008 9:47 pm

marce escribió:Buenas.

Sería una buena idea publicar el programa ya compilado. Un .deb ya sería la h*#!tia. Anda, animaos, yo os lo agradecería un montón.

Saludos,


El problema es que habría que publicar un .deb por cada una de las librerías, y uno por el fuse en sí mismo, y además cada .deb sería relativo a una versión de glibc concreta.

Y el problema no es en sí hacerlo, sino mantenerlo, rehaciendo paquetes nuevos para cada distribución cada vez que haya un update en fuse o en alguna de sus utilidades o librerías ...

Es más cómodo para todos el compilarlo.
NoP / Compiler

Avatar de Usuario
marce
Herbert
Mensajes: 79
Registrado: Lun Jun 11, 2007 8:05 pm
Ubicación: Mallorca
Contactar:

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por marce » Mar Ene 08, 2008 10:15 pm

Vaya, parece que estamos condenados a compilar todo el software que no es "mainstream".

Gandulf
Nonamed
Mensajes: 1067
Registrado: Lun May 07, 2007 10:06 pm

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por Gandulf » Mar Ene 08, 2008 10:35 pm

A mi tener que compilar las aplicaciones siempre me ha tocado la moral por decirlo de una forma fina. Es una de las principales razones por las que en su día escapé de Linux. Me niego. Simplemente. Y encima hay aplicaciones que te compilan en una distribución y en otras no. Para perder el tiempo compilando ya lo hago con mis programas, si quiero bajarme un emulador de amiga o spectrum para echarme una partida, me provoca un serio cabreo tener que compilar o empezar a cacharrear. Me quiero bajar el ejecutable, ejecutarlo y punto pelota.

Por cierto y a modo de OT total, un aplauso para Apple y su MacOS X. El otro día estuve cacharreando con uno y descargando aplicaciones y en ningún momento es necesario u obligatorio saber que existe ni tocar el unix que corre detrás (gracias a dios!). Un gran sistema.
Un saludo,

Gandulf

sromero
Nonamed
Mensajes: 1221
Registrado: Mar Abr 17, 2007 12:35 pm
Ubicación: Valencia
Contactar:

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por sromero » Mié Ene 09, 2008 7:40 am

Gandulf escribió:A mi tener que compilar las aplicaciones siempre me ha tocado la moral por decirlo de una forma fina. Es una de las principales razones por las que en su día escapé de Linux. Me niego. Simplemente. Y encima hay aplicaciones que te compilan en una distribución y en otras no. Para perder el tiempo compilando ya lo hago con mis programas, si quiero bajarme un emulador de amiga o spectrum para echarme una partida, me provoca un serio cabreo tener que compilar o empezar a cacharrear. Me quiero bajar el ejecutable, ejecutarlo y punto pelota.


Hoy en día compilar aplicaciones en un Linux es algo que sólo se tiene que hacer un par de veces en toda la vida útil del S.O., y sólo con:

1.- Aplicaciones que cambian MUCHO y para las cuales no quieres esperar un par de semanas a que su desarrollador haga los paquetes correspondietnes.

2.- Aplicaciones que no tienen muchos usuarios y que ni su autor ni ninguno de estos se molesta en hacer los paquetes deb.

Para el 99.9999999999999999999% de las aplicaciones UNIX restantes, siempre vas a tener paquetes actualizados en tu distribución.

Por ponerte un ejemplo, precisamente FUSE es la única aplicación que he tenido que compilar para usar en mi S.O. desde hace cosa de 3 años .

Por cierto y a modo de OT total, un aplauso para Apple y su MacOS X. El otro día estuve cacharreando con uno y descargando aplicaciones y en ningún momento es necesario u obligatorio saber que existe ni tocar el unix que corre detrás (gracias a dios!). Un gran sistema.


Insisto en que es exactamente igual que en cualquier Linux, mira a ubuntu o kubuntu y su Addept, el instalador de paquetes que incluso te avisa con un popup de actualizaciones (y las descarga), te instala drivers privativos para tu tarjeta gráfica, etc etc.

Lo que pasa es que Philip Kendall, el autor de fuse, no es de los que se molestan en hacer paquetes deb/rpm para Linux, es "de la vieja escuela", de los que cuelgan sus cosas en tar.gz y adios muy buenas.
NoP / Compiler

Gandulf
Nonamed
Mensajes: 1067
Registrado: Lun May 07, 2007 10:06 pm

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por Gandulf » Mié Ene 09, 2008 10:10 am

Tal y como dije "compilar o empezar a cacharrear". Por ejemplo, no hace mucho con Ubuntu me bajé el Firebird, y efectivamente no tuve que compilar nada, pero mientras que en windows lo instalas te pregunta 4 cosas y ya tienes el servidor corriendo (al menos en protocolo "local", si quieres dar acceso externo lógicamente tienes que abrir el puerto 3050), en Linux no fue así, no recuerdo exactamente que pasó (era la 1.5xx), pero había que andar toqueteando. Seguro que era una parida, pero directamente borré Ubuntu y pasé del tema, no tenía ni tiempo ni ganas.

Hombre, si has trabajado con MacOS X, al menos un rato, te das cuenta de que un usuario que no tenga ni idea, pero ni idea (como la persona que me lo enseñó) se apaña perfectamente, incluso usando el "Parallels" para tener su escritorio de Windows XP y ejecutar al mismo tiempo aplicaciones de Windows. Es increíble lo amigable que es ese sistema operativo teniendo en cuenta que corre Unix por debajo.

Instálale Linux en su MacBook Pro, y que se ponga a funcionar con el porrón de aplicaciones que tenía instaladas sin saber absolutamente nada, sólo unos clicks de ratón, vamos, como si fuera Microsoft (de hecho incluso mejor).

Ya sé que más que un problema de Linux es un problema de la gente que hace aplicaciones para este sistema operativo y da por supuesto que el usuario sabe algo, al menos algo (en el mejor de los casos). La verdad es que estoy por instalar MaxOS X en el PC y probar otro tipo de cosas, a ver si meto este mes otro PC por aquí.

Aunque para "hardcore" el AIX. Con ese me entró en su momento dolor de h*ev*s :lol:
Un saludo,

Gandulf

sromero
Nonamed
Mensajes: 1221
Registrado: Mar Abr 17, 2007 12:35 pm
Ubicación: Valencia
Contactar:

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por sromero » Mié Ene 09, 2008 2:07 pm

Gandulf escribió:Aunque para "hardcore" el AIX. Con ese me entró en su momento dolor de h*ev*s :lol:


No me extraña. Yo *ODIO* AIX y HP-UX :x

Solaris y Linux me gustan. :D

De OpenSolaris (bueno, lo que será Solaris en el futuro, que se mueve hacia eso) puede salir algo muy chulo...

PD: Perdón por el offtopic X-D
NoP / Compiler

utopian
Manic Miner
Mensajes: 219
Registrado: Jue May 10, 2007 2:28 pm

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por utopian » Mié Ene 09, 2008 8:24 pm

sromero escribió:
Gandulf escribió:Aunque para "hardcore" el AIX. Con ese me entró en su momento dolor de h*ev*s :lol:


No me extraña. Yo *ODIO* AIX y HP-UX :x


Pero... pero... ¡¡¡criminal!!! ¡¡¡No me toques mi HP-UX!!! Ese es un s.o. para hombres de verdad, y no las mariconadas de Ubuntu :twisted:

zx_spectrum_plus3
Jack The Nipper
Mensajes: 185
Registrado: Mar Abr 17, 2007 12:32 pm

Re: Compilando FUSE 0.9.0 en Debian GNU/Linux (y derivados)

Mensaje por zx_spectrum_plus3 » Jue Ene 10, 2008 9:42 am

Hola.

Finalmente he conseguido compilar e instalar Fuse 0.9 :D , aunque es verdad que he tenido algún problema que paso a relatar: si sigues el proceso descrito por Horace, y todo ha ido bien, las aplicaciones se instalan en /usr/local/bin y las librerías /usr/local/lib.

El problema es que en mi sistema, un Ubuntu 7.04, los ejectables no buscan las librerías en ese directorio, sino básicamente en /usr/lib, así que cuando ejecturas fuse da un error.

Esto se puede solucionar de varias maneras, pero para mi la más sencilla es instalar las librerías libdsk, lib765 y libspectrum en ese directorio.

Por ejemplo, para el caso de libspectrum, si ya lo has instalado antes, 1º debes desinstalarla:
# cd ~/fuse/libspectrum-0.4.0/
# make uninstall

Luego hay que cambiar la configuración para que se instalen en el lugar adecuado:
# ./configure --PREFIX=/usr

Y luego volver a instalarla:
# make install
# ldconfig

Si todavía no la habías configurado ni instalado, el proceso sería:
# cd ~/fuse/libspectrum-0.4.0/
# ./configure --PREFIX=/usr
# make
# make install
# ldconfig


Saludos



PD. Deacuerdo al 100% con Santi sobre la instalación de programas en Linux.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados