From 0395c5b8eedf00c160ddd1180b82ed033e167813 Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 8 Oct 2022 18:21:38 -0700 Subject: [PATCH 1/3] update nixpkgs: 2022-10-06 and rebase Kaiteki --- flake.lock | 12 +- modules/universal/env/home-packages.nix | 7 +- nixpatches/11-flutter-3.3.3-189338.patch | 646 +++++++++++++++++++++++ nixpatches/list.nix | 68 +-- pkgs/kaiteki/default.nix | 6 +- pkgs/overlay.nix | 2 + 6 files changed, 693 insertions(+), 48 deletions(-) create mode 100644 nixpatches/11-flutter-3.3.3-189338.patch 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-packages.nix b/modules/universal/env/home-packages.nix index 579354fc..0341e46b 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 @@ -80,6 +80,7 @@ let gthumb inkscape + kid3 # audio tagging krita libreoffice-fresh # XXX colin: maybe don't want this on mobile @@ -119,8 +120,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/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 { }; }) From 874c3529873db0a8555a4c34c5ba65586c11688f Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 8 Oct 2022 19:24:55 -0700 Subject: [PATCH 2/3] net: add psk for connecting to my mobile hotspot --- modules/universal/net.nix | 5 +++ secrets/universal/net/iphone.psk.bin | 48 ++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 secrets/universal/net/iphone.psk.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/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 From c18e8eddcc2e40abcded1e7ceafde6adbc345a19 Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 8 Oct 2022 20:12:50 -0700 Subject: [PATCH 3/3] zsh: enable zmb builtin --- modules/universal/env/home-manager.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/universal/env/home-manager.nix b/modules/universal/env/home-manager.nix index ccd9c0a4..02715c23 100644 --- a/modules/universal/env/home-manager.nix +++ b/modules/universal/env/home-manager.nix @@ -340,6 +340,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