[From nobody Wed Sep  9 13:21:06 2026
Received: (at submit) by bugs.debian.org; 6 Sep 2026 18:13:18 +0000
X-Spam-Checker-Version: SpamAssassin 4.0.1-bugs.debian.org_2005_01_02
 (2024-03-25) on buxtehude.debian.org
X-Spam-Level: 
X-Spam-Status: No, score=-118.2 required=4.0 tests=ALL_TRUSTED,BAYES_00,
 BODY_INCLUDES_PACKAGE,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,
 DKIM_VALID_AU,DKIM_VALID_EF,FROMDEVELOPER,HAS_PACKAGE,SPF_HELO_NONE,
 SPF_PASS,USER_IN_DKIM_WELCOMELIST autolearn=ham autolearn_force=no
 version=4.0.1-bugs.debian.org_2005_01_02
X-Spam-Bayes: score:0.0000 Tokens: new, 40; hammy, 150; neutral, 81; spammy,
 0. spammytokens:
 hammytokens:0.000-+--Hx-spam-relays-external:sk:stravin,
 0.000-+--H*RT:sk:stravin, 0.000-+--Hx-spam-relays-external:311,
 0.000-+--H*RT:311, 0.000-+--H*RT:108
Return-path: &lt;maxy@debian.org&gt;
Received: from stravinsky.debian.org ([2001:41b8:202:deb::311:108]:35348)
 by buxtehude.debian.org with esmtps
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.96) (envelope-from &lt;maxy@debian.org&gt;) id 1x3HMk-003pa4-25
 for submit@bugs.debian.org; Sun, 06 Sep 2026 18:13:18 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; 
 s=smtpauto.stravinsky;
 h=X-Debian-User:Content-Type:MIME-Version:Message-ID:
 Subject:To:From:Date:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:
 Content-Description:In-Reply-To:References;
 bh=06SqLUw69LOK1N8rhDzWMvQa+zBZdzkTUhnC6gITh+o=; b=arfUQc2B0n69s6dIY2z4S3Vi66
 8QfHoXZciB3BcyOqazC7v9hcLOl+9VOsT/sLcgYAy9eVJnQfSZe/WaUoZ8uy2HjqaBCV2Z+f/jLVH
 WR/xceWwChZpaNN9oMxn5Gr2eKstLrX2DwYy290yQbpBFTFhz1yvtzhBdwVNbwNlgNMWKYJHlwMjS
 k5IN76NHA+kyipRWWJrQwdMa+8ZHSR+kDqOHWplAMz7hGCi6lZWGKBrAfaOA2wx2eENF5ei3AGO0Z
 G4MDkeL4GQZ/2NqAbWRcE7T/aYZ7SoBASDPLtItbgFubxX9rKORSFKVNKOOcRmv2S9ncIsWPD0YeW
 HiAOqQYg==;
Received: from authenticated-user by stravinsky.debian.org with esmtpsa
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.96) (envelope-from &lt;maxy@debian.org&gt;) id 1x3HMi-000v18-15
 for submit@bugs.debian.org; Sun, 06 Sep 2026 18:13:16 +0000
Date: Sun, 6 Sep 2026 20:13:15 +0200
From: Maximiliano Curia &lt;maxy@debian.org&gt;
To: submit@bugs.debian.org
Subject: python-skbio: FTBFS against python 3.15rc2
Message-ID: &lt;ap2tOyCfyd-31qk3@hecuba.gnuservers.com.ar&gt;
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=&quot;ZUmjth5SNflhaRHK&quot;
Content-Disposition: inline
X-Debian-User: maxy
Delivered-To: submit@bugs.debian.org

--ZUmjth5SNflhaRHK
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Disposition: inline

Package: src:python-skbio
Version: 0.7.3-1
User: debian-python@lists.debian.org
Usertags: python3.15
Tags: patch, ftbfs, forky, sid
Severity: important

Hi!

While rebuilding the python related packages against the Python 3.15rc2
version we found that python-skbio fails to build from source [1].

The error is:
&gt;       super(CompressedMixin, self).__init__(*args, **kwargs)
E       io.UnsupportedOperation: File or stream is not readable.

It seems that its open in write only instead of read only as the test
expects, I've created a patch that sets the explicit mode and solves the
problem.

I applied the fix in the sandbox [2] to be able to build the packages
that depend on python-skbio, please consider applying the patch to
support the upcoming 3.15 version.

Setting the severity to important for now. Once Python 3.15 is released,
it will be added to python3-defaults and this bug will become release
critical.

Happy hacking,

[1]: https://debusine.debian.net/debian/r-python-python3.15/artifact/4462291/
[2]: https://debusine.debian.net/debian/r-python-python3.15/

-- 
&quot;Can you imagine what I would do if I could do all I can?&quot; -- Sun Tzu
Saludos /\/\ /\ &gt;&lt; `/

--ZUmjth5SNflhaRHK
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename=fix-gzip-reader-mode.patch

Description: Explicitly specify mode=&quot;rb&quot; in GzipCompressor.get_reader
 GzipFile without explicit mode defaults to fileobj.mode (e.g. 'w+b' for
 temporary files), causing it to open for writing instead of reading.
Forwarded: not-needed
--- a/skbio/io/_iosources.py
+++ b/skbio/io/_iosources.py
@@ -215,7 +215,7 @@ class GzipCompressor(Compressor):
         return self.file.peek(2)[:2] == b&quot;\x1f\x8b&quot;
 
     def get_reader(self):
-        return gzip.GzipFile(fileobj=self.file)
+        return gzip.GzipFile(fileobj=self.file, mode=&quot;rb&quot;)
 
     def get_writer(self):
         return gzip.GzipFile(

--ZUmjth5SNflhaRHK--
]