public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Miroslav Šulc" <fordfrog@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-office/scribus/, app-office/scribus/files/
Date: Sun, 24 Sep 2023 08:02:46 +0000 (UTC)	[thread overview]
Message-ID: <1695542556.8cad1d78982a56aa4f57a009fb52c93282c085b4.fordfrog@gentoo> (raw)

commit:     8cad1d78982a56aa4f57a009fb52c93282c085b4
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 23 19:56:16 2023 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> 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 <asturm <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/33015
Signed-off-by: Miroslav Šulc <fordfrog <AT> 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
+}


             reply	other threads:[~2023-09-24  8:02 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-24  8:02 Miroslav Šulc [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-07 13:16 [gentoo-commits] repo/gentoo:master commit in: app-office/scribus/, app-office/scribus/files/ Andreas Sturmlechner
2025-02-10 20:11 Andreas Sturmlechner
2024-11-13 22:45 Andreas Sturmlechner
2024-07-18  8:44 Miroslav Šulc
2024-06-04 10:35 Miroslav Šulc
2024-03-04 10:29 Miroslav Šulc
2024-01-14  9:30 Miroslav Šulc
2022-09-02  4:38 Sam James
2022-05-08 18:01 Sam James
2022-03-12 15:53 Andreas Sturmlechner
2022-01-14  4:48 Ionen Wolkens
2021-08-25 10:54 Miroslav Šulc
2021-04-06 12:30 Miroslav Šulc
2020-01-02 20:26 Andreas Sturmlechner
2019-12-07  9:47 Andreas Sturmlechner
2019-11-01 18:39 Andreas Sturmlechner
2019-01-25  0:00 Andreas Sturmlechner
2019-01-14 23:34 Andreas Sturmlechner
2018-03-19 23:56 Andreas Sturmlechner
2017-12-26  1:02 Andreas Sturmlechner
2017-06-04 11:54 Justin Lecher
2017-06-04 11:49 Justin Lecher
2016-12-06  9:32 Miroslav Šulc

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1695542556.8cad1d78982a56aa4f57a009fb52c93282c085b4.fordfrog@gentoo \
    --to=fordfrog@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox