Building for Linux

Post Reply
Andreu Botella
Site Admin
Posts: 11
Joined: Sun Nov 10, 2019 12:36 am

Building for Linux

Post by Andreu Botella » Thu Jan 02, 2020 7:10 pm

Las instrucciones de compilación no son nada claras, y los binarios de Linux que están en el repo de github están bastante anticuados, así que aquí pongo las instrucciones completas de compilación en un sistema tipo Debian (probado en un contenedor Docker con la imagen de Ubuntu 19.10).

Este script necesita que en el directorio actual haya cuatro ficheros: apache.prg y mod_harbour.c del repo de mod_harbour, y los ficheros mod.hbp y modharbour.hbp que incluyo en este post. Sin embargo, el fichero apache.prg necesita cambios: en las líneas 28 a 34 hay que cambiar el #include "../../../../../contrib/cosas/cosas.hbx" por #include "../cosas/cosas.hbx"

Este build usa el código del repo de mod_harbour; "el mod_harbour original que se cuelga" en palabras de Ángel. Aunque no lo he probado, el mod_harbour.c de Diego debería funcionar.

Code: Select all

sudo apt-get update
sudo apt-get install -y git gcc make binutils libcurl4-openssl-dev apache2-dev libapr1-dev \
    libaprutil1-dev libmysqlclient-dev

# Compilamos e instalamos Harbour
git clone --depth=1 https://github.com/harbour/core.git harbour
cd harbour
HB_USER_CFLAGS=-fPIC HB_BUILD_CONTRIBS="hbct hbxpp hbmysql" HB_BUILD_CONTRIB_DYN=yes make
make install
cd ..

# Y ahora compilamos mod_harbour como contrib de harbour
mkdir harbour/contrib/modharbour
cp apache.prg mod_harbour.c mod.hbp modharbour.hbp harbour/contrib/modharbour/
cd harbour/contrib/modharbour
hbmk2 modharbour.hbp

sudo cp libmod_harbour.so /usr/lib/apache2/modules/mod_harbour.so
sudo cp liblibharbour.so /var/www/html/libharbour.so.3.2.0
La configuración del servidor Apache es igual que en la documentación de mod_harbour, así que copio y pego (en inglés):

In /etc/apache2/apache2.conf add these lines:

Code: Select all

LoadModule harbour_module /usr/lib/apache2/modules/mod_harbour.so
<FilesMatch "\.(prg|hrb)$">
    SetHandler harbour
</FilesMatch>
Restart apache doing this:

Code: Select all

sudo apachectl restart
Copy samples/test.prg to /var/www/html and go to localhost/test.prg in your browser
Attachments
modharbour.hbp
(127 Bytes) Downloaded 6 times
mod.hbp
(196 Bytes) Downloaded 8 times

ramirezosvaldo
Posts: 4
Joined: Mon Nov 11, 2019 9:43 pm

Re: Building for Linux

Post by ramirezosvaldo » Thu Jan 02, 2020 7:46 pm

Andreu
la instruccion que pusiste :

:
:sudo apt-get install -y git gcc make binutils libcurl4-openssl-dev apache2-dev libapr1-dev \
: libaprutil1-dev libmysqlclient-dev
:

Tiene un "\" al final de "libapr1-dev" es correcto ? lleva espacio con la linea siguiente ?

Gracias de antemano
Saludos

Andreu Botella
Site Admin
Posts: 11
Joined: Sun Nov 10, 2019 12:36 am

Re: Building for Linux

Post by Andreu Botella » Thu Jan 02, 2020 8:04 pm

ramirezosvaldo wrote:
Thu Jan 02, 2020 7:46 pm
Andreu
la instruccion que pusiste :

:
:sudo apt-get install -y git gcc make binutils libcurl4-openssl-dev apache2-dev libapr1-dev \
: libaprutil1-dev libmysqlclient-dev
:

Tiene un "\" al final de "libapr1-dev" es correcto ? lleva espacio con la linea siguiente ?

Gracias de antemano
Saludos
En los shells de Unix (al menos en los que son compatibles con el shell Bourne) una barra invertida al final de la línea escapa el salto de línea. Dado que los shells también tratan cualquier número de espacios como un separador de parámetros (excepto si van entre comillas), esas dos líneas hacen exactamente lo mismo que una única línea

Code: Select all

sudo apt-get install -y git gcc make binutils libcurl4-openssl-dev apache2-dev libapr1-dev libaprutil1-dev libmysqlclient-dev

ramirezosvaldo
Posts: 4
Joined: Mon Nov 11, 2019 9:43 pm

Re: Building for Linux

Post by ramirezosvaldo » Fri Jan 03, 2020 5:53 pm

Excelente
Gracias ! y Saludos

ramirezosvaldo
Posts: 4
Joined: Mon Nov 11, 2019 9:43 pm

Re: Building for Linux

Post by ramirezosvaldo » Sun Jan 05, 2020 6:53 am

Hola, buenas noches...

Casi, casi lo logro, tengo el siguiente error:
Al momento de ejecutar en firefox, localhost/test.prg

Me aparece esto :

/var/www/html/libharbour.so.3.2.0: undefined symbol: HB_FUN_CURL_EASY_CLEANUP

Alguien le ha pasado ?

Estoy con Ubuntu 19.10

saludos

Post Reply