Recent

Author Topic: could Ardour's YTK be used as a GTK2 replacement?  (Read 11299 times)

robert rozee

  • Sr. Member
  • ****
  • Posts: 365
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #15 on: March 10, 2026, 03:18:36 pm »
[...] here are the binary sizes of a stripped lazarus executable on my system with gtk2 (dynamically linked) and ytk (statically linked):
  • gtk2: 41.4 MB
  • ytk: 45.5 MB

wow - those results are impressive! dynamic GTK2 -> static YTK = 4.1mb increase in ELF binary size.

these results suggest this is certainly a project worth pursuing. amongst other things, it would mean we could have a single linux binary for the lazarus IDE that would work on any linux system that uses X11. this would be far better that the current situation where the Sourceforge packages initially only work with GTK2, and also extend to covering Wayland (provided XWayland is also present).

in addition (following the "extra string to our bow" philosophy), with lazarus now not only be able to build for "GTKx" and "Qtx" widgetsets, but also for what is effectively an "X11 direct" widgetset; for embedded targets there would be a significant saving on the disk space required (between "between 150[mb] and 220[mb]" according to Thaddy in his earlier post). while a few hundred mb is nothing on desktop linux systems, embedded systems are far more 'disk space sensitive'.

perhaps someone should reach out to the Ardour developer(s) to see if they are interested in offering us any help? the name that pops up is Paul Davis: https://github.com/pauldavisthefirst.


cheers,
rob   :-)
« Last Edit: March 10, 2026, 03:26:57 pm by robert rozee »

fifr

  • New Member
  • *
  • Posts: 15
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #16 on: March 12, 2026, 07:29:40 pm »
I managed to successfully compile and run Lazarus with ytk. You can find the changes on gitlab:
I tried to split all changes in smaller pieces, one widget at the time, so reviewing them should not be too hard.

The following changes were necessary:

ytk: unfortunately, the ardour authors made a change that is ABI incompatible with gtk2: they added three new methods in the middle of the vtable of GtkWidget (instead of appending them). This is no problem for them (because of static linking) but a problem for fpc because the binding on the pascal side makes an assumption on the layout of that vtable. The branch in this repo moves the three methods to the end of the vtable (without this change Lazarus crashes on start).

fpc: Basically a lot of deprecated gtk2 types have been deleted (I just removed the corresponding "include" from the gtk2 package). And the package now links the ytk static libs instead of gtk, of course.

lazarus: Similarly a lot of old code has been removed. It turned out that most parts are not that critical because the code was not used anyway (some old artifacts from gtk1 or so -- some are even there in the gtk3 binding).

There three "bigger" changes:
  • GtkCombo has been replaced by GtkComboBoxEntry
  • GtkList has been replaced by GtkTreeView
  • GtkCalendar has been disabled
The first two may cause some problems. I did my best to change not too much, but I had to remove some workarounds implemented specifically for GtkCombo or GtkList. So components using one of them may behave differently now (or have some bugs).

These changes should (in theory) be compatible with gtk2 (in particular, linking with gtk2 instead of ytk still works). Everything that has been removed has been deprecated in gtk2.

The only exception is GtkCalendar, which is not deprecated but also not part of ytk. I just disabled the widget for now. Possible solutions would be to add the widget to ytk again or to implement the LCL widget without the gtk backend.

With these changes, Lazarus starts (on my system), but only with the classic (i.e. multi-window) IDE. The docked IDE crashes (probably something with the GtkList or so, I do not know, yet).
« Last Edit: March 12, 2026, 07:32:13 pm by fifr »

dbannon

  • Hero Member
  • *****
  • Posts: 3777
    • tomboy-ng, a rewrite of the classic Tomboy
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #17 on: March 13, 2026, 05:20:21 am »
Pretty impressive Frank, pretty impressive !

Davo
Lazarus 3, Linux (and reluctantly Win10/11, OSX Monterey)
My Project - https://github.com/tomboy-notes/tomboy-ng and my github - https://github.com/davidbannon

robert rozee

  • Sr. Member
  • ****
  • Posts: 365
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #18 on: March 14, 2026, 01:30:43 pm »
yes Frank, am impressed here too!

what sort of output do you see when you use readelf to extract a list of dependencies for your YTK version of the IDE? on my setup, from the standard (GTK2) 3.6 version of the lazarus IDE i get:

