From 090af0ebfdb92c263e1d8630a08f1012fc055139 Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Sun, 10 Aug 2025 21:04:00 +0200 Subject: [PATCH] jasp-desktop: split up patches into multiple files --- pkgs/by-name/ja/jasp-desktop/cmake.patch | 121 ------------------ .../disable-module-install-logic.patch | 29 +++++ .../ja/jasp-desktop/disable-renv-logic.patch | 30 +++++ .../dont-check-for-module-deps.patch | 16 +++ .../jasp-desktop/link-boost-dynamically.patch | 13 ++ pkgs/by-name/ja/jasp-desktop/package.nix | 17 ++- 6 files changed, 99 insertions(+), 127 deletions(-) delete mode 100644 pkgs/by-name/ja/jasp-desktop/cmake.patch create mode 100644 pkgs/by-name/ja/jasp-desktop/disable-module-install-logic.patch create mode 100644 pkgs/by-name/ja/jasp-desktop/disable-renv-logic.patch create mode 100644 pkgs/by-name/ja/jasp-desktop/dont-check-for-module-deps.patch create mode 100644 pkgs/by-name/ja/jasp-desktop/link-boost-dynamically.patch diff --git a/pkgs/by-name/ja/jasp-desktop/cmake.patch b/pkgs/by-name/ja/jasp-desktop/cmake.patch deleted file mode 100644 index 48b297b21548..000000000000 --- a/pkgs/by-name/ja/jasp-desktop/cmake.patch +++ /dev/null @@ -1,121 +0,0 @@ -diff --git a/Tools/CMake/Install.cmake b/Tools/CMake/Install.cmake -index edd96b0..1fbdb3c 100644 ---- a/Tools/CMake/Install.cmake -+++ b/Tools/CMake/Install.cmake -@@ -229,24 +229,10 @@ if(LINUX) - install(DIRECTORY ${CMAKE_SOURCE_DIR}/Resources/ - DESTINATION ${JASP_INSTALL_RESOURCEDIR}) - -- install( -- DIRECTORY ${MODULES_BINARY_PATH}/binary_pkgs ${MODULES_BINARY_PATH}/manifests ${MODULES_BINARY_PATH}/module_libs ${MODULES_BINARY_PATH}/Tools -- DESTINATION ${JASP_INSTALL_MODULEDIR} -- REGEX ${FILES_EXCLUDE_PATTERN} EXCLUDE -- REGEX ${FOLDERS_EXCLUDE_PATTERN} EXCLUDE) -- - install( - FILES ${MODULES_BINARY_PATH}/modules-settings.json - DESTINATION ${JASP_INSTALL_MODULEDIR} - ) -- # we do not need renv-root in an install -- #install(DIRECTORY ${MODULES_RENV_ROOT_PATH}/ -- # DESTINATION ${JASP_INSTALL_PREFIX}/lib64/renv-root) -- --if(NOT FLATPAK_USED) #because flatpak already puts renv-cache in /app/lib64 anyway -- install(DIRECTORY ${MODULES_RENV_CACHE_PATH}/ -- DESTINATION ${JASP_INSTALL_PREFIX}/lib64/renv-cache) --endif() - - #Flatpak wrapper that sets some environment variables that JASP needs - install(PROGRAMS ${CMAKE_SOURCE_DIR}/Tools/flatpak/org.jaspstats.JASP -diff --git a/Tools/CMake/Libraries.cmake b/Tools/CMake/Libraries.cmake -index a6673d9..a079021 100644 ---- a/Tools/CMake/Libraries.cmake -+++ b/Tools/CMake/Libraries.cmake -@@ -67,7 +67,7 @@ if((NOT LibArchive_FOUND) AND (NOT WIN32)) - endif() - endif() - --set(Boost_USE_STATIC_LIBS ON) -+add_definitions(-DBOOST_LOG_DYN_LINK) - find_package( - Boost 1.78 REQUIRED - COMPONENTS filesystem -@@ -185,7 +185,7 @@ if(LINUX) - endif() - - message(CHECK_START "Looking for libreadstat.so") -- find_file(LIBREADSTAT_LIBRARIES libreadstat.so -+ find_library(LIBREADSTAT_LIBRARIES libreadstat.so - HINTS ${LIBREADSTAT_LIBRARY_DIRS} REQUIRED) - - if(EXISTS ${LIBREADSTAT_LIBRARIES}) -diff --git a/Tools/CMake/Modules.cmake b/Tools/CMake/Modules.cmake -index ca8e040..875db1f 100644 ---- a/Tools/CMake/Modules.cmake -+++ b/Tools/CMake/Modules.cmake -@@ -13,19 +13,6 @@ configure_file(${PROJECT_SOURCE_DIR}/Modules/modules-settings.json - configure_file(${PROJECT_SOURCE_DIR}/Modules/install-modules.R.in - ${SCRIPT_DIRECTORY}/install-modules.R @ONLY) - --#create modules install target --add_custom_target( -- Modules -- USES_TERMINAL -- WORKING_DIRECTORY ${R_HOME_PATH} -- DEPENDS ${JASP_MODULE_BUNDLE_MANAGER_LIBRARY}/jaspModuleBundleManager -- DEPENDS ${SCRIPT_DIRECTORY}/install-modules.R -- COMMAND ${CMAKE_COMMAND} -E env "JASP_R_HOME=${R_HOME_PATH}" ${R_EXECUTABLE} --slave --no-restore --no-save -- --file=${SCRIPT_DIRECTORY}/install-modules.R -- BYPRODUCTS ${MODULES_BINARY_PATH}/bundles-downloaded.txt -- BYPRODUCTS ${MODULES_BINARY_PATH}/bundles-installed.txt -- COMMENT "------ Installing Modules" --) - - - -diff --git a/Tools/CMake/Programs.cmake b/Tools/CMake/Programs.cmake -index 4e7c052..abb5b48 100644 ---- a/Tools/CMake/Programs.cmake -+++ b/Tools/CMake/Programs.cmake -@@ -38,8 +38,9 @@ if(NOT WIN32) - endif() - - # ------ Linux Tools/Programs -- --if(LINUX) -+# We don't need to check for any dependencies that are used to build R packages -+# since we build them separately -+if(false) - - message(CHECK_START "Looking for 'gfortran'") - find_program( -diff --git a/Tools/CMake/R.cmake b/Tools/CMake/R.cmake -index 42e7b88..405b434 100644 ---- a/Tools/CMake/R.cmake -+++ b/Tools/CMake/R.cmake -@@ -867,14 +867,6 @@ else() - configure_file(${PROJECT_SOURCE_DIR}/Modules/install-renv.R.in - ${SCRIPT_DIRECTORY}/install-renv.R @ONLY) - -- --execute_process( -- COMMAND_ECHO STDOUT -- #ERROR_QUIET OUTPUT_QUIET -- WORKING_DIRECTORY ${R_HOME_PATH} -- COMMAND -- ${R_EXECUTABLE} --slave --no-restore --no-save --file=${SCRIPT_DIRECTORY}/install-renv.R --) - - if(APPLE) - # Patch renv -@@ -937,8 +929,8 @@ execute_process( - - include(FindRPackagePath) - --find_package_path(RCPP_PATH ${R_CPP_INCLUDES_LIBRARY} "Rcpp") --find_package_path(RINSIDE_PATH ${R_CPP_INCLUDES_LIBRARY} "RInside") -+find_package_path(RCPP_PATH ${R_LIBRARY_PATH} "Rcpp") -+find_package_path(RINSIDE_PATH ${R_LIBRARY_PATH} "RInside") - - set(RENV_PATH "${RENV_LIBRARY}/renv") - diff --git a/pkgs/by-name/ja/jasp-desktop/disable-module-install-logic.patch b/pkgs/by-name/ja/jasp-desktop/disable-module-install-logic.patch new file mode 100644 index 000000000000..327e6b49f158 --- /dev/null +++ b/pkgs/by-name/ja/jasp-desktop/disable-module-install-logic.patch @@ -0,0 +1,29 @@ +diff --git a/Tools/CMake/Install.cmake b/Tools/CMake/Install.cmake +index edd96b0..1fbdb3c 100644 +--- a/Tools/CMake/Install.cmake ++++ b/Tools/CMake/Install.cmake +@@ -229,24 +229,10 @@ if(LINUX) + install(DIRECTORY ${CMAKE_SOURCE_DIR}/Resources/ + DESTINATION ${JASP_INSTALL_RESOURCEDIR}) + +- install( +- DIRECTORY ${MODULES_BINARY_PATH}/binary_pkgs ${MODULES_BINARY_PATH}/manifests ${MODULES_BINARY_PATH}/module_libs ${MODULES_BINARY_PATH}/Tools +- DESTINATION ${JASP_INSTALL_MODULEDIR} +- REGEX ${FILES_EXCLUDE_PATTERN} EXCLUDE +- REGEX ${FOLDERS_EXCLUDE_PATTERN} EXCLUDE) +- + install( + FILES ${MODULES_BINARY_PATH}/modules-settings.json + DESTINATION ${JASP_INSTALL_MODULEDIR} + ) +- # we do not need renv-root in an install +- #install(DIRECTORY ${MODULES_RENV_ROOT_PATH}/ +- # DESTINATION ${JASP_INSTALL_PREFIX}/lib64/renv-root) +- +-if(NOT FLATPAK_USED) #because flatpak already puts renv-cache in /app/lib64 anyway +- install(DIRECTORY ${MODULES_RENV_CACHE_PATH}/ +- DESTINATION ${JASP_INSTALL_PREFIX}/lib64/renv-cache) +-endif() + + #Flatpak wrapper that sets some environment variables that JASP needs + install(PROGRAMS ${CMAKE_SOURCE_DIR}/Tools/flatpak/org.jaspstats.JASP diff --git a/pkgs/by-name/ja/jasp-desktop/disable-renv-logic.patch b/pkgs/by-name/ja/jasp-desktop/disable-renv-logic.patch new file mode 100644 index 000000000000..ec0b4b1c91c8 --- /dev/null +++ b/pkgs/by-name/ja/jasp-desktop/disable-renv-logic.patch @@ -0,0 +1,30 @@ +diff --git a/Tools/CMake/R.cmake b/Tools/CMake/R.cmake +index 42e7b88..405b434 100644 +--- a/Tools/CMake/R.cmake ++++ b/Tools/CMake/R.cmake +@@ -867,14 +867,6 @@ else() + configure_file(${PROJECT_SOURCE_DIR}/Modules/install-renv.R.in + ${SCRIPT_DIRECTORY}/install-renv.R @ONLY) + +- +-execute_process( +- COMMAND_ECHO STDOUT +- #ERROR_QUIET OUTPUT_QUIET +- WORKING_DIRECTORY ${R_HOME_PATH} +- COMMAND +- ${R_EXECUTABLE} --slave --no-restore --no-save --file=${SCRIPT_DIRECTORY}/install-renv.R +-) + + if(APPLE) + # Patch renv +@@ -937,8 +929,8 @@ execute_process( + + include(FindRPackagePath) + +-find_package_path(RCPP_PATH ${R_CPP_INCLUDES_LIBRARY} "Rcpp") +-find_package_path(RINSIDE_PATH ${R_CPP_INCLUDES_LIBRARY} "RInside") ++find_package_path(RCPP_PATH ${R_LIBRARY_PATH} "Rcpp") ++find_package_path(RINSIDE_PATH ${R_LIBRARY_PATH} "RInside") + + set(RENV_PATH "${RENV_LIBRARY}/renv") + diff --git a/pkgs/by-name/ja/jasp-desktop/dont-check-for-module-deps.patch b/pkgs/by-name/ja/jasp-desktop/dont-check-for-module-deps.patch new file mode 100644 index 000000000000..3867b6ed84f9 --- /dev/null +++ b/pkgs/by-name/ja/jasp-desktop/dont-check-for-module-deps.patch @@ -0,0 +1,16 @@ +diff --git a/Tools/CMake/Programs.cmake b/Tools/CMake/Programs.cmake +index 4e7c052..abb5b48 100644 +--- a/Tools/CMake/Programs.cmake ++++ b/Tools/CMake/Programs.cmake +@@ -38,8 +38,9 @@ if(NOT WIN32) + endif() + + # ------ Linux Tools/Programs +- +-if(LINUX) ++# We don't need to check for any dependencies that are used to build R packages ++# since we build them separately ++if(false) + + message(CHECK_START "Looking for 'gfortran'") + find_program( diff --git a/pkgs/by-name/ja/jasp-desktop/link-boost-dynamically.patch b/pkgs/by-name/ja/jasp-desktop/link-boost-dynamically.patch new file mode 100644 index 000000000000..7505155dd11c --- /dev/null +++ b/pkgs/by-name/ja/jasp-desktop/link-boost-dynamically.patch @@ -0,0 +1,13 @@ +diff --git a/Tools/CMake/Libraries.cmake b/Tools/CMake/Libraries.cmake +index a6673d9..a079021 100644 +--- a/Tools/CMake/Libraries.cmake ++++ b/Tools/CMake/Libraries.cmake +@@ -67,7 +67,7 @@ if((NOT LibArchive_FOUND) AND (NOT WIN32)) + endif() + endif() + +-set(Boost_USE_STATIC_LIBS ON) ++add_definitions(-DBOOST_LOG_DYN_LINK) + find_package( + Boost 1.78 REQUIRED + COMPONENTS filesystem diff --git a/pkgs/by-name/ja/jasp-desktop/package.nix b/pkgs/by-name/ja/jasp-desktop/package.nix index 9ab3be87e49d..d26980c3bdac 100644 --- a/pkgs/by-name/ja/jasp-desktop/package.nix +++ b/pkgs/by-name/ja/jasp-desktop/package.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitHub, + fetchpatch, buildEnv, linkFarm, @@ -63,11 +64,15 @@ stdenv.mkDerivation { inherit version src; patches = [ - # - ensure boost is linked dynamically - # - fix readstat's find logic - # - disable some of the renv logic - # - dont't check for dependencies required for building modules - ./cmake.patch + (fetchpatch { + name = "readstat-use-find-library.patch"; + url = "https://github.com/jasp-stats/jasp-desktop/commit/87c5a1f4724833aed0f7758499b917b3107ee196.patch"; + hash = "sha256-0CrMKJkZpS97KmQFvZPyV1h3C7eKVr/IT0dARYBoKFo="; + }) + ./link-boost-dynamically.patch + ./disable-module-install-logic.patch # don't try to install modules via cmake + ./disable-renv-logic.patch + ./dont-check-for-module-deps.patch # dont't check for dependencies required for building modules ]; cmakeFlags = [ @@ -100,7 +105,7 @@ stdenv.mkDerivation { qt6.qt5compat ]; - # needed so that JASPEngine can find libRInside.so + # needed so that the linker can find libRInside.so env.NIX_LDFLAGS = "-L${rPackages.RInside}/library/RInside/lib"; postInstall = ''