summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-05-07 04:52:40 +0100
committerSam James <sam@gentoo.org>2022-05-07 04:53:28 +0100
commit8c4c4cb2567ec797af16cbdb1e072ff6fef0c0bf (patch)
tree74132699e5b4a3cd9e08a9b36dc2da26b63e6409 /app-office/lyx
parentgnome-extra/evolution-ews: add optfeature for oauth (diff)
downloadgentoo-8c4c4cb2567ec797af16cbdb1e072ff6fef0c0bf.tar.gz
gentoo-8c4c4cb2567ec797af16cbdb1e072ff6fef0c0bf.tar.bz2
gentoo-8c4c4cb2567ec797af16cbdb1e072ff6fef0c0bf.zip
app-office/lyx: fix build with GCC 12
Also, add Python 3.10 (add a patch from Fedora too). Closes: https://bugs.gentoo.org/841743 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-office/lyx')
-rw-r--r--app-office/lyx/files/lyx-2.3.6.1-gcc12.patch22
-rw-r--r--app-office/lyx/files/lyx-2.3.6.1-python.patch50
-rw-r--r--app-office/lyx/lyx-2.3.6.1-r2.ebuild187
3 files changed, 259 insertions, 0 deletions
diff --git a/app-office/lyx/files/lyx-2.3.6.1-gcc12.patch b/app-office/lyx/files/lyx-2.3.6.1-gcc12.patch
new file mode 100644
index 000000000000..b1acbdb9087d
--- /dev/null
+++ b/app-office/lyx/files/lyx-2.3.6.1-gcc12.patch
@@ -0,0 +1,22 @@
+https://src.fedoraproject.org/rpms/lyx/raw/rawhide/f/lyx-2.3.6-fix-gcc12.patch
+https://bugs.gentoo.org/841743
+--- a/src/insets/InsetListings.cpp
++++ b/src/insets/InsetListings.cpp
+@@ -44,6 +44,7 @@
+
+ #include "support/regex.h"
+
++#include <cstring>
+ #include <sstream>
+
+ using namespace std;
+--- a/src/lyxfind.cpp
++++ b/src/lyxfind.cpp
+@@ -52,6 +52,7 @@
+ #include "support/lstrings.h"
+
+ #include "support/regex.h"
++#include <iterator>
+
+ using namespace std;
+ using namespace lyx::support;
diff --git a/app-office/lyx/files/lyx-2.3.6.1-python.patch b/app-office/lyx/files/lyx-2.3.6.1-python.patch
new file mode 100644
index 000000000000..666d82c06bf8
--- /dev/null
+++ b/app-office/lyx/files/lyx-2.3.6.1-python.patch
@@ -0,0 +1,50 @@
+https://src.fedoraproject.org/rpms/lyx/raw/054d18eb79a8ec3d4480ab4449b3c62b12770d2d/f/lyx-2.3.6-layout2layout.patch
+--- a/lib/scripts/layout2layout.py
++++ b/lib/scripts/layout2layout.py
+@@ -256,7 +256,7 @@
+
+ def trim_bom(line):
+ " Remove byte order mark."
+- if line[0:3] == "\357\273\277":
++ if line[0:3] == b"\357\273\277":
+ return line[3:]
+ else:
+ return line
+@@ -345,8 +345,8 @@
+ # for categories
+ re_Declaration = re.compile(b'^#\\s*\\Declare\\w+Class.*$')
+ re_ExtractCategory = re.compile(b'^(#\\s*\\Declare\\w+Class(?:\\[[^]]*?\\])?){([^(]+?)\\s+\\(([^)]+?)\\)\\s*}\\s*$')
+- ConvDict = {"article": "Articles", "book" : "Books", "letter" : "Letters", "report": "Reports", \
+- "presentation" : "Presentations", "curriculum vitae" : "Curricula Vitae", "handout" : "Handouts"}
++ ConvDict = {b"article": b"Articles", b"book" : b"Books", b"letter" : b"Letters", b"report": b"Reports", \
++ b"presentation" : b"Presentations", b"curriculum vitae" : b"Curricula Vitae", b"handout" : b"Handouts"}
+ # Arguments
+ re_OptArgs = re.compile(b'^(\\s*)OptionalArgs(\\s+)(\\d+)\\D*$', re.IGNORECASE)
+ re_ReqArgs = re.compile(b'^(\\s*)RequiredArgs(\\s+)(\\d+)\\D*$', re.IGNORECASE)
+@@ -485,7 +485,7 @@
+ continue
+ col = match.group(2)
+ if col == "collapsable":
+- lines[i] = match.group(1) + "collapsible"
++ lines[i] = match.group(1) + b"collapsible"
+ i += 1
+ continue
+
+@@ -703,7 +703,7 @@
+ # Insert the required number of arguments at the end of the style definition
+ match = re_End.match(lines[i])
+ if match:
+- newarg = ['']
++ newarg = [b'']
+ # First the optionals (this is the required order pre 2.1)
+ if opts > 0:
+ if opts == 1:
+@@ -1153,7 +1153,7 @@
+ if latextype == b"item_environment" and label.lower() == b"counter_enumi":
+ lines[labeltype_line] = re_LabelType.sub(b'\\1\\2\\3Enumerate', lines[labeltype_line])
+ # Don't add the LabelCounter line later
+- counter = ""
++ counter = b""
+
+ # Replace
+ #
diff --git a/app-office/lyx/lyx-2.3.6.1-r2.ebuild b/app-office/lyx/lyx-2.3.6.1-r2.ebuild
new file mode 100644
index 000000000000..a8d622193e27
--- /dev/null
+++ b/app-office/lyx/lyx-2.3.6.1-r2.ebuild
@@ -0,0 +1,187 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+MY_P="${P/_}"
+inherit desktop font python-single-r1 qmake-utils toolchain-funcs xdg-utils
+
+DESCRIPTION="WYSIWYM frontend for LaTeX, DocBook, etc"
+HOMEPAGE="https://www.lyx.org/"
+SRC_URI="ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${MY_P}.tar.xz
+ ftp://ftp.lyx.org/pub/lyx/devel/lyx-2.3/${MY_P}/${MY_P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+IUSE="aspell cups debug dia dot enchant gnumeric html +hunspell +latex monolithic-build nls rcs rtf svg l10n_he"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# bc needed http://comments.gmane.org/gmane.editors.lyx.devel/137498 and bug #787839
+BDEPEND="
+ sys-devel/bc
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+"
+RDEPEND="${PYTHON_DEPS}
+ app-text/mythes
+ dev-libs/boost:=
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-texlive/texlive-fontsextra
+ sys-apps/file
+ sys-libs/zlib
+ virtual/imagemagick-tools[png,svg?]
+
+ x11-misc/xdg-utils
+
+ aspell? ( app-text/aspell )
+ cups? ( net-print/cups )
+ dia? ( app-office/dia )
+ dot? ( media-gfx/graphviz )
+ enchant? ( app-text/enchant:2 )
+ gnumeric? ( app-office/gnumeric )
+ html? ( dev-tex/html2latex )
+ hunspell? ( app-text/hunspell )
+ l10n_he? ( dev-tex/culmus-latex )
+ latex? (
+ app-text/dvipng
+ app-text/ghostscript-gpl
+ app-text/ps2eps
+ app-text/texlive
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-mathscience
+ dev-texlive/texlive-pictures
+ dev-texlive/texlive-plaingeneric
+ || (
+ dev-tex/hevea
+ dev-tex/latex2html
+ dev-tex/tex4ht[java]
+ dev-tex/tth
+ )
+ )
+ rcs? ( dev-vcs/rcs )
+ rtf? (
+ app-text/unrtf
+ dev-tex/html2latex
+ dev-tex/latex2rtf
+ )
+ svg? ( || ( gnome-base/librsvg media-gfx/inkscape ) )
+"
+DEPEND="${RDEPEND}
+ dev-qt/qtconcurrent:5
+"
+
+DOCS=( ANNOUNCE NEWS README RELEASE-NOTES UPGRADING )
+
+S="${WORKDIR}/${MY_P}"
+
+FONT_S="${S}/lib/fonts"
+FONT_SUFFIX="ttf"
+
+PATCHES=(
+ # Try first with xdg-open before hardcoded commands
+ # Patch from Debian using a similar approach to Fedora
+ "${FILESDIR}"/${PN}-prefer-xdg-open.patch
+
+ "${FILESDIR}"/${P}-python.patch
+ "${FILESDIR}"/${P}-gcc12.patch
+)
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+ font_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ sed "s:python -tt:${EPYTHON} -tt:g" -i lib/configure.py || die
+}
+
+src_configure() {
+ tc-export CXX
+ #bug 221921
+ export VARTEXFONTS="${T}"/fonts
+
+ econf \
+ $(use_with aspell) \
+ $(use_enable debug) \
+ $(use_with enchant) \
+ $(use_with hunspell) \
+ $(use_enable monolithic-build) \
+ $(use_enable nls) \
+ --enable-qt5 \
+ --with-qt-dir=$(qt5_get_libdir)/qt5 \
+ --disable-stdlib-debug \
+ --without-included-boost \
+ --with-packaging=posix
+}
+
+src_install() {
+ default
+
+ if use l10n_he ; then
+ echo "\bind_file cua" > "${T}"/hebrew.bind || die
+ echo "\bind \"F12\" \"language hebrew\"" >> "${T}"/hebrew.bind || die
+
+ insinto /usr/share/lyx/bind
+ doins "${T}"/hebrew.bind
+ fi
+
+ newicon -s 32 "development/Win32/packaging/icons/lyx_32x32.png" ${PN}.png
+ doicon -s 48 "lib/images/lyx.png"
+ doicon -s scalable "lib/images/lyx.svg"
+
+ # fix for bug 91108
+ if use latex ; then
+ dosym ../../../lyx/tex /usr/share/texmf-site/tex/latex/lyx
+ fi
+
+ # fonts needed for proper math display, see also bug #15629
+ font_src_install
+
+ python_fix_shebang "${ED}"/usr/share/${PN}
+
+ if use hunspell ; then
+ dosym ../myspell /usr/share/lyx/dicts
+ dosym ../myspell /usr/share/lyx/thes
+ fi
+}
+
+pkg_postinst() {
+ font_pkg_postinst
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+
+ # fix for bug 91108
+ if use latex ; then
+ texhash || die
+ fi
+
+ # instructions for RTL support. See also bug 168331.
+ if use l10n_he || has he ${LINGUAS} || has ar ${LINGUAS} ; then
+ elog
+ elog "Enabling RTL support in LyX:"
+ elog "If you intend to use a RTL language (such as Hebrew or Arabic)"
+ elog "You must enable RTL support in LyX. To do so start LyX and go to"
+ elog "Tools->Preferences->Language settings->Language"
+ elog "and make sure the \"Right-to-left language support\" is checked"
+ elog
+ fi
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+
+ if use latex ; then
+ texhash || die
+ fi
+}