commit: 0d0381b6dcf35c112190b82f0693b9d3f49c1d17 Author: Nguyen Dinh Dang Duong <dangduong31205 <AT> gmail <DOT> com> AuthorDate: Sat Jul 5 11:18:14 2025 +0000 Commit: Nguyen Dinh Dang Duong <dangduong31205 <AT> gmail <DOT> com> CommitDate: Sat Jul 5 11:18:14 2025 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=0d0381b6
media-gfx/glslViewer: new package, add 3.2.4 Signed-off-by: Nguyen Dinh Dang Duong <dangduong31205 <AT> gmail.com> media-gfx/glslViewer/Manifest | 1 + ...afe-post-install-MIME-and-desktop-databas.patch | 182 +++++++++++++++++++++ .../files/0002-Install-libvera.so-to-machine.patch | 29 ++++ media-gfx/glslViewer/glslViewer-3.2.4.ebuild | 61 +++++++ media-gfx/glslViewer/metadata.xml | 12 ++ 5 files changed, 285 insertions(+) diff --git a/media-gfx/glslViewer/Manifest b/media-gfx/glslViewer/Manifest new file mode 100644 index 0000000000..759a213e98 --- /dev/null +++ b/media-gfx/glslViewer/Manifest @@ -0,0 +1 @@ +DIST glslViewer-3.2.4.tar.gz 108258877 BLAKE2B 552beedeafed97372f36a307c2ce3f742d4437ae3357cf3fa30c091953bac834aedde5270313f267657317c433b3e5eb2378427a66b5687de3956e99ae65f21b SHA512 20766ad1fe288d4e193849809b5633635b2d3a551cd46c9378f80c8817aeb90180847f2e9540e02f6c5729e0fa7fd51c45b4a1fa5f7e4ed6e397c58ef3e32c47 diff --git a/media-gfx/glslViewer/files/0001-Removed-unsafe-post-install-MIME-and-desktop-databas.patch b/media-gfx/glslViewer/files/0001-Removed-unsafe-post-install-MIME-and-desktop-databas.patch new file mode 100644 index 0000000000..3a11ad518b --- /dev/null +++ b/media-gfx/glslViewer/files/0001-Removed-unsafe-post-install-MIME-and-desktop-databas.patch @@ -0,0 +1,182 @@ +From 5fe84056dceee18e99cfcc490330475ac2fd7b6c Mon Sep 17 00:00:00 2001 +From: Nguyen Dinh Dang Duong <dangduong31...@gmail.com> +Date: Sat, 28 Jun 2025 04:31:30 +0700 +Subject: [PATCH 1/2] Removed unsafe post-install MIME and desktop database + updates to avoid sandbox violations + +Signed-off-by: Nguyen Dinh Dang Duong <dangduong31...@gmail.com> +--- + CMakeLists.txt | 55 ++++++++++++++++++++------------------------------ + 1 file changed, 22 insertions(+), 33 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6df0206..a7b041c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,7 +5,7 @@ set(VERSION_MINOR 3) + set(VERSION_PATCH 0) + set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") + +-project(glslViewer ++project(glslViewer + VERSION ${VERSION} + LANGUAGES C CXX ) + +@@ -13,7 +13,7 @@ set(CMAKE_CXX_STANDARD 14) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) + +-# The compiled vera ++# The compiled vera + add_subdirectory(deps) + + if(MSVC) +@@ -38,7 +38,7 @@ set(CORE_HEADERS + "${PROJECT_SOURCE_DIR}/src/core/tools/tracker.h" + ) + +-set(CORE_SOURCES ++set(CORE_SOURCES + "${PROJECT_SOURCE_DIR}/src/core/sandbox.cpp" + "${PROJECT_SOURCE_DIR}/src/core/sceneRender.cpp" + "${PROJECT_SOURCE_DIR}/src/core/uniforms.cpp" +@@ -48,7 +48,7 @@ set(CORE_SOURCES + "${PROJECT_SOURCE_DIR}/src/core/tools/tracker.cpp" + ) + +-add_executable(glslViewer ++add_executable(glslViewer + "${PROJECT_SOURCE_DIR}/src/main.cpp" + ${CORE_SOURCES} + ) +@@ -63,8 +63,8 @@ target_compile_definitions(glslViewer PRIVATE GLSLVIEWER_VERSION_MAJOR=${VERSION + target_compile_definitions(glslViewer PRIVATE GLSLVIEWER_VERSION_MINOR=${VERSION_MINOR}) + target_compile_definitions(glslViewer PRIVATE GLSLVIEWER_VERSION_PATCH=${VERSION_PATCH}) + +-if (EMSCRIPTEN) +- ++if (EMSCRIPTEN) ++ + set(LFLAGS "${LFLAGS} -s USE_GLFW=3") + # set(LFLAGS "${LFLAGS} -s FULL_ES2=1") + # set(LFLAGS "${LFLAGS} -s FULL_ES3=1") +@@ -79,16 +79,16 @@ if (EMSCRIPTEN) + set(LFLAGS "${LFLAGS} -s NO_DYNAMIC_EXECUTION=1") + # set(LFLAGS "${LFLAGS} -s NO_DISABLE_EXCEPTION_CATCHING") + +- # Copy the default index.html ++ # Copy the default index.html + file(COPY assets/index.html DESTINATION ${CMAKE_CURRENT_BINARY_DIR} ) + +- # Add examples folder to the .data file system ++ # Add examples folder to the .data file system + file(COPY examples DESTINATION ${CMAKE_CURRENT_BINARY_DIR} ) + set(LFLAGS "${LFLAGS} --preload-file examples") + + set_target_properties(glslViewer PROPERTIES LINK_FLAGS "${LFLAGS}") + target_link_libraries(glslViewer PRIVATE glfw webxr) +- ++ + else() + find_package(Curses) + if (CURSES_FOUND) +@@ -97,8 +97,8 @@ else() + target_link_libraries(glslViewer PRIVATE ${CURSES_LIBRARY}) + endif() + +- target_compile_definitions(glslViewer PUBLIC +- SUPPORT_MULTITHREAD_RECORDING ++ target_compile_definitions(glslViewer PUBLIC ++ SUPPORT_MULTITHREAD_RECORDING + SUPPORT_OSC + ) + +@@ -139,9 +139,9 @@ else() + set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${SYSTEM_NAME}-${SYSTEM_ARCH}") + + if (MSVC) +- target_link_libraries(glslViewer PRIVATE +- lo_static +- Ws2_32.lib ++ target_link_libraries(glslViewer PRIVATE ++ lo_static ++ Ws2_32.lib + Iphlpapi.lib + ) + +@@ -151,28 +151,17 @@ else() + else() + target_link_libraries(glslViewer PRIVATE pthread dl lo_static) + install(TARGETS glslViewer DESTINATION ${CMAKE_INSTALL_BINDIR}) +- ++ + if (NOT APPLE) + target_link_libraries(glslViewer PRIVATE atomic) + + # Install glslViewer Icon + install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.png" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps) + install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.desktop" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications) +- ++ + # Install supported MIME file types by GlslViewer + install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer-types.xml" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/mime/packages) +- find_program(XDG-MIME_EXECUTABLE xdg-mime) +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} install --novendor ${CMAKE_INSTALL_FULL_DATAROOTDIR}/mime/packages/glslViewer-types.xml)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/lst)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/ply)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/obj)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/gltf-binary)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/gltf+json)") +- find_program(UPDATE_MIME_DATABASE update-mime-database) +- install(CODE "execute_process(COMMAND ${UPDATE_MIME_DATABASE} ${CMAKE_INSTALL_FULL_DATAROOTDIR}/mime )") +- find_program(UPDATE_DESKTOP_DATABASE update-desktop-database) +- install(CODE "execute_process(COMMAND ${UPDATE_DESKTOP_DATABASE} ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications)") +- ++ + # Add a thumbnailer for 3D Models + install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.thumbnailer" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/thumbnailers) + install(FILES "${PROJECT_SOURCE_DIR}/assets/glslThumbnailer.sh" +@@ -200,7 +189,7 @@ else() + set(CPACK_DEBIAN_PACKAGE_DEPENDS) + foreach(DEP ${DEBSRC_PACKAGE_DEPENDS}) + set(CPACK_DEBIAN_PACKAGE_DEPEND "${CPACK_DEBIAN_PACKAGE_DEPENDS}, ${DEP}") +- endforeach(DEP ${DEBSRC_PACKAGE_DEPENDS}) ++ endforeach(DEP ${DEBSRC_PACKAGE_DEPENDS}) + + set(CPACK_DEBIAN_BUILD_DEPENDS) + foreach(DEP ${DEBSRC_BUILD_DEPENDS}) +@@ -211,7 +200,7 @@ else() + execute_process( + COMMAND dpkg --print-architecture + OUTPUT_VARIABLE DEB_ARCHITECTURE +- OUTPUT_STRIP_TRAILING_WHITESPACE ++ OUTPUT_STRIP_TRAILING_WHITESPACE + ) + message(STATUS "package_details.cmake: your architecture is ${DEB_ARCHITECTURE}") + +@@ -220,13 +209,13 @@ else() + set(CPACK_DEBIAN_PACKAGE_PRIORITY extra ) + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Patricio Gonzalez Vivo <patriciogonzalezv...@gmail.com>") + set(CPACK_DEBIAN_DISTRIBUTION_NAME ubuntu ) +- set(CPACK_DEBIAN_DISTRIBUTION_RELEASES bionic focal ) ++ set(CPACK_DEBIAN_DISTRIBUTION_RELEASES bionic focal ) + set(CPACK_DEBIAN_CHANGELOG " * Latest development version.") + # set(CPACK_DEBIAN_RESOURCE_FILE_CHANGELOG ${PROJECT_SOURCE_DIR}/changelog) + # set(CPACK_DEBIAN_UPDATE_CHANGELOG ON) + set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${DEB_ARCHITECTURE}") + endif() +- ++ + endif() + + include(CPack) +@@ -259,4 +248,4 @@ if (PYTHON_BINDINGS) + target_include_directories(PyGlslViewer PUBLIC ${DEPS_FOLDER}) + target_link_libraries(PyGlslViewer PRIVATE vera pybind11::module) + +-endif() +\ No newline at end of file ++endif() +-- +2.50.0 + diff --git a/media-gfx/glslViewer/files/0002-Install-libvera.so-to-machine.patch b/media-gfx/glslViewer/files/0002-Install-libvera.so-to-machine.patch new file mode 100644 index 0000000000..ae9500eccf --- /dev/null +++ b/media-gfx/glslViewer/files/0002-Install-libvera.so-to-machine.patch @@ -0,0 +1,29 @@ +From d813c82384ebd642376e09d73d6254a244f2b40a Mon Sep 17 00:00:00 2001 +From: Nguyen Dinh Dang Duong <dangduong31...@gmail.com> +Date: Sat, 28 Jun 2025 04:49:46 +0700 +Subject: [PATCH 2/2] Install libvera.so to machine + +` +--- + CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a7b041c..03cf64d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -16,6 +16,11 @@ set(CMAKE_CXX_EXTENSIONS OFF) + # The compiled vera + add_subdirectory(deps) + ++install(TARGETS vera ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ + if(MSVC) + add_definitions( -DPLATFORM_WINDOWS ) + endif() +-- +2.50.0 + diff --git a/media-gfx/glslViewer/glslViewer-3.2.4.ebuild b/media-gfx/glslViewer/glslViewer-3.2.4.ebuild new file mode 100644 index 0000000000..9e2b7f88cb --- /dev/null +++ b/media-gfx/glslViewer/glslViewer-3.2.4.ebuild @@ -0,0 +1,61 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake git-r3 + +DESCRIPTION="Console-based GLSL live-coding viewer" +HOMEPAGE="https://github.com/patriciogonzalezvivo/glslViewer" +EGIT_REPO_URI="https://github.com/patriciogonzalezvivo/glslViewer.git" +EGIT_COMMIT="7eb6254cb4cedf03f1c78653f90905fe0c3b48fb" + +LICENSE="BSD-3-Clause" +SLOT="0" +KEYWORDS="~amd64" +IUSE="ffmpeg xvfb" + +DEPEND=" + media-libs/glu + sys-libs/ncurses + ffmpeg? ( + media-video/ffmpeg + ) + xvfb? ( + x11-base/xorg-server[xvfb] + ) + x11-misc/shared-mime-info +" +RDEPEND="${DEPEND}" +BDEPEND=" + dev-build/cmake + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/0001-Removed-unsafe-post-install-MIME-and-desktop-databas.patch" + "${FILESDIR}/0002-Install-libvera.so-to-machine.patch" +) + +src_configure() { + local mycmakeargs=( + -DCMAKE_EXE_LINKER_FLAGS="-ltinfo" + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + dodoc README.md +} + +pkg_postinst() { + xdg-icon-resource forceupdate || die + update-mime-database /usr/share/mime || die + update-desktop-database /usr/share/applications || die +} + +pkg_postrm() { + update-mime-database /usr/share/mime || die + update-desktop-database /usr/share/applications || die +} diff --git a/media-gfx/glslViewer/metadata.xml b/media-gfx/glslViewer/metadata.xml new file mode 100644 index 0000000000..9663296e07 --- /dev/null +++ b/media-gfx/glslViewer/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person"> +<email>dangduong31...@gmail.com</email> +<name>Nguyen Dinh Dang Duong</name> +</maintainer> +<use> +<flag name="ffmpeg">Enable ffmpeg/libav-based audio/video codec support</flag> +<flag name="xvfb">Enable support for thumbnail creation via Xvfb</flag> +</use> +</pkgmetadata>