From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 992161581EE for ; Mon, 31 Mar 2025 16:33:10 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 57F2E3430D6 for ; Mon, 31 Mar 2025 16:33:10 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 6BE391104B0; Mon, 31 Mar 2025 16:33:06 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 606E31104B0 for ; Mon, 31 Mar 2025 16:33:06 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 15DAF343134 for ; Mon, 31 Mar 2025 16:33:06 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 741BC1A3C for ; Mon, 31 Mar 2025 16:33:04 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1743438712.5a04eede34734659c7bf34fae34a1de4bb15babf.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/mypaint/ X-VCS-Repository: repo/gentoo X-VCS-Files: media-gfx/mypaint/mypaint-2.0.1-r4.ebuild X-VCS-Directories: media-gfx/mypaint/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 5a04eede34734659c7bf34fae34a1de4bb15babf X-VCS-Branch: master Date: Mon, 31 Mar 2025 16:33:04 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 0f35b253-2f44-4942-900a-b47c89368494 X-Archives-Hash: 7dac4144cddf35a5e193995a041f00f5 commit: 5a04eede34734659c7bf34fae34a1de4bb15babf Author: Sam James gentoo org> AuthorDate: Mon Mar 31 16:31:11 2025 +0000 Commit: Sam James gentoo org> CommitDate: Mon Mar 31 16:31:52 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a04eede media-gfx/mypaint: port to python-single-r1 The package isn't suitable for PEP517, as it installs data files and it simply happens to be written in Python, rather than intending to be imported and so on. Unfortunately, for the remaining PEP517 holdouts, there's little pressure upstream for them to port to a proper build system yet, as while setuptools deprecated the `setup.py` entrypoint some time ago, there's no removal in sight yet, so the only pressing side is on Gentoo's where we want to cleanup distutils-r1's support for that. It was arguably a mistake to really have these packages use distutils-r1 in the first place. The obvious workaround for now is to invoke setup.py manually w/ python-single-r1, and punt the question until setuptools removal of the entrypoint looks closer (at which time, other distros will be putting pressure on upstreams too). Of course, if at the time of such a setuptools change, the package is still not fixed, then we'd have to remove it. (In this case, upstream are preparing a port to Meson.) Bug: https://bugs.gentoo.org/836232 Closes: https://bugs.gentoo.org/909985 Closes: https://bugs.gentoo.org/927525 Signed-off-by: Sam James gentoo.org> media-gfx/mypaint/mypaint-2.0.1-r4.ebuild | 88 +++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/media-gfx/mypaint/mypaint-2.0.1-r4.ebuild b/media-gfx/mypaint/mypaint-2.0.1-r4.ebuild new file mode 100644 index 000000000000..b48b461f743e --- /dev/null +++ b/media-gfx/mypaint/mypaint-2.0.1-r4.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) + +inherit desktop edo python-single-r1 xdg + +DESCRIPTION="Fast and easy graphics application for digital painters" +HOMEPAGE="http://mypaint.app/" +SRC_URI="https://github.com/mypaint/${PN}/releases/download/v${PV}/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="openmp" +LANGS="cs de en_CA en_GB es fr hu id it ja ko nb nn_NO pl pt_BR ro ru sl sv uk zh_CN zh_TW" +# Relies on setup.py test (long-removed) and nose (also long-removed) +# See bug #927525 and https://github.com/mypaint/mypaint/issues/1191 +RESTRICT="test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/pygobject:3[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + >=dev-python/pycairo-1.4[${PYTHON_USEDEP}] + dev-python/protobuf[${PYTHON_USEDEP}] + ') + >=dev-libs/json-c-0.11:= + gnome-base/librsvg + media-gfx/mypaint-brushes:2.0 + media-libs/lcms:2 + >=media-libs/libmypaint-1.5.0[openmp?] + media-libs/libpng:= + sys-devel/gettext + llvm-runtimes/openmp + x11-libs/gdk-pixbuf[jpeg] + x11-libs/gtk+:3 +" +DEPEND="${RDEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + dev-lang/swig + sys-devel/gettext + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PN}-2.0.1-r1-build-system.patch + "${FILESDIR}"/${P}-GIL-hold.patch + "${FILESDIR}"/${P}-setuptools.patch + "${FILESDIR}"/${PN}-2.0.1-python3.11.patch +) + +src_compile() { + # --disable-openmp can't be passed to setup.py build, + # only setup.py build_ext. + # Trying to call build_ext then build and such fails. + # + # We just override the environment instead for simplicity. + local openmp=$(usex openmp '-fopenmp' '-fno-openmp') + + local -x OPENMP_CFLAG="${openmp}" OPENMP_LDFLAG="${openmp}" + edo ${EPYTHON} setup.py build +} + +src_install() { + edo ${EPYTHON} setup.py install --prefix="${EPREFIX}/usr" --root="${D}" + python_fix_shebang "${ED}"/usr/bin + python_optimize + python_optimize "${ED}/usr/lib/mypaint" + einstalldocs + + newicon pixmaps/${PN}_logo.png ${PN}.png + + local lang= + for lang in ${LANGS}; do + if ! has ${lang} ${LINGUAS}; then + rm -rf "${ED}"/usr/share/locale/${lang} || die + fi + done +}