user@user-DH61BE:/usr/share/lazarus/3.6.0$ ls -l startlazarus
-rwxr-xr-x 1 root root 41221520 Apr 19  2025 startlazarus
user@user-DH61BE:/usr/share/lazarus/3.6.0$
user@user-DH61BE:/usr/share/lazarus/3.6.0$
user@user-DH61BE:/usr/share/lazarus/3.6.0$ readelf -d startlazarus | grep -i "needed"
 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libgdk-x11-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libgtk-x11-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libX11.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgdk_pixbuf-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libgobject-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libglib-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libgthread-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libgmodule-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libpango-1.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libcairo.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libatk-1.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
user@user-DH61BE:/usr/share/lazarus/3.6.0$
user@user-DH61BE:/usr/share/lazarus/3.6.0$



in theory, with YTK statically linked, i think you should be getting something like:

 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libX11.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]



cheers,
rob   :-)
« Last Edit: March 14, 2026, 01:43:29 pm by robert rozee »

fifr

  • New Member
  • *
  • Posts: 15
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #19 on: March 14, 2026, 02:34:39 pm »
the following dynamic libraries are linked:

Code: [Select]
$ ldd startlazarus
linux-vdso.so.1 (0x00007fd45de30000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fd45dcbf000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007fd45db6a000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007fd45db06000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007fd45dace000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007fd45dabe000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007fd45d990000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007fd45d79d000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00007fd45d783000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00007fd45d714000)
libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007fd45d5ed000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007fd45d59f000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007fd45d4d9000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fd45d3eb000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007fd45d3d6000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007fd45d3c9000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007fd45d3c4000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007fd45d3bf000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007fd45d3b6000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00007fd45d38d000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fd45d1a3000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fd45d178000)
libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007fd45d0c8000)
libffi.so.7 => /usr/lib/libffi.so.7 (0x00007fd45d0bc000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007fd45d0a0000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007fd45d092000)
libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0x00007fd45d08d000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007fd45cfd6000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fd45de32000)
libmount.so.1 => /usr/lib/libmount.so.1 (0x00007fd45cf5f000)
libfribidi.so.0 => /usr/lib/libfribidi.so.0 (0x00007fd45cf3d000)
libthai.so.0 => /usr/lib/libthai.so.0 (0x00007fd45cf32000)
libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007fd45cf08000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007fd45cedb000)
libbz2.so.1 => /usr/lib/libbz2.so.1 (0x00007fd45cec8000)
libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007fd45ceb8000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fd45ceb3000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fd45ceab000)
libblkid.so.1 => /usr/lib/libblkid.so.1 (0x00007fd45ce4b000)
libdatrie.so.1 => /usr/lib/libdatrie.so.1 (0x00007fd45ce41000)
libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007fd45ce1c000)
or, if you prefer the readelf output
Code: [Select]
$ readelf -d startlazarus | grep -i "needed"
 0x0000000000000001 (NEEDED)             Shared library: [libX11.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libglib-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libgobject-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libpng16.so.16]
 0x0000000000000001 (NEEDED)             Shared library: [libpangocairo-1.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libcairo.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libgio-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libpangoft2-1.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libpango-1.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libharfbuzz.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libfontconfig.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libfreetype.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libXext.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libXrender.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libXinerama.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libgthread-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libgmodule-2.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libatk-1.0.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
Note that only gtk, gdk, gdk-pixbuf and ztk are part of ytk. Dependent libraries like several font-related libs as well as glib, gobject, gio are still linked dynamically (but those are not deprecated).

Fred vS

  • Hero Member
  • *****
  • Posts: 3882
    • StrumPract is the musicians best friend
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #20 on: March 14, 2026, 03:21:29 pm »
Hello Fifr.

The compilation of libraries ytk-fpc-main from your GitLab site was out-of-the-box: WOW, only "make" command did the trick.

But to apply the patches to fpc/lazarus source using the link of your previous post:

Quote
* fpc-ytk.patch (27.76 kB - downloaded 43 times.)
* lazarus-ytk.patch (23.21 kB - downloaded 28 times.)

The patches are not working when using:
Code: Pascal  [Select][+][-]
  1. $ cd /dir/of/fpc-source
  2. $ patch fpc-ytk.patch

The same for lazarus patch.

What am I missing?

And where should the ytk libraries be placed?

For the patch for fpc, could it be used also for fpc 3.2.2 source?

In any case, congratulations on this courageous and brilliant fight.

« Last Edit: March 14, 2026, 03:23:06 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

robert rozee

  • Sr. Member
  • ****
  • Posts: 365
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #21 on: March 14, 2026, 03:33:22 pm »
aha, i see where i went astray...

that rather short list i had (libdl.so.2 , libX11.so.6 , libc.so.6) was based on looking at the ELF binary of an application built for Qt5, but with libQt5Pas.so.1 deleted from the list.

i'm picking that for the ELF binary i was looking at, those other dependencies you have listed are things that (in my example) were quietly being brought in by libQt5Pas.so.1. my mistake!

btw - is there a simple way of recursively looking for dependencies? or would that lead one down an infinite rabbit hole?!


cheers,
rob   :-)

