From a73b17a6787887d4ebedaafe6005a8540e51ce8d Mon Sep 17 00:00:00 2001 From: jtt Date: Sat, 6 Jun 2026 14:18:41 +0000 Subject: [PATCH] cad/solvespace: update to 3.2 Small tweak and ok tb@ --- cad/solvespace/Makefile | 76 ++++++++----------- cad/solvespace/distinfo | 4 +- cad/solvespace/files/FindCairo.cmake | 75 ------------------ cad/solvespace/patches/patch-CMakeLists_txt | 29 +------ .../patches/patch-src_platform_guigtk_cpp | 4 +- cad/solvespace/patches/patch-src_resource_cpp | 34 --------- cad/solvespace/pkg/PLIST | 5 ++ 7 files changed, 46 insertions(+), 181 deletions(-) delete mode 100644 cad/solvespace/files/FindCairo.cmake delete mode 100644 cad/solvespace/patches/patch-src_resource_cpp diff --git a/cad/solvespace/Makefile b/cad/solvespace/Makefile index 7f4ff209dd2..980dcf0fc35 100644 --- a/cad/solvespace/Makefile +++ b/cad/solvespace/Makefile @@ -1,22 +1,16 @@ -COMMENT = parametric 2D/3D CAD program -V = 3.1 -DISTNAME = solvespace-${V} -CATEGORIES = cad -REVISION = 1 +COMMENT = parametric 2D/3D CAD program -SHARED_LIBS += slvs 0.0 +V = 3.2 +DISTNAME = solvespace-${V} -HOMEPAGE = https://solvespace.com/ +SHARED_LIBS += slvs 1.0 -MAINTAINER = Johannes Thyssen Tishman - -SITES = https://github.com/solvespace/solvespace/releases/download/v${V}/ -EXTRACT_SUFX = .tar.xz +CATEGORIES = cad +HOMEPAGE = https://solvespace.com/ +MAINTAINER = Johannes Thyssen Tishman # GPLv3+ -PERMIT_PACKAGE = Yes - -COMPILER = base-clang +PERMIT_PACKAGE = Yes WANTLIB += ${COMPILER_LIBCXX} GL GLU X11 atk-1.0 atkmm-1.6 c cairo WANTLIB += cairo-gobject cairomm-1.0 execinfo fontconfig freetype @@ -25,41 +19,37 @@ WANTLIB += glibmm-2.4 gobject-2.0 gtk-3 gtkmm-3.0 harfbuzz intl WANTLIB += json-c m pango-1.0 pangocairo-1.0 pangomm-1.4 png sigc-2.0 WANTLIB += z -BUILD_DEPENDS = devel/gettext,-runtime \ - math/eigen3 +SITES = https://github.com/solvespace/solvespace/releases/download/v${V}/ +EXTRACT_SUFX = .tar.xz -LIB_DEPENDS = devel/json-c \ - x11/gtk3mm +COMPILER = base-clang +MODULES = devel/cmake -RUN_DEPENDS = devel/desktop-file-utils \ - misc/shared-mime-info \ - math/eigen3 \ - x11/gtk+4,-guic +BUILD_DEPENDS = devel/gettext,-runtime \ + math/eigen3 -MODULES = devel/cmake +LIB_DEPENDS = devel/json-c \ + graphics/cairo \ + graphics/png \ + x11/gtk3mm -CONFIGURE_ARGS+= -DENABLE_GUI=ON \ - -DENABLE_CLI=ON \ - -DFORCE_VENDORED_Eigen3=OFF \ - -DENABLE_LTO=OFF \ - -DENABLE_COVERAGE=OFF \ - -DENABLE_TESTS=OFF \ - -DENABLE_OPENMP=OFF \ - -DENABLE_SANITIZERS=OFF \ - -DMI_SECURE=ON \ - -DMI_LIBATOMIC=OFF \ - -DMI_BUILD_TESTS=OFF \ - -DMI_OVERRIDE=OFF \ - -DMI_BUILD_SHARED=OFF \ - -DMI_BUILD_OBJECT=OFF +RUN_DEPENDS = devel/desktop-file-utils \ + misc/shared-mime-info \ + math/eigen3 \ + x11/gtk+4,-guic -MODCMAKE_POLICY_VERSION_OVERRIDE = Yes +TEST_DEPENDS = ${FULLPKGNAME}:${BUILD_PKGPATH} -# testsuite broken as is -NO_TEST = YES +CONFIGURE_ARGS+= -DENABLE_GUI=ON \ + -DENABLE_CLI=ON \ + -DFORCE_VENDORED_Eigen3=OFF \ + -DENABLE_LTO=OFF \ + -DENABLE_COVERAGE=OFF \ + -DENABLE_TESTS=ON \ + -DENABLE_OPENMP=OFF \ + -DENABLE_SANITIZERS=OFF -# add FindCairo.cmake -post-extract: - cp ${FILESDIR}/FindCairo.cmake ${WRKSRC}/cmake/ +do-test: + cd ${WRKSRC} && ${WRKBUILD}/bin/solvespace-testsuite .include diff --git a/cad/solvespace/distinfo b/cad/solvespace/distinfo index 8fb31fe1524..ca4b09b4c16 100644 --- a/cad/solvespace/distinfo +++ b/cad/solvespace/distinfo @@ -1,2 +1,2 @@ -SHA256 (solvespace-3.1.tar.xz) = NKJzzmQtDHe48QFGNzDtTq3n2Qz6v+SG8+fL9JT/Eyo= -SIZE (solvespace-3.1.tar.xz) = 46083984 +SHA256 (solvespace-3.2.tar.xz) = 2T6BZme2xvBfq8Pzy214P60qOAXEbSTijy69kbw23nY= +SIZE (solvespace-3.2.tar.xz) = 53579228 diff --git a/cad/solvespace/files/FindCairo.cmake b/cad/solvespace/files/FindCairo.cmake deleted file mode 100644 index d0130ad52f5..00000000000 --- a/cad/solvespace/files/FindCairo.cmake +++ /dev/null @@ -1,75 +0,0 @@ -# - Try to find Cairo -# Once done, this will define -# -# CAIRO_FOUND - system has Cairo -# CAIRO_INCLUDE_DIRS - the Cairo include directories -# CAIRO_LIBRARIES - link these to use Cairo -# -# Copyright (C) 2012 Raphael Kubo da Costa -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS -# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -find_package(PkgConfig) -pkg_check_modules(PC_CAIRO QUIET cairo) - -find_path(CAIRO_INCLUDE_DIRS - NAMES cairo.h - HINTS ${PC_CAIRO_INCLUDEDIR} - ${PC_CAIRO_INCLUDE_DIRS} - PATH_SUFFIXES cairo -) - -find_library(CAIRO_LIBRARIES - NAMES cairo - HINTS ${PC_CAIRO_LIBDIR} - ${PC_CAIRO_LIBRARY_DIRS} -) - -if (CAIRO_INCLUDE_DIRS) - if (EXISTS "${CAIRO_INCLUDE_DIRS}/cairo-version.h") - file(READ "${CAIRO_INCLUDE_DIRS}/cairo-version.h" CAIRO_VERSION_CONTENT) - - string(REGEX MATCH "#define +CAIRO_VERSION_MAJOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") - set(CAIRO_VERSION_MAJOR "${CMAKE_MATCH_1}") - - string(REGEX MATCH "#define +CAIRO_VERSION_MINOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") - set(CAIRO_VERSION_MINOR "${CMAKE_MATCH_1}") - - string(REGEX MATCH "#define +CAIRO_VERSION_MICRO +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") - set(CAIRO_VERSION_MICRO "${CMAKE_MATCH_1}") - - set(CAIRO_VERSION "${CAIRO_VERSION_MAJOR}.${CAIRO_VERSION_MINOR}.${CAIRO_VERSION_MICRO}") - endif () -endif () - -if ("${Cairo_FIND_VERSION}" VERSION_GREATER "${CAIRO_VERSION}") - message(FATAL_ERROR "Required version (" ${Cairo_FIND_VERSION} ") is higher than found version (" ${CAIRO_VERSION} ")") -endif () - -include(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Cairo REQUIRED_VARS CAIRO_INCLUDE_DIRS CAIRO_LIBRARIES - VERSION_VAR CAIRO_VERSION) - -mark_as_advanced( - CAIRO_INCLUDE_DIRS - CAIRO_LIBRARIES -) diff --git a/cad/solvespace/patches/patch-CMakeLists_txt b/cad/solvespace/patches/patch-CMakeLists_txt index e4b42fe0fae..0dd11b457ed 100644 --- a/cad/solvespace/patches/patch-CMakeLists_txt +++ b/cad/solvespace/patches/patch-CMakeLists_txt @@ -1,32 +1,11 @@ Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -34,9 +34,9 @@ endif() - # NOTE TO PACKAGERS: The embedded git commit hash is critical for rapid bug triage when the builds - # can come from a variety of sources. If you are mirroring the sources or otherwise build when - # the .git directory is not present, please comment the following line: --include(GetGitCommitHash) -+#include(GetGitCommitHash) - # and instead uncomment the following, adding the complete git hash of the checkout you are using: --# set(GIT_COMMIT_HASH 0000000000000000000000000000000000000000) -+set(GIT_COMMIT_HASH 70bde63cb32a7f049fa56cbdf924e2695fcb2916) - - string(SUBSTRING "${GIT_COMMIT_HASH}" 0 8 solvespace_GIT_HASH) - project(solvespace -@@ -269,7 +269,7 @@ else() - find_package(ZLIB REQUIRED) - find_package(PNG REQUIRED) - find_package(Freetype REQUIRED) -- pkg_check_modules(CAIRO REQUIRED cairo) -+ find_package(Cairo REQUIRED) - endif() - - # GUI dependencies -@@ -305,7 +305,6 @@ if(ENABLE_GUI) - find_library(APPKIT_LIBRARY AppKit REQUIRED) +@@ -381,7 +381,6 @@ if(ENABLE_GUI) + # Everything is built in else() find_package(OpenGL REQUIRED) - find_package(SpaceWare) pkg_check_modules(FONTCONFIG REQUIRED fontconfig) - pkg_check_modules(JSONC REQUIRED json-c) - pkg_check_modules(GTKMM REQUIRED gtkmm-3.0>=3.18 pangomm-1.4 x11) + if (NOT USE_QT_GUI) + pkg_check_modules(JSONC REQUIRED json-c) diff --git a/cad/solvespace/patches/patch-src_platform_guigtk_cpp b/cad/solvespace/patches/patch-src_platform_guigtk_cpp index f45ba5635d6..9be441f785a 100644 --- a/cad/solvespace/patches/patch-src_platform_guigtk_cpp +++ b/cad/solvespace/patches/patch-src_platform_guigtk_cpp @@ -3,7 +3,7 @@ don't exit the program for Glib charset Index: src/platform/guigtk.cpp --- src/platform/guigtk.cpp.orig +++ src/platform/guigtk.cpp -@@ -1505,10 +1505,7 @@ std::vector InitGui(int argc, char **argv +@@ -1626,10 +1626,7 @@ std::vector InitGui(int argc, char **argv // character set; otherwise it thinks it is always ANSI_X3.4-1968. // We set it back to C after all so that printf() and friends behave in a consistent way. setlocale(LC_ALL, ""); @@ -13,5 +13,5 @@ Index: src/platform/guigtk.cpp - } + Glib::get_charset(); setlocale(LC_ALL, "C"); - + // Let GTK parse arguments and update argc/argv. (They're passed by reference.) diff --git a/cad/solvespace/patches/patch-src_resource_cpp b/cad/solvespace/patches/patch-src_resource_cpp deleted file mode 100644 index e7797873e2b..00000000000 --- a/cad/solvespace/patches/patch-src_resource_cpp +++ /dev/null @@ -1,34 +0,0 @@ -avoid console spamming - -Index: src/resource.cpp ---- src/resource.cpp.orig -+++ src/resource.cpp -@@ -1456,12 +1456,10 @@ Translation Translation::From(const std::string &poDat - const std::string &Translation::Translate(const TranslationKey &key) { - auto it = messages.find(key); - if(it == messages.end()) { -- dbp("Missing (absent) translation for %s'%s'", key.context.c_str(), key.ident.c_str()); - messages[key].emplace_back(key.ident); - it = messages.find(key); - } - if(it->second[0].empty()) { -- dbp("Missing (empty) translation for %s'%s'", key.context.c_str(), key.ident.c_str()); - it->second[0] = key.ident; - } - if(it->second.size() != 1) { -@@ -1476,15 +1474,12 @@ const std::string &Translation::TranslatePlural(const - - auto it = messages.find(key); - if(it == messages.end()) { -- dbp("Missing (absent) translation for %s'%s'", key.context.c_str(), key.ident.c_str()); - for(unsigned i = 0; i < pluralCount; i++) { - messages[key].emplace_back(key.ident); - } - it = messages.find(key); - } - if(it->second[pluralForm].empty()) { -- dbp("Missing (empty) translation for %s'%s'[%d]", -- key.context.c_str(), key.ident.c_str(), pluralForm); - it->second[pluralForm] = key.ident; - } - return it->second[pluralForm]; diff --git a/cad/solvespace/pkg/PLIST b/cad/solvespace/pkg/PLIST index 977fdd10094..1aa0adffaae 100644 --- a/cad/solvespace/pkg/PLIST +++ b/cad/solvespace/pkg/PLIST @@ -70,6 +70,8 @@ share/solvespace/icons/graphics-window/text.png share/solvespace/icons/graphics-window/trim.png share/solvespace/icons/graphics-window/vert.png share/solvespace/icons/text-window/ +share/solvespace/icons/text-window/constraint-dimo.png +share/solvespace/icons/text-window/constraint-wo.png share/solvespace/icons/text-window/constraint.png share/solvespace/icons/text-window/construction.png share/solvespace/icons/text-window/edges.png @@ -85,10 +87,12 @@ share/solvespace/icons/text-window/shaded.png share/solvespace/icons/text-window/workplane.png share/solvespace/locales/ share/solvespace/locales.txt +share/solvespace/locales/cs_CZ.po share/solvespace/locales/de_DE.po share/solvespace/locales/en_US.po share/solvespace/locales/es_AR.po share/solvespace/locales/fr_FR.po +share/solvespace/locales/ja_JP.po share/solvespace/locales/ru_RU.po share/solvespace/locales/tr_TR.po share/solvespace/locales/uk_UA.po @@ -115,3 +119,4 @@ share/solvespace/threejs/three-r111.min.js.gz @tag update-desktop-database @tag gtk-update-icon-cache %D/share/icons/hicolor @tag update-mime-database +share/thumbnailers/solvespace.thumbnailer