Menu

SVN-Code Commit Log


Commit Date  
[r13000] by mikeaubury

GCC 14/debian fixups

2026-08-20 15:32:04 Tree
[r12999] by mikeaubury

Fix fresh-checkout build: rpcgen headers are needed without XDR

r12998 gated the RPCGEN_* recipes in common/dataio/Makefile on
USE_RPCGEN=yes, so with no libtirpc they were never run. As well as the
*_xdr.c modules, rpcgen emits form_x.h, which compilers/4glc/rules
includes - nothing to do with XDR - so a fresh checkout failed with:

No rule to make target '../../common/dataio/form_x.h',
needed by 'rules/generated/y.tab.o'

An existing working copy still built, because form_x.h was already
present as an untracked build artifact.

- common/dataio/Makefile: the RPCGEN_* recipes are unconditional again;
only the libXDRPACKER_* targets stay gated on USE_RPCGEN.
- m4/aubit_tools.m4: rpcgen is therefore required for a source build
even with --with-rpc=none. Fail at configure time with a message
naming the package (Debian: rpcsvc-proto) rather than at the obscure
make error above. Only errors when form_x.h is not already present,
so a tarball shipping the generated files still configures.
- configure: regenerated.

Verified on a clean 'svn export' of the tree: ./configure && make now
completes ("Thank you for using Aubit 4gl compiler"), 57 plug-ins built,
no XDR plug-ins (correct without libtirpc), and the LVARCHAR round-trip
tests pass against a live Informix instance using only that build.

2026-08-15 14:48:05 Tree
[r12998] by mikeaubury

More Claude enhancements

2026-08-15 13:14:04 Tree
[r12997] by mikeaubury

Build: drop AH_BOTTOM fallbacks, use standard autoheader semantics

r12996 added an AH_BOTTOM block defining every legacy symbol to 0 when
configure did not probe it, reproducing the pre-2026 header's contract that
EVERY symbol is defined (0 or 1). That contract is what made '#ifdef HAVE_X'
true even where X was 0 -- a defect, not a feature. Aubit code tests these
with '#if HAVE_X', where an undefined symbol already evaluates to 0, so the
fallbacks were unnecessary for all but seven symbols:

- RTLD_LAZY, RTLD_NOW, DL_LAZY, DL_NOW are dlfcn.h system macros, not
configure symbols. Defining them 0 was a redefinition hazard that only
worked because dlfcn.h's own #define won. They now come from the system:
LT_DLLAZY_OR_NOW still resolves to RTLD_LAZY (0x00001) as before.
- CAN_DLOPEN_SELF and NEED_DL_UNDERSCORE are already self-defaulted by
compilers/pcode/runner_calls.c (which carries a comment noting configure
should have set them). The header forced CAN_DLOPEN_SELF to 0; the code's
own default of 1 is correct here and the symbol is never read. Four of
these sites were in vendored libltdl/ltdl.c, which includes its own
config.h and never saw our header.
- HAVE_LIBQRENCODE_ENCODEMASK guarded an inverted test: QRcode_encodeInput()
under '#ifdef ..._ENCODEMASK' and QRcode_encodeMask() in the #else. The
fallback made that #ifdef always true, so the #else was dead -- had
configure ever failed to find QRcode_encodeMask, the code would have
called precisely that missing function. Now guards on the symbol that can
actually be absent. (Untested at runtime: libqrencode is not installed
here, so '#if HAVE_LIBQRENCODE' is 0 and the block does not compile.)

Also: three AC_DEFINEs in m4/aubit_sql.m4 passed an empty description, so
autoheader generated no template for them and they could never have been
defined. The fallback block had been masking that; autoheader now fails
loudly on it. Descriptions added.

configure.ac 831 -> 412 lines; the header template 771 -> 360 lines with 116
#undef entries and no fallbacks.

Verified: fresh checkout + ./configure && make builds clean and produces a
plugin set byte-size identical to the previous build (61/61), as are
libaubit4gl.so.1.6.3 and bin/xgen. runner_calls.c (not part of the default
build) compiles standalone with the dlopen flags resolving as before.
Rebuilt working tree passes all 17 regression checks.

2026-08-12 10:02:29 Tree
[r12996] by mikeaubury

Build: fix clean-checkout build; add UI_JSON to default targets

