jasp-desktop: split up patches into multiple files (#432595)

This commit is contained in:
Justin Bedő 2025-08-17 08:16:00 +10:00 committed by GitHub
commit a29f1e65e1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 99 additions and 127 deletions

View File

@ -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")

View File

@ -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

View File

@ -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")

View File

@ -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(

View File

@ -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

View File

@ -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 = ''