commit: 0e4e39916b6ff7f64e3014249a048a9b3a234ad6 Author: Andrey Grozin <grozin <AT> gentoo <DOT> org> AuthorDate: Mon Nov 3 15:24:18 2025 +0000 Commit: Andrey Grozin <grozin <AT> gentoo <DOT> org> CommitDate: Mon Nov 3 15:24:18 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0e4e3991
sci-visualization/gle: ebuild improvement Closes: https://bugs.gentoo.org/964411 Signed-off-by: Andrey Grozin <grozin <AT> gentoo.org> sci-visualization/gle/files/gle-4.3.8-r1.patch | 137 +++++++++++++++++++++++++ sci-visualization/gle/gle-4.3.8-r1.ebuild | 94 +++++++++++++++++ 2 files changed, 231 insertions(+) diff --git a/sci-visualization/gle/files/gle-4.3.8-r1.patch b/sci-visualization/gle/files/gle-4.3.8-r1.patch new file mode 100644 index 000000000000..31d7f97f62f4 --- /dev/null +++ b/sci-visualization/gle/files/gle-4.3.8-r1.patch @@ -0,0 +1,137 @@ +diff '--color=auto' -r -U3 src.orig/CMakeLists.txt src/CMakeLists.txt +--- src.orig/CMakeLists.txt 2025-10-05 20:31:58.000000000 +0700 ++++ src/CMakeLists.txt 2025-10-13 11:23:23.257474930 +0700 +@@ -1,10 +1,11 @@ + # + # -- CMakeLists.txt for GLE - Graphics Layout Engine + # +-cmake_minimum_required (VERSION 3.30) ++cmake_minimum_required (VERSION 3.31) + cmake_policy(SET CMP0091 NEW) # windows static runtimes selection + #cmake_policy(SET CMP0167 NEW) # The FindBoost module is removed. only for cmake 3.30 and later live with the warning for now + cmake_policy(SET CMP0074 NEW) # uses <PackageName>_ROOT variables. ++cmake_policy(SET CMP0177 NEW) # normalize DESTINATION paths + set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + include(CheckIncludeFile) +@@ -595,18 +596,17 @@ + + # documentation file installation in doc folder + install(FILES +- ../doc/LICENSE.txt + ../doc/README.txt + ../doc/ChangeLog.txt + CONFIGURATIONS Release Debug +- DESTINATION ./doc ++ DESTINATION ./${GLEDOC} + ) + # + # -- install include files from gle-library repo + # + install(DIRECTORY + ${GLE_EXAMPLES_LIBRARY_PATH}/include/ +- DESTINATION ./gleinc ++ DESTINATION ./share/gle/gleinc + CONFIGURATIONS Release Debug + OPTIONAL + PATTERN "*.gle" +@@ -617,7 +617,7 @@ + # + install(FILES + ${GLE_USER_MANUAL_PATH}/gle-manual.pdf +- DESTINATION ./doc ++ DESTINATION ./${GLEDOC} + CONFIGURATIONS Release Debug + OPTIONAL + ) +diff '--color=auto' -r -U3 src.orig/fonts/CMakeLists.txt src/fonts/CMakeLists.txt +--- src.orig/fonts/CMakeLists.txt 2025-10-05 20:31:58.000000000 +0700 ++++ src/fonts/CMakeLists.txt 2025-10-13 11:25:22.307477179 +0700 +@@ -310,5 +310,5 @@ + ${FMT_FILES} + ${FVE_FILES} + CONFIGURATIONS Release Debug +- DESTINATION font) ++ DESTINATION ./share/gle/font) + +diff '--color=auto' -r -U3 src.orig/gle/CMakeLists.txt src/gle/CMakeLists.txt +--- src.orig/gle/CMakeLists.txt 2025-10-05 20:31:58.000000000 +0700 ++++ src/gle/CMakeLists.txt 2025-10-13 11:39:25.134159818 +0700 +@@ -1,3 +1,4 @@ ++cmake_policy(SET CMP0177 NEW) # normalize DESTINATION paths + + set(GLE_SOURCES + bitmap/img2ps.cpp +@@ -129,10 +130,10 @@ + + if(ZSTD_FOUND) + target_link_libraries ( gle LINK_PUBLIC +- zstd::libzstd_static ++ zstd::libzstd_shared + ) + target_link_libraries ( gle-graphics LINK_PUBLIC +- zstd::libzstd_static ++ zstd::libzstd_shared + ) + endif() + +@@ -201,5 +202,5 @@ + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glerc + CONFIGURATIONS Release Debug +- DESTINATION . ) ++ DESTINATION ./share/gle ) + +diff '--color=auto' -r -U3 src.orig/gui/CMakeLists.txt src/gui/CMakeLists.txt +--- src.orig/gui/CMakeLists.txt 2025-10-05 20:31:58.000000000 +0700 ++++ src/gui/CMakeLists.txt 2025-10-13 11:40:02.467493862 +0700 +@@ -126,7 +126,7 @@ + endif() + if(ZSTD_FOUND) + list(APPEND QGLE_LIBRARIES +- zstd::libzstd_static ++ zstd::libzstd_shared + ) + endif() + +diff '--color=auto' -r -U3 src.orig/TeX/CMakeLists.txt src/TeX/CMakeLists.txt +--- src.orig/TeX/CMakeLists.txt 2025-10-05 20:31:58.000000000 +0700 ++++ src/TeX/CMakeLists.txt 2025-10-13 12:42:14.357564475 +0700 +@@ -1,8 +1,8 @@ + # + # -- generate inittex.ini from init.tex + # +-set(GLE_DIR ${CMAKE_BINARY_DIR}/gle$<$<PLATFORM_ID:Windows>:$<IF:$<CONFIG:debug>,/Debug,/Release>>) +-set(GLE gle$<$<CONFIG:Debug>:d>) ++set(GLE_DIR ${CMAKE_BINARY_DIR}/gle) ++set(GLE ${GLE_DIR}/gle) + # inittex.ini is generated from init.tex by running "gle -mkinittex" + # for gle to run: + # - init.tex must reside one directory level up from location of the gle executable. +@@ -29,7 +29,7 @@ + COMMAND "$<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_COMMAND};-E;copy;${GLE_DIR}/glerc;${CMAKE_BINARY_DIR}/glerc>" + COMMAND "$<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_COMMAND};-E;create_symlink;${GLE_DIR}/font;${CMAKE_BINARY_DIR}/font>" + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/init.tex ${CMAKE_BINARY_DIR}$<$<PLATFORM_ID:Windows>:/gle>/init.tex +- COMMAND ${GLE} -mkinittex ++ COMMAND GLE_TOP=${CMAKE_BINARY_DIR} ${GLE} -mkinittex + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}$<$<PLATFORM_ID:Windows>:/gle>/inittex.ini ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}$<$<PLATFORM_ID:Windows>:/gle>/inittex.ini ${CMAKE_BINARY_DIR}/TeX + COMMAND ${CMAKE_COMMAND} -E rm ${CMAKE_BINARY_DIR}$<$<PLATFORM_ID:Windows>:/gle>/init.tex +@@ -40,6 +40,8 @@ + COMMAND_EXPAND_LISTS + ) + ++cmake_policy(SET CMP0177 NEW) # normalize DESTINATION paths ++ + add_custom_target(inittex ALL + DEPENDS inittex.ini + ) +@@ -48,7 +50,7 @@ + init.tex + inittex.ini + CONFIGURATIONS Release Debug +- DESTINATION . ++ DESTINATION ./share/gle + ) + + diff --git a/sci-visualization/gle/gle-4.3.8-r1.ebuild b/sci-visualization/gle/gle-4.3.8-r1.ebuild new file mode 100644 index 000000000000..a10258e6804e --- /dev/null +++ b/sci-visualization/gle/gle-4.3.8-r1.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_BUILD_TYPE=Release +inherit cmake elisp-common flag-o-matic + +DESCRIPTION="Graphics Layout Engine" +HOMEPAGE="https://glx.sourceforge.io/ https://github.com/vlabella/GLE/" +SRC_URI="https://github.com/vlabella/GLE/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/vlabella/gle-library/archive/refs/tags/v${PV}.tar.gz -> ${PN}-library-${PV}.tar.gz + doc? ( https://github.com/vlabella/gle-manual/archive/refs/tags/v${PV}.tar.gz -> ${PN}-manual-${PV}.tar.gz ) + emacs? ( https://dev.gentoo.org/~grozin/gle-mode.el.gz )" +S="${WORKDIR}"/GLE-${PV}/src +LICENSE="BSD gui? ( GPL-2+ )" +SLOT="0" +KEYWORDS="~amd64" +IUSE="doc emacs gui manip" + +DEPEND="app-text/ghostscript-gpl + app-text/poppler + dev-libs/boost + media-libs/libjpeg-turbo + media-libs/libpng + media-libs/tiff + sys-libs/zlib + x11-libs/cairo + x11-libs/pixman + gui? ( + media-libs/freeglut + media-libs/glu + dev-qt/qtbase[dbus,gui,network,opengl,widgets] + ) + manip? ( sys-libs/ncurses:0 ) + emacs? ( app-editors/emacs:* )" +RDEPEND="${DEPEND} + virtual/latex-base" +BDEPEND=">=dev-build/cmake-3.31 + kde-frameworks/extra-cmake-modules + doc? ( virtual/latex-base )" + +PATCHES=( + "${FILESDIR}"/gle-4.3.8.patch + "${FILESDIR}"/top_dir.patch +) +SITEFILE="64${PN}-gentoo.el" + +src_configure() { + # -Werror=odr + # https://bugs.gentoo.org/927779 + # https://github.com/vlabella/GLE/issues/35 + filter-lto + + local mycmakeargs=( + -DGLEDOC=share/doc/${PF} + -DGLE_EXAMPLES_LIBRARY_PATH="${WORKDIR}"/gle-library-${PV} + -DBUILD_GUI=$(usex gui) + -DBUILD_MANIP=$(usex manip) + ) + cmake_src_configure +} + +src_compile() { + cmake_src_compile + use emacs && elisp-compile "${WORKDIR}"/*.el + + # I don't really understand why is this hack needed + sed -e 's/|+//' -i "${BUILD_DIR}"/gle/cmake_install.cmake +} + +src_install() { + export GLE_TOP="${D}"/usr/share/gle + cmake_src_install + if use doc; then + pushd "$WORKDIR"/gle-manual-${PV} > /dev/null || die "pushd gle_manual failed" + export PATH="${D}"/usr/bin:${PATH} + make -f Makefile.gcc GLE="${D}"/usr/bin/gle + dodoc gle-manual.pdf + popd > /dev/null + fi + if use emacs; then + elisp-install ${PN} "${WORKDIR}"/*.el "${WORKDIR}"/*.elc + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +}