fifr

  • New Member
  • *
  • Posts: 15
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #22 on: March 14, 2026, 03:34:27 pm »
But to apply the patches to fpc/lazarus source using the link of your previous post:
 for lazarus patch.

What am I missing?
Forget about those patches, they are pretty out-of-date. Just checkout the ytk branch of the three repos I posted earlier (you also need ytk from the repo because I had to make change). Those versions should be compatible.

And you can place the libraries wherever you want. Just specify the path when compiling lazarus
Code: [Select]
$ make bigide LCL_PLATFORM=gtk2 OTHERLIBDIR=/path/to/ytk/libs
« Last Edit: March 14, 2026, 03:46:36 pm by fifr »

fifr

  • New Member
  • *
  • Posts: 15
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #23 on: March 14, 2026, 03:36:46 pm »
btw - is there a simple way of recursively looking for dependencies? or would that lead one down an infinite rabbit hole?!
I think ldd should show all recursively required dependencies (except those that are potentially loaded at runtime using dl).
« Last Edit: March 14, 2026, 03:39:21 pm by fifr »

Fred vS

  • Hero Member
  • *****
  • Posts: 3882
    • StrumPract is the musicians best friend
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #24 on: March 14, 2026, 03:46:36 pm »
Forget about those patches, they are pretty out-of-date. Just checkout the ytk branch of the three repos I posted earlier (you also need ytk from the repo because I had to make change). Those versions should be compatible.

Ha, perfect there is the ytk branches, with all your changes.

OK, write you later.
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Fred vS

  • Hero Member
  • *****
  • Posts: 3882
    • StrumPract is the musicians best friend
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #25 on: March 14, 2026, 04:28:25 pm »
Re-Hello Fifr.

Sorry but I can only say, once again, WOW:o

Out-of-the-box (very important for me) and working great.

@Rob: The size of startlazarus is 60.8 MiB unstripped.

And stripped (and still working!) 14.7 MiB.

Code: Pascal  [Select][+][-]
  1. $ readelf -d startlazarus | grep -i "needed"
  2.  0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
  3.  0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
  4.  0x0000000000000001 (NEEDED)             Shared library: [libX11.so.6]
  5.  0x0000000000000001 (NEEDED)             Shared library: [libglib-2.0.so.0]
  6.  0x0000000000000001 (NEEDED)             Shared library: [libgobject-2.0.so.0]
  7.  0x0000000000000001 (NEEDED)             Shared library: [libpng16.so.16]
  8.  0x0000000000000001 (NEEDED)             Shared library: [libpangocairo-1.0.so.0]
  9.  0x0000000000000001 (NEEDED)             Shared library: [libcairo.so.2]
  10.  0x0000000000000001 (NEEDED)             Shared library: [libgio-2.0.so.0]
  11.  0x0000000000000001 (NEEDED)             Shared library: [libpangoft2-1.0.so.0]
  12.  0x0000000000000001 (NEEDED)             Shared library: [libpango-1.0.so.0]
  13.  0x0000000000000001 (NEEDED)             Shared library: [libharfbuzz.so.0]
  14.  0x0000000000000001 (NEEDED)             Shared library: [libfontconfig.so.1]
  15.  0x0000000000000001 (NEEDED)             Shared library: [libfreetype.so.6]
  16.  0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
  17.  0x0000000000000001 (NEEDED)             Shared library: [libXext.so.6]
  18.  0x0000000000000001 (NEEDED)             Shared library: [libXrender.so.1]
  19.  0x0000000000000001 (NEEDED)             Shared library: [libXinerama.so.1]
  20.  0x0000000000000001 (NEEDED)             Shared library: [libgthread-2.0.so.0]
  21.  0x0000000000000001 (NEEDED)             Shared library: [libgmodule-2.0.so.0]
  22.  0x0000000000000001 (NEEDED)             Shared library: [libatk-1.0.so.0]
  23.  0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
  24.  
]

