diff --git a/ci/OWNERS b/ci/OWNERS index 62509fc225b1..f4e9c6c293b7 100644 --- a/ci/OWNERS +++ b/ci/OWNERS @@ -469,9 +469,8 @@ nixos/tests/incus/ @adamcstephens pkgs/by-name/in/incus/ @adamcstephens pkgs/by-name/lx/lxc* @adamcstephens -# ExpidusOS, Flutter +# Flutter /pkgs/development/compilers/flutter @RossComputerGuy -/pkgs/desktops/expidus @RossComputerGuy # GNU Tar & Zip /pkgs/by-name/gn/gnutar @RossComputerGuy diff --git a/doc/release-notes/rl-2605.section.md b/doc/release-notes/rl-2605.section.md index 247927675053..6a7f5a19cce0 100644 --- a/doc/release-notes/rl-2605.section.md +++ b/doc/release-notes/rl-2605.section.md @@ -312,7 +312,7 @@ gnuradioMinimal.override { - `mold` is now wrapped by default. -- `neovim` now disables by default the `python3` and `ruby` providers, unused by most users and reducing closure size from 365MiB to 240MiB. Host provider executables are not exposed anymore along with the neovim wrapper. You can still refer to those using the neovim provider variables (e.g., `python3_host_prog`). +- The `neovim` package and module now disable by default the `python3` and `ruby` providers, unused by most users and reducing closure size from 365MiB to 240MiB. Host provider executables are not exposed anymore along with the neovim wrapper. You can still refer to those using the neovim provider variables (e.g., `python3_host_prog`). ### Deprecations {#sec-nixpkgs-release-26.05-lib-deprecations} diff --git a/nixos/modules/programs/neovim.nix b/nixos/modules/programs/neovim.nix index 8630855be714..30e0d828ae7d 100644 --- a/nixos/modules/programs/neovim.nix +++ b/nixos/modules/programs/neovim.nix @@ -51,13 +51,13 @@ in withRuby = lib.mkOption { type = lib.types.bool; - default = true; + default = false; description = "Enable Ruby provider."; }; withPython3 = lib.mkOption { type = lib.types.bool; - default = true; + default = false; description = "Enable Python 3 provider."; }; diff --git a/nixos/modules/services/security/yubikey-agent.nix b/nixos/modules/services/security/yubikey-agent.nix index 0cfc34b13553..7b3be280e0c0 100644 --- a/nixos/modules/services/security/yubikey-agent.nix +++ b/nixos/modules/services/security/yubikey-agent.nix @@ -14,6 +14,7 @@ in meta.maintainers = with lib.maintainers; [ philandstuff rawkode + kaynetik ]; options = { diff --git a/nixos/modules/system/boot/loader/limine/limine-install.py b/nixos/modules/system/boot/loader/limine/limine-install.py index 4b17e06e9051..15a0c3a7383a 100644 --- a/nixos/modules/system/boot/loader/limine/limine-install.py +++ b/nixos/modules/system/boot/loader/limine/limine-install.py @@ -430,7 +430,7 @@ def install_bootloader() -> None: partition formatted as FAT. ''')) - if config('secureBoot', 'enable') and not config('secureBoot', 'createAndEnrollKeys') and not os.path.exists("/var/lib/sbctl"): + if config('secureBoot', 'enable') and not config('secureBoot', 'autoGenerateKeys') and not os.path.exists("/var/lib/sbctl"): print("There are no sbctl secure boot keys present. Please generate some.") sys.exit(1) @@ -557,18 +557,21 @@ def install_bootloader() -> None: if config('secureBoot', 'enable'): sbctl = os.path.join(str(config('secureBoot', 'sbctl')), 'bin', 'sbctl') - if config('secureBoot', 'createAndEnrollKeys'): - print("TEST MODE: creating and enrolling keys") + if not os.path.exists("/var/lib/sbctl") and config('secureBoot', 'autoGenerateKeys'): + print('auto generating keys') try: subprocess.run([sbctl, 'create-keys']) except: print('error: failed to create keys', file=sys.stderr) sys.exit(1) - try: - subprocess.run([sbctl, 'enroll-keys', '--yes-this-might-brick-my-machine']) - except: - print('error: failed to enroll keys', file=sys.stderr) - sys.exit(1) + if config('secureBoot', 'autoEnrollKeys', 'enable'): + try: + command = [sbctl, 'enroll-keys'] + command.extend(config('secureBoot', 'autoEnrollKeys', 'extraArgs')) + subprocess.run(command) + except: + print('error: failed to enroll keys', file=sys.stderr) + sys.exit(1) print('signing limine...') try: diff --git a/nixos/modules/system/boot/loader/limine/limine.nix b/nixos/modules/system/boot/loader/limine/limine.nix index def32f6707fc..52585e1cf02c 100644 --- a/nixos/modules/system/boot/loader/limine/limine.nix +++ b/nixos/modules/system/boot/loader/limine/limine.nix @@ -224,16 +224,22 @@ in ''; }; - createAndEnrollKeys = lib.mkEnableOption null // { - internal = true; - description = '' - Creates secure boot signing keys and enrolls them during bootloader installation. + autoGenerateKeys = lib.mkEnableOption null // { + description = "Generate keys automatically when none exists during bootloader installation"; + }; - ::: {.note} - This is used for automated nixos tests. - NOT INTENDED to be used on a real system. - ::: - ''; + autoEnrollKeys = { + enable = lib.mkEnableOption null // { + description = "Enroll automatically generated keys"; + }; + extraArgs = lib.mkOption { + default = [ + "--microsoft" + "--firmware-builtin" + ]; + type = lib.types.listOf lib.types.str; + description = "Extra arguments passed to sbctl"; + }; }; sbctl = lib.mkPackageOption pkgs "sbctl" { }; @@ -484,5 +490,15 @@ in DisableShimForSecureBoot = true; }; }) + (lib.mkIf (cfg.enable && cfg.secureBoot.enable && cfg.secureBoot.autoEnrollKeys.enable) { + assertions = [ + { + assertion = cfg.secureBoot.autoGenerateKeys; + message = "autoEnrollKeys doesn't do anything without autoGenerateKeys."; + } + ]; + + boot.loader.limine.secureBoot.autoGenerateKeys = true; + }) ]; } diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix index e925a1e7d2d0..3f5bd56539a0 100644 --- a/nixos/modules/system/boot/luksroot.nix +++ b/nixos/modules/system/boot/luksroot.nix @@ -635,7 +635,6 @@ in type = types.listOf types.str; default = [ "aes" - "aes_generic" "blowfish" "twofish" "serpent" diff --git a/nixos/modules/system/boot/stratisroot.nix b/nixos/modules/system/boot/stratisroot.nix index 1f91192c93c1..349133ab540c 100644 --- a/nixos/modules/system/boot/stratisroot.nix +++ b/nixos/modules/system/boot/stratisroot.nix @@ -76,7 +76,6 @@ in ] ++ [ "aes" - "aes_generic" "blowfish" "twofish" "serpent" diff --git a/nixos/tests/limine/secure-boot.nix b/nixos/tests/limine/secure-boot.nix index 9811734db5cb..798b200dee32 100644 --- a/nixos/tests/limine/secure-boot.nix +++ b/nixos/tests/limine/secure-boot.nix @@ -24,7 +24,9 @@ boot.loader.limine.enable = true; boot.loader.limine.efiSupport = true; boot.loader.limine.secureBoot.enable = true; - boot.loader.limine.secureBoot.createAndEnrollKeys = true; + boot.loader.limine.secureBoot.autoGenerateKeys = true; + boot.loader.limine.secureBoot.autoEnrollKeys.enable = true; + boot.loader.limine.secureBoot.autoEnrollKeys.extraArgs = [ "--yes-this-might-brick-my-machine" ]; boot.loader.timeout = 0; environment.systemPackages = [ pkgs.mokutil ]; diff --git a/pkgs/applications/emulators/libretro/cores/beetle-pcfx.nix b/pkgs/applications/emulators/libretro/cores/beetle-pcfx.nix index 047a25cd2afa..a5b00be615cd 100644 --- a/pkgs/applications/emulators/libretro/cores/beetle-pcfx.nix +++ b/pkgs/applications/emulators/libretro/cores/beetle-pcfx.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "mednafen-pcfx"; - version = "0-unstable-2024-10-21"; + version = "0-unstable-2026-03-31"; src = fetchFromGitHub { owner = "libretro"; repo = "beetle-pcfx-libretro"; - rev = "dd04cef9355286488a1d78ff18c4c848a1575540"; - hash = "sha256-oFBuriCbJWjgPH9RRAM/XUvkW0gKXnvs7lmBpJpWewo="; + rev = "035191393485280cad1866ce3aedd626d4fa09d0"; + hash = "sha256-jchEbKvHSE4D90ezwi//nl8vefQD4gp6YWb0eb6zkeY="; }; makefile = "Makefile"; diff --git a/pkgs/applications/emulators/libretro/cores/melonds.nix b/pkgs/applications/emulators/libretro/cores/melonds.nix index 59e0676a5594..83e335680e0a 100644 --- a/pkgs/applications/emulators/libretro/cores/melonds.nix +++ b/pkgs/applications/emulators/libretro/cores/melonds.nix @@ -7,13 +7,13 @@ }: mkLibretroCore { core = "melonds"; - version = "0-unstable-2024-10-21"; + version = "0-unstable-2026-03-31"; src = fetchFromGitHub { owner = "libretro"; repo = "melonds"; - rev = "7a3c11ff970cd36ca806961fae6db94b30dd5401"; - hash = "sha256-YGkRdth7qdATcZpJkBd5MGOJFG1AbeJhAnyir+ssZYA="; + rev = "e548eba517ccb964ddba31dcf8f0136041f5bb05"; + hash = "sha256-4bCunBPpBP0RWwL1vUTQxLPtCBnQ0M5pC3GAX1uTL5A="; }; extraBuildInputs = [ diff --git a/pkgs/applications/emulators/libretro/cores/nestopia.nix b/pkgs/applications/emulators/libretro/cores/nestopia.nix index 9a9257143dcb..a3c8253c7ab8 100644 --- a/pkgs/applications/emulators/libretro/cores/nestopia.nix +++ b/pkgs/applications/emulators/libretro/cores/nestopia.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "nestopia"; - version = "0-unstable-2026-02-28"; + version = "0-unstable-2026-04-02"; src = fetchFromGitHub { owner = "libretro"; repo = "nestopia"; - rev = "c0ae3bcbe78a1a21a20384b96b70774cc165d2c2"; - hash = "sha256-T4SC2yH/il6fjYd+4cWK4c+VqHMBc0uR3sXzPF6Z4O0="; + rev = "b0fd87dd07e3c52903435d302b04e5e97796f127"; + hash = "sha256-OQcjGCAwXQEiWKYldKgOzMwIJcWTR308v+0OcuzFTo8="; }; makefile = "Makefile"; diff --git a/pkgs/applications/emulators/libretro/cores/picodrive.nix b/pkgs/applications/emulators/libretro/cores/picodrive.nix index b7d63f301b81..b962c61e834d 100644 --- a/pkgs/applications/emulators/libretro/cores/picodrive.nix +++ b/pkgs/applications/emulators/libretro/cores/picodrive.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "picodrive"; - version = "0-unstable-2025-12-03"; + version = "0-unstable-2026-04-02"; src = fetchFromGitHub { owner = "libretro"; repo = "picodrive"; - rev = "3365b1774bc8680be9899968fe45b224ad2f11c1"; - hash = "sha256-hn80Dkdf6dMmCFoh9QeySVbF7tu8Vc1NfAl3SV8AZLg="; + rev = "f0d4a0118a9733a1f10bce5a4ac772c474f9300d"; + hash = "sha256-q584bnqIbKoXSCRHUAcqSJAIhholnXfbphvLVcbm57o="; fetchSubmodules = true; }; diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 93d43ac65168..07ab2fa2d085 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -45,13 +45,13 @@ "vendorHash": "sha256-btxzZZtvgeih+OUhc5QnF8ac22TxpGibffGNkljjq6c=" }, "aliyun_alicloud": { - "hash": "sha256-MkFDIGixsjQ6NfzI1X6fiLX4ozi7QA82jGryne/TcBU=", + "hash": "sha256-oTQaH0E3e7gBn5BuoDUOGX6plQSQR2Ki6cRzIr31qvs=", "homepage": "https://registry.terraform.io/providers/aliyun/alicloud", "owner": "aliyun", "repo": "terraform-provider-alicloud", - "rev": "v1.273.0", + "rev": "v1.274.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-Hvk2jckla1LcMankcdUTct8Kea0OznyxDxTJ+UrJHy0=" + "vendorHash": "sha256-Kk0YeStlev8AurZasORMe/42Rd3ZPFoFMat/rMpZFbE=" }, "aminueza_minio": { "hash": "sha256-aWsMTUNIDwBzI/qsy78uA3ELnzUA+c4jP2jGD7QqrvI=", @@ -1229,11 +1229,11 @@ "vendorHash": "sha256-skswuFKhN4FFpIunbom9rM/FVRJVOFb1WwHeAIaEjn8=" }, "spacelift-io_spacelift": { - "hash": "sha256-HPryfdykq6m9L66z4gC8tb1F4tTHLk9H4UN2/lnNpu4=", + "hash": "sha256-j9D4rUjnBQqobAu5yXo5fCJSwkVSovmrroowBTuLIVQ=", "homepage": "https://registry.terraform.io/providers/spacelift-io/spacelift", "owner": "spacelift-io", "repo": "terraform-provider-spacelift", - "rev": "v1.45.0", + "rev": "v1.47.1", "spdx": "MIT", "vendorHash": "sha256-Ub0lqMdCu44UX3LkcjErsxfWdL9C6CxhVKPOn1AAdEc=" }, diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-darkwindow.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-darkwindow.nix index adb5b4c0b636..7ecbde27f2fe 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-darkwindow.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-darkwindow.nix @@ -7,7 +7,7 @@ mkHyprlandPlugin (finalAttrs: { pluginName = "hypr-darkwindow"; - version = "0.54.2"; + version = "0.54.3"; src = fetchFromGitHub { owner = "micha4w"; diff --git a/pkgs/build-support/dart/build-dart-application/default.nix b/pkgs/build-support/dart/build-dart-application/default.nix index ed07a06551b5..0a94d4e276aa 100644 --- a/pkgs/build-support/dart/build-dart-application/default.nix +++ b/pkgs/build-support/dart/build-dart-application/default.nix @@ -194,16 +194,10 @@ lib.extendMkDerivation { # Ensure that we inherit the propagated build inputs from the dependencies. builtins.attrValues pubspecLockData.dependencySources; - preConfigure = args.preConfigure or "" + '' - ln -sf "$pubspecLockFilePath" pubspec.lock - ''; - # When stripping, it seems some ELF information is lost and the dart VM cli # runs instead of the expected program. Don't strip if it's an exe output. dontStrip = args.dontStrip or (dartOutputType == "exe"); - passAsFile = [ "pubspecLockFile" ]; - passthru = { pubspecLock = pubspecLockData; } diff --git a/pkgs/by-name/ag/age-plugin-yubikey/package.nix b/pkgs/by-name/ag/age-plugin-yubikey/package.nix index 283b2256231b..597c2bdfd7af 100644 --- a/pkgs/by-name/ag/age-plugin-yubikey/package.nix +++ b/pkgs/by-name/ag/age-plugin-yubikey/package.nix @@ -43,6 +43,7 @@ rustPlatform.buildRustPackage (finalAttrs: { kranzes vtuan10 adamcstephens + kaynetik ]; }; }) diff --git a/pkgs/by-name/ag/age/package.nix b/pkgs/by-name/ag/age/package.nix index ecbb1d9d5309..d3ef5ec2a066 100644 --- a/pkgs/by-name/ag/age/package.nix +++ b/pkgs/by-name/ag/age/package.nix @@ -80,6 +80,9 @@ buildGoModule (finalAttrs: { description = "Modern encryption tool with small explicit keys"; license = lib.licenses.bsd3; mainProgram = "age"; - maintainers = with lib.maintainers; [ tazjin ]; + maintainers = with lib.maintainers; [ + tazjin + kaynetik + ]; }; }) diff --git a/pkgs/by-name/al/all-the-package-names/package.nix b/pkgs/by-name/al/all-the-package-names/package.nix index 08b85f584bb4..1c67cc9c5742 100644 --- a/pkgs/by-name/al/all-the-package-names/package.nix +++ b/pkgs/by-name/al/all-the-package-names/package.nix @@ -7,16 +7,16 @@ buildNpmPackage rec { pname = "all-the-package-names"; - version = "2.0.2395"; + version = "2.0.2405"; src = fetchFromGitHub { owner = "nice-registry"; repo = "all-the-package-names"; tag = "v${version}"; - hash = "sha256-gJ4wW9KY8xaNNyhQqzEF42yxJFKEy/zxBEe1L2Jwp8U="; + hash = "sha256-dimap7vybYHNGSAWn6K8uMUMymrV8Ek5Vc27bbJo22w="; }; - npmDepsHash = "sha256-J+XkwEMigShzqSstJh1N+Q8WB//gMmOdDVYHs1myLBA="; + npmDepsHash = "sha256-13u+UoTckxKAmthuaxOCaGSW4BaAgWaz6/4dBcO+3VI="; passthru.updateScript = nix-update-script { }; diff --git a/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix b/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix index 73e5454e0dab..b26f6dc35210 100644 --- a/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix +++ b/pkgs/by-name/am/amazon-cloudwatch-agent/package.nix @@ -11,16 +11,16 @@ buildGoModule (finalAttrs: { pname = "amazon-cloudwatch-agent"; - version = "1.300065.0"; + version = "1.300066.0"; src = fetchFromGitHub { owner = "aws"; repo = "amazon-cloudwatch-agent"; tag = "v${finalAttrs.version}"; - hash = "sha256-iAM8x3NXLQ20QJFB6Og4YKimUB7r+doTVnq/b9Q7alc="; + hash = "sha256-cN1wxJKijx5P3JvtH+WX+3SYfar7xmM6XK2JABg+3lo="; }; - vendorHash = "sha256-i5Lhz36ZAfZW2Y3s31TcBx1uWuMKmtROBhmHf2GiGyo="; + vendorHash = "sha256-W+DEQAX6BP6xwucE0mciQ4wzsIlF1b7d2Y+dyN43Lnw="; # See the list in https://github.com/aws/amazon-cloudwatch-agent/blob/v1.300049.1/Makefile#L68-L77. subPackages = [ diff --git a/pkgs/by-name/at/atuin/package.nix b/pkgs/by-name/at/atuin/package.nix index a4c9eb14f64b..fbe5ec0b89f1 100644 --- a/pkgs/by-name/at/atuin/package.nix +++ b/pkgs/by-name/at/atuin/package.nix @@ -70,6 +70,7 @@ rustPlatform.buildRustPackage (finalAttrs: { sciencentistguy _0x4A6F rvdp + kaynetik ]; mainProgram = "atuin"; }; diff --git a/pkgs/by-name/ba/bazel-buildtools/package.nix b/pkgs/by-name/ba/bazel-buildtools/package.nix index 8426f09a67a3..143a674ab3be 100644 --- a/pkgs/by-name/ba/bazel-buildtools/package.nix +++ b/pkgs/by-name/ba/bazel-buildtools/package.nix @@ -41,6 +41,7 @@ buildGoModule (finalAttrs: { license = lib.licenses.asl20; maintainers = with lib.maintainers; [ elasticdog + kaynetik ]; teams = [ lib.teams.bazel ]; }; diff --git a/pkgs/by-name/ba/bazelisk/package.nix b/pkgs/by-name/ba/bazelisk/package.nix index f499de78c6ea..3155d4372068 100644 --- a/pkgs/by-name/ba/bazelisk/package.nix +++ b/pkgs/by-name/ba/bazelisk/package.nix @@ -32,6 +32,9 @@ buildGoModule (finalAttrs: { homepage = "https://github.com/bazelbuild/bazelisk"; changelog = "https://github.com/bazelbuild/bazelisk/releases/tag/v${finalAttrs.version}"; license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ elasticdog ]; + maintainers = with lib.maintainers; [ + elasticdog + kaynetik + ]; }; }) diff --git a/pkgs/by-name/bt/btest/package.nix b/pkgs/by-name/bt/btest/package.nix new file mode 100644 index 000000000000..451e8f9c0394 --- /dev/null +++ b/pkgs/by-name/bt/btest/package.nix @@ -0,0 +1,52 @@ +{ + lib, + fetchFromGitHub, + openssl, + pkg-config, + rustPlatform, + sqlite, + versionCheckHook, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "btest"; + version = "0.6.2"; + + src = fetchFromGitHub { + owner = "manawenuz"; + repo = "btest-rs"; + tag = "v${finalAttrs.version}"; + hash = "sha256-ltePF8HX46FDbdyq30u19FNVpIwPxhOo8AgNvKRzKHE="; + }; + + cargoHash = "sha256-8AO7eTzZMzvNWcls3VXP0kPun/D5gsA1ih0FOqZ57R0="; + + postPatch = '' + # https://github.com/manawenuz/btest-rs/pull/1 + substituteInPlace Cargo.toml \ + --replace-fail "0.6.0" "${finalAttrs.version}" + ''; + + nativeBuildInputs = [ pkg-config ]; + + nativeInstallCheckInputs = [ versionCheckHook ]; + + buildInputs = [ + openssl + sqlite + ]; + + # Tests require network features + doCheck = false; + + doInstallCheck = true; + + meta = { + description = "Bandwidth Test server and client"; + homepage = "https://github.com/manawenuz/btest-rs"; + changelog = "https://github.com/manawenuz/btest-rs/releases/tag/v${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + mainProgram = "btest"; + }; +}) diff --git a/pkgs/by-name/bu/buffybox/package.nix b/pkgs/by-name/bu/buffybox/package.nix index e7d944b4d20b..cf976c7968c5 100644 --- a/pkgs/by-name/bu/buffybox/package.nix +++ b/pkgs/by-name/bu/buffybox/package.nix @@ -1,5 +1,6 @@ { fetchFromGitLab, + fetchpatch, inih, lib, libdrm, @@ -15,18 +16,36 @@ stdenv.mkDerivation (finalAttrs: { pname = "buffybox"; - version = "3.4.2-unstable-2025-10-25"; - # 3.4.2 would be preferred but there are 3 commits past 3.4.2 that are really nice to have + version = "3.5.1"; src = fetchFromGitLab { domain = "gitlab.postmarketos.org"; owner = "postmarketOS"; repo = "buffybox"; fetchSubmodules = true; # to use its vendored lvgl - rev = "437ff2cbd7fd35ba6ca2d46624e7fcf8c5f3f954"; - hash = "sha256-1GRsntNc3byHmZKLG/ZRXvbo96DjmLrA0bVYtMAlKsQ="; + tag = finalAttrs.version; + hash = "sha256-aOPfKqnUIkJozt+DwVJjbNQEcmpjCmUgJUjTx9LV23M="; }; + mesonFlags = [ + (lib.mesonBool "systemd" true) + ]; + + patches = [ + /* + There's a close to zero chance that anyone with a 32-bit machine will be using BuffyBox. + In the case that it happens, I expect no complaints whatsoever. + + https://gitlab.postmarketos.org/postmarketOS/buffybox/-/merge_requests/87 + */ + + (fetchpatch { + name = "fix-32-bit-build"; + url = "https://gitlab.postmarketos.org/postmarketOS/buffybox/-/merge_requests/87.patch"; + hash = "sha256-GUk+YrG07hL+0w70qvymPzHGTmUXdfzG4Cy35gg/Asw="; + }) + ]; + depsBuildBuild = [ pkg-config ]; @@ -54,6 +73,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "Suite of graphical applications for the terminal"; homepage = "https://gitlab.postmarketos.org/postmarketOS/buffybox"; + changelog = "https://gitlab.postmarketos.org/postmarketOS/buffybox/-/blob/main/CHANGELOG.md"; license = lib.licenses.gpl3Plus; maintainers = with lib.maintainers; [ colinsane ]; platforms = lib.platforms.linux; diff --git a/pkgs/by-name/cl/claude-code-bin/manifest.json b/pkgs/by-name/cl/claude-code-bin/manifest.json index 2d800a3ac4f6..211a12a84f78 100644 --- a/pkgs/by-name/cl/claude-code-bin/manifest.json +++ b/pkgs/by-name/cl/claude-code-bin/manifest.json @@ -1,46 +1,46 @@ { - "version": "2.1.90", - "buildDate": "2026-04-01T22:59:02Z", + "version": "2.1.91", + "buildDate": "2026-04-02T22:04:30Z", "platforms": { "darwin-arm64": { "binary": "claude", - "checksum": "73c1a7570501ca743cd2d7467cb4699103534a2138052a4e6cab53c0e09d79c8", - "size": 197828752 + "checksum": "7433d76d3ec5d223a340e21d7a05f3d481d89999f228113168ad5d64c66fd376", + "size": 198092944 }, "darwin-x64": { "binary": "claude", - "checksum": "9934675063ea4360665b7a43f649c92e6ba5cf93257324af7af1a6b490746395", - "size": 199326928 + "checksum": "47409dc476c199711d5c776cf359773f75cb9dc72ce7494a4e4cb100520e8ab4", + "size": 199574608 }, "linux-arm64": { "binary": "claude", - "checksum": "15d5089ee7d9981faacf5463eabd427a012814d9fc02113883bb23a4f387ad4a", - "size": 230165056 + "checksum": "dddba100b352ea6d06aa7e036d5afe49749edddd1309a4aa22e47049fafcadf9", + "size": 230427200 }, "linux-x64": { "binary": "claude", - "checksum": "6074e3959989b2958a9abec60adf7b441a0f6f1c7e66401abff0fe54dad04fd6", - "size": 229902976 + "checksum": "01b74e1b02e3330940b3526d2f6e00bf32f7fd9e6b3861be6a61e01cfd7296e6", + "size": 230161024 }, "linux-arm64-musl": { "binary": "claude", - "checksum": "2508fa1c9c0575cf6fa26f2561ff7f0fd83be5fb4c6f9ec8281dfd5911d44371", - "size": 223218112 + "checksum": "3dcaacefb510f6aee3573d35fe65f5dccbbbf4b6fdcca9a5a5455c03556a2f8b", + "size": 223480256 }, "linux-x64-musl": { "binary": "claude", - "checksum": "854746d04db11f543ed8d3836b5316366d965e6b6cfa2ac6312e6f7a5c4b5cb1", - "size": 224201152 + "checksum": "b05d9447b7d9a4fa92f936b2275ca87db3bada52d8589bf4e4c49d437366942a", + "size": 224459200 }, "win32-x64": { "binary": "claude.exe", - "checksum": "f6be38fbdcadc373e93f751d1286845f58b032690e32be8f64799380a295a79f", - "size": 239622816 + "checksum": "12f69849f6774749718520f41fb94f6fc30779b55d8f9b0acaaf20c755e6b55d", + "size": 239873184 }, "win32-arm64": { "binary": "claude.exe", - "checksum": "019f7210055cd7a884d13c4e6a0b6caf1a82348ee42950b7b5247a4b0484709c", - "size": 236335776 + "checksum": "389de7f1f2b979cb4098f7752ca0099275cedabcfe3908a9886d143ef594972b", + "size": 236586144 } } } diff --git a/pkgs/by-name/cl/claude-code/package-lock.json b/pkgs/by-name/cl/claude-code/package-lock.json index 4e96f6105b39..20b825f41315 100644 --- a/pkgs/by-name/cl/claude-code/package-lock.json +++ b/pkgs/by-name/cl/claude-code/package-lock.json @@ -1,12 +1,12 @@ { "name": "@anthropic-ai/claude-code", - "version": "2.1.90", + "version": "2.1.91", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@anthropic-ai/claude-code", - "version": "2.1.90", + "version": "2.1.91", "license": "SEE LICENSE IN README.md", "bin": { "claude": "cli.js" diff --git a/pkgs/by-name/cl/claude-code/package.nix b/pkgs/by-name/cl/claude-code/package.nix index d14fdcdbfff9..258243479998 100644 --- a/pkgs/by-name/cl/claude-code/package.nix +++ b/pkgs/by-name/cl/claude-code/package.nix @@ -15,14 +15,14 @@ }: buildNpmPackage (finalAttrs: { pname = "claude-code"; - version = "2.1.90"; + version = "2.1.91"; src = fetchzip { url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz"; - hash = "sha256-4/hqWrY2fncQ8p0TxwBAI+mNH98ZDhjvFqB9us7GJK0="; + hash = "sha256-u7jdM6hTYN05ZLPz630Yj7gI0PeCSArg4O6ItQRAMy4="; }; - npmDepsHash = "sha256-kWbbIAoNAQ/BtsICmsabkfnS/1Nta5MQ4iX9+oH7WRw="; + npmDepsHash = "sha256-0ppKP+XMgTzVVZtL7GDsOjgvSPUDrUa7SoG048RLaNg="; strictDeps = true; diff --git a/pkgs/by-name/cr/cryptomator/package.nix b/pkgs/by-name/cr/cryptomator/package.nix index 223b1e83adb1..feefd0c4e951 100644 --- a/pkgs/by-name/cr/cryptomator/package.nix +++ b/pkgs/by-name/cr/cryptomator/package.nix @@ -10,6 +10,7 @@ maven, wrapGAppsHook3, nix-update-script, + freetype, }: let @@ -86,6 +87,7 @@ maven.buildMavenPackage rec { lib.makeLibraryPath [ fuse3 libayatana-appindicator + freetype ] }" \ --set JAVA_HOME "${jdk.home}" @@ -119,6 +121,7 @@ maven.buildMavenPackage rec { glib jdk libayatana-appindicator + freetype ]; passthru.updateScript = nix-update-script { }; diff --git a/pkgs/by-name/da/dasel/package.nix b/pkgs/by-name/da/dasel/package.nix index 3a580846e351..90e29faa1b1d 100644 --- a/pkgs/by-name/da/dasel/package.nix +++ b/pkgs/by-name/da/dasel/package.nix @@ -7,13 +7,13 @@ buildGoModule (finalAttrs: { pname = "dasel"; - version = "3.4.0"; + version = "3.4.1"; src = fetchFromGitHub { owner = "TomWright"; repo = "dasel"; rev = "v${finalAttrs.version}"; - hash = "sha256-+TSjwxlh1uvN5Dpe2FeNi/x4QkQ87EcHhoRDcFyHMFw="; + hash = "sha256-W/qMrg+B/T19pguKiB4MHZF5OF3LqfH8b+5ke6feZNQ="; }; vendorHash = "sha256-hHxEE0xNSP4wnT5B13BAxUPpdIWs8v7KF1MuISfaYBE="; diff --git a/pkgs/by-name/db/dbip-asn-lite/package.nix b/pkgs/by-name/db/dbip-asn-lite/package.nix index 0e3a0fb3b92a..36ebd418bdcc 100644 --- a/pkgs/by-name/db/dbip-asn-lite/package.nix +++ b/pkgs/by-name/db/dbip-asn-lite/package.nix @@ -5,11 +5,11 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "dbip-asn-lite"; - version = "2026-03"; + version = "2026-04"; src = fetchurl { url = "https://download.db-ip.com/free/dbip-asn-lite-${finalAttrs.version}.mmdb.gz"; - hash = "sha256-cGdiwiJP6JUNZ8rKZK/XvtNglVWhm81ap7VmVdOW6NE="; + hash = "sha256-wJA6XqFbVxsWNEJ4AzwiKMOjsayJczVU/L3i98Y1x+I="; }; dontUnpack = true; diff --git a/pkgs/by-name/db/dbip-city-lite/package.nix b/pkgs/by-name/db/dbip-city-lite/package.nix index 78741bb70db3..b9a06afab30e 100644 --- a/pkgs/by-name/db/dbip-city-lite/package.nix +++ b/pkgs/by-name/db/dbip-city-lite/package.nix @@ -5,11 +5,11 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "dbip-city-lite"; - version = "2026-03"; + version = "2026-04"; src = fetchurl { url = "https://download.db-ip.com/free/dbip-city-lite-${finalAttrs.version}.mmdb.gz"; - hash = "sha256-Vfi3SiGKs8l2mc5AROuIF6afgpOl5HgZWBSKd7orBoI="; + hash = "sha256-sIb1DGVNmvV0B3ltTcT4yQkMMMiZt89X0eDIzT0U/r8="; }; dontUnpack = true; diff --git a/pkgs/by-name/db/dbip-country-lite/package.nix b/pkgs/by-name/db/dbip-country-lite/package.nix index e3ad6bd5f518..919b256bd17f 100644 --- a/pkgs/by-name/db/dbip-country-lite/package.nix +++ b/pkgs/by-name/db/dbip-country-lite/package.nix @@ -5,11 +5,11 @@ }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "dbip-country-lite"; - version = "2026-03"; + version = "2026-04"; src = fetchurl { url = "https://download.db-ip.com/free/dbip-country-lite-${finalAttrs.version}.mmdb.gz"; - hash = "sha256-YlPwkNIbI6kAnt5zGPhp5P/NnY6l9UTK0LJM2OEkgW4="; + hash = "sha256-d+6Bq1l6XZHI+maW20SmpXjfP9O1a4FmhtfL3poEOfs="; }; dontUnpack = true; diff --git a/pkgs/by-name/de/deezer-enhanced/package.nix b/pkgs/by-name/de/deezer-enhanced/package.nix index 5f850f2cdd27..0a87591c5723 100644 --- a/pkgs/by-name/de/deezer-enhanced/package.nix +++ b/pkgs/by-name/de/deezer-enhanced/package.nix @@ -34,11 +34,11 @@ stdenvNoCC.mkDerivation rec { pname = "deezer-enhanced"; - version = "1.4.2"; + version = "1.5.0"; src = fetchurl { url = "https://github.com/duzda/deezer-enhanced/releases/download/v${version}/deezer-enhanced_${version}_amd64.deb"; - hash = "sha256-PRq5R0AXCsW+cEuf1EU+o7g6oa8K5jGAphoNC8cSNFw="; + hash = "sha256-UN+Jdtx6Zgt1c4Phc2mVmvL2fCw208vltzPPD8zpHBc="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/de/devbox/package.nix b/pkgs/by-name/de/devbox/package.nix index 9101dd90da56..5f020a440a19 100644 --- a/pkgs/by-name/de/devbox/package.nix +++ b/pkgs/by-name/de/devbox/package.nix @@ -7,13 +7,13 @@ }: buildGoModule (finalAttrs: { pname = "devbox"; - version = "0.17.0"; + version = "0.17.1"; src = fetchFromGitHub { owner = "jetify-com"; repo = "devbox"; tag = finalAttrs.version; - hash = "sha256-bW37yUZSqSYZeGHbWEFom5EjHdFhr/cFAhLX908zKRM="; + hash = "sha256-WwNbbrBm3/iWNCdHh0f+ey06BlibCPkCRXgBoyaJffU="; }; ldflags = [ @@ -27,7 +27,7 @@ buildGoModule (finalAttrs: { # integration tests want file system access doCheck = false; - vendorHash = "sha256-xrN5AGc/f9CaI6WDfEFpJrRbPuBfxsjTGrEG4RbxVtM="; + vendorHash = "sha256-zZUE0J6w1QbdMAKOt1xH3ql4G5FbaUgtD4Xpsw/tmIk="; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/by-name/do/dosage-tracker/package.nix b/pkgs/by-name/do/dosage-tracker/package.nix index a6f69e4f19c1..babaf2cca466 100644 --- a/pkgs/by-name/do/dosage-tracker/package.nix +++ b/pkgs/by-name/do/dosage-tracker/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "dosage"; - version = "2.1.4"; + version = "2.1.5"; src = fetchFromGitHub { owner = "diegopvlk"; repo = "Dosage"; tag = "v${finalAttrs.version}"; - hash = "sha256-fp+BXT/HpoceFogn8oeRVEKGCqOVLTc8lca2epn3D78="; + hash = "sha256-opaQx42USA9OHRsPHukhBrdLPN2cD/T9QE9plZrBETo="; }; # https://github.com/NixOS/nixpkgs/issues/318830 diff --git a/pkgs/by-name/dr/drift/package.nix b/pkgs/by-name/dr/drift/package.nix index dbfc04027c50..1935a8c2c905 100644 --- a/pkgs/by-name/dr/drift/package.nix +++ b/pkgs/by-name/dr/drift/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "drift"; - version = "0.6.1"; + version = "0.11.0"; src = fetchFromGitHub { owner = "phlx0"; repo = "drift"; tag = "v${finalAttrs.version}"; - hash = "sha256-CDQEeP/ZEr4rQcNjMMK692+45E8OCzkDp1JNlJVuokc="; + hash = "sha256-oSSuh4LNihLoy4qwMx97+oCuapp18d2GV52bq4yXcqE="; }; vendorHash = "sha256-FsNa9qp2MnPk1onv/O13mFi+82yP7D4LdILZsNzHs+4="; diff --git a/pkgs/by-name/el/eliza/package.nix b/pkgs/by-name/el/eliza/package.nix index a7cfc256af88..419a2d45e71b 100644 --- a/pkgs/by-name/el/eliza/package.nix +++ b/pkgs/by-name/el/eliza/package.nix @@ -7,12 +7,12 @@ stdenv.mkDerivation (finalAttrs: { pname = "eliza"; - version = "0-unstable-2026-01-08"; + version = "0-unstable-2026-03-28"; src = fetchFromGitHub { owner = "anthay"; repo = "ELIZA"; - rev = "d03085e78f16e1febdbd878f602d58ef73072c93"; - hash = "sha256-AGr/nWXp7NINxKg4wudcX0R1ckZSvbDDOLjv2kW0oP8="; + rev = "626ce3881a0a6b54c56ce3efa87623e0a1dc8dfb"; + hash = "sha256-8AEOmMM/gN3khe+c8GQOcOartyOr06T7F6853e9fUto="; }; doCheck = true; diff --git a/pkgs/by-name/ez/eza/package.nix b/pkgs/by-name/ez/eza/package.nix index 19293a765010..ba6171163dbe 100644 --- a/pkgs/by-name/ez/eza/package.nix +++ b/pkgs/by-name/ez/eza/package.nix @@ -75,6 +75,7 @@ rustPlatform.buildRustPackage (finalAttrs: { cafkafk _9glenda sigmasquadron + kaynetik ]; platforms = with lib.platforms; unix ++ windows; }; diff --git a/pkgs/by-name/fm/fmd-server/package.nix b/pkgs/by-name/fm/fmd-server/package.nix index 5ffd26968563..45ad8a2f774e 100644 --- a/pkgs/by-name/fm/fmd-server/package.nix +++ b/pkgs/by-name/fm/fmd-server/package.nix @@ -5,7 +5,7 @@ fetchPnpmDeps, nix-update-script, nodejs, - pnpm, + pnpm_10, pnpmConfigHook, stdenv, versionCheckHook, @@ -26,8 +26,8 @@ buildGoModule ( }; pnpmDeps = fetchPnpmDeps { - inherit (ui) pname; - inherit pnpm; + inherit (ui) pname src; + inherit pnpm_10; sourceRoot = "${finalAttrs.src.name}/${ui.pnpmRoot}"; fetcherVersion = 3; hash = "sha256-fgqNaFQ4+uJxXzDJJq+D0+EFaLaYR+WUzi5kGq5ezjs="; @@ -51,7 +51,7 @@ buildGoModule ( nativeBuildInputs = [ nodejs pnpmConfigHook - pnpm + pnpm_10 ]; buildPhase = '' diff --git a/pkgs/by-name/fo/fosrl-pangolin/package.nix b/pkgs/by-name/fo/fosrl-pangolin/package.nix index 60ee7a0916c9..7a83fd859dea 100644 --- a/pkgs/by-name/fo/fosrl-pangolin/package.nix +++ b/pkgs/by-name/fo/fosrl-pangolin/package.nix @@ -29,16 +29,16 @@ in buildNpmPackage (finalAttrs: { pname = "pangolin"; - version = "1.15.3"; + version = "1.16.2"; src = fetchFromGitHub { owner = "fosrl"; repo = "pangolin"; tag = finalAttrs.version; - hash = "sha256-UGfwbFbuQ0ljipCjnPxZ/Is2hh1vjZJb97Lo/43sWeg="; + hash = "sha256-pWD2VinfkCiSSP6/einXgduKQ8lzWdHlrj2eqUU/x6Y="; }; - npmDepsHash = "sha256-kfgwU5QusUNWVcRXlYCS3ES1Av/phCHG8nFBj0yjz2Q="; + npmDepsHash = "sha256-CwS26eRAIuxJ2fekRRapDWYAOHXPV0mIX/by4uW2ZOM="; nativeBuildInputs = [ esbuild @@ -49,12 +49,16 @@ buildNpmPackage (finalAttrs: { # Based on pkgs.nextjs-ollama-llm-ui. postPatch = '' substituteInPlace src/app/layout.tsx --replace-fail \ - "{ Geist, Inter, Manrope, Open_Sans } from \"next/font/google\"" \ + "{ Inter } from \"next/font/google\"" \ "localFont from \"next/font/local\"" substituteInPlace src/app/layout.tsx --replace-fail \ - "const font = Inter({${"\n"} subsets: [\"latin\"]${"\n"}});" \ - "const font = localFont({ src: './Inter.ttf' });" + "const inter = Inter({${"\n"} subsets: [\"latin\"]${"\n"}});" \ + "const inter = localFont({ src: './Inter.ttf' });" + + substituteInPlace server/lib/consts.ts --replace-fail \ + 'export const APP_VERSION = "1.16.0";' \ + 'export const APP_VERSION = "${finalAttrs.version}";' cp "${inter}/share/fonts/truetype/InterVariable.ttf" src/app/Inter.ttf ''; @@ -62,7 +66,7 @@ buildNpmPackage (finalAttrs: { preBuild = '' npm run set:${db false} npm run set:oss - npm run db:${db false}:generate + npm run db:generate ''; buildPhase = '' diff --git a/pkgs/by-name/gi/github-markdown-toc-go/package.nix b/pkgs/by-name/gi/github-markdown-toc-go/package.nix index ef631f4f1184..320ba3af6477 100644 --- a/pkgs/by-name/gi/github-markdown-toc-go/package.nix +++ b/pkgs/by-name/gi/github-markdown-toc-go/package.nix @@ -5,13 +5,13 @@ }: buildGoModule (finalAttrs: { pname = "github-markdown-toc-go"; - version = "2.0.0"; + version = "2.0.1"; src = fetchFromGitHub { owner = "ekalinin"; repo = "github-markdown-toc.go"; rev = "v${finalAttrs.version}"; - hash = "sha256-hCkahhnTAF17ctJTL83wZxZiKGDzIKLwWKTTnwYQ3cs="; + hash = "sha256-sHXgtw+6LX7ryT8SWYWbEYu1iZCkeDZDP7houcsORJI="; }; vendorHash = "sha256-K5yb7bnW6eS5UESK9wgNEUwGjB63eJk6+B0jFFiFero="; diff --git a/pkgs/by-name/gi/gitu/package.nix b/pkgs/by-name/gi/gitu/package.nix index 331ab35977b2..77436798588b 100644 --- a/pkgs/by-name/gi/gitu/package.nix +++ b/pkgs/by-name/gi/gitu/package.nix @@ -11,20 +11,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "gitu"; - version = "0.40.0"; + version = "0.41.0"; src = fetchFromGitHub { owner = "altsem"; repo = "gitu"; - rev = "v${finalAttrs.version}"; - hash = "sha256-JNa9foW5z0NrXk5r/Oep20+u7YRhkzMIZQPHlZVifGI="; + tag = "v${finalAttrs.version}"; + hash = "sha256-Q1U9a9GZJcpAF6VDqBGZW4eBW/5P6uz+C+/2+/vjqTM="; }; - patches = [ - ./unit-tests-compile.patch - ]; - - cargoHash = "sha256-mQ5xXYVmadmNx57nnJGICZ2dhll+V3PkYK+hwTTfdVE="; + cargoHash = "sha256-RP8n3RZzWA0AYhsRnblmzefRsT6+Qje2ah7eFYk69ow="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/by-name/gi/gitu/unit-tests-compile.patch b/pkgs/by-name/gi/gitu/unit-tests-compile.patch deleted file mode 100644 index fe071adde849..000000000000 --- a/pkgs/by-name/gi/gitu/unit-tests-compile.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git i/src/git/parse/status/mod.rs w/src/git/parse/status/mod.rs -index 5595ca1..8929d79 100644 ---- i/src/git/parse/status/mod.rs -+++ w/src/git/parse/status/mod.rs -@@ -703,10 +703,12 @@ R old.rs -> new.rs - for c2 in &status_chars { - input.push(*c1); - input.push(*c2); -+ let c1_str = c1.to_string(); -+ let c2_str = c2.to_string(); - input.push_str(&format!( - " file_{}_{}.txt\n", -- if *c1 == ' ' { "space" } else { &c1.to_string() }, -- if *c2 == ' ' { "space" } else { &c2.to_string() } -+ if *c1 == ' ' { "space" } else { &c1_str }, -+ if *c2 == ' ' { "space" } else { &c2_str } - )); - count += 1; - } -diff --git i/src/tests/remote.rs w/src/tests/remote.rs -index 7a81a50..0ac14f5 100644 ---- i/src/tests/remote.rs -+++ w/src/tests/remote.rs -@@ -1,6 +1,6 @@ - use git2::{Buf, Error, Repository}; - --use crate::{git::remote::*, repo_setup_clone, setup_clone, tests::helpers::RepoTestContext}; -+use crate::{git::remote::*, repo_setup_clone, tests::helpers::RepoTestContext}; - - use super::*; - diff --git a/pkgs/by-name/gl/glab/package.nix b/pkgs/by-name/gl/glab/package.nix index fdff2d50f8ce..4f36c3062782 100644 --- a/pkgs/by-name/gl/glab/package.nix +++ b/pkgs/by-name/gl/glab/package.nix @@ -13,13 +13,13 @@ buildGoModule (finalAttrs: { pname = "glab"; - version = "1.89.0"; + version = "1.91.0"; src = fetchFromGitLab { owner = "gitlab-org"; repo = "cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-kc3ievJASceFGwv/c84719FlIKFX90i2H8wG8Yr08io="; + hash = "sha256-AXScsFVN8vEdhjM4m4VK41tje9QABp0OGq+8sPM+4oo="; leaveDotGit = true; postFetch = '' cd "$out" @@ -28,7 +28,7 @@ buildGoModule (finalAttrs: { ''; }; - vendorHash = "sha256-eKwYddkcFDmiZbGFJGx53FuyMHeeWYnMfX3WbDWb40w="; + vendorHash = "sha256-idxt6qrs2CPO4SvZEuZNy12mw7dy1dslfuVn1ufrZ5Y="; ldflags = [ "-s" diff --git a/pkgs/by-name/gw/gws/package.nix b/pkgs/by-name/gw/gws/package.nix index 1cb82133f994..b3cade085b44 100644 --- a/pkgs/by-name/gw/gws/package.nix +++ b/pkgs/by-name/gw/gws/package.nix @@ -11,16 +11,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "gws"; - version = "0.22.1"; + version = "0.22.5"; src = fetchFromGitHub { owner = "googleworkspace"; repo = "cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-yDgUvFXBhm7SNi51JeOm4+EOowNmY3dS0vF+AM6BygM="; + hash = "sha256-Bj4gPklufU6p2JpvN6j7QViv7ghSn52jemeXPVXkhlk="; }; - cargoHash = "sha256-9Ncn0r3Pih962l/4HKZjyWCvyCPQODIPX/oyroA1kL0="; + cargoHash = "sha256-8vVTACodxxju4x19bNzDKM5xn6btV1UCh+5GUxS70S8="; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/by-name/im/img4lib/package.nix b/pkgs/by-name/im/img4lib/package.nix index 6e66b62d5103..617348434387 100644 --- a/pkgs/by-name/im/img4lib/package.nix +++ b/pkgs/by-name/im/img4lib/package.nix @@ -5,6 +5,7 @@ pkg-config, openssl, lzfse, + gcc, }: stdenv.mkDerivation (finalAttrs: { pname = "img4lib"; @@ -17,9 +18,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-xCWovBJ9cxT17u1uo+aUQnxDoYFQXYy9Qer0mD45aOU="; }; - nativeBuildInputs = [ - pkg-config - ]; + nativeBuildInputs = [ pkg-config ] ++ lib.optional stdenv.hostPlatform.isDarwin gcc; buildInputs = [ lzfse @@ -42,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: { # No licensing information available # https://github.com/xerub/img4lib/issues/14 license = lib.licenses.unfree; - platforms = lib.platforms.linux; + platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ onny ]; mainProgram = "img4"; }; diff --git a/pkgs/by-name/in/infrastructure-agent/package.nix b/pkgs/by-name/in/infrastructure-agent/package.nix index 26b68c51325f..62cd25347365 100644 --- a/pkgs/by-name/in/infrastructure-agent/package.nix +++ b/pkgs/by-name/in/infrastructure-agent/package.nix @@ -6,13 +6,13 @@ }: buildGoModule (finalAttrs: { pname = "infrastructure-agent"; - version = "1.72.9"; + version = "1.73.0"; src = fetchFromGitHub { owner = "newrelic"; repo = "infrastructure-agent"; rev = finalAttrs.version; - hash = "sha256-aWZDg8MbtWp62sqBRVCr+xVowFTVwL0TIWK0Nx2jLa8="; + hash = "sha256-NcpfigIpwnesZtD2BQm/NMN3jsdgdH7sAkZ74rbHSZo="; }; vendorHash = "sha256-0yDH9l5NyUzIjjUMnf/u2t02uqNGIK2qfakvImFgmdA="; diff --git a/pkgs/by-name/io/iosevka/package.nix b/pkgs/by-name/io/iosevka/package.nix index 0e333e899080..799226b51fde 100644 --- a/pkgs/by-name/io/iosevka/package.nix +++ b/pkgs/by-name/io/iosevka/package.nix @@ -58,16 +58,16 @@ assert (extraParameters != null) -> set != null; buildNpmPackage rec { pname = "Iosevka${toString set}"; - version = "34.2.1"; + version = "34.3.0"; src = fetchFromGitHub { owner = "be5invis"; repo = "iosevka"; rev = "v${version}"; - hash = "sha256-yj46lNYOzaopu5Mo68jwh+xf/q/bjMmQdprh6e56eeY="; + hash = "sha256-Se+GIx+Uea/lMOdTDhbt/H+F0yeyMHclpSp52U+pmtA="; }; - npmDepsHash = "sha256-it0YwPcoYCIMddktgywBuYvvx3Psghoii3pu0K3RDlI="; + npmDepsHash = "sha256-LSfVuNP2Ck0PUbrjHsCXmoiZfT3x/Mk+CpC9cAj96bE="; nativeBuildInputs = [ remarshal diff --git a/pkgs/by-name/k8/k8sgpt/package.nix b/pkgs/by-name/k8/k8sgpt/package.nix index 063f8685285f..91797e076b01 100644 --- a/pkgs/by-name/k8/k8sgpt/package.nix +++ b/pkgs/by-name/k8/k8sgpt/package.nix @@ -8,7 +8,7 @@ buildGoModule (finalAttrs: { pname = "k8sgpt"; - version = "0.4.30"; + version = "0.4.31"; nativeBuildInputs = [ installShellFiles @@ -18,7 +18,7 @@ buildGoModule (finalAttrs: { owner = "k8sgpt-ai"; repo = "k8sgpt"; rev = "v${finalAttrs.version}"; - hash = "sha256-8hzJEJ+aZ+nVleStMngRortRLEoW+6FhcYBgin3Z/3Y="; + hash = "sha256-+cjCDcRdj6A17eT7IJ/OKgWTXex4zXz9pbmrcc2w2bM="; }; vendorHash = "sha256-zljqZWM1jSAC+ZhW1NNp182Ui/40u0VTtfolnPXQKqE="; diff --git a/pkgs/by-name/k9/k9s/package.nix b/pkgs/by-name/k9/k9s/package.nix index c1e7558875b5..37759f5c43b2 100644 --- a/pkgs/by-name/k9/k9s/package.nix +++ b/pkgs/by-name/k9/k9s/package.nix @@ -78,6 +78,7 @@ buildGoModule (finalAttrs: { qjoly devusb ryan4yin + kaynetik ]; }; }) diff --git a/pkgs/by-name/ku/kubectl-cnpg/package.nix b/pkgs/by-name/ku/kubectl-cnpg/package.nix index adf62029ab26..4493dbfa4072 100644 --- a/pkgs/by-name/ku/kubectl-cnpg/package.nix +++ b/pkgs/by-name/ku/kubectl-cnpg/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "kubectl-cnpg"; - version = "1.28.1"; + version = "1.29.0"; src = fetchFromGitHub { owner = "cloudnative-pg"; repo = "cloudnative-pg"; rev = "v${finalAttrs.version}"; - hash = "sha256-9NfjrVF0OtDLaGD5PPFSZcI8V3Vy/yOTm/JwnE3kMZE="; + hash = "sha256-D4Z2v0bBctQPVm7lblyQP3qD16GXGLF+5gQ6tCsuu8M="; }; - vendorHash = "sha256-QNtKtHTxOgm6EbOSvA2iUE0hjltwTBNkA1mIC3N+AbM="; + vendorHash = "sha256-WDVipOz2yx9kvSQnc0Fnn+es0OhLgXye4e6jro0xDZ8="; subPackages = [ "cmd/kubectl-cnpg" ]; diff --git a/pkgs/by-name/la/lasuite-docs-collaboration-server/package.nix b/pkgs/by-name/la/lasuite-docs-collaboration-server/package.nix index 147c814dab10..05a1836f906c 100644 --- a/pkgs/by-name/la/lasuite-docs-collaboration-server/package.nix +++ b/pkgs/by-name/la/lasuite-docs-collaboration-server/package.nix @@ -13,20 +13,20 @@ stdenv.mkDerivation (finalAttrs: { pname = "lasuite-docs-collaboration-server"; - version = "4.8.1"; + version = "4.8.4"; src = fetchFromGitHub { owner = "suitenumerique"; repo = "docs"; tag = "v${finalAttrs.version}"; - hash = "sha256-R8DO7hsWt8+aKnHFEoZ06f1f+r8dNmNoPZRVBfr9VCY="; + hash = "sha256-k90JxFxXL3vEGBMkgbQABUCK99utJ88E/v9Zcj/2oBo="; }; sourceRoot = "${finalAttrs.src.name}/src/frontend"; offlineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/src/frontend/yarn.lock"; - hash = "sha256-F8VXjGY6Ct2Y8btqOmxZevCkxBvqg6xWZLYTZA2uUnM="; + hash = "sha256-ElI6WWKPCsO7Viexgp2XtcjXAXzFnG2ZPN5PjOaKO2g="; }; nativeBuildInputs = [ @@ -60,7 +60,10 @@ stdenv.mkDerivation (finalAttrs: { changelog = "https://github.com/suitenumerique/docs/blob/${finalAttrs.src.tag}/CHANGELOG.md"; mainProgram = "docs-collaboration-server"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ soyouzpanda ]; + maintainers = with lib.maintainers; [ + soyouzpanda + ma27 + ]; platforms = lib.platforms.all; }; }) diff --git a/pkgs/by-name/la/lasuite-docs-frontend/package.nix b/pkgs/by-name/la/lasuite-docs-frontend/package.nix index 9047413c1fd3..51934141c2f6 100644 --- a/pkgs/by-name/la/lasuite-docs-frontend/package.nix +++ b/pkgs/by-name/la/lasuite-docs-frontend/package.nix @@ -2,6 +2,7 @@ lib, fetchFromGitHub, stdenv, + fetchpatch, fetchYarnDeps, nodejs, fixup-yarn-lock, @@ -12,20 +13,30 @@ stdenv.mkDerivation (finalAttrs: { pname = "lasuite-docs-frontend"; - version = "4.8.1"; + version = "4.8.4"; src = fetchFromGitHub { owner = "suitenumerique"; repo = "docs"; tag = "v${finalAttrs.version}"; - hash = "sha256-R8DO7hsWt8+aKnHFEoZ06f1f+r8dNmNoPZRVBfr9VCY="; + hash = "sha256-k90JxFxXL3vEGBMkgbQABUCK99utJ88E/v9Zcj/2oBo="; }; sourceRoot = "${finalAttrs.src.name}/src/frontend"; + patches = [ + # from https://github.com/suitenumerique/docs/pull/2147, + # fixes the frontend when using the MIT build. + (fetchpatch { + url = "https://github.com/suitenumerique/docs/commit/79e909cf6489428d8f6644d772006f73503b7073.patch"; + hash = "sha256-Ucw1KtsFrPvtoeeG2fH5L64Jfcog4RV38Qg+EykGcQY="; + stripLen = 2; + }) + ]; + offlineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/src/frontend/yarn.lock"; - hash = "sha256-F8VXjGY6Ct2Y8btqOmxZevCkxBvqg6xWZLYTZA2uUnM="; + hash = "sha256-ElI6WWKPCsO7Viexgp2XtcjXAXzFnG2ZPN5PjOaKO2g="; }; nativeBuildInputs = [ @@ -51,7 +62,10 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/suitenumerique/docs"; changelog = "https://github.com/suitenumerique/docs/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ soyouzpanda ]; + maintainers = with lib.maintainers; [ + soyouzpanda + ma27 + ]; platforms = lib.platforms.all; }; }) diff --git a/pkgs/by-name/la/lasuite-docs/package.nix b/pkgs/by-name/la/lasuite-docs/package.nix index e38e23cd5c02..b1930bd1911c 100644 --- a/pkgs/by-name/la/lasuite-docs/package.nix +++ b/pkgs/by-name/la/lasuite-docs/package.nix @@ -11,12 +11,12 @@ yarnConfigHook, }: let - version = "4.8.1"; + version = "4.8.4"; src = fetchFromGitHub { owner = "suitenumerique"; repo = "docs"; tag = "v${version}"; - hash = "sha256-R8DO7hsWt8+aKnHFEoZ06f1f+r8dNmNoPZRVBfr9VCY="; + hash = "sha256-k90JxFxXL3vEGBMkgbQABUCK99utJ88E/v9Zcj/2oBo="; }; mail-templates = stdenv.mkDerivation { @@ -29,7 +29,7 @@ let offlineCache = fetchYarnDeps { yarnLock = "${src}/src/mail/yarn.lock"; - hash = "sha256-ag9+g48dWl5Ww/78qqgtcKwiyPVlpNiJ7w7+DPaar2U="; + hash = "sha256-Fd9HJ7c7fh8YYZrfzRK7BnlnHAXeyeQ9UBabnRlA+w0="; }; nativeBuildInputs = [ @@ -88,6 +88,7 @@ python3Packages.buildPythonApplication (finalAttrs: { django-storages django-timezone-field django-treebeard + django-waffle djangorestframework drf-spectacular drf-spectacular-sidecar @@ -145,6 +146,8 @@ python3Packages.buildPythonApplication (finalAttrs: { mkdir -p $out/${python3.sitePackages}/core/templates ln -sv ${mail-templates}/ $out/${python3.sitePackages}/core/templates/mail + + cp -r impress/configuration $out/${python3.sitePackages}/impress/configuration ''; passthru.tests = { @@ -156,7 +159,10 @@ python3Packages.buildPythonApplication (finalAttrs: { homepage = "https://github.com/suitenumerique/docs"; changelog = "https://github.com/suitenumerique/docs/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ soyouzpanda ]; + maintainers = with lib.maintainers; [ + soyouzpanda + ma27 + ]; mainProgram = "docs"; platforms = lib.platforms.all; }; diff --git a/pkgs/by-name/la/lazygit/package.nix b/pkgs/by-name/la/lazygit/package.nix index 8274bb89d241..a76d68852fe5 100644 --- a/pkgs/by-name/la/lazygit/package.nix +++ b/pkgs/by-name/la/lazygit/package.nix @@ -46,6 +46,7 @@ buildGoModule (finalAttrs: { khaneliman starsep sigmasquadron + kaynetik ]; mainProgram = "lazygit"; }; diff --git a/pkgs/by-name/li/liteparse/package.nix b/pkgs/by-name/li/liteparse/package.nix index 6216a9c8200c..a714029b424c 100644 --- a/pkgs/by-name/li/liteparse/package.nix +++ b/pkgs/by-name/li/liteparse/package.nix @@ -10,16 +10,16 @@ buildNpmPackage (finalAttrs: { pname = "liteparse"; - version = "1.2.0"; + version = "1.4.4"; src = fetchFromGitHub { owner = "run-llama"; repo = "liteparse"; tag = "v${finalAttrs.version}"; - hash = "sha256-6oG/ajH1roGkzRYAtAuJDniKwpBYF92NL1erYwQ4XPc="; + hash = "sha256-UHZaKWjzaoYbD2NHwNgvlpPfviD66zPQ6d0UWW/lrmk="; }; - npmDepsHash = "sha256-lgqrXGbFuHbwQMXPbhHFdOabfPdVhghmg5v+aE4Og2k="; + npmDepsHash = "sha256-Wz46n7BbubC3Cq1CHOHM2q/dVOvOVNQTloHZfkAwzpg="; npmBuildScript = "build"; nativeBuildInputs = [ makeBinaryWrapper ]; diff --git a/pkgs/by-name/me/meteor-git/package.nix b/pkgs/by-name/me/meteor-git/package.nix index 72a4c53fe4a7..ef37176b6892 100644 --- a/pkgs/by-name/me/meteor-git/package.nix +++ b/pkgs/by-name/me/meteor-git/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "meteor-git"; - version = "0.30.0"; + version = "0.31.0"; src = fetchFromGitHub { owner = "stefanlogue"; repo = "meteor"; rev = "v${finalAttrs.version}"; - hash = "sha256-oqfJDIT+4n9ySwmN5DoTvAcEY9wmI/bhVSYFHudMwl0="; + hash = "sha256-jX0peeI7vMk5CWcQCaR5pd3Klcragds0p7S4hsadyEM="; }; vendorHash = "sha256-jKd/eJwp5SZvTrP3RN7xT7ibAB0PQondGR3RT+HQXIo="; diff --git a/pkgs/by-name/ns/nsc/package.nix b/pkgs/by-name/ns/nsc/package.nix index b23d19f81f6c..d59542a0affc 100644 --- a/pkgs/by-name/ns/nsc/package.nix +++ b/pkgs/by-name/ns/nsc/package.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "nsc"; - version = "2.12.1"; + version = "2.12.2"; src = fetchFromGitHub { owner = "nats-io"; repo = "nsc"; rev = "v${version}"; - hash = "sha256-PTwdZ33GcqHmqpPu29S4MESjGiHHiIUnVOxufmXJX+U="; + hash = "sha256-jgGyCMS1jCCEj1zNEXpXhOc2t0lP1iXs7R3uDTKhhuk="; }; ldflags = [ @@ -47,7 +47,7 @@ buildGoModule rec { # the test strips table formatting from the command output in a naive way # that removes all the table characters, including '-'. # The nix build directory looks something like: - # /private/tmp/nix-build-nsc-2.12.1.drv-0/nsc_test2000598938/keys + # /private/tmp/nix-build-nsc-2.12.2.drv-0/nsc_test2000598938/keys # Then the `-` are removed from the path unintentionally and the test fails. # This should be fixed upstream to avoid mangling the path when # removing the table decorations from the command output. diff --git a/pkgs/by-name/nv/nvimpager/package.nix b/pkgs/by-name/nv/nvimpager/package.nix index cb02e45ab2dc..d569c58f4c92 100644 --- a/pkgs/by-name/nv/nvimpager/package.nix +++ b/pkgs/by-name/nv/nvimpager/package.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "nvimpager"; - version = "0.13.0"; + version = "0.14.0"; src = fetchFromGitHub { owner = "lucc"; repo = "nvimpager"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-Au9rRZMZfU4qHi/ng6JO8FnMpySKDbKzr75SBPY3QiA="; + sha256 = "sha256-hwUI0DlkXveE+m4BkO8xEF/IARqSVk2E6tw07+UtnbA="; }; buildInputs = [ diff --git a/pkgs/by-name/ph/phpstan/package.nix b/pkgs/by-name/ph/phpstan/package.nix index 43a107d7e9ae..8d8a3053d1c3 100644 --- a/pkgs/by-name/ph/phpstan/package.nix +++ b/pkgs/by-name/ph/phpstan/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "phpstan"; - version = "2.1.43"; + version = "2.1.46"; src = fetchFromGitHub { owner = "phpstan"; repo = "phpstan"; tag = finalAttrs.version; - hash = "sha256-HIRM73A+pXWUV0gdcGPI4vjEKAYntNUAVqg4iEKx9To="; + hash = "sha256-VZQhL9w2/eyMQJhnLTU50wVVjS1gGNKLcPkuEkE5ZaA="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/po/podman-compose/package.nix b/pkgs/by-name/po/podman-compose/package.nix index d0169a667af0..01654d3c70cf 100644 --- a/pkgs/by-name/po/podman-compose/package.nix +++ b/pkgs/by-name/po/podman-compose/package.nix @@ -43,7 +43,10 @@ python3Packages.buildPythonApplication (finalAttrs: { homepage = "https://github.com/containers/podman-compose"; license = lib.licenses.gpl2Only; platforms = lib.platforms.unix; - maintainers = [ lib.maintainers.sikmir ]; + maintainers = with lib.maintainers; [ + sikmir + kaynetik + ]; teams = [ lib.teams.podman ]; mainProgram = "podman-compose"; }; diff --git a/pkgs/by-name/po/podman-desktop/package.nix b/pkgs/by-name/po/podman-desktop/package.nix index 07c668f7b55c..ae7c66d7e09a 100644 --- a/pkgs/by-name/po/podman-desktop/package.nix +++ b/pkgs/by-name/po/podman-desktop/package.nix @@ -167,6 +167,7 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.asl20; maintainers = with lib.maintainers; [ booxter + kaynetik ]; inherit (electron.meta) platforms; mainProgram = "podman-desktop"; diff --git a/pkgs/by-name/pr/prmers/package.nix b/pkgs/by-name/pr/prmers/package.nix index 98935ac3e454..558ed96e6cfe 100644 --- a/pkgs/by-name/pr/prmers/package.nix +++ b/pkgs/by-name/pr/prmers/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "prmers"; - version = "4.18.02-alpha"; + version = "4.19.00-alpha"; src = fetchFromGitHub { owner = "cherubrock-seb"; repo = "PrMers"; tag = "v${finalAttrs.version}"; - hash = "sha256-0vzJDt/c21m+QvKbgP3LWYGopJAqz6zfD6+JakwYGwA="; + hash = "sha256-zG9JLBqIqQjiz8+QNogk/rFeoj1/irmhfbVVe9HTq6A="; }; enableParallelBuilding = true; diff --git a/pkgs/by-name/pr/proton-vpn/linux.nix b/pkgs/by-name/pr/proton-vpn/linux.nix index 2ba403bb7900..758c425f9b85 100644 --- a/pkgs/by-name/pr/proton-vpn/linux.nix +++ b/pkgs/by-name/pr/proton-vpn/linux.nix @@ -14,14 +14,14 @@ }: python3Packages.buildPythonApplication (finalAttrs: { pname = "proton-vpn"; - version = "4.15.0"; + version = "4.15.1"; pyproject = true; src = fetchFromGitHub { owner = "ProtonVPN"; repo = "proton-vpn-gtk-app"; tag = "v${finalAttrs.version}"; - hash = "sha256-bKUhrbfOLVjknljwW9UPo3Ros1Ayzb+be5KTUjPnIW0="; + hash = "sha256-mWQW/KR2zQxSMkcu5k79H3TNATmFB6J2vgFhgXNpM2s="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/re/render-cli/package.nix b/pkgs/by-name/re/render-cli/package.nix index 4a83a34d0664..d6696428f678 100644 --- a/pkgs/by-name/re/render-cli/package.nix +++ b/pkgs/by-name/re/render-cli/package.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "render-cli"; - version = "2.5.0"; + version = "2.15.1"; src = fetchFromGitHub { owner = "render-oss"; repo = "cli"; rev = "v${version}"; - hash = "sha256-nOcgDTFngeO7xKB7e9oLtAGD/ZpQqw++CGjvJRu+PUI="; + hash = "sha256-a7yYSslRWa4d8TTAw128PukLBamqkpDr2oUUYBRgpCY="; }; - vendorHash = "sha256-Kd4qbBwk4U/LIkfwQopMqN5DqKHN5BMCMYWSR+OSKN0="; + vendorHash = "sha256-K2RKcz5wAP0ZA5g5aDgSsEXKEEncFtO9qamgG3fW02Y="; # Tests require network access doCheck = false; diff --git a/pkgs/by-name/re/resterm/package.nix b/pkgs/by-name/re/resterm/package.nix index 43a6089d7f2d..2159ccea52a0 100644 --- a/pkgs/by-name/re/resterm/package.nix +++ b/pkgs/by-name/re/resterm/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "resterm"; - version = "0.23.6"; + version = "0.24.1"; src = fetchFromGitHub { owner = "unkn0wn-root"; repo = "resterm"; tag = "v${finalAttrs.version}"; - sha256 = "sha256-MVcLyPPnQIn0IZcGOoELRSQkI+BEIXSZfWeeZv6AILI="; + sha256 = "sha256-7AgxDA1E20H2WYGFuwCIyBcB/1Zt58AbQwkEkcJdnq0="; }; vendorHash = "sha256-AjckKD6NScBa8w9nWMdVExuNadz3vHnK854XXg3nj84="; diff --git a/pkgs/by-name/rg/rgx/package.nix b/pkgs/by-name/rg/rgx/package.nix index d7f57d3dc89c..f5bd66d7d370 100644 --- a/pkgs/by-name/rg/rgx/package.nix +++ b/pkgs/by-name/rg/rgx/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "rgx"; - version = "0.8.1"; + version = "0.9.0"; src = fetchFromGitHub { owner = "brevity1swos"; repo = "rgx"; tag = "v${finalAttrs.version}"; - hash = "sha256-MmRTZ39Kp2fcx99QlwpYb3KLBO6vUIIseLJFBEXx3c4="; + hash = "sha256-04bnNHpIRMyqvRmXDjzGpeEHgwVDSoBtyunlt03nB5Q="; }; - cargoHash = "sha256-wDSQ0y1Lbkx3LBmxA6COPSrKag7ihcwoWfTWhWCkcHE="; + cargoHash = "sha256-v7dO2TSCKb+E/jLYPw8Q499qFXmSnbv3/WoS+dZhyBM="; meta = { homepage = "https://github.com/brevity1swos/rgx"; diff --git a/pkgs/by-name/ri/ripgrep/package.nix b/pkgs/by-name/ri/ripgrep/package.nix index 69d06b695139..6f73c6662b66 100644 --- a/pkgs/by-name/ri/ripgrep/package.nix +++ b/pkgs/by-name/ri/ripgrep/package.nix @@ -70,6 +70,7 @@ rustPlatform.buildRustPackage (finalAttrs: { globin ma27 zowoq + kaynetik ]; mainProgram = "rg"; platforms = lib.platforms.all; diff --git a/pkgs/by-name/ru/rust-analyzer-unwrapped/package.nix b/pkgs/by-name/ru/rust-analyzer-unwrapped/package.nix index a23e04803f80..147144654b25 100644 --- a/pkgs/by-name/ru/rust-analyzer-unwrapped/package.nix +++ b/pkgs/by-name/ru/rust-analyzer-unwrapped/package.nix @@ -13,15 +13,15 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "rust-analyzer-unwrapped"; - version = "2026-03-23"; + version = "2026-03-30"; - cargoHash = "sha256-osoNyx4UEbq0J2fx7WMJBfIRV3mhsO+OSBNrvu060IM="; + cargoHash = "sha256-nTllacWD0alq8OVKAPhcuMnAyPW2Uh0JAJkHhB9YcZ4="; src = fetchFromGitHub { owner = "rust-lang"; repo = "rust-analyzer"; rev = finalAttrs.version; - hash = "sha256-aEIdkqB8gtQZtEbogdUb5iyfcZpKIlD3FkG8ANu73/I="; + hash = "sha256-Cbpmf0+1pqi/zbpub2vkp5lTPx3QdVtDkkagDwQzHHg="; }; cargoBuildFlags = [ diff --git a/pkgs/by-name/ry/ryzen-monitor-ng/package.nix b/pkgs/by-name/ry/ryzen-monitor-ng/package.nix index 7a90bf59b362..3d179324933f 100644 --- a/pkgs/by-name/ry/ryzen-monitor-ng/package.nix +++ b/pkgs/by-name/ry/ryzen-monitor-ng/package.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation { pname = "ryzen-monitor-ng"; - version = "2.0.5-unstable-2023-11-05"; + version = "0-unstable-2026-03-28"; # Upstream has not updated ryzen_smu header version # This fork corrects ryzen_smu header version and @@ -15,8 +15,8 @@ stdenv.mkDerivation { src = fetchFromGitHub { owner = "plasmin"; repo = "ryzen_monitor_ng"; - rev = "8b7854791d78de731a45ce7d30dd17983228b7b1"; - hash = "sha256-xdYNtXCbNy3/y5OAHZEi9KgPtwr1LTtLWAZC5DDCfmE="; + rev = "d62a4304b2f1727de3970b81d81875133b5f8a68"; + hash = "sha256-irX+Y3H16mNVOfh7Hi8jZ0+DbG7un7MvKaMqp+isjoo="; # Upstream repo contains pre-compiled binaries and object files # that are out of date. # These need to be removed before build stage. diff --git a/pkgs/by-name/sc/scaleway-cli/package.nix b/pkgs/by-name/sc/scaleway-cli/package.nix index 1cdd937b0d8b..5e34f86fd9ff 100644 --- a/pkgs/by-name/sc/scaleway-cli/package.nix +++ b/pkgs/by-name/sc/scaleway-cli/package.nix @@ -10,16 +10,16 @@ buildGo126Module (finalAttrs: { pname = "scaleway-cli"; - version = "2.53.0"; + version = "2.54.0"; src = fetchFromGitHub { owner = "scaleway"; repo = "scaleway-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-IxnDmmvWH17xd2djroikwrQq0bLexWeN8VHMPiNEBhU="; + hash = "sha256-pmuyCc+hWXiUlqHi1nDS+51SDxUzIqXqs6Td0Bvjh2o="; }; - vendorHash = "sha256-/UEE3XSbpwlywF8TMmp90bS537RRZG0yN0oq1sbrcPQ="; + vendorHash = "sha256-yB2/tHgbR5eJ6VyF49KI6FLyjeoE4om+Ajewofxzbs0="; env.CGO_ENABLED = 0; diff --git a/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix b/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix index 74c8d8dff49b..c470a7e98808 100644 --- a/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix +++ b/pkgs/by-name/sd/sdl_gamecontrollerdb/package.nix @@ -7,13 +7,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "sdl_gamecontrollerdb"; - version = "0-unstable-2026-03-23"; + version = "0-unstable-2026-04-02"; src = fetchFromGitHub { owner = "mdqinc"; repo = "SDL_GameControllerDB"; - rev = "7c3baed7e78f4b85c12df22089b2b97410edec15"; - hash = "sha256-HN5oKK0Et6qMlAu0jer+k5YV5YPsZMepia57bll4lf0="; + rev = "202d0070d75e51cdf2fc6e9c4d4662d87226d5c6"; + hash = "sha256-79DvPUHzUw3XAnMQu3pNxZq0+CG9J1u5MiOTyG7pXkk="; }; dontBuild = true; diff --git a/pkgs/by-name/so/solanum/package.nix b/pkgs/by-name/so/solanum/package.nix index ec3dc8ba8843..942af46837d7 100644 --- a/pkgs/by-name/so/solanum/package.nix +++ b/pkgs/by-name/so/solanum/package.nix @@ -23,13 +23,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "solanum"; - version = "0-unstable-2026-03-22"; + version = "0-unstable-2026-03-25"; src = fetchFromGitHub { owner = "solanum-ircd"; repo = "solanum"; - rev = "6ac4d0e24e4b872b9f30adc743cf743e964d75d1"; - hash = "sha256-5pW3QkSkmLoRrW/WjsDm4zCJLjwG0KVBKWbQe/iIgnM="; + rev = "d8d710c7bc052c3e24f76ca7a63da3a6ba6af8ea"; + hash = "sha256-QnnxRRDou67/PorQ8YzVbQo2E3DF/f+cpR+hVecmyD0="; }; postPatch = '' diff --git a/pkgs/by-name/so/sops/package.nix b/pkgs/by-name/so/sops/package.nix index ef2b6bcb5509..1ca994f2f58f 100644 --- a/pkgs/by-name/so/sops/package.nix +++ b/pkgs/by-name/so/sops/package.nix @@ -66,6 +66,7 @@ buildGoModule (finalAttrs: { maintainers = with lib.maintainers; [ Scrumplex mic92 + kaynetik ]; license = lib.licenses.mpl20; }; diff --git a/pkgs/by-name/st/stats/package.nix b/pkgs/by-name/st/stats/package.nix index aa1bfd2049e6..ab288d597aed 100644 --- a/pkgs/by-name/st/stats/package.nix +++ b/pkgs/by-name/st/stats/package.nix @@ -1,29 +1,334 @@ { lib, - stdenvNoCC, - fetchurl, - undmg, + swiftPackages, + fetchFromGitHub, + darwin, + leveldb, + perl, + actool, + makeWrapper, nix-update-script, }: -stdenvNoCC.mkDerivation (finalAttrs: { - pname = "stats"; - version = "2.12.1"; +let + inherit (swiftPackages) stdenv swift; - src = fetchurl { - url = "https://github.com/exelban/stats/releases/download/v${finalAttrs.version}/Stats.dmg"; - hash = "sha256-li4pCrwt37Wmmk3VAJT9XTcqPQ4HywQObUVSSgzARsE="; + frameworks = [ + "Kit" + "CPU" + "GPU" + "RAM" + "Disk" + "Net" + "Battery" + "Bluetooth" + "Sensors" + "Clock" + ]; + modules = lib.tail frameworks; + + toPlist = lib.generators.toPlist { escape = true; }; + + frameworkPlist = + name: + toPlist { + CFBundleExecutable = name; + CFBundleIdentifier = "eu.exelban.Stats.${name}"; + CFBundleInfoDictionaryVersion = "6.0"; + CFBundleName = name; + CFBundlePackageType = "FMWK"; + CFBundleVersion = "1"; + }; + + mainInfoPlist = + version: + toPlist { + CFBundleDevelopmentRegion = "en"; + CFBundleExecutable = "Stats"; + CFBundleIdentifier = "eu.exelban.Stats"; + CFBundleInfoDictionaryVersion = "6.0"; + CFBundleName = "Stats"; + CFBundlePackageType = "APPL"; + CFBundleShortVersionString = version; + # CFBundleVersion is extracted from upstream's Info.plist at build time + Description = "Simple macOS system monitor in your menu bar"; + LSApplicationCategoryType = "public.app-category.utilities"; + LSMinimumSystemVersion = "11.0"; + LSUIElement = true; + NSAppTransportSecurity = { + NSAllowsArbitraryLoads = true; + }; + NSBluetoothAlwaysUsageDescription = "This permission allows obtaining battery level of Bluetooth devices"; + NSHumanReadableCopyright = "Copyright © 2020 Serhiy Mytrovtsiy. All rights reserved."; + NSPrincipalClass = "NSApplication"; + NSUserNotificationAlertStyle = "alert"; + TeamId = "RP2S87B72W"; + }; +in +stdenv.mkDerivation (finalAttrs: { + pname = "stats"; + version = "2.12.7"; + + src = fetchFromGitHub { + owner = "exelban"; + repo = "Stats"; + tag = "v${finalAttrs.version}"; + hash = "sha256-qx4FI+MnFknIrTOPP+8wyy1wqFMWyaunmags023ay6A="; }; - sourceRoot = "."; + nativeBuildInputs = [ + swift + perl + actool + darwin.autoSignDarwinBinariesHook + makeWrapper + ]; - nativeBuildInputs = [ undmg ]; + buildInputs = [ leveldb ]; + + # Stats uses IOReport private API symbols declared in bridging headers + env.NIX_LDFLAGS = "-lIOReport"; + + # Swift 5.10 doesn't support trailing commas in argument lists (Swift 6 feature) + # Remove them from all Swift source files + postPatch = '' + find . -name '*.swift' -exec perl -0777 -pi -e ' + s/,(\s*\))/$1/g; + s/\@retroactive //g; + ' {} + + + # CWPHYMode.mode11be (WiFi 7) requires macOS 15+ SDK; @unknown default covers it + sed -i '/mode11be/d' Modules/Net/readers.swift + + ''; + + dontConfigure = true; + + buildPhase = '' + runHook preBuild + + buildDir="$PWD/build" + mkdir -p "$buildDir" + + commonSwiftFlags=( + -O + -Xcc -IKit/lldb + -Xcc -IKit/lldb/include + -Xcc -I${leveldb.dev}/include/leveldb + -disable-bridging-pch + # Stamp binaries with macOS 26 SDK version so the system applies Liquid Glass UI + # The Swift compiler in nixpkgs uses SDK 14 headers (which compile fine), but without + # this flag the linker records SDK 14 and macOS withholds it (Liquid Glass) + -Xlinker -platform_version -Xlinker macos -Xlinker 14.0 -Xlinker 26.0 + ) + + buildFramework() { + local name="$1" + shift + local bridgingHeader="$1" + shift + local extraFlags=("$@") + + echo "Building framework: $name" + + local swiftFiles=() + while IFS= read -r -d "" f; do + swiftFiles+=("$f") + done < <(find "$name" -name '*.swift' -print0 2>/dev/null) + + # For modules in Modules/ subdirectory + if [ ''${#swiftFiles[@]} -eq 0 ]; then + while IFS= read -r -d "" f; do + swiftFiles+=("$f") + done < <(find "Modules/$name" -name '*.swift' -print0 2>/dev/null) + fi + + local bridgeFlags=() + if [ -n "$bridgingHeader" ]; then + bridgeFlags=(-import-objc-header "$bridgingHeader") + fi + + swiftc \ + "''${commonSwiftFlags[@]}" \ + -emit-module \ + -emit-library \ + -module-name "$name" \ + -module-link-name "$name" \ + -emit-module-path "$buildDir/$name.swiftmodule" \ + "''${bridgeFlags[@]}" \ + -I "$buildDir" \ + -L "$buildDir" \ + -Xlinker -install_name -Xlinker "@rpath/$name.framework/$name" \ + "''${extraFlags[@]}" \ + "''${swiftFiles[@]}" \ + -o "$buildDir/lib$name.dylib" + } + + echo "=== Building Kit ===" + + # Compile lldb.m (Objective-C++ with LevelDB) + clang++ -x objective-c++ \ + -I Kit/lldb/include \ + -I Kit/lldb \ + -I ${leveldb.dev}/include/leveldb \ + -fobjc-arc \ + -O2 \ + -c Kit/lldb/lldb.m \ + -o "$buildDir/lldb.o" + + kitSwiftFiles=() + while IFS= read -r -d "" f; do + kitSwiftFiles+=("$f") + done < <(find Kit -name '*.swift' -print0) + # Kit also compiles shared SMC source files (protocol.swift, smc.swift) + kitSwiftFiles+=("SMC/Helper/protocol.swift" "SMC/smc.swift") + + swiftc \ + "''${commonSwiftFlags[@]}" \ + -emit-module \ + -emit-library \ + -module-name Kit \ + -module-link-name Kit \ + -emit-module-path "$buildDir/Kit.swiftmodule" \ + -import-objc-header "Kit/Supporting Files/Kit.h" \ + -Xcc -IKit/lldb \ + -Xcc -IKit/lldb/include \ + -Xcc -I${leveldb.dev}/include/leveldb \ + -Xlinker -install_name -Xlinker "@rpath/Kit.framework/Kit" \ + "$buildDir/lldb.o" \ + -L ${leveldb}/lib -lleveldb \ + -lstdc++ \ + "''${kitSwiftFiles[@]}" \ + -o "$buildDir/libKit.dylib" + + buildFramework CPU "Modules/CPU/bridge.h" \ + -lKit -framework IOKit + + buildFramework GPU "" \ + -lKit -framework IOKit -framework Metal + + buildFramework RAM "" \ + -lKit -framework IOKit + + buildFramework Disk "Modules/Disk/header.h" \ + -lKit -framework IOKit -framework DiskArbitration + + buildFramework Net "" \ + -lKit -framework IOKit -framework CoreWLAN -framework SystemConfiguration + + buildFramework Battery "" \ + -lKit -framework IOKit + + buildFramework Bluetooth "" \ + -lKit -framework IOKit -framework IOBluetooth -framework CoreBluetooth + + # Build Sensors - needs ObjC file too + echo "Building framework: Sensors" + + # Compile reader.m (ObjC) + clang -x objective-c \ + -I "Modules/Sensors" \ + -fobjc-arc \ + -O2 \ + -c Modules/Sensors/reader.m \ + -o "$buildDir/sensors_reader.o" + + sensorsSwiftFiles=() + while IFS= read -r -d "" f; do + sensorsSwiftFiles+=("$f") + done < <(find Modules/Sensors -name '*.swift' -print0) + + swiftc \ + "''${commonSwiftFlags[@]}" \ + -emit-module \ + -emit-library \ + -module-name Sensors \ + -module-link-name Sensors \ + -emit-module-path "$buildDir/Sensors.swiftmodule" \ + -import-objc-header "Modules/Sensors/bridge.h" \ + -I "$buildDir" \ + -L "$buildDir" \ + -lKit \ + -framework IOKit \ + -Xlinker -install_name -Xlinker "@rpath/Sensors.framework/Sensors" \ + "$buildDir/sensors_reader.o" \ + "''${sensorsSwiftFiles[@]}" \ + -o "$buildDir/libSensors.dylib" + + buildFramework Clock "" \ + -lKit + + echo "=== Building Stats app ===" + + statsSwiftFiles=() + while IFS= read -r -d "" f; do + statsSwiftFiles+=("$f") + done < <(find Stats -name '*.swift' -print0) + + swiftc \ + "''${commonSwiftFlags[@]}" \ + -emit-executable \ + -module-name Stats \ + -I "$buildDir" \ + -L "$buildDir" \ + ${lib.concatMapStringsSep " " (fw: "-l${fw}") frameworks} \ + -Xlinker -rpath -Xlinker "@executable_path/../Frameworks" \ + "''${statsSwiftFiles[@]}" \ + -o "$buildDir/Stats" + + runHook postBuild + ''; installPhase = '' runHook preInstall - mkdir -p "$out/Applications" - cp -r *.app "$out/Applications" + app="$out/Applications/Stats.app" + mkdir -p "$app/Contents/"{MacOS,Frameworks,Resources} + + cp "$buildDir/Stats" "$app/Contents/MacOS/Stats" + + # Install frameworks with generated Info.plists + ${lib.concatMapStrings (fw: '' + fwDir="$app/Contents/Frameworks/${fw}.framework" + mkdir -p "$fwDir/Resources" + cp "$buildDir/lib${fw}.dylib" "$fwDir/${fw}" + printf '%s' ${lib.escapeShellArg (frameworkPlist fw)} > "$fwDir/Resources/Info.plist" + '') frameworks} + + printf '%s' ${lib.escapeShellArg (mainInfoPlist finalAttrs.version)} > "$app/Contents/Info.plist" + # Splice CFBundleVersion from upstream's checked-in Info.plist so it stays + # in sync automatically — nix-update-script bumps the tag & hash, and the + # new source tree carries the correct build number + bundleVersion=$(sed -n '/CFBundleVersion<\/key>/{n;s/.*\(.*\)<\/string>.*/\1/p;}' \ + "Stats/Supporting Files/Info.plist") + sed -i "s||CFBundleVersion$bundleVersion|" \ + "$app/Contents/Info.plist" + + # Compile asset catalogs + actool \ + --compile "$app/Contents/Resources" \ + --platform macosx \ + --minimum-deployment-target 14.0 \ + --app-icon AppIcon \ + "Stats/Supporting Files/Assets.xcassets" + + actool \ + --compile "$app/Contents/Frameworks/Kit.framework/Resources" \ + --platform macosx \ + --minimum-deployment-target 14.0 \ + "Kit/Supporting Files/Assets.xcassets" + + # Copy localization files + find "Stats/Supporting Files" -name '*.lproj' -type d -exec cp -r {} "$app/Contents/Resources/" \; + + # Copy module config plists into each framework's Resources + for mod in ${lib.concatStringsSep " " modules}; do + if [ -f "Modules/$mod/config.plist" ]; then + cp "Modules/$mod/config.plist" "$app/Contents/Frameworks/$mod.framework/Resources/config.plist" + fi + done + + makeWrapper "$app/Contents/MacOS/Stats" "$out/bin/stats" runHook postInstall ''; @@ -40,6 +345,5 @@ stdenvNoCC.mkDerivation (finalAttrs: { emilytrau ]; platforms = lib.platforms.darwin; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; }) diff --git a/pkgs/by-name/tf/tflint/package.nix b/pkgs/by-name/tf/tflint/package.nix index bd873fcaa6b5..cfe01d58999e 100644 --- a/pkgs/by-name/tf/tflint/package.nix +++ b/pkgs/by-name/tf/tflint/package.nix @@ -61,6 +61,9 @@ buildGo125Module (finalAttrs: { homepage = "https://github.com/terraform-linters/tflint"; changelog = "https://github.com/terraform-linters/tflint/blob/v${finalAttrs.version}/CHANGELOG.md"; license = lib.licenses.mpl20; - maintainers = with lib.maintainers; [ momeemt ]; + maintainers = with lib.maintainers; [ + momeemt + kaynetik + ]; }; }) diff --git a/pkgs/by-name/tf/tfsec/package.nix b/pkgs/by-name/tf/tfsec/package.nix index 13515402aab7..ba0640878a39 100644 --- a/pkgs/by-name/tf/tfsec/package.nix +++ b/pkgs/by-name/tf/tfsec/package.nix @@ -38,6 +38,7 @@ buildGoModule (finalAttrs: { license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab + kaynetik ]; }; }) diff --git a/pkgs/by-name/th/thunderbird-mcp/package-lock.json b/pkgs/by-name/th/thunderbird-mcp/package-lock.json new file mode 100644 index 000000000000..4d69ec7302a2 --- /dev/null +++ b/pkgs/by-name/th/thunderbird-mcp/package-lock.json @@ -0,0 +1,19 @@ +{ + "name": "thunderbird-mcp", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "thunderbird-mcp", + "version": "0.1.0", + "license": "MIT", + "bin": { + "thunderbird-mcp": "mcp-bridge.cjs" + }, + "engines": { + "node": ">=18.0.0" + } + } + } +} diff --git a/pkgs/by-name/th/thunderbird-mcp/package.nix b/pkgs/by-name/th/thunderbird-mcp/package.nix new file mode 100644 index 000000000000..538f806dc5d2 --- /dev/null +++ b/pkgs/by-name/th/thunderbird-mcp/package.nix @@ -0,0 +1,36 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, +}: + +buildNpmPackage (finalAttrs: { + pname = "thunderbird-mcp"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "TKasperczyk"; + repo = "thunderbird-mcp"; + tag = "v${finalAttrs.version}"; + hash = "sha256-+m54jF39SoViHxDI18ewtVjeVUdRximJ6Ozcv1HVdiU="; + }; + + postPatch = '' + cp ${./package-lock.json} package-lock.json + ''; + + preInstall = "mkdir node_modules/"; + forceEmptyCache = true; + dontNpmBuild = true; + + npmDepsHash = "sha256-LbEnmABmAoTCTPNNbocl+n2TtFC3FOFwwTnyATxvM3k="; + + meta = { + description = "MCP server for Thunderbird - enables AI assistants to access email, contacts, and calendars"; + homepage = "https://github.com/TKasperczyk/thunderbird-mcp"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ drupol ]; + mainProgram = "thunderbird-mcp"; + platforms = lib.platforms.all; + }; +}) diff --git a/pkgs/by-name/tm/tmux/package.nix b/pkgs/by-name/tm/tmux/package.nix index d3907e4b164e..82bff08133d7 100644 --- a/pkgs/by-name/tm/tmux/package.nix +++ b/pkgs/by-name/tm/tmux/package.nix @@ -113,6 +113,7 @@ stdenv.mkDerivation (finalAttrs: { maintainers = with lib.maintainers; [ ethancedwards8 fpletz + kaynetik ]; }; }) diff --git a/pkgs/by-name/tu/tuios/package.nix b/pkgs/by-name/tu/tuios/package.nix index 799ce8916f05..ec7edcb649c4 100644 --- a/pkgs/by-name/tu/tuios/package.nix +++ b/pkgs/by-name/tu/tuios/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "tuios"; - version = "0.6.0"; + version = "0.7.0"; src = fetchFromGitHub { owner = "Gaurav-Gosain"; repo = "tuios"; tag = "v${finalAttrs.version}"; - hash = "sha256-cisbHTrp2k+henmxJOwcyfPG+SaxL6GWSa8OWGyimck="; + hash = "sha256-XPcgUDlIbwp278Kc9B0aXxxIX2XnsJpFzxHDaop9cLs="; }; - vendorHash = "sha256-kDZRT/Ua+SaxyZ6RI9ZY2tqBgQBWo755fvQVRupBsUc="; + vendorHash = "sha256-98XZe60gcRWyP0ApUV+qCJ0UoAExx7X0FPtFL0Tr0a4="; ldflags = [ "-s" diff --git a/pkgs/by-name/ty/typst/typst-packages-from-universe.toml b/pkgs/by-name/ty/typst/typst-packages-from-universe.toml index e3a74d54f99c..1245d925bc9a 100644 --- a/pkgs/by-name/ty/typst/typst-packages-from-universe.toml +++ b/pkgs/by-name/ty/typst/typst-packages-from-universe.toml @@ -8,6 +8,16 @@ license = [ ] homepage = "https://github.com/soarowl/a2c-nums.git" +[aa-draw."0.1.0"] +url = "https://packages.typst.org/preview/aa-draw-0.1.0.tar.gz" +hash = "sha256-1aF7HwZ5IayhIFgXveEidtPy7I9sa7gkDcMHvz+Oqxk=" +typstDeps = [] +description = "Convert ASCII art diagrams into SVG powered by aasvg-rs" +license = [ + "MIT", +] +homepage = "https://github.com/chillcicada/typst-aasvg" + [abbr."0.3.0"] url = "https://packages.typst.org/preview/abbr-0.3.0.tar.gz" hash = "sha256-O8LntWQhCu6yWAJu9Gp/rz3Q/e6cOqesmYkICut/G38=" @@ -242,6 +252,22 @@ license = [ ] homepage = "https://github.com/eltos/accelerated-jacow/" +[accelerated-jacow."0.1.3"] +url = "https://packages.typst.org/preview/accelerated-jacow-0.1.3.tar.gz" +hash = "sha256-rdamQ3duwAyaQNJqdZ7QdOJ22fTs5l0aSVu5Ykv78bQ=" +typstDeps = [ + "glossy_0_7_0", + "lilaq_0_1_0", + "physica_0_9_5", + "unify_0_7_1", +] +description = "Paper template for conference proceedings in accelerator physics" +license = [ + "GPL-3.0-only", + "MIT-0", +] +homepage = "https://github.com/eltos/accelerated-jacow/" + [accelerated-jacow."0.1.2"] url = "https://packages.typst.org/preview/accelerated-jacow-0.1.2.tar.gz" hash = "sha256-juQdPIDbJ6goVgn4HqgHp8gw+Ztx6QBjTo24jh6P3iw=" @@ -691,6 +717,18 @@ license = [ ] homepage = "https://github.com/SimonBure/akatable" +[alchemist."0.1.9"] +url = "https://packages.typst.org/preview/alchemist-0.1.9.tar.gz" +hash = "sha256-bWNGcV9An7t5OhjbXENg8BjtZOPPVayQngokIz7qKkk=" +typstDeps = [ + "cetz_0_4_2", +] +description = "A package to render skeletal formulas using CeTZ" +license = [ + "MIT", +] +homepage = "https://github.com/Typsium/alchemist" + [alchemist."0.1.8"] url = "https://packages.typst.org/preview/alchemist-0.1.8.tar.gz" hash = "sha256-GGOJ9TxctfYABiDU9NwMNDUjEzPoheuVnggfzIvhk6E=" @@ -890,16 +928,6 @@ license = [ ] homepage = "https://github.com/platformer/typst-algorithms" -[algo."0.3.4"] -url = "https://packages.typst.org/preview/algo-0.3.4.tar.gz" -hash = "sha256-FAUfCdgE7wORCS+V7IvsUfsIzvhJxqqed4SrIyLK0uY=" -typstDeps = [] -description = "Beautifully typeset algorithms" -license = [ - "MIT", -] -homepage = "https://github.com/platformer/typst-algorithms" - [algo."0.3.3"] url = "https://packages.typst.org/preview/algo-0.3.3.tar.gz" hash = "sha256-3VUCgUg/a9iMQn+Qf8lUYgAQzeTr1kUka419hoGk4sQ=" @@ -1620,6 +1648,18 @@ license = [ ] homepage = "https://github.com/pearcebasmanm/arborly" +[arch-plotter."0.1.0"] +url = "https://packages.typst.org/preview/arch-plotter-0.1.0.tar.gz" +hash = "sha256-JjitUWARsttvyDTrgtyNB0EDND4R9U7O9GA0WWUMlk8=" +typstDeps = [ + "cetz_0_4_2", +] +description = "A parametric 2D CAD and land surveying engine for architectural drafting, built on CeTZ" +license = [ + "MIT", +] +homepage = "https://github.com/amitsinghg1/arch-plotter" + [arkheion."0.1.1"] url = "https://packages.typst.org/preview/arkheion-0.1.1.tar.gz" hash = "sha256-lPz7n7UtbC18rG6UJfXrt925IFrZg+KbcMcVEsxIGng=" @@ -1966,6 +2006,18 @@ license = [ ] homepage = "https://github.com/rice8y/auto-jrubby" +[auto-mando."0.2.1"] +url = "https://packages.typst.org/preview/auto-mando-0.2.1.tar.gz" +hash = "sha256-uh/fEKsB4KTpW3IypzRWUp6B2AHZ7fMmLFSFegvUGt4=" +typstDeps = [ + "rubby_0_10_2", +] +description = "Automatic conversion to Mandarin romanizations from Chinese characters" +license = [ + "MIT", +] +homepage = "https://github.com/VincentTam/auto-mando" + [auto-pinyin."0.1.0"] url = "https://packages.typst.org/preview/auto-pinyin-0.1.0.tar.gz" hash = "sha256-MlHWOyKkyMfz0PyBA2gI8VoJe9VlHOb6MOE2bBexyNU=" @@ -2144,6 +2196,16 @@ license = [ ] homepage = "https://github.com/isaacew/aiaa-typst" +[bamdone-ieeeconf."0.1.3"] +url = "https://packages.typst.org/preview/bamdone-ieeeconf-0.1.3.tar.gz" +hash = "sha256-RVRTfYWfqCrazmYTFkxGJyZX4FalIJkAUvXOWY6Xbzg=" +typstDeps = [] +description = "An IEEE-style paper template to publish at conferences and journals for Electrical Engineering, Computer Science, and Computer Engineering" +license = [ + "MIT-0", +] +homepage = "https://github.com/typst/templates" + [bamdone-ieeeconf."0.1.2"] url = "https://packages.typst.org/preview/bamdone-ieeeconf-0.1.2.tar.gz" hash = "sha256-BZ0gE3WRPRm10WtWQJGj1/I/sajC7NBF/kbZ/1WZ4X0=" @@ -2417,6 +2479,16 @@ license = [ ] homepage = "https://github.com/EpicEricEE/typst-based" +[basic-academic-letter."0.2.0"] +url = "https://packages.typst.org/preview/basic-academic-letter-0.2.0.tar.gz" +hash = "sha256-WxChp5dF4sal0MsHS2tVSigMA5mayTq66hzVsDUq6F0=" +typstDeps = [] +description = "A clean template for academic letter" +license = [ + "MIT", +] +homepage = "https://github.com/whliao5am/basic-letter-typst-template" + [basic-academic-letter."0.1.0"] url = "https://packages.typst.org/preview/basic-academic-letter-0.1.0.tar.gz" hash = "sha256-y3EcT1RwsfCHaNGCTgALFToQwphr9rtnnAvEJvfOfv0=" @@ -2627,6 +2699,16 @@ license = [ ] homepage = "https://github.com/stuxf/basic-typst-resume-template" +[basic-resume."0.2.0"] +url = "https://packages.typst.org/preview/basic-resume-0.2.0.tar.gz" +hash = "sha256-Wc8SSm0D4qf4s/UxSNYczdG8pyrVAmRyviYUXlakeug=" +typstDeps = [] +description = "A simple, standard resume, designed to work well with ATS" +license = [ + "Unlicense", +] +homepage = "https://github.com/stuxf/basic-typst-resume-template" + [basic-resume."0.1.4"] url = "https://packages.typst.org/preview/basic-resume-0.1.4.tar.gz" hash = "sha256-AgKKQ9hmyQGbTC6HyE8y5A0O4QFezibOLRgpXxQHbfY=" @@ -2777,6 +2859,20 @@ license = [ ] homepage = "https://github.com/lucas-bublitz/bellbird-udesc-paper" +[benplate."0.1.0"] +url = "https://packages.typst.org/preview/benplate-0.1.0.tar.gz" +hash = "sha256-pyztfq9ZBQ93wpHX0r+qyFqTZIxts/w98uqBC51SQQY=" +typstDeps = [ + "drafting_0_2_2", + "hydra_0_6_2", + "outrageous_0_4_1", +] +description = "A flexible template for final theses, term papers and similar documents" +license = [ + "MIT", +] +homepage = "https://github.com/Nasenbaer39/benplate" + [biceps."0.0.1"] url = "https://packages.typst.org/preview/biceps-0.0.1.tar.gz" hash = "sha256-w72oSOKuw72q7hK5mF78nwRsWVnI/mAXQvFWtdp89KM=" @@ -2910,6 +3006,17 @@ license = [ ] homepage = "https://github.com/daskol/typst-templates" +[blindex."0.4.0"] +url = "https://packages.typst.org/preview/blindex-0.4.0.tar.gz" +hash = "sha256-884oWTTbvmEm2asiBDjrJ1bAo98pzRoeZ0jtv6cHfew=" +typstDeps = [ + "tidy_0_4_3", +] +description = "Index-making of Biblical literature citations in Typst" +license = [ + "MIT", +] + [blindex."0.3.0"] url = "https://packages.typst.org/preview/blindex-0.3.0.tar.gz" hash = "sha256-DfexI5bLYVUR+ICViqYMU9UEae/hyKu8L9BCt1CurlI=" @@ -3000,6 +3107,16 @@ license = [ ] homepage = "https://github.com/daskol/typst-templates" +[blockst."0.1.0"] +url = "https://packages.typst.org/preview/blockst-0.1.0.tar.gz" +hash = "sha256-32T2QAleiOZZ1tFREdvsv3wos8oP01GpM8P0KJuXFV0=" +typstDeps = [] +description = "Render Scratch-style blocks for educational documents" +license = [ + "MIT", +] +homepage = "https://github.com/Loewe1000/blockst" + [board-n-pieces."0.9.0"] url = "https://packages.typst.org/preview/board-n-pieces-0.9.0.tar.gz" hash = "sha256-al0YD3QVzCTSLoDpNPKeRNhNIMzkKigDtenEuMKZVwQ=" @@ -3197,6 +3314,24 @@ license = [ "Apache-2.0", ] +[bookly."2.0.0"] +url = "https://packages.typst.org/preview/bookly-2.0.0.tar.gz" +hash = "sha256-mGyCIuTYZLXm1xdnPu2pYM/Gbn6T0FQLoTF5oghV6ho=" +typstDeps = [ + "drafting_0_2_2", + "equate_0_3_2", + "hydra_0_6_2", + "itemize_0_2_0", + "showybox_2_0_4", + "suboutline_0_3_0", + "subpar_0_2_2", +] +description = "Book template for Typst" +license = [ + "MIT", +] +homepage = "https://github.com/maucejo/bookly" + [bookly."1.2.0"] url = "https://packages.typst.org/preview/bookly-1.2.0.tar.gz" hash = "sha256-c4xJDd3UcHhllkQLxGB4Lo0sgE5InfdVS35+ralGZOU=" @@ -3429,6 +3564,42 @@ license = [ ] homepage = "https://github.com/tndrle/briefs" +[brilliant-cv."3.3.0"] +url = "https://packages.typst.org/preview/brilliant-cv-3.3.0.tar.gz" +hash = "sha256-L1Y8wjiZah/KMUsVVKikf2rMtw3Q4OsacL4tepdwuMo=" +typstDeps = [ + "fontawesome_0_6_0", +] +description = "💼 another CV template for your job application, yet powered by Typst and more" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/yunanwg/brilliant-CV" + +[brilliant-cv."3.2.0"] +url = "https://packages.typst.org/preview/brilliant-cv-3.2.0.tar.gz" +hash = "sha256-azTOppOC06iQNu97EaSKX5YyEHxhHijreyJEFaRrGmk=" +typstDeps = [ + "fontawesome_0_6_0", +] +description = "💼 another CV template for your job application, yet powered by Typst and more" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/yunanwg/brilliant-CV" + +[brilliant-cv."3.1.2"] +url = "https://packages.typst.org/preview/brilliant-cv-3.1.2.tar.gz" +hash = "sha256-/EHDJJv0VnBISKE5WGklGh/UbpN4aodDVT6zG7pT6ec=" +typstDeps = [ + "fontawesome_0_6_0", +] +description = "💼 another CV template for your job application, yet powered by Typst and more" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/yunanwg/brilliant-CV" + [brilliant-cv."3.1.1"] url = "https://packages.typst.org/preview/brilliant-cv-3.1.1.tar.gz" hash = "sha256-g+TrJAUxdMV6zola36MNWBweZRqzPlvc+BlwZ8bsEmg=" @@ -3845,6 +4016,20 @@ license = [ ] homepage = "https://github.com/rice8y/caletz" +[callisto."0.2.5"] +url = "https://packages.typst.org/preview/callisto-0.2.5.tar.gz" +hash = "sha256-xM9AJa+Lk7lUlrHC/VSJCBMSK+LlMKJc+bAPAsAf+tU=" +typstDeps = [ + "based_0_2_0", + "cmarker_0_1_6", + "mitex_0_2_6", +] +description = "Import Jupyter notebooks" +license = [ + "MIT", +] +homepage = "https://github.com/knuesel/callisto" + [callisto."0.2.4"] url = "https://packages.typst.org/preview/callisto-0.2.4.tar.gz" hash = "sha256-tXrlQemxWFQlIdr6Hv4wn74gZz+kkohFhafosxGfi0c=" @@ -4600,6 +4785,16 @@ license = [ ] homepage = "https://github.com/csimide/SEU-Typst-Template" +[chef-cookbook."0.2.0"] +url = "https://packages.typst.org/preview/chef-cookbook-0.2.0.tar.gz" +hash = "sha256-J1Ml51ay/V1GYAperDxeSP/5cqXYIkYXAo7fm9o8WIY=" +typstDeps = [] +description = "Create simple recipe collections and cookbooks" +license = [ + "MIT", +] +homepage = "https://github.com/Paulmue0/cookbook" + [chef-cookbook."0.1.0"] url = "https://packages.typst.org/preview/chef-cookbook-0.1.0.tar.gz" hash = "sha256-nhxWDJZWq3FmrKXaR2KJhHhtZzK7Zy8+pXz5d5n15wQ=" @@ -4903,6 +5098,18 @@ license = [ ] homepage = "https://github.com/ljgago/typst-chords" +[chordx."0.1.0"] +url = "https://packages.typst.org/preview/chordx-0.1.0.tar.gz" +hash = "sha256-no3xDZiroQghV591FPQnRrCFYa5h9EG803xmVdqB/nQ=" +typstDeps = [ + "cetz_0_0_1", +] +description = "A library to write song lyrics with chord diagrams in Typst" +license = [ + "MIT", +] +homepage = "https://github.com/ljgago/typst-chords" + [chribel."1.2.0"] url = "https://packages.typst.org/preview/chribel-1.2.0.tar.gz" hash = "sha256-9emfIIdaNtqo3qRjI1xarnOnAjPUXSZ+s76dQ7zEcXg=" @@ -5157,6 +5364,16 @@ license = [ ] homepage = "https://github.com/alexanderkoller/typst-citegeist" +[citesugar."0.1.0"] +url = "https://packages.typst.org/preview/citesugar-0.1.0.tar.gz" +hash = "sha256-a3uTsFw1Gd6S8u4wpgHhmnXErEjooJvrUeuAMOIThqU=" +typstDeps = [] +description = "More ways to cite, and with shorter syntax" +license = [ + "MIT", +] +homepage = "https://github.com/retroflexivity/typst-citesugar" + [citrus."0.2.0"] url = "https://packages.typst.org/preview/citrus-0.2.0.tar.gz" hash = "sha256-jzBMbowfUkrjBySGw9MmZpUGASq6tqvvB5q8aXd0kQQ=" @@ -5203,6 +5420,18 @@ license = [ ] homepage = "https://github.com/ryuryu-ymj/cjk-spacer" +[cjk-unbreak."0.2.3"] +url = "https://packages.typst.org/preview/cjk-unbreak-0.2.3.tar.gz" +hash = "sha256-0CDURUlI8cZhPFreLqYJ54Aobn2gpCiGGvzZKhd1uPE=" +typstDeps = [ + "touying_0_6_1", +] +description = "Remove spaces caused by line breaks around CJK" +license = [ + "MIT", +] +homepage = "https://github.com/KZNS/cjk-unbreak" + [cjk-unbreak."0.2.2"] url = "https://packages.typst.org/preview/cjk-unbreak-0.2.2.tar.gz" hash = "sha256-jL1o/hO1VWhbAsj6u3PcHmXooshYWRCy7w33HMqHjn4=" @@ -5263,6 +5492,16 @@ license = [ ] homepage = "https://github.com/KZNS/cjk-unbreak" +[cjk-unshrink."0.1.0"] +url = "https://packages.typst.org/preview/cjk-unshrink-0.1.0.tar.gz" +hash = "sha256-zpP+bYsnnA6CrL/R5Jn4px/fk+lDLr6Gh0chh1O0zlg=" +typstDeps = [] +description = "Unshrink full-width punctuation marks" +license = [ + "MIT", +] +homepage = "https://github.com/neruthes/typstpkg-cjk-unshrink" + [classic-aau-report."0.3.1"] url = "https://packages.typst.org/preview/classic-aau-report-0.3.1.tar.gz" hash = "sha256-kDy0Z0f2ifKOdKa/PaPP608qXzmw1E6NTL40dIUY0iQ=" @@ -6252,6 +6491,19 @@ license = [ ] homepage = "https://github.com/AbdullahHendy/clickworthy-resume" +[cloudy."0.2.0"] +url = "https://packages.typst.org/preview/cloudy-0.2.0.tar.gz" +hash = "sha256-t0YTvS8cY04mSs4Nmy+aHNj9RAKOvwixUi7t6GiSck0=" +typstDeps = [ + "suiji_0_4_0", + "testyfy_0_2_0", +] +description = "Create clouds of words" +license = [ + "GPL-3.0-or-later", +] +homepage = "https://gitlab.com/hartang/typst/cloudy" + [cloudy."0.1.1"] url = "https://packages.typst.org/preview/cloudy-0.1.1.tar.gz" hash = "sha256-5Y78gTdnKnxjTD1uy0FnLUXjnv3p6BcL8+9H+Zhv2XI=" @@ -6356,6 +6608,32 @@ license = [ ] homepage = "https://github.com/SabrinaJewson/cmarker.typ" +[cntopo."0.1.0"] +url = "https://packages.typst.org/preview/cntopo-0.1.0.tar.gz" +hash = "sha256-uWcGgdqYvpcysB36b8cICC804cTDD6ZeODdwOYy9giY=" +typstDeps = [ + "cetz_0_3_4", + "fletcher_0_5_8", + "tidy_0_4_3", +] +description = "Computer network topology icons for cetz or fletcher" +license = [ + "MIT", +] +homepage = "https://github.com/omega-800/cntopo-typ.git" + +[cob-unofficial."0.1.2"] +url = "https://packages.typst.org/preview/cob-unofficial-0.1.2.tar.gz" +hash = "sha256-P2VZnAH1K7FhKlkFDyhvuT0M3zGbfSfcj1Fci3vBoA4=" +typstDeps = [ + "hallon_0_1_3", +] +description = "Unofficial CoB (The Company of Biologists) template for Typst" +license = [ + "0BSD", +] +homepage = "https://github.com/mewmew/cob-unofficial" + [cob-unofficial."0.1.1"] url = "https://packages.typst.org/preview/cob-unofficial-0.1.1.tar.gz" hash = "sha256-nsh2cpLyoXF9cHbTmSi9kPp2eQTG6i8HAOtEduXqToA=" @@ -6533,6 +6811,18 @@ license = [ "MIT", ] +[codez."0.1.0"] +url = "https://packages.typst.org/preview/codez-0.1.0.tar.gz" +hash = "sha256-1raRpnCNNg9Pre5AV/NRINsySG8JfcmNvgSzcdCZslc=" +typstDeps = [ + "cetz_0_3_4", +] +description = "Annotate code blocks with marks and geometric overlays" +license = [ + "MIT", +] +homepage = "https://github.com/Bynaryman/codez" + [codly."1.3.0"] url = "https://packages.typst.org/preview/codly-1.3.0.tar.gz" hash = "sha256-rbwurMz3kfF4+MJmpyjLHeW88RPclvqnGRfiTJVm5us=" @@ -6903,6 +7193,15 @@ license = [ ] homepage = "https://github.com/micheledusi/Combo" +[community-gzqy-thesis."0.1.0"] +url = "https://packages.typst.org/preview/community-gzqy-thesis-0.1.0.tar.gz" +hash = "sha256-RvlRNRd8pwtP1R5TcZ2Y8Dh0xy1j12h9QABNLmUxynE=" +typstDeps = [] +description = "社区维护的贵州轻工职业技术学院毕业设计(论文)模板 | Community-maintained graduation project (thesis) template for Guizhou Light Industry Technical College" +license = [ + "MIT", +] + [community-ostfalia-thesis."0.1.0"] url = "https://packages.typst.org/preview/community-ostfalia-thesis-0.1.0.tar.gz" hash = "sha256-em8AmALMOvMv3x/XdyTTWOjWAGpwOjlfTbE9ZuQTi1c=" @@ -7246,6 +7545,18 @@ license = [ ] homepage = "https://github.com/sahasatvik/typst-theorems" +[ctheorems."0.1.0"] +url = "https://packages.typst.org/preview/ctheorems-0.1.0.tar.gz" +hash = "sha256-H8s5x8SHKT83w0W7fVDiajg4CY7h4AiVgZdqm6FwEFQ=" +typstDeps = [ + "ctheorems_1_0_0", +] +description = "Theorem library based on (and compatible) with the classic typst-theorem module" +license = [ + "MIT", +] +homepage = "https://github.com/DVDTSB/ctheorems" + [ctxjs."0.3.2"] url = "https://packages.typst.org/preview/ctxjs-0.3.2.tar.gz" hash = "sha256-vkyxCsaEGn8Myhfzk4YGqZxQ9JbBbXxb1S2WaElIW/E=" @@ -7761,19 +8072,6 @@ license = [ ] homepage = "https://github.com/ErrorTeaPot/Cyberschool_template" -[cyberschool-errorteaplate."0.1.4"] -url = "https://packages.typst.org/preview/cyberschool-errorteaplate-0.1.4.tar.gz" -hash = "sha256-BHJNjdvj53BHDhvqjkSRk0bLBUzlbYazd+ZXzgj0FSo=" -typstDeps = [ - "codly_1_3_0", - "codly-languages_0_1_8", -] -description = "This is a template originaly made for the Cyberschool of Rennes, a Cybersecurity school" -license = [ - "MIT", -] -homepage = "https://github.com/ErrorTeaPot/Cyberschool_template" - [cyberschool-errorteaplate."0.1.3"] url = "https://packages.typst.org/preview/cyberschool-errorteaplate-0.1.3.tar.gz" hash = "sha256-k/zpxcsIv47M6YPy5eNl2YVh/RicIVJH595xbzSicqY=" @@ -7797,6 +8095,18 @@ license = [ ] homepage = "https://github.com/Achraf-saadali/ENSAJ-REPORT" +[czbloch."0.1.0"] +url = "https://packages.typst.org/preview/czbloch-0.1.0.tar.gz" +hash = "sha256-QmGeOWC43+BSnTQ1af5beWNNAOE9YJ4JD/X580dmq9I=" +typstDeps = [ + "cetz_0_4_2", +] +description = "Draw Bloch spheres with ease" +license = [ + "MIT", +] +homepage = "https://github.com/Peng-Rao/czbloch" + [dashing-dept-news."0.1.1"] url = "https://packages.typst.org/preview/dashing-dept-news-0.1.1.tar.gz" hash = "sha256-lV1llDhUz5VkUppRdrVqWHKxjcaX4BP0dtGKCDQ5hfQ=" @@ -7887,6 +8197,23 @@ license = [ ] homepage = "https://github.com/Otto-AA/dashy-todo" +[dati-basati."0.1.0"] +url = "https://packages.typst.org/preview/dati-basati-0.1.0.tar.gz" +hash = "sha256-Zkhz3Q9/t234Sknc6czzI26euRPv0a4NWSTmnkJZBxQ=" +typstDeps = [ + "catppuccin_1_0_1", + "catppuccin_1_1_0", + "cetz_0_4_2", + "gentle-clues_1_3_1", + "tidy_0_4_3", + "zebraw_0_6_1", +] +description = "Draw Entity-Relations diagrams" +license = [ + "GPL-3.0-or-later", +] +homepage = "https://www.github.com/victuarvi/dati-basati" + [datify."1.0.1"] url = "https://packages.typst.org/preview/datify-1.0.1.tar.gz" hash = "sha256-zu/vnvYJe0SgtdjLiY6kTWl12bkyu2oqBRoxHDCLLIM=" @@ -8714,6 +9041,16 @@ license = [ ] homepage = "https://github.com/JamesxX/dining-table" +[discount."0.1.0"] +url = "https://packages.typst.org/preview/discount-0.1.0.tar.gz" +hash = "sha256-ndq9d6V5fyaugVkfEwD8VI/v5VfDQ8rZhTs9q3HaxiA=" +typstDeps = [] +description = "Create hasssle-free subcounters of heading" +license = [ + "LGPL-3.0-only", +] +homepage = "https://codeberg.org/fgolke/typst-discount" + [diverential."0.3.0"] url = "https://packages.typst.org/preview/diverential-0.3.0.tar.gz" hash = "sha256-Z/AT1EQLvok2R1oevMeIbM6iUPXNqe28aPYxIOJVjvc=" @@ -8931,6 +9268,16 @@ license = [ ] homepage = "https://github.com/DVDTSB/dvdtyp" +[easy-paper."0.2.1"] +url = "https://packages.typst.org/preview/easy-paper-0.2.1.tar.gz" +hash = "sha256-NOcoWFFT5Qk6hEY5ttw5RCh7v9lXz7va4xxVLlIgmDA=" +typstDeps = [] +description = "A ready-to-use Typst template for Chinese papers" +license = [ + "MIT", +] +homepage = "https://github.com/Dawnfz-Lenfeng/easy-paper" + [easy-paper."0.2.0"] url = "https://packages.typst.org/preview/easy-paper-0.2.0.tar.gz" hash = "sha256-uAeLL2iiRZxrxVeG3nody+pqmC72Fh5uztUeFctji+M=" @@ -8964,6 +9311,19 @@ license = [ ] homepage = "https://github.com/swaits/typst-collection" +[easy-wi-hwr."0.1.0"] +url = "https://packages.typst.org/preview/easy-wi-hwr-0.1.0.tar.gz" +hash = "sha256-FFtF1KQEU67+h2+PILzZOQ/cZ5djeTAMZzDoUBzs3Vw=" +typstDeps = [ + "glossarium_0_5_10", + "linguify_0_5_0", +] +description = "Paper template for HWR Berlin (Wirtschaftsinformatik" +license = [ + "MIT", +] +homepage = "https://github.com/lultoni/hwr-typst-template" + [easytable."0.1.0"] url = "https://packages.typst.org/preview/easytable-0.1.0.tar.gz" hash = "sha256-W3FRYrjZ0u0Rdr8hYrwksuGwPjzF4ukX/EodJz0mSNE=" @@ -9060,6 +9420,16 @@ license = [ ] homepage = "https://github.com/syqwq-OMG/ecnu-math-hwk" +[econ-working-paper."0.3.1"] +url = "https://packages.typst.org/preview/econ-working-paper-0.3.1.tar.gz" +hash = "sha256-JcnAjmH5taUtzrK6gfzuKlmkUcOhxAEVvqjpDBTjhQs=" +typstDeps = [] +description = "Working-paper template for SSRN and social science manuscripts" +license = [ + "MIT", +] +homepage = "https://github.com/statzhero/econ-working-paper" + [edgeframe."0.3.0"] url = "https://packages.typst.org/preview/edgeframe-0.3.0.tar.gz" hash = "sha256-QjjnDg4mllJ8YDbp994MqAdjkwT4cg4tujexaTX+iKI=" @@ -9192,6 +9562,18 @@ license = [ "MIT", ] +[eggs."0.6.0"] +url = "https://packages.typst.org/preview/eggs-0.6.0.tar.gz" +hash = "sha256-R3+PHTaGSVm4kNWrtMW1lkheTKlvHkMA9sxBuHaqhDw=" +typstDeps = [ + "tidy_0_4_3", +] +description = "Linguistic examples with minimalist syntax" +license = [ + "MIT", +] +homepage = "https://github.com/retroflexivity/typst-eggs" + [eggs."0.5.1"] url = "https://packages.typst.org/preview/eggs-0.5.1.tar.gz" hash = "sha256-arkir6WmkDtRVrCjITwjZZV8H9lom4xdBok6pG8ynkU=" @@ -9421,6 +9803,32 @@ license = [ ] homepage = "https://github.com/PgBiel/elembic" +[elsearticle."2.0.3"] +url = "https://packages.typst.org/preview/elsearticle-2.0.3.tar.gz" +hash = "sha256-67KLevLgwjjRMaZWSyBQktuSYRY9d0LVsCfdTKAf/tA=" +typstDeps = [ + "equate_0_3_2", + "subpar_0_2_2", +] +description = "Conversion of the LaTeX elsearticle.cls" +license = [ + "MIT", +] +homepage = "https://github.com/maucejo/elsearticle" + +[elsearticle."2.0.2"] +url = "https://packages.typst.org/preview/elsearticle-2.0.2.tar.gz" +hash = "sha256-a+9Emm8OpG2ZGsUzIOLWNb0DyKkxKm1wxEPkindKBbk=" +typstDeps = [ + "equate_0_3_2", + "subpar_0_2_2", +] +description = "Conversion of the LaTeX elsearticle.cls" +license = [ + "MIT", +] +homepage = "https://github.com/maucejo/elsearticle" + [elsearticle."2.0.1"] url = "https://packages.typst.org/preview/elsearticle-2.0.1.tar.gz" hash = "sha256-AFoRZgJy9SQdoOV6jqm48M2kb5TIE/o7A0b7KI+Kd2A=" @@ -9895,6 +10303,68 @@ license = [ ] homepage = "git@github.com:Thumuss/brainfuck.git" +[ethz-iis-assignment."1.0.0"] +url = "https://packages.typst.org/preview/ethz-iis-assignment-1.0.0.tar.gz" +hash = "sha256-1igZuf92d5mG/JNbHrrvR7YhVYi8HQ0dNfHabfLC4ZI=" +typstDeps = [ + "cetz_0_4_2", + "ethz-iis-thesis_1_0_0", + "gentle-clues_1_3_1", + "timeliney_0_4_0", +] +description = "ETH Zurich IIS thesis assignment sheet template" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/pulp-platform/iis-typst" + +[ethz-iis-dissertation."1.0.0"] +url = "https://packages.typst.org/preview/ethz-iis-dissertation-1.0.0.tar.gz" +hash = "sha256-6Tbdh2ExFFc3J+FpfDOqThhQnNwmy4bQa3l6aF21lPU=" +typstDeps = [ + "acrostiche_0_7_0", + "cetz_0_4_2", + "ethz-iis-thesis_1_0_0", + "gentle-clues_1_3_1", +] +description = "ETH Zurich IIS PhD dissertation template" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/pulp-platform/iis-typst" + +[ethz-iis-research-plan."1.0.0"] +url = "https://packages.typst.org/preview/ethz-iis-research-plan-1.0.0.tar.gz" +hash = "sha256-yXSad6eNFHoXEbxa0531bmA0M5Xq+fIj84Io5+c1QDQ=" +typstDeps = [ + "acrostiche_0_7_0", + "cetz_0_4_2", + "cetz-plot_0_1_3", + "ethz-iis-thesis_1_0_0", + "gentle-clues_1_3_1", + "timeliney_0_4_0", +] +description = "ETH Zurich IIS PhD research plan template" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/pulp-platform/iis-typst" + +[ethz-iis-thesis."1.0.0"] +url = "https://packages.typst.org/preview/ethz-iis-thesis-1.0.0.tar.gz" +hash = "sha256-qbEtjNkWHNH8kCufq5L3nPSXJGYm8UtBcTkGxLzHHgc=" +typstDeps = [ + "acrostiche_0_7_0", + "cetz_0_4_2", + "finite_0_5_1", + "gentle-clues_1_3_1", +] +description = "ETH Zurich IIS thesis/semester project report template" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/pulp-platform/iis-typst" + [etykett."0.1.1"] url = "https://packages.typst.org/preview/etykett-0.1.1.tar.gz" hash = "sha256-tqTIN+FiC5JgIhoNq8ZkWouWn9/UVJewk0WUcYCgPQk=" @@ -9919,16 +10389,6 @@ license = [ ] homepage = "https://github.com/SillyFreak/typst-etykett" -[examify."0.1.1"] -url = "https://packages.typst.org/preview/examify-0.1.1.tar.gz" -hash = "sha256-1dgSCLdqpxvX9/eVDAG83hkwlMpJfyrWEk2SqNFHjYQ=" -typstDeps = [] -description = "A simple typst template to create question papers for exams" -license = [ - "MIT", -] -homepage = "https://github.com/tarunjana/examify" - [examify."0.1.0"] url = "https://packages.typst.org/preview/examify-0.1.0.tar.gz" hash = "sha256-RpvIZMnN1Nq0dnyHwf79aAs/4BNZsJFYkgTjRWVJOok=" @@ -10187,6 +10647,16 @@ license = [ ] homepage = "https://github.com/gbchu/ezchem.git" +[ezexam."0.3.0"] +url = "https://packages.typst.org/preview/ezexam-0.3.0.tar.gz" +hash = "sha256-2AMPyJGWf8JUG7PsZ5/xFPUJpMg3LDwuMMIQp+FFeps=" +typstDeps = [] +description = "An exam template inspired by the LaTeX package exam-zh" +license = [ + "AGPL-3.0-or-later", +] +homepage = "https://github.com/gbchu/ezexam.git" + [ezexam."0.2.9"] url = "https://packages.typst.org/preview/ezexam-0.2.9.tar.gz" hash = "sha256-xFbNwqGrhB1L/xKZwkNFhNN8eOmgB3IaomT8bUqN+fc=" @@ -10407,6 +10877,17 @@ license = [ ] homepage = "https://github.com/han190/fancy-affil" +[fancy-cookbook."1.0.0"] +url = "https://packages.typst.org/preview/fancy-cookbook-1.0.0.tar.gz" +hash = "sha256-x4+P/zivHaVgvol7BQGjIxK0hfjTPFIcMv7OV6ZGla4=" +typstDeps = [ + "ez-today_2_1_0", +] +description = "Create simple recipe collections and cookbooks in color and your language" +license = [ + "MIT", +] + [fancy-tiling."1.0.0"] url = "https://packages.typst.org/preview/fancy-tiling-1.0.0.tar.gz" hash = "sha256-XGz4FP1E8OXq+RI8BaW+9gGAjWpF0Ddpx4AUA9YS29g=" @@ -11157,6 +11638,23 @@ license = [ ] homepage = "https://github.com/Jollywatt/typst-fletcher" +[flow."0.4.0"] +url = "https://packages.typst.org/preview/flow-0.4.0.tar.gz" +hash = "sha256-jVTngjp0l7q9mFzCs8IkegDPa8Z607XnFLcBOv1z9jU=" +typstDeps = [ + "cetz-plot_0_1_3", + "oxifmt_1_0_0", + "roumnd_0_1_0", + "touying_0_6_3", + "whalogen_0_3_0", +] +description = "Consistent set of templates and utils to grow with" +license = [ + "EUPL-1.2", + "MIT-0", +] +homepage = "https://codeberg.org/MultisampledNight/flow" + [flow."0.3.2"] url = "https://packages.typst.org/preview/flow-0.3.2.tar.gz" hash = "sha256-MXoV4FUiXltFY6DXxxLHCwoTs9u8DExruOJzXT20nyE=" @@ -12118,6 +12616,19 @@ license = [ ] homepage = "https://gitlab.com/john_t/typst-gantty" +[gb7714-bilingual."0.2.3"] +url = "https://packages.typst.org/preview/gb7714-bilingual-0.2.3.tar.gz" +hash = "sha256-+HPOcAEXIb+kB7f3cBGy0nSdz7gN5y4W9mxawZRKkkU=" +typstDeps = [ + "auto-pinyin_0_1_0", + "citegeist_0_2_2", +] +description = "GB/T 7714-2015/2025 bilingual bibliography for Typst with automatic Chinese/English term switching" +license = [ + "MIT", +] +homepage = "https://github.com/pku-typst/gb7714-bilingual" + [gb7714-bilingual."0.2.2"] url = "https://packages.typst.org/preview/gb7714-bilingual-0.2.2.tar.gz" hash = "sha256-4i534I/xgZrEwcj+9Npu0ViHHtnu2Lsm12FlUikJl8g=" @@ -12207,6 +12718,18 @@ license = [ ] homepage = "https://codeberg.org/drloiseau/genealogy" +[genotypst."0.7.0"] +url = "https://packages.typst.org/preview/genotypst-0.7.0.tar.gz" +hash = "sha256-JqcxZc4ylxpZeRmL5UkuIInmnIQlH7MCV5j1LetQWKg=" +typstDeps = [ + "tiptoe_0_4_0", +] +description = "genotypst: A package for bioinformatics data analysis and visualization" +license = [ + "MIT", +] +homepage = "https://github.com/apcamargo/genotypst" + [genotypst."0.6.0"] url = "https://packages.typst.org/preview/genotypst-0.6.0.tar.gz" hash = "sha256-1DDDz6ChsHYX7XQw0U7g55aYo1w4AO2VaYKPT5NFRoE=" @@ -12945,6 +13468,16 @@ license = [ ] homepage = "https://github.com/swaits/typst-collection" +[golixp-resume-zh-cn."0.1.1"] +url = "https://packages.typst.org/preview/golixp-resume-zh-cn-0.1.1.tar.gz" +hash = "sha256-IX4TmqdBHfURbR+3l9o1D7ScZ8NeV9LFpLmgESbErnc=" +typstDeps = [] +description = "面向简体中文的模块化 Typst 简历模板,支持自定义主题色、字体和排版配置" +license = [ + "MIT", +] +homepage = "https://github.com/golixp/typst-resume-zh-cn" + [golixp-resume-zh-cn."0.1.0"] url = "https://packages.typst.org/preview/golixp-resume-zh-cn-0.1.0.tar.gz" hash = "sha256-omoNeTozrgWe7s5TgwTvj3nAzigT4mff6zcLXucHl0k=" @@ -13118,6 +13651,16 @@ license = [ ] homepage = "https://github.com/euwbah/graph-gen" +[grayness."0.6.0"] +url = "https://packages.typst.org/preview/grayness-0.6.0.tar.gz" +hash = "sha256-Ie7xVAHvba8x8yIJE2zA3J4AH62aAN/gzAAk8usN8GY=" +typstDeps = [] +description = "Simple image editing capabilities like converting to grayscale and cropping via a WASM plugin" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/nineff/grayness" + [grayness."0.5.0"] url = "https://packages.typst.org/preview/grayness-0.5.0.tar.gz" hash = "sha256-svgS7Ze3G56KVa9M7Qcmsgg2CLM+w6Gy4OPFafAwiNE=" @@ -13385,6 +13928,17 @@ license = [ "MIT", ] +[grotesk-cv."0.1.2"] +url = "https://packages.typst.org/preview/grotesk-cv-0.1.2.tar.gz" +hash = "sha256-6s8z8PhAXBLmip3D/9Rlcu5/lkvLd97r/bPk9sbFi0E=" +typstDeps = [ + "fontawesome_0_2_1", +] +description = "Clean CV template based on the awesome-cv and Skywalker templates" +license = [ + "MIT", +] + [grotesk-cv."0.1.1"] url = "https://packages.typst.org/preview/grotesk-cv-0.1.1.tar.gz" hash = "sha256-hvMDjoUsepnu0s5fwcBdx4Lvfa9LZU28iDuzUTQO1eM=" @@ -13998,19 +14552,6 @@ license = [ ] homepage = "https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template" -[haw-hamburg-bachelor-thesis."0.5.0"] -url = "https://packages.typst.org/preview/haw-hamburg-bachelor-thesis-0.5.0.tar.gz" -hash = "sha256-y3RuWHrhvO7IH0cPRM9s3k0dK628Kho4uvYE7jBVJeA=" -typstDeps = [ - "glossarium_0_5_3", - "haw-hamburg_0_5_0", -] -description = "Unofficial template for writing a bachelor-thesis in the HAW Hamburg department of Computer Science design" -license = [ - "MIT", -] -homepage = "https://github.com/LasseRosenow/HAW-Hamburg-Typst-Template" - [haw-hamburg-bachelor-thesis."0.4.0"] url = "https://packages.typst.org/preview/haw-hamburg-bachelor-thesis-0.4.0.tar.gz" hash = "sha256-97iY2zDg42J8dm6PWqbGimZ/VJbB6B8JoCguJ60JSKs=" @@ -14411,6 +14952,32 @@ license = [ ] homepage = "https://github.com/jbirnick/typst-headcount" +[hei-synd-report."0.3.0"] +url = "https://packages.typst.org/preview/hei-synd-report-0.3.0.tar.gz" +hash = "sha256-FKHcrQvP5eUML3nc34CS+M6P/zOFzsRV6UMaz6AQ8Ug=" +typstDeps = [ + "fractusist_0_3_2", + "hei-synd-thesis_0_4_0", +] +description = "A report and project template tailored to the Systems Engineering (Synd) program at the HEI-Vs School of Engineering, Sion, Switzerland" +license = [ + "MIT", +] +homepage = "https://github.com/hei-templates/hei-synd-report" + +[hei-synd-report."0.2.0"] +url = "https://packages.typst.org/preview/hei-synd-report-0.2.0.tar.gz" +hash = "sha256-EbHKkVBfSTEi+Dkb56Dk4jxuA3RAO+gKiiu+hdUyqjU=" +typstDeps = [ + "fractusist_0_3_2", + "hei-synd-thesis_0_3_1", +] +description = "A report and project template tailored to the Systems Engineering (Synd) program at the HEI-Vs School of Engineering, Sion, Switzerland" +license = [ + "MIT", +] +homepage = "https://github.com/hei-templates/hei-synd-report" + [hei-synd-report."0.1.1"] url = "https://packages.typst.org/preview/hei-synd-report-0.1.1.tar.gz" hash = "sha256-PkAWjiwXtwmJe7xC7hOTCe0E+gFQahjH+9MWcrtLZCw=" @@ -14441,6 +15008,26 @@ license = [ ] homepage = "https://github.com/hei-templates/hei-synd-report" +[hei-synd-thesis."0.4.0"] +url = "https://packages.typst.org/preview/hei-synd-thesis-0.4.0.tar.gz" +hash = "sha256-L6Airz/1BTboyxoVgEJjvr9KRNhZpz+0FjynW8v9j88=" +typstDeps = [ + "cheq_0_3_0", + "codelst_2_0_2", + "codly_1_3_0", + "codly-languages_0_1_10", + "fractusist_0_3_2", + "glossarium_0_5_10", + "icu-datetime_0_2_1", + "mmdr_0_2_1", + "wordometer_0_1_5", +] +description = "A thesis template tailored to the Systems Engineering (Synd) program at the HEI-Vs School of Engineering, Sion, Switzerland" +license = [ + "MIT", +] +homepage = "https://github.com/hei-templates/hei-synd-thesis" + [hei-synd-thesis."0.2.3"] url = "https://packages.typst.org/preview/hei-synd-thesis-0.2.3.tar.gz" hash = "sha256-KoYYcw2W3RZreVymiDFMM71GvpUmtZle/lZWbG8q+t8=" @@ -14752,6 +15339,19 @@ license = [ ] homepage = "https://github.com/ShabbyGayBar/hitec" +[hsmz-thesis-unofficial."0.3.0"] +url = "https://packages.typst.org/preview/hsmz-thesis-unofficial-0.3.0.tar.gz" +hash = "sha256-UDRRyoaZUwvQ5p4U309e94AnQ3k4HD1whvx+xL91wWM=" +typstDeps = [ + "acrostiche_0_7_0", + "cheq_0_3_0", +] +description = "Unofficial template for theses at Hochschule Mainz (HSMZ" +license = [ + "MIT", +] +homepage = "https://github.com/PfurtschellerP/hsmz-thesis-template-typst" + [hsmz-thesis-unofficial."0.2.0"] url = "https://packages.typst.org/preview/hsmz-thesis-unofficial-0.2.0.tar.gz" hash = "sha256-/QGSkrK/5y0BxbcGOQ6G7uH9R0RAhHW5CbRtPC7ogTw=" @@ -15007,18 +15607,6 @@ license = [ ] homepage = "https://github.com/tingerrr/hydra" -[hydra."0.3.0"] -url = "https://packages.typst.org/preview/hydra-0.3.0.tar.gz" -hash = "sha256-znoyYAgFo/Gh6f0KVtVp8tsN2EQ+ANPFlXiLYQR2PXY=" -typstDeps = [ - "oxifmt_0_2_0", -] -description = "Query and display headings of the currently active section" -license = [ - "MIT", -] -homepage = "https://github.com/tingerrr/hydra" - [hydra."0.2.0"] url = "https://packages.typst.org/preview/hydra-0.2.0.tar.gz" hash = "sha256-lMSAwhFknlTsdnJF5tEGpBntQOVYfn0jTenncswx9I8=" @@ -15273,6 +15861,16 @@ license = [ ] homepage = "https://github.com/Bi0T1N/typst-iconic-salmon-svg" +[iconify."0.5.3"] +url = "https://packages.typst.org/preview/iconify-0.5.3.tar.gz" +hash = "sha256-MuhbM0YeBPsllYqFgF8iWU6VOk/xEvqEF8F6aikadoE=" +typstDeps = [] +description = "Use more than 200'000 vector icons from iconify" +license = [ + "MIT", +] +homepage = "https://github.com/ecstrema/iconify-typst" + [icu-datetime."0.2.1"] url = "https://packages.typst.org/preview/icu-datetime-0.2.1.tar.gz" hash = "sha256-tPYkNbw69hil04Rz+iePcr1IabbWKpx/TXXukspvfqw=" @@ -15366,6 +15964,16 @@ license = [ ] homepage = "https://github.com/Fricsion/typst-template_ieee-style-single-column" +[ieee-vgtc."0.0.4"] +url = "https://packages.typst.org/preview/ieee-vgtc-0.0.4.tar.gz" +hash = "sha256-4ItzVxJe6j9WZMzkMYbvfrfEGnC/oXG6zga1FxX4TTw=" +typstDeps = [] +description = "Templates for IEEE VGTC conferences and TVCG journal papers" +license = [ + "MIT-0", +] +homepage = "https://github.com/ieeevgtc/ieee-vgtc-typst" + [ieee-vgtc."0.0.3"] url = "https://packages.typst.org/preview/ieee-vgtc-0.0.3.tar.gz" hash = "sha256-FtL57Df99IrucJ8Fvh3BwAybTvMN0p/j2lqDO0s6/wc=" @@ -15863,6 +16471,16 @@ license = [ ] homepage = "https://github.com/RolfBremer/in-dexter" +[in-dexter."0.0.6"] +url = "https://packages.typst.org/preview/in-dexter-0.0.6.tar.gz" +hash = "sha256-C8ZctB6P7eQ9+fhp7aW+m+vcVLnk934zZR1kWtN0eco=" +typstDeps = [] +description = "Hand Picked Index for Typst" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/RolfBremer/in-dexter" + [in-dexter."0.0.5"] url = "https://packages.typst.org/preview/in-dexter-0.0.5.tar.gz" hash = "sha256-YhCLddQ2HrI9c/DgpmkT9ePezKzZYL6rMgJvZ9zUHg4=" @@ -15945,6 +16563,34 @@ license = [ ] homepage = "https://github.com/cecoeco/indic-numerals" +[inelegant-note."0.9.1"] +url = "https://packages.typst.org/preview/inelegant-note-0.9.1.tar.gz" +hash = "sha256-lnzhz3te1s8gJcay4RIru1DKWdQK7kOwZ8EumMq8dlk=" +typstDeps = [ + "cuti_0_4_0", + "theorion_0_5_0", + "zebraw_0_6_1", +] +description = "A Typst template which has the feature of Elegant Book and others" +license = [ + "MIT", +] +homepage = "https://github.com/typetypewriter/inelegant-note" + +[inelegant-note."0.9.0"] +url = "https://packages.typst.org/preview/inelegant-note-0.9.0.tar.gz" +hash = "sha256-4a2fhdJXReORUE4DaAiSro5ZWqM+Fe6+1OK6wh1VeoA=" +typstDeps = [ + "cuti_0_4_0", + "theorion_0_4_1", + "zebraw_0_6_1", +] +description = "A Typst template which has the feature of Elegant Book and others" +license = [ + "MIT", +] +homepage = "https://github.com/typetypewriter/inelegant-note" + [ineris-print."0.1.0"] url = "https://packages.typst.org/preview/ineris-print-0.1.0.tar.gz" hash = "sha256-hpWdNkHRY4jFN8hJvv0pdu/+qlnGHIb4B1UjLAgoVqo=" @@ -16150,6 +16796,22 @@ license = [ "MIT-0", ] +[isc-hei-bthesis."0.7.1"] +url = "https://packages.typst.org/preview/isc-hei-bthesis-0.7.1.tar.gz" +hash = "sha256-GRTXIhnEY77gQBFtrG+CNkqlGXyUhj2f5ekK8ZNZtoc=" +typstDeps = [ + "acrostiche_0_7_0", + "codelst_2_0_2", + "datify_1_0_1", + "gentle-clues_1_3_1", + "showybox_2_0_4", +] +description = "Official bachelor thesis at the 'Informatique et systèmes de communication' (ISC) bachelor degree programme, School of Engineering (HEI) in Sion, Switzerland" +license = [ + "MIT", +] +homepage = "https://github.com/ISC-HEI/isc-hei-student-templates" + [isc-hei-bthesis."0.7.0"] url = "https://packages.typst.org/preview/isc-hei-bthesis-0.7.0.tar.gz" hash = "sha256-ghTvqKxtEdmO6I4BZGNuOMn+VfNol2VPviuQLJrB7Rw=" @@ -16226,6 +16888,21 @@ license = [ ] homepage = "https://github.com/ISC-HEI/ISC-report" +[isc-hei-document."0.7.1"] +url = "https://packages.typst.org/preview/isc-hei-document-0.7.1.tar.gz" +hash = "sha256-+zO73upsWHojW6ZKVgPW/Tm0ZVadVjkW6vfflDmijZE=" +typstDeps = [ + "codelst_2_0_2", + "datify_1_0_1", + "gentle-clues_1_3_1", + "showybox_2_0_4", +] +description = "A simple document template for the 'Informatique et systèmes de communication' (ISC) bachelor degree programme, School of Engineering (HEI) in Sion, Switzerland" +license = [ + "MIT", +] +homepage = "https://github.com/ISC-HEI/isc-hei-student-templates" + [isc-hei-document."0.7.0"] url = "https://packages.typst.org/preview/isc-hei-document-0.7.0.tar.gz" hash = "sha256-oZNc6PqrcTrd+E8j4VtVgP146qZptKi81soYEl7Pm1w=" @@ -16241,6 +16918,23 @@ license = [ ] homepage = "https://github.com/ISC-HEI/isc-hei-student-templates" +[isc-hei-exec-summary."0.7.1"] +url = "https://packages.typst.org/preview/isc-hei-exec-summary-0.7.1.tar.gz" +hash = "sha256-lBumGXqYlXKW+KsmZ2bnFzYcUAm1EH8EyfB47s9WNcs=" +typstDeps = [ + "cetz_0_4_0", + "cetz-plot_0_1_2", + "codelst_2_0_2", + "datify_1_0_1", + "gentle-clues_1_3_1", + "showybox_2_0_4", +] +description = "Official executive summary for the bachelor thesis at the 'Informatique et systèmes de communication' (ISC) bachelor degree programme, School of Engineering (HEI) in Sion, Switzerland" +license = [ + "MIT", +] +homepage = "https://github.com/ISC-HEI/isc-hei-student-templates" + [isc-hei-exec-summary."0.7.0"] url = "https://packages.typst.org/preview/isc-hei-exec-summary-0.7.0.tar.gz" hash = "sha256-VgKA5oY51C+QDEYv7BsiNwMkWQpALSTPRLfSZw7One4=" @@ -16306,6 +17000,22 @@ license = [ ] homepage = "https://github.com/ISC-HEI/isc-hei-student-templates" +[isc-hei-report."0.7.1"] +url = "https://packages.typst.org/preview/isc-hei-report-0.7.1.tar.gz" +hash = "sha256-oqTz7AMMhOv4bG0SUR8MTLm4+UeTbMn0s3xV2Z6IgZM=" +typstDeps = [ + "acrostiche_0_7_0", + "codelst_2_0_2", + "datify_1_0_1", + "gentle-clues_1_3_1", + "showybox_2_0_4", +] +description = "Official report at the 'Informatique et systèmes de communication' (ISC) bachelor degree programme, School of Engineering (HEI) in Sion, Switzerland" +license = [ + "MIT", +] +homepage = "https://github.com/ISC-HEI/isc-hei-student-templates" + [isc-hei-report."0.7.0"] url = "https://packages.typst.org/preview/isc-hei-report-0.7.0.tar.gz" hash = "sha256-HeW49Lau1mKC2iMPsH7I3qhAwliJkbtS316u6ZIKjoA=" @@ -16440,6 +17150,21 @@ license = [ ] homepage = "https://github.com/ISC-HEI/ISC-report" +[isc-hei-tb-assignment."0.7.1"] +url = "https://packages.typst.org/preview/isc-hei-tb-assignment-0.7.1.tar.gz" +hash = "sha256-Xar605mJxmgIDDFiKXYA7elSW/OEpHmisiUcgwOGG2A=" +typstDeps = [ + "codelst_2_0_2", + "datify_1_0_1", + "gentle-clues_1_3_1", + "showybox_2_0_4", +] +description = "Official bachelor thesis assignment description ('Données du travail de bachelor') for the 'Informatique et systèmes de communication' (ISC) bachelor degree programme, School of Engineering (HEI) in Sion, Switzerland" +license = [ + "MIT", +] +homepage = "https://github.com/ISC-HEI/isc-hei-student-templates" + [isc-hei-tb-assignment."0.7.0"] url = "https://packages.typst.org/preview/isc-hei-tb-assignment-0.7.0.tar.gz" hash = "sha256-viZpkoEz1RXQ7hJefjVI4iTViDdj0TU2Un6NA9qgpTg=" @@ -16982,6 +17707,19 @@ license = [ "MIT", ] +[jsume."0.1.0"] +url = "https://packages.typst.org/preview/jsume-0.1.0.tar.gz" +hash = "sha256-CylUgJHlBkYtWBjjxBFf7aNxRIAnIXhLViWBXDzBP2Q=" +typstDeps = [ + "nerd-icons_0_2_0", + "zh-format_0_1_0", +] +description = "A simple typst resume template for jsume. Just provide your jsume data in JSON format, and it will generate a beautiful resume PDF for you" +license = [ + "MIT", +] +homepage = "https://github.com/jsume/jsume-typst" + [jumble."0.0.1"] url = "https://packages.typst.org/preview/jumble-0.0.1.tar.gz" hash = "sha256-GnQdiXXCTIIILynOiWgbwmmovZ+6x99IjkiGzOnzVVA=" @@ -17003,6 +17741,24 @@ license = [ "MIT", ] +[justwhitee-notes."0.2.0"] +url = "https://packages.typst.org/preview/justwhitee-notes-0.2.0.tar.gz" +hash = "sha256-OVj1QQxYthR2aYGJ9HDK4R6j5C6vQu+dTn3/6kQFDRM=" +typstDeps = [] +description = "Modern justwhitee-like template for notes" +license = [ + "AGPL-3.0-or-later", +] + +[justwhitee-notes."0.1.1"] +url = "https://packages.typst.org/preview/justwhitee-notes-0.1.1.tar.gz" +hash = "sha256-4IWuxE3mn4ckdCCyMV+RojorKGxNOOWelFEz65wG6Qs=" +typstDeps = [] +description = "Modern justwhitee-like template for notes" +license = [ + "AGPL-3.0-or-later", +] + [justwhitee-notes."0.1.0"] url = "https://packages.typst.org/preview/justwhitee-notes-0.1.0.tar.gz" hash = "sha256-vFUH7FWjXSU1QgILGJ/hlLjtYytPr6h5KH5O2mWmdjY=" @@ -17069,16 +17825,6 @@ license = [ ] homepage = "https://github.com/derekchai/typst-karnaugh-map" -[k-mapper."1.1.0"] -url = "https://packages.typst.org/preview/k-mapper-1.1.0.tar.gz" -hash = "sha256-2sqjAMkjCwcgI4OOLfrzwyUc4Rx28EoPHxFeFfYB80E=" -typstDeps = [] -description = "A package to add Karnaugh maps into Typst projects" -license = [ - "MIT", -] -homepage = "https://github.com/derekchai/typst-karnaugh-map" - [k-mapper."1.0.0"] url = "https://packages.typst.org/preview/k-mapper-1.0.0.tar.gz" hash = "sha256-w8GanT6MurAkT3T6nKCWxLMIWwRxbsLSbGSCtcrOqAo=" @@ -17410,6 +18156,22 @@ license = [ ] homepage = "https://github.com/Harry-Chen/kouhu" +[kthesis."0.1.5"] +url = "https://packages.typst.org/preview/kthesis-0.1.5.tar.gz" +hash = "sha256-C7NMgKP6LUfjbu73gSSx9UUZ/eXGCi24AEBzjMCYBMs=" +typstDeps = [ + "glossarium_0_5_8", + "headcount_0_1_0", + "hydra_0_6_1", + "linguify_0_4_2", +] +description = "Unofficial thesis template for KTH Royal Institute of Technology" +license = [ + "MIT", + "MIT-0", +] +homepage = "https://github.com/RafDevX/kthesis-typst" + [kthesis."0.1.4"] url = "https://packages.typst.org/preview/kthesis-0.1.4.tar.gz" hash = "sha256-js7de2C4ulQBIM+1mmodDlkdRSsiTMwmGR7Q0YOyhL8=" @@ -17510,6 +18272,21 @@ license = [ ] homepage = "https://github.com/mbollmann/typst-kunskap" +[kzn-ma."0.1.0"] +url = "https://packages.typst.org/preview/kzn-ma-0.1.0.tar.gz" +hash = "sha256-9EyaDxm8BVd4CrN1Tn8eEZr0r+TjSzndRC/iiMYb/iA=" +typstDeps = [ + "codly_1_3_0", + "codly-languages_0_1_10", + "typsium_0_3_1", + "unify_0_7_1", +] +description = "Template for Matura Work at KZN" +license = [ + "MIT", +] +homepage = "https://github.com/itkzn/ma-template" + [labtyp."0.1.0"] url = "https://packages.typst.org/preview/labtyp-0.1.0.tar.gz" hash = "sha256-moVnxeUgf+MwN0KJMxfARFVFg/LsZMciPL9unp992+s=" @@ -17652,6 +18429,15 @@ license = [ ] homepage = "https://github.com/yangwenbo99/typst-lasaveur" +[laserly."0.1.0"] +url = "https://packages.typst.org/preview/laserly-0.1.0.tar.gz" +hash = "sha256-Un7bCkrMZFnVEu2tMxTrlkQKsVxqzSNxDHyyxzQDvuk=" +typstDeps = [] +description = "Create 2D laser optic assemblies for visualizating laser beam paths" +license = [ + "MIT", +] + [laskutys."1.1.0"] url = "https://packages.typst.org/preview/laskutys-1.1.0.tar.gz" hash = "sha256-Zm+E+QMAGJMMXZfJQT5WzcoK5ZH5dlhJZHbm8NxHkrs=" @@ -17972,6 +18758,18 @@ license = [ ] homepage = "https://github.com/Marmare314/lemmify" +[lemming."0.1.0"] +url = "https://packages.typst.org/preview/lemming-0.1.0.tar.gz" +hash = "sha256-Ye59p77y96LgJ7w5nBHF0cLSlDjmTc6bpwibKQFY4YQ=" +typstDeps = [ + "elembic_1_1_1", +] +description = "Math environments working similar to native elements" +license = [ + "LGPL-3.0-only", +] +homepage = "https://codeberg.org/fgolke/typst-lemming" + [leonux."1.1.0"] url = "https://packages.typst.org/preview/leonux-1.1.0.tar.gz" hash = "sha256-+kzhNhI9CeQ297PYDQ3L+BQLxZnwc/oJafNyapBY/yU=" @@ -18125,6 +18923,20 @@ license = [ ] homepage = "https://github.com/sebastos1/light-report-uia" +[lilaq."0.6.0"] +url = "https://packages.typst.org/preview/lilaq-0.6.0.tar.gz" +hash = "sha256-qtaXvsx5vXCrn4dpumcb/qQaHfe7B+cFr6+2oG92+ms=" +typstDeps = [ + "elembic_1_1_1", + "tiptoe_0_4_0", + "zero_0_6_1", +] +description = "Scientific data visualization" +license = [ + "MIT", +] +homepage = "https://github.com/lilaq-project/lilaq" + [lilaq."0.5.0"] url = "https://packages.typst.org/preview/lilaq-0.5.0.tar.gz" hash = "sha256-C57XfnLsvVMqzkbyXN73Wa1vnuW1n3jbmt8PSstv1WA=" @@ -18661,6 +19473,15 @@ license = [ ] homepage = "https://github.com/Moka-Reads/machiatto" +[magnificent-misq."0.1.0"] +url = "https://packages.typst.org/preview/magnificent-misq-0.1.0.tar.gz" +hash = "sha256-u67icuKSV3fIc62ihGL6slNEOX+vxU/DyeLUK/FbISE=" +typstDeps = [] +description = "A Typst template for MIS Quarterly manuscript submissions" +license = [ + "MIT", +] + [magnifying-glass."0.1.0"] url = "https://packages.typst.org/preview/magnifying-glass-0.1.0.tar.gz" hash = "sha256-K4NjY2JJKSijf8UVL7ujT0F2DghmV4Xu7jE9/Bzhb1s=" @@ -18713,6 +19534,18 @@ license = [ ] homepage = "https://github.com/lluchs/mandolin" +[manifesto."0.1.1"] +url = "https://packages.typst.org/preview/manifesto-0.1.1.tar.gz" +hash = "sha256-7O/ECFMbaW2EBjqX3wn/WXIfcLnWQTPYau6biwzrkVc=" +typstDeps = [ + "zap_0_5_0", +] +description = "Create stunning documentation websites using native HTML export" +license = [ + "MIT", +] +homepage = "https://github.com/l0uisgrange/manifesto" + [manifesto."0.1.0"] url = "https://packages.typst.org/preview/manifesto-0.1.0.tar.gz" hash = "sha256-GdNgORJUqv0VYMPTxiZMP7Q1JEy3tGqGnzy1nHeVl4g=" @@ -18772,20 +19605,6 @@ license = [ ] homepage = "https://github.com/ryuryu-ymj/mannot" -[mannot."0.2.3"] -url = "https://packages.typst.org/preview/mannot-0.2.3.tar.gz" -hash = "sha256-FByqhbapg8hXEr2F+LsIz9chdNXLHoiOaotB6JxT+jE=" -typstDeps = [ - "codly_1_2_0", - "tidy_0_4_0", - "tidy_0_4_2", -] -description = "A package for marking and annotating in math blocks" -license = [ - "MIT", -] -homepage = "https://github.com/ryuryu-ymj/mannot" - [mannot."0.2.2"] url = "https://packages.typst.org/preview/mannot-0.2.2.tar.gz" hash = "sha256-RyfrlOhE3KfyWYAp2PaGVRKKk/k+phT356aXP5/Tpvk=" @@ -18951,6 +19770,16 @@ license = [ ] homepage = "https://github.com/jneug/typst-mantys" +[manuscr-ismin."0.3.1"] +url = "https://packages.typst.org/preview/manuscr-ismin-0.3.1.tar.gz" +hash = "sha256-EsE9OgW3OFGN4UEZLRab1U9vvirjf/GkOCmphcur1Os=" +typstDeps = [] +description = "Writing reports and/or various documents at Mines Saint-Étienne (unofficial" +license = [ + "MIT", +] +homepage = "https://github.com/senaalem/manuscr-ismin" + [manuscr-ismin."0.3.0"] url = "https://packages.typst.org/preview/manuscr-ismin-0.3.0.tar.gz" hash = "sha256-H6+WjcYLZ1DYth87ZRE7P2uGQG32HMYKUpurwI3xcig=" @@ -18981,6 +19810,15 @@ license = [ ] homepage = "https://github.com/senaalem/ISMIN_reports_template" +[maquette."0.1.0"] +url = "https://packages.typst.org/preview/maquette-0.1.0.tar.gz" +hash = "sha256-XNBn6AqG/4jG23pCrplht8L4/sqMANRfVZ6OILsTSEA=" +typstDeps = [] +description = "Render 3D models (PLY, STL, OBJ) as SVG or PNG images in Typst" +license = [ + "MIT", +] + [marge."0.1.0"] url = "https://packages.typst.org/preview/marge-0.1.0.tar.gz" hash = "sha256-Vasq7cVjsSXn4xoqTN0gly+i5bZZV6bxOAjFVqkaQ2E=" @@ -19258,6 +20096,18 @@ license = [ ] homepage = "https://github.com/Carlos-Mero/may" +[mazed."0.1.0"] +url = "https://packages.typst.org/preview/mazed-0.1.0.tar.gz" +hash = "sha256-BKS52/P0WVjDv9MayZM70iT0sHQbgchEX9WHoT9Wnsc=" +typstDeps = [ + "suiji_0_5_1", +] +description = "Maze generator" +license = [ + "MIT", +] +homepage = "https://github.com/beling/mazed" + [mcm-scaffold."0.2.0"] url = "https://packages.typst.org/preview/mcm-scaffold-0.2.0.tar.gz" hash = "sha256-4KSCC7XlZi9eJGm71Ui+dxDFKqkIcl1QYt0CfGXxSgg=" @@ -19342,6 +20192,16 @@ license = [ ] homepage = "https://github.com/1zumiSagiri/mcx" +[meander."0.4.2"] +url = "https://packages.typst.org/preview/meander-0.4.2.tar.gz" +hash = "sha256-2b15mv36R2LQe2n6bc9NK/L6gr5BZNXnFMkHV/DRs3I=" +typstDeps = [] +description = "Page layout engine with image wrap-around and text threading" +license = [ + "MIT", +] +homepage = "https://github.com/Vanille-N/meander.typ" + [meander."0.4.1"] url = "https://packages.typst.org/preview/meander-0.4.1.tar.gz" hash = "sha256-TbklmX7pmtxPDXD6q95y1Usm70ok3sE88Cqz8llireo=" @@ -19362,16 +20222,6 @@ license = [ ] homepage = "https://github.com/Vanille-N/meander.typ" -[meander."0.3.1"] -url = "https://packages.typst.org/preview/meander-0.3.1.tar.gz" -hash = "sha256-qB+oxzZQycI08iUt2/H8QeZSScP9MUAwPj/xhwZKuIg=" -typstDeps = [] -description = "Page layout engine with image wrap-around and text threading" -license = [ - "MIT", -] -homepage = "https://github.com/Vanille-N/meander.typ" - [meander."0.3.0"] url = "https://packages.typst.org/preview/meander-0.3.0.tar.gz" hash = "sha256-hK9ev0epq1+A88eU42uBLb4a5ZrjkT6k0lnoqUbSyiA=" @@ -19508,6 +20358,16 @@ license = [ ] homepage = "https://codeberg.org/T0mstone/mephistypsteles" +[mephistypsteles."0.2.0"] +url = "https://packages.typst.org/preview/mephistypsteles-0.2.0.tar.gz" +hash = "sha256-/hSShsjHrPIH+XqXDpAZvXXRr6bc7eBWWP9LttWzb18=" +typstDeps = [] +description = "The devil's reflection, using typst in typst" +license = [ + "MIT-0", +] +homepage = "https://codeberg.org/T0mstone/mephistypsteles" + [mephistypsteles."0.1.0"] url = "https://packages.typst.org/preview/mephistypsteles-0.1.0.tar.gz" hash = "sha256-vwiyuUYAZInRyHUljVUZCZl4fTP2H/41zE3S5m5dmOM=" @@ -19550,6 +20410,16 @@ license = [ ] homepage = "https://github.com/CL4R3T/meppp" +[mercator."0.1.2"] +url = "https://packages.typst.org/preview/mercator-0.1.2.tar.gz" +hash = "sha256-Th9q5VlppbZ60QE9IYCf2Cmnfn1FWsfrfishiq6hnYU=" +typstDeps = [] +description = "🌎 Render GeoJSON and TopoJSON in typst" +license = [ + "MIT", +] +homepage = "https://github.com/bernsteining/mercator/" + [mercator."0.1.1"] url = "https://packages.typst.org/preview/mercator-0.1.1.tar.gz" hash = "sha256-AL6pJCWLG5M2JnGy+mFIf03Xg33gWHj8Xji0xQd7AMI=" @@ -20365,16 +21235,6 @@ license = [ ] homepage = "https://github.com/Enter-tainer/mino" -[mitex."0.2.6"] -url = "https://packages.typst.org/preview/mitex-0.2.6.tar.gz" -hash = "sha256-u9wWAsK76NjJTDDxNtlp+vucB9Yiop0Sw2+kJyejRZM=" -typstDeps = [] -description = "LaTeX support for Typst, powered by Rust and WASM" -license = [ - "Apache-2.0", -] -homepage = "https://github.com/mitex-rs/mitex" - [mitex."0.2.5"] url = "https://packages.typst.org/preview/mitex-0.2.5.tar.gz" hash = "sha256-kvVQT22lWFLxlfXwWC9wWgZXVJMJEf63Uuzri0/NnqY=" @@ -21247,6 +22107,18 @@ license = [ ] homepage = "https://github.com/Paulkm2006/modern-hust-cs-report" +[modern-hust-cse-report."0.1.2"] +url = "https://packages.typst.org/preview/modern-hust-cse-report-0.1.2.tar.gz" +hash = "sha256-eCo7GG7YjSSuDYCjh9L9dAQ28Vw23wgKkoHv+/BAUpM=" +typstDeps = [ + "cuti_0_4_0", +] +description = "An unofficial lab report template for the School of Cyber Science and Engineering at HUST" +license = [ + "GPL-3.0-or-later", +] +homepage = "https://tangled.dzming.li/dzming.li/hust-cse-report" + [modern-hust-cse-report."0.1.1"] url = "https://packages.typst.org/preview/modern-hust-cse-report-0.1.1.tar.gz" hash = "sha256-AwXDuFK0CD4mimEOkI8ugSQpynBhr0SazF0IodlCBVE=" @@ -21319,6 +22191,16 @@ license = [ ] homepage = "https://github.com/xkevio/ipsy-thesis/" +[modern-iu-thesis."0.1.5"] +url = "https://packages.typst.org/preview/modern-iu-thesis-0.1.5.tar.gz" +hash = "sha256-4mlrNoNklFpwRS4VBhwTYPTC9wwVEc7CSlYuSa4d8Kw=" +typstDeps = [] +description = "Modern Typst thesis template for Indiana University" +license = [ + "MIT", +] +homepage = "https://github.com/bojohnson5/modern-iu-thesis" + [modern-iu-thesis."0.1.4"] url = "https://packages.typst.org/preview/modern-iu-thesis-0.1.4.tar.gz" hash = "sha256-/zONmk7558Gi4HzZAtVlQ0fzWVe5sDEqnHwq1TEnOgE=" @@ -21436,6 +22318,21 @@ license = [ ] homepage = "https://github.com/virgiling/NENU-Thesis-Typst" +[modern-nju-thesis."0.4.1"] +url = "https://packages.typst.org/preview/modern-nju-thesis-0.4.1.tar.gz" +hash = "sha256-9co1k7Z4uQK1DIWkDC7b6VORV/fqSjRN9sk1D9ba6wc=" +typstDeps = [ + "cuti_0_4_0", + "i-figured_0_2_4", + "pinit_0_2_2", + "tablex_0_0_9", +] +description = "南京大学学位论文模板。Modern Nanjing University Thesis" +license = [ + "MIT", +] +homepage = "https://github.com/nju-lug/modern-nju-thesis" + [modern-nju-thesis."0.4.0"] url = "https://packages.typst.org/preview/modern-nju-thesis-0.4.0.tar.gz" hash = "sha256-3F1HXZfxlLgbcTNfe37YHIW5M/EY5zGy4thnlVFBfzU=" @@ -21707,6 +22604,19 @@ license = [ ] homepage = "https://github.com/peterpf/modern-typst-resume" +[modern-ruc-thesis."0.1.2"] +url = "https://packages.typst.org/preview/modern-ruc-thesis-0.1.2.tar.gz" +hash = "sha256-6EScOO3q5Z1qeU8WoWe/Hfahup/i/f+geE9Gga8+2RY=" +typstDeps = [ + "cuti_0_4_0", + "pointless-size_0_1_2", +] +description = "中国人民大学本科生毕业论文 Typst 模板。Modern Renmin University of China Thesis" +license = [ + "MIT", +] +homepage = "https://github.com/ruc-thesis/modern-ruc-thesis" + [modern-ruc-thesis."0.1.1"] url = "https://packages.typst.org/preview/modern-ruc-thesis-0.1.1.tar.gz" hash = "sha256-n2gTVXXKdPQ4KX3ViGrELze+7/VvoFmgTFW2Olnu+bU=" @@ -21889,6 +22799,31 @@ license = [ ] homepage = "https://github.com/StellarLane/modern-sjtu-report" +[modern-sjtu-thesis."0.6.1"] +url = "https://packages.typst.org/preview/modern-sjtu-thesis-0.6.1.tar.gz" +hash = "sha256-SQdXqSrT7FAXicwPnfy/m7KHJuBRlnBItJBmzK9XEl0=" +typstDeps = [ + "codly_1_3_0", + "codly-languages_0_1_10", + "cuti_0_4_0", + "equate_0_3_2", + "fletcher_0_5_8", + "i-figured_0_2_4", + "itemize_0_2_0", + "lilaq_0_6_0", + "lovelace_0_3_1", + "numbly_0_1_0", + "suiji_0_5_1", + "theorion_0_5_0", + "unify_0_7_1", + "wordometer_0_1_5", +] +description = "上海交通大学学位论文 Typst 模板。Shanghai Jiao Tong University Thesis Typst Template" +license = [ + "MIT", +] +homepage = "https://github.com/sjtug/modern-sjtu-thesis" + [modern-sjtu-thesis."0.6.0"] url = "https://packages.typst.org/preview/modern-sjtu-thesis-0.6.0.tar.gz" hash = "sha256-c0IU7G9BrNr3etELsJNBdLKt+UrfICnn0gLB44P8e4I=" @@ -22171,6 +23106,24 @@ license = [ ] homepage = "https://github.com/Duolei-Wang/sustech-thesis-typst" +[modern-sysu-thesis."0.4.1"] +url = "https://packages.typst.org/preview/modern-sysu-thesis-0.4.1.tar.gz" +hash = "sha256-QTEXNJQ0fY3loIBewro0QWpYqyYwJ8bxXsasr80pV8E=" +typstDeps = [ + "anti-matter_0_0_2", + "i-figured_0_1_0", + "i-figured_0_2_4", + "numblex_0_1_1", + "numbly_0_1_0", + "outrageous_0_1_0", + "tablex_0_0_8", +] +description = "中山大学学位论文 Typst 模板,A Typst template for SYSU thesis" +license = [ + "MIT", +] +homepage = "https://gitlab.com/sysu-gitlab/thesis-template/better-thesis" + [modern-sysu-thesis."0.4.0"] url = "https://packages.typst.org/preview/modern-sysu-thesis-0.4.0.tar.gz" hash = "sha256-bC2JvIBViitWFsBsswq6cyQ9tRQvRb+lKe6dgObmlIY=" @@ -22377,6 +23330,20 @@ license = [ ] homepage = "https://github.com/martin-cao/modern-tust-thesis" +[modern-ucas-thesis."0.2.0"] +url = "https://packages.typst.org/preview/modern-ucas-thesis-0.2.0.tar.gz" +hash = "sha256-y6d7V1C6X1mnW1raESk0/bU9bw4a5Gf5GVCK/T9Jaq0=" +typstDeps = [ + "cuti_0_4_0", + "i-figured_0_2_4", + "tablex_0_0_9", +] +description = "Master or doctoral thesis at the University of Chinese Academy of Sciences" +license = [ + "MIT", +] +homepage = "https://github.com/Vncntvx/modern-ucas-thesis" + [modern-ucas-thesis."0.1.0"] url = "https://packages.typst.org/preview/modern-ucas-thesis-0.1.0.tar.gz" hash = "sha256-poI/Jg1TBlmKqGxGeXYqF63OjOuMsZxmh6cVkw6kQSc=" @@ -23114,6 +24081,30 @@ license = [ ] homepage = "https://github.com/ludwig-austermann/modpattern" +[moin-uni-slides."0.1.0"] +url = "https://packages.typst.org/preview/moin-uni-slides-0.1.0.tar.gz" +hash = "sha256-/ziunuPxjAygPjN88jeM/ndMU3gTzZuYiLwEUT/96UM=" +typstDeps = [ + "polylux_0_4_0", +] +description = "Slides in the style of the University of Bremen for polylux" +license = [ + "MIT", +] +homepage = "https://github.com/Universitaet-Bremen/typst-template-slides" + +[molchemist."0.1.1"] +url = "https://packages.typst.org/preview/molchemist-0.1.1.tar.gz" +hash = "sha256-mJxalsZnj9hO5X+c93sx+Ea9s1JNV6Mamc51+gwOloU=" +typstDeps = [ + "alchemist_0_1_9", +] +description = "Render beautiful chemical structures directly from Molfile (.mol) and Structure-Data File (.sdf) formats" +license = [ + "MIT", +] +homepage = "https://github.com/rice8y/molchemist" + [molchemist."0.1.0"] url = "https://packages.typst.org/preview/molchemist-0.1.0.tar.gz" hash = "sha256-H/5b8x4MTVqRxm2+cvNniaOBJX8w7OdEk48Ys4xsJUU=" @@ -23140,6 +24131,16 @@ license = [ ] homepage = "https://github.com/SillyFreak/typst-moodular" +[mousse-notes."1.1.0"] +url = "https://packages.typst.org/preview/mousse-notes-1.1.0.tar.gz" +hash = "sha256-FAyLs78XRXsFYg7Zek1SZGUk66Y4Jrsd/+I7hRNnqcY=" +typstDeps = [] +description = "Lecture notes with a style inspired by old math books" +license = [ + "MIT-0", +] +homepage = "https://github.com/dogeystamp/mousse-notes" + [mousse-notes."1.0.0"] url = "https://packages.typst.org/preview/mousse-notes-1.0.0.tar.gz" hash = "sha256-nTJLUBgDTx3UyFMfa4L7fr67PGCguBwuVfZv6F9yrpA=" @@ -24049,6 +25050,18 @@ license = [ ] homepage = "https://github.com/Mapaor/notionly" +[nova-pset."0.1.0"] +url = "https://packages.typst.org/preview/nova-pset-0.1.0.tar.gz" +hash = "sha256-dBg6mNJYYS9BO4m9AecVqvFrY56f0Cur8mbAYdyje04=" +typstDeps = [ + "showybox_2_0_2", +] +description = "A modular problem set template for STEM coursework" +license = [ + "Unlicense", +] +homepage = "https://github.com/samyakj5/nova-pset" + [now-radboud-thesis."0.1.0"] url = "https://packages.typst.org/preview/now-radboud-thesis-0.1.0.tar.gz" hash = "sha256-W/FUD0C7nUw70CviXnzJsAPOr6wZDNW8eq1dLIv5rFQ=" @@ -24478,6 +25491,26 @@ license = [ "MIT-0", ] +[ohdsi-symposium-submission."0.1.0"] +url = "https://packages.typst.org/preview/ohdsi-symposium-submission-0.1.0.tar.gz" +hash = "sha256-HztsoIJt8u3cB265epdYwcOCkZYEsjvqWPg2+ujLKrw=" +typstDeps = [] +description = "Brief reports for the OHDSI symposium" +license = [ + "MIT", +] +homepage = "https://github.com/huanhe4096/packages" + +[oicana."0.1.1"] +url = "https://packages.typst.org/preview/oicana-0.1.1.tar.gz" +hash = "sha256-HB+1D8Skq4yg/r5/klwJvRMQxTP5cPe2wPnn0nynvaI=" +typstDeps = [] +description = "PDF templating across multiple platforms" +license = [ + "MIT", +] +homepage = "https://github.com/oicana/oicana" + [oicana."0.1.0"] url = "https://packages.typst.org/preview/oicana-0.1.0.tar.gz" hash = "sha256-+HPH7jSoXTSvTzxgwSiLcMJ6GCDZ3nVoHSIDu0JMofY=" @@ -24513,6 +25546,16 @@ license = [ ] homepage = "https://github.com/Olaii/olaii-upn-qr-typst-template" +[one-liner."0.3.0"] +url = "https://packages.typst.org/preview/one-liner-0.3.0.tar.gz" +hash = "sha256-LUx0007mmHVG9lyCt+IWt7Vr/rErtL3IQZ6qBlviniI=" +typstDeps = [] +description = "Automatically adjust the text size to make it fit on one line filling the available space" +license = [ + "MIT", +] +homepage = "https://github.com/mtolk/one-liner" + [one-liner."0.2.0"] url = "https://packages.typst.org/preview/one-liner-0.2.0.tar.gz" hash = "sha256-bl5orWMBgaPJl9IGU+kPBCOGdtJC2AryB3351ZoJrWw=" @@ -24665,6 +25708,22 @@ license = [ ] homepage = "https://github.com/jassielof/typst-packages" +[ori."0.2.4"] +url = "https://packages.typst.org/preview/ori-0.2.4.tar.gz" +hash = "sha256-Pz01wNoh7K6OXjlGyMKWs3hOjm5SGi7AM0tN51JBMz8=" +typstDeps = [ + "cmarker_0_1_8", + "mitex_0_2_6", + "numbly_0_1_0", + "tablem_0_3_0", + "theorion_0_5_0", +] +description = "Simple enough but expressive template for notes, reports, and documents in Chinese and English" +license = [ + "MIT", +] +homepage = "https://github.com/OrangeX4/typst-ori" + [ori."0.2.3"] url = "https://packages.typst.org/preview/ori-0.2.3.tar.gz" hash = "sha256-OFOrz5bKfy8ch9kStWAZJTPi2fivOJXnH52+kQJMYOE=" @@ -25638,6 +26697,21 @@ license = [ ] homepage = "https://github.com/vanleefxp/peano_typ" +[pedigrypst."0.1.0"] +url = "https://packages.typst.org/preview/pedigrypst-0.1.0.tar.gz" +hash = "sha256-ASy1nA5DGLuEkCq5eJQYLlmNmBa7tFKfbyBooYiTU2s=" +typstDeps = [ + "cetz_0_4_2", + "larrow_1_0_1", + "meander_0_4_1", + "tidy_0_4_3", +] +description = "Draw pedigrees" +license = [ + "MIT", +] +homepage = "https://github.com/CrowdingFaun624/pedigrypst" + [penpo."0.1.0"] url = "https://packages.typst.org/preview/penpo-0.1.0.tar.gz" hash = "sha256-vrlqER4diWEetWCGrv8nNigwfzIjVBHF8HqBDyekuQY=" @@ -25680,6 +26754,21 @@ license = [ ] homepage = "https://github.com/Servostar/typst-percencode" +[pergamon."0.8.0"] +url = "https://packages.typst.org/preview/pergamon-0.8.0.tar.gz" +hash = "sha256-WHp6mUMEosfwS1LK31AkB8WtTpM9ylqFfxPrZMKK99o=" +typstDeps = [ + "bullseye_0_1_0", + "citegeist_0_2_2", + "nth_1_0_1", + "oxifmt_1_0_0", +] +description = "Biblatex-style reference management for Typst" +license = [ + "MIT", +] +homepage = "https://github.com/alexanderkoller/pergamon" + [pergamon."0.7.2"] url = "https://packages.typst.org/preview/pergamon-0.7.2.tar.gz" hash = "sha256-UwBF2uL6+9GOk2icAlDU7Brvz7hEqpWnCauFImJTTN4=" @@ -25836,6 +26925,18 @@ license = [ ] homepage = "https://github.com/alexanderkoller/pergamon" +[perlit."0.0.1"] +url = "https://packages.typst.org/preview/perlit-0.0.1.tar.gz" +hash = "sha256-VHDbrqe9OfHh8WzlwiuGrlMefoKDgyRnzWXgkPWVPPg=" +typstDeps = [ + "cetz_0_4_2", +] +description = "Render Obsidian graphs using CeTZ" +license = [ + "MIT", +] +homepage = "https://github.com/lucaengelhard/perlit" + [pesha."0.4.0"] url = "https://packages.typst.org/preview/pesha-0.4.0.tar.gz" hash = "sha256-IsYeDU+O7e4KSTl9+nWJiyRgki3QikYJdoDhZF3kYBQ=" @@ -25906,6 +27007,66 @@ license = [ ] homepage = "https://gitlab.com/Jed_Hed/pf2e-typst" +[phonokit."0.5.4"] +url = "https://packages.typst.org/preview/phonokit-0.5.4.tar.gz" +hash = "sha256-ipAWdTe4nWzu3auXzXT6O4+QtmQ2V+fTFV3RZDED8z0=" +typstDeps = [ + "cetz_0_4_2", +] +description = "A toolkit to create phonological representations" +license = [ + "MIT", +] +homepage = "https://github.com/guilhermegarcia/phonokit" + +[phonokit."0.5.3"] +url = "https://packages.typst.org/preview/phonokit-0.5.3.tar.gz" +hash = "sha256-JL9sHABb3RtUqK6jpihouzsxW6alDNpPmosOSP+NXy4=" +typstDeps = [ + "cetz_0_4_2", +] +description = "A toolkit to create phonological representations" +license = [ + "MIT", +] +homepage = "https://github.com/guilhermegarcia/phonokit" + +[phonokit."0.5.2"] +url = "https://packages.typst.org/preview/phonokit-0.5.2.tar.gz" +hash = "sha256-EB7J+O0fyrvzaXGeApMsUd0fCj1um5OWrvsCJ/rxIew=" +typstDeps = [ + "cetz_0_4_2", +] +description = "A toolkit to create phonological representations" +license = [ + "MIT", +] +homepage = "https://github.com/guilhermegarcia/phonokit" + +[phonokit."0.5.1"] +url = "https://packages.typst.org/preview/phonokit-0.5.1.tar.gz" +hash = "sha256-OhUysiViKiiLX6d9pe/eJeZg+q2YfGyfdkkaozF1sDs=" +typstDeps = [ + "cetz_0_4_2", +] +description = "A toolkit to create phonological representations" +license = [ + "MIT", +] +homepage = "https://github.com/guilhermegarcia/phonokit" + +[phonokit."0.5.0"] +url = "https://packages.typst.org/preview/phonokit-0.5.0.tar.gz" +hash = "sha256-ySsnOqm81/BOcV97lXQIL/+SwThYY7f/R921eS05yQI=" +typstDeps = [ + "cetz_0_4_2", +] +description = "A toolkit to create phonological representations" +license = [ + "MIT", +] +homepage = "https://github.com/guilhermegarcia/phonokit" + [phonokit."0.4.6"] url = "https://packages.typst.org/preview/phonokit-0.4.6.tar.gz" hash = "sha256-BEN02Yf14dWliKiCNroBV+sIFzyfTRwbU7RjQ7gp5cE=" @@ -26026,6 +27187,16 @@ license = [ ] homepage = "https://github.com/guilhermegarcia/phonokit" +[physica."0.9.8"] +url = "https://packages.typst.org/preview/physica-0.9.8.tar.gz" +hash = "sha256-mPUFvFMLx+sajWWGtDXL3TDrHufYz1WF+AHfL4fZAu8=" +typstDeps = [] +description = "Math constructs for science and engineering: derivative, differential, vector field, matrix, tensor, Dirac braket, hbar, transpose, conjugate, many operators, and more" +license = [ + "MIT", +] +homepage = "https://github.com/Leedehai/typst-physics" + [physica."0.9.7"] url = "https://packages.typst.org/preview/physica-0.9.7.tar.gz" hash = "sha256-YIhz9AiVFZlwsrY+xX0Xu+MQjdX+Q5Spy3AUa0ZDKmw=" @@ -26443,6 +27614,16 @@ license = [ ] homepage = "https://github.com/daskol/typst-templates" +[pixel-family."0.2.0"] +url = "https://packages.typst.org/preview/pixel-family-0.2.0.tar.gz" +hash = "sha256-hoVpbacTqtiYUyIs0gD5iIfza6hxny7Mh5W7TLTbz2I=" +typstDeps = [] +description = "Inline pixel art characters for Typst — drop them into text like emoji" +license = [ + "MIT", +] +homepage = "https://github.com/GiggleLiu/pixel-family" + [pixel-family."0.1.0"] url = "https://packages.typst.org/preview/pixel-family-0.1.0.tar.gz" hash = "sha256-9uuGBD6qj1QVDVZfUVuDoOdp7Cm5wGUyJl8+T1p3d4s=" @@ -26918,6 +28099,16 @@ license = [ ] homepage = "https://github.com/miawinter98/hdm-thesis" +[primaviz."0.5.3"] +url = "https://packages.typst.org/preview/primaviz-0.5.3.tar.gz" +hash = "sha256-O0xJbwwBpCGXEraQQ9kg5/+4OmM/346PwNZxitvRXEU=" +typstDeps = [] +description = "A pure-Typst charting library with 50+ chart types, 6 themes, and zero dependencies — built entirely with native primitives" +license = [ + "MIT", +] +homepage = "https://github.com/phiat/primaviz" + [primaviz."0.4.1"] url = "https://packages.typst.org/preview/primaviz-0.4.1.tar.gz" hash = "sha256-V920U/4Ym+OHyyTzUNZ5sAPN3thFmJ4uIo8+e/jFD9k=" @@ -27336,6 +28527,20 @@ license = [ ] homepage = "https://github.com/nzy1997/qec-thrust" +[qooklet."0.6.2"] +url = "https://packages.typst.org/preview/qooklet-0.6.2.tar.gz" +hash = "sha256-JvRS2fsu/qtAOuD3HIBcaww+lVVIeyN629EPOMIBJvA=" +typstDeps = [ + "codly_1_3_0", + "hydra_0_6_2", + "theorion_0_5_0", +] +description = "A quick start template for scientific booklets" +license = [ + "MIT", +] +homepage = "https://github.com/ivaquero/typst-qooklet.git" + [qooklet."0.6.1"] url = "https://packages.typst.org/preview/qooklet-0.6.1.tar.gz" hash = "sha256-K/X9tM4rcW1B3zuxPlj16fsZ65aL8wwIEko3E6D+2Bo=" @@ -27999,6 +29204,18 @@ license = [ ] homepage = "https://github.com/sjfhsjfh/typst-relescope" +[rendercv."0.3.0"] +url = "https://packages.typst.org/preview/rendercv-0.3.0.tar.gz" +hash = "sha256-t9dhxjsBEZ5tZLwbvel4NNzZSE4MRAraZ/xjc5ZzO+s=" +typstDeps = [ + "fontawesome_0_6_0", +] +description = "Resume builder for academics and engineers" +license = [ + "MIT", +] +homepage = "https://github.com/rendercv/rendercv" + [rendercv."0.2.0"] url = "https://packages.typst.org/preview/rendercv-0.2.0.tar.gz" hash = "sha256-Nzt2o+QnZ2prjzkiCBi5onsfiY2ggFKcHhHgDHffu4w=" @@ -28875,6 +30092,26 @@ license = [ ] homepage = "https://github.com/augustebaum/epfl-thesis-typst" +[scholarly-tauthesis."0.21.0"] +url = "https://packages.typst.org/preview/scholarly-tauthesis-0.21.0.tar.gz" +hash = "sha256-ks/yX0OaJMLM2yis2y3rl646dQ5XkahGZeHfK4EMBLw=" +typstDeps = [] +description = "A template for writing Tampere University theses" +license = [ + "MIT", +] +homepage = "https://gitlab.com/tuni-official/thesis-templates/tau-typst-thesis-template" + +[scholarly-tauthesis."0.20.0"] +url = "https://packages.typst.org/preview/scholarly-tauthesis-0.20.0.tar.gz" +hash = "sha256-W49m6MKFEm7vIzR6dT1xL82e4EZ4aa/xmpfufixGflo=" +typstDeps = [] +description = "A template for writing Tampere University theses" +license = [ + "MIT", +] +homepage = "https://gitlab.com/tuni-official/thesis-templates/tau-typst-thesis-template" + [scholarly-tauthesis."0.19.3"] url = "https://packages.typst.org/preview/scholarly-tauthesis-0.19.3.tar.gz" hash = "sha256-yowgpBkAhd1wTRriNcKB8fs7MqZP2aWjQMHqdQwgc0k=" @@ -29165,6 +30402,46 @@ license = [ ] homepage = "https://github.com/curvenote/scienceicons" +[scorify."0.1.1"] +url = "https://packages.typst.org/preview/scorify-0.1.1.tar.gz" +hash = "sha256-9US9SJ29B1Hf2JHONuV9qhXajkRvV0O2cXxlNnQHomQ=" +typstDeps = [ + "cetz_0_4_2", +] +description = "Render professional sheet music directly in Typst documents" +license = [ + "MIT", +] +homepage = "https://github.com/justinbornais/typst-sheet-music" + +[scribbling-hm."0.1.9"] +url = "https://packages.typst.org/preview/scribbling-hm-0.1.9.tar.gz" +hash = "sha256-sp6RZGCZZ8i/qZJgLl/j+Q069yZPZ9UD60jfyJ75/cQ=" +typstDeps = [ + "datify_1_0_1", + "glossarium_0_5_10", + "zebraw_0_6_1", +] +description = "Unofficial thesis template for Munich University of Applied Sciences (Hochschule München" +license = [ + "MIT", +] +homepage = "https://github.com/fine-seat/hm-typst-template" + +[scribbling-hm."0.1.8"] +url = "https://packages.typst.org/preview/scribbling-hm-0.1.8.tar.gz" +hash = "sha256-H0WrQ5fBZ+cLcuA38E5GWOdMWww5+JGgGP8KRlusK60=" +typstDeps = [ + "datify_1_0_1", + "glossarium_0_5_10", + "zebraw_0_6_1", +] +description = "Unofficial thesis template for Munich University of Applied Sciences (Hochschule München" +license = [ + "MIT", +] +homepage = "https://github.com/fine-seat/hm-typst-template" + [scribbling-hm."0.1.7"] url = "https://packages.typst.org/preview/scribbling-hm-0.1.7.tar.gz" hash = "sha256-CKaJWLrZg1pvtYYA4AsgVYJubL1WwU1GAS559Ern18o=" @@ -29614,6 +30891,16 @@ license = [ ] homepage = "https://github.com/MLNW/typst-packages" +[sertyp."0.1.3"] +url = "https://packages.typst.org/preview/sertyp-0.1.3.tar.gz" +hash = "sha256-b4CucSbgq/sFaOnKr8U0M44iWu6glS0o+Xic84IRhOM=" +typstDeps = [] +description = "Serialization and deserialization of most typst types into sertyp CBOR format: This includes markdown, math, etc" +license = [ + "MIT", +] +homepage = "https://github.com/Uhrendoktor/sertyp" + [sertyp."0.1.2"] url = "https://packages.typst.org/preview/sertyp-0.1.2.tar.gz" hash = "sha256-locwjuavfxD2ByhOEzX1Yvj4yoGGUIjW3D3Yt0CF3IU=" @@ -30591,6 +31878,18 @@ license = [ ] homepage = "https://github.com/zhao-leo/BUPT-Report-Typst" +[simple-handout."0.2.0"] +url = "https://packages.typst.org/preview/simple-handout-0.2.0.tar.gz" +hash = "sha256-+l3MCh76AsRrmA6SF+EgfZWxRMkrflmSRVaao7n1L9o=" +typstDeps = [ + "tntt_0_5_1", +] +description = "A simple handout template for Chinese typesetting based on TnTT" +license = [ + "MIT", +] +homepage = "https://github.com/chillcicada/simple-handout-template" + [simple-handout."0.1.0"] url = "https://packages.typst.org/preview/simple-handout-0.1.0.tar.gz" hash = "sha256-7efYd1NTyv44mupckYcQIIuH1xeAuL2M0/E65YB8YKI=" @@ -30618,6 +31917,18 @@ license = [ ] homepage = "https://github.com/kkkkkkeng/hust-report-template-typst" +[simple-inria-touying-theme."0.1.2"] +url = "https://packages.typst.org/preview/simple-inria-touying-theme-0.1.2.tar.gz" +hash = "sha256-T6YC512vz+v0shlGBxZnead1UoYOkzvAHfk8jERcnzA=" +typstDeps = [ + "touying_0_6_3", +] +description = "Touying slides theme approximating Inria's graphical chart" +license = [ + "MIT", +] +homepage = "https://gitlab.inria.fr/soliman/inria-touying-theme" + [simple-inria-touying-theme."0.1.1"] url = "https://packages.typst.org/preview/simple-inria-touying-theme-0.1.1.tar.gz" hash = "sha256-hil8KBmo7ubWj6fku+JFjRbOy0uZfOye8LYFUb5GJ1Y=" @@ -30856,6 +32167,16 @@ license = [ ] homepage = "https://github.com/soliprem/unibo-thesis-template" +[simple-unimi-thesis."0.1.1"] +url = "https://packages.typst.org/preview/simple-unimi-thesis-0.1.1.tar.gz" +hash = "sha256-h0CcR+clENTBbDKKv0EsWQ8AAEnWpp+mBurEv2IxRgU=" +typstDeps = [] +description = "Unofficial thesis template for Università Statale degli Studi di Milano" +license = [ + "GPL-3.0-or-later", +] +homepage = "https://github.com/VictuarVi/Template-Tesi-UniMi" + [simple-unimi-thesis."0.1.0"] url = "https://packages.typst.org/preview/simple-unimi-thesis-0.1.0.tar.gz" hash = "sha256-Wx/unndXVOQVl4JHMejOpdCicB7ZWaCkAfuYDSn0XVc=" @@ -30945,6 +32266,20 @@ license = [ "MIT", ] +[simply-ysu-touying."0.1.0"] +url = "https://packages.typst.org/preview/simply-ysu-touying-0.1.0.tar.gz" +hash = "sha256-5fNP2RDAhfya/kryEYPin5Og/zwgZAz6Jgy27cuSJjE=" +typstDeps = [ + "cuti_0_4_0", + "touying_0_6_3", +] +description = "Yanshan University slides with Touying" +license = [ + "MIT", + "MIT-0", +] +homepage = "https://github.com/bahayonghang/simply-ysu-touying" + [sitdown."1.0.0"] url = "https://packages.typst.org/preview/sitdown-1.0.0.tar.gz" hash = "sha256-gNc2kGPCsSt7jHFDqAt4WQXtd1BSNLpXdAtrO5JxKek=" @@ -31004,6 +32339,26 @@ license = [ "Unlicense", ] +[slipst."0.3.0"] +url = "https://packages.typst.org/preview/slipst-0.3.0.tar.gz" +hash = "sha256-3cquIl8/xZ2w81RO2HpD6Lx9QHvghd02Wq92nrOGkq8=" +typstDeps = [] +description = "A new paradigm for presentations, inspired by slipshow" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/Wybxc/slipst" + +[slipst."0.2.1"] +url = "https://packages.typst.org/preview/slipst-0.2.1.tar.gz" +hash = "sha256-OrTsegBM4wh8IJwiOJzT4xTnqLrSWHeh4nCfpUHLetc=" +typstDeps = [] +description = "A new paradigm for presentations, inspired by slipshow" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/Wybxc/slipst" + [slipst."0.2.0"] url = "https://packages.typst.org/preview/slipst-0.2.0.tar.gz" hash = "sha256-FfcO9QPW9/rU+lCjHhX0BTApbRGWDCtX6/PSpfYyj3c=" @@ -31176,6 +32531,16 @@ license = [ ] homepage = "https://github.com/Bi0T1N/typst-socialhub-fa" +[solo-lu-df."1.1.2"] +url = "https://packages.typst.org/preview/solo-lu-df-1.1.2.tar.gz" +hash = "sha256-wOj28KaUxwRExEr2utFWsBTpcd/keTZVnzzvWl/VR6w=" +typstDeps = [] +description = "Write qualification papers, bachelor’s theses, and master’s theses for University of Latvia, Computer Science programme" +license = [ + "MIT-0", +] +homepage = "https://github.com/kristoferssolo/LU-DF-Typst-Template" + [solo-lu-df."1.1.1"] url = "https://packages.typst.org/preview/solo-lu-df-1.1.1.tar.gz" hash = "sha256-xNxwn2UktI5UfLx0eCFntjdsl94mfML81CmAreHF9kU=" @@ -31637,6 +33002,16 @@ license = [ ] homepage = "https://github.com/SillyFreak/typst-stack-pointer" +[starry-ulfg."0.2.0"] +url = "https://packages.typst.org/preview/starry-ulfg-0.2.0.tar.gz" +hash = "sha256-8526Y+PnNM2eRYEpkO/0w+TfxuZOgMUEoa4H4AATH+4=" +typstDeps = [] +description = "Unofficial ULFG thesis and reports" +license = [ + "MIT-0", +] +homepage = "https://github.com/Sydiepus/starry-ulfg" + [starry-ulfg."0.1.0"] url = "https://packages.typst.org/preview/starry-ulfg-0.1.0.tar.gz" hash = "sha256-2QMqvJ3yKsmh+T1jac3DxQOjuHcD2nTdNRuILpOJGes=" @@ -31881,6 +33256,16 @@ license = [ ] homepage = "https://github.com/shunichironomura/iac-typst-template" +[stellar-springer-nature."0.1.0"] +url = "https://packages.typst.org/preview/stellar-springer-nature-0.1.0.tar.gz" +hash = "sha256-sdDB4yevGckfIyRi+QZJgfB9OvkJc/ZExmUiyStxZ9Q=" +typstDeps = [] +description = "Springer Nature journal article submission (sn-jnl class" +license = [ + "MIT-0", +] +homepage = "https://github.com/sharifhsn/stellar-springer-nature" + [stonewall."0.2.0"] url = "https://packages.typst.org/preview/stonewall-0.2.0.tar.gz" hash = "sha256-Xyjl2qjhs1Vy2i7YYbKTgUtYa915Nk0zv12kWS2bmcs=" @@ -32627,6 +34012,16 @@ license = [ ] homepage = "https://codeberg.org/innocent_zero/typst-resume" +[symbolist."0.1.0"] +url = "https://packages.typst.org/preview/symbolist-0.1.0.tar.gz" +hash = "sha256-Mw70mjb7Rg4s5YYcAVMipHPEh6HiVn/OxwCCcgVaP74=" +typstDeps = [] +description = "A Typst package for creating a list of symbols" +license = [ + "MIT", +] +homepage = "https://github.com/fredericjs/symbolist" + [symbolx."1.1.0"] url = "https://packages.typst.org/preview/symbolx-1.1.0.tar.gz" hash = "sha256-nimmvAlHLSmHehhe6u1mGTLmGSIQdycrRgRg6Y1wNAA=" @@ -32779,6 +34174,19 @@ license = [ ] homepage = "https://github.com/typst-community/tabbyterms" +[tableau-icons."0.340.0"] +url = "https://packages.typst.org/preview/tableau-icons-0.340.0.tar.gz" +hash = "sha256-3GZCtyn8uSBAfMvX9vrAZd2oFUK5fTOi8YTGRg8UcPo=" +typstDeps = [ + "shadowed_0_3_0", + "tidy_0_4_3", +] +description = "Tabler.io Icons v3.40.0 for Typst" +license = [ + "MIT", +] +homepage = "https://codeberg.org/joelvonrotz/tableau-icons" + [tableau-icons."0.336.0"] url = "https://packages.typst.org/preview/tableau-icons-0.336.0.tar.gz" hash = "sha256-SDOrMCUKqN400lgK3ufziwBqa5ri1jGUuZSeekVjSlI=" @@ -33169,6 +34577,19 @@ license = [ ] homepage = "https://github.com/maxcrees/tbl.typ" +[tblr."0.5.0"] +url = "https://packages.typst.org/preview/tblr-0.5.0.tar.gz" +hash = "sha256-Ps6KkBVxK6pyXiDd8st1Ecfbf2btuQgBIkdwFwKbX3o=" +typstDeps = [ + "pillar_0_3_3", + "rowmantic_0_5_0", +] +description = "Table generation and alignment helpers inspired by LaTeX's Tabularray package" +license = [ + "MIT", +] +homepage = "https://github.com/tshort/tblr" + [tblr."0.4.4"] url = "https://packages.typst.org/preview/tblr-0.4.4.tar.gz" hash = "sha256-Q8PFFnvFY64FWwZC+oIwfZ7XlJ2UfN1FD1WdjZ49Uls=" @@ -33571,6 +34992,19 @@ license = [ ] homepage = "https://codeberg.org/Andrew15-5/text-dirr" +[tfgei."0.1.1"] +url = "https://packages.typst.org/preview/tfgei-0.1.1.tar.gz" +hash = "sha256-Nk6JvmcFqpEMUGjyVOr6S6Pw4H0mT/YTWl3mpK+wG+s=" +typstDeps = [ + "physica_0_9_8", + "unify_0_7_1", +] +description = "Template for making final degree projects in the Computer Science degree at ESEI (University of Vigo" +license = [ + "MIT", +] +homepage = "https://github.com/Kioraga/TFGEI" + [tfgei."0.1.0"] url = "https://packages.typst.org/preview/tfgei-0.1.0.tar.gz" hash = "sha256-1XIxfhmV0qSypxkVwGl1JlKEjlhSZ1QXRu/lrMgpgzA=" @@ -33584,6 +35018,22 @@ license = [ ] homepage = "https://github.com/Kioraga/TFGEI" +[tfguf."0.0.4"] +url = "https://packages.typst.org/preview/tfguf-0.0.4.tar.gz" +hash = "sha256-G600td0sfhO1cUGhRchZMiU3yPnNV9xi4QX+rfD/T2s=" +typstDeps = [ + "mmdr_0_2_1", + "physica_0_9_8", + "t4t_0_4_3", + "tablem_0_3_0", + "unify_0_7_1", +] +description = "Plantilla para hacer TFGs en el Grado en Física de UNIR" +license = [ + "MIT", +] +homepage = "https://github.com/pammacdotnet/TFGUF" + [tfguf."0.0.3"] url = "https://packages.typst.org/preview/tfguf-0.0.3.tar.gz" hash = "sha256-37IYtyMv3zqpZBB08Ywb+7EUGsKMjQu9rrdmQA+LY5k=" @@ -33620,6 +35070,22 @@ license = [ ] homepage = "https://github.com/pammacdotnet/TFGUF" +[tgm-hit-protocol."0.2.1"] +url = "https://packages.typst.org/preview/tgm-hit-protocol-0.2.1.tar.gz" +hash = "sha256-zE7PTjT3puLgWAu86DQDfNkAPlY+HBK7WtqhO/Ok53Y=" +typstDeps = [ + "ccicons_1_0_1", + "datify_1_0_1", + "glossarium_0_5_9", + "linguify_0_5_0", + "outrageous_0_4_1", +] +description = "Protocol template for students of the HIT department at TGM Wien" +license = [ + "MIT", +] +homepage = "https://github.com/TGM-HIT/typst-protocol" + [tgm-hit-protocol."0.2.0"] url = "https://packages.typst.org/preview/tgm-hit-protocol-0.2.0.tar.gz" hash = "sha256-PHqRBHmZrfY70B7GEI41OSJTPauFYf/btQk/CdJLK40=" @@ -33781,6 +35247,16 @@ license = [ ] homepage = "https://github.com/TGM-HIT/typst-diploma-thesis" +[theofig."0.2.0"] +url = "https://packages.typst.org/preview/theofig-0.2.0.tar.gz" +hash = "sha256-Pv8ZdE6J7dGg+fhTticgMm5mimi9qWTtVad04Uz05rI=" +typstDeps = [] +description = "Simple theorem environments based on std.figure" +license = [ + "MIT", +] +homepage = "https://github.com/Danila-Bain/typst-theorems" + [theofig."0.1.0"] url = "https://packages.typst.org/preview/theofig-0.1.0.tar.gz" hash = "sha256-0++2dHCCoJGyw5XAjZLBwsP0z+LNrZQBuztSlXtmclA=" @@ -33841,6 +35317,19 @@ license = [ ] homepage = "https://github.com/nleanba/typst-theoretic" +[theorion."0.5.0"] +url = "https://packages.typst.org/preview/theorion-0.5.0.tar.gz" +hash = "sha256-noK5xvxOL7KSAVUA6TPjdb+gOlxdys2Hac4UTKviLEM=" +typstDeps = [ + "octique_0_1_1", + "showybox_2_0_4", +] +description = "Out-of-the-box, customizable and multilingual theorem environment package" +license = [ + "MIT", +] +homepage = "https://github.com/OrangeX4/typst-theorion" + [theorion."0.4.1"] url = "https://packages.typst.org/preview/theorion-0.4.1.tar.gz" hash = "sha256-Kqa1mPUAuS4XGx6F4jc+EuBAK3lOouEDksPRWBYGFD0=" @@ -34058,6 +35547,16 @@ license = [ ] homepage = "https://github.com/Jzzzi/slide-thu" +[tiago."0.1.0"] +url = "https://packages.typst.org/preview/tiago-0.1.0.tar.gz" +hash = "sha256-6O4OFTacDz3o3G/tkrkREgMZ7ktIqge4XjJyQzVIVHU=" +typstDeps = [] +description = "Draw diagrams in Typst via Diago, a D2 implementation in MoonBit" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/OverflowCat/tiago" + [tiaoma."0.3.0"] url = "https://packages.typst.org/preview/tiaoma-0.3.0.tar.gz" hash = "sha256-xhVlYXBXisOzx2/R+fPNtCwEY/QoQXt071Q3m+qUHms=" @@ -34366,6 +35865,16 @@ license = [ ] homepage = "https://github.com/bastienvoirin/tierpist" +[timble."1.0.0"] +url = "https://packages.typst.org/preview/timble-1.0.0.tar.gz" +hash = "sha256-EcNRvyJW3QY6KF91ftFLSpigeVZXTFySa/isVhEzx0M=" +typstDeps = [] +description = "Draw and style precise time tables with ease" +license = [ + "MPL-2.0", +] +homepage = "https://github.com/Mambouna/timble" + [timeliney."0.4.0"] url = "https://packages.typst.org/preview/timeliney-0.4.0.tar.gz" hash = "sha256-atAcyhjup40j1YQgVE80wk3FNbTS5oxovEDz56yb+pQ=" @@ -34551,6 +36060,45 @@ license = [ "MIT", ] +[tntt."0.5.2"] +url = "https://packages.typst.org/preview/tntt-0.5.2.tar.gz" +hash = "sha256-PotjX2L4s5cfVD3xFyqYUpXxVYbACKLad2Mc6XO3Cfs=" +typstDeps = [ + "cuti_0_4_0", + "lovelace_0_3_0", +] +description = "Tntt is Not an official Typst Thesis Template for Tsinghua university (THU" +license = [ + "MIT", +] +homepage = "https://github.com/chillcicada/tntt" + +[tntt."0.5.1"] +url = "https://packages.typst.org/preview/tntt-0.5.1.tar.gz" +hash = "sha256-xcPAogWsNCgym2ag87z877/K0zyXN4IkvdxuxxOVI88=" +typstDeps = [ + "cuti_0_4_0", + "lovelace_0_3_0", +] +description = "Tntt is Not an official Typst Thesis Template for Tsinghua university (THU" +license = [ + "MIT", +] +homepage = "https://github.com/chillcicada/tntt" + +[tntt."0.5.0"] +url = "https://packages.typst.org/preview/tntt-0.5.0.tar.gz" +hash = "sha256-DlE1Ts/biJYeMX3MPqA2gkRy8HL7GTaPyxkj4mOn2FY=" +typstDeps = [ + "cuti_0_4_0", + "lovelace_0_3_0", +] +description = "Tntt is Not an official Typst Thesis Template for Tsinghua university (THU" +license = [ + "MIT", +] +homepage = "https://github.com/chillcicada/tntt" + [tntt."0.4.1"] url = "https://packages.typst.org/preview/tntt-0.4.1.tar.gz" hash = "sha256-c1sheek5n7fHrPhqWi0HGoOVuftOKr210+fRTs1tjXo=" @@ -34779,6 +36327,16 @@ license = [ ] homepage = "https://codeberg.org/jianweicheong/toffee-tufte" +[tonguetoquill-usaf-memo."2.0.0"] +url = "https://packages.typst.org/preview/tonguetoquill-usaf-memo-2.0.0.tar.gz" +hash = "sha256-2NF+Zf3WU4AW5nCJCYwFbrJAMT476GgjofuxyrZDfdQ=" +typstDeps = [] +description = "Typeset memos that are fully compliant with AFH 33-337 'The Tongue and Quill" +license = [ + "MIT", +] +homepage = "https://github.com/nibsbin/tonguetoquill-usaf-memo" + [tonguetoquill-usaf-memo."1.0.0"] url = "https://packages.typst.org/preview/tonguetoquill-usaf-memo-1.0.0.tar.gz" hash = "sha256-mkwig3bJOc9vrJyLOC78yXp+Pez6G6Nyw2RVZbSav6Y=" @@ -34841,6 +36399,21 @@ license = [ ] homepage = "https://codeberg.org/a5s/toot" +[touying."0.7.0"] +url = "https://packages.typst.org/preview/touying-0.7.0.tar.gz" +hash = "sha256-t4LnzU+reUaYCwMDS1iQdk3JhORomGRe9ByOxTHupHY=" +typstDeps = [ + "cetz_0_4_2", + "fletcher_0_5_8", + "numbly_0_1_0", + "theorion_0_5_0", +] +description = "A powerful package for creating presentation slides in Typst" +license = [ + "MIT", +] +homepage = "https://github.com/touying-typ/touying" + [touying."0.6.3"] url = "https://packages.typst.org/preview/touying-0.6.3.tar.gz" hash = "sha256-DQpa2oVNd4AvvWOzJOWJSTrLVa3kDzrlouD59TNtJkM=" @@ -35118,6 +36691,18 @@ license = [ ] homepage = "https://github.com/touying-typ/touying" +[touying-aqua."0.7.0"] +url = "https://packages.typst.org/preview/touying-aqua-0.7.0.tar.gz" +hash = "sha256-fBF3H0ozQSmUKXQj8QXOiwVumWXia29cNNV0PURoaas=" +typstDeps = [ + "touying_0_7_0", +] +description = "A powerful package for creating presentation slides in Typst" +license = [ + "MIT", +] +homepage = "https://github.com/touying-typ/touying" + [touying-aqua."0.6.3"] url = "https://packages.typst.org/preview/touying-aqua-0.6.3.tar.gz" hash = "sha256-aFYr32ubFUVMQXnDOQqrizkAqGd2bz+oyerKT/9doOs=" @@ -35377,6 +36962,21 @@ license = [ ] homepage = "https://github.com/RaVincentHuang/touying-dids" +[touying-endfield."0.1.1"] +url = "https://packages.typst.org/preview/touying-endfield-0.1.1.tar.gz" +hash = "sha256-8Q52a2ThW06+8Dow3zEcdjaysllAG/ypxvOa6GOIrZE=" +typstDeps = [ + "numbly_0_1_0", + "sicons_16_0_0", + "touying_0_6_3", + "zh-kit_0_1_0", +] +description = "Touying presentation theme inspired by Arknights: Endfield" +license = [ + "MIT", +] +homepage = "https://github.com/leostudiooo/typst-touying-theme-endfield" + [touying-endfield."0.1.0"] url = "https://packages.typst.org/preview/touying-endfield-0.1.0.tar.gz" hash = "sha256-kcR9/S0EfbWCsUTHItb3sP+wP9YrmN5KzgKlTeu3WV8=" @@ -35441,6 +37041,19 @@ license = [ ] homepage = "https://github.com/Quaternijkon/Typst_FLOW" +[touying-greyc-ambrosia."0.1.0"] +url = "https://packages.typst.org/preview/touying-greyc-ambrosia-0.1.0.tar.gz" +hash = "sha256-5EFYOMxzJJdwiUatoK+/PNJ8HIeKnQ3QXZfazItExK4=" +typstDeps = [ + "numbly_0_1_0", + "touying_0_6_2", +] +description = "Touying unofficial theme for the GREYC laboratory at University Caen Normandy, France" +license = [ + "MIT", +] +homepage = "https://github.com/inspiros/touying-greyc-ambrosia" + [touying-htwk-stripes."1.0.0"] url = "https://packages.typst.org/preview/touying-htwk-stripes-1.0.0.tar.gz" hash = "sha256-1Q23yIUtmfgA6Q62xIHCcZLsPUE85V/vvRbI+FJ2FNg=" @@ -35588,6 +37201,20 @@ license = [ ] homepage = "https://github.com/kazuyanagimoto/quarto-clean-typst" +[touying-quick."0.4.1"] +url = "https://packages.typst.org/preview/touying-quick-0.4.1.tar.gz" +hash = "sha256-NcGth1yAhjdpyBaFZb89QQAdweCVPL2z7GCgMRGiSbE=" +typstDeps = [ + "codly_1_3_0", + "theorion_0_5_0", + "touying_0_6_3", +] +description = "A quick-start template based on touying for academic reports" +license = [ + "MIT", +] +homepage = "https://github.com/ivaquero/touying-quick.git" + [touying-quick."0.4.0"] url = "https://packages.typst.org/preview/touying-quick-0.4.0.tar.gz" hash = "sha256-2u2pqM5aITpqsv/QkTzp8CRrMw2XtZ93+cY5Z9TYYrA=" @@ -35960,6 +37587,20 @@ license = [ ] homepage = "https://github.com/spidersouris/touying-unistra-pristine" +[touying-wave-hhu."0.2.0"] +url = "https://packages.typst.org/preview/touying-wave-hhu-0.2.0.tar.gz" +hash = "sha256-Ng3+kkw/MN+UOkoJLQ8cddEhsdkGtJhIXkw4VDIefow=" +typstDeps = [ + "iconic-salmon-fa_1_1_0", + "showybox_2_0_4", + "touying_0_6_3", +] +description = "Touying Slide Theme for Hohai University" +license = [ + "MIT", +] +homepage = "https://github.com/HPDell/touying-wave-hhu" + [touying-wave-hhu."0.1.0"] url = "https://packages.typst.org/preview/touying-wave-hhu-0.1.0.tar.gz" hash = "sha256-AqUTvD1lD2ByEEsKZfTLEnNvKwSUFbqZM5iupS8BQ8E=" @@ -36308,6 +37949,19 @@ license = [ ] homepage = "https://github.com/jomaway/typst-teacher-templates" +[ttt-utils."0.2.0"] +url = "https://packages.typst.org/preview/ttt-utils-0.2.0.tar.gz" +hash = "sha256-FIBImdGulKmjyttWu5rM/reDgkUgYEI9lsBahLbykD8=" +typstDeps = [ + "suiji_0_5_1", + "valkyrie_0_2_2", +] +description = "A collection of tools to make a teachers life easier" +license = [ + "MIT", +] +homepage = "https://github.com/jomaway/typst-teacher-templates" + [ttt-utils."0.1.4"] url = "https://packages.typst.org/preview/ttt-utils-0.1.4.tar.gz" hash = "sha256-cB/uCFCu/Zo5dyEbtuARs7YzdETXIRAxfu+jc0PV8aI=" @@ -36425,6 +38079,21 @@ license = [ "MIT", ] +[tufted."0.1.1"] +url = "https://packages.typst.org/preview/tufted-0.1.1.tar.gz" +hash = "sha256-/5Ok9zmLPB1n8AmtShtE8TdduGWMFkvWs+3C7fvOTx8=" +typstDeps = [ + "citegeist_0_2_2", + "cmarker_0_1_8", + "lilaq_0_6_0", + "mitex_0_2_6", +] +description = "Responsive web layout with wide margins, elegant sidenotes, and restrained typography" +license = [ + "MIT", +] +homepage = "https://github.com/vsheg/tufted" + [tufted."0.1.0"] url = "https://packages.typst.org/preview/tufted-0.1.0.tar.gz" hash = "sha256-BcSO41/udgeklcgPfSR0iQYlC9doyRAaEbCgoM06FyM=" @@ -36683,6 +38352,19 @@ license = [ ] homepage = "https://github.com/QuantumRange/twig" +[twilight-book."0.1.8"] +url = "https://packages.typst.org/preview/twilight-book-0.1.8.tar.gz" +hash = "sha256-MPM4vuCaTA+tAEEOOx2cuLcBc84QsD00zc1tuSP0YaE=" +typstDeps = [ + "one-liner_0_2_0", + "twilight-book_0_1_6", +] +description = "Provide numerous light and dark themes" +license = [ + "MIT", +] +homepage = "https://github.com/CrossDark/TwilightBook/" + [twilight-book."0.1.6"] url = "https://packages.typst.org/preview/twilight-book-0.1.6.tar.gz" hash = "sha256-40l9GWIXZaVpb/HNUc6Qlct4p6pm/oZDE7A+cxnkQ4Q=" @@ -36747,6 +38429,16 @@ license = [ ] homepage = "https://github.com/sgomezsal/typ2anki" +[typcas."0.2.1"] +url = "https://packages.typst.org/preview/typcas-0.2.1.tar.gz" +hash = "sha256-LETXer/gauB+dgLWHeKMJcwsUcFrBaromCaVl6t/4gY=" +typstDeps = [] +description = "Task-centric symbolic CAS for Typst with steps and domain metadata" +license = [ + "MIT", +] +homepage = "https://github.com/sihooleebd/typCAS" + [typcas."0.1.0"] url = "https://packages.typst.org/preview/typcas-0.1.0.tar.gz" hash = "sha256-euejP/mp0sOtM9vKPaqITqXAZ4aj2yx/mIX8DkPWffM=" @@ -37056,6 +38748,16 @@ license = [ ] homepage = "https://github.com/Typsium/typsium-atomic" +[typsium-ghs."0.1.1"] +url = "https://packages.typst.org/preview/typsium-ghs-0.1.1.tar.gz" +hash = "sha256-P87Rqy0yj7+QIisDxWqY7PagKC8/stWfspl7IOe4xZg=" +typstDeps = [] +description = "Display and format Hazard & Precautionary statements and GHS pictograms in Typst" +license = [ + "MIT", +] +homepage = "https://github.com/Typsium/typsium-ghs" + [typsium-ghs."0.1.0"] url = "https://packages.typst.org/preview/typsium-ghs-0.1.0.tar.gz" hash = "sha256-TLMDZEs899q4NeMxssgpfudPLbUClXeo5HA1fimtX8E=" @@ -37176,6 +38878,16 @@ license = [ ] homepage = "https://github.com/manjavacas/typslides" +[typsqlite."0.1.0"] +url = "https://packages.typst.org/preview/typsqlite-0.1.0.tar.gz" +hash = "sha256-nRKKnDSiajdRjZyNNFAblPWGL0N87WmNL/iLzcDhWSA=" +typstDeps = [] +description = "Query SQLite databases at compile time" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/jrossi/typst-wasm-sqlite" + [typsy."0.2.2"] url = "https://packages.typst.org/preview/typsy-0.2.2.tar.gz" hash = "sha256-tv+DWBqgSU6VfZPnO7GPg02bZLTG/QIr9cMxMLUUiL8=" @@ -37342,6 +39054,21 @@ license = [ ] homepage = "https://github.com/angelonazzaro/typxidian" +[uastw-thesis."0.1.0"] +url = "https://packages.typst.org/preview/uastw-thesis-0.1.0.tar.gz" +hash = "sha256-OSB1L2Y2+f1qFKig4HdRJhfBWQHbZVF5dHrG9j1f9R4=" +typstDeps = [ + "codly_1_3_0", + "fletcher_0_5_8", + "gentle-clues_1_3_1", + "in-dexter_0_7_2", +] +description = "Typst template for bachelor and master thesis at UAS Technikum Wien" +license = [ + "GPL-3.0-or-later", +] +homepage = "https://github.com/mhorauer/typst-packages" + [ucpc-solutions."0.1.1"] url = "https://packages.typst.org/preview/ucpc-solutions-0.1.1.tar.gz" hash = "sha256-7zHpbpKm0aUQ2UeOqUMG4ZayEmcHG9bYi6+5elZHaXk=" @@ -37362,6 +39089,19 @@ license = [ ] homepage = "https://github.com/ShapeLayer/ucpc-solutions__typst" +[ucph-nielsine-touying."0.1.3"] +url = "https://packages.typst.org/preview/ucph-nielsine-touying-0.1.3.tar.gz" +hash = "sha256-rq9j2T/CZ8dG0kKw+gbZbzffeHY2msVScC94JD8hpiE=" +typstDeps = [ + "theorion_0_5_0", + "touying_0_6_3", +] +description = "Slide template built on Touying for the University of Copenhagen" +license = [ + "MIT", +] +homepage = "https://github.com/jorgenhost/ucph-nielsine-touying" + [ucph-nielsine-touying."0.1.2"] url = "https://packages.typst.org/preview/ucph-nielsine-touying-0.1.2.tar.gz" hash = "sha256-ElidoO/ZHhj1Qr/QT5omgPB+FMYN1d81UzY0mBz7Ok8=" @@ -37400,6 +39140,26 @@ license = [ ] homepage = "https://github.com/jorgenhost/ucph-nielsine-touying" +[ufpr-unofficial."2022.1.0"] +url = "https://packages.typst.org/preview/ufpr-unofficial-2022.1.0.tar.gz" +hash = "sha256-2KX4g+17pfzxEg9DJiQKnpmn+C8fzYvjvg4vv+UWbf0=" +typstDeps = [] +description = "An unofficial Typst template for academic work following ABNT standards, designed for UFPR students" +license = [ + "Unlicense", +] +homepage = "https://github.com/chrispdobb/ufpr-unofficial" + +[ufpr-unofficial."2022.0.0"] +url = "https://packages.typst.org/preview/ufpr-unofficial-2022.0.0.tar.gz" +hash = "sha256-cYi7BQS5cD2qxWiDNMLhL86p1rJXaBhYVsa5pv2+Kpc=" +typstDeps = [] +description = "An unofficial Typst template for academic work following ABNT standards, designed for UFPR students" +license = [ + "Unlicense", +] +homepage = "https://github.com/chrispdobb/ufpr-unofficial" + [ufscholar."0.2.0"] url = "https://packages.typst.org/preview/ufscholar-0.2.0.tar.gz" hash = "sha256-LqPG8m7gsKNC0AfXXy2ahd/6yxPhLPdIKgsDtks57ng=" @@ -37525,6 +39285,18 @@ license = [ ] homepage = "https://github.com/MDLC01/unichar" +[unidep."0.1.1"] +url = "https://packages.typst.org/preview/unidep-0.1.1.tar.gz" +hash = "sha256-CiVBJNspKQ0JoQaiP6CmLKxT8uD1rAXXpykq1+LKkqA=" +typstDeps = [ + "cetz_0_4_2", +] +description = "Render beautiful, customizable Universal Dependencies (CoNLL-U) dependency trees" +license = [ + "MIT", +] +homepage = "https://github.com/rice8y/unidep" + [unidep."0.1.0"] url = "https://packages.typst.org/preview/unidep-0.1.0.tar.gz" hash = "sha256-hynFigkXN5HkFMBBmOOw/qBtR451XC7ru0W4Tl6SVaE=" @@ -37979,6 +39751,16 @@ license = [ ] homepage = "https://github.com/TomVer99/FHICT-typst-template" +[unofficial-fhs-thesis."0.1.0"] +url = "https://packages.typst.org/preview/unofficial-fhs-thesis-0.1.0.tar.gz" +hash = "sha256-o3xn1M0TXySAzdWIVtoD5iDKlYdJhuq9eRNS2Mf1peg=" +typstDeps = [] +description = "Projects and BA/MA thesis FH Salzburg" +license = [ + "MIT", +] +homepage = "https://its-git.fh-salzburg.ac.at/fhs46581/fhs-its-thesis-typst" + [unofficial-fontys-paper-template."0.1.0"] url = "https://packages.typst.org/preview/unofficial-fontys-paper-template-0.1.0.tar.gz" hash = "sha256-Om8rgOfWADg2tV36qv+PonSZWPBbpCjNw0y7hGobVQU=" @@ -38149,6 +39931,32 @@ license = [ ] homepage = "https://github.com/GrooveWJH/unofficial-sdu-thesis" +[unofficial-sorbonne-presentation."0.3.1"] +url = "https://packages.typst.org/preview/unofficial-sorbonne-presentation-0.3.1.tar.gz" +hash = "sha256-S/bw84D3/Kv9WKSsiC9tZdYmwQRSA8U/JYoF5IU1C7k=" +typstDeps = [ + "cetz_0_4_2", + "navigator_0_1_3", + "presentate_0_2_5", +] +description = "A unofficial structured presentation theme for Sorbonne University and IPLESP, based on presentate and navigator" +license = [ + "MIT", +] + +[unofficial-sorbonne-presentation."0.3.0"] +url = "https://packages.typst.org/preview/unofficial-sorbonne-presentation-0.3.0.tar.gz" +hash = "sha256-1JIspoa4v2QLQ6PGJYO57m/SX9QbxgjlsmCFSw1/+W4=" +typstDeps = [ + "cetz_0_4_2", + "navigator_0_1_3", + "presentate_0_2_5", +] +description = "A unofficial structured presentation theme for Sorbonne University and IPLESP, based on presentate and navigator" +license = [ + "MIT", +] + [unofficial-sorbonne-presentation."0.2.0"] url = "https://packages.typst.org/preview/unofficial-sorbonne-presentation-0.2.0.tar.gz" hash = "sha256-nscZhrPYuWklaL+U+ED68ZngFbUfNb0th8PSaFVNLDE=" @@ -38419,6 +40227,18 @@ license = [ ] homepage = "https://codeberg.org/Kuchenmampfer/upb-corporate-design-slides" +[upsetter."0.1.0"] +url = "https://packages.typst.org/preview/upsetter-0.1.0.tar.gz" +hash = "sha256-PndFbjLaL22xt187EGvYOBqaRRERYHr5iABhQlFsyLU=" +typstDeps = [ + "cetz_0_4_2", +] +description = "Render set intersections using UpSet plots" +license = [ + "BSD-2-Clause", +] +homepage = "https://github.com/goll72/upsetter" + [use-academicons."0.1.0"] url = "https://packages.typst.org/preview/use-academicons-0.1.0.tar.gz" hash = "sha256-AoXb2XZQvfZIKXRidR+tT1Iv6pPxog1x1cZOHGz8f8s=" @@ -38429,6 +40249,36 @@ license = [ ] homepage = "https://github.com/bpkleer/typst-academicons" +[use-tabler-icons."0.20.0"] +url = "https://packages.typst.org/preview/use-tabler-icons-0.20.0.tar.gz" +hash = "sha256-bMtfaZKgNm9Te+wMlut1EPhhWz1ID4tP528SlQlfmmo=" +typstDeps = [] +description = "Tabler Icons for Typst using webfont" +license = [ + "MIT", +] +homepage = "https://github.com/zyf722/typst-tabler-icons" + +[use-tabler-icons."0.19.1"] +url = "https://packages.typst.org/preview/use-tabler-icons-0.19.1.tar.gz" +hash = "sha256-tC7EMoe8t7AIiKlC4usl7Rlt82hmR6uCBDyTDqp97zk=" +typstDeps = [] +description = "Tabler Icons for Typst using webfont" +license = [ + "MIT", +] +homepage = "https://github.com/zyf722/typst-tabler-icons" + +[use-tabler-icons."0.19.0"] +url = "https://packages.typst.org/preview/use-tabler-icons-0.19.0.tar.gz" +hash = "sha256-n5s6WVbNi4GBEr52+fiPwoz1YZshy5X3cJ1hDupUNUc=" +typstDeps = [] +description = "Tabler Icons for Typst using webfont" +license = [ + "MIT", +] +homepage = "https://github.com/zyf722/typst-tabler-icons" + [use-tabler-icons."0.18.0"] url = "https://packages.typst.org/preview/use-tabler-icons-0.18.0.tar.gz" hash = "sha256-DttcLEUWUQRVC7ClBoJ4EWibBHEStl5V1ODr7JGqZFw=" @@ -38769,6 +40619,18 @@ license = [ ] homepage = "https://git.ortolo.eu/typst-varioref.git/" +[vartable."0.2.4"] +url = "https://packages.typst.org/preview/vartable-0.2.4.tar.gz" +hash = "sha256-a8oIka2nsN1bULicxgBlEJ9WHBDCqJEtGQLUPwxtnlk=" +typstDeps = [ + "cetz_0_4_2", +] +description = "A simple package to make variation table" +license = [ + "MIT", +] +homepage = "https://github.com/Le-foucheur/Typst-VarTable" + [vartable."0.2.3"] url = "https://packages.typst.org/preview/vartable-0.2.3.tar.gz" hash = "sha256-ywR3RoomMM2YTwZsQOLetX1g5VzZGdlj+27pBV+wTpo=" @@ -39113,6 +40975,27 @@ license = [ ] homepage = "https://github.com/sasetz/fiit_template" +[visillos-excelencia."0.1.0"] +url = "https://packages.typst.org/preview/visillos-excelencia-0.1.0.tar.gz" +hash = "sha256-Ss3aNOfvXp1+ucT4ZefUi1RE8HyL9+h/ux0qfWMz8/E=" +typstDeps = [ + "lilaq_0_6_0", +] +description = "Unofficial template for Excellence Baccalaureate projects at IES Carmen Martín Gaite (Spain) // Plantilla para los proyectos del Bachillerato de Excelencia del IES Carmen Martín Gaite" +license = [ + "MIT", +] + +[vitis."0.1.0"] +url = "https://packages.typst.org/preview/vitis-0.1.0.tar.gz" +hash = "sha256-44WkcIdGcxy/EsrknhCxwN2Q0sX9vjAqbqCCw9WuB70=" +typstDeps = [] +description = "An automatic organizer for beautiful line breaking in scripts without whitespace word separators" +license = [ + "Apache-2.0", +] +homepage = "https://github.com/3w36zj6/typst-vitis" + [vlna."0.1.1"] url = "https://packages.typst.org/preview/vlna-0.1.1.tar.gz" hash = "sha256-g26sPFG6Jb92aI657KAW1sbgaCZzKqUMiCqvha1CdcU=" @@ -39701,6 +41584,16 @@ license = [ ] homepage = "https://github.com/MDLC01/xodec" +[xyznote."0.5.0"] +url = "https://packages.typst.org/preview/xyznote-0.5.0.tar.gz" +hash = "sha256-hllDryRqz/+mPneS/lovEaQUNJd8sGUaXMv6P7LsIsQ=" +typstDeps = [] +description = "Simple and Functional Typst Note Template" +license = [ + "GPL-3.0-or-later", +] +homepage = "https://github.com/wardenxyz/xyznote" + [xyznote."0.4.0"] url = "https://packages.typst.org/preview/xyznote-0.4.0.tar.gz" hash = "sha256-XTTZF60IxFdXkd3O9qMvR01PkNjgqLmRPVfYJNIP2ZY=" @@ -40153,6 +42046,16 @@ license = [ ] homepage = "https://github.com/langonne/zen-utbm-report" +[zen-zine."0.3.0"] +url = "https://packages.typst.org/preview/zen-zine-0.3.0.tar.gz" +hash = "sha256-dfYg9l75BqJZ75KXQ7sy7pTmU0bwsLyCfsDdCFjfs0Y=" +typstDeps = [] +description = "Excellently type-set a fun little zine" +license = [ + "MIT", +] +homepage = "https://github.com/tomeichlersmith/zen-zine" + [zen-zine."0.2.1"] url = "https://packages.typst.org/preview/zen-zine-0.2.1.tar.gz" hash = "sha256-gUDurcALP9Yv3AvqhYJ2tsjfDrc2w6ObjxjvvSRx6ww=" diff --git a/pkgs/by-name/us/usage/package.nix b/pkgs/by-name/us/usage/package.nix index fc64c2bd80d8..58e6a1183629 100644 --- a/pkgs/by-name/us/usage/package.nix +++ b/pkgs/by-name/us/usage/package.nix @@ -12,16 +12,20 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "usage"; - version = "3.0.0"; + version = "3.2.0"; src = fetchFromGitHub { owner = "jdx"; repo = "usage"; tag = "v${finalAttrs.version}"; - hash = "sha256-KC3fIfFnXn5K1E1CyHLADaEesXFilCrIe9MYOH/fkrI="; + hash = "sha256-0yonwl/2BIkGUs0uOBP+Pjo93NvLVK4QQQj/K4C4NNY="; }; - cargoHash = "sha256-RNeHa3V4oCvtiR6/ntTegKl62ByWZbFeliFJVgsHYrQ="; + cargoHash = "sha256-jxTN+La7Ye2okRZGAY6niIvvRf2E4vFFHd1nny7JJDo="; + + patches = [ + ./use-bin-exe-env.patch + ]; postPatch = '' substituteInPlace ./examples/*.sh \ diff --git a/pkgs/by-name/us/usage/use-bin-exe-env.patch b/pkgs/by-name/us/usage/use-bin-exe-env.patch new file mode 100644 index 000000000000..832881faeb85 --- /dev/null +++ b/pkgs/by-name/us/usage/use-bin-exe-env.patch @@ -0,0 +1,17 @@ +diff --git a/cli/tests/shell_completions_integration.rs b/cli/tests/shell_completions_integration.rs +index 815c44c..51b5dd9 100644 +--- a/cli/tests/shell_completions_integration.rs ++++ b/cli/tests/shell_completions_integration.rs +@@ -25,6 +25,13 @@ fn run_complete_word(usage_bin: &Path, shell: &str, spec_file: &Path, words: &[& + + /// Build the usage binary and return its path + fn build_usage_binary() -> PathBuf { ++ if let Some(usage_path) = std::env::var("CARGO_BIN_EXE_usage") ++ .ok() ++ .filter(|s| !s.is_empty()) ++ { ++ return PathBuf::from(usage_path); ++ } ++ + let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + let workspace_root = manifest_dir.parent().unwrap(); diff --git a/pkgs/by-name/vf/vfox/package.nix b/pkgs/by-name/vf/vfox/package.nix index 28c75edecc79..67b4c3d73e23 100644 --- a/pkgs/by-name/vf/vfox/package.nix +++ b/pkgs/by-name/vf/vfox/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "vfox"; - version = "1.0.6"; + version = "1.0.7"; src = fetchFromGitHub { owner = "version-fox"; repo = "vfox"; tag = "v${finalAttrs.version}"; - hash = "sha256-pPsHR4kO4/b0VDz7y+iMwalJibjAzu6A2QwkBMTys7E="; + hash = "sha256-nDwzd+4yq5NshS01z/VUbeF9eO0IDcaNQ41bAjIAHuY="; }; vendorHash = "sha256-494nqL6KiUk4VeKlG9YHFpgACgaYC3SR1I1EViD71Jw="; diff --git a/pkgs/by-name/wa/wastebin/package.nix b/pkgs/by-name/wa/wastebin/package.nix index e04903cb18fa..b555e9e670ca 100644 --- a/pkgs/by-name/wa/wastebin/package.nix +++ b/pkgs/by-name/wa/wastebin/package.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "wastebin"; - version = "3.4.0"; + version = "3.4.1"; src = fetchFromGitHub { owner = "matze"; repo = "wastebin"; rev = finalAttrs.version; - hash = "sha256-cujMs7R6CBSsoQ3p8PyHAJYwWjd8NGYX+qMB4ntrorg="; + hash = "sha256-435d/MBLRBvJ5LQ2ohhIOtPmHNjnWQCp1wVS+Wv8t6U="; }; - cargoHash = "sha256-wS4WkOjaDTlrIEjeSTmEqzfC1XZgXQUTqpfs7FYr60Y="; + cargoHash = "sha256-S9aQsdnpq/3D6nnRG+cCIM5Cljcax4+KxavRj3kxeQo="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/by-name/wi/wireguard-tools/package.nix b/pkgs/by-name/wi/wireguard-tools/package.nix index 025e1b9912b7..83f30ed50d46 100644 --- a/pkgs/by-name/wi/wireguard-tools/package.nix +++ b/pkgs/by-name/wi/wireguard-tools/package.nix @@ -90,6 +90,7 @@ stdenv.mkDerivation (finalAttrs: { maintainers = with lib.maintainers; [ zx2c4 ma27 + kaynetik ]; mainProgram = "wg"; platforms = lib.platforms.unix; diff --git a/pkgs/by-name/wi/wireguard-ui/package.nix b/pkgs/by-name/wi/wireguard-ui/package.nix index 0c96cf6d288a..916ec10327a4 100644 --- a/pkgs/by-name/wi/wireguard-ui/package.nix +++ b/pkgs/by-name/wi/wireguard-ui/package.nix @@ -75,7 +75,10 @@ buildGoModule (finalAttrs: { homepage = "https://github.com/ngoduykhanh/wireguard-ui"; license = lib.licenses.mit; platforms = lib.platforms.unix; - maintainers = with lib.maintainers; [ bot-wxt1221 ]; + maintainers = with lib.maintainers; [ + bot-wxt1221 + kaynetik + ]; mainProgram = "wireguard-ui"; }; }) diff --git a/pkgs/by-name/ya/yabai/package.nix b/pkgs/by-name/ya/yabai/package.nix index 486ba8436fe3..5cced3bfb69c 100644 --- a/pkgs/by-name/ya/yabai/package.nix +++ b/pkgs/by-name/ya/yabai/package.nix @@ -14,7 +14,7 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "yabai"; - version = "7.1.17"; + version = "7.1.18"; src = finalAttrs.passthru.sources.${stdenv.hostPlatform.system} @@ -66,13 +66,13 @@ stdenv.mkDerivation (finalAttrs: { # See the comments on https://github.com/NixOS/nixpkgs/pull/188322 for more information. "aarch64-darwin" = fetchzip { url = "https://github.com/asmvik/yabai/releases/download/v${finalAttrs.version}/yabai-v${finalAttrs.version}.tar.gz"; - hash = "sha256-LMR5YMNNmDDLOMhRKiFIE3+JaEZiRTyGAO1o0LSDVTQ="; + hash = "sha256-DAMSbAO+Azb+3yyJidBHnB9JWALiW/rUItzBStzK6SU="; }; "x86_64-darwin" = fetchFromGitHub { owner = "asmvik"; repo = "yabai"; rev = "v${finalAttrs.version}"; - hash = "sha256-XBJUh2l1DurftKZtved0D4LXe+kQ5od9SfIL6J/ymKI="; + hash = "sha256-go3CsFxJCHpEJ8EGv9B5pXt/1AifGLM8S5TIXkhKgDc="; }; }; diff --git a/pkgs/by-name/ze/zed-editor/package.nix b/pkgs/by-name/ze/zed-editor/package.nix index 2f7589ba2e84..b8a6156adf63 100644 --- a/pkgs/by-name/ze/zed-editor/package.nix +++ b/pkgs/by-name/ze/zed-editor/package.nix @@ -111,7 +111,7 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "zed-editor"; - version = "0.230.0"; + version = "0.230.1"; outputs = [ "out" @@ -124,7 +124,7 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "zed-industries"; repo = "zed"; tag = "v${finalAttrs.version}"; - hash = "sha256-vZCaaTsQedHA+5twcVVpFHqQUD/RArmbHKQtbr33mb4="; + hash = "sha256-J+WnR0xGMWS5m8FWQfTwRCZckxt2Y5kQy06TvpYZks4="; }; postPatch = '' @@ -150,7 +150,7 @@ rustPlatform.buildRustPackage (finalAttrs: { rm -r $out/git/*/candle-book/ ''; - cargoHash = "sha256-eSEk/6iHwtZF9Qx7dQN3l2/uaC8MR28lFwbBEUWVNs0="; + cargoHash = "sha256-EbRLFIKpPnfyGeh7jHVDilez++4elZ1rz2iO3U9XOpQ="; nativeBuildInputs = [ cmake diff --git a/pkgs/by-name/zo/zoxide/package.nix b/pkgs/by-name/zo/zoxide/package.nix index 877ea5379d04..4927ade45dc5 100644 --- a/pkgs/by-name/zo/zoxide/package.nix +++ b/pkgs/by-name/zo/zoxide/package.nix @@ -76,6 +76,7 @@ rustPlatform.buildRustPackage (finalAttrs: { SuperSandro2000 matthiasbeyer ryan4yin + kaynetik ]; mainProgram = "zoxide"; }; diff --git a/pkgs/desktops/expidus/calculator/default.nix b/pkgs/desktops/expidus/calculator/default.nix deleted file mode 100644 index f005dcf52969..000000000000 --- a/pkgs/desktops/expidus/calculator/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ - lib, - flutter, - fetchFromGitHub, -}: -flutter.buildFlutterApplication rec { - pname = "expidus-calculator"; - version = "0.1.1-alpha"; - - src = fetchFromGitHub { - owner = "ExpidusOS"; - repo = "calculator"; - rev = version; - hash = "sha256-O3LHp10Fo3PW3zoN7mFSQEKh+AAaR+IqkRtc6nQrIZE="; - }; - - flutterBuildFlags = [ - "--dart-define=COMMIT_HASH=a5d8f54404b9994f83beb367a1cd11e04a6420cb" - ]; - - pubspecLock = lib.importJSON ./pubspec.lock.json; - - gitHashes = { - libtokyo = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU="; - libtokyo_flutter = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU="; - }; - - postInstall = '' - rm $out/bin/calculator - ln -s $out/app/$pname/calculator $out/bin/expidus-calculator - - mkdir -p $out/share/applications - mv $out/app/$pname/data/com.expidusos.calculator.desktop $out/share/applications - - mkdir -p $out/share/icons - mv $out/app/$pname/data/com.expidusos.calculator.png $out/share/icons - - mkdir -p $out/share/metainfo - mv $out/app/$pname/data/com.expidusos.calculator.metainfo.xml $out/share/metainfo - - substituteInPlace "$out/share/applications/com.expidusos.calculator.desktop" \ - --replace "Exec=calculator" "Exec=$out/bin/expidus-calculator" \ - --replace "Icon=com.expidusos.calculator" "Icon=$out/share/icons/com.expidusos.calculator.png" - ''; - - meta = { - broken = true; - description = "ExpidusOS Calculator"; - homepage = "https://expidusos.com"; - license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ RossComputerGuy ]; - platforms = [ - "x86_64-linux" - "aarch64-linux" - ]; - mainProgram = "expidus-calculator"; - }; -} diff --git a/pkgs/desktops/expidus/calculator/pubspec.lock.json b/pkgs/desktops/expidus/calculator/pubspec.lock.json deleted file mode 100644 index a2e6f2e46776..000000000000 --- a/pkgs/desktops/expidus/calculator/pubspec.lock.json +++ /dev/null @@ -1,790 +0,0 @@ -{ - "packages": { - "args": { - "dependency": "transitive", - "description": { - "name": "args", - "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.2" - }, - "async": { - "dependency": "transitive", - "description": { - "name": "async", - "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.11.0" - }, - "bitsdojo_window": { - "dependency": "direct main", - "description": { - "name": "bitsdojo_window", - "sha256": "1118bc1cd16e6f358431ca4473af57cc1b287d2ceab46dfab6d59a9463160622", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.5" - }, - "bitsdojo_window_linux": { - "dependency": "transitive", - "description": { - "name": "bitsdojo_window_linux", - "sha256": "d3804a30315fcbb43b28acc86d1180ce0be22c0c738ad2da9e5ade4d8dbd9655", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.3" - }, - "bitsdojo_window_macos": { - "dependency": "transitive", - "description": { - "name": "bitsdojo_window_macos", - "sha256": "d2a9886c74516c5b84c1dd65ab8ee5d1c52055b265ebf0e7d664dee28366b521", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.3" - }, - "bitsdojo_window_platform_interface": { - "dependency": "transitive", - "description": { - "name": "bitsdojo_window_platform_interface", - "sha256": "65daa015a0c6dba749bdd35a0f092e7a8ba8b0766aa0480eb3ef808086f6e27c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.2" - }, - "bitsdojo_window_windows": { - "dependency": "transitive", - "description": { - "name": "bitsdojo_window_windows", - "sha256": "8766a40aac84a6d7bdcaa716b24997e028fc9a9a1800495fc031721fd5a22ed0", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.5" - }, - "boolean_selector": { - "dependency": "transitive", - "description": { - "name": "boolean_selector", - "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "characters": { - "dependency": "transitive", - "description": { - "name": "characters", - "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.0" - }, - "clock": { - "dependency": "transitive", - "description": { - "name": "clock", - "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.1" - }, - "collection": { - "dependency": "transitive", - "description": { - "name": "collection", - "sha256": "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.17.1" - }, - "crypto": { - "dependency": "transitive", - "description": { - "name": "crypto", - "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.3" - }, - "fake_async": { - "dependency": "transitive", - "description": { - "name": "fake_async", - "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.1" - }, - "ffi": { - "dependency": "transitive", - "description": { - "name": "ffi", - "sha256": "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.0" - }, - "file": { - "dependency": "transitive", - "description": { - "name": "file", - "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.1.4" - }, - "filesize": { - "dependency": "transitive", - "description": { - "name": "filesize", - "sha256": "f53df1f27ff60e466eefcd9df239e02d4722d5e2debee92a87dfd99ac66de2af", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.1" - }, - "flutter": { - "dependency": "direct main", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_adaptive_scaffold": { - "dependency": "direct main", - "description": { - "name": "flutter_adaptive_scaffold", - "sha256": "3e78be8b9c95b1c9832b2f8ec4a845adac205c4bb5e7bd3fb204b07990229167", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.7+1" - }, - "flutter_lints": { - "dependency": "direct dev", - "description": { - "name": "flutter_lints", - "sha256": "a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.3" - }, - "flutter_localizations": { - "dependency": "direct main", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_markdown": { - "dependency": "direct main", - "description": { - "name": "flutter_markdown", - "sha256": "d4a1cb250c4e059586af0235f32e02882860a508e189b61f2b31b8810c1e1330", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.6.17+2" - }, - "flutter_test": { - "dependency": "direct dev", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_web_plugins": { - "dependency": "transitive", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "http": { - "dependency": "transitive", - "description": { - "name": "http", - "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.13.6" - }, - "http_parser": { - "dependency": "transitive", - "description": { - "name": "http_parser", - "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.0.2" - }, - "intl": { - "dependency": "transitive", - "description": { - "name": "intl", - "sha256": "a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.18.0" - }, - "js": { - "dependency": "transitive", - "description": { - "name": "js", - "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.6.7" - }, - "libtokyo": { - "dependency": "direct main", - "description": { - "path": "packages/libtokyo", - "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", - "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", - "url": "https://github.com/ExpidusOS/libtokyo.git" - }, - "source": "git", - "version": "0.1.0" - }, - "libtokyo_flutter": { - "dependency": "direct main", - "description": { - "path": "packages/libtokyo_flutter", - "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", - "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", - "url": "https://github.com/ExpidusOS/libtokyo.git" - }, - "source": "git", - "version": "0.1.0" - }, - "lints": { - "dependency": "transitive", - "description": { - "name": "lints", - "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "markdown": { - "dependency": "direct main", - "description": { - "name": "markdown", - "sha256": "acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.1.1" - }, - "matcher": { - "dependency": "transitive", - "description": { - "name": "matcher", - "sha256": "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.12.15" - }, - "material_color_utilities": { - "dependency": "transitive", - "description": { - "name": "material_color_utilities", - "sha256": "d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.2.0" - }, - "material_theme_builder": { - "dependency": "transitive", - "description": { - "name": "material_theme_builder", - "sha256": "380ab70835e01f4ee0c37904eebae9e36ed37b5cf8ed40d67412ea3244a2afd6", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.4" - }, - "math_expressions": { - "dependency": "direct main", - "description": { - "name": "math_expressions", - "sha256": "3576593617c3870d75728a751f6ec6e606706d44e363f088ac394b5a28a98064", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.0" - }, - "meta": { - "dependency": "transitive", - "description": { - "name": "meta", - "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.9.1" - }, - "nested": { - "dependency": "transitive", - "description": { - "name": "nested", - "sha256": "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.0" - }, - "package_info_plus": { - "dependency": "direct main", - "description": { - "name": "package_info_plus", - "sha256": "10259b111176fba5c505b102e3a5b022b51dd97e30522e906d6922c745584745", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.2" - }, - "package_info_plus_platform_interface": { - "dependency": "transitive", - "description": { - "name": "package_info_plus_platform_interface", - "sha256": "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.1" - }, - "path": { - "dependency": "transitive", - "description": { - "name": "path", - "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.8.3" - }, - "path_provider_linux": { - "dependency": "transitive", - "description": { - "name": "path_provider_linux", - "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.1" - }, - "path_provider_platform_interface": { - "dependency": "transitive", - "description": { - "name": "path_provider_platform_interface", - "sha256": "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "path_provider_windows": { - "dependency": "transitive", - "description": { - "name": "path_provider_windows", - "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.1" - }, - "platform": { - "dependency": "transitive", - "description": { - "name": "platform", - "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.2" - }, - "plugin_platform_interface": { - "dependency": "transitive", - "description": { - "name": "plugin_platform_interface", - "sha256": "da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.6" - }, - "provider": { - "dependency": "direct main", - "description": { - "name": "provider", - "sha256": "cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.0.5" - }, - "pub_semver": { - "dependency": "direct main", - "description": { - "name": "pub_semver", - "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.4" - }, - "pubspec": { - "dependency": "direct main", - "description": { - "name": "pubspec", - "sha256": "f534a50a2b4d48dc3bc0ec147c8bd7c304280fff23b153f3f11803c4d49d927e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.0" - }, - "quiver": { - "dependency": "transitive", - "description": { - "name": "quiver", - "sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.2.1" - }, - "sentry": { - "dependency": "transitive", - "description": { - "name": "sentry", - "sha256": "39c23342fc96105da449914f7774139a17a0ca8a4e70d9ad5200171f7e47d6ba", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.9.0" - }, - "sentry_flutter": { - "dependency": "direct main", - "description": { - "name": "sentry_flutter", - "sha256": "ff68ab31918690da004a42e20204242a3ad9ad57da7e2712da8487060ac9767f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.9.0" - }, - "shared_preferences": { - "dependency": "direct main", - "description": { - "name": "shared_preferences", - "sha256": "b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.1" - }, - "shared_preferences_android": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_android", - "sha256": "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.1" - }, - "shared_preferences_foundation": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_foundation", - "sha256": "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.4" - }, - "shared_preferences_linux": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_linux", - "sha256": "c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.1" - }, - "shared_preferences_platform_interface": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_platform_interface", - "sha256": "d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.1" - }, - "shared_preferences_web": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_web", - "sha256": "d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.1" - }, - "shared_preferences_windows": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_windows", - "sha256": "f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.1" - }, - "sky_engine": { - "dependency": "transitive", - "description": "flutter", - "source": "sdk", - "version": "0.0.99" - }, - "source_span": { - "dependency": "transitive", - "description": { - "name": "source_span", - "sha256": "dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.9.1" - }, - "stack_trace": { - "dependency": "transitive", - "description": { - "name": "stack_trace", - "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.11.0" - }, - "stream_channel": { - "dependency": "transitive", - "description": { - "name": "stream_channel", - "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "string_scanner": { - "dependency": "transitive", - "description": { - "name": "string_scanner", - "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.0" - }, - "term_glyph": { - "dependency": "transitive", - "description": { - "name": "term_glyph", - "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.1" - }, - "test_api": { - "dependency": "transitive", - "description": { - "name": "test_api", - "sha256": "eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.5.1" - }, - "typed_data": { - "dependency": "transitive", - "description": { - "name": "typed_data", - "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.2" - }, - "uri": { - "dependency": "transitive", - "description": { - "name": "uri", - "sha256": "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.0" - }, - "url_launcher": { - "dependency": "direct main", - "description": { - "name": "url_launcher", - "sha256": "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.1.14" - }, - "url_launcher_android": { - "dependency": "transitive", - "description": { - "name": "url_launcher_android", - "sha256": "b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.1.0" - }, - "url_launcher_ios": { - "dependency": "transitive", - "description": { - "name": "url_launcher_ios", - "sha256": "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.1.5" - }, - "url_launcher_linux": { - "dependency": "transitive", - "description": { - "name": "url_launcher_linux", - "sha256": "b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.6" - }, - "url_launcher_macos": { - "dependency": "transitive", - "description": { - "name": "url_launcher_macos", - "sha256": "b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.7" - }, - "url_launcher_platform_interface": { - "dependency": "transitive", - "description": { - "name": "url_launcher_platform_interface", - "sha256": "95465b39f83bfe95fcb9d174829d6476216f2d548b79c38ab2506e0458787618", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.5" - }, - "url_launcher_web": { - "dependency": "transitive", - "description": { - "name": "url_launcher_web", - "sha256": "ba140138558fcc3eead51a1c42e92a9fb074a1b1149ed3c73e66035b2ccd94f2", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.19" - }, - "url_launcher_windows": { - "dependency": "transitive", - "description": { - "name": "url_launcher_windows", - "sha256": "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.8" - }, - "uuid": { - "dependency": "transitive", - "description": { - "name": "uuid", - "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.7" - }, - "vector_math": { - "dependency": "transitive", - "description": { - "name": "vector_math", - "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.4" - }, - "win32": { - "dependency": "transitive", - "description": { - "name": "win32", - "sha256": "a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.4" - }, - "xdg_directories": { - "dependency": "transitive", - "description": { - "name": "xdg_directories", - "sha256": "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.3" - }, - "yaml": { - "dependency": "transitive", - "description": { - "name": "yaml", - "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.2" - } - }, - "sdks": { - "dart": ">=3.0.5 <4.0.0", - "flutter": ">=3.10.0" - } -} diff --git a/pkgs/desktops/expidus/default.nix b/pkgs/desktops/expidus/default.nix deleted file mode 100644 index 3506e1e51699..000000000000 --- a/pkgs/desktops/expidus/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ callPackage, flutterPackages }: -{ - calculator = callPackage ./calculator { - flutter = flutterPackages.v3_35; - }; - - file-manager = callPackage ./file-manager { - flutter = flutterPackages.v3_35; - }; -} diff --git a/pkgs/desktops/expidus/file-manager/default.nix b/pkgs/desktops/expidus/file-manager/default.nix deleted file mode 100644 index ffd2c4dd838f..000000000000 --- a/pkgs/desktops/expidus/file-manager/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ - lib, - flutter, - fetchFromGitHub, -}: -flutter.buildFlutterApplication rec { - pname = "expidus-file-manager"; - version = "0.2.1"; - - src = fetchFromGitHub { - owner = "ExpidusOS"; - repo = "file-manager"; - rev = version; - hash = "sha256-R6eszy4Dz8tAPRTwZzRiZWIgVMiGv5zlhFB/HcD6gqg="; - }; - - flutterBuildFlags = [ - "--dart-define=COMMIT_HASH=b4181b9cff18a07e958c81d8f41840d2d36a6705" - ]; - - pubspecLock = lib.importJSON ./pubspec.lock.json; - - gitHashes = { - libtokyo = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU="; - libtokyo_flutter = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU="; - }; - - postInstall = '' - rm $out/bin/file_manager - ln -s $out/app/$pname/file_manager $out/bin/expidus-file-manager - - mkdir -p $out/share/applications - mv $out/app/$pname/data/com.expidusos.file_manager.desktop $out/share/applications - - mkdir -p $out/share/icons - mv $out/app/$pname/data/com.expidusos.file_manager.png $out/share/icons - - mkdir -p $out/share/metainfo - mv $out/app/$pname/data/com.expidusos.file_manager.metainfo.xml $out/share/metainfo - - substituteInPlace "$out/share/applications/com.expidusos.file_manager.desktop" \ - --replace "Exec=file_manager" "Exec=$out/bin/expidus-file-manager" \ - --replace "Icon=com.expidusos.file_manager" "Icon=$out/share/icons/com.expidusos.file_manager.png" - ''; - - meta = { - broken = true; - description = "ExpidusOS File Manager"; - homepage = "https://expidusos.com"; - license = lib.licenses.gpl3; - maintainers = with lib.maintainers; [ RossComputerGuy ]; - platforms = [ - "x86_64-linux" - "aarch64-linux" - ]; - mainProgram = "expidus-file-manager"; - }; -} diff --git a/pkgs/desktops/expidus/file-manager/pubspec.lock.json b/pkgs/desktops/expidus/file-manager/pubspec.lock.json deleted file mode 100644 index 048127e70dab..000000000000 --- a/pkgs/desktops/expidus/file-manager/pubspec.lock.json +++ /dev/null @@ -1,910 +0,0 @@ -{ - "packages": { - "args": { - "dependency": "transitive", - "description": { - "name": "args", - "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.2" - }, - "async": { - "dependency": "transitive", - "description": { - "name": "async", - "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.11.0" - }, - "bitsdojo_window": { - "dependency": "direct main", - "description": { - "name": "bitsdojo_window", - "sha256": "1118bc1cd16e6f358431ca4473af57cc1b287d2ceab46dfab6d59a9463160622", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.5" - }, - "bitsdojo_window_linux": { - "dependency": "transitive", - "description": { - "name": "bitsdojo_window_linux", - "sha256": "d3804a30315fcbb43b28acc86d1180ce0be22c0c738ad2da9e5ade4d8dbd9655", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.3" - }, - "bitsdojo_window_macos": { - "dependency": "transitive", - "description": { - "name": "bitsdojo_window_macos", - "sha256": "d2a9886c74516c5b84c1dd65ab8ee5d1c52055b265ebf0e7d664dee28366b521", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.3" - }, - "bitsdojo_window_platform_interface": { - "dependency": "transitive", - "description": { - "name": "bitsdojo_window_platform_interface", - "sha256": "65daa015a0c6dba749bdd35a0f092e7a8ba8b0766aa0480eb3ef808086f6e27c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.2" - }, - "bitsdojo_window_windows": { - "dependency": "transitive", - "description": { - "name": "bitsdojo_window_windows", - "sha256": "8766a40aac84a6d7bdcaa716b24997e028fc9a9a1800495fc031721fd5a22ed0", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.5" - }, - "boolean_selector": { - "dependency": "transitive", - "description": { - "name": "boolean_selector", - "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "characters": { - "dependency": "transitive", - "description": { - "name": "characters", - "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.0" - }, - "clock": { - "dependency": "transitive", - "description": { - "name": "clock", - "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.1" - }, - "collection": { - "dependency": "direct main", - "description": { - "name": "collection", - "sha256": "f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.17.2" - }, - "crypto": { - "dependency": "transitive", - "description": { - "name": "crypto", - "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.3" - }, - "dbus": { - "dependency": "transitive", - "description": { - "name": "dbus", - "sha256": "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.7.8" - }, - "fake_async": { - "dependency": "transitive", - "description": { - "name": "fake_async", - "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.1" - }, - "ffi": { - "dependency": "direct main", - "description": { - "name": "ffi", - "sha256": "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.0" - }, - "file": { - "dependency": "transitive", - "description": { - "name": "file", - "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.1.4" - }, - "filesize": { - "dependency": "direct main", - "description": { - "name": "filesize", - "sha256": "f53df1f27ff60e466eefcd9df239e02d4722d5e2debee92a87dfd99ac66de2af", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.1" - }, - "flutter": { - "dependency": "direct main", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_adaptive_scaffold": { - "dependency": "direct main", - "description": { - "name": "flutter_adaptive_scaffold", - "sha256": "4f448902314bc9b6cf820c85d5bad4de6489c0eff75dcedf5098f3a53ec981ee", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.6" - }, - "flutter_lints": { - "dependency": "direct dev", - "description": { - "name": "flutter_lints", - "sha256": "2118df84ef0c3ca93f96123a616ae8540879991b8b57af2f81b76a7ada49b2a4", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.2" - }, - "flutter_localizations": { - "dependency": "direct main", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_markdown": { - "dependency": "direct main", - "description": { - "name": "flutter_markdown", - "sha256": "2b206d397dd7836ea60035b2d43825c8a303a76a5098e66f42d55a753e18d431", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.6.17+1" - }, - "flutter_test": { - "dependency": "direct dev", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_web_plugins": { - "dependency": "transitive", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "http": { - "dependency": "transitive", - "description": { - "name": "http", - "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.13.6" - }, - "http_parser": { - "dependency": "transitive", - "description": { - "name": "http_parser", - "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.0.2" - }, - "intl": { - "dependency": "direct main", - "description": { - "name": "intl", - "sha256": "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.18.1" - }, - "libtokyo": { - "dependency": "direct main", - "description": { - "path": "packages/libtokyo", - "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", - "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", - "url": "https://github.com/ExpidusOS/libtokyo.git" - }, - "source": "git", - "version": "0.1.0" - }, - "libtokyo_flutter": { - "dependency": "direct main", - "description": { - "path": "packages/libtokyo_flutter", - "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", - "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7", - "url": "https://github.com/ExpidusOS/libtokyo.git" - }, - "source": "git", - "version": "0.1.0" - }, - "lints": { - "dependency": "transitive", - "description": { - "name": "lints", - "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "markdown": { - "dependency": "transitive", - "description": { - "name": "markdown", - "sha256": "acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.1.1" - }, - "matcher": { - "dependency": "transitive", - "description": { - "name": "matcher", - "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.12.16" - }, - "material_color_utilities": { - "dependency": "transitive", - "description": { - "name": "material_color_utilities", - "sha256": "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.5.0" - }, - "material_theme_builder": { - "dependency": "transitive", - "description": { - "name": "material_theme_builder", - "sha256": "380ab70835e01f4ee0c37904eebae9e36ed37b5cf8ed40d67412ea3244a2afd6", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.4" - }, - "meta": { - "dependency": "transitive", - "description": { - "name": "meta", - "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.9.1" - }, - "nested": { - "dependency": "transitive", - "description": { - "name": "nested", - "sha256": "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.0" - }, - "open_file_plus": { - "dependency": "direct main", - "description": { - "name": "open_file_plus", - "sha256": "f087e32722ffe4bac71925e7a1a9848a1008fd789e47c6628da3ed7845922227", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.4.1" - }, - "package_info_plus": { - "dependency": "direct main", - "description": { - "name": "package_info_plus", - "sha256": "10259b111176fba5c505b102e3a5b022b51dd97e30522e906d6922c745584745", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.2" - }, - "package_info_plus_platform_interface": { - "dependency": "transitive", - "description": { - "name": "package_info_plus_platform_interface", - "sha256": "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.1" - }, - "path": { - "dependency": "direct main", - "description": { - "name": "path", - "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.8.3" - }, - "path_provider": { - "dependency": "direct main", - "description": { - "name": "path_provider", - "sha256": "909b84830485dbcd0308edf6f7368bc8fd76afa26a270420f34cabea2a6467a0", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.0" - }, - "path_provider_android": { - "dependency": "transitive", - "description": { - "name": "path_provider_android", - "sha256": "5d44fc3314d969b84816b569070d7ace0f1dea04bd94a83f74c4829615d22ad8", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.0" - }, - "path_provider_foundation": { - "dependency": "transitive", - "description": { - "name": "path_provider_foundation", - "sha256": "1b744d3d774e5a879bb76d6cd1ecee2ba2c6960c03b1020cd35212f6aa267ac5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.0" - }, - "path_provider_linux": { - "dependency": "transitive", - "description": { - "name": "path_provider_linux", - "sha256": "ba2b77f0c52a33db09fc8caf85b12df691bf28d983e84cf87ff6d693cfa007b3", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.0" - }, - "path_provider_platform_interface": { - "dependency": "direct main", - "description": { - "name": "path_provider_platform_interface", - "sha256": "bced5679c7df11190e1ddc35f3222c858f328fff85c3942e46e7f5589bf9eb84", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.0" - }, - "path_provider_windows": { - "dependency": "direct main", - "description": { - "name": "path_provider_windows", - "sha256": "ee0e0d164516b90ae1f970bdf29f726f1aa730d7cfc449ecc74c495378b705da", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.0" - }, - "permission_handler": { - "dependency": "direct main", - "description": { - "name": "permission_handler", - "sha256": "63e5216aae014a72fe9579ccd027323395ce7a98271d9defa9d57320d001af81", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "10.4.3" - }, - "permission_handler_android": { - "dependency": "transitive", - "description": { - "name": "permission_handler_android", - "sha256": "2ffaf52a21f64ac9b35fe7369bb9533edbd4f698e5604db8645b1064ff4cf221", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "10.3.3" - }, - "permission_handler_apple": { - "dependency": "transitive", - "description": { - "name": "permission_handler_apple", - "sha256": "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "9.1.4" - }, - "permission_handler_platform_interface": { - "dependency": "transitive", - "description": { - "name": "permission_handler_platform_interface", - "sha256": "7c6b1500385dd1d2ca61bb89e2488ca178e274a69144d26bbd65e33eae7c02a9", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.11.3" - }, - "permission_handler_windows": { - "dependency": "transitive", - "description": { - "name": "permission_handler_windows", - "sha256": "cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.3" - }, - "petitparser": { - "dependency": "transitive", - "description": { - "name": "petitparser", - "sha256": "cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.4.0" - }, - "platform": { - "dependency": "transitive", - "description": { - "name": "platform", - "sha256": "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.0" - }, - "plugin_platform_interface": { - "dependency": "transitive", - "description": { - "name": "plugin_platform_interface", - "sha256": "43798d895c929056255600343db8f049921cbec94d31ec87f1dc5c16c01935dd", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.5" - }, - "provider": { - "dependency": "direct main", - "description": { - "name": "provider", - "sha256": "cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.0.5" - }, - "pub_semver": { - "dependency": "direct main", - "description": { - "name": "pub_semver", - "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.4" - }, - "pubspec": { - "dependency": "direct main", - "description": { - "name": "pubspec", - "sha256": "f534a50a2b4d48dc3bc0ec147c8bd7c304280fff23b153f3f11803c4d49d927e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.0" - }, - "quiver": { - "dependency": "transitive", - "description": { - "name": "quiver", - "sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.2.1" - }, - "sentry": { - "dependency": "transitive", - "description": { - "name": "sentry", - "sha256": "39c23342fc96105da449914f7774139a17a0ca8a4e70d9ad5200171f7e47d6ba", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.9.0" - }, - "sentry_flutter": { - "dependency": "direct main", - "description": { - "name": "sentry_flutter", - "sha256": "ff68ab31918690da004a42e20204242a3ad9ad57da7e2712da8487060ac9767f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.9.0" - }, - "shared_preferences": { - "dependency": "direct main", - "description": { - "name": "shared_preferences", - "sha256": "0344316c947ffeb3a529eac929e1978fcd37c26be4e8468628bac399365a3ca1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.0" - }, - "shared_preferences_android": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_android", - "sha256": "fe8401ec5b6dcd739a0fe9588802069e608c3fdbfd3c3c93e546cf2f90438076", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.0" - }, - "shared_preferences_foundation": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_foundation", - "sha256": "f39696b83e844923b642ce9dd4bd31736c17e697f6731a5adf445b1274cf3cd4", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.2" - }, - "shared_preferences_linux": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_linux", - "sha256": "71d6806d1449b0a9d4e85e0c7a917771e672a3d5dc61149cc9fac871115018e1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.0" - }, - "shared_preferences_platform_interface": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_platform_interface", - "sha256": "23b052f17a25b90ff2b61aad4cc962154da76fb62848a9ce088efe30d7c50ab1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.0" - }, - "shared_preferences_web": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_web", - "sha256": "7347b194fb0bbeb4058e6a4e87ee70350b6b2b90f8ac5f8bd5b3a01548f6d33a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.2.0" - }, - "shared_preferences_windows": { - "dependency": "transitive", - "description": { - "name": "shared_preferences_windows", - "sha256": "f95e6a43162bce43c9c3405f3eb6f39e5b5d11f65fab19196cf8225e2777624d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.0" - }, - "sky_engine": { - "dependency": "transitive", - "description": "flutter", - "source": "sdk", - "version": "0.0.99" - }, - "source_span": { - "dependency": "transitive", - "description": { - "name": "source_span", - "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.10.0" - }, - "stack_trace": { - "dependency": "transitive", - "description": { - "name": "stack_trace", - "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.11.0" - }, - "stream_channel": { - "dependency": "transitive", - "description": { - "name": "stream_channel", - "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "string_scanner": { - "dependency": "transitive", - "description": { - "name": "string_scanner", - "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.0" - }, - "term_glyph": { - "dependency": "transitive", - "description": { - "name": "term_glyph", - "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.1" - }, - "test_api": { - "dependency": "transitive", - "description": { - "name": "test_api", - "sha256": "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.6.0" - }, - "typed_data": { - "dependency": "transitive", - "description": { - "name": "typed_data", - "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.2" - }, - "udisks": { - "dependency": "direct main", - "description": { - "name": "udisks", - "sha256": "847144fb868b9e3602895e89f438f77c2a4fda9e4b02f7d368dc1d2c6a40b475", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.4.0" - }, - "uri": { - "dependency": "transitive", - "description": { - "name": "uri", - "sha256": "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.0" - }, - "url_launcher": { - "dependency": "direct main", - "description": { - "name": "url_launcher", - "sha256": "781bd58a1eb16069412365c98597726cd8810ae27435f04b3b4d3a470bacd61e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.1.12" - }, - "url_launcher_android": { - "dependency": "transitive", - "description": { - "name": "url_launcher_android", - "sha256": "3dd2388cc0c42912eee04434531a26a82512b9cb1827e0214430c9bcbddfe025", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.0.38" - }, - "url_launcher_ios": { - "dependency": "transitive", - "description": { - "name": "url_launcher_ios", - "sha256": "9af7ea73259886b92199f9e42c116072f05ff9bea2dcb339ab935dfc957392c2", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.1.4" - }, - "url_launcher_linux": { - "dependency": "transitive", - "description": { - "name": "url_launcher_linux", - "sha256": "207f4ddda99b95b4d4868320a352d374b0b7e05eefad95a4a26f57da413443f5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.5" - }, - "url_launcher_macos": { - "dependency": "transitive", - "description": { - "name": "url_launcher_macos", - "sha256": "1c4fdc0bfea61a70792ce97157e5cc17260f61abbe4f39354513f39ec6fd73b1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.6" - }, - "url_launcher_platform_interface": { - "dependency": "transitive", - "description": { - "name": "url_launcher_platform_interface", - "sha256": "bfdfa402f1f3298637d71ca8ecfe840b4696698213d5346e9d12d4ab647ee2ea", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.3" - }, - "url_launcher_web": { - "dependency": "transitive", - "description": { - "name": "url_launcher_web", - "sha256": "cc26720eefe98c1b71d85f9dc7ef0cada5132617046369d9dc296b3ecaa5cbb4", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.18" - }, - "url_launcher_windows": { - "dependency": "transitive", - "description": { - "name": "url_launcher_windows", - "sha256": "7967065dd2b5fccc18c653b97958fdf839c5478c28e767c61ee879f4e7882422", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.7" - }, - "uuid": { - "dependency": "transitive", - "description": { - "name": "uuid", - "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.7" - }, - "vector_math": { - "dependency": "transitive", - "description": { - "name": "vector_math", - "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.4" - }, - "web": { - "dependency": "transitive", - "description": { - "name": "web", - "sha256": "dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.4-beta" - }, - "win32": { - "dependency": "direct main", - "description": { - "name": "win32", - "sha256": "a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.4" - }, - "xdg_directories": { - "dependency": "direct main", - "description": { - "name": "xdg_directories", - "sha256": "f0c26453a2d47aa4c2570c6a033246a3fc62da2fe23c7ffdd0a7495086dc0247", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.2" - }, - "xml": { - "dependency": "transitive", - "description": { - "name": "xml", - "sha256": "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.3.0" - }, - "yaml": { - "dependency": "transitive", - "description": { - "name": "yaml", - "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.2" - } - }, - "sdks": { - "dart": ">=3.1.0-185.0.dev <4.0.0", - "flutter": ">=3.10.0" - } -} diff --git a/pkgs/development/compilers/dart/source/default.nix b/pkgs/development/compilers/dart/source/default.nix index 3637ad19e52c..1f272165fe31 100644 --- a/pkgs/development/compilers/dart/source/default.nix +++ b/pkgs/development/compilers/dart/source/default.nix @@ -1,7 +1,7 @@ { bintools, buildPackages, - callPackage, + flutter, cacert, curlMinimal, dart-bin, @@ -22,6 +22,7 @@ samurai, stdenv, versionCheckHook, + writableTmpDirAsHomeHook, writeShellScript, writeText, zlib, @@ -30,8 +31,6 @@ let version = "3.11.4"; - tools = callPackage ../../flutter/engine/tools.nix { inherit (stdenv) hostPlatform buildPlatform; }; - getArchInfo = platform: let @@ -53,78 +52,75 @@ let ] ); - src = - runCommand "dart-source-deps" - { - pname = "dart-source-deps"; - inherit version; + src = stdenv.mkDerivation (finalAttrs: { + pname = "dart-source-deps"; + inherit version; - nativeBuildInputs = [ - cacert - curlMinimal - gitMinimal - pax-utils - python3 - tools.cipd - ]; + nativeBuildInputs = [ + cacert + curlMinimal + flutter.scope.cipd + gitMinimal + pax-utils + python3 + writableTmpDirAsHomeHook + ]; - env = { - NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - DEPOT_TOOLS_UPDATE = "0"; - DEPOT_TOOLS_COLLECT_METRICS = "0"; - PYTHONDONTWRITEBYTECODE = "1"; - CIPD_HTTP_USER_AGENT = "standard-nix-build"; - }; + env = { + NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + DEPOT_TOOLS_UPDATE = "0"; + DEPOT_TOOLS_COLLECT_METRICS = "0"; + PYTHONDONTWRITEBYTECODE = "1"; + CIPD_HTTP_USER_AGENT = "standard-nix-build"; + }; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-y2F+wB0M5dq6koxGpCs9BExGU7p8tFOIiRqfdf8ip+8="; - } - '' - mkdir source - cd source - source ${../../../../build-support/fetchgit/deterministic-git} - export -f clean_git - export -f make_deterministic_repo - cp ${writeText ".gclient" '' - solutions = [{ - 'name': 'sdk', - 'url': 'https://dart.googlesource.com/sdk.git@${version}', - }] - target_os = ['linux'] - target_cpu = ['x64', 'arm64', 'riscv64'] - target_cpu_only = True - ''} .gclient - export PATH=${python3}/bin:$PATH:${tools.depot_tools} - python3 ${tools.depot_tools}/gclient.py sync --no-history --nohooks --noprehooks - find sdk -name ".versions" -type d -exec rm -rf {} + - rm --recursive --force sdk/buildtools/sysroot - rm --recursive --force sdk/buildtools/linux-arm64 - rm --recursive --force sdk/buildtools/reclient - rm --recursive --force sdk/buildtools/*/clang - find sdk -type f \( -name "*.snapshot" -o -name "*.dill" -o -name "*.sym" \) -delete - rm --recursive --force sdk/tools/sdks/dart-sdk - find . -type l ! -exec test -e {} \; -delete - find . -name "ChangeLog*" -delete - rm --force .gclient .gclient_entries .gclient_previous_sync_commits .last_sync_hashes - rm --recursive --force .cipd .cipd_cache - find . -name ".git" -type d -prune -exec rm --recursive --force {} + - find . -name ".git*" -exec rm --recursive --force {} + - find . \( \ - -name ".build-id" -o \ - -name ".svn" -o \ - -name "*~" -o \ - -name "#*#" \ - \) -exec rm --recursive --force {} + - for elf in $(scanelf --recursive --all --format "%F" sdk | sort); do - rm --force "$elf" - done - find . -name "__pycache__" -type d -exec rm --recursive --force {} + - find . -name "*.pyc" -delete - cp --recursive sdk $out - ''; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "sha256-y2F+wB0M5dq6koxGpCs9BExGU7p8tFOIiRqfdf8ip+8="; + + buildCommand = '' + mkdir source + cd source + cp ${writeText ".gclient" '' + solutions = [{ + 'name': 'sdk', + 'url': 'https://dart.googlesource.com/sdk.git@${finalAttrs.version}', + }] + target_os = ['linux'] + target_cpu = ['x64', 'arm64', 'riscv64'] + target_cpu_only = True + ''} .gclient + export PATH=${python3}/bin:$PATH:${flutter.scope.depot_tools} + python3 ${flutter.scope.depot_tools}/gclient.py sync --no-history --nohooks --noprehooks + find sdk -name ".versions" -type d -exec rm -rf {} + + rm --recursive --force sdk/buildtools/sysroot + rm --recursive --force sdk/buildtools/linux-arm64 + rm --recursive --force sdk/buildtools/reclient + rm --recursive --force sdk/buildtools/*/clang + find sdk -type f \( -name "*.snapshot" -o -name "*.dill" -o -name "*.sym" \) -delete + rm --recursive --force sdk/tools/sdks/dart-sdk + find . -type l ! -exec test -e {} \; -delete + find . -name "ChangeLog*" -delete + rm --force .gclient .gclient_entries .gclient_previous_sync_commits .last_sync_hashes + rm --recursive --force .cipd .cipd_cache + find . -name ".git" -type d -prune -exec rm --recursive --force {} + + find . -name ".git*" -exec rm --recursive --force {} + + find . \( \ + -name ".build-id" -o \ + -name ".svn" -o \ + -name "*~" -o \ + -name "#*#" \ + \) -exec rm --recursive --force {} + + for elf in $(scanelf --recursive --all --format "%F" sdk | sort); do + rm --force "$elf" + done + find . -name "__pycache__" -type d -exec rm --recursive --force {} + + find . -name "*.pyc" -delete + cp --recursive sdk $out + ''; + }); in dart-bin.overrideAttrs (oldAttrs: { inherit version src; diff --git a/pkgs/development/compilers/flutter/all-artifacts.nix b/pkgs/development/compilers/flutter/all-artifacts.nix new file mode 100644 index 000000000000..7e2132f52f4f --- /dev/null +++ b/pkgs/development/compilers/flutter/all-artifacts.nix @@ -0,0 +1,79 @@ +{ lib, callPackage }: + +let + oss = [ + { + name = "linux"; + isLinux = true; + isWindows = false; + isDarwin = false; + } + { + name = "windows"; + isLinux = false; + isWindows = true; + isDarwin = false; + } + { + name = "darwin"; + isLinux = false; + isWindows = false; + isDarwin = true; + } + ]; + + archs = [ + { + name = "x86_64"; + isx86_64 = true; + isAarch64 = false; + isRiscV64 = false; + } + { + name = "aarch64"; + isx86_64 = false; + isAarch64 = true; + isRiscV64 = false; + } + ]; + + hostPlatforms = ( + map + (p: { + inherit (p.os) isLinux isWindows isDarwin; + inherit (p.cpu) isx86_64 isAarch64 isRiscV64; + + parsed = { + kernel = { + name = p.os.name; + }; + cpu = { + name = p.cpu.name; + }; + }; + }) + ( + lib.cartesianProduct { + os = oss; + cpu = archs; + } + ) + ); +in +(lib.unique ( + lib.concatMap ( + hostPlatform: + callPackage ./host-artifacts.nix { + inherit hostPlatform; + supportedTargetFlutterPlatforms = [ + "universal" + "web" + "android" + "linux" + "macos" + "ios" + "windows" + ]; + } + ) hostPlatforms +)) diff --git a/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix b/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix deleted file mode 100644 index a425f8fce636..000000000000 --- a/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix +++ /dev/null @@ -1,102 +0,0 @@ -# Schema: -# ${flutterVersion}.${targetPlatform}.${hostPlatform} -# -# aarch64-darwin as a host is not yet supported. -# https://github.com/flutter/flutter/issues/60118 -{ - lib, - runCommand, - lndir, - cacert, - unzip, - - flutterPlatform, - systemPlatform, - flutter, - hash, -}: - -let - flutterPlatforms = [ - "android" - "ios" - "web" - "linux" - "windows" - "macos" - "fuchsia" - "universal" - ]; - - flutter' = flutter.override { - # Use a version of Flutter with just enough capabilities to download - # artifacts. - supportedTargetFlutterPlatforms = [ ]; - - # Modify flutter-tool's system platform in order to get the desired platform's hashes. - flutter = flutter.unwrapped.override { - flutterTools = flutter.unwrapped.tools.override { - inherit systemPlatform; - }; - }; - }; -in -runCommand "flutter-artifacts-${flutterPlatform}-${systemPlatform}" - { - nativeBuildInputs = [ - lndir - flutter' - unzip - ]; - - NIX_FLUTTER_TOOLS_VM_OPTIONS = "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt"; - NIX_FLUTTER_OPERATING_SYSTEM = - { - "x86_64-linux" = "linux"; - "aarch64-linux" = "linux"; - "x86_64-darwin" = "macos"; - "aarch64-darwin" = "macos"; - } - .${systemPlatform}; - - outputHash = hash; - outputHashMode = "recursive"; - outputHashAlgo = "sha256"; - - passthru = { - inherit flutterPlatform; - }; - } - ( - '' - export FLUTTER_ROOT="$NIX_BUILD_TOP" - lndir -silent '${flutter'}' "$FLUTTER_ROOT" - rm --recursive --force "$FLUTTER_ROOT/bin/cache" - mkdir "$FLUTTER_ROOT/bin/cache" - mkdir "$FLUTTER_ROOT/bin/cache/dart-sdk" - lndir -silent '${flutter'}/bin/cache/dart-sdk' "$FLUTTER_ROOT/bin/cache/dart-sdk" - '' - # Could not determine engine revision - + lib.optionalString (lib.versionAtLeast flutter'.version "3.32") '' - cp '${flutter'}/bin/internal/engine.version' "$FLUTTER_ROOT/bin/cache/engine.stamp" - '' - + '' - - HOME="$(mktemp -d)" flutter precache ${ - lib.optionalString ( - flutter ? engine && flutter.engine.meta.available - ) "--local-engine ${flutter.engine.outName}" - } \ - --verbose '--${flutterPlatform}' ${ - builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove flutterPlatform flutterPlatforms)) - } - - rm --recursive --force "$FLUTTER_ROOT/bin/cache/lockfile" - rm --recursive --force "$FLUTTER_ROOT/bin/cache/dart-sdk" - '' - + '' - find "$FLUTTER_ROOT" -type l -lname '${flutter'}/*' -delete - - cp --recursive bin/cache "$out" - '' - ) diff --git a/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix b/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix deleted file mode 100644 index dbdd81ba596a..000000000000 --- a/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ }: -{ - buildInputs ? [ ], - ... -}: -{ - # Use arm64 instead of arm64e. - postPatch = '' - if [ "$pname" == "flutter-tools" ]; then - substituteInPlace lib/src/ios/xcodeproj.dart \ - --replace-fail arm64e arm64 - fi - ''; -} diff --git a/pkgs/development/compilers/flutter/artifacts/overrides/linux.nix b/pkgs/development/compilers/flutter/artifacts/overrides/linux.nix deleted file mode 100644 index a06188f98e3a..000000000000 --- a/pkgs/development/compilers/flutter/artifacts/overrides/linux.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - gtk3, -}: - -{ - buildInputs ? [ ], - ... -}: - -{ - buildInputs = buildInputs ++ [ gtk3 ]; -} diff --git a/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix b/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix deleted file mode 100644 index 64eb4072d24e..000000000000 --- a/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - lib, - stdenv, - callPackage, - autoPatchelfHook, - src, -}: - -(stdenv.mkDerivation { - inherit (src) name; - inherit src; - - nativeBuildInputs = lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook; - - installPhase = '' - runHook preInstall - - mkdir --parents "$out/bin" - cp --recursive . "$out/bin/cache" - rm --force "$out/bin/cache/flutter.version.json" - - runHook postInstall - ''; -}).overrideAttrs - ( - if builtins.pathExists (./overrides + "/${src.flutterPlatform}.nix") then - callPackage (./overrides + "/${src.flutterPlatform}.nix") { } - else - ({ ... }: { }) - ) diff --git a/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix b/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix index a2adc097947e..94cf1f9fbd33 100644 --- a/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix +++ b/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix @@ -54,39 +54,32 @@ lib.extendMkDerivation { ... }: let - hasEngine = flutter ? engine && flutter.engine != null && flutter.engine.meta.available; - flutterMode' = args.flutterMode or (if hasEngine then flutter.engine.runtimeMode else "release"); - - flutterFlags = lib.optional hasEngine "--local-engine host_${flutterMode'}${ - lib.optionalString (!flutter.engine.isOptimized) "_unopt" - }"; + flutterMode' = args.flutterMode or "release"; flutterBuildFlags' = [ "--${flutterMode'}" ] - ++ (args.flutterBuildFlags or [ ]) - ++ flutterFlags; + ++ (args.flutterBuildFlags or [ ]); universal = args // { flutterMode = flutterMode'; - flutterFlags = flutterFlags; flutterBuildFlags = flutterBuildFlags'; + # Pub needs SSL certificates. Dart normally looks in a hardcoded path. + # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48 + # + # Dart does not respect SSL_CERT_FILE... + # https://github.com/dart-lang/sdk/issues/48506 + # ...and Flutter does not support --root-certs-file, so the path cannot be manually set. + # https://github.com/flutter/flutter/issues/56607 + # https://github.com/flutter/flutter/issues/113594 + # + # libredirect is of no use either, as Flutter does not pass any + # environment variables (including LD_PRELOAD) to the Pub process. + # + # Instead, Flutter is patched to allow the path to the Dart binary used for + # Pub commands to be overriden. sdkSetupScript = '' - # Pub needs SSL certificates. Dart normally looks in a hardcoded path. - # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48 - # - # Dart does not respect SSL_CERT_FILE... - # https://github.com/dart-lang/sdk/issues/48506 - # ...and Flutter does not support --root-certs-file, so the path cannot be manually set. - # https://github.com/flutter/flutter/issues/56607 - # https://github.com/flutter/flutter/issues/113594 - # - # libredirect is of no use either, as Flutter does not pass any - # environment variables (including LD_PRELOAD) to the Pub process. - # - # Instead, Flutter is patched to allow the path to the Dart binary used for - # Pub commands to be overriden. export NIX_FLUTTER_PUB_DART="${ runCommand "dart-with-certs" { nativeBuildInputs = [ makeWrapper ]; } '' mkdir -p "$out/bin" @@ -96,13 +89,11 @@ lib.extendMkDerivation { }/bin/dart" export HOME="$NIX_BUILD_TOP" - flutter config $flutterFlags --no-analytics &>/dev/null # mute first-run - flutter config $flutterFlags --enable-linux-desktop >/dev/null + # flutter config --no-analytics &>/dev/null # mute first-run + flutter config --enable-linux-desktop >/dev/null ''; - pubGetScript = - args.pubGetScript - or "flutter${lib.optionalString hasEngine " --local-engine $flutterMode"} pub get"; + pubGetScript = args.pubGetScript or "flutter pub get"; sdkSourceBuilders = { # https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/sdk/flutter.dart#L81 diff --git a/pkgs/development/compilers/flutter/cipd.nix b/pkgs/development/compilers/flutter/cipd.nix new file mode 100644 index 000000000000..c5997d1d8a29 --- /dev/null +++ b/pkgs/development/compilers/flutter/cipd.nix @@ -0,0 +1,37 @@ +{ + constants, + fetchurl, + writeShellScriptBin, +}: + +let + cipdBin = fetchurl { + url = "https://chrome-infra-packages.appspot.com/client?platform=${constants.hostConstants.alt-os}-${constants.hostConstants.arch}&version=git_revision:927335d3d594ba6b46a8c3f2d64fade13c22075b"; + executable = true; + hash = + { + "linux-amd64" = "sha256-CP3AbEJm9vbyYfEnF9eD/vZwWK8Ps7kqQjZPY+HTuSQ="; + "linux-arm64" = "sha256-C97vamQ/+/0aaro+idwogtamQUfeVAopHQ1mdID2Utc="; + "mac-amd64" = "sha256-oyxJAG2Xg7m6w/IYrFgEPw0qLCTjL3/XB/3npod2Xsg="; + "mac-arm64" = "sha256-a0bD+qSn34Edn63o7rmQ4v4IVWnETIgWbxDZ1igNbP4="; + } + ."${constants.hostConstants.alt-os}-${constants.hostConstants.arch}"; + }; +in +writeShellScriptBin "cipd" '' + if [[ "$1" == "ensure" ]]; then + for arg in "$@"; do + if [[ "$prev" == "-ensure-file" ]]; then + sed --in-place \ + --expression='s/''${platform}/${constants.hostConstants.platform}/g' \ + --expression='s|gn/gn/${constants.hostConstants.platform}|gn/gn/${constants.buildConstants.platform}|g' \ + --expression='\|src/flutter/third_party/java/openjdk|,+2 d' \ + "$arg" + break + fi + prev="$arg" + done + fi + + exec ${cipdBin} "$@" +'' diff --git a/pkgs/development/compilers/flutter/constants.nix b/pkgs/development/compilers/flutter/constants.nix new file mode 100644 index 000000000000..d900122ea6f7 --- /dev/null +++ b/pkgs/development/compilers/flutter/constants.nix @@ -0,0 +1,41 @@ +{ lib, stdenv }: + +let + makeConstants = + platform: + let + os = + { + linux = "linux"; + darwin = "macos"; + windows = "windows"; + } + .${platform.parsed.kernel.name} or (throw "Unsupported OS: ${platform.parsed.kernel.name}"); + + arch = + { + x86_64 = "amd64"; + aarch64 = "arm64"; + riscv64 = "riscv64"; + } + .${platform.parsed.cpu.name} or (throw "Unsupported CPU: ${platform.parsed.cpu.name}"); + alt-os = if platform.isDarwin then "mac" else os; + alt-arch = if platform.isx86_64 then "x64" else arch; + in + { + inherit + os + arch + alt-os + alt-arch + ; + platform = "${os}-${arch}"; + alt-platform = "${alt-os}-${alt-arch}"; + }; +in +{ + inherit makeConstants; + buildConstants = makeConstants stdenv.buildPlatform; + targetConstants = makeConstants stdenv.targetPlatform; + hostConstants = makeConstants stdenv.hostPlatform; +} diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix index 2c886bf529fc..27e12e586b53 100644 --- a/pkgs/development/compilers/flutter/default.nix +++ b/pkgs/development/compilers/flutter/default.nix @@ -1,146 +1,51 @@ { - useNixpkgsEngine ? false, callPackage, - fetchzip, - fetchFromGitHub, - dart, - dart-bin, lib, - stdenv, - runCommand, + useNixpkgsEngine ? false, }: + let - mkCustomFlutter = args: callPackage ./flutter.nix args; - wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; }; getPatches = dir: - let - files = builtins.attrNames (builtins.readDir dir); - in - if (builtins.pathExists dir) then map (f: dir + ("/" + f)) files else [ ]; - mkFlutter = - { - version, - engineVersion, - engineSwiftShaderHash, - engineSwiftShaderRev, - engineHashes, - enginePatches, - dartVersion, - flutterHash, - dartHash, - patches, - pubspecLock, - artifactHashes, - channel, - }: - let - args = { - inherit - version - engineVersion - engineSwiftShaderRev - engineSwiftShaderHash - engineHashes - enginePatches - patches - pubspecLock - artifactHashes - useNixpkgsEngine - channel - ; + if builtins.pathExists dir then + map (fileName: dir + "/${fileName}") (builtins.attrNames (builtins.readDir dir)) + else + [ ]; - dart = - let - hash = - dartHash.${stdenv.hostPlatform.system} - or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); - in - ( - if lib.versionAtLeast version "3.41" then - (dart-bin.overrideAttrs (oldAttrs: { - version = dartVersion; - src = oldAttrs.src.overrideAttrs (_: { - inherit hash; - }); - })) - else - (dart-bin.overrideAttrs (_: { - # This overrideAttrs is used to replace the version in src.url - version = dartVersion; - __intentionallyOverridingVersion = true; - })).overrideAttrs - (oldAttrs: { - src = fetchzip { - inherit (oldAttrs.src) url; - inherit hash; - }; - }) - ); - src = - let - source = fetchFromGitHub { - owner = "flutter"; - repo = "flutter"; - tag = version; - hash = flutterHash; - }; - in - ( - if lib.versionAtLeast version "3.32" then - # # Could not determine engine revision - (runCommand source.name { } '' - cp --recursive ${source} $out - chmod +w $out/bin - mkdir $out/bin/cache - cp $out/bin/internal/engine.version $out/bin/cache/engine.stamp - touch $out/bin/cache/engine.realm - '') - else - source - ); - }; - in - (mkCustomFlutter args).overrideAttrs ( - prev: next: { - passthru = next.passthru // { - inherit wrapFlutter mkCustomFlutter mkFlutter; - buildFlutterApplication = callPackage ./build-support/build-flutter-application.nix { - flutter = wrapFlutter (mkCustomFlutter args); - }; - }; - } - ); + makeFlutterScope = callPackage ./scope.nix { }; - flutterVersions = lib.mapAttrs' ( - version: _: + allVersions = lib.mapAttrs' (versionName: _: { + name = "v${versionName}"; + value = + let + versionDir = ./versions + "/${versionName}"; + versionData = lib.importJSON (versionDir + "/data.json"); + globalPatches = getPatches ./patches; + versionPatches = getPatches (versionDir + "/patches"); + globalEnginePatches = getPatches ./engine/patches; + versionEnginePatches = getPatches (versionDir + "/engine/patches"); + in + makeFlutterScope ( + versionData + // { + inherit useNixpkgsEngine; + patches = globalPatches ++ versionPatches; + enginePatches = globalEnginePatches ++ versionEnginePatches; + } + ); + }) (builtins.readDir ./versions); + + getLatestForChannel = + channel: let - versionDir = ./versions + "/${version}"; - data = lib.importJSON (versionDir + "/data.json"); + channelVersions = lib.filterAttrs (_: scope: scope.channel == channel) allVersions; + sortedNames = lib.naturalSort (builtins.attrNames channelVersions); in - lib.nameValuePair "v${version}" ( - wrapFlutter ( - mkFlutter ( - { - patches = (getPatches ./patches) ++ (getPatches (versionDir + "/patches")); - enginePatches = (getPatches ./engine/patches) ++ (getPatches (versionDir + "/engine/patches")); - } - // data - ) - ) - ) - ) (builtins.readDir ./versions); + if sortedNames == [ ] then null else channelVersions.${lib.last sortedNames}.flutter; - stableFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "stable") flutterVersions; - betaFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "beta") flutterVersions; + stable = getLatestForChannel "stable"; + beta = getLatestForChannel "beta"; in -flutterVersions -// { - inherit wrapFlutter mkFlutter; -} -// lib.optionalAttrs (betaFlutterVersions != { }) { - beta = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames betaFlutterVersions))}; -} -// lib.optionalAttrs (stableFlutterVersions != { }) { - stable = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames stableFlutterVersions))}; -} +(lib.mapAttrs (_: scope: scope.flutter) allVersions) +// lib.optionalAttrs (stable != null) { inherit stable; } +// lib.optionalAttrs (beta != null) { inherit beta; } diff --git a/pkgs/development/compilers/flutter/engine/constants.nix b/pkgs/development/compilers/flutter/engine/constants.nix deleted file mode 100644 index 768f103e849f..000000000000 --- a/pkgs/development/compilers/flutter/engine/constants.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib, platform }: -let - self = { - os = - if platform.isLinux then - "linux" - else if platform.isDarwin then - "macos" - else if platform.isWindows then - "windows" - else - throw "Unsupported OS \"${platform.parsed.kernel.name}\""; - - alt-os = if platform.isDarwin then "mac" else self.os; - - arch = - if platform.isx86_64 then - "amd64" - else if platform.isx86 && platform.is32bit then - "386" - else if platform.isAarch64 then - "arm64" - else if platform.isMips && platform.parsed.cpu.significantByte == "littleEndian" then - "mipsle" - else if platform.isMips64 then - "mips64${lib.optionalString (platform.parsed.cpu.significantByte == "littleEndian") "le"}" - else if platform.isPower64 then - "ppc64${lib.optionalString (platform.parsed.cpu.significantByte == "littleEndian") "le"}" - else if platform.isS390x then - "s390x" - else if platform.isRiscV64 then - "riscv64" - else - throw "Unsupported CPU \"${platform.parsed.cpu.name}\""; - - alt-arch = - if platform.isx86_64 then - "x64" - else if platform.isAarch64 then - "arm64" - else - platform.parsed.cpu.name; - - platform = "${self.os}-${self.arch}"; - alt-platform = "${self.os}-${self.alt-arch}"; - }; -in -self diff --git a/pkgs/development/compilers/flutter/engine/dart.nix b/pkgs/development/compilers/flutter/engine/dart.nix deleted file mode 100644 index 4846392aa8ba..000000000000 --- a/pkgs/development/compilers/flutter/engine/dart.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ engine, runCommand }: -runCommand "flutter-engine-${engine.version}-dart" - { - version = engine.dartSdkVersion; - - meta = engine.meta // { - description = "Dart SDK compiled from the Flutter Engine"; - }; - } - '' - ln --symbolic ${engine}/out/${engine.outName}/dart-sdk $out - '' diff --git a/pkgs/development/compilers/flutter/engine/default.nix b/pkgs/development/compilers/flutter/engine/default.nix index 0821bce822a5..defb8d99bc6a 100644 --- a/pkgs/development/compilers/flutter/engine/default.nix +++ b/pkgs/development/compilers/flutter/engine/default.nix @@ -1,78 +1,317 @@ { callPackage, - dartSdkVersion, - flutterVersion, - swiftshaderHash, - swiftshaderRev, - version, - hashes, - url, - patches, - runtimeModes, + constants, + dart, + depot_tools, + dos2unix, + enginePatches, + freetype, + gn, + gtk3, + harfbuzz, lib, + libepoxy, + libjpeg, + libpng, + libwebp, + libx11, + libxxf86vm, + llvmPackages, + ninja, + patches, + pkg-config, + python312, + sqlite, stdenv, - ... -}@args: + symlinkJoin, + version, + zlib, + runtimeMode ? "release", +}: + let - mainRuntimeMode = args.mainRuntimeMode or builtins.elemAt runtimeModes 0; - altRuntimeMode = args.altRuntimeMode or builtins.elemAt runtimeModes 1; + python3 = python312; - runtimeModesBuilds = lib.genAttrs runtimeModes ( - runtimeMode: - callPackage ./package.nix { - inherit - dartSdkVersion - flutterVersion - swiftshaderHash - swiftshaderRev - version - hashes - url - patches - runtimeMode - ; - isOptimized = args.isOptimized or runtimeMode != "debug"; - } - ); + llvm = symlinkJoin { + name = "llvm"; + paths = [ + llvmPackages.clang + llvmPackages.llvm + ]; + }; + + outputAttrs = { + flutter-gtk = + lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] + "${constants.hostConstants.alt-platform}-${runtimeMode}/${constants.hostConstants.alt-platform}-flutter-gtk"; + flutter-glfw = + lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] + "${constants.hostConstants.alt-platform}-${runtimeMode}/${constants.hostConstants.alt-platform}-flutter-glfw"; + font-subset = + lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] + "${constants.hostConstants.alt-platform}/font-subset"; + artifacts = + lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] + "${constants.hostConstants.alt-platform}/artifacts"; + flutter_patched_sdk = "flutter_patched_sdk"; + }; in -stdenv.mkDerivation ( - { - pname = "flutter-engine"; - inherit url runtimeModes altRuntimeMode; - inherit (runtimeModesBuilds.${mainRuntimeMode}) version src meta; +stdenv.mkDerivation (finalAttrs: { + __structuredAttrs = true; + strictDeps = true; + pname = "flutter-engine-linux-${runtimeMode}"; + inherit version; - dontUnpack = true; - dontBuild = true; + src = callPackage ./source.nix { }; - installPhase = '' - runHook preInstall + sourceRoot = "${finalAttrs.src.name}/engine/src"; - mkdir --parents $out/out + prePatch = '' + pushd ../.. + chmod --recursive +w . + ''; + + patches = patches ++ enginePatches; + + postPatch = '' + popd + dos2unix flutter/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h + patchShebangs ../../bin/internal/content_aware_hash.sh + mkdir --parents flutter/third_party/dart/tools/sdks/dart-sdk/ flutter/prebuilts/${constants.hostConstants.alt-platform}/dart-sdk + ln --symbolic ${dart}/bin flutter/third_party/dart/tools/sdks/dart-sdk/bin + ln --symbolic ${dart}/bin flutter/prebuilts/${constants.hostConstants.alt-platform}/dart-sdk/bin + echo "${dart.version}" > flutter/third_party/dart/sdk/version + mkdir --parents flutter/third_party/gn/ + ln --symbolic ${lib.getExe gn} flutter/third_party/gn/gn + mkdir --parents flutter/third_party/swiftshader/third_party + ln --symbolic ${llvmPackages.llvm.monorepoSrc} flutter/third_party/swiftshader/third_party/llvm-project + mkdir --parents flutter/buildtools/${constants.hostConstants.alt-platform} + ln --symbolic ${llvm} flutter/buildtools/${constants.hostConstants.alt-platform}/clang + '' + # https://github.com/dart-lang/sdk/issues/52295 + + '' + mkdir --parents flutter/third_party/dart/.git/logs + touch flutter/third_party/dart/.git/logs/HEAD + '' + # DEPS hooks + + '' + python3 flutter/third_party/dart/tools/generate_package_config.py + python3 flutter/third_party/dart/tools/generate_sdk_version_file.py + python3 flutter/tools/pub_get_offline.py + '' + # reusable system library settings + + '' + local use_system=" + freetype2 + harfbuzz + libjpeg-turbo + libpng + libwebp + sqlite + zlib + " + for _lib in $use_system; do + echo "Removing buildscripts for system provided $_lib" + find . -type f -path "*third_party/$_lib/*" \ + \! -path "*third_party/$_lib/chromium/*" \ + \! -path "*third_party/$_lib/google/*" \ + \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ + -delete + done + echo "Replacing gn files" + python3 build/linux/unbundle/replace_gn_files.py --system-libraries $use_system + '' + # ValueError: ZIP does not support timestamps before 1980 + + '' + substituteInPlace flutter/build/zip.py \ + --replace-fail "zipfile.ZipFile(args.output, 'w', zipfile.ZIP_DEFLATED)" "zipfile.ZipFile(args.output, 'w', zipfile.ZIP_DEFLATED, strict_timestamps=False)" + '' + + '' + sed --in-place '5i #include ' flutter/display_list/dl_storage.cc + sed --in-place '5i #include ' flutter/display_list/dl_vertices.cc + sed --in-place '5i #include ' flutter/display_list/effects/color_filters/dl_matrix_color_filter.h + sed --in-place '5i #include ' flutter/display_list/geometry/dl_region.cc + sed --in-place '5i #include ' flutter/display_list/effects/dl_color_source.cc + sed --in-place '5i #include ' flutter/display_list/dl_builder.cc + sed --in-place '5i #include ' flutter/display_list/display_list.cc + sed --in-place '5i #include ' flutter/vulkan/vulkan_application.cc + sed --in-place '5i #include ' flutter/runtime/dart_vm.cc + sed --in-place '5i #include ' flutter/runtime/dart_isolate.cc + sed --in-place '5i #include ' flutter/shell/platform/android/android_surface_gl_skia.cc + sed --in-place '5i #include ' flutter/shell/platform/glfw/platform_handler.cc + sed --in-place '5i #include ' flutter/shell/platform/linux/fl_accessibility_channel.cc + sed --in-place '5i #include ' flutter/shell/platform/linux/fl_text_input_handler.cc + sed --in-place '5i #include ' flutter/shell/platform/linux/fl_application.cc + sed --in-place '5i #include ' flutter/shell/platform/linux/fl_event_channel.cc + sed --in-place '5i #include ' flutter/shell/platform/linux/fl_keyboard_channel.cc + sed --in-place '5i #include ' flutter/impeller/renderer/backend/vulkan/debug_report_vk.cc + sed --in-place '5i #include ' flutter/shell/platform/linux/fl_text_input_channel.cc + sed --in-place '5i #include ' flutter/shell/platform/linux/fl_settings_portal.cc + sed --in-place '5i #include ' flutter/shell/platform/linux/fl_gnome_settings.cc + sed --in-place '5i #include ' flutter/impeller/toolkit/glvk/trampoline.cc + sed --in-place '5i #include ' flutter/shell/platform/android/android_context_dynamic_impeller.cc + sed --in-place '5i #include ' flutter/shell/platform/fuchsia/dart_runner/builtin_libraries.cc + sed --in-place '5i #include ' flutter/shell/platform/fuchsia/flutter/text_delegate.cc + sed --in-place '5i #include ' flutter/third_party/accessibility/ax/ax_enum_util.cc + sed --in-place '5i #include ' flutter/examples/vulkan_glfw/src/main.cc + sed --in-place '5i #include ' flutter/shell/platform/linux/public/flutter_linux/fl_method_channel.h + sed --in-place '5i #include ' flutter/shell/platform/linux/fl_accessible_text_field.cc + substituteInPlace flutter/shell/platform/linux/fl_view_accessible.cc \ + --replace-fail "// Workaround missing C code compatibility in ATK header." "#include " + ''; + + nativeBuildInputs = [ + (python3.withPackages (ps: with ps; [ pyyaml ])) + dart + depot_tools + dos2unix + ninja + pkg-config + ]; + + buildInputs = [ + freetype + gtk3 + harfbuzz + libepoxy + libjpeg + libpng + libwebp + libx11 + libxxf86vm + sqlite + zlib + ]; + + env = { + NIX_CFLAGS_COMPILE = toString ( + [ + "-O2" + "-Wno-error" + "-Wno-unused-command-line-argument" + "-Wno-absolute-value" + "-Wno-implicit-float-conversion" + "-Wno-error=unused-command-line-argument" + "-D_GLIBCXX_DEBUG=0" + ] + ++ (lib.optionals stdenv.hostPlatform.isLinux [ "-U_FORTIFY_SOURCE" ]) + ); + TERM = "dumb"; + }; + + configurePhase = + let + gnFlags = lib.concatStringsSep " " ( + [ + "--no-goma" + "--no-dart-version-git-info" + "--linux" + "--linux-cpu=${constants.hostConstants.alt-arch}" + "--runtime-mode=${runtimeMode}" + "--no-rbe" + "--prebuilt-dart-sdk" + "--build-glfw-shell" + "--build-engine-artifacts" + "--no-enable-unittests" + "--enable-fontconfig" + ''--gn-args="use_default_linux_sysroot=false"'' + ] + ++ (lib.optionals (runtimeMode == "release") [ "--no-backtrace" ]) + ++ ( + if (runtimeMode == "debug") then + [ + "--unoptimized" + "--no-stripped" + ] + else + [ "--no-lto" ] + ) + ); + in '' - + lib.concatMapStrings ( - runtimeMode: - let - runtimeModeBuild = runtimeModesBuilds.${runtimeMode}; - runtimeModeOut = runtimeModeBuild.outName; - in - '' - ln --symbolic --force ${runtimeModeBuild}/out/${runtimeModeOut} $out/out/${runtimeModeOut} - '' - ) runtimeModes - + '' - runHook postInstall + runHook preConfigure + + python3 flutter/tools/gn ${gnFlags} --target-dir="${constants.hostConstants.alt-platform}-${runtimeMode}" + + runHook postConfigure ''; - passthru = { - inherit (runtimeModesBuilds.${mainRuntimeMode}) - dartSdkVersion - isOptimized - runtimeMode - outName - dart - swiftshader - ; - }; - } - // runtimeModesBuilds -) + buildPhase = '' + runHook preBuild + + ninja -C out/${constants.hostConstants.alt-platform}-${runtimeMode} -j $NIX_BUILD_CORES + + runHook postBuild + ''; + + outputs = [ "out" ] ++ builtins.attrValues outputAttrs; + + installPhase = '' + runHook preInstall + + pushd out/${constants.hostConstants.alt-platform}-${runtimeMode} + '' + # flutter-gtk + + '' + install -D --mode=0644 libflutter_linux_gtk.so --target-directory=''$${outputAttrs.flutter-gtk} + install -D --mode=0755 gen_snapshot --target-directory=''$${outputAttrs.flutter-gtk} + cp --recursive flutter_linux ''$${outputAttrs.flutter-gtk}/flutter_linux + '' + # flutter-glfw + + '' + install -D --mode=0644 flutter_export.h --target-directory=''$${outputAttrs.flutter-glfw} + install -D --mode=0644 flutter_glfw.h --target-directory=''$${outputAttrs.flutter-glfw} + install -D --mode=0644 flutter_messenger.h --target-directory=''$${outputAttrs.flutter-glfw} + install -D --mode=0644 flutter_plugin_registrar.h --target-directory=''$${outputAttrs.flutter-glfw} + install -D --mode=0755 gen_snapshot --target-directory=''$${outputAttrs.flutter-glfw} + install -D --mode=0644 libflutter_linux_glfw.so --target-directory=''$${outputAttrs.flutter-glfw} + '' + # font-subset + + '' + install -D --mode=0644 font-subset --target-directory=''$${outputAttrs.font-subset} + install -D --mode=0644 gen/const_finder.dart.snapshot --target-directory=''$${outputAttrs.font-subset} + '' + # flutter_patched_sdk + + '' + install -D --mode=0644 gen/flutter/build/archives/LICENSE.flutter_patched_sdk.md ''$${outputAttrs.flutter_patched_sdk}/LICENSE.flutter_patched_sdk.md + install -D --mode=0644 flutter_patched_sdk/platform_strong.dill --target-directory=''$${outputAttrs.flutter_patched_sdk}/flutter_patched_sdk/ + install -D --mode=0644 flutter_patched_sdk/vm_outline_strong.dill --target-directory=''$${outputAttrs.flutter_patched_sdk}/flutter_patched_sdk/ + '' + # artifacts + + '' + install -D --mode=0644 gen/flutter/lib/snapshot/vm_isolate_snapshot.bin --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0644 gen/flutter/lib/snapshot/isolate_snapshot.bin --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0644 icudtl.dat --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0644 flutter_tester --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0644 gen/frontend_server_aot.dart.snapshot --target-directory=''$${outputAttrs.artifacts}/frontend_server.dart.snapshot + install -D --mode=0644 gen/flutter/build/archives/LICENSE.artifacts.md --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0644 gen/flutter/lib/snapshot/vm_isolate_snapshot.bin --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0644 libtessellator.so --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0644 libpath_ops.so --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0644 gen/flutter/lib/snapshot/isolate_snapshot.bin --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0644 libimpeller.so --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0755 gen_snapshot --target-directory=''$${outputAttrs.artifacts} + install -D --mode=0755 impellerc --target-directory=''$${outputAttrs.artifacts} + cp --recursive shader_lib ''$${outputAttrs.artifacts}/shader_lib + '' + # others + + '' + install -D --mode=0644 libflutter_engine.so --target-directory=$out + install -D --mode=0755 analyze_snapshot --target-directory=$out + popd + + runHook postInstall + ''; + + dontStrip = (runtimeMode != "release"); + + meta = { + broken = stdenv.hostPlatform.isDarwin || (lib.versionOlder version "3.41"); + maintainers = with lib.maintainers; [ RossComputerGuy ]; + license = lib.licenses.bsd3; + platforms = [ + "x86_64-linux" + "aarch64-linux" + ]; + }; +}) diff --git a/pkgs/development/compilers/flutter/engine/package.nix b/pkgs/development/compilers/flutter/engine/package.nix deleted file mode 100644 index 7d79b09e8662..000000000000 --- a/pkgs/development/compilers/flutter/engine/package.nix +++ /dev/null @@ -1,390 +0,0 @@ -{ - lib, - callPackage, - fetchurl, - bash, - symlinkJoin, - darwin, - clang, - tools ? callPackage ./tools.nix { - inherit (stdenv) - hostPlatform - buildPlatform - ; - }, - stdenv, - dart, - fetchgit, - llvmPackages, - patchelf, - gn, - openbox, - xorg-server, - libxxf86vm, - libxrender, - libxrandr, - libxi, - libxinerama, - libxfixes, - libxext, - libxcursor, - libx11, - xorgproto, - libxcb, - libglvnd, - libepoxy, - wayland, - freetype, - pango, - glib, - harfbuzz, - cairo, - gdk-pixbuf, - at-spi2-atk, - zlib, - gtk3, - pkg-config, - ninja, - python312, - gitMinimal, - version, - flutterVersion, - dartSdkVersion, - swiftshaderHash, - swiftshaderRev, - hashes, - patches, - url, - runtimeMode ? "release", - isOptimized ? runtimeMode != "debug", -}: -let - constants = callPackage ./constants.nix { platform = stdenv.targetPlatform; }; - - python3 = python312; - - src = callPackage ./source.nix { - inherit - flutterVersion - version - hashes - url - ; - inherit (stdenv) - hostPlatform - buildPlatform - targetPlatform - ; - }; - - swiftshader = fetchgit { - url = "https://swiftshader.googlesource.com/SwiftShader.git"; - hash = swiftshaderHash; - rev = swiftshaderRev; - - postFetch = '' - rm --recursive --force $out/third_party/llvm-project - ''; - }; - - llvm = symlinkJoin { - name = "llvm"; - paths = [ - clang - llvmPackages.llvm - ]; - }; - - outName = "host_${runtimeMode}${lib.optionalString (!isOptimized) "_unopt"}"; - - dartPath = "flutter/third_party/dart"; -in -stdenv.mkDerivation (finalAttrs: { - pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}"; - inherit version src patches; - - setOutputFlags = false; - doStrip = isOptimized; - - toolchain = symlinkJoin { - name = "flutter-engine-toolchain-${version}"; - - paths = - lib.flatten ( - map (dep: lib.optionals (lib.isDerivation dep) ([ dep ] ++ map (output: dep.${output}) dep.outputs)) - ( - lib.optionals (stdenv.hostPlatform.isLinux) [ - gtk3 - wayland - libepoxy - libglvnd - freetype - at-spi2-atk - glib - gdk-pixbuf - harfbuzz - pango - cairo - libxcb - libx11 - libxcursor - libxrandr - libxrender - libxinerama - libxi - libxext - libxfixes - libxxf86vm - xorgproto - zlib - ] - ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ - clang - llvm - ] - ) - ) - ++ [ - stdenv.cc.libc_dev - stdenv.cc.libc_lib - ]; - - # Needed due to Flutter expecting everything to be relative to $out - # and not true absolute path (ie relative to "/"). - postBuild = '' - mkdir --parents $(dirname $(dirname "$out/$out")) - ln --symbolic $(dirname "$out") $out/$(dirname "$out") - ''; - }; - - NIX_CFLAGS_COMPILE = [ - "-I${finalAttrs.toolchain}/include" - "-O2" - "-Wno-error" - "-Wno-absolute-value" - "-Wno-implicit-float-conversion" - ] - ++ lib.optional (!isOptimized) "-U_FORTIFY_SOURCE"; - - nativeCheckInputs = lib.optionals stdenv.hostPlatform.isLinux [ - xorg-server - openbox - ]; - - nativeBuildInputs = [ - (python3.withPackages ( - ps: with ps; [ - pyyaml - ] - )) - (tools.vpython python3) - gitMinimal - pkg-config - ninja - dart - ] - ++ lib.optionals (stdenv.hostPlatform.isLinux) [ patchelf ] - ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ - darwin.system_cmds - darwin.xcode - tools.xcode-select - ] - ++ lib.optionals (stdenv.cc.libc ? bin) [ stdenv.cc.libc.bin ]; - - buildInputs = [ - gtk3 - libepoxy - ] - ++ lib.optionals (lib.versionAtLeast flutterVersion "3.41") [ - at-spi2-atk - glib - ]; - - dontPatch = true; - - env.patchgit = toString [ - dartPath - "flutter" - "." - "flutter/third_party/skia" - ]; - - postUnpack = - lib.optionalString (lib.versionAtLeast flutterVersion "3.38") '' - chmod +w . - mkdir --parents bin/internal - echo '#!${lib.getExe bash}' > bin/internal/content_aware_hash.sh - echo 'echo 1111111111111111111111111111111111111111' >> bin/internal/content_aware_hash.sh - chmod +x bin/internal/content_aware_hash.sh - '' - + '' - pushd ${finalAttrs.src.name} - - cp ${ - fetchurl { - url = "https://raw.githubusercontent.com/chromium/chromium/631a813125b886a52274653144019fd1681a0e97/build/config/linux/pkg-config.py"; - hash = "sha256-9coRpgCewlkFXSGrMVkudaZUll0IFc9jDRBP+2PloOI="; - } - } src/build/config/linux/pkg-config.py - - cp --preserve=mode,ownership,timestamps --recursive --reflink=auto ${swiftshader} src/flutter/third_party/swiftshader - chmod --recursive u+w -- src/flutter/third_party/swiftshader - - ln --symbolic ${llvmPackages.llvm.monorepoSrc} src/flutter/third_party/swiftshader/third_party/llvm-project - - mkdir --parents src/flutter/buildtools/${constants.alt-platform} - ln --symbolic ${llvm} src/flutter/buildtools/${constants.alt-platform}/clang - - mkdir --parents src/buildtools/${constants.alt-platform} - ln --symbolic ${llvm} src/buildtools/${constants.alt-platform}/clang - - mkdir --parents src/${dartPath}/tools/sdks - ln --symbolic ${dart} src/${dartPath}/tools/sdks/dart-sdk - - mkdir --parents src/flutter/third_party/gn/ - ln --symbolic --force ${lib.getExe gn} src/flutter/third_party/gn/gn - - for dir in ''${patchgit[@]}; do - pushd src/$dir - rm --recursive --force .git - git init - git add . - git config user.name "nobody" - git config user.email "nobody@local.host" - git commit --all --message="$dir" --quiet - popd - done - - dart src/${dartPath}/tools/generate_package_config.dart - echo "${dartSdkVersion}" >src/${dartPath}/sdk/version - python3 src/flutter/third_party/dart/tools/generate_sdk_version_file.py - rm --recursive --force src/third_party/angle/.git - python3 src/flutter/tools/pub_get_offline.py - - pushd src/flutter - - for p in ''${patches[@]}; do - patch -p1 -i $p - done - - popd - '' - # error: 'close_range' is missing exception specification 'noexcept(true)' - + lib.optionalString (lib.versionAtLeast flutterVersion "3.35") '' - substituteInPlace src/flutter/third_party/dart/runtime/bin/process_linux.cc \ - --replace-fail "(unsigned int first, unsigned int last, int flags)" "(unsigned int first, unsigned int last, int flags) noexcept(true)" - '' - # src/flutter/third_party/libcxx/include/__type_traits/is_referenceable.h:33:1: error: templates must have C++ linkage - + lib.optionalString (lib.versionAtLeast flutterVersion "3.41") '' - substituteInPlace src/flutter/shell/platform/linux/fl_view_accessible.cc \ - --replace-fail "// Workaround missing C code compatibility in ATK header." "#include " - '' - + '' - popd - ''; - - configureFlags = [ - "--no-prebuilt-dart-sdk" - "--embedder-for-target" - "--no-goma" - "--no-dart-version-git-info" - ] - ++ lib.optionals (stdenv.targetPlatform.isx86_64 == false) [ - "--linux" - "--linux-cpu ${constants.alt-arch}" - ] - ++ lib.optional (!isOptimized) "--unoptimized" - ++ lib.optional (runtimeMode == "debug") "--no-stripped" - ++ lib.optional finalAttrs.finalPackage.doCheck "--enable-unittests" - ++ lib.optional (!finalAttrs.finalPackage.doCheck) "--no-enable-unittests"; - - configurePhase = '' - runHook preConfigure - - export PYTHONPATH=$src/src/build - '' - + lib.optionalString stdenv.hostPlatform.isDarwin '' - export PATH=${darwin.xcode}/Contents/Developer/usr/bin/:$PATH - '' - + '' - python3 ./src/flutter/tools/gn $configureFlags \ - --runtime-mode ${runtimeMode} \ - --out-dir $out \ - --target-sysroot ${finalAttrs.toolchain} \ - --target-dir ${outName} \ - --target-triple ${stdenv.targetPlatform.config} \ - --enable-fontconfig - - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - - export TERM=dumb - '' - # ValueError: ZIP does not support timestamps before 1980 - + '' - substituteInPlace src/flutter/build/zip.py \ - --replace-fail "zipfile.ZipFile(args.output, 'w', zipfile.ZIP_DEFLATED)" "zipfile.ZipFile(args.output, 'w', zipfile.ZIP_DEFLATED, strict_timestamps=False)" - '' - + '' - ninja -C $out/out/${outName} -j$NIX_BUILD_CORES - - runHook postBuild - ''; - - # Tests are broken - doCheck = false; - checkPhase = '' - runHook preCheck - - ln --symbolic $out/out src/out - touch src/out/run_tests.log - sh src/flutter/testing/run_tests.sh ${outName} - rm src/out/run_tests.log - - runHook postCheck - ''; - - installPhase = '' - runHook preInstall - - rm --recursive --force $out/out/${outName}/{obj,exe.unstripped,lib.unstripped,zip_archives} - rm $out/out/${outName}/{args.gn,build.ninja,build.ninja.d,compile_commands.json,toolchain.ninja} - find $out/out/${outName} -name '*_unittests' -delete - find $out/out/${outName} -name '*_benchmarks' -delete - '' - + lib.optionalString (finalAttrs.finalPackage.doCheck) '' - rm $out/out/${outName}/{display_list_rendertests,flutter_tester} - '' - + '' - runHook postInstall - ''; - - passthru = { - inherit - dartSdkVersion - isOptimized - runtimeMode - outName - swiftshader - ; - dart = callPackage ./dart.nix { engine = finalAttrs.finalPackage; }; - }; - - meta = { - # Very broken on Darwin - broken = stdenv.hostPlatform.isDarwin; - description = "Flutter engine"; - homepage = "https://flutter.dev"; - maintainers = with lib.maintainers; [ RossComputerGuy ]; - license = lib.licenses.bsd3; - platforms = [ - "x86_64-linux" - "aarch64-linux" - "x86_64-darwin" - "aarch64-darwin" - ]; - }; -}) diff --git a/pkgs/development/compilers/flutter/engine/patches/git-revision.patch b/pkgs/development/compilers/flutter/engine/patches/git-revision.patch new file mode 100644 index 000000000000..ad2c22ddf694 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/patches/git-revision.patch @@ -0,0 +1,44 @@ +--- a/engine/src/flutter/build/git_revision.py ++++ b/engine/src/flutter/build/git_revision.py +@@ -22,18 +22,7 @@ + if not os.path.exists(repository): + raise IOError('path does not exist') + +- git = 'git' +- if is_windows(): +- git = 'git.bat' +- version = subprocess.check_output([ +- git, +- '-C', +- repository, +- 'rev-parse', +- 'HEAD', +- ]) +- +- return str(version.strip(), 'utf-8') ++ return '0' * 41 + + + def main(): +--- a/engine/src/flutter/tools/gn ++++ b/engine/src/flutter/tools/gn +@@ -286,18 +286,7 @@ + if not os.path.exists(repository): + raise IOError('path does not exist') + +- git = 'git' +- if sys.platform.startswith(('cygwin', 'win')): +- git = 'git.bat' +- version = subprocess.check_output([ +- git, +- '-C', +- repository, +- 'rev-parse', +- 'HEAD', +- ]) +- +- return str(version.strip(), 'utf-8') ++ return '0' * 41 + + + def setup_git_versions(): diff --git a/pkgs/development/compilers/flutter/engine/patches/no-vpython.patch b/pkgs/development/compilers/flutter/engine/patches/no-vpython.patch new file mode 100644 index 000000000000..8b162f653919 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/patches/no-vpython.patch @@ -0,0 +1,11 @@ +--- a/engine/src/.gn ++++ b/engine/src/.gn +@@ -3,7 +3,7 @@ + + # Use vpython3 from depot_tools for exec_script() calls. + # See `gn help dotfile` for details. +-script_executable = "vpython3" ++script_executable = "python3" + + # The location of the build configuration file. + buildconfig = "//build/config/BUILDCONFIG.gn" diff --git a/pkgs/development/compilers/flutter/engine/patches/not-in-git.patch b/pkgs/development/compilers/flutter/engine/patches/not-in-git.patch new file mode 100644 index 000000000000..b67b7b2f6fa9 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/patches/not-in-git.patch @@ -0,0 +1,13 @@ +--- a/engine/src/flutter/tools/pub_get_offline.py ++++ b/engine/src/flutter/tools/pub_get_offline.py +@@ -148,10 +148,6 @@ + SRC_ROOT, 'flutter', 'third_party', 'dart', 'tools', 'sdks', 'dart-sdk', 'bin' + ) + +- # Delete all package_config.json files. These may be stale. +- # Required ones will be regenerated fresh below. +- delete_config_files() +- + # Ensure all relevant packages are listed in ALL_PACKAGES. + unlisted = find_unlisted_packages() + if len(unlisted) > 0: diff --git a/pkgs/development/compilers/flutter/engine/patches/shared-libcxx.patch b/pkgs/development/compilers/flutter/engine/patches/shared-libcxx.patch new file mode 100644 index 000000000000..e93ffce50471 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/patches/shared-libcxx.patch @@ -0,0 +1,22 @@ +--- a/engine/src/flutter/third_party/flatbuffers/include/flatbuffers/util.h ++++ b/engine/src/flutter/third_party/flatbuffers/include/flatbuffers/util.h +@@ -202,7 +202,7 @@ + + // clang-format off + // Use locale independent functions {strtod_l, strtof_l, strtoll_l, strtoull_l}. +-#if defined(FLATBUFFERS_LOCALE_INDEPENDENT) && (FLATBUFFERS_LOCALE_INDEPENDENT > 0) ++#if defined(__GLIBC__) && defined(FLATBUFFERS_LOCALE_INDEPENDENT) && (FLATBUFFERS_LOCALE_INDEPENDENT > 0) + class ClassicLocale { + #ifdef _MSC_VER + typedef _locale_t locale_type; +--- a/engine/src/flutter/third_party/flatbuffers/src/util.cpp ++++ b/engine/src/flutter/third_party/flatbuffers/src/util.cpp +@@ -252,7 +252,7 @@ + } + + // Locale-independent code. +-#if defined(FLATBUFFERS_LOCALE_INDEPENDENT) && \ ++#if defined(__GLIBC__) && defined(FLATBUFFERS_LOCALE_INDEPENDENT) && \ + (FLATBUFFERS_LOCALE_INDEPENDENT > 0) + + // clang-format off diff --git a/pkgs/development/compilers/flutter/engine/patches/unbundle-engine.patch b/pkgs/development/compilers/flutter/engine/patches/unbundle-engine.patch new file mode 100644 index 000000000000..1a0077ad5315 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/patches/unbundle-engine.patch @@ -0,0 +1,933 @@ +diff --git a/engine/src/build/linux/unbundle/freetype2.gn b/engine/src/build/linux/unbundle/freetype2.gn +new file mode 100644 +index 0000000..3b8cafb +--- /dev/null ++++ b/engine/src/build/linux/unbundle/freetype2.gn +@@ -0,0 +1,35 @@ ++# Copyright 2013 The Flutter Authors. All rights reserved. ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++import("//build/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++config("freetype_config") { ++ include_dirs = [ "include/freetype-flutter-config" ] ++ ++ cflags = [] ++ ++ if (is_clang) { ++ cflags += [ ++ "-Wno-unused-function", ++ "-Wno-unused-variable", ++ ] ++ } ++} ++ ++pkg_config("system_freetype2") { ++ packages = [ "freetype2" ] ++} ++ ++source_set("freetype2") { ++ output_name = "freetype2" ++ deps = [ ++ "//third_party/libpng", ++ "//third_party/zlib", ++ ] ++ public_configs = [ ++ ":freetype_config", ++ ":system_freetype2", ++ ] ++} +diff --git a/engine/src/build/linux/unbundle/harfbuzz.gn b/engine/src/build/linux/unbundle/harfbuzz.gn +new file mode 100644 +index 0000000..72d3e06 +--- /dev/null ++++ b/engine/src/build/linux/unbundle/harfbuzz.gn +@@ -0,0 +1,31 @@ ++# Copyright 2013 The Flutter Authors. All rights reserved. ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("system_harfbuzz") { ++ packages = [ "harfbuzz" ] ++} ++ ++pkg_config("system_harfbuzz_subset") { ++ packages = [ "harfbuzz-subset" ] ++} ++ ++source_set("harfbuzz") { ++ output_name = "harfbuzz" ++ deps = [ ++ "//third_party/freetype2", ++ "//third_party/icu:icuuc", ++ ] ++ public_configs = [ ":system_harfbuzz" ] ++} ++ ++source_set("harfbuzz_subset") { ++ output_name = "harfbuzz_subset" ++ deps = [ ++ "//third_party/freetype2", ++ "//third_party/icu:icuuc", ++ ] ++ public_configs = [ ":system_harfbuzz_subset" ] ++} +diff --git a/engine/src/build/linux/unbundle/icu.gn b/engine/src/build/linux/unbundle/icu.gn +new file mode 100644 +index 0000000..9e54d4e +--- /dev/null ++++ b/engine/src/build/linux/unbundle/icu.gn +@@ -0,0 +1,264 @@ ++# Copyright 2016 The Chromium Authors ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++import("//build/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++group("icu") { ++ public_deps = [ ++ ":icui18n", ++ ":icuuc", ++ ] ++} ++ ++config("icu_config") { ++ defines = [ ++ "USING_SYSTEM_ICU=1", ++ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC", ++ ++ # U_EXPORT (defined in unicode/platform.h) is used to set public visibility ++ # on classes through the U_COMMON_API and U_I18N_API macros (among others). ++ # When linking against the system ICU library, we want its symbols to have ++ # public LTO visibility. This disables CFI checks for the ICU classes and ++ # allows whole-program optimization to be applied to the rest of Chromium. ++ # ++ # Both U_COMMON_API and U_I18N_API macros would be defined to U_EXPORT only ++ # when U_COMBINED_IMPLEMENTATION is defined (see unicode/utypes.h). Because ++ # we override the default system UCHAR_TYPE (char16_t), it is not possible ++ # to use U_COMBINED_IMPLEMENTATION at this moment, meaning the U_COMMON_API ++ # and U_I18N_API macros are set to U_IMPORT which is an empty definition. ++ # ++ # Until building with UCHAR_TYPE=char16_t is supported, one way to apply ++ # public visibility (and thus public LTO visibility) to all ICU classes is ++ # to define U_IMPORT to have the same value as U_EXPORT. For more details, ++ # please see: https://crbug.com/822820 ++ "U_IMPORT=U_EXPORT", ++ ] ++} ++ ++pkg_config("system_icui18n") { ++ packages = [ "icu-i18n" ] ++} ++ ++pkg_config("system_icuuc") { ++ packages = [ "icu-uc" ] ++} ++ ++source_set("icui18n") { ++ public_deps = [ ":icui18n_shim" ] ++ public_configs = [ ++ ":icu_config", ++ ":system_icui18n", ++ ] ++} ++ ++source_set("icuuc") { ++ public_deps = [ ":icuuc_shim" ] ++ public_configs = [ ++ ":icu_config", ++ ":system_icuuc", ++ ] ++} ++ ++group("icui18n_hidden_visibility") { ++ public_deps = [ ":icui18n" ] ++} ++ ++group("icuuc_hidden_visibility") { ++ public_deps = [ ":icuuc" ] ++} ++ ++shim_headers("icui18n_shim") { ++ root_path = "source/i18n" ++ headers = [ ++ # This list can easily be updated using the commands below: ++ # cd third_party/icu/source/i18n ++ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u ++ "unicode/alphaindex.h", ++ "unicode/basictz.h", ++ "unicode/calendar.h", ++ "unicode/choicfmt.h", ++ "unicode/coleitr.h", ++ "unicode/coll.h", ++ "unicode/compactdecimalformat.h", ++ "unicode/curramt.h", ++ "unicode/currpinf.h", ++ "unicode/currunit.h", ++ "unicode/datefmt.h", ++ "unicode/dcfmtsym.h", ++ "unicode/decimfmt.h", ++ "unicode/dtfmtsym.h", ++ "unicode/dtitvfmt.h", ++ "unicode/dtitvinf.h", ++ "unicode/dtptngen.h", ++ "unicode/dtrule.h", ++ "unicode/fieldpos.h", ++ "unicode/fmtable.h", ++ "unicode/format.h", ++ "unicode/fpositer.h", ++ "unicode/gender.h", ++ "unicode/gregocal.h", ++ "unicode/listformatter.h", ++ "unicode/measfmt.h", ++ "unicode/measunit.h", ++ "unicode/measure.h", ++ "unicode/msgfmt.h", ++ "unicode/numfmt.h", ++ "unicode/numsys.h", ++ "unicode/plurfmt.h", ++ "unicode/plurrule.h", ++ "unicode/rbnf.h", ++ "unicode/rbtz.h", ++ "unicode/regex.h", ++ "unicode/region.h", ++ "unicode/reldatefmt.h", ++ "unicode/scientificnumberformatter.h", ++ "unicode/search.h", ++ "unicode/selfmt.h", ++ "unicode/simpletz.h", ++ "unicode/smpdtfmt.h", ++ "unicode/sortkey.h", ++ "unicode/stsearch.h", ++ "unicode/tblcoll.h", ++ "unicode/timezone.h", ++ "unicode/tmunit.h", ++ "unicode/tmutamt.h", ++ "unicode/tmutfmt.h", ++ "unicode/translit.h", ++ "unicode/tzfmt.h", ++ "unicode/tznames.h", ++ "unicode/tzrule.h", ++ "unicode/tztrans.h", ++ "unicode/ucal.h", ++ "unicode/ucol.h", ++ "unicode/ucoleitr.h", ++ "unicode/ucsdet.h", ++ "unicode/udat.h", ++ "unicode/udateintervalformat.h", ++ "unicode/udatpg.h", ++ "unicode/ufieldpositer.h", ++ "unicode/uformattable.h", ++ "unicode/ugender.h", ++ "unicode/ulocdata.h", ++ "unicode/umsg.h", ++ "unicode/unirepl.h", ++ "unicode/unum.h", ++ "unicode/unumsys.h", ++ "unicode/upluralrules.h", ++ "unicode/uregex.h", ++ "unicode/uregion.h", ++ "unicode/ureldatefmt.h", ++ "unicode/usearch.h", ++ "unicode/uspoof.h", ++ "unicode/utmscale.h", ++ "unicode/utrans.h", ++ "unicode/vtzone.h", ++ ] ++ additional_includes = [ "flutter" ] ++} ++ ++shim_headers("icuuc_shim") { ++ root_path = "source/common" ++ headers = [ ++ # This list can easily be updated using the commands below: ++ # cd third_party/icu/source/common ++ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u ++ "unicode/appendable.h", ++ "unicode/brkiter.h", ++ "unicode/bytestream.h", ++ "unicode/bytestrie.h", ++ "unicode/bytestriebuilder.h", ++ "unicode/caniter.h", ++ "unicode/casemap.h", ++ "unicode/char16ptr.h", ++ "unicode/chariter.h", ++ "unicode/dbbi.h", ++ "unicode/docmain.h", ++ "unicode/dtintrv.h", ++ "unicode/edits.h", ++ "unicode/enumset.h", ++ "unicode/errorcode.h", ++ "unicode/filteredbrk.h", ++ "unicode/icudataver.h", ++ "unicode/icuplug.h", ++ "unicode/idna.h", ++ "unicode/localematcher.h", ++ "unicode/localpointer.h", ++ "unicode/locdspnm.h", ++ "unicode/locid.h", ++ "unicode/messagepattern.h", ++ "unicode/normalizer2.h", ++ "unicode/normlzr.h", ++ "unicode/parseerr.h", ++ "unicode/parsepos.h", ++ "unicode/platform.h", ++ "unicode/ptypes.h", ++ "unicode/putil.h", ++ "unicode/rbbi.h", ++ "unicode/rep.h", ++ "unicode/resbund.h", ++ "unicode/schriter.h", ++ "unicode/simpleformatter.h", ++ "unicode/std_string.h", ++ "unicode/strenum.h", ++ "unicode/stringpiece.h", ++ "unicode/stringtriebuilder.h", ++ "unicode/symtable.h", ++ "unicode/ubidi.h", ++ "unicode/ubiditransform.h", ++ "unicode/ubrk.h", ++ "unicode/ucasemap.h", ++ "unicode/ucat.h", ++ "unicode/uchar.h", ++ "unicode/ucharstrie.h", ++ "unicode/ucharstriebuilder.h", ++ "unicode/uchriter.h", ++ "unicode/uclean.h", ++ "unicode/ucnv.h", ++ "unicode/ucnv_cb.h", ++ "unicode/ucnv_err.h", ++ "unicode/ucnvsel.h", ++ "unicode/uconfig.h", ++ "unicode/ucurr.h", ++ "unicode/udata.h", ++ "unicode/udisplaycontext.h", ++ "unicode/uenum.h", ++ "unicode/uidna.h", ++ "unicode/uiter.h", ++ "unicode/uldnames.h", ++ "unicode/ulistformatter.h", ++ "unicode/uloc.h", ++ "unicode/umachine.h", ++ "unicode/umisc.h", ++ "unicode/unifilt.h", ++ "unicode/unifunct.h", ++ "unicode/unimatch.h", ++ "unicode/uniset.h", ++ "unicode/unistr.h", ++ "unicode/unorm.h", ++ "unicode/unorm2.h", ++ "unicode/uobject.h", ++ "unicode/urename.h", ++ "unicode/urep.h", ++ "unicode/ures.h", ++ "unicode/uscript.h", ++ "unicode/uset.h", ++ "unicode/usetiter.h", ++ "unicode/ushape.h", ++ "unicode/usprep.h", ++ "unicode/ustring.h", ++ "unicode/ustringtrie.h", ++ "unicode/utext.h", ++ "unicode/utf.h", ++ "unicode/utf16.h", ++ "unicode/utf32.h", ++ "unicode/utf8.h", ++ "unicode/utf_old.h", ++ "unicode/utrace.h", ++ "unicode/utypes.h", ++ "unicode/uvernum.h", ++ "unicode/uversion.h", ++ ] ++ additional_includes = [ "flutter" ] ++} +diff --git a/engine/src/build/linux/unbundle/libjpeg-turbo.gn b/engine/src/build/linux/unbundle/libjpeg-turbo.gn +new file mode 100644 +index 0000000..be0c674 +--- /dev/null ++++ b/engine/src/build/linux/unbundle/libjpeg-turbo.gn +@@ -0,0 +1,11 @@ ++# Copyright 2013 The Flutter Authors. All rights reserved. ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++config("libjpeg_config") { ++ libs = [ "jpeg" ] ++} ++ ++group("libjpeg") { ++ public_configs = [ ":libjpeg_config" ] ++} +diff --git a/engine/src/build/linux/unbundle/libpng.gn b/engine/src/build/linux/unbundle/libpng.gn +new file mode 100644 +index 0000000..91e0ee4 +--- /dev/null ++++ b/engine/src/build/linux/unbundle/libpng.gn +@@ -0,0 +1,23 @@ ++# Copyright 2016 The Chromium Authors ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++import("//build/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++pkg_config("libpng_config") { ++ packages = [ "libpng" ] ++} ++ ++shim_headers("libpng_shim") { ++ root_path = "." ++ headers = [ ++ "png.h", ++ "pngconf.h", ++ ] ++} ++ ++source_set("libpng") { ++ deps = [ ":libpng_shim" ] ++ public_configs = [ ":libpng_config" ] ++} +diff --git a/engine/src/build/linux/unbundle/libwebp.gn b/engine/src/build/linux/unbundle/libwebp.gn +new file mode 100644 +index 0000000..708cc9c +--- /dev/null ++++ b/engine/src/build/linux/unbundle/libwebp.gn +@@ -0,0 +1,35 @@ ++# Copyright 2016 The Chromium Authors ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++import("//build/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++pkg_config("system_libwebp") { ++ packages = [ ++ "libwebp", ++ "libwebpdemux", ++ "libwebpmux", ++ ] ++} ++ ++shim_headers("libwebp_shim") { ++ root_path = "src/src" ++ headers = [ ++ "webp/decode.h", ++ "webp/demux.h", ++ "webp/encode.h", ++ "webp/mux.h", ++ "webp/mux_types.h", ++ "webp/types.h", ++ ] ++} ++ ++source_set("libwebp_webp") { ++ deps = [ ":libwebp_shim" ] ++ public_configs = [ ":system_libwebp" ] ++} ++ ++group("libwebp") { ++ deps = [ ":libwebp_webp" ] ++} +diff --git a/engine/src/build/linux/unbundle/libxml.gn b/engine/src/build/linux/unbundle/libxml.gn +new file mode 100644 +index 0000000..b42d044 +--- /dev/null ++++ b/engine/src/build/linux/unbundle/libxml.gn +@@ -0,0 +1,13 @@ ++# Copyright 2016 The Chromium Authors ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++import("//build/config/linux/pkg_config.gni") ++ ++pkg_config("system_libxml") { ++ packages = [ "libxml-2.0" ] ++} ++ ++source_set("libxml") { ++ public_configs = [ ":system_libxml" ] ++} +diff --git a/engine/src/build/linux/unbundle/replace_gn_files.py b/engine/src/build/linux/unbundle/replace_gn_files.py +new file mode 100755 +index 0000000..b8b24c6 +--- /dev/null ++++ b/engine/src/build/linux/unbundle/replace_gn_files.py +@@ -0,0 +1,101 @@ ++#!/usr/bin/env python3 ++# Copyright 2016 The Chromium Authors ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++""" ++Replaces GN files in tree with files from here that ++make the build use system libraries. ++""" ++ ++import argparse ++import os ++import shutil ++import sys ++ ++ ++REPLACEMENTS = { ++ # Use system libabsl_2xxx. These 18 shims MUST be used together. ++ 'absl_algorithm': 'flutter/third_party/abseil-cpp/absl/algorithm/BUILD.gn', ++ 'absl_base': 'flutter/third_party/abseil-cpp/absl/base/BUILD.gn', ++ 'absl_cleanup': 'flutter/third_party/abseil-cpp/absl/cleanup/BUILD.gn', ++ 'absl_container': 'flutter/third_party/abseil-cpp/absl/container/BUILD.gn', ++ 'absl_debugging': 'flutter/third_party/abseil-cpp/absl/debugging/BUILD.gn', ++ 'absl_flags': 'flutter/third_party/abseil-cpp/absl/flags/BUILD.gn', ++ 'absl_functional': 'flutter/third_party/abseil-cpp/absl/functional/BUILD.gn', ++ 'absl_hash': 'flutter/third_party/abseil-cpp/absl/hash/BUILD.gn', ++ 'absl_memory': 'flutter/third_party/abseil-cpp/absl/memory/BUILD.gn', ++ 'absl_meta': 'flutter/third_party/abseil-cpp/absl/meta/BUILD.gn', ++ 'absl_numeric': 'flutter/third_party/abseil-cpp/absl/numeric/BUILD.gn', ++ 'absl_random': 'flutter/third_party/abseil-cpp/absl/random/BUILD.gn', ++ 'absl_status': 'flutter/third_party/abseil-cpp/absl/status/BUILD.gn', ++ 'absl_strings': 'flutter/third_party/abseil-cpp/absl/strings/BUILD.gn', ++ 'absl_synchronization': 'flutter/third_party/abseil-cpp/absl/synchronization/BUILD.gn', ++ 'absl_time': 'flutter/third_party/abseil-cpp/absl/time/BUILD.gn', ++ 'absl_types': 'flutter/third_party/abseil-cpp/absl/types/BUILD.gn', ++ 'absl_utility': 'flutter/third_party/abseil-cpp/absl/utility/BUILD.gn', ++ # ++ 'fontconfig': 'third_party/fontconfig/BUILD.gn', ++ 'freetype2': 'flutter/third_party/freetype2/BUILD.gn', ++ 'harfbuzz': 'flutter/build/secondary/flutter/third_party/harfbuzz/BUILD.gn', ++ 'icu': 'flutter/third_party/icu/BUILD.gn', ++ 'libjpeg-turbo': 'flutter/third_party/libjpeg-turbo/BUILD.gn', ++ 'libpng': 'flutter/third_party/libpng/BUILD.gn', ++ 'libwebp': 'flutter/build/secondary/flutter/third_party/libwebp/BUILD.gn', ++ 'libxml': 'third_party/libxml/BUILD.gn', ++ 'libXNVCtrl': 'flutter/third_party/angle/src/third_party/libXNVCtrl/BUILD.gn', ++ 'sqlite': 'flutter/third_party/sqlite/BUILD.gn', ++ # Use system libSPIRV-Tools in Swiftshader. These two shims MUST be used together. ++ 'swiftshader-SPIRV-Headers': 'flutter/third_party/swiftshader/third_party/SPIRV-Headers/BUILD.gn', ++ 'swiftshader-SPIRV-Tools': 'flutter/third_party/swiftshader/third_party/SPIRV-Tools/BUILD.gn', ++ # Use system libSPIRV-Tools inside ANGLE. These two shims MUST be used together ++ # and can only be used if WebGPU is not compiled (use_dawn=false) ++ 'vulkan-SPIRV-Headers': 'flutter/third_party/vulkan-deps/spirv-headers/src/BUILD.gn', ++ 'vulkan-SPIRV-Tools': 'flutter/third_party/vulkan-deps/spirv-tools/src/BUILD.gn', ++ # ++ 'zlib': 'flutter/third_party/zlib/BUILD.gn', ++} ++ ++ ++def DoMain(argv): ++ my_dirname = os.path.dirname(__file__) ++ source_tree_root = os.path.abspath( ++ os.path.join(my_dirname, '..', '..', '..')) ++ ++ parser = argparse.ArgumentParser() ++ parser.add_argument('--system-libraries', nargs='*', default=[]) ++ parser.add_argument('--undo', action='store_true') ++ ++ args = parser.parse_args(argv) ++ ++ handled_libraries = set() ++ for lib, path in REPLACEMENTS.items(): ++ if lib not in args.system_libraries: ++ continue ++ handled_libraries.add(lib) ++ ++ if args.undo: ++ # Restore original file, and also remove the backup. ++ # This is meant to restore the source tree to its original state. ++ os.rename(os.path.join(source_tree_root, path + '.bak'), ++ os.path.join(source_tree_root, path)) ++ else: ++ # Create a backup copy for --undo. ++ shutil.copyfile(os.path.join(source_tree_root, path), ++ os.path.join(source_tree_root, path + '.bak')) ++ ++ # Copy the GN file from directory of this script to target path. ++ shutil.copyfile(os.path.join(my_dirname, '%s.gn' % lib), ++ os.path.join(source_tree_root, path)) ++ ++ unhandled_libraries = set(args.system_libraries) - handled_libraries ++ if unhandled_libraries: ++ print('Unrecognized system libraries requested: %s' % ', '.join( ++ sorted(unhandled_libraries)), file=sys.stderr) ++ return 1 ++ ++ return 0 ++ ++ ++if __name__ == '__main__': ++ sys.exit(DoMain(sys.argv[1:])) +diff --git a/engine/src/build/linux/unbundle/sqlite.gn b/engine/src/build/linux/unbundle/sqlite.gn +new file mode 100644 +index 0000000..e6c653d +--- /dev/null ++++ b/engine/src/build/linux/unbundle/sqlite.gn +@@ -0,0 +1,20 @@ ++# Copyright 2013 The Flutter Authors. All rights reserved. ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++import("//build/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++pkg_config("system_sqlite") { ++ packages = [ "sqlite3" ] ++} ++ ++shim_headers("sqlite_shim") { ++ root_path = "//third_party/sqlite" ++ headers = [ "sqlite3.h" ] ++} ++ ++source_set("sqlite") { ++ public_deps = [ ":sqlite_shim" ] ++ public_configs = [ ":system_sqlite" ] ++} +diff --git a/engine/src/build/linux/unbundle/zlib.gn b/engine/src/build/linux/unbundle/zlib.gn +new file mode 100644 +index 0000000..6daf3c6 +--- /dev/null ++++ b/engine/src/build/linux/unbundle/zlib.gn +@@ -0,0 +1,72 @@ ++# Copyright 2016 The Chromium Authors ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++import("//build/shim_headers.gni") ++ ++declare_args() { ++ use_zlib_ng = false ++} ++ ++if (use_zlib_ng) { ++ _suffix = "-ng" ++} else { ++ _suffix = "" ++} ++ ++shim_headers("zlib_shim") { ++ root_path = "." ++ headers = [ "zlib.h%zlib$_suffix.h" ] ++ additional_includes = [ "flutter", "flutter/third_party" ] ++} ++ ++config("system_zlib") { ++ defines = [ "USE_SYSTEM_ZLIB=1" ] ++} ++ ++config("zlib_config") { ++ configs = [ ":system_zlib" ] ++} ++ ++source_set("zlib") { ++ public_deps = [ ":zlib_shim" ] ++ libs = [ "z$_suffix" ] ++ public_configs = [ ":system_zlib" ] ++} ++ ++shim_headers("minizip_shim") { ++ root_path = "contrib" ++ headers = [ ++ "minizip/crypt.h", ++ "minizip/ioapi.h", ++ "minizip/iowin32.h", ++ "minizip/mztools.h", ++ "minizip/unzip.h", ++ "minizip/zip.h", ++ ] ++} ++ ++source_set("minizip") { ++ deps = [ ":minizip_shim" ] ++ libs = [ "minizip" ] ++} ++ ++static_library("zip") { ++ sources = [ ++ "google/zip.cc", ++ "google/zip.h", ++ "google/zip_internal.cc", ++ "google/zip_internal.h", ++ "google/zip_reader.cc", ++ "google/zip_reader.h", ++ ] ++ deps = [ ":minizip" ] ++} ++ ++static_library("compression_utils") { ++ sources = [ ++ "google/compression_utils.cc", ++ "google/compression_utils.h", ++ ] ++ deps = [ ":zlib" ] ++} +diff --git a/engine/src/build/shim_headers.gni b/engine/src/build/shim_headers.gni +new file mode 100644 +index 0000000..1d24e0a +--- /dev/null ++++ b/engine/src/build/shim_headers.gni +@@ -0,0 +1,42 @@ ++# Copyright 2016 The Chromium Authors ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++template("shim_headers") { ++ action_name = "gen_${target_name}" ++ config_name = "${target_name}_config" ++ shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}" ++ config(config_name) { ++ include_dirs = [ shim_headers_path ] ++ if (defined(invoker.additional_includes)) { ++ foreach(i, invoker.additional_includes) { ++ include_dirs += [ shim_headers_path + "/" + i ] ++ } ++ } ++ } ++ action(action_name) { ++ script = "//tools/generate_shim_headers.py" ++ args = [ ++ "--generate", ++ "--headers-root", ++ rebase_path(invoker.root_path), ++ "--output-directory", ++ rebase_path(shim_headers_path), ++ ] ++ if (defined(invoker.prefix)) { ++ args += [ ++ "--prefix", ++ invoker.prefix, ++ ] ++ } ++ args += invoker.headers ++ outputs = [] ++ foreach(h, invoker.headers) { ++ outputs += [ shim_headers_path + "/" + ++ rebase_path(invoker.root_path, "//") + "/" + h ] ++ } ++ } ++ group(target_name) { ++ public_deps = [ ":${action_name}" ] ++ all_dependent_configs = [ ":${config_name}" ] ++ } ++} +diff --git a/engine/src/tools/generate_shim_headers.py b/engine/src/tools/generate_shim_headers.py +new file mode 100644 +index 0000000..aaa16f8 +--- /dev/null ++++ b/engine/src/tools/generate_shim_headers.py +@@ -0,0 +1,116 @@ ++#!/usr/bin/env python ++# Copyright 2012 The Chromium Authors ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++""" ++Generates shim headers that mirror the directory structure of bundled headers, ++but just forward to the system ones. ++ ++This allows seamless compilation against system headers with no changes ++to our source code. ++""" ++ ++ ++import optparse ++import os.path ++import sys ++ ++ ++SHIM_TEMPLATE = """ ++#if defined(OFFICIAL_BUILD) ++#error shim headers must not be used in official builds! ++#endif ++""" ++ ++ ++def GeneratorMain(argv): ++ parser = optparse.OptionParser() ++ parser.add_option('--headers-root', action='append') ++ parser.add_option('--define', action='append') ++ parser.add_option('--output-directory') ++ parser.add_option('--prefix', default='') ++ parser.add_option('--use-include-next', action='store_true') ++ parser.add_option('--outputs', action='store_true') ++ parser.add_option('--generate', action='store_true') ++ ++ options, args = parser.parse_args(argv) ++ ++ if not options.headers_root: ++ parser.error('Missing --headers-root parameter.') ++ if not options.output_directory: ++ parser.error('Missing --output-directory parameter.') ++ if not args: ++ parser.error('Missing arguments - header file names.') ++ ++ source_tree_root = os.path.abspath( ++ os.path.join(os.path.dirname(__file__), '..')) ++ ++ for root in options.headers_root: ++ target_directory = os.path.join( ++ options.output_directory, ++ os.path.relpath(root, source_tree_root)) ++ if options.generate and not os.path.exists(target_directory): ++ os.makedirs(target_directory) ++ ++ for header_spec in args: ++ if ';' in header_spec: ++ (header_filename, ++ include_before, ++ include_after) = header_spec.split(';', 2) ++ else: ++ header_filename = header_spec ++ include_before = '' ++ include_after = '' ++ if '%' in header_filename: ++ (header_filename, ++ upstream_header_filename) = header_filename.split('%', 1) ++ else: ++ upstream_header_filename = header_filename ++ if options.outputs: ++ yield os.path.join(target_directory, header_filename) ++ if options.generate: ++ header_path = os.path.join(target_directory, header_filename) ++ header_dir = os.path.dirname(header_path) ++ if not os.path.exists(header_dir): ++ os.makedirs(header_dir) ++ with open(header_path, 'w') as f: ++ f.write(SHIM_TEMPLATE) ++ ++ if options.define: ++ for define in options.define: ++ key, value = define.split('=', 1) ++ # This non-standard push_macro extension is supported ++ # by compilers we support (GCC, clang). ++ f.write('#pragma push_macro("%s")\n' % key) ++ f.write('#undef %s\n' % key) ++ f.write('#define %s %s\n' % (key, value)) ++ ++ if include_before: ++ for header in include_before.split(':'): ++ f.write('#include %s\n' % header) ++ ++ include_target = options.prefix + upstream_header_filename ++ if options.use_include_next: ++ f.write('#include_next <%s>\n' % include_target) ++ else: ++ f.write('#include <%s>\n' % include_target) ++ ++ if include_after: ++ for header in include_after.split(':'): ++ f.write('#include %s\n' % header) ++ ++ if options.define: ++ for define in options.define: ++ key, value = define.split('=', 1) ++ # This non-standard pop_macro extension is supported ++ # by compilers we support (GCC, clang). ++ f.write('#pragma pop_macro("%s")\n' % key) ++ ++ ++def DoMain(argv): ++ return '\n'.join(GeneratorMain(argv)) ++ ++ ++if __name__ == '__main__': ++ DoMain(sys.argv[1:]) +--- /dev/null ++++ b/engine/src/build/linux/unbundle/vulkan-SPIRV-Headers.gn +@@ -0,0 +1,19 @@ ++# This shim can only be used if you build Chromium without DAWN ++ ++import("//build/shim_headers.gni") ++ ++shim_headers("vulkan-SPIRV-Headers_shim") { ++ root_path = "include" ++ headers = [ ++ "spirv/unified1/GLSL.std.450.h", ++ "spirv/unified1/NonSemanticClspvReflection.h", ++ "spirv/unified1/NonSemanticDebugPrintf.h", ++ "spirv/unified1/OpenCL.std.h", ++ "spirv/unified1/spirv.h", ++ "spirv/unified1/spirv.hpp", ++ ] ++} ++ ++source_set("spv_headers") { ++ deps = [ ":vulkan-SPIRV-Headers_shim" ] ++} +--- /dev/null ++++ b/engine/src/build/linux/unbundle/vulkan-SPIRV-Tools.gn +@@ -0,0 +1,73 @@ ++# This shim can only be used if you build Chromium without DAWN ++ ++import("//build/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++pkg_config("spvtools_internal_config") { ++ packages = [ "SPIRV-Tools" ] ++} ++ ++shim_headers("vulkan-SPIRV-Tools_shim") { ++ root_path = "include" ++ headers = [ ++ "spirv-tools/instrument.hpp", ++ "spirv-tools/libspirv.h", ++ "spirv-tools/libspirv.hpp", ++ "spirv-tools/linker.hpp", ++ "spirv-tools/optimizer.hpp", ++ ] ++} ++ ++source_set("SPIRV-Tools") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} ++ ++source_set("spvtools") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} ++ ++source_set("spvtools_core_enums_unified1") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} ++ ++source_set("spvtools_core_tables_unified1") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} ++ ++source_set("spvtools_headers") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} ++ ++source_set("spvtools_language_header_cldebuginfo100") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} ++ ++source_set("spvtools_language_header_debuginfo") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} ++ ++source_set("spvtools_language_header_vkdebuginfo100") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} ++ ++source_set("spvtools_opt") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} ++ ++config("spvtools_public_config") { ++ configs = [ ":spvtools_internal_config" ] ++} ++ ++source_set("spvtools_val") { ++ deps = [ ":vulkan-SPIRV-Tools_shim" ] ++ public_configs = [ ":spvtools_internal_config" ] ++} diff --git a/pkgs/development/compilers/flutter/engine/source.nix b/pkgs/development/compilers/flutter/engine/source.nix index e95828c0b8ab..81fe84f21225 100644 --- a/pkgs/development/compilers/flutter/engine/source.nix +++ b/pkgs/development/compilers/flutter/engine/source.nix @@ -1,73 +1,60 @@ { - lib, - callPackage, curlMinimal, - pkg-config, gitMinimal, python312, + depot_tools, runCommand, writeText, cacert, - flutterVersion, version, - hashes, - url, - hostPlatform, - targetPlatform, - buildPlatform, - ... -}@pkgs: + engineHash ? "", + cipd, + writableTmpDirAsHomeHook, +}: + let - target-constants = callPackage ./constants.nix { platform = targetPlatform; }; - build-constants = callPackage ./constants.nix { platform = buildPlatform; }; - tools = pkgs.tools or (callPackage ./tools.nix { inherit hostPlatform buildPlatform; }); - - boolOption = value: if value then "True" else "False"; - - gclient = writeText "flutter-${version}.gclient" '' - solutions = [{ - "managed": False, - "name": ".", - "url": "${url}", - "custom_vars": { - "download_fuchsia_deps": False, - "download_android_deps": False, - "download_linux_deps": ${boolOption targetPlatform.isLinux}, - "setup_githooks": False, - "download_esbuild": False, - "download_dart_sdk": True, - "host_cpu": "${build-constants.alt-arch}", - "host_os": "${build-constants.alt-os}", - }, - }] - + gclient = writeText ".gclient" '' + solutions = [ + { + "name": ".", + "url": "https://github.com/flutter/flutter.git@${version}", + "managed": False, + "custom_vars": { + "download_dart_sdk": False, + "download_esbuild": False, + "download_android_deps": False, + "download_jdk": False, + "download_linux_deps": False, + "download_windows_deps": False, + "download_fuchsia_deps": False, + "checkout_llvm": False, + "setup_githooks": False, + "release_candidate": True, + }, + } + ] + target_os = [ "linux" ] + target_cpu = [ "x64", "arm64", "riscv64" ] target_os_only = True - target_os = [ - "${target-constants.alt-os}" - ] - target_cpu_only = True - target_cpu = [ - "${target-constants.alt-arch}" - ] ''; in -runCommand "flutter-engine-source-${version}-${buildPlatform.system}-${targetPlatform.system}" +runCommand "flutter-engine-source-${version}" { pname = "flutter-engine-source"; inherit version; nativeBuildInputs = [ curlMinimal - pkg-config gitMinimal - tools.cipd + cipd (python312.withPackages ( ps: with ps; [ httplib2 six ] )) + writableTmpDirAsHomeHook ]; env = { @@ -81,23 +68,26 @@ runCommand "flutter-engine-source-${version}-${buildPlatform.system}-${targetPla outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = - (hashes."${buildPlatform.system}" or { })."${targetPlatform.system}" - or (throw "Hash not set for ${targetPlatform.system} on ${buildPlatform.system}"); + outputHash = engineHash; } '' - source ${../../../../build-support/fetchgit/deterministic-git} - export -f clean_git - export -f make_deterministic_repo - - mkdir --parents flutter - cp ${gclient} flutter/.gclient - cd flutter - export PATH=$PATH:${tools.depot_tools} - python3 ${tools.depot_tools}/gclient.py sync --no-history --shallow --nohooks -j $NIX_BUILD_CORES - mv engine $out - - find $out -name '.git' -exec rm --recursive --force {} \; || true - - rm --recursive $out/src/flutter/{buildtools,prebuilts,third_party/swiftshader,third_party/gn/.versions,third_party/dart/tools/sdks/dart-sdk} + mkdir --parents source + cd source + cp ${gclient} .gclient + export PATH=$PATH:${depot_tools} + python3 ${depot_tools}/gclient.py sync --no-history --shallow --nohooks --jobs=$NIX_BUILD_CORES + rm --recursive --force engine/src/flutter/buildtools engine/src/flutter/third_party/dart/tools/sdks/dart-sdk engine/src/flutter/third_party/gn third_party/ninja + rm --recursive --force engine/src/flutter/third_party/swiftshader/.git + rm --recursive --force engine/src/flutter/third_party/swiftshader/tests + rm --recursive --force engine/src/flutter/third_party/swiftshader/docs + rm --recursive --force engine/src/flutter/third_party/swiftshader/infra + rm --recursive --force engine/src/flutter/third_party/swiftshader/.vscode + rm --recursive --force engine/src/flutter/third_party/swiftshader/llvm-16.0 + rm --recursive --force engine/src/flutter/third_party/swiftshader/llvm-10.0 + rm --recursive --force engine/src/flutter/third_party/llvm-project + find engine/src/flutter/third_party/swiftshader/third_party -type d \( -name "test" -o -name "tests" -o -name "unittests" \) -prune -exec rm --recursive --force {} + + find engine/src/flutter/third_party/swiftshader -type f \( -name "*.o" -o -name "*.a" -o -name "*.so" \) -delete + find . -type d \( -name ".git" -o -name ".cipd" \) -prune -exec rm --recursive --force {} + + find . -type f -name ".gclient*" -delete + cp --recursive . $out '' diff --git a/pkgs/development/compilers/flutter/engine/tools.nix b/pkgs/development/compilers/flutter/engine/tools.nix deleted file mode 100644 index fcc841eaae47..000000000000 --- a/pkgs/development/compilers/flutter/engine/tools.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ - stdenv, - buildPlatform, - hostPlatform, - callPackage, - fetchgit, - fetchurl, - writeText, - runCommand, - darwin, - writeShellScriptBin, - depot_toolsCommit ? "580b4ff3f5cd0dcaa2eacda28cefe0f45320e8f7", - depot_toolsHash ? "sha256-k+XQSYJQYc9vAUjwrRxaAlX/sK74W45m5byS31hSpwc=", - cipdCommit ? "7120a6a515089a3ff5d1f61ff4ee17750dc038af", - cipdHashes ? { - "linux-386" = "sha256-CshLfw49uglvWNwWE4K7ucBUF+IZlXDaIQsTXtFEJ8U="; - "linux-amd64" = "sha256-rxpI+HqfZiOYvzyyQ9P93s70feDmrLgbm4Xh3o88LwQ="; - "linux-arm64" = "sha256-XTTKbw1Q2lin+pf7VADalpBy3AWMTEd7yItsE/pePxw="; - "linux-armv6l" = "sha256-e5qe2KcguRLPuAq6wOG7A3YghHHon+oHY3fRLhU+e9E="; - "linux-loong64" = "sha256-LPTK4Ly173jac+cSGrsWw0ajrWEYepeJDGtP/7Xh528="; - "linux-mips" = "sha256-nR5khvHbAijs0MEr8+UgbuHTRNQAsMOyGTU/DI3K5Os="; - "linux-mips64" = "sha256-4a/zD1CrC/sxtBHqSRpom0SYVoN38bz3FAM40OSdVI0="; - "linux-mips64le" = "sha256-JnfKuBGLHYNLnRieS0KV8sYaTjh2rbp1yijvNOrU0FE="; - "linux-mipsle" = "sha256-nWqoay8c4faRk2+G5TvwbsbnndjTU4oglOTfhSC+TLQ="; - "linux-ppc64" = "sha256-pjeI/bx0i+QchQLhNB88ACPI34SrFvvFA01F5Nb16Ys="; - "linux-ppc64le" = "sha256-ZDMDwrP1zYlOI1hdbd3iZwKr59v/8CWj2sZ1RdosAiE="; - "linux-riscv64" = "sha256-O2EvOnjwbNssB7FtbK44yFcXfkrh9HOsPs/HF+uD2m8="; - "linux-s390x" = "sha256-BKeNDtuc9IkmV4GpuZcdsGc2F039KQeLdozxh7u+FDw="; - "macos-amd64" = "sha256-ZKBm8PbKjg4t0jIBPRKAv85L8eZOwJ1wBvh3cRSqHOI="; - "macos-arm64" = "sha256-AvjJp7JF05CetYDnwNJneAsotm1vBHWqB/vCdcIohoU="; - "windows-386" = "sha256-AVLbWh+WtJKynFDS6IfhuvYudw4Ow9s6w2JyDWG/2CI="; - "windows-amd64" = "sha256-puAQhiPGuwzkElWiBdTRGWOaUR2AIP7Qv9S3pwEY74E="; - "windows-arm64" = "sha256-4wxOMG+zvkM7gjhAiQvvNqNS0AamKKJdaBM/+rRxgXk="; - }, -}: -let - constants = callPackage ./constants.nix { platform = buildPlatform; }; - host-constants = callPackage ./constants.nix { platform = hostPlatform; }; - stdenv-constants = callPackage ./constants.nix { platform = stdenv.hostPlatform; }; -in -{ - depot_tools = fetchgit { - url = "https://chromium.googlesource.com/chromium/tools/depot_tools.git"; - rev = depot_toolsCommit; - hash = depot_toolsHash; - }; - - cipd = - let - unwrapped = - runCommand "cipd-${cipdCommit}" - { - src = fetchurl { - name = "cipd-${cipdCommit}-unwrapped"; - url = "https://chrome-infra-packages.appspot.com/client?platform=${stdenv-constants.platform}&version=git_revision:${cipdCommit}"; - hash = cipdHashes.${stdenv-constants.platform}; - }; - } - '' - mkdir --parents $out/bin - install --mode=0755 $src $out/bin/cipd - ''; - in - writeShellScriptBin "cipd" '' - params=$@ - - if [[ "$1" == "ensure" ]]; then - shift 1 - params="ensure" - - while [ "$#" -ne 0 ]; do - if [[ "$1" == "-ensure-file" ]]; then - ensureFile="$2" - shift 2 - params="$params -ensure-file $ensureFile" - - sed -i 's/''${platform}/${host-constants.platform}/g' "$ensureFile" - sed -i 's/gn\/gn\/${stdenv-constants.platform}/gn\/gn\/${constants.platform}/g' "$ensureFile" - - if grep flutter/java/openjdk "$ensureFile" >/dev/null; then - sed -i '/src\/flutter\/third_party\/java\/openjdk/,+2 d' "$ensureFile" - fi - else - params="$params $1" - shift 1 - fi - done - fi - - exec ${unwrapped}/bin/cipd $params - ''; - - vpython = - pythonPkg: - runCommand "vpython3" { } '' - mkdir --parents $out/bin - ln --symbolic ${pythonPkg}/bin/python $out/bin/vpython3 - ''; - - xcode-select = writeShellScriptBin "xcode-select" '' - echo ${darwin.xcode}/Contents/Developer - ''; -} diff --git a/pkgs/development/compilers/flutter/flutter-tools.nix b/pkgs/development/compilers/flutter/flutter-tools.nix index e99b347c69af..4c40870dbf6a 100644 --- a/pkgs/development/compilers/flutter/flutter-tools.nix +++ b/pkgs/development/compilers/flutter/flutter-tools.nix @@ -1,86 +1,74 @@ { - lib, - stdenv, - systemPlatform, buildDartApplication, - runCommand, - writeTextFile, - git, - which, dart, - version, - flutterSrc, - patches ? [ ], + flutterSource, + lib, + patches, pubspecLock, - engineVersion, + runCommand, + stdenv, + version, + which, + writableTmpDirAsHomeHook, }: let - # https://github.com/flutter/flutter/blob/17c92b7ba68ea609f4eb3405211d019c9dbc4d27/engine/src/flutter/tools/engine_tool/test/commands/stamp_command_test.dart#L125 - engine_stamp = writeTextFile { - name = "engine_stamp"; - text = builtins.toJSON { - build_date = "2025-06-27T12:30:00.000Z"; - build_time_ms = 1751027400000; - git_revision = engineVersion; - git_revision_date = "2025-06-27T17:11:53-07:00"; - content_hash = "1111111111111111111111111111111111111111"; - }; + dartEntryPoints = { + "flutter_tools.snapshot" = "bin/flutter_tools.dart"; }; - - dartEntryPoints."flutter_tools.snapshot" = "bin/flutter_tools.dart"; in -buildDartApplication.override { inherit dart; } { +buildDartApplication.override { inherit dart; } (finalAttrs: { + __structuredAttrs = true; + strictDeps = true; pname = "flutter-tools"; - inherit version dartEntryPoints; + inherit + version + patches + pubspecLock + dartEntryPoints + ; + + src = flutterSource; + + sourceRoot = "${finalAttrs.src.name}/packages/flutter_tools"; + dartOutputType = "jit-snapshot"; - src = flutterSrc; - sourceRoot = "${flutterSrc.name}/packages/flutter_tools"; + dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${stdenv.hostPlatform.system}" ]; - inherit patches; # The given patches are made for the entire SDK source tree. prePatch = '' chmod --recursive u+w "../.." pushd "../.." ''; + postPatch = '' + echo -n "${version}" > version popd '' - # Use arm64 instead of arm64e. + lib.optionalString stdenv.hostPlatform.isDarwin '' substituteInPlace lib/src/ios/xcodeproj.dart \ - --replace-fail arm64e arm64 - '' - # need network - + lib.optionalString (lib.versionAtLeast version "3.35.0") '' - cp ${engine_stamp} ../../bin/cache/engine_stamp.json - substituteInPlace lib/src/flutter_cache.dart \ - --replace-fail "registerArtifact(FlutterEngineStamp(this, logger));" "" + --replace-fail "arm64e" "arm64" ''; # When the JIT snapshot is being built, the application needs to run. # It attempts to generate configuration files, and relies on a few external # tools. nativeBuildInputs = [ - git which + writableTmpDirAsHomeHook ]; - preConfigure = '' - export HOME=. - export FLUTTER_ROOT="$(realpath ../../)" - mkdir --parents "$FLUTTER_ROOT/bin/cache" - ln --symbolic '${dart}' "$FLUTTER_ROOT/bin/cache/dart-sdk" - ''; - dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${systemPlatform}" ]; + preConfigure = '' + export FLUTTER_ROOT=$(realpath ../../) + mkdir --parents "$FLUTTER_ROOT/bin/cache" + ln --symbolic "${dart}" "$FLUTTER_ROOT/bin/cache/dart-sdk" + ''; # The Dart wrapper launchers are useless for the Flutter tool - it is designed # to be launched from a snapshot by the SDK. postInstall = '' - pushd "$out" - rm ${builtins.concatStringsSep " " (builtins.attrNames dartEntryPoints)} - popd + rm "$out"/${builtins.concatStringsSep " " (builtins.attrNames dartEntryPoints)} ''; sdkSourceBuilders = { @@ -90,7 +78,7 @@ buildDartApplication.override { inherit dart; } { runCommand "dart-sdk-${name}" { passthru.packageRoot = "."; } '' for path in '${dart}/pkg/${name}'; do if [ -d "$path" ]; then - ln -s "$path" "$out" + ln --symbolic "$path" "$out" break fi done @@ -101,6 +89,4 @@ buildDartApplication.override { inherit dart; } { fi ''; }; - - inherit pubspecLock; -} +}) diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index 80bc56cd149d..eaa6ef2f5bf3 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -1,221 +1,358 @@ { - useNixpkgsEngine ? false, - version, - engineVersion, - engineHashes ? { }, - engineUrl ? "https://github.com/flutter/flutter.git@${engineVersion}", - enginePatches ? [ ], - engineRuntimeModes ? [ - "release" - "debug" - ], - engineSwiftShaderHash, - engineSwiftShaderRev, - patches, - channel, - dart, - src, - pubspecLock, - artifactHashes ? null, + scope, lib, stdenv, + dart, + autoPatchelfHook, + flutterSource, + flutter-tools, callPackage, + host-artifacts, + artifacts ? host-artifacts, + version, + engineVersion, + channel, + dartVersion, + patches, makeWrapper, - darwin, gitMinimal, which, jq, + unzip, + gnutar, + pkg-config, + atk, + cairo, + gdk-pixbuf, + glib, + gtk3, + harfbuzz, + libepoxy, + pango, + libx11, + xorgproto, + libdeflate, + zlib, + cmake, + ninja, + clang, + darwin, + cipd, + depot_tools, + wrapGAppsHook3, writableTmpDirAsHomeHook, - flutterTools ? null, -}@args: + fd, + cacert, + moreutils, + writeTextFile, + supportedTargetFlutterPlatforms, + extraPkgConfigPackages ? [ ], + extraLibraries ? [ ], + extraIncludes ? [ ], + extraCxxFlags ? [ ], + extraCFlags ? [ ], + extraLinkerFlags ? [ ], +}: let - engine = - if args.useNixpkgsEngine or false then - callPackage ./engine/default.nix { - inherit (args) dart; - dartSdkVersion = args.dart.version; - flutterVersion = version; - swiftshaderRev = engineSwiftShaderRev; - swiftshaderHash = engineSwiftShaderHash; - version = engineVersion; - hashes = engineHashes; - url = engineUrl; - patches = enginePatches; - runtimeModes = engineRuntimeModes; - } - else - null; - - dart = if args.useNixpkgsEngine or false then engine.dart else args.dart; - - flutterTools = - args.flutterTools or (callPackage ./flutter-tools.nix { - inherit - dart - engineVersion - patches - pubspecLock - version - ; - flutterSrc = src; - systemPlatform = stdenv.hostPlatform.system; - }); - - unwrapped = stdenv.mkDerivation { - name = "flutter-${version}-unwrapped"; - inherit src patches version; - - nativeBuildInputs = [ - makeWrapper - jq - gitMinimal - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; - strictDeps = true; - - preConfigure = '' - if [ "$(< bin/internal/engine.version)" != '${engineVersion}' ]; then - echo 1>&2 "The given engine version (${engineVersion}) does not match the version required by the Flutter SDK ($(< bin/internal/engine.version))." - exit 1 - fi - ''; - - postPatch = '' - patchShebangs --build ./bin/ - patchShebangs packages/flutter_tools/bin - ''; - - buildPhase = '' - runHook preBuild - '' - # The flutter_tools package tries to run many Git commands. In most - # cases, unexpected output is handled gracefully, but commands are never - # expected to fail completely. A blank repository needs to be created. - + '' - rm --recursive --force .git # Remove any existing Git directory - git init --initial-branch=nixpkgs - GIT_AUTHOR_NAME=Nixpkgs GIT_COMMITTER_NAME=Nixpkgs \ - GIT_AUTHOR_EMAIL= GIT_COMMITTER_EMAIL= \ - GIT_AUTHOR_DATE='1/1/1970 00:00:00 +0000' GIT_COMMITTER_DATE='1/1/1970 00:00:00 +0000' \ - git commit --allow-empty --message="Initial commit" - (. '${../../../build-support/fetchgit/deterministic-git}'; make_deterministic_repo .) - '' - + '' - mkdir --parents bin/cache - - # Add a flutter_tools artifact stamp, and build a snapshot. - # This is the Flutter CLI application. - echo "$(git rev-parse HEAD)" > bin/cache/flutter_tools.stamp - ln --symbolic '${flutterTools}/share/flutter_tools.snapshot' bin/cache/flutter_tools.snapshot - - # Some of flutter_tools's dependencies contain static assets. The - # application attempts to read its own package_config.json to find these - # assets at runtime. - mkdir --parents packages/flutter_tools/.dart_tool - ln --symbolic '${flutterTools.pubcache}/package_config.json' packages/flutter_tools/.dart_tool/package_config.json - - echo -n "${version}" > version - cat < bin/cache/flutter.version.json - { - "devToolsVersion": "$(cat "${dart}/bin/resources/devtools/version.json" | jq --raw-output .version)", - "flutterVersion": "${version}", - "frameworkVersion": "${version}", - "channel": "${channel}", - "repositoryUrl": "https://github.com/flutter/flutter.git", - "frameworkRevision": "nixpkgs000000000000000000000000000000000", - "frameworkCommitDate": "1970-01-01 00:00:00", - "engineRevision": "${engineVersion}", - "dartSdkVersion": "${dart.version}" - } - EOF - - # Suppress a small error now that `.gradle`'s location changed. - # Location changed because of the patch "gradle-flutter-tools-wrapper.patch". - mkdir --parents "$out/packages/flutter_tools/gradle/.gradle" - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - mkdir --parents $out - cp --recursive . $out - rm --recursive --force $out/bin/cache/dart-sdk - ln --symbolic --force ${dart} $out/bin/cache/dart-sdk - - # The regular launchers are designed to download/build/update SDK - # components, and are not very useful in Nix. - # Replace them with simple links and wrappers. - rm "$out/bin"/{dart,flutter} - ln --symbolic "$out/bin/cache/dart-sdk/bin/dart" "$out/bin/dart" - makeShellWrapper "$out/bin/dart" "$out/bin/flutter" \ - --set-default FLUTTER_ROOT "$out" \ - --set FLUTTER_ALREADY_LOCKED true \ - --add-flags "--disable-dart-dev --packages='${flutterTools.pubcache}/package_config.json' \$NIX_FLUTTER_TOOLS_VM_OPTIONS $out/bin/cache/flutter_tools.snapshot" - - runHook postInstall - ''; - - doInstallCheck = true; - nativeInstallCheckInputs = [ - which - writableTmpDirAsHomeHook - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; - installCheckPhase = '' - runHook preInstallCheck - - $out/bin/flutter config --android-studio-dir $HOME - $out/bin/flutter config --android-sdk $HOME - $out/bin/flutter --version | fgrep --quiet '${builtins.substring 0 10 engineVersion}' - - runHook postInstallCheck - ''; - - passthru = { - # TODO: rely on engine.version instead of engineVersion - inherit - dart - engineVersion - artifactHashes - channel - ; - tools = flutterTools; - # The derivation containing the original Flutter SDK files. - # When other derivations wrap this one, any unmodified files - # found here should be included as-is, for tooling compatibility. - sdk = unwrapped; - } - // lib.optionalAttrs (engine != null) { - inherit engine; - }; - - meta = { - broken = (lib.versionOlder version "3.32") && useNixpkgsEngine; - description = "Makes it easy and fast to build beautiful apps for mobile and beyond"; - longDescription = '' - Flutter is Google's SDK for crafting beautiful, - fast user experiences for mobile, web, and desktop from a single codebase. - ''; - homepage = "https://flutter.dev"; - license = lib.licenses.bsd3; - sourceProvenance = - with lib.sourceTypes; - if useNixpkgsEngine then [ fromSource ] else [ binaryNativeCode ]; - platforms = [ - "x86_64-linux" - "aarch64-linux" - "x86_64-darwin" - "aarch64-darwin" + appRuntimeDeps = + lib.optionals + (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) + [ + atk + cairo + gdk-pixbuf + glib + gtk3 + harfbuzz + libepoxy + pango + libx11 + libdeflate ]; - mainProgram = "flutter"; - maintainers = with lib.maintainers; [ - ericdallo + + # Development packages required for compilation. + appBuildDeps = + let + # https://discourse.nixos.org/t/handling-transitive-c-dependencies/5942/3 + deps = + pkg: lib.filter lib.isDerivation ((pkg.buildInputs or [ ]) ++ (pkg.propagatedBuildInputs or [ ])); + withKey = pkg: { + key = pkg.outPath; + val = pkg; + }; + collect = pkg: lib.map withKey ([ pkg ] ++ deps pkg); + in + lib.map (e: e.val) ( + lib.genericClosure { + startSet = lib.map withKey appRuntimeDeps; + operator = item: collect item.val; + } + ); + + appStaticBuildDeps = + (lib.optionals + (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) + [ + libx11 + xorgproto + zlib + ] + ) + ++ extraLibraries; + + # Tools used by the Flutter SDK to compile applications. + buildTools = + lib.optionals + (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) + [ + pkg-config + cmake + ninja + clang ]; - teams = [ lib.teams.flutter ]; - }; - }; + + # Nix-specific compiler configuration. + pkgConfigPackages = map (lib.getOutput "dev") (appBuildDeps ++ extraPkgConfigPackages); + + includeFlags = map (pkg: "-isystem ${lib.getOutput "dev" pkg}/include") ( + appStaticBuildDeps ++ extraIncludes + ); + + linkerFlags = + (map (pkg: "-rpath,${lib.getOutput "lib" pkg}/lib") appRuntimeDeps) ++ extraLinkerFlags; in -unwrapped +stdenv.mkDerivation (finalAttrs: { + __structuredAttrs = true; + strictDeps = true; + pname = "flutter"; + inherit version patches; + + src = flutterSource; + + nativeBuildInputs = [ + moreutils + makeWrapper + jq + unzip + gnutar + ] + ++ + lib.optionals + (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) + [ + wrapGAppsHook3 + autoPatchelfHook + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; + + buildInputs = appRuntimeDeps; + + postPatch = '' + patchShebangs --build ./bin/ + patchShebangs packages/flutter_tools/bin + ''; + + preConfigure = '' + if [ "$(< bin/internal/engine.version)" != '${engineVersion}' ]; then + echo 1>&2 "The given engine version (${engineVersion}) does not match the version required by the Flutter SDK ($(< bin/internal/engine.version))." + exit 1 + fi + ''; + + buildPhase = '' + runHook preBuild + + mkdir --parents bin/cache + '' + # Add a flutter_tools artifact stamp, and build a snapshot. + # This is the Flutter CLI application. + + '' + echo "nixpkgs000000000000000000000000000000000" > bin/cache/flutter_tools.stamp + ln --symbolic ${flutter-tools}/share/flutter_tools.snapshot bin/cache/flutter_tools.snapshot + '' + # Some of flutter_tools's dependencies contain static assets. The + # application attempts to read its own package_config.json to find these + # assets at runtime. + + '' + mkdir --parents packages/flutter_tools/.dart_tool + ln --symbolic ${flutter-tools.pubcache}/package_config.json packages/flutter_tools/.dart_tool/package_config.json + '' + + lib.optionalString (lib.versionOlder version "3.33") '' + echo -n "${version}" > version + '' + + '' + cp ${ + writeTextFile { + name = "flutter.version.json"; + text = builtins.toJSON { + flutterVersion = version; + frameworkVersion = version; + channel = channel; + repositoryUrl = "https://github.com/flutter/flutter.git"; + frameworkRevision = "nixpkgs000000000000000000000000000000000"; + frameworkCommitDate = "1970-01-01 00:00:00"; + engineRevision = engineVersion; + dartSdkVersion = dartVersion; + }; + } + } bin/cache/flutter.version.json + jq --arg version "$(jq --raw-output .version ${dart}/bin/resources/devtools/version.json)" '. + {devToolsVersion: $version}' bin/cache/flutter.version.json | sponge bin/cache/flutter.version.json + echo "${engineVersion}" > bin/cache/engine.stamp + '' + # Suppress a small error now that `.gradle`'s location changed. + # Location changed because of the patch "gradle-flutter-tools-wrapper.patch". + + '' + mkdir --parents packages/flutter_tools/gradle/.gradle + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + ${lib.concatMapStrings (artifact: '' + ${lib.optionalString ( + artifact.target == "bin/cache/flutter_web_sdk" + ) ''rm --recursive --force "$out/${artifact.target}"''} + ${ + if + ( + (lib.hasSuffix ".zip" artifact.path) + || (lib.hasSuffix ".tar.gz" artifact.path) + || (lib.hasSuffix ".tgz" artifact.path) + ) + then + '' + temp_path=$(mktemp -d) + ${lib.optionalString (lib.hasSuffix ".zip" artifact.path) ''unzip -o "${artifact.path}" -d "$temp_path"''} + ${lib.optionalString ( + (lib.hasSuffix ".tar.gz" artifact.path) || (lib.hasSuffix ".tgz" artifact.path) + ) ''tar --extract --gzip --file "${artifact.path}" --directory "$temp_path"''} + '' + else + '' + temp_path="${artifact.path}" + '' + } + content_count=$(ls --almost-all "$temp_path" | wc --lines) + target_path="$out/${artifact.target}" + if [ "$content_count" -eq 1 ] && [ ! -e "$target_path" ]; then + mkdir --parents "$(dirname "$target_path")" + cp --recursive --no-target-directory "$temp_path"/* "$target_path" + else + mkdir --parents "$target_path" + cp --recursive "$temp_path"/* "$target_path"/ + fi + chmod --recursive +w "$target_path" + if [ "${artifact.path}" != "$temp_path" ]; then + rm --recursive --force "$temp_path" + fi + '') artifacts} + + cp --recursive . $out + ln --symbolic --force ${dart} $out/bin/cache/dart-sdk + '' + # The regular launchers are designed to download/build/update SDK + # components, and are not very useful in Nix. + # Replace them with simple links and wrappers. + + '' + rm $out/bin/{dart,flutter} + ln --symbolic ${lib.getExe dart} $out/bin/dart + + for path in ${ + builtins.concatStringsSep " " ( + builtins.foldl' ( + paths: pkg: + paths + ++ (map (directory: "'${pkg}/${directory}/pkgconfig'") [ + "lib" + "share" + ]) + ) [ ] pkgConfigPackages + ) + }; do + addToSearchPath FLUTTER_PKG_CONFIG_PATH "$path" + done + + makeWrapper ${lib.getExe dart} $out/bin/flutter \ + --set-default FLUTTER_ROOT $out \ + --set-default ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \ + --set FLUTTER_ALREADY_LOCKED true \ + --suffix PATH : '${ + lib.makeBinPath ( + [ + depot_tools + cipd + which + ] + ++ buildTools + ) + }' \ + --suffix PKG_CONFIG_PATH : "$FLUTTER_PKG_CONFIG_PATH" \ + --suffix LIBRARY_PATH : '${lib.makeLibraryPath appStaticBuildDeps}' \ + --prefix CXXFLAGS "''\t" '${builtins.concatStringsSep " " (includeFlags ++ extraCxxFlags)}' \ + --prefix CFLAGS "''\t" '${builtins.concatStringsSep " " (includeFlags ++ extraCFlags)}' \ + --prefix LDFLAGS "''\t" '${ + builtins.concatStringsSep " " (map (flag: "-Wl,${flag}") linkerFlags) + }' \ + ''${gappsWrapperArgs[@]} \ + --add-flags "--disable-dart-dev --packages='${flutter-tools.pubcache}/package_config.json' --root-certs-file='${cacert}/etc/ssl/certs/ca-bundle.crt' $out/bin/cache/flutter_tools.snapshot" + + runHook postInstall + ''; + + doInstallCheck = true; + + nativeInstallCheckInputs = [ + which + writableTmpDirAsHomeHook + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; + + installCheckPhase = '' + runHook preInstallCheck + + $out/bin/flutter config --android-studio-dir $HOME + $out/bin/flutter config --android-sdk $HOME + $out/bin/flutter --version | fgrep --quiet '${builtins.substring 0 10 engineVersion}' + + runHook postInstallCheck + ''; + + dontWrapGApps = true; + + # https://github.com/flutter/engine/pull/28525 + appendRunpaths = lib.optionals ( + stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms) + ) [ "$ORIGIN" ]; + + passthru = { + buildFlutterApplication = callPackage ./build-support/build-flutter-application.nix { + flutter = scope.flutter; + }; + updateScript = ./update.py; + inherit scope; + inherit (scope) dart; + }; + + meta = { + description = "Makes it easy and fast to build beautiful apps for mobile and beyond"; + longDescription = '' + Flutter is Google's SDK for crafting beautiful, + fast user experiences for mobile, web, and desktop from a single codebase. + ''; + homepage = "https://flutter.dev"; + license = lib.licenses.bsd3; + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; + platforms = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + mainProgram = "flutter"; + maintainers = with lib.maintainers; [ ericdallo ]; + teams = [ lib.teams.flutter ]; + }; +}) diff --git a/pkgs/development/compilers/flutter/host-artifacts.nix b/pkgs/development/compilers/flutter/host-artifacts.nix new file mode 100644 index 000000000000..444e5cabd764 --- /dev/null +++ b/pkgs/development/compilers/flutter/host-artifacts.nix @@ -0,0 +1,302 @@ +{ + lib, + stdenv, + constants, + engineVersion, + artifactHashes, + useNixpkgsEngine, + engines, + fetchurl, + hostPlatform ? stdenv.hostPlatform, + supportedTargetFlutterPlatforms, +}: + +let + hostConstants = constants.makeConstants hostPlatform; + + engineBaseUrl = "https://storage.googleapis.com/flutter_infra_release/flutter/${engineVersion}/"; + baseUrl = "https://storage.googleapis.com/flutter_infra_release/"; + + getUrl = + path: + if + ( + lib.hasPrefix "flutter/" path + || lib.hasPrefix "gradle-" path + || lib.hasPrefix "ios-usb-dependencies" path + ) + then + baseUrl + path + else + engineBaseUrl + path; + + artifacts = { + universal = [ + { + path = "flutter/fonts/3012db47f3130e62f7cc0beabff968a33cbec8d8/fonts.zip"; + target = "bin/cache/artifacts/material_fonts"; + hash = "sha256-5W+o6btFif3pZL495FHz5bJR5KHq+x3JjZSt0DTdWoY="; + } + { + path = "gradle-wrapper/fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa/gradle-wrapper.tgz"; + target = "bin/cache/artifacts/gradle_wrapper"; + hash = "sha256-MelCi68aKy9IXxEQxYmfhSZJsz1Goumwf50XdS1QGQo="; + } + { + path = "sky_engine.zip"; + target = "bin/cache/pkg"; + } + { + path = "flutter_gpu.zip"; + target = "bin/cache/pkg"; + } + { + path = "flutter_patched_sdk.zip"; + target = "bin/cache/artifacts/engine/common"; + } + { + path = "flutter_patched_sdk_product.zip"; + target = "bin/cache/artifacts/engine/common"; + } + { + path = "${hostPlatform.parsed.kernel.name}-${ + if hostPlatform.isWindows then "x64" else hostConstants.alt-arch + }/artifacts.zip"; + target = "bin/cache/artifacts/engine/${hostPlatform.parsed.kernel.name}-${ + if (hostPlatform.isDarwin || hostPlatform.isWindows) then "x64" else hostConstants.alt-arch + }"; + } + { + path = "${hostPlatform.parsed.kernel.name}-${ + if hostPlatform.isWindows then "x64" else hostConstants.alt-arch + }/font-subset.zip"; + target = "bin/cache/artifacts/engine/${hostPlatform.parsed.kernel.name}-${ + if (hostPlatform.isDarwin || hostPlatform.isWindows) then "x64" else hostConstants.alt-arch + }"; + } + ]; + + web = [ + { + path = "flutter-web-sdk.zip"; + target = "bin/cache/flutter_web_sdk"; + } + ]; + + linux = [ + { + path = "linux-${hostConstants.alt-arch}/artifacts.zip"; + target = "bin/cache/artifacts/engine/linux-${hostConstants.alt-arch}"; + } + { + path = "linux-${hostConstants.alt-arch}-debug/linux-${hostConstants.alt-arch}-flutter-gtk.zip"; + target = "bin/cache/artifacts/engine/linux-${hostConstants.alt-arch}"; + } + { + path = "linux-${hostConstants.alt-arch}-profile/linux-${hostConstants.alt-arch}-flutter-gtk.zip"; + target = "bin/cache/artifacts/engine/linux-${hostConstants.alt-arch}-profile"; + } + { + path = "linux-${hostConstants.alt-arch}-release/linux-${hostConstants.alt-arch}-flutter-gtk.zip"; + target = "bin/cache/artifacts/engine/linux-${hostConstants.alt-arch}-release"; + } + ]; + + # arm64? + windows = [ + { + path = "windows-x64/artifacts.zip"; + target = "bin/cache/artifacts/engine/windows-x64"; + } + { + path = "windows-x64-debug/windows-x64-flutter.zip"; + target = "bin/cache/artifacts/engine/windows-x64"; + } + { + path = "windows-x64/flutter-cpp-client-wrapper.zip"; + target = "bin/cache/artifacts/engine/windows-x64"; + } + { + path = "windows-x64-profile/windows-x64-flutter.zip"; + target = "bin/cache/artifacts/engine/windows-x64-profile"; + } + { + path = "windows-x64-release/windows-x64-flutter.zip"; + target = "bin/cache/artifacts/engine/windows-x64-release"; + } + ]; + + macos = [ + { + path = "darwin-x64/framework.zip"; + target = "bin/cache/artifacts/engine/darwin-x64"; + } + { + path = "darwin-x64/gen_snapshot.zip"; + target = "bin/cache/artifacts/engine/darwin-x64"; + } + { + path = "darwin-x64-profile/artifacts.zip"; + target = "bin/cache/artifacts/engine/darwin-x64-profile"; + } + { + path = "darwin-x64-profile/framework.zip"; + target = "bin/cache/artifacts/engine/darwin-x64-profile"; + } + { + path = "darwin-x64-profile/gen_snapshot.zip"; + target = "bin/cache/artifacts/engine/darwin-x64-profile"; + } + { + path = "darwin-x64-release/artifacts.zip"; + target = "bin/cache/artifacts/engine/darwin-x64-release"; + } + { + path = "darwin-x64-release/framework.zip"; + target = "bin/cache/artifacts/engine/darwin-x64-release"; + } + { + path = "darwin-x64-release/gen_snapshot.zip"; + target = "bin/cache/artifacts/engine/darwin-x64-release"; + } + { + path = "darwin-${hostConstants.alt-arch}/artifacts.zip"; + target = "bin/cache/artifacts/engine/darwin-x64"; + } + ]; + + ios = [ + { + path = "ios/artifacts.zip"; + target = "bin/cache/artifacts/engine/ios"; + } + { + path = "ios-profile/artifacts.zip"; + target = "bin/cache/artifacts/engine/ios-profile"; + } + { + path = "ios-release/artifacts.zip"; + target = "bin/cache/artifacts/engine/ios-release"; + } + { + path = "ios-usb-dependencies/libimobiledevice/0bf0f9e941c85d06ce4b5909d7a61b3a4f2a6a05/libimobiledevice.zip"; + target = "bin/cache/artifacts/libimobiledevice"; + hash = "sha256-EPzWDY5SYegep6DB9ESd/ApklzLtE8reEllMUPzmkLg="; + } + { + path = "ios-usb-dependencies/libusbmuxd/19d6bec393c9f9b31ccb090059f59268da32e281/libusbmuxd.zip"; + target = "bin/cache/artifacts/libusbmuxd"; + hash = "sha256-RQT0Kq8rKKgokp1haASMZ8K84+M2ZbaJcs/MunZ7/L0="; + } + { + path = "ios-usb-dependencies/libplist/cf5897a71ea412ea2aeb1e2f6b5ea74d4fabfd8c/libplist.zip"; + target = "bin/cache/artifacts/libplist"; + hash = "sha256-cx5758EQb/0SkrVusXGFzH2dUChzFd5dFpMKxlxKbS8="; + } + { + path = "ios-usb-dependencies/openssl/22dbb176deef7d9a80f5c94f57a4b518ea935f50/openssl.zip"; + target = "bin/cache/artifacts/openssl"; + hash = "sha256-erz3j0oIZm2IqvFD41APkTgz7YZaaDReokMwGhFCsmA="; + } + { + path = "ios-usb-dependencies/libimobiledeviceglue/050ff3bf8fdab6ce53a2ddc6ae49b11b1c02a168/libimobiledeviceglue.zip"; + target = "bin/cache/artifacts/libimobiledeviceglue"; + hash = "sha256-4rXsfBxIaByVcIuzs05G5RergFZrgaBs1XBmu7ibwAA="; + } + { + path = "ios-usb-dependencies/ios-deploy/7a29ab0b6d611f2bf5de4b6f929a82a091866307/ios-deploy.zip"; + target = "bin/cache/artifacts/ios-deploy"; + hash = "sha256-1p6agbzur4xFai4ZzzjHp4ZvRv+VWcPygBgBYQdQ2Vw="; + } + ]; + + android = [ + { + path = "android-x86/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-x86"; + } + { + path = "android-x64/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-x64"; + } + { + path = "android-arm/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-arm"; + } + { + path = "android-arm-profile/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-arm-profile"; + } + { + path = "android-arm-release/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-arm-release"; + } + { + path = "android-arm64/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-arm64"; + } + { + path = "android-arm64-profile/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-arm64-profile"; + } + { + path = "android-arm64-release/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-arm64-release"; + } + { + path = "android-x64-profile/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-x64-profile"; + } + { + path = "android-x64-release/artifacts.zip"; + target = "bin/cache/artifacts/engine/android-x64-release"; + } + { + path = "android-arm-profile/${hostPlatform.parsed.kernel.name}-x64.zip"; + target = "bin/cache/artifacts/engine/android-arm-profile/${hostPlatform.parsed.kernel.name}-x64"; + } + { + path = "android-arm-release/${hostPlatform.parsed.kernel.name}-x64.zip"; + target = "bin/cache/artifacts/engine/android-arm-release/${hostPlatform.parsed.kernel.name}-x64"; + } + { + path = "android-arm64-profile/${hostPlatform.parsed.kernel.name}-x64.zip"; + target = "bin/cache/artifacts/engine/android-arm64-profile/${hostPlatform.parsed.kernel.name}-x64"; + } + { + path = "android-arm64-release/${hostPlatform.parsed.kernel.name}-x64.zip"; + target = "bin/cache/artifacts/engine/android-arm64-release/${hostPlatform.parsed.kernel.name}-x64"; + } + { + path = "android-x64-profile/${hostPlatform.parsed.kernel.name}-x64.zip"; + target = "bin/cache/artifacts/engine/android-x64-profile/${hostPlatform.parsed.kernel.name}-x64"; + } + { + path = "android-x64-release/${hostPlatform.parsed.kernel.name}-x64.zip"; + target = "bin/cache/artifacts/engine/android-x64-release/${hostPlatform.parsed.kernel.name}-x64"; + } + ]; + }; +in +(lib.unique ( + lib.map ( + artifact: + let + artifactName = lib.removeSuffix ".${lib.last (lib.splitString "." artifact.path)}" artifact.path; + artifactNameUnderscore = lib.replaceStrings [ "-" "/" ] [ "_M_" "_S_" ] artifactName; + useEngineOutput = useNixpkgsEngine && (builtins.elem artifactNameUnderscore engines.outputs); + in + { + path = + if useEngineOutput then + engines.${artifactNameUnderscore} + else + fetchurl { + url = getUrl artifact.path; + hash = artifactHashes.${artifact.path} or artifact.hash or ""; + }; + target = artifact.target; + id = artifact.path; + } + ) (lib.concatMap (x: artifacts.${x}) supportedTargetFlutterPlatforms) +)) diff --git a/pkgs/development/compilers/flutter/patches/opt-in-analytics.patch b/pkgs/development/compilers/flutter/patches/opt-in-analytics.patch new file mode 100644 index 000000000000..036958c47f3b --- /dev/null +++ b/pkgs/development/compilers/flutter/patches/opt-in-analytics.patch @@ -0,0 +1,22 @@ +--- a/packages/flutter_tools/lib/src/reporting/usage.dart ++++ b/packages/flutter_tools/lib/src/reporting/usage.dart +@@ -218,7 +218,7 @@ + if (globals.platform.environment.containsKey('FLUTTER_HOST')) { + analytics.setSessionValue('aiid', globals.platform.environment['FLUTTER_HOST']); + } +- analytics.analyticsOpt = AnalyticsOpt.optOut; ++ analytics.analyticsOpt = AnalyticsOpt.optIn; + } + + return _DefaultUsage._( +--- a/packages/flutter_tools/lib/src/reporting/first_run.dart ++++ b/packages/flutter_tools/lib/src/reporting/first_run.dart +@@ -37,6 +37,8 @@ + ║ See Google's privacy policy: ║ + ║ https://policies.google.com/privacy ║ + ╚════════════════════════════════════════════════════════════════════════════╝ ++nixpkgs overrides: reporting is disabled by default. Opt-out is not a sent event. ++Run 'flutter config --analytics' to opt in to reports. + '''; + + /// The first run messenger determines whether the first run license terms diff --git a/pkgs/development/compilers/flutter/patches/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch b/pkgs/development/compilers/flutter/patches/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch new file mode 100644 index 000000000000..8abd25546790 --- /dev/null +++ b/pkgs/development/compilers/flutter/patches/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch @@ -0,0 +1,18 @@ +flutter defines a list of pointer kinds that can scroll the screen. +however, it does not bother recognizing the pointer kind on linux, +so every pointer is set to be recognized as mouse. effectively, touch +can't scroll anything. this workarounds the issue by making mouse +one of the "touch-like device types". + +Bug: https://github.com/flutter/flutter/issues/63209 + +--- a/packages/flutter/lib/src/widgets/scroll_configuration.dart ++++ b/packages/flutter/lib/src/widgets/scroll_configuration.dart +@@ -25,6 +25,7 @@ + // The VoiceAccess sends pointer events with unknown type when scrolling + // scrollables. + PointerDeviceKind.unknown, ++ PointerDeviceKind.mouse, + }; + + /// The default overscroll indicator applied on [TargetPlatform.android]. diff --git a/pkgs/development/compilers/flutter/scope.nix b/pkgs/development/compilers/flutter/scope.nix new file mode 100644 index 000000000000..ab7369a5513d --- /dev/null +++ b/pkgs/development/compilers/flutter/scope.nix @@ -0,0 +1,105 @@ +{ + dart, + dart-bin, + fetchFromGitHub, + fetchgit, + lib, + newScope, + stdenv, + engineRuntimeModes ? [ + "release" + "debug" + "profile" + ], + supportedTargetFlutterPlatforms ? [ + "universal" + "web" + ] + ++ (lib.optionals (stdenv.hostPlatform.isLinux) [ "linux" ]) + ++ (lib.optionals (stdenv.hostPlatform.isx86_64) [ "android" ]) + ++ (lib.optionals stdenv.hostPlatform.isDarwin [ + "macos" + "ios" + ]), +}: + +versionData: +lib.makeScope newScope ( + self: + versionData + // { + inherit supportedTargetFlutterPlatforms; + + constants = self.callPackage ./constants.nix { }; + + depot_tools = fetchgit { + url = "https://chromium.googlesource.com/chromium/tools/depot_tools.git"; + rev = "a0e694f18f15b364d2f9c23c4dde396bfc973fd1"; + postFetch = '' + substituteInPlace $out/gerrit_util.py \ + --replace-fail "import httplib2.socks" "httplib2.socks = None" + substituteInPlace $out/gerrit_util.py \ + --replace-fail "httplib2.socks.socksocket._socksocket__rewriteproxy = __fixed_rewrite_proxy" "pass" + substituteInPlace $out/gerrit_util.py \ + --replace-fail "httplib2.socks.PROXY_TYPE_HTTP_NO_TUNNEL" "3" + ''; + hash = "sha256-N9xBfLS8DnBjOD149EOu5pr8ffBOb39vebhFUwPBllc="; + }; + + flutterSource = fetchFromGitHub { + owner = "flutter"; + repo = "flutter"; + tag = self.version; + hash = self.flutterHash; + }; + + dart = + let + hash = + self.dartHash.${ + if (stdenv.hostPlatform.isLinux && (lib.versionAtLeast self.version "3.41")) then + "linux" + else + stdenv.hostPlatform.system + } or (throw "No dart hash for ${stdenv.hostPlatform.system}"); + in + (if (lib.versionAtLeast self.version "3.41") then dart else dart-bin).overrideAttrs (oldAttrs: { + version = self.dartVersion; + src = oldAttrs.src.overrideAttrs (_: { + version = self.dartVersion; + outputHash = hash; + }); + }); + + cipd = self.callPackage ./cipd.nix { }; + + engine = self.callPackage ./engine/default.nix { }; + + engines = + let + enginePackages = map ( + runtimeMode: self.callPackage ./engine/default.nix { runtimeMode = runtimeMode; } + ) engineRuntimeModes; + outputs = lib.unique (builtins.concatMap (e: e.outputs) enginePackages); + mergedOutputs = lib.genAttrs outputs ( + outputName: + let + found = lib.findFirst (e: e ? ${outputName}) null enginePackages; + in + found.${outputName} + ); + in + mergedOutputs + // { + inherit outputs; + }; + + host-artifacts = self.callPackage ./host-artifacts.nix { }; + + all-artifacts = self.callPackage ./all-artifacts.nix { }; + + flutter-tools = self.callPackage ./flutter-tools.nix { }; + + flutter = self.callPackage ./flutter.nix { scope = self; }; + } +) diff --git a/pkgs/development/compilers/flutter/sdk-symlink.nix b/pkgs/development/compilers/flutter/sdk-symlink.nix deleted file mode 100644 index d8ddd9bd0c2e..000000000000 --- a/pkgs/development/compilers/flutter/sdk-symlink.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - symlinkJoin, - makeWrapper, -}: -flutter: - -let - self = symlinkJoin { - inherit (flutter) pname; - name = "${flutter.name}-sdk-links"; - paths = [ - flutter - flutter.cacheDir - flutter.sdk - ]; - - nativeBuildInputs = [ makeWrapper ]; - postBuild = '' - wrapProgram "$out/bin/flutter" \ - --set-default FLUTTER_ROOT "$out" - - # symlinkJoin seems to be missing the .git directory for some reason. - if [ -d '${flutter.sdk}/.git' ]; then - ln --symbolic '${flutter.sdk}/.git' "$out" - fi - - # For iOS/macOS builds, *.xcframework/'s from the pre-built - # artifacts are copied into each built app. However, the symlinkJoin - # means that the *.xcframework's contain symlinks into the nix store, - # which causes issues when actually running the apps. - # - # We'll fix this by only linking to an outer *.xcframework dir instead - # of trying to symlinkJoin the files inside the *.xcframework. - artifactsDir="$out/bin/cache/artifacts/engine" - shopt -s globstar - for file in "$artifactsDir"/**/*.xcframework/Info.plist; do - # Get the unwrapped path from the Info.plist inside each .xcframework - origFile="$(readlink -f "$file")" - origFrameworkDir="$(dirname "$origFile")" - - # Remove the symlinkJoin .xcframework dir and replace it with a symlink - # to the unwrapped .xcframework dir. - frameworkDir="$(dirname "$file")" - rm --recursive "$frameworkDir" - ln --symbolic "$origFrameworkDir" "$frameworkDir" - done - shopt -u globstar - ''; - - passthru = flutter.passthru // { - # Update the SDK attribute. - # This allows any modified SDK files to be included - # in future invocations. - sdk = self; - }; - - meta = flutter.meta // { - longDescription = '' - ${flutter.meta.longDescription} - Modified binaries are linked into the original SDK directory for use with tools that use the whole SDK. - ''; - }; - }; -in -self diff --git a/pkgs/development/compilers/flutter/update.py b/pkgs/development/compilers/flutter/update.py new file mode 100755 index 000000000000..c2e6ae6f20e8 --- /dev/null +++ b/pkgs/development/compilers/flutter/update.py @@ -0,0 +1,358 @@ +#!/usr/bin/env nix-shell +# !nix-shell -i python3 -p python3Packages.pyyaml nix-update dart + +import argparse +import json +import logging +import shutil +import stat +import subprocess +import sys +import tempfile +import urllib.request +from pathlib import Path +from typing import Any, NoReturn + +import yaml + +FLUTTER_RELEASES_URL = ( + "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json" +) + +logging.basicConfig( + level=logging.INFO, + format="%(levelname)s: %(message)s", + stream=sys.stderr, +) +logger = logging.getLogger(__name__) + + +def fatal_error(msg: str) -> NoReturn: + logger.error(msg) + sys.exit(1) + + +def run_command(cmd: list[str], cwd: Path | None = None) -> str: + try: + result = subprocess.run( + cmd, + capture_output=True, + text=True, + cwd=cwd, + check=True, + ) + return result.stdout.strip() + except subprocess.CalledProcessError as e: + fatal_error(f"Command failed: {' '.join(cmd)}\n{e.stderr.strip()}") + + +def fetch_url(url: str) -> bytes: + with urllib.request.urlopen(url, timeout=30) as response: + return response.read() + + +def get_nixpkgs_root() -> Path: + return Path(run_command(["git", "rev-parse", "--show-toplevel"])) + + +def run_nix_eval(cmds: list[str]) -> str: + return run_command(["nix", "eval", "--json", "--impure", *cmds]) + + +def run_nix_prefetch(url: str, unpack: bool = False) -> str: + args = ["nix", "store", "prefetch-file", "--json"] + if unpack: + args.append("--unpack") + args.append(url) + + output = run_command(args) + + hash_value = json.loads(output).get("hash") + if not hash_value: + fatal_error(f"No hash in prefetch output: {output}") + return hash_value + + +def get_version_str(flutter_version: str) -> str: + return "_".join(flutter_version.split(".")[:2]) + + +def requires_engine_hash(flutter_version: str) -> bool: + parts = flutter_version.split(".") + if len(parts) < 2: + return False + major, minor = int(parts[0]), int(parts[1]) + return major > 3 or (major == 3 and minor >= 41) + + +def get_version_data( + target_version: str | None = None, channel: str | None = None +) -> tuple[str, str, str, str]: + channel = channel or "stable" + releases_data = json.loads(fetch_url(FLUTTER_RELEASES_URL).decode("utf-8")) + + if not target_version: + release_hash = releases_data["current_release"].get(channel) + if not release_hash: + fatal_error(f"Channel '{channel}' not found in current releases") + release = next( + (r for r in releases_data["releases"] if r["hash"] == release_hash), + None, + ) + else: + release = next( + (r for r in releases_data["releases"] if r["version"] == target_version), + None, + ) + + if not release: + fatal_error(f"Version {target_version or 'latest'} not found in '{channel}'") + + target_version = release["version"] + release_hash = release["hash"] + dart_version = release.get("dart_sdk_version") + + if not dart_version: + fatal_error(f"No dart_sdk_version found for {target_version}") + + if " " in dart_version: + dart_version = dart_version.split(" ")[2].strip("()") + + engine_url = f"https://github.com/flutter/flutter/raw/{release_hash}/bin/internal/engine.version" + engine_version = fetch_url(engine_url).decode("utf-8").strip() + + return target_version, engine_version, dart_version, channel + + +def extract_nix_url(output: str) -> str: + try: + urls = json.loads(output) + return urls[0] if isinstance(urls, list) and urls else "" + except json.JSONDecodeError: + return output.strip('[]"').replace("\\", "") + + +def get_dart_hashes(flutter_version: str) -> dict[str, str]: + version_str = get_version_str(flutter_version) + platforms = ["x86_64-darwin", "aarch64-darwin"] + if not requires_engine_hash(flutter_version): + platforms += ["x86_64-linux", "aarch64-linux"] + dart_hashes = {} + + for system in platforms: + cmds = [ + "--file", + ".", + f"flutterPackages-bin.v{version_str}.passthru.scope.dart.src.drvAttrs.urls", + "--system", + system, + ] + output = run_nix_eval(cmds) + url = extract_nix_url(output) + + if not url: + fatal_error(f"No Dart SDK URL found for {system}") + + dart_hashes[system] = run_nix_prefetch(url) + + return dart_hashes + + +def get_flutter_hash(flutter_version: str) -> str: + version_str = get_version_str(flutter_version) + cmds = [ + "--file", + ".", + f"flutterPackages-bin.v{version_str}.passthru.scope.flutterSource.drvAttrs.urls", + ] + output = run_nix_eval(cmds) + url = extract_nix_url(output) + + if not url: + fatal_error(f"No Flutter source URL found for {flutter_version}") + + return run_nix_prefetch(url, unpack=True) + + +def get_artifact_hashes(flutter_version: str, engine_version: str) -> dict[str, str]: + version_str = get_version_str(flutter_version) + nixpkgs_root = get_nixpkgs_root() + + expr = ( + f"let pkgs = import {nixpkgs_root} {{ }}; " + "in (builtins.map (x: x.path.url) " + f'pkgs.flutterPackages-bin."v{version_str}".passthru.scope.all-artifacts)' + ) + + output = run_nix_eval(["--expr", expr]) + + artifacts = json.loads(output) + + if not isinstance(artifacts, list): + fatal_error("Artifacts is not a list") + + artifact_hashes = {} + for url in artifacts: + if engine_version not in url: + continue + + path_parts = url.split("/") + + hash_idx = path_parts.index(engine_version) + path_key = "/".join(path_parts[hash_idx + 1 :]) + + if path_key not in artifact_hashes: + artifact_hashes[path_key] = run_nix_prefetch(url) + + return artifact_hashes + + +def get_pubspec_lock(flutter_version: str) -> dict[str, Any]: + version_str = get_version_str(flutter_version) + target = f".#flutterPackages-bin.v{version_str}.scope.flutterSource" + + flutter_src_str = run_command([ + "nix", + "build", + "--no-link", + "--print-out-paths", + target, + ]) + if not flutter_src_str: + fatal_error(f"No Flutter source path found for {flutter_version}") + + flutter_src = Path(flutter_src_str) + + with tempfile.TemporaryDirectory(prefix="flutter_src_") as temp_dir_name: + temp_dir = Path(temp_dir_name) + flutter_copy = temp_dir / "flutter" + + shutil.copytree(flutter_src, flutter_copy, symlinks=False) + + for path_item in flutter_copy.rglob("*"): + path_item.chmod(path_item.stat().st_mode | stat.S_IWUSR) + flutter_copy.chmod(flutter_copy.stat().st_mode | stat.S_IWUSR) + + flutter_tools_path = flutter_copy / "packages" / "flutter_tools" + if not flutter_tools_path.exists(): + fatal_error(f"flutter_tools not found at {flutter_tools_path}") + + run_command(["dart", "pub", "get"], cwd=flutter_tools_path) + + pubspec_lock_path = flutter_tools_path / "pubspec.lock" + if not pubspec_lock_path.exists(): + fatal_error(f"pubspec.lock not found at {pubspec_lock_path}") + + with pubspec_lock_path.open("r", encoding="utf-8") as f: + return yaml.safe_load(f) + + +def save_json(data: dict[str, Any], output_path: Path) -> None: + output_path.parent.mkdir(parents=True, exist_ok=True) + with output_path.open("w", encoding="utf-8") as f: + json.dump(data, f, indent=2, sort_keys=True) + f.write("\n") + + +def main() -> None: + parser = argparse.ArgumentParser( + description="Update Flutter data.json for nixpkgs", + formatter_class=argparse.RawDescriptionHelpFormatter, + ) + parser.add_argument( + "--version", + type=str, + help="Specific Flutter version (e.g., 3.41.4). Uses latest from channel if omitted.", + ) + parser.add_argument( + "--channel", + type=str, + default="stable", + choices=["stable", "beta"], + help="Release channel (default: stable)", + ) + + args = parser.parse_args() + + logger.info("Fetching version data...") + flutter_version, engine_version, dart_version, channel = get_version_data( + args.version, args.channel + ) + + logger.info(f"Target Flutter Version: {flutter_version}") + logger.info(f"Engine Version (commit): {engine_version}") + logger.info(f"Dart Version: {dart_version}") + + version_str = get_version_str(flutter_version) + version_dir = Path(__file__).resolve().parent / "versions" / version_str + output_path = version_dir / "data.json" + + has_engine_hash = requires_engine_hash(flutter_version) + + data = { + "version": flutter_version, + "engineVersion": engine_version, + "channel": channel, + "dartVersion": dart_version, + "dartHash": {}, + "flutterHash": "", + "artifactHashes": {}, + "pubspecLock": {}, + } + + save_json(data, output_path) + + logger.info("Fetching Dart hashes...") + data["dartHash"] = get_dart_hashes(flutter_version) + + if has_engine_hash: + data["dartHash"]["linux"] = ( + "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + ) + save_json(data, output_path) + logger.info("Running nix-update for dart hash...") + run_command([ + "nix-update", + "--version", + "skip", + "--override-filename", + str(output_path), + f"flutterPackages-source.v{version_str}.passthru.scope.dart", + ]) + with output_path.open("r", encoding="utf-8") as f: + updated_data = json.load(f) + data["dartHash"]["linux"] = updated_data.get("dartHash")["linux"] + + data["engineHash"] = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + save_json(data, output_path) + logger.info("Running nix-update for engine hash...") + run_command([ + "nix-update", + "--version", + "skip", + "--override-filename", + str(output_path), + f"flutterPackages-source.v{version_str}.passthru.scope.engine", + ]) + with output_path.open("r", encoding="utf-8") as f: + updated_data = json.load(f) + data["engineHash"] = updated_data.get("engineHash") + + logger.info("Fetching Flutter source hash...") + data["flutterHash"] = get_flutter_hash(flutter_version) + + logger.info("Fetching artifact hashes...") + data["artifactHashes"] = get_artifact_hashes(flutter_version, engine_version) + + save_json(data, output_path) + + logger.info("Generating pubspec.lock...") + data["pubspecLock"] = get_pubspec_lock(flutter_version) + + save_json(data, output_path) + + logger.info(f"Update complete. Data written to {output_path}") + + +if __name__ == "__main__": + main() diff --git a/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix.in b/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix.in deleted file mode 100644 index 8edff6a2e876..000000000000 --- a/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix.in +++ /dev/null @@ -1,44 +0,0 @@ -{ - callPackage, - flutterPackages, - lib, - symlinkJoin, -}: -let - nixpkgsRoot = "@nixpkgs_root@"; - flutterCompactVersion = "@flutter_compact_version@"; - - flutterPlatforms = [ - "android" - "ios" - "web" - "linux" - "windows" - "macos" - "fuchsia" - "universal" - ]; - systemPlatforms = [ - "x86_64-linux" - "aarch64-linux" - "x86_64-darwin" - "aarch64-darwin" - ]; - - derivations = lib.foldl' ( - acc: flutterPlatform: - acc - ++ (map ( - systemPlatform: - callPackage "${nixpkgsRoot}/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix" { - flutter = flutterPackages."v${flutterCompactVersion}"; - inherit flutterPlatform systemPlatform; - hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; - } - ) systemPlatforms) - ) [ ] flutterPlatforms; -in -symlinkJoin { - name = "evaluate-derivations"; - paths = derivations; -} diff --git a/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in b/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in deleted file mode 100644 index 0972a3578b52..000000000000 --- a/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in +++ /dev/null @@ -1,22 +0,0 @@ -{ - lib, - fetchurl, -}: - -let - dartVersion = "@dart_version@"; - system = - { - x86_64-linux = "linux-x64"; - aarch64-linux = "linux-arm64"; - x86_64-darwin = "macos-x64"; - aarch64-darwin = "macos-arm64"; - } - ."@platform@"; -in -fetchurl { - url = "https://storage.googleapis.com/dart-archive/channels/${ - if lib.strings.hasSuffix ".beta" dartVersion then "beta" else "stable" - }/release/${dartVersion}/sdk/dartsdk-${system}-release.zip"; - hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; -} diff --git a/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in b/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in deleted file mode 100644 index c96a7b9adad2..000000000000 --- a/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in +++ /dev/null @@ -1,36 +0,0 @@ -{ - callPackage, - symlinkJoin, - lib, -}: -let - nixpkgsRoot = "@nixpkgs_root@"; - version = "@flutter_version@"; - engineVersion = "@engine_version@"; - - systemPlatforms = [ - "x86_64-linux" - "aarch64-linux" - ]; - - derivations = lib.foldl' ( - acc: buildPlatform: - acc - ++ (map ( - targetPlatform: - callPackage "${nixpkgsRoot}/pkgs/development/compilers/flutter/engine/source.nix" { - targetPlatform = lib.systems.elaborate targetPlatform; - hostPlatform = lib.systems.elaborate buildPlatform; - buildPlatform = lib.systems.elaborate buildPlatform; - flutterVersion = version; - version = engineVersion; - url = "https://github.com/flutter/flutter.git@${engineVersion}"; - hashes."${buildPlatform}"."${targetPlatform}" = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; - } - ) systemPlatforms) - ) [ ] systemPlatforms; -in -symlinkJoin { - name = "evaluate-derivations"; - paths = derivations; -} diff --git a/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in b/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in deleted file mode 100644 index aa71f8ae2ad3..000000000000 --- a/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in +++ /dev/null @@ -1,10 +0,0 @@ -{ fetchgit }: -fetchgit { - url = "https://swiftshader.googlesource.com/SwiftShader.git"; - rev = "@engine_swiftshader_rev@"; - - # Keep with in sync of pkgs/development/compilers/flutter/engine/package.nix - postFetch = '' - rm -rf $out/third_party/llvm-project - ''; -} diff --git a/pkgs/development/compilers/flutter/update/get-flutter.nix.in b/pkgs/development/compilers/flutter/update/get-flutter.nix.in deleted file mode 100644 index 02d802e026f0..000000000000 --- a/pkgs/development/compilers/flutter/update/get-flutter.nix.in +++ /dev/null @@ -1,7 +0,0 @@ -{ fetchFromGitHub }: -fetchFromGitHub { - owner = "flutter"; - repo = "flutter"; - tag = "@flutter_version@"; - hash = "@hash@"; -} diff --git a/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix.in b/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix.in deleted file mode 100644 index 3d87a69815e7..000000000000 --- a/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix.in +++ /dev/null @@ -1,40 +0,0 @@ -{ - flutterPackages, - stdenv, - cacert, - writableTmpDirAsHomeHook, -}: -let - flutterCompactVersion = "@flutter_compact_version@"; - inherit (flutterPackages."v${flutterCompactVersion}") dart; -in -stdenv.mkDerivation (finalAttrs: { - name = "pubspec-lock"; - src = @flutter_src@; - - nativeBuildInputs = [ - dart - writableTmpDirAsHomeHook - ]; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "@hash@"; - - buildPhase = '' - runHook preBuild - - cd packages/flutter_tools - dart --root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt pub get - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - cp pubspec.lock $out - - runHook postInstall - ''; -}) diff --git a/pkgs/development/compilers/flutter/update/update.py b/pkgs/development/compilers/flutter/update/update.py deleted file mode 100755 index 7a28cc46d949..000000000000 --- a/pkgs/development/compilers/flutter/update/update.py +++ /dev/null @@ -1,501 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i python3 -p python3Packages.pyyaml - -import argparse -import json -import os -import re -import subprocess -import sys -import tempfile -import urllib.request -from pathlib import Path - -import yaml - -FAKE_HASH = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" - -NIXPKGS_ROOT = ( - subprocess.Popen( - ["git", "rev-parse", "--show-toplevel"], stdout=subprocess.PIPE, text=True - ) - .communicate()[0] - .strip() -) - - -def load_code(name, **kwargs): - with Path( - f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/update/{name}.in" - ).open("r", encoding="utf-8") as f: - code = f.read() - - for key, value in kwargs.items(): - code = code.replace(f"@{key}@", value) - - return code - - -# Return out paths -def nix_build(code): - with tempfile.NamedTemporaryFile(mode="w", encoding="utf-8", delete=False) as temp: - temp.write(code) - temp.flush() - os.fsync(temp.fileno()) - temp_name = temp.name - - process = subprocess.Popen( - [ - "nix-build", - "--impure", - "--no-out-link", - "--expr", - f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp_name} {{}}", - ], - stdout=subprocess.PIPE, - text=True, - ) - - process.wait() - Path(temp_name).unlink() # Clean up the temporary file - return process.stdout.read().strip().splitlines()[0] - - -# Return errors -def nix_build_to_fail(code): - with tempfile.NamedTemporaryFile(mode="w", encoding="utf-8", delete=False) as temp: - temp.write(code) - temp.flush() - os.fsync(temp.fileno()) - temp_name = temp.name - - process = subprocess.Popen( - [ - "nix-build", - "--impure", - "--keep-going", - "--no-link", - "--expr", - f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp_name} {{}}", - ], - stderr=subprocess.PIPE, - text=True, - ) - - stderr = "" - while True: - line = process.stderr.readline() - if not line: - break - stderr += line - print(line.strip()) - - process.wait() - Path(temp_name).unlink() # Clean up the temporary file - return stderr - - -def get_engine_hashes(engine_version, flutter_version): - code = load_code( - "get-engine-hashes.nix", - nixpkgs_root=NIXPKGS_ROOT, - flutter_version=flutter_version, - engine_version=engine_version, - ) - - stderr = nix_build_to_fail(code) - - pattern = re.compile( - rf"/nix/store/.*-flutter-engine-source-{engine_version}-(.+?-.+?)-(.+?-.+?).drv':\n\s+specified: .*\n\s+got:\s+(.+?)\n" - ) - matches = pattern.findall(stderr) - result_dict = {} - - for match in matches: - flutter_platform, architecture, got = match - result_dict.setdefault(flutter_platform, {})[architecture] = got - - def sort_dict_recursive(d): - return { - k: sort_dict_recursive(v) if isinstance(v, dict) else v - for k, v in sorted(d.items()) - } - - return sort_dict_recursive(result_dict) - - -def get_artifact_hashes(flutter_compact_version): - code = load_code( - "get-artifact-hashes.nix", - nixpkgs_root=NIXPKGS_ROOT, - flutter_compact_version=flutter_compact_version, - ) - - stderr = nix_build_to_fail(code) - - pattern = re.compile( - r"/nix/store/.*-flutter-artifacts-(.+?)-(.+?).drv':\n\s+specified: .*\n\s+got:\s+(.+?)\n" - ) - matches = pattern.findall(stderr) - result_dict = {} - - for match in matches: - flutter_platform, architecture, got = match - result_dict.setdefault(flutter_platform, {})[architecture] = got - - def sort_dict_recursive(d): - return { - k: sort_dict_recursive(v) if isinstance(v, dict) else v - for k, v in sorted(d.items()) - } - - return sort_dict_recursive(result_dict) - - -def get_dart_hashes(dart_version, channel): - platforms = ["x86_64-linux", "aarch64-linux", "x86_64-darwin", "aarch64-darwin"] - result_dict = {} - for platform in platforms: - code = load_code( - "get-dart-hashes.nix", - dart_version=dart_version, - platform=platform, - ) - stderr = nix_build_to_fail(code) - - pattern = re.compile(r"got:\s+(.+?)\n") - result_dict[platform] = pattern.findall(stderr)[0] - - return result_dict - - -def get_flutter_hash_and_src(flutter_version): - code = load_code("get-flutter.nix", flutter_version=flutter_version, hash="") - - stderr = nix_build_to_fail(code) - pattern = re.compile(r"got:\s+(.+?)\n") - flutter_hash_value = pattern.findall(stderr)[0] - - code = load_code( - "get-flutter.nix", flutter_version=flutter_version, hash=flutter_hash_value - ) - - return (flutter_hash_value, nix_build(code)) - - -def get_pubspec_lock(flutter_compact_version, flutter_src): - code = load_code( - "get-pubspec-lock.nix", - flutter_compact_version=flutter_compact_version, - flutter_src=flutter_src, - hash="", - ) - - stderr = nix_build_to_fail(code) - pattern = re.compile(r"got:\s+(.+?)\n") - pubspec_lock_hash = pattern.findall(stderr)[0] - - code = load_code( - "get-pubspec-lock.nix", - flutter_compact_version=flutter_compact_version, - flutter_src=flutter_src, - hash=pubspec_lock_hash, - ) - - pubspec_lock_file = nix_build(code) - - with Path(pubspec_lock_file).open("r", encoding="utf-8") as f: - pubspec_lock_yaml = f.read() - - return yaml.safe_load(pubspec_lock_yaml) - - -def get_engine_swiftshader_rev(engine_version): - with urllib.request.urlopen( - f"https://github.com/flutter/flutter/raw/{engine_version}/DEPS" - ) as f: - deps = f.read().decode("utf-8") - pattern = re.compile( - r"Var\('swiftshader_git'\) \+ '\/SwiftShader\.git' \+ '@' \+ \'([0-9a-fA-F]{40})\'\," - ) - return pattern.findall(deps)[0] - - -def get_engine_swiftshader_hash(engine_swiftshader_rev): - code = load_code( - "get-engine-swiftshader.nix", - engine_swiftshader_rev=engine_swiftshader_rev, - hash="", - ) - - stderr = nix_build_to_fail(code) - pattern = re.compile(r"got:\s+(.+?)\n") - return pattern.findall(stderr)[0] - - -def write_data( - nixpkgs_flutter_version_directory, - flutter_version, - channel, - engine_hash, - engine_hashes, - engine_swiftshader_hash, - engine_swiftshader_rev, - dart_version, - dart_hash, - flutter_hash, - artifact_hashes, - pubspec_lock, -): - with Path(f"{nixpkgs_flutter_version_directory}/data.json").open( - "w", encoding="utf-8" - ) as f: - f.write( - json.dumps( - { - "version": flutter_version, - "engineVersion": engine_hash, - "engineSwiftShaderHash": engine_swiftshader_hash, - "engineSwiftShaderRev": engine_swiftshader_rev, - "channel": channel, - "engineHashes": engine_hashes, - "dartVersion": dart_version, - "dartHash": dart_hash, - "flutterHash": flutter_hash, - "artifactHashes": artifact_hashes, - "pubspecLock": pubspec_lock, - }, - indent=2, - ).strip() - + "\n" - ) - - -def update_all_packages(): - versions_directory = f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/versions" - versions = [d.name for d in Path(versions_directory).iterdir()] - versions = sorted( - versions, - key=lambda x: (int(x.split("_")[0]), int(x.split("_")[1])), - reverse=True, - ) - - new_content = [ - "flutterPackages-bin = recurseIntoAttrs (callPackage ../development/compilers/flutter { });", - "flutterPackages-source = recurseIntoAttrs (", - " callPackage ../development/compilers/flutter { useNixpkgsEngine = true; }", - ");", - "flutterPackages = flutterPackages-bin;", - "flutter = flutterPackages.stable;", - ] + [ - f"flutter{version.replace('_', '')} = flutterPackages.v{version};" - for version in versions - ] - - with Path(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix").open( - "r", encoding="utf-8" - ) as file: - lines = file.read().splitlines(keepends=True) - - start = -1 - end = -1 - for i, line in enumerate(lines): - if ( - "flutterPackages-bin = recurseIntoAttrs (callPackage ../development/compilers/flutter { });" - in line - ): - start = i - if start != -1 and len(line.strip()) == 0: - end = i - break - - if start != -1 and end != -1: - del lines[start:end] - lines[start:start] = [f" {line}\n" for line in new_content] - - with Path(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix").open( - "w", encoding="utf-8" - ) as file: - file.write("".join(lines)) - - -# Finds Flutter version, Dart version, and Engine hash. -# If the Flutter version is given, it uses that. Otherwise finds the -# latest stable Flutter version. -def find_versions(flutter_version=None, channel=None): - engine_hash = None - dart_version = None - - releases = json.load( - urllib.request.urlopen( - "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json" - ) - ) - - if not channel: - channel = "stable" - - if not flutter_version: - release_hash = releases["current_release"][channel] - release = next( - filter( - lambda release: release["hash"] == release_hash, releases["releases"] - ) - ) - flutter_version = release["version"] - - tags = ( - subprocess.Popen( - ["git", "ls-remote", "--tags", "https://github.com/flutter/flutter.git"], - stdout=subprocess.PIPE, - text=True, - ) - .communicate()[0] - .strip() - ) - - try: - flutter_hash = ( - next( - filter( - lambda line: line.endswith(f"refs/tags/{flutter_version}"), - tags.splitlines(), - ) - ) - .split("refs")[0] - .strip() - ) - - engine_hash = ( - urllib.request.urlopen( - f"https://github.com/flutter/flutter/raw/{flutter_hash}/bin/internal/engine.version" - ) - .read() - .decode("utf-8") - .strip() - ) - except StopIteration: - sys.exit(f"Couldn't find Engine hash for Flutter version: {flutter_version}") - - try: - dart_version = next( - filter( - lambda release: release["version"] == flutter_version, - releases["releases"], - ) - )["dart_sdk_version"] - - if " " in dart_version: - dart_version = dart_version.split(" ")[2][:-1] - except StopIteration: - sys.exit(f"Couldn't find Dart version for Flutter version: {flutter_version}") - - return (flutter_version, engine_hash, dart_version, channel) - - -def main(): - parser = argparse.ArgumentParser(description="Update Flutter in Nixpkgs") - parser.add_argument("--version", type=str, help="Specify Flutter version") - parser.add_argument("--channel", type=str, help="Specify Flutter release channel") - parser.add_argument( - "--artifact-hashes", action="store_true", help="Whether to get artifact hashes" - ) - args = parser.parse_args() - - (flutter_version, engine_hash, dart_version, channel) = find_versions( - args.version, args.channel - ) - - flutter_compact_version = "_".join(flutter_version.split(".")[:2]) - - if args.artifact_hashes: - print( - json.dumps(get_artifact_hashes(flutter_compact_version), indent=2).strip() - + "\n" - ) - return - - print( - f"Flutter version: {flutter_version} ({flutter_compact_version}) on ({channel})" - ) - print(f"Engine hash: {engine_hash}") - print(f"Dart version: {dart_version}") - - dart_hash = get_dart_hashes(dart_version, channel) - (flutter_hash, flutter_src) = get_flutter_hash_and_src(flutter_version) - - nixpkgs_flutter_version_directory = f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/versions/{flutter_compact_version}" - - if Path(f"{nixpkgs_flutter_version_directory}/data.json").exists(): - Path(f"{nixpkgs_flutter_version_directory}/data.json").unlink() - Path(nixpkgs_flutter_version_directory).mkdir(parents=True, exist_ok=True) - - update_all_packages() - - common_data_args = { - "nixpkgs_flutter_version_directory": nixpkgs_flutter_version_directory, - "flutter_version": flutter_version, - "channel": channel, - "dart_version": dart_version, - "engine_hash": engine_hash, - "flutter_hash": flutter_hash, - "dart_hash": dart_hash, - } - - write_data( - pubspec_lock={}, - artifact_hashes={}, - engine_hashes={}, - engine_swiftshader_hash=FAKE_HASH, - engine_swiftshader_rev="0", - **common_data_args, - ) - - pubspec_lock = get_pubspec_lock(flutter_compact_version, flutter_src) - - write_data( - pubspec_lock=pubspec_lock, - artifact_hashes={}, - engine_hashes={}, - engine_swiftshader_hash=FAKE_HASH, - engine_swiftshader_rev="0", - **common_data_args, - ) - - artifact_hashes = get_artifact_hashes(flutter_compact_version) - - write_data( - pubspec_lock=pubspec_lock, - artifact_hashes=artifact_hashes, - engine_hashes={}, - engine_swiftshader_hash=FAKE_HASH, - engine_swiftshader_rev="0", - **common_data_args, - ) - - engine_hashes = get_engine_hashes(engine_hash, flutter_version) - - write_data( - pubspec_lock=pubspec_lock, - artifact_hashes=artifact_hashes, - engine_hashes=engine_hashes, - engine_swiftshader_hash=FAKE_HASH, - engine_swiftshader_rev="0", - **common_data_args, - ) - - engine_swiftshader_rev = get_engine_swiftshader_rev(engine_hash) - engine_swiftshader_hash = get_engine_swiftshader_hash(engine_swiftshader_rev) - - write_data( - pubspec_lock=pubspec_lock, - artifact_hashes=artifact_hashes, - engine_hashes=engine_hashes, - engine_swiftshader_hash=engine_swiftshader_hash, - engine_swiftshader_rev=engine_swiftshader_rev, - **common_data_args, - ) - - -if __name__ == "__main__": - main() diff --git a/pkgs/development/compilers/flutter/versions/3_29/data.json b/pkgs/development/compilers/flutter/versions/3_29/data.json index a3c5323a3aef..295ee16b5fcb 100644 --- a/pkgs/development/compilers/flutter/versions/3_29/data.json +++ b/pkgs/development/compilers/flutter/versions/3_29/data.json @@ -1,75 +1,80 @@ { - "version": "3.29.3", - "engineVersion": "cf56914b326edb0ccb123ffdc60f00060bd513fa", - "engineSwiftShaderHash": "sha256-mRLCvhNkmHz7Rv6GzXkY7OB1opBSq+ATWZ466qZdgto=", - "engineSwiftShaderRev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f", + "artifactHashes": { + "android-arm-profile/artifacts.zip": "sha256-5YqQUqktJUztmJ8BKIgms1THk4ZJ7Gn1fOy4nzILnXc=", + "android-arm-profile/darwin-x64.zip": "sha256-OEDxV6NyfUu87O1b4rs7ZMEx4tcTKHN4+HtkxDG93QA=", + "android-arm-profile/linux-x64.zip": "sha256-EEw/zY2eCeHXYoKp0lPCQEa3WQ44Ac6ETHF8a+ZWO+c=", + "android-arm-profile/windows-x64.zip": "sha256-mPcL6iOno0XAeAUcoXyPkLy4DQBMPQkHRXLWBiyBs5o=", + "android-arm-release/artifacts.zip": "sha256-YsmAQyVS5nvINOzwIEzjlhN0JX7l9RrfLOai+SOcbTo=", + "android-arm-release/darwin-x64.zip": "sha256-z71217SH8gpnGss3h6Dmga5vFydwhBo+eghFvc6cD4U=", + "android-arm-release/linux-x64.zip": "sha256-TgUJ9TBQurr1M5TmYvmUuAe2fsCKRTrq2I9MdJ+DN4U=", + "android-arm-release/windows-x64.zip": "sha256-j8LOfJ5XyO8PIwF8ZnvVekWAG1PNgCCcSYFAbiESUsM=", + "android-arm/artifacts.zip": "sha256-XDQvEKs/uYpOckInNFDJduuOmRZAepHGdOiGVZ1Gqgo=", + "android-arm64-profile/artifacts.zip": "sha256-KGyCUre2r1BR1QnkIEZrdruLA56zKc4DOMIKCV8tMKk=", + "android-arm64-profile/darwin-x64.zip": "sha256-hoO1FlgNxQKC2RXDdIbHdgrrXAnpXVF6tYBhWYA0vAs=", + "android-arm64-profile/linux-x64.zip": "sha256-lZxErv1Dw5HDWDRAOuGGkd6G5JPvgPHSDAdYa02Fn7I=", + "android-arm64-profile/windows-x64.zip": "sha256-Or9sFk9wgnu6mpV3L4CU3w+DeOldsF+dGXgLGMyIJQk=", + "android-arm64-release/artifacts.zip": "sha256-NcKkplrWu2A5e+3Xd2rDCd54lrO0JckqIDlxgwaflIc=", + "android-arm64-release/darwin-x64.zip": "sha256-2HwoWjucRwA2MWYuOqEOdcGsMsFPNtna1dUgHDHQvMc=", + "android-arm64-release/linux-x64.zip": "sha256-SlEhHUhr8dTM8ykXarlA3fZBEiY4UVOwuJW54M7mu8g=", + "android-arm64-release/windows-x64.zip": "sha256-s/jwY4XLQkANEHac1D05xNTmOQ+ee/XmCJmu75zq9DY=", + "android-arm64/artifacts.zip": "sha256-dcN5d1AbWZKsEytj1IHzzo71Q8oKyMBjfGNiMMwBGqs=", + "android-x64-profile/artifacts.zip": "sha256-/j00KLxumCl0YeJXllXs7cTGteW/zgUaOWobuRMOEiQ=", + "android-x64-profile/darwin-x64.zip": "sha256-FOoJI/SYMWv+I308L9mzOfjb6YWRHFsExwWwiaszbE8=", + "android-x64-profile/linux-x64.zip": "sha256-SjnWs/ahkTCqq8XazWxr3KT6YErT1d1+puHCT/AevGM=", + "android-x64-profile/windows-x64.zip": "sha256-zc2EHmeLx383uUsVE1Tqr4Y4oMOPPnyb1vP6NWtSIXs=", + "android-x64-release/artifacts.zip": "sha256-ERy3zRJfQgenp5yrB2yLlcbBJCMjgCoDljRXSmtUcMc=", + "android-x64-release/darwin-x64.zip": "sha256-hngQzsx28eSKZPmSIGdDiwB6ACxWFb19Hoxbgs9De1o=", + "android-x64-release/linux-x64.zip": "sha256-/qK/lM4nOStr+uhCfyhczbKZShOyrlSEl8QtCecGlSk=", + "android-x64-release/windows-x64.zip": "sha256-hYIPyGDtK0ovpXPlVyGIxIK4YaBinzhMfYBga6UWxNE=", + "android-x64/artifacts.zip": "sha256-uKXp/pL8aq++kwNwltjH3cN1/+N78nAZKQy97KSC+Fw=", + "android-x86/artifacts.zip": "sha256-IgotpG/va94e0ZWRc9PFkZBxT5JXuWk+5Mk5n10y1yw=", + "darwin-arm64/artifacts.zip": "sha256-vrxj4NezowGxLaYCdbDPXiCHZsqbv1bTkxOX3qzJv+w=", + "darwin-arm64/font-subset.zip": "sha256-4wlQrcmx450Vg7ShtcoKuJ5YtGkTitdHZ/fsRtEDJWw=", + "darwin-x64-profile/artifacts.zip": "sha256-g22kEEy8AIbVA6qZAcQLX9BB6ifafzL9xNCug+IaeAo=", + "darwin-x64-profile/framework.zip": "sha256-vEYX6NavbMoT+u97wr7K0b4NMal1yO9/M4bFWuZHapY=", + "darwin-x64-profile/gen_snapshot.zip": "sha256-j/kdHmCoC1JdycTT0FpoQ7f/VX1ZTUSKWmKsqI/CkKs=", + "darwin-x64-release/artifacts.zip": "sha256-NGMfznwDSIIYNuGbjDojfoprfTk71xP0mhXmp6hyo4g=", + "darwin-x64-release/framework.zip": "sha256-iYq0LTZb9D77Zd6PCfPk8cwEBUMj7ImV3648qNFkNfs=", + "darwin-x64-release/gen_snapshot.zip": "sha256-zj/+5Ox40f/FDYHH1h5QL3CAYf72IJwwKO5pVZ0MefE=", + "darwin-x64/artifacts.zip": "sha256-DgUPPScyhCox1CpeqrNuj93e64fGwmUzCRrFuPd3Mjo=", + "darwin-x64/font-subset.zip": "sha256-kBPObRjfcyt/qN689Wyj1P0FkRdNlzUTVuLZ+MchaxE=", + "darwin-x64/framework.zip": "sha256-AJKtDRsrW44P42zwFNepUHHPg5ZBNXlqnkYipGFYvbg=", + "darwin-x64/gen_snapshot.zip": "sha256-oH3sRPVJRPTagJCpEJ6sJj99ScIt9whgFwQnZuLvQx4=", + "flutter-web-sdk.zip": "sha256-5fcBtu5xh73o34UNgKl852HOpyu2iwk2KNzVHCgfO84=", + "flutter_gpu.zip": "sha256-ZUldHLUkF8nFaAdzB6e6SEfjwHf9s1NV+pafhs8Jj1E=", + "flutter_patched_sdk.zip": "sha256-7uxxBt/ubgVg+15d/o/UOnWAG69yx34psG7f4S3lvJw=", + "flutter_patched_sdk_product.zip": "sha256-jE2H3RD1mHFUWi+T2oLxaE8j+Pg8O9MbLc3C1636XsQ=", + "ios-profile/artifacts.zip": "sha256-hSW6t3ZwvQ9MpAv+sA1ymvF8eISViWb9OiflOZH1aDo=", + "ios-release/artifacts.zip": "sha256-L6xse/UqQMTtPNi/b6fYjj/RR+uLCd372sQsNRlyo1Q=", + "ios/artifacts.zip": "sha256-FJUsbkiq9ZW9CiriRzUL7Be8fChRgGnM0FJ/HeWlks8=", + "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-eThLDiCqnewYjHNCnZM0COS9Cr5D9XjC+mtaUk0lcOA=", + "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-YpQwuVqRJHY/DtR18nJucOvC9/hweQMBLt4BTCbHWWE=", + "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-/1OssZKRXtO5V6zLog5jv+H4nal3ied8kldMUGlISD8=", + "linux-arm64/artifacts.zip": "sha256-mkJdwu5KahaMU+lDtqhgFVcaYAZC4BZjYZ4RdMCgmHM=", + "linux-arm64/font-subset.zip": "sha256-n51PYirH0ZuM5z16re+XGxrntTpvFUUVfrP4KiBvbZ4=", + "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-ESZ6xJR14JFfQ8PYJBdb8HA1V37ODpJHt0rLF8CanVA=", + "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-VDXUMsTaAbpTDj+1xnQ+UhA9upWgpGG+n4XgBWLbhhM=", + "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-gtGWH+EhGLpk5NkGorhcIQSNX4TVg7F7+7blY5s4NrM=", + "linux-x64/artifacts.zip": "sha256-sFklXc5SwJTlQtaHNHD5sye+9xWRrLmng2LsNI5QhHk=", + "linux-x64/font-subset.zip": "sha256-cQbvsbn13uhWnx4tZPEJnVBaubv/lhYn1ethyhhgHds=", + "sky_engine.zip": "sha256-R2mm5f0qkn5ziknBT+XV0PwarRaCtwo9lTdD6mk2Kig=", + "windows-x64-debug/windows-x64-flutter.zip": "sha256-TxOA/F2oxNoOy7mUZfy/MsnVyGw64kFy2WV88Y5FVVw=", + "windows-x64-profile/windows-x64-flutter.zip": "sha256-osnuasxTGq3OqxYqSMlYSC/K1V4RXJDWuY6H9oJQnc4=", + "windows-x64-release/windows-x64-flutter.zip": "sha256-dLGNkXp51LusJquBM9UrL92WFUDDC5G0K0DDRd04iAU=", + "windows-x64/artifacts.zip": "sha256-XkzPHFwQsuNLIMn62VG9u6fQp2ABSXEtaf7oq7MM+J8=", + "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-gdLKahdiHCths6t7Iy+YwapgBga0yhDxktVtO43jHkY=", + "windows-x64/font-subset.zip": "sha256-k3ke2TlZiuSQYQEp2WshLccGotJpHYBfnTQJQK4Wg4o=" + }, "channel": "stable", - "engineHashes": { - "aarch64-linux": { - "aarch64-linux": "sha256-3BIBG9z433CDsBqX1T6K2y5kUI5ZTqXBBXLoCrX/f2A=", - "x86_64-linux": "sha256-3BIBG9z433CDsBqX1T6K2y5kUI5ZTqXBBXLoCrX/f2A=" - }, - "x86_64-linux": { - "aarch64-linux": "sha256-+4CswkW7+0gBcZKrLjugTIG5NWAxCB8y39iUxdND2I4=", - "x86_64-linux": "sha256-+4CswkW7+0gBcZKrLjugTIG5NWAxCB8y39iUxdND2I4=" - } + "dartHash": { + "aarch64-darwin": "sha256-EG5j2VkAkJk6le5R5ocp3i0Jyit7e9FsC1+1emCzZXw=", + "aarch64-linux": "sha256-NFLMrWHgV+t/oX6F7RqgNdRMNuM9rAdlVxd5j0fmTKg=", + "x86_64-darwin": "sha256-BgiG0riugy+Jzn25ce62IYpQfjcHEVJIfdUuslakSa4=", + "x86_64-linux": "sha256-whb91w9lbFDHjcag/65uXO16mnzO3qPkAvprXr4keIw=" }, "dartVersion": "3.7.2", - "dartHash": { - "x86_64-linux": "sha256-ClgSWEu0+lLcPIlabVvBY197/c/kyio6Zoq3KppbW3Y=", - "aarch64-linux": "sha256-NACnkq/pVMiWxfAt4+bkUjM0ZLwBWk5GQrbc9HGFE4k=", - "x86_64-darwin": "sha256-liZz9Bj1RFH7vmEpdMiJ9/h3Yut/o0qEBvydq8dGdKs=", - "aarch64-darwin": "sha256-544u8sIlQudxjBCSZlnQESLsOOdWp5h4lVTaY9P+pRQ=" - }, + "engineVersion": "cf56914b326edb0ccb123ffdc60f00060bd513fa", "flutterHash": "sha256-VWmKhxjerGKmw9fXhrRRVcKpUhefmJ2agRkIyWeAOO4=", - "artifactHashes": { - "android": { - "aarch64-darwin": "sha256-xWeagoJGFkHKW0oT5FSJCy254qemp5jZq/zXpadOrVY=", - "aarch64-linux": "sha256-2z7PgRGqUlFQZHJ53EdDT4p5Vk6OT2BJKx2QwSF7/QI=", - "x86_64-darwin": "sha256-xWeagoJGFkHKW0oT5FSJCy254qemp5jZq/zXpadOrVY=", - "x86_64-linux": "sha256-2z7PgRGqUlFQZHJ53EdDT4p5Vk6OT2BJKx2QwSF7/QI=" - }, - "fuchsia": { - "aarch64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", - "aarch64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", - "x86_64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=", - "x86_64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=" - }, - "ios": { - "aarch64-darwin": "sha256-mKrkm+Sio/SUPoivJNh+Kg4iZ6o/7P2Wsqi1ys5i6/k=", - "aarch64-linux": "sha256-mKrkm+Sio/SUPoivJNh+Kg4iZ6o/7P2Wsqi1ys5i6/k=", - "x86_64-darwin": "sha256-mKrkm+Sio/SUPoivJNh+Kg4iZ6o/7P2Wsqi1ys5i6/k=", - "x86_64-linux": "sha256-mKrkm+Sio/SUPoivJNh+Kg4iZ6o/7P2Wsqi1ys5i6/k=" - }, - "linux": { - "aarch64-darwin": "sha256-W8usesonlRBxd5CFQyQAyVfx4yMkd2UcZWbhVlB8Jwc=", - "aarch64-linux": "sha256-W8usesonlRBxd5CFQyQAyVfx4yMkd2UcZWbhVlB8Jwc=", - "x86_64-darwin": "sha256-RxNVQpRR4EWbK0WD+d6tZbweW3QE7Z3fipKFpf4YyG8=", - "x86_64-linux": "sha256-RxNVQpRR4EWbK0WD+d6tZbweW3QE7Z3fipKFpf4YyG8=" - }, - "macos": { - "aarch64-darwin": "sha256-WGm1+0IY5FMyXt5TSXcwrEw/u72lmc+2H7NR66uvxrE=", - "aarch64-linux": "sha256-WGm1+0IY5FMyXt5TSXcwrEw/u72lmc+2H7NR66uvxrE=", - "x86_64-darwin": "sha256-WGm1+0IY5FMyXt5TSXcwrEw/u72lmc+2H7NR66uvxrE=", - "x86_64-linux": "sha256-WGm1+0IY5FMyXt5TSXcwrEw/u72lmc+2H7NR66uvxrE=" - }, - "universal": { - "aarch64-darwin": "sha256-MxtHKccpQfurtKumtp00CRqB/riU5+wiHsuUh4sCXVY=", - "aarch64-linux": "sha256-w2onIP0zkg8N/vsnC9DKCrG4iIUvRiBhbHvSJYzW/fQ=", - "x86_64-darwin": "sha256-vq4/tCBQQtmJarcnrrL+saCUKS/xCoFHmKAxBSn1edI=", - "x86_64-linux": "sha256-TglGaiwmbxCYJ6bk1zJwhIYlPf3+VVTO5zCMpzyu/JY=" - }, - "web": { - "aarch64-darwin": "sha256-yN5ElLmpNG71yY9Egye8uXgHwiL8xRwNCkczElLf27Q=", - "aarch64-linux": "sha256-yN5ElLmpNG71yY9Egye8uXgHwiL8xRwNCkczElLf27Q=", - "x86_64-darwin": "sha256-yN5ElLmpNG71yY9Egye8uXgHwiL8xRwNCkczElLf27Q=", - "x86_64-linux": "sha256-yN5ElLmpNG71yY9Egye8uXgHwiL8xRwNCkczElLf27Q=" - }, - "windows": { - "x86_64-darwin": "sha256-l9rG2aRTrN26QFnLvbeGiUvMz8+faCo3byIbz33DWpY=", - "x86_64-linux": "sha256-l9rG2aRTrN26QFnLvbeGiUvMz8+faCo3byIbz33DWpY=" - } - }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1042,5 +1047,6 @@ "sdks": { "dart": ">=3.7.0-0 <4.0.0" } - } + }, + "version": "3.29.3" } diff --git a/pkgs/development/compilers/flutter/versions/3_29/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_29/patches/no-cache.patch new file mode 100644 index 000000000000..74d15f724325 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_29/patches/no-cache.patch @@ -0,0 +1,51 @@ +--- a/packages/flutter_tools/lib/src/cache.dart ++++ b/packages/flutter_tools/lib/src/cache.dart +@@ -321,7 +321,7 @@ + bool fatalStorageWarning = true; + + static RandomAccessFile? _lock; +- static bool _lockEnabled = true; ++ static bool _lockEnabled = false; + + /// Turn off the [lock]/[releaseLock] mechanism. + /// +@@ -725,7 +725,6 @@ + } + + void setStampFor(String artifactName, String version) { +- getStampFileFor(artifactName).writeAsStringSync(version); + } + + File getStampFileFor(String artifactName) { +@@ -1010,31 +1009,6 @@ + } + + Future checkForArtifacts(String? engineVersion) async { +- engineVersion ??= version; +- final String url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; +- +- bool exists = false; +- for (final String pkgName in getPackageDirs()) { +- exists = await cache.doesRemoteExist( +- 'Checking package $pkgName is available...', +- Uri.parse('$url$pkgName.zip'), +- ); +- if (!exists) { +- return false; +- } +- } +- +- for (final List toolsDir in getBinaryDirs()) { +- final String cacheDir = toolsDir[0]; +- final String urlPath = toolsDir[1]; +- exists = await cache.doesRemoteExist( +- 'Checking $cacheDir tools are available...', +- Uri.parse(url + urlPath), +- ); +- if (!exists) { +- return false; +- } +- } + return true; + } + diff --git a/pkgs/development/compilers/flutter/versions/3_29/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_29/patches/version.patch new file mode 100644 index 000000000000..40cfcda6a011 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_29/patches/version.patch @@ -0,0 +1,126 @@ +--- a/packages/flutter_tools/lib/src/version.dart ++++ b/packages/flutter_tools/lib/src/version.dart +@@ -95,11 +95,7 @@ + } + } + +- final String frameworkRevision = _runGit( +- gitLog(['-n', '1', '--pretty=format:%H']).join(' '), +- globals.processUtils, +- flutterRoot, +- ); ++ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; + + return FlutterVersion.fromRevision( + clock: clock, +@@ -192,11 +188,7 @@ + // TODO(fujino): calculate this relative to frameworkCommitDate for + // _FlutterVersionFromFile so we don't need a git call. + String get frameworkAge { +- return _frameworkAge ??= _runGit( +- FlutterVersion.gitLog(['-n', '1', '--pretty=format:%ar']).join(' '), +- globals.processUtils, +- flutterRoot, +- ); ++ return 'unknown'; + } + + void ensureVersionFile(); +@@ -327,9 +319,7 @@ + /// remote git repository is not reachable due to a network issue. + static Future fetchRemoteFrameworkCommitDate() async { + try { +- // Fetch upstream branch's commit and tags +- await _run(['git', 'fetch', '--tags']); +- return _gitCommitDate(gitRef: kGitTrackingUpstream, workingDirectory: Cache.flutterRoot); ++ return 'unknown'; + } on VersionCheckError catch (error) { + globals.printError(error.message); + rethrow; +@@ -354,14 +344,7 @@ + /// If [redactUnknownBranches] is true and the branch is unknown, + /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). + String getBranchName({bool redactUnknownBranches = false}) { +- _branch ??= () { +- final String branch = _runGit( +- 'git symbolic-ref --short HEAD', +- globals.processUtils, +- flutterRoot, +- ); +- return branch == 'HEAD' ? '' : branch; +- }(); ++ _branch ??= 'stable'; + if (redactUnknownBranches || _branch!.isEmpty) { + // Only return the branch names we know about; arbitrary branch names might contain PII. + if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { +@@ -404,30 +387,7 @@ + bool lenient = false, + required String? workingDirectory, + }) { +- final List args = FlutterVersion.gitLog([ +- gitRef, +- '-n', +- '1', +- '--pretty=format:%ad', +- '--date=iso', +- ]); +- try { +- // Don't plumb 'lenient' through directly so that we can print an error +- // if something goes wrong. +- return _runSync(args, lenient: false, workingDirectory: workingDirectory); +- } on VersionCheckError catch (e) { +- if (lenient) { +- final DateTime dummyDate = DateTime.fromMillisecondsSinceEpoch(0); +- globals.printError( +- 'Failed to find the latest git commit date: $e\n' +- 'Returning $dummyDate instead.', +- ); +- // Return something that DateTime.parse() can parse. +- return dummyDate.toString(); +- } else { +- rethrow; +- } +- } ++ return 'unknown'; + } + + class _FlutterVersionFromFile extends FlutterVersion { +@@ -541,20 +501,7 @@ + @override + String? get repositoryUrl { + if (_repositoryUrl == null) { +- final String gitChannel = _runGit( +- 'git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream', +- globals.processUtils, +- flutterRoot, +- ); +- final int slash = gitChannel.indexOf('/'); +- if (slash != -1) { +- final String remote = gitChannel.substring(0, slash); +- _repositoryUrl = _runGit( +- 'git ls-remote --get-url $remote', +- globals.processUtils, +- flutterRoot, +- ); +- } ++ _repositoryUrl = 'https://github.com/flutter/flutter.git'; + } + return _repositoryUrl; + } +@@ -926,6 +873,16 @@ + final String? gitTag; + + static GitTagVersion determine( ++ ProcessUtils processUtils, ++ Platform platform, { ++ String? workingDirectory, ++ bool fetchTags = false, ++ String gitRef = 'HEAD', ++ }) { ++ return GitTagVersion.unknown(); ++ } ++ ++ static GitTagVersion determine_orig( + ProcessUtils processUtils, + Platform platform, { + String? workingDirectory, diff --git a/pkgs/development/compilers/flutter/versions/3_32/data.json b/pkgs/development/compilers/flutter/versions/3_32/data.json index 078a4c8a8d51..323b74eb9900 100644 --- a/pkgs/development/compilers/flutter/versions/3_32/data.json +++ b/pkgs/development/compilers/flutter/versions/3_32/data.json @@ -1,75 +1,80 @@ { - "version": "3.32.8", - "engineVersion": "ef0cd000916d64fa0c5d09cc809fa7ad244a5767", - "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", - "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", + "artifactHashes": { + "android-arm-profile/artifacts.zip": "sha256-zDWexI+zuOfmJc4EnnANllZAyNbp0mb82EOIPmech3A=", + "android-arm-profile/darwin-x64.zip": "sha256-hbt0aCFcEl6Wk44k9hezrq6QFrtk07JFjci5MamePts=", + "android-arm-profile/linux-x64.zip": "sha256-lmoROV2f0iHLxvVclpOkXCSN/pS5LDz3LvVTJBsxtd8=", + "android-arm-profile/windows-x64.zip": "sha256-a4p6exLes0AfkTHVd80zk81JP9WwpdkYXMdyo6JhQ2E=", + "android-arm-release/artifacts.zip": "sha256-mjylyqqCjshOuhJ5Os7fxAnWdBz0oY4cE4YKLxmVhpk=", + "android-arm-release/darwin-x64.zip": "sha256-LASl5TmDLj0Qy+UrgtzSOijpT7Oz4rMiNmC5wMXZ5Os=", + "android-arm-release/linux-x64.zip": "sha256-lUDZI1/kiAdd3sI/aswsbIjYg6iePXfuhRPYzQNmnJo=", + "android-arm-release/windows-x64.zip": "sha256-4DH2j5MrPwi3Zn4tmsO8yohANQ0nC1nNjEWFhYGS5e8=", + "android-arm/artifacts.zip": "sha256-/0wqrYzhP4LSZuV8o01TaCHgON94JaE9yva78nr8NRs=", + "android-arm64-profile/artifacts.zip": "sha256-1VsImF6T00WlnJrOjdste1Ct0DYmOKWdjaWyjWPQUv4=", + "android-arm64-profile/darwin-x64.zip": "sha256-nF98oM6jmI1DPrdvqFjjX3HzilqsKxelj3sMQD/sV9s=", + "android-arm64-profile/linux-x64.zip": "sha256-qe3G57ww/H7PoK4Y6CEVjl5LVTecxTvia1fLJgprWUw=", + "android-arm64-profile/windows-x64.zip": "sha256-y9bnrKnX1w0RpYZ8gcShWUMACZCP2vdVWteFy47mTJo=", + "android-arm64-release/artifacts.zip": "sha256-rYRDJNgNjWHS5vxmq60+lafR02vfdyiRDcy5WbzCjzA=", + "android-arm64-release/darwin-x64.zip": "sha256-GQZR3p1OnI/cYw+GMawOId/FPpCCWbwDASTN0hKUXjQ=", + "android-arm64-release/linux-x64.zip": "sha256-ByMH2CSI3eOzYMeM9Kvpi3eljYtybkIpXqE0iJ+p4zk=", + "android-arm64-release/windows-x64.zip": "sha256-pR/QMQzn3KbjZFPBysQ5kAfkcC3Vdqx97jLMQ2iL2Cs=", + "android-arm64/artifacts.zip": "sha256-OxhJ9s1O6O5jLI6rKiisEiHaWvumYgVJLozJEnfjP1A=", + "android-x64-profile/artifacts.zip": "sha256-OS/wqrZK/IcvI1795TdVnlYqsyki8SBNFI34rQeT58U=", + "android-x64-profile/darwin-x64.zip": "sha256-YniOHobbhrxHTSrt4hYNhrz0xpvWIusg19qe5MRbJUk=", + "android-x64-profile/linux-x64.zip": "sha256-9/S7Q5djz2e6TU/NI6N2Y24hsamky4XD+djkCX5JwAg=", + "android-x64-profile/windows-x64.zip": "sha256-wf4CZhFv25svHTbY8cB2v0YyB2EwZqB+wLZf3XQHd50=", + "android-x64-release/artifacts.zip": "sha256-zpNIFJxQuJsEntQDvJgrPUFxaP06skS6T6N8eEW5H6M=", + "android-x64-release/darwin-x64.zip": "sha256-uh2tqQac85zgUH/I9ACUSsdqL46BfPvgosuyECO5j6k=", + "android-x64-release/linux-x64.zip": "sha256-WYK27e9gpn6cZOBVca/6drLH18kE7qZVQu2rKiYhkV0=", + "android-x64-release/windows-x64.zip": "sha256-3gah7k9T9JNUHeKgHy/v4l9O7A6BZrnVtwVbALx4dVg=", + "android-x64/artifacts.zip": "sha256-jrPwJSXQQ2dH7h/HtRJmTvL/uqy9moG5FR2Y6M+6y1M=", + "android-x86/artifacts.zip": "sha256-iGlh72so0ieVraCU77Xix9g2CWfmF1wpjsH2A/eIz/w=", + "darwin-arm64/artifacts.zip": "sha256-BSFNTVaNXE8178rjKiXHU4KZXyGk1pcbnBlDe3AjdGI=", + "darwin-arm64/font-subset.zip": "sha256-uNjn2tEUGrgIFId+4m03Aj7ABcx5w5TJB0aVL0xL2G4=", + "darwin-x64-profile/artifacts.zip": "sha256-G8v4R0bvByd3ek93nDxF16KIdcDaGIUhtMoJAMwzGko=", + "darwin-x64-profile/framework.zip": "sha256-/XY/Ta1sEM3iCZ2qnIGWskHrrzhAIQTnN4x+aRtqOUo=", + "darwin-x64-profile/gen_snapshot.zip": "sha256-eUxbCo8TvFdxz4KoMGHi2IT7kq5WL51ZHFrIUb+7FG4=", + "darwin-x64-release/artifacts.zip": "sha256-N14BAWCnMU9Ezuj/VRbmthxiHP7dtr6YlUG8b2XT37o=", + "darwin-x64-release/framework.zip": "sha256-Q/17YSyMKU0+iObwV7SvyKODI+P7a3ErXlNm4HidHAQ=", + "darwin-x64-release/gen_snapshot.zip": "sha256-rRCTkI5qXMFviMxeTush2t+RSdvP1HxgF2ovGQHDMHI=", + "darwin-x64/artifacts.zip": "sha256-Gt46l5s1lHHTwHxTVRO0W2+ymG/SsuWS6Ee56EUWwCs=", + "darwin-x64/font-subset.zip": "sha256-fDTfVUQp/PayjqEbj5HOkfZEcnMePtrE36tXbpRFaHw=", + "darwin-x64/framework.zip": "sha256-b2q5XpSGV3HvNZc72/6OlfcpxfDoC0MyS7UsCIVa2I8=", + "darwin-x64/gen_snapshot.zip": "sha256-MvJcufyFXJNMwPU80qkU2YyPy28o4D4HWJoII2pjiXs=", + "flutter-web-sdk.zip": "sha256-u+lbjL8mEuaUEZZZ7sXa5w+MQXWFGns7uNxhzaw53O4=", + "flutter_gpu.zip": "sha256-WwtMMiFP+Pi9TQbacTGPBtR80afaqioPgBZOK34YtWk=", + "flutter_patched_sdk.zip": "sha256-SoQomgnpZFSgI4a9eh+7teVZ+KTTqYm3Uyh+99IwVVM=", + "flutter_patched_sdk_product.zip": "sha256-QhDNJ7DkFAWqZG4XLKOB7Nyqg/Tc7bH4e4xUZrJqXGQ=", + "ios-profile/artifacts.zip": "sha256-TWN5VVlzZw0K3dXsS1gyLnvvRGNC9mXlMS4U+52qIOI=", + "ios-release/artifacts.zip": "sha256-I0OY5WGKF3HH66K8MlHrIDsTS9HxBYmBe9uLeLjkjbc=", + "ios/artifacts.zip": "sha256-uO1HQFIswJbiCkY4OSexNI92KPmG90sP7zavjxUmZ3g=", + "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-ky/wf3lIwViqWuDgcXAdH7r8SdpDaE55nIu2dMMk9g0=", + "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-HSzTOa0HetnobXfTenrE60kUul/Riy8C5AsyIOaQd2o=", + "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-+hBJ1ELS2rsCcvbYTGllCMkYroLFeWncXaYusfFS+pw=", + "linux-arm64/artifacts.zip": "sha256-J13A0cMXbb7BfIOI8wT4/d2/el4KjmRcz0+azy/sM7A=", + "linux-arm64/font-subset.zip": "sha256-nWwP3VI15gLPN/FRqN5TJ74l2ojbbe3bHhXVdEGztuM=", + "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-mPmS92NUxaUrIUtH0BVZKSOYGwYXeLr3qg9YdkjjFYQ=", + "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-48SB0A+sKiR55BMt+ZqAxRSxr3ikf/vJTFhnrWSMPk0=", + "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-WxqyHrIEyjgH/p9AjLqkOSHIsRZFEHNb5XYtAS9BP88=", + "linux-x64/artifacts.zip": "sha256-2jFV0xPe3trdEmC+ApWJfbz1v7T6ZkY3Iq+TmRgmpd4=", + "linux-x64/font-subset.zip": "sha256-eHAeGxsVWtKZhT/7W0TyOY5lMoIkl//rjWAxp0OVZWA=", + "sky_engine.zip": "sha256-t72yVeV6QYQtfIwiJNoL96gSvQD0DJW7wE6k7Ut9RaU=", + "windows-x64-debug/windows-x64-flutter.zip": "sha256-HNpEBvJ4wnCTa50JSxk6PmDaOex+kxPg24U3eq/BGbQ=", + "windows-x64-profile/windows-x64-flutter.zip": "sha256-2DwFbYQgZUjnBn6Zt6mUC1R39Xi0jR+9OeGerD2y4mw=", + "windows-x64-release/windows-x64-flutter.zip": "sha256-DcU909remUeNvvCRym0vGjDjUoJ0tTCALTPGJi8Omcs=", + "windows-x64/artifacts.zip": "sha256-Jvn4GYQPI4HIdxrzIDHssnRUdJ9t5Hmg1ii8T+uSoeY=", + "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-cBNZivR/2ZK70ZJwOUiV9X7f6yuqtJmrYuupOfP4HFk=", + "windows-x64/font-subset.zip": "sha256-NN6mjRubl5SPNvFGHE8fKBn++NWfDYqca5wuquc0uow=" + }, "channel": "stable", - "engineHashes": { - "aarch64-linux": { - "aarch64-linux": "sha256-JrbIMYwdfe36y6bHj1eAjYOKPGGp7mfWxWDCoCm7wiQ=", - "x86_64-linux": "sha256-JrbIMYwdfe36y6bHj1eAjYOKPGGp7mfWxWDCoCm7wiQ=" - }, - "x86_64-linux": { - "aarch64-linux": "sha256-R0ut5hzzBgfjbZFB1ofK4jEmr3CcBKHFJUl3c7nmn0E=", - "x86_64-linux": "sha256-R0ut5hzzBgfjbZFB1ofK4jEmr3CcBKHFJUl3c7nmn0E=" - } + "dartHash": { + "aarch64-darwin": "sha256-UIC8b0p4zM4OOOceRkdsCNYeCBRTZGlI8/DHcXepKPg=", + "aarch64-linux": "sha256-eKMkAJe+47ebAJxp6tIuGq7e3ty+CT6qmACExWYQlsg=", + "x86_64-darwin": "sha256-OTcd89ZPlPWz2cERnD9UkWTFYoxqE7lFG3tEhZ8fkRQ=", + "x86_64-linux": "sha256-DVjAEKNh8/FYixwvV5QvfMr3t6u+A0BP73oQLrY48J0=" }, "dartVersion": "3.8.1", - "dartHash": { - "x86_64-linux": "sha256-3eE40VMwrPFD502lIaz+CkD7mBnSI/WqJ3C4DVQ01Z4=", - "aarch64-linux": "sha256-0GXCO00ar5532h+cXBEIe8BhGVKOuGuoPzr1M00muh4=", - "x86_64-darwin": "sha256-S3iGDVLollApke2SnXAcV919qsDTVmz5Gf9fTletr00=", - "aarch64-darwin": "sha256-haHQks9N1mBIqRsYg9sOLw7ra7gC708gsTWfKxvIK1c=" - }, + "engineVersion": "ef0cd000916d64fa0c5d09cc809fa7ad244a5767", "flutterHash": "sha256-s5T16+cMmL2ustJQjwFbfS8G+/TJW/WCEF1IO4WgbXQ=", - "artifactHashes": { - "android": { - "aarch64-darwin": "sha256-hswA4YkMM3uur0F2KuA32g+EXtCPH7SYVZkjr2EFV7o=", - "aarch64-linux": "sha256-1V8hfmK2q2QgbIT+YC/WtFZmkG7xcvrJYPeiN0o4fhY=", - "x86_64-darwin": "sha256-hswA4YkMM3uur0F2KuA32g+EXtCPH7SYVZkjr2EFV7o=", - "x86_64-linux": "sha256-1V8hfmK2q2QgbIT+YC/WtFZmkG7xcvrJYPeiN0o4fhY=" - }, - "fuchsia": { - "aarch64-darwin": "sha256-WkWLbIpEyrwyB9mcA3ElNecRmCVt8+6y3qKi9zFRR9I=", - "aarch64-linux": "sha256-WkWLbIpEyrwyB9mcA3ElNecRmCVt8+6y3qKi9zFRR9I=", - "x86_64-darwin": "sha256-WkWLbIpEyrwyB9mcA3ElNecRmCVt8+6y3qKi9zFRR9I=", - "x86_64-linux": "sha256-WkWLbIpEyrwyB9mcA3ElNecRmCVt8+6y3qKi9zFRR9I=" - }, - "ios": { - "aarch64-darwin": "sha256-obbmFnObjvQH6sLL0MsRrFtA0x8yCOo7clMqQzteWGY=", - "aarch64-linux": "sha256-obbmFnObjvQH6sLL0MsRrFtA0x8yCOo7clMqQzteWGY=", - "x86_64-darwin": "sha256-obbmFnObjvQH6sLL0MsRrFtA0x8yCOo7clMqQzteWGY=", - "x86_64-linux": "sha256-obbmFnObjvQH6sLL0MsRrFtA0x8yCOo7clMqQzteWGY=" - }, - "linux": { - "aarch64-darwin": "sha256-LID4h0JABLwjmrv3XS1MEWTYn/7GmBtybqiLbErfgWA=", - "aarch64-linux": "sha256-LID4h0JABLwjmrv3XS1MEWTYn/7GmBtybqiLbErfgWA=", - "x86_64-darwin": "sha256-k8fVg13YXFFBAI0OKph1DqzfmNk1PYAyy/PVuma2hlM=", - "x86_64-linux": "sha256-k8fVg13YXFFBAI0OKph1DqzfmNk1PYAyy/PVuma2hlM=" - }, - "macos": { - "aarch64-darwin": "sha256-Y+T2SuM4D8Du/MAQR9DScU8ObPPE7WGxxvC5Km2YmHg=", - "aarch64-linux": "sha256-Y+T2SuM4D8Du/MAQR9DScU8ObPPE7WGxxvC5Km2YmHg=", - "x86_64-darwin": "sha256-Y+T2SuM4D8Du/MAQR9DScU8ObPPE7WGxxvC5Km2YmHg=", - "x86_64-linux": "sha256-Y+T2SuM4D8Du/MAQR9DScU8ObPPE7WGxxvC5Km2YmHg=" - }, - "universal": { - "aarch64-darwin": "sha256-h4v8Pyw7VqFDWh+VCcz12bgd1o5FIb+cpomR0k570f4=", - "aarch64-linux": "sha256-ZBDA3tS2GwnubeIuXhZ7Zxc75KNim5OCYkkn03KMYGs=", - "x86_64-darwin": "sha256-USoiNw8AUinCwMvrpOTmhSDq/TP1f0N9ZT8l8ZILzOo=", - "x86_64-linux": "sha256-OfSxYyyaRxaUCDR8ZjTdIBQ3PFpRXoA1YHIIooXAKKY=" - }, - "web": { - "aarch64-darwin": "sha256-jaDnIyn0uwLOblQ1IqU0TlsgBrXyk8wXhlRzAwXLo50=", - "aarch64-linux": "sha256-jaDnIyn0uwLOblQ1IqU0TlsgBrXyk8wXhlRzAwXLo50=", - "x86_64-darwin": "sha256-jaDnIyn0uwLOblQ1IqU0TlsgBrXyk8wXhlRzAwXLo50=", - "x86_64-linux": "sha256-jaDnIyn0uwLOblQ1IqU0TlsgBrXyk8wXhlRzAwXLo50=" - }, - "windows": { - "x86_64-darwin": "sha256-zJrruuMcgtOXRrkRPoGHovyjABDck0Dzjrz7bCtx4C4=", - "x86_64-linux": "sha256-zJrruuMcgtOXRrkRPoGHovyjABDck0Dzjrz7bCtx4C4=" - } - }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1046,5 +1051,6 @@ "sdks": { "dart": ">=3.7.0 <4.0.0" } - } + }, + "version": "3.32.8" } diff --git a/pkgs/development/compilers/flutter/versions/3_32/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_32/patches/no-cache.patch new file mode 100644 index 000000000000..d596d6c64322 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_32/patches/no-cache.patch @@ -0,0 +1,51 @@ +--- a/packages/flutter_tools/lib/src/cache.dart ++++ b/packages/flutter_tools/lib/src/cache.dart +@@ -321,7 +321,7 @@ + bool fatalStorageWarning = true; + + static RandomAccessFile? _lock; +- static bool _lockEnabled = true; ++ static bool _lockEnabled = false; + + /// Turn off the [lock]/[releaseLock] mechanism. + /// +@@ -727,7 +727,6 @@ + } + + void setStampFor(String artifactName, String version) { +- getStampFileFor(artifactName).writeAsStringSync(version); + } + + File getStampFileFor(String artifactName) { +@@ -1015,31 +1014,6 @@ + } + + Future checkForArtifacts(String? engineVersion) async { +- engineVersion ??= version; +- final String url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; +- +- bool exists = false; +- for (final String pkgName in getPackageDirs()) { +- exists = await cache.doesRemoteExist( +- 'Checking package $pkgName is available...', +- Uri.parse('$url$pkgName.zip'), +- ); +- if (!exists) { +- return false; +- } +- } +- +- for (final List toolsDir in getBinaryDirs()) { +- final String cacheDir = toolsDir[0]; +- final String urlPath = toolsDir[1]; +- exists = await cache.doesRemoteExist( +- 'Checking $cacheDir tools are available...', +- Uri.parse(url + urlPath), +- ); +- if (!exists) { +- return false; +- } +- } + return true; + } + diff --git a/pkgs/development/compilers/flutter/versions/3_32/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_32/patches/version.patch new file mode 100644 index 000000000000..61e6cd40ddff --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_32/patches/version.patch @@ -0,0 +1,131 @@ +--- a/packages/flutter_tools/lib/src/version.dart ++++ b/packages/flutter_tools/lib/src/version.dart +@@ -95,11 +95,7 @@ + } + } + +- final String frameworkRevision = _runGit( +- gitLog(['-n', '1', '--pretty=format:%H']).join(' '), +- globals.processUtils, +- flutterRoot, +- ); ++ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; + + return FlutterVersion.fromRevision( + clock: clock, +@@ -198,16 +194,7 @@ + final String flutterRoot; + + String _getTimeSinceCommit({String? revision}) { +- return _runGit( +- FlutterVersion.gitLog([ +- '-n', +- '1', +- '--pretty=format:%ar', +- if (revision != null) revision, +- ]).join(' '), +- globals.processUtils, +- flutterRoot, +- ); ++ return 'unknown'; + } + + // TODO(fujino): calculate this relative to frameworkCommitDate for +@@ -356,9 +343,7 @@ + /// remote git repository is not reachable due to a network issue. + static Future fetchRemoteFrameworkCommitDate() async { + try { +- // Fetch upstream branch's commit and tags +- await _run(['git', 'fetch', '--tags']); +- return _gitCommitDate(gitRef: kGitTrackingUpstream, workingDirectory: Cache.flutterRoot); ++ return 'unknown'; + } on VersionCheckError catch (error) { + globals.printError(error.message); + rethrow; +@@ -383,14 +368,7 @@ + /// If [redactUnknownBranches] is true and the branch is unknown, + /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). + String getBranchName({bool redactUnknownBranches = false}) { +- _branch ??= () { +- final String branch = _runGit( +- 'git symbolic-ref --short HEAD', +- globals.processUtils, +- flutterRoot, +- ); +- return branch == 'HEAD' ? '' : branch; +- }(); ++ _branch ??= 'stable'; + if (redactUnknownBranches || _branch!.isEmpty) { + // Only return the branch names we know about; arbitrary branch names might contain PII. + if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { +@@ -433,30 +411,7 @@ + bool lenient = false, + required String? workingDirectory, + }) { +- final List args = FlutterVersion.gitLog([ +- gitRef, +- '-n', +- '1', +- '--pretty=format:%ad', +- '--date=iso', +- ]); +- try { +- // Don't plumb 'lenient' through directly so that we can print an error +- // if something goes wrong. +- return _runSync(args, lenient: false, workingDirectory: workingDirectory); +- } on VersionCheckError catch (e) { +- if (lenient) { +- final DateTime dummyDate = DateTime.fromMillisecondsSinceEpoch(0); +- globals.printError( +- 'Failed to find the latest git commit date: $e\n' +- 'Returning $dummyDate instead.', +- ); +- // Return something that DateTime.parse() can parse. +- return dummyDate.toString(); +- } else { +- rethrow; +- } +- } ++ return 'unknown'; + } + + class _FlutterVersionFromFile extends FlutterVersion { +@@ -585,20 +540,7 @@ + @override + String? get repositoryUrl { + if (_repositoryUrl == null) { +- final String gitChannel = _runGit( +- 'git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream', +- globals.processUtils, +- flutterRoot, +- ); +- final int slash = gitChannel.indexOf('/'); +- if (slash != -1) { +- final String remote = gitChannel.substring(0, slash); +- _repositoryUrl = _runGit( +- 'git ls-remote --get-url $remote', +- globals.processUtils, +- flutterRoot, +- ); +- } ++ _repositoryUrl = 'https://github.com/flutter/flutter.git'; + } + return _repositoryUrl; + } +@@ -970,6 +912,16 @@ + final String? gitTag; + + static GitTagVersion determine( ++ ProcessUtils processUtils, ++ Platform platform, { ++ String? workingDirectory, ++ bool fetchTags = false, ++ String gitRef = 'HEAD', ++ }) { ++ return GitTagVersion.unknown(); ++ } ++ ++ static GitTagVersion determine_orig( + ProcessUtils processUtils, + Platform platform, { + String? workingDirectory, diff --git a/pkgs/development/compilers/flutter/versions/3_35/data.json b/pkgs/development/compilers/flutter/versions/3_35/data.json index 6d04fcf6b864..187a2f4b3263 100644 --- a/pkgs/development/compilers/flutter/versions/3_35/data.json +++ b/pkgs/development/compilers/flutter/versions/3_35/data.json @@ -1,75 +1,80 @@ { - "version": "3.35.7", - "engineVersion": "035316565ad77281a75305515e4682e6c4c6f7ca", - "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", - "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", + "artifactHashes": { + "android-arm-profile/artifacts.zip": "sha256-tkMKTImxVqFBQhJDVD2NB0thlB/A1NFRekV1ScYLwVM=", + "android-arm-profile/darwin-x64.zip": "sha256-ktPTy7G41qtJ5oOeE6mfKK3IQQlBAmIBtFm7cUEOkxQ=", + "android-arm-profile/linux-x64.zip": "sha256-3Imdiu+I4WmOqsYmJjnyRFkOOfgIJjPbDUba6V08VmQ=", + "android-arm-profile/windows-x64.zip": "sha256-jJEhtr8Jvuak7n5Wq0t2wMMk2J6Vpmu5WlbXl3zN1AE=", + "android-arm-release/artifacts.zip": "sha256-WxypxJNW28+v88bGjfksIYSiCVdDkOnqzlBOJSPxwGQ=", + "android-arm-release/darwin-x64.zip": "sha256-J17mW6Xfbd+YT5N7n1Y+QTRK9DVk8l1ai37UDdt3rEY=", + "android-arm-release/linux-x64.zip": "sha256-gs/SzGsz9cjp6qM2Izqg0CbfX5WWFE1Cgy3X8mIB5Mc=", + "android-arm-release/windows-x64.zip": "sha256-ON/g8l1MlXB53CDjF8fZgOJ69l32WGhMnD5Bnxn7nys=", + "android-arm/artifacts.zip": "sha256-/1CR0aybIBZGopc0O5A9jG9Sn0MWlPts2WkhFva+72c=", + "android-arm64-profile/artifacts.zip": "sha256-geB9xlwjS+TDcE2CabNwX4R3gLwLmELO3OvJLMhaCG8=", + "android-arm64-profile/darwin-x64.zip": "sha256-cx8D1W5ezsf0DoWTU4nQycFtER59uSu5T8Mbrq7F4mc=", + "android-arm64-profile/linux-x64.zip": "sha256-bp3WdqCC0uD3gcbtcTpe0Bk28Co75PEjlYunN0nAGR0=", + "android-arm64-profile/windows-x64.zip": "sha256-bVDWw5Z7MHUqezYVdO5wZT7mnTSzmBoI/4PAFopsOyw=", + "android-arm64-release/artifacts.zip": "sha256-0/Q7w98SG69nEd2S2pp8djnk7zmC1YfLIW126tQtooc=", + "android-arm64-release/darwin-x64.zip": "sha256-9kcha9KcoHsEgY6jSdP92ETk+BqFeQ7LsgD0ubHkNLE=", + "android-arm64-release/linux-x64.zip": "sha256-JqVh/V7HBzbsa/9iacL2RZFf3X9GFs2llsDaTbOQdsU=", + "android-arm64-release/windows-x64.zip": "sha256-Xrtl3WBXvzLnn/I1vCsGIS+DyTCE9gJYBLDucn/H8u4=", + "android-arm64/artifacts.zip": "sha256-e3+ybL9AG3xN559EcWBtBxitudQd9HUluEHB15IX7ps=", + "android-x64-profile/artifacts.zip": "sha256-5bvosBPGtU2T1GGLGkPmyTVJ90JBdrGK+8C79mgSRSA=", + "android-x64-profile/darwin-x64.zip": "sha256-7vIRNLkQmVGhc48GtdYfC4oA3d35kPQtj3vcIKBchJc=", + "android-x64-profile/linux-x64.zip": "sha256-wYYyhpVXNjUPmoSbarHkTv2xSPUkmnSSVaDaYGNSTJM=", + "android-x64-profile/windows-x64.zip": "sha256-1FXPNfRQjncl5Pyg5x4TslWeCOIyrKBhjVBFkGLzHeM=", + "android-x64-release/artifacts.zip": "sha256-mRoPNcpq5hBL/AxskFK8ccbvKwzgb2vEUVJ9WtgUlH0=", + "android-x64-release/darwin-x64.zip": "sha256-AfWv2mUDxFzwDK/dGl/TrrkP2YyyOGNmfde6bj06AtE=", + "android-x64-release/linux-x64.zip": "sha256-4demp82PCXeOje3l+qOc/Eq+ngY8QybWE4iFGVK6lNc=", + "android-x64-release/windows-x64.zip": "sha256-3mQXqHuOhwDTRlsknFA8R/27luOzs28glJVD+3G/5EI=", + "android-x64/artifacts.zip": "sha256-BheP9zRanNkBOVzPwQvYp4jd9l/MIcnbmkshlwfT6Dc=", + "android-x86/artifacts.zip": "sha256-vXZo+hOtp1hRDvBBJfNmqlE6/ettAB9iEGdJZ/AeYKg=", + "darwin-arm64/artifacts.zip": "sha256-4CqgWDqeTGgNfmllemwbK692tRJ6y6O0/S8WdHPr2cI=", + "darwin-arm64/font-subset.zip": "sha256-gyTIBlcwE0UZZ/zVZIK2CkIoqQlbixcp54RBmyCgiJ4=", + "darwin-x64-profile/artifacts.zip": "sha256-Q7vaWylDWDSi8Fm2rnjX2OZrg9suz/oZIMLG+L8LPfg=", + "darwin-x64-profile/framework.zip": "sha256-t1FS8OI8Ptxpfker8th1KkWlKDb7lvd76o3vT5zLSos=", + "darwin-x64-profile/gen_snapshot.zip": "sha256-lzPl2i1XCdzmpV5Si5R/xju7JnmXz5N3MuTOWQHo6UY=", + "darwin-x64-release/artifacts.zip": "sha256-BXxo25VzpbNGsedjuXgOqnhDo1iOpDdXZ8ECYcCcgSY=", + "darwin-x64-release/framework.zip": "sha256-S22KfsuOjv9b4A/6F9cj47E4gGo1SYlP6xCRqV4D3iY=", + "darwin-x64-release/gen_snapshot.zip": "sha256-YR1Mqh3xMvlrLBaBC8q9TAloYWmBng15LdIDYq6JBMk=", + "darwin-x64/artifacts.zip": "sha256-eL9Y7UHaso/MKN0mSx8W4OqxwzDn/csuX8M8UwAjFWA=", + "darwin-x64/font-subset.zip": "sha256-vBUjrHafLzmJR13cFWr46flx4A9HE9p72DDfGIXHEcc=", + "darwin-x64/framework.zip": "sha256-oBeGU6XuQrXmF4z7ln7mUMsJMHg5XDjikxXgBKMJQ28=", + "darwin-x64/gen_snapshot.zip": "sha256-b9FUB6TQmGw5k+M2Z3y56CvInw/LTrPL9YyG5D4Uqoc=", + "flutter-web-sdk.zip": "sha256-0LQD3PWbBXc34qhxAHB/ESYjvpKndFheDYtMFxW6V2I=", + "flutter_gpu.zip": "sha256-b7GxH12dA1rGr1TUMFAm0R2xCGTwUIYHr0/Pktck+Rg=", + "flutter_patched_sdk.zip": "sha256-qiZzEVkaRfD3ELEmsQQrN9tvF9MMiEsRioGcaT6qW5E=", + "flutter_patched_sdk_product.zip": "sha256-jAD6sghpvJb/WUuPaT8SQGWnNCBE82qAOF41E8gE/LE=", + "ios-profile/artifacts.zip": "sha256-c8UEecqig9GwF3p+rS+KoCSieN1bfxX4vbL3RnNa9qU=", + "ios-release/artifacts.zip": "sha256-nfQ8YxiKXY4LYjiSfDGub6afhlnSPDIZ2+9wYrWkpsI=", + "ios/artifacts.zip": "sha256-63HYgql1rNuOqZtyCDyThXzFiE5YCLGqCw5XFtZfEn0=", + "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-/bTubsiLpGYDywasjZxIylUitAQDFe83MQbC1E/PXLo=", + "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-K7RhTflYahi7rQ9V4vhoHgG7iUkyUMx1BgdVKcayxuw=", + "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-m06sitBb919gU4G4g0hE0pCxW36H+d15NRQNCLvW3v4=", + "linux-arm64/artifacts.zip": "sha256-Sn3DR+eIvjae5SS7sX60IaFLDsEXOLBSxtKE4pTj6mM=", + "linux-arm64/font-subset.zip": "sha256-lGHk7ac3yS1Q51qRP5pj5y626TJzz3AzQTlx38N1hLI=", + "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-ntz4GCTMutdQgqSxdC69YtIZFct4UkvYz5AbJT/6rVQ=", + "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-kKePD4dJdAIBiEL2rBqGZCzP7PRlukEVq+yoTvW2p94=", + "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-oftxkU+eDRLWggV+EAymWk0pWsz3K5VaL6so9KpZAJo=", + "linux-x64/artifacts.zip": "sha256-NjqBtYiJahp52E7V7Px/wnGZVWjsFmPKxAbMIYL4kGg=", + "linux-x64/font-subset.zip": "sha256-dZXC7iFVzb/V8QTbfscdkdtjTzdMy7ce0Z1GlX+jm9E=", + "sky_engine.zip": "sha256-Zq7h04ARytTgc3yBUHNeUw50dzOPquZaiXtEC62RCFU=", + "windows-x64-debug/windows-x64-flutter.zip": "sha256-NhJsnViwfq+PGeCEqLNnx2lHDQgUptsRun3RStkbeCI=", + "windows-x64-profile/windows-x64-flutter.zip": "sha256-m07X3s+PYps2GzHNt4HfuRiJjXQse6v14GGwjh9yqiE=", + "windows-x64-release/windows-x64-flutter.zip": "sha256-PY5eIoQdDN58L41mnfk3LImf8FlRsp5ue9nbnYouvM4=", + "windows-x64/artifacts.zip": "sha256-eDq8AoAXetZoMM1Zovw1Jm2mGFHWWbmg2XzsSb558Rk=", + "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-nqgeZnzp7dKgs+lp2jVrRgvvRD+MGi2NceqivM6Qk0I=", + "windows-x64/font-subset.zip": "sha256-1WbKyP4By37Tci6nQ2S7OsCKnWScflYk7T5L0P0DGuQ=" + }, "channel": "stable", - "engineHashes": { - "aarch64-linux": { - "aarch64-linux": "sha256-v2L0MQRTXvWngb8fu/AR9iofq2CDq1HFedXE8cSzOws=", - "x86_64-linux": "sha256-v2L0MQRTXvWngb8fu/AR9iofq2CDq1HFedXE8cSzOws=" - }, - "x86_64-linux": { - "aarch64-linux": "sha256-RKfKhFwlwVEguWqI6OinTqdCM3yNTP/5PwevREmS4Nk=", - "x86_64-linux": "sha256-RKfKhFwlwVEguWqI6OinTqdCM3yNTP/5PwevREmS4Nk=" - } + "dartHash": { + "aarch64-darwin": "sha256-AdBnLbgmZvcvlFLfOO4VFqcs2bwpgYvT6t34LkBVYVI=", + "aarch64-linux": "sha256-1i918/G/tEoi+9XPCltHx1hRbOyl3Me87IiJbiWD57o=", + "x86_64-darwin": "sha256-TGel6P9oew5ao8DAMS5kCxLl1eknjZG7Jc7A32YofXk=", + "x86_64-linux": "sha256-7CLoEnFYLe+B0+EOKlVa5dPYHGlRRlo9Fs/EeTjp+So=" }, "dartVersion": "3.9.2", - "dartHash": { - "x86_64-linux": "sha256-ZJcii2WBCE4PNt5+S2nH4hj+WoZuhRLFkzMlSZEa01Y=", - "aarch64-linux": "sha256-EzNApYsHor1suB9dFgJuewMqa0v7cADKLUzLym5GLOY=", - "x86_64-darwin": "sha256-mjWHCF5voWLKlqBKYhl2OKg2aDx0pyIQ1TlF6k4MQz0=", - "aarch64-darwin": "sha256-1rAfqatlOdphdi6dZSfUfKywAbdwRn6ijo60isjV3Lw=" - }, + "engineVersion": "035316565ad77281a75305515e4682e6c4c6f7ca", "flutterHash": "sha256-0GI3P11vys6JU+H5MXKznHTItOXZwap7bxHzgj6umc4=", - "artifactHashes": { - "android": { - "aarch64-darwin": "sha256-BbwfmKPmxZUPVoZEE687vudBCBPzVM/C9ehPEAPr6Jw=", - "aarch64-linux": "sha256-Pgc/ybLcRFJkbGUI2eY689yxOv2VyKdO/F5vGkTg/tM=", - "x86_64-darwin": "sha256-BbwfmKPmxZUPVoZEE687vudBCBPzVM/C9ehPEAPr6Jw=", - "x86_64-linux": "sha256-Pgc/ybLcRFJkbGUI2eY689yxOv2VyKdO/F5vGkTg/tM=" - }, - "fuchsia": { - "aarch64-darwin": "sha256-qpHjEpuIK1hI6ga1qr0Q/t5S2Jjk8oUpnkeXsIeu7UM=", - "aarch64-linux": "sha256-qpHjEpuIK1hI6ga1qr0Q/t5S2Jjk8oUpnkeXsIeu7UM=", - "x86_64-darwin": "sha256-qpHjEpuIK1hI6ga1qr0Q/t5S2Jjk8oUpnkeXsIeu7UM=", - "x86_64-linux": "sha256-qpHjEpuIK1hI6ga1qr0Q/t5S2Jjk8oUpnkeXsIeu7UM=" - }, - "ios": { - "aarch64-darwin": "sha256-ZjNJhDXqv9dg9Gn62TRYX1Vb4Qn0adS5nxxpYZOGsgY=", - "aarch64-linux": "sha256-ZjNJhDXqv9dg9Gn62TRYX1Vb4Qn0adS5nxxpYZOGsgY=", - "x86_64-darwin": "sha256-ZjNJhDXqv9dg9Gn62TRYX1Vb4Qn0adS5nxxpYZOGsgY=", - "x86_64-linux": "sha256-ZjNJhDXqv9dg9Gn62TRYX1Vb4Qn0adS5nxxpYZOGsgY=" - }, - "linux": { - "aarch64-darwin": "sha256-TB9BOiV1Z1cKJKusNW4O0oJEJCt9XmWN+g4yCXtyepc=", - "aarch64-linux": "sha256-TB9BOiV1Z1cKJKusNW4O0oJEJCt9XmWN+g4yCXtyepc=", - "x86_64-darwin": "sha256-7BocNpo89xSXNy6yob+EESVfalm2olwR/knVfq9I1VA=", - "x86_64-linux": "sha256-7BocNpo89xSXNy6yob+EESVfalm2olwR/knVfq9I1VA=" - }, - "macos": { - "aarch64-darwin": "sha256-vnV12shNi630OuyWTey/31vsmAcF7UMEgfdBZBXWc4c=", - "aarch64-linux": "sha256-vnV12shNi630OuyWTey/31vsmAcF7UMEgfdBZBXWc4c=", - "x86_64-darwin": "sha256-vnV12shNi630OuyWTey/31vsmAcF7UMEgfdBZBXWc4c=", - "x86_64-linux": "sha256-vnV12shNi630OuyWTey/31vsmAcF7UMEgfdBZBXWc4c=" - }, - "universal": { - "aarch64-darwin": "sha256-oPUDsJxKbbWEH1XgxOFoBnVYJAjgeCBKIrYtBafWtWU=", - "aarch64-linux": "sha256-ae6UH4K09lcl7UZzD/WKFxWUKEZQsLmizODs/RMKcis=", - "x86_64-darwin": "sha256-wxDWrT35CUIEQaKeIK0adr0oPfv6to60Z6R+8zrwhmU=", - "x86_64-linux": "sha256-CxvOlq8nxeY5esRanl2N7oO4RFgBTwQcRdS7Pp/5tt8=" - }, - "web": { - "aarch64-darwin": "sha256-T+LR7Yo2hEy24u3aS+ehp9nyRBB+3dNDyF6jw1oOd1o=", - "aarch64-linux": "sha256-T+LR7Yo2hEy24u3aS+ehp9nyRBB+3dNDyF6jw1oOd1o=", - "x86_64-darwin": "sha256-T+LR7Yo2hEy24u3aS+ehp9nyRBB+3dNDyF6jw1oOd1o=", - "x86_64-linux": "sha256-T+LR7Yo2hEy24u3aS+ehp9nyRBB+3dNDyF6jw1oOd1o=" - }, - "windows": { - "x86_64-darwin": "sha256-xTWgw8JE/4R9UcdZmLEbMk+yL2V3zfAIXDRli9XYe5k=", - "x86_64-linux": "sha256-xTWgw8JE/4R9UcdZmLEbMk+yL2V3zfAIXDRli9XYe5k=" - } - }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1076,5 +1081,6 @@ "sdks": { "dart": ">=3.9.0-21.0.dev <4.0.0" } - } + }, + "version": "3.35.7" } diff --git a/pkgs/development/compilers/flutter/versions/3_35/patches/content-unaware-hash.patch b/pkgs/development/compilers/flutter/versions/3_35/patches/content-unaware-hash.patch new file mode 100644 index 000000000000..d912db5c15cc --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_35/patches/content-unaware-hash.patch @@ -0,0 +1,12 @@ +--- a/bin/internal/content_aware_hash.sh ++++ b/bin/internal/content_aware_hash.sh +@@ -13,6 +13,9 @@ + + set -e + ++echo '0000000000000000000000000000000000000000' ++exit 0 ++ + FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")" + + unset GIT_DIR diff --git a/pkgs/development/compilers/flutter/versions/3_35/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_35/patches/no-cache.patch new file mode 100644 index 000000000000..e0cdb21fd030 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_35/patches/no-cache.patch @@ -0,0 +1,51 @@ +--- a/packages/flutter_tools/lib/src/cache.dart ++++ b/packages/flutter_tools/lib/src/cache.dart +@@ -318,7 +318,7 @@ + var fatalStorageWarning = true; + + static RandomAccessFile? _lock; +- static var _lockEnabled = true; ++ static var _lockEnabled = false; + + /// Turn off the [lock]/[releaseLock] mechanism. + /// +@@ -721,7 +721,6 @@ + } + + void setStampFor(String artifactName, String version) { +- getStampFileFor(artifactName).writeAsStringSync(version); + } + + File getStampFileFor(String artifactName) { +@@ -1010,31 +1009,6 @@ + } + + Future checkForArtifacts(String? engineVersion) async { +- engineVersion ??= version; +- final url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; +- +- var exists = false; +- for (final String pkgName in getPackageDirs()) { +- exists = await cache.doesRemoteExist( +- 'Checking package $pkgName is available...', +- Uri.parse('$url$pkgName.zip'), +- ); +- if (!exists) { +- return false; +- } +- } +- +- for (final List toolsDir in getBinaryDirs()) { +- final String cacheDir = toolsDir[0]; +- final String urlPath = toolsDir[1]; +- exists = await cache.doesRemoteExist( +- 'Checking $cacheDir tools are available...', +- Uri.parse(url + urlPath), +- ); +- if (!exists) { +- return false; +- } +- } + return true; + } + diff --git a/pkgs/development/compilers/flutter/versions/3_35/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_35/patches/version.patch new file mode 100644 index 000000000000..60a8c7d05738 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_35/patches/version.patch @@ -0,0 +1,131 @@ +--- a/packages/flutter_tools/lib/src/version.dart ++++ b/packages/flutter_tools/lib/src/version.dart +@@ -97,11 +97,7 @@ + } + } + +- final String frameworkRevision = _runGit( +- gitLog(['-n', '1', '--pretty=format:%H']).join(' '), +- globals.processUtils, +- flutterRoot, +- ); ++ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; + + return FlutterVersion.fromRevision( + clock: clock, +@@ -207,16 +203,7 @@ + final String flutterRoot; + + String _getTimeSinceCommit({String? revision}) { +- return _runGit( +- FlutterVersion.gitLog([ +- '-n', +- '1', +- '--pretty=format:%ar', +- if (revision != null) revision, +- ]).join(' '), +- globals.processUtils, +- flutterRoot, +- ); ++ return 'unknown'; + } + + // TODO(fujino): calculate this relative to frameworkCommitDate for +@@ -380,9 +367,7 @@ + /// remote git repository is not reachable due to a network issue. + static Future fetchRemoteFrameworkCommitDate() async { + try { +- // Fetch upstream branch's commit and tags +- await _run(['git', 'fetch', '--tags']); +- return _gitCommitDate(gitRef: kGitTrackingUpstream, workingDirectory: Cache.flutterRoot); ++ return 'unknown'; + } on VersionCheckError catch (error) { + globals.printError(error.message); + rethrow; +@@ -407,14 +392,7 @@ + /// If [redactUnknownBranches] is true and the branch is unknown, + /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). + String getBranchName({bool redactUnknownBranches = false}) { +- _branch ??= () { +- final String branch = _runGit( +- 'git symbolic-ref --short HEAD', +- globals.processUtils, +- flutterRoot, +- ); +- return branch == 'HEAD' ? '' : branch; +- }(); ++ _branch ??= 'stable'; + if (redactUnknownBranches || _branch!.isEmpty) { + // Only return the branch names we know about; arbitrary branch names might contain PII. + if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { +@@ -457,30 +435,7 @@ + bool lenient = false, + required String? workingDirectory, + }) { +- final List args = FlutterVersion.gitLog([ +- gitRef, +- '-n', +- '1', +- '--pretty=format:%ad', +- '--date=iso', +- ]); +- try { +- // Don't plumb 'lenient' through directly so that we can print an error +- // if something goes wrong. +- return _runSync(args, lenient: false, workingDirectory: workingDirectory); +- } on VersionCheckError catch (e) { +- if (lenient) { +- final dummyDate = DateTime.fromMillisecondsSinceEpoch(0); +- globals.printError( +- 'Failed to find the latest git commit date: $e\n' +- 'Returning $dummyDate instead.', +- ); +- // Return something that DateTime.parse() can parse. +- return dummyDate.toString(); +- } else { +- rethrow; +- } +- } ++ return 'unknown'; + } + + class _FlutterVersionFromFile extends FlutterVersion { +@@ -621,20 +576,7 @@ + @override + String? get repositoryUrl { + if (_repositoryUrl == null) { +- final String gitChannel = _runGit( +- 'git rev-parse --abbrev-ref --symbolic $kGitTrackingUpstream', +- globals.processUtils, +- flutterRoot, +- ); +- final int slash = gitChannel.indexOf('/'); +- if (slash != -1) { +- final String remote = gitChannel.substring(0, slash); +- _repositoryUrl = _runGit( +- 'git ls-remote --get-url $remote', +- globals.processUtils, +- flutterRoot, +- ); +- } ++ _repositoryUrl = 'https://github.com/flutter/flutter.git'; + } + return _repositoryUrl; + } +@@ -1015,6 +957,16 @@ + final String gitTag; + + static GitTagVersion determine( ++ ProcessUtils processUtils, ++ Platform platform, { ++ String? workingDirectory, ++ bool fetchTags = false, ++ String gitRef = 'HEAD', ++ }) { ++ return GitTagVersion.unknown(); ++ } ++ ++ static GitTagVersion determine_orig( + ProcessUtils processUtils, + Platform platform, { + String? workingDirectory, diff --git a/pkgs/development/compilers/flutter/versions/3_38/data.json b/pkgs/development/compilers/flutter/versions/3_38/data.json index 88baf3ba0ece..b9b0ae6820a0 100644 --- a/pkgs/development/compilers/flutter/versions/3_38/data.json +++ b/pkgs/development/compilers/flutter/versions/3_38/data.json @@ -1,75 +1,80 @@ { - "version": "3.38.10", - "engineVersion": "cafcda5721a78a7884db92f13c5e89f7643d52dd", - "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", - "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", + "artifactHashes": { + "android-arm-profile/artifacts.zip": "sha256-SszXOMnso0LzdaOUl5I2v9Kfx+xFfrssoB6d5wk8IQ8=", + "android-arm-profile/darwin-x64.zip": "sha256-eEmHXcgcsNt5AXoV/g876veTV4hGTHFx8KPs/pB1h44=", + "android-arm-profile/linux-x64.zip": "sha256-UStYtnQ2bO0QYwsLYlvDcAxd02kauagXAndHERlXhYE=", + "android-arm-profile/windows-x64.zip": "sha256-QzhKpS9nPLfcxUHipL9emSROXxAukOOOy/4Bv9g4UFg=", + "android-arm-release/artifacts.zip": "sha256-DOn06RWlhwJDeVqr6slARQywnbLdRHp45UXA8ek0xTA=", + "android-arm-release/darwin-x64.zip": "sha256-hWULmwI30CgXHBr/DPuQwsUWdEYcEb1zu2wDrlQ8dbI=", + "android-arm-release/linux-x64.zip": "sha256-7Pkw0ahZkFT/CM0xdJPGqfjFgg8UcSoPfKawMlI7uSo=", + "android-arm-release/windows-x64.zip": "sha256-Kq6EURxjwsnzwaFziy3wshrgr14+Nz50Mug6gHGKByk=", + "android-arm/artifacts.zip": "sha256-PDy8hUidPU/KhQ7jzv3scnquh8W1Lu2N/DzrC2xjyhw=", + "android-arm64-profile/artifacts.zip": "sha256-8v9xjQQ9sCdIJc9m3gfb5GikjTnMLOZNhqV4HuyxjKM=", + "android-arm64-profile/darwin-x64.zip": "sha256-0DWhGSixA3wBMk4cy14JnyGs9qz9MXbGAVLQdHtltqI=", + "android-arm64-profile/linux-x64.zip": "sha256-muSzoz1hv1/itvt9RE2PoJtPGLWP6vTTOX1Mzz+H4kU=", + "android-arm64-profile/windows-x64.zip": "sha256-vxLVdkEJL3eriZDIKgoUoaTRgEwxGh+/8LLpeRSPc1g=", + "android-arm64-release/artifacts.zip": "sha256-T00v6QgwlD8yeb+KZaq5Oze7BNi7QVk2umouGMxzcDk=", + "android-arm64-release/darwin-x64.zip": "sha256-jONivWNSZxD3ZdhNA0+3UBsI5SBr6Ghxgub34vDj66w=", + "android-arm64-release/linux-x64.zip": "sha256-DHxJksRVK4dYoxI3mb7MfQrTki8CrTFurjtgj9f+7cg=", + "android-arm64-release/windows-x64.zip": "sha256-r0B8VB16L/zGyEopOUoFJj+Pb9WgfG0Iv+U5z8d6PK4=", + "android-arm64/artifacts.zip": "sha256-hfxdM6OoWyqh5iwyXNo5qXLvvIONhdA/60g1SsPOjZU=", + "android-x64-profile/artifacts.zip": "sha256-h+Lhj5j9CzLGUu9f3oX8kZ75B0s7iehmr/D7uv3t5yk=", + "android-x64-profile/darwin-x64.zip": "sha256-cHGALDMpEuzlW8kW+kB5H1Tk8E4KrTiiclj5ZmOcMp4=", + "android-x64-profile/linux-x64.zip": "sha256-cta/XKPOwgyIJUR3l1Qdmaexh60WQ3RiBlCwM4hc0Q0=", + "android-x64-profile/windows-x64.zip": "sha256-h6CPE4lPvSxCziroNuRYtSPqEmMfDeau/7MW7F4Ne5E=", + "android-x64-release/artifacts.zip": "sha256-cyGK3qsmfnK1kD+kD23PUy6EeJOz4eGqQlRnQcY1K7Y=", + "android-x64-release/darwin-x64.zip": "sha256-gImreJnjCb+OF3dXQE4WE1S0h13Z/5xFmVuBcUJvGrY=", + "android-x64-release/linux-x64.zip": "sha256-43NlGPjZK8V2i6Tv5rRhZBI3ItpSSIXrke13/uAGct8=", + "android-x64-release/windows-x64.zip": "sha256-CcLvO3w1LLlMTVQ5TR8sTL5sCMZXsGVa5u5j1fh/mSs=", + "android-x64/artifacts.zip": "sha256-ALbGKIFJ9n+cvE4+00doce+0LenwbOUyQtiflC2GJ7M=", + "android-x86/artifacts.zip": "sha256-ovnEERQizyUxcucOxLqxrK1dBO5IqKHsI7ob94w8G4o=", + "darwin-arm64/artifacts.zip": "sha256-+yIE6rmPxgTv8Uuhi8lzyMTG5zpb0R2Li7P/xhkvRSA=", + "darwin-arm64/font-subset.zip": "sha256-5yR3y+FYn2Fkudqe9QiLWDbCE811Ds9hac4jTCLiW1w=", + "darwin-x64-profile/artifacts.zip": "sha256-jD4X0HBjJIbuBsamH8bexBWGcMqhyk3hSOMKtempgPQ=", + "darwin-x64-profile/framework.zip": "sha256-NNDGYSL7/9841I2siCzFwjRaZu8Td4c+f/JF1Q2IenE=", + "darwin-x64-profile/gen_snapshot.zip": "sha256-CBGLnupxRxFk16ww97RC3XZRr53pKYQX6PtMfM+53sk=", + "darwin-x64-release/artifacts.zip": "sha256-4dA2edSUJHJfdGb9JwfkBe60R2TuENN3R8RlwUEh1Hk=", + "darwin-x64-release/framework.zip": "sha256-QiQwwJtwYutkbAhF0YtWuBP3mMRJ+4W0Kns//sXzpzU=", + "darwin-x64-release/gen_snapshot.zip": "sha256-a1ajKvgccl/745zxbGPNtqBIzNrkuHWNh9DNxS1Gn8U=", + "darwin-x64/artifacts.zip": "sha256-qVdAKm7Crnm0DEkw9PTf4KBA45PdoGZdsr5F5BWXtLw=", + "darwin-x64/font-subset.zip": "sha256-hLgb0BCZXwOlch1nD8SK7Bf2ao9gE1IUjlThRYxg/8c=", + "darwin-x64/framework.zip": "sha256-wLWLQpjFCitYNUJpMNsH3kCKRe+ADQixrEWSrKgK/w0=", + "darwin-x64/gen_snapshot.zip": "sha256-gbxqc2Rr0ftDftiV5l8FG3oFtpJ1fkB+TzQXCyiMEqk=", + "flutter-web-sdk.zip": "sha256-2mtnmqOWwnHd6wLyxEpaTCzSAMSXxLaBSgZBetum3N0=", + "flutter_gpu.zip": "sha256-+4BSuZJDwZoUMnd99U2FJa9A6+1ZsR4gpGyjfNszVlU=", + "flutter_patched_sdk.zip": "sha256-0IJy6Rhm41zE4uanx0KClZ2C3YOaKrT34ZmIgkyyFbs=", + "flutter_patched_sdk_product.zip": "sha256-XJtmN6N3RMJRJA78xHg5wsfXrcoKXelC4CJXVOUhyCw=", + "ios-profile/artifacts.zip": "sha256-65Qje/KLH0Y/r1iowRiTdXHOPX+4TNXkxRtA2T9pyP8=", + "ios-release/artifacts.zip": "sha256-tfYI/LC3GyjVOxvuAWbWq9/oYuHLl2iZxZ9CFTWwzoI=", + "ios/artifacts.zip": "sha256-njLT9/SY6fhqZYdBlF7LruNG40y+0CxmCeTd9HGoURk=", + "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-SZ5o61Wz4DUFiLPDwR4BE2c/Ppm9wU9zqpO4cVg6sjk=", + "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-TEY+99KUeI8sLWNGcG3bAAhbhhXDPl+jKzQMq9XO6N0=", + "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-pWknANDo3Jb0ctSAE8gBAwpjEPfxoXhBzu98BsQrLPI=", + "linux-arm64/artifacts.zip": "sha256-u/wxbplJm8pEGiZ4PM8apWcYwSXrV85JbfVqtn8MQXc=", + "linux-arm64/font-subset.zip": "sha256-S2SY5yXZht/Wj3GF4t+VPdJDNxe4q8aeiFvRboJDevk=", + "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-3DiNbB+xSa/bYqoi/29JdGaIv+fIzrpfKFH1toQQo/M=", + "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-m2h6C1ApGqIBfZ01agnzngbuhzAapmzrpc4FzwjjlN0=", + "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-Mcb7/sF0bc4L0T73iuUWou/OOlcuOuwQrRfqLQMrCO4=", + "linux-x64/artifacts.zip": "sha256-ie03ozwWndpB3ztxugUY4v0gCHav2chK6PbgxheKI/k=", + "linux-x64/font-subset.zip": "sha256-NKJnqJsOGO6Gh0/GJ/kLOhncmYIwRHSP6tx5fm909Wc=", + "sky_engine.zip": "sha256-nz7bVhV2odmt16WL4yp4eMa1/ecg1IGTewEvgPagIsY=", + "windows-x64-debug/windows-x64-flutter.zip": "sha256-bG/Yv0yrNMTH8aBgRQBTaG6Wo2KsUYUAccjWhWY+FW4=", + "windows-x64-profile/windows-x64-flutter.zip": "sha256-2/3kncn1RB1U41T83xudVsRqXhD3kGiiPbbAixeyQA0=", + "windows-x64-release/windows-x64-flutter.zip": "sha256-NL1801xcnuJ60D/KF8A0F8gEJ9TGFhnR8+mwKFnC4V4=", + "windows-x64/artifacts.zip": "sha256-rXQrattA8ykNsOzQlcaKX7EJt43gfOBtXyg9r2/Voq4=", + "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-Qg4orxxNDofGOb9iiEapIjXh5aRdAewft7XZn/jw1FM=", + "windows-x64/font-subset.zip": "sha256-bVoEA88BeTe0zqjQEKzXgG4xfamSXv1oUdSqPwoB3pQ=" + }, "channel": "stable", - "engineHashes": { - "aarch64-linux": { - "aarch64-linux": "sha256-qhOj6VT1aKhBApEr5R10NwalozUPMQKuUXfhcscTDTs=", - "x86_64-linux": "sha256-qhOj6VT1aKhBApEr5R10NwalozUPMQKuUXfhcscTDTs=" - }, - "x86_64-linux": { - "aarch64-linux": "sha256-VriQI7YmeM/HrZvLPRllxn5D/0r5xJiCzsn4XeBXO+A=", - "x86_64-linux": "sha256-VriQI7YmeM/HrZvLPRllxn5D/0r5xJiCzsn4XeBXO+A=" - } + "dartHash": { + "aarch64-darwin": "sha256-99gMhvkzSJmYEsGuD3kBN1e3l685Xyy6cNICegC+Vk4=", + "aarch64-linux": "sha256-Z8mPnmppTtPLNiY0Ny1pRzBAs3EoNtQsr82zxWwKBOs=", + "x86_64-darwin": "sha256-pd37vWDOIKGdek/CuUSH7sVyiKqlLOW6GLT4IkzkwYA=", + "x86_64-linux": "sha256-1DudOiG4LvKjfTGUW5nmuI9fjcROwZG0c/1inXjQuZQ=" }, "dartVersion": "3.10.9", - "dartHash": { - "x86_64-linux": "sha256-Js8cesRAseVfa5CCQSmnJJVBYl+S7Zy7ax/vNbWMjQ0=", - "aarch64-linux": "sha256-Ba7CCHPzor8H6ksrQUqDnx82i92OSE4qiihMaDKNexI=", - "x86_64-darwin": "sha256-btQavXZ3CVM0ByGlZJ5z2TUfXsPljY4iFeU1rgf4KQE=", - "aarch64-darwin": "sha256-zmEK01ooqIKtVlw+7JlDAVvviFOcaqOrbGPkdirst6A=" - }, + "engineVersion": "cafcda5721a78a7884db92f13c5e89f7643d52dd", "flutterHash": "sha256-dFVejSD3l2C6FM3/vimOId5Nklctv7ISO9uDhLTNf80=", - "artifactHashes": { - "android": { - "aarch64-darwin": "sha256-NFvkU3aDAmCAuO+ZrNaY5CJpPyioc6eB6cFZfziXEQU=", - "aarch64-linux": "sha256-eHu5nWrxht1O6dP6LQ2UHNpPMNaRt/vL+cY2Okhtn0g=", - "x86_64-darwin": "sha256-NFvkU3aDAmCAuO+ZrNaY5CJpPyioc6eB6cFZfziXEQU=", - "x86_64-linux": "sha256-eHu5nWrxht1O6dP6LQ2UHNpPMNaRt/vL+cY2Okhtn0g=" - }, - "fuchsia": { - "aarch64-darwin": "sha256-DUlLvOGzLasLtZgndXew3l6w7VLDnrE5NqN3em1MVXE=", - "aarch64-linux": "sha256-DUlLvOGzLasLtZgndXew3l6w7VLDnrE5NqN3em1MVXE=", - "x86_64-darwin": "sha256-DUlLvOGzLasLtZgndXew3l6w7VLDnrE5NqN3em1MVXE=", - "x86_64-linux": "sha256-DUlLvOGzLasLtZgndXew3l6w7VLDnrE5NqN3em1MVXE=" - }, - "ios": { - "aarch64-darwin": "sha256-+aKuaOXWEzDXWG2tMz7u3MLuiHSa3XyYHrfBGwRxUHI=", - "aarch64-linux": "sha256-+aKuaOXWEzDXWG2tMz7u3MLuiHSa3XyYHrfBGwRxUHI=", - "x86_64-darwin": "sha256-+aKuaOXWEzDXWG2tMz7u3MLuiHSa3XyYHrfBGwRxUHI=", - "x86_64-linux": "sha256-+aKuaOXWEzDXWG2tMz7u3MLuiHSa3XyYHrfBGwRxUHI=" - }, - "linux": { - "aarch64-darwin": "sha256-IMa7QTMRYoWlJcI/SCO6aBtmKtIozQAcAgeQFWCFgb4=", - "aarch64-linux": "sha256-IMa7QTMRYoWlJcI/SCO6aBtmKtIozQAcAgeQFWCFgb4=", - "x86_64-darwin": "sha256-nmLLXotJuHrFrpRMjdb/38l/rPRDiFvFf0BwfVvs9V8=", - "x86_64-linux": "sha256-nmLLXotJuHrFrpRMjdb/38l/rPRDiFvFf0BwfVvs9V8=" - }, - "macos": { - "aarch64-darwin": "sha256-p/ysd+1EOSaKmHRWYr/lYCo8H1oty4GC0Moaw+PC72A=", - "aarch64-linux": "sha256-p/ysd+1EOSaKmHRWYr/lYCo8H1oty4GC0Moaw+PC72A=", - "x86_64-darwin": "sha256-p/ysd+1EOSaKmHRWYr/lYCo8H1oty4GC0Moaw+PC72A=", - "x86_64-linux": "sha256-p/ysd+1EOSaKmHRWYr/lYCo8H1oty4GC0Moaw+PC72A=" - }, - "universal": { - "aarch64-darwin": "sha256-viiNdnQKAaTO91yNwGrSwr5jT2Zm+38rLNCyb7N3faw=", - "aarch64-linux": "sha256-u9qKNkrdxkIVP4+rn0vzDSY37twJ/TLV7nfX6IqRj+4=", - "x86_64-darwin": "sha256-ztUb0vhegvskVdXcIi6xQtfJdIZTCWQB8zfR0CTLD54=", - "x86_64-linux": "sha256-Xlm/ds/m0nm2cAXszCxCCjMNDyyK4AcldrvnwYImxSE=" - }, - "web": { - "aarch64-darwin": "sha256-CkFJ96IWOk3q+VjPzpieyp8IMiTaTKgnAQpyltHeMnw=", - "aarch64-linux": "sha256-CkFJ96IWOk3q+VjPzpieyp8IMiTaTKgnAQpyltHeMnw=", - "x86_64-darwin": "sha256-CkFJ96IWOk3q+VjPzpieyp8IMiTaTKgnAQpyltHeMnw=", - "x86_64-linux": "sha256-CkFJ96IWOk3q+VjPzpieyp8IMiTaTKgnAQpyltHeMnw=" - }, - "windows": { - "x86_64-darwin": "sha256-HId39NR+rbe1fqEssNb7gD6bvmeLj1N9UJYV8hxJFt0=", - "x86_64-linux": "sha256-HId39NR+rbe1fqEssNb7gD6bvmeLj1N9UJYV8hxJFt0=" - } - }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1086,5 +1091,6 @@ "sdks": { "dart": ">=3.9.0 <4.0.0" } - } + }, + "version": "3.38.10" } diff --git a/pkgs/development/compilers/flutter/versions/3_38/patches/content-unaware-hash.patch b/pkgs/development/compilers/flutter/versions/3_38/patches/content-unaware-hash.patch new file mode 100644 index 000000000000..d912db5c15cc --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_38/patches/content-unaware-hash.patch @@ -0,0 +1,12 @@ +--- a/bin/internal/content_aware_hash.sh ++++ b/bin/internal/content_aware_hash.sh +@@ -13,6 +13,9 @@ + + set -e + ++echo '0000000000000000000000000000000000000000' ++exit 0 ++ + FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")" + + unset GIT_DIR diff --git a/pkgs/development/compilers/flutter/versions/3_38/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_38/patches/no-cache.patch new file mode 100644 index 000000000000..e0cdb21fd030 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_38/patches/no-cache.patch @@ -0,0 +1,51 @@ +--- a/packages/flutter_tools/lib/src/cache.dart ++++ b/packages/flutter_tools/lib/src/cache.dart +@@ -318,7 +318,7 @@ + var fatalStorageWarning = true; + + static RandomAccessFile? _lock; +- static var _lockEnabled = true; ++ static var _lockEnabled = false; + + /// Turn off the [lock]/[releaseLock] mechanism. + /// +@@ -721,7 +721,6 @@ + } + + void setStampFor(String artifactName, String version) { +- getStampFileFor(artifactName).writeAsStringSync(version); + } + + File getStampFileFor(String artifactName) { +@@ -1010,31 +1009,6 @@ + } + + Future checkForArtifacts(String? engineVersion) async { +- engineVersion ??= version; +- final url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; +- +- var exists = false; +- for (final String pkgName in getPackageDirs()) { +- exists = await cache.doesRemoteExist( +- 'Checking package $pkgName is available...', +- Uri.parse('$url$pkgName.zip'), +- ); +- if (!exists) { +- return false; +- } +- } +- +- for (final List toolsDir in getBinaryDirs()) { +- final String cacheDir = toolsDir[0]; +- final String urlPath = toolsDir[1]; +- exists = await cache.doesRemoteExist( +- 'Checking $cacheDir tools are available...', +- Uri.parse(url + urlPath), +- ); +- if (!exists) { +- return false; +- } +- } + return true; + } + diff --git a/pkgs/development/compilers/flutter/versions/3_38/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_38/patches/version.patch new file mode 100644 index 000000000000..49f2c5294d51 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_38/patches/version.patch @@ -0,0 +1,131 @@ +--- a/packages/flutter_tools/lib/src/version.dart ++++ b/packages/flutter_tools/lib/src/version.dart +@@ -99,10 +99,7 @@ + } + } + +- final String frameworkRevision = git +- .logSync(['-n', '1', '--pretty=format:%H'], workingDirectory: flutterRoot) +- .stdout +- .trim(); ++ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; + + return FlutterVersion.fromRevision( + clock: clock, +@@ -222,10 +219,7 @@ + final String flutterRoot; + + String _getTimeSinceCommit({String? revision}) { +- return _git +- .logSync(['-n', '1', '--pretty=format:%ar', ?revision], workingDirectory: flutterRoot) +- .stdout +- .trim(); ++ return 'unknown'; + } + + // TODO(fujino): calculate this relative to frameworkCommitDate for +@@ -391,13 +385,7 @@ + /// remote git repository is not reachable due to a network issue. + Future _fetchRemoteFrameworkCommitDate() async { + try { +- // Fetch upstream branch's commit and tags +- await _run(_git, ['fetch', '--tags']); +- return _gitCommitDate( +- git: _git, +- gitRef: kGitTrackingUpstream, +- workingDirectory: Cache.flutterRoot, +- ); ++ return 'unknown'; + } on VersionCheckError catch (error) { + globals.printError(error.message); + rethrow; +@@ -422,13 +410,7 @@ + /// If [redactUnknownBranches] is true and the branch is unknown, + /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). + String getBranchName({bool redactUnknownBranches = false}) { +- _branch ??= () { +- final String branch = _git +- .runSync(['symbolic-ref', '--short', 'HEAD'], workingDirectory: flutterRoot) +- .stdout +- .trim(); +- return branch == 'HEAD' ? '' : branch; +- }(); ++ _branch ??= 'stable'; + if (redactUnknownBranches || _branch!.isEmpty) { + // Only return the branch names we know about; arbitrary branch names might contain PII. + if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { +@@ -464,31 +446,7 @@ + required Git git, + required String? workingDirectory, + }) { +- final RunResult result = git.logSync([ +- gitRef, +- '-n', +- '1', +- '--pretty=format:%ad', +- '--date=iso', +- ], workingDirectory: workingDirectory); +- if (result.exitCode == 0) { +- return result.stdout.trim(); +- } +- final error = VersionCheckError( +- 'Command exited with code ${result.exitCode}: ${result.command.join(' ')}\n' +- 'Standard out: ${result.stdout}\n' +- 'Standard error: ${result.stderr}', +- ); +- if (lenient) { +- final dummyDate = DateTime.fromMillisecondsSinceEpoch(0); +- globals.printError( +- 'Failed to find the latest git commit date: $error\n' +- 'Returning $dummyDate instead.', +- ); +- // Return something that DateTime.parse() can parse. +- return dummyDate.toString(); +- } +- throw error; ++ return 'unknown'; + } + + class _FlutterVersionFromFile extends FlutterVersion { +@@ -639,23 +597,7 @@ + @override + String? get repositoryUrl { + if (_repositoryUrl == null) { +- final String gitChannel = _git +- .runSync([ +- 'rev-parse', +- '--abbrev-ref', +- '--symbolic', +- kGitTrackingUpstream, +- ], workingDirectory: flutterRoot) +- .stdout +- .trim(); +- final int slash = gitChannel.indexOf('/'); +- if (slash != -1) { +- final String remote = gitChannel.substring(0, slash); +- _repositoryUrl = _git +- .runSync(['ls-remote', '--get-url', remote], workingDirectory: flutterRoot) +- .stdout +- .trim(); +- } ++ _repositoryUrl = 'https://github.com/flutter/flutter.git'; + } + return _repositoryUrl; + } +@@ -1005,6 +947,16 @@ + final String gitTag; + + static GitTagVersion determine( ++ Platform platform, { ++ required Git git, ++ String? workingDirectory, ++ bool fetchTags = false, ++ String gitRef = 'HEAD', ++ }) { ++ return GitTagVersion.unknown(); ++ } ++ ++ static GitTagVersion determine_orig( + Platform platform, { + required Git git, + String? workingDirectory, diff --git a/pkgs/development/compilers/flutter/versions/3_41/data.json b/pkgs/development/compilers/flutter/versions/3_41/data.json index 0159af0063c2..2a11cfc9cd13 100644 --- a/pkgs/development/compilers/flutter/versions/3_41/data.json +++ b/pkgs/development/compilers/flutter/versions/3_41/data.json @@ -1,75 +1,80 @@ { - "version": "3.41.6", - "engineVersion": "425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb", - "engineSwiftShaderHash": "sha256-qbtCl2nTpmtp9dnaoXc7rF3RqLnAZEmzw1BzPoCRWrc=", - "engineSwiftShaderRev": "794b0cfce1d828d187637e6d932bae484fbe0976", + "artifactHashes": { + "android-arm-profile/artifacts.zip": "sha256-plu68ELMftDhiYcgkJBaE8asLzo2ctLl/2ba4efaBlg=", + "android-arm-profile/darwin-x64.zip": "sha256-YqIngn4CqUWFTw7DJ0uzQbTC5LPXy/eMS7j3fpdk0Zs=", + "android-arm-profile/linux-x64.zip": "sha256-mysciyN6YhdyMU1eJuGbVVNWF65NiPn9hLv0TdYYIZ0=", + "android-arm-profile/windows-x64.zip": "sha256-OHZ0sgA1cY4PA9W2Ih8sSTeM+DKMZUtYl7wUVcFZiOw=", + "android-arm-release/artifacts.zip": "sha256-TYHND/VUpanPdCII9d9Db66M4U3Lsu3/Pbol8UNBCMk=", + "android-arm-release/darwin-x64.zip": "sha256-sEPX65dQSMVliEnYTCxN06ZKjp1RwhMeoSuhH/LZNS0=", + "android-arm-release/linux-x64.zip": "sha256-tP3BZFvzhIK5CawnU+ubmq+GRFqfPJ5POoaoHG+RdD4=", + "android-arm-release/windows-x64.zip": "sha256-Y3sDe7MtG0NRHvnLLIjUIXOsXXrRclhexta41SUa9Qs=", + "android-arm/artifacts.zip": "sha256-Y4ocz8l+LI1ojslfOloU3KgCC2i8etsEmZY99UnoAI4=", + "android-arm64-profile/artifacts.zip": "sha256-VAocgCx7m8pM8PXK/mLzqNaJBzRfg3cCl45uVT7KdQU=", + "android-arm64-profile/darwin-x64.zip": "sha256-UXz/SAQstAtTmjdSdxql7OUlqsnkzr56vwnMkToeObk=", + "android-arm64-profile/linux-x64.zip": "sha256-iprtcLB/sCngKjPcN3lHaqLL2QndGo3KbQIsdnqtlKE=", + "android-arm64-profile/windows-x64.zip": "sha256-x5RmwOpJ+O77IxhTJ2+wXlMqgaNdT9dCV6p1aMooSl0=", + "android-arm64-release/artifacts.zip": "sha256-oQI+gLEf0NsWYVH/9124njBEctiBUKvuNWnghaaLO9s=", + "android-arm64-release/darwin-x64.zip": "sha256-wWjvqLRtsm+0SDYYg8lw+vCBNBDKzcJpzOkmEuSdEls=", + "android-arm64-release/linux-x64.zip": "sha256-YmrheUHylvRK/FlOZkRMD9i47K5U8obOraRFsXKhwhs=", + "android-arm64-release/windows-x64.zip": "sha256-riqR9TEIb9f/QaWcPbhkNUIEdJ5ZQIKKxoD5KlCB5yc=", + "android-arm64/artifacts.zip": "sha256-UZUCwJxdjiZy4UZz6xCyuWsSmequIptaPxCIeczw8Vg=", + "android-x64-profile/artifacts.zip": "sha256-+mbN3pO70AcmEJZYOb4or2BV8p9yYjZYHxZaNSb5QPk=", + "android-x64-profile/darwin-x64.zip": "sha256-w2ggxB3eSCwvKCohnJlbX258nQUMjK8s4jXkr74m4aw=", + "android-x64-profile/linux-x64.zip": "sha256-Vggd6cRe2d3zFSG570+TZUoHNPJuVHjleSQnDfqKsxQ=", + "android-x64-profile/windows-x64.zip": "sha256-4zguzW7Tm7nscfApeeaHbYPy9+Jw3o22gRxXZZ79ae8=", + "android-x64-release/artifacts.zip": "sha256-DfdyXrqSGxemAlvF/nwjcWkjo2d/fwWOyVWGPiM3Ff8=", + "android-x64-release/darwin-x64.zip": "sha256-H8r9NtoVKfI0Y09HKBA2TzjPZhBTktUrJyZsXJL1Z+Y=", + "android-x64-release/linux-x64.zip": "sha256-HZEh7f0vWDPtqYAqJ5CdgAhpUJW5RWLg25yyDpM3rX4=", + "android-x64-release/windows-x64.zip": "sha256-5zNvcGkL9ArsrZ+PHvWi97kUc6h+EWckIUGM/KDz1Qw=", + "android-x64/artifacts.zip": "sha256-O+3ykJd+Z7ZB2sZbwe+KtdP2JiatnI4di0l8DsuUofc=", + "android-x86/artifacts.zip": "sha256-iLM7ZfYMPM3Lmbvo7XDJW0zFqu1tS7NxmbImq8Ke9hU=", + "darwin-arm64/artifacts.zip": "sha256-MVnRN8HvmsLqnsiBpNvbEvgGg4ino7SWgp+9Y/Kq76M=", + "darwin-arm64/font-subset.zip": "sha256-capuWYsdAFYRZGeSGoRpLfw116GMXTZQn18VTYRk7ss=", + "darwin-x64-profile/artifacts.zip": "sha256-UEVqrW7LcDMNe7vLnul9qnyvfA7bXULxv7FDRUzXhpU=", + "darwin-x64-profile/framework.zip": "sha256-+kxuSBSFLPAjcBee7DEupLnJP0HW5yzXF78MGLsur9o=", + "darwin-x64-profile/gen_snapshot.zip": "sha256-Q8mHzXPiAx2HReJHaYnWVLbf2PiuK5f0GFtT2Y+jqTA=", + "darwin-x64-release/artifacts.zip": "sha256-J+2vH/MLJ61kvVkIXxx1NGl2kSDPC8xFEvqeoopxwW4=", + "darwin-x64-release/framework.zip": "sha256-MsqwiLv7oTySmkeibNBQvmT63Fh5c8bGtexWRnWhIT8=", + "darwin-x64-release/gen_snapshot.zip": "sha256-ZvzW84hd3dyhsJLNw3bGUDH1vjuLzd6bFh+LY70NDLQ=", + "darwin-x64/artifacts.zip": "sha256-Ovq1yaTvYQjyr1ZYtdC/ngeQvvCOTBAjE7IV0wYCCE4=", + "darwin-x64/font-subset.zip": "sha256-IHLrPa4fAqPrdeHYdsIz93BHO0Np+2MSCbk7C2sgwwk=", + "darwin-x64/framework.zip": "sha256-EQjB10gVKzjdmaiIOf46U6YbAHaCVmdzHXPc6Ds8KcE=", + "darwin-x64/gen_snapshot.zip": "sha256-4+J8H82bxIFviUvvthyBZGrBwYO11mFJErL2whooZFY=", + "flutter-web-sdk.zip": "sha256-7rZynFWlGy0SJ2wCRlItpvwEBK2bIUqsm+f97FF5js4=", + "flutter_gpu.zip": "sha256-+xx4iFMM6cm4eYJUqp2iq/UWCSjtmn22RNEG8z6stvQ=", + "flutter_patched_sdk.zip": "sha256-SwWY3Gxv3hYZAzmVAJwwLl51CFdC4Pfgq8+VLsVHarY=", + "flutter_patched_sdk_product.zip": "sha256-nxOERMQz0qq7EFVm6OWpl8BR6E+20xLG0du5Jj+YHbE=", + "ios-profile/artifacts.zip": "sha256-RL1GqX0/6fv+SeUW3FNyfKQl/bpTM84STQSzHLCSh7E=", + "ios-release/artifacts.zip": "sha256-gnRjcv8bz1du/w9T8bZBaspUqIkeKxPB0BqPsbofq34=", + "ios/artifacts.zip": "sha256-qjr2yU4XsbdiyJwAK6v7bINiALIIOFyUmWpKFhaDou0=", + "linux-arm64-debug/linux-arm64-flutter-gtk.zip": "sha256-WmN2CNXlSslMxwQO8siUbvOL1C2B7DyAiubOpof0hps=", + "linux-arm64-profile/linux-arm64-flutter-gtk.zip": "sha256-RZJOPNYA/TuoLGQfpOveJ0dhBs4xKf4Iy3MmCLBoBE8=", + "linux-arm64-release/linux-arm64-flutter-gtk.zip": "sha256-qQFBvIOsQwLEnsSlfV+r9yK/3rBQyyIQZayJzarO9iI=", + "linux-arm64/artifacts.zip": "sha256-JnPSiHx6hYCK2kx/zQqxvjbIGZPwH5UDI4dZyJ5kPIU=", + "linux-arm64/font-subset.zip": "sha256-9TcFWpN3suISmjNgje7WSqygiWbu9Q5t6SAfhqZlF00=", + "linux-x64-debug/linux-x64-flutter-gtk.zip": "sha256-og0JAIZL/Arklv4cpeOMhqhN+n2VcVWJg6T0G3hb1sQ=", + "linux-x64-profile/linux-x64-flutter-gtk.zip": "sha256-LXOooWgdQcjm4rc7RXi8765snfvovIxXDVfCaOSBc/o=", + "linux-x64-release/linux-x64-flutter-gtk.zip": "sha256-ICePn3G3SngJ5O78B0YvUf0lspWXJBRi3ESUOmRhtzI=", + "linux-x64/artifacts.zip": "sha256-15A66Yj0IUzvmXcijWIFFaYGuXccJp0L1rqg7APkwiM=", + "linux-x64/font-subset.zip": "sha256-YcYgMtvtIJekxpAByUkF8OViQxe1+EBczpKer15meeA=", + "sky_engine.zip": "sha256-qIs/zBZ9VvCU4PUNrmJRPvF0UsEZ6fe4HVIGoYEYdhs=", + "windows-x64-debug/windows-x64-flutter.zip": "sha256-4QYdKTF2GipzX+KS0FkEwQV9MBEkKUjUi7Nav21bv2k=", + "windows-x64-profile/windows-x64-flutter.zip": "sha256-a7ANXvvQ2nawAdPOxOuTgrQMgFSihCtQhzAiOQJtOLE=", + "windows-x64-release/windows-x64-flutter.zip": "sha256-qLG8IChKep+nwYcogcM5JOGP0wZwdUPdjf4mg8TPmVU=", + "windows-x64/artifacts.zip": "sha256-2GZ4oVJ/XjiNDs0goanWPbmhkiwARGU+GsrhZnTdzd0=", + "windows-x64/flutter-cpp-client-wrapper.zip": "sha256-lqxP9xCNa7ClZyNIaxnZv/MorPFmV8haDde/Sm2DG4Q=", + "windows-x64/font-subset.zip": "sha256-t0hARPeFDhVqad2H1dlhvkf6l3a4EcsoVHotageUghA=" + }, "channel": "stable", - "engineHashes": { - "aarch64-linux": { - "aarch64-linux": "sha256-MDmnLj7uUgAQ3UIgU4XU8r57TMv50tFdfmYYcFhcsxM=", - "x86_64-linux": "sha256-MDmnLj7uUgAQ3UIgU4XU8r57TMv50tFdfmYYcFhcsxM=" - }, - "x86_64-linux": { - "aarch64-linux": "sha256-93ut4VKfLefvB/dNAlf7MrfchM8dS4uhvyhM0Lt94jQ=", - "x86_64-linux": "sha256-93ut4VKfLefvB/dNAlf7MrfchM8dS4uhvyhM0Lt94jQ=" - } + "dartHash": { + "aarch64-darwin": "sha256-DwyZtAeZLuaX2MFVPzhERiFeX45wI9sTc4Y2SVopRE8=", + "linux": "sha256-y2F+wB0M5dq6koxGpCs9BExGU7p8tFOIiRqfdf8ip+8=", + "x86_64-darwin": "sha256-GHTjTHJmbIPfsAbF4AmxjDETSw9YD04/6lGecoe1xrA=" }, "dartVersion": "3.11.4", - "dartHash": { - "x86_64-linux": "sha256-UtYvBbAHzLcRfPQcGb7aHIfBRLJ+pgCxa0ycjqj8j9Q=", - "aarch64-linux": "sha256-w1um8N4fXrvyNQZhK//DR8e6lMOkx1EQyrEVeJIWbTw=", - "x86_64-darwin": "sha256-GHTjTHJmbIPfsAbF4AmxjDETSw9YD04/6lGecoe1xrA=", - "aarch64-darwin": "sha256-DwyZtAeZLuaX2MFVPzhERiFeX45wI9sTc4Y2SVopRE8=" - }, + "engineHash": "sha256-DJwtw5yJsTou6mXb5lSjP1two72rRqdO2Q/+WkhWGS8=", + "engineVersion": "425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb", "flutterHash": "sha256-oI/Ml2gT1jStnpAwS/SBant3ja8d7hSEZ74kin8kENk=", - "artifactHashes": { - "android": { - "aarch64-darwin": "sha256-XqHuTqBB5htEaOXwBWW2JE7KIHfQ4AnyTVTu6ekrL34=", - "aarch64-linux": "sha256-+0pmhXISuitKlG94LraIAr0qDu7ob4DrefMiBcZBbRU=", - "x86_64-darwin": "sha256-XqHuTqBB5htEaOXwBWW2JE7KIHfQ4AnyTVTu6ekrL34=", - "x86_64-linux": "sha256-+0pmhXISuitKlG94LraIAr0qDu7ob4DrefMiBcZBbRU=" - }, - "fuchsia": { - "aarch64-darwin": "sha256-CZpjr9MPSxKW37Mz3/E11drpCQRKVHrG8VDU0qVl45E=", - "aarch64-linux": "sha256-CZpjr9MPSxKW37Mz3/E11drpCQRKVHrG8VDU0qVl45E=", - "x86_64-darwin": "sha256-CZpjr9MPSxKW37Mz3/E11drpCQRKVHrG8VDU0qVl45E=", - "x86_64-linux": "sha256-CZpjr9MPSxKW37Mz3/E11drpCQRKVHrG8VDU0qVl45E=" - }, - "ios": { - "aarch64-darwin": "sha256-GFDc9AwM9WCO8Y0KUclhQwSsHBz6KVuFFx6OtbHAPy4=", - "aarch64-linux": "sha256-GFDc9AwM9WCO8Y0KUclhQwSsHBz6KVuFFx6OtbHAPy4=", - "x86_64-darwin": "sha256-GFDc9AwM9WCO8Y0KUclhQwSsHBz6KVuFFx6OtbHAPy4=", - "x86_64-linux": "sha256-GFDc9AwM9WCO8Y0KUclhQwSsHBz6KVuFFx6OtbHAPy4=" - }, - "linux": { - "aarch64-darwin": "sha256-/rAQETXAXGblIinEfTmwV29lFfHj4Ws9BvD1MZ/bnqM=", - "aarch64-linux": "sha256-/rAQETXAXGblIinEfTmwV29lFfHj4Ws9BvD1MZ/bnqM=", - "x86_64-darwin": "sha256-Q/3ba2UhzMaJrOAFz6HaHAbgcTHEztMUPg+SEAt0PAM=", - "x86_64-linux": "sha256-Q/3ba2UhzMaJrOAFz6HaHAbgcTHEztMUPg+SEAt0PAM=" - }, - "macos": { - "aarch64-darwin": "sha256-HPLmvF32alDhh1jRigp/zJU77nLueDFEsDmM4eBIdos=", - "aarch64-linux": "sha256-HPLmvF32alDhh1jRigp/zJU77nLueDFEsDmM4eBIdos=", - "x86_64-darwin": "sha256-HPLmvF32alDhh1jRigp/zJU77nLueDFEsDmM4eBIdos=", - "x86_64-linux": "sha256-HPLmvF32alDhh1jRigp/zJU77nLueDFEsDmM4eBIdos=" - }, - "universal": { - "aarch64-darwin": "sha256-kJv9nhT15oWafKEjahk0Dlh8sko6DGvrfpBowlDKps4=", - "aarch64-linux": "sha256-XVUgeHwC0BgqeMWvkhMwi8k2yrcWNbUPTMw7F++UkV4=", - "x86_64-darwin": "sha256-9xkjn2IOfOIy4xtUO43YfJwwYXcL7LHvJ3FVTa7jt5w=", - "x86_64-linux": "sha256-l56TIx2e3hCxMzyhzZLE8vo4H59XWnSofyPfa1i5Oyo=" - }, - "web": { - "aarch64-darwin": "sha256-oJQjHSkQS+P2jNEr1GAJp61bNk05579okyGK5BovjRA=", - "aarch64-linux": "sha256-oJQjHSkQS+P2jNEr1GAJp61bNk05579okyGK5BovjRA=", - "x86_64-darwin": "sha256-oJQjHSkQS+P2jNEr1GAJp61bNk05579okyGK5BovjRA=", - "x86_64-linux": "sha256-oJQjHSkQS+P2jNEr1GAJp61bNk05579okyGK5BovjRA=" - }, - "windows": { - "x86_64-darwin": "sha256-rDuCsweWYvlT6Z8kGr1AK0UMzRUpn8MYscdF7qqmbnc=", - "x86_64-linux": "sha256-rDuCsweWYvlT6Z8kGr1AK0UMzRUpn8MYscdF7qqmbnc=" - } - }, "pubspecLock": { "packages": { "_fe_analyzer_shared": { @@ -1086,5 +1091,7 @@ "sdks": { "dart": ">=3.10.0-0.0.dev <4.0.0" } - } + }, + "version": "3.41.6" } + diff --git a/pkgs/development/compilers/flutter/versions/3_41/patches/content-unaware-hash.patch b/pkgs/development/compilers/flutter/versions/3_41/patches/content-unaware-hash.patch new file mode 100644 index 000000000000..461dc7f171f6 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_41/patches/content-unaware-hash.patch @@ -0,0 +1,12 @@ +--- a/bin/internal/content_aware_hash.sh ++++ b/bin/internal/content_aware_hash.sh +@@ -13,6 +13,9 @@ + + set -e + ++echo '0000000000000000000000000000000000000000' ++exit 0 ++ + FLUTTER_ROOT="$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")" + + unset GIT_DIR diff --git a/pkgs/development/compilers/flutter/versions/3_41/patches/no-cache.patch b/pkgs/development/compilers/flutter/versions/3_41/patches/no-cache.patch new file mode 100644 index 000000000000..83b347dc01b7 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_41/patches/no-cache.patch @@ -0,0 +1,51 @@ +--- a/packages/flutter_tools/lib/src/cache.dart ++++ b/packages/flutter_tools/lib/src/cache.dart +@@ -318,7 +319,7 @@ + var fatalStorageWarning = true; + + static RandomAccessFile? _lock; +- static var _lockEnabled = true; ++ static var _lockEnabled = false; + + /// Turn off the [lock]/[releaseLock] mechanism. + /// +@@ -721,7 +722,6 @@ + } + + void setStampFor(String artifactName, String version) { +- getStampFileFor(artifactName).writeAsStringSync(version); + } + + File getStampFileFor(String artifactName) { +@@ -1010,31 +1010,6 @@ + } + + Future checkForArtifacts(String? engineVersion) async { +- engineVersion ??= version; +- final url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; +- +- var exists = false; +- for (final String pkgName in getPackageDirs()) { +- exists = await cache.doesRemoteExist( +- 'Checking package $pkgName is available...', +- Uri.parse('$url$pkgName.zip'), +- ); +- if (!exists) { +- return false; +- } +- } +- +- for (final List toolsDir in getBinaryDirs()) { +- final String cacheDir = toolsDir[0]; +- final String urlPath = toolsDir[1]; +- exists = await cache.doesRemoteExist( +- 'Checking $cacheDir tools are available...', +- Uri.parse(url + urlPath), +- ); +- if (!exists) { +- return false; +- } +- } + return true; + } + diff --git a/pkgs/development/compilers/flutter/versions/3_41/patches/version.patch b/pkgs/development/compilers/flutter/versions/3_41/patches/version.patch new file mode 100644 index 000000000000..92c8b8e50db9 --- /dev/null +++ b/pkgs/development/compilers/flutter/versions/3_41/patches/version.patch @@ -0,0 +1,131 @@ +--- a/packages/flutter_tools/lib/src/version.dart ++++ b/packages/flutter_tools/lib/src/version.dart +@@ -99,10 +99,7 @@ abstract class FlutterVersion { + } + } + +- final String frameworkRevision = git +- .logSync(['-n', '1', '--pretty=format:%H'], workingDirectory: flutterRoot) +- .stdout +- .trim(); ++ final String frameworkRevision = 'nixpkgs000000000000000000000000000000000'; + + return FlutterVersion.fromRevision( + clock: clock, +@@ -222,10 +219,7 @@ abstract class FlutterVersion { + final String flutterRoot; + + String _getTimeSinceCommit({String? revision}) { +- return _git +- .logSync(['-n', '1', '--pretty=format:%ar', ?revision], workingDirectory: flutterRoot) +- .stdout +- .trim(); ++ return 'unknown'; + } + + // TODO(fujino): calculate this relative to frameworkCommitDate for +@@ -391,13 +385,7 @@ abstract class FlutterVersion { + /// remote git repository is not reachable due to a network issue. + Future _fetchRemoteFrameworkCommitDate() async { + try { +- // Fetch upstream branch's commit and tags +- await _run(_git, ['fetch', '--tags']); +- return _gitCommitDate( +- git: _git, +- gitRef: kGitTrackingUpstream, +- workingDirectory: Cache.flutterRoot, +- ); ++ return 'unknown'; + } on VersionCheckError catch (error) { + globals.printError(error.message); + rethrow; +@@ -422,13 +410,7 @@ abstract class FlutterVersion { + /// If [redactUnknownBranches] is true and the branch is unknown, + /// the branch name will be returned as `'[user-branch]'` ([kUserBranch]). + String getBranchName({bool redactUnknownBranches = false}) { +- _branch ??= () { +- final String branch = _git +- .runSync(['symbolic-ref', '--short', 'HEAD'], workingDirectory: flutterRoot) +- .stdout +- .trim(); +- return branch == 'HEAD' ? '' : branch; +- }(); ++ _branch ??= 'stable'; + if (redactUnknownBranches || _branch!.isEmpty) { + // Only return the branch names we know about; arbitrary branch names might contain PII. + if (!kOfficialChannels.contains(_branch) && !kObsoleteBranches.containsKey(_branch)) { +@@ -464,31 +446,7 @@ String _gitCommitDate({ + required Git git, + required String? workingDirectory, + }) { +- final RunResult result = git.logSync([ +- gitRef, +- '-n', +- '1', +- '--pretty=format:%ad', +- '--date=iso', +- ], workingDirectory: workingDirectory); +- if (result.exitCode == 0) { +- return result.stdout.trim(); +- } +- final error = VersionCheckError( +- 'Command exited with code ${result.exitCode}: ${result.command.join(' ')}\n' +- 'Standard out: ${result.stdout}\n' +- 'Standard error: ${result.stderr}', +- ); +- if (lenient) { +- final dummyDate = DateTime.fromMillisecondsSinceEpoch(0); +- globals.printError( +- 'Failed to find the latest git commit date: $error\n' +- 'Returning $dummyDate instead.', +- ); +- // Return something that DateTime.parse() can parse. +- return dummyDate.toString(); +- } +- throw error; ++ return 'unknown'; + } + + class _FlutterVersionFromFile extends FlutterVersion { +@@ -639,23 +597,7 @@ class _FlutterVersionGit extends FlutterVersion { + @override + String? get repositoryUrl { + if (_repositoryUrl == null) { +- final String gitChannel = _git +- .runSync([ +- 'rev-parse', +- '--abbrev-ref', +- '--symbolic', +- kGitTrackingUpstream, +- ], workingDirectory: flutterRoot) +- .stdout +- .trim(); +- final int slash = gitChannel.indexOf('/'); +- if (slash != -1) { +- final String remote = gitChannel.substring(0, slash); +- _repositoryUrl = _git +- .runSync(['ls-remote', '--get-url', remote], workingDirectory: flutterRoot) +- .stdout +- .trim(); +- } ++ _repositoryUrl = 'https://github.com/flutter/flutter.git'; + } + return _repositoryUrl; + } +@@ -1010,6 +952,16 @@ class GitTagVersion { + String? workingDirectory, + bool fetchTags = false, + String gitRef = 'HEAD', ++ }) { ++ return GitTagVersion.unknown(); ++ } ++ ++ static GitTagVersion determine_orig( ++ Platform platform, { ++ required Git git, ++ String? workingDirectory, ++ bool fetchTags = false, ++ String gitRef = 'HEAD', + }) { + if (fetchTags) { + final String channel = git diff --git a/pkgs/development/compilers/flutter/wrapper.nix b/pkgs/development/compilers/flutter/wrapper.nix deleted file mode 100644 index f9009186364f..000000000000 --- a/pkgs/development/compilers/flutter/wrapper.nix +++ /dev/null @@ -1,211 +0,0 @@ -{ - lib, - stdenv, - darwin, - callPackage, - flutter, - supportedTargetFlutterPlatforms ? [ - "universal" - "web" - ] - ++ lib.optional (stdenv.hostPlatform.isLinux && !(flutter ? engine)) "linux" - ++ lib.optional (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isDarwin) "android" - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - "macos" - "ios" - ], - artifactHashes ? flutter.artifactHashes, - extraPkgConfigPackages ? [ ], - extraLibraries ? [ ], - extraIncludes ? [ ], - extraCxxFlags ? [ ], - extraCFlags ? [ ], - extraLinkerFlags ? [ ], - makeWrapper, - writeShellScript, - wrapGAppsHook3, - gitMinimal, - which, - pkg-config, - atk, - cairo, - gdk-pixbuf, - glib, - gtk3, - harfbuzz, - libepoxy, - pango, - libx11, - xorgproto, - libdeflate, - zlib, - cmake, - ninja, - clang, - symlinkJoin, -}: - -let - supportsLinuxDesktopTarget = builtins.elem "linux" supportedTargetFlutterPlatforms; - - flutterPlatformArtifacts = lib.genAttrs supportedTargetFlutterPlatforms ( - flutterPlatform: - (callPackage ./artifacts/prepare-artifacts.nix { - src = callPackage ./artifacts/fetch-artifacts.nix { - inherit flutterPlatform; - systemPlatform = stdenv.hostPlatform.system; - flutter = callPackage ./wrapper.nix { inherit flutter; }; - hash = artifactHashes.${flutterPlatform}.${stdenv.hostPlatform.system} or ""; - }; - }) - ); - - cacheDir = symlinkJoin { - name = "flutter-cache-dir"; - paths = builtins.attrValues flutterPlatformArtifacts; - postBuild = '' - mkdir --parents "$out/bin/cache" - ln --symbolic '${flutter}/bin/cache/dart-sdk' "$out/bin/cache" - ''; - passthru.flutterPlatform = flutterPlatformArtifacts; - }; - - # By default, Flutter stores downloaded files (such as the Pub cache) in the SDK directory. - # Wrap it to ensure that it does not do that, preferring home directories instead. - immutableFlutter = writeShellScript "flutter_immutable" '' - export PUB_CACHE=''${PUB_CACHE:-"$HOME/.pub-cache"} - ${flutter}/bin/flutter "$@" - ''; - - # Tools that the Flutter tool depends on. - tools = [ - gitMinimal - which - ]; - - # Libraries that Flutter apps depend on at runtime. - appRuntimeDeps = lib.optionals supportsLinuxDesktopTarget [ - atk - cairo - gdk-pixbuf - glib - gtk3 - harfbuzz - libepoxy - pango - libx11 - libdeflate - ]; - - # Development packages required for compilation. - appBuildDeps = - let - # https://discourse.nixos.org/t/handling-transitive-c-dependencies/5942/3 - deps = - pkg: lib.filter lib.isDerivation ((pkg.buildInputs or [ ]) ++ (pkg.propagatedBuildInputs or [ ])); - withKey = pkg: { - key = pkg.outPath; - val = pkg; - }; - collect = pkg: lib.map withKey ([ pkg ] ++ deps pkg); - in - lib.map (e: e.val) ( - lib.genericClosure { - startSet = lib.map withKey appRuntimeDeps; - operator = item: collect item.val; - } - ); - - # Some header files and libraries are not properly located by the Flutter SDK. - # They must be manually included. - appStaticBuildDeps = - (lib.optionals supportsLinuxDesktopTarget [ - libx11 - xorgproto - zlib - ]) - ++ extraLibraries; - - # Tools used by the Flutter SDK to compile applications. - buildTools = lib.optionals supportsLinuxDesktopTarget [ - pkg-config - cmake - ninja - clang - ]; - - # Nix-specific compiler configuration. - pkgConfigPackages = map (lib.getOutput "dev") (appBuildDeps ++ extraPkgConfigPackages); - includeFlags = map (pkg: "-isystem ${lib.getOutput "dev" pkg}/include") ( - appStaticBuildDeps ++ extraIncludes - ); - linkerFlags = - (map (pkg: "-rpath,${lib.getOutput "lib" pkg}/lib") appRuntimeDeps) ++ extraLinkerFlags; -in -(callPackage ./sdk-symlink.nix { }) ( - stdenv.mkDerivation { - pname = "flutter-wrapped"; - inherit (flutter) version; - - nativeBuildInputs = [ - makeWrapper - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ] - ++ lib.optionals supportsLinuxDesktopTarget [ - glib - wrapGAppsHook3 - ]; - - passthru = flutter.passthru // { - inherit (flutter) version; - unwrapped = flutter; - updateScript = ./update/update.py; - inherit cacheDir; - }; - - dontUnpack = true; - dontWrapGApps = true; - - installPhase = '' - runHook preInstall - - for path in ${ - builtins.concatStringsSep " " ( - builtins.foldl' ( - paths: pkg: - paths - ++ (map (directory: "'${pkg}/${directory}/pkgconfig'") [ - "lib" - "share" - ]) - ) [ ] pkgConfigPackages - ) - }; do - addToSearchPath FLUTTER_PKG_CONFIG_PATH "$path" - done - - mkdir --parents $out/bin - makeWrapper '${immutableFlutter}' $out/bin/flutter \ - --set-default ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \ - '' - + lib.optionalString (flutter ? engine && flutter.engine.meta.available) '' - --set-default FLUTTER_ENGINE "${flutter.engine}" \ - --add-flags "--local-engine-host ${flutter.engine.outName}" \ - '' - + '' - --suffix PATH : '${lib.makeBinPath (tools ++ buildTools)}' \ - --suffix PKG_CONFIG_PATH : "$FLUTTER_PKG_CONFIG_PATH" \ - --suffix LIBRARY_PATH : '${lib.makeLibraryPath appStaticBuildDeps}' \ - --prefix CXXFLAGS "''\t" '${builtins.concatStringsSep " " (includeFlags ++ extraCxxFlags)}' \ - --prefix CFLAGS "''\t" '${builtins.concatStringsSep " " (includeFlags ++ extraCFlags)}' \ - --prefix LDFLAGS "''\t" '${ - builtins.concatStringsSep " " (map (flag: "-Wl,${flag}") linkerFlags) - }' \ - ''${gappsWrapperArgs[@]} - - runHook postInstall - ''; - - inherit (flutter) meta; - } -) diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix index f9d236b6a568..9809da4aa0fb 100644 --- a/pkgs/development/libraries/mpich/default.nix +++ b/pkgs/development/libraries/mpich/default.nix @@ -2,13 +2,14 @@ stdenv, lib, fetchurl, - perl, - gfortran, - automake, autoconf, - openssh, + automake, + gfortran, hwloc, + openssh, + perl, python3, + removeReferencesTo, # either libfabric or ucx work for ch4backend on linux. On darwin, neither of # these libraries currently build so this argument is ignored on Darwin. ch4backend, @@ -26,6 +27,19 @@ let withPmStr = if withPm != [ ] then builtins.concatStringsSep ":" withPm else "no"; + + # Binaries that should go in the "dev" output. + # These are all MPI compilers (wrappers around gcc, really). + develBins = [ + "bin/mpicc" + "bin/mpic++" + "bin/mpicxx" + "bin/mpif77" + "bin/mpif90" + "bin/mpifort" + ]; + + libExt = stdenv.hostPlatform.extensions.sharedLibrary; in assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric"); @@ -49,6 +63,8 @@ stdenv.mkDerivation rec { outputs = [ "out" + "bin" + "dev" "doc" "man" ]; @@ -56,10 +72,16 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-shared" "--with-pm=${withPmStr}" - ] - ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [ - "FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300 - "FCFLAGS=-fallow-argument-mismatch" + + # NOTE: /etc is meant to contain MPICH configuration for both *compilers* (dev) and for *runtime* (out, bin). + # /etc/mpixxx_opts.conf is a *compiler* configuration file. + # /etc/mpiexec.hydra.conf is a *runtime* configuration file. + # + # Ideally we'd be able to specify those separately. However, the build currently doesn't install mpiexec.hydra.conf + # at all, but it does install mpixxx_opts.conf. So we configure the sysconfdir to be a "dev" output, since the only + # file that's installed is needed by compilers, not runtime. + # If we ever need both, we should probably have a separate "etc" output. + "--sysconfdir=${placeholder "dev"}/etc" ] ++ lib.optionals pmixSupport [ "--with-pmix" @@ -68,10 +90,11 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; nativeBuildInputs = [ - gfortran - python3 autoconf automake + gfortran + python3 + removeReferencesTo ]; buildInputs = [ perl @@ -84,11 +107,45 @@ stdenv.mkDerivation rec { # test_double_serializer.test fails on darwin doCheck = !stdenv.hostPlatform.isDarwin; - preFixup = '' + postInstall = + # Move compiler binaries into $dev. + '' + for f in ${lib.concatStringsSep " " develBins}; do + moveToOutput "$f" "''${!outputDev}" + done + '' # Ensure the default compilers are the ones mpich was built with - sed -i 's:CC="gcc":CC=${stdenv.cc}/bin/gcc:' $out/bin/mpicc - sed -i 's:CXX="g++":CXX=${stdenv.cc}/bin/g++:' $out/bin/mpicxx - sed -i 's:FC="gfortran":FC=${gfortran}/bin/gfortran:' $out/bin/mpifort + + '' + sed -i 's:CC="gcc":CC=${stdenv.cc}/bin/gcc:' "$dev"/bin/mpicc + sed -i 's:CXX="g++":CXX=${stdenv.cc}/bin/g++:' "$dev"/bin/mpicxx + sed -i 's:FC="gfortran":FC=${gfortran}/bin/gfortran:' "$dev"/bin/mpifort + ''; + + # The entire configure line is embedded into some binaries, so we can end up with cycles between + # outputs, or one output depending on all other outputs. Since the configure line embedding does + # not affect functionality, we can simply break its references. + # + # To find the cycles, temporarily add this to postFixup to print them out: + # for i in out bin dev doc man; do + # for j in out bin dev doc man; do + # if [ "$i" != "$j" ]; then + # echo "$i in $j: --------------------------------" + # grep -r "''${!i}" "''${!j}" || true + # fi + # done + # done + postFixup = '' + remove-references-to \ + -t "''${!outputBin}" \ + -t "''${!outputDev}" \ + -t "''${!outputDoc}" \ + -t "''${!outputMan}" \ + $(find "$out"/lib -type f -name 'libmpi${libExt}*') + remove-references-to \ + -t "''${!outputDev}" \ + -t "''${!outputDoc}" \ + -t "''${!outputMan}" \ + $(find "$bin"/bin -type f) ''; meta = { diff --git a/pkgs/development/php-packages/phan/default.nix b/pkgs/development/php-packages/phan/default.nix index c27875c7b734..e2acb0595a2a 100644 --- a/pkgs/development/php-packages/phan/default.nix +++ b/pkgs/development/php-packages/phan/default.nix @@ -8,16 +8,16 @@ (php.withExtensions ({ enabled, all }: enabled ++ (with all; [ ast ]))).buildComposerProject2 (finalAttrs: { pname = "phan"; - version = "6.0.2"; + version = "6.0.5"; src = fetchFromGitHub { owner = "phan"; repo = "phan"; tag = finalAttrs.version; - hash = "sha256-GwiCyek+XuiXMd8LcKy79u19wySee6aRpG0e6dP44LU="; + hash = "sha256-R49f3SljQjNywDi7AsOHbce+4RhC59ugL5ClY8XBQho="; }; - vendorHash = "sha256-+7U2PfjagpIOaeG+8pYAgEyqh6sZT5c+knoKX/S6L0M="; + vendorHash = "sha256-pzMsPFN3PXLEEWyjPTMdDCsAv6VDsIYGpma84Mu/Gos="; composerStrictValidation = false; doInstallCheck = true; diff --git a/pkgs/development/python-modules/aiopegelonline/default.nix b/pkgs/development/python-modules/aiopegelonline/default.nix index f650ced57f15..7d9fe6f35ca4 100644 --- a/pkgs/development/python-modules/aiopegelonline/default.nix +++ b/pkgs/development/python-modules/aiopegelonline/default.nix @@ -9,21 +9,21 @@ setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "aiopegelonline"; - version = "0.1.1"; + version = "0.1.2"; pyproject = true; src = fetchFromGitHub { owner = "mib1185"; repo = "aiopegelonline"; - tag = "v${version}"; - hash = "sha256-kDz+q4Y6ImgXbY7OSC/PKXPtKdktixW+ee51xHMX9o4="; + tag = "v${finalAttrs.version}"; + hash = "sha256-uV4qVCj28wgraWmWhyqN98/SaVDJFuJ30ugViKrl2us="; }; postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail "setuptools==75.6.0" "setuptools" + --replace-fail "setuptools==82.0.1" "setuptools" ''; build-system = [ setuptools ]; @@ -41,8 +41,8 @@ buildPythonPackage rec { meta = { description = "Library to retrieve data from PEGELONLINE"; homepage = "https://github.com/mib1185/aiopegelonline"; - changelog = "https://github.com/mib1185/aiopegelonline/releases/tag/v${version}"; + changelog = "https://github.com/mib1185/aiopegelonline/releases/tag/v${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/development/python-modules/aioslimproto/default.nix b/pkgs/development/python-modules/aioslimproto/default.nix index 4fa007c82f14..eba6bf22859c 100644 --- a/pkgs/development/python-modules/aioslimproto/default.nix +++ b/pkgs/development/python-modules/aioslimproto/default.nix @@ -8,21 +8,21 @@ setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "aioslimproto"; - version = "3.1.7"; + version = "3.1.8"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "aioslimproto"; - tag = version; - hash = "sha256-mbzc3Td9XkxDrtPeIbrZdxn8YLV6yjQ+KXgaRC1GdFc="; + tag = "v${finalAttrs.version}"; + hash = "sha256-xHdwikriA6mcb7tmElqa6suINYxeyyGZQ5iO+P7dRCo="; }; postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail 'version = "0.0.0"' 'version = "${version}"' + --replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"' ''; build-system = [ setuptools ]; @@ -41,8 +41,8 @@ buildPythonPackage rec { meta = { description = "Module to control Squeezebox players"; homepage = "https://github.com/home-assistant-libs/aioslimproto"; - changelog = "https://github.com/home-assistant-libs/aioslimproto/releases/tag/${src.tag}"; + changelog = "https://github.com/home-assistant-libs/aioslimproto/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix index 104edd530964..81433f0db473 100644 --- a/pkgs/development/python-modules/boto3-stubs/default.nix +++ b/pkgs/development/python-modules/boto3-stubs/default.nix @@ -358,13 +358,13 @@ buildPythonPackage (finalAttrs: { pname = "boto3-stubs"; - version = "1.42.81"; + version = "1.42.82"; pyproject = true; src = fetchPypi { pname = "boto3_stubs"; inherit (finalAttrs) version; - hash = "sha256-Uj5V8WXn7hekUxn7GumwotpNIQgHqEY+vTJNQ0U94fU="; + hash = "sha256-m5hsmOXjHtdhNpeg2dSryLEP7pbWitneosJw3hMFi6k="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/django-waffle/default.nix b/pkgs/development/python-modules/django-waffle/default.nix new file mode 100644 index 000000000000..95cdf739e689 --- /dev/null +++ b/pkgs/development/python-modules/django-waffle/default.nix @@ -0,0 +1,48 @@ +{ + buildPythonPackage, + fetchFromGitHub, + django, + lib, + setuptools, + pytestCheckHook, + pytest-django, +}: + +buildPythonPackage (finalAttrs: { + pname = "django-waffle"; + version = "5.0.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "django-waffle"; + repo = "django-waffle"; + tag = "v${finalAttrs.version}"; + hash = "sha256-wirB2Y4iONmAMVt9o8aTkeB1WQzcvktQOAMEeXMM1x8="; + }; + + patches = [ + # Middleware object requires a request -> response callable + ./middleware-compat.patch + ]; + + build-system = [ setuptools ]; + + dependencies = [ django ]; + + nativeCheckInputs = [ + pytest-django + pytestCheckHook + ]; + + preCheck = '' + export DJANGO_SETTINGS_MODULE=test_settings + ''; + + meta = { + changelog = "https://github.com/django-waffle/django-waffle/releases/tag/${finalAttrs.src.tag}"; + description = "Feature flipper for Django"; + homepage = "https://waffle.readthedocs.io/en/stable/"; + maintainers = [ lib.maintainers.ma27 ]; + license = lib.licenses.bsd3; + }; +}) diff --git a/pkgs/development/python-modules/django-waffle/middleware-compat.patch b/pkgs/development/python-modules/django-waffle/middleware-compat.patch new file mode 100644 index 000000000000..133159cb1fac --- /dev/null +++ b/pkgs/development/python-modules/django-waffle/middleware-compat.patch @@ -0,0 +1,31 @@ +diff --git a/waffle/tests/test_middleware.py b/waffle/tests/test_middleware.py +index 11af7c9..27293df 100644 +--- a/waffle/tests/test_middleware.py ++++ b/waffle/tests/test_middleware.py +@@ -13,7 +13,7 @@ def test_set_cookies(): + assert 'dwf_foo' not in resp.cookies + assert 'dwf_bar' not in resp.cookies + +- resp = WaffleMiddleware().process_response(get, resp) ++ resp = WaffleMiddleware(lambda request: HttpResponse()).process_response(get, resp) + assert 'dwf_foo' in resp.cookies + assert 'dwf_bar' in resp.cookies + +@@ -27,7 +27,7 @@ def test_rollout_cookies(): + 'baz': [True, False], + 'qux': [False, False]} + resp = HttpResponse() +- resp = WaffleMiddleware().process_response(get, resp) ++ resp = WaffleMiddleware(lambda request: HttpResponse()).process_response(get, resp) + for k in get.waffles: + cookie = f'dwf_{k}' + assert cookie in resp.cookies +@@ -42,7 +42,7 @@ def test_testing_cookies(): + get.waffles = {} + get.waffle_tests = {'foo': True, 'bar': False} + resp = HttpResponse() +- resp = WaffleMiddleware().process_response(get, resp) ++ resp = WaffleMiddleware(lambda request: HttpResponse()).process_response(get, resp) + for k in get.waffle_tests: + cookie = f'dwft_{k}' + assert str(get.waffle_tests[k]) == resp.cookies[cookie].value diff --git a/pkgs/development/python-modules/fava-dashboards/default.nix b/pkgs/development/python-modules/fava-dashboards/default.nix index 0bc721a045ee..592792660bad 100644 --- a/pkgs/development/python-modules/fava-dashboards/default.nix +++ b/pkgs/development/python-modules/fava-dashboards/default.nix @@ -11,14 +11,14 @@ }: buildPythonPackage rec { pname = "fava-dashboards"; - version = "2.0.0b5"; + version = "2.0.0b7"; pyproject = true; src = fetchFromGitHub { owner = "andreasgerstmayr"; repo = "fava-dashboards"; tag = "v${version}"; - hash = "sha256-OoXNGj+05qjsgmHQ9c18ZcVE8jESDRZeONK9hzAmAQs="; + hash = "sha256-DtytD8LA/DoyBwXjpSHaEzwf7YJscV0yvMn9EpL6eh8="; }; build-system = [ diff --git a/pkgs/development/python-modules/google-cloud-network-connectivity/default.nix b/pkgs/development/python-modules/google-cloud-network-connectivity/default.nix index 8473ee19560e..c3068b56d12f 100644 --- a/pkgs/development/python-modules/google-cloud-network-connectivity/default.nix +++ b/pkgs/development/python-modules/google-cloud-network-connectivity/default.nix @@ -14,13 +14,13 @@ buildPythonPackage (finalAttrs: { pname = "google-cloud-network-connectivity"; - version = "2.14.0"; + version = "2.15.0"; pyproject = true; src = fetchPypi { inherit (finalAttrs) version; pname = "google_cloud_network_connectivity"; - hash = "sha256-+82I/ZGM4p/yHKXBm2ddKTIGEo5SigXrry9LpaZ1RKc="; + hash = "sha256-PqkPw7HNOZUHjIPUp7tbFDlY0d7jDlGeqhIwMZVr1OY="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/google-cloud-webrisk/default.nix b/pkgs/development/python-modules/google-cloud-webrisk/default.nix index bbeeb1ed73c4..e99b9f90c206 100644 --- a/pkgs/development/python-modules/google-cloud-webrisk/default.nix +++ b/pkgs/development/python-modules/google-cloud-webrisk/default.nix @@ -14,13 +14,13 @@ buildPythonPackage (finalAttrs: { pname = "google-cloud-webrisk"; - version = "1.20.0"; + version = "1.21.0"; pyproject = true; src = fetchPypi { pname = "google_cloud_webrisk"; inherit (finalAttrs) version; - hash = "sha256-XjzgGju4J1oUnYPoX1DiW16Z1/4WCQh/cMqxRKhNpZ8="; + hash = "sha256-/PcV2opz3zaGerJk6rCOQNwZbxV2FqY/3BLMNQzO8Pc="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index 8e59c237b9f5..e39e11a3375a 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "iamdata"; - version = "0.1.202604021"; + version = "0.1.202604031"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-WU6hi6xd/gNgpi+qKkelcbVtnkqmd0uYpwGPDt53KvQ="; + hash = "sha256-shYdMojdoqfMgJbYYEEGLGb+G8ueKaDfZy/h7tccBRc="; }; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/momepy/default.nix b/pkgs/development/python-modules/momepy/default.nix index f024c7ae5372..b24d8d5aa05d 100644 --- a/pkgs/development/python-modules/momepy/default.nix +++ b/pkgs/development/python-modules/momepy/default.nix @@ -28,6 +28,11 @@ buildPythonPackage rec { hash = "sha256-Og7W+35k9HIIEFGcDmsxggb1BT5cwnaMIi3HO3VRAX0="; }; + patches = [ + # see https://github.com/pysal/momepy/pull/733 + ./fix_test_elements.patch + ]; + build-system = [ setuptools-scm ]; propagatedBuildInputs = [ @@ -46,6 +51,12 @@ buildPythonPackage rec { pythonImportsCheck = [ "momepy" ]; + disabledTestPaths = [ + # this tests depends on neatnet, not packaged in nixpkgs + # it's probably not worthy to package it just for this test + "momepy/tests/test_continuity.py" + ]; + meta = { description = "Urban Morphology Measuring Toolkit"; homepage = "https://github.com/pysal/momepy"; diff --git a/pkgs/development/python-modules/momepy/fix_test_elements.patch b/pkgs/development/python-modules/momepy/fix_test_elements.patch new file mode 100644 index 000000000000..1cdde9b2cc51 --- /dev/null +++ b/pkgs/development/python-modules/momepy/fix_test_elements.patch @@ -0,0 +1,36 @@ +diff --git i/momepy/functional/tests/test_elements.py w/momepy/functional/tests/test_elements.py +index 75a3f5f..625fb69 100644 +--- i/momepy/functional/tests/test_elements.py ++++ w/momepy/functional/tests/test_elements.py +@@ -290,28 +290,19 @@ class TestElements: + def test_buffered_limit_adaptive(self): + limit = mm.buffered_limit(self.df_buildings, "adaptive") + assert limit.geom_type == "Polygon" +- if LPS_G_4_13_0: +- exp = 347096.5835217 +- else: +- exp = 355819.1895417 ++ exp = 355819.1895417 + assert exp == pytest.approx(limit.area) + + limit = mm.buffered_limit(self.df_buildings, "adaptive", max_buffer=30) + assert limit.geom_type == "Polygon" +- if LPS_G_4_13_0: +- exp = 304712.451361391 +- else: +- exp = 304200.301833294 ++ exp = 304200.301833294 + assert exp == pytest.approx(limit.area) + + limit = mm.buffered_limit( + self.df_buildings, "adaptive", min_buffer=30, max_buffer=300 + ) + assert limit.geom_type == "Polygon" +- if LPS_G_4_13_0: +- exp = 348777.778371144 +- else: +- exp = 357671.831894244 ++ exp = 357671.831894244 + assert exp == pytest.approx(limit.area) + + def test_buffered_limit_error(self): diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index 476fd7daadc0..64e3be3047f5 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -127,8 +127,8 @@ in "sha256-Mvf3bBhrRRR+hoAsBPq7p9COJqVxV9LL+GrnikrHX2g="; mypy-boto3-appstream = - buildMypyBoto3Package "appstream" "1.42.79" - "sha256-EG6G33/7BTIjlEXxSa0ygnT80WytlAMCM/bAI9jz3Jg="; + buildMypyBoto3Package "appstream" "1.42.82" + "sha256-DNHMac7P5RG1JXnX2/RkTqtPXm0zVi4Zi8hjXGpsAaQ="; mypy-boto3-appsync = buildMypyBoto3Package "appsync" "1.42.6" @@ -255,8 +255,8 @@ in "sha256-S2NgrjralqxjjGo39TwaUSStqspnhI/E2/BLXUGP0Hc="; mypy-boto3-cloudwatch = - buildMypyBoto3Package "cloudwatch" "1.42.56" - "sha256-Z5GriV29LChx+MDWhq5a2zlBjb1GUVmW4sgKWWZNDc8="; + buildMypyBoto3Package "cloudwatch" "1.42.82" + "sha256-tdiMpHrllPI131hNYD4kPI6TD/XhbKMElNovOF5BryA="; mypy-boto3-codeartifact = buildMypyBoto3Package "codeartifact" "1.42.3" @@ -335,8 +335,8 @@ in "sha256-UNxmIK9UD6AVmT4nyQzunNAKjp2YmV1wQ5oloHOwcXw="; mypy-boto3-connect = - buildMypyBoto3Package "connect" "1.42.68" - "sha256-jppL6jpw0/Wb+cOW3GQ62h65l+/ZX8c6OFvyJfzVLtA="; + buildMypyBoto3Package "connect" "1.42.82" + "sha256-PGrhF5ZXOD7Koi5ConyVwPMJuqnmgbla22xZxOO4HGY="; mypy-boto3-connect-contact-lens = buildMypyBoto3Package "connect-contact-lens" "1.42.3" @@ -559,8 +559,8 @@ in "sha256-NqNGcL3HfJgx2ScPLKMNNwpVS3bO4Cu7JpYlenSJwJg="; mypy-boto3-gamelift = - buildMypyBoto3Package "gamelift" "1.42.79" - "sha256-IYvjnVdbVYFkX7Qu3Sr9iaRFMeq/F7njuPW3EBWldlE="; + buildMypyBoto3Package "gamelift" "1.42.82" + "sha256-4sWx8fog6KbXwh29KzzsoqYoej7IFYCjcSW0D+dw5+M="; mypy-boto3-glacier = buildMypyBoto3Package "glacier" "1.42.30" @@ -806,8 +806,8 @@ in "sha256-VGQzgnrUynTDjfYpEk+FR+PrljbULl0UpbeqbaPKqSc="; mypy-boto3-logs = - buildMypyBoto3Package "logs" "1.42.79" - "sha256-CPFaU1Cz1OfBiOSh5jfPWIU64cV4k8Mf5cCM1S7ZlXw="; + buildMypyBoto3Package "logs" "1.42.82" + "sha256-xZxyCo7+tTU69IfNy2p6ECx+fXI9CsnAx8V9neRB818="; mypy-boto3-lookoutequipment = buildMypyBoto3Package "lookoutequipment" "1.42.3" @@ -1050,8 +1050,8 @@ in "sha256-55tgrwAp2iMnve5aq+EStZ4BROxWZNA3VTZi5UdZu3o="; mypy-boto3-pricing = - buildMypyBoto3Package "pricing" "1.42.3" - "sha256-EY1rb0i7iYzr+JmXvDVfPcxCyNWs0DW0YQdlDsVcb04="; + buildMypyBoto3Package "pricing" "1.42.82" + "sha256-oo2K5E+2+mbJgcq8FjBJdbuuWF3x8IRPrCEZU+Ml0hE="; mypy-boto3-privatenetworks = buildMypyBoto3Package "privatenetworks" "1.38.0" diff --git a/pkgs/development/python-modules/parsedmarc/default.nix b/pkgs/development/python-modules/parsedmarc/default.nix index dc770a694ecf..8f46b42d8546 100644 --- a/pkgs/development/python-modules/parsedmarc/default.nix +++ b/pkgs/development/python-modules/parsedmarc/default.nix @@ -49,14 +49,14 @@ let in buildPythonPackage rec { pname = "parsedmarc"; - version = "9.5.4"; + version = "9.5.5"; pyproject = true; src = fetchFromGitHub { owner = "domainaware"; repo = "parsedmarc"; tag = version; - hash = "sha256-Di4ykujzBow1woG0UsH6S1eDu+nuQ8/r6RXcMKLdDF4="; + hash = "sha256-iJkXtSkHImVOWvuZuWOsUTXPtXNXYbp5umjpPFmuQvo="; }; postPatch = '' diff --git a/pkgs/development/python-modules/plux/default.nix b/pkgs/development/python-modules/plux/default.nix index 3a469665f582..329e81f4d2bb 100644 --- a/pkgs/development/python-modules/plux/default.nix +++ b/pkgs/development/python-modules/plux/default.nix @@ -34,6 +34,13 @@ buildPythonPackage rec { export HOME=$TMPDIR ''; + disabledTests = [ + # Fails with pytest >= 9 which uses PEP 639 License-Expression metadata + # instead of legacy License field. Upstream pins pytest==8.4.1 in CI. + # https://github.com/localstack/plux/pull/46 + "test_resolve_distribution_information" + ]; + pythonImportsCheck = [ "plugin.core" ]; meta = { diff --git a/pkgs/development/python-modules/preshed/default.nix b/pkgs/development/python-modules/preshed/default.nix index f2864641e1e5..cebbc5800b47 100644 --- a/pkgs/development/python-modules/preshed/default.nix +++ b/pkgs/development/python-modules/preshed/default.nix @@ -10,12 +10,12 @@ buildPythonPackage rec { pname = "preshed"; - version = "3.0.12"; + version = "3.0.13"; format = "setuptools"; src = fetchPypi { inherit pname version; - hash = "sha256-tz+ai1TuHURSnMYBg1aJbP+T1I91XynBNHNNk3HA1oU="; + hash = "sha256-119xi7/ZfpkveCfg+n+vapG92cki1bqktQ1icxOWy4k="; }; nativeBuildInputs = [ cython ]; diff --git a/pkgs/development/python-modules/pyportainer/default.nix b/pkgs/development/python-modules/pyportainer/default.nix index 9f5a55c41d8d..1c3fd65e870f 100644 --- a/pkgs/development/python-modules/pyportainer/default.nix +++ b/pkgs/development/python-modules/pyportainer/default.nix @@ -16,14 +16,14 @@ buildPythonPackage (finalAttrs: { pname = "pyportainer"; - version = "1.0.34"; + version = "1.0.35"; pyproject = true; src = fetchFromGitHub { owner = "erwindouna"; repo = "pyportainer"; tag = "v${finalAttrs.version}"; - hash = "sha256-qa+NbX8y/2bK3B7gHWuTeAKT0bTaZS2HbWS/75a8tcA="; + hash = "sha256-W4zO4fwVJ6cvTeZgak2bOUTTgmGpfVc/EDiOvlkSR2Y="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/pypugjs/default.nix b/pkgs/development/python-modules/pypugjs/default.nix index 218f00110ff0..521048a5b44a 100644 --- a/pkgs/development/python-modules/pypugjs/default.nix +++ b/pkgs/development/python-modules/pypugjs/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "pypugjs"; - version = "6.0.1"; + version = "6.0.2"; pyproject = true; src = fetchFromGitHub { owner = "kakulukia"; repo = "pypugjs"; tag = "v${version}"; - hash = "sha256-aHTWRlRrUh4LCsNUcszce4g8C4O0A/aPZKTz6Zl0UYg="; + hash = "sha256-PABd0aa+KMrHGGaOLCqUcsw91bhytHJn06/d/k9RvCg="; }; build-system = [ diff --git a/pkgs/development/python-modules/pytest-ansible/default.nix b/pkgs/development/python-modules/pytest-ansible/default.nix index 0429cc996048..8f8d42939631 100644 --- a/pkgs/development/python-modules/pytest-ansible/default.nix +++ b/pkgs/development/python-modules/pytest-ansible/default.nix @@ -25,14 +25,14 @@ buildPythonPackage (finalAttrs: { pname = "pytest-ansible"; - version = "26.2.0"; + version = "26.4.0"; pyproject = true; src = fetchFromGitHub { owner = "ansible"; repo = "pytest-ansible"; tag = "v${finalAttrs.version}"; - hash = "sha256-3pppBAgAfkwJNPRsI6CH4UDMqyZ45+mFNejlQwX5bCg="; + hash = "sha256-HC5kipVIHga1nBWK6QQ2wGv9wPz0cVmRyby46JT6+Hg="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pytibber/default.nix b/pkgs/development/python-modules/pytibber/default.nix index 0ab86a525f2b..54d4e2cc0edd 100644 --- a/pkgs/development/python-modules/pytibber/default.nix +++ b/pkgs/development/python-modules/pytibber/default.nix @@ -12,14 +12,14 @@ buildPythonPackage (finalAttrs: { pname = "pytibber"; - version = "0.36.0"; + version = "0.37.0"; pyproject = true; src = fetchFromGitHub { owner = "Danielhiversen"; repo = "pyTibber"; tag = finalAttrs.version; - hash = "sha256-+Df66Jmtfn5EMFBHrj603/rDZwYLlLQfihHr3vhhabI="; + hash = "sha256-NCHTSvwAJhRzruBZwPzieI5jqrRrugnDjgZHHiLXgbE="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/scmrepo/default.nix b/pkgs/development/python-modules/scmrepo/default.nix index 034892c0ab9e..6ac08d809916 100644 --- a/pkgs/development/python-modules/scmrepo/default.nix +++ b/pkgs/development/python-modules/scmrepo/default.nix @@ -16,16 +16,16 @@ tqdm, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "scmrepo"; - version = "3.6.1"; + version = "3.6.2"; pyproject = true; src = fetchFromGitHub { owner = "iterative"; repo = "scmrepo"; - tag = version; - hash = "sha256-nkHEeslQM+F4PpNrrbSql+jCJDHmdaGfGkciluhXmHo="; + tag = finalAttrs.version; + hash = "sha256-E7BHdLDS57r/UbSA62lfr3z+5sqFTPRzwfFLIITeSs0="; }; build-system = [ @@ -54,8 +54,8 @@ buildPythonPackage rec { meta = { description = "SCM wrapper and fsspec filesystem"; homepage = "https://github.com/iterative/scmrepo"; - changelog = "https://github.com/iterative/scmrepo/releases/tag/${src.tag}"; + changelog = "https://github.com/iterative/scmrepo/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/development/python-modules/skorch/default.nix b/pkgs/development/python-modules/skorch/default.nix index 9801616ac5a8..63d6387d1ffd 100644 --- a/pkgs/development/python-modules/skorch/default.nix +++ b/pkgs/development/python-modules/skorch/default.nix @@ -17,7 +17,6 @@ pytestCheckHook, safetensors, transformers, - pythonAtLeast, }: buildPythonPackage rec { @@ -32,10 +31,6 @@ buildPythonPackage rec { sha256 = "sha256-7cCtrLy80LUlo+og7F98bexDcLim3lY/MVa7HHYlsfE="; }; - # AttributeError: 'NoneType' object has no attribute 'span' with Python 3.13 - # https://github.com/skorch-dev/skorch/issues/1080 - disabled = pythonAtLeast "3.13"; - build-system = [ setuptools ]; dependencies = [ diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix index 12362c462c47..56529e3b6656 100644 --- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix +++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix @@ -9,14 +9,14 @@ buildPythonPackage (finalAttrs: { pname = "tencentcloud-sdk-python"; - version = "3.1.69"; + version = "3.1.70"; pyproject = true; src = fetchFromGitHub { owner = "TencentCloud"; repo = "tencentcloud-sdk-python"; tag = finalAttrs.version; - hash = "sha256-X/ABqF1SPgee82qrkg6J7dYjMLVePwrvF69/ZRkWuvE="; + hash = "sha256-4FJtabE6XZ+22AUT/l/t5cujaL8tfLiyCiVEAvnQjsU="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/types-protobuf/default.nix b/pkgs/development/python-modules/types-protobuf/default.nix index 2a50446c1342..b05bba749eb5 100644 --- a/pkgs/development/python-modules/types-protobuf/default.nix +++ b/pkgs/development/python-modules/types-protobuf/default.nix @@ -7,13 +7,13 @@ buildPythonPackage rec { pname = "types-protobuf"; - version = "6.32.1.20251210"; + version = "6.32.1.20260221"; format = "setuptools"; src = fetchPypi { pname = "types_protobuf"; inherit version; - hash = "sha256-xpi7PwICdLGieYrgncdzcozj91IJo1GHvRGRbr/eZ2M="; + hash = "sha256-bV+wYKYWv7B2y7YbSzw5afX8i+xYEPmi9+ZI7ly8v24="; }; propagatedBuildInputs = [ types-futures ]; diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix index 79d2f3a5c700..ff52460e235e 100644 --- a/pkgs/os-specific/linux/kernel/zen-kernels.nix +++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix @@ -18,7 +18,7 @@ in buildLinux ( args // rec { - version = "6.19.9"; + version = "6.19.11"; pname = "linux-zen"; modDirVersion = lib.versions.pad 3 "${version}-${suffix}"; isZen = true; @@ -27,7 +27,7 @@ buildLinux ( owner = "zen-kernel"; repo = "zen-kernel"; rev = "v${version}-${suffix}"; - sha256 = "09wlnd8ndm4r75ywk2sanmkc0v788rz9faa61hcfschw5pq5yzx6"; + sha256 = "15ja0f4dvlnvibajvyfvv1x2w5spy0dfyfzrzz3hp3dm0k87cfi4"; }; # This is based on the following source: diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix index f504a3abcec3..0ec1089779bc 100644 --- a/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix +++ b/pkgs/servers/monitoring/grafana/plugins/grafana-lokiexplore-app/default.nix @@ -2,8 +2,8 @@ grafanaPlugin { pname = "grafana-lokiexplore-app"; - version = "2.0.0"; - zipHash = "sha256-7uyQBz7damAeTlU0A/EFXYCkeD3lffYpZEbFYeDiNdY="; + version = "2.0.1"; + zipHash = "sha256-b4RhxdUFKi4VVHhEJKa09qwmIebGUK77p5aq+QG/Iqg="; meta = { description = "Browse Loki logs without the need for writing complex queries"; license = lib.licenses.agpl3Only; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 7f67798ca3b3..91dc0fc008b8 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -668,6 +668,7 @@ mapAliases { eureka-ideas = throw "'eureka-ideas' has been removed as it has been unmaintained upstream since April 2023"; # Added 2026-02-07 evolve-core = throw "'evolve-core' has been removed, as it hindered the removal of flutter329"; # Added 2026-01-25 eww-wayland = throw "'eww-wayland' has been renamed to/replaced by 'eww'"; # Converted to throw 2025-10-27 + expidus = throw "'expidus' has been removed from nixpkgs due to it not being maintained"; # Added 2026-03-17 f3d_egl = warnAlias "'f3d' now build with egl support by default, so `f3d_egl` is deprecated, consider using 'f3d' instead." f3d; # Added 2025-07-18 fabs = throw "'fabs' has been removed due to being broken for more than a year; see RFC 180"; # Added 2026-02-05 fast-cli = throw "'fast-cli' has been removed because it was unmaintainable in nixpkgs"; # Added 2025-11-17 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 682fb4987457..b8d5c8c3d804 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3865,13 +3865,14 @@ with pkgs; flutterPackages-source = recurseIntoAttrs ( callPackage ../development/compilers/flutter { useNixpkgsEngine = true; } ); - flutterPackages = flutterPackages-bin; + flutterPackages = + if stdenv.hostPlatform.isLinux then flutterPackages-source else flutterPackages-bin; flutter = flutterPackages.stable; flutter341 = flutterPackages.v3_41; - flutter338 = flutterPackages.v3_38; - flutter335 = flutterPackages.v3_35; - flutter332 = flutterPackages.v3_32; - flutter329 = flutterPackages.v3_29; + flutter338 = flutterPackages-bin.v3_38; + flutter335 = flutterPackages-bin.v3_35; + flutter332 = flutterPackages-bin.v3_32; + flutter329 = flutterPackages-bin.v3_29; fpc = callPackage ../development/compilers/fpc { }; @@ -11459,14 +11460,6 @@ with pkgs; enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment { }); - expidus = recurseIntoAttrs ( - callPackages ../desktops/expidus { - # Use the Nix built Flutter Engine for testing. - # Also needed when we eventually package Genesis Shell. - flutterPackages = flutterPackages-source; - } - ); - gnome2 = recurseIntoAttrs (callPackage ../desktops/gnome-2 { }); gnome = recurseIntoAttrs (callPackage ../desktops/gnome { }); diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5b86108614ef..6085e1df572c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4430,6 +4430,8 @@ self: super: with self; { django-vite = callPackage ../development/python-modules/django-vite { }; + django-waffle = callPackage ../development/python-modules/django-waffle { }; + django-weasyprint = callPackage ../development/python-modules/django-weasyprint { }; django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };