Autor Tema: Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh  (Leído 315 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Conectado gecko

  • Hero Member
  • *****
  • Mensajes: 772
  • Karma: 45
  • Sexo: Masculino
    • Ver Perfil
    • Torres Baldi Studio
Hola! antes que nada aclaro que no tengo mucha experiencia compilando desde 0 en C o linux, asi que perdón si pregunto o hago alguna burrada.

Me está dando error la compilación de BennuGD a partir de los fuentes, en un Ubuntu limpio. Presumo que viene por el lado de libssl, pero no hice nada raro al instalarla.

Los pasos que seguí fueron:
  • sudo apt-get install -y zlib1g-dev libssl-dev libsdl1.2-dev libsdl-mixer1.2-dev
  • cd core/ && ./configure
  • cd modules/ && ./configure
  • ./build-linux.sh

Copio el ultimo pedazo del log, donde marca el error:

Código: [Seleccionar]
/bin/bash ../../libtool  --tag=CC   --mode=link gcc  -g -O2 -finline-functions -fno-strict-aliasing    -o bgdc main.o main_core.o token.o identifier.o segment.o constants.o strings.o varspace.o procedure.o codeblock.o c_main.o c_data.o c_code.o c_debug.o dcbw.o error.o sysstub.o typedef.o debug.o b_crypt.o files.o xctype.o -lc -ldl -lz   

libtool: link: gcc -g -O2 -finline-functions -fno-strict-aliasing -o bgdc main.o main_core.o token.o identifier.o segment.o constants.o strings.o varspace.o procedure.o codeblock.o c_main.o c_data.o c_code.o c_debug.o dcbw.o error.o sysstub.o typedef.o debug.o b_crypt.o files.o xctype.o  -lc -ldl -lz

b_crypt.o: In function `crypt_create':
/home/travis/build/tehuel/bennugd/core/bgdc/src/../../common/b_crypt.c:60: undefined reference to `DES_key_sched'
/home/travis/build/tehuel/bennugd/core/bgdc/src/../../common/b_crypt.c:61: undefined reference to `DES_key_sched'
/home/travis/build/tehuel/bennugd/core/bgdc/src/../../common/b_crypt.c:62: undefined reference to `DES_key_sched'

b_crypt.o: In function `crypt_data':
/home/travis/build/tehuel/bennugd/core/bgdc/src/../../common/b_crypt.c:113: undefined reference to `DES_ecb_encrypt'
/home/travis/build/tehuel/bennugd/core/bgdc/src/../../common/b_crypt.c:114: undefined reference to `DES_ecb_encrypt'
/home/travis/build/tehuel/bennugd/core/bgdc/src/../../common/b_crypt.c:115: undefined reference to `DES_ecb_encrypt'
/home/travis/build/tehuel/bennugd/core/bgdc/src/../../common/b_crypt.c:95: undefined reference to `DES_ecb_encrypt'
/home/travis/build/tehuel/bennugd/core/bgdc/src/../../common/b_crypt.c:101: undefined reference to `DES_ecb_encrypt'

b_crypt.o:/home/travis/build/tehuel/bennugd/core/bgdc/src/../../common/b_crypt.c:125: more undefined references to `DES_ecb_encrypt' follow

collect2: error: ld returned 1 exit status
make[2]: *** [bgdc] Error 1
make[2]: Leaving directory `/home/travis/build/tehuel/bennugd/core/bgdc/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/travis/build/tehuel/bennugd/core/bgdc'
make: *** [all-recursive] Error 1
*** ABORT ***

El build se corrió en Travis, asi que pueden ver el log completo y la configuracion con la que se ejecutó.

Alguna idea de como salvar o corregir esto? alguna ayuda? no tengo idea para donde arrancar a mirar...  :-\
Torres Baldi Studio
http://torresbaldi.com

Desconectado l1nk3rn3l

  • Hero Member
  • *****
  • Mensajes: 1964
  • Karma: 253
  • Sexo: Masculino
    • Ver Perfil
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #1 en: Octubre 19, 2017, 07:21:35 am »
creo se puede omitir la compilacion del modulo mod_crypt , preguntale al Maestro Splinter

Desconectado daltomi

  • Newbie
  • *
  • Mensajes: 14
  • Karma: 0
    • Ver Perfil
    • github
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #2 en: Octubre 21, 2017, 04:05:21 pm »
Hola

Intenta solamente con ./build-linux.sh release

Conectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12517
  • Karma: 369
  • Sexo: Masculino
    • Ver Perfil
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #3 en: Octubre 21, 2017, 08:09:42 pm »
eso iba a decir...

la lib que falta no es la ssl... creo que es la crypto u openssl...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Conectado Futu-block

  • Hero Member
  • *****
  • Mensajes: 2624
  • Karma: 33
  • Sexo: Masculino
  • Superviviente marciano
    • Ver Perfil
    • futublock
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #4 en: Octubre 22, 2017, 11:53:03 pm »
a mi la librería que me falló fué libpng12-0:i386:

por lo demas y siguiendo el tutorial de torresbaldi.com no hubo problemas, en todo caso me descargué todo lo que no habia en los escritos de todas partes posibles y seguí intucciones como estas

que inmediatamente pone que para correr 32 bits en 64 tienes que descargarte (entre otras) la librería de arriba mencionada y tal y tal...

el unico problema que me está dando ahora es que puedo compilar en una ''carpeta maestra'' pero cuando copio-pego los archivos en otra carpeta, no funca; no se si son las librerias que faltan en esa misma carpeta o yoquese
« última modificación: Octubre 22, 2017, 11:56:10 pm por Futu-block »



Conectado gecko

  • Hero Member
  • *****
  • Mensajes: 772
  • Karma: 45
  • Sexo: Masculino
    • Ver Perfil
    • Torres Baldi Studio
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #5 en: Octubre 23, 2017, 02:24:29 pm »
Bueno, sigo sin poder hacerlo andar.

Tengo instalado openssl y libssl-dev, este ultimo paquete es el que incluye des.h, que es una cabecera que se está referenciando en bennugd/core/include/b_crypt.h, que a su vez es una cabecera que se está referenciando en bennugd/core/common/b_crypt.c, que es donde la compilación está explotando.

Puede ser que esas llamadas a funciones que está haciendo Bennu ya no existan (o hayan cambiado) en alguna version de libssl-dev? Algo más que pueda hacer con esto? Deberia probar hacerlo compilar instalando una version vieja de ssl? Hay algun otro dato que pueda darles para que me ayuden a diagnosticar esto?

Disculpen las molestias y gracias por la ayuda.
Torres Baldi Studio
http://torresbaldi.com

Conectado Futu-block

  • Hero Member
  • *****
  • Mensajes: 2624
  • Karma: 33
  • Sexo: Masculino
  • Superviviente marciano
    • Ver Perfil
    • futublock
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #6 en: Octubre 24, 2017, 12:02:41 am »
¿te has descargado todas las librerias y binarios y los has instalado en el pc?
¿has hecho lo de los 64 bits?


Lo digo porque no hace ni dos semanas que lo instalé y funciona en mi ubuntu 10.04 64 bits, sino haz lo de 'sudo get-apt install' las librerias que te falten



Conectado gecko

  • Hero Member
  • *****
  • Mensajes: 772
  • Karma: 45
  • Sexo: Masculino
    • Ver Perfil
    • Torres Baldi Studio
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #7 en: Octubre 24, 2017, 03:19:47 am »
Gracias por la ayuda Futu, pero no es "compilar un juego hecho con BennuGD" lo que quiero hacer, sino "compilar el mismisimo BennuGD" (a partir de su código fuente, en lenguaje C).
Torres Baldi Studio
http://torresbaldi.com

Desconectado daltomi

  • Newbie
  • *
  • Mensajes: 14
  • Karma: 0
    • Ver Perfil
    • github
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #8 en: Octubre 24, 2017, 04:39:27 am »
Hola.

Estuve viendo el log de travis, dice que apt-get falla en la instalación de las libs, es decir, que openssl para 32bits nunca se instala. ¿es asi o ya lo instalaste anteriormente?
Otra cosa, esto esta mal en apt-get: libsdl1.2-dev libsdl-mixer1.2-dev, debería ser -dev:i386

Puedes ejecutar en la terminal lo siguiente para ver si libcrypto de 32 bits esta instalado:
Código: [Seleccionar]
PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig pkg-config --cflags --libs libcrypto

Y si, lo de la versión puede ser ya que openssl, creo que desde 0.9 cambiaron el "des_" por el "DES_" para que no colisione con libdes, pero no creo que ubuntu instale una versión taaan vieja   :D



Conectado gecko

  • Hero Member
  • *****
  • Mensajes: 772
  • Karma: 45
  • Sexo: Masculino
    • Ver Perfil
    • Torres Baldi Studio
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #9 en: Octubre 24, 2017, 05:37:36 am »
Si, hice monton de pruebas en Travis, así que lamento que hayas tenido que ver eso jaja  ::)

Ahora probé en una maquina local, y sigue explotando en el mismo lugar.

Comprobé que las dependencias estén instaladas (con el cambio que sugeriste respecto a agregar :i386 a SDL), y está todo ok:

Código: [Seleccionar]
$ sudo apt-get install libsdl1.2-dev:i386 libsdl-mixer1.2-dev:i386 zlib1g-dev:i386 libssl-dev:i386 openssl:i386
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
libsdl1.2-dev:i386 ya está en su versión más reciente (1.2.15+dfsg1-3).
libsdl-mixer1.2-dev:i386 ya está en su versión más reciente (1.2.12-11build1).
libssl-dev:i386 ya está en su versión más reciente (1.0.2g-1ubuntu4..
openssl:i386 ya está en su versión más reciente (1.0.2g-1ubuntu4..
zlib1g-dev:i386 ya está en su versión más reciente (1:1.2.8.dfsg-2ubuntu4.1).
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 3 no actualizados.

También el comando que me pasaste "muestra algo" en la salida, asi que supongo que eso está bien:
Código: [Seleccionar]
$ PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/ pkg-config --cflags --libs libcrypto
-lcrypto

Pero al momento de ejecutar $ ./build-linux.sh release... pum, explota en el mismo lugar.

Alguna idea más? Es momento de dejar esto de la programación y dedicarme a la agricultura?  :o
Torres Baldi Studio
http://torresbaldi.com

Desconectado daltomi

  • Newbie
  • *
  • Mensajes: 14
  • Karma: 0
    • Ver Perfil
    • github
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #10 en: Octubre 24, 2017, 06:49:41 am »
A ver, ¿y si forzamos los includes y los libs path?

Ejecuta lo siguiente.
Código: [Seleccionar]
CFLAGS="-m32 -I/usr/include/i386-linux-gnu" LDFLAGS=-L/usr/lib/i386-linux-gnu ./build-linux.sh release

Como mi ubuntu ya es de 32 bits no tengo problemas de resolución de paths pero si tuve que modificar el archivo build-linux.sh, en donde dice -lSDL-1.2 debe ser sólo -lSDL, esto es porque -lSDL es implícitamente 1.x y para usar SDL2 se usa explícitamente -lSDL2.

En cuanto a las versiones de las libs son iguales a las tuyas.

Conectado Futu-block

  • Hero Member
  • *****
  • Mensajes: 2624
  • Karma: 33
  • Sexo: Masculino
  • Superviviente marciano
    • Ver Perfil
    • futublock
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #11 en: Octubre 24, 2017, 07:00:13 am »
vale, pero compilar puedes, ¿no? yo lo digo porque me pasará a mi lo que a ti, que compila un juego pero tendré problemas para distribuirlo



Conectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12517
  • Karma: 369
  • Sexo: Masculino
    • Ver Perfil
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #12 en: Octubre 25, 2017, 11:37:13 am »
ii  libssl-dev:i386                                 1.0.2g-1ubuntu13                            i386         Secure Sockets Layer toolkit - development files
ii  libssl1.0.0:i386                                1.0.2g-1ubuntu13                            i386         Secure Sockets Layer toolkit - shared libraries


Código: [Seleccionar]
root@splinter-C500:~# ldd bennugd/bin/i386-linux-gnu/libbgdrtm.so
        linux-gate.so.1 =>  (0xf7792000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7538000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7533000)
        libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf7514000)
        libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xf7327000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7228000)
        /lib/ld-linux.so.2 (0x5660d000)

Código: [Seleccionar]
root@splinter-C500:~# dpkg -L libssl1.0.0:i386|grep so
/lib/i386-linux-gnu/libcrypto.so.1.0.0
/lib/i386-linux-gnu/libssl.so.1.0.0
« última modificación: Octubre 25, 2017, 11:40:18 am por SplinterGU »
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Conectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12517
  • Karma: 369
  • Sexo: Masculino
    • Ver Perfil
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #13 en: Octubre 25, 2017, 11:41:18 am »
perdon por la confusion, es la crypto contenida en libssl1.0.0:i386 tambien hay que instalar el libssl-dev:i386
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Conectado gecko

  • Hero Member
  • *****
  • Mensajes: 772
  • Karma: 45
  • Sexo: Masculino
    • Ver Perfil
    • Torres Baldi Studio
Re:Intentando compilar BennuGD desde los fuentes, error en ./build-linux.sh
« Respuesta #14 en: Octubre 25, 2017, 01:03:51 pm »
Bueno, la buena noticia es que de alguna manera compiló. Así que por el momento la agriculturá tendrá que esperar  :P

Con respecto a lo que dijiste, Splinter: Comprobé y tengo ambas librerias instaladas (con la arquitectura :i386, todas), y una tercera openssl tambien, pero que creo que esa no tiene nada que ver. Muestro el resultado de algunos comandos:
Código: [Seleccionar]
$ sudo apt-get install libssl1.0.0:i386 libssl-dev:i386
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
libssl-dev:i386 ya está en su versión más reciente (1.0.2g-1ubuntu4.8).
libssl1.0.0:i386 ya está en su versión más reciente (1.0.2g-1ubuntu4.8).
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 4 no actualizados.

