Public bug reported: xfaces 3.3-30.3 has been stuck in stonking-proposed for ~346 days. It fails to build on every architecture (amd64, amd64v3, arm64, armhf, ppc64el, s390x; riscv64 was cancelled):
missing build on amd64/amd64v3/arm64/armhf/ppc64el/riscv64: xfaces (from 3.3-30.2) Build log (amd64): https://launchpad.net/ubuntu/+source/xfaces/3.3-30.3/+build/32793662 Failure: faces.h:537:13: error: conflicting types for 'regerror'; have 'void(char *)' 537 | extern void regerror P_((String s)); regexp.h:20:13: note: previous declaration of 'regsub' with type 'void(void)' 20 | extern void regsub(); faces.h:553:16: error: conflicting types for 'regcomp'; have 'regexp *(char *)' faces.h:554:12: error: conflicting types for 'regexec'; have 'int(regexp *, char *)' faces.h:558:13: error: conflicting types for 'regsub'; have 'void(regexp *, char *, char *)' Cause: gcc-15 defaults to C23, where an empty parameter list "f()" means "f(void)" instead of "unspecified arguments". xfaces is 1990s K&R code: its bundled regexp.h declares extern regexp *regcomp(); extern int regexec(); extern void regsub(); extern void regerror(); and faces.h later declares the same functions with real prototypes, which now conflict. (This is xfaces' own bundled V8 regexp implementation, not glibc's regex.h.) The build used gcc-15 15.3.0-4ubuntu1. Not Ubuntu-specific. Debian / upstream status: - Debian #1098135 "xfaces: ftbfs with GCC-15" (open, no fix). Debian unstable still shows old binaries built before gcc-15. https://bugs.debian.org/1098135 - Upstream is long dead (xfaces 3.3, 1990s); the package only gets NMUs in Debian (last one: 3.3-30.3, source format 3.0 conversion). Suggested direction (to be done by whoever picks this up): - Simplest fix: build in C17 mode. debian/rules is an old-style hand-written rules file that runs xmkmf and then $(MAKE) $(shell dpkg-buildflags --export=cmdline) all so exporting DEB_CFLAGS_MAINT_APPEND = -std=gnu17 at the top of debian/rules should reach the compiler (check the compile lines in the build log). - Cleaner fix: give regexp.h proper prototypes matching faces.h/regexp.c/regsub.c, e.g. extern regexp *regcomp(char *exp); extern int regexec(regexp *prog, char *string); extern void regsub(regexp *prog, char *source, char *dest); extern void regerror(char *s); then check for further C23 errors in the rest of the K&R code (old-style definitions are only warnings, but other empty-parens declarations may also conflict). -std=gnu17 is probably the pragmatic choice for this code base. - Test-build in stonking, upload as an Ubuntu delta, and send the patch to Debian on #1098135. - Given the package's age and state, also consider whether removal is more appropriate, but the fix looks like a one-liner. ** Affects: xfaces (Ubuntu) Importance: Undecided Status: New ** Tags: ftbfs update-excuse ** Tags added: update-excuse ** Tags added: ftbfs ** Bug watch added: Debian Bug tracker #1098135 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1098135 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2170338 Title: xfaces FTBFS in stonking with gcc-15 (C23): conflicting types for regcomp/regexec/regsub/regerror To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/xfaces/+bug/2170338/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