A fresh checkout could not be built. Four independent gaps:

1. incl/a4gl_incl_config.h was never generated. The 2026 configure.ac
rewrite dropped the AM_CONFIG_HEADER(incl/a4gl_incl_config.h) that the
old configure.in had (and that BUILD_MODERNIZATION/PLAN.md specified);
working trees only built because they still held a stale copy from the
previous build system. Restored via AC_CONFIG_HEADERS. Since $(DEFS) is
not plumbed into incl/Makefile-common, this header is the ONLY route by
which AC_DEFINE results reach C code.

autoheader alone is not sufficient: it emits templates only for probed
symbols and leaves the rest undefined, whereas the historical header
defined every symbol (0 or 1) so '#ifdef HAVE_X' was always true. 89
#ifdef sites depend on that. configure.ac therefore carries an AH_BOTTOM
block supplying 0-defaults for the 137 legacy symbols, so real values are
used where configure probes and the old contract holds everywhere else.

Also restored two checks the rewrite lost: pdflib.h (without it
lib/liblogical/pdf/process/pdf_barcode fails to compile -- its header
declares PDF-typed prototypes unconditionally) and libintl.h. And the
Informix ESQL/C version probe behind HAVE_IFX_IUS, lifted from the old
configure.in (parse 'esql -V' -> 450, define when >= 290); unlike the
old script an unparsable version warns rather than aborting configure.

Verified: all 137 symbols of the previously-used header are present and
the 19 that differ are unreferenced by C code, appear only in string
literals, or sit in dead branches.

2. lib/libui/ui_json/readJsonForm.c was compiled into libUI_JSON.so but
never versioned (committed in r12995), and it includes form_json.xs.h,
generated from form_json.x by xgen -- neither the .x nor a rule for it
existed. form_json.x is now versioned, ui_json/Makefile generates the
header following the common/dataio pattern, and the five xgen outputs
are svn:ignore'd like every other .xs.h in the tree.

3. libUI_JSON.so was not part of the default build: ui_json hung off
core.ui.xml, reachable only via 'make bootstrap'. UI_JSON is now in
ALL_PLUGINS with a rule in lib/Makefile ordered after PACKER_FORMXML and
UI_XML (it links their formjson.o and borrows their headers), plus a
clean target. No new external dependencies -- libjson.c is bundled.

4. node/baseProgs/runProgram.sh lacked svn:executable, so a clean checkout
got it non-executable and setuid_runner's execv() failed with EPERM,
preventing the web pipeline from launching any program.

Verified end to end: fresh checkout + ./configure && make builds clean, 61
plugins, libUI_JSON.so produced by the default target. Rebuilt working tree
passes all 17 regression checks (12 browser e2e, 3 protocol, 2 iarr-probe).

2026-08-12 08:47:18 Tree
[r12995] by mikeaubury

Angular web UI: JSON pipeline server, Angular app, e2e test suite

- lib/libui/ui_json/readJsonForm.c: compiled into libUI_JSON.so but never
versioned; a clean checkout could not link the driver.
- node/server-angular.js + package.json/package-lock.json: the Angular-era
Node backend (socket.io bridge between libUI_JSON and the browser).
- node/Aubit4GLWebAngular: the Angular application source. node_modules,
dist, .angular and build.log are svn:ignore'd -- a fresh checkout needs
'npm install && npx ng build' before the server has anything to serve.
- node/tools: protocol/e2e test harness (protocol-test, browser-e2e and the
capture/construct/update/iarr/addorder probes).
- node/baseProgs: applications.json plus the .4gl/.per sources for the
jsontest1, iarrtest and fcalltest programs. Compiled .4ae/.c/.ao/.json
outputs are left unversioned (regenerated by 4glpc / fcompile -json).

2026-08-11 17:34:50 Tree
[r12994] by mikeaubury

Claude enhanced fixups - fingers crossed...

2026-08-11 17:22:06 Tree
[r12993] by mikeaubury

refactor configure scripts

2026-05-29 13:41:06 Tree
[r12992] by mikeaubury

Add small program to fix broken LRFs

2026-04-24 09:21:53 Tree
[r12991] by mikeaubury

Logical report fixups - migrate to GTK3

2026-04-24 09:21:15 Tree
Older >