Alla fine ci sono riuscito a creare mod_harbourv2.so e libmhapache.so su ubuntu 22.04 lts, ho configurato il server come riportato su github ed ora almeno i Samples funzionano.
come ho fatto :
prima di tutto ho scaricato gli elementi essenziali
$ sudo apt-get install bash git gcc binutils fakeroot debhelper valgrind upx uncrustify
mi sono spostato nella cartella /opt
$
cd /opt
da li poi ho eseguito il seguente comando
poi ho eseguito i seguenti comandi
for gtcrs terminal lib: $ sudo apt-get install libncurses-dev
for gtsln terminal lib: $ sudo apt-get install libslang2-dev OR
$ sudo apt-get install libslang1-dev
for gtxwc terminal lib: $ sudo apt-get install libx11-dev
for console mouse support: $ sudo apt-get install libgpm-dev OR
$ sudo apt-get install libgpmg1-dev
for contrib/gtalleg lib: $ sudo apt-get install liballegro4.2-dev
for contrib/hbcairo lib: $ sudo apt-get install libcairo2-dev
for contrib/hbcups lib: $ sudo apt-get install libcups2-dev
for contrib/hbcurl lib: $ sudo apt-get install libcurl4-openssl-dev OR
$ sudo apt-get install libcurl4-gnutls-dev
for contrib/hbfbird lib: $ sudo apt-get install firebird2.1-dev OR
$ sudo apt-get install libfirebird2.0-dev
for contrib/hbfimage lib: $ sudo apt-get install libfreeimage-dev
for contrib/hbgd lib: $ sudo apt-get install libgd2-xpm-dev OR
$ sudo apt-get install libgd-xpm-dev
for contrib/hbgs lib: $ sudo apt-get install libgs-dev
for contrib/hbmagic lib: $ sudo apt-get install libmagic-dev
for contrib/hbmysql lib: $ sudo apt-get install libmysqlclient15-dev
for contrib/hbodbc lib: $ sudo apt-get install unixodbc-dev
for contrib/hbpgsql lib: $ sudo apt-get install libpq-dev
for contrib/hbqt lib: $ sudo apt-get install libqt5-dev
for bzip2 support: $ sudo apt-get install libbz2-dev
for zlib support: $ sudo apt-get install zlib1g-dev
for pcre (regex) support: $ sudo apt-get install libpcre3-dev
for contrib/hbsqlit3 lib: $ sudo apt-get install libsqlite3-dev
for contrib/hbexpat lib: $ sudo apt-get install libexpat1-dev
una volta scaricati ed adattate le librerie riportate qua sopra
ho eseguito i seguenti comandi :
$ sudo chown -R <utente> harbour
$ sudo chgrp -R <utente> harbour
questi fanno in modo che il possessore della cartella harbour non sia root ma bensi l'utente
mi sono creato questo piccolo programma bash
echo build harbour for apache and mod_harbour.v2
$ sudo apt-get update
$
sudo apt install libcurl4-openssl-dev libssl-dev apache2-dev gcc
$
sudo cp -r /usr/include/x86_64-linux-gnu/curl /usr/include
echo stop install
$
HB_BUILD_CONTRIBS=
$
export HB_BUILD_CONTRIBS
$
HB_USER_CFLAGS="-fPIC"
$
export HB_USER_CFLAGS
$
HB_WITH_PCRE=no
$
export HB_WITH_PCRE
$
echo $HB_BUILD_CONTRIBS
$
echo $HB_USER_CFLAGS
$
echo $HB_WITH_PCRE
$
sudo -E make clean install
con l'ultimo comando del bash creo harbour e le sue librerie in maniera "dinamica"
poi mi sono spostato dento la cartella /opt/harbour/contrib
li ho scaricato con git
sono entrato nella cartella
$ cd /opt/harbour/contrib/mod_harbour.v2/source
ho modificato il file mod_harbour.c ( lo potete fare con qualsiasi editor
inserendo la riga
#pragma gcc diagnostic ignored "-Wreturn-type"
questa istruzione evita il controllo di una funzione void che invece erroneamente ritorna un valore
è un errore di programmazione.
poi ho letteralmente copiato dalla action le seguenti istruzioni
$ sudo apt-get update
$ sudo apt install libcurl4-openssl-dev libssl-dev apache2-dev gcc
$ sudo cp -r /usr/include/x86_64-linux-gnu/curl /usr/include
sono importanti perchè installano le librerie necessarie a far funzionare il mod_harbour.v2
sono ritornato alla cartella
$ cd /opt/harbour/contrib/mod_harbour.v2
mi sono costruito un altro programma bash
echo Build library mod_harbour.v2
hbmk2 mod_harbour.v2.1.hbp -I/usr/include/apache2 -I/usr/include/apr-1.0
lanciato
e poi eseguito
$ mv /opt/harbour/contrib/mod_harbour.v2/output/linux/libmod_harbour.v2.so
/opt/harbour/contrib/mod_harbour.v2/output/linux/mod_harbour.v2.so
$ mv
/opt/harbour/contrib/mod_harbour.v2/output/linux/liblibmhapache.so
/opt/harbour/contrib/mod_harbour.v2/output/linux/libmhapache.so
questi comandi rinominano i files creati
poi ho spostato come da istruzioni
e poi ho spostato
$ sudo cp /opt/harbour/contrib/mod_harbour.v2/output/linux/libmhapache.so /var/www/html/libmhapache.so
poi ho eseguito le seguenti modifiche nel file /etc/apache2.conf :
MH_LIBRARY /var/www/html/libmhapache.so
MH_NVMS 10
<FilesMatch "\.(prg|hrb|view)$">
SetHandler harbour
</FilesMatch>
e nel file etc/apache2/mods-enabled/mpm_event.conf
ho modificato secondo le istruzione
StartServers 1
et voila
lanciato apache con il comando
$ sudo systemctl start apache2
e da qualsiasi browser prima ho verificato se funziona apache
viene fuori la default page di Apache2
e poi con l'istruzione
è saltata fuori la classica
Info
Platform
OS
Linux 5.15.0-40-generic x86_64
Harbour
Harbour 3.2.0dev (r2104281802)
Build date
Jun 29 2022 13:39:02
Compiler
GNU C 11.2 (64-bit)
Capabilities
RDD
DBF, DBFFPT, DBFNTX, DBFNSX, DBFBLOB, SIXCDX, DBFCDX, SDF, DELIM, FCOMMA
Version Harbour
00
HB_VERSION_HARBOUR
Harbour 3.2.0dev (r2104281802)
01
HB_VERSION_COMPILER
GNU C 11.2 (64-bit)
02
HB_VERSION_MAJOR
3
03
HB_VERSION_MINOR
2
04
HB_VERSION_RELEASE
0
05
HB_VERSION_STATUS
dev
06
HB_VERSION_REVISION
2104281802
07
HB_VERSION_CHANGELOG_LAST
2021-04-28 20:02 UTC+0200 Aleksander Czajczynski (hb fki.pl)
08
HB_VERSION_CHANGELOG_ID
4643587824552fd877e7f02ad11596e0b30c465d
09
HB_VERSION_PCODE_VER
3
10
HB_VERSION_PCODE_VER_STR
PCode version: 0.3
11
HB_VERSION_BUILD_DATE_STR
Jun 29 2022 13:39:02
12
HB_VERSION_BUILD_DATE
20220629
13
HB_VERSION_BUILD_TIME
13:39:02
14
HB_VERSION_BUILD_PLAT
15
HB_VERSION_BUILD_COMP
-fPIC
16
HB_VERSION_FLAG_PRG
17
HB_VERSION_FLAG_C
64
18
HB_VERSION_FLAG_LINKER
1
19
HB_VERSION_BITWIDTH
true
20
HB_VERSION_ENDIANNESS
true
21
HB_VERSION_MT
LINUX
22
HB_VERSION_SHARED
linux
23
HB_VERSION_UNIX_COMPAT
gcc
24
HB_VERSION_PLATFORM
x86-64
25
HB_VERSION_CPU
false
26
HB_VERSION_COMPILER_CPP
false
27
HB_VERSION_MAX_
https://github.com/harbour/core/
risultato ok
da oggi in poi si programma con harbour per il web !!!
se volete informazioni cercherò di aiutarVi come posso
come consiglio personale vi dico lasciate perdere gli ambienti ibridi , quindi niente WSL prendete un catorcio di computer installate su Ubuntu 22.04 lts e li divertitevi.
saluti e buon week end
domenico