rPackages.sparklyr: improve onLoad logic

This commit is contained in:
TomaSajt
2025-06-19 08:40:52 +02:00
parent 7fe54ed9e7
commit 0d8030ace6
+11 -5
View File
@@ -2572,11 +2572,17 @@ let
sparklyr = old.sparklyr.overrideAttrs (attrs: {
# Pyspark's spark is full featured and better maintained than pkgs.spark
preConfigure = ''
substituteInPlace R/zzz.R \
--replace ".onLoad <- function(...) {" \
".onLoad <- function(...) {
Sys.setenv(\"SPARK_HOME\" = Sys.getenv(\"SPARK_HOME\", unset = \"${pkgs.python3Packages.pyspark}/${pkgs.python3Packages.python.sitePackages}/pyspark\"))
Sys.setenv(\"JAVA_HOME\" = Sys.getenv(\"JAVA_HOME\", unset = \"${pkgs.jdk}\"))"
if grep "onLoad" R/zzz.R; then
echo "onLoad is already present, patch needs to be updated!"
exit 1
fi
cat >> R/zzz.R <<EOF
.onLoad <- function(...) {
Sys.setenv("SPARK_HOME" = Sys.getenv("SPARK_HOME", unset = "${pkgs.python3Packages.pyspark}/${pkgs.python3Packages.python.sitePackages}/pyspark"))
Sys.setenv("JAVA_HOME" = Sys.getenv("JAVA_HOME", unset = "${pkgs.jdk}"))
}
EOF
'';
});