use app version data from nixpkgs

This commit is contained in:
Robin Appelman 2025-08-18 00:14:49 +02:00
commit 3daf2339f3
9 changed files with 1213 additions and 223 deletions

354
nix/app-versions/29.json Normal file

File diff suppressed because one or more lines are too long

386
nix/app-versions/30.json Normal file

File diff suppressed because one or more lines are too long

386
nix/app-versions/31.json Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
Copied from
[nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/nextcloud/packages/)

View file

@ -0,0 +1,27 @@
lib: let
inherit (builtins) splitVersion head fromJSON readFile mapAttrs map listToAttrs foldl' attrNames;
inherit (lib) unique;
ncVersions = ["29" "30" "31"];
getMajorVersion = version: head (splitVersion version);
readJSON = path: fromJSON (readFile path);
getVersionData = data: {
inherit (data) url version;
sha256 = data.hash;
};
getByNcVersion = ncVersion: mapAttrs (app: data: {"${getMajorVersion data.version}" = getVersionData data;}) (readJSON ./${ncVersion}.json);
byNcVersion = map getByNcVersion ncVersions;
mergeVersions = a: b: let
allApps = unique (attrNames a ++ attrNames b);
mergeApp = app: (a.${app} or {}) // (b.${app} or {});
in
listToAttrs (map (app: {
name = app;
value = mergeApp app;
})
allApps);
in
foldl' (acc: apps: mergeVersions acc apps) {} byNcVersion

View file

