2023-04-11 00:58:02 +07:00
|
|
|
{ pkgs
|
|
|
|
, lib
|
|
|
|
, nur
|
2023-05-25 04:39:57 +07:00
|
|
|
, nix-gaming
|
2023-04-11 00:58:02 +07:00
|
|
|
, ... }:
|
|
|
|
let
|
|
|
|
inherit (pkgs) callPackage;
|
2023-05-25 06:24:57 +07:00
|
|
|
sources = import ./_sources/generated.nix {
|
2023-04-11 00:58:02 +07:00
|
|
|
inherit (pkgs) fetchgit fetchurl fetchFromGitHub dockerTools;
|
|
|
|
};
|
2023-06-11 18:02:38 +07:00
|
|
|
armTrustedFirmwareBpiR3 = { bootDevice, uboot ? null }: pkgs.buildArmTrustedFirmware rec {
|
|
|
|
# TODO: nvfetcherify this
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "frank-w";
|
|
|
|
repo = "u-boot";
|
|
|
|
rev = "c30a1caf8274af67bf31f3fb5abc45df5737df36";
|
|
|
|
hash = "sha256-pW2yytXRIFEIbG1gnuXq8TiLe/Eew7zESe6Pijh2qVk=";
|
|
|
|
};
|
|
|
|
patches = [ ./bpi-r3-atf-backport-mkimage-support.patch ];
|
|
|
|
extraMakeFlags = assert builtins.elem bootDevice [
|
|
|
|
"nor" "snand" "spim-nand" "emmc" "sdmmc" "ram"
|
|
|
|
]; [
|
|
|
|
"BOOT_DEVICE=${bootDevice}"
|
|
|
|
"DRAM_USE_DDR4=1"
|
|
|
|
"USE_MKIMAGE=1"
|
|
|
|
"MKIMAGE=${pkgs.ubootTools}/bin/mkimage"
|
|
|
|
"all"
|
|
|
|
"fip"
|
|
|
|
] ++ lib.optionals (uboot != null) [
|
|
|
|
"BL33=${uboot}/u-boot.bin"
|
|
|
|
];
|
|
|
|
extraMeta.platforms = [ "aarch64-linux" ];
|
|
|
|
platform = "mt7986";
|
|
|
|
filesToInstall = [
|
|
|
|
"build/${platform}/release/bl2.img"
|
|
|
|
"build/${platform}/release/fip.bin"
|
|
|
|
];
|
|
|
|
nativeBuildInputs = with pkgs; [ /*pkgsCross.arm-embedded.stdenv.cc*/ dtc ];
|
|
|
|
};
|
|
|
|
# sd/emmc
|
|
|
|
# -- CONFIG_USE_BOOTCOMMAND/CONFIG_BOOTCOMMAND - distroboot stuff (override default boot command)
|
|
|
|
# -- CONFIG_BOOTDELAY - autoboot timeout
|
|
|
|
# CONFIG_BOOTSTD_DEFAULTS - stdboot stuff
|
|
|
|
# CONFIG_BOOTSTD_BOOTCOMMAND - might be? an alternative to CONFIG_BOOTCOMMAND
|
|
|
|
# CONFIG_DEFAULT_FDT_FILE - compatibility with nixos
|
|
|
|
# CONFIG_DISTRO_DEFAULTS - surely this won't hurt, it adds autocomplete and stuff and doesn't weight much in the large scale of things
|
|
|
|
# CONFIG_SYS_BOOTM_LEN - increase max initrd? size
|
|
|
|
# CONFIG_ZSTD - allow zstd initrd
|
|
|
|
ubootConfig = storage: ''
|
|
|
|
CONFIG_AUTOBOOT=y
|
|
|
|
CONFIG_BOOTCOMMAND="${builtins.replaceStrings [ "\n" ] [ "; " ] ''
|
|
|
|
setenv boot_prefixes /@boot/ /@/ /boot/ /
|
|
|
|
run distro_bootcmd
|
|
|
|
''};"
|
|
|
|
CONFIG_BOOTSTD_DEFAULTS=y
|
|
|
|
CONFIG_BOOTSTD_FULL=y
|
|
|
|
CONFIG_CMD_BTRFS=y
|
|
|
|
CONFIG_CMD_CAT=y
|
|
|
|
CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bananapi-bpi-r3.dtb"
|
|
|
|
CONFIG_DISTRO_DEFAULTS=y
|
|
|
|
CONFIG_ENV_IS_NOWHERE=y
|
|
|
|
CONFIG_FS_BTRFS=y
|
|
|
|
CONFIG_SYS_BOOTM_LEN=0x6000000
|
|
|
|
CONFIG_USE_BOOTCOMMAND=y
|
|
|
|
CONFIG_ZSTD=y
|
|
|
|
'';
|
|
|
|
ubootVersion = "2023.07-rc3";
|
|
|
|
ubootSrc = pkgs.fetchurl {
|
|
|
|
url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${ubootVersion}.tar.bz2";
|
|
|
|
hash = "sha256-QuwINnS9MPpMFueMP19FPAjZ9zdZWne13aWVrDoJ2C8=";
|
|
|
|
};
|
2023-04-11 00:58:02 +07:00
|
|
|
in
|
|
|
|
|
2023-06-11 18:02:38 +07:00
|
|
|
rec {
|
2023-05-25 04:39:57 +07:00
|
|
|
osu-lazer-bin = nix-gaming.osu-lazer-bin;
|
2023-06-11 18:02:38 +07:00
|
|
|
clang-tools_latest = pkgs.clang-tools_16;
|
|
|
|
clang_latest = pkgs.clang_16;
|
2023-04-10 19:21:20 +07:00
|
|
|
home-daemon = callPackage ./home-daemon { };
|
2023-05-10 16:42:56 +07:00
|
|
|
/*ghidra = pkgs.ghidra.overrideAttrs (old: {
|
2023-04-11 00:58:02 +07:00
|
|
|
patches = old.patches ++ [ ./ghidra-stdcall.patch ];
|
2023-05-10 16:42:56 +07:00
|
|
|
});*/
|
2023-04-10 19:21:20 +07:00
|
|
|
lalrpop = callPackage ./lalrpop { };
|
2023-04-11 00:58:02 +07:00
|
|
|
# pin version
|
|
|
|
looking-glass-client = pkgs.looking-glass-client.overrideAttrs (old: {
|
|
|
|
version = "B6";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "gnif";
|
|
|
|
repo = "LookingGlass";
|
|
|
|
rev = "B6";
|
|
|
|
sha256 = "sha256-6vYbNmNJBCoU23nVculac24tHqH7F4AZVftIjL93WJU=";
|
|
|
|
fetchSubmodules = true;
|
|
|
|
};
|
|
|
|
});
|
2023-05-25 06:24:57 +07:00
|
|
|
maubot = callPackage ./maubot.nix { };
|
|
|
|
pineapplebot = callPackage ./pineapplebot.nix { };
|
2023-04-11 00:58:02 +07:00
|
|
|
proton-ge = pkgs.stdenvNoCC.mkDerivation {
|
|
|
|
inherit (sources.proton-ge) pname version src;
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out
|
|
|
|
tar -C $out --strip=1 -x -f $src
|
|
|
|
'';
|
|
|
|
};
|
2023-04-10 19:21:20 +07:00
|
|
|
rofi-steam-game-list = callPackage ./rofi-steam-game-list { };
|
2023-05-30 10:02:36 +07:00
|
|
|
# system76-scheduler = callPackage ./system76-scheduler.nix { };
|
2023-04-10 19:21:20 +07:00
|
|
|
techmino = callPackage ./techmino { };
|
2023-04-11 00:58:02 +07:00
|
|
|
|
2023-06-11 18:02:38 +07:00
|
|
|
ubootBpiR3Sd = pkgs.buildUBoot {
|
|
|
|
defconfig = "mt7986a_bpir3_sd_defconfig";
|
|
|
|
extraConfig = ubootConfig "sd";
|
|
|
|
src = ubootSrc;
|
|
|
|
version = ubootVersion;
|
|
|
|
extraMeta.platforms = [ "aarch64-linux" ];
|
|
|
|
# https://github.com/nakato/nixos-bpir3-example/blob/main/pkgs/uboot/mt7986-default-bootcmd.patch
|
|
|
|
patches = [ ./mt7986-default-bootcmd.patch ];
|
|
|
|
filesToInstall = [ "u-boot.bin" ];
|
|
|
|
};
|
|
|
|
ubootBpiR3Emmc = pkgs.buildUBoot {
|
|
|
|
defconfig = "mt7986a_bpir3_emmc_defconfig";
|
|
|
|
extraConfig = ubootConfig "emmc";
|
|
|
|
src = ubootSrc;
|
|
|
|
version = ubootVersion;
|
|
|
|
extraMeta.platforms = [ "aarch64-linux" ];
|
|
|
|
patches = [ ./mt7986-default-bootcmd.patch ];
|
|
|
|
filesToInstall = [ "u-boot.bin" ];
|
|
|
|
};
|
|
|
|
armTrustedFirmwareBpiR3Sd = armTrustedFirmwareBpiR3 { uboot = ubootBpiR3Sd; bootDevice = "sdmmc"; };
|
|
|
|
armTrustedFirmwareBpiR3Emmc = armTrustedFirmwareBpiR3 { uboot = ubootBpiR3Emmc; bootDevice = "emmc"; };
|
|
|
|
bpiR3StuffCombined = pkgs.stdenvNoCC.mkDerivation {
|
|
|
|
name = "bpi-r3-stuff";
|
|
|
|
unpackPhase = "true";
|
|
|
|
buildPhase = "true";
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/sd
|
|
|
|
mkdir -p $out/emmc
|
|
|
|
cp ${bpiR3StuffEmmc}/* $out/emmc
|
|
|
|
cp ${bpiR3StuffSd}/* $out/sd
|
|
|
|
'';
|
|
|
|
fixupPhase = "true";
|
|
|
|
};
|
|
|
|
bpiR3StuffEmmc = pkgs.stdenvNoCC.mkDerivation {
|
|
|
|
name = "bpi-r3-stuff-emmc";
|
|
|
|
unpackPhase = "true";
|
|
|
|
buildPhase = "true";
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out
|
|
|
|
cp ${ubootBpiR3Emmc}/*.* $out
|
|
|
|
cp ${armTrustedFirmwareBpiR3Emmc}/*.* $out
|
|
|
|
'';
|
|
|
|
fixupPhase = "true";
|
|
|
|
};
|
|
|
|
bpiR3StuffSd = pkgs.stdenvNoCC.mkDerivation {
|
|
|
|
name = "bpi-r3-stuff-sd";
|
|
|
|
unpackPhase = "true";
|
|
|
|
buildPhase = "true";
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out
|
|
|
|
cp ${ubootBpiR3Sd}/*.* $out
|
|
|
|
cp ${armTrustedFirmwareBpiR3Sd}/*.* $out
|
|
|
|
'';
|
|
|
|
fixupPhase = "true";
|
|
|
|
};
|
|
|
|
linux_bpiR3 = (pkgs.buildLinux ({
|
|
|
|
version = "6.3";
|
|
|
|
modDirVersion = "6.3.0";
|
|
|
|
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "frank-w";
|
|
|
|
repo = "BPI-Router-Linux";
|
|
|
|
rev = "6.3-main";
|
|
|
|
hash = lib.fakeHash;
|
|
|
|
};
|
|
|
|
|
|
|
|
defconfig = "mt7986a_bpi-r3";
|
|
|
|
})).overrideAttrs (old: {
|
|
|
|
postConfigure = ''
|
|
|
|
sed -i "$buildRoot/.config" -e 's%^CONFIG_LOCALVERSION=.*%CONFIG_LOCALVERSION=""%'
|
|
|
|
sed -i "$buildRoot/include/config/auto.conf" -e 's%^CONFIG_LOCALVERSION=.*%CONFIG_LOCALVERSION=""%'
|
|
|
|
'';
|
|
|
|
});
|
|
|
|
linuxPackages_bpiR3 = pkgs.linuxPackagesFor linux_bpiR3;
|
|
|
|
|
2023-04-11 00:58:02 +07:00
|
|
|
firefox-addons = lib.recurseIntoAttrs (callPackage ./firefox-addons { inherit nur sources; });
|
|
|
|
mpvScripts = pkgs.mpvScripts // (callPackage ./mpv-scripts { });
|
2023-04-10 19:15:34 +07:00
|
|
|
}
|