pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: octave vs tigervnc fltk battle



En Sat, Nov 07, 2026 at 07:26:44AM +0100, Greg Troxel escribió:
> > Is a bug that should me fixed in pkgsrc?
> 
> Well, it's a pile of bugs, some blend of things, each of which I have no
> idea if it's true:
> 
>   - 1) fltk should have good enough compat that maintained programs don't
>     need to use old versions
>   - 2) tigervnc upstream should have a release that works with the most
>     recent release of fltk
> 
> and
> 
>   - 3) Perhaps pkgsrc should allow installing two versions of fltk, but
>     that's a lot of work, and ick imposed on the system.  It's not clear
>     it's worth it, only that nobody has done it.
> 
> 


Hello Greg,

I appreciate very much your detailed (as you always provide) explanations. Thanks for your time an effort teaching all of us.

FLTK latest stable release upstream is  1.4.5

https://www.fltk.org/software.php?VERSION=1.4.5#v1.4.5

pkgsrc2026Q3 has two fltk versions that are told to conflict eath other in their Makefiles:

fltk-1.4.5nb1     
fltk13-1.3.11nb2   

TigerVNC upstream stable version is 1.16.2
https://github.com/TigerVNC/tigervnc/releases/tag/v1.16.2

pkgsrc2026Q3 tigervnc is tigervnc-1.16.2.20260506nb1 and  is compiled against fltk13. Github upstream site says:

================================
Build requirements (all systems)
================================

....

-- FLTK 1.3.3 or later

...

So I understood that "1.3.3 or later" could be satisfied with 1.4.5.

I tried to compile pkgsrc2026Q3 tigervnc against fltk (1.4.5) tweaking pkgsrc Makefile changing

.include "../../x11/fltk13/buildlink3.mk"

to

.include "../../x11/fltk/buildlink3.mk"

but CMakeLists.txt file it has a FLTK check line tha complains if FLTK 1.4.5 is used:

check_cxx_source_compiles("#include <FL/Fl.H>\n#if FL_MAJOR_VERSION != 1 || FL_MINOR_VERSION != 3\n#error Wrong FLTK version\n#endif\nint main(int, char**) { return 0; }" OK_FLTK_VERSION)

I tried to trick the compilation tweaking it to 

check_cxx_source_compiles("#include <FL/Fl.H>\n#if FL_MAJOR_VERSION != 1 || FL_MINOR_VERSION != 4\n#error Wrong FLTK version\n#endif\nint main(int, char**) { return 0; }" OK_FLTK_VERSION

to allow 1.4.5 to start compilation.

That allowed compiling almost till the end but it failed at 95% of compiling....

[ 95%] Building CXX object unix/x0vncserver/CMakeFiles/x0vncserver.dir/XDesktop.cxx.o
[ 95%] Building CXX object vncviewer/CMakeFiles/vncviewer.dir/GestureHandler.cxx.o
In file included from /usr/pkgsrc/net/tigervnc/work/tigervnc-84e930679d831bcf51d5f95733689ada68dfd52a/vncviewer/vncviewer.cxx:70:
/usr/pkgsrc/net/tigervnc/work/tigervnc-84e930679d831bcf51d5f95733689ada68dfd52a/vncviewer/touch.h:26:23: error: 'Window' was not declared in this scope
   26 | bool x11_grab_pointer(Window window);
      |                       ^~~~~~
/usr/pkgsrc/net/tigervnc/work/tigervnc-84e930679d831bcf51d5f95733689ada68dfd52a/vncviewer/touch.h:27:6: error: variable or field 'x11_ungrab_pointer' declared void
   27 | void x11_ungrab_pointer(Window window);
      |      ^~~~~~~~~~~~~~~~~~
/usr/pkgsrc/net/tigervnc/work/tigervnc-84e930679d831bcf51d5f95733689ada68dfd52a/vncviewer/touch.h:27:25: error: 'Window' was not declared in this scope
   27 | void x11_ungrab_pointer(Window window);
      |                         ^~~~~~
/usr/pkgsrc/net/tigervnc/work/tigervnc-84e930679d831bcf51d5f95733689ada68dfd52a/vncviewer/vncviewer.cxx: In function 'int main(int, char**)':
/usr/pkgsrc/net/tigervnc/work/tigervnc-84e930679d831bcf51d5f95733689ada68dfd52a/vncviewer/vncviewer.cxx:717:3: error: 'fl_open_display' was not declared in this scope
  717 |   fl_open_display();
      |   ^~~~~~~~~~~~~~~
[ 95%] Building C object unix/x0vncserver/CMakeFiles/x0vncserver.dir/RandrGlue.c.o
[ 96%] Building CXX object unix/x0vncserver/CMakeFiles/x0vncserver.dir/XSelection.cxx.o
[ 96%] Building CXX object unix/x0vncserver/CMakeFiles/x0vncserver.dir/__/vncconfig/QueryConnectDialog.cxx.o
gmake[2]: *** [vncviewer/CMakeFiles/vncviewer.dir/build.make:373: vncviewer/CMakeFiles/vncviewer.dir/vncviewer.cxx.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:1118: vncviewer/CMakeFiles/vncviewer.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
[ 97%] Linking CXX executable x0vncserver
[ 97%] Built target x0vncserver
gmake: *** [Makefile:136: all] Error 2
*** Error code 2

Stop.
make[1]: stopped making "replace" in /usr/pkgsrc/net/tigervnc
*** Error code 1

And I abandoned the idea :-(


As there are other interesting programas like FLDIGI for the radio amateur, that it is compiled against fltk13 so I think that if I get tigervnc work with fltk 1.4.5 will break also FLDIGI that needs fltk13.

netbsd-nuc# pkgin show-rev-deps fltk13
local reverse dependency tree for fltk13-1.3.11nb2
	tigervnc-1.16.2.20260506nb1
	fldigi-4.1.01nb42


So I tried another thing, compiling octave against fltk13 instead fltk (1.4.5) changing the Makefile to use

.include "../../x11/fltk13/buildlink3.mk"

instead of

.include "../../x11/fltk/buildlink3.mk"



netbsd-nuc# pkg_info octave | grep fltk
fltk13>=1.3.11nb2<1.4.0
netbsd-nuc# 

It compiles and works fine, at least it fixes my situation. But the proper fix seems difficult. If other programs trigger the installation of FLTK 1.4.5 will break tigervnc.


Regards.

Ramiro.


Home | Main Index | Thread Index | Old Index