bulk versions.json
This commit is contained in:
@@ -2,24 +2,24 @@
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
pkgs,
|
||||
MODEL ? "5",
|
||||
DEBUG ? "0",
|
||||
TFA_FLAGS ? "",
|
||||
}:
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versions = importJSON ./versions.json;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
sources = versioning.mkAllSources selected;
|
||||
fw = selected.sources.fw;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "arm-trusted-firmware";
|
||||
version = versions.fw.rev;
|
||||
version = if fw ? tag then fw.tag else fw.rev;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ARM-software";
|
||||
repo = "arm-trusted-firmware";
|
||||
rev = "${version}";
|
||||
hash = versions.fw.hash;
|
||||
};
|
||||
src = sources.fw;
|
||||
|
||||
# Add required host tools if needed:
|
||||
nativeBuildInputs = [
|
||||
|
||||
12
packages/arm-trusted-firmware/version.json
Normal file
12
packages/arm-trusted-firmware/version.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sources": {
|
||||
"fw": {
|
||||
"fetcher": "github",
|
||||
"owner": "ARM-software",
|
||||
"repo": "arm-trusted-firmware",
|
||||
"rev": "8fd4c786594239de20669f062e416fe1a37ca59e",
|
||||
"hash": "sha256-eh0b4q6od9ZWAFBQ+wRjpLQEEf8kox2L3l1iHwQtju8="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"fw": {
|
||||
"hash": "sha256-eh0b4q6od9ZWAFBQ+wRjpLQEEf8kox2L3l1iHwQtju8=",
|
||||
"location": "github",
|
||||
"owner": "ARM-software",
|
||||
"repo": "arm-trusted-firmware",
|
||||
"rev": "8fd4c786594239de20669f062e416fe1a37ca59e"
|
||||
}
|
||||
}
|
||||
@@ -21,35 +21,16 @@ let
|
||||
|
||||
pname = "edk2";
|
||||
version = "stable202511";
|
||||
versions = importJSON ./versions.json;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec (if MODEL == "5" then "mjallen" else null) null;
|
||||
sources = versioning.mkAllSources selected;
|
||||
|
||||
repoOwner = (if MODEL == "5" then "-mjallen" else "");
|
||||
edk2Src = sources.edk2;
|
||||
|
||||
edk2Src = fetchFromGitHub rec {
|
||||
owner = versions."edk2${repoOwner}".owner;
|
||||
repo = "edk2";
|
||||
name = repo;
|
||||
rev = (if MODEL == "5" then versions."edk2${repoOwner}".rev else null);
|
||||
tag = (if MODEL == "5" then null else versions."edk2${repoOwner}".tag);
|
||||
hash = versions."edk2${repoOwner}".hash;
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
edk2NonOsiSrc = sources."edk2-non-osi";
|
||||
|
||||
edk2NonOsiSrc = fetchFromGitHub rec {
|
||||
owner = versions."edk2-non-osi${repoOwner}".owner;
|
||||
repo = "edk2-non-osi";
|
||||
name = repo;
|
||||
rev = versions."edk2-non-osi${repoOwner}".rev;
|
||||
hash = versions."edk2-non-osi${repoOwner}".hash;
|
||||
};
|
||||
|
||||
edk2PlatformsSrc = fetchFromGitHub rec {
|
||||
owner = versions."edk2-platforms${repoOwner}".owner;
|
||||
repo = "edk2-platforms";
|
||||
name = repo;
|
||||
rev = versions."edk2-platforms${repoOwner}".rev;
|
||||
hash = versions."edk2-platforms${repoOwner}".hash;
|
||||
};
|
||||
edk2PlatformsSrc = sources."edk2-platforms";
|
||||
|
||||
baseTools = pkgs.${namespace}.edk2-basetools.override {
|
||||
version = "stable202511";
|
||||
|
||||
53
packages/edk2/version.json
Normal file
53
packages/edk2/version.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sources": {
|
||||
"edk2": {
|
||||
"fetcher": "github",
|
||||
"owner": "tianocore",
|
||||
"repo": "edk2",
|
||||
"tag": "edk2-stable202511",
|
||||
"hash": "sha256-R/rgz8dWcDYVoiM67K2UGuq0xXbjjJYBPtJ1FmfGIaU=",
|
||||
"submodules": true
|
||||
},
|
||||
"edk2-non-osi": {
|
||||
"fetcher": "github",
|
||||
"owner": "tianocore",
|
||||
"repo": "edk2-non-osi",
|
||||
"rev": "94d048981116e2e3eda52dad1a89958ee404098d",
|
||||
"hash": "sha256-6yuvVvmGn4yaEksbbvGDX1ZcKpdWBKnwaNjLGvgAWyk="
|
||||
},
|
||||
"edk2-platforms": {
|
||||
"fetcher": "github",
|
||||
"owner": "tianocore",
|
||||
"repo": "edk2-platforms",
|
||||
"rev": "0991a0b643509d900e5d023a0116789827a696e5",
|
||||
"hash": "sha256-IdACr0NStqEpC0TFoKKgDwKT2mqyJwVXW/B7hlRXccI="
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"mjallen": {
|
||||
"sources": {
|
||||
"edk2": {
|
||||
"owner": "mjallen18",
|
||||
"repo": "edk2",
|
||||
"rev": "9765be56f1f816ef737153f5588b3294fcc69a63",
|
||||
"tag": null,
|
||||
"hash": "sha256-oqfJbNeOj2BVJqWE+snD6ri3lUO1aNcmPg+eJpjyr5E=",
|
||||
"submodules": true
|
||||
},
|
||||
"edk2-non-osi": {
|
||||
"owner": "mjallen18",
|
||||
"repo": "edk2-non-osi",
|
||||
"rev": "09ee44f07ded544d976be8a03dec3715719f638e",
|
||||
"hash": "sha256-k7nUb3WaRUIr9IlXdam2WGKPOzKjLNVFLfuD5h4veMc="
|
||||
},
|
||||
"edk2-platforms": {
|
||||
"owner": "mjallen18",
|
||||
"repo": "edk2-platforms",
|
||||
"rev": "fdf5a10cc60d1f01030e3ded3c6e69179819cd20",
|
||||
"hash": "sha256-kc5kMEZNLxWFUN8n5+NxXNphkXAtVyjvSAuFyljb8Cs="
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"edk2": {
|
||||
"hash": "sha256-R/rgz8dWcDYVoiM67K2UGuq0xXbjjJYBPtJ1FmfGIaU=",
|
||||
"location": "github",
|
||||
"owner": "tianocore",
|
||||
"repo": "edk2",
|
||||
"tag": "edk2-stable202511"
|
||||
},
|
||||
"edk2-non-osi": {
|
||||
"hash": "sha256-6yuvVvmGn4yaEksbbvGDX1ZcKpdWBKnwaNjLGvgAWyk=",
|
||||
"location": "github",
|
||||
"owner": "tianocore",
|
||||
"repo": "edk2-non-osi",
|
||||
"rev": "94d048981116e2e3eda52dad1a89958ee404098d"
|
||||
},
|
||||
"edk2-platforms": {
|
||||
"hash": "sha256-IdACr0NStqEpC0TFoKKgDwKT2mqyJwVXW/B7hlRXccI=",
|
||||
"location": "github",
|
||||
"owner": "tianocore",
|
||||
"repo": "edk2-platforms",
|
||||
"rev": "0991a0b643509d900e5d023a0116789827a696e5"
|
||||
},
|
||||
"edk2-mjallen": {
|
||||
"hash": "sha256-oqfJbNeOj2BVJqWE+snD6ri3lUO1aNcmPg+eJpjyr5E=",
|
||||
"location": "github",
|
||||
"owner": "mjallen18",
|
||||
"repo": "edk2",
|
||||
"rev": "9765be56f1f816ef737153f5588b3294fcc69a63"
|
||||
},
|
||||
"edk2-non-osi-mjallen": {
|
||||
"hash": "sha256-k7nUb3WaRUIr9IlXdam2WGKPOzKjLNVFLfuD5h4veMc=",
|
||||
"location": "github",
|
||||
"owner": "mjallen18",
|
||||
"repo": "edk2-non-osi",
|
||||
"rev": "09ee44f07ded544d976be8a03dec3715719f638e"
|
||||
},
|
||||
"edk2-platforms-mjallen": {
|
||||
"hash": "sha256-kc5kMEZNLxWFUN8n5+NxXNphkXAtVyjvSAuFyljb8Cs=",
|
||||
"location": "github",
|
||||
"owner": "mjallen18",
|
||||
"repo": "edk2-platforms",
|
||||
"rev": "fdf5a10cc60d1f01030e3ded3c6e69179819cd20"
|
||||
}
|
||||
}
|
||||
@@ -14,21 +14,20 @@
|
||||
expat,
|
||||
fontconfig,
|
||||
freetype,
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versions = importJSON ./versions.json;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
sources = versioning.mkAllSources selected;
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "librepods";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kavishdevar";
|
||||
repo = "librepods";
|
||||
rev = versions.rev;
|
||||
hash = versions.hash;
|
||||
};
|
||||
src = sources.librepods;
|
||||
|
||||
sourceRoot = "${src.name}/linux-rust";
|
||||
|
||||
|
||||
11
packages/librepods-beta/version.json
Normal file
11
packages/librepods-beta/version.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sources": {
|
||||
"librepods": {
|
||||
"fetcher": "git",
|
||||
"url": "https://github.com/kavishdevar/librepods",
|
||||
"rev": "c852b726deb5344ea3637332722a7c93f3858d60",
|
||||
"hash": "sha256-RoOkINI+ahepAbgwdkcl1iI9XGI/gYXWiH0J9Eb90pg="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"repo": "https://github.com/kavishdevar/librepods",
|
||||
"rev": "c852b726deb5344ea3637332722a7c93f3858d60",
|
||||
"hash": "sha256-RoOkINI+ahepAbgwdkcl1iI9XGI/gYXWiH0J9Eb90pg="
|
||||
}
|
||||
@@ -8,21 +8,20 @@
|
||||
python3,
|
||||
libpulseaudio,
|
||||
fetchFromGitHub,
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versions = importJSON ./versions.json;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
sources = versioning.mkAllSources selected;
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "librepods";
|
||||
version = "unstable";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kavishdevar";
|
||||
repo = "librepods";
|
||||
rev = versions.rev;
|
||||
hash = versions.hash;
|
||||
};
|
||||
src = sources.librepods;
|
||||
|
||||
sourceRoot = "source/linux";
|
||||
|
||||
|
||||
11
packages/librepods/version.json
Normal file
11
packages/librepods/version.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sources": {
|
||||
"librepods": {
|
||||
"fetcher": "git",
|
||||
"url": "https://github.com/kavishdevar/librepods",
|
||||
"rev": "287163e116d092485d561ad571dae03a2f43cf2f",
|
||||
"hash": "sha256-PD5U87RVBRCLWwnN54x3AEey6wqoOeZlBvzyIESH1v8="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"repo": "https://github.com/kavishdevar/librepods",
|
||||
"rev": "287163e116d092485d561ad571dae03a2f43cf2f",
|
||||
"hash": "sha256-PD5U87RVBRCLWwnN54x3AEey6wqoOeZlBvzyIESH1v8="
|
||||
}
|
||||
|
||||
@@ -20,10 +20,36 @@ let
|
||||
# ######################################################
|
||||
# Source Versions #
|
||||
# ######################################################
|
||||
mainVersions = importJSON ./versions.json;
|
||||
ltsVersions = importJSON ./versions-lts.json;
|
||||
rcVersions = importJSON ./versions-rc.json;
|
||||
hardenedVersions = importJSON ./versions-hardened.json;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../lib/versioning.nix { inherit lib pkgs; };
|
||||
mkVersions = selected:
|
||||
let
|
||||
s = selected.sources;
|
||||
vars = selected.variables or {};
|
||||
in
|
||||
{
|
||||
suffix = vars.suffix or "";
|
||||
linux = {
|
||||
inherit (s.linux) version hash;
|
||||
};
|
||||
config = {
|
||||
rev = s.config.rev;
|
||||
hash = s.config.hash;
|
||||
};
|
||||
patches = {
|
||||
rev = s.patches.rev;
|
||||
hash = s.patches.hash;
|
||||
};
|
||||
zfs = {
|
||||
rev = s.zfs.rev;
|
||||
hash = s.zfs.hash;
|
||||
};
|
||||
};
|
||||
|
||||
mainVersions = mkVersions (versioning.selectVariant versionSpec null null);
|
||||
ltsVersions = mkVersions (versioning.selectVariant versionSpec "lts" null);
|
||||
rcVersions = mkVersions (versioning.selectVariant versionSpec "rc" null);
|
||||
hardenedVersions = mkVersions (versioning.selectVariant versionSpec "hardened" null);
|
||||
|
||||
# ######################################################
|
||||
# Base LTO Config #
|
||||
|
||||
70
packages/linux-cachyos/version.json
Normal file
70
packages/linux-cachyos/version.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"variables": {
|
||||
"suffix": "-cachyos"
|
||||
},
|
||||
"sources": {
|
||||
"linux": {
|
||||
"fetcher": "none",
|
||||
"version": "6.18.6",
|
||||
"hash": "sha256-RySXGXsvaNTb8bwyzG3GacoiD/TA6w3Dmpz/moj5oxs="
|
||||
},
|
||||
"config": {
|
||||
"fetcher": "github",
|
||||
"owner": "CachyOS",
|
||||
"repo": "linux-cachyos",
|
||||
"rev": "fb8c750d869dde6aad11c04c1b2cd311d24bde2c",
|
||||
"hash": "sha256-svJgugxjC5d7fpPkP2AbzcuiKnUXnI0uzlyq2mjXQFA="
|
||||
},
|
||||
"patches": {
|
||||
"fetcher": "github",
|
||||
"owner": "CachyOS",
|
||||
"repo": "kernel-patches",
|
||||
"rev": "cec2d1841baae411313742083ef2bc0b29855b4d",
|
||||
"hash": "sha256-VV0AMYlSIVYbJNzKymnGGSlBcPoahMxeASbVi+fTtHo="
|
||||
},
|
||||
"zfs": {
|
||||
"fetcher": "git",
|
||||
"url": "https://github.com/cachyos/zfs.git",
|
||||
"rev": "743334913e5a5f60baf287bcc6d8a23515b02ac5",
|
||||
"hash": "sha256-v78Tn1Im9h8Sjd4XACYesPOD+hlUR3Cmg8XjcJXOuwM="
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"lts": {
|
||||
"sources": {
|
||||
"linux": {
|
||||
"version": "6.12.66",
|
||||
"hash": "sha256-ujiXocBgsFoDy03abyDYx15vc8iLIXdEgjqRUFZTbq8="
|
||||
}
|
||||
}
|
||||
},
|
||||
"rc": {
|
||||
"sources": {
|
||||
"linux": {
|
||||
"version": "6.19-rc6",
|
||||
"hash": "sha256-tF+ApUubv/UucqXudLQDKw7j5rjYZ/odxgInfexCQDQ="
|
||||
},
|
||||
"zfs": {
|
||||
"rev": "540cd8029042327a37fd2a3614f8e623cbb87a22",
|
||||
"hash": "sha256-KaN24a1nXwOoHahglRWSypqxlE5jMuuZVIOVd1CDrqQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
"hardened": {
|
||||
"sources": {
|
||||
"linux": {
|
||||
"version": "6.17.13",
|
||||
"hash": "sha256-EWgC3DrRZGFjzG/+m926JKgGm1aRNewFI815kGTy7bk="
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"notes": {
|
||||
"suffix": "Matches `Add-extra-version-CachyOS.patch`",
|
||||
"linux": "pkgver from config's PKGBUILD",
|
||||
"config": "latest commit from https://github.com/CachyOS/linux-cachyos/commits/master/linux-cachyos",
|
||||
"patches": "latest commit from https://github.com/CachyOS/kernel-patches/commits/master/x.y",
|
||||
"zfs": "search for `git+https://github.com/cachyos/zfs.git` in config's PKGBUILD"
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"suffix": "-cachyos",
|
||||
"linux": {
|
||||
"version": "6.17.13",
|
||||
"hash": "sha256-EWgC3DrRZGFjzG/+m926JKgGm1aRNewFI815kGTy7bk="
|
||||
},
|
||||
"config": {
|
||||
"rev": "fb8c750d869dde6aad11c04c1b2cd311d24bde2c",
|
||||
"hash": "sha256-svJgugxjC5d7fpPkP2AbzcuiKnUXnI0uzlyq2mjXQFA="
|
||||
},
|
||||
"patches": {
|
||||
"rev": "cec2d1841baae411313742083ef2bc0b29855b4d",
|
||||
"hash": "sha256-VV0AMYlSIVYbJNzKymnGGSlBcPoahMxeASbVi+fTtHo="
|
||||
},
|
||||
"zfs": {
|
||||
"rev": "743334913e5a5f60baf287bcc6d8a23515b02ac5",
|
||||
"hash": "sha256-VV0AMYlSIVYbJNzKymnGGSlBcPoahMxeASbVi+fTtHo="
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"suffix": "-cachyos",
|
||||
"linux": {
|
||||
"version": "6.12.66",
|
||||
"hash": "sha256-ujiXocBgsFoDy03abyDYx15vc8iLIXdEgjqRUFZTbq8="
|
||||
},
|
||||
"config": {
|
||||
"rev": "fb8c750d869dde6aad11c04c1b2cd311d24bde2c",
|
||||
"hash": "sha256-svJgugxjC5d7fpPkP2AbzcuiKnUXnI0uzlyq2mjXQFA="
|
||||
},
|
||||
"patches": {
|
||||
"rev": "cec2d1841baae411313742083ef2bc0b29855b4d",
|
||||
"hash": "sha256-VV0AMYlSIVYbJNzKymnGGSlBcPoahMxeASbVi+fTtHo="
|
||||
},
|
||||
"zfs": {
|
||||
"rev": "743334913e5a5f60baf287bcc6d8a23515b02ac5",
|
||||
"hash": "sha256-v78Tn1Im9h8Sjd4XACYesPOD+hlUR3Cmg8XjcJXOuwM="
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"suffix": "-cachyos",
|
||||
"linux": {
|
||||
"version": "6.19-rc6",
|
||||
"hash": "sha256-tF+ApUubv/UucqXudLQDKw7j5rjYZ/odxgInfexCQDQ="
|
||||
},
|
||||
"config": {
|
||||
"rev": "fb8c750d869dde6aad11c04c1b2cd311d24bde2c",
|
||||
"hash": "sha256-svJgugxjC5d7fpPkP2AbzcuiKnUXnI0uzlyq2mjXQFA="
|
||||
},
|
||||
"patches": {
|
||||
"rev": "cec2d1841baae411313742083ef2bc0b29855b4d",
|
||||
"hash": "sha256-VV0AMYlSIVYbJNzKymnGGSlBcPoahMxeASbVi+fTtHo="
|
||||
},
|
||||
"zfs": {
|
||||
"rev": "540cd8029042327a37fd2a3614f8e623cbb87a22",
|
||||
"hash": "sha256-KaN24a1nXwOoHahglRWSypqxlE5jMuuZVIOVd1CDrqQ="
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
"_suffix": "Matches `Add-extra-version-CachyOS.patch`",
|
||||
"suffix": "-cachyos",
|
||||
"_linux": "pkgver from config's PKGBUILD",
|
||||
"linux": {
|
||||
"version": "6.18.6",
|
||||
"hash": "sha256-RySXGXsvaNTb8bwyzG3GacoiD/TA6w3Dmpz/moj5oxs="
|
||||
},
|
||||
"_config": "latest commit from https://github.com/CachyOS/linux-cachyos/commits/master/linux-cachyos",
|
||||
"config": {
|
||||
"rev": "fb8c750d869dde6aad11c04c1b2cd311d24bde2c",
|
||||
"hash": "sha256-svJgugxjC5d7fpPkP2AbzcuiKnUXnI0uzlyq2mjXQFA="
|
||||
},
|
||||
"_patches": "latest commit from https://github.com/CachyOS/kernel-patches/commits/master/x.y",
|
||||
"patches": {
|
||||
"rev": "cec2d1841baae411313742083ef2bc0b29855b4d",
|
||||
"hash": "sha256-VV0AMYlSIVYbJNzKymnGGSlBcPoahMxeASbVi+fTtHo="
|
||||
},
|
||||
"_zfs": "search for `git+https://github.com/cachyos/zfs.git` in config's PKGBUILD",
|
||||
"zfs": {
|
||||
"rev": "743334913e5a5f60baf287bcc6d8a23515b02ac5",
|
||||
"hash": "sha256-v78Tn1Im9h8Sjd4XACYesPOD+hlUR3Cmg8XjcJXOuwM="
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"base": "10.0",
|
||||
"release": "20251222",
|
||||
"hash": "sha256-S5i8RBbrPAlsYYavzzhTFanLU3uyLT3OQRpX9S6pPE0="
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"base": "10.0",
|
||||
"release": "20251222",
|
||||
"hash": "sha256-tw1/uX4qZX3cQKyzsss8l+wHKLoJF2/8B+6RUIQt4oQ="
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"base": "10.0",
|
||||
"release": "20251222",
|
||||
"hash": "sha256-1+6nCUc93vVZg3j4oSwuM7DYOZ2bNbLIjbH+8OUOSAQ="
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"base": "10.0",
|
||||
"release": "20251222",
|
||||
"hash": "sha256-W7cC4pi8WED4rOEXYVXIio1tiUNvArzqsTl6xKwy/mY="
|
||||
}
|
||||
@@ -4,24 +4,39 @@
|
||||
lib,
|
||||
fetchurl,
|
||||
fetchzip,
|
||||
# Required
|
||||
versionFilename ? "cachyos-v4-version.json",
|
||||
pkgs,
|
||||
# Repo metadata
|
||||
owner ? "CachyOS",
|
||||
repo ? "proton-cachyos",
|
||||
# Optional
|
||||
# Behavior
|
||||
withUpdateScript ? true,
|
||||
# Variant selection (null -> use defaultVariant from version.json)
|
||||
variant ? null,
|
||||
# Packaging/customization knobs
|
||||
toolTitle ? null,
|
||||
toolPattern ? "proton-.*",
|
||||
tarballPrefix ? "proton-",
|
||||
tarballSuffix ? "-x86_64_v4.tar.xz",
|
||||
releasePrefix ? "cachyos-",
|
||||
releaseSuffix ? "-slr",
|
||||
version ? lib.trivial.importJSON ./${versionFilename},
|
||||
releaseVersion ? "${releasePrefix}${version.base}-${version.release}${releaseSuffix}",
|
||||
homepage ? "https://github.com/${owner}/${repo}",
|
||||
url ? "${homepage}/releases/download/${releaseVersion}/${tarballPrefix}${releaseVersion}${tarballSuffix}",
|
||||
}:
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
|
||||
# Load unified version spec and select the desired variant
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec variant null;
|
||||
vars = selected.variables or {};
|
||||
base = vars.base;
|
||||
release = vars.release;
|
||||
|
||||
# Derived values for the current variant
|
||||
releaseVersion = "${releasePrefix}${base}-${release}${releaseSuffix}";
|
||||
homepage = "https://github.com/${owner}/${repo}";
|
||||
url = "${homepage}/releases/download/${releaseVersion}/${tarballPrefix}${releaseVersion}${tarballSuffix}";
|
||||
|
||||
# Choose fetcher based on file type
|
||||
intake =
|
||||
if lib.strings.hasSuffix ".zip" url then
|
||||
{
|
||||
@@ -36,11 +51,11 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation {
|
||||
name = repo;
|
||||
version = "${version.base}.${version.release}";
|
||||
version = "${base}.${release}";
|
||||
|
||||
src = intake.fetcher {
|
||||
inherit url;
|
||||
inherit (version) hash;
|
||||
hash = selected.sources.proton.hash;
|
||||
};
|
||||
|
||||
buildCommand = ''
|
||||
@@ -61,10 +76,11 @@ stdenvNoCC.mkDerivation {
|
||||
tarballSuffix
|
||||
releasePrefix
|
||||
releaseSuffix
|
||||
versionFilename
|
||||
owner
|
||||
repo
|
||||
;
|
||||
# Prefer explicit variant, otherwise use defaultVariant from the spec
|
||||
variant = if variant != null then variant else (versionSpec.defaultVariant or "cachyos");
|
||||
};
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"base": "10",
|
||||
"release": "26",
|
||||
"hash": "sha256-4v/Z0qHs4wtdo9PcnO2qgodQCNHJhLXvx2ZsAoID+ds="
|
||||
}
|
||||
@@ -16,9 +16,10 @@
|
||||
tarballSuffix,
|
||||
releasePrefix,
|
||||
releaseSuffix,
|
||||
versionFilename,
|
||||
owner,
|
||||
repo,
|
||||
# New: which variant to update (defaults to version.json's defaultVariant)
|
||||
variant ? null,
|
||||
}:
|
||||
let
|
||||
path = lib.makeBinPath [
|
||||
@@ -38,26 +39,57 @@ writeShellScript "update-${repo}" ''
|
||||
set -euo pipefail
|
||||
PATH=${path}
|
||||
|
||||
srcJson=pkgs/proton-bin/${versionFilename}
|
||||
localBase=$(jq -r .base < $srcJson)
|
||||
localRelease=$(jq -r .release < $srcJson)
|
||||
repoRoot="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
||||
versionFile="$repoRoot/packages/proton-cachyos/version.json"
|
||||
|
||||
latestVer=$(curl 'https://github.com/${owner}/${repo}/releases.atom' | xq -r '.feed.entry[].link."@href"' | grep -Po '(?<=/)${releasePrefix}[^/]+${releaseSuffix}$' | head -n 1)
|
||||
# Determine variant to update (prefer CLI arg, else defaultVariant in file)
|
||||
variantEff="${variant:-}"
|
||||
if [ -z "$variantEff" ]; then
|
||||
variantEff="$(jq -r '.defaultVariant // empty' "$versionFile")"
|
||||
fi
|
||||
if [ -z "$variantEff" ]; then
|
||||
variantEff="cachyos"
|
||||
fi
|
||||
|
||||
if [ "${releasePrefix}''${localBase}-''${localRelease}${releaseSuffix}" == "$latestVer" ]; then
|
||||
# Read current values from the unified version.json
|
||||
localBase="$(jq -r --arg v "$variantEff" '.variants[$v].variables.base' "$versionFile")"
|
||||
localRelease="$(jq -r --arg v "$variantEff" '.variants[$v].variables.release' "$versionFile")"
|
||||
localHash="$(jq -r --arg v "$variantEff" '.variants[$v].sources.proton.hash' "$versionFile")"
|
||||
|
||||
# Discover latest release tag
|
||||
latestVer="$(
|
||||
curl -fsSL "https://github.com/${owner}/${repo}/releases.atom" \
|
||||
| xq -r '.feed.entry[].link."@href"' \
|
||||
| grep -Po "(?<=/)${releasePrefix}[^/]+${releaseSuffix}$" \
|
||||
| head -n 1
|
||||
)"
|
||||
|
||||
if [ "${releasePrefix}''${localBase}-''${localRelease}${releaseSuffix}" = "$latestVer" ]; then
|
||||
echo "No update needed for variant '$variantEff' (${localBase}.${localRelease})."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
latestBase=$(echo $latestVer | grep -Po '(?<=^${releasePrefix})[^-]+')
|
||||
latestRelease=$(echo $latestVer | grep -Po '(?<=-)[^-]+(?=${releaseSuffix}$)')
|
||||
latestSha256=$(nix-prefetch-url --type sha256 "https://github.com/${owner}/${repo}/releases/download/''${latestVer}/${tarballPrefix}''${latestVer}${tarballSuffix}")
|
||||
latestHash=$(nix-hash --to-sri --type sha256 $latestSha256)
|
||||
latestBase="$(echo "$latestVer" | grep -Po "(?<=^${releasePrefix})[^-]+")"
|
||||
latestRelease="$(echo "$latestVer" | grep -Po "(?<=-)[^-]+(?=${releaseSuffix}$)")"
|
||||
artifactUrl="https://github.com/${owner}/${repo}/releases/download/''${latestVer}/${tarballPrefix}''${latestVer}${tarballSuffix}"
|
||||
|
||||
latestSha256="$(nix-prefetch-url --type sha256 "$artifactUrl")"
|
||||
latestHash="$(nix-hash --to-sri --type sha256 "$latestSha256")"
|
||||
|
||||
# Update the selected variant in version.json
|
||||
tmp="$(mktemp)"
|
||||
jq \
|
||||
--arg latestBase "$latestBase" --arg latestRelease "$latestRelease" --arg latestHash "$latestHash" \
|
||||
'.base = $latestBase | .release = $latestRelease | .hash = $latestHash' \
|
||||
"$srcJson" | sponge "$srcJson"
|
||||
--arg v "$variantEff" \
|
||||
--arg latestBase "$latestBase" \
|
||||
--arg latestRelease "$latestRelease" \
|
||||
--arg latestHash "$latestHash" \
|
||||
'
|
||||
.variants[$v].variables.base = $latestBase
|
||||
| .variants[$v].variables.release = $latestRelease
|
||||
| .variants[$v].sources.proton.hash = $latestHash
|
||||
' "$versionFile" > "$tmp"
|
||||
mv "$tmp" "$versionFile"
|
||||
|
||||
git add $srcJson
|
||||
git commit -m "${repo}: ''${localBase}.''${localRelease} -> ''${latestBase}.''${latestRelease}"
|
||||
git -C "$repoRoot" add "packages/proton-cachyos/version.json"
|
||||
git -C "$repoRoot" commit -m "${repo}(${variantEff}): ''${localBase}.''${localRelease} -> ''${latestBase}.''${latestRelease}"
|
||||
''
|
||||
|
||||
69
packages/proton-cachyos/version.json
Normal file
69
packages/proton-cachyos/version.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"defaultVariant": "cachyos-v4",
|
||||
"sources": {
|
||||
"proton": {
|
||||
"fetcher": "none"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"cachyos": {
|
||||
"variables": {
|
||||
"base": "10.0",
|
||||
"release": "20251222"
|
||||
},
|
||||
"sources": {
|
||||
"proton": {
|
||||
"hash": "sha256-W7cC4pi8WED4rOEXYVXIio1tiUNvArzqsTl6xKwy/mY="
|
||||
}
|
||||
}
|
||||
},
|
||||
"cachyos-v2": {
|
||||
"variables": {
|
||||
"base": "10.0",
|
||||
"release": "20251222"
|
||||
},
|
||||
"sources": {
|
||||
"proton": {
|
||||
"hash": "sha256-S5i8RBbrPAlsYYavzzhTFanLU3uyLT3OQRpX9S6pPE0="
|
||||
}
|
||||
}
|
||||
},
|
||||
"cachyos-v3": {
|
||||
"variables": {
|
||||
"base": "10.0",
|
||||
"release": "20251222"
|
||||
},
|
||||
"sources": {
|
||||
"proton": {
|
||||
"hash": "sha256-tw1/uX4qZX3cQKyzsss8l+wHKLoJF2/8B+6RUIQt4oQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
"cachyos-v4": {
|
||||
"variables": {
|
||||
"base": "10.0",
|
||||
"release": "20251222"
|
||||
},
|
||||
"sources": {
|
||||
"proton": {
|
||||
"hash": "sha256-1+6nCUc93vVZg3j4oSwuM7DYOZ2bNbLIjbH+8OUOSAQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
"ge": {
|
||||
"variables": {
|
||||
"base": "10",
|
||||
"release": "26"
|
||||
},
|
||||
"sources": {
|
||||
"proton": {
|
||||
"hash": "sha256-4v/Z0qHs4wtdo9PcnO2qgodQCNHJhLXvx2ZsAoID+ds="
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"notes": {
|
||||
"consumption": "default.nix currently computes the URL from base/release and suffixes. With this schema, keep using those variables (variant.variables.base/release) and the per-variant proton.hash until migrated to an explicit urlTemplate."
|
||||
}
|
||||
}
|
||||
@@ -9,19 +9,21 @@
|
||||
udev,
|
||||
systemd,
|
||||
withVoutDrm ? true,
|
||||
pkgs,
|
||||
}:
|
||||
|
||||
let
|
||||
extraVersion = "rpi";
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
vars = selected.variables or {};
|
||||
sources = versioning.mkAllSources selected;
|
||||
|
||||
extraVersion = vars.extraVersion or "rpi";
|
||||
# https://github.com/jc-kynesim/rpi-ffmpeg/tree/test/7.1.2/main
|
||||
ffmpegVersion = "7.1.2";
|
||||
rpiFfmpegSrc = fetchFromGitHub {
|
||||
owner = "jc-kynesim";
|
||||
repo = "rpi-ffmpeg";
|
||||
# rev = "test/${ffmpegVersion}/main"; # this branch is being forced-push to
|
||||
rev = "de943d66dab18e89fc10c74459bea1d787edc49d";
|
||||
hash = "sha256-Qbgos7uzYXF5E557kR2EXhX9eJRmO0LVmSE2NOpEZY0=";
|
||||
};
|
||||
ffmpegVersion = vars.ffmpegVersion or "7.1.2";
|
||||
rpiFfmpegSrc = sources."rpi-ffmpeg";
|
||||
|
||||
in
|
||||
(ffmpeg.overrideAttrs (old: {
|
||||
|
||||
16
packages/raspberrypi/ffmpeg-rpi/version.json
Normal file
16
packages/raspberrypi/ffmpeg-rpi/version.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"variables": {
|
||||
"ffmpegVersion": "7.1.2",
|
||||
"extraVersion": "rpi"
|
||||
},
|
||||
"sources": {
|
||||
"rpi-ffmpeg": {
|
||||
"fetcher": "github",
|
||||
"owner": "jc-kynesim",
|
||||
"repo": "rpi-ffmpeg",
|
||||
"rev": "de943d66dab18e89fc10c74459bea1d787edc49d",
|
||||
"hash": "sha256-Qbgos7uzYXF5E557kR2EXhX9eJRmO0LVmSE2NOpEZY0="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,17 +4,20 @@
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
pkg-config,
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
sources = versioning.mkAllSources selected;
|
||||
in
|
||||
stdenv.mkDerivation (_finalAttrs: {
|
||||
pname = "libraspberrypi";
|
||||
version = "unstable-2024-12-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raspberrypi";
|
||||
repo = "userland";
|
||||
rev = "a54a0dbb2b8dcf9bafdddfc9a9374fb51d97e976";
|
||||
hash = "sha256-Edca6nkykdXKFF5MGq6LeKirMLHTZBCbFWvHTNHMWJ4=";
|
||||
};
|
||||
src = sources.userland;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
|
||||
12
packages/raspberrypi/libraspberrypi/version.json
Normal file
12
packages/raspberrypi/libraspberrypi/version.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sources": {
|
||||
"userland": {
|
||||
"fetcher": "github",
|
||||
"owner": "raspberrypi",
|
||||
"repo": "userland",
|
||||
"rev": "a54a0dbb2b8dcf9bafdddfc9a9374fb51d97e976",
|
||||
"hash": "sha256-Edca6nkykdXKFF5MGq6LeKirMLHTZBCbFWvHTNHMWJ4="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,15 +4,22 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildLinux,
|
||||
pkgs,
|
||||
rpiVersion ? 5,
|
||||
...
|
||||
}@args:
|
||||
|
||||
let
|
||||
# stdenv = ccacheStdenv;
|
||||
modDirVersion = "6.12.47";
|
||||
tag = "stable_20250916";
|
||||
hash = "sha256-HG8Oc04V2t54l0SOn4gKmNJWQUrZfjWusgKcWvx74H0==";
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
vars = selected.variables or {};
|
||||
sources = versioning.mkAllSources selected;
|
||||
|
||||
modDirVersion = vars.modDirVersion;
|
||||
tag = vars.tag;
|
||||
# NOTE: raspberrypifw & raspberryPiWirelessFirmware should be updated with this
|
||||
|
||||
# all of these fail for various reasons
|
||||
@@ -43,11 +50,7 @@ lib.overrideDerivation
|
||||
inherit modDirVersion;
|
||||
pname = "linux-rpi${toString rpiVersion}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raspberrypi";
|
||||
repo = "linux";
|
||||
inherit tag hash;
|
||||
};
|
||||
src = sources.kernel;
|
||||
|
||||
defconfig =
|
||||
{
|
||||
|
||||
19
packages/raspberrypi/linux-rpi/version.json
Normal file
19
packages/raspberrypi/linux-rpi/version.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"variables": {
|
||||
"modDirVersion": "6.12.47",
|
||||
"tag": "stable_20250916"
|
||||
},
|
||||
"sources": {
|
||||
"kernel": {
|
||||
"fetcher": "github",
|
||||
"owner": "raspberrypi",
|
||||
"repo": "linux",
|
||||
"tag": "${tag}",
|
||||
"hash": "sha256-HG8Oc04V2t54l0SOn4gKmNJWQUrZfjWusgKcWvx74H0=="
|
||||
}
|
||||
},
|
||||
"notes": {
|
||||
"hint": "raspberrypifw & raspberryPiWirelessFirmware should be updated alongside this."
|
||||
}
|
||||
}
|
||||
@@ -2,27 +2,23 @@
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
sources = versioning.mkAllSources selected;
|
||||
in
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "raspberrypi-wireless-firmware";
|
||||
version = "0-unstable-2025-04-08";
|
||||
|
||||
srcs = [
|
||||
(fetchFromGitHub {
|
||||
name = "bluez-firmware";
|
||||
owner = "RPi-Distro";
|
||||
repo = "bluez-firmware";
|
||||
rev = "cdf61dc691a49ff01a124752bd04194907f0f9cd";
|
||||
hash = "sha256-35pnbQV/zcikz9Vic+2a1QAS72riruKklV8JHboL9NY=";
|
||||
})
|
||||
(fetchFromGitHub {
|
||||
name = "firmware-nonfree";
|
||||
owner = "RPi-Distro";
|
||||
repo = "firmware-nonfree";
|
||||
rev = "40dea60e27078fac57a3fed51010e2c26865d49b";
|
||||
hash = "sha256-yXKzrkr7zdw/ba8GEi0r+XjnZEsQ59LPEuXj0HaKwxU=";
|
||||
})
|
||||
sources."bluez-firmware"
|
||||
sources."firmware-nonfree"
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sources": {
|
||||
"bluez-firmware": {
|
||||
"fetcher": "github",
|
||||
"name": "bluez-firmware",
|
||||
"owner": "RPi-Distro",
|
||||
"repo": "bluez-firmware",
|
||||
"rev": "cdf61dc691a49ff01a124752bd04194907f0f9cd",
|
||||
"hash": "sha256-35pnbQV/zcikz9Vic+2a1QAS72riruKklV8JHboL9NY="
|
||||
},
|
||||
"firmware-nonfree": {
|
||||
"fetcher": "github",
|
||||
"name": "firmware-nonfree",
|
||||
"owner": "RPi-Distro",
|
||||
"repo": "firmware-nonfree",
|
||||
"rev": "40dea60e27078fac57a3fed51010e2c26865d49b",
|
||||
"hash": "sha256-yXKzrkr7zdw/ba8GEi0r+XjnZEsQ59LPEuXj0HaKwxU="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,19 +2,23 @@
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
vars = selected.variables or {};
|
||||
sources = versioning.mkAllSources selected;
|
||||
in
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
# NOTE: this should be updated with linux_rpi
|
||||
pname = "raspberrypi-dtoverlays";
|
||||
version = "stable_20250916";
|
||||
version = vars.version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raspberrypi";
|
||||
repo = "linux";
|
||||
tag = version;
|
||||
hash = "sha256-HG8Oc04V2t54l0SOn4gKmNJWQUrZfjWusgKcWvx74H0==";
|
||||
};
|
||||
src = sources.linux;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/dtbs/raspberrypi-overlays/
|
||||
|
||||
15
packages/raspberrypi/raspberrypi-overlays/version.json
Normal file
15
packages/raspberrypi/raspberrypi-overlays/version.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"variables": {
|
||||
"version": "stable_20250916"
|
||||
},
|
||||
"sources": {
|
||||
"linux": {
|
||||
"fetcher": "github",
|
||||
"owner": "raspberrypi",
|
||||
"repo": "linux",
|
||||
"tag": "${version}",
|
||||
"hash": "sha256-HG8Oc04V2t54l0SOn4gKmNJWQUrZfjWusgKcWvx74H0=="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,17 +6,20 @@
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
dtc,
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
sources = versioning.mkAllSources selected;
|
||||
in
|
||||
stdenv.mkDerivation (_finalAttrs: {
|
||||
pname = "raspberrypi-utils";
|
||||
version = "unstable-2025-12-26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raspberrypi";
|
||||
repo = "utils";
|
||||
rev = "230d67ad28e74b17a42064453b2163991cb51a5e";
|
||||
hash = "sha256-x3E8DwKKCmjxloCRB8djqNwuyrR4rok+JcNgPQ1ZH3Y=";
|
||||
};
|
||||
src = sources.utils;
|
||||
|
||||
buildInputs = [
|
||||
dtc # dtmerge depends on libfdt
|
||||
|
||||
12
packages/raspberrypi/raspberrypi-utils/version.json
Normal file
12
packages/raspberrypi/raspberrypi-utils/version.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sources": {
|
||||
"utils": {
|
||||
"fetcher": "github",
|
||||
"owner": "raspberrypi",
|
||||
"repo": "utils",
|
||||
"rev": "230d67ad28e74b17a42064453b2163991cb51a5e",
|
||||
"hash": "sha256-x3E8DwKKCmjxloCRB8djqNwuyrR4rok+JcNgPQ1ZH3Y="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,19 +2,22 @@
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
pkgs,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
vars = selected.variables or {};
|
||||
sources = versioning.mkAllSources selected;
|
||||
in
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
# NOTE: this should be updated with linux_rpi
|
||||
pname = "raspberrypi-firmware";
|
||||
version = "1.20250915";
|
||||
version = vars.version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raspberrypi";
|
||||
repo = "firmware";
|
||||
rev = version;
|
||||
hash = "sha256-DqVgsPhppxCsZ+H6S7XY5bBoRhOgPipKibDwikqBk08=";
|
||||
};
|
||||
src = sources.firmware;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/raspberrypi/
|
||||
|
||||
15
packages/raspberrypi/raspberrypifw/version.json
Normal file
15
packages/raspberrypi/raspberrypifw/version.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"variables": {
|
||||
"version": "1.20250915"
|
||||
},
|
||||
"sources": {
|
||||
"firmware": {
|
||||
"fetcher": "github",
|
||||
"owner": "raspberrypi",
|
||||
"repo": "firmware",
|
||||
"tag": "${version}",
|
||||
"hash": "sha256-DqVgsPhppxCsZ+H6S7XY5bBoRhOgPipKibDwikqBk08="
|
||||
}
|
||||
}
|
||||
}
|
||||
12
packages/raspberrypi/udev-rules/version.json
Normal file
12
packages/raspberrypi/udev-rules/version.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sources": {
|
||||
"sys-mods": {
|
||||
"fetcher": "github",
|
||||
"owner": "RPi-Distro",
|
||||
"repo": "raspberrypi-sys-mods",
|
||||
"rev": "063d092c528c09b9dad5d7ed187ebf110a53303b",
|
||||
"hash": "sha256-vi89lzfuLS9xKHDnlpm7Aw1UCOGCcMfd0cQq0rA9yOQ="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,17 +2,21 @@
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchzip,
|
||||
pkgs,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
vars = selected.variables or {};
|
||||
sources = versioning.mkAllSources selected;
|
||||
in
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "uefi-rpi4";
|
||||
version = "1.50";
|
||||
version = vars.version;
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/pftf/RPi4/releases/download/v${version}/RPi4_UEFI_Firmware_v${version}.zip";
|
||||
stripRoot = false;
|
||||
hash = "sha256-g8046/Ox0hZgvU6u3ZfC6HMqoTME0Y7NsZD6NvUsp7w=";
|
||||
};
|
||||
src = sources.firmware;
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
|
||||
14
packages/raspberrypi/uefi-rpi4/version.json
Normal file
14
packages/raspberrypi/uefi-rpi4/version.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"variables": {
|
||||
"version": "1.50"
|
||||
},
|
||||
"sources": {
|
||||
"firmware": {
|
||||
"fetcher": "url",
|
||||
"urlTemplate": "https://github.com/pftf/RPi4/releases/download/v${version}/RPi4_UEFI_Firmware_v${version}.zip",
|
||||
"hash": "sha256-g8046/Ox0hZgvU6u3ZfC6HMqoTME0Y7NsZD6NvUsp7w=",
|
||||
"extra": { "unpack": "zip", "stripRoot": false }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,16 @@
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchurl,
|
||||
pkgs,
|
||||
}:
|
||||
let
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
vars = selected.variables or {};
|
||||
sources = versioning.mkAllSources selected;
|
||||
|
||||
defaultConfig = ''
|
||||
EOF
|
||||
armstub=RPI_EFI.fd
|
||||
@@ -41,12 +49,9 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "uefi-rpi5";
|
||||
version = "test1";
|
||||
version = vars.version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/NumberOneGit/rpi5-uefi/releases/download/${version}/RPI_EFI.fd";
|
||||
hash = "sha256-GIgru10KCol9PXcdgR2d1BHf2In07OQ2P1kru7GUupY=";
|
||||
};
|
||||
src = sources.firmware;
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
|
||||
13
packages/raspberrypi/uefi-rpi5/version.json
Normal file
13
packages/raspberrypi/uefi-rpi5/version.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"variables": {
|
||||
"version": "test1"
|
||||
},
|
||||
"sources": {
|
||||
"firmware": {
|
||||
"fetcher": "url",
|
||||
"urlTemplate": "https://github.com/NumberOneGit/rpi5-uefi/releases/download/${version}/RPI_EFI.fd",
|
||||
"hash": "sha256-GIgru10KCol9PXcdgR2d1BHf2In07OQ2P1kru7GUupY="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,19 +6,21 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.0.49";
|
||||
publisher = "jeanp413";
|
||||
name = "open-remote-ssh";
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
vars = selected.variables or {};
|
||||
sources = versioning.mkAllSources selected;
|
||||
in
|
||||
vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
inherit name publisher version;
|
||||
name = vars.name;
|
||||
publisher = vars.publisher;
|
||||
version = vars.version;
|
||||
};
|
||||
|
||||
vsix = fetchurl {
|
||||
url = "https://open-vsx.org/api/${publisher}/${name}/${version}/file/${publisher}.${name}-${version}.vsix";
|
||||
sha256 = "sha256-QfJnAAx+kO2iJ1EzWoO5HLogJKg3RiC3hg1/u2Jm6t4=";
|
||||
};
|
||||
vsix = sources.vsix;
|
||||
|
||||
unpackPhase = ''
|
||||
${lib.getExe pkgs.unzip} -q $src
|
||||
|
||||
15
packages/system/open-remote-ssh/version.json
Normal file
15
packages/system/open-remote-ssh/version.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"variables": {
|
||||
"version": "0.0.49",
|
||||
"publisher": "jeanp413",
|
||||
"name": "open-remote-ssh"
|
||||
},
|
||||
"sources": {
|
||||
"vsix": {
|
||||
"fetcher": "url",
|
||||
"urlTemplate": "https://open-vsx.org/api/${publisher}/${name}/${version}/file/${publisher}.${name}-${version}.vsix",
|
||||
"hash": "sha256-QfJnAAx+kO2iJ1EzWoO5HLogJKg3RiC3hg1/u2Jm6t4="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,11 +19,14 @@
|
||||
}@pkgs:
|
||||
|
||||
let
|
||||
defaultVersion = "2025.07";
|
||||
defaultSrc = fetchurl {
|
||||
url = "https://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
|
||||
hash = "sha256-D5M/bFpCaJW/MG6T5qxTxghw5LVM2lbZUhG+yZ5jvsc=";
|
||||
};
|
||||
inherit (lib.trivial) importJSON;
|
||||
versionSpec = importJSON ./version.json;
|
||||
versioning = import ../../lib/versioning.nix { inherit lib pkgs; };
|
||||
selected = versioning.selectVariant versionSpec null null;
|
||||
sources = versioning.mkAllSources selected;
|
||||
|
||||
defaultVersion = selected.variables.version;
|
||||
defaultSrc = sources.uboot;
|
||||
|
||||
# Dependencies for the tools need to be included as either native or cross,
|
||||
# depending on which we're building
|
||||
|
||||
13
packages/uboot/version.json
Normal file
13
packages/uboot/version.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"variables": {
|
||||
"version": "2025.07"
|
||||
},
|
||||
"sources": {
|
||||
"uboot": {
|
||||
"fetcher": "url",
|
||||
"urlTemplate": "https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2",
|
||||
"hash": "sha256-D5M/bFpCaJW/MG6T5qxTxghw5LVM2lbZUhG+yZ5jvsc="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"repo": "https://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2",
|
||||
"tag": "2025.07",
|
||||
"hash": "sha256-D5M/bFpCaJW/MG6T5qxTxghw5LVM2lbZUhG+yZ5jvsc="
|
||||
}
|
||||
Reference in New Issue
Block a user