From 792ccef2c82a055a2cc4801de028312b0b1199ea Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Sat, 4 Dec 2021 22:43:26 +0100 Subject: [PATCH] Bump Nextcloud to latest version --- DOCUMENTATION.md | 4 + .../system/quatresaisons/nextcloud.nix | 20 +++-- modules/private/websites/bakeer/cloud.nix | 8 +- .../websites/patrick_fodella/altermondia.nix | 13 ++- .../websites/ressourcerie_banon/cloud.nix | 8 +- .../private/websites/tools/cloud/default.nix | 24 ++++-- modules/private/websites/tools/cloud/farm.nix | 79 ++++++++++++------- pkgs/webapps/default.nix | 5 +- pkgs/webapps/nextcloud/apps/apporder.nix | 21 +++-- pkgs/webapps/nextcloud/apps/audioplayer.nix | 28 +++++-- pkgs/webapps/nextcloud/apps/bookmarks.nix | 22 ++++-- pkgs/webapps/nextcloud/apps/calendar.nix | 22 ++++-- pkgs/webapps/nextcloud/apps/carnet.nix | 28 +++++-- pkgs/webapps/nextcloud/apps/circles.nix | 27 +++++-- pkgs/webapps/nextcloud/apps/contacts.nix | 22 ++++-- pkgs/webapps/nextcloud/apps/cookbook.nix | 32 +++++--- pkgs/webapps/nextcloud/apps/deck.nix | 42 ++++++++-- pkgs/webapps/nextcloud/apps/drawio.nix | 17 ++++ pkgs/webapps/nextcloud/apps/external.nix | 20 +++++ pkgs/webapps/nextcloud/apps/extract.nix | 28 +++++-- .../webapps/nextcloud/apps/files_markdown.nix | 28 +++++-- pkgs/webapps/nextcloud/apps/files_mindmap.nix | 42 +++++++--- .../webapps/nextcloud/apps/files_readmemd.nix | 22 ++++-- pkgs/webapps/nextcloud/apps/flowupload.nix | 31 ++++++-- pkgs/webapps/nextcloud/apps/gpxedit.nix | 40 +++++++--- pkgs/webapps/nextcloud/apps/gpxpod.nix | 47 ++++++++--- pkgs/webapps/nextcloud/apps/groupfolders.nix | 34 ++++++++ pkgs/webapps/nextcloud/apps/impersonate.nix | 41 ++++++++-- pkgs/webapps/nextcloud/apps/keeweb.nix | 40 ++++++---- pkgs/webapps/nextcloud/apps/maps.nix | 22 ++++-- pkgs/webapps/nextcloud/apps/metadata.nix | 29 +++++-- pkgs/webapps/nextcloud/apps/music.nix | 30 +++++-- pkgs/webapps/nextcloud/apps/notes.nix | 22 ++++-- pkgs/webapps/nextcloud/apps/ocsms.nix | 31 +++++--- pkgs/webapps/nextcloud/apps/onlyoffice.nix | 16 ++++ pkgs/webapps/nextcloud/apps/passman.nix | 25 +++--- pkgs/webapps/nextcloud/apps/polls.nix | 28 +++++-- pkgs/webapps/nextcloud/apps/social.nix | 21 +++-- pkgs/webapps/nextcloud/apps/spreed.nix | 40 ++++++++-- .../nextcloud/apps/talk_matterbridge.nix | 16 ++++ pkgs/webapps/nextcloud/apps/tasks.nix | 22 ++++-- pkgs/webapps/nextcloud/default.nix | 36 ++++++--- 42 files changed, 829 insertions(+), 304 deletions(-) create mode 100644 pkgs/webapps/nextcloud/apps/drawio.nix create mode 100644 pkgs/webapps/nextcloud/apps/external.nix create mode 100644 pkgs/webapps/nextcloud/apps/groupfolders.nix create mode 100644 pkgs/webapps/nextcloud/apps/onlyoffice.nix create mode 100644 pkgs/webapps/nextcloud/apps/talk_matterbridge.nix diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md index 6c68680..25006ce 100644 --- a/DOCUMENTATION.md +++ b/DOCUMENTATION.md @@ -236,6 +236,10 @@ Nextcloud --------- - Do not skip major versions! +- Update all the apps: check on https://apps.nextcloud.com/ and build with + ``` + nix-build -E "with import {};webapps.nextcloud.withApps (a: builtins.attrValues webapps.nextcloud.allApps)" + ``` - Put nextcloud in maintenance mode : ``` nextcloud-occ maintenance:mode --on diff --git a/modules/private/system/quatresaisons/nextcloud.nix b/modules/private/system/quatresaisons/nextcloud.nix index 89d69d5..2f6aafd 100644 --- a/modules/private/system/quatresaisons/nextcloud.nix +++ b/modules/private/system/quatresaisons/nextcloud.nix @@ -1,12 +1,10 @@ { lib, pkgs, config, ... }: let - nextcloud = pkgs.webapps.nextcloud.withApps (a: [ - a.apporder a.audioplayer a.bookmarks a.calendar a.carnet a.circles - a.contacts a.cookbook a.deck a.extract a.files_markdown - a.files_readmemd a.flowupload a.gpxedit a.gpxpod a.keeweb a.maps - a.metadata a.music a.notes a.ocsms a.passman a.polls a.spreed - a.social a.tasks - ]); + phpPackage = (pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis all.apcu all.opcache all.imagick ])).override { extraConfig = '' + apc.enable_cli = 1 + ''; + }; + nextcloud = pkgs.webapps.nextcloud_22.withApps (a: [ a.calendar a.contacts ]); varDir = "/var/lib/nextcloud"; phpFpm = rec { basedir = builtins.concatStringsSep ":" ([ nextcloud varDir ] ++ nextcloud.apps); @@ -95,8 +93,8 @@ in { cd ${nextcloud} NEXTCLOUD_CONFIG_DIR="${nextcloud}/config" \ exec \ - sudo -E -u wwwrun ${pkgs.php74}/bin/php \ - -c ${pkgs.php74}/etc/php.ini \ + sudo -E -u wwwrun ${phpPackage}/bin/php \ + -c ${phpPackage}/etc/php.ini \ occ $* ''; in [ occ ]; @@ -119,7 +117,7 @@ in { user = "wwwrun"; group = "wwwrun"; settings = phpFpm.pool; - phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis all.apcu all.opcache all.imagick ]); + inherit phpPackage; }; services.cron = { @@ -129,7 +127,7 @@ in { #! ${pkgs.stdenv.shell} export LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive export PATH=/run/wrappers/bin:$PATH - ${pkgs.php74}/bin/php -d memory_limit=512M -f ${nextcloud}/cron.php + ${phpPackage}/bin/php -d memory_limit=512M -f ${nextcloud}/cron.php ''; in [ '' diff --git a/modules/private/websites/bakeer/cloud.nix b/modules/private/websites/bakeer/cloud.nix index bf78317..554ffd4 100644 --- a/modules/private/websites/bakeer/cloud.nix +++ b/modules/private/websites/bakeer/cloud.nix @@ -1,19 +1,21 @@ { lib, pkgs, config, ... }: let cfg = config.myServices.websites.bakeer.cloud; - nextcloud = config.myServices.tools.cloud.farm.package; in { options.myServices.websites.bakeer.cloud.enable = lib.mkEnableOption "enable Bakeer’s cloud"; config = lib.mkIf cfg.enable { - myServices.tools.cloud.farm.instances = [ "bakeer" ]; + myServices.tools.cloud.farm.instances.bakeer = { + nextcloud = pkgs.webapps.nextcloud_22; + apps = a: [ a.impersonate ]; + }; services.websites.env.production.modules = [ "proxy_fcgi" ]; services.websites.env.production.vhostConfs.bakeer = { certName = "bakeer"; certMainHost = "bakeer.immae.eu"; addToCerts = true; hosts = ["bakeer.immae.eu" "baxsolution.immae.eu"]; - root = nextcloud; + root = config.myServices.tools.cloud.farm.rootDirs.bakeer; extraConfig = [ config.myServices.tools.cloud.farm.vhosts.bakeer ]; diff --git a/modules/private/websites/patrick_fodella/altermondia.nix b/modules/private/websites/patrick_fodella/altermondia.nix index 2a41aa3..84886e0 100644 --- a/modules/private/websites/patrick_fodella/altermondia.nix +++ b/modules/private/websites/patrick_fodella/altermondia.nix @@ -4,6 +4,8 @@ let varDir = "/var/lib/ftp/patrick_fodella/altermondia"; apacheUser = config.services.httpd.Prod.user; apacheGroup = config.services.httpd.Prod.group; + binEnvPaths = [ pkgs.zip ]; + binEnv = pkgs.buildEnv { paths = binEnvPaths; name = "bin-env";}; in { options.myServices.websites.patrick_fodella.altermondia.enable = lib.mkEnableOption "enable Patrick Fodella Altermondia's website"; @@ -25,11 +27,14 @@ in { "listen.owner" = apacheUser; "listen.group" = apacheGroup; - "pm" = "ondemand"; - "pm.max_children" = "5"; - "pm.process_idle_timeout" = "60"; + "pm" = "dynamic"; + "pm.max_children" = "20"; + "pm.start_servers" = "2"; + "pm.min_spare_servers" = "1"; + "pm.max_spare_servers" = "3"; - "php_admin_value[open_basedir]" = "/var/lib/php/sessions/patrick_fodella_altermondia:${varDir}:/tmp"; + "env[BIN_ENV]" = "${binEnv}/bin"; + "php_admin_value[open_basedir]" = "${binEnv}:${builtins.concatStringsSep ":" binEnvPaths}:/var/lib/php/sessions/patrick_fodella_altermondia:${varDir}:/tmp"; "php_admin_value[session.save_path]" = "/var/lib/php/sessions/patrick_fodella_altermondia"; }; phpOptions = config.services.phpfpm.phpOptions + '' diff --git a/modules/private/websites/ressourcerie_banon/cloud.nix b/modules/private/websites/ressourcerie_banon/cloud.nix index 5179218..5ddd952 100644 --- a/modules/private/websites/ressourcerie_banon/cloud.nix +++ b/modules/private/websites/ressourcerie_banon/cloud.nix @@ -1,18 +1,20 @@ { lib, pkgs, config, ... }: let cfg = config.myServices.websites.ressourcerie_banon.cloud; - nextcloud = config.myServices.tools.cloud.farm.package; in { options.myServices.websites.ressourcerie_banon.cloud.enable = lib.mkEnableOption "enable Ressourcerie Banon’s cloud"; config = lib.mkIf cfg.enable { - myServices.tools.cloud.farm.instances = [ "ressourcerie_banon" ]; + myServices.tools.cloud.farm.instances.ressourcerie_banon = { + nextcloud = pkgs.webapps.nextcloud_22; + apps = a: [ a.calendar ]; + }; services.websites.env.production.modules = [ "proxy_fcgi" ]; services.websites.env.production.vhostConfs.ressourcerie_banon_cloud = { certName = "ressourcerie_banon"; addToCerts = true; hosts = ["cloud.le-garage-autonome.org"]; - root = nextcloud; + root = config.myServices.tools.cloud.farm.rootDirs.ressourcerie_banon; extraConfig = [ config.myServices.tools.cloud.farm.vhosts.ressourcerie_banon ]; }; }; diff --git a/modules/private/websites/tools/cloud/default.nix b/modules/private/websites/tools/cloud/default.nix index 134d1bc..a09b629 100644 --- a/modules/private/websites/tools/cloud/default.nix +++ b/modules/private/websites/tools/cloud/default.nix @@ -1,10 +1,14 @@ { lib, pkgs, config, ... }: let - nextcloud = pkgs.webapps.nextcloud.withApps (a: [ + phpPackage = (pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis all.apcu all.opcache all.imagick ])).override { extraConfig = '' + apc.enable_cli = 1 + ''; + }; + nextcloud = pkgs.webapps.nextcloud_22.withApps (a: [ a.apporder a.audioplayer a.bookmarks a.calendar a.carnet a.contacts a.cookbook a.deck a.extract a.files_markdown a.files_readmemd a.files_mindmap a.flowupload a.gpxedit a.gpxpod a.keeweb a.maps a.metadata a.music - a.notes a.ocsms a.passman a.polls a.spreed a.tasks + a.notes a.passman a.polls a.spreed a.tasks ]); env = config.myEnv.tools.nextcloud; varDir = "/var/lib/nextcloud"; @@ -14,8 +18,11 @@ let pool = { "listen.owner" = "wwwrun"; "listen.group" = "wwwrun"; - "pm" = "ondemand"; + "pm" = "dynamic"; "pm.max_children" = "60"; + "pm.start_servers" = "2"; + "pm.min_spare_servers" = "2"; + "pm.max_spare_servers" = "3"; "pm.process_idle_timeout" = "60"; "php_admin_value[output_buffering]" = "0"; @@ -97,6 +104,9 @@ in { 'allowZipDownload' => true, 'forcessl' => true, 'theme' => ${"''"}, + 'remember_login_cookie_lifetime' => 60*60*24*30, + 'session_keepalive' => true, + 'session_lifefime' => 60*60*24*30, 'maintenance' => false, 'trusted_domains' => array ( @@ -137,8 +147,8 @@ in { cd ${nextcloud} NEXTCLOUD_CONFIG_DIR="${nextcloud}/config" \ exec \ - sudo -E -u wwwrun ${pkgs.php74}/bin/php \ - -c ${pkgs.php74}/etc/php.ini \ + sudo -E -u wwwrun ${phpPackage}/bin/php \ + -c ${phpPackage}/etc/php.ini \ occ $* ''; in [ occ ]; @@ -162,7 +172,7 @@ in { user = "wwwrun"; group = "wwwrun"; settings = phpFpm.pool; - phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis all.apcu all.opcache ]); + inherit phpPackage; }; services.cron = { @@ -172,7 +182,7 @@ in { #! ${pkgs.stdenv.shell} export LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive export PATH=/run/wrappers/bin:$PATH - ${pkgs.php74}/bin/php -d memory_limit=2048M -f ${nextcloud}/cron.php + ${phpPackage}/bin/php -d memory_limit=2048M -f ${nextcloud}/cron.php ''; in [ '' diff --git a/modules/private/websites/tools/cloud/farm.nix b/modules/private/websites/tools/cloud/farm.nix index 7be774c..de1cfae 100644 --- a/modules/private/websites/tools/cloud/farm.nix +++ b/modules/private/websites/tools/cloud/farm.nix @@ -3,20 +3,14 @@ let cfg = config.myServices.tools.cloud.farm; apacheUser = config.services.httpd.Prod.user; apacheGroup = config.services.httpd.Prod.group; - nextcloud = (pkgs.webapps.nextcloud.override { varDir = null; }).withApps (a: [ - a.apporder a.audioplayer a.bookmarks a.calendar a.carnet a.contacts - a.cookbook a.deck a.extract a.files_markdown a.files_readmemd - a.flowupload a.gpxedit a.gpxpod a.impersonate a.keeweb a.maps - a.metadata a.music a.notes a.ocsms a.passman a.polls a.spreed - a.tasks - ]); toVardir = name: "/var/lib/nextcloud_farm/${name}"; - varDirs = map toVardir cfg.instances; - phpBaseDir = builtins.concatStringsSep ":" ([ nextcloud ] ++ varDirs ++ nextcloud.apps); + varDirs = lib.mapAttrsToList (name: v: toVardir name) cfg.instances; + toPhpBaseDir = name: [ cfg.rootDirs."${name}" (toVardir name) ] ++ cfg.rootDirs."${name}".apps; + phpBaseDir = builtins.concatStringsSep ":" (lib.unique (lib.flatten (lib.mapAttrsToList (name: v: toPhpBaseDir name) cfg.instances))); toVhost = name: '' SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 SetEnv NEXTCLOUD_CONFIG_DIR "${toVardir name}" - + AcceptPathInfo On DirectoryIndex index.php Options FollowSymlinks @@ -33,29 +27,47 @@ let ''; + phpPackage = (pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis all.apcu all.opcache all.imagick ])).override { extraConfig = '' + apc.enable_cli = 1 + ''; + }; in { options.myServices.tools.cloud.farm = { instances = lib.mkOption { description = "Instances names for the nextcloud Farm"; - default = []; - type = lib.types.listOf lib.types.str; + default = {}; + type = lib.types.attrsOf (lib.types.submodule { + options = { + nextcloud = lib.mkOption { + description = "Nextcloud version to use"; + default = pkgs.webapps.nextcloud_20; + type = lib.types.package; + }; + apps = lib.mkOption { + description = "Applications to use"; + default = a: []; + #type = functionTo (listOf packages) + type = lib.types.unspecified; + }; + }; + }); + }; + rootDirs = lib.mkOption { + description = "Instance root dirs"; + readOnly = true; + type = lib.types.attrsOf lib.types.package; + default = lib.mapAttrs (name: v: (v.nextcloud.override { varDir = null; }).withApps v.apps) cfg.instances; }; vhosts = lib.mkOption { description = "Instance vhosts configs"; readOnly = true; type = lib.types.attrsOf lib.types.str; - default = lib.genAttrs cfg.instances toVhost; - }; - package = lib.mkOption { - description = "Nextcloud derivation"; - readOnly = true; - type = lib.types.package; - default = nextcloud; + default = lib.mapAttrs (name: v: toVhost name) cfg.instances; }; }; - config = lib.mkIf (builtins.length cfg.instances > 0) { + config = lib.mkIf (builtins.length (builtins.attrNames cfg.instances) > 0) { system.activationScripts.cloud_farm_vardirs = { deps = [ "httpd" ]; text = '' @@ -68,16 +80,23 @@ in services.phpfpm.pools.nextcloud_farm = { user = apacheUser; group = apacheGroup; - settings = { + settings = let + instanceNb = builtins.length (builtins.attrNames cfg.instances); + in { "listen.owner" = apacheUser; "listen.group" = apacheGroup; - "pm" = "ondemand"; - "pm.max_children" = "60"; + "pm" = "dynamic"; + "pm.max_children" = builtins.toString (60 * instanceNb); + "pm.start_servers" = builtins.toString (3 * instanceNb); + "pm.min_spare_servers" = builtins.toString (3 * instanceNb); + "pm.max_spare_servers" = builtins.toString (5 * instanceNb); "pm.process_idle_timeout" = "60"; "php_admin_value[output_buffering]" = "0"; "php_admin_value[max_execution_time]" = "1800"; "php_admin_value[zend_extension]" = "opcache"; + "php_value[apcu.enable_cli]" = "1"; + "php_value[apcu.enabled]" = "1"; #already enabled by default? #"php_value[opcache.enable]" = "1"; "php_value[opcache.enable_cli]" = "1"; @@ -91,19 +110,19 @@ in "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:${phpBaseDir}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp"; "php_admin_value[session.save_path]" = "/var/lib/nextcloud_farm/phpSessions"; }; - phpPackage = pkgs.php74.withExtensions({ enabled, all }: enabled ++ [ all.redis all.apcu all.opcache ]); + inherit phpPackage; }; users.users.root.packages = let toOcc = name: pkgs.writeScriptBin "nextcloud-occ-${name}" '' #! ${pkgs.stdenv.shell} - cd ${nextcloud} + cd ${cfg.rootDirs."${name}"} NEXTCLOUD_CONFIG_DIR="${toVardir name}" \ exec \ - sudo -E -u wwwrun ${pkgs.php74}/bin/php \ - -c ${pkgs.php74}/etc/php.ini \ + sudo -E -u wwwrun ${phpPackage}/bin/php \ + -c ${phpPackage}/etc/php.ini \ occ $* ''; - in map toOcc cfg.instances; + in lib.mapAttrsToList (name: v: toOcc name) cfg.instances; services.cron = { enable = true; systemCronJobs = let @@ -112,12 +131,12 @@ in export LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive export PATH=/run/wrappers/bin:$PATH export NEXTCLOUD_CONFIG_DIR="${toVardir name}" - ${pkgs.php74}/bin/php -d memory_limit=512M -f ${nextcloud}/cron.php + ${phpPackage}/bin/php -c ${phpPackage}/etc/php.ini -d memory_limit=512M -f ${cfg.rootDirs."${name}"}/cron.php ''; toLine = name: '' */15 * * * * wwwrun ${toScript name}/bin/nextcloud-cron ''; - in map toLine cfg.instances; + in lib.mapAttrsToList (name: v: toLine name) cfg.instances; }; }; } diff --git a/pkgs/webapps/default.nix b/pkgs/webapps/default.nix index 60e26ad..08a9a86 100644 --- a/pkgs/webapps/default.nix +++ b/pkgs/webapps/default.nix @@ -13,7 +13,10 @@ rec { mantisbt_2 = callPackage ./mantisbt_2 {}; mastodon = callPackage ./mastodon { inherit mylibs; }; mediagoblin = callPackage ./mediagoblin { inherit mylibs; }; - nextcloud = callPackage ./nextcloud {}; + nextcloud_20 = callPackage ./nextcloud { nextcloudVersion = 20; }; + nextcloud_21 = callPackage ./nextcloud { nextcloudVersion = 21; }; + nextcloud_22 = callPackage ./nextcloud { nextcloudVersion = 22; }; + nextcloud_23 = callPackage ./nextcloud { nextcloudVersion = 23; }; peertube = (mylibs.flakeCompat ../../flakes/peertube).default; phpbb = callPackage ./phpbb {}; phpldapadmin = callPackage ./phpldapadmin {}; diff --git a/pkgs/webapps/nextcloud/apps/apporder.nix b/pkgs/webapps/nextcloud/apps/apporder.nix index 29fd6e2..00a6dda 100644 --- a/pkgs/webapps/nextcloud/apps/apporder.nix +++ b/pkgs/webapps/nextcloud/apps/apporder.nix @@ -1,8 +1,15 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 16 && nextcloudVersion <= 18; -buildApp rec { - appName = "apporder"; - version = "0.9.0"; - url = "https://github.com/juliushaertl/apporder/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "1add4i892n4bpmpxwrsr7x99fjyj5rk6maw04iwhviqqqr28fsw6"; -} +let + apporder_0_13_0 = buildApp rec { + appName = "apporder"; + version = "0.13.0"; + url = "https://github.com/juliushaertl/apporder/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "1gnaii65xcmh834n7g7zfzx47hi7scq8j8xh9lriyyxh7dik8as5"; + }; + versions = { + "20" = apporder_0_13_0; + "21" = apporder_0_13_0; + "22" = apporder_0_13_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app apporder") diff --git a/pkgs/webapps/nextcloud/apps/audioplayer.nix b/pkgs/webapps/nextcloud/apps/audioplayer.nix index a49776f..37b424e 100644 --- a/pkgs/webapps/nextcloud/apps/audioplayer.nix +++ b/pkgs/webapps/nextcloud/apps/audioplayer.nix @@ -1,8 +1,22 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 17 && nextcloudVersion <= 19; -buildApp rec { - appName = "audioplayer"; - version = "2.10.0"; - url = "https://github.com/Rello/${appName}/releases/download/${version}/${appName}-${version}.tar.gz"; - sha256 = "122wc05b0m8s5ksdhsiws98aqph894i7cffjkhfhq66c40a728s3"; -} +let + audioplayer_3_1_0 = buildApp rec { + appName = "audioplayer"; + version = "3.1.0"; + url = "https://github.com/Rello/${appName}/releases/download/${version}/${appName}-${version}.tar.gz"; + sha256 = "18h3mzjqcwz4v0wddw59sdwanrdjcqdwsi3pfqddxagq40xjj5pn"; + }; + audioplayer_3_2_2 = buildApp rec { + appName = "audioplayer"; + version = "3.2.2"; + url = "https://github.com/Rello/${appName}/releases/download/${version}/${appName}-${version}.tar.gz"; + sha256 = "1yqvzphm0i6k8khkfbc37q5x2vw5gp8imvc4nff2d75wykvs37bv"; + }; + versions = { + "20" = audioplayer_3_1_0; + "21" = audioplayer_3_2_2; + "22" = audioplayer_3_2_2; + "23" = audioplayer_3_2_2; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app audioplayer") diff --git a/pkgs/webapps/nextcloud/apps/bookmarks.nix b/pkgs/webapps/nextcloud/apps/bookmarks.nix index 1065c34..1900506 100644 --- a/pkgs/webapps/nextcloud/apps/bookmarks.nix +++ b/pkgs/webapps/nextcloud/apps/bookmarks.nix @@ -1,8 +1,16 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 17 && nextcloudVersion <= 19; -buildApp rec { - appName = "bookmarks"; - version = "3.0.10"; - url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; - sha256 = "0y12iqcc6yp25cisg7mg40ddx72531zdvsp2gcl37qi8vqf162ji"; -} +let + bookmarks_10_0_3 = buildApp rec { + appName = "bookmarks"; + version = "10.0.3"; + url = "https://github.com/nextcloud/${appName}/releases/download/${version}/${appName}-${version}.tar.gz"; + sha256 = "1rjf6gz6hayd8dy4b4c8000svb4dixi2vybsvfvcxp9ks7i3zvq9"; + }; + versions = { + "20" = bookmarks_10_0_3; + "21" = bookmarks_10_0_3; + "22" = bookmarks_10_0_3; + "23" = bookmarks_10_0_3; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app bookmarks") diff --git a/pkgs/webapps/nextcloud/apps/calendar.nix b/pkgs/webapps/nextcloud/apps/calendar.nix index bc3ccea..1c56415 100644 --- a/pkgs/webapps/nextcloud/apps/calendar.nix +++ b/pkgs/webapps/nextcloud/apps/calendar.nix @@ -1,8 +1,16 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 17 && nextcloudVersion <= 19; -buildApp rec { - appName = "calendar"; - version = "2.0.3"; - url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "17pjsa657p9n1kslqkfcxd6n4ssh2yd4f5l5ww79mixfs34idbl9"; -} +let + calendar_3_0_1 = buildApp rec { + appName = "calendar"; + version = "3.0.1"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "1rywcac7jk4blhw65n6y2m0p4vx5sj7smczfal91n13ylzyqj5bz"; + }; + versions = { + "20" = calendar_3_0_1; + "21" = calendar_3_0_1; + "22" = calendar_3_0_1; + "23" = calendar_3_0_1; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app calendar") diff --git a/pkgs/webapps/nextcloud/apps/carnet.nix b/pkgs/webapps/nextcloud/apps/carnet.nix index 879ab17..c6efe5f 100644 --- a/pkgs/webapps/nextcloud/apps/carnet.nix +++ b/pkgs/webapps/nextcloud/apps/carnet.nix @@ -1,8 +1,22 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 13 && nextcloudVersion <= 18; -buildApp rec { - appName = "carnet"; - version = "0.20.0"; - url = "https://github.com/PhieF/CarnetNextcloud/releases/download/v${version}/${appName}-nc-v${version}.tar.gz"; - sha256 = "1hbvs88vj830xalyq8fv8xlnf7livsj1xmnjl4xgla803ch4aym8"; -} +let + carnet_0_24_2 = buildApp rec { + appName = "carnet"; + version = "0.24.2"; + url = "https://github.com/PhieF/CarnetNextcloud/releases/download/v${version}/${appName}-nc-v${version}.tar.gz"; + sha256 = "0rlzb1sx86rdqdx7ykh55ba70xrwq0h5yalkaawmh41gf08lzqj3"; + }; + versions = { + "13" = carnet_0_24_2; + "14" = carnet_0_24_2; + "15" = carnet_0_24_2; + "16" = carnet_0_24_2; + "17" = carnet_0_24_2; + "18" = carnet_0_24_2; + "19" = carnet_0_24_2; + "20" = carnet_0_24_2; + "21" = carnet_0_24_2; + "22" = carnet_0_24_2; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app carnet") diff --git a/pkgs/webapps/nextcloud/apps/circles.nix b/pkgs/webapps/nextcloud/apps/circles.nix index 64a4f2f..fa6ea69 100644 --- a/pkgs/webapps/nextcloud/apps/circles.nix +++ b/pkgs/webapps/nextcloud/apps/circles.nix @@ -1,8 +1,21 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 18 && nextcloudVersion <= 18; -buildApp rec { - appName = "circles"; - version = "0.18.9"; - url = "https://github.com/nextcloud/circles/releases/download/v${version}/${appName}-${version}.tar.gz"; - sha256 = "1a58zrjg4cc0igq14s5zfc5zva83mahmfr0mxvhvnasw7rwkpyzr"; -} +let + circles_0_20_11 = buildApp rec { + appName = "circles"; + version = "0.20.11"; + url = "https://github.com/nextcloud-releases/circles/releases/download/${version}/${appName}-${version}.tar.gz"; + sha256 = "00r9nyjq38xidgdlgkrxgyhn7bn1w2c4m4pbm26f7gglmb4lsmml"; + }; + circles_0_21_4 = buildApp rec { + appName = "circles"; + version = "0.21.4"; + url = "https://github.com/nextcloud-releases/circles/releases/download/${version}/${appName}-${version}.tar.gz"; + sha256 = "1bxxa3ss4726zb7k13fhs7c39jvzdf8rmzvrx3wbk9wm2avhpnc1"; + }; + versions = { + "20" = circles_0_20_11; + "21" = circles_0_21_4; + # Integrated in core from 22 + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app circles") diff --git a/pkgs/webapps/nextcloud/apps/contacts.nix b/pkgs/webapps/nextcloud/apps/contacts.nix index d80f0b5..da46dce 100644 --- a/pkgs/webapps/nextcloud/apps/contacts.nix +++ b/pkgs/webapps/nextcloud/apps/contacts.nix @@ -1,8 +1,16 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 17 && nextcloudVersion <= 19; -buildApp rec { - appName = "contacts"; - version = "3.3.0"; - url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "187avlksg4k7ci3jz4djfq8zfyq5jpvhbw2dzlp76wlppm1al4m0"; -} +let + contacts_4_0_6 = buildApp rec { + appName = "contacts"; + version = "4.0.6"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "1xyrilnh20s8xi1jy1a1flgbzxx8qikmc1ggv41idx4gs49njq12"; + }; + versions = { + "20" = contacts_4_0_6; + "21" = contacts_4_0_6; + "22" = contacts_4_0_6; + "23" = contacts_4_0_6; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app contacts") diff --git a/pkgs/webapps/nextcloud/apps/cookbook.nix b/pkgs/webapps/nextcloud/apps/cookbook.nix index 63cac0d..2dce815 100644 --- a/pkgs/webapps/nextcloud/apps/cookbook.nix +++ b/pkgs/webapps/nextcloud/apps/cookbook.nix @@ -1,14 +1,22 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 14 && nextcloudVersion <= 19; -buildApp rec { - appName = "cookbook"; - version = "0.6.5"; - url = "https://github.com/mrzapp/nextcloud-cookbook/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "068dxdxy9ix37970mn348blkdrrnkzad26zgyx4f5s19wm439p5j"; - installPhase = '' - sed -i -e "s/application..ld..json/application[^\"|\\\\']*ld[^\"|\\\\']*json/" lib/Service/RecipeService.php - mkdir -p $out - cp -R . $out/ +let + cookbook_0_9_8 = buildApp rec { + appName = "cookbook"; + version = "0.9.8"; + url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/Cookbook-${version}.tar.gz"; + sha256 = "0l99g13hlx4z3fq8kdb1q4ypa19s7snpzy6igk1gpp15lvhw4y1r"; + installPhase = '' + sed -i -e "s/application..ld..json/application[^\"|\\\\']*ld[^\"|\\\\']*json/" lib/Service/RecipeService.php + mkdir -p $out + cp -R . $out/ ''; -} - + }; + versions = { + "19" = cookbook_0_9_8; + "20" = cookbook_0_9_8; + "21" = cookbook_0_9_8; + "22" = cookbook_0_9_8; + "23" = cookbook_0_9_8; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app cookbook") diff --git a/pkgs/webapps/nextcloud/apps/deck.nix b/pkgs/webapps/nextcloud/apps/deck.nix index ec693c6..8474dd1 100644 --- a/pkgs/webapps/nextcloud/apps/deck.nix +++ b/pkgs/webapps/nextcloud/apps/deck.nix @@ -1,8 +1,36 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion == 18; -buildApp rec { - appName = "deck"; - version = "1.0.0"; - url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "13r9vd5bf75slrzhvi6bybazhh1vcx0n4a8a7hf97bxr7pq2f91j"; -} +let + deck_1_2_11 = buildApp rec { + appName = "deck"; + version = "1.2.11"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "1mjpghqldx41bm0vmkfqmp41wayd60cf5m9c7h6rcakqymzjjimm"; + }; + deck_1_4_7 = buildApp rec { + appName = "deck"; + version = "1.4.7"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "1kyzb8rydjsb80g0bkrnfgqpmrgyvzgln9g0bfxl68rildfnnz95"; + }; + deck_1_5_5 = buildApp rec { + appName = "deck"; + version = "1.5.5"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "0pjx52kripi090y995cr2pg56plly53jrgmjy7934cdn99b9zgnz"; + }; + deck_1_6_0 = buildApp rec { + appName = "deck"; + version = "1.6.0"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "1j8am0cnifkpdikgsd1bn2pya3f4i2mk6qrkmvn66qv0ygvkvldf"; + }; + versions = { + "18" = deck_1_2_11; + "19" = deck_1_2_11; + "20" = deck_1_2_11; + "21" = deck_1_4_7; + "22" = deck_1_5_5; + "23" = deck_1_6_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app deck") diff --git a/pkgs/webapps/nextcloud/apps/drawio.nix b/pkgs/webapps/nextcloud/apps/drawio.nix new file mode 100644 index 0000000..1b54253 --- /dev/null +++ b/pkgs/webapps/nextcloud/apps/drawio.nix @@ -0,0 +1,17 @@ +{ buildApp, nextcloudVersion }: +let + drawio_1_0_3 = buildApp rec { + appName = "drawio"; + version = "1.0.3"; + url = "https://github.com/pawelrojek/nextcloud-drawio/releases/download/v.${version}/drawio-v${version}.tar.gz"; + sha256 = "0nf0bk3i3f772nf6qsc4d1y8mq0iya8qxqzp58jv242p8rp8skyx"; + }; + versions = { + "19" = drawio_1_0_3; + "20" = drawio_1_0_3; + "21" = drawio_1_0_3; + "22" = drawio_1_0_3; + "23" = drawio_1_0_3; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app drawio") diff --git a/pkgs/webapps/nextcloud/apps/external.nix b/pkgs/webapps/nextcloud/apps/external.nix new file mode 100644 index 0000000..f0572f2 --- /dev/null +++ b/pkgs/webapps/nextcloud/apps/external.nix @@ -0,0 +1,20 @@ +{ buildApp, nextcloudVersion }: +let + external_3_10_2 = buildApp rec { + appName = "external"; + version = "3.10.2"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}-v${version}.tar.gz"; + sha256 = "01r9nyjq38xidgdlgkrxgyhn7bn1w2c4m4pbm26f7gglmb4lsmml"; + }; + external_3_9_0 = buildApp rec { + appName = "external"; + version = "3.9.0"; + url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "0fb9qg63p07wrfpjg36n80jcvj7wfv39vnwgc6jkxs6q647pbbp0"; + }; + versions = { + "22" = external_3_9_0; + "23" = external_3_10_2; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app external") diff --git a/pkgs/webapps/nextcloud/apps/extract.nix b/pkgs/webapps/nextcloud/apps/extract.nix index daa9d2d..0667275 100644 --- a/pkgs/webapps/nextcloud/apps/extract.nix +++ b/pkgs/webapps/nextcloud/apps/extract.nix @@ -1,8 +1,22 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 13 && nextcloudVersion <= 19; -buildApp rec { - appName = "extract"; - version = "1.2.4"; - url = "https://github.com/PaulLereverend/NextcloudExtract/releases/download/${version}/${appName}.tar.gz"; - sha256 = "0f1csv0warga12a1hkgdcnhnfiwfv5z2ab3mri4frn2qlh12wyby"; -} +let + extract_1_3_2 = buildApp rec { + appName = "extract"; + version = "1.3.2"; + url = "https://github.com/PaulLereverend/NextcloudExtract/releases/download/${version}/${appName}.tar.gz"; + sha256 = "1sylrlgg641672d2wrb5xrh0yjdlnwvmglk5hh5bw44vqf0jjqf4"; + }; + versions = { + "13" = extract_1_3_2; + "14" = extract_1_3_2; + "15" = extract_1_3_2; + "16" = extract_1_3_2; + "17" = extract_1_3_2; + "18" = extract_1_3_2; + "19" = extract_1_3_2; + "20" = extract_1_3_2; + "21" = extract_1_3_2; + "22" = extract_1_3_2; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app extract") diff --git a/pkgs/webapps/nextcloud/apps/files_markdown.nix b/pkgs/webapps/nextcloud/apps/files_markdown.nix index 5810ec9..dc1ced9 100644 --- a/pkgs/webapps/nextcloud/apps/files_markdown.nix +++ b/pkgs/webapps/nextcloud/apps/files_markdown.nix @@ -1,8 +1,22 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 16 && nextcloudVersion <= 18; -buildApp rec { - appName = "files_markdown"; - version = "2.2.0"; - url = "https://github.com/icewind1991/${appName}/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "05f793pznkkdgmr3wfqfbhwcg8s8kcvpfxnhzyj0pbw19srls2aw"; -} +let + files_markdown_2_3_4 = buildApp rec { + appName = "files_markdown"; + version = "2.3.4"; + url = "https://github.com/icewind1991/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "09chqlqcyyi9mb3cpjwa3b56sj6ah88119q6v7hvabfpdr41fljf"; + }; + files_markdown_2_3_5 = buildApp rec { + appName = "files_markdown"; + version = "2.3.5"; + url = "https://github.com/icewind1991/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "1g6qlf3qbhfl3q0zwwd77y0fkw35fg2a4whhbfvhc5c2nik9zqnb"; + }; + versions = { + "20" = files_markdown_2_3_4; + "21" = files_markdown_2_3_5; + "22" = files_markdown_2_3_5; + "23" = files_markdown_2_3_5; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app files_markdown") diff --git a/pkgs/webapps/nextcloud/apps/files_mindmap.nix b/pkgs/webapps/nextcloud/apps/files_mindmap.nix index e347053..06176c5 100644 --- a/pkgs/webapps/nextcloud/apps/files_mindmap.nix +++ b/pkgs/webapps/nextcloud/apps/files_mindmap.nix @@ -1,13 +1,31 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 14 && nextcloudVersion <= 21; -buildApp rec { - appName = "files_mindmap"; - version = "0.0.24"; - url = "https://github.com/ACTom/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; - sha256 = "1cd6lq8z7k2h5dnj58qrxfs7l5pw3qw2w8r5r90r7an8v215gv2p"; - installHook = self: '' - # https://github.com/ACTom/files_mindmap/issues/122 - ln -s ${self}/img/mindmap.svg $out/core/img/filetypes/ - ''; -} - +let + files_mindmap_0_0_25_fix = buildApp rec { + appName = "files_mindmap"; + version = "0.0.25"; + url = "https://github.com/ACTom/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "1z4bi4i8gw0azf6vn78014sal4gajsapkc6w99n89pb0jyy13551"; + installHook = self: '' + # https://github.com/ACTom/files_mindmap/issues/122 + ln -s ${self}/img/mindmap.svg $out/core/img/filetypes/ + ''; + }; + files_mindmap_0_0_25 = buildApp rec { + appName = "files_mindmap"; + version = "0.0.25"; + url = "https://github.com/ACTom/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "1z4bi4i8gw0azf6vn78014sal4gajsapkc6w99n89pb0jyy13551"; + }; + versions = { + "14" = files_mindmap_0_0_25_fix; + "15" = files_mindmap_0_0_25_fix; + "16" = files_mindmap_0_0_25_fix; + "17" = files_mindmap_0_0_25_fix; + "18" = files_mindmap_0_0_25_fix; + "19" = files_mindmap_0_0_25_fix; + "20" = files_mindmap_0_0_25_fix; + "21" = files_mindmap_0_0_25; + "22" = files_mindmap_0_0_25; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app files_mindmap") diff --git a/pkgs/webapps/nextcloud/apps/files_readmemd.nix b/pkgs/webapps/nextcloud/apps/files_readmemd.nix index c9728c0..65539df 100644 --- a/pkgs/webapps/nextcloud/apps/files_readmemd.nix +++ b/pkgs/webapps/nextcloud/apps/files_readmemd.nix @@ -1,8 +1,16 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 16 && nextcloudVersion <= 18; -buildApp rec { - appName = "files_readmemd"; - version = "1.1.4"; - url = "https://gitlab.univ-nantes.fr/uncloud/files_readmemd/-/wikis/uploads/e1d280e855f37e5f0a421c757868113c/${appName}.tar.gz"; - sha256 = "1sfaghbyzfv3hg5vhj1nprb85zsl6lcr2x88ks6l9ndv49nfbvm9"; -} +let + files_readmemd_1_2_1 = buildApp rec { + appName = "files_readmemd"; + version = "1.2.1"; + url = "https://gitlab.univ-nantes.fr/uncloud/files_readmemd/-/wikis/uploads/57409c528bde96202d03d2e3887b3fae/${appName}.tar.gz"; + sha256 = "0cmawxlwycm8v3r2776ffvd260vrgkwrxk4lyhx83nx6bnys009z"; + }; + versions = { + "19" = files_readmemd_1_2_1; + "20" = files_readmemd_1_2_1; + "21" = files_readmemd_1_2_1; + "22" = files_readmemd_1_2_1; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app files_readmemd") diff --git a/pkgs/webapps/nextcloud/apps/flowupload.nix b/pkgs/webapps/nextcloud/apps/flowupload.nix index 516ee32..a4fceb0 100644 --- a/pkgs/webapps/nextcloud/apps/flowupload.nix +++ b/pkgs/webapps/nextcloud/apps/flowupload.nix @@ -1,8 +1,25 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 15 && nextcloudVersion <= 18; -buildApp rec { - appName = "flowupload"; - version = "0.1.8"; - url = "https://github.com/e-alfred/${appName}/releases/download/${version}/${appName}-${version}.tar.gz"; - sha256 = "0llg5cr4fgqg512znp9bga77y7vdsi2pgsyl4m3a54c557zyjah3"; -} +let + flowupload_1_1_2 = buildApp rec { + appName = "flowupload"; + version = "1.1.2"; + url = "https://github.com/e-alfred/${appName}/releases/download/${version}/${appName}-${version}.tar.gz"; + sha256 = "1yg7j5gzq9znfm1v9dqmx4v8c46py6641hnp0bfh9zsf00v6a6v2"; + }; + flowupload_1_1_3 = buildApp rec { + appName = "flowupload"; + version = "1.1.3"; + url = "https://github.com/e-alfred/${appName}/releases/download/${version}/${appName}-${version}.tar.gz"; + sha256 = "0d1xvimd4hzd0jpvv1h89zfqv3ajlrrm1xdbggvjhk9bllwqgxng"; + }; + versions = { + "17" = flowupload_1_1_2; + "18" = flowupload_1_1_2; + "19" = flowupload_1_1_2; + "20" = flowupload_1_1_3; + "21" = flowupload_1_1_3; + "22" = flowupload_1_1_3; + "23" = flowupload_1_1_3; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app flowupload") diff --git a/pkgs/webapps/nextcloud/apps/gpxedit.nix b/pkgs/webapps/nextcloud/apps/gpxedit.nix index cd3e878..65c28fa 100644 --- a/pkgs/webapps/nextcloud/apps/gpxedit.nix +++ b/pkgs/webapps/nextcloud/apps/gpxedit.nix @@ -1,16 +1,30 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 14 && nextcloudVersion <= 19; -buildApp rec { - appName = "gpxedit"; - version = "0.0.13"; - url = "https://gitlab.com/eneiluj/gpxedit-oc/wikis/uploads/a7c638d1b038514d07bb5c787b6e7961/${appName}-${version}.tar.gz"; - sha256 = "1b15iqaq8fj3khpx3lh0fyqkhmj6x44fc59pg3cp3jrh3bpg0534"; - otherConfig = { - mimetypealiases = { - "application/gpx+xml" = "gpx"; - }; - mimetypemapping = { - "gpx" = ["application/gpx+xml"]; +let + gpxedit_0_0_14 = buildApp rec { + appName = "gpxedit"; + version = "0.0.14"; + url = "https://gitlab.com/eneiluj/gpxedit-oc/wikis/uploads/5b184c24f9e767ad19a84e177a9b473c/${appName}-${version}.tar.gz"; + sha256 = "1kgpcxps73l83krrjxdzh4vzacja4m3vwidf9kidgqq505cgzq90"; + otherConfig = { + mimetypealiases = { + "application/gpx+xml" = "gpx"; + }; + mimetypemapping = { + "gpx" = ["application/gpx+xml"]; + }; }; }; -} + versions = { + "14" = gpxedit_0_0_14; + "15" = gpxedit_0_0_14; + "16" = gpxedit_0_0_14; + "17" = gpxedit_0_0_14; + "18" = gpxedit_0_0_14; + "19" = gpxedit_0_0_14; + "20" = gpxedit_0_0_14; + "21" = gpxedit_0_0_14; + "22" = gpxedit_0_0_14; + "23" = gpxedit_0_0_14; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app gpxedit") diff --git a/pkgs/webapps/nextcloud/apps/gpxpod.nix b/pkgs/webapps/nextcloud/apps/gpxpod.nix index 0750144..f0b9881 100644 --- a/pkgs/webapps/nextcloud/apps/gpxpod.nix +++ b/pkgs/webapps/nextcloud/apps/gpxpod.nix @@ -1,16 +1,39 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 14 && nextcloudVersion <= 19; -buildApp rec { - appName = "gpxpod"; - version = "4.2.1"; - url = "https://gitlab.com/eneiluj/gpxpod-oc/wikis/uploads/0361f9dc50633f0f39d929442935435c/${appName}-${version}.tar.gz"; - sha256 = "0ycpychq6g8axdprvd0ahgdy2pwfdbfyf1pxk4cprr4ab986aq1x"; - otherConfig = { - mimetypealiases = { - "application/gpx+xml" = "gpx"; +let + gpxpod_4_2_8 = buildApp rec { + appName = "gpxpod"; + version = "4.2.8"; + url = "https://gitlab.com/eneiluj/gpxpod-oc/wikis/uploads/630aee117900664644669890e6693383/${appName}-${version}.tar.gz"; + sha256 = "1v47153zwxgfcw0ls4qppi1asa4kbgzbysqvfhs6lhv1pfpml5l4"; + otherConfig = { + mimetypealiases = { + "application/gpx+xml" = "gpx"; + }; + mimetypemapping = { + "gpx" = ["application/gpx+xml"]; + }; }; - mimetypemapping = { - "gpx" = ["application/gpx+xml"]; + }; + gpxpod_4_3_0 = buildApp rec { + appName = "gpxpod"; + version = "4.3.0"; + url = "https://gitlab.com/eneiluj/gpxpod-oc/wikis/uploads/89555a30934ebbe34c3a515aabd1781a/${appName}-${version}.tar.gz"; + sha256 = "02l1iq5d7bzl2y3igfgs0v6hbvn6b8rxxq7lcvsax0ksmry4d314"; + otherConfig = { + mimetypealiases = { + "application/gpx+xml" = "gpx"; + }; + mimetypemapping = { + "gpx" = ["application/gpx+xml"]; + }; }; }; -} + versions = { + "19" = gpxpod_4_2_8; + "20" = gpxpod_4_2_8; + "21" = gpxpod_4_2_8; + "22" = gpxpod_4_3_0; + "23" = gpxpod_4_3_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app gpxpod") diff --git a/pkgs/webapps/nextcloud/apps/groupfolders.nix b/pkgs/webapps/nextcloud/apps/groupfolders.nix new file mode 100644 index 0000000..9ea5902 --- /dev/null +++ b/pkgs/webapps/nextcloud/apps/groupfolders.nix @@ -0,0 +1,34 @@ +{ buildApp, nextcloudVersion }: +let + groupfolders_10_0_0 = buildApp rec { + appName = "groupfolders"; + version = "10.0.0"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "0hgchd3d4d27hg1mvc3kffwjjdvqwmxg652i8jgd17hppm4z5abi"; + }; + groupfolders_11_1_0 = buildApp rec { + appName = "groupfolders"; + version = "11.1.0"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "0fr1m3wld206hhppf347hibwp0vm41dv864vblnl2wv33hrsrxla"; + }; + groupfolders_9_0_3 = buildApp rec { + appName = "groupfolders"; + version = "9.0.3"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "19gcd3ci2rfn7bgs0mfrmfgk2iwcmkwamckl915cbkfzwwfa4cph"; + }; + groupfolders_8_2_3 = buildApp rec { + appName = "groupfolders"; + version = "8.2.3"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "0vs9jgbavcl27fhp1lyqjfp2nsdzg7aiwmxjgh0fz8xrq0dnbx0v"; + }; + versions = { + "20" = groupfolders_8_2_3; + "21" = groupfolders_9_0_3; + "22" = groupfolders_10_0_0; + "23" = groupfolders_11_1_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app groupfolders") diff --git a/pkgs/webapps/nextcloud/apps/impersonate.nix b/pkgs/webapps/nextcloud/apps/impersonate.nix index 66cc893..65af7dd 100644 --- a/pkgs/webapps/nextcloud/apps/impersonate.nix +++ b/pkgs/webapps/nextcloud/apps/impersonate.nix @@ -1,9 +1,34 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 18 && nextcloudVersion < 19; -buildApp rec { - appName = "impersonate"; - version = "1.5.2"; - url = "https://github.com/nextcloud/impersonate/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "03fm9d2p6ap9gyiw5anmlwsdmiyklrkpdgchfx2zfgxn38pjrz6d"; -} - +let + impersonate_1_7_0 = buildApp rec { + appName = "impersonate"; + version = "1.7.0"; + url = "https://github.com/nextcloud/impersonate/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "171qd79c1w0lazadsyv400sqsxkb588n50wz6iasjd8yachachyd"; + }; + impersonate_1_8_0 = buildApp rec { + appName = "impersonate"; + version = "1.8.0"; + url = "https://github.com/nextcloud/impersonate/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "08q09zz56lz9yc22spgrkz19s5m37w5c20i00ssg7cgf3yhj9gwh"; + }; + impersonate_1_9_0 = buildApp rec { + appName = "impersonate"; + version = "1.9.0"; + url = "https://github.com/nextcloud-releases/impersonate/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "0r1wxx1asnd0bbf9ykks5zha5fa3x5gr9qn9m2mw09fmm52xypqj"; + }; + impersonate_1_10_0 = buildApp rec { + appName = "impersonate"; + version = "1.10.0"; + url = "https://github.com/nextcloud-releases/impersonate/releases/download/v${version}/${appName}-v${version}.tar.gz"; + sha256 = "036r8m3lid0p442nhwlgfia4y4ylj4vr52872gbhi16d4w6qzb9s"; + }; + versions = { + "20" = impersonate_1_7_0; + "21" = impersonate_1_8_0; + "22" = impersonate_1_9_0; + "23" = impersonate_1_10_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app impersonate") diff --git a/pkgs/webapps/nextcloud/apps/keeweb.nix b/pkgs/webapps/nextcloud/apps/keeweb.nix index 4ea1399..715ff47 100644 --- a/pkgs/webapps/nextcloud/apps/keeweb.nix +++ b/pkgs/webapps/nextcloud/apps/keeweb.nix @@ -1,17 +1,29 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 11 && nextcloudVersion <= 18; -buildApp rec { - appName = "keeweb"; - version = "0.6.2"; - url = "https://github.com/jhass/nextcloud-keeweb/releases/download/v${version}/${appName}-${version}.tar.gz"; - sha256 = "067801qz0fcfvmb14ja1ringzk53j1wp7ys2fl7lnlhf45r81vxx"; - installPhase = '' - mkdir -p $out - cp -R . $out/ - ''; - otherConfig = { - mimetypemapping = { - "kdbx" = ["application/x-kdbx"]; +let + keeweb_0_6_8 = buildApp rec { + appName = "keeweb"; + version = "0.6.8"; + url = "https://github.com/jhass/nextcloud-keeweb/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "1r0iljspyz964w46swc05xsmzm1qfsv33d90rg06s7fwmfqccpin"; + installPhase = '' + mkdir -p $out + cp -R . $out/ + ''; + otherConfig = { + mimetypemapping = { + "kdbx" = ["application/x-kdbx"]; + }; }; }; -} + versions = { + "16" = keeweb_0_6_8; + "17" = keeweb_0_6_8; + "18" = keeweb_0_6_8; + "19" = keeweb_0_6_8; + "20" = keeweb_0_6_8; + "21" = keeweb_0_6_8; + "22" = keeweb_0_6_8; + "23" = keeweb_0_6_8; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app keeweb") diff --git a/pkgs/webapps/nextcloud/apps/maps.nix b/pkgs/webapps/nextcloud/apps/maps.nix index 898df6c..6d7c696 100644 --- a/pkgs/webapps/nextcloud/apps/maps.nix +++ b/pkgs/webapps/nextcloud/apps/maps.nix @@ -1,8 +1,16 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 16 && nextcloudVersion <= 19; -buildApp rec { - appName = "maps"; - version = "0.1.6"; - url = "https://github.com/nextcloud/maps/releases/download/v${version}/${appName}-${version}.tar.gz"; - sha256 = "1yh5h96c91lgz58zcm7zdpblvsc6c6nflx8pldfds102x292mprk"; -} +let + maps_0_1_9 = buildApp rec { + appName = "maps"; + version = "0.1.9"; + url = "https://github.com/nextcloud/maps/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "007y80idqg6b6zk6kjxg4vgw0z8fsxs9lajnv49vv1zjy6jx2i1i"; + }; + versions = { + "20" = maps_0_1_9; + "21" = maps_0_1_9; + "22" = maps_0_1_9; + "23" = maps_0_1_9; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app maps") diff --git a/pkgs/webapps/nextcloud/apps/metadata.nix b/pkgs/webapps/nextcloud/apps/metadata.nix index 2d62f53..a9ef0bd 100644 --- a/pkgs/webapps/nextcloud/apps/metadata.nix +++ b/pkgs/webapps/nextcloud/apps/metadata.nix @@ -1,8 +1,23 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 13 && nextcloudVersion <= 19; -buildApp rec { - appName = "metadata"; - version = "0.11.1"; - url = "https://github.com/gino0631/nextcloud-metadata/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "11napkv5s29xk1gmbfvy610ab1kc06qxqzw606ix5x0d1x4m3h0c"; -} +let + metadata_0_15_0 = buildApp rec { + appName = "metadata"; + version = "0.15.0"; + url = "https://github.com/gino0631/nextcloud-metadata/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "16mnb2df15wdpbpl5x4lm3hr27wk0cxi0d06v0i146mh04dyqn4x"; + }; + versions = { + "13" = metadata_0_15_0; + "14" = metadata_0_15_0; + "15" = metadata_0_15_0; + "16" = metadata_0_15_0; + "17" = metadata_0_15_0; + "18" = metadata_0_15_0; + "19" = metadata_0_15_0; + "20" = metadata_0_15_0; + "21" = metadata_0_15_0; + "22" = metadata_0_15_0; + "23" = metadata_0_15_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app metadata") diff --git a/pkgs/webapps/nextcloud/apps/music.nix b/pkgs/webapps/nextcloud/apps/music.nix index e430dd9..95a740d 100644 --- a/pkgs/webapps/nextcloud/apps/music.nix +++ b/pkgs/webapps/nextcloud/apps/music.nix @@ -1,9 +1,23 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 9 && nextcloudVersion <= 19; -buildApp rec { - appName = "music"; - version = "0.14.1"; - url = "https://github.com/owncloud/music/releases/download/v${version}/${appName}.zip"; - zip = true; - sha256 = "06svn24qix0nbikwi0kxnli402vq99851bn5ljcsm10r74bnlw83"; -} +let + music_1_5_0 = buildApp rec { + appName = "music"; + version = "1.5.0"; + url = "https://github.com/owncloud/music/releases/download/v${version}/${appName}_${version}_for_nextcloud.tar.gz"; + sha256 = "1xn1n1y7z2ymw77jh56ig34qznkmlhvhb5g2h7dmsag1wdh76qmz"; + }; + versions = { + "13" = music_1_5_0; + "14" = music_1_5_0; + "15" = music_1_5_0; + "16" = music_1_5_0; + "17" = music_1_5_0; + "18" = music_1_5_0; + "19" = music_1_5_0; + "20" = music_1_5_0; + "21" = music_1_5_0; + "22" = music_1_5_0; + "23" = music_1_5_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app music") diff --git a/pkgs/webapps/nextcloud/apps/notes.nix b/pkgs/webapps/nextcloud/apps/notes.nix index 7a06bbc..f3bfaa9 100644 --- a/pkgs/webapps/nextcloud/apps/notes.nix +++ b/pkgs/webapps/nextcloud/apps/notes.nix @@ -1,8 +1,16 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 16 && nextcloudVersion <= 19; -buildApp rec { - appName = "notes"; - version = "3.3.0"; - url = "https://github.com/nextcloud/${appName}/releases/download/${version}/${appName}.tar.gz"; - sha256 = "03k0ijma7sccwqq9ch3bvgbg9kxr2wk0bmkxzxrc9in1d40d3k7f"; -} +let + notes_4_2_0 = buildApp rec { + appName = "notes"; + version = "4.2.0"; + url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "0f5p65rb86g38qq6ybf7gakzp1a81h09szg7hypby8nm5vic3ly0"; + }; + versions = { + "20" = notes_4_2_0; + "21" = notes_4_2_0; + "22" = notes_4_2_0; + "23" = notes_4_2_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app notes") diff --git a/pkgs/webapps/nextcloud/apps/ocsms.nix b/pkgs/webapps/nextcloud/apps/ocsms.nix index aee1ff2..dcdaad2 100644 --- a/pkgs/webapps/nextcloud/apps/ocsms.nix +++ b/pkgs/webapps/nextcloud/apps/ocsms.nix @@ -1,12 +1,21 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 16 && nextcloudVersion <= 18; -buildApp rec { - appName = "ocsms"; - version = "2.1.7"; - url = "https://github.com/nextcloud/${appName}/releases/download/${version}/${appName}-${version}.tar.gz"; - sha256 = "1pfdzq16nbh4wfmkmif0dxacxg0fy4n4cp2d1hbq9k2z9awcx1vh"; - installPhase = '' - mkdir -p $out - cp -R . $out/ - ''; -} +let + ocsms_2_2_0 = buildApp rec { + appName = "ocsms"; + version = "2.2.0"; + url = "https://github.com/nextcloud/${appName}/releases/download/${version}/${appName}-${version}.tar.gz"; + sha256 = "1hjl11lxdflk4w0l8prcjr3jvmsm8njldbrmnqm7yhdy6qcfli28"; + installPhase = '' + mkdir -p $out + cp -R . $out/ + ''; + }; + versions = { + "18" = ocsms_2_2_0; + "19" = ocsms_2_2_0; + "20" = ocsms_2_2_0; + # Beware, 1.10.1 has a too wide range of versions and is not + # compatible with nextcloud > 20! + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app ocsms") diff --git a/pkgs/webapps/nextcloud/apps/onlyoffice.nix b/pkgs/webapps/nextcloud/apps/onlyoffice.nix new file mode 100644 index 0000000..f3c9f93 --- /dev/null +++ b/pkgs/webapps/nextcloud/apps/onlyoffice.nix @@ -0,0 +1,16 @@ +{ buildApp, nextcloudVersion }: +let + onlyoffice_7_2_1 = buildApp rec { + appName = "onlyoffice"; + version = "7.2.1"; + url = "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "0avs9pf45xa73xadf6vmfwicjgb5dcq2cspwm2l5npailz05lyd0"; + }; + versions = { + "20" = onlyoffice_7_2_1; + "21" = onlyoffice_7_2_1; + "22" = onlyoffice_7_2_1; + "23" = onlyoffice_7_2_1; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app onlyoffice") diff --git a/pkgs/webapps/nextcloud/apps/passman.nix b/pkgs/webapps/nextcloud/apps/passman.nix index 2de4882..94e0a83 100644 --- a/pkgs/webapps/nextcloud/apps/passman.nix +++ b/pkgs/webapps/nextcloud/apps/passman.nix @@ -1,10 +1,17 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 17 && nextcloudVersion <= 18; -buildApp rec { - # FIXME: it creates a /settings/user/additional setting url which - # doesn’t work - appName = "passman"; - version = "2.3.5"; - url = "https://releases.passman.cc/${appName}_${version}.tar.gz"; - sha256 = "05gc288n43c7dhmq1jqfn8cfw7sycwdfhn36j8rh8nbx1irldbjn"; -} +let + passman_2_3_1335 = buildApp rec { + # FIXME: it creates a /settings/user/additional setting url which + # doesn’t work + appName = "passman"; + version = "2.3.1335"; + url = "https://releases.passman.cc/${appName}_${version}.tar.gz"; + sha256 = "12mbf08j3xlgwv0m2ssg1rx1rvnrjqv36p1xxap2b57i4zjy559l"; + }; + versions = { + "20" = passman_2_3_1335; + "21" = passman_2_3_1335; + "22" = passman_2_3_1335; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app passman") diff --git a/pkgs/webapps/nextcloud/apps/polls.nix b/pkgs/webapps/nextcloud/apps/polls.nix index 69e1102..fef762f 100644 --- a/pkgs/webapps/nextcloud/apps/polls.nix +++ b/pkgs/webapps/nextcloud/apps/polls.nix @@ -1,8 +1,22 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 16 && nextcloudVersion <= 19; -buildApp rec { - appName = "polls"; - version = "1.4.3"; - url = "https://github.com/nextcloud/polls/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "07l5x5xblk6w8f6mqz3a5hjpry8qc3zgqi49z6bp5ipnzj0s6wm4"; -} +let + polls_2_0_6 = buildApp rec { + appName = "polls"; + version = "2.0.6"; + url = "https://github.com/nextcloud/polls/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "0pfsfwipwpnaldp5436jbfwhw3ign5h612njzx53j75v8ykq06zi"; + }; + polls_3_4_0 = buildApp rec { + appName = "polls"; + version = "3.4.0"; + url = "https://github.com/nextcloud/polls/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "1ddcf4ckbazyf2rwhxgpfpwvy217zd8a8akq5zhify4kjkbpgb9y"; + }; + versions = { + "20" = polls_2_0_6; + "21" = polls_3_4_0; + "22" = polls_3_4_0; + "23" = polls_3_4_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app polls") diff --git a/pkgs/webapps/nextcloud/apps/social.nix b/pkgs/webapps/nextcloud/apps/social.nix index 75b790a..1294c8c 100644 --- a/pkgs/webapps/nextcloud/apps/social.nix +++ b/pkgs/webapps/nextcloud/apps/social.nix @@ -1,9 +1,14 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 17 && nextcloudVersion <= 19; -buildApp rec { - appName = "social"; - version = "0.3.1"; - url = "https://github.com/nextcloud/social/releases/download/v${version}/${appName}-${version}.tar.gz"; - sha256 = "03hh6vr34p33dphrjqmc7s8mvsk5n7dl817j8qkf75203y8szhdy"; -} - +let + social_0_4_2 = buildApp rec { + appName = "social"; + version = "0.4.2"; + url = "https://github.com/nextcloud/social/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "0nzsl70al4aqblbyzddlrhivbk2x559mbwn8slyg3k0wy9ynsi4p"; + }; + versions = { + "20" = social_0_4_2; + "21" = social_0_4_2; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app social") diff --git a/pkgs/webapps/nextcloud/apps/spreed.nix b/pkgs/webapps/nextcloud/apps/spreed.nix index b52c8c5..9c94639 100644 --- a/pkgs/webapps/nextcloud/apps/spreed.nix +++ b/pkgs/webapps/nextcloud/apps/spreed.nix @@ -1,8 +1,34 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion == 18; -buildApp rec { - appName = "spreed"; - version = "8.0.8"; - url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; - sha256 = "19szk61ixzzrabs63l2fihx7k4f6a8k4kdzpa0xxzv5w9ssqjhbj"; -} +let + spreed_10_0_10 = buildApp rec { + appName = "spreed"; + version = "10.0.10"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "0daajsc7s52l56h58vhvnh8d1a2vh14rkdayjgwc75bh7zv506yi"; + }; + spreed_11_3_3 = buildApp rec { + appName = "spreed"; + version = "11.3.3"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "0mhglx3rf7j4dyf8asmwakvzpn2mjcysa0iwfn42b2cyd7gw4viq"; + }; + spreed_12_1_2 = buildApp rec { + appName = "spreed"; + version = "12.1.2"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz"; + sha256 = "02npw6iqi5b36xqzkdgmxsv464i67yfzf7b3bj3gdpn6w50mnnl9"; + }; + spreed_13_0_0 = buildApp rec { + appName = "spreed"; + version = "13.0.0"; + url = "https://github.com/nextcloud-releases/${appName}/releases/download/v${version}/${appName}-v${version}.tar.gz"; + sha256 = "0r07zrkld7miv5wdn5ssrhqylaplvbc9fr1qnil023d6yyc4jfwi"; + }; + versions = { + "20" = spreed_10_0_10; + "21" = spreed_11_3_3; + "22" = spreed_12_1_2; + "23" = spreed_13_0_0; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app spreed") diff --git a/pkgs/webapps/nextcloud/apps/talk_matterbridge.nix b/pkgs/webapps/nextcloud/apps/talk_matterbridge.nix new file mode 100644 index 0000000..dcf73cd --- /dev/null +++ b/pkgs/webapps/nextcloud/apps/talk_matterbridge.nix @@ -0,0 +1,16 @@ +{ buildApp, nextcloudVersion }: +let + talk_matterbridge_1_23_2 = buildApp rec { + appName = "talk_matterbridge"; + version = "1.23.2"; + url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "1p2mahi4ml1wnj75irysm17s7lpbgjvlrc2yin1ii6ac19zflwcj"; + }; + versions = { + "20" = talk_matterbridge_1_23_2; + "21" = talk_matterbridge_1_23_2; + "22" = talk_matterbridge_1_23_2; + "23" = talk_matterbridge_1_23_2; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app talk_matterbridge") diff --git a/pkgs/webapps/nextcloud/apps/tasks.nix b/pkgs/webapps/nextcloud/apps/tasks.nix index a2de465..937ecab 100644 --- a/pkgs/webapps/nextcloud/apps/tasks.nix +++ b/pkgs/webapps/nextcloud/apps/tasks.nix @@ -1,8 +1,16 @@ { buildApp, nextcloudVersion }: -assert nextcloudVersion >= 16 && nextcloudVersion <= 19; -buildApp rec { - appName = "tasks"; - version = "0.12.2"; - url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz"; - sha256 = "092fg7dpx69jp5z0ka14ay6bnfdcnjq8zk2gc3rwpzc3llpdnqph"; -} +let + tasks_0_14_2 = buildApp rec { + appName = "tasks"; + version = "0.14.2"; + url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz"; + sha256 = "120r2ssfpnpvvzhk26gjkv5bvzy65zmcj2jyqrz1p8pap3ba27ar"; + }; + versions = { + "20" = tasks_0_14_2; + "21" = tasks_0_14_2; + "22" = tasks_0_14_2; + "23" = tasks_0_14_2; + }; +in + versions."${builtins.toString nextcloudVersion}" or (throw "Unsupported version for nextcloud app tasks") diff --git a/pkgs/webapps/nextcloud/default.nix b/pkgs/webapps/nextcloud/default.nix index 1b01169..c6677db 100644 --- a/pkgs/webapps/nextcloud/default.nix +++ b/pkgs/webapps/nextcloud/default.nix @@ -1,33 +1,44 @@ -{ varDir ? "/var/lib/nextcloud", nextcloudVersion ? 18, otherConfig ? {}, lib, stdenv, callPackage, fetchzip, fetchurl }: +{ varDir ? "/var/lib/nextcloud", nextcloudVersion, otherConfig ? {}, lib, stdenv, callPackage, fetchzip, fetchurl }: let + shasumsAndVersion = { + "20" = { sum = "0rwky0d5i5glck5xxfsa9ygd0v2wf58k2q4ipmyvgq4rki2jqr89"; fullVersion = "20.0.14"; }; + "21" = { sum = "1dqk2lpqc08qld8znp5vpcm8j8j8spfgvl8ax9faxpmmdrcj34sr"; fullVersion = "21.0.7"; }; + "22" = { sum = "0allxfcnhh4bkp4s66b47smsn7y9qxlcnxxnxnmw0f0795m9m8k6"; fullVersion = "22.2.3"; }; + "23" = { sum = "0b0ss1svxyg3kfbymhn85zspmf0lyhj1la2rhk98yp5nqfmr4xf3"; fullVersion = "23.0.0"; }; + }; appNames = [ "apporder" "audioplayer" "bookmarks" "calendar" "carnet" "circles" - "contacts" "cookbook" "deck" "extract" "files_markdown" "files_mindmap" - "files_readmemd" "flowupload" "gpxedit" "gpxpod" "impersonate" - "keeweb" "maps" "metadata" "music" "notes" "ocsms" "passman" "polls" - "spreed" "social" "tasks" + "contacts" "cookbook" "deck" "external" "extract" "files_markdown" "files_mindmap" + "files_readmemd" "flowupload" "gpxedit" "gpxpod" "groupfolders" "impersonate" + "keeweb" "maps" "metadata" "music" "notes" "ocsms" "onlyoffice" "passman" "polls" + "social" "spreed" "talk_matterbridge" "tasks" "drawio" ]; - allApps = lib.attrsets.genAttrs appNames - (name: callPackage (./apps + "/${name}.nix") { inherit buildApp nextcloudVersion; }); - buildApp = { appName, version, url, sha256, zip ? false, installHook ? (n: ""), otherConfig ? {}, installPhase ? "mkdir -p $out && cp -R . $out/" }: + toApp = name: callPackage (./apps + "/${name}.nix") { inherit buildApp nextcloudVersion; }; + allSupportedApps = lib.mapAttrs (n: v: v.value) (lib.filterAttrs (n: v: v.success) (lib.genAttrs appNames (name: builtins.tryEval (toApp name)))); + allApps = lib.genAttrs appNames toApp; + buildApp = { appName, version, url, sha256, installHook ? (n: ""), otherConfig ? {}, installPhase ? "mkdir -p $out && cp -R . $out/" }: stdenv.mkDerivation rec { name = "nextcloud-app-${appName}-${version}"; inherit version; phases = "unpackPhase installPhase"; inherit installPhase; - src = (if zip then fetchzip else fetchurl) { inherit url sha256; }; + src = fetchurl { inherit url sha256; }; passthru = { inherit appName otherConfig installHook; }; }; toPassthru = pkg: apps: otherConfig: { - inherit apps otherConfig allApps buildApp varDir; + inherit apps otherConfig allApps allSupportedApps buildApp varDir; withApps = withApps pkg; }; withApps = pkg: toApps: let apps = toApps allApps; toInstallApp = n: '' + if [ -e $out/apps/${n.appName} ]; then + echo "${n.appName} already exists" + false + fi ln -sf ${n} $out/apps/${n.appName} '' + (n.installHook n); zipped = lib.attrsets.zipAttrs ([pkg.otherConfig or {}] ++ map (v: v.otherConfig) apps); @@ -42,16 +53,17 @@ let in newNextcloud; package = stdenv.mkDerivation rec { name = "nextcloud-${version}"; - version = "${builtins.toString nextcloudVersion}.0.4"; + version = shasumsAndVersion."${builtins.toString nextcloudVersion}".fullVersion; src = fetchurl { url = "https://download.nextcloud.com/server/releases/${name}.tar.bz2"; - sha256 = "0aa3f4xbkzacfw0h9aic0ywk5mqlwka83qaszizj8lmk68kf3n7s"; + sha256 = shasumsAndVersion."${builtins.toString nextcloudVersion}".sum; }; installPhase = '' mkdir -p $out/ cp -R . $out/ + sed -i -e "/'appDirsWithDifferentOwner'/d" $out/apps/settings/lib/Controller/CheckSetupController.php rm -r $out/config '' + lib.optionalString (varDir != null) '' ln -sf ${varDir}/config $out/config -- 2.41.0