[EDIT] I did test with one of mine LCL app:
            Using original LCL-GTK2: 7.2 MiB.
            Using LCL-YTK: 10.8 MiB. (and is working)

Fifr you are the greatest.
« Last Edit: March 14, 2026, 05:18:09 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

robert rozee

  • Sr. Member
  • ****
  • Posts: 365
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #26 on: March 14, 2026, 05:27:15 pm »
btw - is there a simple way of recursively looking for dependencies? or would that lead one down an infinite rabbit hole?!
I think ldd should show all recursively required dependencies (except those that are potentially loaded at runtime using dl).

brilliant, ldd worked a treat. filtered the output to get just the library names using:
ldd project1 | cut -d'=' -f1 | sort

applied this to the ELF binaries of a project built first using GTK2, then using Qt5. pasted the outputs into a 2-column LibreOffice document, lined up matching entries and colour coded those that did not match. the result is an 'interesting' table for further study!

Fred: what happens if you use your newly created IDE to build a very simple GUI application into an ELF binary? how large is it? for GTK2/Qt5 i'd expect something like 3mb, and guess that for YTK it is perhaps 9mb?


cheers,
rob   :-)


Fred vS

  • Hero Member
  • *****
  • Posts: 3882
    • StrumPract is the musicians best friend
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #27 on: March 14, 2026, 09:48:40 pm »
Fred: what happens if you use your newly created IDE to build a very simple GUI application into an ELF binary? how large is it? for GTK2/Qt5 i'd expect something like 3mb, and guess that for YTK it is perhaps 9mb?

Not sure to understand.

My previous post said:

Quote
I did test with one of mine LCL app:
            Using original LCL-GTK2: 7.2 MiB.
            Using LCL-YTK: 10.8 MiB. (and is working)

I encourage you to use fifr sources; it's out-of-the-box.


« Last Edit: March 15, 2026, 12:09:30 am by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

robert rozee

  • Sr. Member
  • ****
  • Posts: 365
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #28 on: March 15, 2026, 12:13:08 am »
Quote
I did test with one of mine LCL app:
            Using original LCL-GTK2: 7.2 MiB.
            Using LCL-YTK: 10.8 MiB. (and is working)

my bad - i had missed those few lines when i read your previous post. that is exactly the information i was after... showing the size difference between GTK2 and YTK is just 3.6mb for smaller applications. this is a number massively less that what Thaddy and others had earlier predicted.


cheers,
rob   :-)

Fred vS

  • Hero Member
  • *****
  • Posts: 3882
    • StrumPract is the musicians best friend
Re: could Ardour's YTK be used as a GTK2 replacement?
« Reply #29 on: March 15, 2026, 02:44:04 am »
Dear Rob and all others.
Here how to test the magic work of fifr.

- Download (or clone) ytk-fpc: https://gitlab.com/fifr/ytk-fpc
  Then in console (after unzip):
Code: Pascal  [Select][+][-]
  1. $ cd /directory/of/ytk-fpc
  2. $ make
Copy the 4 libxxx.a libraries in /directory/of/ytk-fpc and paste (sudo needed) it into /usr/lib  (maybe there is a other better place or update the lib-search-path but this work).

- Download (or clone) fpc source branch ytk: https://gitlab.com/fifr/fpc/-/tree/ytk?ref_type=heads
  Compile + install fpc-ytk
  I used this script in /dir/of/fpc-source-ytk (run it with sudo privilege).
Code: Pascal  [Select][+][-]
  1. #!/bin/sh
  2. COMPILER=fpc
  3. INSTALLDIR=/usr
  4. make all FPC=$COMPILER OPT="-Fl/usr/local/lib"
  5. make FPC=$COMPILER install INSTALL_PREFIX=$INSTALLDIR

- Download (or clone) lazarus source branch ytk: https://gitlab.com/fifr/lazarus/-/tree/ytk?ref_type=heads
  Unzip it then in console:
Code: Pascal  [Select][+][-]
  1. $ cd /directory/of/lazarus-ytk
  2. $ make

That's all guys!

« Last Edit: March 15, 2026, 03:19:56 am by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

 

TinyPortal © 2005-2018