$ dpkg -L libssl1.0.0:i386|grep so
/lib/i386-linux-gnu/libcrypto.so.1.0.0
/lib/i386-linux-gnu/libssl.so.1.0.0
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libaep.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libchil.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libatalla.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libsureware.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libpadlock.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libgmp.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libcswift.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libcapi.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/lib4758cca.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libgost.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libnuron.so
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libubsec.so

$ dpkg -L libssl-dev:i386|grep so
/usr/include/openssl/dso.h
/usr/lib/i386-linux-gnu/libssl.so
/usr/lib/i386-linux-gnu/libcrypto.so


Con respecto a lo que dijiste, daltomi, una vez que ejecuté el comando que pasaste, tuve el mismo problema con SDL, hice el cambio, y ahi finalmente compiló y creó los binarios!! gracias!!, pero en el log habia una advertencia de que no iba a ser un binario portable (supongo que por haberle especificado las rutas). Pero despues haciendo ldd (como hizo splinter) a la libreria, me da las mismas mismas rutas.

Código: [Seleccionar]
$ ldd bin/i386-linux-gnu/libbgdrtm.so
linux-gate.so.1 =>  (0xf77fa000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf75ef000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf75ea000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf75ce000)
libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xf73e2000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf738d000)
/lib/ld-linux.so.2 (0x565d1000)

Lo raro es que no instalé de ninguna manera rara las librerias como para que no las encuentre. No tengo idea que pueda llegar a ser lo que hace que no funcione de la manera normal. Si tienen alguna sugerencia más, soy todo oidos.


EDIT: ya se puede ver el PRIMER BUILD EXITOSO en Travis: https://travis-ci.org/tehuel/bennugd/builds/292844565  ;D
« última modificación: Octubre 25, 2017, 01:42:08 pm por gecko »
Torres Baldi Studio
http://torresbaldi.com