about summary refs log tree commit diff
path: root/pkgs/by-name/fl
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/fl')
-rw-r--r--pkgs/by-name/fl/flake-checker/package.nix6
-rw-r--r--pkgs/by-name/fl/flameshot/package.nix75
-rw-r--r--pkgs/by-name/fl/flarectl/package.nix6
-rw-r--r--pkgs/by-name/fl/flaresolverr/package.nix82
-rw-r--r--pkgs/by-name/fl/flashgbx/package.nix6
-rw-r--r--pkgs/by-name/fl/flashmq/package.nix4
-rw-r--r--pkgs/by-name/fl/flatpak/package.nix4
-rw-r--r--pkgs/by-name/fl/flatpak/unset-env-vars.patch14
-rw-r--r--pkgs/by-name/fl/flexget/package.nix108
-rw-r--r--pkgs/by-name/fl/flite/package.nix77
-rw-r--r--pkgs/by-name/fl/fluent-bit/macos-11-sdk-compat.patch17
-rw-r--r--pkgs/by-name/fl/fluent-bit/package.nix83
-rw-r--r--pkgs/by-name/fl/fluxcd/package.nix4
-rw-r--r--pkgs/by-name/fl/flye/aarch64-fix.patch15
-rw-r--r--pkgs/by-name/fl/flye/package.nix42
15 files changed, 497 insertions, 46 deletions
diff --git a/pkgs/by-name/fl/flake-checker/package.nix b/pkgs/by-name/fl/flake-checker/package.nix
index 09c3215527f86..5ccab79d97180 100644
--- a/pkgs/by-name/fl/flake-checker/package.nix
+++ b/pkgs/by-name/fl/flake-checker/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "flake-checker";
-  version = "0.1.19";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "DeterminateSystems";
     repo = "flake-checker";
     rev = "v${version}";
-    hash = "sha256-KJTObuHJQjIgg/5A25Ee+7s2SrmtyYFnvcnklYhSCNE=";
+    hash = "sha256-cvjSQNvRnreherInbieJnaanU/TzDAgM544MBi7UWvQ=";
   };
 
-  cargoHash = "sha256-ADqc7H2MClXyYEw/lc9F4HAfpHrDc/lqL/BIL/PTZro=";
+  cargoHash = "sha256-0iH5owyNfIpRz6nYwrJUoqd9lVGZ3T3K8rmsOk2UoGI=";
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
     Security
