[med-svn] [Git][med-team/cufflinks][master] 10 commits: Fix remaining build failures with GCC 16
Andreas Tille (@tille)
gitlab at salsa.debian.org
Mon Sep 21 09:42:41 BST 2026
Andreas Tille pushed to branch master at Debian Med / cufflinks
Commits:
93b3f8f6 by Andreas Tille at 2026-09-21T09:52:54+02:00
Fix remaining build failures with GCC 16
- cxxstandard.patch: force -std=gnu++17; the compiler default (C++23)
breaks the bundled LEMON library which still uses
std::allocator::construct/destroy (removed in C++20)
- byte.patch: use uint8_t instead of the bare 'byte' type (collides
with std::byte under C++17) in codons.cpp, gdna.cpp/h and gff.cpp
- gcc15.patch: declare 'ident' extern instead of defining it in a
header (fixes multiple definition at link time)
- 0002-bam2samtools.patch: detect Debian's /usr/include/samtools
layout so a plain -lbam gets linked
- d/docs: upstream now ships README.md instead of README
- - - - -
f08dbc9b by Andreas Tille at 2026-09-21T09:58:33+02:00
Fix doc installation
- - - - -
0b02d7b3 by Andreas Tille at 2026-09-21T09:17:33+01:00
Reformat the Last-Update date as ISO YYYY-MM-DD.
Changes-By: lintian-brush
Fixes: lintian: source: invalid-dep3-format-patch-wrong-last-update [debian/patches/0001-fix_spelling.patch]
Fixes: lintian: source: invalid-dep3-format-patch-wrong-last-update [debian/patches/lib_eigen.patch]
Fixes: lintian: source: invalid-dep3-format-patch-wrong-last-update [debian/patches/no_svnversion.patch]
See-also: https://lintian.debian.org/tags/invalid-dep3-format-patch-wrong-last-update.html
- - - - -
9ff0d067 by Andreas Tille at 2026-09-21T09:17:33+01:00
Remove redundant Priority: optional from source stanza.
Changes-By: lintian-brush
Fixes: lintian: source: redundant-priority-optional-field
See-also: https://lintian.debian.org/tags/redundant-priority-optional-field.html
- - - - -
586e687d by Andreas Tille at 2026-09-21T09:17:33+01:00
Update standards version to 4.7.4, no changes needed.
Upgrade checklist verified:
4.7.0 → 4.7.1:
* Package does not install to non-/usr paths
4.7.3 → 4.7.4:
* Package is not in non-free-firmware
Changes-By: lintian-brush
Fixes: lintian: source: out-of-date-standards-version 4.7.0 (released 2024-04-07) (current is 4.7.4.1)
See-also: https://lintian.debian.org/tags/out-of-date-standards-version.html
- - - - -
61a809f7 by Andreas Tille at 2026-09-21T10:18:19+02:00
Update changelog
- - - - -
4972368b by Andreas Tille at 2026-09-21T10:19:07+02:00
Changes made by cme
- - - - -
e4d0e350 by Andreas Tille at 2026-09-21T10:19:11+02:00
Drop 'Rules-Requires-Root: no' from d/control (routine-update)
- - - - -
3761c5a1 by Andreas Tille at 2026-09-21T10:19:15+02:00
debputy lint --auto-fix (routine-update)
- - - - -
fdda132b by Andreas Tille at 2026-09-21T10:42:18+02:00
Adapt build to debhelper-compat = 14
- - - - -
13 changed files:
- debian/changelog
- debian/control
- debian/copyright
- debian/docs → debian/cufflinks.docs
- + debian/cufflinks.install
- debian/patches/0001-fix_spelling.patch
- debian/patches/0002-bam2samtools.patch
- debian/patches/byte.patch
- debian/patches/cxxstandard.patch
- debian/patches/gcc15.patch
- debian/patches/lib_eigen.patch
- debian/patches/no_svnversion.patch
- debian/rules
Changes:
=====================================
debian/changelog
=====================================
@@ -7,7 +7,12 @@ cufflinks (2.2.1+git20190706.dc3b0cb+dfsg-1) UNRELEASED; urgency=medium
"unspecified arguments" instead of "no arguments"
- gcc15.patch: fix broken function signatures (prresp, compbandwid,
wdexpand, compsda, widthsj, kdecri, ar_setfunction, extern INT fact[])
- - cxxstandard.patch: drop -std=c++03 forced by upstream so the C++ code
+ - cxxstandard.patch: force -std=gnu++17 instead of upstream's -std=c++03
+ (C++03 no longer works with GCC 16's libstdc++, Boost 1.90 and Eigen 5,
+ while the compiler default C++23 breaks the bundled LEMON library which
+ still uses std::allocator::construct/destroy)
+ - byte.patch: use uint8_t instead of the bare 'byte' type (collides with
+ std::byte under C++17) in gff.cpp, codons.cpp and gdna.cpp
Closes: #1114084
* d/watch:
- version=5
@@ -18,8 +23,16 @@ cufflinks (2.2.1+git20190706.dc3b0cb+dfsg-1) UNRELEASED; urgency=medium
* Build-Depends:
- libboost-filesystem-dev
- s/dh-python/dh-sequence-python3/
-
- -- Andreas Tille <tille at debian.org> Tue, 02 Dec 2025 11:55:20 +0100
+ * Fix doc installation
+ * Reformat the Last-Update date as ISO YYYY-MM-DD.
+ * Remove redundant Priority: optional from source stanza.
+ * Update standards version to 4.7.4, no changes needed.
+ * Reflow Uploaders field (cme)
+ * Drop 'Rules-Requires-Root: no' from d/control (routine-update)
+ * debputy lint --auto-fix (routine-update)
+ * Adapt build to debhelper-compat = 14
+
+ -- Andreas Tille <tille at debian.org> Mon, 21 Sep 2026 10:18:12 +0200
cufflinks (2.2.1+dfsg.1-10) unstable; urgency=medium
=====================================
debian/control
=====================================
@@ -1,35 +1,39 @@
Source: cufflinks
+Standards-Version: 4.7.4
Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
-Uploaders: Alexandre Mestiashvili <mestia at debian.org>,
- Andreas Tille <tille at debian.org>,
- Charles Plessy <plessy at debian.org>
+Uploaders:
+ Alexandre Mestiashvili <mestia at debian.org>,
+ Andreas Tille <tille at debian.org>,
+ Charles Plessy <plessy at debian.org>,
Section: non-free/science
XS-Autobuild: yes
-Priority: optional
-Build-Depends: debhelper-compat (= 13),
- dh-sequence-python3,
- help2man,
- libboost-dev,
- libboost-filesystem-dev,
- libboost-serialization-dev,
- libboost-thread-dev,
- libbam-dev,
- zlib1g-dev,
- python3,
- libeigen3-dev
-Standards-Version: 4.7.0
+Build-Depends:
+ debhelper-compat (= 14),
+ dh-sequence-python3,
+ dh-sequence-single-binary,
+ help2man,
+ libboost-dev,
+ libboost-filesystem-dev,
+ libboost-serialization-dev,
+ libboost-thread-dev,
+ libbam-dev,
+ zlib1g-dev,
+ python3,
+ libeigen3-dev,
Vcs-Browser: https://salsa.debian.org/med-team/cufflinks
Vcs-Git: https://salsa.debian.org/med-team/cufflinks.git
Homepage: https://cufflinks.cbcb.umd.edu
-Rules-Requires-Root: no
Package: cufflinks
Architecture: any
-Depends: ${shlibs:Depends},
- ${misc:Depends},
- ${python3:Depends}
-Recommends: gffread
-Enhances: tophat
+Depends:
+ ${shlibs:Depends},
+ ${misc:Depends},
+ ${python3:Depends},
+Recommends:
+ gffread,
+Enhances:
+ tophat,
Description: Transcript assembly, differential expression and regulation for RNA-Seq
Cufflinks assembles transcripts, estimates their abundances, and
tests for differential expression and regulation in RNA-Seq samples.
=====================================
debian/copyright
=====================================
@@ -19,7 +19,7 @@ Comment: license: non-free
.
The python script cuffmerge is also under the BSL-1.0, and can be executed
with Python without third-party libraries.
-Disclamer: This package is not part of the Debian operating system.
+Disclaimer: This package is not part of the Debian operating system.
The cufflinks source and binary Debian packages are part of the “non-free” area
in our archive. The packages in this area are not part of the Debian system,
although they have been configured for use with Debian. We nevertheless support
=====================================
debian/docs → debian/cufflinks.docs
=====================================
@@ -1,2 +1,2 @@
-README
+README.md
AUTHORS
=====================================
debian/cufflinks.install
=====================================
@@ -0,0 +1 @@
+usr
=====================================
debian/patches/0001-fix_spelling.patch
=====================================
@@ -1,6 +1,7 @@
From: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
-Last-Update: Tue, 05 Sep 2017 22:08:24 +0200
+Last-Update: 2017-09-05
Description: Fix spelling
+
--- a/src/locfit/arith.c
+++ b/src/locfit/arith.c
@@ -410,7 +410,7 @@ double (*f)();
=====================================
debian/patches/0002-bam2samtools.patch
=====================================
@@ -1,14 +1,26 @@
-From: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
-Date: Fri, 2 Dec 2011 21:21:17 +0000
-Subject: bam2samtools
+From: Andreas Tille <tille at debian.org>
+Last-Update: 2026-09-21
+Subject: Make sure bam.h will be found
+ Debian's libbam-dev installs the (legacy) samtools headers under
+ /usr/include/samtools/ rather than /usr/include/bam/. Adapt the configure
+ test and the library detection loop so that a plain -lbam is linked.
----
- ax_bam.m4 | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
---- a/ax_bam.m4
-+++ b/ax_bam.m4
-@@ -114,7 +114,7 @@ if test "x$want_bam" = "xyes"; then
+--- a/ax_bam.m4 2026-09-21 09:16:32.372000000 +0200
++++ b/ax_bam.m4 2026-09-21 09:16:32.400000000 +0200
+@@ -94,6 +94,12 @@
+ BAM_LIB_PARAM="-lbam"
+ break;
+ fi
++ if test -d "$ac_bam_path_tmp/include/samtools" && test -r "$ac_bam_path_tmp/include/samtools"; then
++ BAM_LDFLAGS="-L$ac_bam_path_tmp/lib"
++ BAM_CPPFLAGS="-I$ac_bam_path_tmp/include"
++ BAM_LIB_PARAM="-lbam"
++ break;
++ fi
+ done
+
+ dnl overwrite ld flags if we have required special directory with
+@@ -114,7 +120,7 @@
AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
=====================================
debian/patches/byte.patch
=====================================
@@ -1,3 +1,37 @@
+Description: Fix build with GCC 16 (C++17): use uint8_t instead of bare 'byte'
+ Upstream defines 'typedef unsigned char byte;' in GBase.h, which collides
+ with std::byte from <cstddef> under the newer C++ standards used by the
+ GCC 16 toolchain. Drop the typedef and use uint8_t instead. Also fix a
+ few old-style declarations in the bundled locfit C code.
+Bug-Debian: https://bugs.debian.org/1114084
+Author: Andreas Tille <tille at debian.org>
+ assisted by https://inference.debian.net/ Model DeepSeek V4 Flash 0731
+Last-Update: 2026-09-21
+
+--- a/src/codons.cpp
++++ b/src/codons.cpp
+@@ -48,9 +48,9 @@
+
+ unsigned short packCodon(char n1, char n2, char n3) {
+ //assumes they are uppercase already!
+- byte b1=n1-'A';
+- byte b2=n2-'A';
+- byte b3=n3-'A';
++ uint8_t b1=n1-'A';
++ uint8_t b2=n2-'A';
++ uint8_t b3=n3-'A';
+ b1 |= (b2 << 5);
+ b2 = (b2 >> 3) | (b3 << 2);
+ return ( ((unsigned short)b2) << 8) + b1;
+@@ -68,7 +68,7 @@
+
+
+ char Codon::translate() {
+- for (byte i=0;i<3;i++) nuc[i]=toupper(nuc[i]);
++ for (uint8_t i=0;i<3;i++) nuc[i]=toupper(nuc[i]);
+ unsigned short aacode=packCodon(nuc[0], nuc[1], nuc[2]);
+ return codonTable[aacode];
+ }
--- a/src/GBase.h
+++ b/src/GBase.h
@@ -15,6 +15,7 @@
@@ -8,7 +42,7 @@
#if defined __WIN32__ || defined WIN32 || defined _WIN32 || defined _WIN32_
#ifndef __WIN32__
-@@ -71,7 +72,6 @@ typedef int16_t int16;
+@@ -71,7 +72,6 @@
typedef uint16_t uint16;
typedef unsigned char uchar;
@@ -16,9 +50,66 @@
#ifndef MAXUINT
#define MAXUINT ((unsigned int)-1)
+--- a/src/gdna.cpp
++++ b/src/gdna.cpp
+@@ -11,8 +11,8 @@
+ #define G_2BIT 2 // 10
+ #define T_2BIT 3 // 11
+
+-static byte ntCompTable[256];
+-static byte nt2bit[256]; //maps any character to a 2bit base value (with N = A)
++static uint8_t ntCompTable[256];
++static uint8_t nt2bit[256]; //maps any character to a 2bit base value (with N = A)
+ static char v_2bit2nt[4] = {'A','C','G','T'};
+
+ //----------------------
+@@ -21,9 +21,9 @@
+
+ //----------------------
+
+-byte gdna2bit(char* &nt, int n) {
++uint8_t gdna2bit(char* &nt, int n) {
+ // Pack n bases into a byte (n can be 1..4)
+-byte out = 0;
++uint8_t out = 0;
+ while (n && *nt) {
+ n--;
+ out <<= 2;
+@@ -43,7 +43,7 @@
+ return ntCompTable[(int)c];
+ }
+
+-char g2bit2base(byte v2bit) {
++char g2bit2base(uint8_t v2bit) {
+ return v_2bit2nt[v2bit & 0x03 ];
+ }
+
+--- a/src/gdna.h
++++ b/src/gdna.h
+@@ -9,7 +9,7 @@
+
+ bool gDnaInit();
+
+-byte gdna2bit(char* &nt, int n=4); //pack n bases into a byte (n can be 1..4)
+-char g2bit2base(byte v2bit); //convert the 2-bit value into 'A', 'C', 'G' or 'T'
++uint8_t gdna2bit(char* &nt, int n=4); //pack n bases into a byte (n can be 1..4)
++char g2bit2base(uint8_t v2bit); //convert the 2-bit value into 'A', 'C', 'G' or 'T'
+
+ #endif
+--- a/src/gff.cpp
++++ b/src/gff.cpp
+@@ -21,7 +21,7 @@
+ const uint gfo_flag_DISCARDED = 0x00000100;
+ const uint gfo_flag_LST_KEEP = 0x00000200;
+ const uint gfo_flag_LEVEL_MSK = 0x00FF0000;
+-const byte gfo_flagShift_LEVEL = 16;
++const uint8_t gfo_flagShift_LEVEL = 16;
+
+ void gffnames_ref(GffNames* &n) {
+ if (n==NULL) n=new GffNames();
--- a/src/gff.h
+++ b/src/gff.h
-@@ -42,7 +42,7 @@ extern const uint gfo_flag_DISCARDED; //
+@@ -42,7 +42,7 @@
extern const uint gfo_flag_LST_KEEP; //GffObj from GffReader::gflst is to be kept (not deallocated)
//when GffReader is destroyed
extern const uint gfo_flag_LEVEL_MSK; //hierarchical level: 0 = no parent
@@ -27,7 +118,7 @@
extern bool gff_show_warnings;
-@@ -508,18 +508,18 @@ public:
+@@ -508,18 +508,18 @@
if (v) flags |= gfo_flag_CHILDREN_PROMOTED;
else flags &= ~gfo_flag_CHILDREN_PROMOTED;
}
@@ -64,7 +155,7 @@
double acri(double lk, double t0, double t2, double pen)
--- a/src/locfit/lffuns.h
+++ b/src/locfit/lffuns.h
-@@ -167,6 +167,7 @@ void strip(char *z);
+@@ -167,6 +167,7 @@
/* wdiag.c */
INT wdiagp(lfit *lf, design *des, double *lx, INT deg, INT ty, INT exp);
@@ -72,7 +163,7 @@
INT procvhatm(design *des, lfit *lf, INT v);
void cwdiag(vari *v);
-@@ -227,10 +228,10 @@ double rpois();
+@@ -227,10 +228,10 @@
void rseed(char *seed);
/* readfile.c */
@@ -87,21 +178,21 @@
#include "vari.hpp"
--- a/src/locfit/local.h
+++ b/src/locfit/local.h
-@@ -138,10 +138,9 @@ extern double Rf_lgammafn();
+@@ -138,11 +138,9 @@
#define ISWAP(a,b) { int zz; zz = a; a = b; b = zz; }
#else
#define ISWAP(a,b) { INT zz; zz = a; a = b; b = zz; }
-extern INT lf_error;
#endif
--extern INT lf_error;
-+INT lf_error;
-
+ extern INT lf_error;
+-
double lf_exp(double x);
+ #endif /* I_LF_H */
--- a/src/locfit/vari.hpp
+++ b/src/locfit/vari.hpp
-@@ -20,8 +20,6 @@ extern "C"
+@@ -20,8 +20,6 @@
vari *findvar(varname name, int err, int* n);
vari *growvar(vari* vold, int n);
void *viptr(vari* v, int i);
=====================================
debian/patches/cxxstandard.patch
=====================================
@@ -1,18 +1,22 @@
-Description: Do not force -std=c++03 for the C++ code
+Description: Force a sane C++ standard instead of upstream's -std=c++03
The upstream configure forced the C++ compiler to C++03, which is no longer
accepted by the system headers shipped with GCC 16 (libstdc++ requires
- C++11), Boost 1.90 and Eigen 5. Build the C++ code with the compiler
- default instead, which is what the previous Debian versions did.
+ C++11), Boost 1.90 and Eigen 5. Compiling with the compiler default
+ (C++23 on GCC 16) on the other hand breaks the bundled LEMON graph
+ library, which still uses std::allocator::construct/destroy (removed in
+ C++20). Force -std=gnu++17, which satisfies all the requirements and
+ matches what the previous Debian versions were built with.
Bug-Debian: https://bugs.debian.org/1114084
Author: Andreas Tille <tille at debian.org>
+ assisted by https://inference.debian.net/ Model DeepSeek V4 Flash 0731
Last-Update: 2026-09-21
--- a/configure.ac
+++ b/configure.ac
-@@ -113,5 +113,5 @@ CFLAGS="${generic_CFLAGS} ${ext_CFLAGS}
+@@ -113,5 +113,5 @@ CFLAGS="${generic_CFLAGS} ${ext_CFLAGS} ${user_CFLAGS} ${debug_CFLAGS} ${OPENMP_CFLAGS}"
CFLAGS="${generic_CFLAGS} ${ext_CFLAGS} ${user_CFLAGS} ${debug_CFLAGS} ${OPENMP_CFLAGS}"
-CXXFLAGS="$CFLAGS -std=c++03"
-+CXXFLAGS="$CFLAGS"
++CXXFLAGS="$CFLAGS -std=gnu++17"
CXXFLAGS="${CXXFLAGS} ${BOOST_CPPFLAGS} ${BAM_CPPFLAGS} ${EIGEN_CPPFLAGS}"
user_LDFLAGS="$LDFLAGS"
LDFLAGS="${ext_LDFLAGS} ${user_LDFLAGS}"
=====================================
debian/patches/gcc15.patch
=====================================
@@ -1,7 +1,10 @@
Author: Andreas Tille <tille at debian.org>
+ assisted by https://inference.debian.net/ Model DeepSeek V4 Flash 0731
Last-Update: 2026-09-20
Bug-Debian: https://bugs.debian.org/1114084
Description: Build with gcc-15
+ It might make actually sense to provide a separate locfit library under the
+ new free license which was used in the r-cran-locfit package.
diff --git a/src/locfit/adap.c b/src/locfit/adap.c
index eb1b48c..82cbd62 100644
@@ -668,7 +671,7 @@ index f4fe621..605e99b 100644
/* locfit.c or parfit.c (most) */
-extern int ident, locfit(), lf_iter();
-+int ident;
++extern int ident;
+int locfit(lfit *lf, design *des, double h, int noit);
+int lf_iter();
=====================================
debian/patches/lib_eigen.patch
=====================================
@@ -1,5 +1,5 @@
Author: Jakub Wilk <jwilk at debian.org>
-Last-Update: Tue, 12 Jul 2016 13:10:44 +0200
+Last-Update: 2016-07-12
Description: For some reason Eigen thinks that v.colwise().sum() cannot be
treated as a one-dimensional vector, which smells like a bug in Eigen.
Comment: Related upstream bug
=====================================
debian/patches/no_svnversion.patch
=====================================
@@ -1,7 +1,7 @@
Description: Prevent that AM_INIT_AUTOMAKE is called twice
Bug-Debian: https://bugs.debian.org/998241
Author: Andreas Tille <tille at debian.org>
-Last-Update: Tue, 02 Nov 2021 12:00:24 +0100
+Last-Update: 2021-11-02
--- a/configure.ac
+++ b/configure.ac
=====================================
debian/rules
=====================================
@@ -3,8 +3,8 @@
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
include /usr/share/dpkg/default.mk
pkg := cufflinks
-mandir := $(CURDIR)/debian/$(pkg)/usr/share/man/man1
-bindir := $(CURDIR)/debian/$(pkg)/usr/bin
+mandir := $(CURDIR)/debian/tmp/usr/share/man/man1
+bindir := $(CURDIR)/debian/tmp/usr/bin
# build the legacy C code with -std=gnu11 so that old-style
# declarations "extern f();" keep their pre-C23 meaning of
View it on GitLab: https://salsa.debian.org/med-team/cufflinks/-/compare/8b8b6fe92ebec0e35057d1a95460c557d43f3f9f...fdda132b06eafed065ba7f89ab0ab072ace7e176
--
View it on GitLab: https://salsa.debian.org/med-team/cufflinks/-/compare/8b8b6fe92ebec0e35057d1a95460c557d43f3f9f...fdda132b06eafed065ba7f89ab0ab072ace7e176
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20260921/22df1c7d/attachment-0001.htm>
More information about the debian-med-commit
mailing list