diff --git a/doc/release-notes/rl-2605.section.md b/doc/release-notes/rl-2605.section.md index 7bec54ec6711..e0e76ded398e 100644 --- a/doc/release-notes/rl-2605.section.md +++ b/doc/release-notes/rl-2605.section.md @@ -286,6 +286,8 @@ - the `autossh-ng` NixOS module was introduced as a simpler alternative to the existing `autossh` module. +- Added `haskell.packages.microhs`, a set of Haskell packages built with MicroHs. + - `gnuradio`: Overriding the `.pkgs` package set is now possible with a `packageOverrides` function, like with `python.pkgs` and other language-specific package sets. Example: diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 115c78f08cf3..44c2aabf8e95 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1192,6 +1192,20 @@ githubId = 49609151; name = "Popa Ioan Alexandru"; }; + AlexandreTunstall = { + name = "Alex Tunstall"; + email = "alex@tunstall.xyz"; + matrix = "@alex:tunstall.xyz"; + github = "AlexandreTunstall"; + githubId = 32900877; + keys = [ + { + # Fetch with WKD (e.g. gpg --locate-external-keys alex@tunstall.xyz) + # The fetched key should have this fingerprint (please let me know if not) + fingerprint = "51A5 8478 068E B19D FD35 D542 F6CA 1AD5 54DC A5E4"; + } + ]; + }; alexandru0-dev = { email = "alexandru.italia32+nixpkgs@gmail.com"; github = "alexandru0-dev"; diff --git a/nixos/modules/programs/nix-required-mounts.nix b/nixos/modules/programs/nix-required-mounts.nix index f3e7a75646d0..d4de973c0401 100644 --- a/nixos/modules/programs/nix-required-mounts.nix +++ b/nixos/modules/programs/nix-required-mounts.nix @@ -67,6 +67,23 @@ let # TODO: Refactor `hardware.graphics` to ease referencing the closure # NOTE: A naive implementation may e.g. introduce a conditional infinite recursion (https://github.com/NixOS/nixpkgs/pull/488199) nvidia-gpu.unsafeFollowSymlinks = true; + + zluda = { + onFeatures = [ + "cuda" + ]; + paths = [ + pkgs.addDriverRunpath.driverLink + "/dev/dri" + "/dev/kfd" + "/sys/devices/virtual/kfd" + # As per https://www.kernel.org/doc/Documentation/admin-guide/devices.txt + # 226 is the major ID for "Direct Rendering Infrastructure (DRI)" devices + "/sys/dev/char/226:*" + ] + ++ config.hardware.graphics.extraPackages; + unsafeFollowSymlinks = true; + }; }; in { @@ -82,6 +99,16 @@ in You may extend or override the exposed paths via the `programs.nix-required-mounts.allowedPatterns.nvidia-gpu.paths` option. ''; + + presets.zluda.enable = lib.mkEnableOption '' + Same as `programs.nix-required-mounts.presets.nvidia-gpu` but adds paths + to the sandbox that are needed for running CUDA applications on top of + the ZLUDA translation layer combined with AMD GPUs. + + You may extend or override the exposed paths via the + `programs.nix-required-mounts.allowedPatterns.zluda.paths` option. + ''; + allowedPatterns = with lib.types; lib.mkOption { @@ -122,6 +149,14 @@ in inherit (defaults) nvidia-gpu; }; }) + (lib.mkIf cfg.presets.zluda.enable { + hardware.graphics.enable = lib.mkDefault true; + hardware.amdgpu.zluda.enable = lib.mkDefault true; + nix.settings.system-features = cfg.allowedPatterns.zluda.onFeatures; + programs.nix-required-mounts.allowedPatterns = { + inherit (defaults) zluda; + }; + }) ] ); } diff --git a/nixos/modules/services/hardware/amdgpu.nix b/nixos/modules/services/hardware/amdgpu.nix index 5c98a0db50ad..1b4c2f449be9 100644 --- a/nixos/modules/services/hardware/amdgpu.nix +++ b/nixos/modules/services/hardware/amdgpu.nix @@ -40,30 +40,41 @@ in }; opencl.enable = lib.mkEnableOption "OpenCL support using ROCM runtime library"; + zluda.enable = lib.mkEnableOption "CUDA support using ZLUDA runtime library"; + zluda.package = lib.mkPackageOption pkgs "zluda" { }; }; - config = { - boot.kernelParams = - lib.optionals cfg.legacySupport.enable [ - "amdgpu.si_support=1" - "amdgpu.cik_support=1" - "radeon.si_support=0" - "radeon.cik_support=0" - ] - ++ lib.optionals cfg.overdrive.enable [ - "amdgpu.ppfeaturemask=${cfg.overdrive.ppfeaturemask}" - ]; + config = lib.mkMerge [ + { + boot.kernelParams = + lib.optionals cfg.legacySupport.enable [ + "amdgpu.si_support=1" + "amdgpu.cik_support=1" + "radeon.si_support=0" + "radeon.cik_support=0" + ] + ++ lib.optionals cfg.overdrive.enable [ + "amdgpu.ppfeaturemask=${cfg.overdrive.ppfeaturemask}" + ]; - boot.initrd.kernelModules = lib.optionals cfg.initrd.enable [ "amdgpu" ]; - - hardware.graphics = lib.mkIf cfg.opencl.enable { - enable = lib.mkDefault true; - extraPackages = [ - pkgs.rocmPackages.clr - pkgs.rocmPackages.clr.icd - ]; - }; - }; + boot.initrd.kernelModules = lib.optionals cfg.initrd.enable [ "amdgpu" ]; + } + (lib.mkIf cfg.opencl.enable { + hardware.graphics = { + enable = lib.mkDefault true; + extraPackages = [ + pkgs.rocmPackages.clr + pkgs.rocmPackages.clr.icd + ]; + }; + }) + (lib.mkIf cfg.zluda.enable { + hardware.graphics = { + enable = lib.mkDefault true; + extraPackages = [ cfg.zluda.package ]; + }; + }) + ]; meta = { maintainers = with lib.maintainers; [ johnrtitor ]; diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 35af9bf0cc73..5d7533f5e414 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -16,19 +16,19 @@ let inherit tiling_wm; }; stableVersion = { - version = "2025.3.2.6"; # "Android Studio Panda 2 | 2025.3.2" - sha256Hash = "sha256-MpQtjNdogZLPPNB78oL7EgA1ub2bVubxPFVA5tOYB+k="; - url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.2.6/android-studio-panda2-linux.tar.gz"; + version = "2025.3.3.6"; # "Android Studio Panda 3 | 2025.3.3" + sha256Hash = "sha256-NBrA/BfbyYfQUw4M+zJxJUgFM9ZzOoifITdja+zUhqU="; + url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.3.6/android-studio-panda3-linux.tar.gz"; }; betaVersion = { - version = "2025.3.2.5"; # "Android Studio Panda 2 | 2025.3.2 RC 1" - sha256Hash = "sha256-qpmc7MO48GV2nnxEdRstg3ne0Gvlrgk9UX5Dr60gAMM="; - url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.2.5/android-studio-panda2-rc1-linux.tar.gz"; + version = "2025.3.3.5"; # "Android Studio Panda 3 | 2025.3.3 RC 1" + sha256Hash = "sha256-lKpFKw2Oq7OlDrPjFJhMH3aQsJO7TeOKy7HGUCE0B1U="; + url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.3.5/android-studio-panda3-rc1-linux.tar.gz"; }; latestVersion = { - version = "2025.3.3.2"; # "Android Studio Panda 3 | 2025.3.3 Canary 2" - sha256Hash = "sha256-z8GpBqyEnbyyBc0XPo5q52WS5d7b4292QgUj0FPW+C0="; - url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.3.2/android-studio-panda3-canary2-linux.tar.gz"; + version = "2025.3.4.3"; # "Android Studio Panda 4 | 2025.3.4 Canary 3" + sha256Hash = "sha256-8fqHdU6IPuRmcJeCZQOqUPgfild9k98sLnN77dl2Hs8="; + url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.4.3/android-studio-panda4-canary3-linux.tar.gz"; }; in { diff --git a/pkgs/applications/editors/android-studio/update.sh b/pkgs/applications/editors/android-studio/update.sh index 04efbb366754..89839334ad2b 100755 --- a/pkgs/applications/editors/android-studio/update.sh +++ b/pkgs/applications/editors/android-studio/update.sh @@ -16,7 +16,7 @@ getLatest() { *) local select=".channel == \"${channel^}\"" ;; esac local result="$(echo "$RELEASES_JSON" \ - | jq -r ".content.item[] | select(${select}) | [.version, .${attribute}] | join(\" \")" \ + | jq -r ".content.item[] | select(${select}) | [.version, (${attribute})] | join(\" \")" \ | sort --version-sort \ | cut -d' ' -f 2- \ | tail -n 1)" @@ -24,14 +24,14 @@ getLatest() { if [[ -n "$result" ]]; then echo "$result" else - echo "could not find the latest $attribute for $channel" + echo "could not find the latest $attribute for $channel" >&2 exit 1 fi } updateChannel() { local channel="$1" - local latestVersion="$(getLatest "version" "$channel")" + local latestVersion="$(getLatest ".version" "$channel")" local localVersion="$(nix --extra-experimental-features nix-command eval --raw --file . androidStudioPackages."${channel}".version)" if [[ "${latestVersion}" == "${localVersion}" ]]; then @@ -40,15 +40,24 @@ updateChannel() { fi echo "updating $channel from $localVersion to $latestVersion" - local latestHash="$(nix-prefetch-url "https://dl.google.com/dl/android/studio/ide-zips/${latestVersion}/android-studio-${latestVersion}-linux.tar.gz")" - local latestSri="$(nix --extra-experimental-features nix-command hash to-sri --type sha256 "$latestHash")" + local latestUrl="$(getLatest "[.download[] | select(.link | endswith(\"-linux.tar.gz\"))][0].link" "$channel")" + local latestHash="$(getLatest "[.download[] | select(.link | endswith(\"-linux.tar.gz\"))][0].checksum" "$channel")" + + if [[ "$latestUrl" != https://edgedl.me.gvt1.com/android/studio/* ]]; then + echo "URL '$latestUrl' had an unexpected value, maybe the server changed?" >&2 + exit 1 + fi + + local latestSri="$(nix --extra-experimental-features nix-command hash convert --from base16 --hash-algo sha256 "$latestHash")" + local localUrl="$(nix --extra-experimental-features nix-command eval --json --file . androidStudioPackages."${channel}".unwrapped.src.drvAttrs.urls | jq -r '.[0]')" local localHash="$(nix --extra-experimental-features nix-command eval --raw --file . androidStudioPackages."${channel}".unwrapped.src.drvAttrs.outputHash)" sed -i "s~${localHash}~${latestSri}~g" "${DEFAULT_NIX}" # Match the formatting of default.nix: `version = "2021.3.1.14"; # "Android Studio Dolphin (2021.3.1) Beta 5"` - local versionString="${latestVersion}\"; # \"$(getLatest "name" "${channel}")\"" + local versionString="${latestVersion}\"; # \"$(getLatest ".name" "${channel}")\"" + sed -i "s~${localUrl}~${latestUrl}~g" "${DEFAULT_NIX}" sed -i "s~${localVersion}.*~${versionString}~g" "${DEFAULT_NIX}" - echo "updated ${channel} to ${latestVersion}" + echo "updated ${channel} to ${latestVersion}" >&2 } if (( $# == 0 )); then @@ -60,8 +69,10 @@ else case "$1" in beta|canary|stable) updateChannel "$1" ;; + dev) + echo "no autoupdate for dev" >&2 && exit 0 ;; *) - echo "unknown channel: $1" && exit 1 ;; + echo "unknown channel: $1" >&2 && exit 1 ;; esac shift 1 done diff --git a/pkgs/applications/editors/vim/plugins/deprecated.json b/pkgs/applications/editors/vim/plugins/deprecated.json index fa8c481f4917..4af18da693a7 100644 --- a/pkgs/applications/editors/vim/plugins/deprecated.json +++ b/pkgs/applications/editors/vim/plugins/deprecated.json @@ -83,6 +83,10 @@ "date": "2026-02-04", "new": "bats-vim" }, + "bitbake-vim": { + "date": "2026-04-09", + "new": "bitbake" + }, "calendar": { "date": "2026-02-04", "new": "calendar-vim" diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 0bdd6a0d9575..efdc02b3c36d 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -1582,6 +1582,19 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + bitbake = buildVimPlugin { + pname = "bitbake"; + version = "2.12.0-unstable-2026-04-08"; + src = fetchFromGitHub { + owner = "openembedded"; + repo = "bitbake"; + rev = "5d722b5d65e4eef7befe6376983385421e993f86"; + hash = "sha256-nOnNIXRUxsYNaEBhWuzCMTg37C9/S4ekxNbCpvBe+TU="; + }; + meta.homepage = "https://github.com/openembedded/bitbake/"; + meta.hydraPlatforms = [ ]; + }; + blame-nvim = buildVimPlugin { pname = "blame.nvim"; version = "0-unstable-2026-02-12"; @@ -2245,6 +2258,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + clangd_extensions-nvim = buildVimPlugin { + pname = "clangd_extensions.nvim"; + version = "0-unstable-2026-01-12"; + src = fetchgit { + url = "https://git.sr.ht/~p00f/clangd_extensions.nvim"; + rev = "997d20e6bc83ea1a6223c08d2b9db76943abf56b"; + hash = "sha256-5XES8qyl3tdMmsT+mkVcJ1sC5AKJDpHI/elsoB8XE/8="; + }; + meta.homepage = "https://git.sr.ht/~p00f/clangd_extensions.nvim"; + meta.hydraPlatforms = [ ]; + }; + claude-code-nvim = buildVimPlugin { pname = "claude-code.nvim"; version = "0.4.3-unstable-2026-02-04"; @@ -2414,6 +2439,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + cmp-async-path = buildVimPlugin { + pname = "cmp-async-path"; + version = "0-unstable-2026-01-28"; + src = fetchgit { + url = "https://codeberg.org/FelipeLema/cmp-async-path/"; + rev = "f8af3f726e07f2e9d37672eaa9102581aefce149"; + hash = "sha256-ALMK7TnEB7/UZibVgOl4r6/gYsHCo6YAZcAR536VL4g="; + }; + meta.homepage = "https://codeberg.org/FelipeLema/cmp-async-path/"; + meta.hydraPlatforms = [ ]; + }; + cmp-beancount = buildVimPlugin { pname = "cmp-beancount"; version = "0-unstable-2025-11-26"; @@ -6021,6 +6058,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + gitlab-vim = buildVimPlugin { + pname = "gitlab.vim"; + version = "1.1.0-unstable-2026-03-17"; + src = fetchgit { + url = "https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim"; + rev = "cb750761acf8dc17f4f1051d1b4ade6c0aaeb432"; + hash = "sha256-rhYz3Z1Dcffvo8E3390gOBcqfFclWJ19wTKwp6L/874="; + }; + meta.homepage = "https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim"; + meta.hydraPlatforms = [ ]; + }; + gitlineage-nvim = buildVimPlugin { pname = "gitlineage.nvim"; version = "0-unstable-2026-02-14"; @@ -6451,6 +6500,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + hare-vim = buildVimPlugin { + pname = "hare.vim"; + version = "0-unstable-2026-02-05"; + src = fetchgit { + url = "https://git.sr.ht/~sircmpwn/hare.vim"; + rev = "cbc1195ce25b853788d3006c34ff6be0aba6483d"; + hash = "sha256-zueMmX8rHXMpnv6ukrcFcTIWVOoYrBC/0Tn2+5fTRlU="; + }; + meta.homepage = "https://git.sr.ht/~sircmpwn/hare.vim"; + meta.hydraPlatforms = [ ]; + }; + harpoon = buildVimPlugin { pname = "harpoon"; version = "0-unstable-2024-08-29"; @@ -7337,6 +7398,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + jsonfly-nvim = buildVimPlugin { + pname = "jsonfly.nvim"; + version = "0-unstable-2025-11-02"; + src = fetchgit { + url = "https://git.myzel394.app/Myzel394/jsonfly.nvim"; + rev = "3d58635cb195a5435743e7882c6ac7cff710204f"; + hash = "sha256-bTh/6zmYQ+XqBsccKo8i149nU5bBfFv+8UKMayHIoo4="; + }; + meta.homepage = "https://git.myzel394.app/Myzel394/jsonfly.nvim"; + meta.hydraPlatforms = [ ]; + }; + jule-nvim = buildVimPlugin { pname = "jule.nvim"; version = "0-unstable-2025-12-26"; @@ -8273,6 +8346,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + lsp_lines-nvim = buildVimPlugin { + pname = "lsp_lines.nvim"; + version = "3.0.0-unstable-2024-12-21"; + src = fetchgit { + url = "https://git.sr.ht/~whynothugo/lsp_lines.nvim"; + rev = "a92c755f182b89ea91bd8a6a2227208026f27b4d"; + hash = "sha256-jHiIZemneQACTDYZXBJqX2/PRTBoxq403ILvt1Ej1ZM="; + }; + meta.homepage = "https://git.sr.ht/~whynothugo/lsp_lines.nvim"; + meta.hydraPlatforms = [ ]; + }; + lsp_signature-nvim = buildVimPlugin { pname = "lsp_signature.nvim"; version = "0.3.1-unstable-2026-04-07"; @@ -11640,6 +11725,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + nvim-julia-autotest = buildVimPlugin { + pname = "nvim-julia-autotest"; + version = "0-unstable-2022-10-31"; + src = fetchgit { + url = "https://gitlab.com/usmcamp0811/nvim-julia-autotest"; + rev = "b74e2f9c961e604cb56cc23f87188348bfa0f33f"; + hash = "sha256-IaNsbBe5q7PB9Q/N/Z9nEnP6jlkQ6+xlkC0TCFnJpkk="; + }; + meta.homepage = "https://gitlab.com/usmcamp0811/nvim-julia-autotest"; + meta.hydraPlatforms = [ ]; + }; + nvim-jump = buildVimPlugin { pname = "nvim-jump"; version = "0-unstable-2026-04-08"; @@ -13813,6 +13910,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + rainbow-delimiters-nvim = buildVimPlugin { + pname = "rainbow-delimiters.nvim"; + version = "0.12.0-unstable-2026-04-06"; + src = fetchgit { + url = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim"; + rev = "aab6caaffd79b8def22ec4320a5344f7c42f58d2"; + hash = "sha256-aQM0Ay5GZZwcTnZ2PV4iucyBmoik98EAeIPIIJSxuYk="; + }; + meta.homepage = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim"; + meta.hydraPlatforms = [ ]; + }; + rainbow_csv = buildVimPlugin { pname = "rainbow_csv"; version = "4.3.0-unstable-2024-07-05"; @@ -14712,6 +14821,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + sonarlint-nvim = buildVimPlugin { + pname = "sonarlint.nvim"; + version = "0-unstable-2026-01-19"; + src = fetchgit { + url = "https://gitlab.com/schrieveslaach/sonarlint.nvim"; + rev = "acd09b78969ddc965a7ddf59abb9d9eec5ecd94f"; + hash = "sha256-71emILbp291AZmh9Rc0S92mbkcZ88zjCvPTaumEM7Qg="; + }; + meta.homepage = "https://gitlab.com/schrieveslaach/sonarlint.nvim"; + meta.hydraPlatforms = [ ]; + }; + sonarqube-nvim = buildVimPlugin { pname = "sonarqube.nvim"; version = "0-unstable-2025-06-24"; @@ -21822,6 +21943,18 @@ final: prev: { meta.hydraPlatforms = [ ]; }; + vim-stationeers-ic10-syntax = buildVimPlugin { + pname = "vim-stationeers-ic10-syntax"; + version = "0-unstable-2025-11-02"; + src = fetchgit { + url = "https://gitlab.com/LittleMorph/vim-ic10"; + rev = "74446a16078ef4f3d2088136b32af939fb6bc2a4"; + hash = "sha256-YCxrSB7eRQ54iZhpcsAR930Uccj+2ZyogpYGKbcSlys="; + }; + meta.homepage = "https://gitlab.com/LittleMorph/vim-ic10"; + meta.hydraPlatforms = [ ]; + }; + vim-strip-trailing-whitespace = buildVimPlugin { pname = "vim-strip-trailing-whitespace"; version = "1.0-unstable-2022-02-01"; diff --git a/pkgs/applications/editors/vim/plugins/non-generated/bitbake-vim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/bitbake-vim/default.nix deleted file mode 100644 index f43b0557c4d8..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/bitbake-vim/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - vimUtils, - fetchFromGitHub, -}: -vimUtils.buildVimPlugin rec { - pname = "bitbake-vim"; - version = "2.10.4"; - - # The tags are very messy on the upstream repo. We prefer disabling automatic updates for this plugin. - # nixpkgs-update: no auto update - src = fetchFromGitHub { - owner = "openembedded"; - repo = "bitbake"; - tag = version; - hash = "sha256-gdxPnRhd4Hj1PWgCU5A/+639ndJXlkdArOBZt6eiZWA="; - }; - - sourceRoot = "source/contrib/vim"; - - meta.homepage = "https://github.com/openembedded/bitbake/"; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/clangd_extensions-nvim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/clangd_extensions-nvim/default.nix deleted file mode 100644 index 5f998af8c27e..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/clangd_extensions-nvim/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - lib, - fetchFromSourcehut, - nix-update-script, - vimUtils, -}: -vimUtils.buildVimPlugin { - pname = "clangd_extensions.nvim"; - version = "0-unstable-2025-01-27"; - - src = fetchFromSourcehut { - owner = "~p00f"; - repo = "clangd_extensions.nvim"; - rev = "db28f29be928d18cbfb86fbfb9f83f584f658feb"; - hash = "sha256-XdA638W0Zb85v5uAUNpvUiiQXGKOM2xykD2ClLk8Qpo="; - }; - - passthru.updateScript = nix-update-script { }; - - meta = { - description = "Clangd's off-spec features for neovim's LSP client"; - homepage = "https://git.sr.ht/~p00f/clangd_extensions.nvim"; - license = lib.licenses.mit; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/cmp-async-path/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/cmp-async-path/default.nix deleted file mode 100644 index 29ffe4e42c07..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/cmp-async-path/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - lib, - vimUtils, - fetchFromCodeberg, - nix-update-script, - vimPlugins, -}: -vimUtils.buildVimPlugin { - pname = "cmp-async-path"; - version = "0-unstable-2026-01-28"; - - src = fetchFromCodeberg { - owner = "FelipeLema"; - repo = "cmp-async-path"; - rev = "f8af3f726e07f2e9d37672eaa9102581aefce149"; - hash = "sha256-ALMK7TnEB7/UZibVgOl4r6/gYsHCo6YAZcAR536VL4g="; - }; - - checkInputs = [ vimPlugins.nvim-cmp ]; - - passthru.updateScript = nix-update-script { - extraArgs = [ "--version=branch" ]; - }; - - meta = { - description = "Nvim-cmp source for filesystem paths with async processing"; - homepage = "https://codeberg.org/FelipeLema/cmp-async-path/"; - license = lib.licenses.mit; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/gitlab-vim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/gitlab-vim/default.nix deleted file mode 100644 index 824190179389..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/gitlab-vim/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - vimUtils, - fetchFromGitLab, - nix-update-script, -}: -let - version = "0.1.1"; -in -vimUtils.buildVimPlugin { - pname = "gitlab.vim"; - inherit version; - - src = fetchFromGitLab { - owner = "gitlab-org/editor-extensions"; - repo = "gitlab.vim"; - rev = "v${version}"; - hash = "sha256-W/FV+i/QJYX6A8uyxAQN4ov1kMd9UFCghFmSQp1kbnM="; - }; - - passthru.updateScript = nix-update-script { }; - - meta = { - description = "Integrate GitLab Duo with Neovim"; - homepage = "https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim"; - license = lib.licenses.mit; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/hare-vim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/hare-vim/default.nix deleted file mode 100644 index 7180615ced27..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/hare-vim/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - lib, - vimUtils, - fetchFromSourcehut, - nix-update-script, -}: -vimUtils.buildVimPlugin { - pname = "hare.vim"; - version = "0-unstable-2025-04-24"; - - src = fetchFromSourcehut { - owner = "~sircmpwn"; - repo = "hare.vim"; - rev = "41b8b615f46a39d807a9a069039aac79c925c389"; - hash = "sha256-GPFoQI6tipcLzkvjaeufmMrNnQM46lPas9D1SwzjKF4="; - }; - - passthru.updateScript = nix-update-script { }; - - meta = { - description = "Hare programming in Vim"; - homepage = "https://git.sr.ht/~sircmpwn/hare.vim"; - license = lib.licenses.vim; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/jsonfly-nvim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/jsonfly-nvim/default.nix deleted file mode 100644 index 22d445b55ded..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/jsonfly-nvim/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - lib, - fetchFromGitea, - vimUtils, - nix-update-script, -}: -vimUtils.buildVimPlugin { - pname = "jsonfly.nvim"; - version = "0-unstable-2025-06-07"; - - src = fetchFromGitea { - domain = "git.myzel394.app"; - owner = "Myzel394"; - repo = "jsonfly.nvim"; - rev = "db4394d856059d99d82ea2c75d033721e9dcb1fc"; - hash = "sha256-PmYm+vZ0XONoHUo08haBozbXRpN+/LAlr6Fyg7anTNw="; - }; - - passthru.updateScript = nix-update-script { }; - - meta = { - description = "Search blazingly fast for JSON / XML / YAML keys via Telescope"; - homepage = "https://git.myzel394.app/Myzel394/jsonfly.nvim"; - platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ myzel394 ]; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/lsp_lines-nvim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/lsp_lines-nvim/default.nix deleted file mode 100644 index 72d9495af2d2..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/lsp_lines-nvim/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - vimUtils, - fetchFromSourcehut, - nix-update-script, -}: -let - version = "3.0.0"; -in -vimUtils.buildVimPlugin { - pname = "lsp_lines.nvim"; - inherit version; - - src = fetchFromSourcehut { - owner = "~whynothugo"; - repo = "lsp_lines.nvim"; - rev = "v${version}"; - hash = "sha256-QsvmPOer7JgO7Y+N/iaNJD7Kmy69gnlV4CeyaQesNvA="; - }; - - passthru.updateScript = nix-update-script { }; - - meta = { - description = "Neovim diagnostics using virtual lines"; - homepage = "https://git.sr.ht/~whynothugo/lsp_lines.nvim"; - license = lib.licenses.mit; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/nvim-julia-autotest/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/nvim-julia-autotest/default.nix deleted file mode 100644 index 032705f8359b..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/nvim-julia-autotest/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - lib, - vimUtils, - fetchFromGitLab, - nix-update-script, -}: -vimUtils.buildVimPlugin { - pname = "nvim-julia-autotest"; - version = "0-unstable-2022-10-31"; - - src = fetchFromGitLab { - owner = "usmcamp0811"; - repo = "nvim-julia-autotest"; - rev = "b74e2f9c961e604cb56cc23f87188348bfa0f33f"; - hash = "sha256-IaNsbBe5q7PB9Q/N/Z9nEnP6jlkQ6+xlkC0TCFnJpkk="; - }; - - passthru.updateScript = nix-update-script { - extraArgs = [ "--version=branch" ]; - }; - - meta = { - description = "Automatically run Julia tests when you save runtest.jl file"; - homepage = "https://gitlab.com/usmcamp0811/nvim-julia-autotest"; - license = lib.licenses.gpl3; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/rainbow-delimiters-nvim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/rainbow-delimiters-nvim/default.nix deleted file mode 100644 index 436518afa33c..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/rainbow-delimiters-nvim/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - lib, - vimUtils, - fetchFromGitLab, - nix-update-script, -}: -vimUtils.buildVimPlugin rec { - pname = "rainbow-delimiters.nvim"; - version = "0.12.0"; - - src = fetchFromGitLab { - owner = "HiPhish"; - repo = "rainbow-delimiters.nvim"; - tag = "v${version}"; - hash = "sha256-q4cBvF8d5h+BM1LTm5aq02OBVmwSUb9rC1smHlxbRzg="; - }; - - nvimSkipModules = [ - # rainbow-delimiters.types.lua - "rainbow-delimiters.types" - # Test that requires an unpackaged dependency - "rainbow-delimiters._test.highlight" - ]; - - passthru.updateScript = nix-update-script { }; - - meta = { - description = "Rainbow delimiters for Neovim with Tree-sitter"; - homepage = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim"; - license = lib.licenses.gpl3; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix deleted file mode 100644 index b38fd053f059..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/sonarlint-nvim/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - lib, - vimUtils, - fetchFromGitLab, - nix-update-script, -}: -vimUtils.buildVimPlugin { - pname = "sonarlint.nvim"; - version = "0-unstable-2026-01-19"; - - src = fetchFromGitLab { - owner = "schrieveslaach"; - repo = "sonarlint.nvim"; - rev = "acd09b78969ddc965a7ddf59abb9d9eec5ecd94f"; - hash = "sha256-71emILbp291AZmh9Rc0S92mbkcZ88zjCvPTaumEM7Qg="; - }; - - passthru.updateScript = nix-update-script { - extraArgs = [ "--version=branch" ]; - }; - - meta = { - homepage = "https://gitlab.com/schrieveslaach/sonarlint.nvim"; - description = "Extensions for the built-in Language Server Protocol support in Neovim for sonarlint-language-server"; - license = lib.licenses.gpl3; - maintainers = [ lib.maintainers.sinics ]; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/non-generated/vim-stationeers-ic10-syntax/default.nix b/pkgs/applications/editors/vim/plugins/non-generated/vim-stationeers-ic10-syntax/default.nix deleted file mode 100644 index 8d628bdd7767..000000000000 --- a/pkgs/applications/editors/vim/plugins/non-generated/vim-stationeers-ic10-syntax/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - lib, - vimUtils, - fetchFromGitLab, - nix-update-script, -}: -vimUtils.buildVimPlugin { - pname = "vim-ic10"; - version = "0-unstable-2025-11-02"; - - src = fetchFromGitLab { - owner = "LittleMorph"; - repo = "vim-ic10"; - rev = "74446a16078ef4f3d2088136b32af939fb6bc2a4"; - hash = "sha256-YCxrSB7eRQ54iZhpcsAR930Uccj+2ZyogpYGKbcSlys="; - }; - - passthru.updateScript = nix-update-script { - extraArgs = [ "--version=branch" ]; - }; - - meta = { - description = "Stationeers IC10 syntax highlighting for Vim"; - homepage = "https://gitlab.com/LittleMorph/vim-ic10"; - license = lib.licenses.mit; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index ac3f29e5730b..552ef22b39de 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -304,6 +304,10 @@ assertNoAdditions { ]; }; + bitbake = super.bitbake.overrideAttrs { + sourceRoot = "source/contrib/vim"; + }; + blink-cmp-conventional-commits = super.blink-cmp-conventional-commits.overrideAttrs { dependencies = [ self.blink-cmp ]; }; @@ -506,6 +510,10 @@ assertNoAdditions { ]; }; + cmp-async-path = super.cmp-async-path.overrideAttrs { + checkInputs = [ self.nvim-cmp ]; + }; + cmp-beancount = super.cmp-beancount.overrideAttrs { checkInputs = [ self.nvim-cmp ]; }; @@ -1560,6 +1568,14 @@ assertNoAdditions { ''; }; + jsonfly-nvim = super.jsonfly-nvim.overrideAttrs (old: { + meta = old.meta // { + maintainers = old.meta.maintainers or [ ] ++ [ + lib.maintainers.myzel394 + ]; + }; + }); + jupytext-nvim = super.jupytext-nvim.overrideAttrs { passthru.python3Dependencies = ps: [ ps.jupytext ]; }; @@ -3163,6 +3179,15 @@ assertNoAdditions { ]; }; + rainbow-delimiters-nvim = super.rainbow-delimiters-nvim.overrideAttrs { + nvimSkipModules = [ + # rainbow-delimiters.types.lua + "rainbow-delimiters.types" + # Test that requires an unpackaged dependency + "rainbow-delimiters._test.highlight" + ]; + }; + range-highlight-nvim = super.range-highlight-nvim.overrideAttrs { dependencies = [ self.cmd-parser-nvim ]; }; @@ -3362,6 +3387,14 @@ assertNoAdditions { ]; }; + sonarlint-nvim = super.sonarlint-nvim.overrideAttrs (old: { + meta = old.meta // { + maintainers = old.meta.maintainers or [ ] ++ [ + lib.maintainers.sinics + ]; + }; + }); + spaceman-nvim = super.spaceman-nvim.overrideAttrs { # Optional telescope integration nvimSkipModules = "spaceman.adapters.telescope"; diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index a8bb5fbf3787..5f811437506d 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -120,6 +120,7 @@ https://github.com/rbgrouleff/bclose.vim/,, https://github.com/sontungexpt/better-diagnostic-virtual-text/,HEAD, https://github.com/max397574/better-escape.nvim/,, https://github.com/LunarVim/bigfile.nvim/,, +https://github.com/openembedded/bitbake/,HEAD, https://github.com/FabijanZulj/blame.nvim/,HEAD, https://github.com/APZelos/blamer.nvim/,HEAD, https://github.com/Kaiser-Yang/blink-cmp-avante/,HEAD, @@ -171,6 +172,7 @@ https://github.com/declancm/cinnamon.nvim/,HEAD, https://github.com/projekt0n/circles.nvim/,, https://github.com/zootedb0t/citruszest.nvim/,, https://github.com/xavierd/clang_complete/,, +https://git.sr.ht/~p00f/clangd_extensions.nvim,HEAD, https://github.com/greggh/claude-code.nvim/,HEAD, https://github.com/pittcat/claude-fzf-history.nvim/,HEAD, https://github.com/pittcat/claude-fzf.nvim/,HEAD, @@ -184,6 +186,7 @@ https://github.com/Civitasv/cmake-tools.nvim/,, https://github.com/winston0410/cmd-parser.nvim/,, https://github.com/vim-scripts/cmdalias.vim/,HEAD, https://github.com/tzachar/cmp-ai/,HEAD, +https://codeberg.org/FelipeLema/cmp-async-path/,HEAD, https://github.com/crispgm/cmp-beancount/,HEAD, https://github.com/hrsh7th/cmp-buffer/,, https://github.com/hrsh7th/cmp-calc/,, @@ -461,6 +464,7 @@ https://github.com/polarmutex/git-worktree.nvim/,HEAD, https://github.com/projekt0n/github-nvim-theme/,HEAD, https://github.com/wintermute-cell/gitignore.nvim/,HEAD, https://github.com/vim-scripts/gitignore.vim/,, +https://gitlab.com/gitlab-org/editor-extensions/gitlab.vim,HEAD, https://github.com/LionyxML/gitlineage.nvim/,HEAD, https://github.com/ruifm/gitlinker.nvim/,, https://github.com/trevorhauter/gitportal.nvim/,, @@ -494,6 +498,7 @@ https://github.com/junegunn/gv.vim/,, https://github.com/chrishrb/gx.nvim/,HEAD, https://github.com/TheSnakeWitcher/hardhat.nvim/,HEAD, https://github.com/m4xshen/hardtime.nvim/,HEAD, +https://git.sr.ht/~sircmpwn/hare.vim,HEAD, https://github.com/ThePrimeagen/harpoon/,master, https://github.com/ThePrimeagen/harpoon/,harpoon2,harpoon2 https://github.com/kiyoon/haskell-scope-highlighting.nvim/,HEAD, @@ -562,6 +567,7 @@ https://github.com/HiPhish/jinja.vim/,HEAD, https://github.com/NicolasGB/jj.nvim/,HEAD, https://github.com/vito-c/jq.vim/,, https://github.com/neoclide/jsonc.vim/,, +https://git.myzel394.app/Myzel394/jsonfly.nvim,HEAD, https://github.com/julelang/jule.nvim/,HEAD, https://github.com/julelang/jule.nvim/,HEAD, https://github.com/JuliaEditorSupport/julia-vim/,, @@ -635,6 +641,7 @@ https://github.com/ahmedkhalf/lsp-rooter.nvim/,, https://github.com/nvim-lua/lsp-status.nvim/,, https://github.com/VonHeikemen/lsp-zero.nvim/,v3.x, https://github.com/nvim-lua/lsp_extensions.nvim/,, +https://git.sr.ht/~whynothugo/lsp_lines.nvim,HEAD, https://github.com/ray-x/lsp_signature.nvim/,, https://github.com/lspcontainers/lspcontainers.nvim/,, https://github.com/deathbeam/lspecho.nvim/,HEAD, @@ -894,6 +901,7 @@ https://github.com/nvim-java/nvim-java-refactor/,HEAD, https://github.com/nvim-java/nvim-java-test/,HEAD, https://codeberg.org/mfussenegger/nvim-jdtls/,, https://github.com/gennaro-tedesco/nvim-jqx/,, +https://gitlab.com/usmcamp0811/nvim-julia-autotest,HEAD, https://github.com/yorickpeterse/nvim-jump/,HEAD, https://github.com/anasinnyk/nvim-k8s-crd/,HEAD, https://github.com/ethanholz/nvim-lastplace/,HEAD, @@ -1061,6 +1069,7 @@ https://github.com/stefandtw/quickfix-reflector.vim/,, https://github.com/dannyob/quickfixstatus/,, https://github.com/jbyuki/quickmath.nvim/,HEAD, https://github.com/luochen1990/rainbow/,, +https://gitlab.com/HiPhish/rainbow-delimiters.nvim,HEAD, https://github.com/mechatroner/rainbow_csv/,HEAD, https://github.com/kien/rainbow_parentheses.vim/,, https://github.com/vim-scripts/random.vim/,, @@ -1130,6 +1139,7 @@ https://github.com/leath-dub/snipe.nvim/,HEAD, https://github.com/norcalli/snippets.nvim/,, https://github.com/craftzdog/solarized-osaka.nvim/,HEAD, https://github.com/shaunsingh/solarized.nvim/,HEAD, +https://gitlab.com/schrieveslaach/sonarlint.nvim,HEAD, https://github.com/iamkarasik/sonarqube.nvim/,HEAD, https://github.com/sainnhe/sonokai/,, https://github.com/sQVe/sort.nvim/,HEAD, @@ -1676,6 +1686,7 @@ https://github.com/kbenzie/vim-spirv/,, https://github.com/yorokobi/vim-splunk/,HEAD, https://github.com/mhinz/vim-startify/,, https://github.com/dstein64/vim-startuptime/,, +https://gitlab.com/LittleMorph/vim-ic10,HEAD,vim-stationeers-ic10-syntax https://github.com/axelf4/vim-strip-trailing-whitespace/,, https://github.com/nbouscal/vim-stylish-haskell/,, https://github.com/alx741/vim-stylishask/,, diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 52b747cf26b6..cac9bbdec474 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -3073,8 +3073,8 @@ let mktplcRef = { name = "compare-folders"; publisher = "moshfeu"; - version = "0.28.0"; - hash = "sha256-QoaZ/P2lIaJQjD9RF7+pUJkOneR9olCe6xuT/9vsiZ4="; + version = "0.29.0"; + hash = "sha256-oX4182qaoHbvZC9MdzzARBlW4MbtE7H0Fg687K5h2XQ="; }; meta = { diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index ae3e2261828a..36708cbea6b1 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -54,13 +54,13 @@ "vendorHash": "sha256-Kk0YeStlev8AurZasORMe/42Rd3ZPFoFMat/rMpZFbE=" }, "aminueza_minio": { - "hash": "sha256-aWsMTUNIDwBzI/qsy78uA3ELnzUA+c4jP2jGD7QqrvI=", + "hash": "sha256-Qt51J0DcwrpJ9+8s8KwngGhhFhZQQYv3dAwFGOYvavo=", "homepage": "https://registry.terraform.io/providers/aminueza/minio", "owner": "aminueza", "repo": "terraform-provider-minio", - "rev": "v3.28.1", + "rev": "v3.30.0", "spdx": "AGPL-3.0", - "vendorHash": "sha256-kg6RylB2sW5XLWxJLmIDq3h54rzQoCKrxVu7L76lvCE=" + "vendorHash": "sha256-Mm7IwFX51hsG3ducCbanRoelgkyK6pe+9K8d18U01Z8=" }, "argoproj-labs_argocd": { "hash": "sha256-c6+WY4oXL8evvPk/RzVrwtgq4XLB/LzAH5tpjErbE60=", @@ -274,13 +274,13 @@ "vendorHash": "sha256-3o6YRDrq4rQhNAFyqiGJrAoxuAykWw85OExRGSE3kGI=" }, "datadog_datadog": { - "hash": "sha256-Is1XgOFmRl1Ieua5ZlBI/4bHal4AhsPhbl95r97bYN4=", + "hash": "sha256-WMggvZAgj36OyelTSE8I/1GRoTivs7q9szUbAFi6XdY=", "homepage": "https://registry.terraform.io/providers/DataDog/datadog", "owner": "DataDog", "repo": "terraform-provider-datadog", - "rev": "v4.3.0", + "rev": "v4.4.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-4A7qf+1RZYWyA5G/qSFhOjDR4GUtGzkh6m81n3Nvads=" + "vendorHash": "sha256-2uj7Ff8g43s2T+zQIbTYFxxuaLpFxPQRo2z/0HNmh9k=" }, "datadrivers_nexus": { "hash": "sha256-yfxlDln4brI8QTFnhVsNOO3vRiqft3YWytvy2GMNBdY=", @@ -364,13 +364,13 @@ "vendorHash": "sha256-RtS88NqkO1nG/8znM0sQqsAIfDc+sOMy8N4T4hmvaVA=" }, "e-breuninger_netbox": { - "hash": "sha256-a9YE3zbMPLKyrD2hG31ymKxI780ONzKfzEPHCN2NhyA=", + "hash": "sha256-hY3XZFMP1qT4mHJpxsVSGsyd025NOeJogbh2m9hk7qE=", "homepage": "https://registry.terraform.io/providers/e-breuninger/netbox", "owner": "e-breuninger", "repo": "terraform-provider-netbox", - "rev": "v5.2.1", + "rev": "v5.3.0", "spdx": "MPL-2.0", - "vendorHash": "sha256-/kTRJnHbr9crrzdKsDz0q7svYTmiuDbSW/6kBfGgyZY=" + "vendorHash": "sha256-5IZeoZpZj4vgAlyxbycs+IPeOEBS1tw3tM/7zoT4DCg=" }, "equinix_equinix": { "hash": "sha256-Tn8CnLx2ibkj7qlzpYCX7Cm+yoTcZujVELMJSbG+/ec=", diff --git a/pkgs/by-name/ai/airwindows/package.nix b/pkgs/by-name/ai/airwindows/package.nix index c589c8e4092f..572f20876adf 100644 --- a/pkgs/by-name/ai/airwindows/package.nix +++ b/pkgs/by-name/ai/airwindows/package.nix @@ -8,13 +8,13 @@ }: stdenv.mkDerivation { pname = "airwindows"; - version = "0-unstable-2026-04-01"; + version = "0-unstable-2026-04-04"; src = fetchFromGitHub { owner = "airwindows"; repo = "airwindows"; - rev = "974a26ea5a96a3cd57c3f8f8d95745bb765a5a72"; - hash = "sha256-Gin8I86TpLVG9SzfErVZobryW3rZQEidwLrUb7sd+rs="; + rev = "714ffb2db6f799067e63bf1f88ae8a89f4ee0d3c"; + hash = "sha256-Ed8U0AC+9ggsPS+fWfm7yBdnygjhHIdUtJlML2J4zKY="; }; # we patch helpers because honestly im spooked out by where those variables diff --git a/pkgs/by-name/al/allure/package.nix b/pkgs/by-name/al/allure/package.nix index 49eee83272e9..1f27bd1a8023 100644 --- a/pkgs/by-name/al/allure/package.nix +++ b/pkgs/by-name/al/allure/package.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "allure"; - version = "2.38.1"; + version = "2.39.0"; src = fetchurl { url = "https://github.com/allure-framework/allure2/releases/download/${finalAttrs.version}/allure-${finalAttrs.version}.tgz"; - hash = "sha256-y241mNyZsqiwvYgFeAgqxevq6bLiwKEdx1yFD7aXNr0="; + hash = "sha256-dDg/ZgacwPbsLQ/a0vHXYfExhPbNKJM0sdz8QjdzVmU="; }; dontConfigure = true; diff --git a/pkgs/by-name/ap/application-title-bar/package.nix b/pkgs/by-name/ap/application-title-bar/package.nix index feb968f2fde6..9e9d47d7e283 100644 --- a/pkgs/by-name/ap/application-title-bar/package.nix +++ b/pkgs/by-name/ap/application-title-bar/package.nix @@ -8,13 +8,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "application-title-bar"; - version = "0.9.0"; + version = "0.9.1"; src = fetchFromGitHub { owner = "antroids"; repo = "application-title-bar"; tag = "v${finalAttrs.version}"; - hash = "sha256-bnuMlssXALcFBnBY0iXhZO4QqW2hM9r0y8Ywe2X2/wA="; + hash = "sha256-UsAZaYA088nJWnVkT7Awcib3G3JUNTY0mA8ao+9m4d0="; }; propagatedUserEnvPkgs = with kdePackages; [ kconfig ]; diff --git a/pkgs/by-name/aw/aws-vault/package.nix b/pkgs/by-name/aw/aws-vault/package.nix index f4c0c15461df..7c87f96c5354 100644 --- a/pkgs/by-name/aw/aws-vault/package.nix +++ b/pkgs/by-name/aw/aws-vault/package.nix @@ -10,17 +10,17 @@ }: buildGoModule (finalAttrs: { pname = "aws-vault"; - version = "7.9.13"; + version = "7.9.14"; src = fetchFromGitHub { owner = "ByteNess"; repo = "aws-vault"; rev = "v${finalAttrs.version}"; - hash = "sha256-O0O7sIx9h5DKrKdqi0ecNM6ImRmCsrUGnk94yn5SRYg="; + hash = "sha256-L3WJtS94EYgNqgwM2Gzayx89l2aKHkjaGNwOtfJMk3o="; }; proxyVendor = true; - vendorHash = "sha256-RcQQL+exDBQn5vo+9OT5ShD92WDDjfE+Seqmofiz7hs="; + vendorHash = "sha256-axxV3XCxZVY3UM0yzC2ziTO0cbwJiNnDkOKAQADKUKA="; nativeBuildInputs = [ installShellFiles diff --git a/pkgs/by-name/ca/cargo-leptos/package.nix b/pkgs/by-name/ca/cargo-leptos/package.nix index db7348ea2c31..1dd81c9405df 100644 --- a/pkgs/by-name/ca/cargo-leptos/package.nix +++ b/pkgs/by-name/ca/cargo-leptos/package.nix @@ -8,16 +8,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "cargo-leptos"; - version = "0.3.5"; + version = "0.3.6"; src = fetchFromGitHub { owner = "leptos-rs"; repo = "cargo-leptos"; rev = "v${finalAttrs.version}"; - hash = "sha256-wSnz3Hi+hUTwYFXoWMC6Uq9UH0+q0vHoryNwn4t8iMk="; + hash = "sha256-Y81cCy1w4FoWRyTN15BuC9Z8FSVPJxYObXms0rJHxwM="; }; - cargoHash = "sha256-2ax2yH/dMgXRVNffbl59OTeeMG+v83MnQnsyylrW22s="; + cargoHash = "sha256-Wv1gsrcrsJ3izYYFCPMO4ds1w6RQcIlWh+GcsckoKM4="; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/by-name/cd/cdk8s-cli/package.nix b/pkgs/by-name/cd/cdk8s-cli/package.nix index 29ac028fc33e..858252ad7350 100644 --- a/pkgs/by-name/cd/cdk8s-cli/package.nix +++ b/pkgs/by-name/cd/cdk8s-cli/package.nix @@ -12,18 +12,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "cdk8s-cli"; - version = "2.205.6"; + version = "2.206.3"; src = fetchFromGitHub { owner = "cdk8s-team"; repo = "cdk8s-cli"; rev = "v${finalAttrs.version}"; - hash = "sha256-ZHorjCZbZ8Lu7DwhAbCC/uKNrg+rYwL75NCjKskh/JM="; + hash = "sha256-ezxwAhSxDSmP4DhT4vF8nuO+TcnWgLk5szJb3RIv1xg="; }; yarnOfflineCache = fetchYarnDeps { inherit (finalAttrs) src; - hash = "sha256-VAy3k99JB2j4MUCwXKyxSl+9OmGC1/xoJBF1/Xvuc54="; + hash = "sha256-fkG7gre4OOpoZf/vQAJU0Lnbl7eDsgZy0H/+4C7aWvI="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/version-management/cgit/default.nix b/pkgs/by-name/cg/cgit/package.nix similarity index 100% rename from pkgs/applications/version-management/cgit/default.nix rename to pkgs/by-name/cg/cgit/package.nix diff --git a/pkgs/by-name/cl/clojure/package.nix b/pkgs/by-name/cl/clojure/package.nix index f2c3f2740f9d..8e8bcc40b292 100644 --- a/pkgs/by-name/cl/clojure/package.nix +++ b/pkgs/by-name/cl/clojure/package.nix @@ -13,12 +13,12 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "clojure"; - version = "1.12.4.1618"; + version = "1.12.4.1629"; src = fetchurl { # https://github.com/clojure/brew-install/releases url = "https://github.com/clojure/brew-install/releases/download/${finalAttrs.version}/clojure-tools-${finalAttrs.version}.tar.gz"; - hash = "sha256-E3adptY6mN6yAkN4rhpk5O4hGsEDU0DfynppRMQc3iE="; + hash = "sha256-swBF0lh+vAvPHKKoXHXXHcVtfHTefu5tx/3vwl93KM4="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/co/cog/package.nix b/pkgs/by-name/co/cog/package.nix index 8e07f8db7bd5..1b9fc3fb5d7b 100644 --- a/pkgs/by-name/co/cog/package.nix +++ b/pkgs/by-name/co/cog/package.nix @@ -9,13 +9,13 @@ buildGoModule (finalAttrs: { pname = "cog"; - version = "0.1.5"; + version = "0.1.6"; src = fetchFromGitHub { owner = "grafana"; repo = "cog"; tag = "v${finalAttrs.version}"; - hash = "sha256-QMYqrPmJjDmB7Kc9HZN9ypqtiwF9Cah3fnj4iMM8W4Y="; + hash = "sha256-Dbp+7+nokUUKP8GW3xqRhx3Zn1ltEndkpk1iHRRgPug="; }; vendorHash = "sha256-KOk8SvajH98jjvoPZPC4UAsF5tXKjn1xcVq5juQXQVA="; diff --git a/pkgs/by-name/ct/ctlptl/package.nix b/pkgs/by-name/ct/ctlptl/package.nix index e30477e99352..91f8fc07822d 100644 --- a/pkgs/by-name/ct/ctlptl/package.nix +++ b/pkgs/by-name/ct/ctlptl/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "ctlptl"; - version = "0.9.1"; + version = "0.9.2"; src = fetchFromGitHub { owner = "tilt-dev"; repo = "ctlptl"; rev = "v${finalAttrs.version}"; - hash = "sha256-vbg3gaVCFkQ6jKguNq6ClstEKpTrk9ryUG572emEY4U="; + hash = "sha256-0Y1baXkb37UKtT/lcoFdunRkxIpSCh+zfkjkZZ9SfXU="; }; vendorHash = "sha256-b9lzCNjO0rrK/kJlw5dssuQD/cyf/Wu/LJ2YNQ645LE="; diff --git a/pkgs/by-name/cu/cue/package.nix b/pkgs/by-name/cu/cue/package.nix index a45ceebe8179..d81886fcebcf 100644 --- a/pkgs/by-name/cu/cue/package.nix +++ b/pkgs/by-name/cu/cue/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "cue"; - version = "0.16.0"; + version = "0.16.1"; src = fetchFromGitHub { owner = "cue-lang"; repo = "cue"; tag = "v${finalAttrs.version}"; - hash = "sha256-dmoBux8yeyXa2bNL/qpQ0UDdXlAV8/aT1Xc4xnH0EFQ="; + hash = "sha256-mTj3XMWByNrKjm+/MOQGLyUKIv4JJ8i6Oaphbzls84U="; }; - vendorHash = "sha256-KPhwu4Z8PcXr74NEZ9+Uz7FHIMzcKqkd20FDFW+a2NA="; + vendorHash = "sha256-HXRrVPjPc10Q1MVr1d9vZBWgSVqNZ5J0UgvP/hTPfcg="; subPackages = [ "cmd/*" ]; diff --git a/pkgs/by-name/di/discordo/package.nix b/pkgs/by-name/di/discordo/package.nix index 5f3cc1d70dac..f9a83fc65ec7 100644 --- a/pkgs/by-name/di/discordo/package.nix +++ b/pkgs/by-name/di/discordo/package.nix @@ -11,16 +11,16 @@ buildGoModule (finalAttrs: { pname = "discordo"; - version = "0-unstable-2026-03-30"; + version = "0-unstable-2026-04-09"; src = fetchFromGitHub { owner = "ayn2op"; repo = "discordo"; - rev = "48f3b5316c6a340da845c5d050b9de44d680184a"; - hash = "sha256-1SOpy8XCdfsY/Fbp4NjDS9KFA/zcSIIjZHMjIEYB+8M="; + rev = "d804e0271c51239e18109dd786be73347cf21dfd"; + hash = "sha256-dgj3JWJ3NGwBvvHV/phfjIHa612XNUfYArXXpzJ0Mf4="; }; - vendorHash = "sha256-yQlx61R1Lx5fkctSkm64uYLqHeZZydVubpIaP00XA+U="; + vendorHash = "sha256-BSYPEUE6qyNY4+ur+uVB66ogYVktm9AUCzLTMiJMmKQ="; env.CGO_ENABLED = 1; diff --git a/pkgs/by-name/ea/easyeffects/package.nix b/pkgs/by-name/ea/easyeffects/package.nix index 036e1e3bd1a4..03804d56a666 100644 --- a/pkgs/by-name/ea/easyeffects/package.nix +++ b/pkgs/by-name/ea/easyeffects/package.nix @@ -59,13 +59,13 @@ in stdenv.mkDerivation (finalAttrs: { pname = "easyeffects"; - version = "8.1.6"; + version = "8.1.8"; src = fetchFromGitHub { owner = "wwmm"; repo = "easyeffects"; tag = "v${finalAttrs.version}"; - hash = "sha256-MNBlhwF8quJ0wXBzwyn7KM2TNgbYbWYHTK6itn0fUVU="; + hash = "sha256-U0+OGxej5my2KpqzRTiHrB80arkWT1mxHOSxOCDsnb0="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ff/ffizer/package.nix b/pkgs/by-name/ff/ffizer/package.nix index a0067b7fd95d..3042d01b5e21 100644 --- a/pkgs/by-name/ff/ffizer/package.nix +++ b/pkgs/by-name/ff/ffizer/package.nix @@ -10,7 +10,7 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "ffizer"; - version = "2.13.7"; + version = "2.13.8"; buildFeatures = [ "cli" ]; @@ -18,10 +18,10 @@ rustPlatform.buildRustPackage (finalAttrs: { owner = "ffizer"; repo = "ffizer"; rev = finalAttrs.version; - hash = "sha256-r4jaqjHYDZxftU7J6hGMXW/Oq+8biy9bFoHIOt33ta8="; + hash = "sha256-TV1+bupdJFmq72F4MbqyyvE/p9PufdeOUo24mPYvuAc="; }; - cargoHash = "sha256-+aXhumywpcynKz0R0wWPWhEMfqiPBuwLbIFsABvWTnA="; + cargoHash = "sha256-iEdNyzY4fzfQkayXIKthv4ofl11+U2KfV63VvXrR6HQ="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/by-name/fl/fluxcd/package.nix b/pkgs/by-name/fl/fluxcd/package.nix index c8944693d01a..1bcb6d082fd1 100644 --- a/pkgs/by-name/fl/fluxcd/package.nix +++ b/pkgs/by-name/fl/fluxcd/package.nix @@ -9,10 +9,10 @@ }: let - version = "2.8.3"; - srcHash = "sha256-5bs7atecd7NqUrJySMxOe01zGpTMbgrau5B6QkUTRyg="; - vendorHash = "sha256-ICI9Lace4gv2GE/nb9y5yRlvsOkujr2DA2gQ8PnIrIs="; - manifestsHash = "sha256-V1rWHu23K4224eiwUuueG2vk3LsdgtvVGZVQG5vBhLQ="; + version = "2.8.5"; + srcHash = "sha256-2Q6l+egcRntGjieXpXz/frGGw4GMhGXxQAUOAZfxBE4="; + vendorHash = "sha256-D92vOyTvlpOou/1WHS6xpb4e8igZMQhm4DP7SVSLKPI="; + manifestsHash = "sha256-X0Cf8UZufqUWKLxYVjblYNCz5IU/s+mI+h6TpTeks5k="; manifests = fetchzip { url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz"; diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/by-name/gl/glances/package.nix similarity index 75% rename from pkgs/applications/system/glances/default.nix rename to pkgs/by-name/gl/glances/package.nix index 3feb79caab1a..c5929080386a 100644 --- a/pkgs/applications/system/glances/default.nix +++ b/pkgs/by-name/gl/glances/package.nix @@ -1,38 +1,20 @@ { - stdenv, - buildPythonApplication, - fetchFromGitHub, - isPyPy, lib, - chevron, - defusedxml, - packaging, - psutil, - pyinstrument, - setuptools, - nixosTests, - pytestCheckHook, - which, - podman, - selenium, - python-jose, - # Optional dependencies: - fastapi, - jinja2, - pysnmp, + stdenv, + fetchFromGitHub, hddtemp, - uvicorn, - requests, - prometheus-client, - shtab, + nixosTests, + podman, + python3Packages, + which, }: -buildPythonApplication (finalAttrs: { +python3Packages.buildPythonApplication (finalAttrs: { pname = "glances"; version = "4.5.2"; pyproject = true; - disabled = isPyPy; + disabled = python3Packages.isPyPy; src = fetchFromGitHub { owner = "nicolargo"; @@ -41,7 +23,7 @@ buildPythonApplication (finalAttrs: { hash = "sha256-o/q/zW7lRKQg+u4XblwNIswCVIroMdeUaPTNkN8QKwo="; }; - build-system = [ setuptools ]; + build-system = with python3Packages; [ setuptools ]; # On Darwin this package segfaults due to mismatch of pure and impure # CoreFoundation. This issues was solved for binaries but for interpreted @@ -56,34 +38,40 @@ buildPythonApplication (finalAttrs: { # some tests fail in darwin sandbox doCheck = !stdenv.hostPlatform.isDarwin; - dependencies = [ - defusedxml - packaging - psutil - pyinstrument - pysnmp - fastapi - uvicorn - requests - jinja2 - python-jose - which - prometheus-client - shtab - ] - ++ lib.optional stdenv.hostPlatform.isLinux hddtemp; + dependencies = + with python3Packages; + [ + defusedxml + packaging + psutil + pyinstrument + pysnmp + fastapi + uvicorn + requests + jinja2 + python-jose + prometheus-client + shtab + ] + ++ [ which ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ hddtemp ]; passthru.tests = { service = nixosTests.glances; }; - nativeCheckInputs = [ - chevron - which - pytestCheckHook - selenium - podman - ]; + nativeCheckInputs = + with python3Packages; + [ + chevron + pytestCheckHook + selenium + ] + ++ [ + podman + which + ]; disabledTestPaths = [ # Message: Unable to obtain driver for chrome diff --git a/pkgs/by-name/gv/gvisor/fix-go-mod-tidy.diff b/pkgs/by-name/gv/gvisor/fix-go-mod-tidy.diff new file mode 100644 index 000000000000..339dfcab3e70 --- /dev/null +++ b/pkgs/by-name/gv/gvisor/fix-go-mod-tidy.diff @@ -0,0 +1,40 @@ +diff --git a/go.mod b/go.mod +index 60f4e32..87a9269 100644 +--- a/go.mod ++++ b/go.mod +@@ -4,7 +4,6 @@ go 1.25.5 + + require ( + github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c +- github.com/bazelbuild/rules_go v0.44.2 + github.com/cenkalti/backoff v2.2.1+incompatible + github.com/cilium/ebpf v0.12.3 + github.com/containerd/cgroups v1.0.4 +@@ -44,7 +43,6 @@ require ( + github.com/Microsoft/go-winio v0.6.0 // indirect + github.com/Microsoft/hcsshim v0.9.12 // indirect + github.com/containerd/ttrpc v1.1.2 // indirect +- github.com/creack/pty v1.1.24 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect + github.com/docker/go-units v0.4.0 // indirect +@@ -53,7 +51,6 @@ require ( + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/go-cmp v0.7.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect +- github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect + github.com/googleapis/gnostic v0.5.5 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect +@@ -68,11 +65,9 @@ require ( + go.opencensus.io v0.24.0 // indirect + golang.org/x/net v0.44.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect +- golang.org/x/telemetry v0.0.0-20250908211612-aef8a434d053 // indirect + golang.org/x/term v0.35.0 // indirect + golang.org/x/text v0.29.0 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect +- google.golang.org/api v0.249.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c // indirect + google.golang.org/grpc v1.75.1 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/pkgs/by-name/gv/gvisor/package.nix b/pkgs/by-name/gv/gvisor/package.nix index 44cd2d0a7b58..40232cc38810 100644 --- a/pkgs/by-name/gv/gvisor/package.nix +++ b/pkgs/by-name/gv/gvisor/package.nix @@ -12,7 +12,7 @@ buildGoModule { pname = "gvisor"; - version = "20251110.0"; + version = "20260406.0"; # gvisor provides a synthetic go branch (https://github.com/google/gvisor/tree/go) # that can be used to build gvisor without bazel. @@ -21,8 +21,8 @@ buildGoModule { src = fetchFromGitHub { owner = "google"; repo = "gvisor"; - rev = "2617196c08506a30764bf6261b79d52797916dda"; - hash = "sha256-qx1uCRTJVotSbTojBf/Nj8LfLdUvsnxMkPuyJjLLadM="; + rev = "db8d2c9abca39156c61ee2769d52b8a11accbe16"; + hash = "sha256-T0ilLqZTX2KNZdR7wuMnYimnL+G5Tbkd77IULCZE764="; }; # Replace the placeholder with the actual path to ldconfig @@ -31,7 +31,7 @@ buildGoModule { --replace-fail '"/sbin/ldconfig"' '"${glibc}/bin/ldconfig"' ''; - vendorHash = "sha256-Ey4M3NK/+AVkr7r0aA+kAfNk1yVfnDn3Izy7u74HFkE="; + vendorHash = "sha256-8Zkgt5hegYEHnG1lF+wLgdru6t3l+Z/qKRvJHukZbPo="; nativeBuildInputs = [ makeWrapper ]; @@ -60,6 +60,8 @@ buildGoModule { mv $out/bin/shim $out/bin/containerd-shim-runsc-v1 ''; + patches = [ ./fix-go-mod-tidy.diff ]; + passthru.tests = { inherit (nixosTests) gvisor; }; meta = { diff --git a/pkgs/by-name/hy/hyprland/package.nix b/pkgs/by-name/hy/hyprland/package.nix index 2af08df87af1..1bf942534d48 100644 --- a/pkgs/by-name/hy/hyprland/package.nix +++ b/pkgs/by-name/hy/hyprland/package.nix @@ -33,6 +33,7 @@ re2, systemd, tomlplusplus, + uwsm, wayland, wayland-protocols, wayland-scanner, @@ -100,6 +101,9 @@ customStdenv.mkDerivation (finalAttrs: { --replace-fail "@PREFIX@/" "" substituteInPlace example/hyprland.desktop.in \ --replace-fail "@PREFIX@/" "" + substituteInPlace systemd/hyprland-uwsm.desktop \ + --replace-fail "Exec=uwsm " "Exec=${lib.getExe uwsm} " \ + --replace-fail "TryExec=uwsm" "TryExec=${lib.getExe uwsm}" ''; # variables used by CMake, and shown in `hyprctl version` diff --git a/pkgs/by-name/ia/iamb/0001-increase-recursion-limit-to-fix-matrix-sdk-sqlite.patch b/pkgs/by-name/ia/iamb/0001-increase-recursion-limit-to-fix-matrix-sdk-sqlite.patch new file mode 100644 index 000000000000..0f0dea263884 --- /dev/null +++ b/pkgs/by-name/ia/iamb/0001-increase-recursion-limit-to-fix-matrix-sdk-sqlite.patch @@ -0,0 +1,25 @@ +From 979dcc049c1d8b8b537ddf42133dba38ef17ee7f Mon Sep 17 00:00:00 2001 +From: azban +Date: Sat, 21 Mar 2026 11:23:30 -0600 +Subject: [PATCH] increase recursion limit to fix matrix-sdk-sqlite + +This is a temporary fix for build errors in the matrix-sdk-sqlite dependency. A more durable fix should be checked for in https://github.com/matrix-org/matrix-rust-sdk/issues/6254. +--- + src/main.rs | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/main.rs b/src/main.rs +index 0a316c7..794f838 100644 +--- a/src/main.rs ++++ b/src/main.rs +@@ -15,6 +15,7 @@ + #![allow(clippy::needless_return)] + #![allow(clippy::result_large_err)] + #![allow(clippy::bool_assert_comparison)] ++#![recursion_limit = "256"] + use std::collections::VecDeque; + use std::convert::TryFrom; + use std::fmt::Display; +-- +2.51.2 + diff --git a/pkgs/by-name/ia/iamb/package.nix b/pkgs/by-name/ia/iamb/package.nix index d4dc072cece4..8a15554b29cf 100644 --- a/pkgs/by-name/ia/iamb/package.nix +++ b/pkgs/by-name/ia/iamb/package.nix @@ -19,6 +19,10 @@ rustPlatform.buildRustPackage (finalAttrs: { hash = "sha256-nvEOtV1Y5K9E1Lj+bPnQ6k1AneDM9OT3RbV3Urm/1Qs="; }; + patches = [ + ./0001-increase-recursion-limit-to-fix-matrix-sdk-sqlite.patch + ]; + cargoHash = "sha256-uWYNFNoCiqw6gYuHZWmZmZVs7lKNvhzjwEyxgcbvv+8="; nativeBuildInputs = [ diff --git a/pkgs/development/tools/ilspycmd/deps.json b/pkgs/by-name/il/ilspycmd/deps.json similarity index 100% rename from pkgs/development/tools/ilspycmd/deps.json rename to pkgs/by-name/il/ilspycmd/deps.json diff --git a/pkgs/development/tools/ilspycmd/default.nix b/pkgs/by-name/il/ilspycmd/package.nix similarity index 92% rename from pkgs/development/tools/ilspycmd/default.nix rename to pkgs/by-name/il/ilspycmd/package.nix index 7d5dc107cf22..58ed7373d0fd 100644 --- a/pkgs/development/tools/ilspycmd/default.nix +++ b/pkgs/by-name/il/ilspycmd/package.nix @@ -5,7 +5,7 @@ buildDotnetModule, dotnetCorePackages, powershell, - autoSignDarwinBinariesHook, + darwin, glibcLocales, }: buildDotnetModule (finalAttrs: { @@ -15,7 +15,7 @@ buildDotnetModule (finalAttrs: { src = fetchFromGitHub { owner = "icsharpcode"; repo = "ILSpy"; - rev = "v${finalAttrs.version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-YkZEStCI6Omu8HgClm5qHnXxm5pKJVILtbydY8vAFic="; }; @@ -23,7 +23,7 @@ buildDotnetModule (finalAttrs: { powershell ] ++ lib.optionals (stdenvNoCC.hostPlatform.isDarwin && stdenvNoCC.hostPlatform.isAarch64) [ - autoSignDarwinBinariesHook + darwin.autoSignDarwinBinariesHook ]; # https://github.com/NixOS/nixpkgs/issues/38991 @@ -42,7 +42,7 @@ buildDotnetModule (finalAttrs: { description = "Tool for decompiling .NET assemblies and generating portable PDBs"; mainProgram = "ilspycmd"; homepage = "https://github.com/icsharpcode/ILSpy"; - changelog = "https://github.com/icsharpcode/ILSpy/releases/tag/${finalAttrs.src.rev}"; + changelog = "https://github.com/icsharpcode/ILSpy/releases/tag/${finalAttrs.src.tag}"; license = with lib.licenses; [ mit # third party dependencies diff --git a/pkgs/by-name/iw/iwe/package.nix b/pkgs/by-name/iw/iwe/package.nix index e72644f559ce..1f7627403802 100644 --- a/pkgs/by-name/iw/iwe/package.nix +++ b/pkgs/by-name/iw/iwe/package.nix @@ -8,16 +8,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "iwe"; - version = "0.0.64"; + version = "0.0.67"; src = fetchFromGitHub { owner = "iwe-org"; repo = "iwe"; tag = "iwe-v${finalAttrs.version}"; - hash = "sha256-aqoUTatYUUFKw3ZQYagQ0KchQM3JMgSzL/hG6CiyG9U="; + hash = "sha256-/irCQgMDuO2boitdTyl4OlkMvuyFPfsTx8Jo/VhLYuw="; }; - cargoHash = "sha256-iTudRDC53wZvWwuPYGG3rQfsC/th+3FwpiqZsZnbekg="; + cargoHash = "sha256-oAIF+ekKzvfT7WzQ+PE4RWUUMMDkBOFBdgwUMXBZsFk="; cargoBuildFlags = [ "--package=iwe" @@ -28,14 +28,6 @@ rustPlatform.buildRustPackage (finalAttrs: { substituteInPlace crates/iwe/tests/common.rs --replace-fail \ 'binary_path.push("target");' \ 'binary_path.push("target/${stdenv.hostPlatform.rust.rustcTarget}");' - - # Tests here are looking for /usr to exist, which is not present in a build environment - substituteInPlace crates/iwes/tests/transform_test.rs --replace-fail \ - 'cwd: Some("/usr".to_string()),' \ - 'cwd: Some("/tmp".to_string()),' - substituteInPlace crates/iwes/tests/transform_test.rs --replace-fail \ - 'vec![uri(1).to_edit("/usr\n")]' \ - 'vec![uri(1).to_edit("/tmp\n")]' ''; nativeInstallCheckInputs = [ versionCheckHook ]; diff --git a/pkgs/by-name/ju/jumppad/package.nix b/pkgs/by-name/ju/jumppad/package.nix index 8154a75ef7ff..30df4c28faf2 100644 --- a/pkgs/by-name/ju/jumppad/package.nix +++ b/pkgs/by-name/ju/jumppad/package.nix @@ -6,15 +6,15 @@ buildGoModule (finalAttrs: { pname = "jumppad"; - version = "0.24.0"; + version = "0.25.1"; src = fetchFromGitHub { owner = "jumppad-labs"; repo = "jumppad"; rev = finalAttrs.version; - hash = "sha256-OH06qQ+gkPv9McHr+YiMRiqTvdvhW9UqcEJK2NZxGQo="; + hash = "sha256-Dqwug09ESljbgANQdmRyQCOswGDxOwhkd7yQiLdEh8M="; }; - vendorHash = "sha256-m2aMRQ/K8etAKgGEcMbOrx2cYxp3ncdLe70Q3zYdj4I="; + vendorHash = "sha256-5eI41EKgi61dVFAvsgxI2Vk1zrxtVinxYKquKlaSOyQ="; subPackages = [ "." ]; diff --git a/pkgs/by-name/li/libphonenumber/package.nix b/pkgs/by-name/li/libphonenumber/package.nix index b0a26db33ff4..cdf64d4b29c6 100644 --- a/pkgs/by-name/li/libphonenumber/package.nix +++ b/pkgs/by-name/li/libphonenumber/package.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libphonenumber"; - version = "9.0.27"; + version = "9.0.28"; src = fetchFromGitHub { owner = "google"; repo = "libphonenumber"; tag = "v${finalAttrs.version}"; - hash = "sha256-Qcn7Ms2YizAJK5IPVW/NeCUkfH8bk5Mg0xjcMcsE5H8="; + hash = "sha256-Mi+FpM8viPUWgzT8tp3zc9e5fsI9xhlsdsYYlaVRTNk="; }; patches = [ diff --git a/pkgs/by-name/li/lichess-bot/package.nix b/pkgs/by-name/li/lichess-bot/package.nix index 953c6a2ebd08..3e3901b78ae3 100644 --- a/pkgs/by-name/li/lichess-bot/package.nix +++ b/pkgs/by-name/li/lichess-bot/package.nix @@ -11,14 +11,14 @@ python3Packages.buildPythonApplication { pname = "lichess-bot"; - version = "2026.3.29.1"; + version = "2026.4.3.1"; pyproject = false; src = fetchFromGitHub { owner = "lichess-bot-devs"; repo = "lichess-bot"; - rev = "bfd5e5e1005be7c5c4a7c880b6981c7e265fc066"; - hash = "sha256-ZsrepZLbIJEqbxyads+nFeO+FPFQ7H56wE6eaT79Fys="; + rev = "98c70bbd693e12eafe1eff40996fb61c08c60ddb"; + hash = "sha256-GpnplQ+MQdA+RrLKaq2JO7TQjJY1jWGxSu/Kbg5bBEo="; }; propagatedBuildInputs = with python3Packages; [ diff --git a/pkgs/by-name/lo/lockbook-desktop/package.nix b/pkgs/by-name/lo/lockbook-desktop/package.nix index 44ea5a056650..268e83f9e710 100644 --- a/pkgs/by-name/lo/lockbook-desktop/package.nix +++ b/pkgs/by-name/lo/lockbook-desktop/package.nix @@ -18,16 +18,16 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "lockbook-desktop"; - version = "26.3.22"; + version = "26.4.9"; src = fetchFromGitHub { owner = "lockbook"; repo = "lockbook"; tag = finalAttrs.version; - hash = "sha256-Mroh2xSLe5dlKNXxTPyP9RzLtwcEf2JXZnE1tN4t1fE="; + hash = "sha256-MQobOqixxWDuHMLVk7pfIquLSA3rZNYn4MaENAoIsuM="; }; - cargoHash = "sha256-hPQlDG2eFmiPXkCyjk10fpVDAbq3R8mQs7bOHbCBhwg="; + cargoHash = "sha256-sLfZ8c2cbXT2NXcopqKJaX1SMlsi3Zy9V+VDi6zarxs="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/applications/science/math/lp_solve/0001-fix-cross-compilation.patch b/pkgs/by-name/lp/lp_solve/0001-fix-cross-compilation.patch similarity index 100% rename from pkgs/applications/science/math/lp_solve/0001-fix-cross-compilation.patch rename to pkgs/by-name/lp/lp_solve/0001-fix-cross-compilation.patch diff --git a/pkgs/applications/science/math/lp_solve/default.nix b/pkgs/by-name/lp/lp_solve/package.nix similarity index 86% rename from pkgs/applications/science/math/lp_solve/default.nix rename to pkgs/by-name/lp/lp_solve/package.nix index 35bd657e7ad3..cadd82feb7f0 100644 --- a/pkgs/applications/science/math/lp_solve/default.nix +++ b/pkgs/by-name/lp/lp_solve/package.nix @@ -4,19 +4,19 @@ fetchurl, cctools, fixDarwinDylibNames, - autoSignDarwinBinariesHook, + darwin, replaceVars, buildPackages, binutils, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "lp_solve"; version = "5.5.2.11"; src = fetchurl { - url = "mirror://sourceforge/project/lpsolve/lpsolve/${version}/lp_solve_${version}_source.tar.gz"; - sha256 = "sha256-bUq/9cxqqpM66ObBeiJt8PwLZxxDj2lxXUHQn+gfkC8="; + url = "mirror://sourceforge/project/lpsolve/lpsolve/${finalAttrs.version}/lp_solve_${finalAttrs.version}_source.tar.gz"; + hash = "sha256-bUq/9cxqqpM66ObBeiJt8PwLZxxDj2lxXUHQn+gfkC8="; }; nativeBuildInputs = @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { fixDarwinDylibNames ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [ - autoSignDarwinBinariesHook + darwin.autoSignDarwinBinariesHook ]; env = { @@ -81,4 +81,4 @@ stdenv.mkDerivation rec { maintainers = [ ]; platforms = lib.platforms.unix; }; -} +}) diff --git a/pkgs/by-name/ma/matrix-authentication-service/package.nix b/pkgs/by-name/ma/matrix-authentication-service/package.nix index e17d8e6bbba1..6a6a22e82b9e 100644 --- a/pkgs/by-name/ma/matrix-authentication-service/package.nix +++ b/pkgs/by-name/ma/matrix-authentication-service/package.nix @@ -18,21 +18,21 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "matrix-authentication-service"; - version = "1.14.0"; + version = "1.15.0"; src = fetchFromGitHub { owner = "element-hq"; repo = "matrix-authentication-service"; tag = "v${finalAttrs.version}"; - hash = "sha256-/13RYd5p46eM2rX5y9bPzHB63zCeZ2NbLDqTnk3+Vn8="; + hash = "sha256-q3MtMRdvuL0olnqvqK8uWeFCT7UpKjZN4zz9ZFlyGd4="; }; - cargoHash = "sha256-eNmD/O7t2YykGlVqovBxi/DKPQ2W2mxxCOaMBzqhTZo="; + cargoHash = "sha256-FV4ZKR6lq8b5PMj+mZ+/RBWLmoGc6WuAXw00+PGJUi8="; npmDeps = fetchNpmDeps { name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps"; src = "${finalAttrs.src}/${finalAttrs.npmRoot}"; - hash = "sha256-lWFJEjTVHMkmFnfjjIDtE/T3nw4qF3IJhUayfFVLPQo="; + hash = "sha256-OA7T8dTWEb8QiiRBx1A/R8H2Bu/xv3RFr8K9IVU3674="; }; npmRoot = "frontend"; diff --git a/pkgs/by-name/mi/microhs/package.nix b/pkgs/by-name/mi/microhs/package.nix deleted file mode 100644 index 847f3c766f66..000000000000 --- a/pkgs/by-name/mi/microhs/package.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - callPackage, - stdenv, - fetchFromGitHub, - lib, - writableTmpDirAsHomeHook, - nix-update-script, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "microhs"; - version = "0.15.4.0"; - - src = fetchFromGitHub { - owner = "augustss"; - repo = "MicroHs"; - tag = "v${finalAttrs.version}"; - hash = "sha256-V3Of72rpXvImV90sSoYz02H06o1J3FqHDQNbB+M6/8A="; - }; - - # mcabal doesn't seem to respect the make flag and fails with /homeless-shelter - # This works around the issue - nativeBuildInputs = [ writableTmpDirAsHomeHook ]; - - makeFlags = [ "MCABAL=$(out)" ]; - buildFlags = [ "bootstrap" ]; - - # MicroCabal is a separate repository, which should be packaged separately - # The MicroCabal that is installed by `make install` is pregenerated, does not respect MCABAL above, and so is not useable - postInstall = "rm $out/bin/mcabal"; - - passthru = { - updateScript = nix-update-script { }; - tests = { - hello-world = callPackage ./test-hello-world.nix { microhs = finalAttrs.finalPackage; }; - }; - }; - - meta = { - description = "Haskell implemented with combinators"; - homepage = "https://github.com/augustss/MicroHs"; - license = lib.licenses.asl20; - maintainers = [ lib.maintainers.steeleduncan ]; - platforms = lib.platforms.all; - }; -}) diff --git a/pkgs/by-name/mk/mkbrr/package.nix b/pkgs/by-name/mk/mkbrr/package.nix index fdeb094c4b09..cdf3e4c080ad 100644 --- a/pkgs/by-name/mk/mkbrr/package.nix +++ b/pkgs/by-name/mk/mkbrr/package.nix @@ -7,16 +7,16 @@ buildGoModule (finalAttrs: { pname = "mkbrr"; - version = "1.20.0"; + version = "1.22.0"; src = fetchFromGitHub { owner = "autobrr"; repo = "mkbrr"; tag = "v${finalAttrs.version}"; - hash = "sha256-5oyzeinRjR09GEvLMGdCDH+UGYWPu1Qs8dXs/nIlwjs="; + hash = "sha256-M4lulMYb6jomS2sZ4E5nA6rP1KmuGiMjQEyuXqyl2vQ="; }; - vendorHash = "sha256-mbcbACOKMohBw0SH5gH06CTkHtJk3WmbAqpcO0qMFOs="; + vendorHash = "sha256-BNswyeGBhm0CY6D9HcJHTDKIGCJ5QotiwRnr22HltMo="; ldflags = [ "-s" diff --git a/pkgs/by-name/ne/nest-cli/package.nix b/pkgs/by-name/ne/nest-cli/package.nix index ec301d9d892f..9bac505927d5 100644 --- a/pkgs/by-name/ne/nest-cli/package.nix +++ b/pkgs/by-name/ne/nest-cli/package.nix @@ -9,16 +9,16 @@ buildNpmPackage (finalAttrs: { pname = "nest-cli"; - version = "11.0.17"; + version = "11.0.18"; src = fetchFromGitHub { owner = "nestjs"; repo = "nest-cli"; tag = finalAttrs.version; - hash = "sha256-TolI/HpC5kEvXrqkIcjcVny2yY96Jz37f5+mw4fHt1M="; + hash = "sha256-fqVsvox7c50bZ5jqGrpu3QiQG+ghY3eh8SETrdKnRCY="; }; - npmDepsHash = "sha256-y9yjZT7AhXPrKEQo81k5KjX9voIWY7VcuUGY6QuiLcw="; + npmDepsHash = "sha256-1M53H0tLD3+9To4kxt136P7kOvzo3gfWEFkFlcUSy6g="; npmFlags = [ "--legacy-peer-deps" ]; env = { diff --git a/pkgs/by-name/nw/nwg-hello/package.nix b/pkgs/by-name/nw/nwg-hello/package.nix index e46f0e395f24..1efe5ebc1d24 100644 --- a/pkgs/by-name/nw/nwg-hello/package.nix +++ b/pkgs/by-name/nw/nwg-hello/package.nix @@ -10,14 +10,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "nwg-hello"; - version = "0.4.3"; + version = "0.4.4"; pyproject = true; src = fetchFromGitHub { owner = "nwg-piotr"; repo = "nwg-hello"; tag = "v${finalAttrs.version}"; - hash = "sha256-sWp9fSCPb2MrHdvTBnmsvf3idrRPcqmBFsFbRXGjFB0="; + hash = "sha256-XJVUEuSu24NozFjted4pujo4A83cpF7KmfDSpc8/JzY="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/op/open-scq30/package.nix b/pkgs/by-name/op/open-scq30/package.nix index c7534d1914a1..f420e38703e0 100644 --- a/pkgs/by-name/op/open-scq30/package.nix +++ b/pkgs/by-name/op/open-scq30/package.nix @@ -26,13 +26,13 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "open-scq30"; - version = "2.5.1"; + version = "2.6.2"; src = fetchFromGitHub { owner = "Oppzippy"; repo = "OpenSCQ30"; rev = "v${finalAttrs.version}"; - hash = "sha256-XBK7KxuksQoYZs/uVkh6+8S20G05W9ftK9pviUFNJ8s="; + hash = "sha256-4K/3kulUbUa21YbWh1nYXeeHAIVD/FX8VtWArpij0JQ="; }; nativeBuildInputs = [ @@ -65,7 +65,7 @@ rustPlatform.buildRustPackage (finalAttrs: { libxi ]; - cargoHash = "sha256-P4r1MoFCkG80X0dJ1MpmjgedcpQ/HDTC3XikNUDKRaQ="; + cargoHash = "sha256-1Ccbi/21jTyTPt9WqhnwpBFuD0f90PabwyVRwZI1l0k="; env.INSTALL_PREFIX = placeholder "out"; diff --git a/pkgs/by-name/pa/paretosecurity/package.nix b/pkgs/by-name/pa/paretosecurity/package.nix index 2cece2e2e8c0..b0a71805a2cd 100644 --- a/pkgs/by-name/pa/paretosecurity/package.nix +++ b/pkgs/by-name/pa/paretosecurity/package.nix @@ -17,13 +17,13 @@ buildGoModule (finalAttrs: { webkitgtk_4_1 ]; pname = "paretosecurity"; - version = "0.3.15"; + version = "0.3.16"; src = fetchFromGitHub { owner = "ParetoSecurity"; repo = "agent"; rev = finalAttrs.version; - hash = "sha256-2oGDxnbxuyAMWjEUFKzwYz72/FYUbUZHSFoZk2pMfeY="; + hash = "sha256-93+8r7GOdaQ5HnPEvJ0L2DDStHT6HvH1tuDsCSoDU0E="; }; vendorHash = "sha256-jAcUf4VjtKB/Q2wHOVnCgcmPp5XNMqV8Ei9kpWoGO4Q="; diff --git a/pkgs/by-name/pl/plasma-panel-spacer-extended/package.nix b/pkgs/by-name/pl/plasma-panel-spacer-extended/package.nix index 0297274709c3..f6c16f5023e5 100644 --- a/pkgs/by-name/pl/plasma-panel-spacer-extended/package.nix +++ b/pkgs/by-name/pl/plasma-panel-spacer-extended/package.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "plasma-panel-spacer-extended"; - version = "1.14.0"; + version = "1.15.0"; src = fetchFromGitHub { owner = "luisbocanegra"; repo = "plasma-panel-spacer-extended"; tag = "v${finalAttrs.version}"; - hash = "sha256-zqdELL7A4pZpPfbgBgyqZnP6HY200rYxRFl3/aIE3Eo="; + hash = "sha256-ivfIlZvr7OOXa/zyrorcUPaaFU6IcS2L3yFiX29jnd4="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/po/pomerium-cli/package.nix b/pkgs/by-name/po/pomerium-cli/package.nix index 64261bc15356..0f1409717ad0 100644 --- a/pkgs/by-name/po/pomerium-cli/package.nix +++ b/pkgs/by-name/po/pomerium-cli/package.nix @@ -14,16 +14,16 @@ let in buildGoModule (finalAttrs: { pname = "pomerium-cli"; - version = "0.32.0"; + version = "0.32.2"; src = fetchFromGitHub { owner = "pomerium"; repo = "cli"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-dxN3pVDt6v/xEnBwvmOFf8gf6YZWv23a4K6mTRovv+k="; + sha256 = "sha256-t2Sp4zAIybUsxaBdQ9ev+EJsFpWqM8KWaE2UOI4xw5A="; }; - vendorHash = "sha256-pDoV7CzQFiAi6OAqqW8b6/Sl9PSQou9pU2c5nU7Rt0A="; + vendorHash = "sha256-LzXcHGRBn99WhDsxLQKY3t8Zp4sw9Ec5CbA/rU/3SQ0="; subPackages = [ "cmd/pomerium-cli" diff --git a/pkgs/by-name/po/postman/package.nix b/pkgs/by-name/po/postman/package.nix index a014cbd87449..8f9113f9ef59 100644 --- a/pkgs/by-name/po/postman/package.nix +++ b/pkgs/by-name/po/postman/package.nix @@ -8,7 +8,7 @@ let pname = "postman"; - version = "11.88.3"; + version = "11.89.0"; src = let @@ -27,10 +27,10 @@ let name = "postman-${version}.${if stdenvNoCC.hostPlatform.isLinux then "tar.gz" else "zip"}"; url = "https://dl.pstmn.io/download/version/${version}/${system}"; hash = selectSystem { - aarch64-darwin = "sha256-BYdEwE96SdxPwn8bTcIZcHcClAjPgrFd2rSO1zs/X5Y="; - aarch64-linux = "sha256-nWS4cPV6m/h1+RLkl1i9FZxCol/GPxFb2S+GRoL87QM="; - x86_64-darwin = "sha256-8lDFOysRuJMEJ5Ff2mkTZx+Mu+duiDq8EAdibi7yYL8="; - x86_64-linux = "sha256-98NRSIOpgsDZ9tehbgQi1Ms5U04ylWIh4A2qY0yasPA="; + aarch64-darwin = "sha256-NGiQPg4oVr2zin0NT8/2Y5HTrBZeA7Oboue2zYPHJWc="; + aarch64-linux = "sha256-dGV1JzNsHo8lKZplBX5sp1BRgGovVY+UM+6BumXLK2E="; + x86_64-darwin = "sha256-kpl5x+uCR76dSwG+5xk4aA0lLiKXWOhJTtco2+S5c5g="; + x86_64-linux = "sha256-9hRBh1zUIL5JctHhdtAeWgR8/QqftRNqAGghI7BgdsI="; }; }; diff --git a/pkgs/by-name/qd/qdng/package.nix b/pkgs/by-name/qd/qdng/package.nix new file mode 100644 index 000000000000..d2267a71e623 --- /dev/null +++ b/pkgs/by-name/qd/qdng/package.nix @@ -0,0 +1,60 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, + bison, + flex, + gfortran, + blas, + bzip2, + fftw, + lapack, + libxml2, + protobuf_21, + zlib, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "qdng"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "quantum-dynamics-ng"; + repo = "QDng"; + tag = "v${finalAttrs.version}"; + hash = "sha256-T59Bb014KSUOOFTFjPOrWmbF6GqIqAIyrb3Xe5TwU88="; + }; + + configureFlags = [ + "--enable-openmp" + "--disable-gccopt" + ]; + + enableParallelBuilding = true; + + nativeBuildInputs = [ + autoreconfHook + bison + flex + gfortran + ]; + + buildInputs = [ + blas + bzip2 + fftw + lapack + libxml2 + protobuf_21 + zlib + ]; + + meta = { + description = "Molecular wavepacket dynamics package"; + homepage = "https://github.com/quantum-dynamics-ng/QDng"; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.markuskowa ]; + license = lib.licenses.gpl3Only; + }; +}) diff --git a/pkgs/by-name/ru/rundeck-cli/package.nix b/pkgs/by-name/ru/rundeck-cli/package.nix index 0460f469e6f1..bff71bbf655a 100644 --- a/pkgs/by-name/ru/rundeck-cli/package.nix +++ b/pkgs/by-name/ru/rundeck-cli/package.nix @@ -18,11 +18,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "rundeck-cli"; - version = "2.0.9"; + version = "2.0.10"; src = fetchurl { url = "https://github.com/rundeck/rundeck-cli/releases/download/v${finalAttrs.version}/rundeck-cli-${finalAttrs.version}-all.jar"; - hash = "sha256-c6QAgwyRCtoOlS7DEmjyK3BwHV122bilL6H+Hzrv2dQ="; + hash = "sha256-RiGWsscenvNpKr+yOHpy2F7dPZ3M/R9SWD+EKF7nq18="; }; nativeBuildInputs = [ makeBinaryWrapper ]; diff --git a/pkgs/by-name/sc/scalr-cli/package.nix b/pkgs/by-name/sc/scalr-cli/package.nix index adbd58b2a811..12411ab7dcd0 100644 --- a/pkgs/by-name/sc/scalr-cli/package.nix +++ b/pkgs/by-name/sc/scalr-cli/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "scalr-cli"; - version = "0.17.7"; + version = "0.17.8"; src = fetchFromGitHub { owner = "Scalr"; repo = "scalr-cli"; rev = "v${finalAttrs.version}"; - hash = "sha256-ZGq76TPMNrlyuHs5yUgw3pJ+a2wVNwBTTSgzIofD4io="; + hash = "sha256-hJvIVSv40Wlua1nOWJb5pu4OSfsATiwMoqNrZsWCBNA="; }; vendorHash = "sha256-TUf+0Z0yBDOpzMuETn+FCAPXWvQltjRhwQ3Xz0X6YOI="; diff --git a/pkgs/by-name/sd/sdl3-image/package.nix b/pkgs/by-name/sd/sdl3-image/package.nix index 7528527e0ae2..795e5faad0c9 100644 --- a/pkgs/by-name/sd/sdl3-image/package.nix +++ b/pkgs/by-name/sd/sdl3-image/package.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "sdl3-image"; - version = "3.4.0"; + version = "3.4.2"; outputs = [ "lib" @@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "libsdl-org"; repo = "SDL_image"; tag = "release-${finalAttrs.version}"; - hash = "sha256-XRPHDcJ49sZa7y8TCWfS2gPOhpGyUnMMXVqvjV9f8E0="; + hash = "sha256-LNEbXhUDB6OKk3HxwV+jANnskS82ewhQe8pDy+P6L40="; }; strictDeps = true; diff --git a/pkgs/by-name/si/signalbackup-tools/package.nix b/pkgs/by-name/si/signalbackup-tools/package.nix index 4ffffd4064e1..f8ed4776cb82 100644 --- a/pkgs/by-name/si/signalbackup-tools/package.nix +++ b/pkgs/by-name/si/signalbackup-tools/package.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "signalbackup-tools"; - version = "20260325"; + version = "20260407"; src = fetchFromGitHub { owner = "bepaald"; repo = "signalbackup-tools"; tag = finalAttrs.version; - hash = "sha256-5Tb9bY0sZvCUlYkGpmu6hVi7EOEMaygEH9x3tbyo2T4="; + hash = "sha256-rkIhaYLRBpqMLpwOHhTAEpgqrKRc3UBMwhS1oiCcbvc="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/si/sioyek/package.nix b/pkgs/by-name/si/sioyek/package.nix index 6975adb229ba..bdc4644b7b46 100644 --- a/pkgs/by-name/si/sioyek/package.nix +++ b/pkgs/by-name/si/sioyek/package.nix @@ -15,13 +15,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "sioyek"; - version = "2.0.0-unstable-2026-03-13"; + version = "2.0.0-unstable-2026-04-08"; src = fetchFromGitHub { owner = "ahrm"; repo = "sioyek"; - rev = "13a37e0e0ab77a76f8dbe3adf599ee916615b3db"; - hash = "sha256-3bMVoF4f1+pZV3tdti8KNS17wWK1tmIgjKQUQS+Rzt8="; + rev = "a0650b5a71c15692c4797fec2908cc55c5aafd12"; + hash = "sha256-9g1JhZEqBz6x2gv690efXaV7TNggyRvOq1xn8phubEY="; }; buildInputs = [ diff --git a/pkgs/by-name/sk/skopeo/package.nix b/pkgs/by-name/sk/skopeo/package.nix index c8c556f2fa9b..44214cf15087 100644 --- a/pkgs/by-name/sk/skopeo/package.nix +++ b/pkgs/by-name/sk/skopeo/package.nix @@ -19,13 +19,13 @@ buildGoModule rec { pname = "skopeo"; - version = "1.22.0"; + version = "1.22.1"; src = fetchFromGitHub { rev = "v${version}"; owner = "containers"; repo = "skopeo"; - hash = "sha256-ERMOquT8ke/4urC6V0To+jJPeBICohHXL9YcCmGLST4="; + hash = "sha256-MS91KzOxcVhmH420zdUcSUw0UggRt3hQ6c3A3QSAYkA="; }; outputs = [ diff --git a/pkgs/by-name/sp/spedread/package.nix b/pkgs/by-name/sp/spedread/package.nix index 6601c650c69a..c65b45dd863f 100644 --- a/pkgs/by-name/sp/spedread/package.nix +++ b/pkgs/by-name/sp/spedread/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "spedread"; - version = "2.7.0"; + version = "2.8.0"; src = fetchFromGitHub { owner = "Darazaki"; repo = "Spedread"; tag = "v${finalAttrs.version}"; - hash = "sha256-3Ykucgw2LkW22gn4nroCO22CbfLB9DGeyyv+PS3fv2U="; + hash = "sha256-IZhvKZ4kllL6ItUn47+EnUwVPKXC0mz2Mvsg/7CT5Qw="; }; postPatch = '' diff --git a/pkgs/by-name/sp/spirit/package.nix b/pkgs/by-name/sp/spirit/package.nix index 9c8a90d92907..bc8a14d7620f 100644 --- a/pkgs/by-name/sp/spirit/package.nix +++ b/pkgs/by-name/sp/spirit/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "spirit"; - version = "0.11.3"; + version = "0.12.0"; src = fetchFromGitHub { owner = "block"; repo = "spirit"; tag = "v${finalAttrs.version}"; - hash = "sha256-gQ4DeiUWqOy1Qg1+F2hjxhI6578MXvuNlTB5djN1zD4="; + hash = "sha256-5H/yDujoxzeslZ4rm6qrBIy9pM3F6o/XmqPyG960M/0="; }; vendorHash = "sha256-dC+qryYDiYPuMlgkHsXYOsqHxl1O5QtGUFbNnkRE3eU="; diff --git a/pkgs/by-name/sp/sprite/package.nix b/pkgs/by-name/sp/sprite/package.nix index c5550d7a4dfd..08103661017c 100644 --- a/pkgs/by-name/sp/sprite/package.nix +++ b/pkgs/by-name/sp/sprite/package.nix @@ -8,7 +8,7 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "sprite"; - version = "0.0.1-rc42"; + version = "0.0.1-rc43"; src = fetchurl { url = "https://sprites-binaries.t3.storage.dev/client/v${finalAttrs.version}/sprite-${ @@ -16,10 +16,10 @@ stdenv.mkDerivation (finalAttrs: { }-${if stdenv.hostPlatform.isx86_64 then "amd64" else "arm64"}.tar.gz"; hash = { - aarch64-darwin = "sha256-ih0RonsNu7ZHUWbQcMqHmm7RXg0VvekDvq6WpnKvSjY="; - x86_64-darwin = "sha256-p3Tpf2Mg0rfOaw/y7cKI2Q7SvEpm+a1ykYVrr/dzVLc="; - aarch64-linux = "sha256-vMhkzX9noNL8Aw6MWhEAYmufCRpLsY/FbveBP3PYrQQ="; - x86_64-linux = "sha256-Jmym6yg0Wl83KTn840jWF3md5+r4NBh8czQudY5Iomk="; + aarch64-darwin = "sha256-6ztxc59b2H76+o7k7zMOvA/PAOib4m7WRXo1XsigL04="; + x86_64-darwin = "sha256-Ni779eJIFbZQ/zrAA3zQyYFFQ7ikEU9UYL9GeO1OcKA="; + aarch64-linux = "sha256-YTNHlVknlVkyUsiI422Quo04CyIMxCbrjhPvGADHw2s="; + x86_64-linux = "sha256-wEClvx4Kv7WK4uMYwNJqvsvjyQsonI01xlCo3z7CuwQ="; } .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); }; diff --git a/pkgs/by-name/sq/sqldef/package.nix b/pkgs/by-name/sq/sqldef/package.nix index 0415f8350261..5cc99147c274 100644 --- a/pkgs/by-name/sq/sqldef/package.nix +++ b/pkgs/by-name/sq/sqldef/package.nix @@ -6,18 +6,18 @@ buildGoModule (finalAttrs: { pname = "sqldef"; - version = "3.10.1"; + version = "3.11.0"; src = fetchFromGitHub { owner = "sqldef"; repo = "sqldef"; rev = "v${finalAttrs.version}"; - hash = "sha256-6z73BmddtPrqbaWnDSTMeyECMomwHFtLRqIS08UfaLY="; + hash = "sha256-//wAzWGgNIYp/uajrhX2GexIsdYRjRAOPcHXZuSdj+E="; }; proxyVendor = true; - vendorHash = "sha256-XSb3nMUv2JngkvvjpqfStFXJQFrCaSSTkYaKDGaFfuE="; + vendorHash = "sha256-xX4ZrhIdHvNFRTXHkZfEbevauuv4x9IYfDVfq7IFDg8="; ldflags = [ "-s" diff --git a/pkgs/by-name/st/stress-ng/package.nix b/pkgs/by-name/st/stress-ng/package.nix index 47390ba36596..5c729a6ed242 100644 --- a/pkgs/by-name/st/stress-ng/package.nix +++ b/pkgs/by-name/st/stress-ng/package.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "stress-ng"; - version = "0.20.01"; + version = "0.21.00"; src = fetchFromGitHub { owner = "ColinIanKing"; repo = "stress-ng"; tag = "V${finalAttrs.version}"; - hash = "sha256-C9TpUM18W+ARFAFLSqTl6RjRrI60pxhdP/veBHu2cco="; + hash = "sha256-kFIrbt/jJuQnuWmQUBuiFGuAfBb2pUtujhj6bwpDF4k="; }; postPatch = '' diff --git a/pkgs/by-name/ta/tar2ext4/package.nix b/pkgs/by-name/ta/tar2ext4/package.nix index 44bc4792427a..eebeb10e9f6f 100644 --- a/pkgs/by-name/ta/tar2ext4/package.nix +++ b/pkgs/by-name/ta/tar2ext4/package.nix @@ -6,13 +6,13 @@ buildGoModule (finalAttrs: { pname = "tar2ext4"; - version = "0.14.0"; + version = "0.14.1"; src = fetchFromGitHub { owner = "microsoft"; repo = "hcsshim"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-8FPEGQ6DBYYnT6mIjYmSTRfHMloS42oB8xPU5wmFLwI="; + sha256 = "sha256-n/YYajbQo+s1ssPAbS4gUdFYBHNmoNBKcEM/kcAZR94="; }; sourceRoot = "${finalAttrs.src.name}/cmd/tar2ext4"; diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/by-name/te/teamviewer/package.nix similarity index 94% rename from pkgs/applications/networking/remote/teamviewer/default.nix rename to pkgs/by-name/te/teamviewer/package.nix index b6218e40fa42..51953fad79ee 100644 --- a/pkgs/applications/networking/remote/teamviewer/default.nix +++ b/pkgs/by-name/te/teamviewer/package.nix @@ -16,13 +16,13 @@ libsm, libxfixes, coreutils, - wrapQtAppsHook, + libsForQt5, icu63, nss, minizip, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "teamviewer"; # teamviewer itself has not development files but the dev output removes propagated other dev outputs from runtime outputs = [ @@ -33,15 +33,15 @@ stdenv.mkDerivation rec { src = let - base_url = "https://dl.teamviewer.com/download/linux/version_${lib.versions.major version}x"; + base_url = "https://dl.teamviewer.com/download/linux/version_${lib.versions.major finalAttrs.version}x"; in { x86_64-linux = fetchurl { - url = "${base_url}/teamviewer_${version}_amd64.deb"; + url = "${base_url}/teamviewer_${finalAttrs.version}_amd64.deb"; hash = "sha256-7QQlGzIr3BBFaur8ycGY0VuYz21cJI+EfCsRuCAr8XA="; }; aarch64-linux = fetchurl { - url = "${base_url}/teamviewer_${version}_arm64.deb"; + url = "${base_url}/teamviewer_${finalAttrs.version}_arm64.deb"; hash = "sha256-prz3RaeMykgLrK9ai3/ivzRsUFT1dyWP1xymEl3s4eA="; }; } @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoPatchelfHook makeWrapper - wrapQtAppsHook + libsForQt5.wrapQtAppsHook ]; buildInputs = [ minizip @@ -164,4 +164,4 @@ stdenv.mkDerivation rec { c4patino ]; }; -} +}) diff --git a/pkgs/applications/networking/remote/teamviewer/update-teamviewer.sh b/pkgs/by-name/te/teamviewer/update-teamviewer.sh similarity index 100% rename from pkgs/applications/networking/remote/teamviewer/update-teamviewer.sh rename to pkgs/by-name/te/teamviewer/update-teamviewer.sh diff --git a/pkgs/by-name/tu/tuckr/package.nix b/pkgs/by-name/tu/tuckr/package.nix index 02b39c4a0f18..39f8af6d2ad6 100644 --- a/pkgs/by-name/tu/tuckr/package.nix +++ b/pkgs/by-name/tu/tuckr/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "tuckr"; - version = "0.13.0"; + version = "0.13.1"; src = fetchFromGitHub { owner = "RaphGL"; repo = "Tuckr"; rev = finalAttrs.version; - hash = "sha256-1fiz45x7XgVJtzxF+cxe6W203oIs3wytjh3V/IGk4XA="; + hash = "sha256-QFGT032gpyzdobGdICEyvgbAMDGbBSNhIH16AlGPK4s="; }; - cargoHash = "sha256-q64BgL/UOWd/WNTyG8D1pwfa5ca1mKN79BI+W15ooMQ="; + cargoHash = "sha256-ffAp+1kkLTaKYPhfwQt4ieR3d/w8SeJPfeaFh0Vzc1w="; doCheck = false; # test result: FAILED. 5 passed; 3 failed; diff --git a/pkgs/by-name/ui/uim/package.nix b/pkgs/by-name/ui/uim/package.nix index 36e96c610829..897ae44d915e 100644 --- a/pkgs/by-name/ui/uim/package.nix +++ b/pkgs/by-name/ui/uim/package.nix @@ -16,46 +16,32 @@ m17n_db, expat, withAnthy ? true, - anthy ? null, + anthy, withGtk ? true, withGtk2 ? withGtk, - gtk2 ? null, + gtk2, withGtk3 ? withGtk, - gtk3 ? null, + gtk3, # Was never enabled in the history of this package and is not needed by any # dependent package, hence disabled to save up closure size. withQt ? false, withQt5 ? withQt, - qt5 ? null, + qt5, withLibnotify ? true, - libnotify ? null, + libnotify, withSqlite ? true, - sqlite ? null, + sqlite, withNetworking ? true, - curl ? null, - openssl ? null, + curl, + openssl, withFFI ? true, - libffi ? null, + libffi, # Things that are clearly an overkill to be enabled by default withMisc ? false, - libeb ? null, + libeb, }: -let - automake = automake116x; -in - -assert withGtk2 -> gtk2 != null; -assert withGtk3 -> gtk3 != null; - -assert withAnthy -> anthy != null; -assert withLibnotify -> libnotify != null; -assert withSqlite -> sqlite != null; -assert withNetworking -> curl != null && openssl != null; -assert withFFI -> libffi != null; -assert withMisc -> libeb != null; - stdenv.mkDerivation (finalAttrs: { version = "1.9.6"; pname = "uim"; @@ -70,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ autoconf - automake + automake116x intltool libtool pkg-config diff --git a/pkgs/by-name/wa/wakatime-cli/package.nix b/pkgs/by-name/wa/wakatime-cli/package.nix index f50240efc067..3d7810aae7e0 100644 --- a/pkgs/by-name/wa/wakatime-cli/package.nix +++ b/pkgs/by-name/wa/wakatime-cli/package.nix @@ -10,16 +10,16 @@ buildGoModule (finalAttrs: { pname = "wakatime-cli"; - version = "2.0.8"; + version = "2.2.0"; src = fetchFromGitHub { owner = "wakatime"; repo = "wakatime-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-VBlERyaoRmOO7CGPmF9R2f6sU+8BNJ3Ze4AX2mxezCo="; + hash = "sha256-TOdAcT+IS6XONIfkASRvd7oTSSW5VX8w5q5ASvJlQb8="; }; - vendorHash = "sha256-1BtTtR8wPVzzOEGv3te3hOeKakZX7cS+HYvoCLnuZ/c="; + vendorHash = "sha256-HngszNLX2b2EVvh8ovouIEvjBOJL1jA5AhA6Y11ke9Y="; ldflags = [ "-s" diff --git a/pkgs/by-name/xr/xremap/package.nix b/pkgs/by-name/xr/xremap/package.nix index 0df804557fb3..fef979ea4001 100644 --- a/pkgs/by-name/xr/xremap/package.nix +++ b/pkgs/by-name/xr/xremap/package.nix @@ -58,13 +58,13 @@ assert ( ); rustPlatform.buildRustPackage (finalAttrs: { pname = "xremap${variant.suffix or ""}"; - version = "0.14.19"; + version = "0.15.0"; src = fetchFromGitHub { owner = "xremap"; repo = "xremap"; tag = "v${finalAttrs.version}"; - hash = "sha256-t/eSUFYTZ41uJJLjmMOWiV9ffYJjDVw+fy0P3XnvJ40="; + hash = "sha256-8IryQGSAxIVQiGGiY3trDvvJ50c19LHP4KvIa3P0zII="; }; nativeBuildInputs = [ pkg-config ]; @@ -72,7 +72,7 @@ rustPlatform.buildRustPackage (finalAttrs: { buildNoDefaultFeatures = true; buildFeatures = variant.features; - cargoHash = "sha256-Ypujuqz8TNLNfNB1NizjZoOK2VL+a4MY7c/aGIcCjns="; + cargoHash = "sha256-5vDKb6S4G+oNm//WtGsr4kEthozoznzn2N8ajtiMIeY="; passthru = lib.mapAttrs (name: lib.const (xremap.override { withVariant = name; })) variants; diff --git a/pkgs/development/compilers/microhs/0.15.4.0.nix b/pkgs/development/compilers/microhs/0.15.4.0.nix new file mode 100644 index 000000000000..b0f454e723a0 --- /dev/null +++ b/pkgs/development/compilers/microhs/0.15.4.0.nix @@ -0,0 +1,4 @@ +import ./common.nix { + version = "0.15.4.0"; + hash = "sha256-FUr2EA3zbmt2Tr2F8zT1wHnB8GDlUVb2W1fP4IqNd80="; +} diff --git a/pkgs/development/compilers/microhs/boot.nix b/pkgs/development/compilers/microhs/boot.nix new file mode 100644 index 000000000000..b55587a8438f --- /dev/null +++ b/pkgs/development/compilers/microhs/boot.nix @@ -0,0 +1,40 @@ +{ + stdenvNoCC, + hugs, + makeWrapper, + microhs-src, +}: + +stdenvNoCC.mkDerivation { + pname = "microhs"; + version = "${microhs-src.version}-hugs"; + + inherit (microhs-src) + src + patches + postPatch + meta + ; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/bin" "$out/share/microhs-hugs" + s="$out/share/microhs-hugs/src" + cp -r . "$s" + + makeWrapper ${hugs}/bin/runhugs "$out/bin/mhs" \ + --add-flags "'+P$s/hugs:$s/src:$s/paths:{Hugs}/packages/*:hugs/obj' -98 +o +w -h100m '$s/hugs/Main.hs'" + + runHook postInstall + ''; + + passthru = { + isMhs = true; + usesHugs = true; + }; +} diff --git a/pkgs/development/compilers/microhs/common.nix b/pkgs/development/compilers/microhs/common.nix new file mode 100644 index 000000000000..36d65abb2b69 --- /dev/null +++ b/pkgs/development/compilers/microhs/common.nix @@ -0,0 +1,94 @@ +{ + version, + mcabalVersion ? "0.5.3.0-31f1b5dec81561a1b1d36b8e3065ce091dce2ec6", + rev ? "refs/tags/v${version}", + hash, +}: + +{ + lib, + buildPackages, + pkgsBuildBuild, + callPackage, + fetchFromGitHub, + fetchpatch, + microhs-boot, + stdenv, + versionCheckHook, + writeShellScript, +}: + +let + args = finalAttrs: { + inherit version; + + src = fetchFromGitHub { + owner = "augustss"; + repo = "MicroHs"; + fetchSubmodules = true; + inherit rev hash; + }; + + patches = [ + patches/hugs.patch + patches/hugs-viewpatterns.patch + ] + ++ lib.optional stdenv.hostPlatform.isGnu patches/link-math.patch; + + # The source contains pre-compiled files + # We delete them to be certain we are building from source + postPatch = '' + rm -r generated + ''; + + doInstallCheck = true; + + nativeInstallCheckInputs = [ + versionCheckHook + ]; + + meta = { + description = "Small compiler for Haskell"; + longDescription = '' + A compiler for an extended subset of Haskell 2010. + The compiler translates to combinators and can compile itself. + ''; + homepage = "https://github.com/augustss/MicroHs"; + license = lib.licensesSpdx."Apache-2.0"; + mainProgram = "mhs"; + maintainers = with lib.maintainers; [ + AlexandreTunstall + steeleduncan + ]; + platforms = lib.platforms.all; + }; + }; + + microhs-stage1-build = pkgsBuildBuild.callPackage ./stage1.nix { + inherit args microhs-boot; + }; + + microhs-stage1 = buildPackages.callPackage ./stage1.nix { + inherit args microhs-boot; + }; + + microhs-stage2 = callPackage ./stage2.nix { + inherit + args + microcabal-stage1 + microhs-stage1 + cpphs + ; + }; + + microcabal-stage1 = buildPackages.callPackage ../../tools/haskell/microcabal/${mcabalVersion}.nix { + microhs = microhs-stage1-build; + }; + + cpphs = buildPackages.callPackage ./cpphs.nix { + inherit args; + microhs = microhs-stage2; + }; + +in +microhs-stage2 diff --git a/pkgs/development/compilers/microhs/cpphs.nix b/pkgs/development/compilers/microhs/cpphs.nix new file mode 100644 index 000000000000..7b288ebe4120 --- /dev/null +++ b/pkgs/development/compilers/microhs/cpphs.nix @@ -0,0 +1,50 @@ +{ + args, + hugs, + microhs, + stdenv, +}: + +stdenv.mkDerivation ( + finalAttrs: + let + args' = args finalAttrs; + in + args' + // { + pname = "microhs-cpphs"; + + nativeBuildInputs = [ hugs ]; + + makeFlags = [ "USECPPHS=$(TMP)/cpphs-boot" ]; + buildFlags = [ + "bootstrapcpphs" + "bin/cpphs" + ]; + + # Generate cpphs-boot and populate paths that the target uses + # We can't use cpphs-hugs directly because it's too primitive + preBuild = '' + mkdir -p $TMP/cpphs-hugs/src + cp -r hugs/* cpphscompat/* cpphssrc/malcolm-wallace-universe/{polyparse-*/src,cpphs-*}/* $TMP/cpphs-hugs/src/ + find $TMP/cpphs-hugs/src -type f -name '*.hs' -exec ${hugs}/bin/cpphs-hugs --noline '{}' '-O{}.tmp' \; + find $TMP/cpphs-hugs/src -type f -name '*.hs' -exec mv '{}.tmp' '{}' \; + sed -i -e '/fail *= *Fail\.fail/d' $TMP/cpphs-hugs/src/Text/ParserCombinators/Poly/Parser.hs + + ${microhs}/bin/mhs -l -i$TMP/cpphs-hugs/src $TMP/cpphs-hugs/src/cpphs.hs -o$TMP/cpphs-boot + + mkdir -p bin generated + touch cpphssrc/malcolm-wallace-universe/.git targets.conf + cp ${microhs}/bin/mhs bin/mhs + ''; + + installPhase = '' + runHook preInstall + install -m755 -d $out/bin + install -m755 bin/cpphs $out/bin/cpphs + runHook postInstall + ''; + + doInstallCheck = false; + } +) diff --git a/pkgs/development/compilers/microhs/patches/hugs-viewpatterns.patch b/pkgs/development/compilers/microhs/patches/hugs-viewpatterns.patch new file mode 100644 index 000000000000..5fc8c08d2b72 --- /dev/null +++ b/pkgs/development/compilers/microhs/patches/hugs-viewpatterns.patch @@ -0,0 +1,406 @@ +If you need to update this patch, apply it to the old version, then use Git to +rebase it onto the new version. + +diff --git a/src/MicroHs/ExpPrint.hs b/src/MicroHs/ExpPrint.hs +index 59afc0d0..bada27d2 100644 +--- a/src/MicroHs/ExpPrint.hs ++++ b/src/MicroHs/ExpPrint.hs +@@ -30,7 +30,7 @@ removeUnused (ds, emain) = dfs roots M.empty + dMap = M.fromList ds + dfs :: [Ident] -> M.Map Exp -> [LDef] + dfs [] done = M.toList done +- dfs (i:is) done | Just _ <- M.lookup i done = dfs is done ++ dfs (i:is) done | isJust (M.lookup i done) = dfs is done + | otherwise = dfs (freeVars e ++ is) (M.insert i e done) + where e = fromMaybe (error $ "removeUnused: undef " ++ show i) $ M.lookup i dMap + +@@ -81,7 +81,7 @@ toStringCMdl :: CMdl -> String + toStringCMdl (ds, emain) = + let + def :: (Ident, Exp) -> (String -> String) -> (String -> String) +- def (i, e) r | Just (e', _) <- getForExp e = def (i, e') r ++ def (i, e) r | isJust (getForExp e) = let Just (e', _) = getForExp e in def (i, e') r + def (i, e) r = + ("A " ++) . toStringP e . ((":" ++ showIdent i ++ " @\n") ++) . r . ("@" ++) + +diff --git a/src/MicroHs/Expr.hs b/src/MicroHs/Expr.hs +index bd05f1bc..14225927 100644 +--- a/src/MicroHs/Expr.hs ++++ b/src/MicroHs/Expr.hs +@@ -514,7 +514,7 @@ getTupleConstr i = + getExprTuple :: EType -> Maybe [EType] + getExprTuple = loop [] + where loop ts (EApp f a) = loop (a:ts) f +- loop ts (EVar i) | Just n <- getTupleConstr i, length ts == n = Just ts ++ loop ts (EVar i) | isJust (getTupleConstr i) && length ts == fromJust (getTupleConstr i) = Just ts + loop _ _ = Nothing + + -- Create a tuple selector, component i (0 based) of n +@@ -1015,13 +1015,13 @@ ppExprR raw = ppE + ppApp :: [Expr] -> Expr -> Doc + ppApp as (EApp f a) = ppApp (a:as) f + ppApp as f | raw = ppApply f as +- ppApp as (EVar i) | isOperChar cop, [a, b] <- as = parens $ ppE a <+> text op <+> ppExpr b +- | isOperChar cop, [a] <- as = parens $ ppE a <+> text op +- | cop == ',' && length op + 1 == length as +- = ppE (ETuple as) +- | op == "[]", length as == 1 = ppE (EListish (LList as)) +- where op = unIdent (unQualIdent i) +- cop = head op ++ ppApp as (EVar i) = case as of ++ [a, b] | isOperChar cop -> parens $ ppE a <+> text op <+> ppExpr b ++ [a] | isOperChar cop -> parens $ ppE a <+> text op ++ _ | cop == ',' && length op + 1 == length as -> ppE (ETuple as) ++ | op == "[]" && length as == 1 -> ppE (EListish (LList as)) ++ where op = unIdent (unQualIdent i) ++ cop = head op + ppApp as f = ppApply f as + ppApply f as = parens $ hsep (map ppE (f:as)) + +@@ -1212,5 +1212,5 @@ getImplies _ = Nothing + + dropForallContext :: EType -> EType + dropForallContext (EForall _ _ t) = dropForallContext t +-dropForallContext t | Just (_, t') <- getImplies t = dropForallContext t' ++dropForallContext t | isJust (getImplies t) = let Just (_, t') = getImplies t in dropForallContext t' + | otherwise = t +diff --git a/src/MicroHs/FFI.hs b/src/MicroHs/FFI.hs +index 4e79ab18..292a28fb 100644 +--- a/src/MicroHs/FFI.hs ++++ b/src/MicroHs/FFI.hs +@@ -1,6 +1,7 @@ + module MicroHs.FFI(makeFFI) where + import qualified Prelude(); import MHSPrelude + import Data.List ++import Data.Maybe(fromJust, isJust) + import MicroHs.Desugar(LDef) + import MicroHs.Exp + import MicroHs.Expr +@@ -175,7 +176,8 @@ arity = length . fst . getArrows + cTypeHsName :: HasCallStack => EType -> String + cTypeHsName (EApp (EVar ptr) _t) | ptr == identPtr = "Ptr" + | ptr == identFunPtr = "FunPtr" +-cTypeHsName (EVar i) | Just c <- lookup (unIdent i) cHsTypes = c ++cTypeHsName (EVar i) | isJust mc = fromJust mc ++ where mc = lookup (unIdent i) cHsTypes + cTypeHsName t = errorMessage (getSLoc t) $ "Not a valid C type: " ++ showEType t + + cHsTypes :: [(String, String)] +@@ -193,7 +195,8 @@ cHsTypes = + -- Use to construct 'foreign export ccall' signature. + cTypeName :: EType -> String + cTypeName (EApp (EVar ptr) _t) | ptr == identPtr = "void*" +-cTypeName (EVar i) | Just c <- lookup (unIdent i) cTypes = c ++cTypeName (EVar i) | isJust mc = fromJust mc ++ where mc = lookup (unIdent i) cTypes + cTypeName t = errorMessage (getSLoc t) $ "Not a valid C type: " ++ showEType t + + cTypes :: [(String, String)] +@@ -211,7 +214,8 @@ cTypes = + -- Use to construct 'foreign import javascript' return value wrapper. + jsTypeNameR :: EType -> String + jsTypeNameR (EApp (EVar ptr) _) | ptr == identPtr = "PTR" +-jsTypeNameR (EVar i) | Just c <- lookup (unIdent i) jsTypesR = c ++jsTypeNameR (EVar i) | isJust mc = fromJust mc ++ where mc = lookup (unIdent i) jsTypesR + jsTypeNameR t = errorMessage (getSLoc t) $ "Not a valid Javascript return type: " ++ showEType t + + jsTypesR :: [(String, String)] +@@ -224,7 +228,8 @@ jsTypesR = + -- Use to construct 'foreign import javascript' argument wrapper. + jsTypeName :: EType -> String + jsTypeName (EApp (EVar ptr) _) | ptr == identPtr = "Ptr" +-jsTypeName (EVar i) | Just c <- lookup (unIdent i) jsTypes = c ++jsTypeName (EVar i) | isJust mc = fromJust mc ++ where mc = lookup (unIdent i) jsTypes + jsTypeName t = errorMessage (getSLoc t) $ "Not a valid Javascript argument type: " ++ showEType t + + jsTypes :: [(String, String)] +diff --git a/src/MicroHs/Lex.hs b/src/MicroHs/Lex.hs +index 12e0213f..ebe591df 100644 +--- a/src/MicroHs/Lex.hs ++++ b/src/MicroHs/Lex.hs +@@ -8,7 +8,7 @@ module MicroHs.Lex( + import qualified Prelude(); import MHSPrelude hiding(lex) + import Data.Char + import Data.List +-import Data.Maybe (fromJust) ++import Data.Maybe (fromJust, isJust) + import MicroHs.Ident + import Text.ParserComb(TokenMachine(..)) + +@@ -101,14 +101,14 @@ lex loc ('(':dcs@(d:cs)) | d == '#' = TSpec loc 'L' : lex (addCol loc 2) cs + | otherwise = TSpec loc '(' : lex (addCol loc 1) dcs + lex loc ('#':')':cs) = TSpec loc 'R' : lex (addCol loc 2) cs + -- Recognize #line 123 "file/name.hs" +-lex loc ('#':xcs) | (SLoc _ _ 1) <- loc, Just cs <- stripPrefix "line " xcs = ++lex (SLoc _ _ 1) ('#':'l':'i':'n':'e':' ':cs) = + case span (/= '\n') cs of + (line, rs) -> -- rs will contain the '\n', so subtract 1 below + let ws = words line + file = tail $ init $ ws!!1 -- strip the initial and final '"' + loc' = SLoc file (readInt (ws!!0) - 1) 1 + in lex loc' rs +- | (SLoc _ 1 1) <- loc, take 1 xcs == "!" = ++lex loc@(SLoc _ 1 1) ('#':xcs@('!':cs)) = + -- It's a shebang (#!), ignore the rest of the line + skipLine loc xcs + lex loc ('!':' ':cs) = -- ! followed by a space is always an operator +@@ -231,7 +231,7 @@ tIndent ts = TIndent (tokensLoc ts) : ts + + lexLitStr :: SLoc -> SLoc -> (String -> Token) -> (String -> Maybe Int) -> (String -> String) -> String -> [Token] + lexLitStr oloc loc mk end post acs = loop loc [] acs +- where loop l rs cs | Just k <- end cs = mk (decodeEscs $ post $ reverse rs) : lex (addCol l k) (drop k cs) ++ where loop l rs cs | isJust (end cs) = let Just k = end cs in mk (decodeEscs $ post $ reverse rs) : lex (addCol l k) (drop k cs) + loop l rs ('\\':c:cs) | isSpace c = remGap l rs cs + loop l rs ('\\':'^':'\\':cs) = loop (addCol l 3) ('\\':'^':'\\':rs) cs -- special hack for unescaped \ + loop l rs ('\\':cs) = loop' (addCol l 1) ('\\':rs) cs +@@ -270,8 +270,10 @@ decodeEsc ('x':cs) = conv 16 0 cs + decodeEsc ('o':cs) = conv 8 0 cs + decodeEsc ('^':c:cs) | '@' <= c && c <= '_' = chr (ord c - ord '@') : decodeEscs cs + decodeEsc cs@(c:_) | isDigit c = conv 10 0 cs +-decodeEsc (c1:c2:c3:cs) | Just c <- lookup [c1,c2,c3] ctlCodes = c : decodeEscs cs +-decodeEsc (c1:c2:cs) | Just c <- lookup [c1,c2] ctlCodes = c : decodeEscs cs ++decodeEsc (c1:c2:c3:cs) | isJust mc = let Just c = mc in c : decodeEscs cs ++ where mc = lookup [c1,c2,c3] ctlCodes ++decodeEsc (c1:c2:cs) | isJust mc = let Just c = mc in c : decodeEscs cs ++ where mc = lookup [c1,c2] ctlCodes + decodeEsc (c :cs) = c : decodeEscs cs + decodeEsc [] = mhsError "Bad \\ escape" + +@@ -417,7 +419,7 @@ pragma loc cs = + in case words cs of + p : _ | map toUpper p == "SOURCE" -> TPragma loc p : skip + -- hsc2hs generates LINE pragmas +- p : ln@(_:_) : fn : _ | map toUpper p == "LINE", all isDigit ln -> ++ p : ln@(_:_) : fn : _ | map toUpper p == "LINE" && all isDigit ln -> + let f = tail (init fn) + l = readInt ln - 1 + in seq l $ skipNest (SLoc f l 1) 1 ('#':cs) +diff --git a/src/MicroHs/Main.hs b/src/MicroHs/Main.hs +index 913c197b..7f17e313 100644 +--- a/src/MicroHs/Main.hs ++++ b/src/MicroHs/Main.hs +@@ -141,16 +141,16 @@ decodeArgs f mdls (arg:args) = + "-z" -> decodeArgs f{compress = True} mdls args + "-b64" -> decodeArgs f{base64 = True} mdls args + "-Q" -> decodeArgs f{installPkg = True} mdls args +- "-o" | s : args' <- args +- -> decodeArgs f{output = s} mdls args' +- "-optc" | s : args' <- args +- -> decodeArgs f{cArgs = cArgs f ++ [s]} mdls args' +- "-optl" | s : args' <- args +- -> decodeArgs f{lArgs = lArgs f ++ [s]} mdls args' +- "-optF" | s : args' <- args +- -> decodeArgs f{fArgs = fArgs f ++ [s]} mdls args' +- "-pgmF" | s : args' <- args +- -> decodeArgs f{fPgm = Just s} mdls args' ++ "-o" | not (null args) ++ -> let s : args' = args in decodeArgs f{output = s} mdls args' ++ "-optc" | not (null args) ++ -> let s : args' = args in decodeArgs f{cArgs = cArgs f ++ [s]} mdls args' ++ "-optl" | not (null args) ++ -> let s : args' = args in decodeArgs f{lArgs = lArgs f ++ [s]} mdls args' ++ "-optF" | not (null args) ++ -> let s : args' = args in decodeArgs f{fArgs = fArgs f ++ [s]} mdls args' ++ "-pgmF" | not (null args) ++ -> let s : args' = args in decodeArgs f{fPgm = Just s} mdls args' + "-F" -> decodeArgs f{doF = True} mdls args + '-':'i':[] -> decodeArgs f{paths = []} mdls args + '-':'i':s -> decodeArgs f{paths = paths f ++ [s]} mdls args +@@ -163,7 +163,7 @@ decodeArgs f mdls (arg:args) = + '-':'a':s -> decodeArgs f{pkgPath = pkgPath f ++ [s]} mdls args + '-':'L':s -> decodeArgs f{listPkg = Just s} mdls args + '-':'p':s -> decodeArgs f{preload = preload f ++ [s]} mdls args +- '-':'d':'d':'u':'m':'p':'-':r | Just d <- lookup r dumpFlagTable -> ++ '-':'d':'d':'u':'m':'p':'-':r | isJust (lookup r dumpFlagTable) -> let Just d = lookup r dumpFlagTable in + decodeArgs f{dumpFlags = d : dumpFlags f} mdls args + "--stdin" -> decodeArgs f{useStdin = True} mdls args + '-':_ -> mhsError $ "Unknown flag: " ++ arg ++ "\n" ++ usage +diff --git a/src/MicroHs/TypeCheck.hs b/src/MicroHs/TypeCheck.hs +index db7f3527..b006e8f9 100644 +--- a/src/MicroHs/TypeCheck.hs ++++ b/src/MicroHs/TypeCheck.hs +@@ -824,7 +824,7 @@ tInst :: HasCallStack => Expr -> EType -> T (Expr, EType) + tInst ae (EForall _ vks t) = do + t' <- tInstForall vks t + tInst ae t' +-tInst ae at | Just (ctx, t) <- getImplies at = do ++tInst ae at | isJust (getImplies at) = let Just (ctx, t) = getImplies at in do + --tcTrace $ "tInst: addConstraint: " ++ show ae ++ ", " ++ show d ++ " :: " ++ show ctx + {- + if eqExpr ae eCannotHappen then +@@ -1326,7 +1326,7 @@ expandClass d = return [d] + -- Ignoring initial quantifiers and context, how many arrows does the type have? + countArrows :: EType -> Int + countArrows (EForall _ _ t) = countArrows t +-countArrows t | Just (_, t') <- getImplies t = countArrows t' ++countArrows t | isJust (getImplies t) = let Just (_, t') = getImplies t in countArrows t' + | otherwise = length . fst . getArrows $ t + + simpleEqn :: Expr -> [Eqn] +@@ -1772,7 +1772,7 @@ tInferExpr = tInfer tcExpr + + tCheckExpr :: HasCallStack => + EType -> Expr -> T Expr +-tCheckExpr t e | Just (ctx, t') <- getImplies t = do ++tCheckExpr t e | isJust (getImplies t) = let Just (ctx, t') = getImplies t in do + -- tcTrace $ "tCheckExpr: " ++ show (e, ctx, t') + xt <- expandSyn t + unless (eqEType t xt) undefined +@@ -2125,7 +2125,7 @@ needDsCase ex lbls ae = + vt <- gets valueTable + case stLookupGlbUnqMany lbl vt of + -- check the return type of an unambiguous label +- Just [Entry _ t] | (t':_, _) <- getArrows (dropForallContext t) -> needT t' ++ Just [Entry _ t] | not $ null $ fst $ getArrows (dropForallContext t) -> needT $ head $ fst $ getArrows $ dropForallContext t + _ -> return Nothing + + -- Do a record update using case. +@@ -2184,8 +2184,8 @@ tcExprAp mt ae args = do + EUVar r -> fmap (fromMaybe t) (getUVar r) + _ -> return t + -- tcTrace $ "exExprAp: EVar " ++ showIdent i ++ " :: " ++ showExpr t ++ " = " ++ showExpr t' ++ " mt=" ++ show mt +- case fn of +- EVar ii | ii == mkIdent "Data.Function.$", f:as <- args -> tcExprAp mt f as ++ case (fn, args) of ++ (EVar ii, f:as) | ii == mkIdent "Data.Function.$" -> tcExprAp mt f as + _ -> tcExprApFn mt fn t' args + EQVar f t -> -- already resolved + tcExprApFn mt f t args +@@ -2216,17 +2216,17 @@ tcExprApFn mt fn atfn aargs = do + let -- loop _ats aas ft | trace ("loop: " ++ show (aas, ft)) False = undefined + loop ats [] ft = final (reverse ats) ft + loop ats aas@(a:as) aft = do +- case nextArg aft of +- AReqd (IdKind i k) ft -> useType i k a ft +- AForall _ (IdKind i k:iks) ft | ETypeArg t <- a -> do ++ case (nextArg aft, a) of ++ (AReqd (IdKind i k) ft, _) -> useType i k a ft ++ (AForall _ (IdKind i k:iks) ft, ETypeArg t) -> do + -- traceM ("AForall " ++ show (i, t)) + useType i k t (EForall QExpl iks ft) +- AForall _ iks ft -> do ++ (AForall _ iks ft, _) -> do + ft' <- tInstForall iks ft + loop ats aas ft' +- AConstaint ctx ft -> ++ (AConstaint ctx ft, _) -> + loop (ArgCtx ctx : ats) aas ft +- ARet aft' -> do ++ (ARet aft', _) -> do + (at, rt) <- unArrow loc aft' + --traceM ("ARet " ++ show (at, rt)) + loop (ArgExpr a at : ats) as rt +@@ -2543,7 +2543,7 @@ nextArg :: EType -> Arg + nextArg (EForall _ [] t) = nextArg t + nextArg (EForall QReqd (ik:iks) t) = AReqd ik (EForall QReqd iks t) + nextArg (EForall q iks t) = AForall q iks t +-nextArg t | Just (ctx, t') <- getImplies t = AConstaint ctx t' ++nextArg t | isJust (getImplies t) = let Just (ctx, t') = getImplies t in AConstaint ctx t' + | otherwise = ARet t + + tcExprLam :: HasCallStack => Expected -> SLoc -> [Eqn] -> T Expr +@@ -2559,7 +2559,7 @@ tcEqns' top at eqns = + case at of + EForall QExpl iks t -> withExtTyps iks $ tcEqns' top t eqns + EForall QImpl _ t -> tcEqns' top t eqns +- _ | Just (ctx, t') <- getImplies at -> do ++ _ | isJust (getImplies at) -> let Just (ctx, t') = getImplies at in do + let loc = getSLoc eqns + d <- newADictIdent loc + f <- newIdent loc "fcnD" +@@ -3109,7 +3109,7 @@ skolemise (EForall _ tvs ty) = do -- Rule PRPOLY + (sks1, ty') <- shallowSkolemise tvs ty + (sks2, ty'') <- skolemise ty' + return (sks1 ++ sks2, ty'') +-skolemise t@(EApp _ _) | Just (arg_ty, res_ty) <- getArrow t = do ++skolemise t@(EApp _ _) | isJust (getArrow t) = let Just (arg_ty, res_ty) = getArrow t in do + (sks, res_ty') <- skolemise res_ty + return (sks, arg_ty `tArrow` res_ty') + skolemise (EApp f a) = do +@@ -3178,13 +3178,13 @@ subsCheckRho loc exp1 (EForall _ vs1 t1) (EForall _ vs2 t2) | length vs1 == leng + subsCheckRho loc exp1 sigma1@EForall{} rho2 = do -- Rule SPEC + (exp1', rho1) <- tInst exp1 sigma1 + subsCheckRho loc exp1' rho1 rho2 +-subsCheckRho loc exp1 arho1 rho2 | Just _ <- getImplies arho1 = do ++subsCheckRho loc exp1 arho1 rho2 | isJust (getImplies arho1) = do + (exp1', rho1) <- tInst exp1 arho1 + subsCheckRho loc exp1' rho1 rho2 +-subsCheckRho loc exp1 rho1 rho2 | Just (a2, r2) <- getArrow rho2 = do -- Rule FUN ++subsCheckRho loc exp1 rho1 rho2 | isJust (getArrow rho2) = let Just (a2, r2) = getArrow rho2 in do -- Rule FUN + (a1, r1) <- unArrow loc rho1 + subsCheckFun loc exp1 a1 r1 a2 r2 +-subsCheckRho loc exp1 rho1 rho2 | Just (a1, r1) <- getArrow rho1 = do -- Rule FUN ++subsCheckRho loc exp1 rho1 rho2 | isJust (getArrow rho1) = let Just (a1, r1) = getArrow rho1 in do -- Rule FUN + (a2,r2) <- unArrow loc rho2 + subsCheckFun loc exp1 a1 r1 a2 r2 + subsCheckRho loc exp1 tau1 tau2 = do -- Rule MONO +@@ -3366,10 +3366,12 @@ canonPatSynType at = do + pure $ mkTyp [] emptyCtx [] emptyCtx ty + + splitPatSynType :: EType -> ([IdKind], EConstraint, [IdKind], EConstraint, EType) +-splitPatSynType (EForall _ vks1 t0) +- | Just (ctx1, EForall _ vks2 t1) <- getImplies t0 +- , Just (ctx2, ty) <- getImplies t1 +- = (vks1, ctx1, vks2, ctx2, ty) ++splitPatSynType (EForall _ vks1 t0) | isJust x = fromJust x ++ where ++ x = do ++ (ctx1, EForall _ vks2 t1) <- getImplies t0 ++ (ctx2, ty) <- getImplies t1 ++ Just (vks1, ctx1, vks2, ctx2, ty) + splitPatSynType t = impossibleShow t + + ----- +@@ -3465,7 +3467,7 @@ defaultOneTyVar tv = do + -- traceM $ "defaultOneTyVar: cvs = " ++ show cvs + dvs <- getSuperClasses cvs -- add superclasses + -- traceM $ "defaultOneTyVar: dvs = " ++ show dvs +- let oneCls c | Just ts <- M.lookup c (defaults old) = ++ let oneCls c | isJust (M.lookup c $ defaults old) = let Just ts = M.lookup c (defaults old) in + take 1 $ filter (\ t -> all (\ cc -> soluble cc t) cvs) ts + | otherwise = [] + soluble c t = fst $ flip tcRun old $ do +@@ -3571,7 +3573,7 @@ solvers = + -- Examine each goal, either solve it (possibly producing new goals) or let it remain unsolved. + solveMany :: [Goal] -> [UGoal] -> [(EType, Soln)] -> [Improve] -> T ([UGoal], [Soln], [Improve]) + solveMany [] uns sol imp = return (uns, map snd sol, imp) +-solveMany ((di, ct) : cnss) uns sol imp | Just (_, (dd, _)) <- find (eqEType ct . fst) sol = ++solveMany ((di, ct) : cnss) uns sol imp | isJust (find (eqEType ct . fst) sol) = let Just (_, (dd, _)) = find (eqEType ct . fst) sol in + solveMany cnss uns ((ct, (di, EVar dd)) : sol) imp + -- Need to handle ct of the form C => T, and forall a . T + solveMany (cns@(di, ct) : cnss) uns sol imp = do +@@ -3889,7 +3891,7 @@ solveEq eqs t1 t2 | normTypeEq eqs t1 `eqEType` normTypeEq eqs t2 = Just [] + -- XXX This guaranteed by how it's called, but I'm not sure it always works properly. + addTypeEq :: EType -> EType -> TypeEqTable -> TypeEqTable + addTypeEq t1 t2 aeqs = +- let deref (EVar i) | Just t <- lookup i aeqs = t ++ let deref (EVar i) | isJust (lookup i aeqs) = fromJust $ lookup i aeqs + deref (ESign t _) = t + deref t = t + t1' = deref t1 +@@ -3990,7 +3992,7 @@ standaloneDeriving str narg act = do + -- traceM ("standaloneDeriving 1 " ++ show (_vks, _ctx, cc)) + (cls, ts, tname) <- + case getAppM cc of +- Just (c, ts@(_:_)) | Just (n, _) <- getAppM (last ts) -> return (c, init ts, n) ++ Just (c, ts@(_:_)) | isJust (getAppM $ last ts) -> let Just (n, _) = getAppM (last ts) in return (c, init ts, n) + _ -> tcError (getSLoc act) "malformed standalone deriving" + -- traceM ("standaloneDeriving 2 " ++ show (act, cls, tname)) + dtable <- gets dataTable +diff --git a/src/Text/ParserComb.hs b/src/Text/ParserComb.hs +index 6efd5a3f..8ab72759 100644 +--- a/src/Text/ParserComb.hs ++++ b/src/Text/ParserComb.hs +@@ -127,7 +127,9 @@ satisfy msg f = P $ \ acs -> + satisfyM :: forall tm t a . TokenMachine tm t => String -> (t -> Maybe a) -> Prsr tm t a + satisfyM msg f = P $ \ acs -> + case tmNextToken acs of +- (c, cs) | Just a <- f c -> Success a cs noFail ++ (c, cs) -> case f c of ++ Just a -> Success a cs noFail ++ _ -> Failure (LastFail (tmLeft acs) (firstToken acs) [msg]) + _ -> Failure (LastFail (tmLeft acs) (firstToken acs) [msg]) + + infixl 9 diff --git a/pkgs/development/compilers/microhs/patches/hugs.patch b/pkgs/development/compilers/microhs/patches/hugs.patch new file mode 100644 index 000000000000..2948380da664 --- /dev/null +++ b/pkgs/development/compilers/microhs/patches/hugs.patch @@ -0,0 +1,365 @@ +This patch is based on https://github.com/augustss/MicroHs/pull/429 +If you need to update it, rebase the above PR onto the new version's tag. + +diff --git a/hugs/Data/Semigroup.hs b/hugs/Data/Semigroup.hs +index b7360013..eab8c48d 100644 +--- a/hugs/Data/Semigroup.hs ++++ b/hugs/Data/Semigroup.hs +@@ -18,11 +18,11 @@ class Semigroup a where + | otherwise = f x0 y0 + where + f x y +- | even y == 0 = f (x <> x) (y `quot` 2) ++ | even y = f (x <> x) (y `quot` 2) + | y == 1 = x + | otherwise = g (x <> x) (y `quot` 2) x + g x y z +- | even y == 0 = g (x <> x) (y `quot` 2) z ++ | even y = g (x <> x) (y `quot` 2) z + | y == 1 = x <> z + | otherwise = g (x <> x) (y `quot` 2) (x <> z) + +diff --git a/hugs/Data/String.hs b/hugs/Data/String.hs +new file mode 100644 +index 00000000..1de782d3 +--- /dev/null ++++ b/hugs/Data/String.hs +@@ -0,0 +1,17 @@ ++module Data.String( ++ IsString(..), ++ String, ++ lines, unlines, ++ words, unwords, ++ ) where ++ ++import qualified Data.ByteString.Char8 as BS8 ++ ++class IsString a where ++ fromString :: String -> a ++ ++instance IsString [Char] where ++ fromString s = s ++ ++instance IsString BS8.ByteString where ++ fromString = BS8.pack +diff --git a/hugs/Data/Text.hs b/hugs/Data/Text.hs +index fbd1c731..75f8e829 100644 +--- a/hugs/Data/Text.hs ++++ b/hugs/Data/Text.hs +@@ -8,6 +8,7 @@ module Data.Text( + null, + head, + tail, ++ cons, + uncons, + ) where + import Prelude hiding(head, tail, null) +@@ -64,6 +65,9 @@ head (T t) = Prelude.head t + tail :: Text -> Text + tail (T t) = T (Prelude.tail t) + ++cons :: Char -> Text -> Text ++cons c (T t) = T (c : t) ++ + uncons :: Text -> Maybe (Char, Text) + uncons t | null t = Nothing + | otherwise = Just (head t, tail t) +diff --git a/hugs/MHSPrelude.hs b/hugs/MHSPrelude.hs +index cb6b36f6..cb47e041 100644 +--- a/hugs/MHSPrelude.hs ++++ b/hugs/MHSPrelude.hs +@@ -4,10 +4,11 @@ module MHSPrelude( + module Prelude, + module MHSPrelude, + -- module Control.Monad.Fail, +- module Control.Arrow, ++ -- Exporting these with 'module Control.Arrow' does not work ++ first, second, + module Data.Monoid, + module Data.Semigroup, +- (<$>), Applicative(..), (*>), ++ (<$>), Applicative(..), (*>), (<*), (>=>), (<=<) + ) where + import Hugs.Prelude() + import Prelude hiding(fail) +@@ -16,6 +17,7 @@ import Control.Arrow(first, second) + import Control.Applicative + import Control.Exception(Exception, try) + --import Control.Monad.Fail ++import Data.Int + import Data.List + import Data.Maybe + import Data.Monoid +@@ -55,6 +57,12 @@ spanEnd p xs = (dropWhileEnd p xs, takeWhileEnd p xs) + breakEnd :: (a -> Bool) -> [a] -> ([a], [a]) + breakEnd p = spanEnd (not . p) + ++subsequences :: [a] -> [[a]] ++subsequences xs = [] : sub xs ++ where sub [] = [] ++ sub (x:xs) = [x] : foldr f [] (sub xs) ++ where f ys r = ys : (x : ys) : r ++ + ------- Version -------- + + makeVersion :: [Int] -> Version +@@ -193,6 +201,7 @@ force :: (NFData a) => a -> a + force x = x `deepseq` x + + instance NFData Int ++instance NFData Int64 + instance NFData Word + instance NFData Float + instance NFData Double +@@ -229,3 +238,11 @@ instance NFData MD5CheckSum + + class HasCallStack + instance HasCallStack ++ ++(<=<) :: forall m a b c . Monad m => (b -> m c) -> (a -> m b) -> (a -> m c) ++f <=< g = \ a -> do ++ b <- g a ++ f b ++ ++(>=>) :: forall m a b c . Monad m => (a -> m b) -> (b -> m c) -> (a -> m c) ++(>=>) = flip (<=<) +diff --git a/src/MicroHs/Compile.hs b/src/MicroHs/Compile.hs +index ddec7993..643319aa 100644 +--- a/src/MicroHs/Compile.hs ++++ b/src/MicroHs/Compile.hs +@@ -123,12 +123,17 @@ compile flags nm ach = do + return ((tModuleName cm, concatMap tBindingsOf $ cachedModules ch), syms, ch) + + -- Compile a module for the interactive system +-compileInteractive :: Flags -> EModule -> CM (TModule [LDef], Symbols, TCState) +-compileInteractive flags mdl = do +- ((dmdl, syms, _, _, _), tcstate) <- compileModuleP flags ImpNormal mdl ++compileInteractive :: Flags -> EModule -> Maybe TCState -> CM (TModule [LDef], Symbols, TCState) ++compileInteractive flags mdl mtcstate = do ++ ((dmdl, syms, _, _, _), tcstate') <- compile ++ flags ImpNormal mdl + loadBoots flags + loadDependencies flags +- return (dmdl, syms, tcstate) ++ return (dmdl, syms, tcstate') ++ where ++ compile = case mtcstate of ++ Nothing -> compileModuleP ++ Just tcstate -> compileModuleP' (\flags _ impt aimps mdl -> typeCheck' flags impt (map filterImports aimps) mdl tcstate) + + -- Compile a module with the given name. + -- If the module has already been compiled, return the cached result. +@@ -233,7 +238,12 @@ compileModule flags impt mn pathfn file = do + return (cmdl, syms, tThis + tImp) + + compileModuleP :: Flags -> ImpType -> EModule -> CM ((TModule [LDef], Symbols, [(ImpType, IdentModule)], Time, Time), TCState) +-compileModuleP flags impt mdl@(EModule _ _ defs) = do ++compileModuleP = compileModuleP' typeCheck ++ ++compileModuleP' ++ :: (Flags -> GlobTables -> ImpType -> [(ImportSpec, TModule [LDef])] -> EModule -> (TModule [EDef], GlobTables, Symbols, TCState)) ++ -> Flags -> ImpType -> EModule -> CM ((TModule [LDef], Symbols, [(ImpType, IdentModule)], Time, Time), TCState) ++compileModuleP' tc flags impt mdl@(EModule _ _ defs) = do + -- liftIO $ putStrLn $ showEModule mdl + -- liftIO $ putStrLn $ showEDefs defs + let +@@ -244,7 +254,7 @@ compileModuleP flags impt mdl@(EModule _ _ defs) = do + t3 <- liftIO getTimeMilli + glob <- gets getCacheTables + let +- (tmdl, glob', syms, tcstate) = typeCheck flags glob impt (zip specs impMdls) mdl ++ (tmdl, glob', syms, tcstate) = tc flags glob impt (zip specs impMdls) mdl + modify $ setCacheTables glob' + dumpIf flags Dtypecheck $ + liftIO $ putStrLn $ "type checked:\n" ++ showTModule showEDefs tmdl ++ "-----\n" +@@ -258,9 +268,9 @@ compileModuleP flags impt mdl@(EModule _ _ defs) = do + return ((dmdl, syms, imported, tThis, tImp), tcstate) + + compileToCombinators :: TModule [LDef] -> TModule [LDef] +-compileToCombinators dmdl = do ++compileToCombinators dmdl = + let cmdl = setBindings dmdl [ (i, compileOpt e) | (i, e) <- tBindingsOf dmdl ] +- seq (rnf cmdl) cmdl -- This makes execution slower, but speeds up GC ++ in seq (rnf cmdl) cmdl -- This makes execution slower, but speeds up GC + + -- Add implicit imports: + -- import Prelude +diff --git a/src/MicroHs/Expr.hs b/src/MicroHs/Expr.hs +index 84578594..bd05f1bc 100644 +--- a/src/MicroHs/Expr.hs ++++ b/src/MicroHs/Expr.hs +@@ -57,11 +57,11 @@ module MicroHs.Expr( + dropForallContext, + ) where + import qualified Prelude(); import MHSPrelude hiding ((<>)) ++import Data.Int + import Data.List + import Data.Maybe + import MicroHs.Builtin + import MicroHs.Ident +-import {-# SOURCE #-} MicroHs.TCMonad(TCState) + import Text.PrettyPrint.HughesPJLite + + type IdentModule = Ident +@@ -96,8 +96,6 @@ data EDef + | Pattern LHS EPat (Maybe [Eqn]) + | StandDeriving DerStrategy Int EConstraint + | DfltSign Ident EType -- only in class declarations +- -- Only used by interactive system to load a cached TCState to avoid import processing +- | SetTCState TCState + --DEBUG deriving (Show) + + instance NFData EDef where +@@ -118,7 +116,6 @@ instance NFData EDef where + rnf (Pattern a b c) = rnf a `seq` rnf b `seq` rnf c + rnf (StandDeriving a b c) = rnf a `seq` rnf b `seq` rnf c + rnf (DfltSign a b) = rnf a `seq` rnf b +- rnf (SetTCState a) = seq a () + + data ImpType = ImpNormal | ImpBoot + deriving (Eq) +@@ -900,7 +897,6 @@ ppEDef def = + Pattern lhs@(i,_) p meqns -> text "pattern" <+> ppLHS lhs <+> text "=" <+> ppExpr p <+> maybe empty (ppWhere (text ";") . (:[]) . Fcn i) meqns + StandDeriving _s _narg ct -> text "deriving instance" <+> ppEType ct + DfltSign i t -> text "default" <+> ppIdent i <+> text "::" <+> ppEType t +- SetTCState _ -> text "SetTCState ..." + + ppDerivings :: [Deriving] -> Doc + ppDerivings = sep . map ppDeriving +diff --git a/src/MicroHs/Interactive.hs b/src/MicroHs/Interactive.hs +index ebb33b43..7b70064a 100644 +--- a/src/MicroHs/Interactive.hs ++++ b/src/MicroHs/Interactive.hs +@@ -295,11 +295,11 @@ compile file = do + let mdl@(EModule mn es _) = parseDie pTopModule "" file + defs <- updateTCStateCache mdl + (_, tcstate, _) <- gets isCComp +- let mdl' = EModule mn es (SetTCState tcstate : defs) ++ let mdl' = EModule mn es defs + flgs <- gets isFlags + cash <- gets isCache + -- putStrLnI $ " tryCompile compile " ++ show mdl' +- ((dmdl, _, tcstate'), _) <- liftIO $ runStateIO (compileInteractive flgs mdl') cash ++ ((dmdl, _, tcstate'), _) <- liftIO $ runStateIO (compileInteractive flgs mdl' $ Just tcstate) cash + cmdl <- liftIO $ evaluate $ compileToCombinators dmdl + -- putStrLnI $ " tryCompile dmdl = " ++ (show $ tBindingsOf dmdl) + return (tBindingsOf cmdl, tcstate') +@@ -398,7 +398,7 @@ updateTCStateCache (EModule mn es ds) = do + cash <- gets isCache + -- putStrLnI "*** update tcstate" + let mdl' = addPreludeImport mdl +- ((_, syms, tcstate), ch) <- liftIO $ runStateIO (compileInteractive flgs mdl') cash ++ ((_, syms, tcstate), ch) <- liftIO $ runStateIO (compileInteractive flgs mdl' Nothing) cash + let idmap = translateMap $ concatMap tBindingsOf $ cachedModules ch + -- putStrLnI $ "*** update isFast " ++ show nImps + modify $ \ is -> is{ isCComp = (nImps, tcstate, idmap), isCache = ch, isSymbols = syms } +diff --git a/src/MicroHs/Parse.hs b/src/MicroHs/Parse.hs +index 821718a7..6a68a01a 100644 +--- a/src/MicroHs/Parse.hs ++++ b/src/MicroHs/Parse.hs +@@ -791,7 +791,7 @@ pDo = do + case last ss of + SThen e -> + pure $ EDo q [SRec (init ss), SThen e] +- _ -> fail "mdo" ++ _ -> Control.Monad.Fail.fail "mdo" + else + pure (EDo q ss) + +diff --git a/src/MicroHs/TCMonad.hs-boot b/src/MicroHs/TCMonad.hs-boot +deleted file mode 100644 +index f88ad533..00000000 +--- a/src/MicroHs/TCMonad.hs-boot ++++ /dev/null +@@ -1,2 +0,0 @@ +-module MicroHs.TCMonad where +-data TCState +diff --git a/src/MicroHs/TypeCheck.hs b/src/MicroHs/TypeCheck.hs +index 47f2b461..db7f3527 100644 +--- a/src/MicroHs/TypeCheck.hs ++++ b/src/MicroHs/TypeCheck.hs +@@ -2,7 +2,7 @@ + -- See LICENSE file for full license. + {-# OPTIONS_GHC -Wno-incomplete-uni-patterns -Wno-unused-imports -Wno-unused-do-bind #-} + module MicroHs.TypeCheck( +- typeCheck, ++ typeCheck, typeCheck', filterImports, + TModule(..), showTModule, + GlobTables, emptyGlobTables, mergeGlobTables, + impossible, impossibleShow, +@@ -102,35 +102,34 @@ type Sigma = EType + type Rho = EType + + typeCheck :: Flags -> GlobTables -> ImpType -> [(ImportSpec, TModule a)] -> EModule -> (TModule [EDef], GlobTables, Symbols, TCState) +-typeCheck flags globs impt aimps (EModule mn exps defs) = ++typeCheck flags globs impt aimps mdl@(EModule mn exps defs) = + -- trace (unlines $ map (showTModuleExps . snd) aimps) $ +- let +- imps = map filterImports aimps +- tc = +- case defs of +- SetTCState tcs : _ -> tcs -- hack to set the saved TCState +- _ -> mkTCState mn globs imps +- in case tcRun (tcDefs flags impt defs) tc of +- (tds, tcs) -> +- let +- thisMdl = (mn, mkTModule tds tcs) +- impMdls = [(fromMaybe m mm, tm) | (ImportSpec _ _ m mm _, tm) <- imps] +- allMdls = thisMdl : impMdls +- (texps, vexps) = +- unzip $ map (getTVExps impMap (typeTable tcs) (valueTable tcs) (assocTable tcs)) exps +- where impMap = M.fromListWith (++) [(i, [m]) | (i, m) <- allMdls] +- fexps = map (tFixDefs . snd) allMdls +- sexps = synTable tcs +- dexps = dataTable tcs +- iexps = instTable tcs +- ctbl = classTable tcs +- dflts = M.fromList $ filter ((`elem` ds) . fst) $ M.toList $ defaults tcs +- where ds = [ tyQIdent $ expLookup ti (typeTable tcs) | ExpDefault ti <- exps ] +- in ( tModule mn (nubBy ((==) `on` fst) (concat fexps)) (concat texps) (concat vexps) dflts tds +- , GlobTables { gSynTable = sexps, gDataTable = dexps, gClassTable = ctbl, gInstInfo = iexps } +- , (typeTable tcs, valueTable tcs) +- , tcs +- ) ++ let imps = map filterImports aimps ++ in typeCheck' flags impt imps mdl $ mkTCState mn globs imps ++ ++typeCheck' :: Flags -> ImpType -> [(ImportSpec, TModule a)] -> EModule -> TCState -> (TModule [EDef], GlobTables, Symbols, TCState) ++typeCheck' flags impt imps (EModule mn exps defs) tc = ++ case tcRun (tcDefs flags impt defs) tc of ++ (tds, tcs) -> ++ let ++ thisMdl = (mn, mkTModule tds tcs) ++ impMdls = [(fromMaybe m mm, tm) | (ImportSpec _ _ m mm _, tm) <- imps] ++ allMdls = thisMdl : impMdls ++ (texps, vexps) = ++ unzip $ map (getTVExps impMap (typeTable tcs) (valueTable tcs) (assocTable tcs)) exps ++ where impMap = M.fromListWith (++) [(i, [m]) | (i, m) <- allMdls] ++ fexps = map (tFixDefs . snd) allMdls ++ sexps = synTable tcs ++ dexps = dataTable tcs ++ iexps = instTable tcs ++ ctbl = classTable tcs ++ dflts = M.fromList $ filter ((`elem` ds) . fst) $ M.toList $ defaults tcs ++ where ds = [ tyQIdent $ expLookup ti (typeTable tcs) | ExpDefault ti <- exps ] ++ in ( tModule mn (nubBy ((==) `on` fst) (concat fexps)) (concat texps) (concat vexps) dflts tds ++ , GlobTables { gSynTable = sexps, gDataTable = dexps, gClassTable = ctbl, gInstInfo = iexps } ++ , (typeTable tcs, valueTable tcs) ++ , tcs ++ ) + + -- A hack to force evaluation of errors. + -- This should be redone to all happen in the T monad. +diff --git a/src/Text/ParserComb.hs b/src/Text/ParserComb.hs +index 5b0e8753..6efd5a3f 100644 +--- a/src/Text/ParserComb.hs ++++ b/src/Text/ParserComb.hs +@@ -115,7 +115,7 @@ instance TokenMachine tm t => Alternative (Prsr tm t) where + r -> r + + instance TokenMachine tm t => MonadPlus (Prsr tm t) where +- mzero = fail "mzero" ++ mzero = F.fail "mzero" + mplus = (<|>) + + satisfy :: forall tm t . TokenMachine tm t => String -> (t -> Bool) -> Prsr tm t t diff --git a/pkgs/development/compilers/microhs/patches/link-math.patch b/pkgs/development/compilers/microhs/patches/link-math.patch new file mode 100644 index 000000000000..a9df7bf53cbe --- /dev/null +++ b/pkgs/development/compilers/microhs/patches/link-math.patch @@ -0,0 +1,21 @@ +commit beaea6f66e4f53d617418a4c155b9a14e2c9327e +Author: Alex Tunstall +Date: Fri Mar 20 06:52:08 2026 +0000 + + Add -lm to default link flags + + MicroHs should always link with -lm because its RTS requires it. + +diff --git a/src/MicroHs/Flags.hs b/src/MicroHs/Flags.hs +index e20797c6..df89730e 100644 +--- a/src/MicroHs/Flags.hs ++++ b/src/MicroHs/Flags.hs +@@ -54,7 +54,7 @@ defaultFlags dir = Flags { + doCPP = False, + cppArgs = [], + cArgs = [], +- lArgs = [], ++ lArgs = ["-lm"], + compress = False, + base64 = False, + buildPkg = Nothing, diff --git a/pkgs/development/compilers/microhs/patches/simple-unicode.patch b/pkgs/development/compilers/microhs/patches/simple-unicode.patch new file mode 100644 index 000000000000..ac32c35d9952 --- /dev/null +++ b/pkgs/development/compilers/microhs/patches/simple-unicode.patch @@ -0,0 +1,35 @@ +commit bf89dce66a0833c1ace0a253ef597531435a6798 +Author: Alex Tunstall +Date: Tue Sep 23 04:48:17 2025 +0100 + + Disable Unicode support for Hugs bootstrap + +diff --git a/lib/Data/Char/Unicode.hs b/lib/Data/Char/Unicode.hs +index 4bb46cc2..7180e2d7 100644 +--- a/lib/Data/Char/Unicode.hs ++++ b/lib/Data/Char/Unicode.hs +@@ -207,23 +207,12 @@ decompressRLE = BS.pack . de 0 . BS.unpack + -- XXX Instead of having a totally decompressed (large!) bytestring, + -- we could build a search tree from the RLE encoding. + generalCategory :: Char -> GeneralCategory +-generalCategory c = +- let i = primOrd c +- in if i < 0 || i >= BS.length bytestringGCTable then +- NotAssigned +- else +- toEnum (fromEnum (BS.primBSindex bytestringGCTable i)) +- +-bytestringGCTable :: BS.ByteString +-bytestringGCTable = decompressRLE compressedGCTable ++generalCategory c = error "generalCategory: unsupported" + + -- These tables are generated by unicode/UniParse.hs + -- This is for Unicode 17.0.0 + unicodeVersion :: Version + unicodeVersion = makeVersion [17,0,0] +-compressedGCTable :: ByteString +-compressedGCTable = +- "\159\25\22\130\17\19\130\17\13\14\17\18\17\12\17\17\137\8\17\17\130\18\17\17\153\0\13\17\14\20\11\20\153\1\13\18\14\18\160\25\22\17\131\19\21\17\20\21\4\15\18\26\21\20\21\18\10\10\20\1\17\17\20\10\4\16\130\10\17\150\0\18\134\0\151\1\18\135\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\0\1\0\1\0\130\1\0\0\1\0\1\0\0\1\130\0\1\1\131\0\1\0\0\1\130\0\130\1\0\0\1\0\0\1\0\1\0\1\0\0\1\0\1\1\0\1\0\0\1\130\0\1\0\1\0\0\1\1\4\0\130\1\131\4\0\2\1\0\2\1\0\2\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\1\0\2\1\0\1\130\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\134\1\0\0\1\0\0\1\1\0\1\131\0\1\0\1\0\1\0\1\0\196\1\4\4\153\1\145\3\131\20\139\3\141\20\132\3\134\20\3\20\3\144\20\239\5\0\1\0\1\3\20\0\1\29\29\3\130\1\17\0\131\29\20\20\0\17\130\0\29\0\29\0\0\1\144\0\29\136\0\162\1\0\1\1\130\0\130\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\132\1\0\1\18\0\1\0\0\1\1\178\0\175\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\21\132\5\7\7\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\0\1\0\1\0\1\0\1\0\1\0\1\0\1\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\29\165\0\29\29\3\133\17\168\1\17\12\29\29\21\21\19\29\172\5\12\5\17\5\5\17\5\5\17\5\135\29\154\4\131\29\131\4\17\17\138\29\133\26\130\18\17\17\19\17\17\21\21\138\5\17\26\130\17\159\4\3\137\4\148\5\137\8\131\17\4\4\5\226\4\17\4\134\5\26\21\133\5\3\3\5\5\21\131\5\4\4\137\8\130\4\21\21\4\141\17\29\26\4\5\157\4\154\5\29\29\216\4\138\5\4\141\29\137\8\160\4\136\5\3\3\21\130\17\3\29\29\5\19\19\149\4\131\5\3\136\5\3\130\5\3\132\5\29\29\142\17\29\152\4\130\5\29\29\17\29\138\4\132\29\151\4\20\134\4\26\26\132\29\136\5\168\4\3\151\5\26\159\5\6\181\4\5\6\5\4\130\6\135\5\131\6\5\6\6\4\134\5\137\4\5\5\17\17\137\8\17\3\142\4\5\6\6\29\135\4\29\29\4\4\29\29\149\4\29\134\4\29\4\130\29\131\4\29\29\5\4\130\6\131\5\29\29\6\6\29\29\6\6\5\4\135\29\6\131\29\4\4\29\130\4\5\5\29\29\137\8\4\4\19\19\133\10\21\19\4\17\5\29\29\5\5\6\29\133\4\131\29\4\4\29\29\149\4\29\134\4\29\4\4\29\4\4\29\4\4\29\29\5\29\130\6\5\5\131\29\5\5\29\29\130\5\130\29\5\134\29\131\4\29\4\134\29\137\8\5\5\130\4\5\17\137\29\5\5\6\29\136\4\29\130\4\29\149\4\29\134\4\29\4\4\29\132\4\29\29\5\4\130\6\132\5\29\5\5\6\29\6\6\5\29\29\4\142\29\4\4\5\5\29\29\137\8\17\19\134\29\4\133\5\29\5\6\6\29\135\4\29\29\4\4\29\29\149\4\29\134\4\29\4\4\29\132\4\29\29\5\4\6\5\6\131\5\29\29\6\6\29\29\6\6\5\134\29\5\5\6\131\29\4\4\29\130\4\5\5\29\29\137\8\21\4\133\10\137\29\5\4\29\133\4\130\29\130\4\29\131\4\130\29\4\4\29\4\29\4\4\130\29\4\4\130\29\130\4\130\29\139\4\131\29\6\6\5\6\6\130\29\130\6\29\130\6\5\29\29\4\133\29\6\141\29\137\8\130\10\133\21\19\21\132\29\5\130\6\5\135\4\29\130\4\29\150\4\29\143\4\29\29\5\4\130\5\131\6\29\130\5\29\131\5\134\29\5\5\29\130\4\29\4\4\29\29\4\4\5\5\29\29\137\8\134\29\17\134\10\21\4\5\6\6\17\135\4\29\130\4\29\150\4\29\137\4\29\132\4\29\29\5\4\6\5\132\6\29\5\6\6\29\6\6\5\5\134\29\6\6\132\29\130\4\29\4\4\5\5\29\29\137\8\29\4\4\6\139\29\5\5\6\6\136\4\29\130\4\29\168\4\5\5\4\130\6\131\5\29\130\6\29\130\6\5\4\21\131\29\130\4\6\134\10\130\4\5\5\29\29\137\8\136\10\21\133\4\29\5\6\6\29\145\4\130\29\151\4\29\136\4\29\4\29\29\134\4\130\29\5\131\29\130\6\130\5\29\5\29\135\6\133\29\137\8\29\29\6\6\17\139\29\175\4\5\4\4\134\5\131\29\19\133\4\3\135\5\17\137\8\17\17\164\29\4\4\29\4\29\132\4\29\151\4\29\4\29\137\4\5\4\4\136\5\4\29\29\132\4\29\3\29\134\5\29\137\8\29\29\131\4\159\29\4\130\21\142\17\21\17\130\21\5\5\133\21\137\8\137\10\21\5\21\5\21\5\13\14\13\14\6\6\135\4\29\163\4\131\29\141\5\6\132\5\17\5\5\132\4\138\5\29\163\5\29\135\21\5\133\21\29\21\21\132\17\131\21\17\17\164\29\170\4\6\6\131\5\6\133\5\6\5\5\6\6\5\5\4\137\8\133\17\133\4\6\6\5\5\131\4\130\5\4\130\6\4\4\134\6\130\4\131\5\140\4\5\6\6\5\5\133\6\5\4\6\137\8\130\6\5\21\21\165\0\29\0\132\29\0\29\29\170\1\17\3\130\1\130\200\4\29\131\4\29\29\134\4\29\4\29\131\4\29\29\168\4\29\131\4\29\29\160\4\29\131\4\29\29\134\4\29\4\29\131\4\29\29\142\4\29\184\4\29\131\4\29\29\194\4\29\29\130\5\136\17\147\10\130\29\143\4\137\21\133\29\213\0\29\29\133\1\29\29\12\132\235\4\21\17\144\4\22\153\4\13\14\130\29\202\4\130\17\130\9\135\4\134\29\145\4\130\5\6\136\29\146\4\5\5\6\17\17\136\29\145\4\5\5\139\29\140\4\29\130\4\29\5\5\139\29\179\4\5\5\6\134\5\135\6\5\6\6\138\5\130\17\3\130\17\19\4\5\29\29\137\8\133\29\137\10\133\29\133\17\12\131\17\130\5\26\5\137\8\133\29\162\4\3\180\4\134\29\132\4\5\5\161\4\5\4\132\29\197\4\137\29\158\4\29\130\5\131\6\5\5\130\6\131\29\6\6\5\133\6\130\5\131\29\21\130\29\17\17\137\8\157\4\29\29\132\4\138\29\171\4\131\29\153\4\133\29\137\8\10\130\29\161\21\150\4\5\5\6\6\5\29\29\17\17\180\4\6\5\6\134\5\29\5\6\5\6\6\135\5\133\6\137\5\29\29\5\137\8\133\29\137\8\133\29\134\17\3\133\17\29\29\141\5\7\158\5\29\29\139\5\147\29\131\5\6\174\4\5\6\132\5\6\5\132\6\5\6\6\135\4\29\17\17\137\8\134\17\137\21\136\5\136\21\130\17\5\5\6\157\4\6\131\5\6\6\5\5\6\130\5\4\4\137\8\171\4\5\6\5\5\130\6\5\6\130\5\6\6\135\29\131\17\163\4\135\6\135\5\6\6\5\5\130\29\132\17\137\8\130\29\130\4\137\8\157\4\133\3\17\17\136\1\0\1\132\29\170\0\29\29\130\0\135\17\135\29\130\5\17\140\5\6\134\5\131\4\5\133\4\5\4\4\6\5\5\4\132\29\171\1\190\3\140\1\3\161\1\164\3\191\5\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\136\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\136\1\135\0\133\1\29\29\133\0\29\29\135\1\135\0\135\1\135\0\133\1\29\29\133\0\29\29\135\1\29\0\29\0\29\0\29\0\135\1\135\0\141\1\29\29\135\1\135\2\135\1\135\2\135\1\135\2\132\1\29\1\1\131\0\2\20\1\130\20\130\1\29\1\1\131\0\2\130\20\131\1\29\29\1\1\131\0\29\130\20\135\1\132\0\130\20\29\29\130\1\29\1\1\131\0\2\20\20\29\138\22\132\26\133\12\17\17\15\16\13\15\15\16\13\15\135\17\23\24\132\26\22\136\17\15\16\131\17\11\11\130\17\18\13\14\138\17\18\17\11\137\17\22\132\26\29\137\26\10\3\29\29\133\10\130\18\13\14\3\137\10\130\18\13\14\29\140\3\130\29\161\19\141\29\140\5\131\7\5\130\7\139\5\142\29\21\21\0\131\21\0\21\21\1\130\0\1\1\130\0\1\21\0\21\21\18\132\0\133\21\0\21\0\21\0\21\131\0\21\1\131\0\1\131\4\1\21\21\1\1\0\0\132\18\0\131\1\21\18\21\21\1\21\143\10\162\9\0\1\131\9\10\21\21\131\29\132\18\132\21\18\18\131\21\18\21\21\18\21\21\18\134\21\18\158\21\18\18\21\21\18\21\18\158\21\130\139\18\135\21\13\14\13\14\147\21\18\18\134\21\13\14\208\21\18\157\21\152\18\167\21\133\18\199\21\149\29\138\21\148\29\187\10\205\21\149\10\129\182\21\18\136\21\18\181\21\135\18\238\21\18\129\247\21\13\14\13\14\13\14\13\14\13\14\13\14\13\14\157\10\171\21\132\18\13\14\158\18\13\14\13\14\13\14\13\14\13\14\143\18\129\255\21\129\130\18\13\14\13\14\13\14\13\14\13\14\13\14\13\14\13\14\13\14\13\14\13\14\190\18\13\14\13\14\159\18\13\14\130\129\18\175\21\148\18\21\21\133\18\166\21\29\29\129\137\21\175\0\175\1\0\1\130\0\1\1\0\1\0\1\0\1\131\0\1\0\1\1\0\133\1\3\3\130\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\1\133\21\0\1\0\1\130\5\0\1\132\29\131\17\10\17\17\165\1\29\1\132\29\1\29\29\183\4\134\29\3\17\141\29\5\150\4\136\29\134\4\29\134\4\29\134\4\29\134\4\29\134\4\29\134\4\29\134\4\29\134\4\29\159\5\17\17\15\16\15\16\130\17\15\16\17\15\16\136\17\12\17\17\12\17\15\16\17\17\15\16\13\14\13\14\13\14\13\14\132\17\3\137\17\12\12\131\17\12\17\13\140\17\21\21\130\17\13\14\13\14\13\14\13\14\12\161\29\153\21\29\216\21\139\29\129\213\21\153\29\143\21\22\130\17\21\3\4\9\13\14\13\14\13\14\13\14\13\14\21\21\13\14\13\14\13\14\13\14\12\13\14\14\21\136\9\131\5\6\6\12\132\3\21\21\130\9\3\4\17\21\21\29\213\4\29\29\5\5\20\20\3\3\4\12\217\4\17\130\3\4\132\29\170\4\29\221\4\29\21\21\131\10\137\21\159\4\165\21\136\29\21\143\4\158\21\29\137\10\157\21\135\10\21\142\10\159\21\137\10\166\21\142\10\130\191\21\4\179\189\29\4\191\21\4\129\163\253\29\149\4\3\136\246\4\130\29\182\21\136\29\167\4\133\3\17\17\130\139\4\3\130\17\143\4\137\8\4\4\147\29\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\4\5\130\7\17\137\5\17\3\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\3\3\5\5\197\4\137\9\5\5\133\17\135\29\150\20\136\3\20\20\0\1\0\1\0\1\0\1\0\1\0\1\0\130\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\3\135\1\0\1\0\1\0\0\1\0\1\0\1\0\1\0\1\3\20\20\0\1\0\1\4\0\1\0\130\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\132\0\1\132\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\131\0\1\0\1\0\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\147\29\131\3\0\1\4\3\3\1\134\4\5\130\4\5\131\4\5\150\4\6\6\5\5\6\131\21\5\130\29\133\10\21\21\19\21\133\29\179\4\131\17\135\29\6\6\177\4\143\6\5\5\135\29\17\17\137\8\133\29\145\5\133\4\130\17\4\17\4\4\5\137\8\155\4\135\5\17\17\150\4\138\5\6\6\138\29\17\156\4\130\29\130\5\6\174\4\5\6\6\131\5\6\6\5\5\130\6\140\17\29\3\137\8\131\29\17\17\132\4\5\3\136\4\137\8\132\4\29\168\4\133\5\6\6\5\5\6\6\5\5\136\29\130\4\5\135\4\5\6\29\29\137\8\29\29\131\17\143\4\3\133\4\130\21\4\6\5\6\177\4\5\4\130\5\4\4\5\5\132\4\5\5\4\5\4\151\29\4\4\3\17\17\138\4\6\5\5\6\6\17\17\4\3\3\6\5\137\29\133\4\29\29\133\4\29\29\133\4\136\29\134\4\29\134\4\29\170\1\20\131\3\136\1\3\20\20\131\29\207\1\162\4\6\6\5\6\6\5\6\6\17\6\5\29\29\137\8\133\29\4\215\161\29\4\139\29\150\4\131\29\176\4\131\29\27\134\253\29\27\27\253\29\27\27\135\253\29\27\28\177\253\29\28\130\237\4\29\29\233\4\165\29\134\1\139\29\132\1\132\29\4\5\137\4\18\140\4\29\132\4\29\4\29\4\4\29\4\4\29\235\4\144\20\143\21\130\234\4\14\13\143\21\191\4\21\21\181\4\135\21\159\29\139\4\19\130\21\143\5\134\17\13\14\17\133\29\143\5\17\12\12\11\11\13\14\13\14\13\14\13\14\13\14\13\14\13\14\13\14\17\17\13\14\131\17\130\11\130\17\29\131\17\12\13\14\13\14\13\14\130\17\18\12\130\18\29\17\19\17\17\131\29\132\4\29\129\134\4\29\29\26\29\130\17\19\130\17\13\14\17\18\17\12\17\17\137\8\17\17\130\18\17\17\153\0\13\17\14\20\11\20\153\1\13\18\14\18\13\14\17\13\14\17\17\137\4\3\172\4\3\3\158\4\130\29\133\4\29\29\133\4\29\29\133\4\29\29\130\4\130\29\19\19\18\20\21\19\19\29\21\131\18\21\21\137\29\130\26\21\21\29\29\139\4\29\153\4\29\146\4\29\4\4\29\142\4\29\29\141\4\161\29\250\4\132\29\130\17\131\29\172\10\130\29\136\21\180\9\131\10\144\21\10\10\130\21\29\140\21\130\29\21\174\29\172\21\5\129\129\29\156\4\130\29\176\4\142\29\5\154\10\131\29\159\4\131\10\136\29\147\4\9\135\4\9\132\29\165\4\132\5\132\29\157\4\29\17\163\4\131\29\135\4\17\132\9\169\29\167\0\167\1\205\4\29\29\137\8\133\29\163\0\131\29\163\1\131\29\167\4\135\29\179\4\138\29\17\138\0\29\142\0\29\134\0\29\0\0\29\138\1\29\142\1\29\134\1\29\1\1\130\29\179\4\139\29\130\182\4\136\29\149\4\137\29\135\4\151\29\133\3\29\169\3\29\136\3\196\29\133\4\29\29\4\29\171\4\29\4\4\130\29\4\29\29\150\4\29\17\135\10\150\4\21\21\134\10\158\4\135\29\136\10\175\29\146\4\29\4\4\132\29\132\10\149\4\133\10\130\29\17\153\4\132\29\17\153\4\165\29\183\4\131\29\10\10\4\4\143\10\29\29\173\10\4\130\5\29\5\5\132\29\131\5\131\4\29\130\4\29\156\4\29\29\130\5\131\29\5\136\10\134\29\136\17\134\29\156\4\10\10\17\156\4\130\10\159\29\135\4\21\155\4\5\5\131\29\132\10\134\17\136\29\181\4\130\29\134\17\149\4\29\29\135\10\146\4\132\29\135\10\145\4\134\29\131\17\139\29\134\10\207\29\200\4\182\29\178\0\140\29\178\1\134\29\133\10\163\4\131\5\135\29\137\8\133\29\137\8\131\4\3\4\149\0\130\29\132\5\12\3\149\1\135\29\18\18\129\207\29\158\10\29\169\4\29\5\5\12\29\29\4\4\143\29\130\4\3\4\4\135\29\17\135\21\160\29\133\5\156\4\137\10\4\135\29\149\4\138\5\131\10\132\17\149\29\145\4\131\5\131\17\165\29\148\4\134\10\147\29\150\4\136\29\6\5\6\180\4\142\5\134\17\131\29\147\10\137\8\5\4\4\5\5\4\136\29\130\5\6\172\4\130\6\131\5\6\6\5\5\17\17\26\131\17\5\137\29\26\29\29\152\4\134\29\137\8\133\29\130\5\163\4\132\5\6\135\5\29\137\8\131\17\4\6\6\4\135\29\162\4\5\17\17\4\136\29\5\5\6\175\4\130\6\136\5\6\6\131\4\131\17\131\5\17\6\5\137\8\4\17\4\130\17\29\147\10\138\29\145\4\29\152\4\130\6\130\5\6\6\5\6\5\5\133\17\5\4\4\5\189\29\134\4\29\4\29\131\4\29\142\4\29\137\4\17\133\29\174\4\5\130\6\135\5\132\29\137\8\133\29\5\5\6\6\29\135\4\29\29\4\4\29\29\149\4\29\134\4\29\4\4\29\132\4\29\5\5\4\6\6\5\131\6\29\29\6\6\29\29\130\6\29\29\4\133\29\6\132\29\132\4\6\6\29\29\134\5\130\29\132\5\138\29\137\4\29\4\29\29\4\29\165\4\29\4\130\6\133\5\29\6\29\29\6\29\131\6\29\6\6\5\6\5\4\5\4\17\17\29\17\17\135\29\5\5\156\29\180\4\130\6\135\5\6\6\130\5\6\5\131\4\132\17\137\8\17\17\29\17\5\130\4\157\29\175\4\130\6\133\5\6\5\131\6\5\5\6\5\5\4\4\17\4\135\29\137\8\129\165\29\174\4\130\6\131\5\29\29\131\6\5\5\6\5\5\150\17\131\4\5\5\161\29\175\4\130\6\135\5\6\6\5\6\5\5\130\17\4\138\29\137\8\133\29\140\17\146\29\170\4\5\6\5\6\6\133\5\6\5\4\17\133\29\137\8\133\29\147\8\155\29\154\4\29\29\5\6\5\6\6\131\5\6\132\5\131\29\137\8\10\10\130\17\21\134\4\129\184\29\171\4\130\6\136\5\6\5\5\17\227\29\159\0\159\1\137\8\136\10\139\29\135\4\29\29\4\29\29\135\4\29\4\4\29\151\4\133\6\29\6\6\29\29\5\5\6\5\4\6\4\6\5\130\17\136\29\137\8\197\29\135\4\29\29\166\4\130\6\131\5\29\29\5\5\131\6\5\4\17\4\6\154\29\4\137\5\167\4\133\5\6\4\131\5\135\17\5\135\29\4\133\5\6\6\130\5\173\4\140\5\6\5\5\130\17\4\132\17\140\29\200\4\134\29\137\17\213\29\5\6\130\5\6\5\6\215\29\160\4\17\141\29\137\8\133\29\136\4\29\164\4\6\134\5\29\133\5\6\5\4\132\17\137\29\137\8\146\10\130\29\17\17\157\4\29\29\149\5\29\6\134\5\6\5\5\6\5\5\200\29\134\4\29\4\4\29\165\4\133\5\130\29\5\29\5\5\29\134\5\4\5\135\29\137\8\133\29\133\4\29\4\4\29\159\4\132\6\29\5\5\29\6\6\5\6\5\4\134\29\137\8\133\29\168\4\3\4\4\131\29\137\8\129\245\29\146\4\5\5\6\6\17\17\134\29\5\5\4\6\140\4\29\161\4\6\6\132\5\130\29\6\6\5\6\5\140\17\137\8\5\212\29\4\142\29\148\10\135\21\131\19\144\21\140\29\17\135\153\4\229\29\238\9\29\132\17\138\29\129\195\4\148\203\29\224\4\17\17\140\29\136\175\4\143\26\5\133\4\142\5\137\29\159\154\4\132\29\132\198\4\181\184\29\157\4\139\5\130\6\130\5\137\8\141\197\29\132\184\4\134\29\158\4\29\137\8\131\29\17\17\206\4\29\137\8\133\29\157\4\29\29\132\5\17\137\29\175\4\134\5\132\17\131\21\131\3\17\21\137\29\137\8\29\134\10\29\148\4\132\29\146\4\131\175\29\130\3\167\4\3\3\130\17\137\8\129\197\29\159\0\159\1\150\10\131\17\132\29\152\0\29\29\152\1\171\29\202\4\131\29\5\4\182\6\134\29\131\5\140\3\191\29\3\3\17\3\5\138\29\6\6\3\3\130\9\136\29\4\175\253\29\137\214\4\168\29\4\4\156\29\4\224\29\242\4\195\252\29\131\3\29\134\3\29\3\3\29\130\162\4\142\29\4\156\29\130\4\29\29\4\141\29\131\4\135\29\131\139\4\146\131\29\234\4\132\29\140\4\130\29\136\4\134\29\137\4\29\29\21\5\5\17\131\26\158\219\29\129\239\21\137\8\130\21\130\29\131\179\21\133\29\150\21\142\29\143\21\18\142\29\173\5\29\29\150\5\136\29\243\21\187\29\129\245\21\137\29\166\21\29\29\187\21\6\6\130\5\130\21\133\6\135\26\135\5\21\21\134\5\157\21\131\5\188\21\148\29\193\21\130\5\21\249\29\147\10\139\29\147\10\139\29\214\21\136\29\152\10\129\134\29\153\0\153\1\153\0\134\1\29\145\1\153\0\153\1\0\29\0\0\29\29\0\29\29\0\0\29\29\131\0\29\135\0\131\1\29\1\29\134\1\29\138\1\153\0\153\1\0\0\29\131\0\29\29\135\0\29\134\0\29\153\1\0\0\29\131\0\29\132\0\29\0\130\29\134\0\29\153\1\153\0\153\1\153\0\153\1\153\0\153\1\153\0\153\1\153\0\153\1\153\0\155\1\29\29\152\0\18\152\1\18\133\1\152\0\18\152\1\18\133\1\152\0\18\152\1\18\133\1\152\0\18\152\1\18\133\1\152\0\18\152\1\18\133\1\0\1\29\29\177\8\131\255\21\182\5\131\21\177\5\135\21\5\141\21\5\21\21\132\17\142\29\132\5\29\142\5\136\207\29\137\1\4\147\1\133\29\133\1\129\212\29\134\5\29\144\5\29\29\134\5\29\5\5\29\132\5\132\29\189\3\160\29\5\239\29\172\4\130\29\134\5\134\3\29\29\137\8\131\29\4\21\130\191\29\157\4\5\144\29\171\4\131\5\137\8\132\29\19\131\207\29\154\4\3\131\5\137\8\129\213\29\157\4\5\5\4\137\8\131\29\17\129\191\29\158\4\29\130\4\5\4\4\5\134\4\5\5\132\4\5\135\29\4\3\129\223\29\134\4\29\131\4\29\4\4\29\142\4\29\129\196\4\29\29\136\10\134\5\168\29\161\0\161\1\134\5\3\131\29\137\8\131\29\17\17\134\144\29\186\10\21\130\10\19\131\10\203\29\172\10\21\142\10\129\193\29\131\4\29\154\4\29\4\4\29\4\29\29\4\29\137\4\29\131\4\29\4\29\4\133\29\4\131\29\4\29\4\29\4\29\130\4\29\4\4\29\4\29\29\4\29\4\29\4\29\4\29\4\29\4\4\29\4\29\29\131\4\29\134\4\29\131\4\29\131\4\29\4\29\137\4\29\144\4\132\29\130\4\29\132\4\29\144\4\179\29\18\18\130\141\29\171\21\131\29\227\21\139\29\142\21\29\29\142\21\29\142\21\29\164\21\137\29\140\10\129\160\21\183\29\156\21\140\29\171\21\131\29\136\21\134\29\21\21\141\29\133\21\129\153\29\129\250\21\132\20\133\216\21\130\29\144\21\130\29\140\21\130\29\129\217\21\133\29\139\21\131\29\21\142\29\139\21\131\29\183\21\135\29\137\21\133\29\167\21\135\29\157\21\29\29\139\21\131\29\21\21\141\29\136\18\166\29\130\215\21\135\29\141\21\29\29\140\21\130\29\138\21\130\29\184\21\29\21\131\29\143\21\29\29\139\21\131\29\137\21\134\29\129\146\21\29\219\21\137\8\21\136\132\29\4\130\205\221\29\4\159\29\4\160\189\29\4\4\129\219\29\4\29\29\4\173\139\29\4\29\29\4\186\174\29\4\142\29\4\132\235\29\4\147\161\29\132\157\4\139\225\29\4\166\200\29\4\132\29\4\160\221\29\4\4\161\199\29\4\171\151\134\29\26\157\29\223\26\255\29\129\239\5\131\252\143\29\28\131\255\251\29\28\29\29\28\131\255\251\29\28" + + tcTable :: [(Int, Int, Int)] + tcTable = diff --git a/pkgs/development/compilers/microhs/stage1.nix b/pkgs/development/compilers/microhs/stage1.nix new file mode 100644 index 000000000000..625f1e05ac44 --- /dev/null +++ b/pkgs/development/compilers/microhs/stage1.nix @@ -0,0 +1,36 @@ +{ + lib, + args, + microhs-boot, + stdenv, +}: + +stdenv.mkDerivation ( + finalAttrs: + let + args' = args finalAttrs; + in + args' + // { + pname = "microhs-stage1"; + patches = + (args'.patches or [ ]) + ++ lib.optionals microhs-boot.usesHugs [ + patches/simple-unicode.patch + ]; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + installTargets = [ + "targets.conf" + "oldinstall" + ]; + + buildPhase = '' + runHook preBuild + mkdir -p bin + printf 'Building bin/mhs using ${microhs-boot}/bin/mhs\n' + ${microhs-boot}/bin/mhs -l -imhs -isrc -ipaths MicroHs.Main -o bin/mhs + runHook postBuild + ''; + } +) diff --git a/pkgs/development/compilers/microhs/stage2.nix b/pkgs/development/compilers/microhs/stage2.nix new file mode 100644 index 000000000000..fa8b9d3640f3 --- /dev/null +++ b/pkgs/development/compilers/microhs/stage2.nix @@ -0,0 +1,61 @@ +{ + args, + cpphs, + microcabal-stage1, + microhs-stage1, + stdenv, + callPackage, +}: + +stdenv.mkDerivation ( + finalAttrs: + let + args' = args finalAttrs; + haskellCompilerName = "mhs-${args'.version}"; + in + args' + // { + pname = "microhs"; + + nativeBuildInputs = [ + microcabal-stage1 + microhs-stage1 + ]; + + env = { + CABALDIR = "${placeholder "out"}/lib/mcabal"; + }; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + pushd lib + mcabal -v install + popd + mcabal -v install + + mkdir -p $out/bin + ln -s ../lib/mcabal/bin/mhs $out/bin/mhs + + runHook postInstall + ''; + + passthru = { + inherit + haskellCompilerName + cpphs + microcabal-stage1 + microhs-stage1 + ; + targetPrefix = ""; + isMhs = true; + usesHugs = false; + + tests = { + hello-world = callPackage ./test-hello-world.nix { microhs = finalAttrs.finalPackage; }; + }; + }; + } +) diff --git a/pkgs/by-name/mi/microhs/test-hello-world.nix b/pkgs/development/compilers/microhs/test-hello-world.nix similarity index 100% rename from pkgs/by-name/mi/microhs/test-hello-world.nix rename to pkgs/development/compilers/microhs/test-hello-world.nix diff --git a/pkgs/development/compilers/microhs/wrapper.nix b/pkgs/development/compilers/microhs/wrapper.nix new file mode 100644 index 000000000000..50b496bb7b41 --- /dev/null +++ b/pkgs/development/compilers/microhs/wrapper.nix @@ -0,0 +1,52 @@ +{ + lib, + runCommand, + runtimeShell, + writeShellScript, +}: + +{ + microhs, + packages, +}: + +let + packages' = [ microhs ] ++ lib.filter (p: p != null) packages; + extraFlags = lib.concatMapStringsSep " " ( + p: "-a${p}/lib/mcabal/${microhs.haskellCompilerName}" + ) packages'; + + wrapper = writeShellScript "mhs-wrapper" '' + args=("$@") + noExtra=0 + for ((i=0; i<"''${#args[@]}"; ++i)); do + case "''${args[i]}" in + --version | --numeric-version) + noExtra=1 + ;; + *) + ;; + esac + done + if test "$noExtra" -eq 0; then + for arg in ${extraFlags}; do + args[i++]="$arg" + done + fi + if (( "''${NIX_DEBUG:-0}" >= 1 )); then + printf 'mhs-wrapper: mhs %s\n' "''${args[*]}" >&2 + fi + exec ${microhs}/bin/mhs "''${args[@]}" + ''; + +in +runCommand "${microhs.name}-wrapped" + { + inherit (microhs) passthru; + } + '' + mkdir -p $out/bin + cp -rs ${microhs}/bin/* $out/bin/ + rm $out/bin/mhs 2>/dev/null || true + cp ${wrapper} $out/bin/mhs + '' diff --git a/pkgs/development/haskell-modules/configuration-microhs.nix b/pkgs/development/haskell-modules/configuration-microhs.nix new file mode 100644 index 000000000000..182394c829f5 --- /dev/null +++ b/pkgs/development/haskell-modules/configuration-microhs.nix @@ -0,0 +1,78 @@ +{ pkgs, haskellLib }: + +with haskellLib; + +self: super: { + # Disable MicroHs core libraries + base = null; + bytestring = null; + deepseq = null; + directory = null; + process = null; + text = null; + MicroHs = null; + + # External MicroHs core libraries + ghc-compat = doDistribute (markUnbroken super.ghc-compat); + + # Bootstrap MicroCabal + MicroCabal = self.mkDerivation { + pname = "MicroCabal"; + version = self.ghc.microcabal-stage1.version; + src = self.ghc.microcabal-stage1.src; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = with self; [ base ]; + inherit (self.ghc.microcabal-stage1.meta) + description + homepage + license + mainProgram + maintainers + ; + }; + + # hackage-packages does not include GHC core libraries + binary = markBroken self.binary_0_8_9_3; + Cabal = doDistribute self.Cabal_3_16_1_0; + Cabal-syntax = doDistribute self.Cabal-syntax_3_16_1_0; + containers = doDistribute self.containers_0_8; + exceptions = doDistribute self.exceptions_0_10_12; + filepath = doDistribute self.filepath_1_5_5_0; + ghc-bignum = null; + ghc-boot = null; + ghc-boot-th = null; + ghc-compact = null; + ghc-heap = null; + ghc-internal = null; + ghc-platform = null; + ghc-prim = null; + ghci = null; + haskeline = doDistribute self.haskeline_0_8_4_1; + hpc = markBroken self.hpc_0_7_0_2; + integer-gmp = markBroken self.integer-gmp_1_1; + libiserv = null; + mtl = doDistribute self.mtl_2_3_2; + os-string = doDistribute self.os-string_2_0_10; + parsec = doDistribute self.parsec_3_1_18_0; + pretty = markBroken self.pretty_1_1_3_6; + rts = null; + semaphore-compat = null; + stm = null; + system-cxx-std-lib = null; + template-haskell = null; + terminfo = doDistribute self.terminfo_0_4_1_7; + time = doDistribute self.time_1_15; + transformers = doDistribute self.transformers_0_6_3_0; + unix = markBroken self.unix_2_8_8_0; + xhtml = markBroken self.xhtml_3000_4_0_0; + + # MicroHs replacements for widely used libraries + array = self.array-mhs; + array-mhs = doDistribute (markUnbroken super.array-mhs); + random = self.random-mhs; + random-mhs = doDistribute (markUnbroken super.random-mhs); + + # Depends on time when not using GHC + splitmix = addBuildDepends [ self.time ] super.splitmix; +} diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix index 70998a96e822..f413d9b198a3 100644 --- a/pkgs/development/haskell-modules/make-package-set.nix +++ b/pkgs/development/haskell-modules/make-package-set.nix @@ -48,50 +48,64 @@ let inherit (lib) fix' extends makeOverridable; inherit (haskellLib) overrideCabal; - mkDerivationImpl = pkgs.callPackage ./generic-builder.nix { - inherit stdenv haskellLib; - nodejs = buildPackages.nodejs-slim; - inherit (self) - buildHaskellPackages - ghc - ghcWithHoogle - ghcWithPackages - ; - iserv-proxy = { - build = buildHaskellPackages.iserv-proxy; - host = self.iserv-proxy; - }; - inherit (self.buildHaskellPackages) jailbreak-cabal; - hscolour = overrideCabal (drv: { - isLibrary = false; - doHaddock = false; - hyperlinkSource = false; # Avoid depending on hscolour for this build. - postFixup = "rm -rf $out/lib $out/share $out/nix-support"; - }) self.buildHaskellPackages.hscolour; - cpphs = - overrideCabal - (drv: { - isLibrary = false; - postFixup = "rm -rf $out/lib $out/share $out/nix-support"; - }) - ( - self.cpphs.overrideScope ( - self: super: { - mkDerivation = - drv: - super.mkDerivation ( - drv - // { - enableSharedExecutables = false; - enableSharedLibraries = false; - doHaddock = false; - useCpphs = false; - } - ); - } - ) - ); - }; + builder = if !(ghc.isMhs or false) then ./generic-builder.nix else ./microhs-builder.nix; + + mkDerivationImpl = pkgs.callPackage builder ( + { + inherit stdenv; + inherit (self) + buildHaskellPackages + ghc + ; + inherit (self.buildHaskellPackages) jailbreak-cabal; + } + // lib.optionalAttrs (!(ghc.isMhs or false)) { + inherit haskellLib; + inherit (self) + ghcWithHoogle + ghcWithPackages + ; + nodejs = buildPackages.nodejs-slim; + iserv-proxy = { + build = buildHaskellPackages.iserv-proxy; + host = self.iserv-proxy; + }; + hscolour = overrideCabal (drv: { + isLibrary = false; + doHaddock = false; + hyperlinkSource = false; # Avoid depending on hscolour for this build. + postFixup = "rm -rf $out/lib $out/share $out/nix-support"; + }) self.buildHaskellPackages.hscolour; + cpphs = + overrideCabal + (drv: { + isLibrary = false; + postFixup = "rm -rf $out/lib $out/share $out/nix-support"; + }) + ( + self.cpphs.overrideScope ( + self: super: { + mkDerivation = + drv: + super.mkDerivation ( + drv + // { + enableSharedExecutables = false; + enableSharedLibraries = false; + doHaddock = false; + useCpphs = false; + } + ); + } + ) + ); + } + // lib.optionalAttrs (ghc.isMhs or false) { + inherit (self) wrapMhs ghc-compat; + MicroCabal = self.ghc.microcabal-stage1; + cpphs = self.ghc.cpphs; + } + ); mkDerivation = makeOverridable mkDerivationImpl; @@ -663,6 +677,8 @@ package-set { inherit pkgs lib callPackage; } self withHoogle = self.ghcWithHoogle; }; + wrapMhs = pkgs.callPackage ../compilers/microhs/wrapper.nix { }; + /* Run `cabal sdist` on a source. diff --git a/pkgs/development/haskell-modules/microhs-builder.nix b/pkgs/development/haskell-modules/microhs-builder.nix new file mode 100644 index 000000000000..1a4363d8a372 --- /dev/null +++ b/pkgs/development/haskell-modules/microhs-builder.nix @@ -0,0 +1,420 @@ +{ + buildHaskellPackages, + buildPackages, + fetchurl, + ghc, + jailbreak-cabal, + lib, + MicroCabal, + cpphs, + ghc-compat, + pkg-config, + runCommandCC, + stdenv, + wrapMhs, +}: + +let + # make-package-set always names the compiler ghc + compiler = ghc; + + isCross = stdenv.buildPlatform != stdenv.hostPlatform; + +in +{ + pname, + version, + revision ? null, + sha256 ? null, + src ? fetchurl { + url = "mirror://hackage/${pname}-${version}.tar.gz"; + inherit sha256; + }, + # Extra environment variables to set during the build. + # See: `../../../doc/languages-frameworks/haskell.section.md` + env ? { }, + buildDepends ? [ ], + setupHaskellDepends ? [ ], + libraryHaskellDepends ? [ ], + executableHaskellDepends ? [ ], + buildTools ? [ ], + libraryToolDepends ? [ ], + executableToolDepends ? [ ], + testToolDepends ? [ ], + benchmarkToolDepends ? [ ], + configureFlags ? [ ], + description ? null, + doCheck ? !isCross, + doBenchmark ? false, + editedCabalFile ? null, + extraLibraries ? [ ], + librarySystemDepends ? [ ], + executableSystemDepends ? [ ], + # On macOS, statically linking against system frameworks is not supported; + # see https://developer.apple.com/library/content/qa/qa1118/_index.html + # They must be propagated to the environment of any executable linking with the library + libraryFrameworkDepends ? [ ], + executableFrameworkDepends ? [ ], + homepage ? "https://hackage.haskell.org/package/${pname}", + platforms ? with lib.platforms; all, # GHC can cross-compile + badPlatforms ? lib.platforms.none, + hydraPlatforms ? null, + isExecutable ? false, + isLibrary ? !isExecutable, + jailbreak ? false, + license, + maintainers ? null, + teams ? null, + changelog ? null, + mainProgram ? null, + passthru ? { }, + pkg-configDepends ? [ ], + libraryPkgconfigDepends ? [ ], + executablePkgconfigDepends ? [ ], + testPkgconfigDepends ? [ ], + benchmarkPkgconfigDepends ? [ ], + testDepends ? [ ], + testHaskellDepends ? [ ], + testSystemDepends ? [ ], + testFrameworkDepends ? [ ], + benchmarkDepends ? [ ], + benchmarkHaskellDepends ? [ ], + benchmarkSystemDepends ? [ ], + benchmarkFrameworkDepends ? [ ], + broken ? false, + preCompileBuildDriver ? null, + postCompileBuildDriver ? null, + preUnpack ? null, + postUnpack ? null, + patches ? null, + patchPhase ? null, + prePatch ? "", + postPatch ? "", + preConfigure ? null, + postConfigure ? null, + preBuild ? null, + postBuild ? null, + preHaddock ? null, + postHaddock ? null, + installPhase ? null, + preInstall ? null, + postInstall ? null, + checkPhase ? null, + preCheck ? null, + postCheck ? null, + preFixup ? null, + postFixup ? null, + shellHook ? "", + ... +}@args: + +assert editedCabalFile != null -> revision != null; + +let + allPkgconfigDepends = + pkg-configDepends + ++ libraryPkgconfigDepends + ++ executablePkgconfigDepends + ++ lib.optionals doCheck testPkgconfigDepends + ++ lib.optionals doBenchmark benchmarkPkgconfigDepends; + + # MicroCabal adds a dependency on ghc-compat unless the package name is one of the following + isCorePkg = pname == "base" || pname == "ghc-compat" || pname == "MicroHs" || pname == "MicroCabal"; + buildDepends' = buildDepends ++ lib.optional (!isCorePkg) ghc-compat; + + depsBuildBuild = lib.optionals (!stdenv.hasCC) [ buildPackages.stdenv.cc ]; + collectedToolDepends = + buildTools + ++ libraryToolDepends + ++ executableToolDepends + ++ lib.optionals doCheck testToolDepends + ++ lib.optionals doBenchmark benchmarkToolDepends; + nativeBuildInputs = [ + MicroCabal + cpphs + compilerWithPkgs + buildPackages.removeReferencesTo + ]; + propagatedBuildInputs = + buildDepends' ++ libraryHaskellDepends ++ executableHaskellDepends ++ libraryFrameworkDepends; + otherBuildInputsHaskell = + lib.optionals doCheck (testDepends ++ testHaskellDepends) + ++ lib.optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends); + otherBuildInputsSystem = + extraLibraries + ++ librarySystemDepends + ++ executableSystemDepends + ++ executableFrameworkDepends + ++ allPkgconfigDepends + ++ lib.optionals doCheck (testSystemDepends ++ testFrameworkDepends) + ++ lib.optionals doBenchmark (benchmarkSystemDepends ++ benchmarkFrameworkDepends); + otherBuildInputs = otherBuildInputsHaskell ++ otherBuildInputsSystem; + + newCabalFileUrl = "mirror://hackage/${pname}-${version}/revision/${revision}.cabal"; + newCabalFile = fetchurl { + url = newCabalFileUrl; + sha256 = editedCabalFile; + name = "${pname}-${version}-r${revision}.cabal"; + }; + + hsLibBuildInputs = lib.filter (p: p ? isHaskellLibrary && p.isHaskellLibrary) propagatedBuildInputs; + compilerWithPkgs = wrapMhs { + microhs = compiler; + packages = hsLibBuildInputs; + }; + + compilerCommand' = "mhs"; + compilerCommand = "${compiler.targetPrefix}${compilerCommand'}"; + + compilerLibdir = "lib/mcabal/${compiler.haskellCompilerName}"; + + env' = { + CABALDIR = "${placeholder "out"}/lib/mcabal"; + } + // env; + +in +stdenv.mkDerivation { + inherit pname version; + + pos = builtins.unsafeGetAttrPos "pname" args; + + prePhases = [ "setupCompilerEnvironmentPhase" ]; + preConfigurePhases = [ "compileBuildDriverPhase" ]; + preInstallPhases = [ "haddockPhase" ]; + + inherit src patches; + + inherit depsBuildBuild nativeBuildInputs; + buildInputs = lib.optionals (!isLibrary) propagatedBuildInputs; + propagatedBuildInputs = lib.optionals isLibrary propagatedBuildInputs; + + env = env'; + + prePatch = + lib.optionalString (editedCabalFile != null) '' + echo "Replace Cabal file with edited version from ${newCabalFileUrl}." + cp ${newCabalFile} ${pname}.cabal + '' + + prePatch; + + postPatch = + lib.optionalString jailbreak '' + echo "Run jailbreak-cabal to lift version restrictions on build inputs." + ${jailbreak-cabal}/bin/jailbreak-cabal ${pname}.cabal + '' + + postPatch; + + setupCompilerEnvironmentPhase = '' + runHook preSetupCompilerEnvironment + + echo "Building with ${compilerWithPkgs}" + mkdir -p "$CABALDIR/${compiler.haskellCompilerName}/packages" + ${lib.concatMapStrings (p: '' + ln -s ${p}/${compilerLibdir}/packages/${p.name}.pkg $CABALDIR/${compiler.haskellCompilerName}/packages/${p.name}.pkg + '') (lib.closePropagation hsLibBuildInputs)} + + runHook postSetupCompilerEnvironment + ''; + + compileBuildDriverPhase = '' + runHook preCompileBuildDriver + + runHook postCompileBuildDriver + ''; + + buildPhase = '' + runHook preBuild + + echo "Skipping buildPhase because MicroCabal always builds on install" + + runHook postBuild + ''; + + inherit doCheck; + + checkPhase = '' + runHook preCheck + + echo "Skipping checkPhase because MicroCabal doesn't support test suites" + + runHook postCheck + ''; + + haddockPhase = '' + runHook preHaddock + + echo "Skipping haddockPhase because MicroCabal doesn't support Haddock" + + runHook postHaddock + ''; + + installPhase = '' + runHook preInstall + + mcabal -v ${lib.concatStringsSep " " configureFlags} install + mkdir -p $out/bin + find "$CABALDIR/bin" -type f -exec ln -s '{}' "$out/bin/" \; || true + find "$CABALDIR/${compiler.haskellCompilerName}/packages" -type l -delete + + runHook postInstall + ''; + + inherit + preCompileBuildDriver + postCompileBuildDriver + preUnpack + postUnpack + preConfigure + postConfigure + preBuild + postBuild + preHaddock + postHaddock + preInstall + postInstall + preCheck + postCheck + preFixup + postFixup + ; + + passthru = passthru // rec { + inherit pname version; + + compiler = ghc; + + # All this information is intended just for `shellFor`. It should be + # considered unstable and indeed we knew how to keep it private we would. + getCabalDeps = { + inherit + buildDepends' + buildTools + executableFrameworkDepends + executableHaskellDepends + executablePkgconfigDepends + executableSystemDepends + executableToolDepends + extraLibraries + libraryFrameworkDepends + libraryHaskellDepends + libraryPkgconfigDepends + librarySystemDepends + libraryToolDepends + pkg-configDepends + setupHaskellDepends + ; + } + // lib.optionalAttrs doCheck { + inherit + testDepends + testFrameworkDepends + testHaskellDepends + testPkgconfigDepends + testSystemDepends + testToolDepends + ; + } + // lib.optionalAttrs doBenchmark { + inherit + benchmarkDepends + benchmarkFrameworkDepends + benchmarkHaskellDepends + benchmarkPkgconfigDepends + benchmarkSystemDepends + benchmarkToolDepends + ; + }; + + # Attributes for the old definition of `shellFor`. Should be removed but + # this predates the warning at the top of `getCabalDeps`. + getBuildInputs = rec { + inherit propagatedBuildInputs otherBuildInputs allPkgconfigDepends; + haskellBuildInputs = isHaskellPartition.right; + systemBuildInputs = isHaskellPartition.wrong; + isHaskellPartition = lib.partition (x: x ? isHaskellLibrary) ( + propagatedBuildInputs ++ otherBuildInputs ++ depsBuildBuild ++ nativeBuildInputs + ); + }; + + isHaskellLibrary = isLibrary; + + haddockDir = null; + + # Creates a derivation containing all of the necessary dependencies for building the + # parent derivation. The attribute set that it takes as input can be viewed as: + # + # { withHoogle } + # + # The derivation that it builds contains no outpaths because it is meant for use + # as an environment + # + # # Example use + # # Creates a shell with all of the dependencies required to build the "hello" package, + # # and with python: + # + # > nix-shell -E 'with (import {}); \ + # > haskellPackages.hello.envFunc { buildInputs = [ python ]; }' + envFunc = + { + # Unsupported + withHoogle ? false, + }: + let + name = "microhs-shell-for-${pname}"; + + compilerCommandCaps = lib.toUpper compilerCommand'; + in + runCommandCC name { + inherit shellHook; + + nativeBuildInputs = [ + compilerWithPkgs + ] + ++ lib.optional (allPkgconfigDepends != [ ]) pkg-config + ++ collectedToolDepends; + buildInputs = otherBuildInputsSystem; + + env = { + "NIX_${compilerCommandCaps}" = "${compiler}/bin/${compilerCommand}"; + # TODO: is this still valid? + "NIX_${compilerCommandCaps}_LIBDIR" = "${compiler}/${compilerLibdir}"; + } + // lib.optionalAttrs (stdenv.buildPlatform.libc == "glibc") { + # TODO: Why is this written in terms of `buildPackages`, unlike + # the outer `env`? + # + # According to @sternenseemann [1]: + # + # > The condition is based on `buildPlatform`, so it needs to + # > match. `LOCALE_ARCHIVE` is set to accompany `LANG` which + # > concerns things we execute on the build platform like + # > `haddock`. + # > + # > Arguably the outer non `buildPackages` one is incorrect and + # > probably works by accident in most cases since the locale + # > archive is not platform specific (the trouble is that it + # > may sometimes be impossible to cross-compile). At least + # > that would be my assumption. + # + # [1]: https://github.com/NixOS/nixpkgs/pull/424368#discussion_r2202683378 + LOCALE_ARCHIVE = "${buildPackages.glibcLocales}/lib/locale/locale-archive"; + } + // env'; + } "echo $nativeBuildInputs $buildInputs > $out"; + + env = envFunc { }; + }; + + meta = { + inherit homepage license platforms; + } + // lib.optionalAttrs (args ? broken) { inherit broken; } + // lib.optionalAttrs (args ? description) { inherit description; } + // lib.optionalAttrs (args ? maintainers) { inherit maintainers; } + // lib.optionalAttrs (args ? teams) { inherit teams; } + // lib.optionalAttrs (args ? hydraPlatforms) { inherit hydraPlatforms; } + // lib.optionalAttrs (args ? badPlatforms) { inherit badPlatforms; } + // lib.optionalAttrs (args ? changelog) { inherit changelog; } + // lib.optionalAttrs (args ? mainProgram) { inherit mainProgram; }; +} diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix index 2c4cde548e79..67fc7542c809 100644 --- a/pkgs/development/lua-modules/overrides.nix +++ b/pkgs/development/lua-modules/overrides.nix @@ -836,24 +836,6 @@ in ]; }; - lze = prev.lze.overrideAttrs { - doCheck = lua.luaversion == "5.1"; - nativeCheckInputs = [ - final.nlua - final.bustedCheckHook - writableTmpDirAsHomeHook - ]; - }; - - lzextras = prev.lzextras.overrideAttrs { - doCheck = lua.luaversion == "5.1"; - nativeCheckInputs = [ - final.nlua - lua.pkgs.bustedCheckHook - final.lze - ]; - }; - magick = prev.magick.overrideAttrs (old: { buildInputs = old.buildInputs ++ [ imagemagick diff --git a/pkgs/development/python-modules/aiotractive/default.nix b/pkgs/development/python-modules/aiotractive/default.nix index b42628aa409c..32169475b486 100644 --- a/pkgs/development/python-modules/aiotractive/default.nix +++ b/pkgs/development/python-modules/aiotractive/default.nix @@ -8,23 +8,21 @@ yarl, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "aiotractive"; - version = "1.0.1"; + version = "1.0.2"; pyproject = true; src = fetchFromGitHub { owner = "zhulik"; repo = "aiotractive"; - tag = "v${version}"; - hash = "sha256-DP0dFDXaa0PyaERmhL6dNCOpiNs+N7ojMIapcajfMrk="; + tag = "v${finalAttrs.version}"; + hash = "sha256-Tr8USF7GF9CMOcjy62e+oTu4k/1jIAOsZmWTFWEzJvk="; }; build-system = [ setuptools ]; - pythonRelaxDeps = [ - "orjson" - ]; + pythonRelaxDeps = [ "orjson" ]; dependencies = [ aiohttp @@ -40,8 +38,8 @@ buildPythonPackage rec { meta = { description = "Python client for the Tractive REST API"; homepage = "https://github.com/zhulik/aiotractive"; - changelog = "https://github.com/zhulik/aiotractive/releases/tag/${src.tag}"; + changelog = "https://github.com/zhulik/aiotractive/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/development/python-modules/cyclopts/default.nix b/pkgs/development/python-modules/cyclopts/default.nix index 5cda15428217..42416fd3cf88 100644 --- a/pkgs/development/python-modules/cyclopts/default.nix +++ b/pkgs/development/python-modules/cyclopts/default.nix @@ -22,14 +22,14 @@ buildPythonPackage (finalAttrs: { pname = "cyclopts"; - version = "4.10.1"; + version = "4.10.2"; pyproject = true; src = fetchFromGitHub { owner = "BrianPugh"; repo = "cyclopts"; tag = "v${finalAttrs.version}"; - hash = "sha256-LgpnpE1Hyx4o2Pi9zXmPLlV7K2wTX5PiNlYD+7333dQ="; + hash = "sha256-vlsjhBfI08QMQ8FzM+BogAXbukHhnr4aD8ZmZVicCv0="; }; build-system = [ diff --git a/pkgs/development/python-modules/ghapi/default.nix b/pkgs/development/python-modules/ghapi/default.nix index b47440fb8f86..69c5b1bf9d52 100644 --- a/pkgs/development/python-modules/ghapi/default.nix +++ b/pkgs/development/python-modules/ghapi/default.nix @@ -9,14 +9,14 @@ buildPythonPackage (finalAttrs: { pname = "ghapi"; - version = "1.0.10"; + version = "1.0.13"; pyproject = true; src = fetchFromGitHub { owner = "fastai"; repo = "ghapi"; tag = finalAttrs.version; - hash = "sha256-2x9uiULYniFVpUNgRie4i49xEqtYfq/9u/07eozw0WQ="; + hash = "sha256-Xv48jY5PW8JdzdWktNOtWAUmn5voWlNv1TqcNmc09zE="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix index af0a3d19880f..b964bf2e0e45 100644 --- a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix +++ b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix @@ -13,13 +13,13 @@ buildPythonPackage (finalAttrs: { pname = "google-cloud-texttospeech"; - version = "2.35.0"; + version = "2.36.0"; pyproject = true; src = fetchPypi { pname = "google_cloud_texttospeech"; inherit (finalAttrs) version; - hash = "sha256-tipe7KQQvKqwNlMorvuLoSBuQnYK5AjAQgobfa7ttbo="; + hash = "sha256-bGBa9+R3TBusmfyq9FOPFSsQu6dziiP0IYRVf0RNxrc="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/hibpwned/default.nix b/pkgs/development/python-modules/hibpwned/default.nix new file mode 100644 index 000000000000..19b8ed98dac4 --- /dev/null +++ b/pkgs/development/python-modules/hibpwned/default.nix @@ -0,0 +1,37 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + requests, + setuptools, +}: + +buildPythonPackage (finalAttrs: { + pname = "hibpwned"; + version = "1.3.9"; + pyproject = true; + + src = fetchFromGitHub { + owner = "plasticuproject"; + repo = "hibpwned"; + tag = finalAttrs.version; + hash = "sha256-d3EhRu7HcvbyjWWHVSax0j39yE4+hJp8zvtyRKoh4sY="; + }; + + build-system = [ setuptools ]; + + dependencies = [ requests ]; + + # Test require network access + doCheck = false; + + pythonImportsCheck = [ "hibpwned" ]; + + meta = { + description = "Python API wrapper for haveibeenpwned.com"; + homepage = "https://github.com/plasticuproject/hibpwned"; + changelog = "https://github.com/plasticuproject/hibpwned/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/development/python-modules/ignorant/default.nix b/pkgs/development/python-modules/ignorant/default.nix new file mode 100644 index 000000000000..3a88e6d30826 --- /dev/null +++ b/pkgs/development/python-modules/ignorant/default.nix @@ -0,0 +1,51 @@ +{ + lib, + beautifulsoup4, + buildPythonPackage, + fetchPypi, + httpx, + setuptools, + termcolor, + tqdm, + trio, +}: + +buildPythonPackage rec { + pname = "ignorant"; + version = "1.2"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-SLjED08uI+RjX+E0WHTQceReTEaY9WLPhXR3n0fP080="; + }; + + pythonRemoveDeps = [ + # https://github.com/megadose/ignorant/pull/37 + "argparse" + # https://github.com/megadose/ignorant/pull/36 + "bs4" + ]; + + build-system = [ setuptools ]; + + dependencies = [ + beautifulsoup4 + httpx + termcolor + tqdm + trio + ]; + + # Module has no tests + doCheck = false; + + pythonImportsCheck = [ "ignorant" ]; + + meta = { + description = "Module to check if a phone number is used on different sites"; + homepage = "https://pypi.org/project/ignorant/"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/langgraph-cli/default.nix b/pkgs/development/python-modules/langgraph-cli/default.nix index cf4af2833d67..d34e924c73bc 100644 --- a/pkgs/development/python-modules/langgraph-cli/default.nix +++ b/pkgs/development/python-modules/langgraph-cli/default.nix @@ -8,9 +8,11 @@ # dependencies click, - langgraph, + httpx, langgraph-runtime-inmem, langgraph-sdk, + langgraph, + pathspec, python-dotenv, # testing @@ -24,14 +26,14 @@ buildPythonPackage (finalAttrs: { pname = "langgraph-cli"; - version = "0.4.19"; + version = "0.4.21"; pyproject = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langgraph"; tag = "cli==${finalAttrs.version}"; - hash = "sha256-a92xh9BOA3gxJ3TLRQc49G611+LnCukhT3kgf6ian6c="; + hash = "sha256-PwVJzg+LQ6gScd/lewBqN66rzADnucMeIA/4gmP4xPw="; }; sourceRoot = "${finalAttrs.src.name}/libs/cli"; @@ -40,7 +42,10 @@ buildPythonPackage (finalAttrs: { dependencies = [ click + httpx langgraph-sdk + pathspec + python-dotenv ]; optional-dependencies = { diff --git a/pkgs/development/python-modules/lightgbm/default.nix b/pkgs/development/python-modules/lightgbm/default.nix index 5409d1662452..57e90a429249 100644 --- a/pkgs/development/python-modules/lightgbm/default.nix +++ b/pkgs/development/python-modules/lightgbm/default.nix @@ -18,7 +18,7 @@ # buildInputs llvmPackages, - boost, + boost187, ocl-icd, opencl-headers, @@ -42,7 +42,10 @@ assert gpuSupport -> !cudaSupport; assert cudaSupport -> !gpuSupport; -buildPythonPackage rec { +let + effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv; +in +buildPythonPackage.override { stdenv = effectiveStdenv; } (finalAttrs: { inherit (pkgs.lightgbm) pname version @@ -51,22 +54,10 @@ buildPythonPackage rec { pyproject = true; src = fetchPypi { - inherit pname version; + inherit (finalAttrs) pname version; hash = "sha256-yxxZcg61aTicC6dNFPUjUbVzr0ifIwAyocnzFPi6t/4="; }; - # Patch dll search path to fix proper discovery of lib_lightgbm.so - # Exception: Cannot find lightgbm library file in following paths: - # /nix/store/...-python3.13-lightgbm-4.6.0/lib/python3.13/site-packages/lib_lightgbm.so - # /nix/store/...-python3.13-lightgbm-4.6.0/lib/python3.13/site-packages/lightgbm/bin/lib_lightgbm.so - # /nix/store/...-python3.13-lightgbm-4.6.0/lib/python3.13/site-packages/lightgbm/lib/lib_lightgbm.so - postPatch = '' - substituteInPlace lightgbm/libpath.py \ - --replace-fail \ - 'curr_path.parents[0] / "lib",' \ - 'curr_path.parents[1] / "lib",' - ''; - build-system = [ scikit-build-core ]; @@ -85,7 +76,7 @@ buildPythonPackage rec { buildInputs = (lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ]) ++ (lib.optionals gpuSupport [ - boost + boost187 ocl-icd opencl-headers ]) @@ -102,6 +93,13 @@ buildPythonPackage rec { cmakeFlags = [ (lib.cmakeBool "USE_GPU" gpuSupport) (lib.cmakeBool "USE_CUDA" cudaSupport) + # Set in pyproject.toml for `cmake.args` in `[tool.scikit-build]`, + # but not set by our hooks. + (lib.cmakeBool "__BUILD_FOR_PYTHON" true) + ] + ++ lib.optionals cudaSupport [ + # build fails otherwise + (lib.cmakeFeature "CMAKE_CUDA_STANDARD" "14") ]; optional-dependencies = { @@ -128,8 +126,11 @@ buildPythonPackage rec { meta = { description = "Fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework"; homepage = "https://github.com/lightgbm-org/LightGBM"; - changelog = "https://github.com/lightgbm-org/LightGBM/releases/tag/v${version}"; + changelog = "https://github.com/lightgbm-org/LightGBM/releases/tag/v${finalAttrs.version}"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ teh ]; + maintainers = with lib.maintainers; [ + flokli + teh + ]; }; -} +}) diff --git a/pkgs/development/python-modules/pydig/default.nix b/pkgs/development/python-modules/pydig/default.nix new file mode 100644 index 000000000000..8cfea5037b59 --- /dev/null +++ b/pkgs/development/python-modules/pydig/default.nix @@ -0,0 +1,46 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + fetchpatch, + pkgs, + poetry-core, + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "pydig"; + version = "0.4.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "leonsmith"; + repo = "pydig"; + tag = "v${finalAttrs.version}"; + hash = "sha256-bNGqIEGPcd/TSTSDs2nGxBh60QI7sXRX9A0NVYflqPc="; + }; + + patches = [ + # Switch to poetry-core, https://github.com/leonsmith/pydig/pull/21 + (fetchpatch { + name = "switch-to-poetry-core.patch"; + url = "https://github.com/leonsmith/pydig/commit/6e8ad99494b16084974c799db9afa020f1741886.patch"; + hash = "sha256-KhVQICsR93n+EuCcGhj81lChB/gBSQWncg1PYyo0dlc="; + }) + ]; + + build-system = [ poetry-core ]; + + dependencies = [ pkgs.dig ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "pydig" ]; + + meta = { + description = "Python wrapper library for the 'dig' command line tool"; + homepage = "https://github.com/leonsmith/pydig"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/development/python-modules/pyosmium/default.nix b/pkgs/development/python-modules/pyosmium/default.nix index 925c8730b17f..fa20f2cfa3f2 100644 --- a/pkgs/development/python-modules/pyosmium/default.nix +++ b/pkgs/development/python-modules/pyosmium/default.nix @@ -22,7 +22,7 @@ buildPythonPackage rec { pname = "pyosmium"; - version = "4.3.0"; + version = "4.3.1"; pyproject = true; disabled = isPyPy; @@ -31,7 +31,7 @@ buildPythonPackage rec { owner = "osmcode"; repo = "pyosmium"; tag = "v${version}"; - hash = "sha256-baLa3Zy67kbUBGoDqJjfO/ICSbr7cNYY8bUuVfcy3yQ="; + hash = "sha256-lEkT+3R6200XarMW1oZcOzMLPviDcpG8kQilXVWOyu0="; }; build-system = [ diff --git a/pkgs/development/python-modules/pyvlx/default.nix b/pkgs/development/python-modules/pyvlx/default.nix index 92d0b6f5b8d6..5d06a71b3519 100644 --- a/pkgs/development/python-modules/pyvlx/default.nix +++ b/pkgs/development/python-modules/pyvlx/default.nix @@ -12,14 +12,14 @@ buildPythonPackage (finalAttrs: { pname = "pyvlx"; - version = "0.2.32"; + version = "0.2.33"; pyproject = true; src = fetchFromGitHub { owner = "Julius2342"; repo = "pyvlx"; tag = finalAttrs.version; - hash = "sha256-ArNWXvYZ/eZWPUvV8z/+6WsAcm5MTnKblMrUFj51JhM="; + hash = "sha256-CdBpXga/OxkNILUPDe8bna0wbwNk7GLzYgZJeScJ948="; }; build-system = [ diff --git a/pkgs/development/python-modules/qpageview/default.nix b/pkgs/development/python-modules/qpageview/default.nix index 238c489ca28d..ebe6aef0af6c 100644 --- a/pkgs/development/python-modules/qpageview/default.nix +++ b/pkgs/development/python-modules/qpageview/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "qpageview"; - version = "1.0.3"; + version = "1.0.4"; pyproject = true; src = fetchFromGitHub { owner = "frescobaldi"; repo = "qpageview"; tag = "v${version}"; - hash = "sha256-cKidVtsqNXGuWNTTgvVOP3Wyf6M+Xctwaq7pOZb8eeo="; + hash = "sha256-PqoYxSYOsR/tsV3NZmxCtK1fKQuo8WUJZVBSNRjVNLw="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/requests-random-user-agent/default.nix b/pkgs/development/python-modules/requests-random-user-agent/default.nix new file mode 100644 index 000000000000..5f7ed47ddc93 --- /dev/null +++ b/pkgs/development/python-modules/requests-random-user-agent/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + requests, + pytestCheckHook, + pytest-httpbin, +}: + +buildPythonPackage (finalAttrs: { + pname = "requests-random-user-agent"; + version = "2025.01.19"; + pyproject = true; + + src = fetchFromGitHub { + owner = "DavidWittman"; + repo = "requests-random-user-agent"; + tag = finalAttrs.version; + hash = "sha256-El/aibqEyx5diVTOe/4PEFB7KRfKqUJGPar6j6hZyIc="; + }; + + build-system = [ setuptools ]; + + dependencies = [ requests ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "requests_random_user_agent" ]; + + disabledTests = [ + # Tests require network access + "test_request" + "test_request_different_without_session" + "test_request_without_session" + ]; + + meta = { + description = "Configures the requests library to randomly select a desktop User-Agent"; + homepage = "https://github.com/DavidWittman/requests-random-user-agent"; + changelog = "https://github.com/DavidWittman/requests-random-user-agent/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/development/python-modules/rfc3161-client/default.nix b/pkgs/development/python-modules/rfc3161-client/default.nix index ab9df7c1aadd..9d8dfdc33826 100644 --- a/pkgs/development/python-modules/rfc3161-client/default.nix +++ b/pkgs/development/python-modules/rfc3161-client/default.nix @@ -9,20 +9,20 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "rfc3161-client"; - version = "1.0.5"; + version = "1.0.6"; pyproject = true; src = fetchFromGitHub { owner = "trailofbits"; repo = "rfc3161-client"; - tag = "v${version}"; - hash = "sha256-EF4d9MnBhWt99vy2MOK+u0aUQ3ZEH/8mYezlWQtGvhU="; + tag = "v${finalAttrs.version}"; + hash = "sha256-8OjohrHqUgsKXRZ28Au6Un6Wlzh81XVSQosoQC2f+Fs="; }; cargoDeps = rustPlatform.fetchCargoVendor { - inherit src pname; + inherit (finalAttrs) src pname; hash = "sha256-jQsogV+qR0jAkHz/Slg9oBO/f96osU8YcjuaX4ZJQTk="; }; @@ -50,7 +50,7 @@ buildPythonPackage rec { maintainers = with lib.maintainers; [ bot-wxt1221 ]; license = lib.licenses.asl20; platforms = lib.platforms.all; - changelog = "https://github.com/trailofbits/rfc3161-client/releases/tag/v${version}"; + changelog = "https://github.com/trailofbits/rfc3161-client/releases/tag/${finalAttrs.src.tag}"; description = "Opinionated Python RFC3161 Client"; }; -} +}) diff --git a/pkgs/development/python-modules/weheat/default.nix b/pkgs/development/python-modules/weheat/default.nix index f4a5fd26782d..778d70faf839 100644 --- a/pkgs/development/python-modules/weheat/default.nix +++ b/pkgs/development/python-modules/weheat/default.nix @@ -13,14 +13,14 @@ buildPythonPackage (finalAttrs: { pname = "weheat"; - version = "2026.2.28"; + version = "2026.4.8"; pyproject = true; src = fetchFromGitHub { owner = "wefabricate"; repo = "wh-python"; tag = finalAttrs.version; - hash = "sha256-V29B30LztIHFbTRTqppR3kvVNwDoK4BPq5fK1blJUrU="; + hash = "sha256-AJaGedI0ctp0TCgfjB9AkM+VH9zqTqosgWq4nskOMSo="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/wiim/default.nix b/pkgs/development/python-modules/wiim/default.nix index 71dbb31e5f9a..612be92c7006 100644 --- a/pkgs/development/python-modules/wiim/default.nix +++ b/pkgs/development/python-modules/wiim/default.nix @@ -11,14 +11,14 @@ buildPythonPackage (finalAttrs: { pname = "wiim"; - version = "0.1.0"; + version = "0.1.1"; pyproject = true; src = fetchFromGitHub { owner = "Linkplay2020"; repo = "wiim"; tag = "v${finalAttrs.version}"; - hash = "sha256-cX8CLbzoNUs8u0+HLcg9C5aw48Dw/wI19T/q/5np6KE="; + hash = "sha256-WJbnVJ7ZM4wZk3Y8zTRc3i24CyTA8Wz9EKYr5BNlx6o="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix index ead691a159f1..7ff247d4c4d6 100644 --- a/pkgs/development/python-modules/xml2rfc/default.nix +++ b/pkgs/development/python-modules/xml2rfc/default.nix @@ -23,14 +23,14 @@ buildPythonPackage rec { pname = "xml2rfc"; - version = "3.32.0"; + version = "3.33.0"; pyproject = true; src = fetchFromGitHub { owner = "ietf-tools"; repo = "xml2rfc"; tag = "v${version}"; - hash = "sha256-3SE54ihJY5zs4YIROalHhKoeCiXCk6wYgaOBHEP3ze0="; + hash = "sha256-eoTuA4OJjqJGRP+uRi2TMWfS3yrCCUPIKI2uNPnjqcA="; }; postPatch = '' diff --git a/pkgs/development/rocm-modules/miopen/default.nix b/pkgs/development/rocm-modules/miopen/default.nix index 7a6eb06b4999..396f23b00291 100644 --- a/pkgs/development/rocm-modules/miopen/default.nix +++ b/pkgs/development/rocm-modules/miopen/default.nix @@ -23,6 +23,7 @@ half, boost, sqlite, + symlinkJoin, bzip2, lbzip2, nlohmann_json, @@ -82,6 +83,15 @@ let ) ); + # for hiprtcCompileProgram (dropout kernels require rocrand in -I at runtime) + hiprtcCompileRocmPath = symlinkJoin { + name = "miopen-hiprtc-compile-rocm-path"; + paths = [ + clr + rocrand + ]; + }; + # Kernel databases moved from Git LFS to DVC (anonymous s3 bucket s3://therock-dvc/rocm-libraries) fetchKdb = name: @@ -203,7 +213,6 @@ stdenv.mkDerivation (finalAttrs: { "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" supportedTargets}" "-DGPU_TARGETS=${lib.concatStringsSep ";" supportedTargets}" "-DGPU_ARCHS=${lib.concatStringsSep ";" supportedTargets}" - "-DMIOPEN_USE_SQLITE_PERFDB=ON" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DCMAKE_MODULE_PATH=${clr}/hip/cmake" "-DCMAKE_BUILD_TYPE=Release" @@ -244,7 +253,7 @@ stdenv.mkDerivation (finalAttrs: { patchShebangs test src/composable_kernel fin utils install_deps.cmake substituteInPlace src/comgr.cpp \ - --replace-fail '"/opt/rocm"' '"${clr}"' + --replace-fail '"/opt/rocm"' '"${hiprtcCompileRocmPath}"' '' + linkKDBsTo "src/kernels" + '' @@ -285,12 +294,22 @@ stdenv.mkDerivation (finalAttrs: { requiredSystemFeatures = [ "big-parallel" ]; passthru.impureTests = { - # bash $(nix-build -A rocmPackages.miopen.passthru.impureTests.conv) + # bash $(nix-build -A rocmPackages.miopen.passthru.impureTests.conv) etc + bnorm = callPackage ./test-runtime-compilation.nix { + miopen = finalAttrs.finalPackage; + name = "bnorm"; + testScript = "MIOpenDriver bnorm -n 16 -c 16 -H 512 -W 512 -m 1 -F 1 -s 1 -r 1"; + }; conv = callPackage ./test-runtime-compilation.nix { miopen = finalAttrs.finalPackage; name = "conv"; testScript = "MIOpenDriver conv -n 1 -c 1 -H 4 -W 4 -k 1 -y 3 -x 3 -p 0 -q 0 -V 0"; }; + dropout = callPackage ./test-runtime-compilation.nix { + miopen = finalAttrs.finalPackage; + name = "dropout"; + testScript = "MIOpenDriver dropout -d 64,32,14,14"; + }; pool = callPackage ./test-runtime-compilation.nix { miopen = finalAttrs.finalPackage; name = "pool"; diff --git a/pkgs/development/tools/haskell/microcabal/0.5.3.0-31f1b5dec81561a1b1d36b8e3065ce091dce2ec6.nix b/pkgs/development/tools/haskell/microcabal/0.5.3.0-31f1b5dec81561a1b1d36b8e3065ce091dce2ec6.nix new file mode 100644 index 000000000000..9917f7b4cd29 --- /dev/null +++ b/pkgs/development/tools/haskell/microcabal/0.5.3.0-31f1b5dec81561a1b1d36b8e3065ce091dce2ec6.nix @@ -0,0 +1,7 @@ +import ./common.nix rec { + # MicroCabal has important changes to mirror some changes in MicroHs but its + # version releases are not frequent enough, so we need to use newer commits + version = "0.5.3.0-${rev}"; + rev = "31f1b5dec81561a1b1d36b8e3065ce091dce2ec6"; + hash = "sha256-/oTcWGA43KQwniQKyZEPOlpmoRusDjb+k29GWc8wZzw="; +} diff --git a/pkgs/development/tools/haskell/microcabal/common.nix b/pkgs/development/tools/haskell/microcabal/common.nix new file mode 100644 index 000000000000..bbe7773fbfa7 --- /dev/null +++ b/pkgs/development/tools/haskell/microcabal/common.nix @@ -0,0 +1,69 @@ +{ + version, + rev, + hash, +}: + +{ + lib, + microhs, + stdenv, + fetchFromGitHub, + fetchpatch, +}: + +stdenv.mkDerivation { + pname = "microcabal-stage1"; + inherit version; + + src = fetchFromGitHub { + owner = "augustss"; + repo = "MicroCabal"; + inherit rev hash; + }; + + patches = [ + (fetchpatch { + # https://github.com/augustss/MicroCabal/pull/23 + name = "remove-mtl-mhs-override.patch"; + url = "https://github.com/AlexandreTunstall/MicroCabal/commit/ad30461aaf3dd295f4f5cf5db12635e42557cbfa.patch"; + hash = "sha256-Gmlt76C19ZtCHpKyNim0ggtjXnVuq5F0ywvX8BW15uM="; + }) + (fetchpatch { + # https://github.com/augustss/MicroCabal/pull/34 + name = "package-install-path.patch"; + url = "https://github.com/augustss/MicroCabal/commit/dc358bbab312e1788564fbb36f835347c21792c0.patch"; + hash = "sha256-aUQwuyp+ihXZ9PeSCqGUylcvzA6/ktZyeyBXiEoVY54="; + }) + (fetchpatch { + # https://github.com/augustss/MicroCabal/pull/34 + name = "package-search-path.patch"; + url = "https://github.com/augustss/MicroCabal/commit/3898e5f0596a7391818a0a2cfa994317cda62479.patch"; + hash = "sha256-76yEUpzH5xZZt3U+BCSqyWsImfpOEowupd5YCaYVTO0="; + }) + ]; + + makeFlags = [ + "MHS=${microhs}/bin/mhs" + "MHSDIR=${microhs}/lib/mhs" + ]; + + installPhase = '' + runHook preInstall + install -m755 -d $out/bin + install -m755 bin/mcabal $out/bin/mcabal + runHook postInstall + ''; + + meta = { + description = "A partial Cabal replacement"; + longDescription = '' + A portable subset of the Cabal functionality. + ''; + homepage = "https://github.com/augustss/MicroCabal"; + license = lib.licensesSpdx."Apache-2.0"; + mainProgram = "mcabal"; + maintainers = with lib.maintainers; [ AlexandreTunstall ]; + platforms = lib.platforms.all; + }; +} diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/auto-entities/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/auto-entities/package.nix index d113600c562c..708b9c4df730 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/auto-entities/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/auto-entities/package.nix @@ -6,16 +6,16 @@ buildNpmPackage rec { pname = "auto-entities"; - version = "2.1.0"; + version = "2.2.0"; src = fetchFromGitHub { owner = "Lint-Free-Technology"; repo = "lovelace-auto-entities"; tag = "v${version}"; - hash = "sha256-lErNtkRS6xbbpNvqrOu8k8ZZyKcwwzP/6Hlll4CggEQ="; + hash = "sha256-z+WrkLPuyzfYiKqfCmVyj1o7z/WjByr7gYoJblyQS3I="; }; - npmDepsHash = "sha256-diRmXYsbsMP6jC/dBRraRDknloZKA1SNrnoLST8wMfw="; + npmDepsHash = "sha256-09JWRjHhGHQ2NtLgY5x/dH/B+l/Sy4OfbEckHY3ezZI="; installPhase = '' runHook preInstall diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-metricsdrilldown-app/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-metricsdrilldown-app/default.nix index c340ad3f3425..6eff3bc260ed 100644 --- a/pkgs/servers/monitoring/grafana/plugins/grafana-metricsdrilldown-app/default.nix +++ b/pkgs/servers/monitoring/grafana/plugins/grafana-metricsdrilldown-app/default.nix @@ -2,8 +2,8 @@ grafanaPlugin { pname = "grafana-metricsdrilldown-app"; - version = "2.0.0"; - zipHash = "sha256-6eYQDDIBBKJ66jsDBFQ4GQxXh1eMfFn/kDkIicEPOSM="; + version = "2.0.1"; + zipHash = "sha256-fZVp+Bd5o10doJlzDFSfPgjI33XG+lUnGcOFwERYxBY="; meta = { description = "Queryless experience for browsing Prometheus-compatible metrics. Quickly find related metrics without writing PromQL queries"; license = lib.licenses.agpl3Only; diff --git a/pkgs/servers/sql/postgresql/ext/pg_background.nix b/pkgs/servers/sql/postgresql/ext/pg_background.nix index 603693027b39..5d310ba278ec 100644 --- a/pkgs/servers/sql/postgresql/ext/pg_background.nix +++ b/pkgs/servers/sql/postgresql/ext/pg_background.nix @@ -8,13 +8,13 @@ postgresqlBuildExtension (finalAttrs: { pname = "pg_background"; - version = "1.9.1"; + version = "1.9.2"; src = fetchFromGitHub { owner = "vibhorkum"; repo = "pg_background"; tag = "v${finalAttrs.version}"; - hash = "sha256-UbqMz7s4rSr7kKeZb+UVMc2Xg2r5GuM34SxI6DEIMPg="; + hash = "sha256-R78lB/58/dfZPg4XZ5xGuQ/Ftv+SQzU4aeJop6tslK8="; }; buildInputs = postgresql.buildInputs; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 347b5b985b93..9757095077c5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1161,8 +1161,6 @@ with pkgs; bump2version = with python3Packages; toPythonApplication bump2version; - cgit = callPackage ../applications/version-management/cgit { }; - datalad = with python3Packages; toPythonApplication datalad; datalad-gooey = with python3Packages; toPythonApplication datalad-gooey; @@ -1531,8 +1529,6 @@ with pkgs; gistyc = with python3Packages; toPythonApplication gistyc; - glances = python3Packages.callPackage ../applications/system/glances { }; - glm_1_0_1 = callPackage ../by-name/gl/glm/1_0_1.nix { }; go2tv-lite = go2tv.override { withGui = false; }; @@ -2380,10 +2376,6 @@ with pkgs; fluentd = callPackage ../tools/misc/fluentd { }; - lp_solve = callPackage ../applications/science/math/lp_solve { - inherit (darwin) autoSignDarwinBinariesHook; - }; - fpm = callPackage ../tools/package-management/fpm { }; ferdium = callPackage ../applications/networking/instant-messengers/ferdium { @@ -2663,10 +2655,6 @@ with pkgs; packages = config.ihaskell.packages or (_: [ ]); }; - ilspycmd = callPackage ../development/tools/ilspycmd { - inherit (darwin) autoSignDarwinBinariesHook; - }; - incus-lts = callPackage ../by-name/in/incus/lts.nix { }; indexed-bzip2 = with python3Packages; toPythonApplication indexed-bzip2; @@ -3493,8 +3481,6 @@ with pkgs; youtube-dl = yt-dlp; }; - teamviewer = libsForQt5.callPackage ../applications/networking/remote/teamviewer { }; - buildTeleport = callPackage ../build-support/teleport { }; telepresence = callPackage ../tools/networking/telepresence { @@ -4263,6 +4249,9 @@ with pkgs; haskell.compiler.ghc910 ); + # TODO(@NixOS/haskell): deprecate this alias? + microhs = targetPackages.haskell.packages.microhs.ghc or haskell.compiler.microhs; + alex = haskell.lib.compose.justStaticExecutables haskellPackages.alex; happy = haskell.lib.compose.justStaticExecutables haskellPackages.happy; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index a880e1767be7..a5adeb6cab59 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -68,6 +68,9 @@ let ghc910 = sets.ghc9103; ghc912 = sets.ghc9123; ghc914 = sets.ghc9141; + + microhs_0_15 = sets.microhs_0_15_4_0; + microhs = sets.microhs_0_15; }; in { @@ -220,15 +223,24 @@ in # with "native" and "gmp" backends. native-bignum = let - nativeBignumGhcNames = pkgs.lib.filter (name: !(builtins.elem name nativeBignumExcludes)) ( - pkgs.lib.attrNames compiler - ); + isNativeBignumGhc = + name: + !(builtins.elem name nativeBignumExcludes) && !(compiler.${name} ? isMhs && compiler.${name}.isMhs); + nativeBignumGhcNames = pkgs.lib.filter isNativeBignumGhc (pkgs.lib.attrNames compiler); in pkgs.lib.recurseIntoAttrs ( pkgs.lib.genAttrs nativeBignumGhcNames ( name: compiler.${name}.override { enableNativeBignum = true; } ) ); + + microhs-boot = callPackage ../development/compilers/microhs/boot.nix { + microhs-src = bb.compiler.microhs_0_15_4_0; + }; + + microhs_0_15_4_0 = callPackage ../development/compilers/microhs/0.15.4.0.nix { + inherit (bb.compiler) microhs-boot; + }; } // chooseDefaultVersions compiler // pkgs.lib.optionalAttrs config.allowAliases { @@ -332,6 +344,13 @@ in buildHaskellPackages = bh.packages.native-bignum.${name}; } ); + + microhs_0_15_4_0 = callPackage ../development/haskell-modules { + buildHaskellPackages = bh.packages.microhs_0_15_4_0; + ghc = bh.compiler.microhs_0_15_4_0; + compilerConfig = callPackage ../development/haskell-modules/configuration-microhs.nix { }; + packageSetConfig = bootstrapPackageSet; + }; } // chooseDefaultVersions packages // pkgs.lib.optionalAttrs config.allowAliases { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index fae5d550ee45..d735584a02da 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7014,6 +7014,8 @@ self: super: with self; { hg-git = callPackage ../development/python-modules/hg-git { }; + hibpwned = callPackage ../development/python-modules/hibpwned { }; + hickle = callPackage ../development/python-modules/hickle { }; hid = callPackage ../development/python-modules/hid { inherit (pkgs) hidapi; }; @@ -7390,6 +7392,8 @@ self: super: with self; { ignite = callPackage ../development/python-modules/ignite { }; + ignorant = callPackage ../development/python-modules/ignorant { }; + igraph = callPackage ../development/python-modules/igraph { inherit (pkgs) igraph; }; ihcsdk = callPackage ../development/python-modules/ihcsdk { }; @@ -13592,6 +13596,8 @@ self: super: with self; { pydiffx = callPackage ../development/python-modules/pydiffx { }; + pydig = callPackage ../development/python-modules/pydig { }; + pydigiham = callPackage ../development/python-modules/pydigiham { }; pydiscourse = callPackage ../development/python-modules/pydiscourse { }; @@ -16764,6 +16770,10 @@ self: super: with self; { requests-pkcs12 = callPackage ../development/python-modules/requests-pkcs12 { }; + requests-random-user-agent = + callPackage ../development/python-modules/requests-random-user-agent + { }; + requests-ratelimiter = callPackage ../development/python-modules/requests-ratelimiter { }; requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { }; diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 328581970fd4..48cf97bd9653 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -569,6 +569,56 @@ let weeder = lib.subtractLists [ compilerNames.ghc9123 ] released; + + # MicroHs core packages + ghc-compat = [ + compilerNames.microhs + ]; + MicroCabal = [ + compilerNames.microhs + ]; + + # MicroHs-specific replacement packages + array = [ + compilerNames.microhs + ]; + + # GHC boot packages known to be compatible with MicroHs + containers = [ + compilerNames.microhs + ]; + exceptions = [ + compilerNames.microhs + ]; + filepath = [ + compilerNames.microhs + ]; + mtl = [ + compilerNames.microhs + ]; + os-string = [ + compilerNames.microhs + ]; + parsec = [ + compilerNames.microhs + ]; + terminfo = [ + compilerNames.microhs + ]; + time = [ + compilerNames.microhs + ]; + transformers = [ + compilerNames.microhs + ]; + + # MicroHs upstream tested + hscolour = [ + compilerNames.microhs + ]; + random = [ + compilerNames.microhs + ]; }) { mergeable = pkgs.releaseTools.aggregate {