diff --git a/flake.lock b/flake.lock
index 7d7b4826..42d5e753 100644
--- a/flake.lock
+++ b/flake.lock
@@ -54,11 +54,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1664989420,
- "narHash": "sha256-Q8IxomUjjmewsoJgO3htkXLfCckQ7HkDJ/ZhdYVf/fA=",
+ "lastModified": 1665081174,
+ "narHash": "sha256-6hsmzdhdy8Kbvl5e0xZNE83pW3fKQvNiobJkM6KQrgA=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "37bd39839acf99c5b738319f42478296f827f274",
+ "rev": "598f83ebeb2235435189cf84d844b8b73e858e0f",
"type": "github"
},
"original": {
@@ -85,11 +85,11 @@
},
"nixpkgs-stable": {
"locked": {
- "lastModified": 1664883812,
- "narHash": "sha256-wqBAcVRBxls2nVaNeQaOy9SRg/bvEUiD26TQDprIg8U=",
+ "lastModified": 1665132027,
+ "narHash": "sha256-zoHPqSQSENt96zTk6Mt1AP+dMNqQDshXKQ4I6MfjP80=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "fe76645aaf2fac3baaa2813fd0089930689c53b5",
+ "rev": "9ecc270f02b09b2f6a76b98488554dd842797357",
"type": "github"
},
"original": {
diff --git a/modules/universal/env/home-manager.nix b/modules/universal/env/home-manager.nix
index cb8f069a..7d9be38d 100644
--- a/modules/universal/env/home-manager.nix
+++ b/modules/universal/env/home-manager.nix
@@ -341,6 +341,11 @@ in
# run p10k configure to configure, but it can't write out its file :-(
POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true
'';
+ initExtra = ''
+ # zmv is a way to do rich moves/renames, with pattern matching/substitution.
+ # see for an example:
+ autoload -Uz zmv
+ '';
# prezto = oh-my-zsh fork; controls prompt, auto-completion, etc.
# see: https://github.com/sorin-ionescu/prezto
diff --git a/modules/universal/env/home-packages.nix b/modules/universal/env/home-packages.nix
index bdbe6da7..5cff7b5c 100644
--- a/modules/universal/env/home-packages.nix
+++ b/modules/universal/env/home-packages.nix
@@ -58,7 +58,7 @@ let
emote # TODO: package [smile](https://github.com/mijorus/smile) for probably a better mobile experience.
evince # works on phosh
- { pkg = fluffychat-moby; dir = ".local/share/chat.fluffy.fluffychat"; } # TODO: ship normal fluffychat on non-moby?
+ # { pkg = fluffychat-moby; dir = ".local/share/chat.fluffy.fluffychat"; } # TODO: ship normal fluffychat on non-moby?
foliate
font-manager
@@ -85,6 +85,7 @@ let
gthumb
inkscape
+
kid3 # audio tagging
krita
libreoffice-fresh # XXX colin: maybe don't want this on mobile
@@ -124,8 +125,8 @@ let
nss = pkgs.nss_latest;
}); in { pkg = discord; dir = ".config/discord"; })
- # kaiteki # Pleroma client
- # gnome.zenity # for kaiteki (it will use qarma, kdialog, or zenity)
+ kaiteki # Pleroma client
+ gnome.zenity # for kaiteki (it will use qarma, kdialog, or zenity)
logseq
losslesscut-bin
diff --git a/modules/universal/net.nix b/modules/universal/net.nix
index e393ffdf..3b4433fb 100644
--- a/modules/universal/net.nix
+++ b/modules/universal/net.nix
@@ -37,6 +37,7 @@
''
);
+ # TODO: use a glob, or a list, or something?
sops.secrets."iwd/community-university.psk" = {
sopsFile = ../../secrets/universal/net/community-university.psk.bin;
format = "binary";
@@ -61,4 +62,8 @@
sopsFile = ../../secrets/universal/net/home-shared.psk.bin;
format = "binary";
};
+ sops.secrets."iwd/iphone" = {
+ sopsFile = ../../secrets/universal/net/iphone.psk.bin;
+ format = "binary";
+ };
}
diff --git a/nixpatches/11-flutter-3.3.3-189338.patch b/nixpatches/11-flutter-3.3.3-189338.patch
new file mode 100644
index 00000000..bcd34c4f
--- /dev/null
+++ b/nixpatches/11-flutter-3.3.3-189338.patch
@@ -0,0 +1,646 @@
+diff --git a/pkgs/applications/networking/instant-messengers/fluffychat/default.nix b/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
+index d50e7118cc1..22bbeb212f0 100644
+--- a/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
++++ b/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
+@@ -1,16 +1,16 @@
+ { lib
+ , fetchFromGitLab
+-, flutter
++, flutter2
+ , olm
+ , imagemagick
+ , makeDesktopItem
+ }:
+
+-flutter.mkFlutterApp rec {
++flutter2.mkFlutterApp rec {
+ pname = "fluffychat";
+ version = "1.2.0";
+
+- vendorHash = "sha256-co+bnsVIyg42JpM9FimfGEjrd6A99GlBeow1Dgv7NBI=";
++ vendorHash = "sha256-1PDX023WXRmRe/b1L+6Du91BvGwYNp3YATqYSQdPrRY=";
+
+ src = fetchFromGitLab {
+ owner = "famedly";
+diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
+index 4529d2adc1a..02188335129 100644
+--- a/pkgs/development/compilers/flutter/default.nix
++++ b/pkgs/development/compilers/flutter/default.nix
+@@ -4,34 +4,40 @@ let
+ getPatches = dir:
+ let files = builtins.attrNames (builtins.readDir dir);
+ in map (f: dir + ("/" + f)) files;
+- version = "3.0.4";
+- channel = "stable";
+- filename = "flutter_linux_${version}-${channel}.tar.xz";
+-
+- # Decouples flutter derivation from dart derivation,
+- # use specific dart version to not need to bump dart derivation when bumping flutter.
+- dartVersion = "2.17.5";
+- dartSourceBase = "https://storage.googleapis.com/dart-archive/channels";
+- dartForFlutter = dart.override {
+- version = dartVersion;
+- sources = {
+- "${dartVersion}-x86_64-linux" = fetchurl {
+- url = "${dartSourceBase}/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
+- sha256 = "sha256-AFJGeiPsjUZSO+DykmOIFETg2jIohg62tp3ghZrKJFk=";
++ flutterDrv = { version, pname, dartVersion, hash, dartHash, patches }: mkFlutter {
++ inherit version pname patches;
++ dart = dart.override {
++ version = dartVersion;
++ sources = {
++ "${dartVersion}-x86_64-linux" = fetchurl {
++ url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
++ sha256 = dartHash;
++ };
+ };
+ };
++ src = fetchurl {
++ url = "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${version}-stable.tar.xz";
++ sha256 = hash;
++ };
+ };
+ in
+ {
+ inherit mkFlutter;
+- stable = mkFlutter rec {
+- inherit version;
+- dart = dartForFlutter;
++ stable = flutterDrv {
+ pname = "flutter";
+- src = fetchurl {
+- url = "https://storage.googleapis.com/flutter_infra_release/releases/${channel}/linux/${filename}";
+- sha256 = "sha256-vh3QjLGFBN321DUET9XhYqSkILjEj+ZqAALu/mxY+go=";
+- };
+- patches = getPatches ./patches;
++ version = "3.3.3";
++ dartVersion = "2.18.2";
++ hash = "sha256-MTZeWQUp4/TcPzYIT6eqIKSPUPvn2Mp/thOQzNgpTXg=";
++ dartHash = "sha256-C3+YjecXLvSmJrLwi9H7TgD9Np0AArRWx3EdBrfQpTU";
++ patches = getPatches ./patches/flutter3;
++ };
++
++ v2 = flutterDrv {
++ pname = "flutter";
++ version = "2.10.5";
++ dartVersion = "2.16.2";
++ hash = "sha256-DTZwxlMUYk8NS1SaWUJolXjD+JnRW73Ps5CdRHDGnt0=";
++ dartHash = "sha256-egrYd7B4XhkBiHPIFE2zopxKtQ58GqlogAKA/UeiXnI=";
++ patches = getPatches ./patches/flutter2;
+ };
+ }
+diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix
+index 28a78c3e306..f2c861356ab 100644
+--- a/pkgs/development/compilers/flutter/flutter.nix
++++ b/pkgs/development/compilers/flutter/flutter.nix
+@@ -65,7 +65,7 @@ let
+ popd
+
+ local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)"
+- ${dart}/bin/dart --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH"
++ ${dart}/bin/dart --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.dart_tool/package_config.json" "$SCRIPT_PATH"
+ echo "$revision" > "$STAMP_PATH"
+ echo -n "${version}" > version
+
+diff --git a/pkgs/development/compilers/flutter/patches/disable-auto-update.patch b/pkgs/development/compilers/flutter/patches/flutter2/disable-auto-update.patch
+similarity index 100%
+rename from pkgs/development/compilers/flutter/patches/disable-auto-update.patch
+rename to pkgs/development/compilers/flutter/patches/flutter2/disable-auto-update.patch
+diff --git a/pkgs/development/compilers/flutter/patches/flutter2/git-dir.patch b/pkgs/development/compilers/flutter/patches/flutter2/git-dir.patch
+new file mode 100644
+index 00000000000..0136ef93106
+--- /dev/null
++++ b/pkgs/development/compilers/flutter/patches/flutter2/git-dir.patch
+@@ -0,0 +1,80 @@
++diff --git a/dev/bots/prepare_package.dart b/dev/bots/prepare_package.dart
++index 468a91a954..5def6897ce 100644
++--- a/dev/bots/prepare_package.dart
+++++ b/dev/bots/prepare_package.dart
++@@ -525,7 +525,7 @@ class ArchiveCreator {
++
++ Future _runGit(List args, {Directory? workingDirectory}) {
++ return _processRunner.runProcess(
++- ['git', ...args],
+++ ['git', '--git-dir', '.git', ...args],
++ workingDirectory: workingDirectory ?? flutterRoot,
++ );
++ }
++diff --git a/packages/flutter_tools/lib/src/version.dart b/packages/flutter_tools/lib/src/version.dart
++index f2068a6ca2..99b161689e 100644
++--- a/packages/flutter_tools/lib/src/version.dart
+++++ b/packages/flutter_tools/lib/src/version.dart
++@@ -106,7 +106,7 @@ class FlutterVersion {
++ String? channel = _channel;
++ if (channel == null) {
++ final String gitChannel = _runGit(
++- 'git rev-parse --abbrev-ref --symbolic @{u}',
+++ 'git --git-dir .git rev-parse --abbrev-ref --symbolic @{u}',
++ globals.processUtils,
++ _workingDirectory,
++ );
++@@ -114,7 +114,7 @@ class FlutterVersion {
++ if (slash != -1) {
++ final String remote = gitChannel.substring(0, slash);
++ _repositoryUrl = _runGit(
++- 'git ls-remote --get-url $remote',
+++ 'git --git-dir .git ls-remote --get-url $remote',
++ globals.processUtils,
++ _workingDirectory,
++ );
++@@ -326,7 +326,7 @@ class FlutterVersion {
++ /// the branch name will be returned as `'[user-branch]'`.
++ String getBranchName({ bool redactUnknownBranches = false }) {
++ _branch ??= () {
++- final String branch = _runGit('git rev-parse --abbrev-ref HEAD', globals.processUtils);
+++ final String branch = _runGit('git --git-dir .git rev-parse --abbrev-ref HEAD', globals.processUtils);
++ return branch == 'HEAD' ? channel : branch;
++ }();
++ if (redactUnknownBranches || _branch!.isEmpty) {
++@@ -359,7 +359,7 @@ class FlutterVersion {
++ /// wrapper that does that.
++ @visibleForTesting
++ static List gitLog(List args) {
++- return ['git', '-c', 'log.showSignature=false', 'log'] + args;
+++ return ['git', '-c', 'log.showSignature=false', '--git-dir', '.git', 'log'] + args;
++ }
++
++ /// Gets the release date of the latest available Flutter version.
++@@ -730,7 +730,7 @@ class GitTagVersion {
++
++ static GitTagVersion determine(ProcessUtils processUtils, {String? workingDirectory, bool fetchTags = false, String gitRef = 'HEAD'}) {
++ if (fetchTags) {
++- final String channel = _runGit('git rev-parse --abbrev-ref HEAD', processUtils, workingDirectory);
+++ final String channel = _runGit('git --git-dir .git rev-parse --abbrev-ref HEAD', processUtils, workingDirectory);
++ if (channel == 'dev' || channel == 'beta' || channel == 'stable') {
++ globals.printTrace('Skipping request to fetchTags - on well known channel $channel.');
++ } else {
++@@ -739,7 +739,7 @@ class GitTagVersion {
++ }
++ // find all tags attached to the given [gitRef]
++ final List tags = _runGit(
++- 'git tag --points-at $gitRef', processUtils, workingDirectory).trim().split('\n');
+++ 'git --git-dir .git tag --points-at $gitRef', processUtils, workingDirectory).trim().split('\n');
++
++ // Check first for a stable tag
++ final RegExp stableTagPattern = RegExp(r'^\d+\.\d+\.\d+$');
++@@ -760,7 +760,7 @@ class GitTagVersion {
++ // recent tag and number of commits past.
++ return parse(
++ _runGit(
++- 'git describe --match *.*.* --long --tags $gitRef',
+++ 'git --git-dir .git describe --match *.*.* --long --tags $gitRef',
++ processUtils,
++ workingDirectory,
++ )
+diff --git a/pkgs/development/compilers/flutter/patches/flutter2/move-cache.patch b/pkgs/development/compilers/flutter/patches/flutter2/move-cache.patch
+new file mode 100644
+index 00000000000..a81d2def242
+--- /dev/null
++++ b/pkgs/development/compilers/flutter/patches/flutter2/move-cache.patch
+@@ -0,0 +1,72 @@
++diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
++index ed42baea29..12941f733a 100644
++--- a/packages/flutter_tools/lib/src/asset.dart
+++++ b/packages/flutter_tools/lib/src/asset.dart
++@@ -11,11 +11,11 @@ import 'base/file_system.dart';
++ import 'base/logger.dart';
++ import 'base/platform.dart';
++ import 'build_info.dart';
++-import 'cache.dart';
++ import 'convert.dart';
++ import 'dart/package_map.dart';
++ import 'devfs.dart';
++ import 'flutter_manifest.dart';
+++import 'globals.dart' as globals;
++ import 'license_collector.dart';
++ import 'project.dart';
++
++@@ -504,7 +504,7 @@ class ManifestAssetBundle implements AssetBundle {
++ }
++ final Uri entryUri = _fileSystem.path.toUri(asset);
++ result.add(_Asset(
++- baseDir: _fileSystem.path.join(Cache.flutterRoot!, 'bin', 'cache', 'artifacts', 'material_fonts'),
+++ baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'artifacts', 'material_fonts'),
++ relativeUri: Uri(path: entryUri.pathSegments.last),
++ entryUri: entryUri,
++ package: null,
++diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
++index defc86cc20..7fdf14d112 100644
++--- a/packages/flutter_tools/lib/src/cache.dart
+++++ b/packages/flutter_tools/lib/src/cache.dart
++@@ -22,6 +22,7 @@ import 'base/user_messages.dart';
++ import 'build_info.dart';
++ import 'convert.dart';
++ import 'features.dart';
+++import 'globals.dart' as globals;
++
++ const String kFlutterRootEnvironmentVariableName = 'FLUTTER_ROOT'; // should point to //flutter/ (root of flutter/flutter repo)
++ const String kFlutterEngineEnvironmentVariableName = 'FLUTTER_ENGINE'; // should point to //engine/src/ (root of flutter/engine repo)
++@@ -322,8 +323,13 @@ class Cache {
++ return;
++ }
++ assert(_lock == null);
+++ final Directory dir = _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter'));
+++ if (!dir.existsSync()) {
+++ dir.createSync(recursive: true);
+++ globals.os.chmod(dir, '755');
+++ }
++ final File lockFile =
++- _fileSystem.file(_fileSystem.path.join(flutterRoot!, 'bin', 'cache', 'lockfile'));
+++ _fileSystem.file(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'lockfile'));
++ try {
++ _lock = lockFile.openSync(mode: FileMode.write);
++ } on FileSystemException catch (e) {
++@@ -382,8 +388,7 @@ class Cache {
++
++ String get devToolsVersion {
++ if (_devToolsVersion == null) {
++- const String devToolsDirPath = 'dart-sdk/bin/resources/devtools';
++- final Directory devToolsDir = getCacheDir(devToolsDirPath, shouldCreate: false);
+++ final Directory devToolsDir = _fileSystem.directory(_fileSystem.path.join(flutterRoot!, 'bin/cache/dart-sdk/bin/resources/devtools'));
++ if (!devToolsDir.existsSync()) {
++ throw Exception('Could not find directory at ${devToolsDir.path}');
++ }
++@@ -536,7 +541,7 @@ class Cache {
++ if (_rootOverride != null) {
++ return _fileSystem.directory(_fileSystem.path.join(_rootOverride!.path, 'bin', 'cache'));
++ } else {
++- return _fileSystem.directory(_fileSystem.path.join(flutterRoot!, 'bin', 'cache'));
+++ return _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter'));
++ }
++ }
++
+diff --git a/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch b/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch
+new file mode 100644
+index 00000000000..21b676a2af3
+--- /dev/null
++++ b/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch
+@@ -0,0 +1,36 @@
++diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
++index ab746724e9..1087983c87 100644
++--- a/bin/internal/shared.sh
+++++ b/bin/internal/shared.sh
++@@ -215,8 +215,6 @@ function shared::execute() {
++ exit 1
++ fi
++
++- upgrade_flutter 7< "$PROG_NAME"
++-
++ BIN_NAME="$(basename "$PROG_NAME")"
++ case "$BIN_NAME" in
++ flutter*)
++diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
++index 738fef987d..03a152e64f 100644
++--- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
+++++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
++@@ -241,7 +241,6 @@ class FlutterCommandRunner extends CommandRunner {
++ globals.flutterUsage.suppressAnalytics = true;
++ }
++
++- globals.flutterVersion.ensureVersionFile();
++ final bool machineFlag = topLevelResults['machine'] as bool? ?? false;
++ final bool ci = await globals.botDetector.isRunningOnBot;
++ final bool redirectedCompletion = !globals.stdio.hasTerminal &&
++@@ -250,10 +249,6 @@ class FlutterCommandRunner extends CommandRunner {
++ final bool versionCheckFlag = topLevelResults['version-check'] as bool? ?? false;
++ final bool explicitVersionCheckPassed = topLevelResults.wasParsed('version-check') && versionCheckFlag;
++
++- if (topLevelResults.command?.name != 'upgrade' &&
++- (explicitVersionCheckPassed || (versionCheckFlag && !isMachine))) {
++- await globals.flutterVersion.checkFlutterVersionFreshness();
++- }
++
++ // See if the user specified a specific device.
++ globals.deviceManager?.specifiedDeviceId = topLevelResults['device-id'] as String?;
+diff --git a/pkgs/development/compilers/flutter/patches/git-dir.patch b/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch
+similarity index 86%
+rename from pkgs/development/compilers/flutter/patches/git-dir.patch
+rename to pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch
+index 0c736f945ea..42ad756f8ea 100644
+--- a/pkgs/development/compilers/flutter/patches/git-dir.patch
++++ b/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch
+@@ -1,8 +1,8 @@
+ diff --git a/dev/bots/prepare_package.dart b/dev/bots/prepare_package.dart
+-index 468a91a954..5def6897ce 100644
++index 8e4cb81340..2c20940423 100644
+ --- a/dev/bots/prepare_package.dart
+ +++ b/dev/bots/prepare_package.dart
+-@@ -525,7 +525,7 @@ class ArchiveCreator {
++@@ -526,7 +526,7 @@ class ArchiveCreator {
+
+ Future _runGit(List args, {Directory? workingDirectory}) {
+ return _processRunner.runProcess(
+@@ -12,7 +12,7 @@ index 468a91a954..5def6897ce 100644
+ );
+ }
+ diff --git a/packages/flutter_tools/lib/src/commands/downgrade.dart b/packages/flutter_tools/lib/src/commands/downgrade.dart
+-index bb0eb428a9..4a2a48bb5e 100644
++index 666c190067..b6c3761f6f 100644
+ --- a/packages/flutter_tools/lib/src/commands/downgrade.dart
+ +++ b/packages/flutter_tools/lib/src/commands/downgrade.dart
+ @@ -118,7 +118,7 @@ class DowngradeCommand extends FlutterCommand {
+@@ -34,19 +34,19 @@ index bb0eb428a9..4a2a48bb5e 100644
+ if (parseResult.exitCode == 0) {
+ buffer.writeln('Channel "${getNameForChannel(channel)}" was previously on: ${parseResult.stdout}.');
+ diff --git a/packages/flutter_tools/lib/src/version.dart b/packages/flutter_tools/lib/src/version.dart
+-index f2068a6ca2..99b161689e 100644
++index dc47f17057..8068e2d1f5 100644
+ --- a/packages/flutter_tools/lib/src/version.dart
+ +++ b/packages/flutter_tools/lib/src/version.dart
+-@@ -106,7 +106,7 @@ class FlutterVersion {
++@@ -111,7 +111,7 @@ class FlutterVersion {
+ String? channel = _channel;
+ if (channel == null) {
+ final String gitChannel = _runGit(
+-- 'git rev-parse --abbrev-ref --symbolic @{u}',
+-+ 'git --git-dir .git rev-parse --abbrev-ref --symbolic @{u}',
++- 'git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream',
+++ 'git --git-dir .git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream',
+ globals.processUtils,
+ _workingDirectory,
+ );
+-@@ -114,7 +114,7 @@ class FlutterVersion {
++@@ -119,7 +119,7 @@ class FlutterVersion {
+ if (slash != -1) {
+ final String remote = gitChannel.substring(0, slash);
+ _repositoryUrl = _runGit(
+@@ -55,7 +55,7 @@ index f2068a6ca2..99b161689e 100644
+ globals.processUtils,
+ _workingDirectory,
+ );
+-@@ -326,7 +326,7 @@ class FlutterVersion {
++@@ -298,7 +298,7 @@ class FlutterVersion {
+ /// the branch name will be returned as `'[user-branch]'`.
+ String getBranchName({ bool redactUnknownBranches = false }) {
+ _branch ??= () {
+@@ -64,7 +64,7 @@ index f2068a6ca2..99b161689e 100644
+ return branch == 'HEAD' ? channel : branch;
+ }();
+ if (redactUnknownBranches || _branch!.isEmpty) {
+-@@ -359,7 +359,7 @@ class FlutterVersion {
++@@ -331,7 +331,7 @@ class FlutterVersion {
+ /// wrapper that does that.
+ @visibleForTesting
+ static List gitLog(List args) {
+@@ -73,16 +73,16 @@ index f2068a6ca2..99b161689e 100644
+ }
+
+ /// Gets the release date of the latest available Flutter version.
+-@@ -730,7 +730,7 @@ class GitTagVersion {
+-
+- static GitTagVersion determine(ProcessUtils processUtils, {String? workingDirectory, bool fetchTags = false, String gitRef = 'HEAD'}) {
++@@ -708,7 +708,7 @@ class GitTagVersion {
++ String gitRef = 'HEAD'
++ }) {
+ if (fetchTags) {
+ - final String channel = _runGit('git rev-parse --abbrev-ref HEAD', processUtils, workingDirectory);
+ + final String channel = _runGit('git --git-dir .git rev-parse --abbrev-ref HEAD', processUtils, workingDirectory);
+ if (channel == 'dev' || channel == 'beta' || channel == 'stable') {
+ globals.printTrace('Skipping request to fetchTags - on well known channel $channel.');
+ } else {
+-@@ -739,7 +739,7 @@ class GitTagVersion {
++@@ -718,7 +718,7 @@ class GitTagVersion {
+ }
+ // find all tags attached to the given [gitRef]
+ final List tags = _runGit(
+@@ -91,7 +91,7 @@ index f2068a6ca2..99b161689e 100644
+
+ // Check first for a stable tag
+ final RegExp stableTagPattern = RegExp(r'^\d+\.\d+\.\d+$');
+-@@ -760,7 +760,7 @@ class GitTagVersion {
++@@ -739,7 +739,7 @@ class GitTagVersion {
+ // recent tag and number of commits past.
+ return parse(
+ _runGit(
+diff --git a/pkgs/development/compilers/flutter/patches/move-cache.patch b/pkgs/development/compilers/flutter/patches/flutter3/move-cache.patch
+similarity index 83%
+rename from pkgs/development/compilers/flutter/patches/move-cache.patch
+rename to pkgs/development/compilers/flutter/patches/flutter3/move-cache.patch
+index 5cb7c71e9bd..008c5959e5b 100644
+--- a/pkgs/development/compilers/flutter/patches/move-cache.patch
++++ b/pkgs/development/compilers/flutter/patches/flutter3/move-cache.patch
+@@ -1,13 +1,9 @@
++diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart
+ diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
+-index ed42baea29..12941f733a 100644
++index 9dd7272fbe..642c8e48e4 100644
+ --- a/packages/flutter_tools/lib/src/asset.dart
+ +++ b/packages/flutter_tools/lib/src/asset.dart
+-@@ -11,11 +11,11 @@ import 'base/file_system.dart';
+- import 'base/logger.dart';
+- import 'base/platform.dart';
+- import 'build_info.dart';
+--import 'cache.dart';
+- import 'convert.dart';
++@@ -16,6 +16,7 @@ import 'convert.dart';
+ import 'dart/package_map.dart';
+ import 'devfs.dart';
+ import 'flutter_manifest.dart';
+@@ -15,17 +11,18 @@ index ed42baea29..12941f733a 100644
+ import 'license_collector.dart';
+ import 'project.dart';
+
+-@@ -504,7 +504,7 @@ class ManifestAssetBundle implements AssetBundle {
+- }
++@@ -530,8 +531,7 @@ class ManifestAssetBundle implements AssetBundle {
+ final Uri entryUri = _fileSystem.path.toUri(asset);
+ result.add(_Asset(
+-- baseDir: _fileSystem.path.join(Cache.flutterRoot!, 'bin', 'cache', 'artifacts', 'material_fonts'),
+-+ baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'artifacts', 'material_fonts'),
++ baseDir: _fileSystem.path.join(
++- Cache.flutterRoot!,
++- 'bin', 'cache', 'artifacts', 'material_fonts',
+++ globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'artifacts', 'material_fonts',
++ ),
+ relativeUri: Uri(path: entryUri.pathSegments.last),
+ entryUri: entryUri,
+- package: null,
+ diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
+-index defc86cc20..7fdf14d112 100644
++index dd80b1e46e..8e54517765 100644
+ --- a/packages/flutter_tools/lib/src/cache.dart
+ +++ b/packages/flutter_tools/lib/src/cache.dart
+ @@ -22,6 +22,7 @@ import 'base/user_messages.dart';
+@@ -36,7 +33,7 @@ index defc86cc20..7fdf14d112 100644
+
+ const String kFlutterRootEnvironmentVariableName = 'FLUTTER_ROOT'; // should point to //flutter/ (root of flutter/flutter repo)
+ const String kFlutterEngineEnvironmentVariableName = 'FLUTTER_ENGINE'; // should point to //engine/src/ (root of flutter/engine repo)
+-@@ -322,8 +323,13 @@ class Cache {
++@@ -318,8 +319,13 @@ class Cache {
+ return;
+ }
+ assert(_lock == null);
+@@ -51,7 +48,7 @@ index defc86cc20..7fdf14d112 100644
+ try {
+ _lock = lockFile.openSync(mode: FileMode.write);
+ } on FileSystemException catch (e) {
+-@@ -382,8 +388,7 @@ class Cache {
++@@ -378,8 +384,7 @@ class Cache {
+
+ String get devToolsVersion {
+ if (_devToolsVersion == null) {
+@@ -61,7 +58,7 @@ index defc86cc20..7fdf14d112 100644
+ if (!devToolsDir.existsSync()) {
+ throw Exception('Could not find directory at ${devToolsDir.path}');
+ }
+-@@ -536,7 +541,7 @@ class Cache {
++@@ -532,7 +537,7 @@ class Cache {
+ if (_rootOverride != null) {
+ return _fileSystem.directory(_fileSystem.path.join(_rootOverride!.path, 'bin', 'cache'));
+ } else {
+@@ -70,8 +67,7 @@ index defc86cc20..7fdf14d112 100644
+ }
+ }
+
+-diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart
+-index 2aac9686e8..32c4b98b88 100644
++index c539d67156..4e0a64f7a9 100644
+ --- a/packages/flutter_tools/lib/src/artifacts.dart
+ +++ b/packages/flutter_tools/lib/src/artifacts.dart
+ @@ -346,10 +346,10 @@ class CachedArtifacts implements Artifacts {
+@@ -82,8 +78,8 @@ index 2aac9686e8..32c4b98b88 100644
+ + final String path = _dartSdkPath(_fileSystem);
+ return _fileSystem.directory(path);
+ case HostArtifact.engineDartBinary:
+-- final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', _hostArtifactToFileName(artifact, _platform.isWindows));
+-+ final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', _hostArtifactToFileName(artifact, _platform.isWindows));
++- final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', _hostArtifactToFileName(artifact, _platform));
+++ final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', _hostArtifactToFileName(artifact, _platform));
+ return _fileSystem.file(path);
+ case HostArtifact.flutterWebSdk:
+ final String path = _getFlutterWebSdkPath();
+@@ -91,12 +87,12 @@ index 2aac9686e8..32c4b98b88 100644
+ case HostArtifact.dart2jsSnapshot:
+ case HostArtifact.dartdevcSnapshot:
+ case HostArtifact.kernelWorkerSnapshot:
+-- final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
+-+ final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
++- final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform));
+++ final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform));
+ return _fileSystem.file(path);
+ case HostArtifact.iosDeploy:
+- final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows);
+-@@ -461,11 +461,13 @@ class CachedArtifacts implements Artifacts {
++ final String artifactFileName = _hostArtifactToFileName(artifact, _platform);
++@@ -465,11 +465,13 @@ class CachedArtifacts implements Artifacts {
+ String _getAndroidArtifactPath(Artifact artifact, TargetPlatform platform, BuildMode mode) {
+ final String engineDir = _getEngineArtifactsPath(platform, mode)!;
+ switch (artifact) {
+@@ -125,8 +121,8 @@ index 2aac9686e8..32c4b98b88 100644
+ - case Artifact.frontendServerSnapshotForEngineDartSdk:
+ case Artifact.constFinder:
+ case Artifact.flutterMacOSFramework:
+- case Artifact.flutterMacOSPodspec:
+-@@ -594,14 +596,10 @@ class CachedArtifacts implements Artifacts {
++ case Artifact.flutterPatchedSdkPath:
++@@ -586,14 +588,10 @@ class CachedArtifacts implements Artifacts {
+ // For script snapshots any gen_snapshot binary will do. Returning gen_snapshot for
+ // android_arm in profile mode because it is available on all supported host platforms.
+ return _getAndroidArtifactPath(artifact, TargetPlatform.android_arm, BuildMode.profile);
+@@ -142,27 +138,27 @@ index 2aac9686e8..32c4b98b88 100644
+ case Artifact.icuData:
+ final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path;
+ final String platformDirName = _enginePlatformDirectoryName(platform);
+-@@ -797,7 +795,7 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
+- final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
++@@ -776,7 +774,7 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
++ final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform));
+ return _fileSystem.file(path);
+ case HostArtifact.dartdevcSnapshot:
+-- final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
+-+ final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
++- final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform));
+++ final String path = _fileSystem.path.join(_dartSdkPath(_fileSystem), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform));
+ return _fileSystem.file(path);
+ case HostArtifact.kernelWorkerSnapshot:
+- final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows));
+-@@ -922,9 +920,7 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
+- case Artifact.windowsUwpCppClientWrapper:
++ final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform));
++@@ -901,9 +899,7 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts {
++ case Artifact.windowsCppClientWrapper:
+ return _fileSystem.path.join(_hostEngineOutPath, artifactFileName);
+ case Artifact.frontendServerSnapshotForEngineDartSdk:
+ - return _fileSystem.path.join(
+ - _hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName,
+ - );
+ + return _fileSystem.path.join(_hostEngineOutPath, 'gen', artifactFileName);
+- case Artifact.uwptool:
+- return _fileSystem.path.join(_hostEngineOutPath, artifactFileName);
+ }
+-@@ -1034,8 +1030,8 @@ class OverrideArtifacts implements Artifacts {
++ }
++
++@@ -1011,8 +1007,8 @@ class OverrideArtifacts implements Artifacts {
+ }
+
+ /// Locate the Dart SDK.
+@@ -174,12 +170,12 @@ index 2aac9686e8..32c4b98b88 100644
+
+ class _TestArtifacts implements Artifacts {
+ diff --git a/packages/flutter_tools/test/general.shard/artifacts_test.dart b/packages/flutter_tools/test/general.shard/artifacts_test.dart
+-index d906511a15..adfdd4bb42 100644
++index aed3eb9285..81b8362648 100644
+ --- a/packages/flutter_tools/test/general.shard/artifacts_test.dart
+ +++ b/packages/flutter_tools/test/general.shard/artifacts_test.dart
+-@@ -153,10 +153,6 @@ void main() {
+- artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_uwp_x64, mode: BuildMode.release),
+- fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'windows-uwp-x64-release'),
++@@ -141,10 +141,6 @@ void main() {
++ artifacts.getArtifactPath(Artifact.flutterTester, platform: TargetPlatform.linux_arm64),
++ fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'linux-arm64', 'flutter_tester'),
+ );
+ - expect(
+ - artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk),
+@@ -188,7 +184,7 @@ index d906511a15..adfdd4bb42 100644
+ });
+
+ testWithoutContext('precompiled web artifact paths are correct', () {
+-@@ -322,11 +318,6 @@ void main() {
++@@ -310,11 +306,6 @@ void main() {
+ artifacts.getHostArtifact(HostArtifact.engineDartSdkPath).path,
+ fileSystem.path.join('/out', 'host_debug_unopt', 'dart-sdk'),
+ );
+@@ -197,6 +193,6 @@ index d906511a15..adfdd4bb42 100644
+ - fileSystem.path.join('/out', 'host_debug_unopt', 'dart-sdk', 'bin',
+ - 'snapshots', 'frontend_server.dart.snapshot')
+ - );
+- });
+-
+- testWithoutContext('getEngineType', () {
++ expect(
++ artifacts.getHostArtifact(HostArtifact.impellerc).path,
++ fileSystem.path.join('/out', 'host_debug_unopt', 'impellerc'),
+diff --git a/pkgs/os-specific/linux/firmware/firmware-updater/default.nix b/pkgs/os-specific/linux/firmware/firmware-updater/default.nix
+index fb9d3a9a36c..cc906b763e8 100644
+--- a/pkgs/os-specific/linux/firmware/firmware-updater/default.nix
++++ b/pkgs/os-specific/linux/firmware/firmware-updater/default.nix
+@@ -1,13 +1,13 @@
+ { lib
+-, flutter
++, flutter2
+ , fetchFromGitHub
+ }:
+
+-flutter.mkFlutterApp {
++flutter2.mkFlutterApp {
+ pname = "firmware-updater";
+ version = "unstable";
+
+- vendorHash = "sha256-3wVA9BLCnMijC0gOmskz+Hv7NQIGu/jhBDbWjmoq1Tc=";
++ vendorHash = "sha256-7uOiebGBcX61oUyNCi1h9KldTRTrCfYaHUQSH4J5OoQ=";
+
+ src = fetchFromGitHub {
+ owner = "canonical";
+diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
+index 4f25d9b20d8..c282471c464 100644
+--- a/pkgs/top-level/all-packages.nix
++++ b/pkgs/top-level/all-packages.nix
+@@ -13448,6 +13448,7 @@ with pkgs;
+ flutterPackages =
+ recurseIntoAttrs (callPackage ../development/compilers/flutter { });
+ flutter = flutterPackages.stable;
++ flutter2 = flutterPackages.v2;
+
+ fnm = callPackage ../development/tools/fnm {
+ inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation Security;
diff --git a/nixpatches/list.nix b/nixpatches/list.nix
index b1dcac4a..aa994feb 100644
--- a/nixpatches/list.nix
+++ b/nixpatches/list.nix
@@ -1,34 +1,16 @@
fetchpatch: [
- # for raspberry pi: allow building u-boot for rpi 4{,00}
- # TODO: remove after upstreamed: https://github.com/NixOS/nixpkgs/pull/176018
- # (it's a dupe of https://github.com/NixOS/nixpkgs/pull/112677 )
- ./02-rpi4-uboot.patch
-
- # Fix mk flutter app
- # closed. updates fluffychat 1.2.0 -> 1.6.1, but unstable hashing
- (fetchpatch {
- url = "https://github.com/NixOS/nixpkgs/pull/186839.diff";
- sha256 = "sha256-NdIfie+eTy4V1vgqiiRPtWdnxZ5ZHsvCMfkEDUv9SC8=";
- })
-
- # # # Flutter: 3.0.4->3.3.2, flutter.dart: 2.17.5->2.18.1
- # # (fetchpatch {
- # # url = "https://github.com/NixOS/nixpkgs/pull/189338.diff";
- # # sha256 = "sha256-MppSk1D3qQT8Z4lzEZ93UexoidT8yqM7ASPec4VvxCI=";
- # # })
- # enable aarch64 support for flutter's dart package
- ./10-flutter-arm64.patch
-
-
- # TODO: upstream
- ./07-duplicity-rich-url.patch
-
- # kaiteki: init at 2022-09-03
- (fetchpatch {
- # url = "https://git.uninsane.org/colin/nixpkgs/commit/ca8e17b15e99683e9372b4deb5dd446f1019937d.diff";
- url = "https://github.com/NixOS/nixpkgs/pull/193169.diff";
- sha256 = "sha256-1O9vC/r3jpvGhHGp7d2r3oL7C8kFX2Ph214JV0vWZA0=";
- })
+ # Flutter: 3.0.4 -> 3.3.3, flutter.dart: 2.17.5 -> 2.18.2
+ # merged 2022/10/07
+ # (fetchpatch {
+ # url = "https://github.com/NixOS/nixpkgs/pull/189338.diff";
+ # sha256 = "sha256-HRkOIBcOnSXyTKkYxnMgZou8MHU/5eNhxxARdUq9UWg=";
+ # # url = "https://git.uninsane.org/colin/nixpkgs/commit/889c3a8cbc91c0d10b34ab7825fa1f6d1d31668a.diff";
+ # # sha256 = "sha256-qVWLpNoW3HVSWRtXS1BcSusKOq0CAMfY0BVU9MxPm98=";
+ # })
+ #
+ # XXX this is a cherry-pick of all the commits in PR 189338 (as appears in tree).
+ # the diff yielded by Github is apparently not the same somehow (maybe because the branches being merged had diverged too much?)
+ ./11-flutter-3.3.3-189338.patch
# phosh-mobile-settings: init at 0.21.1
(fetchpatch {
@@ -37,10 +19,28 @@ fetchpatch: [
sha256 = "sha256-OczjlQcG7sTM/V9Y9VL/qdwaWPKfjAJsh3czqqhRQig=";
})
- # home-assistant: 2022.9.7 -> 2022.10.0
- # fixes sublime-music build by fixing its dataclasses-json dep
+ # kaiteki: init at 2022-09-03
(fetchpatch {
- url = "https://github.com/NixOS/nixpkgs/pull/194640.diff";
- sha256 = "sha256-ptfo/XoS6bqiQsAXQ7KEif5rQwY43MXVViwiIuzD35I=";
+ url = "https://git.uninsane.org/colin/nixpkgs/commit/e2c7f5f4870fcb0e5405e9001b39a64c516852d4.diff";
+ # url = "https://github.com/NixOS/nixpkgs/pull/193169.diff";
+ sha256 = "sha256-UWnfS+stVpUZ3Sfaym9XtVBlwvHWJVMaW7cYIcf3M5Q=";
})
+
+ # Fix mk flutter app
+ # closed (not merged). updates fluffychat 1.2.0 -> 1.6.1, but unstable hashing
+ # (fetchpatch {
+ # url = "https://github.com/NixOS/nixpkgs/pull/186839.diff";
+ # sha256 = "sha256-NdIfie+eTy4V1vgqiiRPtWdnxZ5ZHsvCMfkEDUv9SC8=";
+ # })
+
+ # for raspberry pi: allow building u-boot for rpi 4{,00}
+ # TODO: remove after upstreamed: https://github.com/NixOS/nixpkgs/pull/176018
+ # (it's a dupe of https://github.com/NixOS/nixpkgs/pull/112677 )
+ ./02-rpi4-uboot.patch
+
+ # TODO: upstream
+ ./07-duplicity-rich-url.patch
+
+ # enable aarch64 support for flutter's dart package
+ # ./10-flutter-arm64.patch
]
diff --git a/pkgs/kaiteki/default.nix b/pkgs/kaiteki/default.nix
index e564c120..c9e68dea 100644
--- a/pkgs/kaiteki/default.nix
+++ b/pkgs/kaiteki/default.nix
@@ -10,15 +10,11 @@ flutter.mkFlutterApp rec {
pname = "kaiteki";
version = "unstable-2022-09-03";
- # this hash seems unstable -- depends on other nixpkgs, perhaps?
- vendorHash = "sha256-+kVwa5FObRYOdkPrF7jd0qOB+wwBm+OvdJP8NdSXTJ8=";
+ vendorHash = "sha256-IlsMoJjgB/fWI5QxSnnFSChVWFMnMGUD4QJdDUuTE+Q=";
src = fetchFromGitHub {
owner = "Kaiteki-Fedi";
repo = "Kaiteki";
- # rev = "cf94ec55063cd7af20a37103fc40c588a634962f";
- # hash = "sha256-jtRT0Q4/i3dxRYcC6HPClL9Iw1PizkIUgswU1eusKig=";
- # this is the last hash before the code uses features not apparently supported by our version of dart.
rev = "fd1e26c98f37ad6a98ed549da879c91721f997d0";
hash = "sha256-N7n6o/B9s0DCYf9HFMZSCPShpE65wKl9FaQ5dbFnr1E=";
fetchSubmodules = true;
diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix
index 6aa49e2c..af4aa9e5 100644
--- a/pkgs/overlay.nix
+++ b/pkgs/overlay.nix
@@ -27,6 +27,7 @@
pleroma = prev.callPackage ./pleroma { };
# jackett doesn't allow customization of the bind address: this will probably always be here.
jackett = prev.callPackage ./jackett { pkgs = prev; };
+ # TODO: delete matrix-appservice-discord
matrix-appservice-discord = prev.callPackage ./matrix-appservice-discord { pkgs = prev; };
# mozilla keeps nerfing itself and removing configuration options
firefox-unwrapped = prev.callPackage ./firefox-unwrapped { pkgs = prev; };
@@ -39,6 +40,7 @@
#### TEMPORARY: PACKAGES WAITING TO BE UPSTREAMED
# kaiteki = prev.callPackage ./kaiteki { };
kaiteki = prev.kaiteki;
+ # TODO: upstream, or delete nabla
nabla = prev.callPackage ./nabla { };
})
diff --git a/secrets/universal/net/iphone.psk.bin b/secrets/universal/net/iphone.psk.bin
new file mode 100644
index 00000000..bf2d0feb
--- /dev/null
+++ b/secrets/universal/net/iphone.psk.bin
@@ -0,0 +1,48 @@
+{
+ "data": "ENC[AES256_GCM,data:XGhxqtkmLOKQqcdmJvQ9rKdUW0qassF2glLvUpAs6uyO6WHVKvXKhAIJIsZZbd1RRlJ5PuwBvu7lKIrcVIswKvwF/MhXTCqfoB0fpmysaCpKdkLYojiSvsHQAXB9gIAnL0dVIEvZ+s7MRG5wp8s2+y18JsgS8jBM0vMFoLxVF41isocMcxO0a1wnCjAWy2s0845OOjhVSNCuVSjI5Oc1dTO9vycDHV4Y6MulFoBSlwfJdUf2nVR/FNuCxyxFX//wgRuN3cg1zkmoBblnvkccMGIzkmuByUAlqdaaug/Q,iv:9HIUqe5dTjVrHM5a9IrpYLtsDpg3Ts3mX9H8M8M572o=,tag:2EK0Zj6DTM/QmbVL+lG8wg==,type:str]",
+ "sops": {
+ "kms": null,
+ "gcp_kms": null,
+ "azure_kv": null,
+ "hc_vault": null,
+ "age": [
+ {
+ "recipient": "age1tnl4jfgacwkargzeqnhzernw29xx8mkv73xh6ufdyde6q7859slsnzf24x",
+ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqWUdWVkN2UGNBUzBqV0hK\nb0hnc1YxZWoyYkNIOVhreHlzOUJKVEdjdVJJCnRVSXYzWkl5ZktHdnJqTjIyUE9O\nQ2Jya0NuLzlDWDVoR3JTQVB3STJYSk0KLS0tIHllNisyMmJSNTBsZU85U0FuRWpU\ncnEvdGVhZlBXMjIzVUV3YTdQOXJjcE0Km66SgSPKbEC5bkCZI7l00QuPvgAH8kuD\no0A9w/lRBgcP787lqyUwULA+gu4YwvNIupvuABXm9KaFHtVqYDVJJw==\n-----END AGE ENCRYPTED FILE-----\n"
+ },
+ {
+ "recipient": "age1j2pqnl8j0krdzk6npe93s4nnqrzwx978qrc0u570gzlamqpnje9sc8le2g",
+ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsMXJYUytzRFVMYjNyZ0ZM\nb3dsVjV6blJ0K0JmcU1QYjNVY1JvSXQzTFQ0ClI5SG1tOTFYOWxuMWF3bFNxaWxL\nRDBiR2FZMVdOOVhoc1Via2xRd0t6SlkKLS0tIGUrRGZCZmxwOVl5dnVqVzJSdDNU\nUWE1VnkzSjJJZU9aOVdETklRa3VyeDgKqQpyc7UR7ValJuTD+NKIUSjKHNNAkPsS\nEgqI8DxjCvaSERKOYH/6pMSdRGklzS0ECuW5TNm0d4BvlbaFEiozlg==\n-----END AGE ENCRYPTED FILE-----\n"
+ },
+ {
+ "recipient": "age1z8fauff34cdecr6sjkre260luzxcca05kpcwvhx988d306tpcejsp63znu",
+ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHWVRINUFUa1lqZHZybHR5\nWmRuYmQyUTB5Z1RPaXJNc3VMUkFQZmhGMGhrCklaa3ZaNVYxYlAzaWsxRXN3c2E4\nNnB5S3VXa01ZdExzazRFcnRmdmNaQncKLS0tIEFpTksxUkVrMldSbDdPcXFMbnhB\nUGJyOVB5TFI3TU5hRXdKK25ORzIrUlUKjDGNOoLb7N+UKCEOwMXWklyQt0xapeMr\nKDFMcuxTX7WouiCF+GCXegQYfsXLsrETbbz+L6BOsV6O4uNNtYMZNA==\n-----END AGE ENCRYPTED FILE-----\n"
+ },
+ {
+ "recipient": "age1zsrsvd7j6l62fjxpfd2qnhqlk8wk4p8r0dtxpe4sdgnh2474095qdu7xj9",
+ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5dnFSRVlvc293MWJlTC9k\nMGtLVmNlbWlXZVczdDlnQVhXTDJjZHE1U2tzClFucGhya1M1SFpheFVEM3JmWDlG\nSzZCd1JwalNYVVZqQWdKVWNhRDUwbE0KLS0tIGtpd3huNUtld0V0SzBJK0FXMkxC\nT3VJckV3aHFMc3c0K1V6S1d0NitNaVEKe73p65j2fb4Hd7TLJqiX6NUyKbv7K2te\nNzPxOZQCBrSogqbnT2qDt5Yptr2nk5qK4CkoELw1/Iha8xLg96qcRA==\n-----END AGE ENCRYPTED FILE-----\n"
+ },
+ {
+ "recipient": "age1vnw7lnfpdpjn62l3u5nyv5xt2c965k96p98kc43mcnyzpetrts9q54mc9v",
+ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrSmJGNTNpTS9QKzc0dUNt\ndGxxbnY3eTYzc1lPcXRrdjBJdlZwNm50R0hNCjE0OWdDdEdvb0ZMNlA3SkZERWhs\ndk5FMTdQc3VUTUgwQ0t5NTVZZWEzc1UKLS0tIEJNNjVrN0h2Qjl5UVh3KzRVNzBR\ndS9nL2U3T2l4MG5XNndjYkg3WnQ3cHMKUcW4kwhoqw/2VRO+qD65Hy789fppwpLg\n7PZ2YZTa/OWufYweYQnSDCtRC1dCdtOUE3mhjtBsGaqKp0pOzOmNwg==\n-----END AGE ENCRYPTED FILE-----\n"
+ },
+ {
+ "recipient": "age1w7mectcjku6x3sd8plm8wkn2qfrhv9n6zhzlf329e2r2uycgke8qkf9dyn",
+ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4SElrMkprWXk3OUExaGEz\nQXBOM0Z1cHQzUUd3Q2ZWWC92bVJ0dmtSNGtnCk04d2E1NDkyUDhFNW5tSUtGMFQy\nMkMxR3p0QVNCUSs5UkE2Rjg1cStmc1kKLS0tIEhTS3hUcTNlT0lxRmdlK0VRSzNP\nUllGcHJ1TkpHTGVyaXFEUmhoZURVVlUKidC2z1cN6iwswN5+FKYEXSpif82MW5oC\nR1axSWsIJc7P2hPf4ua5BVoDqEn/Vei92NOcbQNfYUtEdkCGFbkYzw==\n-----END AGE ENCRYPTED FILE-----\n"
+ },
+ {
+ "recipient": "age1tzlyex2z6t88tg9h82943e39shxhmqeyr7ywhlwpdjmyqsndv3qq27x0rf",
+ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNjN1cHhtYUlOQngzYjhH\nUEZzbTVwT3dSalJBQlc1b2ZBRmwwSHoyZURNCjd4WllKSTE0OElFSGd3K1dzR2oz\ncWprejcrOUJuOVZWdDBkMXNVejJsaFkKLS0tIHkvNHZ0SVdnOUlTTnBvdVZLcUFp\nNTlXSlU0UGh6NFZUYUIraEpSRTJVaGsKb85V2N1dgP65R/xdjq7vEKO+b9NdJ9D+\nh7pVfx9ghSKdmcADWxyRhpmjc7Yyfx5wzpWbuV0mAibPLS9RdLry5Q==\n-----END AGE ENCRYPTED FILE-----\n"
+ },
+ {
+ "recipient": "age18vq5ktwgeaysucvw9t67drqmg5zd5c5k3le34yqxckkfj7wqdqgsd4ejmt",
+ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtYlJWZ2t6WDlRdUJqU2pG\nYkE3T005bUhCcUJ0TEw0MEdDY1JFUzJjcVMwCkhCckRzcldLWTJPSEVjbHk3VE1p\nY21rRWR3cUVscmNiL29NL3M1QjZsYlUKLS0tIDJ4M3JtdGFRbUhFR2FtSGVuZk9n\nL1VjS1hnbzZwT1lQalJBbFU0SjFOWkUKUkGyPmpilSZdupNlR+cD4+HUOwyNm8WF\nu3vS7Ec4FJcjnx2t185yXEStZSVGptw/wKTxJiJ5P9by75XkAJZFmg==\n-----END AGE ENCRYPTED FILE-----\n"
+ }
+ ],
+ "lastmodified": "2022-10-09T02:24:20Z",
+ "mac": "ENC[AES256_GCM,data:AIRI5vLpVvWuxjvPerwzsBnwsSPrtazgCMPjP2be5aUcglT9e+98Dlg+jX60XjiO/1DvEepoCLd5Xnr6GHOkgRRR90YPsZT9eRttwhBavXaOF2Da7zwP5ZOg3cO0JGQsegTxJYFMmROCZppybL6EOsT2n18pc2M2HdEBt5oKP2k=,iv:ive5dqvbBQ3Ef5ycZP+l1Vuc38ylFTJhGh5+ksMCyAc=,tag:OP9EgZN2q2OKPRpOv2x7Tg==,type:str]",
+ "pgp": null,
+ "unencrypted_suffix": "_unencrypted",
+ "version": "3.7.3"
+ }
+}
\ No newline at end of file