From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 61148158089 for ; Sun, 24 Sep 2023 08:02:49 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A9F632BC014; Sun, 24 Sep 2023 08:02:48 +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 pigeon.gentoo.org (Postfix) with ESMTPS id 882D72BC014 for ; Sun, 24 Sep 2023 08:02:48 +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)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 9D0A9340906 for ; Sun, 24 Sep 2023 08:02:47 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 2498310AB for ; Sun, 24 Sep 2023 08:02:46 +0000 (UTC) From: "Miroslav Šulc" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Miroslav Šulc" Message-ID: <1695542556.8cad1d78982a56aa4f57a009fb52c93282c085b4.fordfrog@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-office/scribus/, app-office/scribus/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: app-office/scribus/Manifest app-office/scribus/files/scribus-1.5.8-python-3.12.patch app-office/scribus/scribus-1.5.8-r6.ebuild X-VCS-Directories: app-office/scribus/files/ app-office/scribus/ X-VCS-Committer: fordfrog X-VCS-Committer-Name: Miroslav Šulc X-VCS-Revision: 8cad1d78982a56aa4f57a009fb52c93282c085b4 X-VCS-Branch: master Date: Sun, 24 Sep 2023 08:02:46 +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: d68c4694-f570-4f55-8cde-2c73c82dbc93 X-Archives-Hash: e8c5e9eb92338f70b8d40328f121807d commit: 8cad1d78982a56aa4f57a009fb52c93282c085b4 Author: Andreas Sturmlechner gentoo org> AuthorDate: Sat Sep 23 19:56:16 2023 +0000 Commit: Miroslav Šulc gentoo org> CommitDate: Sun Sep 24 08:02:36 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8cad1d78 app-office/scribus: Fix build with >=app-text/podofo-0.10, python3_12 Closes: https://bugs.gentoo.org/914493 Signed-off-by: Andreas Sturmlechner gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/33015 Signed-off-by: Miroslav Šulc gentoo.org> app-office/scribus/Manifest | 1 + .../scribus/files/scribus-1.5.8-python-3.12.patch | 32 ++++ app-office/scribus/scribus-1.5.8-r6.ebuild | 171 +++++++++++++++++++++ 3 files changed, 204 insertions(+) diff --git a/app-office/scribus/Manifest b/app-office/scribus/Manifest index 77fcc903a9bf..5bb7b3812a2a 100644 --- a/app-office/scribus/Manifest +++ b/app-office/scribus/Manifest @@ -1,2 +1,3 @@ DIST scribus-1.5.8-patchset-1.tar.xz 7396 BLAKE2B f8c7b6eb83bfdca715a46c09f4168db332d52b4d4bdc12946bd3ca88bd9b6c67a22c034b58ca62149cbe483ca75efa646589d367245db68136b0bdbcf91dae20 SHA512 ee9bc984b0593fb2f0e727e45dac12b6d1fd1117d0e42d531ab7a49b55b0d72b5c36fc40709750571eb8c70e19f5b59e69faefa40c5706d82f1b6db18baff28d +DIST scribus-1.5.8-podofo-0.10.tar.xz 19116 BLAKE2B 3aa6ecc6726fece8c3b1645096493615eafc67daf45bb5e5ff56a01e75a08418aaad9cfd67e1de3114b4e1e8dd7478c2be3da63ea29560948ddd5295f586e00e SHA512 7d03cedbdae5147c6f2b662ae8c9bd009d5eb9efcb3087bd841e785b4a4a1942a2811f29d433590022d9dc68f716b8b20c30b818d5c91197cbe79fe3260d0db7 DIST scribus-1.5.8.tar.xz 74543476 BLAKE2B 6eacf3089db88b673bd146a9727af4faa4e64901b332dbe08e6c62c912212bfd0e9e2003796df51621ee7d66262388ecfc3bed057a22d1d7fb1740e77fe50686 SHA512 eb46be0165eeb0d8974aa744fc8ffac321b206ca0015da39bb2f50d9fd4a5e28300a49ada0f963b4e0cf9a3301dc746ffba74f359f5e76d308d80b71ee669c2d diff --git a/app-office/scribus/files/scribus-1.5.8-python-3.12.patch b/app-office/scribus/files/scribus-1.5.8-python-3.12.patch new file mode 100644 index 000000000000..ba30cb3eb467 --- /dev/null +++ b/app-office/scribus/files/scribus-1.5.8-python-3.12.patch @@ -0,0 +1,32 @@ +Backport of https://github.com/scribusproject/scribus/commit/065459990d1fe097d4339653c7ba600cc3547523 to fix +https://bugzilla.redhat.com/show_bug.cgi?id=2155514: Fails to build with Python 3.12: error: 'PyUnicode_AS_UNICODE' +was not declared in this scope. + +--- scribus-1.5.8/scribus/plugins/scriptplugin/cmdgetsetprop.cpp 2022-01-23 17:16:04.000000000 +0100 ++++ scribus-1.5.8/scribus/plugins/scriptplugin/cmdgetsetprop.cpp.python-3.12 2023-06-17 23:59:35.497937156 +0200 +@@ -409,10 +409,8 @@ + success = obj->setProperty(propertyName, QString::fromUtf8(PyBytes_AsString(objValue))); + else if (PyUnicode_Check(objValue)) + { +- // Get a pointer to the internal buffer of the Py_Unicode object, which is UCS2 formatted +- const unsigned short * ucs2Data = (const unsigned short *) PyUnicode_AS_UNICODE(objValue); +- // and make a new QString from it (the string is copied) +- success = obj->setProperty(propertyName, QString::fromUtf16(ucs2Data)); ++ QString qStrValue = PyUnicode_asQString(objValue); ++ success = obj->setProperty(propertyName, qStrValue); + } + else + matched = false; +@@ -429,10 +427,8 @@ + } + else if (PyUnicode_Check(objValue)) + { +- // Get a pointer to the internal buffer of the Py_Unicode object, which is UCS2 formatted +- const unsigned short * utf16Data = (const unsigned short *)PyUnicode_AS_UNICODE(objValue); +- // and make a new QString from it (the string is copied) +- success = obj->setProperty(propertyName, QString::fromUtf16(utf16Data).toLatin1()); ++ QString qStrValue = PyUnicode_asQString(objValue); ++ success = obj->setProperty(propertyName, qStrValue.toLatin1()); + } + else + matched = false; diff --git a/app-office/scribus/scribus-1.5.8-r6.ebuild b/app-office/scribus/scribus-1.5.8-r6.ebuild new file mode 100644 index 000000000000..d5391b38535f --- /dev/null +++ b/app-office/scribus/scribus-1.5.8-r6.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PATCHSET=${P}-patchset-1 +PYTHON_COMPAT=( python3_{9..12} ) +PYTHON_REQ_USE="tk?" +inherit cmake desktop flag-o-matic optfeature python-single-r1 xdg + +DESCRIPTION="Desktop publishing (DTP) and layout program" +HOMEPAGE="https://www.scribus.net/" +SRC_URI="mirror://sourceforge/project/${PN}/${PN}-devel/${PV}/${P}.tar.xz +https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}.tar.xz +https://dev.gentoo.org/~asturm/distfiles/${P}-podofo-0.10.tar.xz" +S="${WORKDIR}/${P}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" +IUSE="+boost debug examples graphicsmagick hunspell +minimal osg +pdf scripts +templates tk" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + tk? ( scripts )" + +# osg +# couple of third_party libs bundled +DEPEND="${PYTHON_DEPS} + app-text/libmspub + app-text/libqxp + app-text/poppler:= + dev-libs/hyphen + dev-libs/icu:0= + dev-libs/librevenge + dev-libs/libxml2 + dev-qt/qtcore:5 + dev-qt/qtgui:5[-gles2-only] + dev-qt/qtnetwork:5 + dev-qt/qtopengl:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtxml:5 + media-libs/fontconfig + media-libs/freetype:2 + media-libs/harfbuzz:0=[icu] + media-libs/lcms:2 + media-libs/libcdr + media-libs/libfreehand + media-libs/libjpeg-turbo:= + media-libs/libpagemaker + media-libs/libpng:0= + media-libs/libvisio + media-libs/libzmf + media-libs/tiff:= + net-print/cups + sys-libs/zlib[minizip] + x11-libs/cairo[X,svg(+)] + boost? ( dev-libs/boost:= ) + graphicsmagick? ( media-gfx/graphicsmagick:= ) + hunspell? ( app-text/hunspell:= ) + osg? ( dev-games/openscenegraph:= ) + pdf? ( app-text/podofo:0= ) + scripts? ( + $(python_gen_cond_dep ' + dev-python/pillow[tk?,${PYTHON_USEDEP}] + ') + ) +" +RDEPEND="${DEPEND} + app-text/ghostscript-gpl +" +BDEPEND=" + dev-qt/linguist-tools:5 + virtual/pkgconfig +" + +PATCHES=( + # non(?)-upstreamable + "${FILESDIR}"/${PN}-1.5.8-cmake.patch # bug 886251 + "${FILESDIR}"/${PN}-1.5.3-fpic.patch + "${FILESDIR}"/${PN}-1.5.6-docdir.patch + "${FILESDIR}"/${PN}-1.5.8-findhyphen-1.patch + "${FILESDIR}"/${PN}-1.5.6-findhyphen.patch + + # git master; # bug 834537, 843287, 893158 + "${WORKDIR}"/${PATCHSET} + "${WORKDIR}"/${P}-podofo-0.10 # 914493 + "${FILESDIR}"/${P}-python-3.12.patch +) + +src_prepare() { + cmake_src_prepare + + rm -r codegen/cheetah scribus/third_party/hyphen || die + + sed \ + -e "/^\s*unzip\.[ch]/d" \ + -e "/^\s*ioapi\.[ch]/d" \ + -i scribus/CMakeLists.txt Scribus.pro || die + rm scribus/ioapi.[ch] || die + + sed \ + -e 's:\(${CMAKE_INSTALL_PREFIX}\):./\1:g' \ + -i resources/templates/CMakeLists.txt || die + + sed \ + -e "/^add_subdirectory(ui\/qml)/s/^/#DONT/" \ + -i scribus/CMakeLists.txt || die # nothing but a bogus Hello World test +} + +src_configure() { + # bug #550818 + append-cppflags -DHAVE_MEMRCHR + + local mycmakeargs=( + -DHAVE_PYTHON=ON + -DWANT_DISTROBUILD=ON + -DWANT_CPP17=ON + -DDOCDIR="${EPREFIX}"/usr/share/doc/${PF}/ + -DPython3_EXECUTABLE="${PYTHON}" + -DWITH_BOOST=$(usex boost) + -DWANT_DEBUG=$(usex debug) + -DWANT_NOEXAMPLES=$(usex !examples) + -DWANT_GRAPHICSMAGICK=$(usex graphicsmagick) + -DWANT_HUNSPELL=$(usex hunspell) + -DWANT_HEADERINSTALL=$(usex !minimal) + -DWANT_NOOSG=$(usex !osg) + -DWITH_PODOFO=$(usex pdf) + -DWANT_NOTEMPLATES=$(usex !templates) + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + + if ! use tk; then + rm "${ED}"/usr/share/scribus/scripts/{FontSample,CalendarWizard}.py || die + fi + if use scripts; then + python_fix_shebang "${ED}"/usr/share/scribus/scripts + python_optimize "${ED}"/usr/share/scribus/scripts + else + rm "${ED}"/usr/share/scribus/scripts/*.py || die + fi + + mv "${ED}"/usr/share/doc/${PF}/{en,html} || die + ln -sf html "${ED}"/usr/share/doc/${PF}/en || die + + # These files are parsed to populate the help/about window. + cat >> "${T}"/COPYING <<- EOF || die + ${PN} is licensed under the "${LICENSE}". + Please visit https://www.gnu.org/licenses/gpl-2.0.html for the complete license text. + EOF + dodoc "${T}"/COPYING + docompress -x /usr/share/doc/${PF}/en /usr/share/doc/${PF}/{AUTHORS,TRANSLATION,LINKS,COPYING} + + local size + for size in 16 32 128 256 512; do + newicon -s $size resources/iconsets/artwork/icon_${size}x${size}.png scribus.png + done + newicon -s 64 resources/iconsets/artwork/icon_32x32@2x.png scribus.png + doicon resources/iconsets/*/scribus.png + domenu scribus.desktop +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature "MS Word .doc file import filter support" app-text/antiword +}