[Gambas-user] Happy new year 2024!
Admin
admin at allunix.ru
Fri Jan 5 15:22:20 CET 2024
05.01.2024 19:53, Benoît Minisini пишет:
> So, if I understood well, the current Gambas source code compiles
> without any change on FreeBSD? Then what compilation problems did you
> have?
It all is system-related, yes.
Look, it's hard to understand what dependencies you need under non-linux
system, because very different packages supply what is needed, and the
compilation errors are often not that informative to understand that
this is a dependency problem. I myself am not a C or C++ specialist, I
am not even a programmer, if we talk seriously, so those errors normally
look like a screen damage to me))). It takes some time to understand the
nature of a compilation problem, then to understand what is missing, and
finally, what will provide what's missing in this or that particular
system. I'm sure it's trivial for some professionals, but i still find
it kinda confusing despite some 20 years of unix experience (and Linux
is less then half of it, I had BSDs, Solaris, IRIX, AIX, HP-UX, some
other obscure systems).
For example, the header file pty.h is not found by compiler. But it's
there, somewhere in /usr/src tree. I have to manually find it and copy
it to gambas git clone directory to make it compile. But when the
compiler just says "no pty.h, goodbuy" it takes a while to undestand
where do I go from here. But when I wrote a script, in next version of
FreeBSD it was just gone. So I took it from an older system, put it on
my server and just added a wget command to my compilation script, and it
works again. And then compilation suddenly stopped requiring that file.
So now I have like four different FreeBSD/Gambas compilation scripts for
different releases, and they all fail on non-respective systems.
Some of my scripts had 'mysql56-client' packet installation, and so
Gambas was built around it. And then I just used binary package of
Gambas on this version of FreeBSD. But then this package was updated to
'mysql57-client' so not only can't I compile with this script, but also
previously compiled binary package stopped working, because
libmysqlclient.so.X is not there anymore, and symlinking it from newer
version does not work, because of some internal API changes. So it's
recompilation all over again.
What package _actually_ supplies that part of GTK2 gambas requires? Is
it gtk2? No.
What package _actually_ supplies that part of GTK3 gambas requires? Is
it gtk3? No.
What package _actually_ supplies that part of QT5 gambas requires? Is it
qt5? No.
and so on, and so on.
BUT! But. Since FreeBSD 13.2 Gambas is compiled just like that:
pkg install mc mysql57-client gtk2 qt5 gcc pkgconf autoconf automake git
libtool librsvg2 gmime30
git clone --depth=1 https://gitlab.com/gambas/gambas.git
cd gambas/
./reconf-all
./configure -C --disable-postgresql --disable-sqlite2 --disable-sqlite3
--disable-crypt --disable-qt4 --disable-gtk3 --disable-opengl
--disable-keyring --disable-pdf --disable-poppler --disable-cairo
--disable-gsl
make
make install prefix=/opt/gambas
cp -r /opt/gambas/* /usr/
Will it be like this tomorrow? I don't know. Will it work for the next
FreeBSD version? I don't know.
That's how we roll here :-)
>
>> It's just that FreeBSD is not Linux, and we've established long time
>> ago that you are not particularly interested in supporting something
>> that is not Linux,
>
> It's not actually true: look at the system detection in 'acinclude.m4'.
>
> As soon as it's Unix-like, I always accept patches to make it compile
> on a new system.
>
> It's Windows that I avoid as much as possible since I developed on it
> long time ago. Thanks God, I didn't boot a Windows system since
> Windows XP.
>
> Regards,
>
I see. Well, ok then. We'll see what can be done.
Dmitry.
More information about the User
mailing list