From 5c744e37b6375f3f6842cdf3758a180a649bafea Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 2 Jul 2026 00:53:37 +0300 Subject: ycurses: get it building on modern GCC, verify in Docker (task 9s0) ycurses shares no source files with ychat/yhttpd (it's an ncurses UI toolkit, not part of the httpd/socket engine), so none of the sock/reqp/ html/logd/tool fixes apply here - only the same class of toolchain-gate bugs did: - Top-level configure's g++ 3.x version gate now accepts any GNU g++ (same fix as yhttpd/configure). - scripts/config.pl silently BEGIN-failed on modern Perl (`use scripts::modules::file` needs "." on @INC, dropped by Perl 5.26+); the "yes" default answer was never actually read. Fixed with `perl -I.` (also applied to yhttpd/configure, which had the same latent bug). - src/configure's library search paths predate 64-bit multilib distros (no /usr/lib64), so installed libpanel/libmenu/libncurses were reported "NOT OK" on Rocky Linux 9 (also backported to yhttpd/src/configure). - attributes.h declared `set set_attr` (std::set, via `using namespace std`) and separately two member functions literally named `set` - GCC 11 treats that as ill-formed ("changes meaning of 'set'"), not just a warning. Renamed both overloads to set_attr_flag; no external caller used the bare set(...)/set(int) names. Verified in a Rocky Linux 9 container: builds clean, links, and runs - initializes curses, draws the demo screen using color/attributes (exercising the fix above), exits cleanly. Added Dockerfile (build verification only - it's an interactive demo, not a service) and BUILD.md documenting the fixes and one pre-existing, deliberately unfixed bug (unset() never actually clears an attribute). Co-Authored-By: Claude Sonnet 5 --- ycurses/src/configure | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ycurses/src/configure') diff --git a/ycurses/src/configure b/ycurses/src/configure index cb7c9ff..cffbbda 100755 --- a/ycurses/src/configure +++ b/ycurses/src/configure @@ -51,8 +51,11 @@ perl -e ' $ENV{HOME}."/lib", $ENV{HOME}."/usr/lib", "/lib", + "/lib64", "/usr/lib", + "/usr/lib64", "/usr/local/lib", + "/usr/local/lib64", "/usr/pkg/lib", "/opt/lib", "/opt/local/lib" -- cgit v1.2.3