mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 07:13:23 +01:00
Merge pull request #266739 from TomaSajt/jasp
jasp-desktop: init at 0.18.2
This commit is contained in:
commit
7370e0226d
4 changed files with 302 additions and 1 deletions
46
pkgs/by-name/ja/jasp-desktop/cmake.patch
Normal file
46
pkgs/by-name/ja/jasp-desktop/cmake.patch
Normal file
|
@ -0,0 +1,46 @@
|
|||
diff --git a/Tools/CMake/Libraries.cmake b/Tools/CMake/Libraries.cmake
|
||||
index cc4681a..f484013 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
|
||||
@@ -178,10 +178,10 @@ if(LINUX)
|
||||
set(LIBREADSTAT_INCLUDE_DIRS /app/include)
|
||||
set(LIBREADSTAT_LIBRARY_DIRS /app/lib)
|
||||
else()
|
||||
- set(LIBREADSTAT_INCLUDE_DIRS /usr/local/include /usr/include)
|
||||
+ set(LIBREADSTAT_INCLUDE_DIRS @readstat@/include /usr/include)
|
||||
# The last two library paths handle the two most common multiarch cases.
|
||||
# Other multiarch-compliant paths may come up but should be rare.
|
||||
- set(LIBREADSTAT_LIBRARY_DIRS /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/aarch64-linux-gnu)
|
||||
+ set(LIBREADSTAT_LIBRARY_DIRS @readstat@/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/aarch64-linux-gnu)
|
||||
endif()
|
||||
|
||||
message(CHECK_START "Looking for libreadstat.so")
|
||||
diff --git a/Tools/CMake/Programs.cmake b/Tools/CMake/Programs.cmake
|
||||
index dbd089d..ef6857a 100644
|
||||
--- a/Tools/CMake/Programs.cmake
|
||||
+++ b/Tools/CMake/Programs.cmake
|
||||
@@ -39,6 +39,7 @@ endif()
|
||||
|
||||
# ------ Linux Tools/Programs
|
||||
|
||||
+#[[
|
||||
if(LINUX)
|
||||
|
||||
message(CHECK_START "Looking for 'gfortran'")
|
||||
@@ -81,6 +82,7 @@ if(LINUX)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
+]]#
|
||||
|
||||
# ----------------------
|
||||
|
134
pkgs/by-name/ja/jasp-desktop/modules.nix
Normal file
134
pkgs/by-name/ja/jasp-desktop/modules.nix
Normal file
|
@ -0,0 +1,134 @@
|
|||
{ R
|
||||
, rPackages
|
||||
, fetchFromGitHub
|
||||
, jasp-src
|
||||
, jasp-version
|
||||
}:
|
||||
|
||||
with rPackages;
|
||||
let
|
||||
jaspColumnEncoder-src = fetchFromGitHub {
|
||||
owner = "jasp-stats";
|
||||
repo = "jaspColumnEncoder";
|
||||
rev = "c54987bb25de8963866ae69ad3a6ae5a9a9f1240";
|
||||
hash = "sha256-aWfRG7DXO1MYFvmMLkX/xtHvGeIhFRcRDrVBrhkvYuI=";
|
||||
};
|
||||
|
||||
jaspGraphs = buildRPackage {
|
||||
name = "jaspGraphs-${jasp-version}";
|
||||
version = jasp-version;
|
||||
|
||||
src = jasp-src;
|
||||
sourceRoot = "${jasp-src.name}/Engine/jaspGraphs";
|
||||
|
||||
propagatedBuildInputs = [ ggplot2 gridExtra gtable lifecycle jsonlite R6 RColorBrewer rlang scales viridisLite ];
|
||||
};
|
||||
|
||||
jaspBase = buildRPackage {
|
||||
name = "jaspBase-${jasp-version}";
|
||||
version = jasp-version;
|
||||
|
||||
src = jasp-src;
|
||||
sourceRoot = "${jasp-src.name}/Engine/jaspBase";
|
||||
|
||||
env.INCLUDE_DIR = "../inst/include/jaspColumnEncoder";
|
||||
|
||||
postPatch = ''
|
||||
mkdir -p inst/include
|
||||
cp -r --no-preserve=all ${jaspColumnEncoder-src} inst/include/jaspColumnEncoder
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [ cli codetools ggplot2 gridExtra gridGraphics jaspGraphs jsonlite lifecycle modules officer pkgbuild plyr qgraph ragg R6 Rcpp renv remotes rjson rvg svglite systemfonts withr ];
|
||||
};
|
||||
|
||||
stanova = buildRPackage {
|
||||
name = "stanova";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bayesstuff";
|
||||
repo = "stanova";
|
||||
rev = "988ad8e07cda1674b881570a85502be7795fbd4e";
|
||||
hash = "sha256-tAeHqTHao2KVRNFBDWmuF++H31aNN6O1ss1Io500QBY=";
|
||||
};
|
||||
propagatedBuildInputs = [ emmeans lme4 coda rstan MASS ];
|
||||
};
|
||||
|
||||
bstats = buildRPackage {
|
||||
name = "bstats";
|
||||
src = fetchFromGitHub {
|
||||
owner = "AlexanderLyNL";
|
||||
repo = "bstats";
|
||||
rev = "42d34c18df08d233825bae34fdc0dfa0cd70ce8c";
|
||||
hash = "sha256-N2KmbTPbyvzsZTWBRE2x7bteccnzokUWDOB4mOWUdJk=";
|
||||
};
|
||||
propagatedBuildInputs = [ hypergeo purrr SuppDists ];
|
||||
};
|
||||
|
||||
flexplot = buildRPackage {
|
||||
name = "flexplot";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dustinfife";
|
||||
repo = "flexplot";
|
||||
rev = "4223ad5fb56028018b964d6f9f5aa5bac8710821";
|
||||
hash = "sha256-L+Ed2bIWjq3ZIAGookp8dAjDSeldEbcwynwFVVZ9IcU=";
|
||||
};
|
||||
propagatedBuildInputs = [ cowplot MASS tibble withr dplyr magrittr forcats purrr plyr R6 ggplot2 patchwork ggsci lme4 party mgcv rlang ];
|
||||
};
|
||||
|
||||
# conting has been removed from CRAN
|
||||
conting' = buildRPackage {
|
||||
name = "conting";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vandenman";
|
||||
repo = "conting";
|
||||
rev = "03a4eb9a687e015d602022a01d4e638324c110c8";
|
||||
hash = "sha256-Sp09YZz1WGyefn31Zy1qGufoKjtuEEZHO+wJvoLArf0=";
|
||||
};
|
||||
propagatedBuildInputs = [ mvtnorm gtools tseries coda ];
|
||||
};
|
||||
|
||||
buildJaspModule = name: deps: buildRPackage {
|
||||
name = "${name}-${jasp-version}";
|
||||
version = jasp-version;
|
||||
src = jasp-src;
|
||||
sourceRoot = "${jasp-src.name}/Modules/${name}";
|
||||
propagatedBuildInputs = deps;
|
||||
};
|
||||
in
|
||||
{
|
||||
engine = { inherit jaspBase jaspGraphs; };
|
||||
modules = rec {
|
||||
jaspAcceptanceSampling = buildJaspModule "jaspAcceptanceSampling" [ abtest BayesFactor conting' ggplot2 jaspBase jaspGraphs plyr stringr vcd vcdExtra AcceptanceSampling ];
|
||||
jaspAnova = buildJaspModule "jaspAnova" [ afex BayesFactor boot car colorspace emmeans ggplot2 jaspBase jaspDescriptives jaspGraphs jaspTTests KernSmooth matrixStats multcomp onewaytests plyr stringi stringr restriktor ];
|
||||
jaspAudit = buildJaspModule "jaspAudit" [ bstats extraDistr ggplot2 ggrepel jaspBase jaspGraphs jfa ];
|
||||
jaspBain = buildJaspModule "jaspBain" [ bain lavaan ggplot2 semPlot stringr jaspBase jaspGraphs jaspSem ];
|
||||
jaspBsts = buildJaspModule "jaspBsts" [ Boom bsts ggplot2 jaspBase jaspGraphs matrixStats reshape2 ];
|
||||
jaspCircular = buildJaspModule "jaspCircular" [ jaspBase jaspGraphs circular ggplot2 ];
|
||||
jaspCochrane = buildJaspModule "jaspCochrane" [ jaspBase jaspGraphs jaspDescriptives jaspMetaAnalysis ];
|
||||
jaspDescriptives = buildJaspModule "jaspDescriptives" [ ggplot2 ggrepel jaspBase jaspGraphs ];
|
||||
jaspDistributions = buildJaspModule "jaspDistributions" [ car fitdistrplus ggplot2 goftest gnorm jaspBase jaspGraphs MASS sgt sn ];
|
||||
jaspEquivalenceTTests = buildJaspModule "jaspEquivalenceTTests" [ BayesFactor ggplot2 jaspBase jaspGraphs metaBMA TOSTER jaspTTests ];
|
||||
jaspFactor = buildJaspModule "jaspFactor" [ ggplot2 jaspBase jaspGraphs jaspSem lavaan psych qgraph reshape2 semPlot GPArotation Rcsdp semTools ];
|
||||
jaspFrequencies = buildJaspModule "jaspFrequencies" [ abtest BayesFactor conting' multibridge ggplot2 jaspBase jaspGraphs plyr stringr vcd vcdExtra ];
|
||||
jaspJags = buildJaspModule "jaspJags" [ coda ggplot2 ggtext hexbin jaspBase jaspGraphs rjags scales stringr ];
|
||||
jaspLearnBayes = buildJaspModule "jaspLearnBayes" [ extraDistr ggplot2 HDInterval jaspBase jaspGraphs MASS MCMCpack MGLM scales ggalluvial ragg runjags ggdist png posterior ];
|
||||
jaspLearnStats = buildJaspModule "jaspLearnStats" [ extraDistr ggplot2 jaspBase jaspGraphs jaspDistributions jaspDescriptives jaspTTests ggforce tidyr igraph ];
|
||||
jaspMachineLearning = buildJaspModule "jaspMachineLearning" [ kknn AUC cluster colorspace DALEX dbscan e1071 fpc gbm Gmedian ggparty ggdendro ggnetwork ggplot2 ggrepel ggridges glmnet jaspBase jaspGraphs MASS mvnormalTest neuralnet network partykit plyr randomForest rpart ROCR Rtsne signal ];
|
||||
jaspMetaAnalysis = buildJaspModule "jaspMetaAnalysis" [ dplyr ggplot2 jaspBase jaspGraphs MASS metaBMA metafor psych purrr rstan stringr tibble tidyr weightr BayesTools RoBMA metamisc ggmcmc pema ];
|
||||
jaspMixedModels = buildJaspModule "jaspMixedModels" [ afex emmeans ggplot2 ggpol jaspBase jaspGraphs lme4 loo mgcv rstan rstanarm stanova withr ];
|
||||
jaspNetwork = buildJaspModule "jaspNetwork" [ bootnet BDgraph corpcor dplyr foreach ggplot2 gtools HDInterval huge IsingSampler jaspBase jaspGraphs mvtnorm qgraph reshape2 snow stringr ];
|
||||
jaspPower = buildJaspModule "jaspPower" [ pwr jaspBase jaspGraphs ];
|
||||
jaspPredictiveAnalytics = buildJaspModule "jaspPredictiveAnalytics" [ jaspBase jaspGraphs bsts bssm precrec reshape2 Boom lubridate prophet BART EBMAforecast imputeTS ];
|
||||
jaspProcess = buildJaspModule "jaspProcess" [ dagitty ggplot2 ggraph jaspBase jaspGraphs ];
|
||||
jaspProphet = buildJaspModule "jaspProphet" [ rstan ggplot2 jaspBase jaspGraphs prophet scales ];
|
||||
jaspQualityControl = buildJaspModule "jaspQualityControl" [ car cowplot daewr desirability DoE_base EnvStats FAdist fitdistrplus FrF2 ggplot2 ggrepel goftest ggpp irr jaspBase jaspDescriptives jaspGraphs mle_tools psych qcc rsm Rspc tidyr tibble vipor weibullness ];
|
||||
jaspRegression = buildJaspModule "jaspRegression" [ BAS boot bstats combinat emmeans ggplot2 ggrepel hmeasure jaspAnova jaspBase jaspDescriptives jaspGraphs jaspTTests lmtest logistf MASS matrixStats mdscore ppcor purrr Rcpp statmod VGAM ];
|
||||
jaspReliability = buildJaspModule "jaspReliability" [ Bayesrel coda ggplot2 ggridges irr jaspBase jaspGraphs LaplacesDemon lme4 MASS psych ];
|
||||
jaspRobustTTests = buildJaspModule "jaspRobustTTests" [ RoBTT ggplot2 jaspBase jaspGraphs ];
|
||||
jaspSem = buildJaspModule "jaspSem" [ forcats ggplot2 jaspBase jaspGraphs lavaan cSEM reshape2 semPlot semTools stringr tibble tidyr ];
|
||||
jaspSummaryStatistics = buildJaspModule "jaspSummaryStatistics" [ BayesFactor bstats jaspBase jaspFrequencies jaspGraphs jaspRegression jaspTTests jaspAnova jaspDescriptives SuppDists bayesplay ];
|
||||
jaspSurvival = buildJaspModule "jaspSurvival" [ survival survminer jaspBase jaspGraphs ];
|
||||
jaspTTests = buildJaspModule "jaspTTests" [ BayesFactor car ggplot2 jaspBase jaspGraphs logspline plotrix plyr ];
|
||||
jaspTimeSeries = buildJaspModule "jaspTimeSeries" [ jaspBase jaspGraphs forecast ];
|
||||
jaspVisualModeling = buildJaspModule "jaspVisualModeling" [ flexplot jaspBase jaspGraphs ];
|
||||
};
|
||||
}
|
121
pkgs/by-name/ja/jasp-desktop/package.nix
Normal file
121
pkgs/by-name/ja/jasp-desktop/package.nix
Normal file
|
@ -0,0 +1,121 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, callPackage
|
||||
, buildEnv
|
||||
, linkFarm
|
||||
, substituteAll
|
||||
, R
|
||||
, rPackages
|
||||
, cmake
|
||||
, ninja
|
||||
, pkg-config
|
||||
, boost
|
||||
, libarchive
|
||||
, readstat
|
||||
, qt6
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.18.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jasp-stats";
|
||||
repo = "jasp-desktop";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-W0wYvk5T9srE1cOyGgahfGxEookdOgVcnzqH9SkFyo8=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
inherit (callPackage ./modules.nix {
|
||||
jasp-src = src;
|
||||
jasp-version = version;
|
||||
}) engine modules;
|
||||
|
||||
# Merges ${R}/lib/R with all used R packages (even propagated ones)
|
||||
customREnv = buildEnv {
|
||||
name = "jasp-${version}-env";
|
||||
paths = [
|
||||
"${R}/lib/R"
|
||||
rPackages.RInside
|
||||
engine.jaspBase # Should already be propagated from modules, but include it again, just in case
|
||||
] ++ lib.attrValues modules;
|
||||
};
|
||||
|
||||
modulesDir = linkFarm "jasp-${version}-modules"
|
||||
(lib.mapAttrsToList (name: drv: { name = name; path = "${drv}/library"; }) modules);
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "jasp-desktop";
|
||||
inherit version src;
|
||||
|
||||
patches = [
|
||||
# remove unused cmake deps, ensure boost is dynamically linked, patch readstat path
|
||||
(substituteAll {
|
||||
src = ./cmake.patch;
|
||||
inherit readstat;
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DGITHUB_PAT=dummy"
|
||||
"-DGITHUB_PAT_DEF=dummy"
|
||||
"-DINSTALL_R_FRAMEWORK=OFF"
|
||||
"-DLINUX_LOCAL_BUILD=OFF"
|
||||
"-DINSTALL_R_MODULES=OFF"
|
||||
"-DCUSTOM_R_PATH=${customREnv}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
pkg-config
|
||||
qt6.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
customREnv
|
||||
boost
|
||||
libarchive
|
||||
readstat
|
||||
] ++ (with qt6; [
|
||||
qtbase
|
||||
qtdeclarative
|
||||
qtwebengine
|
||||
qtsvg
|
||||
qt5compat
|
||||
]);
|
||||
|
||||
env.NIX_LDFLAGS = "-L${rPackages.RInside}/library/RInside/lib";
|
||||
|
||||
postInstall = ''
|
||||
# Remove unused cache locations
|
||||
rm -r $out/lib64 $out/Modules
|
||||
|
||||
# Remove flatpak proxy script
|
||||
rm $out/bin/org.jaspstats.JASP
|
||||
substituteInPlace $out/share/applications/org.jaspstats.JASP.desktop \
|
||||
--replace "Exec=org.jaspstats.JASP" "Exec=JASP"
|
||||
|
||||
# symlink modules from the store
|
||||
ln -s ${modulesDir} $out/Modules
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit modules engine;
|
||||
env = customREnv;
|
||||
};
|
||||
|
||||
meta = {
|
||||
changelog = "https://jasp-stats.org/release-notes";
|
||||
description = "A complete statistical package for both Bayesian and Frequentist statistical methods";
|
||||
homepage = "https://github.com/jasp-stats/jasp-desktop";
|
||||
license = lib.licenses.agpl3;
|
||||
mainProgram = "JASP";
|
||||
maintainers = with lib.maintainers; [ tomasajt ];
|
||||
# JASP's cmake build steps are really different on Darwin
|
||||
# Perhaps the Darwin-specific things could be changed to be the same as Linux
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -618,7 +618,7 @@ let
|
|||
LCMCR = [ pkgs.gsl ];
|
||||
BNSP = [ pkgs.gsl ];
|
||||
scModels = [ pkgs.mpfr.dev ];
|
||||
multibridge = [ pkgs.mpfr.dev ];
|
||||
multibridge = with pkgs; [ pkg-config mpfr.dev ];
|
||||
RcppCWB = with pkgs; [ pcre.dev glib.dev ];
|
||||
redux = [ pkgs.hiredis ];
|
||||
RmecabKo = [ pkgs.mecab ];
|
||||
|
|
Loading…
Reference in a new issue