diff --git a/ci/OWNERS b/ci/OWNERS index 56f9691533b6..cf158b7b9154 100644 --- a/ci/OWNERS +++ b/ci/OWNERS @@ -475,8 +475,9 @@ nixos/tests/incus/ @adamcstephens pkgs/by-name/in/incus/ @adamcstephens pkgs/by-name/lx/lxc* @adamcstephens -# Flutter +# ExpidusOS, Flutter /pkgs/development/compilers/flutter @RossComputerGuy +/pkgs/desktops/expidus @RossComputerGuy # GNU Tar & Zip /pkgs/by-name/gn/gnutar @RossComputerGuy diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b11b47a4337d..c48c7f68373e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5449,6 +5449,12 @@ name = "Simon Hauser"; githubId = 15233006; }; + connor-grady = { + email = "connor.grady@gmail.com"; + github = "connor-grady"; + githubId = 50903811; + name = "Connor Grady"; + }; connorbaker = { email = "ConnorBaker01@gmail.com"; matrix = "@connorbaker:matrix.org"; diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index cc706a612406..dc700358a45f 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -129,6 +129,8 @@ - [RSSHub](https://github.com/DIYgod/RSSHub), a service to convert many sources into rss. Available as `services.rsshub`. +- [ReFrame](https://github.com/AlynxZhou/reframe), a DRM/KMS based remote desktop for Linux that supports Wayland/NVIDIA/headless/login. + - [Komodo Periphery](https://github.com/moghtech/komodo), a multi-server Docker and Git deployment agent by Komodo. Available as [services.komodo-periphery](#opt-services.komodo-periphery.enable). - [Shoko](https://shokoanime.com), an anime management system. Available as [services.shoko](#opt-services.shoko.enable). diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index 18a1e30d31fe..057839834d52 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -374,7 +374,7 @@ let after = [ "network.target" ]; serviceConfig.Restart = mkDefault "always"; serviceConfig.PrivateTmp = mkDefault true; - serviceConfig.WorkingDirectory = mkDefault /tmp; + serviceConfig.WorkingDirectory = mkDefault "/tmp"; serviceConfig.DynamicUser = mkDefault enableDynamicUser; serviceConfig.User = mkDefault conf.user; serviceConfig.Group = conf.group; diff --git a/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix b/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix index c053fc5417c1..55847902aa05 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix @@ -23,13 +23,10 @@ let if (builtins.isPath file) || (lib.isStorePath file) then file else - ( - lib.warn '' - ${logPrefix}: configuration file "${file}" is being copied to the nix-store. - If you would like to avoid that, please set enableConfigCheck to false. - '' /. - + file - ); + (lib.warn '' + ${logPrefix}: configuration file "${file}" is being copied to the nix-store. + If you would like to avoid that, please set enableConfigCheck to false. + '' (builtins.toFile (builtins.baseNameOf file) (builtins.readFile file))); checkConfigLocation = file: if lib.hasPrefix "/tmp/" file then diff --git a/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix b/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix index d95a3867fdcc..22cc859013f6 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/ecoflow.nix @@ -27,7 +27,7 @@ in }; ecoflowAccessKeyFile = mkOption { type = types.path; - default = /etc/ecoflow-access-key; + default = "/etc/ecoflow-access-key"; description = '' Path to the file with your personal api access string from the Ecoflow development website . Do to share or commit your plaintext scecrets to a public repo use: agenix or soaps. @@ -35,7 +35,7 @@ in }; ecoflowSecretKeyFile = mkOption { type = types.path; - default = /etc/ecoflow-secret-key; + default = "/etc/ecoflow-secret-key"; description = '' Path to the file with your personal api secret string from the Ecoflow development website . Do to share or commit your plaintext scecrets to a public repo use: agenix or soaps. @@ -43,7 +43,7 @@ in }; ecoflowEmailFile = mkOption { type = types.path; - default = /etc/ecoflow-email; + default = "/etc/ecoflow-email"; description = '' Path to the file with your personal ecoflow app login email address. Do to share or commit your plaintext scecrets to a public repo use: agenix or soaps. @@ -51,7 +51,7 @@ in }; ecoflowPasswordFile = mkOption { type = types.path; - default = /etc/ecoflow-password; + default = "/etc/ecoflow-password"; description = '' Path to the file with your personal ecoflow app login email password. Do to share or commit your plaintext passwords to a public repo use: agenix or soaps here! @@ -59,7 +59,7 @@ in }; ecoflowDevicesFile = mkOption { type = types.path; - default = /etc/ecoflow-devices; + default = "/etc/ecoflow-devices"; description = '' File must contain one line, example: R3300000,R3400000,NC430000,.... The list of devices serial numbers separated by comma. For instance: SN1,SN2,SN3. @@ -69,7 +69,7 @@ in }; ecoflowDevicesPrettyNamesFile = mkOption { type = types.path; - default = /etc/ecoflow-devices-pretty-names; + default = "/etc/ecoflow-devices-pretty-names"; description = '' File must contain one line, example: {"R3300000":"Delta 2","R3400000":"Delta Pro",...} The key/value map of custom names for your devices. Key is a serial number, value is a device name you want diff --git a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix index b65c73d2dec7..768d27b0fdeb 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix @@ -24,13 +24,10 @@ let if (builtins.isPath file) || (lib.isStorePath file) then file else - ( - lib.warn '' - ${logPrefix}: configuration file "${file}" is being copied to the nix-store. - If you would like to avoid that, please set enableConfigCheck to false. - '' /. - + file - ); + (lib.warn '' + ${logPrefix}: configuration file "${file}" is being copied to the nix-store. + If you would like to avoid that, please set enableConfigCheck to false. + '' (builtins.toFile (builtins.baseNameOf file) (builtins.readFile file))); checkConfig = file: diff --git a/nixos/modules/services/networking/reframe.nix b/nixos/modules/services/networking/reframe.nix new file mode 100644 index 000000000000..b05f33772eaa --- /dev/null +++ b/nixos/modules/services/networking/reframe.nix @@ -0,0 +1,190 @@ +{ + lib, + pkgs, + config, + ... +}: +let + cfg = config.services.reframe; + iniFmt = pkgs.formats.ini { }; +in +{ + options.programs.reframe = { + enable = lib.mkEnableOption "DRM/KMS based remote desktop for Linux that supports Wayland/NVIDIA/headless/login…"; + package = lib.mkPackageOption pkgs "reframe" { }; + configs = lib.mkOption { + type = lib.types.attrsOf ( + lib.types.submodule { + options = { + reframe = { + card = lib.mkOption { + type = lib.types.str; + default = ""; + description = "Select monitor via DRM card. All available cards and connectors can be found in `/sys/class/drm/`."; + example = "card0"; + }; + connector = lib.mkOption { + type = lib.types.str; + default = ""; + description = "Select monitor via connector. All available cards and connectors can be found in `/sys/class/drm/`."; + example = "eDP-1"; + }; + rotation = lib.mkOption { + type = lib.types.enum [ + 0 + 90 + 180 + 270 + ]; + default = 0; + description = '' + This is the angle you rotate the monitor, not the angle of display content relative to the monitor! + Valid angles are clockwise `0`, `90`, `180`, `270`. + ''; + }; + desktop-width = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If you have more than 1 monitor, set those values to the logical size of the whole virtual desktop. + You can get those value by finding the pointer position of the right most and bottom most border of your monitors. + ''; + }; + desktop-height = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If you have more than 1 monitor, set those values to the logical size of the whole virtual desktop. + You can get those value by finding the pointer position of the right most and bottom most border of your monitors. + ''; + }; + monitor-x = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If you have more than 1 monitor, set those values to the logical position of the top left corner of your selected monitor. + ''; + }; + monitor-y = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If you have more than 1 monitor, set those values to the logical position of the top left corner of your selected monitor. + ''; + }; + default-width = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If your client does not support resizing, use those to force a size. Empty or `0` means monitor size. + ''; + }; + default-height = lib.mkOption { + type = lib.types.int; + default = 0; + description = '' + If your client does not support resizing, use those to force a size. Empty or `0` means monitor size. + ''; + }; + resize = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Set to `false` to prohibit client resizing. + ''; + }; + cursor = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Set to `false` to ignore DRM cursor plane. + ''; + }; + wakeup = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Set to `false` if you already disabled automatic screen blank. + ''; + }; + damage = lib.mkOption { + type = lib.types.enum [ + "" + "cpu" + "gpu" + ]; + default = true; + description = '' + Set to `gpu` to use GPU damage region detection, which may be more efficiency but may cause artifacts depending on GPU vendors. + Set to `cpu` to use CPU damage region detection if you get bugs with `gpu`. + Empty to disable damage region detection, which may require higher network bandwidth. + ''; + }; + fps = lib.mkOption { + type = lib.types.int; + default = 30; + }; + }; + vnc = { + ip = lib.mkOption { + type = lib.types.str; + default = ""; + description = '' + Empty means accept all incoming connections. + ''; + }; + port = lib.mkOption { + type = lib.types.port; + default = 5933; + }; + password = lib.mkOption { + type = lib.types.str; + default = ""; + description = '' + Empty means no password. + ''; + }; + type = lib.mkOption { + type = lib.types.enum [ + "libvncserver" + "neatvnc" + ]; + default = "libvncserver"; + description = '' + Set to `neatvnc` to prefer neatvnc, which provides more efficient encoding methods but maybe more unstable. + ''; + }; + }; + }; + } + ); + default = { }; + description = "Configurations for ReFrame"; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + systemd.packages = [ cfg.package ]; + systemd.tmpfiles.packages = [ cfg.package ]; + users.users.reframe = { + isSystemUser = true; + group = "reframe"; + description = "ReFrame Remote Desktop"; + }; + users.groups.reframe = { }; + environment.etc = builtins.mapAttrs' ( + name: value: + lib.nameValuePair "reframe/${name}.conf" { + mode = "0644"; + user = "root"; + group = "root"; + source = iniFmt.generate "${name}.conf" value; + } + ) cfg.configs; + }; + + meta.maintainers = with lib.maintainers; [ + bitbloxhub + ]; +} diff --git a/nixos/modules/services/security/authelia.nix b/nixos/modules/services/security/authelia.nix index 059337e3a425..57f436c5443e 100644 --- a/nixos/modules/services/security/authelia.nix +++ b/nixos/modules/services/security/authelia.nix @@ -10,9 +10,11 @@ let format = pkgs.formats.yaml { }; + autheliaName = name: "authelia" + lib.optionalString (name != "") "-${name}"; + autheliaOpts = with lib; - { name, ... }: + { name, config, ... }: { options = { enable = mkEnableOption "Authelia instance"; @@ -23,21 +25,28 @@ let description = '' Name is used as a suffix for the service name, user, and group. By default it takes the value you use for `` in: - {option}`services.authelia.` + {option}`services.authelia.instances.` + + When set to the empty string `""`, the service name, user, and group + will be just `authelia` without a suffix. ''; }; package = mkPackageOption pkgs "authelia" { }; user = mkOption { - default = "authelia-${name}"; type = types.str; + defaultText = lib.literalExpression '' + if name == "" then "authelia" else "authelia-''${name}" + ''; description = "The name of the user for this authelia instance."; }; group = mkOption { - default = "authelia-${name}"; type = types.str; + defaultText = lib.literalExpression '' + if name == "" then "authelia" else "authelia-''${name}" + ''; description = "The name of the group for this authelia instance."; }; @@ -252,6 +261,11 @@ let ''; }; }; + + config = { + user = mkDefault (autheliaName config.name); + group = mkDefault (autheliaName config.name); + }; }; writeOidcJwksConfigFile = @@ -382,7 +396,7 @@ in ExecStart = "${execCommand} ${configArg}"; Restart = "always"; RestartSec = "5s"; - StateDirectory = "authelia-${instance.name}"; + StateDirectory = autheliaName instance.name; StateDirectoryMode = "0700"; # Security options: @@ -431,11 +445,8 @@ in }; }; mkInstanceUsersConfig = instance: { - groups."authelia-${instance.name}" = lib.mkIf (instance.group == "authelia-${instance.name}") { - name = "authelia-${instance.name}"; - }; - users."authelia-${instance.name}" = lib.mkIf (instance.user == "authelia-${instance.name}") { - name = "authelia-${instance.name}"; + groups.${autheliaName instance.name} = lib.mkIf (instance.group == autheliaName instance.name) { }; + users.${autheliaName instance.name} = lib.mkIf (instance.user == autheliaName instance.name) { isSystemUser = true; group = instance.group; }; @@ -468,7 +479,7 @@ in map ( instance: lib.mkIf instance.enable { - "authelia-${instance.name}" = mkInstanceServiceConfig instance; + ${autheliaName instance.name} = mkInstanceServiceConfig instance; } ) instances ); @@ -481,5 +492,6 @@ in jk dit7ya nicomem + connor-grady ]; } diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 2a528b036404..b58cdd8ac5f7 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -1362,7 +1362,7 @@ in + "${guest.address}:${toString guest.port}," else "'guestfwd=${proto}:${guest.address}:${toString guest.port}-" - + "cmd:${pkgs.netcat}/bin/nc ${host.address} ${toString host.port}'," + + "cmd:${hostPkgs.netcat}/bin/nc ${host.address} ${toString host.port}'," ); restrictNetworkOption = lib.optionalString cfg.restrictNetwork "restrict=on,"; in diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix deleted file mode 100644 index f8e9cb71366c..000000000000 --- a/pkgs/applications/audio/lmms/default.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - fetchpatch, - cmake, - pkg-config, - wrapQtAppsHook, - alsa-lib ? null, - carla ? null, - fftwFloat, - fltk_1_3, - fluidsynth ? null, - lame ? null, - libgig ? null, - libjack2 ? null, - libpulseaudio ? null, - libsamplerate, - libsoundio ? null, - libsndfile, - libvorbis ? null, - portaudio ? null, - qtbase, - qtx11extras, - qttools, - SDL ? null, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "lmms"; - version = "1.2.2"; - - src = fetchFromGitHub { - owner = "LMMS"; - repo = "lmms"; - rev = "v${finalAttrs.version}"; - sha256 = "006hwv1pbh3y5whsxkjk20hsbgwkzr4dawz43afq1gil69y7xpda"; - fetchSubmodules = true; - }; - - nativeBuildInputs = [ - cmake - qttools - pkg-config - wrapQtAppsHook - ]; - - buildInputs = [ - carla - alsa-lib - fftwFloat - fltk_1_3 - fluidsynth - lame - libgig - libjack2 - libpulseaudio - libsamplerate - libsndfile - libsoundio - libvorbis - portaudio - qtbase - qtx11extras - SDL # TODO: switch to SDL2 in the next version - ]; - - patches = [ - (fetchpatch { - url = "https://raw.githubusercontent.com/archlinux/svntogit-community/cf64acc45e3264c6923885867e2dbf8b7586a36b/trunk/lmms-carla-export.patch"; - sha256 = "sha256-wlSewo93DYBN2PvrcV58dC9kpoo9Y587eCeya5OX+j4="; - }) - ]; - - prePatch = '' - # Update CMake minimum required version and policies - substituteInPlace CMakeLists.txt --replace 'CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)' 'CMAKE_MINIMUM_REQUIRED(VERSION 3.10)' - substituteInPlace CMakeLists.txt --replace 'CMAKE_POLICY(SET CMP0026 OLD)' 'CMAKE_POLICY(SET CMP0026 NEW)' - substituteInPlace CMakeLists.txt --replace 'CMAKE_POLICY(SET CMP0050 OLD)' 'CMAKE_POLICY(SET CMP0050 NEW)' - substituteInPlace CMakeLists.txt --replace 'GET_TARGET_PROPERTY(BIN2RES bin2res LOCATION)' 'SET(BIN2RES $)' - ''; - - cmakeFlags = [ - "-DWANT_QT5=ON" - ] - ++ lib.optionals (lib.versionOlder finalAttrs.version "11.4") [ - # Fix the build with CMake 4. - "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" - ]; - - meta = { - description = "DAW similar to FL Studio (music production software)"; - mainProgram = "lmms"; - homepage = "https://lmms.io"; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.linux; - maintainers = [ ]; - }; -}) diff --git a/pkgs/applications/editors/emacs/sources.nix b/pkgs/applications/editors/emacs/sources.nix index 6f0ae1c1b7da..47af77ac4703 100644 --- a/pkgs/applications/editors/emacs/sources.nix +++ b/pkgs/applications/editors/emacs/sources.nix @@ -85,6 +85,7 @@ let AndersonTorres adisbladis jwiegley + linj panchoh ]; "macport" = with lib.maintainers; [ diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 43c68227e7c7..3212b46ebfa2 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -412,12 +412,12 @@ final: prev: { SchemaStore-nvim = buildVimPlugin { pname = "SchemaStore.nvim"; - version = "0-unstable-2026-04-17"; + version = "0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "b0o"; repo = "SchemaStore.nvim"; - rev = "250aed7415ddd6cb3ea321490c7b35094ed9148d"; - hash = "sha256-UQ+6s4tMJ8z+UJ41ZX1HJTiDsbkYFEUSDb+N8jVBAeY="; + rev = "d09eb13366fe95deeecf3deba7a4639f0c82fcdc"; + hash = "sha256-6JLdNKPtRpjS2XKc6gs2I51AUeyiaidYBj7bO3S4F0Y="; }; meta.homepage = "https://github.com/b0o/SchemaStore.nvim/"; meta.hydraPlatforms = [ ]; @@ -660,12 +660,12 @@ final: prev: { actions-preview-nvim = buildVimPlugin { pname = "actions-preview.nvim"; - version = "0-unstable-2026-04-09"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "aznhe21"; repo = "actions-preview.nvim"; - rev = "2b604b2e8e662c03b716436f6ffebcb19663e66a"; - hash = "sha256-FG2QxBZTtyRyzK1T2rUtmyK+Z2kt/Ot/vSDQ6JEVwBs="; + rev = "0ac9c2aa3cfc8c885321c0862b50b6b1c3392405"; + hash = "sha256-ibzfF/Ebm5+1EgZ05NQCTRDB+Q7ymyRy2fZpjvwv8EA="; }; meta.homepage = "https://github.com/aznhe21/actions-preview.nvim/"; meta.hydraPlatforms = [ ]; @@ -986,12 +986,12 @@ final: prev: { astrocore = buildVimPlugin { pname = "astrocore"; - version = "3.0.2"; + version = "3.0.3"; src = fetchFromGitHub { owner = "AstroNvim"; repo = "astrocore"; - tag = "v3.0.2"; - hash = "sha256-4yf49at22utcEVrLftI8X0iBrcbfVqlZpreXkM0q63E="; + tag = "v3.0.3"; + hash = "sha256-EQG6jOH/US/0T4iIwPv58FC4P7k3W7jTBdfRVbqFQi8="; }; meta.homepage = "https://github.com/AstroNvim/astrocore/"; meta.hydraPlatforms = [ ]; @@ -1036,6 +1036,19 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + async-nvim = buildVimPlugin { + pname = "async.nvim"; + version = "0-unstable-2026-04-18"; + src = fetchFromGitHub { + owner = "lewis6991"; + repo = "async.nvim"; + rev = "7a1d7d49933fbe902b84b55f352a3b10fd587331"; + hash = "sha256-uyUvZVN7L7SqPAE1woc1T8dlhpH24FBj3/WD4VMwWF8="; + }; + meta.homepage = "https://github.com/lewis6991/async.nvim/"; + meta.hydraPlatforms = [ ]; + }; + async-vim = buildVimPlugin { pname = "async.vim"; version = "0-unstable-2022-04-04"; @@ -1558,12 +1571,12 @@ final: prev: { better-escape-nvim = buildVimPlugin { pname = "better-escape.nvim"; - version = "2.3.3-unstable-2025-04-29"; + version = "2.3.3-unstable-2026-04-22"; src = fetchFromGitHub { owner = "max397574"; repo = "better-escape.nvim"; - rev = "19a38aab94961016430905ebec30d272a01e9742"; - hash = "sha256-OmCZQN9qMSSEBmZaRR5QoJ+RRm13pnu+0uAUoz6X7oA="; + rev = "3f4bc0b326606264ff75967f59091b5ddada0554"; + hash = "sha256-h7Xa8McjnCOOP8WbqbmmJn9jjBMvk89Tvh0Qt1stEVU="; }; meta.homepage = "https://github.com/max397574/better-escape.nvim/"; meta.hydraPlatforms = [ ]; @@ -1636,12 +1649,12 @@ final: prev: { blink-cmp-conventional-commits = buildVimPlugin { pname = "blink-cmp-conventional-commits"; - version = "0-unstable-2026-02-04"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "disrupted"; repo = "blink-cmp-conventional-commits"; - rev = "faa45344aab97aa33ece53938c4c3379760e61bd"; - hash = "sha256-nbulCccWnugVodwm6C7Xlf9D/0cpKEBL3tmnH3S15WY="; + rev = "28f46593ef5e03ba7525bdf6075be0c56c6ceb55"; + hash = "sha256-eRGq2bjr6kqFoT1s4P1MIA7nIEvRTYw4OFIJbS/JD60="; }; meta.homepage = "https://github.com/disrupted/blink-cmp-conventional-commits/"; meta.hydraPlatforms = [ ]; @@ -1896,12 +1909,12 @@ final: prev: { bluloco-nvim = buildVimPlugin { pname = "bluloco.nvim"; - version = "1.4.0-unstable-2026-04-04"; + version = "1.4.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "uloco"; repo = "bluloco.nvim"; - rev = "f1a6cb87e55cd377002f1648163f434fd9837ef5"; - hash = "sha256-5atqaCBSn/pTjoCoi10L9MgpgozMqXb0qU3BME9UPpc="; + rev = "4daabf6a9e6b9ecdcb19e7c78e888be0bacd866c"; + hash = "sha256-qmVneHlI7XKTyXrSJu+lWaX6YmGQero7nTKrWR/i99c="; }; meta.homepage = "https://github.com/uloco/bluloco.nvim/"; meta.hydraPlatforms = [ ]; @@ -3584,12 +3597,12 @@ final: prev: { conform-nvim = buildVimPlugin { pname = "conform.nvim"; - version = "9.1.0-unstable-2026-03-10"; + version = "9.1.0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "stevearc"; repo = "conform.nvim"; - rev = "086a40dc7ed8242c03be9f47fbcee68699cc2395"; - hash = "sha256-aJIUkAcFdaOWBQ3HNLLvhqALzch0BqPUZPtb2cmIeCE="; + rev = "dca1a190aa85f9065979ef35802fb77131911106"; + hash = "sha256-pV7Yr2LSBDqKGeYoS4CWHGUSs8Yx4wsVXCXySt9yz0M="; fetchSubmodules = true; }; meta.homepage = "https://github.com/stevearc/conform.nvim/"; @@ -4861,12 +4874,12 @@ final: prev: { dracula-vim = buildVimPlugin { pname = "dracula-vim"; - version = "2.0.0-unstable-2026-04-13"; + version = "2.0.0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "dracula"; repo = "vim"; - rev = "07b144414730cc4cf4405ab840bf46c5fa12704b"; - hash = "sha256-RWavKi3KvQI7N+qNks3EVUSmwCY73QvGNTpZElCxdkE="; + rev = "e7b91facff94bdf3a248df9b683119b84672256a"; + hash = "sha256-OkLtrd6Cq7ZwF5r5/SBc9Uyp26q/gIgHLrVKLxboLCA="; }; meta.homepage = "https://github.com/dracula/vim/"; meta.hydraPlatforms = [ ]; @@ -4926,12 +4939,12 @@ final: prev: { easy-dotnet-nvim = buildVimPlugin { pname = "easy-dotnet.nvim"; - version = "0-unstable-2026-04-18"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "GustavEikaas"; repo = "easy-dotnet.nvim"; - rev = "06cc3c7ffd02ef6c62dffea46d4f6e53f1962ef2"; - hash = "sha256-+f1RvmFUWPpvw6EqOKmS0NBCwRgMX3mzPdF/DFUnEWM="; + rev = "1e6b569af3818a1665f14115aea7b0a920b179f6"; + hash = "sha256-EkJoifIH8PtiXUSFpWQtQgP6a1LuWLbvwHBYH/80Qik="; }; meta.homepage = "https://github.com/GustavEikaas/easy-dotnet.nvim/"; meta.hydraPlatforms = [ ]; @@ -5395,12 +5408,12 @@ final: prev: { firenvim = buildVimPlugin { pname = "firenvim"; - version = "0.2.16-unstable-2026-04-16"; + version = "0.2.16-unstable-2026-04-23"; src = fetchFromGitHub { owner = "glacambre"; repo = "firenvim"; - rev = "b68449b92dfea73a54e4c8f2307fc244a3a574bd"; - hash = "sha256-XjpCYydSFSTw0sDwVHS7paDejaP2JafOWrupuurfFgE="; + rev = "69d3411d08d35bb9b3e84b9deaff4b9b078a30e3"; + hash = "sha256-j1M41XD8gLMqXJK5Pk+yu6IbsUnRagyzlKM9nQ1ozp0="; }; meta.homepage = "https://github.com/glacambre/firenvim/"; meta.hydraPlatforms = [ ]; @@ -6371,12 +6384,12 @@ final: prev: { gruvbox-material-nvim = buildVimPlugin { pname = "gruvbox-material.nvim"; - version = "1.8.1"; + version = "1.8.2"; src = fetchFromGitHub { owner = "f4z3r"; repo = "gruvbox-material.nvim"; - tag = "v1.8.1"; - hash = "sha256-nNBV66GHG3Km92aWhFeo3HgjWQNdMQpIl4Kq08rEmPs="; + tag = "v1.8.2"; + hash = "sha256-MTOAc4Z8wvAGz99dJy5181R/Uf7G/qToyPFYNDJHjB0="; }; meta.homepage = "https://github.com/f4z3r/gruvbox-material.nvim/"; meta.hydraPlatforms = [ ]; @@ -6566,12 +6579,12 @@ final: prev: { haskell-snippets-nvim = buildVimPlugin { pname = "haskell-snippets.nvim"; - version = "1.5.0-unstable-2026-04-13"; + version = "1.5.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "mrcjkb"; repo = "haskell-snippets.nvim"; - rev = "7a29db90a8803d937f2122efbff696d0f290b379"; - hash = "sha256-OR7Fibl05kk6/2LsAoxya00TW0scgh3Uc4eSw5TaH58="; + rev = "11868addce601fdeed56097d48ff42abeec3dfe8"; + hash = "sha256-Y4ZNYNb7shMQ8lTAx2/8De9KgbYq8Pf+6yQhHX6a4Ck="; }; meta.homepage = "https://github.com/mrcjkb/haskell-snippets.nvim/"; meta.hydraPlatforms = [ ]; @@ -7464,12 +7477,12 @@ final: prev: { kanagawa-nvim = buildVimPlugin { pname = "kanagawa.nvim"; - version = "0-unstable-2025-10-15"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "rebelot"; repo = "kanagawa.nvim"; - rev = "aef7f5cec0a40dbe7f3304214850c472e2264b10"; - hash = "sha256-nHcQWTX4x4ala6+fvh4EWRVcZMNk5jZiZAwWhw03ExE="; + rev = "8ad3b4cdcc804b332c32db8f9743667e1bb82b99"; + hash = "sha256-vAq9ZiG3s4x/xFSKt9/o40pptj2y7S8DQqs1dJEdhVU="; }; meta.homepage = "https://github.com/rebelot/kanagawa.nvim/"; meta.hydraPlatforms = [ ]; @@ -7777,12 +7790,12 @@ final: prev: { lean-nvim = buildVimPlugin { pname = "lean.nvim"; - version = "2025.10.1-unstable-2026-04-19"; + version = "2026.4.1"; src = fetchFromGitHub { owner = "Julian"; repo = "lean.nvim"; - rev = "1be79c2c60c24bc5e4ac31d4c25bbae533a8bc8f"; - hash = "sha256-UwVXVulNayx9vJijgFQullXM9JUjUCXtNd7EKp1P9u4="; + tag = "v2026.4.1"; + hash = "sha256-AYClc7+z+0h5QfVGPGr7ZrzPuaD+IAMtHT/3ZnbSVLE="; }; meta.homepage = "https://github.com/Julian/lean.nvim/"; meta.hydraPlatforms = [ ]; @@ -7816,11 +7829,11 @@ final: prev: { leap-nvim = buildVimPlugin { pname = "leap.nvim"; - version = "0-unstable-2026-03-31"; + version = "0-unstable-2026-04-20"; src = fetchgit { url = "https://codeberg.org/andyg/leap.nvim/"; - rev = "b960d5038c5c505c52e56a54490f9bbb1f0e6ef6"; - hash = "sha256-3xL4cwZdrRX0pCu/oqk0hz8zOeg/VRwn5cB9I9cG4DI="; + rev = "ce3cf75200ae148d75563088f435389f9e4100fd"; + hash = "sha256-f3LwrPetVujz/ji1kWwOGuYjNiii/+E68I6RPnzXAIY="; }; meta.homepage = "https://codeberg.org/andyg/leap.nvim/"; meta.hydraPlatforms = [ ]; @@ -8062,12 +8075,12 @@ final: prev: { linediff-vim = buildVimPlugin { pname = "linediff.vim"; - version = "0.3.0-unstable-2025-11-28"; + version = "0.3.0-unstable-2026-04-17"; src = fetchFromGitHub { owner = "AndrewRadev"; repo = "linediff.vim"; - rev = "29fa617fc10307a1e0ae82a8761114e465d17b06"; - hash = "sha256-53WWr63+89BYsE8Tyj216msCCRiitcnp7aYH+hUvQyI="; + rev = "c3780609769a93f4f59421b6324355f37e0ee6c5"; + hash = "sha256-27Lu2U+/XELoT7yV4r0wqsFW/w8Z1BA4UDQslq1dOg4="; }; meta.homepage = "https://github.com/AndrewRadev/linediff.vim/"; meta.hydraPlatforms = [ ]; @@ -8205,12 +8218,12 @@ final: prev: { live-share-nvim = buildVimPlugin { pname = "live-share.nvim"; - version = "2.1.0"; + version = "2.1.3"; src = fetchFromGitHub { owner = "azratul"; repo = "live-share.nvim"; - tag = "v2.1.0"; - hash = "sha256-TxjS68iaat+zgpF4L7Wp7y7PgW4mrc6MrvxxQBK3zsk="; + tag = "v2.1.3"; + hash = "sha256-EXVnUcutSz3xfjTHjYr45nBWm6JP68PoGE07ooYsywA="; }; meta.homepage = "https://github.com/azratul/live-share.nvim/"; meta.hydraPlatforms = [ ]; @@ -8425,12 +8438,12 @@ final: prev: { lspsaga-nvim = buildVimPlugin { pname = "lspsaga.nvim"; - version = "0-unstable-2026-03-03"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "nvimdev"; repo = "lspsaga.nvim"; - rev = "562d9724e3869ffd1801c572dd149cc9f8d0cc36"; - hash = "sha256-5jqMObzXwveN4+p4qf/kZJcUlM964rtS3yX8nndMQzk="; + rev = "c532fb86c3d211c5829ad58d2a0783012739bb65"; + hash = "sha256-oFzbEkY/WKT7jbwGxeKnbQXgnY8kSmH/UsjljXozBWU="; }; meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/"; meta.hydraPlatforms = [ ]; @@ -8686,12 +8699,12 @@ final: prev: { mason-nvim = buildVimPlugin { pname = "mason.nvim"; - version = "2.2.1-unstable-2026-04-06"; + version = "2.2.1-unstable-2026-04-21"; src = fetchFromGitHub { owner = "mason-org"; repo = "mason.nvim"; - rev = "b03fb0f20bc1d43daf558cda981a2be22e73ac42"; - hash = "sha256-2R31RsqYChWW8nyu0ovryFd8sO9iWeqBnydL6NhRpQ0="; + rev = "12ddd182d9efbdc848b540f16484a583d52da0fb"; + hash = "sha256-Oq93aLhK/fowReSAeg9nnXnLrpTpBek0j5uNX1FW1Vs="; }; meta.homepage = "https://github.com/mason-org/mason.nvim/"; meta.hydraPlatforms = [ ]; @@ -9037,12 +9050,12 @@ final: prev: { mini-completion = buildVimPlugin { pname = "mini.completion"; - version = "0.17.0-unstable-2026-04-17"; + version = "0.17.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "nvim-mini"; repo = "mini.completion"; - rev = "e934b46f6471a3bd0cd37fc06d0df198b9711882"; - hash = "sha256-h7IUnYdqjVHldagQXCmC7UI8oO4+2fmtFfdCln1pa6A="; + rev = "667d94669be66043123cac44e7c5d65a31657732"; + hash = "sha256-Y2cYv06QUvKWRoF/05+ajJ41z/4D6QZAuxjNCFAtu5E="; }; meta.homepage = "https://github.com/nvim-mini/mini.completion/"; meta.hydraPlatforms = [ ]; @@ -9297,12 +9310,12 @@ final: prev: { mini-nvim = buildVimPlugin { pname = "mini.nvim"; - version = "0.17.0-unstable-2026-04-17"; + version = "0.17.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "nvim-mini"; repo = "mini.nvim"; - rev = "418ef4930ddabe80f449c6f1323f8b6abb172d1c"; - hash = "sha256-bHEFu4XZI9QHP41h11sSNgRG43PDSkdgTyzmJt64gLk="; + rev = "5849ef04c32a6a8e55957b946c0a275801d87530"; + hash = "sha256-itvNBJwakDOeIUaEZS5qSeI3L//kve3ub7r16EUvgi0="; }; meta.homepage = "https://github.com/nvim-mini/mini.nvim/"; meta.hydraPlatforms = [ ]; @@ -9479,12 +9492,12 @@ final: prev: { minuet-ai-nvim = buildVimPlugin { pname = "minuet-ai.nvim"; - version = "0.8.0-unstable-2026-04-18"; + version = "0.8.0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "milanglacier"; repo = "minuet-ai.nvim"; - rev = "ee03326381c93f6417fa66aeb2ca85a26c0706e7"; - hash = "sha256-41vUpNnyKdc4MvOyFVSAgR1/EEjHgKNixAWXaLdMbsQ="; + rev = "173d8c9451504cdf93ce172f710487d3c6191ce8"; + hash = "sha256-4tBdnziMUCL8Cgq5LFO5LSbWB8Kk5Brq9vKRgq38jOw="; }; meta.homepage = "https://github.com/milanglacier/minuet-ai.nvim/"; meta.hydraPlatforms = [ ]; @@ -9973,12 +9986,12 @@ final: prev: { neo-tree-nvim = buildVimPlugin { pname = "neo-tree.nvim"; - version = "2.71"; + version = "3.40.0"; src = fetchFromGitHub { owner = "nvim-neo-tree"; repo = "neo-tree.nvim"; - tag = "v2.71"; - hash = "sha256-w4D+iq1/su5LtCsknvGB6wDlohx2WVm0iRvKagL4H5E="; + tag = "3.40.0"; + hash = "sha256-/TNl/IX81qr7Mcoy0dhF3bcsewXEnPSy2n+dm31eyyw="; }; meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/"; meta.hydraPlatforms = [ ]; @@ -9999,12 +10012,12 @@ final: prev: { neoconf-nvim = buildVimPlugin { pname = "neoconf.nvim"; - version = "1.4.0-unstable-2026-04-15"; + version = "1.4.0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "folke"; repo = "neoconf.nvim"; - rev = "ecdb0c9bc3f3373e11be4c97e461d16b52d532d0"; - hash = "sha256-F3ui8hSN/UPt4UjDUziXyVYUEtFVaTVETjOn/xRm7nU="; + rev = "751c246c6c1780b94b063918759f352480e3db21"; + hash = "sha256-XuWMVLu1FFmcGnmDuomKYSSBD/yOUa6Za5UE7O52y2w="; }; meta.homepage = "https://github.com/folke/neoconf.nvim/"; meta.hydraPlatforms = [ ]; @@ -10077,12 +10090,12 @@ final: prev: { neogit = buildVimPlugin { pname = "neogit"; - version = "3.0.0-unstable-2026-04-17"; + version = "3.0.0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "NeogitOrg"; repo = "neogit"; - rev = "e906fce7e44ae562f06345be99a7db02f8315236"; - hash = "sha256-/uIp7X8drHFQT8DNuiSxFGga71HUY59PCSTguyJvaeo="; + rev = "2d94da0032e201865a5b65a6bc008dd6fce8f52e"; + hash = "sha256-dCndB3pvCU7D80aU/5nOloxH2lYgGdC0Qtei8cRf7RU="; }; meta.homepage = "https://github.com/NeogitOrg/neogit/"; meta.hydraPlatforms = [ ]; @@ -10392,12 +10405,12 @@ final: prev: { neotest-haskell = buildVimPlugin { pname = "neotest-haskell"; - version = "3.0.1-unstable-2026-04-13"; + version = "3.0.1-unstable-2026-04-21"; src = fetchFromGitHub { owner = "MrcJkb"; repo = "neotest-haskell"; - rev = "84650446b9207ef5e19d2ade50fcda278bdfbae7"; - hash = "sha256-/GDhQhMCOUq0um9BPdDIfxIXUonV5DdyMKCn+JpaAAc="; + rev = "cf7816eb183c8333b58abb63fd4cc156401d9d31"; + hash = "sha256-/rqau8v3CWaPjCMQjWB4bWCeqOaBHdAn05Nlw3w1WSc="; }; meta.homepage = "https://github.com/MrcJkb/neotest-haskell/"; meta.hydraPlatforms = [ ]; @@ -10405,12 +10418,12 @@ final: prev: { neotest-java = buildVimPlugin { pname = "neotest-java"; - version = "0.37.0"; + version = "0.37.1"; src = fetchFromGitHub { owner = "rcasia"; repo = "neotest-java"; - tag = "v0.37.0"; - hash = "sha256-PuXYAKkg+KM9dkSk/br7GDjXzmgqhteJepjbt9ZJGO8="; + tag = "v0.37.1"; + hash = "sha256-t+nqylLLHITU8li1cOl97jFKkZRmvmDbSAwvmv1yk+M="; }; meta.homepage = "https://github.com/rcasia/neotest-java/"; meta.hydraPlatforms = [ ]; @@ -10833,12 +10846,12 @@ final: prev: { nightfly = buildVimPlugin { pname = "nightfly"; - version = "0-unstable-2026-04-02"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "bluz71"; repo = "vim-nightfly-colors"; - rev = "250ee0eb4975e59a277f50cc03c980eef27fb483"; - hash = "sha256-FkyUVuOydxBWRqBUb2JZrHmFL5epDG2U3BSqd865wcE="; + rev = "caaba387a4a50cf08791395acc4a5b7363367cff"; + hash = "sha256-zHT0Py7dePXfZ8duOfLxh/3K0ZaCrrB60uJ+asC/rII="; }; meta.homepage = "https://github.com/bluz71/vim-nightfly-colors/"; meta.hydraPlatforms = [ ]; @@ -11972,12 +11985,12 @@ final: prev: { nvim-metals = buildVimPlugin { pname = "nvim-metals"; - version = "0.10.x-unstable-2026-04-10"; + version = "0.10.x-unstable-2026-04-22"; src = fetchFromGitHub { owner = "scalameta"; repo = "nvim-metals"; - rev = "6970d6036218db6545f3c295d0106cc8de6d7161"; - hash = "sha256-RY+UhnwIjWuMU9WOG4a1JvBiJ9RWZ2fUxFDnuzDR+jw="; + rev = "3c6ef5114fd46127c517e58d7e8e4dfc1f78dac3"; + hash = "sha256-9ZernsWN0j185b2KeMvV+CAaN4+NgUfocUG8Ot1fo/4="; }; meta.homepage = "https://github.com/scalameta/nvim-metals/"; meta.hydraPlatforms = [ ]; @@ -12414,12 +12427,12 @@ final: prev: { nvim-tinygit = buildVimPlugin { pname = "nvim-tinygit"; - version = "1.0-unstable-2026-04-13"; + version = "1.0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "chrisgrieser"; repo = "nvim-tinygit"; - rev = "59b9a750a7a0710552829d2a1dfcaa5304433359"; - hash = "sha256-/1NCsig8s554HtcSAdsfmPj+KkNNnIVNu7iBN8Vm04Q="; + rev = "f12990601dfa63c623049b470dc306ca905064c8"; + hash = "sha256-NNdwBJjVlCwR3VzN7JRMhRRNHENRO9SXNnUUr4zZ8Eg="; }; meta.homepage = "https://github.com/chrisgrieser/nvim-tinygit/"; meta.hydraPlatforms = [ ]; @@ -12817,12 +12830,12 @@ final: prev: { obsidian-nvim = buildVimPlugin { pname = "obsidian.nvim"; - version = "3.16.2-unstable-2026-04-18"; + version = "3.16.2-unstable-2026-04-22"; src = fetchFromGitHub { owner = "obsidian-nvim"; repo = "obsidian.nvim"; - rev = "d6c0e5bc30937df0657c9953d135d0ebb3af7e00"; - hash = "sha256-ZFFtVH/NswfManJ+o5x3oLhy/foQzmVj29O7UEBVkMs="; + rev = "af9857e4993e0adddb897f09c2805b44a0d913ea"; + hash = "sha256-zajt8vt/bLMCqgSgjMj/MiUFTU3TNAnr25YM+J+qg2M="; }; meta.homepage = "https://github.com/obsidian-nvim/obsidian.nvim/"; meta.hydraPlatforms = [ ]; @@ -12869,12 +12882,12 @@ final: prev: { octo-nvim = buildVimPlugin { pname = "octo.nvim"; - version = "0-unstable-2026-04-16"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "pwntester"; repo = "octo.nvim"; - rev = "65550fa020775fb18e6eacab86b80145560bfd9c"; - hash = "sha256-VUm7BQ5g4VyKWAZTOhxt19JAea+DLrMltt01jbO6LUg="; + rev = "a8ad0646e6f9d01ad0a6fbd3ddca0fd715067d34"; + hash = "sha256-oEiQyABAJhF6vgOU2PPPILqioaVF95gMJaQlxCtYEXM="; }; meta.homepage = "https://github.com/pwntester/octo.nvim/"; meta.hydraPlatforms = [ ]; @@ -13507,12 +13520,12 @@ final: prev: { pi-nvim = buildVimPlugin { pname = "pi.nvim"; - version = "0-unstable-2026-03-26"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "pablopunk"; repo = "pi.nvim"; - rev = "cc2377f88c99871bc44b45490ef9d91a5d1c31e1"; - hash = "sha256-xguHPNrQ16ddWbnxR38Zm6gtDP63b93pxR4bsbN9YZE="; + rev = "9a4425e3e601e7387b32065d78b812bc7d5603ad"; + hash = "sha256-e5LLscgEBuZHIfi+clojp9vfiofvXdU5C7BuhQB7vfw="; }; meta.homepage = "https://github.com/pablopunk/pi.nvim/"; meta.hydraPlatforms = [ ]; @@ -13716,12 +13729,12 @@ final: prev: { project-nvim = buildVimPlugin { pname = "project.nvim"; - version = "3.1.0-1"; + version = "3.2.1-1"; src = fetchFromGitHub { owner = "DrKJeff16"; repo = "project.nvim"; - tag = "v3.1.0-1"; - hash = "sha256-i3nGUb/tULq28MmiYk3C4P+FoVFSZaaO5XWx4kuTa0I="; + tag = "v3.2.1-1"; + hash = "sha256-vZWOH2fFmwdlU/rdnLWywx+XsuuH+X5x0DN8OHjZd6c="; }; meta.homepage = "https://github.com/DrKJeff16/project.nvim/"; meta.hydraPlatforms = [ ]; @@ -13860,12 +13873,12 @@ final: prev: { quarto-nvim = buildVimPlugin { pname = "quarto-nvim"; - version = "2.0.1-unstable-2026-01-29"; + version = "2.1.0"; src = fetchFromGitHub { owner = "quarto-dev"; repo = "quarto-nvim"; - rev = "d923bb7cfc2bde41143e1c531c28190f0fade3a2"; - hash = "sha256-UGrbQtmJIQsOb37/IcrFxGnAfIiCHGsmMFFSkitNK9o="; + tag = "v2.1.0"; + hash = "sha256-YgRiUnZ1MH5uuwNC3V9ZntphuKH3rIOlcdp+5C4zonk="; }; meta.homepage = "https://github.com/quarto-dev/quarto-nvim/"; meta.hydraPlatforms = [ ]; @@ -14067,12 +14080,12 @@ final: prev: { refactoring-nvim = buildVimPlugin { pname = "refactoring.nvim"; - version = "0-unstable-2025-10-21"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "theprimeagen"; repo = "refactoring.nvim"; - rev = "6784b54587e6d8a6b9ea199318512170ffb9e418"; - hash = "sha256-KFn1f0Va6eFbeOYxc40lN1iWL8WAwnm/H5l46o4JgvI="; + rev = "f06ac3d457128f9d512103399b367c4be49a2421"; + hash = "sha256-mZC2N8Udvep75/FeSRn2ZmEmE2/SNxFHw+W5QJHduLw="; }; meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/"; meta.hydraPlatforms = [ ]; @@ -14158,12 +14171,12 @@ final: prev: { render-markdown-nvim = buildVimPlugin { pname = "render-markdown.nvim"; - version = "8.12.0-unstable-2026-04-12"; + version = "8.12.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "MeanderingProgrammer"; repo = "render-markdown.nvim"; - rev = "0fd43fb4b1f073931c4b481f5f3b7cea3749e190"; - hash = "sha256-wCzOiTKJ8F2Fj82LYRSoG1Ix0KDBSdQokzNGVmbu2oo="; + rev = "d67113f11384c0dad96fced2f7b91f1fc811e97f"; + hash = "sha256-c+2KzCACUnb/RkkLsI9uxvJNLP0PDgmuPSUlO/XgGBw="; }; meta.homepage = "https://github.com/MeanderingProgrammer/render-markdown.nvim/"; meta.hydraPlatforms = [ ]; @@ -14289,12 +14302,12 @@ final: prev: { roslyn-nvim = buildVimPlugin { pname = "roslyn.nvim"; - version = "0-unstable-2026-04-16"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "seblyng"; repo = "roslyn.nvim"; - rev = "6a5e60a7c25d9ce0835aa9c69379f1c92e0a9d56"; - hash = "sha256-Zoi5RxWJY96C4D3k9iwU2XJb8LKUFCdq5SDHWrfa5vw="; + rev = "b62d1a588765f0aa1b46ed260252c9e456408835"; + hash = "sha256-j5+Kg4B1flk4TwkZKRDW7tHbaoUyE5dKGypXsd9+qSw="; }; meta.homepage = "https://github.com/seblyng/roslyn.nvim/"; meta.hydraPlatforms = [ ]; @@ -14445,12 +14458,12 @@ final: prev: { scnvim = buildVimPlugin { pname = "scnvim"; - version = "0-unstable-2026-04-13"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "davidgranstrom"; repo = "scnvim"; - rev = "7e0ff9ed57c58dfde0341d1e695fe54a0904e2d8"; - hash = "sha256-PaIYXaPtwen/SWdLADsJDx7NI/OoTAjUa24AZYJyNBA="; + rev = "ec347b24168ac922de4dcddc181efd2fcdcfa0d0"; + hash = "sha256-cqZF3b+DkOQUOSU502vGQx8RNzH4b97B9zqHO9v8IBI="; }; meta.homepage = "https://github.com/davidgranstrom/scnvim/"; meta.hydraPlatforms = [ ]; @@ -14640,12 +14653,12 @@ final: prev: { sidekick-nvim = buildVimPlugin { pname = "sidekick.nvim"; - version = "2.3.0-unstable-2026-03-24"; + version = "2.3.0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "folke"; repo = "sidekick.nvim"; - rev = "17447a05f9385e5f8372b61530f6f9329cb82421"; - hash = "sha256-scCYymquGaT9/e7nU2kuyiwFutKfAq8pGQQsOWK+7rM="; + rev = "208e1c5b8170c01fd1d07df0139322a76479b235"; + hash = "sha256-I1YuIXJHP7JfETwOer6B7QDLMZGG/X59zXopb4nPel4="; }; meta.homepage = "https://github.com/folke/sidekick.nvim/"; meta.hydraPlatforms = [ ]; @@ -14849,12 +14862,12 @@ final: prev: { solarized-osaka-nvim = buildVimPlugin { pname = "solarized-osaka.nvim"; - version = "0-unstable-2026-02-04"; + version = "0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "craftzdog"; repo = "solarized-osaka.nvim"; - rev = "f0c2f0ba0bd56108d53c9bfae4bb28ff6c67bbdb"; - hash = "sha256-0AB2+ZuhlpuBFF5xmYXr1sIOIctY4b8jgcghqXZSc70="; + rev = "a261ee90fb3e5e82660567e4874d384e996afa4f"; + hash = "sha256-b8gZM9/HFi4q+mWpEijO8fCBuu1eslGSNPgZOyjXMmc="; }; meta.homepage = "https://github.com/craftzdog/solarized-osaka.nvim/"; meta.hydraPlatforms = [ ]; @@ -16362,12 +16375,12 @@ final: prev: { tiny-inline-diagnostic-nvim = buildVimPlugin { pname = "tiny-inline-diagnostic.nvim"; - version = "0-unstable-2026-04-17"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "rachartier"; repo = "tiny-inline-diagnostic.nvim"; - rev = "b3b91e086795c036ecfe70429b72b26bcb302c91"; - hash = "sha256-yYxwyXuOIb+Ac5f8OonwsJny00bqfL7cWDtcjsVtP5o="; + rev = "147af4e49f51dd48f41972de26552872b8ba7b25"; + hash = "sha256-LpZuRNGSK8AHLTIPIWoQlGot89qubFRL/RZ+EMs4bnQ="; }; meta.homepage = "https://github.com/rachartier/tiny-inline-diagnostic.nvim/"; meta.hydraPlatforms = [ ]; @@ -16899,12 +16912,12 @@ final: prev: { ultisnips = buildVimPlugin { pname = "ultisnips"; - version = "3.2-unstable-2026-04-18"; + version = "3.2-unstable-2026-04-19"; src = fetchFromGitHub { owner = "SirVer"; repo = "ultisnips"; - rev = "724e506c6c852ea9bd60720d878a09a55eb3eb74"; - hash = "sha256-HhTFCWpE5ljk2M4z9/XHBobLMIW6DO9mpVF5BEfY624="; + rev = "10fc6cb2a48aa24d72894f71fceaa43a0432f287"; + hash = "sha256-mSifyCvjefyl0snph+NAdI8alU2MeB5BozWHvmgpqVo="; }; meta.homepage = "https://github.com/SirVer/ultisnips/"; meta.hydraPlatforms = [ ]; @@ -17094,12 +17107,12 @@ final: prev: { vague-nvim = buildVimPlugin { pname = "vague.nvim"; - version = "2.0.0-unstable-2026-04-09"; + version = "2.0.0-unstable-2026-04-21"; src = fetchFromGitHub { owner = "vague-theme"; repo = "vague.nvim"; - rev = "8751181a1aa431b4e8983b0a183afef5cbc08381"; - hash = "sha256-89Z6MzAFcZeUhMfU1amR4sxakcpsxlJxT3s6XateaBo="; + rev = "fd58046b9d64259d9785e4aeb6d6f494c6943cad"; + hash = "sha256-wAjzCkTMoxEP6Xc38I5lY3tSwEgU67w/bYPYxmaGaZA="; }; meta.homepage = "https://github.com/vague-theme/vague.nvim/"; meta.hydraPlatforms = [ ]; @@ -17549,12 +17562,12 @@ final: prev: { vim-airline = buildVimPlugin { pname = "vim-airline"; - version = "0.11-unstable-2026-04-13"; + version = "0.11-unstable-2026-04-22"; src = fetchFromGitHub { owner = "vim-airline"; repo = "vim-airline"; - rev = "609e5c0ee171c370ad727b0b833e66fd34772aeb"; - hash = "sha256-PgS2m3vqncalNNSeXpYb0x2MfEdM7eUh6uGWyM6yHsA="; + rev = "f6d9cc6b4a1f0a4f7a1c33bc7997cf446b6d77ba"; + hash = "sha256-gHdp2+Vd0AITx/0LSrwPRM6zOhhCyl0uMe8hS2IHnRc="; }; meta.homepage = "https://github.com/vim-airline/vim-airline/"; meta.hydraPlatforms = [ ]; @@ -20372,11 +20385,11 @@ final: prev: { vim-markbar = buildVimPlugin { pname = "vim-markbar"; - version = "0-unstable-2024-05-10"; + version = "0-unstable-2026-04-22"; src = fetchFromGitHub { owner = "Yilin-Yang"; repo = "vim-markbar"; - rev = "9f5a948d44652074bf2b90d3da6a400d8a369ba5"; + rev = "54cd772352b4da4506ce23e971f46f78446f0b6c"; hash = "sha256-dGMO0vbi4LMQeMvA/NI98S/CsDT7LKDPrLP9NFkMZOQ="; }; meta.homepage = "https://github.com/Yilin-Yang/vim-markbar/"; @@ -20554,12 +20567,12 @@ final: prev: { vim-moonfly-colors = buildVimPlugin { pname = "vim-moonfly-colors"; - version = "0-unstable-2026-04-02"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "bluz71"; repo = "vim-moonfly-colors"; - rev = "43d8eb9dd2a1154dd8259ee3ce37cbbdb28c405c"; - hash = "sha256-jyZKY2N0ix53x5xhYo+B31G02fKcxhYkSGlJ3VFA2Ng="; + rev = "ed33cb0e0edfced6e86e782d51f23e67232ad4a9"; + hash = "sha256-xFEI7cn5X3E90X3Z7njTg5/nFXXECJxPYmitfr+29VA="; }; meta.homepage = "https://github.com/bluz71/vim-moonfly-colors/"; meta.hydraPlatforms = [ ]; @@ -23727,12 +23740,12 @@ final: prev: { yazi-nvim = buildVimPlugin { pname = "yazi.nvim"; - version = "13.1.5-unstable-2026-04-19"; + version = "13.1.5-unstable-2026-04-22"; src = fetchFromGitHub { owner = "mikavilpas"; repo = "yazi.nvim"; - rev = "bb69f7fc634a9566edba5fc0da3a2025d7ffbae0"; - hash = "sha256-WHp/HM4AN2kZiPs7sOIAlBWM1H7KUgFGPEEioWlxFQE="; + rev = "d34b366517a21fb2366e8ac393fc903008345173"; + hash = "sha256-SjWgNlb8raCDQ7E3lgHnTwl0wFTibxxKV4YcCeX0qPE="; }; meta.homepage = "https://github.com/mikavilpas/yazi.nvim/"; meta.hydraPlatforms = [ ]; diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index b50e26315a48..cd0e77e2e95c 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -227,6 +227,12 @@ assertNoAdditions { checkInputs = [ self.astrocore ]; }; + async-nvim = super.async-nvim.overrideAttrs { + nvimSkipModules = [ + "docgen" + ]; + }; + asyncrun-vim = super.asyncrun-vim.overrideAttrs { # Optional toggleterm integration checkInputs = [ self.toggleterm-nvim ]; @@ -3228,7 +3234,7 @@ assertNoAdditions { refactoring-nvim = super.refactoring-nvim.overrideAttrs { dependencies = with self; [ - plenary-nvim + async-nvim ]; }; diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index 92a88315a710..c3843fe549fb 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -78,6 +78,7 @@ https://github.com/AstroNvim/astrocore/,, https://github.com/AstroNvim/astrolsp/,, https://github.com/AstroNvim/astrotheme/,, https://github.com/AstroNvim/astroui/,, +https://github.com/lewis6991/async.nvim/,, https://github.com/prabirshrestha/async.vim/,, https://github.com/prabirshrestha/asyncomplete-buffer.vim/,, https://github.com/prabirshrestha/asyncomplete-file.vim/,, diff --git a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix index 4d2438e9d58a..b2a096fc5c34 100644 --- a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix +++ b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix @@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "claude-code"; publisher = "anthropic"; - version = "2.1.114"; - hash = "sha256-rcEbeYsyhbhh5wj6Mo3kz2+K3uZe5XMBKpwmSaB9Pgc="; + version = "2.1.118"; + hash = "sha256-ic7GcsVcmy1pbiqn5mzdoak9sUqHTCotjOjw7NVfsjQ="; }; postInstall = '' diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 1f9433c8a46f..440021fdaebf 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -1933,8 +1933,8 @@ let mktplcRef = { publisher = "github"; name = "codespaces"; - version = "1.18.12"; - hash = "sha256-A/ORfMybSCm90SFg8hRx/N0Vq9XMtTjMPVzCIoG938g="; + version = "1.18.13"; + hash = "sha256-tvs35GA3bZ4jExiAe0NeHx/vQV/+2zio2Q0813/MAMU="; }; meta = { @@ -2324,8 +2324,8 @@ let mktplcRef = { name = "vscode-vibrancy-continued"; publisher = "illixion"; - version = "1.1.75"; - hash = "sha256-49svwafMoAErwX3K/37IJ8fKx+9FgSpOqj6QPc7jpKs="; + version = "1.1.76"; + hash = "sha256-QMKEFoqOzlSduwjefou1ozt3WbSbeXfxEGj6KMqR3eY="; }; meta = { downloadPage = "https://marketplace.visualstudio.com/items?itemName=illixion.vscode-vibrancy-continued"; diff --git a/pkgs/applications/emulators/libretro/cores/atari800.nix b/pkgs/applications/emulators/libretro/cores/atari800.nix index 0c25ee669c5d..f70bf7cc8411 100644 --- a/pkgs/applications/emulators/libretro/cores/atari800.nix +++ b/pkgs/applications/emulators/libretro/cores/atari800.nix @@ -5,13 +5,13 @@ }: mkLibretroCore rec { core = "atari800"; - version = "0-unstable-2026-03-31"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "libretro"; repo = "libretro-atari800"; - rev = "a9b9c433d8cb6c8e8eb08d14d3e95b430549723a"; - hash = "sha256-vPv6D+y+n9gMgC78cLBVeNLg3nGEAsTeBGFv+SWgH0A="; + rev = "7f3456f16109c34915d0bad7393b6c4df66c3850"; + hash = "sha256-7C/0i7LUGHY8bz5wp9ut+5EtvLrAUasn0xQzslQQ1fM="; }; makefile = "Makefile"; diff --git a/pkgs/applications/emulators/libretro/cores/fuse.nix b/pkgs/applications/emulators/libretro/cores/fuse.nix index e98166a4d03e..08302882813c 100644 --- a/pkgs/applications/emulators/libretro/cores/fuse.nix +++ b/pkgs/applications/emulators/libretro/cores/fuse.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "fuse"; - version = "0-unstable-2026-03-31"; + version = "0-unstable-2026-04-20"; src = fetchFromGitHub { owner = "libretro"; repo = "fuse-libretro"; - rev = "b5f44e3a20a0f189e8fb999cd5cde223a0f588a6"; - hash = "sha256-ZYk9qe+9yJmi+zsKT3IDvyiPCxivwghT68ku6WfaVa8="; + rev = "bce196fb774835fe65b3e5b821887a4ccf657167"; + hash = "sha256-N66LaveZ4P66LRYpP1KwkLKT1dvG/s7JPfDyRraVkc8="; }; meta = { diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 19565598aa5b..7ed19826dd1f 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -571,13 +571,13 @@ "vendorHash": "sha256-xIagZvWtlNpz5SQfxbA7r9ojAeS3CW2pwV337ObKOwU=" }, "hashicorp_google": { - "hash": "sha256-NEPyqlxtpxfpMCygkcN9d/vo/4rwKLJ7qx4WAxgdVPA=", + "hash": "sha256-cgIFxWNm42hKPt9J7qzkcIou736dbLX/adX+R4Y5vIY=", "homepage": "https://registry.terraform.io/providers/hashicorp/google", "owner": "hashicorp", "repo": "terraform-provider-google", - "rev": "v7.28.0", + "rev": "v7.29.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-39r9+dFJYJrzL0EOK3vXLcftOSqyw/pR5q+zm2lipYY=" + "vendorHash": "sha256-mk+fmLdbDBAqwLjQd4xZNW+DK6EDwJYnAMVSSTs2jQM=" }, "hashicorp_google-beta": { "hash": "sha256-iEAe+eRMRSnsxS8CtmF/vr1PwGcMvhnba/eedx+hS6w=", diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix index 4bf284d1c750..73038a5e3242 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/tg_owt.nix @@ -33,13 +33,13 @@ stdenv.mkDerivation { pname = "tg_owt"; - version = "0-unstable-2026-03-09"; + version = "0-unstable-2026-04-09"; src = fetchFromGitHub { owner = "desktop-app"; repo = "tg_owt"; - rev = "26068e29bfa8d74a9dc9c8f7f94172fafbc262b8"; - hash = "sha256-/9uJMm54LC9ZeDwmursdyGeR81vBVTpjGdRUTOX0gV0="; + rev = "89df288dd6ba5b2ec95b3c5eaf1e7e0c3a870fc4"; + hash = "sha256-wdO3AACCEN3IDYWt5a+f7zrcPFoqz+c7vLpo6LZk29w="; fetchSubmodules = true; }; diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix index f89f0a3e2ec2..b554349eeef3 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix @@ -45,14 +45,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "telegram-desktop-unwrapped"; - version = "6.7.5"; + version = "6.7.6"; src = fetchFromGitHub { owner = "telegramdesktop"; repo = "tdesktop"; rev = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-HsXNTZY/+Xz7pIT7durOd5T/u7jML0rVBOPb4pnIXow="; + hash = "sha256-TGI1SLtzjjDaodQc+JIVRRiwCy9PCO3MuPfv2DpDFxo="; }; nativeBuildInputs = [ diff --git a/pkgs/build-support/dart/build-dart-application/default.nix b/pkgs/build-support/dart/build-dart-application/default.nix index 0a94d4e276aa..ed07a06551b5 100644 --- a/pkgs/build-support/dart/build-dart-application/default.nix +++ b/pkgs/build-support/dart/build-dart-application/default.nix @@ -194,10 +194,16 @@ 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/_1/_1password-gui/sources.json b/pkgs/by-name/_1/_1password-gui/sources.json index 2b5b9184a60e..e70bce1ed0e2 100644 --- a/pkgs/by-name/_1/_1password-gui/sources.json +++ b/pkgs/by-name/_1/_1password-gui/sources.json @@ -29,15 +29,15 @@ }, "beta": { "linux": { - "version": "8.12.0-11.BETA", + "version": "8.12.12-43.BETA", "sources": { "x86_64": { - "url": "https://downloads.1password.com/linux/tar/beta/x86_64/1password-8.12.0-11.BETA.x64.tar.gz", - "hash": "sha256-0PDkZAqlY/afocvc/rcly/nwZeSSbXdRyXH57aVPUoQ=" + "url": "https://downloads.1password.com/linux/tar/beta/x86_64/1password-8.12.12-43.BETA.x64.tar.gz", + "hash": "sha256-dMnYMw+egxZZXR03EBhOyL3mdRjp0nyuxL78eVKklHs=" }, "aarch64": { - "url": "https://downloads.1password.com/linux/tar/beta/aarch64/1password-8.12.0-11.BETA.arm64.tar.gz", - "hash": "sha256-0YDJKexCdOeU0/KPsJzI5rBUlbDEFW5N33LFXtDo3tg=" + "url": "https://downloads.1password.com/linux/tar/beta/aarch64/1password-8.12.12-43.BETA.arm64.tar.gz", + "hash": "sha256-nge4jT8M8X2LR18vHfZTRnIEcfxVgnbcHvvAJcveZxI=" } } }, diff --git a/pkgs/by-name/_6/_64gram/package.nix b/pkgs/by-name/_6/_64gram/package.nix index 18968647d9e8..f3c071bd8f12 100644 --- a/pkgs/by-name/_6/_64gram/package.nix +++ b/pkgs/by-name/_6/_64gram/package.nix @@ -10,13 +10,13 @@ telegram-desktop.override { inherit withWebkit; unwrapped = telegram-desktop.unwrapped.overrideAttrs (old: rec { pname = "64gram-unwrapped"; - version = "1.1.99"; + version = "1.2.0"; src = fetchFromGitHub { owner = "TDesktop-x64"; repo = "tdesktop"; tag = "v${version}"; - hash = "sha256-p1mdNoTjftbAeoWJ+AKVPFr87BoxOLIT5fDzWY3VXMQ="; + hash = "sha256-Xhyk/rCb4EakU0Nc80U1QN3PyMqlLBtcYb+zGjllhDM="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/ac/actool/package.nix b/pkgs/by-name/ac/actool/package.nix index f611e06428b6..d9812655e1cd 100644 --- a/pkgs/by-name/ac/actool/package.nix +++ b/pkgs/by-name/ac/actool/package.nix @@ -1,30 +1,21 @@ { lib, fetchFromGitHub, - python3Packages, + rustPlatform, icu, }: -python3Packages.buildPythonApplication (finalAttrs: { +rustPlatform.buildRustPackage (finalAttrs: { pname = "actool"; - version = "1.6.0"; - pyproject = true; + version = "2.0.0"; src = fetchFromGitHub { owner = "viraptor"; repo = "actool"; tag = finalAttrs.version; - hash = "sha256-OJJwEZEz+nNq3W1SDXt76Vx9qvEFUUL4dyem/oc2RA4="; + hash = "sha256-TRxA9c6q66Gso/ziqvly8IJR2AEHMc197gC9cUSuwAw="; }; - build-system = with python3Packages; [ - setuptools - ]; - - dependencies = with python3Packages; [ - pillow - liblzfse - icu - ]; + cargoHash = "sha256-BhR5gwIrFE0OuSAxVTY5kMfmMlPfIABfOgmX/rOvpug="; meta = { description = "Apple's actool reimplementation"; diff --git a/pkgs/by-name/ap/appflowy/package.nix b/pkgs/by-name/ap/appflowy/package.nix index 91917fc8b34a..c4ae41f31586 100644 --- a/pkgs/by-name/ap/appflowy/package.nix +++ b/pkgs/by-name/ap/appflowy/package.nix @@ -27,11 +27,11 @@ let rec { x86_64-linux = { urlSuffix = "linux-x86_64.tar.gz"; - hash = "sha256-zr84SNbUuVWlLzYjQt1ZK2yk1sDgva3jzDUHsS1/7aM="; + hash = "sha256-aG3Avp9LP2b7Q4RGg8gL3QsbOfUUTWCojAmYpdjleoc="; }; x86_64-darwin = { urlSuffix = "macos-universal.zip"; - hash = "sha256-m303tVHbyUUibBfyi8svpbbhgv/msBfh1WVIZl96XvQ="; + hash = "sha256-gDL0Y3v1lHBtDUjn4VM5YLKAzxh1NvrePGZrPiD9H6M="; }; aarch64-darwin = x86_64-darwin; } @@ -40,7 +40,7 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "appflowy"; - version = "0.11.5"; + version = "0.11.7"; src = fetchzip { url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${finalAttrs.version}/AppFlowy-${finalAttrs.version}-${dist.urlSuffix}"; diff --git a/pkgs/by-name/cl/clash-rs/package.nix b/pkgs/by-name/cl/clash-rs/package.nix index 8ee2eb6fd68f..de5edae3fcab 100644 --- a/pkgs/by-name/cl/clash-rs/package.nix +++ b/pkgs/by-name/cl/clash-rs/package.nix @@ -10,16 +10,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "clash-rs"; - version = "0.9.7"; + version = "0.10.0"; src = fetchFromGitHub { owner = "Watfaq"; repo = "clash-rs"; tag = "v${finalAttrs.version}"; - hash = "sha256-26OoAy/IiTEqESABqjLMI9zsmHgBbwmIazzoP8Au4nM="; + hash = "sha256-r+9tFw4B/7g/4EEYnX0Zcv4jPeGbcVgdtpAcSyk/cxA="; }; - cargoHash = "sha256-UPCXc0uB0pg4ioBIpYQKwtyTWsMH/248WDyO9qB2jwA="; + cargoHash = "sha256-D/TalJ0fBD4ZoHwU6uj5P0O6xFwinL9hE91bQhxC7s8="; nativeBuildInputs = [ cmake diff --git a/pkgs/by-name/cl/claude-code-bin/manifest.json b/pkgs/by-name/cl/claude-code-bin/manifest.json deleted file mode 100644 index 5ec1c5fd1bfd..000000000000 --- a/pkgs/by-name/cl/claude-code-bin/manifest.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "version": "2.1.114", - "buildDate": "2026-04-17T22:43:08Z", - "platforms": { - "darwin-arm64": { - "binary": "claude", - "checksum": "bf1b4da368da7970f0d1d4a1675acea99b6f2ad94f24e9f8ccfcc7940ac67894", - "size": 204534752 - }, - "darwin-x64": { - "binary": "claude", - "checksum": "1a30360b6240056a58ba9187c8f9d2e88e949e0f970d5cf81f8d69bc65568f6a", - "size": 206004048 - }, - "linux-arm64": { - "binary": "claude", - "checksum": "9556b74e2c912e7dcaef90c91fd0dd5095364f8a9d71398de3c5c669612b828a", - "size": 236653120 - }, - "linux-x64": { - "binary": "claude", - "checksum": "12bd4b0916deb06be17ffc7b2f0485e140bf00b2db3dcb78469d66723d73c27f", - "size": 236411520 - }, - "linux-arm64-musl": { - "binary": "claude", - "checksum": "20c68c312e76fb81f52cd2006b1461a0eedd470798f44b9b4a833ad583ccc05b", - "size": 229378496 - }, - "linux-x64-musl": { - "binary": "claude", - "checksum": "fbbcfa225e948d9263c39f8be29a956ea4bd3a445f79aa9396cdc3263ea05690", - "size": 230676928 - }, - "win32-x64": { - "binary": "claude.exe", - "checksum": "6f4a961ea8a1d656c41dd71cbef202cb71d13c443f86818c721167c33f8a51fd", - "size": 245966496 - }, - "win32-arm64": { - "binary": "claude.exe", - "checksum": "acdc5b7004491662f10622124c509b018a6a6c5566adf3e217f2dd4dad64ef34", - "size": 242697888 - } - } -} diff --git a/pkgs/by-name/cl/claude-code-bin/package.nix b/pkgs/by-name/cl/claude-code-bin/package.nix deleted file mode 100644 index bd80643754fb..000000000000 --- a/pkgs/by-name/cl/claude-code-bin/package.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ - lib, - stdenvNoCC, - fetchurl, - installShellFiles, - makeBinaryWrapper, - autoPatchelfHook, - procps, - ripgrep, - bubblewrap, - socat, - versionCheckHook, - writableTmpDirAsHomeHook, -}: -let - stdenv = stdenvNoCC; - baseUrl = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases"; - manifest = lib.importJSON ./manifest.json; - platformKey = "${stdenv.hostPlatform.node.platform}-${stdenv.hostPlatform.node.arch}"; - platformManifestEntry = manifest.platforms.${platformKey}; -in -stdenv.mkDerivation (finalAttrs: { - pname = "claude-code-bin"; - inherit (manifest) version; - - src = fetchurl { - url = "${baseUrl}/${finalAttrs.version}/${platformKey}/claude"; - sha256 = platformManifestEntry.checksum; - }; - - dontUnpack = true; - dontBuild = true; - __noChroot = stdenv.hostPlatform.isDarwin; - # otherwise the bun runtime is executed instead of the binary - dontStrip = true; - - nativeBuildInputs = [ - installShellFiles - makeBinaryWrapper - ] - ++ lib.optionals stdenv.hostPlatform.isElf [ autoPatchelfHook ]; - - strictDeps = true; - - installPhase = '' - runHook preInstall - - installBin $src - - wrapProgram $out/bin/claude \ - --set DISABLE_AUTOUPDATER 1 \ - --set-default FORCE_AUTOUPDATE_PLUGINS 1 \ - --set DISABLE_INSTALLATION_CHECKS 1 \ - --set USE_BUILTIN_RIPGREP 0 \ - --prefix PATH : ${ - lib.makeBinPath ( - [ - # claude-code uses [node-tree-kill](https://github.com/pkrumins/node-tree-kill) which requires procps's pgrep(darwin) or ps(linux) - procps - # https://code.claude.com/docs/en/troubleshooting#search-and-discovery-issues - ripgrep - ] - # the following packages are required for the sandbox to work (Linux only) - ++ lib.optionals stdenv.hostPlatform.isLinux [ - bubblewrap - socat - ] - ) - } - - runHook postInstall - ''; - - doInstallCheck = true; - nativeInstallCheckInputs = [ - writableTmpDirAsHomeHook - versionCheckHook - ]; - versionCheckKeepEnvironment = [ "HOME" ]; - versionCheckProgramArg = "--version"; - - passthru.updateScript = ./update.sh; - - meta = { - description = "Agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster"; - homepage = "https://github.com/anthropics/claude-code"; - downloadPage = "https://claude.com/product/claude-code"; - changelog = "https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md"; - license = lib.licenses.unfree; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; - platforms = [ - "aarch64-darwin" - "x86_64-darwin" - "aarch64-linux" - "x86_64-linux" - ]; - maintainers = with lib.maintainers; [ - mirkolenz - oskarwires - xiaoxiangmoe - ]; - mainProgram = "claude"; - }; -}) diff --git a/pkgs/by-name/cl/claude-code-bin/update.sh b/pkgs/by-name/cl/claude-code-bin/update.sh deleted file mode 100755 index e60893c580f1..000000000000 --- a/pkgs/by-name/cl/claude-code-bin/update.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env nix -#!nix shell --ignore-environment .#cacert .#curl .#bash --command bash - -set -euo pipefail - -BASE_URL="https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases" - -VERSION=$(curl -fsSL "$BASE_URL/latest") - -curl -fsSL "$BASE_URL/$VERSION/manifest.json" --output pkgs/by-name/cl/claude-code-bin/manifest.json diff --git a/pkgs/by-name/cl/claude-code/manifest.json b/pkgs/by-name/cl/claude-code/manifest.json new file mode 100644 index 000000000000..a24f8d502f63 --- /dev/null +++ b/pkgs/by-name/cl/claude-code/manifest.json @@ -0,0 +1,47 @@ +{ + "version": "2.1.118", + "commit": "ef88b5f0a79aac989f53fd18178939a54a48624a", + "buildDate": "2026-04-22T22:43:30Z", + "platforms": { + "darwin-arm64": { + "binary": "claude", + "checksum": "54e5d3f65109b89c6046f47440944d52906c662d1e51748f620a430d26ad3665", + "size": 207690848 + }, + "darwin-x64": { + "binary": "claude", + "checksum": "2cd554070f0588de05e9efd88c1f073770cb620ed3e5f45ba7df833fc3414c1b", + "size": 209238608 + }, + "linux-arm64": { + "binary": "claude", + "checksum": "b77b22fe93c15409f3c64be67950fe11e5fc17d1cd327891596cb87dd9be0492", + "size": 239798848 + }, + "linux-x64": { + "binary": "claude", + "checksum": "ba363b2410a47120d2d4b8ece2e11fe0bbc5d59adb1329e8fb87ea0f370f4e46", + "size": 239573632 + }, + "linux-arm64-musl": { + "binary": "claude", + "checksum": "dcb27938ed10b7da586b6f7ba0dde768980b5e3d38b258c1f4e9a94e7b3dd6d2", + "size": 232524224 + }, + "linux-x64-musl": { + "binary": "claude", + "checksum": "bd05142de3e3ead48313d4215577c9a9c89f05ca286d771cdff025544c52ae29", + "size": 233839040 + }, + "win32-x64": { + "binary": "claude.exe", + "checksum": "5a05b03b880de26bb78fb9824bacf08e99dcf05c02e3c66546cccaf2f2930b2e", + "size": 249035936 + }, + "win32-arm64": { + "binary": "claude.exe", + "checksum": "b3d8942b49f672ef2e1394e004f0f53e197caefe30890620b6974a3e8dba63ec", + "size": 245760672 + } + } +} diff --git a/pkgs/by-name/cl/claude-code/package-lock.json b/pkgs/by-name/cl/claude-code/package-lock.json deleted file mode 100644 index 96083b99beec..000000000000 --- a/pkgs/by-name/cl/claude-code/package-lock.json +++ /dev/null @@ -1,334 +0,0 @@ -{ - "name": "@anthropic-ai/claude-code", - "version": "2.1.112", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@anthropic-ai/claude-code", - "version": "2.1.112", - "license": "SEE LICENSE IN README.md", - "bin": { - "claude": "cli.js" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "^0.34.2", - "@img/sharp-darwin-x64": "^0.34.2", - "@img/sharp-linux-arm": "^0.34.2", - "@img/sharp-linux-arm64": "^0.34.2", - "@img/sharp-linux-x64": "^0.34.2", - "@img/sharp-linuxmusl-arm64": "^0.34.2", - "@img/sharp-linuxmusl-x64": "^0.34.2", - "@img/sharp-win32-arm64": "^0.34.2", - "@img/sharp-win32-x64": "^0.34.2" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - } - } -} diff --git a/pkgs/by-name/cl/claude-code/package.nix b/pkgs/by-name/cl/claude-code/package.nix index 89dc381fe00f..ace41055c5f9 100644 --- a/pkgs/by-name/cl/claude-code/package.nix +++ b/pkgs/by-name/cl/claude-code/package.nix @@ -1,57 +1,68 @@ # NOTE: Use the following command to update the package # ```sh -# nix-shell maintainers/scripts/update.nix --argstr commit true --arg predicate '(path: pkg: builtins.elem path [["claude-code"] ["claude-code-bin"] ["vscode-extensions" "anthropic" "claude-code"]])' +# nix-shell maintainers/scripts/update.nix --argstr commit true --arg predicate '(path: pkg: builtins.elem path [["claude-code"] ["vscode-extensions" "anthropic" "claude-code"]])' # ``` { lib, - stdenv, - buildNpmPackage, - fetchzip, + stdenvNoCC, + fetchurl, + installShellFiles, + makeBinaryWrapper, + autoPatchelfHook, + procps, + ripgrep, + bubblewrap, + socat, versionCheckHook, writableTmpDirAsHomeHook, - bubblewrap, - procps, - socat, }: -buildNpmPackage (finalAttrs: { +let + stdenv = stdenvNoCC; + baseUrl = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases"; + manifest = lib.importJSON ./manifest.json; + platformKey = "${stdenv.hostPlatform.node.platform}-${stdenv.hostPlatform.node.arch}"; + platformManifestEntry = manifest.platforms.${platformKey}; +in +stdenv.mkDerivation (finalAttrs: { pname = "claude-code"; - version = "2.1.112"; + inherit (manifest) version; - src = fetchzip { - url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz"; - hash = "sha256-SJJqU7XHbu9IRGPMJNUg6oaMZiQUKqJhI2wm7BnR1gs="; + src = fetchurl { + url = "${baseUrl}/${finalAttrs.version}/${platformKey}/claude"; + sha256 = platformManifestEntry.checksum; }; - npmDepsHash = "sha256-bdkej9Z41GLew9wi1zdNX+Asauki3nT1+SHmBmaUIBU="; + dontUnpack = true; + dontBuild = true; + __noChroot = stdenv.hostPlatform.isDarwin; + # otherwise the bun runtime is executed instead of the binary + dontStrip = true; + + nativeBuildInputs = [ + installShellFiles + makeBinaryWrapper + ] + ++ lib.optionals stdenv.hostPlatform.isElf [ autoPatchelfHook ]; strictDeps = true; - postPatch = '' - cp ${./package-lock.json} package-lock.json + installPhase = '' + runHook preInstall - # https://github.com/anthropics/claude-code/issues/15195 - substituteInPlace cli.js \ - --replace-fail '#!/bin/sh' '#!/usr/bin/env sh' - ''; + installBin $src - dontNpmBuild = true; - - env.AUTHORIZED = "1"; - - # `claude-code` tries to auto-update by default, this disables that functionality. - # https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview#environment-variables - # The DEV=true env var causes claude to crash with `TypeError: window.WebSocket is not a constructor` - postInstall = '' wrapProgram $out/bin/claude \ --set DISABLE_AUTOUPDATER 1 \ --set-default FORCE_AUTOUPDATE_PLUGINS 1 \ --set DISABLE_INSTALLATION_CHECKS 1 \ - --unset DEV \ + --set USE_BUILTIN_RIPGREP 0 \ --prefix PATH : ${ lib.makeBinPath ( [ # claude-code uses [node-tree-kill](https://github.com/pkrumins/node-tree-kill) which requires procps's pgrep(darwin) or ps(linux) procps + # https://code.claude.com/docs/en/troubleshooting#search-and-discovery-issues + ripgrep ] # the following packages are required for the sandbox to work (Linux only) ++ lib.optionals stdenv.hostPlatform.isLinux [ @@ -60,6 +71,8 @@ buildNpmPackage (finalAttrs: { ] ) } + + runHook postInstall ''; doInstallCheck = true; @@ -68,23 +81,32 @@ buildNpmPackage (finalAttrs: { versionCheckHook ]; versionCheckKeepEnvironment = [ "HOME" ]; + versionCheckProgramArg = "--version"; passthru.updateScript = ./update.sh; meta = { description = "Agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster"; homepage = "https://github.com/anthropics/claude-code"; - downloadPage = "https://www.npmjs.com/package/@anthropic-ai/claude-code"; + downloadPage = "https://claude.com/product/claude-code"; + changelog = "https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md"; license = lib.licenses.unfree; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + platforms = [ + "aarch64-darwin" + "x86_64-darwin" + "aarch64-linux" + "x86_64-linux" + ]; maintainers = with lib.maintainers; [ adeci malo markus1189 + mirkolenz omarjatoi oskarwires xiaoxiangmoe ]; mainProgram = "claude"; - sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; }; }) diff --git a/pkgs/by-name/cl/claude-code/update.sh b/pkgs/by-name/cl/claude-code/update.sh index 870f73308600..1e2125a74625 100755 --- a/pkgs/by-name/cl/claude-code/update.sh +++ b/pkgs/by-name/cl/claude-code/update.sh @@ -1,15 +1,12 @@ #!/usr/bin/env nix -#!nix shell --ignore-environment .#cacert .#nodejs .#git .#nix-update .#nix .#gnused .#findutils .#bash --command bash +#!nix shell --ignore-environment .#cacert .#coreutils .#curl .#bash --command bash set -euo pipefail -version=$(npm view @anthropic-ai/claude-code version) +cd "$(dirname "${BASH_SOURCE[0]}")" -# Update version and hashes -AUTHORIZED=1 NIXPKGS_ALLOW_UNFREE=1 nix-update claude-code --version="$version" --generate-lockfile +BASE_URL="https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases" -# nix-update can't update package-lock.json along with npmDepsHash -# TODO: Remove this workaround if nix-update can update package-lock.json along with npmDepsHash. -(nix-build --expr '((import ./.) { system = builtins.currentSystem; }).claude-code.npmDeps.overrideAttrs { outputHash = ""; outputHashAlgo = "sha256"; }' 2>&1 || true) \ -| sed -nE '$s/ *got: *(sha256-[A-Za-z0-9+/=-]+).*/\1/p' \ -| xargs -I{} sed -i 's|npmDepsHash = "sha256-[^"]*";|npmDepsHash = "{}";|' pkgs/by-name/cl/claude-code/package.nix +VERSION="${1:-$(curl -fsSL "$BASE_URL/latest")}" + +curl -fsSL "$BASE_URL/$VERSION/manifest.json" --output manifest.json diff --git a/pkgs/by-name/co/codex/package.nix b/pkgs/by-name/co/codex/package.nix index dd9ddcb0d582..191d1c1dac3e 100644 --- a/pkgs/by-name/co/codex/package.nix +++ b/pkgs/by-name/co/codex/package.nix @@ -25,18 +25,18 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "codex"; - version = "0.122.0"; + version = "0.124.0"; src = fetchFromGitHub { owner = "openai"; repo = "codex"; tag = "rust-v${finalAttrs.version}"; - hash = "sha256-CpXWP64URsgt/PhQrUkrT87KG633hxRUIY0wWrTFmjk="; + hash = "sha256-YFnzzwCm9/b30qLDMbkf/rEizuTjeqdCgoBZeS0wNBo="; }; sourceRoot = "${finalAttrs.src.name}/codex-rs"; - cargoHash = "sha256-2qtMLWSdYWJ+blNfCHXtgmzizuM1HgpTGa5RQ3U/AEM="; + cargoHash = "sha256-tuUY+Mg7DwYnYLt1zfqo0rrz5ip0fukxj947yBJAyks="; # Match upstream's release build (codex only) and drop the expensive # release profile tweaks that dominate cold build time in nixpkgs. diff --git a/pkgs/by-name/co/cosmic-reader/package.nix b/pkgs/by-name/co/cosmic-reader/package.nix index b73fa7e4eb20..bac6723ecb09 100644 --- a/pkgs/by-name/co/cosmic-reader/package.nix +++ b/pkgs/by-name/co/cosmic-reader/package.nix @@ -19,13 +19,13 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "cosmic-reader"; - version = "0-unstable-2026-04-14"; + version = "0-unstable-2026-04-16"; src = fetchFromGitHub { owner = "pop-os"; repo = "cosmic-reader"; - rev = "34108afa746d7388e94a89ebfb9801395ae1f98e"; - hash = "sha256-h5joBcL49Kegwfci1OBENEclFn2/8n1KFaF4r3DcuLc="; + rev = "ebea761ab6853a9ac15b1bfc90b040d620d1d00f"; + hash = "sha256-t2UKLip5SrKG4a3Eaqf8lS2hNtrqgz8eYpSTRCbrpfM="; }; cargoHash = "sha256-p0dg5RNXkzbi+/RB5k+jr34RNOp+Irahj0BiFUddfnk="; diff --git a/pkgs/by-name/cr/crowdin-cli/package.nix b/pkgs/by-name/cr/crowdin-cli/package.nix index 7012377ac761..9338c89d5d95 100644 --- a/pkgs/by-name/cr/crowdin-cli/package.nix +++ b/pkgs/by-name/cr/crowdin-cli/package.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "crowdin-cli"; - version = "4.14.1"; + version = "4.14.2"; src = fetchurl { url = "https://github.com/crowdin/crowdin-cli/releases/download/${finalAttrs.version}/crowdin-cli.zip"; - hash = "sha256-zlouZc7DtMYTHiDOLSCtawEKTMOKgqJe01gieRxeiFI="; + hash = "sha256-XfOBmMkbi3XrjRBfDrJ86y1+BuJIcvhJ1tULQDsGCqE="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/dd/ddns-go/package.nix b/pkgs/by-name/dd/ddns-go/package.nix index 72f3fe621af5..57732a549b22 100644 --- a/pkgs/by-name/dd/ddns-go/package.nix +++ b/pkgs/by-name/dd/ddns-go/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "ddns-go"; - version = "6.16.6"; + version = "6.16.10"; src = fetchFromGitHub { owner = "jeessy2"; repo = "ddns-go"; rev = "v${finalAttrs.version}"; - hash = "sha256-t6sxGucolqjDGSkzJUqO0NDeK4oRqq7oG+WD/brh4NA="; + hash = "sha256-P9jc3MSMzHWQSi5rqaqAlX5/lgF8cNvvZXnsZ/yo5Fk="; }; vendorHash = "sha256-MbITJ2MxyTNE6LS9rQZ10IVgQuXpmbPf5HQgoy2OuOc="; diff --git a/pkgs/by-name/de/devspace/package.nix b/pkgs/by-name/de/devspace/package.nix index e67f2a657b0e..7a125f24f200 100644 --- a/pkgs/by-name/de/devspace/package.nix +++ b/pkgs/by-name/de/devspace/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "devspace"; - version = "6.3.20"; + version = "6.3.21"; src = fetchFromGitHub { owner = "devspace-sh"; repo = "devspace"; rev = "v${finalAttrs.version}"; - hash = "sha256-z1wKjEKr2SyLe5bp08g8rzpDxQenvrTjVWjjGO6N7ys="; + hash = "sha256-QCO1faP4V0fqznPyMFnmAI+N0VE9tECwSXdg6xowocM="; }; vendorHash = null; diff --git a/pkgs/by-name/do/do-agent/package.nix b/pkgs/by-name/do/do-agent/package.nix index 18e8779676c0..b8e86264b4ed 100644 --- a/pkgs/by-name/do/do-agent/package.nix +++ b/pkgs/by-name/do/do-agent/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "do-agent"; - version = "3.18.10"; + version = "3.18.12"; src = fetchFromGitHub { owner = "digitalocean"; repo = "do-agent"; rev = finalAttrs.version; - sha256 = "sha256-2EL+dmI97d4cjb0ZVnXbmHp0m2dGcUu3xFtOXMruUE0="; + sha256 = "sha256-nSRvNUWauZb8KifY9Xe7yDSvL0EREYTVzqVA5+oLhjo="; }; ldflags = [ diff --git a/pkgs/by-name/do/doppler/package.nix b/pkgs/by-name/do/doppler/package.nix index f9fa4e7930ac..d142a1a53a14 100644 --- a/pkgs/by-name/do/doppler/package.nix +++ b/pkgs/by-name/do/doppler/package.nix @@ -10,13 +10,13 @@ buildGoModule (finalAttrs: { pname = "doppler"; - version = "3.75.3"; + version = "3.76.0"; src = fetchFromGitHub { owner = "dopplerhq"; repo = "cli"; rev = finalAttrs.version; - hash = "sha256-4OvU0Hy2uBjeyQibODi9WqdM0adUW2vTS9SCL+O2RFA="; + hash = "sha256-CmNSn4WRWMP07qC5APw8PTouCUOHJrz1ZYqpKhdiIDM="; }; vendorHash = "sha256-u6SB3SXCqu7Y2aUoTAJ01mtDCxMofVQLAde1jDxVvks="; diff --git a/pkgs/by-name/ex/exploitdb/package.nix b/pkgs/by-name/ex/exploitdb/package.nix index 26f51f32f3a9..1730284fd303 100644 --- a/pkgs/by-name/ex/exploitdb/package.nix +++ b/pkgs/by-name/ex/exploitdb/package.nix @@ -6,13 +6,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "exploitdb"; - version = "2026-04-11"; + version = "2026-04-23"; src = fetchFromGitLab { owner = "exploit-database"; repo = "exploitdb"; tag = finalAttrs.version; - hash = "sha256-Gxi+gb9PbjF2QYDYClSBqru8pebf8ay0AvJnCEYbaSc="; + hash = "sha256-Acf4GF7r58r0cCUmm5U+X3vmn496/NcSCsFtFqjxUXU="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/by-name/gh/ghost-complete/package.nix b/pkgs/by-name/gh/ghost-complete/package.nix new file mode 100644 index 000000000000..6dc779457419 --- /dev/null +++ b/pkgs/by-name/gh/ghost-complete/package.nix @@ -0,0 +1,61 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + nix-update-script, + versionCheckHook, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "ghost-complete"; + version = "0.9.1"; + + src = fetchFromGitHub { + owner = "StanMarek"; + repo = "ghost-complete"; + tag = "v${finalAttrs.version}"; + hash = "sha256-fsGrhQK28YFksI2pNiZ6fI6KjZOXxXxrhWjxOmBNk08="; + }; + + __structuredAttrs = true; + + cargoHash = "sha256-kiYdMczvnauhu/2ryO0NcK3PAI1P+xmYV8nRrIWaEB8="; + + cargoBuildFlags = [ "--package=ghost-complete" ]; + + # Integration tests in crates/ghost-complete/tests/smoke.rs spawn a real + # PTY + shell and exercise terminal I/O, which isn't available in the + # Nix build sandbox. + doCheck = false; + + # `ghost-complete install` imperatively copies these scripts into the + # user's `~/.config/ghost-complete/shell/` and edits `~/.zshrc` to source + # them. In a Nix world we instead expose them here so users can source + # them declaratively from their shell configuration (e.g. home-manager + # `programs.zsh.initContent` or NixOS `programs.zsh.interactiveShellInit`). + # The 709 completion specs are already embedded in the binary and used + # as an automatic fallback when no on-disk spec directory is present, so + # they don't need to be copied out. + postInstall = '' + install -Dm644 -t $out/share/ghost-complete/shell \ + shell/init.zsh \ + shell/ghost-complete.zsh \ + shell/ghost-complete.bash \ + shell/ghost-complete.fish + ''; + + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Terminal-native autocomplete engine using PTY proxying for macOS terminals"; + homepage = "https://github.com/StanMarek/ghost-complete"; + changelog = "https://github.com/StanMarek/ghost-complete/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ imcvampire ]; + mainProgram = "ghost-complete"; + platforms = lib.platforms.darwin; + }; +}) diff --git a/pkgs/by-name/gi/gitlab-runner/package.nix b/pkgs/by-name/gi/gitlab-runner/package.nix index de61b497e4e3..848e71afce19 100644 --- a/pkgs/by-name/gi/gitlab-runner/package.nix +++ b/pkgs/by-name/gi/gitlab-runner/package.nix @@ -4,6 +4,7 @@ bash, buildGoModule, fetchFromGitLab, + gitMinimal, nix-update-script, versionCheckHook, writableTmpDirAsHomeHook, @@ -11,16 +12,16 @@ buildGoModule (finalAttrs: { pname = "gitlab-runner"; - version = "18.10.1"; + version = "18.11.1"; src = fetchFromGitLab { owner = "gitlab-org"; repo = "gitlab-runner"; tag = "v${finalAttrs.version}"; - hash = "sha256-qwEzcZuyPqjuGDxNKCHc6AfBgS+Pp/PV1tK/qfofwtA="; + hash = "sha256-O/vaodFMt1HgGi4OVjVIfhie0j0bhbRQl1iEMrYfmn0="; }; - vendorHash = "sha256-iO5xZAdQPmUpgUGe5CjMHOfzWVXT+eukJ/zLw5BE0NE="; + vendorHash = "sha256-xEvvYAVIwHwQDd38P2i6GcgFqf8FPnflWh5IEqmWQdE="; # For patchShebangs buildInputs = [ bash ]; @@ -86,7 +87,10 @@ buildGoModule (finalAttrs: { "-X ${ldflagsPackageVariablePrefix}.REVISION=v${finalAttrs.version}" ]; - nativeCheckInputs = [ writableTmpDirAsHomeHook ]; + nativeCheckInputs = [ + gitMinimal + writableTmpDirAsHomeHook + ]; preCheck = '' # Make the tests pass outside of GitLab CI diff --git a/pkgs/by-name/go/go-grip/package.nix b/pkgs/by-name/go/go-grip/package.nix index 32d1738e88f7..ee2ad4a08459 100644 --- a/pkgs/by-name/go/go-grip/package.nix +++ b/pkgs/by-name/go/go-grip/package.nix @@ -5,13 +5,13 @@ }: buildGoModule (finalAttrs: { pname = "go-grip"; - version = "0.9.0"; + version = "0.9.1"; src = fetchFromGitHub { owner = "chrishrb"; repo = "go-grip"; tag = "v${finalAttrs.version}"; - hash = "sha256-HwD/pdWEEU+Hoo4HUJeK8y40jp1byNhw/TSpa5SNRak="; + hash = "sha256-uDDzkkCX/tUKRCJYt/3Qsh4qObaCNaW9I801jQphM4A="; }; vendorHash = "sha256-QsLiCsFY6nI85jsEZtAgmObEKpBSZWhzZk+TlukM8JU="; diff --git a/pkgs/by-name/go/goofcord/node-modules.nix b/pkgs/by-name/go/goofcord/node-modules.nix new file mode 100644 index 000000000000..d75d177312dd --- /dev/null +++ b/pkgs/by-name/go/goofcord/node-modules.nix @@ -0,0 +1,65 @@ +# fixed output derivation for node_modules +{ + lib, + stdenv, + goofcord, + bun, + nodejs, + writableTmpDirAsHomeHook, +}: +stdenv.mkDerivation { + inherit (goofcord) version src; + pname = goofcord.pname + "-modules"; + + impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ + "GIT_PROXY_COMMAND" + "SOCKS_SERVER" + ]; + + nativeBuildInputs = [ + bun + nodejs + writableTmpDirAsHomeHook + ]; + + dontConfigure = true; + dontFixup = true; + + buildPhase = '' + runHook preBuild + + export BUN_INSTALL_CACHE_DIR=$(mktemp -d) + export npm_config_build_from_source=true + export ELECTRON_SKIP_BINARY_DOWNLOAD=1 + + bun install \ + --frozen-lockfile \ + --linker=hoisted \ + --no-progress + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp -R ./node_modules $out + + runHook postInstall + ''; + + outputHash = + { + x86_64-linux = "sha256-EEl+hrdMR6z1PAy+uIhl2UYtajXWiUQMQxIfYpMRw6Y="; + aarch64-linux = "sha256-ba+j8FGKNH3Mpql7xvLgHHuJxDGVlZ+TeZ3Oxsw3ot4="; + } + .${stdenv.hostPlatform.system} or (throw "Unsupported system ${stdenv.hostPlatform.system}"); + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + + meta = { + description = "Node modules for GoofCord"; + license = lib.licenses.osl3; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/by-name/go/goofcord/package.nix b/pkgs/by-name/go/goofcord/package.nix index 1e53cb891323..f80c809b4b3b 100644 --- a/pkgs/by-name/go/goofcord/package.nix +++ b/pkgs/by-name/go/goofcord/package.nix @@ -1,68 +1,84 @@ { lib, stdenv, + callPackage, fetchFromGitHub, - pnpm_9, - fetchPnpmDeps, - pnpmConfigHook, - nodejs_22, - nix-update-script, + bun, + nodejs_24, electron, - pipewire, - libpulseaudio, + nix-update-script, + libxkbcommon, + libx11, + libxcb, + libxtst, makeShellWrapper, makeDesktopItem, copyDesktopItems, }: - let - pnpm = pnpm_9.override { nodejs = nodejs_22; }; + patchcordAddon = callPackage ./patchcord-addon.nix { }; + venbindAddon = callPackage ./venbind-addon.nix { }; in stdenv.mkDerivation (finalAttrs: { pname = "goofcord"; - version = "1.7.1"; + version = "2.2.0"; src = fetchFromGitHub { owner = "Milkshiift"; repo = "GoofCord"; - rev = "v${finalAttrs.version}"; - hash = "sha256-fx/RKnUhXhaWVd/KYPVxr19/Q8o1ovm2TgMTcTYjE3Q="; + tag = "v${finalAttrs.version}"; + hash = "sha256-BnaPw9edaI1nKAu421JBkI9dAV3Xu3Yr5VQILN0QUTM="; }; nativeBuildInputs = [ - pnpmConfigHook - pnpm - nodejs_22 + bun + nodejs_24 makeShellWrapper copyDesktopItems ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ - libpulseaudio - pipewire + libxkbcommon + libx11 + libxcb + libxtst (lib.getLib stdenv.cc.cc) ]; - pnpmDeps = fetchPnpmDeps { - inherit (finalAttrs) pname version src; - inherit pnpm; - fetcherVersion = 3; - hash = "sha256-NKind57XDW7I5XNmjAu4cqkK5UVNAaKewpfOTNzF2BM="; - }; + node-modules = callPackage ./node-modules.nix { nodejs = nodejs_24; }; env = { ELECTRON_SKIP_BINARY_DOWNLOAD = 1; + GOOFCORD_PATCHCORD_PATH = "${patchcordAddon}/bin/patchcord"; + GOOFCORD_VENBIND_PATH = "${venbindAddon}/lib/libvenbind.so"; }; + configurePhase = '' + runHook preConfigure + + cp -R ${finalAttrs.node-modules} node_modules + chmod -R u+w node_modules + patchShebangs node_modules/.bin + patchShebangs node_modules/@typescript/native-preview/bin + + runHook postConfigure + ''; + + preBuild = lib.optionalString stdenv.hostPlatform.isLinux '' + cp -r ${electron.dist} electron-dist + chmod -R u+w electron-dist + ''; + buildPhase = '' runHook preBuild - pnpm build + bun run build -- --skipTypecheck - npm exec electron-builder -- \ + node node_modules/electron-builder/out/cli/cli.js \ --dir \ - -c.electronDist="${electron.dist}" \ - -c.electronVersion="${electron.version}" + -c.electronDist="${if stdenv.hostPlatform.isLinux then "electron-dist" else electron.dist}" \ + -c.electronVersion="${electron.version}" \ + -c.npmRebuild=false runHook postBuild ''; @@ -73,13 +89,21 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p "$out/share/lib/goofcord" cp -r ./dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/goofcord" - install -Dm644 "build/icon.png" "$out/share/icons/hicolor/256x256/apps/goofcord.png" + install -Dm644 "assets/gf_icon.png" "$out/share/icons/hicolor/256x256/apps/goofcord.png" # use makeShellWrapper (instead of the makeBinaryWrapper provided by wrapGAppsHook3) for proper shell variable expansion # see https://github.com/NixOS/nixpkgs/issues/172583 makeShellWrapper "${lib.getExe electron}" "$out/bin/goofcord" \ --add-flags "$out/share/lib/goofcord/resources/app.asar" \ "''${gappsWrapperArgs[@]}" \ + --prefix LD_LIBRARY_PATH : "${ + lib.makeLibraryPath [ + libxkbcommon + libx11 + libxcb + libxtst + ] + }" \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer --enable-wayland-ime=true}}" \ --set-default ELECTRON_IS_DEV 0 \ --inherit-argv0 @@ -120,11 +144,11 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/Milkshiift/GoofCord"; downloadPage = "https://github.com/Milkshiift/GoofCord"; license = lib.licenses.osl3; - maintainers = with lib.maintainers; [ nyabinary ]; - platforms = [ - "x86_64-linux" - "aarch64-linux" + maintainers = with lib.maintainers; [ + nyabinary + miniharinn ]; + platforms = lib.platforms.linux; mainProgram = "goofcord"; }; }) diff --git a/pkgs/by-name/go/goofcord/patchcord-addon.nix b/pkgs/by-name/go/goofcord/patchcord-addon.nix new file mode 100644 index 000000000000..a78dcd221439 --- /dev/null +++ b/pkgs/by-name/go/goofcord/patchcord-addon.nix @@ -0,0 +1,27 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, +}: +rustPlatform.buildRustPackage { + pname = "patchcord"; + version = "0-unstable-2026-03-29"; + + src = fetchFromGitHub { + owner = "Milkshiift"; + repo = "patchcord"; + rev = "f2611630f143a53b46514d4916af0971d7aab2b5"; + hash = "sha256-VTHS5psVqg4RjSrAs9vPkixsVwwIYE2E4o0vXVN58tE="; + }; + + cargoHash = "sha256-/IbHvs9SEuulNcWkihwFwaFcqMM0rdFBVjCWgUu7dys="; + + doCheck = false; + + meta = { + description = "Patcher for GoofCord"; + homepage = "https://github.com/Milkshiift/patchcord"; + license = lib.licenses.osl3; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/by-name/go/goofcord/venbind-addon.nix b/pkgs/by-name/go/goofcord/venbind-addon.nix new file mode 100644 index 000000000000..91be6a072bb5 --- /dev/null +++ b/pkgs/by-name/go/goofcord/venbind-addon.nix @@ -0,0 +1,56 @@ +{ + lib, + stdenv, + rustPlatform, + fetchFromGitHub, + cmake, + pkg-config, + libx11, + libxtst, + libxdmcp, + libxkbfile, + libxkbcommon, + libxcb, + wayland, + xorgproto, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "venbind"; + version = "0.1.7"; + + src = fetchFromGitHub { + owner = "tuxinal"; + repo = "venbind"; + tag = "v${finalAttrs.version}"; + hash = "sha256-6gPyQ6JjqvM2AUuIxCfO0nOLJfyQTX5bbsbKDzlNSqo="; + fetchSubmodules = true; + }; + + cargoHash = "sha256-FZTXj8f+ezRhElovKhF3khWc5SqC+22tDHlFe9IHuwo="; + + nativeBuildInputs = [ + rustPlatform.bindgenHook + pkg-config + cmake + ]; + + buildInputs = [ + libx11 + libxtst + libxdmcp + libxkbfile + libxkbcommon + libxcb + wayland + xorgproto + ]; + + doCheck = false; + + meta = { + description = "Native module for Vencord"; + homepage = "https://github.com/tuxinal/venbind"; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/by-name/go/google-chrome/package.nix b/pkgs/by-name/go/google-chrome/package.nix index 72ab1cbfee21..aaae75769c2a 100644 --- a/pkgs/by-name/go/google-chrome/package.nix +++ b/pkgs/by-name/go/google-chrome/package.nix @@ -344,7 +344,6 @@ let passthru.updateScript = ./update.sh; meta = { - changelog = "https://chromereleases.googleblog.com/"; description = "Freeware web browser developed by Google"; homepage = "https://www.google.com/chrome/browser/"; license = lib.licenses.unfree; diff --git a/pkgs/by-name/gp/gpg-tui/package.nix b/pkgs/by-name/gp/gpg-tui/package.nix index e9873c763f32..a54e3c03ed16 100644 --- a/pkgs/by-name/gp/gpg-tui/package.nix +++ b/pkgs/by-name/gp/gpg-tui/package.nix @@ -16,16 +16,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "gpg-tui"; - version = "0.11.1"; + version = "0.11.2"; src = fetchFromGitHub { owner = "orhun"; repo = "gpg-tui"; tag = "v${finalAttrs.version}"; - hash = "sha256-qGm0eHpVFGn8tNdEnmQ4oIfjCxyixMFYdxih7pHvGH0="; + hash = "sha256-DTVtMwKAZjPwT6c7FYoaT12Axoz3j1cMFKjDDsaHyjk="; }; - cargoHash = "sha256-XdT/6N7CJJ8LY0KmkO6PuRdnq1FZvbZrGhky1hmyr2Y="; + cargoHash = "sha256-d2PYJajDKukwDERSjQcPSJaYbZDftNLBYEXq+7ZdlKw="; nativeBuildInputs = [ gpgme # for gpgme-config diff --git a/pkgs/by-name/he/hey-mail/package.nix b/pkgs/by-name/he/hey-mail/package.nix index eca024314d9d..26c2a482e23d 100644 --- a/pkgs/by-name/he/hey-mail/package.nix +++ b/pkgs/by-name/he/hey-mail/package.nix @@ -94,12 +94,12 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "hey-mail"; - version = "1.3.1"; - rev = "29"; + version = "1.3.3"; + rev = "31"; src = fetchurl { url = "https://api.snapcraft.io/api/v1/snaps/download/lfWUNpR7PrPGsDfuxIhVxbj0wZHoH7bK_${finalAttrs.rev}.snap"; - hash = "sha512-mDMFD5G+TWpcCDNphvHegwlVGebw4aauShq7wJRF7F+iXX7E65+S00JpYWHu8PhUQeoVK4DkA4JkLfMq0D2lHA=="; + hash = "sha512-0KhmZ1xkEPuuzukeKbWW7jeNh2TOINMnOtuwpZQIM7sgDhCSl2DEZnguEKY2DvGNTTQxVWSZcuU/KSSblqIE4Q=="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ib/ibtool/package.nix b/pkgs/by-name/ib/ibtool/package.nix index 9441b257e37c..7729742bf4c5 100644 --- a/pkgs/by-name/ib/ibtool/package.nix +++ b/pkgs/by-name/ib/ibtool/package.nix @@ -6,14 +6,14 @@ }: python3Packages.buildPythonApplication (finalAttrs: { pname = "ibtool"; - version = "1.1.4"; + version = "1.2.0"; pyproject = true; src = fetchFromGitHub { owner = "viraptor"; repo = "ibtool"; tag = finalAttrs.version; - hash = "sha256-D0AzcLBmcqdEZy1Td96CnJGgRID7FnbNeqKJ7xQUvlE="; + hash = "sha256-vFjB+eDw8RP28UGzmc2Sbes8/qNEj1W5fzB6Lnjx6ZI="; }; build-system = with python3Packages; [ diff --git a/pkgs/by-name/in/inframap/package.nix b/pkgs/by-name/in/inframap/package.nix index b45fa964374a..eba8500a5fed 100644 --- a/pkgs/by-name/in/inframap/package.nix +++ b/pkgs/by-name/in/inframap/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "inframap"; - version = "0.8.0"; + version = "0.8.1"; src = fetchFromGitHub { owner = "cycloidio"; repo = "inframap"; tag = "v${finalAttrs.version}"; - hash = "sha256-IdXP/gw81rQsaHz+uwEB9ThtHlbPYLXcYTYdwJynpVU="; + hash = "sha256-SH72GmEzHNF26TNCctBglSvtYXVFf6fIBmg8L74OiZg="; }; ldflags = [ diff --git a/pkgs/by-name/in/infrastructure-agent/package.nix b/pkgs/by-name/in/infrastructure-agent/package.nix index c4ef3a8518fe..38babc30309b 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.73.1"; + version = "1.74.1"; src = fetchFromGitHub { owner = "newrelic"; repo = "infrastructure-agent"; rev = finalAttrs.version; - hash = "sha256-fxOvtMAwCR5Y9VhUsR8BF76+REH39+pyGyjxLXwRx1k="; + hash = "sha256-btvhrVt6xU1IMEyjs873EeErtRKzoD/PvfTRHzBw0UI="; }; vendorHash = "sha256-xkoNVXRm8OkVd2f3cSFE1QIF6EHhh8AQh/YZYt22+MU="; diff --git a/pkgs/by-name/ku/kubectl-klock/package.nix b/pkgs/by-name/ku/kubectl-klock/package.nix index 213fa45cbf69..c7981dbad5ac 100644 --- a/pkgs/by-name/ku/kubectl-klock/package.nix +++ b/pkgs/by-name/ku/kubectl-klock/package.nix @@ -7,7 +7,7 @@ buildGoModule (finalAttrs: { pname = "kubectl-klock"; - version = "0.8.4"; + version = "0.9.0"; nativeBuildInputs = [ makeWrapper ]; @@ -15,7 +15,7 @@ buildGoModule (finalAttrs: { owner = "applejag"; repo = "kubectl-klock"; rev = "v${finalAttrs.version}"; - hash = "sha256-xfoYK8Ex+gdWPJVARYlGRtZl1Yi63h72bLDJgqUJe3Q="; + hash = "sha256-omnDAhLhI8UoqZtY2d0cjhH38V57tcOIePGKOM+HzHI="; }; ldflags = [ @@ -24,7 +24,7 @@ buildGoModule (finalAttrs: { "-X main.version=${finalAttrs.version}" ]; - vendorHash = "sha256-WiVwRc92xYhk8dBNmYDfrZF0bP61dJJbqWFTFQV7lwg="; + vendorHash = "sha256-f9qru/YrtCP+B43/gwMx4WmiqhuK9weKqj3aAt72yBw="; postInstall = '' makeWrapper $out/bin/kubectl-klock $out/bin/kubectl_complete-klock --add-flags __complete diff --git a/pkgs/by-name/ku/kubectl-rabbitmq/package.nix b/pkgs/by-name/ku/kubectl-rabbitmq/package.nix index f64018d6c49f..49a34fe93d7c 100644 --- a/pkgs/by-name/ku/kubectl-rabbitmq/package.nix +++ b/pkgs/by-name/ku/kubectl-rabbitmq/package.nix @@ -7,18 +7,18 @@ buildGoModule (finalAttrs: { pname = "kubectl-rabbitmq"; - version = "2.20.0"; + version = "2.20.1"; src = fetchFromGitHub { owner = "rabbitmq"; repo = "cluster-operator"; tag = "v${finalAttrs.version}"; - hash = "sha256-anJZy0XUEJ0j912g7+ltq2bMVE/KPpyBWuh7AqGgx30="; + hash = "sha256-84rcffEG2+AxtCbOo7KnT6mQFOMpeWJyA0HgDxjmlyc="; }; modRoot = "kubectl-rabbitmq"; - vendorHash = "sha256-UnZ47TUarqZNYrvpfNJy5tm9Yq5/eFrkMSLRqjqM9PU="; + vendorHash = "sha256-+++RbYcQ3qrdWeBUjd50RuCuvpSbDrTycCR7mptvhoc="; ldflags = [ "-s" diff --git a/pkgs/by-name/ku/kubectl-view-secret/package.nix b/pkgs/by-name/ku/kubectl-view-secret/package.nix index df3531c7e1c5..77840712ca35 100644 --- a/pkgs/by-name/ku/kubectl-view-secret/package.nix +++ b/pkgs/by-name/ku/kubectl-view-secret/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "kubectl-view-secret"; - version = "0.15.1"; + version = "0.16.0"; src = fetchFromGitHub { owner = "elsesiy"; repo = "kubectl-view-secret"; rev = "v${finalAttrs.version}"; - hash = "sha256-JFVW/k+TMsIo24zBqjtpoei6YRW/rgwu0qFEHvZbc1c="; + hash = "sha256-U030TzoYoSjJpohv/yeR8MVrpfIwO578I/KCIPxBj5k="; }; - vendorHash = "sha256-WgIDyj3zZK1scXarlVA82FP3FdJs5jSR88OBJhyeWls="; + vendorHash = "sha256-EiSqk957zurwlL0qhvRAHKQCVpmmZhDFbdplWfRg2Ec="; subPackages = [ "./cmd/" ]; diff --git a/pkgs/by-name/ku/kubedb-cli/package.nix b/pkgs/by-name/ku/kubedb-cli/package.nix index 4e868bb1146e..ca2a58e0e2c9 100644 --- a/pkgs/by-name/ku/kubedb-cli/package.nix +++ b/pkgs/by-name/ku/kubedb-cli/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "kubedb-cli"; - version = "0.63.0"; + version = "0.64.0"; src = fetchFromGitHub { owner = "kubedb"; repo = "cli"; tag = "v${version}"; - hash = "sha256-RhRpKUBlsswPStUoZQ9mFkMst77t4t7OodILaC4tHV0="; + hash = "sha256-BkXUkL3bZg5g0ufGqL+QZ44ZXKMp5O8Ib9TjkBoQaaM="; }; vendorHash = null; diff --git a/pkgs/by-name/la/labwc/package.nix b/pkgs/by-name/la/labwc/package.nix index 6727660b7701..a3386c574a6c 100644 --- a/pkgs/by-name/la/labwc/package.nix +++ b/pkgs/by-name/la/labwc/package.nix @@ -29,13 +29,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "labwc"; - version = "0.9.6"; + version = "0.9.7"; src = fetchFromGitHub { owner = "labwc"; repo = "labwc"; tag = finalAttrs.version; - hash = "sha256-3svQnSFdzKTfGLSjiNjswb4B5n0htQTltxhRmUbZD20="; + hash = "sha256-7lq/lcaYSc+mJOTkjtwF0LjOAg4Uck3BwAc+2RIntYo="; }; outputs = [ diff --git a/pkgs/by-name/lm/lmms-full/package.nix b/pkgs/by-name/lm/lmms-full/package.nix new file mode 100644 index 000000000000..20ba81e4a1ac --- /dev/null +++ b/pkgs/by-name/lm/lmms-full/package.nix @@ -0,0 +1,8 @@ +{ lmms }: + +lmms.override { + withSoundio = true; + withPortAudio = true; + withSndio = true; + withWine = true; +} diff --git a/pkgs/by-name/lm/lmms/0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch b/pkgs/by-name/lm/lmms/0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch new file mode 100644 index 000000000000..50683962ef4b --- /dev/null +++ b/pkgs/by-name/lm/lmms/0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch @@ -0,0 +1,38 @@ +From 9d05021c4e9370f7e1b8c7595a18ae2b98895a60 Mon Sep 17 00:00:00 2001 +From: "Alexandre Cavalheiro S. Tiago da Silva" +Date: Tue, 28 Jan 2025 18:36:47 -0300 +Subject: [PATCH] fix!: add unique string to FindWine for replacement in nixos + +--- + cmake/modules/FindWine.cmake | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/cmake/modules/FindWine.cmake b/cmake/modules/FindWine.cmake +index eeef8d9c2..c04ee4a35 100644 +--- a/cmake/modules/FindWine.cmake ++++ b/cmake/modules/FindWine.cmake +@@ -13,6 +13,13 @@ + # WINE_64_FLAGS - 64-bit linker flags + # + ++set(WINE_INCLUDE_DIR @WINE_LOCATION@/include) ++set(WINE_BUILD @WINE_LOCATION@/bin/winebuild) ++set(WINE_CXX @WINE_LOCATION@/bin/wineg++) ++set(WINE_GCC @WINE_LOCATION@/bin/winegcc) ++set(WINE_32_LIBRARY_DIRS @WINE_LOCATION@/lib/wine/i386-unix) ++set(WINE_64_LIBRARY_DIRS @WINE_LOCATION@/lib/wine/x86_64-unix) ++ + MACRO(_findwine_find_flags output expression result) + STRING(REPLACE " " ";" WINEBUILD_FLAGS "${output}") + FOREACH(FLAG ${WINEBUILD_FLAGS}) +@@ -32,6 +39,7 @@ ENDMACRO() + + # Prefer newest wine first + list(APPEND WINE_LOCATIONS ++ @WINE_LOCATION@ + /opt/wine-staging + /opt/wine-devel + /opt/wine-stable +-- +2.47.1 + diff --git a/pkgs/by-name/lm/lmms/0002-fix-gigplayer-linking.patch b/pkgs/by-name/lm/lmms/0002-fix-gigplayer-linking.patch new file mode 100644 index 000000000000..6276f0d3b4db --- /dev/null +++ b/pkgs/by-name/lm/lmms/0002-fix-gigplayer-linking.patch @@ -0,0 +1,49 @@ +Use modern CMake imported target for libgig to ensure proper RPATH propagation. + +The old-style link_directories()/link_libraries() pattern does not propagate +library paths to the install RPATH, causing libgig.so to not be found at +runtime when it is installed in a non-standard directory (e.g. lib/libgig/). + +Using IMPORTED_TARGET with pkg_check_modules creates a PkgConfig::GIG target +that carries include dirs, library paths, and link flags, and CMake correctly +propagates these to the install RPATH via target_link_libraries(). + +Also set CMAKE_INSTALL_RPATH_USE_LINK_PATH in the GigPlayer scope, since the +upstream code only sets it in src/CMakeLists.txt which does not apply to the +sibling plugins/ directory. + +diff -ruN a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -550,7 +550,7 @@ + + # check for libgig + If(WANT_GIG) +- PKG_CHECK_MODULES(GIG gig) ++ PKG_CHECK_MODULES(GIG IMPORTED_TARGET gig) + IF(GIG_FOUND) + SET(LMMS_HAVE_GIG TRUE) + SET(STATUS_GIG "OK") +diff -ruN a/plugins/GigPlayer/CMakeLists.txt b/plugins/GigPlayer/CMakeLists.txt +--- a/plugins/GigPlayer/CMakeLists.txt ++++ b/plugins/GigPlayer/CMakeLists.txt +@@ -1,17 +1,16 @@ + if(LMMS_HAVE_GIG) + INCLUDE(BuildPlugin) +- include_directories(SYSTEM ${GIG_INCLUDE_DIRS}) + SET(CMAKE_AUTOUIC ON) ++ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + + # Required for not crashing loading files with libgig + add_compile_options("-fexceptions") + +- link_directories(${GIG_LIBRARY_DIRS}) +- link_libraries(${GIG_LIBRARIES}) + build_plugin(gigplayer + GigPlayer.cpp GigPlayer.h PatchesDialog.cpp PatchesDialog.h PatchesDialog.ui + MOCFILES GigPlayer.h PatchesDialog.h + EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png" + ) ++ target_link_libraries(gigplayer PkgConfig::GIG) + target_link_libraries(gigplayer SampleRate::samplerate) + endif(LMMS_HAVE_GIG) diff --git a/pkgs/by-name/lm/lmms/package.nix b/pkgs/by-name/lm/lmms/package.nix new file mode 100644 index 000000000000..ecc8e43fadf1 --- /dev/null +++ b/pkgs/by-name/lm/lmms/package.nix @@ -0,0 +1,190 @@ +{ + lib, + stdenv, + fetchFromGitHub, + replaceVars, + unstableGitUpdater, + cmake, + pkg-config, + alsa-lib, + carla, + fftwFloat, + fltk, + fluidsynth, + glibc_multi, + lame, + libgig, + libjack2, + libogg, + libpulseaudio, + libsForQt5, + libsamplerate, + libsoundio, + libsndfile, + libvorbis, + lilv, + lv2, + perl5, + perl5Packages, + portaudio, + qt5, + sndio, + SDL2, + suil, + wineWow64Packages, + withALSA ? true, + withPulseAudio ? true, + withSoundio ? false, + withPortAudio ? false, + withSndio ? false, + withJACK ? true, + withSDL ? true, + withOggVorbis ? true, + withMP3Lame ? true, + withSoundFont ? true, + withZyn ? true, + withSWH ? true, + withSID ? true, + withGIG ? true, + withLV2 ? true, + withVST ? true, + withCarla ? true, + withWine ? false, +}: + +let + winePackages = + if lib.isDerivation wineWow64Packages then wineWow64Packages else wineWow64Packages.minimal; +in +stdenv.mkDerivation (finalAttrs: { + pname = "lmms"; + version = "1.2.2-unstable-2026-04-21"; + + src = fetchFromGitHub { + owner = "LMMS"; + repo = "lmms"; + rev = "fc3dfda961a7923326d2b0d5747e5d8fd941af98"; + hash = "sha256-q8w1CgM2QnkCIOUJlv8r+2zMKl+brbNKoAkhDJEhaN0="; + fetchSubmodules = true; + }; + + strictDeps = true; + __structuredAttrs = true; + + nativeBuildInputs = [ + cmake + libsForQt5.qt5.qttools + pkg-config + qt5.wrapQtAppsHook + ]; + + buildInputs = [ + fftwFloat + libsForQt5.qt5.qtbase + libsForQt5.qt5.qtsvg + libsForQt5.qt5.qtx11extras + libsamplerate + libsndfile + ] + ++ lib.optionals withALSA [ + alsa-lib + ] + ++ lib.optionals withPulseAudio [ + libpulseaudio + ] + ++ lib.optionals withSoundio [ + libsoundio + ] + ++ lib.optionals withPortAudio [ + portaudio + ] + ++ lib.optionals withSndio [ + sndio + ] + ++ lib.optionals withJACK [ + libjack2 + ] + ++ lib.optionals withSDL [ + SDL2 + ] + ++ lib.optionals withOggVorbis [ + libogg + libvorbis + ] + ++ lib.optionals withMP3Lame [ + lame + ] + ++ lib.optionals withSoundFont [ + fluidsynth + ] + ++ lib.optionals withZyn [ + fltk + ] + ++ lib.optionals (withSWH || withSID) [ + perl5 + perl5Packages.ListMoreUtils + perl5Packages.XMLParser + ] + ++ lib.optionals withGIG [ + libgig + ] + ++ lib.optionals withLV2 [ + lilv + lv2 + suil + ] + ++ lib.optionals withCarla [ + carla + ] + ++ lib.optionals withWine [ + glibc_multi + winePackages + ]; + + patches = [ + # Use modern CMake imported target for libgig so that its non-standard + # library path (lib/libgig/) is properly propagated to the install RPATH. + ./0002-fix-gigplayer-linking.patch + ] + ++ lib.optionals withWine [ + (replaceVars ./0001-fix-add-unique-string-to-FindWine-for-replacement-in.patch { + WINE_LOCATION = winePackages; + }) + ]; + + cmakeFlags = [ + # Fix the build with CMake 4. + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" + (lib.cmakeBool "WANT_ALSA" withALSA) + (lib.cmakeBool "WANT_PULSEAUDIO" withPulseAudio) + (lib.cmakeBool "WANT_SOUNDIO" withSoundio) + (lib.cmakeBool "WANT_PORTAUDIO" withPortAudio) + (lib.cmakeBool "WANT_SNDIO" withSndio) + (lib.cmakeBool "WANT_JACK" withJACK) + (lib.cmakeBool "WANT_WEAKJACK" withJACK) + (lib.cmakeBool "WANT_SDL" withSDL) + (lib.cmakeBool "WANT_OGGVORBIS" withOggVorbis) + (lib.cmakeBool "WANT_MP3LAME" withMP3Lame) + (lib.cmakeBool "WANT_SF2" withSoundFont) + (lib.cmakeBool "WANT_GIG" withGIG) + (lib.cmakeBool "WANT_SID" withSID) + (lib.cmakeBool "WANT_SWH" withSWH) + (lib.cmakeBool "WANT_LV2" withLV2) + (lib.cmakeBool "WANT_VST" withVST) + (lib.cmakeBool "WANT_CARLA" withCarla) + ]; + + passthru.updateScript = unstableGitUpdater { }; + + meta = { + description = "DAW similar to FL Studio (music production software)"; + mainProgram = "lmms"; + homepage = "https://lmms.io"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ + wizardlink + jaredmontoya + ]; + }; +}) diff --git a/pkgs/by-name/ls/lsh/package.nix b/pkgs/by-name/ls/lsh/package.nix index bd91034f697a..a24c9bbe8b7c 100644 --- a/pkgs/by-name/ls/lsh/package.nix +++ b/pkgs/by-name/ls/lsh/package.nix @@ -5,14 +5,14 @@ }: buildGoModule (finalAttrs: { pname = "lsh"; - version = "1.5.7"; + version = "1.5.8"; src = fetchFromGitHub { owner = "latitudesh"; repo = "lsh"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-OG1JjQ33BtsALG1CVO+N4N1Q7+6SW99U43lh1+cekDA="; + sha256 = "sha256-BFhVCrl2LS5s38WBtkTjZ+IYCO9VQgIVmel3xwzaBI8="; }; - vendorHash = "sha256-SvbrrunOkJhIB5AlsCY7WrtE+Na/ExEJmVWqfjHNvx4="; + vendorHash = "sha256-vAZYd4fbXsZRqDvSQ1Y+lk3RVY06PqxdJF9DofTa6sQ="; subPackages = [ "." ]; meta = { changelog = "https://github.com/latitudesh/lsh/releases/tag/v${finalAttrs.version}"; diff --git a/pkgs/by-name/ma/mage/package.nix b/pkgs/by-name/ma/mage/package.nix index 193fb03ffea6..11a406e19142 100644 --- a/pkgs/by-name/ma/mage/package.nix +++ b/pkgs/by-name/ma/mage/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "mage"; - version = "1.17.1"; + version = "1.17.2"; src = fetchFromGitHub { owner = "magefile"; repo = "mage"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-PoZqVUT+sKr9UY8OaWjYxaqTSYItOkOdi1FnmGJ1K78="; + sha256 = "sha256-QYvgKq7I+YGoDbECFGtQHPPP/z8oo5n3BT4LoShrEPc="; }; vendorHash = null; diff --git a/pkgs/by-name/ma/marmite/package.nix b/pkgs/by-name/ma/marmite/package.nix index 1863ae4d247d..4cbdb2463861 100644 --- a/pkgs/by-name/ma/marmite/package.nix +++ b/pkgs/by-name/ma/marmite/package.nix @@ -10,16 +10,16 @@ rustPlatform.buildRustPackage rec { pname = "marmite"; - version = "0.2.7"; + version = "0.3.0"; src = fetchFromGitHub { owner = "rochacbruno"; repo = "marmite"; tag = version; - hash = "sha256-EPoBNfKkefOe82jXE3c6Y59iP2N6lLIbRvu65fcIcLg="; + hash = "sha256-Q07xA/TYI2O+8C0/3cTpZx0bt47lS+ilhxck18hzzCw="; }; - cargoHash = "sha256-ec9X4cR3sI1LW9680LB2dPeXQ6fmO/2fmsJmc7s/nxI="; + cargoHash = "sha256-yWl8AWond03tT1CsyCrX72AX5ysow6jPgEtFonpLSyc="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/by-name/ne/nexttrace/package.nix b/pkgs/by-name/ne/nexttrace/package.nix index 185db073aabe..31becd409076 100644 --- a/pkgs/by-name/ne/nexttrace/package.nix +++ b/pkgs/by-name/ne/nexttrace/package.nix @@ -7,15 +7,15 @@ buildGoModule (finalAttrs: { pname = "nexttrace"; - version = "1.6.2"; + version = "1.6.4"; src = fetchFromGitHub { owner = "nxtrace"; repo = "NTrace-core"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-SJjWDnbHXuokNFErMdnwxzBRgIyfuxmZ5j3IisgG93I="; + sha256 = "sha256-atouv41R49HVJui60ivh1OPIDFwtILdu4BU+x0cLVQ4="; }; - vendorHash = "sha256-4MunvXclgbjnd4ZHLey79GFOH9gDbzqXx1UViUEGL9k="; + vendorHash = "sha256-U0OXsZ9eME2paV8+DuPGYuNdaPnfmc4AdaT6cri3Nlw="; buildInputs = [ libpcap ]; diff --git a/pkgs/by-name/nf/nfpm/package.nix b/pkgs/by-name/nf/nfpm/package.nix index fe5a418ee95d..65647d437442 100644 --- a/pkgs/by-name/nf/nfpm/package.nix +++ b/pkgs/by-name/nf/nfpm/package.nix @@ -9,16 +9,16 @@ buildGoModule (finalAttrs: { pname = "nfpm"; - version = "2.46.1"; + version = "2.46.3"; src = fetchFromGitHub { owner = "goreleaser"; repo = "nfpm"; rev = "v${finalAttrs.version}"; - hash = "sha256-lwIPwX/2rAOFbzEnEJT8KDzhPOa4I2eirWf8LtQXy7w="; + hash = "sha256-BdiBEYCO8+YDFI4jKjRBaXtR/XutgBIzJA1xERRtE0U="; }; - vendorHash = "sha256-1rtkkIMlaeFih0ZR8YEZMgbAnvoBQgY00p3QML8qVAc="; + vendorHash = "sha256-cDl/vdnklQJQpSrDHDrC2+K7YiBqPOY3Mv5ApOc63Cw="; ldflags = [ "-s" diff --git a/pkgs/by-name/no/notesnook/package.nix b/pkgs/by-name/no/notesnook/package.nix index 2c1973f7c623..df3f9b4b74c4 100644 --- a/pkgs/by-name/no/notesnook/package.nix +++ b/pkgs/by-name/no/notesnook/package.nix @@ -9,7 +9,7 @@ let pname = "notesnook"; - version = "3.3.14"; + version = "3.3.15"; inherit (stdenv.hostPlatform) system; throwSystem = throw "Unsupported system: ${system}"; @@ -27,10 +27,10 @@ let url = "https://github.com/streetwriters/notesnook/releases/download/v${version}/notesnook_${suffix}"; hash = { - x86_64-linux = "sha256-fI9EI+XltHztwqVLLzHW49NqXNrxw4xZ1nxjEoz3D2o="; - aarch64-linux = "sha256-efg+g2ROR7rlWrcmeqL4y+YgbrOP/9Ylr5RqiLtMCNY="; - x86_64-darwin = "sha256-+cbrTM1w2nOROJvJOr4NBYyXw583aa3xOwYZVf10BCs="; - aarch64-darwin = "sha256-70EB93WXp8ds3izCvaAetmZgIq1PMNCTXXAgBcH1DSM="; + x86_64-linux = "sha256-CGFLiDxhr9VC9U1fppjJX/x0ZWgDWKPymLY4LJAnGxY="; + aarch64-linux = "sha256-dqpYjvxjSb/rSJ4wLJsPGPzdPPOxzpa8LUsdqlPzT/M="; + x86_64-darwin = "sha256-hLKA3z1HDhPzMCBVxDl05DsDexG73rcKHhR5ERQCgJo="; + aarch64-darwin = "sha256-j1SQ/hn/IZ7aZQiIx6UgkOSxs6vqPGS0y4AXkXWcFGM="; } .${system} or throwSystem; }; diff --git a/pkgs/by-name/no/noxdir/package.nix b/pkgs/by-name/no/noxdir/package.nix index a0aee71d00aa..57f8daa9de4e 100644 --- a/pkgs/by-name/no/noxdir/package.nix +++ b/pkgs/by-name/no/noxdir/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "noxdir"; - version = "1.1.0"; + version = "1.2.0"; src = fetchFromGitHub { owner = "crumbyte"; repo = "noxdir"; tag = "v${finalAttrs.version}"; - hash = "sha256-Dq8u2h5l95ZQ7DEi60G8IAeF9kwYQY0KUxq3lq9e3Tk="; + hash = "sha256-xq0oXMsJlhstiLK0VIYqwg7fK1ERwzOGtV8McqCX9G8="; }; - vendorHash = "sha256-Wg1v2oAbaj7gWgj2AgDPZHdsDebgDs8Xcyvo3QYZ1dU="; + vendorHash = "sha256-citZvLDKdhkWma3XKSfMvPOTo1xEpZhovkWTsMTyO+k="; checkPhase = '' runHook preCheck diff --git a/pkgs/by-name/oc/oci-cli/package.nix b/pkgs/by-name/oc/oci-cli/package.nix index 0e8ae3f64604..a393bb78e132 100644 --- a/pkgs/by-name/oc/oci-cli/package.nix +++ b/pkgs/by-name/oc/oci-cli/package.nix @@ -26,14 +26,14 @@ in py.pkgs.buildPythonApplication (finalAttrs: { pname = "oci-cli"; - version = "3.79.0"; + version = "3.80.0"; pyproject = true; src = fetchFromGitHub { owner = "oracle"; repo = "oci-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-VEGfIIUZj8Ee6XZMzKxltPczFBoC6bg1U+06vMhkGpg="; + hash = "sha256-ss7nKT4dIyJxJNBK8HgAPXG0lS5MMZw7sw8hPjLqYUQ="; }; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/by-name/ot/otus-lisp/package.nix b/pkgs/by-name/ot/otus-lisp/package.nix index 1de3f09f8f05..bf5d62c0f378 100644 --- a/pkgs/by-name/ot/otus-lisp/package.nix +++ b/pkgs/by-name/ot/otus-lisp/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "otus-lisp"; - version = "2.6"; + version = "2.7"; src = fetchFromGitHub { owner = "yuriy-chumak"; repo = "ol"; rev = finalAttrs.version; - hash = "sha256-5ixpTTXwJbLM2mJ/nwzjz0aKG/QGVLPScY8EaG7swGU="; + hash = "sha256-7QUyfA9aEZ0VJO4Un2jCyXIxl98tsW4/KjW7LWDnMtU="; }; nativeBuildInputs = [ xxd ]; diff --git a/pkgs/by-name/ow/owncast/fix-go.sum.diff b/pkgs/by-name/ow/owncast/fix-go.sum.diff deleted file mode 100644 index 46cd99d2d32d..000000000000 --- a/pkgs/by-name/ow/owncast/fix-go.sum.diff +++ /dev/null @@ -1,128 +0,0 @@ -diff --git a/go.mod b/go.mod -index 7c512f8f22..4b702c6048 100644 ---- a/go.mod -+++ b/go.mod -@@ -45,6 +45,7 @@ require ( - 4d63.com/gochecknoglobals v0.2.2 // indirect - cel.dev/expr v0.24.0 // indirect - codeberg.org/chavacava/garif v0.2.0 // indirect -+ codeberg.org/polyfloyd/go-errorlint v1.9.0 // indirect - dev.gaijin.team/go/exhaustruct/v4 v4.0.0 // indirect - dev.gaijin.team/go/golib v0.6.0 // indirect - filippo.io/edwards25519 v1.1.0 // indirect -@@ -194,6 +195,7 @@ require ( - github.com/ldez/exptostd v0.4.5 // indirect - github.com/ldez/gomoddirectives v0.8.0 // indirect - github.com/ldez/grignotin v0.10.1 // indirect -+ github.com/ldez/structtags v0.6.1 // indirect - github.com/ldez/tagliatelle v0.7.2 // indirect - github.com/ldez/usetesting v0.5.0 // indirect - github.com/leonklingele/grouper v1.1.2 // indirect -diff --git a/go.sum b/go.sum -index 61f1d39577..8818677916 100644 ---- a/go.sum -+++ b/go.sum -@@ -6,6 +6,8 @@ cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= - cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= - codeberg.org/chavacava/garif v0.2.0 h1:F0tVjhYbuOCnvNcU3YSpO6b3Waw6Bimy4K0mM8y6MfY= - codeberg.org/chavacava/garif v0.2.0/go.mod h1:P2BPbVbT4QcvLZrORc2T29szK3xEOlnl0GiPTJmEqBQ= -+codeberg.org/polyfloyd/go-errorlint v1.9.0 h1:VkdEEmA1VBpH6ecQoMR4LdphVI3fA4RrCh2an7YmodI= -+codeberg.org/polyfloyd/go-errorlint v1.9.0/go.mod h1:GPRRu2LzVijNn4YkrZYJfatQIdS+TrcK8rL5Xs24qw8= - dev.gaijin.team/go/exhaustruct/v4 v4.0.0 h1:873r7aNneqoBB3IaFIzhvt2RFYTuHgmMjoKfwODoI1Y= - dev.gaijin.team/go/exhaustruct/v4 v4.0.0/go.mod h1:aZ/k2o4Y05aMJtiux15x8iXaumE88YdiB0Ai4fXOzPI= - dev.gaijin.team/go/golib v0.6.0 h1:v6nnznFTs4bppib/NyU1PQxobwDHwCXXl15P7DV5Zgo= -@@ -29,6 +31,7 @@ github.com/Antonboom/testifylint v1.6.4/go.mod h1:YO33FROXX2OoUfwjz8g+gUxQXio5i9 - github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= - github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= - github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -+github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk= - github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= - github.com/CAFxX/httpcompression v0.0.9 h1:0ue2X8dOLEpxTm8tt+OdHcgA+gbDge0OqFQWGKSqgrg= - github.com/CAFxX/httpcompression v0.0.9/go.mod h1:XX8oPZA+4IDcfZ0A71Hz0mZsv/YJOgYygkFhizVPilM= -@@ -40,6 +43,7 @@ github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1 - github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= - github.com/MirrexOne/unqueryvet v1.3.0 h1:5slWSomgqpYU4zFuZ3NNOfOUxVPlXFDBPAVasZOGlAY= - github.com/MirrexOne/unqueryvet v1.3.0/go.mod h1:IWwCwMQlSWjAIteW0t+28Q5vouyktfujzYznSIWiuOg= -+github.com/MirrexOne/unqueryvet v1.4.0 h1:6KAkqqW2KUnkl9Z0VuTphC3IXRPoFqEkJEtyxxHj5eQ= - github.com/MirrexOne/unqueryvet v1.4.0/go.mod h1:IWwCwMQlSWjAIteW0t+28Q5vouyktfujzYznSIWiuOg= - github.com/OpenPeeDeeP/depguard/v2 v2.2.1 h1:vckeWVESWp6Qog7UZSARNqfu/cZqvki8zsuj3piCMx4= - github.com/OpenPeeDeeP/depguard/v2 v2.2.1/go.mod h1:q4DKzC4UcVaAvcfd41CZh0PWpGgzrVxUYBlgKNGquUo= -@@ -52,6 +56,7 @@ github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8v - github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= - github.com/alecthomas/chroma/v2 v2.20.0 h1:sfIHpxPyR07/Oylvmcai3X/exDlE8+FA820NTz+9sGw= - github.com/alecthomas/chroma/v2 v2.20.0/go.mod h1:e7tViK0xh/Nf4BYHl00ycY6rV7b8iXBksI9E359yNmA= -+github.com/alecthomas/chroma/v2 v2.21.1 h1:FaSDrp6N+3pphkNKU6HPCiYLgm8dbe5UXIXcoBhZSWA= - github.com/alecthomas/chroma/v2 v2.21.1/go.mod h1:NqVhfBR0lte5Ouh3DcthuUCTUpDC9cxBOfyMbMQPs3o= - github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU= - github.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E= -@@ -63,6 +68,7 @@ github.com/alexkohler/nakedret/v2 v2.0.6 h1:ME3Qef1/KIKr3kWX3nti3hhgNxw6aqN5pZmQ - github.com/alexkohler/nakedret/v2 v2.0.6/go.mod h1:l3RKju/IzOMQHmsEvXwkqMDzHHvurNQfAgE1eVmT40Q= - github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= - github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= -+github.com/alexkohler/prealloc v1.0.1 h1:A9P1haqowqUxWvU9nk6tQ7YktXIHf+LQM9wPRhuteEE= - github.com/alexkohler/prealloc v1.0.1/go.mod h1:fT39Jge3bQrfA7nPMDngUfvUbQGQeJyGQnR+913SCig= - github.com/alfatraining/structtag v1.0.0 h1:2qmcUqNcCoyVJ0up879K614L9PazjBSFruTB0GOFjCc= - github.com/alfatraining/structtag v1.0.0/go.mod h1:p3Xi5SwzTi+Ryj64DqjLWz7XurHxbGsq6y3ubePJPus= -@@ -188,11 +194,13 @@ github.com/getkin/kin-openapi v0.133.0 h1:pJdmNohVIJ97r4AUFtEXRXwESr8b0bD721u/Tz - github.com/getkin/kin-openapi v0.133.0/go.mod h1:boAciF6cXk5FhPqe/NQeBTeenbjqU4LhWBf09ILVvWE= - github.com/ghostiam/protogetter v0.3.17 h1:sjGPErP9o7i2Ym+z3LsQzBdLCNaqbYy2iJQPxGXg04Q= - github.com/ghostiam/protogetter v0.3.17/go.mod h1:AivIX1eKA/TcUmzZdzbl+Tb8tjIe8FcyG6JFyemQAH4= -+github.com/ghostiam/protogetter v0.3.18 h1:yEpghRGtP9PjKvVXtEzGpYfQj1Wl/ZehAfU6fr62Lfo= - github.com/ghostiam/protogetter v0.3.18/go.mod h1:FjIu5Yfs6FT391m+Fjp3fbAYJ6rkL/J6ySpZBfnODuI= - github.com/go-chi/chi/v5 v5.2.3 h1:WQIt9uxdsAbgIYgid+BpYc+liqQZGMHRaUwp0JUcvdE= - github.com/go-chi/chi/v5 v5.2.3/go.mod h1:L2yAIGWB3H+phAw1NxKwWM+7eUH/lU8pOMm5hHcoops= - github.com/go-critic/go-critic v0.14.2 h1:PMvP5f+LdR8p6B29npvChUXbD1vrNlKDf60NJtgMBOo= - github.com/go-critic/go-critic v0.14.2/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= -+github.com/go-critic/go-critic v0.14.3 h1:5R1qH2iFeo4I/RJU8vTezdqs08Egi4u5p6vOESA0pog= - github.com/go-critic/go-critic v0.14.3/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= - github.com/go-fed/httpsig v0.1.1-0.20190914113940-c2de3672e5b5/go.mod h1:T56HUNYZUQ1AGUzhAYPugZfp36sKApVnGBgKlIY+aIE= - github.com/go-fed/httpsig v1.1.0 h1:9M+hb0jkEICD8/cAiNqEB66R87tTINszBRTjwjQzWcI= -@@ -251,6 +259,7 @@ github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= - github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= - github.com/godoc-lint/godoc-lint v0.10.2 h1:dksNgK+zebnVlj4Fx83CRnCmPO0qRat/9xfFsir1nfg= - github.com/godoc-lint/godoc-lint v0.10.2/go.mod h1:KleLcHu/CGSvkjUH2RvZyoK1MBC7pDQg4NxMYLcBBsw= -+github.com/godoc-lint/godoc-lint v0.11.1 h1:z9as8Qjiy6miRIa3VRymTa+Gt2RLnGICVikcvlUVOaA= - github.com/godoc-lint/godoc-lint v0.11.1/go.mod h1:BAqayheFSuZrEAqCRxgw9MyvsM+S/hZwJbU1s/ejRj8= - github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= - github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= -@@ -279,9 +288,11 @@ github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d h1:viFft9sS/dxoYY0a - github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d/go.mod h1:ivJ9QDg0XucIkmwhzCDsqcnxxlDStoTl89jDMIoNxKY= - github.com/golangci/golangci-lint/v2 v2.7.2 h1:AhBC+YeEueec4AGlIbvPym5C70Thx0JykIqXbdIXWx0= - github.com/golangci/golangci-lint/v2 v2.7.2/go.mod h1:pDijleoBu7e8sejMqyZ3L5n6geqe+cVvOAz2QImqqVc= -+github.com/golangci/golangci-lint/v2 v2.8.0 h1:wJnr3hJWY3eVzOUcfwbDc2qbi2RDEpvLmQeNFaPSNYA= - github.com/golangci/golangci-lint/v2 v2.8.0/go.mod h1:xl+HafQ9xoP8rzw0z5AwnO5kynxtb80e8u02Ej/47RI= - github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95 h1:AkK+w9FZBXlU/xUmBtSJN1+tAI4FIvy5WtnUnY8e4p8= - github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95/go.mod h1:k9mmcyWKSTMcPPvQUCfRWWQ9VHJ1U9Dc0R7kaXAgtnQ= -+github.com/golangci/golines v0.14.0 h1:xt9d3RKBjhasA3qpoXs99J2xN2t6eBlpLHt0TrgyyXc= - github.com/golangci/golines v0.14.0/go.mod h1:gf555vPG2Ia7mmy2mzmhVQbVjuK8Orw0maR1G4vVAAQ= - github.com/golangci/misspell v0.7.0 h1:4GOHr/T1lTW0hhR4tgaaV1WS/lJ+ncvYCoFKmqJsj0c= - github.com/golangci/misspell v0.7.0/go.mod h1:WZyyI2P3hxPY2UVHs3cS8YcllAeyfquQcKfdeE9AFVg= -@@ -424,9 +435,12 @@ github.com/ldez/exptostd v0.4.5 h1:kv2ZGUVI6VwRfp/+bcQ6Nbx0ghFWcGIKInkG/oFn1aQ= - github.com/ldez/exptostd v0.4.5/go.mod h1:QRjHRMXJrCTIm9WxVNH6VW7oN7KrGSht69bIRwvdFsM= - github.com/ldez/gomoddirectives v0.7.1 h1:FaULkvUIG36hj6chpwa+FdCNGZBsD7/fO+p7CCsM6pE= - github.com/ldez/gomoddirectives v0.7.1/go.mod h1:auDNtakWJR1rC+YX7ar+HmveqXATBAyEK1KYpsIRW/8= -+github.com/ldez/gomoddirectives v0.8.0 h1:JqIuTtgvFC2RdH1s357vrE23WJF2cpDCPFgA/TWDGpk= - github.com/ldez/gomoddirectives v0.8.0/go.mod h1:jutzamvZR4XYJLr0d5Honycp4Gy6GEg2mS9+2YX3F1Q= - github.com/ldez/grignotin v0.10.1 h1:keYi9rYsgbvqAZGI1liek5c+jv9UUjbvdj3Tbn5fn4o= - github.com/ldez/grignotin v0.10.1/go.mod h1:UlDbXFCARrXbWGNGP3S5vsysNXAPhnSuBufpTEbwOas= -+github.com/ldez/structtags v0.6.1 h1:bUooFLbXx41tW8SvkfwfFkkjPYvFFs59AAMgVg6DUBk= -+github.com/ldez/structtags v0.6.1/go.mod h1:YDxVSgDy/MON6ariaxLF2X09bh19qL7MtGBN5MrvbdY= - github.com/ldez/tagliatelle v0.7.2 h1:KuOlL70/fu9paxuxbeqlicJnCspCRjH0x8FW+NfgYUk= - github.com/ldez/tagliatelle v0.7.2/go.mod h1:PtGgm163ZplJfZMZ2sf5nhUT170rSuPgBimoyYtdaSI= - github.com/ldez/usetesting v0.5.0 h1:3/QtzZObBKLy1F4F8jLuKJiKBjjVFi1IavpoWbmqLwc= -@@ -630,6 +644,7 @@ github.com/schollz/sqlite3dump v1.3.1 h1:QXizJ7XEJ7hggjqjZ3YRtF3+javm8zKtzNByYtE - github.com/schollz/sqlite3dump v1.3.1/go.mod h1:mzSTjZpJH4zAb1FN3iNlhWPbbdyeBpOaTW0hukyMHyI= - github.com/securego/gosec/v2 v2.22.11-0.20251204091113-daccba6b93d7 h1:rZg6IGn0ySYZwCX8LHwZoYm03JhG/cVAJJ3O+u3Vclo= - github.com/securego/gosec/v2 v2.22.11-0.20251204091113-daccba6b93d7/go.mod h1:9sr22NZO5Kfh7unW/xZxkGYTmj2484/fCiE54gw7UTY= -+github.com/securego/gosec/v2 v2.22.11 h1:tW+weM/hCM/GX3iaCV91d5I6hqaRT2TPsFM1+USPXwg= - github.com/securego/gosec/v2 v2.22.11/go.mod h1:KE4MW/eH0GLWztkbt4/7XpyH0zJBBnu7sYB4l6Wn7Mw= - github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= - github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= -@@ -964,6 +979,7 @@ golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg - golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= - golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= - golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= -+golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= - golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= - golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM= - golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= diff --git a/pkgs/by-name/ow/owncast/package.nix b/pkgs/by-name/ow/owncast/package.nix index db5c523b0900..4d9cdde6e826 100644 --- a/pkgs/by-name/ow/owncast/package.nix +++ b/pkgs/by-name/ow/owncast/package.nix @@ -9,7 +9,7 @@ makeBinaryWrapper, }: let - version = "0.2.4"; + version = "0.2.5"; in buildGoModule { pname = "owncast"; @@ -19,14 +19,12 @@ buildGoModule { owner = "owncast"; repo = "owncast"; tag = "v${version}"; - hash = "sha256-euqmAsGLh7enMbRKeGS7pB3L+12uAHFM2mqahst/bww="; + hash = "sha256-REgo9RC1izb9vJ6ae66Wti9yfP8DrCGetf6O4rX3DPY="; }; - patches = [ - ./fix-go.sum.diff - ]; + vendorHash = "sha256-T4nr4lNUEq6grZ21qumaOjIDIDoJK7Ql8j8WbCy2u3g=n"; - vendorHash = "sha256-XQXv1XeedHQozB56+boi32jsXQoCtD2XIg3deDvXIfw="; + subPackages = [ "." ]; propagatedBuildInputs = [ ffmpeg ]; diff --git a/pkgs/by-name/ox/oxipng/package.nix b/pkgs/by-name/ox/oxipng/package.nix index 47cce6215b2a..8465b485d793 100644 --- a/pkgs/by-name/ox/oxipng/package.nix +++ b/pkgs/by-name/ox/oxipng/package.nix @@ -5,7 +5,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - version = "10.1.0"; + version = "10.1.1"; pname = "oxipng"; # do not use fetchCrate (only repository includes tests) @@ -13,10 +13,10 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "shssoichiro"; repo = "oxipng"; tag = "v${finalAttrs.version}"; - hash = "sha256-fPzdko8qcg9zcr79SrEakLqTFj9hDCakl6hTVpW9al8="; + hash = "sha256-G06GAlxEVOqt2xHq+JOLSYbsa++aArbu+sb0ypQn9u4="; }; - cargoHash = "sha256-P8PT75TwdYeS9xJ7EEdIhlgHfd0VlIPUaLkM0SfRPq0="; + cargoHash = "sha256-gRWDpxZGy01lWgCIse4Tf7gjwxzosozONB3LD5pX5KQ="; # don't require qemu for aarch64-linux tests # error: linker `aarch64-linux-gnu-gcc` not found diff --git a/pkgs/by-name/pa/papeer/package.nix b/pkgs/by-name/pa/papeer/package.nix index 03154dfd36dc..33a9b4c51bc4 100644 --- a/pkgs/by-name/pa/papeer/package.nix +++ b/pkgs/by-name/pa/papeer/package.nix @@ -6,16 +6,16 @@ buildGoModule (finalAttrs: { pname = "papeer"; - version = "0.8.7"; + version = "0.8.8"; src = fetchFromGitHub { owner = "lapwat"; repo = "papeer"; rev = "v${finalAttrs.version}"; - hash = "sha256-Qe+3rHEV+Env5sr9acdDqEzAi3PeN8/7fLoDz/B6GWo="; + hash = "sha256-ZfJ8ABdp5G4j/FQCJwDz0O+CCbV2rn8e7Rhwj699h+I="; }; - vendorHash = "sha256-yGoRvPwlXA6FN67nQH/b0QpGQ2xXTCmXWNLInlcVk7k="; + vendorHash = "sha256-PlpulU0nlZA3Vmiqn/rqAS73yJniTECje7uc7kjE6aw="; doCheck = false; # uses network diff --git a/pkgs/by-name/pa/parca-agent/package.nix b/pkgs/by-name/pa/parca-agent/package.nix index bf4ec227d0eb..8ea5cbcba8a8 100644 --- a/pkgs/by-name/pa/parca-agent/package.nix +++ b/pkgs/by-name/pa/parca-agent/package.nix @@ -8,18 +8,18 @@ buildGoModule (finalAttrs: { pname = "parca-agent"; - version = "0.47.0"; + version = "0.47.1"; src = fetchFromGitHub { owner = "parca-dev"; repo = "parca-agent"; tag = "v${finalAttrs.version}"; - hash = "sha256-jnlynhwvjQRatx+0MO9EDA0q1TqmuDeeTdD7L6HzVi0="; + hash = "sha256-wIM5LZ6GwvGc0WobMtMe7nc8VyAH4XA056JBovwhSqo="; fetchSubmodules = true; }; proxyVendor = true; - vendorHash = "sha256-W6m8L3dsqaHycSrvqY6mmpCHW4cSM+uGKei2JtjRc/Y="; + vendorHash = "sha256-j35dXQ7SG+nT6UGFZE8NafmqlwKP8D5QOLG+PT4qxyo="; buildInputs = [ stdenv.cc.libc.static diff --git a/pkgs/by-name/pr/prek/package.nix b/pkgs/by-name/pr/prek/package.nix index 40e728c575dc..a9343a1cb203 100644 --- a/pkgs/by-name/pr/prek/package.nix +++ b/pkgs/by-name/pr/prek/package.nix @@ -13,16 +13,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "prek"; - version = "0.3.9"; + version = "0.3.10"; src = fetchFromGitHub { owner = "j178"; repo = "prek"; tag = "v${finalAttrs.version}"; - hash = "sha256-gfWaJxcT44+yEkZtDSQwKP1oILMUsF4apYeety+XESM="; + hash = "sha256-boyeL8JIEahDh7veCb/h0YZj7IwVrraXjQZul459sMM="; }; - cargoHash = "sha256-dKSsH4IUWLdlthvAmS+MmuAVicCCKefy1D4YleRO0fI="; + cargoHash = "sha256-hmaZP6tZpBH1MsgO/WIt75/98E4cHfdpLTfhEgP8Rvw="; nativeBuildInputs = [ installShellFiles diff --git a/pkgs/by-name/pr/proton-vpn-cli/package.nix b/pkgs/by-name/pr/proton-vpn-cli/package.nix index f937c1a2f31c..c8a05a6faba6 100644 --- a/pkgs/by-name/pr/proton-vpn-cli/package.nix +++ b/pkgs/by-name/pr/proton-vpn-cli/package.nix @@ -9,14 +9,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "proton-vpn-cli"; - version = "1.0.0"; + version = "1.0.1"; pyproject = true; src = fetchFromGitHub { owner = "ProtonVPN"; repo = "proton-vpn-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-TIS1vhiOaX0ADKD1WRiPv+WYj0LwHmUuqyctygpaBho="; + hash = "sha256-CkkytFC3Zr/l2EV5W70kssN1v11F23oZpDvf7JWqmvQ="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/pr/proton-vpn/linux.nix b/pkgs/by-name/pr/proton-vpn/linux.nix index d14ed210c869..a593f473279f 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.2"; + version = "4.15.3"; pyproject = true; src = fetchFromGitHub { owner = "ProtonVPN"; repo = "proton-vpn-gtk-app"; tag = "v${finalAttrs.version}"; - hash = "sha256-spxlYITDo2TZp4Qv47/HmiIaGU07THZXLG5cFIFZrow="; + hash = "sha256-2v8BckNmm7Ecw+uAgOyfofHDPWgXkJJ8DmhMszb0tg0="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ra/radicle-explorer/package.nix b/pkgs/by-name/ra/radicle-explorer/package.nix index f11e26d9af52..8eb318f90ad6 100644 --- a/pkgs/by-name/ra/radicle-explorer/package.nix +++ b/pkgs/by-name/ra/radicle-explorer/package.nix @@ -62,7 +62,7 @@ lib.fix ( self: lib.makeOverridable ( { - npmDepsHash ? "sha256-nVfFeJXSPO1GVkBkWflARZl2Geyt5ARTn0HVglnPlc0=", + npmDepsHash ? "sha256-8vmAs788PjdUTaQ5E8YLX0KiIPymJbH51oNaGZACe6I=", patches ? [ ], }@args: buildNpmPackage { @@ -75,7 +75,7 @@ lib.fix ( # radicle-httpd using a more limited sparse checkout we need to carry a # separate hash. src = radicle-httpd.src.override { - hash = "sha256-8lMUPt2eVlspMlRxUjOvjtCsd/EXg0IDSVjXxMVzbe4="; + hash = "sha256-cnQsPWkRChC8yPrICRoUpGW2GGLB2TK9+3v8ZRGe3x0="; sparseCheckout = [ ]; }; diff --git a/pkgs/by-name/ra/radicle-httpd/package.nix b/pkgs/by-name/ra/radicle-httpd/package.nix index 852e76731b55..f248387f5b9c 100644 --- a/pkgs/by-name/ra/radicle-httpd/package.nix +++ b/pkgs/by-name/ra/radicle-httpd/package.nix @@ -15,7 +15,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "radicle-httpd"; - version = "0.24.0"; + version = "0.25.0"; env.RADICLE_VERSION = finalAttrs.version; @@ -25,12 +25,12 @@ rustPlatform.buildRustPackage (finalAttrs: { repo = "z4V1sjrXqjvFdnCUbxPFqd5p4DtH5"; tag = "releases/${finalAttrs.version}"; sparseCheckout = [ "radicle-httpd" ]; - hash = "sha256-749hFe7GJz/YUmocW5MO7uKWLTo3W4wJYSXdIURcRtg="; + hash = "sha256-gejNiCQ511OGGItmqXoyB+TmsUw+ozoEmOWooBXBkQ8="; }; sourceRoot = "${finalAttrs.src.name}/radicle-httpd"; - cargoHash = "sha256-6uHukSsNnnk11tudFnNvNd+ZXmwGxMSYArsiaCaabWk="; + cargoHash = "sha256-Oawin/2R5dZ46pf3SarwNgILF9dXSkw02Z4gYQ4HtzE="; nativeBuildInputs = [ asciidoctor diff --git a/pkgs/by-name/ra/rapidraw/package.nix b/pkgs/by-name/ra/rapidraw/package.nix index 50018378b463..28369cea433c 100644 --- a/pkgs/by-name/ra/rapidraw/package.nix +++ b/pkgs/by-name/ra/rapidraw/package.nix @@ -42,20 +42,20 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "rapidraw"; - version = "1.5.3"; + version = "1.5.4"; src = fetchFromGitHub { owner = "CyberTimon"; repo = "RapidRAW"; tag = "v${finalAttrs.version}"; - hash = "sha256-NYns/hpa8E4oko3qxyrJaTpgH5b+dwr0dTFw+K3IBDo="; + hash = "sha256-T7qBa0CEVfvc6qWxdJe0pbJAN3VNrpP9EKaX2R+PtUw="; }; - cargoHash = "sha256-wuTbUPkPJTg6WZYrffrfPm+Asr0PuL5UAsZL+qWM4Oo="; + cargoHash = "sha256-kyJIHfrb3Tlm3IYQxU6N9mB9JxZWmMcBsPXHQmTwxAg="; npmDeps = fetchNpmDeps { inherit (finalAttrs) src; - hash = "sha256-CBCj1R6ClnRh5Y4liKNiewRPb2lIb17TSB9eumVcKkY="; + hash = "sha256-1A6b63FjNvkAbu62dRXfMjTL1y2wr2gEsZkLqYvTk0w="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/re/reframe/package.nix b/pkgs/by-name/re/reframe/package.nix new file mode 100644 index 000000000000..04c49bd6953d --- /dev/null +++ b/pkgs/by-name/re/reframe/package.nix @@ -0,0 +1,93 @@ +{ + lib, + stdenv, + fetchFromGitHub, + pkg-config, + meson, + ninja, + cmake, + systemd, + glib, + gtk4, + libdrm, + libepoxy, + libxkbcommon, + libvncserver, + neatvnc, + aml, + pixman, + zlib, + ffmpeg, + nix-update-script, + + withNeatVNC ? true, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "reframe"; + version = "1.15.1"; + + src = fetchFromGitHub { + owner = "AlynxZhou"; + repo = "reframe"; + tag = "v${finalAttrs.version}"; + hash = "sha256-3ZCLnmu5Idn4RsypJr+JNqIhT13/pq1Xi4wTidUgCqQ="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + meson + ninja + cmake + pkg-config + ]; + + buildInputs = [ + systemd + glib + gtk4 + libdrm + libepoxy + libxkbcommon + libvncserver + ] + ++ lib.optionals withNeatVNC [ + neatvnc + aml + pixman + zlib + ffmpeg + ]; + + passthru = { + updateScript = nix-update-script { }; + }; + + mesonFlags = [ + (lib.mesonOption "systemunitdir" "${placeholder "out"}/lib/systemd/system") + (lib.mesonOption "sysusersdir" "${placeholder "out"}/lib/sysusers.d") + (lib.mesonOption "tmpfilesdir" "${placeholder "out"}/lib/tmpfiles.d") + ] + ++ lib.optionals withNeatVNC [ (lib.mesonOption "neatvnc" "true") ]; + + postPatch = '' + chmod +x meson_post_install.sh + patchShebangs meson_post_install.sh + + # Comment out all commands, all systemd reloading + sed -i '1,2! s/^/# /' meson_post_install.sh + ''; + + strictDeps = true; + __structuredAttrs = true; + + meta = { + homepage = "https://reframe.alynx.one/"; + description = "DRM/KMS based remote desktop for Linux that supports Wayland/NVIDIA/headless/login…"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ + bitbloxhub + ]; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/by-name/sf/sftpgo-plugin-auth/package.nix b/pkgs/by-name/sf/sftpgo-plugin-auth/package.nix new file mode 100644 index 000000000000..27eed8123550 --- /dev/null +++ b/pkgs/by-name/sf/sftpgo-plugin-auth/package.nix @@ -0,0 +1,40 @@ +{ + buildGoModule, + fetchFromGitHub, + lib, + nix-update-script, +}: +buildGoModule (finalAttrs: { + pname = "sftpgo-plugin-auth"; + version = "1.0.14"; + + src = fetchFromGitHub { + owner = "sftpgo"; + repo = "sftpgo-plugin-auth"; + tag = "v${finalAttrs.version}"; + hash = "sha256-Aw9n4CBmsWEqhNol5Ge/Ae5uaZn4zp6sIc8N6L724H4="; + }; + + vendorHash = "sha256-ZCkKr0hpHx37T9DfaYev9jxkpNcDPF9R0YsCkw2/pA8="; + + env.CGO_ENABLED = "0"; + + ldflags = [ + "-s" + "-X github.com/sftpgo/sftpgo-plugin-auth/cmd.commitHash=${finalAttrs.src.rev}" + ]; + + subPackages = [ "." ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + homepage = "https://github.com/sftpgo/sftpgo-plugin-auth"; + changelog = "https://github.com/sftpgo/sftpgo-plugin-auth/releases/tag/${finalAttrs.src.tag}"; + description = "LDAP/Active Directory authentication for SFTPGo"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ connor-grady ]; + mainProgram = "sftpgo-plugin-auth"; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/si/sing-box/package.nix b/pkgs/by-name/si/sing-box/package.nix index 3c8132773e1b..4790d96c0355 100644 --- a/pkgs/by-name/si/sing-box/package.nix +++ b/pkgs/by-name/si/sing-box/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "sing-box"; - version = "1.13.5"; + version = "1.13.9"; src = fetchFromGitHub { owner = "SagerNet"; repo = "sing-box"; tag = "v${finalAttrs.version}"; - hash = "sha256-vHc3j96e5KGGMcTJFaUKSC4dQWlNThRZKirZ/waIYUM="; + hash = "sha256-mEvvFSIK2U/IZ8VGGwe3aipnko6dW8DRvjdKPXTrdoo="; }; - vendorHash = "sha256-LgwU4l4JvgLcdj8FBazzaJcKIa3X/Poe1+GjE+GTrHw="; + vendorHash = "sha256-Wk72wVRKoJZ7nEiiQZZ8w2hKiuanYFnLFWlFxj6cZBA="; tags = [ "with_gvisor" diff --git a/pkgs/by-name/sn/snapper/package.nix b/pkgs/by-name/sn/snapper/package.nix index 7230dae389b1..e101e4724349 100644 --- a/pkgs/by-name/sn/snapper/package.nix +++ b/pkgs/by-name/sn/snapper/package.nix @@ -27,13 +27,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "snapper"; - version = "0.13.0"; + version = "0.13.1"; src = fetchFromGitHub { owner = "openSUSE"; repo = "snapper"; tag = "v${finalAttrs.version}"; - hash = "sha256-8rIjfulMuh4HzZv08bX7gveJAo2X2GvswmBD3Ziu0NM="; + hash = "sha256-oPIIEReHWkWSj4K/mi1VD3Ukaltquzqh8UVBPc4q+vw="; }; strictDeps = true; diff --git a/pkgs/by-name/st/stacktile/package.nix b/pkgs/by-name/st/stacktile/package.nix index d51cfcb08b1e..7796617df9cb 100644 --- a/pkgs/by-name/st/stacktile/package.nix +++ b/pkgs/by-name/st/stacktile/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromSourcehut, + fetchpatch, wayland, wayland-scanner, }: @@ -17,6 +18,13 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-IOFxgYMjh92jx2CPfBRZDL/1ucgfHtUyAL5rS2EG+Gc="; }; + patches = [ + (fetchpatch { + url = "https://aur.archlinux.org/cgit/aur.git/plain/fix-compilation.patch?h=stacktile&id=388a522b69e34c01cc5d57341d8578470a7dccfb"; + hash = "sha256-y5ArQyjIqT2ICmm8ZYDHZ04DwGgw2d7wsgoH5XJPZf0="; + }) + ]; + outputs = [ "out" "man" diff --git a/pkgs/by-name/su/supercronic/package.nix b/pkgs/by-name/su/supercronic/package.nix index 221077f0aea8..1776735f3e91 100644 --- a/pkgs/by-name/su/supercronic/package.nix +++ b/pkgs/by-name/su/supercronic/package.nix @@ -9,16 +9,16 @@ buildGoModule (finalAttrs: { pname = "supercronic"; - version = "0.2.44"; + version = "0.2.45"; src = fetchFromGitHub { owner = "aptible"; repo = "supercronic"; rev = "v${finalAttrs.version}"; - hash = "sha256-xtTQ5T+/kVnh4sjIN/N9HN9MeEd2ekAzSkvYdei0dKA="; + hash = "sha256-QOWNC9RZb5FmCChcs8DvgbrW8F66IG9nteR997n0B7k="; }; - vendorHash = "sha256-azjkMzmAhAKyHx/43cP0kpgo0mKM8Yh+LWHiR7audQw="; + vendorHash = "sha256-x/OSHI5HIG8Bo0FV+TzJ1o7d6+1gXida23dSxi5QiQQ="; excludedPackages = [ "cronexpr/cronexpr" ]; diff --git a/pkgs/by-name/ta/taskflow/add-pkg-config-support.patch b/pkgs/by-name/ta/taskflow/add-pkg-config-support.patch new file mode 100644 index 000000000000..3eb447d6d3bb --- /dev/null +++ b/pkgs/by-name/ta/taskflow/add-pkg-config-support.patch @@ -0,0 +1,31 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 063fd793..99998a6b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -377,3 +377,13 @@ install( + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + ) + ++ ++# ----------------------------------------------------------------------------- ++# pkg-config ++# ----------------------------------------------------------------------------- ++ ++configure_file(taskflow.pc.in taskflow.pc @ONLY) ++install( ++ FILES ${CMAKE_CURRENT_BINARY_DIR}/taskflow.pc ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ++) +diff --git a/taskflow.pc.in b/taskflow.pc.in +new file mode 100644 +index 00000000..fc649288 +--- /dev/null ++++ b/taskflow.pc.in +@@ -0,0 +1,7 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ ++ ++Name: Taskflow ++Description: A General-purpose Task-parallel Programming System ++Version: @PROJECT_VERSION@ ++Cflags: -I${includedir} diff --git a/pkgs/by-name/ta/taskflow/package.nix b/pkgs/by-name/ta/taskflow/package.nix index 14e3cb8176e2..65471bef8a46 100644 --- a/pkgs/by-name/ta/taskflow/package.nix +++ b/pkgs/by-name/ta/taskflow/package.nix @@ -2,6 +2,7 @@ cmake, doctest, fetchFromGitHub, + fetchpatch, lib, replaceVars, stdenv, @@ -22,6 +23,19 @@ stdenv.mkDerivation (finalAttrs: { (replaceVars ./unvendor-doctest.patch { inherit doctest; }) + + # https://github.com/taskflow/taskflow/pull/785 + # TODO: remove when updating to the next release + (fetchpatch { + name = "fix-brace-init-with-explicit-constructor-for-GCC-15"; + url = "https://github.com/taskflow/taskflow/commit/de7dfe30594cd1f98398095b970a8320734a2382.patch"; + hash = "sha256-Ecl7dFvf2HDslv/5IHR5J2PYcRCN3EA4GahxOzcUS4g="; + }) + + # Vendored from #786 as it does not apply cleanly on top of v0.4.0 + # https://github.com/taskflow/taskflow/pull/786 + # TODO: remove when updating to the next release + ./add-pkg-config-support.patch ]; postPatch = '' diff --git a/pkgs/by-name/ti/tilem/gcc15-fix.patch b/pkgs/by-name/ti/tilem/gcc15-fix.patch new file mode 100644 index 000000000000..6a76170739cf --- /dev/null +++ b/pkgs/by-name/ti/tilem/gcc15-fix.patch @@ -0,0 +1,12 @@ +Fix call to zero-argument tilem_macro_new(), which GCC 15 rejects because the declaration takes no parameters. +--- a/gui/macro.c ++++ b/gui/macro.c +@@ -70,7 +70,7 @@ + tilem_macro_finalize(emu->macro); + + /* Then allocate a new one */ +- emu->macro = tilem_macro_new(emu); ++ emu->macro = tilem_macro_new(); + } + + /* Add an action to the macro. The action could be : diff --git a/pkgs/by-name/ti/tilem/package.nix b/pkgs/by-name/ti/tilem/package.nix index eed7018514df..5bc6a6468d19 100644 --- a/pkgs/by-name/ti/tilem/package.nix +++ b/pkgs/by-name/ti/tilem/package.nix @@ -27,7 +27,10 @@ stdenv.mkDerivation (finalAttrs: { libticables2 libticalcs2 ]; - patches = [ ./gcc14-fix.patch ]; + patches = [ + ./gcc14-fix.patch + ./gcc15-fix.patch + ]; env.NIX_CFLAGS_COMPILE = toString [ "-lm" ]; meta = { homepage = "http://lpg.ticalc.org/prj_tilem/"; diff --git a/pkgs/by-name/tr/treemd/package.nix b/pkgs/by-name/tr/treemd/package.nix index 4a9368f2f993..0107e3a55e9a 100644 --- a/pkgs/by-name/tr/treemd/package.nix +++ b/pkgs/by-name/tr/treemd/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "treemd"; - version = "0.5.9"; + version = "0.5.10"; src = fetchFromGitHub { owner = "Epistates"; repo = "treemd"; tag = "v${finalAttrs.version}"; - hash = "sha256-ImzHTdL1bKMV4mfl5tiTSQ89f3iUZZeFWmR74xMvP24="; + hash = "sha256-lt1dZW8na89wAcYkkoiNigGz8sh5dcuqoRmdV4M6fCk="; }; - cargoHash = "sha256-KxIsZNDKgYWEdrDiwTHjORg44T3gc2hJSJe05H/Qavw="; + cargoHash = "sha256-mRHB/hJmpjMNrPeqz2ec78AIDvCQ1mbmfAkI+VoSqd0="; doInstallCheck = true; nativeInstallCheckInputs = [ versionCheckHook ]; diff --git a/pkgs/by-name/uc/ucblogo/package.nix b/pkgs/by-name/uc/ucblogo/package.nix index 53c2893ccfc9..dd64a4581d8b 100644 --- a/pkgs/by-name/uc/ucblogo/package.nix +++ b/pkgs/by-name/uc/ucblogo/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "ucblogo-code"; - version = "6.2.4"; + version = "6.2.5"; src = fetchFromGitHub { owner = "jrincayc"; repo = "ucblogo-code"; - rev = "ca23b30a62eaaf03ea203ae71d00dc45a046514e"; - hash = "sha256-BVNKkT0YUqI/z5W6Y/u3WbrHmaw7Z165vFt/mlzjd+8="; + tag = "version_${finalAttrs.version}"; + hash = "sha256-QofC7G6IS5TNxwRm23uhuThLou05etGuG/S3Wm29yUI="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/va/vacuum-go/package.nix b/pkgs/by-name/va/vacuum-go/package.nix index 1c4ea9a3dc8d..86d0298d9ea1 100644 --- a/pkgs/by-name/va/vacuum-go/package.nix +++ b/pkgs/by-name/va/vacuum-go/package.nix @@ -7,16 +7,16 @@ buildGoModule (finalAttrs: { pname = "vacuum-go"; - version = "0.25.8"; + version = "0.26.1"; src = fetchFromGitHub { owner = "daveshanley"; repo = "vacuum"; tag = "v${finalAttrs.version}"; - hash = "sha256-q3IPA212G7Iu2x9l73Pqa7Y9QzvsMR4IWjpUsvjroP0="; + hash = "sha256-UUHOlZuMnL4fAcocmi6rdOQvxl3oNrZMgnad/0z2+oA="; }; - vendorHash = "sha256-R5CuUIn/nHbGSvNQxPrAmVK3z4Nr7fMbss0MCidmYjQ="; + vendorHash = "sha256-zPlhjHfwFrhpYAKcgVi1II0hR3fOFItegt9SZoei1SQ="; env.CGO_ENABLED = 0; ldflags = [ diff --git a/pkgs/by-name/ve/velocity/package.nix b/pkgs/by-name/ve/velocity/package.nix index db653817c754..9268e0098951 100644 --- a/pkgs/by-name/ve/velocity/package.nix +++ b/pkgs/by-name/ve/velocity/package.nix @@ -34,13 +34,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "velocity"; - version = "3.5.0-unstable-2026-04-13"; + version = "3.5.0-unstable-2026-04-17"; src = fetchFromGitHub { owner = "PaperMC"; repo = "Velocity"; - rev = "a6d97e28adb1b0cd6464bab78ed4e2c14835868f"; - hash = "sha256-CfYZgiYqH+M8t3CmPx3B3CIkudxPKHbtuysewqhE/B0="; + rev = "f712997dd7f243cb3a0e55ec3f6277a10b6b1d69"; + hash = "sha256-gGS05w92lNKVJRwz30SQDSC/HHxZJGaxFggK1MaN3vE="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/wa/waybar-lyric/package.nix b/pkgs/by-name/wa/waybar-lyric/package.nix index 777715da4497..94f9bc36a9fe 100644 --- a/pkgs/by-name/wa/waybar-lyric/package.nix +++ b/pkgs/by-name/wa/waybar-lyric/package.nix @@ -9,16 +9,16 @@ }: buildGoModule (finalAttrs: { pname = "waybar-lyric"; - version = "0.15.0"; + version = "0.16.0"; src = fetchFromGitHub { owner = "Nadim147c"; repo = "waybar-lyric"; tag = "v${finalAttrs.version}"; - hash = "sha256-2zK0dQtqjbZJYqTOnDtTxnoXeW+zOhWK7RcinhZ5ob4="; + hash = "sha256-1kUAOR7p27pLMH7zlbj+tTlIh0f8JQuWhzQVWvOyKoo="; }; - vendorHash = "sha256-TeAZDSiww9/v3uQl8THJZdN/Ffp+FsZ3TsRStE3ndKA="; + vendorHash = "sha256-pzHNa/55n84VSFaWmgOtwWmmDLoNE6o8mgpFCz7r8FQ="; ldflags = [ "-s" diff --git a/pkgs/by-name/wc/wcc/package.nix b/pkgs/by-name/wc/wcc/package.nix index a4a49c179ba8..7f81b18f57a0 100644 --- a/pkgs/by-name/wc/wcc/package.nix +++ b/pkgs/by-name/wc/wcc/package.nix @@ -46,6 +46,11 @@ stdenv.mkDerivation (finalAttrs: { url = "https://github.com/endrazine/wcc/commit/4bea2dac8b49d82e4f72e42027d74fc654380f7b.patch?full_index=1"; hash = "sha256-RK0ue8hdK/G+njwGmWpaewclRHprO8aBdZ9vBGQIQOc="; }) + # Fix build with gcc 15: function pointer requires explicit arguments + (fetchpatch2 { + url = "https://github.com/endrazine/wcc/commit/3dfd28cb53b4766032e1113cf508bf2f5dce87d5.patch?full_index=1"; + hash = "sha256-7RsU3XJvJ2gvNsB1O/pvOrmd+3/wNfoOZj0JVlgJA8o="; + }) ]; postPatch = '' diff --git a/pkgs/by-name/xr/xrdp/package.nix b/pkgs/by-name/xr/xrdp/package.nix index 6009ad304576..922867b7a7a4 100644 --- a/pkgs/by-name/xr/xrdp/package.nix +++ b/pkgs/by-name/xr/xrdp/package.nix @@ -33,13 +33,13 @@ let xorgxrdp = stdenv.mkDerivation rec { pname = "xorgxrdp"; - version = "0.10.4"; + version = "0.10.5"; src = fetchFromGitHub { owner = "neutrinolabs"; repo = "xorgxrdp"; rev = "v${version}"; - hash = "sha256-TuzUerfOn8+3YfueG00IBP9sMpvy2deyL16mWQ8cRHg="; + hash = "sha256-P7mgdHIq7/Vkk5CR4mUYtQ0xBjh3J2QrYAobKbw1KXM="; }; nativeBuildInputs = [ @@ -78,7 +78,7 @@ let xrdp = stdenv.mkDerivation rec { pname = "xrdp"; - version = "0.10.4.1"; + version = "0.10.6"; src = applyPatches { inherit version; @@ -89,7 +89,7 @@ let repo = "xrdp"; rev = "v${version}"; fetchSubmodules = true; - hash = "sha256-ula1B9/eriJ+0r6d9r2LAzh7J3s6/uvAiTKeRzLuVL0="; + hash = "sha256-BoIpWafUWznRHN8BaZmld8vVbZtywaGiooGPnDtDCjM="; }; }; diff --git a/pkgs/by-name/yu/yubiswitch/package.nix b/pkgs/by-name/yu/yubiswitch/package.nix new file mode 100644 index 000000000000..2132f42e99d2 --- /dev/null +++ b/pkgs/by-name/yu/yubiswitch/package.nix @@ -0,0 +1,39 @@ +{ + lib, + stdenvNoCC, + fetchurl, + _7zz, +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "yubiswitch"; + version = "0.18"; + + src = fetchurl { + url = "https://github.com/pallotron/yubiswitch/releases/download/v${finalAttrs.version}/yubiswitch_${finalAttrs.version}.dmg"; + hash = "sha256-ee7l8jj1pJdj+SjMNWcLfHV//G0FG9bdBkNcxUh8Zuk="; + }; + + sourceRoot = "."; + + nativeBuildInputs = [ _7zz ]; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/Applications" + cp -R yubiswitch.app "$out/Applications" + + runHook postInstall + ''; + + meta = { + description = "macOS status bar application to enable/disable a Yubikey Nano"; + homepage = "https://github.com/pallotron/yubiswitch"; + changelog = "https://github.com/pallotron/yubiswitch/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.gpl3Plus; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + platforms = lib.platforms.darwin; + maintainers = with lib.maintainers; [ sheeeng ]; + }; +}) diff --git a/pkgs/desktops/expidus/calculator/default.nix b/pkgs/desktops/expidus/calculator/default.nix new file mode 100644 index 000000000000..f005dcf52969 --- /dev/null +++ b/pkgs/desktops/expidus/calculator/default.nix @@ -0,0 +1,58 @@ +{ + 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 new file mode 100644 index 000000000000..a2e6f2e46776 --- /dev/null +++ b/pkgs/desktops/expidus/calculator/pubspec.lock.json @@ -0,0 +1,790 @@ +{ + "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 new file mode 100644 index 000000000000..3506e1e51699 --- /dev/null +++ b/pkgs/desktops/expidus/default.nix @@ -0,0 +1,10 @@ +{ 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 new file mode 100644 index 000000000000..ffd2c4dd838f --- /dev/null +++ b/pkgs/desktops/expidus/file-manager/default.nix @@ -0,0 +1,58 @@ +{ + 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 new file mode 100644 index 000000000000..048127e70dab --- /dev/null +++ b/pkgs/desktops/expidus/file-manager/pubspec.lock.json @@ -0,0 +1,910 @@ +{ + "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 1f272165fe31..3637ad19e52c 100644 --- a/pkgs/development/compilers/dart/source/default.nix +++ b/pkgs/development/compilers/dart/source/default.nix @@ -1,7 +1,7 @@ { bintools, buildPackages, - flutter, + callPackage, cacert, curlMinimal, dart-bin, @@ -22,7 +22,6 @@ samurai, stdenv, versionCheckHook, - writableTmpDirAsHomeHook, writeShellScript, writeText, zlib, @@ -31,6 +30,8 @@ let version = "3.11.4"; + tools = callPackage ../../flutter/engine/tools.nix { inherit (stdenv) hostPlatform buildPlatform; }; + getArchInfo = platform: let @@ -52,75 +53,78 @@ let ] ); - src = stdenv.mkDerivation (finalAttrs: { - pname = "dart-source-deps"; - inherit version; + src = + runCommand "dart-source-deps" + { + pname = "dart-source-deps"; + inherit version; - nativeBuildInputs = [ - cacert - curlMinimal - flutter.scope.cipd - gitMinimal - pax-utils - python3 - writableTmpDirAsHomeHook - ]; + nativeBuildInputs = [ + cacert + curlMinimal + gitMinimal + pax-utils + python3 + tools.cipd + ]; - 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="; - - 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 - ''; - }); + 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 + ''; 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 deleted file mode 100644 index 7e2132f52f4f..000000000000 --- a/pkgs/development/compilers/flutter/all-artifacts.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ 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 new file mode 100644 index 000000000000..a425f8fce636 --- /dev/null +++ b/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix @@ -0,0 +1,102 @@ +# 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 new file mode 100644 index 000000000000..dbdd81ba596a --- /dev/null +++ b/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix @@ -0,0 +1,14 @@ +{ }: +{ + 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 new file mode 100644 index 000000000000..a06188f98e3a --- /dev/null +++ b/pkgs/development/compilers/flutter/artifacts/overrides/linux.nix @@ -0,0 +1,12 @@ +{ + 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 new file mode 100644 index 000000000000..64eb4072d24e --- /dev/null +++ b/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix @@ -0,0 +1,30 @@ +{ + 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 94cf1f9fbd33..a2adc097947e 100644 --- a/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix +++ b/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix @@ -54,32 +54,39 @@ lib.extendMkDerivation { ... }: let - flutterMode' = args.flutterMode or "release"; + 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" + }"; flutterBuildFlags' = [ "--${flutterMode'}" ] - ++ (args.flutterBuildFlags or [ ]); + ++ (args.flutterBuildFlags or [ ]) + ++ flutterFlags; 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" @@ -89,11 +96,13 @@ lib.extendMkDerivation { }/bin/dart" export HOME="$NIX_BUILD_TOP" - # flutter config --no-analytics &>/dev/null # mute first-run - flutter config --enable-linux-desktop >/dev/null + flutter config $flutterFlags --no-analytics &>/dev/null # mute first-run + flutter config $flutterFlags --enable-linux-desktop >/dev/null ''; - pubGetScript = args.pubGetScript or "flutter pub get"; + pubGetScript = + args.pubGetScript + or "flutter${lib.optionalString hasEngine " --local-engine $flutterMode"} 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 deleted file mode 100644 index c5997d1d8a29..000000000000 --- a/pkgs/development/compilers/flutter/cipd.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - 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 deleted file mode 100644 index d900122ea6f7..000000000000 --- a/pkgs/development/compilers/flutter/constants.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ 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 27e12e586b53..2c886bf529fc 100644 --- a/pkgs/development/compilers/flutter/default.nix +++ b/pkgs/development/compilers/flutter/default.nix @@ -1,51 +1,146 @@ { - callPackage, - lib, useNixpkgsEngine ? false, + callPackage, + fetchzip, + fetchFromGitHub, + dart, + dart-bin, + lib, + stdenv, + runCommand, }: - let + mkCustomFlutter = args: callPackage ./flutter.nix args; + wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; }; getPatches = dir: - if builtins.pathExists dir then - map (fileName: dir + "/${fileName}") (builtins.attrNames (builtins.readDir dir)) - else - [ ]; - - makeFlutterScope = callPackage ./scope.nix { }; - - 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 - channelVersions = lib.filterAttrs (_: scope: scope.channel == channel) allVersions; - sortedNames = lib.naturalSort (builtins.attrNames channelVersions); + files = builtins.attrNames (builtins.readDir dir); in - if sortedNames == [ ] then null else channelVersions.${lib.last sortedNames}.flutter; + 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 + ; - stable = getLatestForChannel "stable"; - beta = getLatestForChannel "beta"; + 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); + }; + }; + } + ); + + flutterVersions = lib.mapAttrs' ( + version: _: + let + versionDir = ./versions + "/${version}"; + data = lib.importJSON (versionDir + "/data.json"); + 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); + + stableFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "stable") flutterVersions; + betaFlutterVersions = lib.attrsets.filterAttrs (_: v: v.channel == "beta") flutterVersions; in -(lib.mapAttrs (_: scope: scope.flutter) allVersions) -// lib.optionalAttrs (stable != null) { inherit stable; } -// lib.optionalAttrs (beta != null) { inherit beta; } +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))}; +} diff --git a/pkgs/development/compilers/flutter/engine/constants.nix b/pkgs/development/compilers/flutter/engine/constants.nix new file mode 100644 index 000000000000..768f103e849f --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/constants.nix @@ -0,0 +1,48 @@ +{ 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 new file mode 100644 index 000000000000..4846392aa8ba --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/dart.nix @@ -0,0 +1,12 @@ +{ 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 defb8d99bc6a..0821bce822a5 100644 --- a/pkgs/development/compilers/flutter/engine/default.nix +++ b/pkgs/development/compilers/flutter/engine/default.nix @@ -1,317 +1,78 @@ { callPackage, - 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, - symlinkJoin, + dartSdkVersion, + flutterVersion, + swiftshaderHash, + swiftshaderRev, version, - zlib, - runtimeMode ? "release", -}: - + hashes, + url, + patches, + runtimeModes, + lib, + stdenv, + ... +}@args: let - python3 = python312; + mainRuntimeMode = args.mainRuntimeMode or builtins.elemAt runtimeModes 0; + altRuntimeMode = args.altRuntimeMode or builtins.elemAt runtimeModes 1; - 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"; - }; + runtimeModesBuilds = lib.genAttrs runtimeModes ( + runtimeMode: + callPackage ./package.nix { + inherit + dartSdkVersion + flutterVersion + swiftshaderHash + swiftshaderRev + version + hashes + url + patches + runtimeMode + ; + isOptimized = args.isOptimized or runtimeMode != "debug"; + } + ); in -stdenv.mkDerivation (finalAttrs: { - __structuredAttrs = true; - strictDeps = true; - pname = "flutter-engine-linux-${runtimeMode}"; - inherit version; +stdenv.mkDerivation ( + { + pname = "flutter-engine"; + inherit url runtimeModes altRuntimeMode; + inherit (runtimeModesBuilds.${mainRuntimeMode}) version src meta; - src = callPackage ./source.nix { }; + dontUnpack = true; + dontBuild = true; - sourceRoot = "${finalAttrs.src.name}/engine/src"; + installPhase = '' + runHook preInstall - 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 + mkdir --parents $out/out '' - runHook preConfigure - - python3 flutter/tools/gn ${gnFlags} --target-dir="${constants.hostConstants.alt-platform}-${runtimeMode}" - - runHook postConfigure + + lib.concatMapStrings ( + runtimeMode: + let + runtimeModeBuild = runtimeModesBuilds.${runtimeMode}; + runtimeModeOut = runtimeModeBuild.outName; + in + '' + ln --symbolic --force ${runtimeModeBuild}/out/${runtimeModeOut} $out/out/${runtimeModeOut} + '' + ) runtimeModes + + '' + runHook postInstall ''; - 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" - ]; - }; -}) + passthru = { + inherit (runtimeModesBuilds.${mainRuntimeMode}) + dartSdkVersion + isOptimized + runtimeMode + outName + dart + swiftshader + ; + }; + } + // runtimeModesBuilds +) diff --git a/pkgs/development/compilers/flutter/engine/package.nix b/pkgs/development/compilers/flutter/engine/package.nix new file mode 100644 index 000000000000..7d79b09e8662 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/package.nix @@ -0,0 +1,390 @@ +{ + 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 deleted file mode 100644 index ad2c22ddf694..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/git-revision.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- 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 deleted file mode 100644 index 8b162f653919..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/no-vpython.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 deleted file mode 100644 index b67b7b2f6fa9..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/not-in-git.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- 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 deleted file mode 100644 index e93ffce50471..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/shared-libcxx.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- 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 deleted file mode 100644 index 1a0077ad5315..000000000000 --- a/pkgs/development/compilers/flutter/engine/patches/unbundle-engine.patch +++ /dev/null @@ -1,933 +0,0 @@ -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 81fe84f21225..e95828c0b8ab 100644 --- a/pkgs/development/compilers/flutter/engine/source.nix +++ b/pkgs/development/compilers/flutter/engine/source.nix @@ -1,60 +1,73 @@ { + lib, + callPackage, curlMinimal, + pkg-config, gitMinimal, python312, - depot_tools, runCommand, writeText, cacert, + flutterVersion, version, - engineHash ? "", - cipd, - writableTmpDirAsHomeHook, -}: - + hashes, + url, + hostPlatform, + targetPlatform, + buildPlatform, + ... +}@pkgs: let - 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-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}", + }, + }] + 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}" +runCommand "flutter-engine-source-${version}-${buildPlatform.system}-${targetPlatform.system}" { pname = "flutter-engine-source"; inherit version; nativeBuildInputs = [ curlMinimal + pkg-config gitMinimal - cipd + tools.cipd (python312.withPackages ( ps: with ps; [ httplib2 six ] )) - writableTmpDirAsHomeHook ]; env = { @@ -68,26 +81,23 @@ runCommand "flutter-engine-source-${version}" outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = engineHash; + outputHash = + (hashes."${buildPlatform.system}" or { })."${targetPlatform.system}" + or (throw "Hash not set for ${targetPlatform.system} on ${buildPlatform.system}"); } '' - 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 + 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} '' diff --git a/pkgs/development/compilers/flutter/engine/tools.nix b/pkgs/development/compilers/flutter/engine/tools.nix new file mode 100644 index 000000000000..fcc841eaae47 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/tools.nix @@ -0,0 +1,103 @@ +{ + 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 4c40870dbf6a..e99b347c69af 100644 --- a/pkgs/development/compilers/flutter/flutter-tools.nix +++ b/pkgs/development/compilers/flutter/flutter-tools.nix @@ -1,74 +1,86 @@ { - buildDartApplication, - dart, - flutterSource, lib, - patches, - pubspecLock, - runCommand, stdenv, - version, + systemPlatform, + buildDartApplication, + runCommand, + writeTextFile, + git, which, - writableTmpDirAsHomeHook, + dart, + version, + flutterSrc, + patches ? [ ], + pubspecLock, + engineVersion, }: let - dartEntryPoints = { - "flutter_tools.snapshot" = "bin/flutter_tools.dart"; + # 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"; in -buildDartApplication.override { inherit dart; } (finalAttrs: { - __structuredAttrs = true; - strictDeps = true; +buildDartApplication.override { inherit dart; } { pname = "flutter-tools"; - inherit - version - patches - pubspecLock - dartEntryPoints - ; - - src = flutterSource; - - sourceRoot = "${finalAttrs.src.name}/packages/flutter_tools"; - + inherit version dartEntryPoints; dartOutputType = "jit-snapshot"; - dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${stdenv.hostPlatform.system}" ]; + src = flutterSrc; + sourceRoot = "${flutterSrc.name}/packages/flutter_tools"; + 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" + --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));" "" ''; # 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 FLUTTER_ROOT=$(realpath ../../) + export HOME=. + export FLUTTER_ROOT="$(realpath ../../)" mkdir --parents "$FLUTTER_ROOT/bin/cache" - ln --symbolic "${dart}" "$FLUTTER_ROOT/bin/cache/dart-sdk" + ln --symbolic '${dart}' "$FLUTTER_ROOT/bin/cache/dart-sdk" ''; + dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${systemPlatform}" ]; + # The Dart wrapper launchers are useless for the Flutter tool - it is designed # to be launched from a snapshot by the SDK. postInstall = '' - rm "$out"/${builtins.concatStringsSep " " (builtins.attrNames dartEntryPoints)} + pushd "$out" + rm ${builtins.concatStringsSep " " (builtins.attrNames dartEntryPoints)} + popd ''; sdkSourceBuilders = { @@ -78,7 +90,7 @@ buildDartApplication.override { inherit dart; } (finalAttrs: { runCommand "dart-sdk-${name}" { passthru.packageRoot = "."; } '' for path in '${dart}/pkg/${name}'; do if [ -d "$path" ]; then - ln --symbolic "$path" "$out" + ln -s "$path" "$out" break fi done @@ -89,4 +101,6 @@ buildDartApplication.override { inherit dart; } (finalAttrs: { fi ''; }; -}) + + inherit pubspecLock; +} diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index eaa6ef2f5bf3..80bc56cd149d 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -1,358 +1,221 @@ { - scope, - lib, - stdenv, - dart, - autoPatchelfHook, - flutterSource, - flutter-tools, - callPackage, - host-artifacts, - artifacts ? host-artifacts, + useNixpkgsEngine ? false, version, engineVersion, - channel, - dartVersion, + engineHashes ? { }, + engineUrl ? "https://github.com/flutter/flutter.git@${engineVersion}", + enginePatches ? [ ], + engineRuntimeModes ? [ + "release" + "debug" + ], + engineSwiftShaderHash, + engineSwiftShaderRev, patches, + channel, + dart, + src, + pubspecLock, + artifactHashes ? null, + lib, + stdenv, + callPackage, 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, - fd, - cacert, - moreutils, - writeTextFile, - supportedTargetFlutterPlatforms, - extraPkgConfigPackages ? [ ], - extraLibraries ? [ ], - extraIncludes ? [ ], - extraCxxFlags ? [ ], - extraCFlags ? [ ], - extraLinkerFlags ? [ ], -}: + flutterTools ? null, +}@args: let - appRuntimeDeps = - lib.optionals - (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) - [ - 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; + 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; - appStaticBuildDeps = - (lib.optionals - (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) - [ - libx11 - xorgproto - zlib - ] - ) - ++ extraLibraries; + dart = if args.useNixpkgsEngine or false then engine.dart else args.dart; - # Tools used by the Flutter SDK to compile applications. - buildTools = - lib.optionals - (stdenv.hostPlatform.isLinux && (builtins.elem "linux" supportedTargetFlutterPlatforms)) - [ - pkg-config - cmake - ninja - clang - ]; + flutterTools = + args.flutterTools or (callPackage ./flutter-tools.nix { + inherit + dart + engineVersion + patches + pubspecLock + version + ; + flutterSrc = src; + systemPlatform = stdenv.hostPlatform.system; + }); - # Nix-specific compiler configuration. - pkgConfigPackages = map (lib.getOutput "dev") (appBuildDeps ++ extraPkgConfigPackages); + unwrapped = stdenv.mkDerivation { + name = "flutter-${version}-unwrapped"; + inherit src patches version; - includeFlags = map (pkg: "-isystem ${lib.getOutput "dev" pkg}/include") ( - appStaticBuildDeps ++ extraIncludes - ); + nativeBuildInputs = [ + makeWrapper + jq + gitMinimal + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ]; + strictDeps = true; - linkerFlags = - (map (pkg: "-rpath,${lib.getOutput "lib" pkg}/lib") appRuntimeDeps) ++ extraLinkerFlags; -in -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"/ + 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 - 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 ]; + + 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" + ]; + mainProgram = "flutter"; + maintainers = with lib.maintainers; [ + ericdallo + ]; + teams = [ lib.teams.flutter ]; + }; }; -}) +in +unwrapped diff --git a/pkgs/development/compilers/flutter/host-artifacts.nix b/pkgs/development/compilers/flutter/host-artifacts.nix deleted file mode 100644 index 444e5cabd764..000000000000 --- a/pkgs/development/compilers/flutter/host-artifacts.nix +++ /dev/null @@ -1,302 +0,0 @@ -{ - 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 deleted file mode 100644 index 036958c47f3b..000000000000 --- a/pkgs/development/compilers/flutter/patches/opt-in-analytics.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- 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 deleted file mode 100644 index 8abd25546790..000000000000 --- a/pkgs/development/compilers/flutter/patches/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch +++ /dev/null @@ -1,18 +0,0 @@ -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 deleted file mode 100644 index 9ef8c0d8359f..000000000000 --- a/pkgs/development/compilers/flutter/scope.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ - 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 { inherit (stdenv) hostPlatform; }; - - 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 new file mode 100644 index 000000000000..d8ddd9bd0c2e --- /dev/null +++ b/pkgs/development/compilers/flutter/sdk-symlink.nix @@ -0,0 +1,65 @@ +{ + 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 deleted file mode 100755 index c2e6ae6f20e8..000000000000 --- a/pkgs/development/compilers/flutter/update.py +++ /dev/null @@ -1,358 +0,0 @@ -#!/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 new file mode 100644 index 000000000000..8edff6a2e876 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix.in @@ -0,0 +1,44 @@ +{ + 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 new file mode 100644 index 000000000000..0972a3578b52 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-dart-hashes.nix.in @@ -0,0 +1,22 @@ +{ + 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 new file mode 100644 index 000000000000..c96a7b9adad2 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-engine-hashes.nix.in @@ -0,0 +1,36 @@ +{ + 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 new file mode 100644 index 000000000000..aa71f8ae2ad3 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-engine-swiftshader.nix.in @@ -0,0 +1,10 @@ +{ 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 new file mode 100644 index 000000000000..02d802e026f0 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-flutter.nix.in @@ -0,0 +1,7 @@ +{ 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 new file mode 100644 index 000000000000..3d87a69815e7 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix.in @@ -0,0 +1,40 @@ +{ + 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 new file mode 100755 index 000000000000..7a28cc46d949 --- /dev/null +++ b/pkgs/development/compilers/flutter/update/update.py @@ -0,0 +1,501 @@ +#! /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 295ee16b5fcb..a3c5323a3aef 100644 --- a/pkgs/development/compilers/flutter/versions/3_29/data.json +++ b/pkgs/development/compilers/flutter/versions/3_29/data.json @@ -1,80 +1,75 @@ { - "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=" - }, + "version": "3.29.3", + "engineVersion": "cf56914b326edb0ccb123ffdc60f00060bd513fa", + "engineSwiftShaderHash": "sha256-mRLCvhNkmHz7Rv6GzXkY7OB1opBSq+ATWZ466qZdgto=", + "engineSwiftShaderRev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f", "channel": "stable", - "dartHash": { - "aarch64-darwin": "sha256-EG5j2VkAkJk6le5R5ocp3i0Jyit7e9FsC1+1emCzZXw=", - "aarch64-linux": "sha256-NFLMrWHgV+t/oX6F7RqgNdRMNuM9rAdlVxd5j0fmTKg=", - "x86_64-darwin": "sha256-BgiG0riugy+Jzn25ce62IYpQfjcHEVJIfdUuslakSa4=", - "x86_64-linux": "sha256-whb91w9lbFDHjcag/65uXO16mnzO3qPkAvprXr4keIw=" + "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=" + } }, "dartVersion": "3.7.2", - "engineVersion": "cf56914b326edb0ccb123ffdc60f00060bd513fa", + "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=" + }, "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": { @@ -1047,6 +1042,5 @@ "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 deleted file mode 100644 index 74d15f724325..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_29/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- 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 deleted file mode 100644 index 40cfcda6a011..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_29/patches/version.patch +++ /dev/null @@ -1,126 +0,0 @@ ---- 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 323b74eb9900..078a4c8a8d51 100644 --- a/pkgs/development/compilers/flutter/versions/3_32/data.json +++ b/pkgs/development/compilers/flutter/versions/3_32/data.json @@ -1,80 +1,75 @@ { - "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=" - }, + "version": "3.32.8", + "engineVersion": "ef0cd000916d64fa0c5d09cc809fa7ad244a5767", + "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", + "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", "channel": "stable", - "dartHash": { - "aarch64-darwin": "sha256-UIC8b0p4zM4OOOceRkdsCNYeCBRTZGlI8/DHcXepKPg=", - "aarch64-linux": "sha256-eKMkAJe+47ebAJxp6tIuGq7e3ty+CT6qmACExWYQlsg=", - "x86_64-darwin": "sha256-OTcd89ZPlPWz2cERnD9UkWTFYoxqE7lFG3tEhZ8fkRQ=", - "x86_64-linux": "sha256-DVjAEKNh8/FYixwvV5QvfMr3t6u+A0BP73oQLrY48J0=" + "engineHashes": { + "aarch64-linux": { + "aarch64-linux": "sha256-JrbIMYwdfe36y6bHj1eAjYOKPGGp7mfWxWDCoCm7wiQ=", + "x86_64-linux": "sha256-JrbIMYwdfe36y6bHj1eAjYOKPGGp7mfWxWDCoCm7wiQ=" + }, + "x86_64-linux": { + "aarch64-linux": "sha256-R0ut5hzzBgfjbZFB1ofK4jEmr3CcBKHFJUl3c7nmn0E=", + "x86_64-linux": "sha256-R0ut5hzzBgfjbZFB1ofK4jEmr3CcBKHFJUl3c7nmn0E=" + } }, "dartVersion": "3.8.1", - "engineVersion": "ef0cd000916d64fa0c5d09cc809fa7ad244a5767", + "dartHash": { + "x86_64-linux": "sha256-3eE40VMwrPFD502lIaz+CkD7mBnSI/WqJ3C4DVQ01Z4=", + "aarch64-linux": "sha256-0GXCO00ar5532h+cXBEIe8BhGVKOuGuoPzr1M00muh4=", + "x86_64-darwin": "sha256-S3iGDVLollApke2SnXAcV919qsDTVmz5Gf9fTletr00=", + "aarch64-darwin": "sha256-haHQks9N1mBIqRsYg9sOLw7ra7gC708gsTWfKxvIK1c=" + }, "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": { @@ -1051,6 +1046,5 @@ "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 deleted file mode 100644 index d596d6c64322..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_32/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- 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 deleted file mode 100644 index 61e6cd40ddff..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_32/patches/version.patch +++ /dev/null @@ -1,131 +0,0 @@ ---- 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 187a2f4b3263..6d04fcf6b864 100644 --- a/pkgs/development/compilers/flutter/versions/3_35/data.json +++ b/pkgs/development/compilers/flutter/versions/3_35/data.json @@ -1,80 +1,75 @@ { - "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=" - }, + "version": "3.35.7", + "engineVersion": "035316565ad77281a75305515e4682e6c4c6f7ca", + "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", + "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", "channel": "stable", - "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=" + "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=" + } }, "dartVersion": "3.9.2", - "engineVersion": "035316565ad77281a75305515e4682e6c4c6f7ca", + "dartHash": { + "x86_64-linux": "sha256-ZJcii2WBCE4PNt5+S2nH4hj+WoZuhRLFkzMlSZEa01Y=", + "aarch64-linux": "sha256-EzNApYsHor1suB9dFgJuewMqa0v7cADKLUzLym5GLOY=", + "x86_64-darwin": "sha256-mjWHCF5voWLKlqBKYhl2OKg2aDx0pyIQ1TlF6k4MQz0=", + "aarch64-darwin": "sha256-1rAfqatlOdphdi6dZSfUfKywAbdwRn6ijo60isjV3Lw=" + }, "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": { @@ -1081,6 +1076,5 @@ "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 deleted file mode 100644 index d912db5c15cc..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_35/patches/content-unaware-hash.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- 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 deleted file mode 100644 index e0cdb21fd030..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_35/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- 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 deleted file mode 100644 index 60a8c7d05738..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_35/patches/version.patch +++ /dev/null @@ -1,131 +0,0 @@ ---- 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 b9b0ae6820a0..88baf3ba0ece 100644 --- a/pkgs/development/compilers/flutter/versions/3_38/data.json +++ b/pkgs/development/compilers/flutter/versions/3_38/data.json @@ -1,80 +1,75 @@ { - "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=" - }, + "version": "3.38.10", + "engineVersion": "cafcda5721a78a7884db92f13c5e89f7643d52dd", + "engineSwiftShaderHash": "sha256-ATVcuxqPHqHOWYyO7DoX9LdgUiO3INUi7m9Mc6ccc1M=", + "engineSwiftShaderRev": "d040a5bab638bf7c226235c95787ba6288bb6416", "channel": "stable", - "dartHash": { - "aarch64-darwin": "sha256-99gMhvkzSJmYEsGuD3kBN1e3l685Xyy6cNICegC+Vk4=", - "aarch64-linux": "sha256-Z8mPnmppTtPLNiY0Ny1pRzBAs3EoNtQsr82zxWwKBOs=", - "x86_64-darwin": "sha256-pd37vWDOIKGdek/CuUSH7sVyiKqlLOW6GLT4IkzkwYA=", - "x86_64-linux": "sha256-1DudOiG4LvKjfTGUW5nmuI9fjcROwZG0c/1inXjQuZQ=" + "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=" + } }, "dartVersion": "3.10.9", - "engineVersion": "cafcda5721a78a7884db92f13c5e89f7643d52dd", + "dartHash": { + "x86_64-linux": "sha256-Js8cesRAseVfa5CCQSmnJJVBYl+S7Zy7ax/vNbWMjQ0=", + "aarch64-linux": "sha256-Ba7CCHPzor8H6ksrQUqDnx82i92OSE4qiihMaDKNexI=", + "x86_64-darwin": "sha256-btQavXZ3CVM0ByGlZJ5z2TUfXsPljY4iFeU1rgf4KQE=", + "aarch64-darwin": "sha256-zmEK01ooqIKtVlw+7JlDAVvviFOcaqOrbGPkdirst6A=" + }, "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": { @@ -1091,6 +1086,5 @@ "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 deleted file mode 100644 index d912db5c15cc..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_38/patches/content-unaware-hash.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- 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 deleted file mode 100644 index e0cdb21fd030..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_38/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- 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 deleted file mode 100644 index 49f2c5294d51..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_38/patches/version.patch +++ /dev/null @@ -1,131 +0,0 @@ ---- 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 2a11cfc9cd13..0159af0063c2 100644 --- a/pkgs/development/compilers/flutter/versions/3_41/data.json +++ b/pkgs/development/compilers/flutter/versions/3_41/data.json @@ -1,80 +1,75 @@ { - "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=" - }, + "version": "3.41.6", + "engineVersion": "425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb", + "engineSwiftShaderHash": "sha256-qbtCl2nTpmtp9dnaoXc7rF3RqLnAZEmzw1BzPoCRWrc=", + "engineSwiftShaderRev": "794b0cfce1d828d187637e6d932bae484fbe0976", "channel": "stable", - "dartHash": { - "aarch64-darwin": "sha256-DwyZtAeZLuaX2MFVPzhERiFeX45wI9sTc4Y2SVopRE8=", - "linux": "sha256-y2F+wB0M5dq6koxGpCs9BExGU7p8tFOIiRqfdf8ip+8=", - "x86_64-darwin": "sha256-GHTjTHJmbIPfsAbF4AmxjDETSw9YD04/6lGecoe1xrA=" + "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=" + } }, "dartVersion": "3.11.4", - "engineHash": "sha256-DJwtw5yJsTou6mXb5lSjP1two72rRqdO2Q/+WkhWGS8=", - "engineVersion": "425cfb54d01a9472b3e81d9e76fd63a4a44cfbcb", + "dartHash": { + "x86_64-linux": "sha256-UtYvBbAHzLcRfPQcGb7aHIfBRLJ+pgCxa0ycjqj8j9Q=", + "aarch64-linux": "sha256-w1um8N4fXrvyNQZhK//DR8e6lMOkx1EQyrEVeJIWbTw=", + "x86_64-darwin": "sha256-GHTjTHJmbIPfsAbF4AmxjDETSw9YD04/6lGecoe1xrA=", + "aarch64-darwin": "sha256-DwyZtAeZLuaX2MFVPzhERiFeX45wI9sTc4Y2SVopRE8=" + }, "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": { @@ -1091,7 +1086,5 @@ "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 deleted file mode 100644 index 461dc7f171f6..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_41/patches/content-unaware-hash.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- 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 deleted file mode 100644 index 83b347dc01b7..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_41/patches/no-cache.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- 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 deleted file mode 100644 index 92c8b8e50db9..000000000000 --- a/pkgs/development/compilers/flutter/versions/3_41/patches/version.patch +++ /dev/null @@ -1,131 +0,0 @@ ---- 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 new file mode 100644 index 000000000000..f9009186364f --- /dev/null +++ b/pkgs/development/compilers/flutter/wrapper.nix @@ -0,0 +1,211 @@ +{ + 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/ocaml-modules/ocaml-version/default.nix b/pkgs/development/ocaml-modules/ocaml-version/default.nix index c72a4528bb87..02824128b6bb 100644 --- a/pkgs/development/ocaml-modules/ocaml-version/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-version/default.nix @@ -7,11 +7,11 @@ buildDunePackage rec { pname = "ocaml-version"; - version = "4.0.4"; + version = "4.1.0"; src = fetchurl { url = "https://github.com/ocurrent/ocaml-version/releases/download/v${version}/ocaml-version-${version}.tbz"; - hash = "sha256-6sviBLiEjcCtLcnk74vGy4ZTALVd1Rd5INUzAzn+HO4="; + hash = "sha256-QTfVH6kNu4SkjAylM3ySyIkOYAXQFrffSFkZ2FojjgY="; }; checkInputs = [ alcotest ]; diff --git a/pkgs/development/python-modules/cohere/default.nix b/pkgs/development/python-modules/cohere/default.nix index f08907499408..c1d4d8d169d2 100644 --- a/pkgs/development/python-modules/cohere/default.nix +++ b/pkgs/development/python-modules/cohere/default.nix @@ -9,25 +9,29 @@ # dependencies fastavro, httpx, - httpx-sse, pydantic, pydantic-core, requests, tokenizers, types-requests, typing-extensions, + + # optional-dependencies + aiohttp, + httpx-aiohttp, + oci, }: buildPythonPackage rec { pname = "cohere"; - version = "5.21.1"; + version = "6.1.0"; pyproject = true; src = fetchFromGitHub { owner = "cohere-ai"; repo = "cohere-python"; tag = version; - hash = "sha256-RT4Sxk9fKunuyEXl2pvKgS6U82fPKjMPmSl9jwm+GBk="; + hash = "sha256-be6vhTGXnf1/iaD13VYjey/to+HX28VfmYlUPE2eFT4="; }; build-system = [ poetry-core ]; @@ -35,7 +39,6 @@ buildPythonPackage rec { dependencies = [ fastavro httpx - httpx-sse pydantic pydantic-core requests @@ -44,7 +47,13 @@ buildPythonPackage rec { typing-extensions ]; - pythonRelaxDeps = [ "httpx-sse" ]; + optional-dependencies = { + aiohttp = [ + aiohttp + httpx-aiohttp + ]; + oci = [ oci ]; + }; # tests require CO_API_KEY doCheck = false; diff --git a/pkgs/development/python-modules/colcon/default.nix b/pkgs/development/python-modules/colcon/default.nix index 4b8592491010..650ce4adc1f2 100644 --- a/pkgs/development/python-modules/colcon/default.nix +++ b/pkgs/development/python-modules/colcon/default.nix @@ -66,6 +66,8 @@ buildPythonPackage rec { pythonRemoveDeps = [ # We use pytest-cov-stub instead (and it is not a runtime dependency anyways) "pytest-cov" + # Upper bound on setuptools is too strict for nixpkgs + "setuptools" ]; meta = { diff --git a/pkgs/development/python-modules/cuda-bindings/default.nix b/pkgs/development/python-modules/cuda-bindings/default.nix index 69fd864aa433..94fb27fc5182 100644 --- a/pkgs/development/python-modules/cuda-bindings/default.nix +++ b/pkgs/development/python-modules/cuda-bindings/default.nix @@ -3,6 +3,7 @@ buildPythonPackage, fetchFromGitHub, cudaPackages, + replaceVars, addDriverRunpath, # build-system @@ -15,10 +16,9 @@ symlinkJoin, # dependencies - cuda-pathfinder, + numpy, # tests - numpy, pytestCheckHook, # passthru @@ -38,6 +38,21 @@ buildPythonPackage (finalAttrs: { hash = "sha256-uRv27h2b6wXC8oOf5k2KxZ0bUFNvNu6XO05FBbJcU1k="; }; + # Apply patch relative to cuda_bindings + patchFlags = [ "-p2" ]; + + patches = [ + (replaceVars ./patch-nvidia-libs-paths.patch { + libcudart = lib.getLib cudaPackages.cuda_cudart; + libcufile = lib.getLib cudaPackages.libcufile; + libnvfatbin = lib.getLib cudaPackages.libnvfatbin; + libnvjitlink = lib.getLib cudaPackages.libnvjitlink; + libnvml = addDriverRunpath.driverLink; + libnvrtc = lib.getLib cudaPackages.cuda_nvrtc; + libnvvm = "${cudaPackages.cuda_nvcc}/nvvm"; + }) + ]; + sourceRoot = "${finalAttrs.src.name}/cuda_bindings"; postPatch = @@ -90,15 +105,25 @@ buildPythonPackage (finalAttrs: { cudaPackages.libcufile # cufile.h ]; + pythonRemoveDeps = [ + # We circumvent cuda_pathfinder to localize nvidia libs with patches + "cuda-pathfinder" + ]; dependencies = [ - cuda-pathfinder + # Not explicitly listed as a dependency, but is required at import time + numpy ]; pythonImportsCheck = [ "cuda" - "cuda.cuda" - "cuda.cudart" - "cuda.nvrtc" + "cuda.bindings.cufile" + "cuda.bindings.driver" + "cuda.bindings.nvfatbin" + "cuda.bindings.nvjitlink" + "cuda.bindings.nvml" + "cuda.bindings.nvrtc" + "cuda.bindings.nvvm" + "cuda.bindings.runtime" ]; preCheck = '' @@ -106,7 +131,6 @@ buildPythonPackage (finalAttrs: { ''; nativeCheckInputs = [ - numpy pytestCheckHook ]; @@ -123,6 +147,24 @@ buildPythonPackage (finalAttrs: { "tests/test_nvjitlink.py" ]; + disabledTests = [ + # sysfs cpu topology is not available in the sandbox, causing: + # cuda.bindings.nvml.UnknownError: Unknown Error + # hwloc/linux: failed to find sysfs cpu topology directory, aborting linux discovery. + "test_device_get_cpu_affinity_within_scope" + "test_device_get_memory_affinity" + + # Requires the nvidia_fs kernel module (GPUDirect Storage), causing: + # cuda.bindings.cufile.cuFileError: NVFS_SETUP_ERROR (5033): NVFS driver initialization error + "test_buf_register_already_registered" + "test_buf_register_host_memory" + "test_buf_register_invalid_flags" + "test_buf_register_large_buffer" + "test_buf_register_multiple_buffers" + "test_buf_register_simple" + "test_driver_open" + ]; + # Tests need access to a GPU doCheck = false; passthru.gpuCheck = cuda-bindings.overridePythonAttrs { diff --git a/pkgs/development/python-modules/cuda-bindings/patch-nvidia-libs-paths.patch b/pkgs/development/python-modules/cuda-bindings/patch-nvidia-libs-paths.patch new file mode 100644 index 000000000000..abfdf8f5aa4e --- /dev/null +++ b/pkgs/development/python-modules/cuda-bindings/patch-nvidia-libs-paths.patch @@ -0,0 +1,178 @@ +diff --git a/cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx.in b/cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx.in +index f684be6870..9437de642b 100644 +--- a/cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx.in ++++ b/cuda_bindings/cuda/bindings/_bindings/cynvrtc.pyx.in +@@ -8,7 +8,7 @@ cimport cuda.bindings._lib.windll as windll + {{else}} + cimport cuda.bindings._lib.dlfcn as dlfcn + {{endif}} +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + from libc.stdint cimport intptr_t, uintptr_t + import threading + +@@ -47,7 +47,7 @@ cdef int _cuPythonInit() except -1 nogil: + # Load library + with gil, __symbol_lock: + {{if 'Windows' == platform.system()}} +- handle = load_nvidia_dynamic_lib("nvrtc")._handle_uint ++ handle = CDLL("@libnvrtc@/lib/libnvrtc.so")._handle + + # Load function + {{if 'nvrtcGetErrorString' in found_functions}} +@@ -156,7 +156,7 @@ cdef int _cuPythonInit() except -1 nogil: + {{endif}} + + {{else}} +- handle = (load_nvidia_dynamic_lib("nvrtc")._handle_uint) ++ handle = (CDLL("@libnvrtc@/lib/libnvrtc.so")._handle) + + # Load function + {{if 'nvrtcGetErrorString' in found_functions}} +diff --git a/cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx b/cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx +index 78ea77b283..0b875a6cd3 100644 +--- a/cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/cufile_linux.pyx +@@ -9,7 +9,7 @@ import threading + + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + import cython + +@@ -95,7 +95,7 @@ cdef void* __cuFileSetParameterString = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("cufile")._handle_uint ++ cdef uintptr_t handle = CDLL("@libcufile@/lib/libcufile.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/_internal/nvfatbin_linux.pyx b/cuda_bindings/cuda/bindings/_internal/nvfatbin_linux.pyx +index f5a9bbd218..8271f7aa20 100644 +--- a/cuda_bindings/cuda/bindings/_internal/nvfatbin_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/nvfatbin_linux.pyx +@@ -9,7 +9,7 @@ from libc.stdint cimport intptr_t, uintptr_t + import threading + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + + ############################################################################### +@@ -73,7 +73,7 @@ cdef void* __nvFatbinAddTileIR = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("nvfatbin")._handle_uint ++ cdef uintptr_t handle = CDLL("@libnvfatbin@/lib/libnvfatbin.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx b/cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx +index d676aac372..ed3c000566 100644 +--- a/cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/nvjitlink_linux.pyx +@@ -9,7 +9,7 @@ from libc.stdint cimport intptr_t, uintptr_t + import threading + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + + ############################################################################### +@@ -76,7 +76,7 @@ cdef void* __nvJitLinkVersion = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("nvJitLink")._handle_uint ++ cdef uintptr_t handle = CDLL("@libnvjitlink@/lib/libnvJitLink.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/_internal/nvml_linux.pyx b/cuda_bindings/cuda/bindings/_internal/nvml_linux.pyx +index 28f0919423..852f75e46d 100644 +--- a/cuda_bindings/cuda/bindings/_internal/nvml_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/nvml_linux.pyx +@@ -10,7 +10,7 @@ import threading + + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + + ############################################################################### +@@ -406,7 +406,7 @@ cdef void* __nvmlDeviceSetRusdSettings_v1 = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("nvml")._handle_uint ++ cdef uintptr_t handle = CDLL("@libnvml@/lib/libnvidia-ml.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx b/cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx +index 8a84834a9a..a3ced66807 100644 +--- a/cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx ++++ b/cuda_bindings/cuda/bindings/_internal/nvvm_linux.pyx +@@ -9,7 +9,7 @@ from libc.stdint cimport intptr_t, uintptr_t + import threading + from .utils import FunctionNotFoundError, NotSupportedError + +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + + + ############################################################################### +@@ -75,7 +75,7 @@ cdef void* __nvvmGetProgramLog = NULL + + + cdef void* load_library() except* with gil: +- cdef uintptr_t handle = load_nvidia_dynamic_lib("nvvm")._handle_uint ++ cdef uintptr_t handle = CDLL("@libnvvm@/lib/libnvvm.so")._handle + return handle + + +diff --git a/cuda_bindings/cuda/bindings/cyruntime.pyx.in b/cuda_bindings/cuda/bindings/cyruntime.pyx.in +index 5cd65fbd96..fbbcffbbb7 100644 +--- a/cuda_bindings/cuda/bindings/cyruntime.pyx.in ++++ b/cuda_bindings/cuda/bindings/cyruntime.pyx.in +@@ -1874,7 +1874,7 @@ cdef cudaError_t cudaGraphicsVDPAURegisterOutputSurface(cudaGraphicsResource** r + {{if True}} + + from libc.stdint cimport uintptr_t +-from cuda.pathfinder import load_nvidia_dynamic_lib ++from ctypes import CDLL + {{if 'Windows' == platform.system()}} + cimport cuda.bindings._lib.windll as windll + {{else}} +@@ -1884,11 +1884,11 @@ cimport cuda.bindings._lib.dlfcn as dlfcn + cdef cudaError_t getLocalRuntimeVersion(int* runtimeVersion) except ?cudaErrorCallRequiresNewerDriver nogil: + # Load + with gil: +- loaded_dl = load_nvidia_dynamic_lib("cudart") ++ loaded_dl = CDLL("@libcudart@/lib/libcudart.so") + {{if 'Windows' == platform.system()}} +- handle = loaded_dl._handle_uint ++ handle = loaded_dl._handle + {{else}} +- handle = loaded_dl._handle_uint ++ handle = loaded_dl._handle + {{endif}} + + {{if 'Windows' == platform.system()}} +diff --git a/cuda_bindings/cuda/bindings/nvml.pyx b/cuda_bindings/cuda/bindings/nvml.pyx +index 42c9fdcc87..0661379a68 100644 +--- a/cuda_bindings/cuda/bindings/nvml.pyx ++++ b/cuda_bindings/cuda/bindings/nvml.pyx +@@ -27471,4 +27471,3 @@ cpdef str vgpu_type_get_name(unsigned int vgpu_type_id): + __status__ = nvmlVgpuTypeGetName(vgpu_type_id, vgpu_type_name, size) + check_status(__status__) + return cpython.PyUnicode_FromStringAndSize(vgpu_type_name, size[0]) +- diff --git a/pkgs/development/python-modules/dicomweb-client/default.nix b/pkgs/development/python-modules/dicomweb-client/default.nix index 85b467c426bf..a4064bec4720 100644 --- a/pkgs/development/python-modules/dicomweb-client/default.nix +++ b/pkgs/development/python-modules/dicomweb-client/default.nix @@ -15,14 +15,14 @@ buildPythonPackage (finalAttrs: { pname = "dicomweb-client"; - version = "0.60.1"; + version = "0.61.0"; pyproject = true; src = fetchFromGitHub { owner = "ImagingDataCommons"; repo = "dicomweb-client"; tag = "v${finalAttrs.version}"; - hash = "sha256-ZxeZiCw8I5+Bf266PQ6WQA8mBRC7K3/kZrmuW4l6kQU="; + hash = "sha256-uCImuJDZr2gyWnLCU2JCmkGO/EloRty1fIRujwzYzAg="; }; build-system = [ diff --git a/pkgs/development/python-modules/docformatter/default.nix b/pkgs/development/python-modules/docformatter/default.nix index 8a912144d29f..8a1ab1cf8dab 100644 --- a/pkgs/development/python-modules/docformatter/default.nix +++ b/pkgs/development/python-modules/docformatter/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "docformatter"; - version = "1.7.7"; + version = "1.7.8"; pyproject = true; src = fetchFromGitHub { owner = "PyCQA"; repo = "docformatter"; tag = "v${version}"; - hash = "sha256-eLjaHso1p/nD9K0E+HkeBbnCnvjZ1sdpfww9tzBh0TI="; + hash = "sha256-Z1ZW5ljWRDnS2mlAmbQyAcE97nU+PrpKaP1aox3VQtQ="; }; patches = [ ./test-path.patch ]; diff --git a/pkgs/development/python-modules/genai-prices/default.nix b/pkgs/development/python-modules/genai-prices/default.nix index 2b0168e61040..0169ef60cdf8 100644 --- a/pkgs/development/python-modules/genai-prices/default.nix +++ b/pkgs/development/python-modules/genai-prices/default.nix @@ -13,14 +13,14 @@ buildPythonPackage (finalAttrs: { pname = "genai-prices"; - version = "0.0.56"; + version = "0.0.57"; pyproject = true; src = fetchFromGitHub { owner = "pydantic"; repo = "genai-prices"; tag = "v${finalAttrs.version}"; - hash = "sha256-xiyYK+Dzx4aI9pFpO6mWf860br//PBeIl2N4xRuNQPk="; + hash = "sha256-gEviMu89IL4qSU4/wjGhLo8l1kA5N2alGp+/VcQpEHM="; }; sourceRoot = "${finalAttrs.src.name}/packages/python"; diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index 7fa783abbdfe..936167bbbca2 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.202604221"; + version = "0.1.202604231"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-p6Ai2TBCcO9Jx9MmwqUJLDWT3jMrdvM/NNum8O3gDos="; + hash = "sha256-tnPOYhbUmsdT5z7spF6AHhVAW6yNvFSWGBWbo5l/510="; }; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/idna-ssl/default.nix b/pkgs/development/python-modules/idna-ssl/default.nix deleted file mode 100644 index 84c89aa5258f..000000000000 --- a/pkgs/development/python-modules/idna-ssl/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - idna, -}: - -buildPythonPackage rec { - pname = "idna-ssl"; - version = "1.1.0"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c"; - }; - - propagatedBuildInputs = [ idna ]; - - # Infinite recursion: tests require aiohttp, aiohttp requires idna-ssl - doCheck = false; - - meta = { - description = "Patch ssl.match_hostname for Unicode(idna) domains support"; - homepage = "https://github.com/aio-libs/idna-ssl"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/development/python-modules/netbox-qrcode/default.nix b/pkgs/development/python-modules/netbox-qrcode/default.nix index 1b68bb95ccd8..24932bcc2a64 100644 --- a/pkgs/development/python-modules/netbox-qrcode/default.nix +++ b/pkgs/development/python-modules/netbox-qrcode/default.nix @@ -9,7 +9,7 @@ # dependencies pillow, qrcode, - psycopg, + psycopg2, # nativeCheckInputs django, @@ -40,7 +40,7 @@ buildPythonPackage (finalAttrs: { django netaddr netbox - psycopg # not specified in pyproject.toml, but required at import time + psycopg2 # not specified in pyproject.toml, but required at import time ]; preFixup = '' diff --git a/pkgs/development/python-modules/proton-vpn-api-core/default.nix b/pkgs/development/python-modules/proton-vpn-api-core/default.nix index 67a4266df83d..cfc137558050 100644 --- a/pkgs/development/python-modules/proton-vpn-api-core/default.nix +++ b/pkgs/development/python-modules/proton-vpn-api-core/default.nix @@ -27,14 +27,14 @@ buildPythonPackage rec { pname = "proton-vpn-api-core"; - version = "4.19.1"; + version = "5.0.1"; pyproject = true; src = fetchFromGitHub { owner = "ProtonVPN"; repo = "python-proton-vpn-api-core"; rev = "v${version}"; - hash = "sha256-PD/UQ+BoDO6firhlBJDRNrtiHgnp+4uIb8j+egXqxPA="; + hash = "sha256-XdQLgHKNqBNwY51niSiE1HHxLJ3efipS03IUiyHQCiY="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pylitterbot/default.nix b/pkgs/development/python-modules/pylitterbot/default.nix index a31cc9615899..b86433052bec 100644 --- a/pkgs/development/python-modules/pylitterbot/default.nix +++ b/pkgs/development/python-modules/pylitterbot/default.nix @@ -24,7 +24,7 @@ buildPythonPackage (finalAttrs: { src = fetchFromGitHub { owner = "natekspencer"; repo = "pylitterbot"; - tag = "v${finalAttrs.version}"; + tag = finalAttrs.version; hash = "sha256-bFJ6v27yfzMPqZijWCOlgdVS19IKIMqZcq2FjAyMnqo="; }; diff --git a/pkgs/development/python-modules/pysunspec2/default.nix b/pkgs/development/python-modules/pysunspec2/default.nix index dc9e1ae24419..460ca4ea3f97 100644 --- a/pkgs/development/python-modules/pysunspec2/default.nix +++ b/pkgs/development/python-modules/pysunspec2/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "pysunspec2"; - version = "1.3.3"; + version = "1.3.5"; pyproject = true; src = fetchFromGitHub { owner = "sunspec"; repo = "pysunspec2"; tag = "v${version}"; - hash = "sha256-mVx8Rt5GLyQ2ss0iJPi32Fhl9pD7hsXxW94p+8ri+w4="; + hash = "sha256-5iexVb6qXHmVczLydjXu+blGm9zwKGqUBLDUwl8HBrs="; fetchSubmodules = true; }; diff --git a/pkgs/development/python-modules/ultralytics/default.nix b/pkgs/development/python-modules/ultralytics/default.nix index 7588932abd70..c792c463d625 100644 --- a/pkgs/development/python-modules/ultralytics/default.nix +++ b/pkgs/development/python-modules/ultralytics/default.nix @@ -34,14 +34,14 @@ buildPythonPackage (finalAttrs: { pname = "ultralytics"; - version = "8.4.37"; + version = "8.4.41"; pyproject = true; src = fetchFromGitHub { owner = "ultralytics"; repo = "ultralytics"; tag = "v${finalAttrs.version}"; - hash = "sha256-b6omoISVn/mwwq/GIm2M3B70tO6DanucbcTPitRYRS0="; + hash = "sha256-Ad8GuxPhpCRFOz6/0LiDjkqPMq7ooPRLJ6GKDLCfaKc="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/uritools/default.nix b/pkgs/development/python-modules/uritools/default.nix index fe37b4ad0c47..4c6de860c585 100644 --- a/pkgs/development/python-modules/uritools/default.nix +++ b/pkgs/development/python-modules/uritools/default.nix @@ -7,12 +7,12 @@ buildPythonPackage rec { pname = "uritools"; - version = "6.0.1"; + version = "6.0.2"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-L56cuVTnh3Iysshj9ySkSgbrmNnH691pkUh26Uh7lPg="; + hash = "sha256-TWccO4yiMKXUfvpfimk/PQFTHzj09SMXApm+c0zJhRs="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix index 4e2612aa225c..2bbc8c5923ec 100644 --- a/pkgs/development/python-modules/wandb/default.nix +++ b/pkgs/development/python-modules/wandb/default.nix @@ -75,12 +75,12 @@ }: let - version = "0.26.0"; + version = "0.26.1"; src = fetchFromGitHub { owner = "wandb"; repo = "wandb"; tag = "v${version}"; - hash = "sha256-pN2vfrexu87202WLes4eIbkU1aVuLpqR676f7AxokT8="; + hash = "sha256-QtMjiRqE9ZhA1S8gHt1F8NBXTq7QQ3ENhk02Lry80F4="; }; wandb-xpu = rustPlatform.buildRustPackage { @@ -90,7 +90,7 @@ let sourceRoot = "${src.name}/xpu"; - cargoHash = "sha256-h5kttUU1KsP+IaXTfqfgRf+7cooRZQzi5i5NmQ9YEA0="; + cargoHash = "sha256-RPvtMV9Mrzb6lJhMR+fi58h/ncvbNkbIjAP35sdaOO0="; checkFlags = [ # fails in sandbox @@ -120,7 +120,7 @@ let sourceRoot = "${src.name}/parquet-rust-wrapper"; - cargoHash = "sha256-fOq1KoWJEDZnchE6ooTmUQZ3DLdlbr2/aYl1qbF2GH4="; + cargoHash = "sha256-w98wliTcVJr4IlmKFVU+glmawMJl5qVCSUSJ8LeceJ8="; # The original build script renames the library: # https://github.com/wandb/wandb/blob/v0.26.0/parquet-rust-wrapper/build.sh#L37-L68 diff --git a/pkgs/development/web/nodejs/symlink.nix b/pkgs/development/web/nodejs/symlink.nix index 87bbdbec6314..538ac2311946 100644 --- a/pkgs/development/web/nodejs/symlink.nix +++ b/pkgs/development/web/nodejs/symlink.nix @@ -3,12 +3,51 @@ nodejs-slim, symlinkJoin, }: -symlinkJoin { +(symlinkJoin { pname = "nodejs"; - inherit (nodejs-slim) version passthru meta; + inherit (nodejs-slim) version meta; + passthru = nodejs-slim.passthru // { + inherit (nodejs-slim) src; + }; paths = [ nodejs-slim nodejs-slim.npm ] ++ lib.optional (builtins.hasAttr "corepack" nodejs-slim) nodejs-slim.corepack; -} +}).overrideAttrs + (nodejs: { + passthru = + (builtins.listToAttrs ( + map + (name: { + inherit name; + value = lib.warn "Use nodejs-slim.${name} instead of nodejs.${name}" nodejs-slim.${name}; + }) + ( + builtins.filter ( + name: + !lib.strings.hasPrefix "__" name + && !(builtins.elem name [ + "override" + "overrideAttrs" + "overrideDerivation" + "outputs" + "outputName" + "system" + "type" + + # Filter out arguments of `getOutput` + "bin" + "dev" + "include" + "lib" + "man" + "out" + "static" + ]) + && !(builtins.hasAttr name nodejs) + ) (builtins.attrNames nodejs-slim) + ) + )) + // nodejs.passthru; + }) diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix index 064edf0fb575..e90ec51768f9 100644 --- a/pkgs/servers/firebird/default.nix +++ b/pkgs/servers/firebird/default.nix @@ -5,6 +5,7 @@ fetchDebianPatch, libedit, autoreconfHook, + cmake, zlib, unzip, libtommath, @@ -48,6 +49,9 @@ let enableParallelBuilding = true; + __structuredAttrs = true; + strictDeps = true; + installPhase = '' runHook preInstall mkdir -p $out @@ -62,13 +66,13 @@ rec { firebird_3 = stdenv.mkDerivation ( base // rec { - version = "3.0.13"; + version = "3.0.14"; src = fetchFromGitHub { owner = "FirebirdSQL"; repo = "firebird"; rev = "v${version}"; - hash = "sha256-ti3cFfByM2wxOLkAebwtFe25B5W7jOwi3f7MPYo/yUA="; + hash = "sha256-X6Jv32VniAefIWjLTPwEipsQVRl7HBb4EKyi2IL1VWM="; }; patches = [ @@ -95,13 +99,13 @@ rec { firebird_4 = stdenv.mkDerivation ( base // rec { - version = "4.0.6"; + version = "4.0.7"; src = fetchFromGitHub { owner = "FirebirdSQL"; repo = "firebird"; rev = "v${version}"; - hash = "sha256-65wfG6huDzvG/tEVllA58OfZqoL4U/ilw5YIDqQywTs="; + hash = "sha256-EnD0cTQSOh1fARjKdoOCR5UjpvVA96EZVVWfqlH+m48="; }; nativeBuildInputs = base.nativeBuildInputs ++ [ unzip ]; @@ -113,5 +117,32 @@ rec { } ); - firebird = firebird_4; + firebird_5 = stdenv.mkDerivation ( + base + // rec { + version = "5.0.4"; + + src = fetchFromGitHub { + owner = "FirebirdSQL"; + repo = "firebird"; + rev = "v${version}"; + hash = "sha256-wAiOyCVS7fjVqrDlJJwDFxw5ZD5spnXlYKCAQ8gctHI="; + }; + + # CMake is just used for libcds + dontUseCmakeConfigure = true; + + nativeBuildInputs = base.nativeBuildInputs ++ [ + cmake + unzip + ]; + buildInputs = base.buildInputs ++ [ + zlib + libtommath + libtomcrypt + ]; + } + ); + + firebird = firebird_5; } diff --git a/pkgs/servers/http/tengine/default.nix b/pkgs/servers/http/tengine/default.nix index 6c7f37612f9e..7ccd89fef7e0 100644 --- a/pkgs/servers/http/tengine/default.nix +++ b/pkgs/servers/http/tengine/default.nix @@ -132,8 +132,8 @@ stdenv.mkDerivation rec { ++ map (mod: "--add-module=${mod.src}") modules; env.NIX_CFLAGS_COMPILE = - "-I${libxml2.dev}/include/libxml2 -Wno-error=implicit-fallthrough" - + optionalString stdenv.hostPlatform.isDarwin " -Wno-error=deprecated-declarations"; + "-I${libxml2.dev}/include/libxml2 -Wno-error=implicit-fallthrough -Wno-unterminated-string-initialization" + + optionalString stdenv.hostPlatform.isDarwin " -Wno-error=deprecated-declarations -Wno-unused-but-set-variable"; preConfigure = (lib.concatMapStringsSep "\n" (mod: mod.preConfigure or "") modules); diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-pyroscope-app/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-pyroscope-app/default.nix index b722a269985c..699e6b6661e4 100644 --- a/pkgs/servers/monitoring/grafana/plugins/grafana-pyroscope-app/default.nix +++ b/pkgs/servers/monitoring/grafana/plugins/grafana-pyroscope-app/default.nix @@ -2,8 +2,8 @@ grafanaPlugin { pname = "grafana-pyroscope-app"; - version = "2.0.1"; - zipHash = "sha256-ws/gYJnq2BQHeaPezGFsEgmvbURRo1kCI8yRO5X6588="; + version = "2.0.4"; + zipHash = "sha256-merfONOOSaD3KOQkRP7v8J18pemW3dLBf3bz3QpEpiQ="; meta = { description = "Integrate seamlessly with Pyroscope, the open-source continuous profiling platform, providing a smooth, query-less experience for browsing and analyzing profiling data"; license = lib.licenses.agpl3Only; diff --git a/pkgs/servers/monitoring/grafana/plugins/victoriametrics-metrics-datasource/default.nix b/pkgs/servers/monitoring/grafana/plugins/victoriametrics-metrics-datasource/default.nix index 6a026ceadd90..8bcc2e23b9c5 100644 --- a/pkgs/servers/monitoring/grafana/plugins/victoriametrics-metrics-datasource/default.nix +++ b/pkgs/servers/monitoring/grafana/plugins/victoriametrics-metrics-datasource/default.nix @@ -2,8 +2,8 @@ grafanaPlugin { pname = "victoriametrics-metrics-datasource"; - version = "0.23.4"; - zipHash = "sha256-a0EJB+A+Rlfrpd2m1HZ2nw2sh4QuWe1O2oueVi4xPZE="; + version = "0.24.0"; + zipHash = "sha256-NR5mUC5ctByObxRb+wJw7lRxuXbC4jgNjaIUXY0Y/94="; meta = { description = "VictoriaMetrics metrics datasource for Grafana"; license = lib.licenses.agpl3Only; diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix index 8839deada685..45a37d4762ca 100644 --- a/pkgs/tools/package-management/packagekit/default.nix +++ b/pkgs/tools/package-management/packagekit/default.nix @@ -10,6 +10,8 @@ sqlite, gobject-introspection, vala, + jansson, + docbook_xsl_ns, gtk-doc, boost, meson, @@ -30,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "packagekit"; - version = "1.3.3"; + version = "1.3.5"; outputs = [ "out" @@ -42,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "PackageKit"; repo = "PackageKit"; rev = "v${finalAttrs.version}"; - hash = "sha256-BgVfM2EtuvV9qTFSy+WW5Ny1QrHIj3t2Royrn7ZHAA8="; + hash = "sha256-aKucwqwNyZWyHfNu9ntzSwD+eQy8KjCt6RVMjjjZmZg="; }; buildInputs = [ @@ -52,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: { gst_all_1.gstreamer gst_all_1.gst-plugins-base gtk3 + jansson sqlite boost ] @@ -97,6 +100,9 @@ stdenv.mkDerivation (finalAttrs: { --replace-fail "install_dir: join_paths(get_option('sysconfdir'), 'PackageKit')" "install_dir: join_paths('$out', 'etc', 'PackageKit')" substituteInPlace data/meson.build \ --replace-fail "install_dir: join_paths(get_option('localstatedir'), 'lib', 'PackageKit')," "install_dir: join_paths('$out', 'var', 'lib', 'PackageKit')," + substituteInPlace client/meson.build \ + --replace-fail http://docbook.sourceforge.net/release/xsl-ns/current ${docbook_xsl_ns}/share/xml/docbook-xsl-ns + ''; passthru.tests = { diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 7ff43bb28569..71ee1c23243e 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -503,6 +503,7 @@ mapAliases { clashmi = throw "'clashmi' has been removed, as it is unmaintained in nixpkgs"; # Added 2026-01-31 clasp = throw "'clasp' has been renamed to/replaced by 'clingo'"; # Converted to throw 2025-10-27 claude-code-acp = warnAlias "'claude-code-acp' has been renamed to 'claude-agent-acp'" claude-agent-acp; # Added 2026-03-31 + claude-code-bin = warnAlias "'claude-code-bin' has been merged into 'claude-code'" claude-code; # Added 2026-04-18 clearlyU = clearly-u; # Added 2026-02-08 cli-visualizer = throw "'cli-visualizer' has been removed as the upstream repository is gone"; # Added 2025-06-05 clima = throw "'clima' has been removed, as it has been unmaintained upstream since December 2024, use glow instead"; # Added 2026-01-01 @@ -678,7 +679,6 @@ 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 73601ffd559f..689e95d4bbb7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3761,14 +3761,13 @@ with pkgs; flutterPackages-source = recurseIntoAttrs ( callPackage ../development/compilers/flutter { useNixpkgsEngine = true; } ); - flutterPackages = - if stdenv.hostPlatform.isLinux then flutterPackages-source else flutterPackages-bin; + flutterPackages = flutterPackages-bin; flutter = flutterPackages.stable; flutter341 = flutterPackages.v3_41; - flutter338 = flutterPackages-bin.v3_38; - flutter335 = flutterPackages-bin.v3_35; - flutter332 = flutterPackages-bin.v3_32; - flutter329 = flutterPackages-bin.v3_29; + flutter338 = flutterPackages.v3_38; + flutter335 = flutterPackages.v3_35; + flutter332 = flutterPackages.v3_32; + flutter329 = flutterPackages.v3_29; fpc = callPackage ../development/compilers/fpc { }; @@ -8003,6 +8002,7 @@ with pkgs; dovecot_pigeonhole_2_4 = dovecot_pigeonhole; inherit (callPackages ../servers/firebird { }) + firebird_5 firebird_4 firebird_3 firebird @@ -9870,12 +9870,6 @@ with pkgs; withFonts = true; }; - lmms = libsForQt5.callPackage ../applications/audio/lmms { - lame = null; - libsoundio = null; - portaudio = null; - }; - luminanceHDR = callPackage ../applications/graphics/luminance-hdr { openexr = openexr_2; }; @@ -11288,6 +11282,14 @@ 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-aliases.nix b/pkgs/top-level/python-aliases.nix index fb3f176925e1..e38f275c7331 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -258,6 +258,7 @@ mapAliases { homepluscontrol = throw "'homepluscontrol' has been removed as it was unmaintained upstream"; # Added 2026-03-22 howdoi = throw "'howdoi' has been removed as it was unmaintained upstream"; # Added 2026-04-19 HTSeq = throw "'HTSeq' has been renamed to/replaced by 'htseq'"; # Converted to throw 2025-10-29 + idna-ssl = throw "'idna-ssl' has been removed as it was archived upstream"; # Added 2026-04-23 IMAPClient = throw "'IMAPClient' has been renamed to/replaced by 'imapclient'"; # Converted to throw 2025-10-29 inlinestyler = throw "inlinestyler has been removed because it is no longer maintained"; # added 2025-08-09 ionhash = throw "ionhash has been removed due to being unmaintained upstream"; # added 2025-07-30 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 95d6df7f8401..c14b91280b61 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7404,8 +7404,6 @@ self: super: with self; { idna = callPackage ../development/python-modules/idna { }; - idna-ssl = callPackage ../development/python-modules/idna-ssl { }; - idrive-e2-client = callPackage ../development/python-modules/idrive-e2-client { }; idstools = callPackage ../development/python-modules/idstools { };