summaryrefslogtreecommitdiff
path: root/dev-python/capturer
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /dev-python/capturer
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'dev-python/capturer')
-rw-r--r--dev-python/capturer/Manifest1
-rw-r--r--dev-python/capturer/capturer-3.0-r1.ebuild30
-rw-r--r--dev-python/capturer/files/capturer-3.0-py3.14.patch52
-rw-r--r--dev-python/capturer/metadata.xml9
4 files changed, 92 insertions, 0 deletions
diff --git a/dev-python/capturer/Manifest b/dev-python/capturer/Manifest
new file mode 100644
index 000000000000..124293ce0009
--- /dev/null
+++ b/dev-python/capturer/Manifest
@@ -0,0 +1 @@
+DIST capturer-3.0.tar.gz 18146 BLAKE2B 345313fa9e58c4e0121c795bd99606f99e46459215ed239da56586da8f8ffab35d97f0bf655258abe9cc45d4abaf7cb0ad2e76054d8c1781be2531ca01b04381 SHA512 3c83c0eade27380304347bdc93df392b2cb84c084e50693993dcca5fd572b8f92d31de43b4a2ddd0a0e8c7eb097629127e86a4860918c507d13b0e2979a04098
diff --git a/dev-python/capturer/capturer-3.0-r1.ebuild b/dev-python/capturer/capturer-3.0-r1.ebuild
new file mode 100644
index 000000000000..1b8fc19488ea
--- /dev/null
+++ b/dev-python/capturer/capturer-3.0-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1 pypi
+
+DESCRIPTION="Easily capture stdout/stderr of the current process and subprocesses"
+HOMEPAGE="https://capturer.readthedocs.io/en/latest/
+ https://pypi.org/project/capturer/
+ https://github.com/xolox/python-capturer"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~x86"
+
+RDEPEND="dev-python/humanfriendly[${PYTHON_USEDEP}]"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0-py3.14.patch
+)
+
+distutils_enable_sphinx docs
+distutils_enable_tests pytest
+
+python_test() {
+ epytest ${PN}/tests.py
+}
diff --git a/dev-python/capturer/files/capturer-3.0-py3.14.patch b/dev-python/capturer/files/capturer-3.0-py3.14.patch
new file mode 100644
index 000000000000..c2d8fa16aa8d
--- /dev/null
+++ b/dev-python/capturer/files/capturer-3.0-py3.14.patch
@@ -0,0 +1,52 @@
+https://github.com/xolox/python-capturer/issues/15
+https://github.com/xolox/python-capturer/pull/16
+
+From 3d0a9a040ecaa78ce2d39ec76ff5084ee7be6653 Mon Sep 17 00:00:00 2001
+From: Scott K Logan <logans@cottsay.net>
+Date: Wed, 16 Jul 2025 15:58:09 -0500
+Subject: [PATCH] Prefer multiprocessing 'fork' start method if available
+
+The default multiprocessing start method for Linux changed in Python
+3.14 from 'fork' to 'forkserver'. Because capturer relies on sharing
+file descriptors, only 'fork' can be used. Prefer that start method
+specifically (if the platform supports it).
+---
+ capturer/__init__.py | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/capturer/__init__.py b/capturer/__init__.py
+index 407ba26..9f98950 100644
+--- a/capturer/__init__.py
++++ b/capturer/__init__.py
+@@ -136,6 +136,10 @@ class MultiProcessHelper(object):
+ def __init__(self):
+ """Initialize a :class:`MultiProcessHelper` object."""
+ self.processes = []
++ try:
++ self.context = multiprocessing.get_context('fork')
++ except ValueError:
++ self.context = multiprocessing.get_context()
+
+ def start_child(self, target):
+ """
+@@ -146,8 +150,8 @@ def start_child(self, target):
+ :class:`multiprocessing.Event` to be set when the child
+ process has finished initialization.
+ """
+- started_event = multiprocessing.Event()
+- child_process = multiprocessing.Process(target=target, args=(started_event,))
++ started_event = self.context.Event()
++ child_process = self.context.Process(target=target, args=(started_event,))
+ self.processes.append(child_process)
+ child_process.daemon = True
+ child_process.start()
+@@ -309,7 +313,7 @@ def start_capture(self):
+ # Capture (and most likely relay) stdout/stderr as separate streams.
+ if self.relay:
+ # Start the subprocess to relay output.
+- self.output_queue = multiprocessing.Queue()
++ self.output_queue = self.context.Queue()
+ self.start_child(self.merge_loop)
+ else:
+ # Disable relaying of output.
+
diff --git a/dev-python/capturer/metadata.xml b/dev-python/capturer/metadata.xml
new file mode 100644
index 000000000000..acfe7097587e
--- /dev/null
+++ b/dev-python/capturer/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>