diff --git a/.gitignore b/.gitignore index e65a0f1..7827728 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ distcc-2.18.3.tar.bz2 /distcc-3.3.2.tar.gz /distcc-3.3.3.tar.gz /distcc-3.3.5.tar.gz +/distcc-3.4.tar.gz diff --git a/479.patch b/479.patch new file mode 100644 index 0000000..0f55826 --- /dev/null +++ b/479.patch @@ -0,0 +1,55 @@ +From 83e030a852daf1d4d8c906e46f86375d421b781e Mon Sep 17 00:00:00 2001 +From: hephooey +Date: Sun, 15 Jan 2023 15:43:50 -0500 +Subject: [PATCH] Replace int with Py_ssize_t for distcc pump extension + +Defining PY_SSIZE_T_CLEAN is required since python 3.10, and I have to +modify the type of length to match it. Otherwise functions like +OsPathExists will always return False. + +The PY_SSIZE_T_CLEAN macro is supported at least back to python 3.5 +according to docs.python.org, that is why I included it without any +python version conditions +--- + .../c_extensions/distcc_pump_c_extensions_module.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/include_server/c_extensions/distcc_pump_c_extensions_module.c b/include_server/c_extensions/distcc_pump_c_extensions_module.c +index 763dd425..a4c6e9eb 100644 +--- a/include_server/c_extensions/distcc_pump_c_extensions_module.c ++++ b/include_server/c_extensions/distcc_pump_c_extensions_module.c +@@ -21,6 +21,7 @@ + /* distcc_pump_c_extensions_module.c -- Python bindings for distcc-pump + * extensions */ + ++#define PY_SSIZE_T_CLEAN + #include "Python.h" + + static const char *version = ".01"; +@@ -56,7 +57,7 @@ static PyObject * + CompressLzo1xAlloc(PyObject *dummy, PyObject *args) { + PyObject *string_object; + const char *in_buf; +- int in_len; ++ Py_ssize_t in_len; + char *out_buf; + size_t out_len; + UNUSED(dummy); +@@ -241,7 +242,7 @@ static /* const */ char OsPathExists_doc__[] = + static PyObject * + OsPathExists(PyObject *dummy, PyObject *args) { + const char *in; +- int len; ++ Py_ssize_t len; + int res; + + struct stat buf; +@@ -275,7 +276,7 @@ static /* const */ char OsPathIsFile_doc__[] = + static PyObject * + OsPathIsFile(PyObject *dummy, PyObject *args) { + const char *in; +- int len; ++ Py_ssize_t len; + int res; + + struct stat buf; diff --git a/crash.patch b/crash.patch new file mode 100644 index 0000000..5fb26e1 --- /dev/null +++ b/crash.patch @@ -0,0 +1,11 @@ +--- src/compile.c 2021-05-11 13:26:29.000000000 -0400 ++++ src/compile.c 2024-01-15 16:45:00.558851171 -0500 +@@ -584,7 +584,7 @@ + return -ENOENT; + + +- newcmd_len = strlen(target_with_vendor) + 1 + strlen(argv[0] + 1); ++ newcmd_len = strlen(target_with_vendor) + 1 + strlen(argv[0]) + 1; + newcmd = malloc(newcmd_len); + if (!newcmd) + return -ENOMEM; diff --git a/distcc.spec b/distcc.spec index f11b806..113b0ed 100644 --- a/distcc.spec +++ b/distcc.spec @@ -1,24 +1,27 @@ -%define _hardened_build 1 +%global _lto_cflags %nil Name: distcc -Version: 3.3.5 -Release: 5%{?dist} +Version: 3.4 +Release: 12%{?dist} Summary: Distributed C/C++ compilation -License: GPLv2+ +License: GPL-2.0-or-later URL: https://github.com/distcc/distcc Source0: https://github.com/distcc/distcc/archive/v%{version}/%{name}-%{version}.tar.gz Source1: hosts.sample Source2: distccd.service Patch0: distcc-localhost.patch +Patch1: crash.patch +Patch2: 479.patch BuildRequires: automake BuildRequires: autoconf BuildRequires: which BuildRequires: libtool BuildRequires: popt-devel -BuildRequires: gtk2-devel +BuildRequires: gtk3-devel BuildRequires: pango-devel BuildRequires: python3-devel +Buildrequires: python3-setuptools BuildRequires: desktop-file-utils BuildRequires: avahi-devel BuildRequires: krb5-devel @@ -43,7 +46,7 @@ This package contains the Gnome frontend of the distcc monitoring tool. %package server Summary: Server for distributed C/C++ compilation -License: GPLv2+ +License: GPL-2.0-or-later Requires: %{name}%{?_isa} = %{version}-%{release} %{?systemd_requires} @@ -54,7 +57,9 @@ This package contains the compilation server needed to use %{name}. %prep %setup -q -%patch0 -p0 +%patch -P 0 -p0 +%patch -P 1 -p0 +%patch -P 2 -p1 %build export PYTHON='/usr/bin/python3' @@ -138,6 +143,72 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/* %dir /usr/lib/gcc-cross %changelog +* Fri Sep 19 2025 Python Maint - 3.4-12 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 3.4-11 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Wed Jul 23 2025 Fedora Release Engineering - 3.4-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Jun 02 2025 Python Maint - 3.4-9 +- Rebuilt for Python 3.14 + +* Thu Jan 16 2025 Fedora Release Engineering - 3.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Oct 21 2024 Gwyn Ciesla - 3.4-7 +- Patch for Py_ssize_t + +* Wed Jul 17 2024 Fedora Release Engineering - 3.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 3.4-5 +- Rebuilt for Python 3.13 + +* Tue Feb 13 2024 Gwyn Ciesla - 3.4-4 +- Disable LTO to fix distccmon-gnome crash, 2263992. + +* Wed Jan 24 2024 Fedora Release Engineering - 3.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 3.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 05 2024 Gwyn Ciesla - 3.4-1 +- 3.4 + +* Wed Jul 19 2023 Fedora Release Engineering - 3.3.5-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 3.3.5-14 +- Rebuilt for Python 3.12 + +* Tue Mar 07 2023 Gwyn Ciesla - 3.3.5-13 +- migrated to SPDX license + +* Thu Jan 19 2023 Fedora Release Engineering - 3.3.5-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Dec 21 2022 Gwyn Ciesla - 3.3.5-11 +- BR setuptools. + +* Thu Jul 21 2022 Fedora Release Engineering - 3.3.5-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 3.3.5-9 +- Rebuilt for Python 3.11 + +* Thu Jan 20 2022 Fedora Release Engineering - 3.3.5-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 3.3.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 3.3.5-6 +- Rebuilt for Python 3.10 + * Wed Mar 24 2021 Gwyn Ciesla - 3.3.5-5 - Fix desktop file icon path. diff --git a/sources b/sources index 1cfd511..1f53dc1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (distcc-3.3.5.tar.gz) = 7db03fef5c3d1d829a95da36e8ccb6aa618cf27f9304f5755b23ff5b0a838e4646ce258e782d1a0f41bef8421caa031f18f2f07d7334ec8a908d43e8dd523b61 +SHA512 (distcc-3.4.tar.gz) = aa6018326da8aa73b40479471c0c26d752ea17b46b40caa55662885e4d67a920eb2e33f0cceec9d1738050a069660a4be1175448c0ad9762c7ea9527f556a02b