From ce971c1ba516bb90137c1cdc3e47ce6ba62b4c32 Mon Sep 17 00:00:00 2001 From: Dave Cantrell Date: Jan 21 2026 18:26:25 +0000 Subject: Use open() on Python >= 3.14 instead of codecs.open() Starting with Python 3.14, codecs.open() is deprecated in favor of open(). But add support for that while not breaking support for previous Python versions. Signed-off-by: Dave Cantrell --- diff --git a/rpmfluff/rpmbuild.py b/rpmfluff/rpmbuild.py index b70484f..2a560c4 100644 --- a/rpmfluff/rpmbuild.py +++ b/rpmfluff/rpmbuild.py @@ -22,6 +22,7 @@ import shutil import subprocess import tempfile import datetime +import sys from .check import CheckTrigger, CheckSourceFile, CheckPayloadFile from .samples import hello_world, simple_library_source, sample_man_page, \ @@ -316,7 +317,10 @@ class SimpleRpmBuild(RpmBuild): specFileName = os.path.join(tmpDir, "%s.spec" % self.specbasename) else: specFileName = os.path.join(tmpDir, "%s.spec"%self.name) - specFile = codecs.open(specFileName, "wb", self.specfileEncoding) + if sys.version_info[0] >= 3 and sys.version_info[1] >= 14: + specFile = open(specFileName, mode="w", encoding=self.specfileEncoding) + else: + specFile = codecs.open(specFileName, "wb", self.specfileEncoding) specFile.write(self.header) specFile.write("Summary: %s\n"%self.basePackage.summary) specFile.write("Name: %s\n"%self.name) diff --git a/rpmfluff/sourcefile.py b/rpmfluff/sourcefile.py index dd4d59a..58f747a 100644 --- a/rpmfluff/sourcefile.py +++ b/rpmfluff/sourcefile.py @@ -15,6 +15,7 @@ import codecs import os.path +import sys class SourceFile: def __init__(self, sourceName, content, encoding='utf8'): @@ -27,7 +28,10 @@ class SourceFile: if isinstance(self.content, bytes): dstFile = open(dstFileName, "wb") else: - dstFile = codecs.open(dstFileName, "wb", self.encoding) + if sys.version_info[0] >= 3 and sys.version_info[1] >= 14: + dstFile = open(dstFileName, mode="w", encoding=self.encoding) + else: + dstFile = codecs.open(dstFileName, "wb", self.encoding) return dstFile def write_file(self, sourcesDir):