diff -Nru drawterm-9front-0~git20220608.bee4db6/debian/changelog drawterm-9front-0~git20220608.bee4db6/debian/changelog --- drawterm-9front-0~git20220608.bee4db6/debian/changelog 2022-07-18 23:15:44.000000000 +0530 +++ drawterm-9front-0~git20220608.bee4db6/debian/changelog 2026-05-23 16:08:36.000000000 +0530 @@ -1,3 +1,16 @@ +drawterm-9front (0~git20220608.bee4db6-3.1) unstable; urgency=medium + + * Non-maintainer upload. + * Fix FTBFS with GCC 15 / C23 (Closes: #1096545): + libsec/curve25519.c declares an internal field-element multiplication + function fmul(felem *, felem *, felem *). Under C23 this collides + with 's new narrowing function fmul(double, double). Backport + upstream commit a6c1ce4e02 by cinap_lenrek (2025-05-18) which renames + the internal function to fmult() at the one definition and twelve + call sites in libsec/curve25519.c. + + -- Azeez Syed Sat, 23 May 2026 17:00:00 +0530 + drawterm-9front (0~git20220608.bee4db6-3) unstable; urgency=medium * Switch from OSS to alsa for audio, diff -Nru drawterm-9front-0~git20220608.bee4db6/debian/patches/0004-fix-ftbfs-gcc15-fmul-rename.patch drawterm-9front-0~git20220608.bee4db6/debian/patches/0004-fix-ftbfs-gcc15-fmul-rename.patch --- drawterm-9front-0~git20220608.bee4db6/debian/patches/0004-fix-ftbfs-gcc15-fmul-rename.patch 1970-01-01 05:30:00.000000000 +0530 +++ drawterm-9front-0~git20220608.bee4db6/debian/patches/0004-fix-ftbfs-gcc15-fmul-rename.patch 2026-05-23 16:07:21.000000000 +0530 @@ -0,0 +1,105 @@ +Description: Fix FTBFS with GCC 15 / C23: rename internal fmul() to fmult() + C23 (the GCC 15 default) adds fmul() as a narrowing math function in + (declared float fmul(double, double) via bits/mathcalls-narrow.h). + The internal field-element multiplication routine in curve25519.c is + also named fmul, with signature void(felem *, felem *, felem *). Under + C23 these names collide and the compiler reports: + . + curve25519.c:228:1: error: conflicting types for 'fmul'; have + 'void(felem *, felem *, felem *)' [...] + . + Backport upstream commit a6c1ce4e0244ca70403dc4e795a9cee548159560 by + cinap_lenrek (2025-05-18): rename the internal fmul() in + libsec/curve25519.c (one definition plus twelve call sites) to fmult(). + The function is static, only used within this file, so the rename + has no external ABI impact. +Author: Azeez Syed +Origin: upstream, https://git.9front.org/plan9front/drawterm/commit/?id=a6c1ce4e0244ca70403dc4e795a9cee548159560 +Bug-Debian: https://bugs.debian.org/1096545 +Forwarded: not-needed +Last-Update: 2026-05-23 +--- a/libsec/curve25519.c ++++ b/libsec/curve25519.c +@@ -225,7 +225,7 @@ static void freduce_coefficients(felem * + * reduced coefficient. + */ + static void +-fmul(felem *output, felem *in, felem *in2) { ++fmult(felem *output, felem *in, felem *in2) { + felem t[19]; + fproduct(t, in, in2); + freduce_degree(t); +@@ -509,54 +509,54 @@ crecip(felem *out, felem *z) { + /* 2 */ fsquare(z2,z); + /* 4 */ fsquare(t1,z2); + /* 8 */ fsquare(t0,t1); +- /* 9 */ fmul(z9,t0,z); +- /* 11 */ fmul(z11,z9,z2); ++ /* 9 */ fmult(z9,t0,z); ++ /* 11 */ fmult(z11,z9,z2); + /* 22 */ fsquare(t0,z11); +- /* 2^5 - 2^0 = 31 */ fmul(z2_5_0,t0,z9); ++ /* 2^5 - 2^0 = 31 */ fmult(z2_5_0,t0,z9); + + /* 2^6 - 2^1 */ fsquare(t0,z2_5_0); + /* 2^7 - 2^2 */ fsquare(t1,t0); + /* 2^8 - 2^3 */ fsquare(t0,t1); + /* 2^9 - 2^4 */ fsquare(t1,t0); + /* 2^10 - 2^5 */ fsquare(t0,t1); +- /* 2^10 - 2^0 */ fmul(z2_10_0,t0,z2_5_0); ++ /* 2^10 - 2^0 */ fmult(z2_10_0,t0,z2_5_0); + + /* 2^11 - 2^1 */ fsquare(t0,z2_10_0); + /* 2^12 - 2^2 */ fsquare(t1,t0); + /* 2^20 - 2^10 */ for (i = 2;i < 10;i += 2) { fsquare(t0,t1); fsquare(t1,t0); } +- /* 2^20 - 2^0 */ fmul(z2_20_0,t1,z2_10_0); ++ /* 2^20 - 2^0 */ fmult(z2_20_0,t1,z2_10_0); + + /* 2^21 - 2^1 */ fsquare(t0,z2_20_0); + /* 2^22 - 2^2 */ fsquare(t1,t0); + /* 2^40 - 2^20 */ for (i = 2;i < 20;i += 2) { fsquare(t0,t1); fsquare(t1,t0); } +- /* 2^40 - 2^0 */ fmul(t0,t1,z2_20_0); ++ /* 2^40 - 2^0 */ fmult(t0,t1,z2_20_0); + + /* 2^41 - 2^1 */ fsquare(t1,t0); + /* 2^42 - 2^2 */ fsquare(t0,t1); + /* 2^50 - 2^10 */ for (i = 2;i < 10;i += 2) { fsquare(t1,t0); fsquare(t0,t1); } +- /* 2^50 - 2^0 */ fmul(z2_50_0,t0,z2_10_0); ++ /* 2^50 - 2^0 */ fmult(z2_50_0,t0,z2_10_0); + + /* 2^51 - 2^1 */ fsquare(t0,z2_50_0); + /* 2^52 - 2^2 */ fsquare(t1,t0); + /* 2^100 - 2^50 */ for (i = 2;i < 50;i += 2) { fsquare(t0,t1); fsquare(t1,t0); } +- /* 2^100 - 2^0 */ fmul(z2_100_0,t1,z2_50_0); ++ /* 2^100 - 2^0 */ fmult(z2_100_0,t1,z2_50_0); + + /* 2^101 - 2^1 */ fsquare(t1,z2_100_0); + /* 2^102 - 2^2 */ fsquare(t0,t1); + /* 2^200 - 2^100 */ for (i = 2;i < 100;i += 2) { fsquare(t1,t0); fsquare(t0,t1); } +- /* 2^200 - 2^0 */ fmul(t1,t0,z2_100_0); ++ /* 2^200 - 2^0 */ fmult(t1,t0,z2_100_0); + + /* 2^201 - 2^1 */ fsquare(t0,t1); + /* 2^202 - 2^2 */ fsquare(t1,t0); + /* 2^250 - 2^50 */ for (i = 2;i < 50;i += 2) { fsquare(t0,t1); fsquare(t1,t0); } +- /* 2^250 - 2^0 */ fmul(t0,t1,z2_50_0); ++ /* 2^250 - 2^0 */ fmult(t0,t1,z2_50_0); + + /* 2^251 - 2^1 */ fsquare(t1,t0); + /* 2^252 - 2^2 */ fsquare(t0,t1); + /* 2^253 - 2^3 */ fsquare(t1,t0); + /* 2^254 - 2^4 */ fsquare(t0,t1); + /* 2^255 - 2^5 */ fsquare(t1,t0); +- /* 2^255 - 21 */ fmul(out,t1,z11); ++ /* 2^255 - 21 */ fmult(out,t1,z11); + } + + void +@@ -565,6 +565,6 @@ curve25519(uchar mypublic[32], uchar sec + fexpand(bp, basepoint); + cmult(x, z, secret, bp); + crecip(zmone, z); +- fmul(z, x, zmone); ++ fmult(z, x, zmone); + fcontract(mypublic, z); + } diff -Nru drawterm-9front-0~git20220608.bee4db6/debian/patches/series drawterm-9front-0~git20220608.bee4db6/debian/patches/series --- drawterm-9front-0~git20220608.bee4db6/debian/patches/series 2022-07-18 23:15:44.000000000 +0530 +++ drawterm-9front-0~git20220608.bee4db6/debian/patches/series 2026-05-23 16:06:28.000000000 +0530 @@ -1,3 +1,4 @@ 0001-Use-flags-from-dpkg-buildflags.patch 0002-Support-less-common-architectures.patch 0003-Switch-to-ALSA-audio-from-default-OSS.patch +0004-fix-ftbfs-gcc15-fmul-rename.patch