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
+}

Reply via email to