hi Fred,
it looks like everyone else has left the discussion

i feel the best way forward is to create a patch to one of the existing releases of Lazarus for Linux, as posted on SourceForge. my preference would be to use the .deb packages of version 3.6 as it has been out for a while now without any major problems; it would be hopeless to try to work with the GitLab sources as these represent a moving target.
step 1:
we need to figure out how to create a new "LCLWidgetType" entry (see attached screenshot) for Project -> Project Options -> Compiler Options -> Additions and Overrides, calling it something like "
YTK/X11". this differs from what
fifr has done, where he has just repurposed the existing "
GTK2" option.
step 2:
next step is to figure out how to differentiate between "GTK2" and "YTK/X11". i presume that at the moment
fifr's changes are just edits to various pieces of the LCL source code related to GTK2. at the least we need an extra flag to indicate YTK has been selected for building, and conditionally compile either the (original) GTK2 segments
or fifr's (new) YTK segments, depending upon this YTK flag.
or do we go down the more complicated route of creating a complete second set of routines, so we have an "original" GTK2 set of routines, and alongside this a "new" GTK2 (renamed as YTK) set. this path will likely involve a whole load more work, but be less of a kludge.
step 3:
examine what changes
fifr has made to FPC. are these necessary? can they be achieved by instead making changes to only Lazarus code? ideally it would be nice to not need to make
any changes to FPC.
once the above 3 steps are completed, we should have a version of the Lazarus IDE that can still build ELF binaries for GTK2, but can
also build ELF binaries for a new target called YTK/X11.
and, more importantly, we can bundle this all up as a relatively small patch (plus the four .a files) that anyone can use by:
a. downloading the original three .deb packages from SourceForge for Lazarus 3.6 (or whatever other version we pick), and install them as normal. then,
b. run a patch program we supply that goes through and patches the Lazarus IDE's source and the LCL source to support YTK/X11, then,
c. rebuild the Lazarus IDE and LCL.
alas, i have absolutely no idea how to do most of this! i'm really hoping that
fifr may be able to offer some pointers in massaging his code into the needed form, and indeed that perhaps
valdir.marcos or
zeljko may even chip in - in particular with the steps needed to add in a new "LCLWidgetType" entry in the Lazarus IDE.
cheers,
rob :-)