diff options
author | Sam James <sam@gentoo.org> | 2023-05-01 08:31:33 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-05-01 08:32:11 +0100 |
commit | 4edc51728fdea1246c4dbe0abf6dd310e7362dbc (patch) | |
tree | b6a0fa79b2aab6da1ed38ecd92b395d33d619ec0 /media-gfx | |
parent | app-misc/golly: Stabilize 4.2 x86, #898180 (diff) | |
download | gentoo-4edc51728fdea1246c4dbe0abf6dd310e7362dbc.tar.gz gentoo-4edc51728fdea1246c4dbe0abf6dd310e7362dbc.tar.bz2 gentoo-4edc51728fdea1246c4dbe0abf6dd310e7362dbc.zip |
media-gfx/inkscape: fix compile issue
Unclear when this happens but I can see how it might, so..
Closes: https://bugs.gentoo.org/903867
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-gfx')
-rw-r--r-- | media-gfx/inkscape/files/inkscape-1.2.2-fix-compile.patch | 46 | ||||
-rw-r--r-- | media-gfx/inkscape/inkscape-1.2.2-r1.ebuild | 197 |
2 files changed, 243 insertions, 0 deletions
diff --git a/media-gfx/inkscape/files/inkscape-1.2.2-fix-compile.patch b/media-gfx/inkscape/files/inkscape-1.2.2-fix-compile.patch new file mode 100644 index 000000000000..c219a6e45273 --- /dev/null +++ b/media-gfx/inkscape/files/inkscape-1.2.2-fix-compile.patch @@ -0,0 +1,46 @@ +https://src.fedoraproject.org/rpms/inkscape/blob/rawhide/f/0001-Fix-build-with-GCC13.patch +https://gitlab.com/inkscape/inkscape/-/merge_requests/5108 +https://gitlab.com/inkscape/inkscape/-/merge_requests/5111 (version which got accepted upstream) +https://bugs.gentoo.org/903867 + +From c68f5f9cade8a890efefcb4c2e0fc57762211286 Mon Sep 17 00:00:00 2001 +From: Elliott Sales de Andrade <quantum.analyst@gmail.com> +Date: Fri, 24 Feb 2023 14:01:18 -0500 +Subject: [PATCH] Fix build with GCC13 + +GCC 13 now complains about this line: +``` +src/ui/widget/selected-style.cpp:111:6: error: statement-expressions are not allowed outside functions nor in template-argument lists + 111 | {g_strdup("application/x-oswb-color"), 0, APP_OSWB_COLOR} + | ^~~~~~~~ +``` + +However, it is not necessary to strdup the string constant as the value +just needs to exist indefinitely, and it will as a constant. While C +doesn't mind the `const` difference, a simple cast will silence C++'s +higher strictness. + +And in fact, the other use of `GtkTargetEntry` in +`src/ui/drag-and-drop.cpp` does the same cast. + +Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com> +--- a/src/ui/widget/selected-style.cpp ++++ b/src/ui/widget/selected-style.cpp +@@ -100,14 +100,8 @@ enum ui_drop_target_info { + APP_OSWB_COLOR + }; + +-//TODO: warning: deprecated conversion from string constant to ‘gchar*’ +-// +-//Turn out to be warnings that we should probably leave in place. The +-// pointers/types used need to be read-only. So until we correct the using +-// code, those warnings are actually desired. They say "Hey! Fix this". We +-// definitely don't want to hide/ignore them. --JonCruz + static const GtkTargetEntry ui_drop_target_entries [] = { +- {g_strdup("application/x-oswb-color"), 0, APP_OSWB_COLOR} ++ {(gchar *)"application/x-oswb-color", 0, APP_OSWB_COLOR} + }; + + static guint nui_drop_target_entries = G_N_ELEMENTS(ui_drop_target_entries); +-- +2.39.2 diff --git a/media-gfx/inkscape/inkscape-1.2.2-r1.ebuild b/media-gfx/inkscape/inkscape-1.2.2-r1.ebuild new file mode 100644 index 000000000000..5813268f5d70 --- /dev/null +++ b/media-gfx/inkscape/inkscape-1.2.2-r1.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_REQ_USE="xml(+)" +MY_P="${P/_/}" +inherit cmake flag-o-matic xdg toolchain-funcs python-single-r1 + +if [[ ${PV} = 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/inkscape/inkscape.git" +else + SRC_URI="https://media.inkscape.org/dl/resources/file/${P}.tar.xz" + KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="SVG based generic vector-drawing program" +HOMEPAGE="https://inkscape.org/ https://gitlab.com/inkscape/inkscape/" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +IUSE="cdr dia exif graphicsmagick imagemagick inkjar jemalloc jpeg +openmp postscript readline spell svg2 test visio wpg X" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +BDEPEND=" + dev-util/glib-utils + >=dev-util/intltool-0.40 + >=sys-devel/gettext-0.17 + virtual/pkgconfig + test? ( virtual/imagemagick-tools ) +" +COMMON_DEPEND="${PYTHON_DEPS} + >=app-text/poppler-0.57.0:=[cairo] + >=dev-cpp/cairomm-1.12:0 + >=dev-cpp/glibmm-2.54.1:2 + dev-cpp/gtkmm:3.0 + >=dev-cpp/pangomm-2.40:1.4 + >=dev-libs/boehm-gc-7.1:= + dev-libs/boost:= + dev-libs/double-conversion:= + >=dev-libs/glib-2.41 + >=dev-libs/libsigc++-2.8:2 + >=dev-libs/libxml2-2.7.4 + >=dev-libs/libxslt-1.1.25 + dev-libs/gdl:3 + dev-libs/popt + media-gfx/potrace + media-libs/fontconfig + media-libs/freetype:2 + media-libs/lcms:2 + media-libs/libpng:0= + net-libs/libsoup:2.4 + sci-libs/gsl:= + >=x11-libs/pango-1.44 + x11-libs/gtk+:3[X?] + X? ( x11-libs/libX11 ) + $(python_gen_cond_dep ' + dev-python/cachecontrol[${PYTHON_USEDEP}] + dev-python/cssselect[${PYTHON_USEDEP}] + dev-python/lockfile[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + media-gfx/scour[${PYTHON_USEDEP}] + ') + cdr? ( + app-text/libwpg:0.3 + dev-libs/librevenge + media-libs/libcdr + ) + exif? ( media-libs/libexif ) + imagemagick? ( + !graphicsmagick? ( media-gfx/imagemagick:=[cxx] ) + graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] ) + ) + jemalloc? ( dev-libs/jemalloc ) + jpeg? ( media-libs/libjpeg-turbo:= ) + readline? ( sys-libs/readline:= ) + spell? ( app-text/gspell ) + visio? ( + app-text/libwpg:0.3 + dev-libs/librevenge + media-libs/libvisio + ) + wpg? ( + app-text/libwpg:0.3 + dev-libs/librevenge + ) +" +# These only use executables provided by these packages +# See share/extensions for more details. inkscape can tell you to +# install these so we could of course just not depend on those and rely +# on that. +RDEPEND="${COMMON_DEPEND} + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ') + dia? ( app-office/dia ) + postscript? ( app-text/ghostscript-gpl ) +" +DEPEND="${COMMON_DEPEND} + test? ( dev-cpp/gtest ) +" + +RESTRICT="!test? ( test )" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-1.2.2-fix-compile.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + python-single-r1_pkg_setup +} + +src_unpack() { + if [[ ${PV} = 9999* ]]; then + git-r3_src_unpack + else + default + fi + [[ -d "${S}" ]] || mv -v "${WORKDIR}/${P}_202"?-??-* "${S}" || die +} + +src_prepare() { + cmake_src_prepare + sed -i "/install.*COPYING/d" CMakeScripts/ConfigCPack.cmake || die +} + +src_configure() { + # aliasing unsafe wrt #310393 + append-flags -fno-strict-aliasing + + local mycmakeargs=( + # -DWITH_LPETOOL # Compile with LPE Tool and experimental LPEs enabled + -DWITH_NLS=ON + -DENABLE_POPPLER=ON + -DENABLE_POPPLER_CAIRO=ON + -DWITH_PROFILING=OFF + -DWITH_INTERNAL_2GEOM=ON + -DBUILD_TESTING=$(usex test) + -DWITH_LIBCDR=$(usex cdr) + -DWITH_IMAGE_MAGICK=$(usex imagemagick $(usex !graphicsmagick)) # requires ImageMagick 6, only IM must be enabled + -DWITH_GRAPHICS_MAGICK=$(usex graphicsmagick $(usex imagemagick)) # both must be enabled to use GraphicsMagick + -DWITH_GNU_READLINE=$(usex readline) + -DWITH_GSPELL=$(usex spell) + -DWITH_JEMALLOC=$(usex jemalloc) + -DENABLE_LCMS=ON + -DWITH_OPENMP=$(usex openmp) + -DBUILD_SHARED_LIBS=ON + -DWITH_SVG2=$(usex svg2) + -DWITH_LIBVISIO=$(usex visio) + -DWITH_LIBWPG=$(usex wpg) + -DWITH_X11=$(usex X) + ) + + cmake_src_configure +} + +src_test() { + local myctestargs=( + # render_text*: needs patched Cairo / maybe upstream changes + # not yet in a release. + # test_lpe/test_lpe64: precision differences b/c of new GCC? + # cli_export-png-color-mode-gray-8_png_check_output: ditto? + -E "(render_test-use|render_test-glyph-y-pos|render_text-glyphs-combining|render_text-glyphs-vertical|render_test-rtl-vertical|test_lpe|test_lpe64|cli_export-png-color-mode-gray-8_png_check_output)" + ) + + cmake_src_test -j1 +} + +src_install() { + cmake_src_install + + find "${ED}" -type f -name "*.la" -delete || die + + find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.bz2' -exec bzip2 -d {} \; || die + + find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.gz' -exec gzip -d {} \; || die + + local extdir="${ED}"/usr/share/${PN}/extensions + + if [[ -e "${extdir}" ]] && [[ -n $(find "${extdir}" -mindepth 1) ]]; then + python_optimize "${ED}"/usr/share/${PN}/extensions + fi + + # Empty directory causes sandbox issues, see bug #761915 + rm -r "${ED}/usr/share/inkscape/fonts" || die "Failed to remove fonts directory." +} |