@ -1,7 +1,9 @@
{
lib,
stdenvNoCC,
logging-extractor,
fetchzip,
fetchurl,
name,
version,
url,
@ -9,6 +11,12 @@
sha256,
mode ? "json",
}: let
inherit (builtins) substring stringLength;
getExt = path: substring (stringLength path - 3) (-1) path;
extractor =
if ((getExt url) == "zip")
then fetchzip
else fetchurl;
ext =
if mode == "rust"
then "rs"
@ -19,7 +27,7 @@ in
pname = "extractor-logs-${name}-${cleanedMajor}";
inherit version;
src = fetchzip {
src = extractor {
inherit url sha256;
};

View file

@ -3,12 +3,18 @@ final: prev: let
inherit (prev) symlinkJoin;
inherit (prev.lib) importJSON;
inherit (prev.lib.lists) flatten;
allPackages = importJSON ./versions.json;
serverPackages = importJSON ./versions.json;
appVersions = import ./app-versions prev.lib;
# packages = {
# server = {"29" = allPackages.server."29";};
# inherit (allPackages) files_accesscontrol files_antivirus deck;
# server = {"29" = serverPackages."29";};
# inherit (appVersions) files_accesscontrol files_antivirus deck;
# };
packages = allPackages;
packages =
{
server = serverPackages;
}
// appVersions;
loggingFor = mode: name:
mapAttrs (major: data: (final.callPackage ./extracted-logs.nix {

View file

@ -1,220 +1,42 @@
{
"server": {
"31": {
"version": "31.0.0",
"url": "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.zip",
"sha256": "sha256-/jExlHxiJY0avcbptSWgeTLUyQN4VUI/WnbbdBLuccY="
},
"30": {
"version": "30.0.0",
"url": "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip",
"sha256": "sha256-2o23BCUd/Cogh+wtcj1FBZwarNX6RTE07pbLuAC35oE="
},
"29": {
"version": "29.0.3",
"url": "https://download.nextcloud.com/server/releases/nextcloud-29.0.3.zip",
"sha256": "sha256-lqbPOAn7hYr+AThNiSFWLrU1u6iBKOQNWmilKKfe5zY="
},
"28": {
"version": "28.0.8",
"url": "https://download.nextcloud.com/server/releases/nextcloud-28.0.8.zip",
"sha256": "sha256-PcpqrOEHC6J6EzCqbYfgnjaFXJF7zpAyIcdXxP14+Co="
},
"27": {
"version": "27.1.11",
"url": "https://download.nextcloud.com/server/releases/nextcloud-27.1.11.zip",
"sha256": "sha256-xzo1dNo9iSrVJD5D5Rd4g2YMQRcRVEKYT8vF1MYb9S4="
},
"26": {
"version": "26.0.13",
"url": "https://download.nextcloud.com/server/releases/nextcloud-26.0.13.zip",
"sha256": "sha256-05H2wwPhiN6NT1jhw+lAo5nB0AYrwwc0pAkCgh6AIU0="
},
"25": {
"version": "25.0.13",
"url": "https://download.nextcloud.com/server/releases/nextcloud-25.0.13.zip",
"sha256": "sha256-8A9b+MtNtBI7Hl67NkeZ+BenVpqMIqrod/s0bFooneI="
},
"24": {
"version": "24.0.12",
"url": "https://download.nextcloud.com/server/releases/nextcloud-24.0.12.zip",
"sha256": "sha256-+VlQVSTXtEsuoJ3Ic9o4DmFH4CQhMK8KtwiS+SqhiYE="
}
"31": {
"version": "31.0.0",
"url": "https://download.nextcloud.com/server/releases/nextcloud-31.0.0.zip",
"sha256": "sha256-/jExlHxiJY0avcbptSWgeTLUyQN4VUI/WnbbdBLuccY="
},
"files_accesscontrol": {
"1": {
"version": "1.19.1",
"url": "https://github.com/nextcloud-releases/files_accesscontrol/releases/download/v1.19.1/files_accesscontrol-v1.19.1.tar.gz",
"sha256": "sha256-e9387k5yn3lAZ7uN0YU8zNVkX8sCoNxyc5M3E3azo80=",
"prefix": "/apps/files_accesscontrol"
}
"30": {
"version": "30.0.0",
"url": "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip",
"sha256": "sha256-2o23BCUd/Cogh+wtcj1FBZwarNX6RTE07pbLuAC35oE="
},
"files_antivirus": {
"5": {
"version": "5.5.7",
"url": "https://github.com/nextcloud-releases/files_antivirus/releases/download/v5.5.7/files_antivirus-v5.5.7.tar.gz",
"sha256": "sha256-Sg6AeqopaXrXrZ6loq+B5ZBjh2SHIflXaf6u/cIBqUo=",
"prefix": "/apps/files_antivirus"
}
"29": {
"version": "29.0.3",
"url": "https://download.nextcloud.com/server/releases/nextcloud-29.0.3.zip",
"sha256": "sha256-lqbPOAn7hYr+AThNiSFWLrU1u6iBKOQNWmilKKfe5zY="
},
"deck": {
"1": {
"version": "1.31.1",
"url": "https://github.com/nextcloud-releases/deck/releases/download/v1.13.1/deck-v1.13.1.tar.gz",
"sha256": "sha256-AQV2JeSrQcPSh2J2oG/Kbrh2Qo/nj1+orYJymDsQLDQ=",
"prefix": "/apps/deck"
}
"28": {
"version": "28.0.8",
"url": "https://download.nextcloud.com/server/releases/nextcloud-28.0.8.zip",
"sha256": "sha256-PcpqrOEHC6J6EzCqbYfgnjaFXJF7zpAyIcdXxP14+Co="
},
"contacts": {
"6": {
"version": "6.0.0",
"url": "https://github.com/nextcloud-releases/contacts/releases/download/v6.0.0/contacts-v6.0.0.tar.gz",
"sha256": "sha256-GfITU8ZnB5zK/ajo83dDqPKet/oQMo50y5V0dw4Zt3s=",
"prefix": "/apps/contacts"
},
"5": {
"version": "5.5.3",
"url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.5.3/contacts-v5.5.3.tar.gz",
"sha256": "sha256-HCEjiAqn6sTNXKW6O5X6Ta9Ll4ehvzmGZUj1c0ue2Xc=",
"prefix": "/apps/contacts"
}
"27": {
"version": "27.1.11",
"url": "https://download.nextcloud.com/server/releases/nextcloud-27.1.11.zip",
"sha256": "sha256-xzo1dNo9iSrVJD5D5Rd4g2YMQRcRVEKYT8vF1MYb9S4="
},
"groupfolders": {
"17": {
"version": "17.0.1",
"url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v17.0.1/groupfolders-v17.0.1.tar.gz",
"sha256": "sha256-AqEZkId0Nk0EfsIme8fC+pQsz13d8LXRmEVm+FrUC2g=",
"prefix": "/apps/groupfolders"
},
"16": {
"version": "16.0.7",
"url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v16.0.7/groupfolders-v16.0.7.tar.gz",
"sha256": "sha256-gaOCIqpNqFiWNcv52+mthGjI23Bj9todgOf2ZomskJ4=",
"prefix": "/apps/groupfolders"
}
"26": {
"version": "26.0.13",
"url": "https://download.nextcloud.com/server/releases/nextcloud-26.0.13.zip",
"sha256": "sha256-05H2wwPhiN6NT1jhw+lAo5nB0AYrwwc0pAkCgh6AIU0="
},
"guests": {
"4": {
"version": "4.0.0",
"url": "https://github.com/nextcloud-releases/guests/releases/download/v4.0.0/guests-v4.0.0.tar.gz",
"sha256": "sha256-dM2BmckOGZpcFDVs2oYVDqPafyBtLFB3ZCcsnOflteM=",
"prefix": "/apps/guests"
},
"3": {
"version": "3.1.0",
"url": "https://github.com/nextcloud-releases/guests/releases/download/v3.1.0/guests-v3.1.0.tar.gz",
"sha256": "sha256-YpJWOOP/45Lnw6XlQ6PLitG2NzSyYXCD5D9lZyn+mcQ=",
"prefix": "/apps/guests"
}
"25": {
"version": "25.0.13",
"url": "https://download.nextcloud.com/server/releases/nextcloud-25.0.13.zip",
"sha256": "sha256-8A9b+MtNtBI7Hl67NkeZ+BenVpqMIqrod/s0bFooneI="
},
"spreed": {
"19": {
"version": "19.0.7",
"url": "https://github.com/nextcloud-releases/spreed/releases/download/v19.0.7/spreed-v19.0.7.tar.gz",
"sha256": "sha256-Ab978xb8cwTmGRoA8JTw+IVbdvRb1F3ndeW5ljpisVU=",
"prefix": "/apps/spreed"
},
"18": {
"version": "18.0.10",
"url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.10/spreed-v18.0.10.tar.gz",
"sha256": "sha256-D2xNlTpn/mw2uFqE9rzPjxC1YUbYgmHhOxGPfGIYumo=",
"prefix": "/apps/spreed"
}
},
"forms": {
"4": {
"version": "4.2.4",
"url": "https://github.com/nextcloud-releases/forms/releases/download/v4.2.4/forms-v4.2.4.tar.gz",
"sha256": "sha256-3ram5LduRgMmUWDRp65cvS9Dbhx7UnR7OllbEVQ+jMM=",
"prefix": "/apps/forms"
}
},
"tasks": {
"0": {
"version": "0.16.0",
"url": "https://github.com/nextcloud/tasks/releases/download/v0.16.0/tasks.tar.gz",
"sha256": "sha256-L68ughpLad4cr5utOPwefu2yoOgRvnJibqfKmarGXLw=",
"prefix": "/apps/tasks"
}
},
"notes": {
"4": {
"version": "4.10.1",
"url": "https://github.com/nextcloud-releases/notes/releases/download/v4.10.1/notes-v4.10.1.tar.gz",
"sha256": "sha256-A3QNWGWeC2OcZngMrh9NpYbU5qp5x9xiDcRfB9cRXBo=",
"prefix": "/apps/notes"
}
},
"richdocuments": {
"8": {
"version": "8.4.3",
"url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.4.3/richdocuments-v8.4.3.tar.gz",
"sha256": "sha256-eoOBZGK7XQuP1ZxEcCSBQYe4bYf14/8OgtFOHUQnPXQ=",
"prefix": "/apps/richdocuments"
}
},
"collectives": {
"2": {
"version": "2.13.0",
"url": "https://github.com/nextcloud/collectives/releases/download/v2.13.0/collectives-2.13.0.tar.gz",
"sha256": "sha256-mFr0gyWdCCX2pAekj8ZEZfShYW0HtvdfbRfEt8kapkE=",
"prefix": "/apps/collectives"
}
},
"onlyoffice": {
"9": {
"version": "9.3.0",
"url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.3.0/onlyoffice.tar.gz",
"sha256": "sha256-9H/ASllarwmSEWCpPGmm6qy7NgSt3NXzJgBxz5v0Db8=",
"prefix": "/apps/onlyoffice"
}
},
"tables": {
"0": {
"version": "0.7.4",
"url": "https://github.com/nextcloud-releases/tables/releases/download/v0.7.4/tables-v0.7.4.tar.gz",
"sha256": "sha256-2SIASvMQQt7XUzU6wAaZjVW9sMZ4VKGGCtEUdLUYzfQ=",
"prefix": "/apps/tables"
}
},
"mail": {
"3": {
"version": "3.7.5",
"url": "https://github.com/nextcloud-releases/mail/releases/download/v3.7.5/mail-v3.7.5.tar.gz",
"sha256": "sha256-zLKTXqXTKyCRrETjKTJzO84QdYar/4zjUrbvT0aWfx0=",
"prefix": "/apps/mail"
}
},
"files_automatedtagging": {
"1": {
"version": "1.20.0",
"url": "https://github.com/nextcloud-releases/files_automatedtagging/releases/download/v1.20.0/files_automatedtagging-v1.20.0.tar.gz",
"sha256": "sha256-Go46bhi/AzuIRkUK61s73y+jLsSLH6Ixobd6gAsSH2U=",
"prefix": "/apps/files_automatedtagging"
}
},
"files_retention": {
"1": {
"version": "1.18.0",
"url": "https://github.com/nextcloud-releases/files_retention/releases/download/v1.18.0/files_retention-v1.18.0.tar.gz",
"sha256": "sha256-FazftNLLdxlnt7libXG4Ngyi6hyyxC2VhX/PXEard98=",
"prefix": "/apps/files_retention"
}
},
"onlyoffice": {
"9": {
"version": "9.3.0",
"url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.3.0/onlyoffice.tar.gz",
"sha256": "sha256-9H/ASllarwmSEWCpPGmm6qy7NgSt3NXzJgBxz5v0Db8=",
"prefix": "/apps/onlyoffice"
}
},
"impersonate": {
"1": {
"version": "1.17.0",
"url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.17.0/impersonate-v1.17.0.tar.gz",
"sha256": "sha256-8qcUxtmiv4+BKxqajEWzZj6HTgjZvSuKiJlNjpvFIuk=",
"prefix": "/apps/impersonate"
}
"24": {
"version": "24.0.12",
"url": "https://download.nextcloud.com/server/releases/nextcloud-24.0.12.zip",
"sha256": "sha256-+VlQVSTXtEsuoJ3Ic9o4DmFH4CQhMK8KtwiS+SqhiYE="
}
}