diff --git a/pkgs/by-name/fl/flameshot/package.nix b/pkgs/by-name/fl/flameshot/package.nix
new file mode 100644
index 0000000000000..bb7137fb48bc7
--- /dev/null
+++ b/pkgs/by-name/fl/flameshot/package.nix
@@ -0,0 +1,75 @@
+{ libsForQt5
+, stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, nix-update-script
+, fetchpatch
+, grim
+, makeBinaryWrapper
+, enableWlrSupport ? false
+}:
+
+stdenv.mkDerivation {
+  pname = "flameshot";
+  # wlr screenshotting is currently only available on unstable version (>12.1.0)
+  version = "12.1.0-unstable-2024-07-02";
+
+  src = fetchFromGitHub {
+    owner = "flameshot-org";
+    repo = "flameshot";
+    rev = "ccb5a27b136a633911b3b1006185530d9beeea5d";
+    hash = "sha256-JIXsdVUR/4183aJ0gvNGYPTyCzX7tCrk8vRtR8bcdhE=";
+  };
+
+  patches = [
+    # https://github.com/flameshot-org/flameshot/pull/3166
+    # fixes fractional scaling calculations on wayland
+    (fetchpatch {
+      name = "10-fix-wayland.patch";
+      url = "https://github.com/flameshot-org/flameshot/commit/5fea9144501f7024344d6f29c480b000b2dcd5a6.patch";
+      hash = "sha256-SnjVbFMDKD070vR4vGYrwLw6scZAFaQA4b+MbI+0W9E=";
+    })
+  ];
+
+  passthru = {
+    updateScript = nix-update-script {
+      extraArgs = [ "--version=branch" ];
+    };
+  };
+
+  cmakeFlags = [
+    (lib.cmakeBool "USE_WAYLAND_CLIPBOARD" true)
+    (lib.cmakeBool "USE_WAYLAND_GRIM" enableWlrSupport)
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    libsForQt5.qttools
+    libsForQt5.qtsvg
+    libsForQt5.wrapQtAppsHook
+    makeBinaryWrapper
+  ];
+
+  buildInputs = [
+    libsForQt5.qtbase
+    libsForQt5.kguiaddons
+  ];
+
+  dontWrapQtApps = true;
+
+  postFixup = ''
+    wrapProgram $out/bin/flameshot \
+      ${lib.optionalString enableWlrSupport "--prefix PATH : ${lib.makeBinPath [ grim ]}"} \
+      ''${qtWrapperArgs[@]}
+  '';
+
+  meta = with lib; {
+    description = "Powerful yet simple to use screenshot software";
+    homepage = "https://github.com/flameshot-org/flameshot";
+    mainProgram = "flameshot";
+    maintainers = with maintainers; [ scode oxalica ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/by-name/fl/flarectl/package.nix b/pkgs/by-name/fl/flarectl/package.nix
index be3cc19a1fdfe..8aecfc55da8ae 100644
--- a/pkgs/by-name/fl/flarectl/package.nix
+++ b/pkgs/by-name/fl/flarectl/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "flarectl";
-  version = "0.98.0";
+  version = "0.101.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflare-go";
     rev = "v${version}";
-    hash = "sha256-h6NLX++cf9pn8plZUKyiE3qcsiXGYHngRio34Mp341g=";
+    hash = "sha256-twQ+my2CZmQDGMZg7bNZwNqSME+HZrWDZkzxKKEKd/0=";
   };
 
-  vendorHash = "sha256-k1JZGkJy5oGI3pEcrStNrsQTh8diNoe4DARqRX4PGS8=";
+  vendorHash = "sha256-gnl5zNNIH1LSAyzrhKIRXvwpUhXEydyDFzNCYtpZEIE=";
 
   subPackages = [ "cmd/flarectl" ];
 
diff --git a/pkgs/by-name/fl/flaresolverr/package.nix b/pkgs/by-name/fl/flaresolverr/package.nix
new file mode 100644
index 0000000000000..07e02231997c3
--- /dev/null
+++ b/pkgs/by-name/fl/flaresolverr/package.nix
@@ -0,0 +1,82 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+
+  makeWrapper,
+
+  chromium,
+  python3,
+  undetected-chromedriver,
+  xorg,
+
+  nixosTests,
+}:
+
+let
+  python = python3.withPackages (
+    ps: with ps; [
+      bottle
+      func-timeout
+      prometheus-client
+      selenium
+      waitress
+      xvfbwrapper
+
+      # For `undetected_chromedriver`
+      looseversion
+      requests
+      websockets
+    ]
+  );
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "flaresolverr";
+  version = "3.3.21";
+
+  src = fetchFromGitHub {
+    owner = "FlareSolverr";
+    repo = "FlareSolverr";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-M/snpYKZK3pgzlhYjRYEiAPlK9DUKYRiiu43KcrAy9g=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postPatch = ''
+    substituteInPlace src/undetected_chromedriver/patcher.py \
+      --replace-fail \
+        "from distutils.version import LooseVersion" \
+        "from looseversion import LooseVersion"
+
+    substituteInPlace src/utils.py \
+      --replace-fail \
+        'CHROME_EXE_PATH = None' \
+        'CHROME_EXE_PATH = "${lib.getExe chromium}"' \
+      --replace-fail \
+        'PATCHED_DRIVER_PATH = None' \
+        'PATCHED_DRIVER_PATH = "${lib.getExe undetected-chromedriver}"'
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,share/${finalAttrs.pname}-${finalAttrs.version}}
+    cp -r * $out/share/${finalAttrs.pname}-${finalAttrs.version}/.
+
+    makeWrapper ${python}/bin/python $out/bin/flaresolverr \
+      --add-flags "$out/share/${finalAttrs.pname}-${finalAttrs.version}/src/flaresolverr.py" \
+      --prefix PATH : "${lib.makeBinPath [ xorg.xvfb ]}"
+  '';
+
+  passthru = {
+    tests.smoke-test = nixosTests.flaresolverr;
+  };
+
+  meta = with lib; {
+    description = "Proxy server to bypass Cloudflare protection";
+    homepage = "https://github.com/FlareSolverr/FlareSolverr";
+    license = licenses.mit;
+    mainProgram = "flaresolverr";
+    maintainers = with maintainers; [ paveloom ];
+    inherit (undetected-chromedriver.meta) platforms;
+  };
+})
diff --git a/pkgs/by-name/fl/flashgbx/package.nix b/pkgs/by-name/fl/flashgbx/package.nix
index c816f7d005280..d6cd2eac6075e 100644
--- a/pkgs/by-name/fl/flashgbx/package.nix
+++ b/pkgs/by-name/fl/flashgbx/package.nix
@@ -8,13 +8,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "flashgbx";
-  version = "3.37";
+  version = "4.2";
 
   src = fetchFromGitHub {
     repo = "FlashGBX";
     owner = "lesserkuma";
-    rev = version;
-    hash = "sha256-3527QmSSpGotFHKTg0yb6MgHKSze+9BECQWqZM3qKsw=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3Oqr70+6BWlt+9M1gkzpcnXC4Q44e1SRI3ylYfMOI90=";
   };
 
   desktopItems = [
diff --git a/pkgs/by-name/fl/flashmq/package.nix b/pkgs/by-name/fl/flashmq/package.nix
index cb39bc06b9ce8..faefc7da71f3b 100644
--- a/pkgs/by-name/fl/flashmq/package.nix
+++ b/pkgs/by-name/fl/flashmq/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flashmq";
-  version = "1.15.2";
+  version = "1.15.4";
 
   src = fetchFromGitHub {
     owner = "halfgaar";
     repo = "FlashMQ";
     rev = "v${version}";
-    hash = "sha256-4ZK8aHDhI0yslx1VoO+cgqj4YQ6AgE0Jy5C4WJ4k4OQ=";
+    hash = "sha256-798BUwjVpsv4OW12mWWXbyqogGX1y182H/u/0Cz3Xow=";
   };
 
   nativeBuildInputs = [ cmake installShellFiles ];
diff --git a/pkgs/by-name/fl/flatpak/package.nix b/pkgs/by-name/fl/flatpak/package.nix
index fc109bf508345..226ea755e184b 100644
--- a/pkgs/by-name/fl/flatpak/package.nix
+++ b/pkgs/by-name/fl/flatpak/package.nix
@@ -58,7 +58,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "flatpak";
-  version = "1.14.6";
+  version = "1.14.8";
 
   # TODO: split out lib once we figure out what to do with triggerdir
   outputs = [
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak/releases/download/${finalAttrs.version}/flatpak-${finalAttrs.version}.tar.xz";
-    hash = "sha256-U482ssb4xw7v0S0TrVsa2DCCAQaovTqfa45NnegeSUY=";
+    hash = "sha256-EBa3Mn96+HiW+VRl9+WBN1DTtwSaN0ChpN3LX6jFNI4=";
   };
 
   patches = [
diff --git a/pkgs/by-name/fl/flatpak/unset-env-vars.patch b/pkgs/by-name/fl/flatpak/unset-env-vars.patch
index 2a88d24f49166..0235022bbf567 100644
--- a/pkgs/by-name/fl/flatpak/unset-env-vars.patch
+++ b/pkgs/by-name/fl/flatpak/unset-env-vars.patch
@@ -1,12 +1,12 @@
 diff --git a/common/flatpak-run.c b/common/flatpak-run.c
-index 6f54a9d0..102d9b90 100644
+index e3f031d4..ed131c0b 100644
 --- a/common/flatpak-run.c
 +++ b/common/flatpak-run.c
-@@ -1902,6 +1902,7 @@ static const ExportData default_exports[] = {
+@@ -571,6 +571,7 @@ static const ExportData default_exports[] = {
+   {"XKB_CONFIG_ROOT", NULL},
+   {"GIO_EXTRA_MODULES", NULL},
    {"GDK_BACKEND", NULL},
-   {"VK_DRIVER_FILES", NULL},
-   {"VK_ICD_FILENAMES", NULL},
 +  {"GDK_PIXBUF_MODULE_FILE", NULL},
- };
- 
- static const ExportData no_ld_so_cache_exports[] = {
+   {"VK_ADD_DRIVER_FILES", NULL},
+   {"VK_ADD_LAYER_PATH", NULL},
+   {"VK_DRIVER_FILES", NULL},
diff --git a/pkgs/by-name/fl/flexget/package.nix b/pkgs/by-name/fl/flexget/package.nix
new file mode 100644
index 0000000000000..e080f4cfdb224
--- /dev/null
+++ b/pkgs/by-name/fl/flexget/package.nix
@@ -0,0 +1,108 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "flexget";
+  version = "3.11.42";
+  pyproject = true;
+
+  # Fetch from GitHub in order to use `requirements.in`
+  src = fetchFromGitHub {
+    owner = "Flexget";
+    repo = "Flexget";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-wDZXSQlIE1qQz463roHp3jepSFMZGSJAPOhKpuXTmG8=";
+  };
+
+  postPatch = ''
+    # remove dependency constraints but keep environment constraints
+    sed 's/[~<>=][^;]*//' -i requirements.txt
+  '';
+
+  build-system = with python3.pkgs; [
+    setuptools
+    wheel
+  ];
+
+  dependencies = with python3.pkgs; [
+    # See https://github.com/Flexget/Flexget/blob/master/pyproject.toml
+    apscheduler
+    beautifulsoup4
+    colorama
+    feedparser
+    guessit
+    html5lib
+    jinja2
+    jsonschema
+    loguru
+    psutil
+    pydantic
+    pynzb
+    pyrss2gen
+    python-dateutil
+    pyyaml
+    rebulk
+    requests
+    rich
+    rpyc
+    sqlalchemy
+
+    # WebUI requirements
+    cherrypy
+    flask-compress
+    flask-cors
+    flask-login
+    flask-restx
+    flask
+    packaging
+    pyparsing
+    werkzeug
+    zxcvbn
+    pendulum
+
+    # Plugins requirements
+    transmission-rpc
+    qbittorrent-api
+    deluge-client
+    cloudscraper
+    python-telegram-bot
+  ];
+
+  pythonImportsCheck = [
+    "flexget"
+    "flexget.api.core.authentication"
+    "flexget.api.core.database"
+    "flexget.api.core.plugins"
+    "flexget.api.core.schema"
+    "flexget.api.core.server"
+    "flexget.api.core.tasks"
+    "flexget.api.core.user"
+    "flexget.components.thetvdb.api"
+    "flexget.components.tmdb.api"
+    "flexget.components.trakt.api"
+    "flexget.components.tvmaze.api"
+    "flexget.plugins.clients.aria2"
+    "flexget.plugins.clients.deluge"
+    "flexget.plugins.clients.nzbget"
+    "flexget.plugins.clients.pyload"
+    "flexget.plugins.clients.qbittorrent"
+    "flexget.plugins.clients.rtorrent"
+    "flexget.plugins.clients.transmission"
+    "flexget.plugins.services.kodi_library"
+    "flexget.plugins.services.myepisodes"
+    "flexget.plugins.services.pogcal_acquired"
+  ];
+
+  # ~400 failures
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://flexget.com/";
+    changelog = "https://github.com/Flexget/Flexget/releases/tag/v${version}";
+    description = "Multipurpose automation tool for all of your media";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pbsds ];
+  };
+}
diff --git a/pkgs/by-name/fl/flite/package.nix b/pkgs/by-name/fl/flite/package.nix
new file mode 100644
index 0000000000000..1edb95c2d4b80
--- /dev/null
+++ b/pkgs/by-name/fl/flite/package.nix
@@ -0,0 +1,77 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchpatch,
+  alsa-lib,
+  libpulseaudio,
+  nix-update-script,
+  testers,
+  audioBackend ? "pulseaudio",
+}:
+assert lib.assertOneOf "audioBackend" audioBackend [
+  "alsa"
+  "pulseaudio"
+];
+stdenv.mkDerivation (finalAttrs: {
+  pname = "flite";
+  version = "2.2";
+
+  outputs = [
+    "bin"
+    "dev"
+    "lib"
+    "out"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "festvox";
+    repo = "flite";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-Tq5pyg3TiQt8CPqGXTyLOaGgaeLTmPp+Duw3+2VAF9g=";
+  };
+
+  # https://github.com/festvox/flite/pull/60.
+  # Replaces `ar` with `$(AR)` in config/common_make_rules.
+  # Improves cross-compilation compatibility.
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/festvox/flite/commit/54c65164840777326bbb83517568e38a128122ef.patch";
+      hash = "sha256-hvKzdX7adiqd9D+9DbnfNdqEULg1Hhqe1xElYxNM1B8=";
+    })
+  ];
+
+  buildInputs = lib.optional stdenv.isLinux (
+    {
+      alsa = alsa-lib;
+      pulseaudio = libpulseaudio;
+    }
+    .${audioBackend} or (throw "${audioBackend} is not a supported backend!")
+  );
+
+  configureFlags = [
+    "--enable-shared"
+  ] ++ lib.optionals stdenv.isLinux [ "--with-audio=${audioBackend}" ];
+
+  # main/Makefile creates and removes 'flite_voice_list.c' from multiple targets:
+  # make[1]: *** No rule to make target 'flite_voice_list.c', needed by 'all'.  Stop
+  enableParallelBuilding = false;
+
+  passthru = {
+    tests.version = testers.testVersion {
+      # `flite` does have a `--version` command, but it returns 1
+      command = "flite --help";
+      package = finalAttrs.finalPackage;
+    };
+
+    updateScript = nix-update-script { };
+  };
+
+  meta = {
+    description = "Small, fast run-time speech synthesis engine";
+    homepage = "http://www.festvox.org/flite/";
+    license = lib.licenses.bsdOriginal;
+    maintainers = with lib.maintainers; [ getchoo ];
+    mainProgram = "flite";
+  };
+})
diff --git a/pkgs/by-name/fl/fluent-bit/macos-11-sdk-compat.patch b/pkgs/by-name/fl/fluent-bit/macos-11-sdk-compat.patch
new file mode 100644
index 0000000000000..5063e028e6564
--- /dev/null
+++ b/pkgs/by-name/fl/fluent-bit/macos-11-sdk-compat.patch
@@ -0,0 +1,17 @@
+diff --git i/src/flb_utils.c w/src/flb_utils.c
+index 87637f1331d7..7a0036566438 100644
+--- i/src/flb_utils.c
++++ w/src/flb_utils.c
+@@ -1424,11 +1424,11 @@ int flb_utils_get_machine_id(char **out_id, size_t *out_size)
+         return 0;
+     }
+ #elif defined (FLB_SYSTEM_MACOS)
+     bool bret;
+     CFStringRef serialNumber;
+-    io_service_t platformExpert = IOServiceGetMatchingService(kIOMainPortDefault,
++    io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault,
+         IOServiceMatching("IOPlatformExpertDevice"));
+
+     if (platformExpert) {
+         CFTypeRef serialNumberAsCFString =
+             IORegistryEntryCreateCFProperty(platformExpert,
diff --git a/pkgs/by-name/fl/fluent-bit/package.nix b/pkgs/by-name/fl/fluent-bit/package.nix
new file mode 100644
index 0000000000000..d640a7da023fc
--- /dev/null
+++ b/pkgs/by-name/fl/fluent-bit/package.nix
@@ -0,0 +1,83 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  flex,
+  bison,
+  systemd,
+  postgresql,
+  openssl,
+  libyaml,
+  darwin,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "fluent-bit";
+  version = "3.1.4";
+
+  src = fetchFromGitHub {
+    owner = "fluent";
+    repo = "fluent-bit";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-TXFVvnjEitEFwQAuqNCgV0xbABcDxGS9KfCUenKN448=";
+  };
+
+  # optional only to avoid linux rebuild
+  patches = lib.optionals stdenv.isDarwin [ ./macos-11-sdk-compat.patch ];
+
+  nativeBuildInputs = [
+    cmake
+    flex
+    bison
+  ];
+
+  buildInputs =
+    [
+      openssl
+      libyaml
+      postgresql
+    ]
+    ++ lib.optionals stdenv.isLinux [ systemd ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk_11_0.frameworks.IOKit
+      darwin.apple_sdk_11_0.frameworks.Foundation
+    ];
+
+  cmakeFlags = [
+    "-DFLB_RELEASE=ON"
+    "-DFLB_METRICS=ON"
+    "-DFLB_HTTP_SERVER=ON"
+    "-DFLB_OUT_PGSQL=ON"
+  ] ++ lib.optionals stdenv.isDarwin [ "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13" ];
+
+  env.NIX_CFLAGS_COMPILE = toString (
+    # Used by the embedded luajit, but is not predefined on older mac SDKs.
+    lib.optionals stdenv.isDarwin [ "-DTARGET_OS_IPHONE=0" ]
+    # Assumes GNU version of strerror_r, and the posix version has an
+    # incompatible return type.
+    ++ lib.optionals (!stdenv.hostPlatform.isGnu) [ "-Wno-int-conversion" ]
+  );
+
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  postPatch = ''
+    substituteInPlace src/CMakeLists.txt \
+      --replace /lib/systemd $out/lib/systemd
+  '';
+
+  meta = {
+    changelog = "https://github.com/fluent/fluent-bit/releases/tag/v${finalAttrs.version}";
+    description = "Log forwarder and processor, part of Fluentd ecosystem";
+    homepage = "https://fluentbit.io";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      samrose
+      fpletz
+    ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/fl/fluxcd/package.nix b/pkgs/by-name/fl/fluxcd/package.nix
index 712f075459b60..8d691f58b5a55 100644
--- a/pkgs/by-name/fl/fluxcd/package.nix
+++ b/pkgs/by-name/fl/fluxcd/package.nix
@@ -60,8 +60,8 @@ buildGoModule rec {
 
   postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
     for shell in bash fish zsh; do
-      $out/bin/flux completion $shell > flux.$shell
-      installShellCompletion flux.$shell
+      installShellCompletion --cmd flux \
+        --$shell <($out/bin/flux completion $shell)
     done
   '';
 
diff --git a/pkgs/by-name/fl/flye/aarch64-fix.patch b/pkgs/by-name/fl/flye/aarch64-fix.patch
deleted file mode 100644
index 02588fc63e218..0000000000000
--- a/pkgs/by-name/fl/flye/aarch64-fix.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 75f62aed..91b9571b 100644
---- a/Makefile
-+++ b/Makefile
-@@ -16,6 +16,10 @@ ifeq ($(shell uname -m),arm64)
- 	export aarch64=1
- endif
- 
-+ifeq ($(shell uname -m),aarch64)
-+	export aarch64=1
-+endif
-+
- .PHONY: clean all profile debug minimap2 samtools
- 
- .DEFAULT_GOAL := all
diff --git a/pkgs/by-name/fl/flye/package.nix b/pkgs/by-name/fl/flye/package.nix
index 76ea84a1c9a04..41e098609597a 100644
--- a/pkgs/by-name/fl/flye/package.nix
+++ b/pkgs/by-name/fl/flye/package.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , python3Packages
 , zlib
 , curl
@@ -11,6 +12,7 @@
 python3Packages.buildPythonApplication rec {
   pname = "flye";
   version = "2.9.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "fenderglass";
@@ -19,7 +21,33 @@ python3Packages.buildPythonApplication rec {
     hash = "sha256-lwiY0VTEsLMMXt1VowsS3jj44v30Z766xNRwQtQKr10=";
   };
 
-  nativeCheckInputs = [ python3Packages.pytestCheckHook ];
+  patches = [
+    (fetchpatch {
+      # https://github.com/mikolmogorov/Flye/pull/691
+      name = "aarch64-fix.patch";
+      url = "https://github.com/mikolmogorov/Flye/commit/e4dcc3fdf0fa1430a974fcd7da31b03ea642df9b.patch";
+      hash = "sha256-Ny2daPt8eYOKnwZ6bdBoCcFWhe9eiIHF4vJU/occwU0=";
+    })
+    (fetchpatch {
+      # https://github.com/mikolmogorov/Flye/pull/711
+      name = "remove-distutils.patch";
+      url = "https://github.com/mikolmogorov/Flye/commit/fb34f1ccfdf569d186a4ce822ee18eced736636b.patch";
+      hash = "sha256-52bnZ8XyP0HsY2OpNYMU3xJgotNVdQc/O2w3XIReUdQ=";
+    })
+    (fetchpatch {
+      # https://github.com/mikolmogorov/Flye/pull/670
+      name = "remove-find_module.patch";
+      url = "https://github.com/mikolmogorov/Flye/commit/441b1c6eb0f60b7c4fb1a40d659c7dabb7ad41b6.patch";
+      hash = "sha256-RytFIN1STK33/nvXpck6woQcwV/e1fmA8AgmptiIiDU=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace flye/polishing/alignment.py \
+      --replace-fail "/bin/bash" "${lib.getExe bash}"
+  '';
+
+  build-system = [ python3Packages.setuptools ];
 
   propagatedBuildInputs = [ coreutils ];
 
@@ -29,22 +57,18 @@ python3Packages.buildPythonApplication rec {
     libdeflate
   ];
 
-  patches = [ ./aarch64-fix.patch ];
+  pythonImportsCheck = [ "flye" ];
 
-  postPatch = ''
-    substituteInPlace flye/polishing/alignment.py \
-      --replace-fail "/bin/bash" "${lib.getExe bash}"
+  nativeCheckInputs = [ python3Packages.pytestCheckHook ];
 
-    substituteInPlace flye/tests/test_toy.py \
-      --replace-fail "find_executable(\"flye" "find_executable(\"$out/bin/flye" \
-      --replace-fail "[\"flye" "[\"$out/bin/flye"
+  preCheck = ''
+    export PATH=$out/bin:$PATH
   '';
 
   meta = with lib; {
     description = "De novo assembler for single molecule sequencing reads using repeat graphs";
     homepage = "https://github.com/fenderglass/Flye";
     license = licenses.bsd3;
-    platforms = platforms.unix;
     mainProgram = "flye";
     maintainers = with maintainers; [ assistant ];
   };