commit:     18161910b80ae92b3ba90f082d54097add1a1bce
Author:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
AuthorDate: Sat Jul  5 21:58:03 2025 +0000
Commit:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
CommitDate: Sat Jul  5 21:58:03 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=18161910

media-gfx/mcomix: fix startup failure with python 3.13

Closes: https://bugs.gentoo.org/959303
Signed-off-by: Bernard Cafarelli <voyageur <AT> gentoo.org>

 media-gfx/mcomix/files/mcomix-3.1.0-py13.patch | 29 ++++++++++++
 media-gfx/mcomix/mcomix-3.1.0-r1.ebuild        | 61 ++++++++++++++++++++++++++
 2 files changed, 90 insertions(+)

diff --git a/media-gfx/mcomix/files/mcomix-3.1.0-py13.patch 
b/media-gfx/mcomix/files/mcomix-3.1.0-py13.patch
new file mode 100644
index 000000000000..bb133bb57c07
--- /dev/null
+++ b/media-gfx/mcomix/files/mcomix-3.1.0-py13.patch
@@ -0,0 +1,29 @@
+From a4092eb4f2927ce5d600444d0b10c308148ca34d Mon Sep 17 00:00:00 2001
+From: aaku <a...@users.sourceforge.net>
+Date: Wed, 25 Jun 2025 11:35:13 +0200
+Subject: [PATCH] Move multiprocessing initialization out of functions
+
+Fixes "context has already been set" error
+---
+ mcomix/__main__.py | 4 ++--
+
+diff --git a/mcomix/__main__.py b/mcomix/__main__.py
+index bc307bd..b32dc36 100644
+--- a/mcomix/__main__.py
++++ b/mcomix/__main__.py
+@@ -21,10 +21,10 @@ from .run import run
+ 
+ 
+ def main() -> None:
+-    mp.freeze_support()
+-    mp.set_start_method('spawn')
+     run()
+ 
+ 
+ if __name__ == '__main__':
++    mp.freeze_support()
++    mp.set_start_method('spawn')
+     main()
+-- 
+2.50.0
+

diff --git a/media-gfx/mcomix/mcomix-3.1.0-r1.ebuild 
b/media-gfx/mcomix/mcomix-3.1.0-r1.ebuild
new file mode 100644
index 000000000000..cfa65c28d449
--- /dev/null
+++ b/media-gfx/mcomix/mcomix-3.1.0-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..13} )
+inherit desktop distutils-r1 optfeature xdg
+
+DESCRIPTION="GTK image viewer for comic book archives"
+HOMEPAGE="https://mcomix.sourceforge.net";
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz";
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}
+       >=dev-python/pillow-6.0.0[${PYTHON_USEDEP}]
+       >=dev-python/pycairo-1.16.0[${PYTHON_USEDEP}]
+       >=dev-python/pygobject-3.36.0[${PYTHON_USEDEP}]
+       media-libs/libjpeg-turbo:0
+       x11-libs/gtk+:3[introspection]"
+BDEPEND="sys-devel/gettext"
+# Most tests are quite old and do not run
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${P}-py13.patch )
+
+src_prepare() {
+       default
+
+       # Uncompress man page
+       gunzip share/man/man1/mcomix.1.gz || die
+}
+
+src_install() {
+       distutils-r1_src_install
+
+       # Application meta files are not installed automatically anymore
+       domenu share/applications/*.desktop
+       local x
+       for x in 16 22 24 32 48 256 scalable; do
+               doicon -s ${x} share/icons/hicolor/${x}*/*
+       done
+       doman share/man/man1/mcomix.1
+       insinto /usr/share/metainfo
+       doins share/metainfo/*.xml
+       insinto /usr/share/mime/packages
+       doins share/mime/packages/*.xml
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+
+       optfeature "RAR (.cbr) archives" app-arch/unrar
+       optfeature "7Zip archives" app-arch/p7zip
+       optfeature "LHA/LZA archives" app-arch/lha
+       optfeature "PDF files" app-text/mupdf
+}

Reply via email to