about summary refs log tree commit diff
path: root/pkgs/by-name/bi
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/bi')
-rw-r--r--pkgs/by-name/bi/bibclean/package.nix27
-rw-r--r--pkgs/by-name/bi/biber-ms/package.nix55
-rw-r--r--pkgs/by-name/bi/biber/package.nix36
-rw-r--r--pkgs/by-name/bi/biblatex-check/package.nix29
-rw-r--r--pkgs/by-name/bi/bibletime/package.nix74
-rw-r--r--pkgs/by-name/bi/biboumi/catch.patch30
-rw-r--r--pkgs/by-name/bi/biboumi/package.nix42
-rw-r--r--pkgs/by-name/bi/bibtex-tidy/package.nix40
-rw-r--r--pkgs/by-name/bi/bibtex2html/package.nix23
-rw-r--r--pkgs/by-name/bi/bibtool/package.nix28
-rw-r--r--pkgs/by-name/bi/bibutils/package.nix51
-rw-r--r--pkgs/by-name/bi/bic/package.nix45
-rw-r--r--pkgs/by-name/bi/bicep/deps.nix87
-rw-r--r--pkgs/by-name/bi/bicep/package.nix6
-rw-r--r--pkgs/by-name/bi/bicgl/package.nix31
-rw-r--r--pkgs/by-name/bi/bicon/package.nix47
-rw-r--r--pkgs/by-name/bi/bicpl/package.nix43
-rw-r--r--pkgs/by-name/bi/bigloo/package.nix77
-rw-r--r--pkgs/by-name/bi/biglybt/package.nix4
-rw-r--r--pkgs/by-name/bi/bilibili/package.nix74
-rw-r--r--pkgs/by-name/bi/bililiverecorder/package.nix52
-rw-r--r--pkgs/by-name/bi/bin2c/package.nix32
-rw-r--r--pkgs/by-name/bi/binbloom/package.nix28
-rw-r--r--pkgs/by-name/bi/bind/dont-keep-configure-flags.patch40
-rw-r--r--pkgs/by-name/bi/bind/package.nix133
-rw-r--r--pkgs/by-name/bi/bindfs/package.nix38
-rw-r--r--pkgs/by-name/bi/bingo/package.nix31
-rw-r--r--pkgs/by-name/bi/bingrep/package.nix23
-rw-r--r--pkgs/by-name/bi/binsider/package.nix27
-rw-r--r--pkgs/by-name/bi/bioawk/package.nix51
-rw-r--r--pkgs/by-name/bi/biodiff/package.nix30
-rw-r--r--pkgs/by-name/bi/biome/package.nix30
-rw-r--r--pkgs/by-name/bi/biosdevname/makefile.patch13
-rw-r--r--pkgs/by-name/bi/biosdevname/package.nix29
-rw-r--r--pkgs/by-name/bi/bip/package.nix42
-rw-r--r--pkgs/by-name/bi/bird-lg/package.nix51
-rw-r--r--pkgs/by-name/bi/bird/dont-create-sysconfdir-2.patch6
-rw-r--r--pkgs/by-name/bi/bird/package.nix36
-rw-r--r--pkgs/by-name/bi/birdwatcher/package.nix40
-rw-r--r--pkgs/by-name/bi/biscuit-cli/package.nix38
-rw-r--r--pkgs/by-name/bi/bison/package.nix58
-rw-r--r--pkgs/by-name/bi/bisoncpp/package.nix56
-rw-r--r--pkgs/by-name/bi/bit/package.nix32
-rw-r--r--pkgs/by-name/bi/bitbake-language-server/package.nix4
-rw-r--r--pkgs/by-name/bi/bitcomet/package.nix43
-rw-r--r--pkgs/by-name/bi/bite/package.nix8
-rw-r--r--pkgs/by-name/bi/bitlbee-discord/package.nix31
-rw-r--r--pkgs/by-name/bi/bitlbee-facebook/package.nix30
-rw-r--r--pkgs/by-name/bi/bitlbee-mastodon/package.nix28
-rw-r--r--pkgs/by-name/bi/bitlbee-steam/package.nix29
-rw-r--r--pkgs/by-name/bi/bitmagnet/package.nix4
-rw-r--r--pkgs/by-name/bi/bitmeter/package.nix30
-rw-r--r--pkgs/by-name/bi/bitrise/package.nix4
-rw-r--r--pkgs/by-name/bi/bitwarden-cli/package.nix2
-rw-r--r--pkgs/by-name/bi/bitwarden-desktop/package.nix35
-rw-r--r--pkgs/by-name/bi/bitwise/package.nix25
-rw-r--r--pkgs/by-name/bi/bitwuzla/package.nix62
57 files changed, 1967 insertions, 133 deletions
diff --git a/pkgs/by-name/bi/bibclean/package.nix b/pkgs/by-name/bi/bibclean/package.nix
new file mode 100644
index 000000000000..eb84ff8d7037
--- /dev/null
+++ b/pkgs/by-name/bi/bibclean/package.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "bibclean";
+  version = "3.07";
+
+  src = fetchurl {
+    url = "http://ftp.math.utah.edu/pub/bibclean/bibclean-${version}.tar.xz";
+    sha256 = "sha256-kZM2eC6ePCBOYPVkhf0fjdZ562IvyP0fSDNZXuEBkaY=";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile.in --replace man/man1 share/man/man1
+  '';
+
+  preInstall = ''
+    mkdir -p $out/bin $out/share/man/man1
+  '';
+
+  meta = with lib; {
+    description = "Prettyprint and syntax check BibTeX and Scribe bibliography data base files";
+    homepage = "http://ftp.math.utah.edu/pub/bibclean";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/pkgs/by-name/bi/biber-ms/package.nix b/pkgs/by-name/bi/biber-ms/package.nix
new file mode 100644
index 000000000000..38452d7f9638
--- /dev/null
+++ b/pkgs/by-name/bi/biber-ms/package.nix
@@ -0,0 +1,55 @@
+{ lib, stdenv, fetchFromGitHub, perlPackages, shortenPerlShebang, texlive }:
+
+let
+  biberSource = texlive.pkgs.biber-ms.texsource;
+  # missing test file
+  multiscriptBltxml = (fetchFromGitHub {
+    owner = "plk";
+    repo = "biber";
+    rev = "e8d056433063add7800f24589de76f89c4b64c20";
+    hash = "sha256-QnN6Iyw6iOjfTX7DLVptsfAO/QNn9vOIk5IZlI15EvQ=";
+  }) + "/t/tdata/multiscript.bltxml";
+in
+
+perlPackages.buildPerlModule {
+  inherit (biberSource) pname version;
+
+  src = "${biberSource}/source/bibtex/biber-ms/biblatex-biber-ms.tar.gz";
+
+  # from META.json
+  # (aliases in /* */ are replaced by the actual dependencies to prevent
+  # evaluation errors with config.allowAliases = false)
+  buildInputs = with perlPackages; [
+    # build deps
+    ConfigAutoConf ExtUtilsLibBuilder FileWhich TestDifferences
+    /*TestMore=TestSimple=null*/
+    # runtime deps
+    BusinessISBN BusinessISMN BusinessISSN ClassAccessor DataCompare DataDump
+    DataUniqid DateTimeCalendarJulian DateTimeFormatBuilder EncodeEUCJPASCII
+    EncodeHanExtra EncodeJIS2K EncodeLocale FileSlurper IOString IPCRun3
+    LWPProtocolHttps LWP/*LWPUserAgent*/ libwwwperl LinguaTranslit ListAllUtils
+    ListMoreUtils ListMoreUtilsXS LogLog4perl MozillaCA ParseRecDescent
+    PerlIOutf8_strict RegexpCommon SortKey TextBalanced TextBibTeX TextCSV
+    TextCSV_XS TextRoman URI UnicodeLineBreak XMLLibXML XMLLibXMLSimple
+    XMLLibXSLT XMLWriter autovivification
+  ];
+  nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
+
+  preConfigure = ''
+    cp '${multiscriptBltxml}' t/tdata/multiscript.bltxml
+  '';
+
+  postInstall = ''
+    mv "$out"/bin/biber{,-ms}
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+    shortenPerlShebang "$out"/bin/biber-ms
+  '';
+
+  meta = with lib; {
+    description = "Backend for BibLaTeX (multiscript version)";
+    license = biberSource.meta.license;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.xworld21 ];
+    mainProgram = "biber-ms";
+  };
+}
diff --git a/pkgs/by-name/bi/biber/package.nix b/pkgs/by-name/bi/biber/package.nix
new file mode 100644
index 000000000000..1e5a4ec21666
--- /dev/null
+++ b/pkgs/by-name/bi/biber/package.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, perlPackages, shortenPerlShebang, texlive }:
+
+let
+  biberSource = texlive.pkgs.biber.texsource;
+in
+
+perlPackages.buildPerlModule {
+  inherit (biberSource) pname version;
+
+  src = "${biberSource}/source/bibtex/biber/biblatex-biber.tar.gz";
+
+  buildInputs = with perlPackages; [
+    autovivification BusinessISBN BusinessISMN BusinessISSN ConfigAutoConf
+    DataCompare DataDump DateSimple EncodeEUCJPASCII EncodeHanExtra EncodeJIS2K
+    DateTime DateTimeFormatBuilder DateTimeCalendarJulian
+    ExtUtilsLibBuilder FileSlurper FileWhich IPCRun3 LogLog4perl LWPProtocolHttps ListAllUtils
+    ListMoreUtils MozillaCA ParseRecDescent IOString ReadonlyXS RegexpCommon TextBibTeX
+    UnicodeLineBreak URI XMLLibXMLSimple XMLLibXSLT XMLWriter
+    ClassAccessor TextCSV TextCSV_XS TextRoman DataUniqid LinguaTranslit SortKey
+    TestDifferences
+    PerlIOutf8_strict
+  ];
+  nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
+
+  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    shortenPerlShebang $out/bin/biber
+  '';
+
+  meta = with lib; {
+    description = "Backend for BibLaTeX";
+    license = biberSource.meta.license;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.ttuegel ];
+    mainProgram = "biber";
+  };
+}
diff --git a/pkgs/by-name/bi/biblatex-check/package.nix b/pkgs/by-name/bi/biblatex-check/package.nix
new file mode 100644
index 000000000000..beff04156190
--- /dev/null
+++ b/pkgs/by-name/bi/biblatex-check/package.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "biblatex-check";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "Pezmc";
+    repo = "BibLatex-Check";
+    rev = "v${version}";
+    sha256 = "sha256-8oHX56+kRWWl8t22DqLAFinjPngRMo3vXxXuVXBwutM=";
+  };
+
+  buildInputs = [ python3 ];
+
+  strictDeps = true;
+
+  installPhase = ''
+    install -Dm755 biblatex_check.py $out/bin/biblatex-check
+  '';
+
+  meta = with lib; {
+    description = "Python2/3 script for checking BibLatex .bib files";
+    homepage = "https://github.com/Pezmc/BibLatex-Check";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "biblatex-check";
+  };
+}
diff --git a/pkgs/by-name/bi/bibletime/package.nix b/pkgs/by-name/bi/bibletime/package.nix
new file mode 100644
index 000000000000..2c95eb11b25b
--- /dev/null
+++ b/pkgs/by-name/bi/bibletime/package.nix
@@ -0,0 +1,74 @@
+{
+  lib,
+  boost,
+  clucene_core_2,
+  cmake,
+  docbook_xml_dtd_45,
+  docbook_xsl_ns,
+  fetchFromGitHub,
+  perlPackages,
+  pkg-config,
+  qt5,
+  stdenv,
+  sword,
+}:
+
+let
+  inherit (qt5)
+    qtbase
+    qtsvg
+    qttools
+    wrapQtAppsHook
+    ;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bibletime";
+  version = "3.0.3";
+
+  src = fetchFromGitHub {
+    owner = "bibletime";
+    repo = "bibletime";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-4O8F5/EyoJFJBEWOAs9lzN3TKuu/CEdKfPaOF8gNqps=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    docbook_xml_dtd_45
+    pkg-config
+    wrapQtAppsHook
+    perlPackages.Po4a
+  ];
+
+  buildInputs = [
+    boost
+    clucene_core_2
+    qtbase
+    qtsvg
+    qttools
+    sword
+  ];
+
+  preConfigure = ''
+    export CLUCENE_HOME=${clucene_core_2};
+    export SWORD_HOME=${sword};
+  '';
+
+  cmakeFlags = [
+    (lib.cmakeBool "BUILD_HOWTO_PDF" false)
+    (lib.cmakeBool "BUILD_HANDBOOK_PDF" false)
+    (lib.cmakeFeature "BT_DOCBOOK_XSL_HTML_CHUNK_XSL" "${docbook_xsl_ns}/share/xml/docbook-xsl-ns/html/chunk.xsl")
+    (lib.cmakeFeature "BT_DOCBOOK_XSL_PDF_DOCBOOK_XSL" "${docbook_xsl_ns}/share/xml/docbook-xsl-ns/html/chunk.xsl")
+  ];
+
+  strictDeps = true;
+
+  meta = {
+    homepage = "http://www.bibletime.info/";
+    description = "Powerful cross platform Bible study tool";
+    license = lib.licenses.gpl2Plus;
+    mainProgram = "bibletime";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/bi/biboumi/catch.patch b/pkgs/by-name/bi/biboumi/catch.patch
new file mode 100644
index 000000000000..bbd0a66909fe
--- /dev/null
+++ b/pkgs/by-name/bi/biboumi/catch.patch
@@ -0,0 +1,30 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -303,27 +303,6 @@
+ endforeach()
+ 
+ #
+-## Add a rule to download the catch unit test framework
+-#
+-include(ExternalProject)
+-ExternalProject_Add(catch
+-  GIT_REPOSITORY "https://lab.louiz.org/louiz/Catch.git"
+-  PREFIX "external"
+-  UPDATE_COMMAND ""
+-  CONFIGURE_COMMAND ""
+-  BUILD_COMMAND ""
+-  INSTALL_COMMAND ""
+-  )
+-set_target_properties(catch PROPERTIES EXCLUDE_FROM_ALL TRUE)
+-ExternalProject_Get_Property(catch SOURCE_DIR)
+-if(NOT EXISTS ${CMAKE_SOURCE_DIR}/tests/catch.hpp)
+-  target_include_directories(test_suite
+-    PUBLIC "${SOURCE_DIR}/single_include/"
+-    )
+-  add_dependencies(test_suite catch)
+-endif()
+-
+-#
+ ## Add some custom rules to launch the tests
+ #
+ add_custom_target(check COMMAND "test_suite"
diff --git a/pkgs/by-name/bi/biboumi/package.nix b/pkgs/by-name/bi/biboumi/package.nix
new file mode 100644
index 000000000000..9d63356abd6b
--- /dev/null
+++ b/pkgs/by-name/bi/biboumi/package.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchurl, fetchgit, cmake, libuuid, expat, sqlite, libidn
+, libiconv, botan2, systemd, pkg-config, udns, python3Packages } :
+
+let
+  louiz_catch = fetchgit {
+    url = "https://lab.louiz.org/louiz/Catch.git";
+    rev = "0a34cc201ef28bf25c88b0062f331369596cb7b7"; # v2.2.1
+    sha256 = "0ad0sjhmzx61a763d2ali4vkj8aa1sbknnldks7xlf4gy83jfrbl";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "biboumi";
+  version = "9.0";
+
+  src = fetchurl {
+    url = "https://git.louiz.org/biboumi/snapshot/biboumi-${version}.tar.xz";
+    sha256 = "1jvygri165aknmvlinx3jb8cclny6cxdykjf8dp0a3l3228rmzqy";
+  };
+
+  patches = [ ./catch.patch ];
+
+  nativeBuildInputs = [ cmake pkg-config python3Packages.sphinx ];
+  buildInputs = [ libuuid expat sqlite libiconv libidn botan2 systemd udns ];
+
+  buildFlags = [ "all" "man" ];
+
+  preConfigure = ''
+    substituteInPlace CMakeLists.txt --replace /etc/biboumi $out/etc/biboumi
+    cp ${louiz_catch}/single_include/catch.hpp tests/
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Modern XMPP IRC gateway";
+    mainProgram = "biboumi";
+    platforms = platforms.unix;
+    homepage = "https://lab.louiz.org/louiz/biboumi";
+    license = licenses.zlib;
+    maintainers = [ maintainers.woffs ];
+  };
+}
diff --git a/pkgs/by-name/bi/bibtex-tidy/package.nix b/pkgs/by-name/bi/bibtex-tidy/package.nix
new file mode 100644
index 000000000000..862c82c9d5c9
--- /dev/null
+++ b/pkgs/by-name/bi/bibtex-tidy/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, testers
+, bibtex-tidy
+}:
+
+buildNpmPackage rec {
+  pname = "bibtex-tidy";
+  version = "1.14.0";
+
+  src = fetchFromGitHub {
+    owner = "FlamingTempura";
+    repo = "bibtex-tidy";
+    rev = "v${version}";
+    hash = "sha256-sMgy29deEfc3DFSC0Z4JZCeNAFpBKNYj+mJnFI1pSY4=";
+  };
+
+  npmDepsHash = "sha256-FKde5/ZZcS5g0fUaDjhRlKGLiS8kk1PvkZw9PUmvAAE=";
+
+  env = {
+    PUPPETEER_SKIP_DOWNLOAD = true;
+  };
+
+  passthru.tests = {
+    version = testers.testVersion {
+      package = bibtex-tidy;
+      version = "v${version}";
+    };
+  };
+
+  meta = {
+    changelog = "https://github.com/FlamingTempura/bibtex-tidy/blob/${src.rev}/CHANGELOG.md";
+    description = "Cleaner and Formatter for BibTeX files";
+    mainProgram = "bibtex-tidy";
+    homepage = "https://github.com/FlamingTempura/bibtex-tidy";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ bertof ];
+  };
+}
diff --git a/pkgs/by-name/bi/bibtex2html/package.nix b/pkgs/by-name/bi/bibtex2html/package.nix
new file mode 100644
index 000000000000..2af4aaa08128
--- /dev/null
+++ b/pkgs/by-name/bi/bibtex2html/package.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchurl, ocaml, perl }:
+
+stdenv.mkDerivation {
+  pname = "bibtex2html";
+  version = "1.99";
+
+  src = fetchurl {
+    url = "https://www.lri.fr/~filliatr/ftp/bibtex2html/bibtex2html-1.99.tar.gz";
+    sha256 = "07gzrs4lfrkvbn48cgn2gn6c7cx3jsanakkrb2irj0gmjzfxl96j";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [ ocaml perl ];
+
+  meta = with lib; {
+    description = "Collection of tools for translating from BibTeX to HTML";
+    homepage = "https://www.lri.fr/~filliatr/bibtex2html/";
+    license = licenses.gpl2Only;
+    platforms = ocaml.meta.platforms or [];
+    maintainers = [ maintainers.scolobb ];
+  };
+}
diff --git a/pkgs/by-name/bi/bibtool/package.nix b/pkgs/by-name/bi/bibtool/package.nix
new file mode 100644
index 000000000000..46c798f12c6d
--- /dev/null
+++ b/pkgs/by-name/bi/bibtool/package.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "bibtool";
+  version = "2.68";
+
+  src = fetchurl {
+    url = "http://www.gerd-neugebauer.de/software/TeX/BibTool/BibTool-${version}.tar.gz";
+    sha256 = "1ymq901ckaysq2n1bplk1064rb2njq9n30pii15w157y0lxcwd3i";
+  };
+
+  # Perl for running test suite.
+  buildInputs = [ perl ];
+
+  installTargets = [ "install" "install.man" ];
+
+  doCheck = true;
+  checkTarget = "test";
+
+  meta = with lib; {
+    description = "Tool for manipulating BibTeX bibliographies";
+    homepage = "http://www.gerd-neugebauer.de/software/TeX/BibTool/index.en.html";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rycee ];
+    mainProgram = "bibtool";
+  };
+}
diff --git a/pkgs/by-name/bi/bibutils/package.nix b/pkgs/by-name/bi/bibutils/package.nix
new file mode 100644
index 000000000000..c6dd28777b4d
--- /dev/null
+++ b/pkgs/by-name/bi/bibutils/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchurl
+, static ? stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bibutils";
+  version = "7.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/bibutils/bibutils_${version}_src.tgz";
+    sha256 = "sha256-bgKK7x6Kaz5azvCYWEp7tocI81z+dAEbNBwR/qXktcM=";
+  };
+
+  preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    substituteInPlace lib/Makefile.dynamic \
+      --replace '-Wl,-soname,$(SONAME)' ""
+  '';
+
+  # the configure script is not generated by autoconf
+  # and do not recognize --build/--host cross compilation flags
+  configurePlatforms = [ ];
+
+  configureFlags = [
+    (if static then "--static" else "--dynamic")
+    "--install-dir" "$(out)/bin"
+    "--install-lib" "$(out)/lib"
+  ];
+
+  dontAddPrefix = true;
+
+  makeFlags = [
+    "CC:=$(CC)"
+  ];
+
+  doCheck = true;
+  checkTarget = "test";
+  preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    export DYLD_LIBRARY_PATH=`pwd`/lib
+  '';
+
+  meta = with lib; {
+    description = "Bibliography format interconversion";
+    longDescription = "The bibutils program set interconverts between various bibliography formats using a common MODS-format XML intermediate. For example, one can convert RIS-format files to Bibtex by doing two transformations: RIS->MODS->Bibtex. By using a common intermediate for N formats, only 2N programs are required and not N²-N. These programs operate on the command line and are styled after standard UNIX-like filters.";
+    homepage = "https://sourceforge.net/p/bibutils/home/Bibutils/";
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.garrison ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/bi/bic/package.nix b/pkgs/by-name/bi/bic/package.nix
new file mode 100644
index 000000000000..1571e93e071f
--- /dev/null
+++ b/pkgs/by-name/bi/bic/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, readline
+, autoreconfHook
+, autoconf-archive
+, gmp
+, flex
+, bison
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bic";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "hexagonal-sun";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ws46h1ngzk14dspmsggj9535yl04v9wh8v4gb234n34rdkdsyyw";
+  };
+
+  buildInputs = [ readline gmp ];
+  nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
+    bison
+    flex
+  ];
+
+  meta = with lib; {
+    description = "C interpreter and API explorer";
+    mainProgram = "bic";
+    longDescription = ''
+      bic This a project that allows developers to explore and test C-APIs using a
+      read eval print loop, also known as a REPL.
+    '';
+    license = with licenses; [ gpl2Plus ];
+    homepage = "https://github.com/hexagonal-sun/bic";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ hexagonal-sun ];
+    # never built on aarch64-darwin since first introduction in nixpkgs
+    broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
+  };
+}
diff --git a/pkgs/by-name/bi/bicep/deps.nix b/pkgs/by-name/bi/bicep/deps.nix
index 40abcef89aac..f93edc67d969 100644
--- a/pkgs/by-name/bi/bicep/deps.nix
+++ b/pkgs/by-name/bi/bicep/deps.nix
@@ -5,43 +5,46 @@
   (fetchNuGet { pname = "Azure.Bicep.Internal.RoslynAnalyzers"; version = "0.1.38"; hash = "sha256-++iIefl+xbX3Tw4EsPvJrsMoG2DdQ5dPtqEgD+jaI6w="; })
   (fetchNuGet { pname = "Azure.Bicep.Types"; version = "0.5.81"; hash = "sha256-eggoXh3X4h8UeyUN7EJEECW77yuM4sms7yogfasIB2I="; })
   (fetchNuGet { pname = "Azure.Bicep.Types"; version = "0.5.9"; hash = "sha256-ArayCbMPz2itkOE88usMZfW5fx18cWlymdSVq/KXZQs="; })
-  (fetchNuGet { pname = "Azure.Bicep.Types.Az"; version = "0.2.698"; hash = "sha256-3O+CO+y8sqB3rJttuH9ymyoqygJVCtM4ybvPllCv+IU="; })
+  (fetchNuGet { pname = "Azure.Bicep.Types.Az"; version = "0.2.706"; hash = "sha256-KafgQYWKy5sXgDpNlf77yRVVBj4A0XxkkhIbN2EYTXA="; })
   (fetchNuGet { pname = "Azure.Bicep.Types.K8s"; version = "0.1.626"; hash = "sha256-UYpfVbjvtr8eLWsjAEBrzVjxrHWiEEtjerNjafCLB7A="; })
   (fetchNuGet { pname = "Azure.Containers.ContainerRegistry"; version = "1.1.1"; hash = "sha256-BC7QlrtYz74yDtTf/Kvf+Y3Vm3NEZsJLO5g5twKuxkI="; })
   (fetchNuGet { pname = "Azure.Core"; version = "1.36.0"; hash = "sha256-lokfjW2wvgFu6bALLzNmDhXIz3HXoPuGX0WfGb9hmpI="; })
-  (fetchNuGet { pname = "Azure.Core"; version = "1.39.0"; hash = "sha256-l5c+iPoCPkR3bKJ48WY+YHGEP2Kft9CU0RT/K0LcZiw="; })
   (fetchNuGet { pname = "Azure.Core"; version = "1.40.0"; hash = "sha256-c1DBQ+OmNAKoQkj3kC3U7yWy77yG+fo+H3vR1e+Qrpo="; })
-  (fetchNuGet { pname = "Azure.Deployments.Core"; version = "1.71.0"; hash = "sha256-voVequHvoUfk1SLLCibzsZrmYx6vQa4LCG1Na/m4weM="; })
-  (fetchNuGet { pname = "Azure.Deployments.DiffEngine"; version = "1.71.0"; hash = "sha256-tGy2ienvvMHd4jjGye5DdoGJlzBao8YKddqL3CQCAEA="; })
-  (fetchNuGet { pname = "Azure.Deployments.Engine"; version = "1.71.0"; hash = "sha256-J5mIPdbZcXuMT/sxb5aFQ0hFWn19yLyzoKqa0V+QEME="; })
-  (fetchNuGet { pname = "Azure.Deployments.Expression"; version = "1.71.0"; hash = "sha256-zycWbem1lFP49WosaYep7QwDdKm6cxx0ZHWWPXKnyqo="; })
-  (fetchNuGet { pname = "Azure.Deployments.Extensibility"; version = "1.71.0"; hash = "sha256-u16l7T2o4y+BA0wQ/u10ZGGjUI+bgzJBEE29ncsNEjI="; })
+  (fetchNuGet { pname = "Azure.Deployments.Core"; version = "1.95.0"; hash = "sha256-YJ4nmC1LbqNvsD5gERJkyImw8itQR2xF1MUQocKCMtU="; })
+  (fetchNuGet { pname = "Azure.Deployments.DiffEngine"; version = "1.95.0"; hash = "sha256-ZCfv+Mr62BoDSM4K3LmwwqlaKW8rIqfqTAgjQvozQIA="; })
+  (fetchNuGet { pname = "Azure.Deployments.Engine"; version = "1.95.0"; hash = "sha256-s0BEWMZyIacwZWR1d744jHg2rc4vIVNTT/OhpPYKmNs="; })
+  (fetchNuGet { pname = "Azure.Deployments.Expression"; version = "1.95.0"; hash = "sha256-85eQaO0HCih/C2wt5bkXJL9+urWRVzV9X3Vr5tFlRnQ="; })
+  (fetchNuGet { pname = "Azure.Deployments.Extensibility"; version = "1.95.0"; hash = "sha256-oMeOPINDHh+0DsWgvn/iJohalERtNkWY6+lB3SXKePY="; })
   (fetchNuGet { pname = "Azure.Deployments.Extensibility.Core"; version = "0.1.55"; hash = "sha256-u5Xo/TkFJSOeI+/T1fWuEeFVQVT4gM6pE09jhY6b2vU="; })
   (fetchNuGet { pname = "Azure.Deployments.Internal.GenerateNotice"; version = "0.1.38"; hash = "sha256-LW8q/5ler1c0tK8FGd5PIqnWpdC/YggKrERAFhioXwI="; })
   (fetchNuGet { pname = "Azure.Deployments.JsonPath"; version = "1.0.1265"; hash = "sha256-67xm85aTEJHv/6iYXxnjmkHDEtRnTnFhzs9gv1H/J4c="; })
   (fetchNuGet { pname = "Azure.Deployments.ResourceMetadata"; version = "1.0.1265"; hash = "sha256-kvFL2oHG7javm4K8Wkyjc72jUbJBWKunlt0yrL360Wg="; })
-  (fetchNuGet { pname = "Azure.Deployments.Templates"; version = "1.71.0"; hash = "sha256-ORtuQEvMr5j0yCKZMzBO5GuDfG9XFEho2gkpGtk944k="; })
+  (fetchNuGet { pname = "Azure.Deployments.Templates"; version = "1.95.0"; hash = "sha256-SltmETp+P/TIbFr9XjkvcuPircNpO9TfsvCx/8vjoFY="; })
   (fetchNuGet { pname = "Azure.Identity"; version = "1.12.0"; hash = "sha256-F3dFL8/HHqYgINxe9OAkHW067KPcsKgLjcPTHmpfBAo="; })
-  (fetchNuGet { pname = "Azure.ResourceManager"; version = "1.11.1"; hash = "sha256-Pi+LT//A33XzGSE0yb1FK+fxu8FIfcD3/KOnTHQW120="; })
-  (fetchNuGet { pname = "Azure.ResourceManager.Resources"; version = "1.7.3"; hash = "sha256-SfQ1bavuKdwPW81ML2x3gVpDRwIvTvAO9h2E12pVito="; })
+  (fetchNuGet { pname = "Azure.ResourceManager"; version = "1.12.0"; hash = "sha256-zcML/ZTttuz5U7xd9I/uHN/aGXWm+mPHBWGNMYErnio="; })
+  (fetchNuGet { pname = "Azure.ResourceManager.Resources"; version = "1.8.0"; hash = "sha256-qGRPsWIHW40UXIWEAYSWQsqc9Pl4p9TTAwkg7PNrNzU="; })
   (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; hash = "sha256-ApU9y1yX60daSjPk3KYDBeJ7XZByKW8hse9NRZGcjeo="; })
   (fetchNuGet { pname = "coverlet.collector"; version = "6.0.2"; hash = "sha256-LdSQUrOmjFug47LjtqgtN2MM6BcfG0HR5iL+prVHlDo="; })
   (fetchNuGet { pname = "FluentAssertions"; version = "6.12.0"; hash = "sha256-LGlPe+G7lBwj5u3ttQZiKX2+C195ddRAHPuDkY6x0BE="; })
-  (fetchNuGet { pname = "Google.Protobuf"; version = "3.27.1"; hash = "sha256-6BdAwStdmfFEwCqkYO4yffdq6QBDZskfmopI5fl0Dy8="; })
-  (fetchNuGet { pname = "Grpc.Core.Api"; version = "2.63.0"; hash = "sha256-tPvrMdQoVn6quCOkfiDyuTPzJN55vghMeIWmn1Gy2Ig="; })
-  (fetchNuGet { pname = "Grpc.Net.Client"; version = "2.63.0"; hash = "sha256-iq5O1Aa1SlBeuW5MoZnRotmQbPJmqSkhbyO53WVwSSk="; })
-  (fetchNuGet { pname = "Grpc.Net.Common"; version = "2.63.0"; hash = "sha256-JHpSo+cymATjLloCXRATzkXJr6zYRM2X2B/nQfXAdQ0="; })
-  (fetchNuGet { pname = "Grpc.Tools"; version = "2.64.0"; hash = "sha256-vL8NnlHu6X4g6VLMQ7K6ZpBg3SgahaELonRK2B8/47E="; })
+  (fetchNuGet { pname = "Google.Protobuf"; version = "3.28.0"; hash = "sha256-Q/p1lM/7SD7WNVC6/V/MNKkH2rJiPOttHgRSJi3BzYk="; })
+  (fetchNuGet { pname = "Grpc.Core.Api"; version = "2.65.0"; hash = "sha256-cLE/TiOYjMFUBF2ENWwGWrn1AaKpo8TO+8C2lj+5hqw="; })
+  (fetchNuGet { pname = "Grpc.Net.Client"; version = "2.65.0"; hash = "sha256-ZTaIuhC7W/Oyr4BGH3TDctdDSwRlNmM8dAd1Us0D7os="; })
+  (fetchNuGet { pname = "Grpc.Net.Common"; version = "2.65.0"; hash = "sha256-WsUmrHumKqamxYu/Ayj2NVg+Q0jervFHy9lJAGb7jTU="; })
+  (fetchNuGet { pname = "Grpc.Tools"; version = "2.66.0"; hash = "sha256-UM3QNCMKcoDBhTD9OTkxqOT7EOsAViIM5yF2SzGc0TM="; })
   (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; hash = "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o="; })
   (fetchNuGet { pname = "IPNetwork2"; version = "2.6.548"; hash = "sha256-6N61UG/WrJWNv+bO/l9BNWA17iPIMn5G4J7maw54UPg="; })
   (fetchNuGet { pname = "IPNetwork2"; version = "2.6.598"; hash = "sha256-FPjItZbaf5gJYP6lORQITPqWnwHN0WDLvq+v4Hmc3Q4="; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2019.1.3"; hash = "sha256-gn2Z7yANT+2tnK+qbOA2PviRf1M1VtvamABGajgGC6E="; })
-  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.3.0"; hash = "sha256-/Eykez68qYMO5mlmUelzAke8aJehyp8fspO5Z+yt5G4="; })
+  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2024.2.0"; hash = "sha256-OgtW4wIqo5d3q6NSiYrUm4KkUdUHEWFyvlbtoQJjDwU="; })
   (fetchNuGet { pname = "Json.More.Net"; version = "2.0.1.2"; hash = "sha256-fnp/By8n8xKa8bhvUbO2p8rlze5AvgA+z9ZvWEpL/Ls="; })
+  (fetchNuGet { pname = "Json.More.Net"; version = "2.0.2"; hash = "sha256-a05C4llKu1sOBjjV+GXQqSD1FWaj7twjkx4L95qixDQ="; })
   (fetchNuGet { pname = "JsonDiffPatch.Net"; version = "2.1.0"; hash = "sha256-lyUOusPMv1ZF3EcrEFG4Fze603CVPxLwOPmTVOy/HmU="; })
   (fetchNuGet { pname = "JsonPatch.Net"; version = "3.1.0"; hash = "sha256-bvCOOiH2SruZXF+jPYlAaEkinZ040YDp9QjP3QXlCbc="; })
+  (fetchNuGet { pname = "JsonPatch.Net"; version = "3.1.1"; hash = "sha256-j8MZwl96BUPBSFnsb42d/JZIccDQQ1TvgBjqwafv9SQ="; })
   (fetchNuGet { pname = "JsonPath.Net"; version = "1.1.0"; hash = "sha256-FQGPodaxHwyfRN3HhEl7N39SKsn922FiZAiDzKOYxUo="; })
+  (fetchNuGet { pname = "JsonPath.Net"; version = "1.1.4"; hash = "sha256-eft2nHG05XCIh3dH2C+ceW771vPSHxXccbRK0qFga7I="; })
   (fetchNuGet { pname = "JsonPointer.Net"; version = "5.0.0"; hash = "sha256-OCeXHpJyHJSyh2vpnrY8nSuM4u3eNXtN6YXnJZyHnWc="; })
+  (fetchNuGet { pname = "JsonPointer.Net"; version = "5.0.2"; hash = "sha256-S04fnxMCJm86yc1FYHSqHznhA+90NW6QI+7rxYIyhs0="; })
   (fetchNuGet { pname = "JsonSchema.Net"; version = "7.0.4"; hash = "sha256-sCaGr8m20DzNEkF3TS7Cb+wmvo3hYZPZwQ2bTqwlB5g="; })
   (fetchNuGet { pname = "MessagePack"; version = "2.5.108"; hash = "sha256-+vMXyEbfutY5WOFuFnNF24uLcKJTTdntVrVlSJH4yjI="; })
   (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.5.108"; hash = "sha256-u3Qu8UftNIz3oIzQUMa7Z0G6VzmDLcAnAeNQ3lB3YVk="; })
@@ -53,13 +56,13 @@
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "8.0.0"; hash = "sha256-9aWmiwMJKrKr9ohD1KSuol37y+jdDxPGJct3m2/Bknw="; })
   (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "8.0.0"; hash = "sha256-vX6/kPij8vNAu8f7rrvHHhPrNph20IcufmrBgZNxpQA="; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.4"; hash = "sha256-YPTHTZ8xRPMLADdcVYRO/eq3O9uZjsD+OsGRZE+0+e8="; })
-  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.10.0"; hash = "sha256-yQFwqVChRtIRpbtkJr92JH2i+O7xn91NGbYgnKs8G2g="; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.11.1"; hash = "sha256-1dLlK3NGh88PuFYZiYpT+izA96etxhU3BSgixDgdtGA="; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; hash = "sha256-0huoqR2CJ3Z9Q2peaKD09TV3E6saYSqDGZ290K8CrH8="; })
   (fetchNuGet { pname = "Microsoft.Diagnostics.Tracing.EventRegister"; version = "1.1.28"; hash = "sha256-A/gOXo0PWS8+L7OyJz1s8zDxGU39SFuvxrHZnqSLANI="; })
   (fetchNuGet { pname = "Microsoft.Diagnostics.Tracing.TraceEvent"; version = "3.1.3"; hash = "sha256-MVKR1ZRpUMNdRAPuXh9cp5T/hG7wu8R9wUr9bey8V60="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; hash = "sha256-9BPsASlxrV8ilmMCjdb3TiUcm5vFZxkBnAI/fNBSEyA="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; hash = "sha256-4eBpDkf7MJozTZnOwQvwcfgRKQGcNXe0K/kF+h5Rl8o="; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.1"; hash = "sha256-KYPQYYspiBGiez7JshmEjy4kFt7ASzVxQeVsygIEvHA="; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.2"; hash = "sha256-aGB0VuoC34YadAEqrwoaXLc5qla55pswDV2xLSmR7SE="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "8.0.0"; hash = "sha256-BCxcjVP+kvrDDB0nzsFCJfU74UK4VBvct2JA4r+jNcs="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "8.0.0"; hash = "sha256-Fi/ijcG5l0BOu7i96xHu96aN5/g7zO6SWQbTsI3Qetg="; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; hash = "sha256-+qIDR8hRzreCHNEDtUcPfVHQdurzWPo/mqviCH78+EQ="; })
@@ -77,49 +80,46 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; hash = "sha256-n2m4JSegQKUTlOsKLZUUHHKMq926eJ0w9N9G+I3FoFw="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "8.0.0"; hash = "sha256-A5Bbzw1kiNkgirk5x8kyxwg9lLTcSngojeD+ocpG1RI="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; hash = "sha256-FU8qj3DR8bDdc1c+WeGZx/PCZeqqndweZM9epcpXjSo="; })
-  (fetchNuGet { pname = "Microsoft.Graph.Bicep.Types"; version = "0.1.6-preview"; hash = "sha256-01IC1xejcwK5da5UEhxgzfBcuT1plAajbFp2jNgS4II="; })
+  (fetchNuGet { pname = "Microsoft.Graph.Bicep.Types"; version = "0.1.7-preview"; hash = "sha256-Lz45XaKIjKA7w4xX2ElZO5jxVi0LqhGbGBTAHc+aqL0="; })
   (fetchNuGet { pname = "Microsoft.Identity.Client"; version = "4.61.3"; hash = "sha256-1cccC8EWlIQlJ3SSOB7CNImOYSaxsJpRHvlCgv2yOtA="; })
   (fetchNuGet { pname = "Microsoft.Identity.Client.Extensions.Msal"; version = "4.61.3"; hash = "sha256-nFQ2C7S4BQ4nvQmGAc5Ar7/ynKyztvK7fPKrpJXaQFE="; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.35.0"; hash = "sha256-bxyYu6/QgaA4TQYBr5d+bzICL+ktlkdy/tb/1fBu00Q="; })
   (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "17.4.0"; hash = "sha256-+9uBaUDZ3roUJwyYJUL30Mz+3C6LE16FzfQKgS0Yveo="; })
-  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.10.0"; hash = "sha256-rkHIqB2mquNXF89XBTFpUL2z5msjTBsOcyjSBCh36I0="; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.11.1"; hash = "sha256-0JUEucQ2lzaPgkrjm/NFLBTbqU1dfhvhN3Tl3moE6mI="; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; hash = "sha256-mZotlGZqtrqDSoBrZhsxFe6fuOv5/BIo0w2Z2x0zVAU="; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; hash = "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; hash = "sha256-8hLiUKvy/YirCWlFwzdejD2Db3DaXhHxT7GSZx/znJg="; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.1.0"; hash = "sha256-cnygditsEaU86bnYtIthNMymAHqaT/sf9Gjykhzqgb0="; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; hash = "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c="; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; hash = "sha256-lxxw/Gy32xHi0fLgFWNj4YTFBSBkjx5l6ucmbTyf7V4="; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; hash = "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ="; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.3"; hash = "sha256-WLsf1NuUfRWyr7C7Rl9jiua9jximnVvzy6nk2D2bVRc="; })
   (fetchNuGet { pname = "Microsoft.PowerPlatform.ResourceStack"; version = "7.0.0.2007"; hash = "sha256-XjmVeRhHkBlDbM/anEwN/pFbNHC1w7YMZ49LRV7cL8I="; })
   (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "8.0.0"; hash = "sha256-AfUqleVEqWuHE7z2hNiwOLnquBJ3tuYtbkdGMppHOXc="; })
   (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "8.0.0"; hash = "sha256-hNTkpKdCLY5kIuOmznD1mY+pRdJ0PKu2HypyXog9vb0="; })
-  (fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.2.1"; hash = "sha256-/KshvKuql1A7zI1kTseWEYsOVMyOWZDXlFfKr0fz0Kg="; })
-  (fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.2.1"; hash = "sha256-YciAKvo1VBDoqGohABY2uD+Tt7wxpSqICV6ytEBNYKQ="; })
-  (fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.2.1"; hash = "sha256-vcf+MYu9Rp/Xpy1cA/azVz1KAkMgNrekD+LZX85Anq4="; })
-  (fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.2.1"; hash = "sha256-ExXw+kScOwZsRDos3Myvh53yazGTGtjrtn2H1XbFi34="; })
-  (fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.2.1"; hash = "sha256-B0AGaqwtuoT9DxXDvkR0bwEvVzSd67+vGZAgBm0nxxw="; })
+  (fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.3.2"; hash = "sha256-q6ZGafMpM3HunHtjVATcIa+gPUM1ef4y3Do8Syf2pa4="; })
+  (fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.3.2"; hash = "sha256-0+O40vygEoX0K2NDMSv1zFB4H10su0FAA1QTqzi1KcA="; })
+  (fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.3.2"; hash = "sha256-H8dK/+S39mXZWnM9dB0CQhu23vQD9JRAaHivnutUDEY="; })
+  (fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.3.2"; hash = "sha256-1H34nSpdSL+P91F5Ynjr8590eNFcm+1Rp27vYclx2Xc="; })
+  (fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.3.2"; hash = "sha256-1SVTVvrFqStKoxuQSqaKBuKp+qDHZkCTpIECPuEEdQI="; })
   (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.10.0"; hash = "sha256-3YjVGK2zEObksBGYg8b/CqoJgLQ1jUv4GCWNjDhLRh4="; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; hash = "sha256-mj5UH+aqVk7f3Uu0+L47aqZUudJNCx3Lk7cbP4fzcmI="; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.10.0"; hash = "sha256-+yzP3FY6WoOosSpYnB7duZLhOPUZMQYy8zJ1d3Q4hK4="; })
-  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "17.9.28"; hash = "sha256-4Z/uKv/jJPHXCJD9W/2vHNDfas3o4EfLh6+Tmkv44YE="; })
-  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "17.10.48"; hash = "sha256-EvZGbyxtrJDvHZwsQbZDXtVfWiy0f58oCdTdSzD34wI="; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.11.1"; hash = "sha256-5vX+vCzFY3S7xfMVIv8OlMMFtdedW9UIJzc0WEc+vm4="; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.11.1"; hash = "sha256-wSkY0H1fQAq0H3LcKT4u7Y5RzhAAPa6yueVN84g8HxU="; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "17.10.48"; hash = "sha256-WL8c7TjDBHGjsVLMMPf9cin8rirzOdxusEBQlkUfiVU="; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "17.11.20"; hash = "sha256-mHYVKapahjHlrzeJ6JpQAtugg+Ub3IzesYSJ+UTybAU="; })
   (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "17.8.8"; hash = "sha256-sB8GLRiJHX3Py7qeBUnUANiDWhyPtISon6HQs+8wKms="; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.7.0"; hash = "sha256-+jWCwRqU/J/jLdQKDFm93WfIDrDMXMJ984UevaQMoi8="; })
-  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; hash = "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA="; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry.AccessControl"; version = "6.0.0"; hash = "sha256-Vm9H1A7+YDXtAjYimnN28TQLm94c8UkQNTSIa9ghPbA="; })
   (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.1"; hash = "sha256-wk8oV7jHZfSxKX5PDcV3S/pSnsaFq4mr8fakvJI4V9U="; })
   (fetchNuGet { pname = "Microsoft.Windows.Compatibility"; version = "6.0.7"; hash = "sha256-LSQbmbX833b0Q6s6h6Un+yfU8JZS6eLbgFHwes5rAaw="; })
-  (fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.4.3"; hash = "sha256-uOhEZp71KV0DFfkD4fMhy9zEggPBvzof1GZ5Z5ulWkM="; })
-  (fetchNuGet { pname = "MSTest.TestFramework"; version = "3.4.3"; hash = "sha256-d3fTMQese3ld1WTw0v6MGczgdSnE28/UaM2E7T59cUM="; })
-  (fetchNuGet { pname = "Nerdbank.GitVersioning"; version = "3.6.139"; hash = "sha256-DMEdNlYh9tqkqQ/98zwk7NcRYBpTApLiFwzkgaHP7Fo="; })
-  (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.10.69"; hash = "sha256-a0hXKhR7dv6Vm4rlUOD2ffBKG49CC3wzXLCHeTz1ms4="; })
+  (fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.5.2"; hash = "sha256-tbKREqe9w5Tkhib4AfWR9vB7DYLmvAjEov8UM2D2gA0="; })
+  (fetchNuGet { pname = "MSTest.TestFramework"; version = "3.6.0"; hash = "sha256-3j4Gp+BOhhKZav23gED/dtAnsoOrG+wtI9+p6IHNVMA="; })
+  (fetchNuGet { pname = "Nerdbank.GitVersioning"; version = "3.6.143"; hash = "sha256-OhOtMzP+2obDIR+npR7SsoXo0KrmcsL+VCE8Z3t5gzQ="; })
+  (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.11.74"; hash = "sha256-asIdaqCIjZspTA+hhtjKNajpCo+ZQi3erZLCpBQ5No4="; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; hash = "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo="; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.2"; hash = "sha256-ESyjt/R7y9dDvvz5Sftozk+e/3Otn38bOcLGGh69Ot0="; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; hash = "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc="; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; hash = "sha256-mYCBrgUhIJFzRuLLV9SIiIFHovzfR8Uuqfg6e08EnlU="; })
   (fetchNuGet { pname = "Newtonsoft.Json.Bson"; version = "1.0.2"; hash = "sha256-ZUj6YFSMZp5CZtXiamw49eZmbp1iYBuNsIKNnjxcRzA="; })
-  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; hash = "sha256-n+hxcrf+sXM80Tv9YH9x4+hwTslVidFq4tjBNPAzYnM="; })
   (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; hash = "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8="; })
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; hash = "sha256-8yLKFt2wQxkEf7fNfzB+cPUCjYn2qbqNgQ1+EeY2h/I="; })
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; hash = "sha256-dsmTLGvt8HqRkDWP8iKVXJCS+akAzENGXKPV18W2RgI="; })
@@ -165,7 +165,7 @@
   (fetchNuGet { pname = "Semver"; version = "2.3.0"; hash = "sha256-77/J/w41PLEMIxA5Uj475TeReBGw8QwptQsbQDtdsMI="; })
   (fetchNuGet { pname = "SharpYaml"; version = "2.1.1"; hash = "sha256-KSs7993j0VJxSDx/VpruMQFnnjP4CzvzPLlIfDEwOpw="; })
   (fetchNuGet { pname = "Sprache.StrongNamed"; version = "2.3.2"; hash = "sha256-q6G1Y1/oellt0ABex7UQZdc0ACEBKFT6Ah+mNIHWyVw="; })
-  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.18.48"; hash = "sha256-/vjpwKMFoJfSf+uKEjmWzW/HdIfDGMLb7el91ni6gFQ="; })
+  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.19.27"; hash = "sha256-0eQVv72i5vZ3SsgjyG42w6YIZXpTpCQpIwDPEFkr6Z0="; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; hash = "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk="; })
   (fetchNuGet { pname = "System.ClientModel"; version = "1.0.0"; hash = "sha256-yHb72M/Z8LeSZea9TKw2eD0SdYEoCNwVw6Z3695SC2Y="; })
   (fetchNuGet { pname = "System.CodeDom"; version = "6.0.0"; hash = "sha256-uPetUFZyHfxjScu5x4agjk9pIhbCkt5rG4Axj25npcQ="; })
@@ -173,7 +173,6 @@
   (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; hash = "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc="; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.6.0"; hash = "sha256-gnu+8nN48GAd4GRgeB5cAQmW7VnCubL/8h7zO377fd0="; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; hash = "sha256-GdwSIjLMM0uVfE56VUSLVNgpW0B//oCeSFj8/hSlbM8="; })
-  (fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; hash = "sha256-9an2wbxue2qrtugYES9awshQg+KfJqajhnhs45kQIdk="; })
   (fetchNuGet { pname = "System.ComponentModel.Composition"; version = "6.0.0"; hash = "sha256-7JyYbqWl1NHTNMJW12g6TtYfkemI52nOnX7OHWvp7ps="; })
   (fetchNuGet { pname = "System.ComponentModel.Composition.Registration"; version = "6.0.0"; hash = "sha256-NOw9ZLTBGBwQoHk8P6yIH1f+WoU3fSfm+jNrTQVZZdM="; })
   (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "4.4.0"; hash = "sha256-+8wGYllXnIxRzy9dLhZFB88GoPj8ivYXS0KUfcivT8I="; })
@@ -200,11 +199,11 @@
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; hash = "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI="; })
   (fetchNuGet { pname = "System.IO"; version = "4.1.0"; hash = "sha256-V6oyQFwWb8NvGxAwvzWnhPxy9dKOfj/XBM3tEC5aHrw="; })
   (fetchNuGet { pname = "System.IO"; version = "4.3.0"; hash = "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY="; })
-  (fetchNuGet { pname = "System.IO.Abstractions"; version = "21.0.22"; hash = "sha256-UTdB/kD39zeXjUxdgQbXSxS/yyzDtc2rLre2+pLoQWk="; })
+  (fetchNuGet { pname = "System.IO.Abstractions"; version = "21.0.29"; hash = "sha256-91e2/Bd4ZgANw19mKkTdxAy2tv7NutyG0lQTKhMiEpo="; })
   (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; hash = "sha256-4VKXFgcGYCTWVXjAlniAVq0dO3o5s8KHylg2wg2/7k0="; })
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; hash = "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg="; })
   (fetchNuGet { pname = "System.IO.Packaging"; version = "6.0.0"; hash = "sha256-TKnqKh34uSkPSeideZXrVqnZ5a0Yu5jDgZswKSbAVoQ="; })
-  (fetchNuGet { pname = "System.IO.Pipelines"; version = "7.0.0"; hash = "sha256-W2181khfJUTxLqhuAVRhCa52xZ3+ePGOLIPwEN8WisY="; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "8.0.0"; hash = "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE="; })
   (fetchNuGet { pname = "System.IO.Ports"; version = "6.0.0"; hash = "sha256-AqCYJwPsLkZqEBX7y3sfnrNSvwQnKM7BEl53sY7dDyw="; })
   (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; hash = "sha256-ZQpFtYw5N1F1aX0jUK3Tw+XvM5tnlnshkTCNtfVA794="; })
   (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; hash = "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A="; })
@@ -248,7 +247,6 @@
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; hash = "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI="; })
   (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; hash = "sha256-80B05oxJbPLGq2pGOSl6NlZvintX9A1CNpna2aN0WRA="; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.7.0"; hash = "sha256-/9ZCPIHLdhzq7OW4UKqTsR0O93jjHd6BRG1SRwgHE1g="; })
-  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; hash = "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54="; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "6.0.0"; hash = "sha256-qOyWEBbNr3EjyS+etFG8/zMbuPjA+O+di717JP9Cxyg="; })
   (fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "6.0.4"; hash = "sha256-2e0aRybote+OR66bHaNiYpF//4fCiaO3zbR2e9GABUI="; })
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; hash = "sha256-Ri53QmFX8I8UH0x4PikQ1ZA07ZSnBUXStd5rBfGWFOE="; })
@@ -272,10 +270,8 @@
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; hash = "sha256-nGc2A6XYnwqGcq8rfgTRjGr+voISxNe/76k2K36coj4="; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; hash = "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc="; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.7.2"; hash = "sha256-CUZOulSeRy1CGBm7mrNrTumA9od9peKiIDR/Nb1B4io="; })
-  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; hash = "sha256-tF8qt9GZh/nPy0mEnj6nKLG4Lldpoi/D8xM5lv2CoYQ="; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; hash = "sha256-IUQkQkV9po1LC0QsqrilqwNzPvnc+4eVvq+hCvq8fvE="; })
   (fetchNuGet { pname = "System.Text.Json"; version = "4.7.2"; hash = "sha256-xA8PZwxX9iOJvPbfdi7LWjM2RMVJ7hmtEqS9JvgNsoM="; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "7.0.3"; hash = "sha256-aSJZ17MjqaZNQkprfxm/09LaCoFtpdWmqU9BTROzWX4="; })
   (fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; hash = "sha256-XFcCHMW1u2/WujlWNHaIWkbW1wn8W4kI0QdrwPtWmow="; })
   (fetchNuGet { pname = "System.Text.Json"; version = "8.0.2"; hash = "sha256-uQQPCGRYKMUykb7dhg60YKPTXbjM8X01xmTYev1sId4="; })
   (fetchNuGet { pname = "System.Text.Json"; version = "8.0.4"; hash = "sha256-g5oT7fbXxQ9Iah1nMCr4UUX/a2l+EVjJyTrw3FTbIaI="; })
@@ -286,13 +282,12 @@
   (fetchNuGet { pname = "System.Threading.AccessControl"; version = "6.0.0"; hash = "sha256-ZkoQVA9cLa/du8FCVonnHy/R/t6ms6BG+NiTlFA3A7g="; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; hash = "sha256-5SLxzFg1df6bTm2t09xeI01wa5qQglqUwwJNlQPJIVs="; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; hash = "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w="; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "7.0.0"; hash = "sha256-KTeMhCWcyYEwG7EkA0VkVvHwo0B2FBs5FpjW3BFNVUE="; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; hash = "sha256-+YdcPkMhZhRbMZHnfsDwpNbUkr31X7pQFGxXYcAPZbE="; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; hash = "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng="; })
   (fetchNuGet { pname = "System.Web.Services.Description"; version = "4.9.0"; hash = "sha256-cGLlUp+ue7PVrs6Gg6T3KfUQ0OuHr8DdJd8agaSeySE="; })
   (fetchNuGet { pname = "System.Windows.Extensions"; version = "6.0.0"; hash = "sha256-N+qg1E6FDJ9A9L50wmVt3xPQV8ZxlG1xeXgFuxO+yfM="; })
   (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; hash = "sha256-haZAFFQ9Sl2DhfvEbdx2YRqKEoxNMU5STaqpMmXw0zA="; })
   (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; hash = "sha256-KPz1kxe0RUBM+aoktJ/f9p51GudMERU8Pmwm//HdlFg="; })
-  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "21.0.22"; hash = "sha256-900+hyDm/wCd7iD5hnPJue/In/ZcA3NlGNk9kHWLoX0="; })
-  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "21.0.22"; hash = "sha256-xDe16iGy2i0SyYnlauFxZMTUx44PM+kas+jRtagDV50="; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "21.0.29"; hash = "sha256-OFpu9RcDRPLYntQyesBevoG1XxyH96ukHOH0uXqO5ls="; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "21.0.29"; hash = "sha256-2q1HzbyRPIm6VKYzZzZnkXBJzV8S+HBtT6Lej1pv84Y="; })
 ]
diff --git a/pkgs/by-name/bi/bicep/package.nix b/pkgs/by-name/bi/bicep/package.nix
index d8246c545890..d2212cc8c010 100644
--- a/pkgs/by-name/bi/bicep/package.nix
+++ b/pkgs/by-name/bi/bicep/package.nix
@@ -9,13 +9,13 @@
 
 buildDotnetModule rec {
   pname = "bicep";
-  version = "0.29.47";
+  version = "0.30.23";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "bicep";
     rev = "v${version}";
-    hash = "sha256-KdaoOejoM/3P1WwDCjDhChOpKA7c4UulPLK7IOVw3o4=";
+    hash = "sha256-EQMSqEvBdOEnntv2glVp19LsjC4Zvh5U0zx0h3n8Okc=";
   };
 
   postPatch = ''
@@ -30,7 +30,7 @@ buildDotnetModule rec {
 
   dotnet-runtime = dotnetCorePackages.runtime_8_0;
 
-  doCheck = !(stdenv.isDarwin && stdenv.isAarch64); # mono is not available on aarch64-darwin
+  doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64); # mono is not available on aarch64-darwin
 
   nativeCheckInputs = [ mono ];
 
diff --git a/pkgs/by-name/bi/bicgl/package.nix b/pkgs/by-name/bi/bicgl/package.nix
new file mode 100644
index 000000000000..89f4220f92f4
--- /dev/null
+++ b/pkgs/by-name/bi/bicgl/package.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, cmake, libminc, bicpl, libGLU, libglut }:
+
+stdenv.mkDerivation rec {
+  pname = "bicgl";
+  version = "unstable-2018-04-06";
+
+  owner = "BIC-MNI";
+
+  src = fetchFromGitHub {
+    inherit owner;
+    repo = pname;
+    rev = "61a035751c9244fcca1edf94d6566fa2a709ce90";
+    sha256 = "0lzirdi1mf4yl8srq7vjn746sbydz7h0wjh7wy8gycy6hq04qrg4";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libminc bicpl libGLU libglut ];
+
+  cmakeFlags = [
+    "-DLIBMINC_DIR=${libminc}/lib/cmake"
+    "-DBICPL_DIR=${bicpl}/lib"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/${owner}/${pname}";
+    description = "Brain Imaging Centre graphics library";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license = licenses.hpndUc;
+  };
+}
diff --git a/pkgs/by-name/bi/bicon/package.nix b/pkgs/by-name/bi/bicon/package.nix
new file mode 100644
index 000000000000..11f63b7a868f
--- /dev/null
+++ b/pkgs/by-name/bi/bicon/package.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv
+, fetchFromGitHub
+, fetchpatch
+, autoreconfHook
+, pkg-config
+, perl
+, fribidi
+, kbd
+, xkbutils
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bicon";
+  version = "unstable-2020-06-04";
+
+  src = fetchFromGitHub {
+    owner = "behdad";
+    repo = pname;
+    rev = "64ae10c94b94a573735a2c2b1502334b86d3b1f7";
+    sha256 = "0ixsf65j4dbdl2aazjc2j0hiagbp6svvfwfmyivha0i1k5yx12v1";
+  };
+
+  patches = [
+    # Fix build on clang-13. Pull the change pending upstream
+    # inclusion: https://github.com/behdad/bicon/pull/29
+    (fetchpatch {
+      name = "clang.patch";
+      url = "https://github.com/behdad/bicon/commit/20f5a79571f222f96e07d7c0c5e76e2c9ff1c59a.patch";
+      sha256 = "0l1dm7w52k57nv3lvz5pkbwp021mlsk3csyalxi90np1lx5sqbd1";
+    })
+  ];
+
+  buildInputs = [ fribidi kbd xkbutils perl ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  meta = with lib; {
+    description = "Bidirectional console";
+    homepage =  "https://github.com/behdad/bicon";
+    license = [ licenses.lgpl21 licenses.psfl licenses.bsd0 ];
+    maintainers = [ ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/bi/bicpl/package.nix b/pkgs/by-name/bi/bicpl/package.nix
new file mode 100644
index 000000000000..fd9e4f4003e0
--- /dev/null
+++ b/pkgs/by-name/bi/bicpl/package.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  libminc,
+  netpbm,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bicpl";
+  version = "unstable-2024-05-14";
+
+  # master is not actively maintained, using develop and develop-apple branches
+  src = fetchFromGitHub {
+    owner = "BIC-MNI";
+    repo = pname;
+    rev = "7e1e791483cf135fe29b8eecd7a360aa892823ae";
+    hash = "sha256-SvbtPUfEYp3IGivG+5yFdJF904miyMk+s15zwW7e7b4=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [
+    libminc
+    netpbm
+  ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" ];
+
+  doCheck = false;
+  # internal_volume_io.h: No such file or directory
+
+  meta = with lib; {
+    homepage = "https://github.com/BIC-MNI/bicpl";
+    description = "Brain Imaging Centre programming library";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license = with licenses; [
+      hpndUc
+      gpl3Plus
+    ];
+  };
+}
diff --git a/pkgs/by-name/bi/bigloo/package.nix b/pkgs/by-name/bi/bigloo/package.nix
new file mode 100644
index 000000000000..c3ff5334cadb
--- /dev/null
+++ b/pkgs/by-name/bi/bigloo/package.nix
@@ -0,0 +1,77 @@
+{ fetchurl, lib, stdenv, autoconf, automake, libtool, gmp
+, darwin, libunistring
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bigloo";
+  version = "4.4b";
+
+  src = fetchurl {
+    url = "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo-${version}.tar.gz";
+    sha256 = "sha256-oxOSJwKWmwo7PYAwmeoFrKaYdYvmvQquWXyutolc488=";
+  };
+
+  nativeBuildInputs = [ autoconf automake libtool ];
+
+  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
+    darwin.apple_sdk.frameworks.ApplicationServices
+    libunistring
+  ];
+
+  propagatedBuildInputs = [ gmp ];
+
+  preConfigure =
+    # For libuv on darwin
+    lib.optionalString stdenv.hostPlatform.isDarwin ''
+      export LIBTOOLIZE=libtoolize
+    '' + ''
+      # Help libgc's configure.
+      export CXXCPP="$CXX -E"
+    '';
+
+  patchPhase = ''
+    # Fix absolute paths.
+    sed -e 's=/bin/mv=mv=g' -e 's=/bin/rm=rm=g'			\
+        -e 's=/tmp=$TMPDIR=g' -i autoconf/*		\
+        [Mm]akefile*   */[Mm]akefile*   */*/[Mm]akefile*	\
+        */*/*/[Mm]akefile*   */*/*/*/[Mm]akefile*		\
+        comptime/Cc/cc.scm gc/install-*
+
+    # Make sure we don't change string lengths in the generated
+    # C files.
+    sed -e 's=/bin/rm=     rm=g' -e 's=/bin/mv=     mv=g'	\
+        -i comptime/Cc/cc.c
+  '';
+
+  checkTarget = "test";
+
+  # remove forbidden references to $TMPDIR
+  preFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
+    for f in "$out"/bin/*; do
+      if isELF "$f"; then
+        patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" "$f"
+      fi
+    done
+  '';
+
+  meta = {
+    description = "Efficient Scheme compiler";
+    homepage    = "http://www-sop.inria.fr/indes/fp/Bigloo/";
+    license     = lib.licenses.gpl2Plus;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ thoughtpolice ];
+    broken      = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64; # segfault during build
+
+    longDescription = ''
+      Bigloo is a Scheme implementation devoted to one goal: enabling
+      Scheme based programming style where C(++) is usually
+      required.  Bigloo attempts to make Scheme practical by offering
+      features usually presented by traditional programming languages
+      but not offered by Scheme and functional programming.  Bigloo
+      compiles Scheme modules.  It delivers small and fast stand alone
+      binary executables.  Bigloo enables full connections between
+      Scheme and C programs, between Scheme and Java programs, and
+      between Scheme and C# programs.
+    '';
+  };
+}
diff --git a/pkgs/by-name/bi/biglybt/package.nix b/pkgs/by-name/bi/biglybt/package.nix
index 81c2fa31f9c3..4f11683dd18f 100644
--- a/pkgs/by-name/bi/biglybt/package.nix
+++ b/pkgs/by-name/bi/biglybt/package.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "biglybt";
-  version = "3.6.0.0";
+  version = "3.7.0.0";
 
   src = fetchurl {
     url = "https://github.com/BiglySoftware/BiglyBT/releases/download/v${version}/GitHub_BiglyBT_unix.tar.gz";
-    hash = "sha256-a7g9sB3orO2m0X7qNwQ1dDygYPhs/b6kX0RDSG8Wq2U=";
+    hash = "sha256-CfLKoX77yCanSzHq+Fy3jRqQAC2GeUo2SO9x0mk2Tf4=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook3 ];
diff --git a/pkgs/by-name/bi/bilibili/package.nix b/pkgs/by-name/bi/bilibili/package.nix
index b3f7a7b7adaa..14b3e0348370 100644
--- a/pkgs/by-name/bi/bilibili/package.nix
+++ b/pkgs/by-name/bi/bilibili/package.nix
@@ -1,29 +1,40 @@
-{ lib
-, stdenv
-, fetchurl
-, electron
-, zstd
-, makeWrapper
+{
+  lib,
+  stdenv,
+  fetchurl,
+  electron_30,
+  dpkg,
+  makeWrapper,
+  commandLineArgs ? "",
 }:
-
-stdenv.mkDerivation rec {
-  pname = "bilibili";
-  version = "1.14.0-1";
-  src = fetchurl {
-    url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_amd64.deb";
-    hash = "sha256-4+DGL/DNR3wLFUff17OquAM6dOkcsXFNeCqA7ITtCaI=";
+let
+  version = "1.14.0-2";
+  srcs = {
+    x86_64-linux = fetchurl {
+      url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_amd64.deb";
+      hash = "sha256-QQMdEpKE7r/fPMaX/yEoaa7KjilhiPMYLRvGPkv1jds=";
+    };
+    aarch64-linux = fetchurl {
+      url = "https://github.com/msojocs/bilibili-linux/releases/download/v${version}/io.github.msojocs.bilibili_${version}_arm64.deb";
+      hash = "sha256-UaGI4BLhfoYluZpARsj+I0iEmFXYYNfl4JWhBWOOip0=";
+    };
   };
-
+  src =
+    srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+in
+stdenv.mkDerivation {
+  pname = "bilibili";
+  inherit src version;
   unpackPhase = ''
     runHook preUnpack
-
-    ar x $src
-    tar -I ${zstd}/bin/zstd -xvf data.tar.zst
-
+    dpkg -x $src ./
     runHook postUnpack
   '';
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+    dpkg
+  ];
 
   installPhase = ''
     runHook preInstall
@@ -32,20 +43,31 @@ stdenv.mkDerivation rec {
     cp -r usr/share $out/share
     sed -i "s|Exec=.*|Exec=$out/bin/bilibili|" $out/share/applications/*.desktop
     cp -r opt/apps/io.github.msojocs.bilibili/files/bin/app $out/opt
-    makeWrapper ${electron}/bin/electron $out/bin/bilibili \
+    makeWrapper ${lib.getExe electron_30} $out/bin/bilibili \
       --argv0 "bilibili" \
-      --add-flags "$out/opt/app.asar"
+      --add-flags "$out/opt/app.asar" \
+      --add-flags ${lib.escapeShellArg commandLineArgs}
 
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Electron-based bilibili desktop client";
     homepage = "https://github.com/msojocs/bilibili-linux";
-    license = with licenses; [ unfree mit ];
-    maintainers = with maintainers; [ jedsek kashw2 ];
-    platforms = [ "x86_64-linux" ];
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = with lib.licenses; [
+      unfree
+      mit
+    ];
+    maintainers = with lib.maintainers; [
+      jedsek
+      kashw2
+      bot-wxt1221
+    ];
+    platforms = [
+      "x86_64-linux"
+      "aarch64-linux"
+    ];
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
     mainProgram = "bilibili";
   };
 }
diff --git a/pkgs/by-name/bi/bililiverecorder/package.nix b/pkgs/by-name/bi/bililiverecorder/package.nix
new file mode 100644
index 000000000000..5a1dcf4f2e79
--- /dev/null
+++ b/pkgs/by-name/bi/bililiverecorder/package.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchzip
+, makeWrapper
+, dotnetCorePackages
+}:
+
+let
+  pname = "bililiverecorder";
+
+  dotnet = with dotnetCorePackages; combinePackages [
+    runtime_6_0
+    aspnetcore_6_0
+  ];
+
+  version = "2.12.0";
+  hash = "sha256-2usiJTGA2FcJ9HBs3RDiARfC2yv/UqBgmT+z5F5Y7w0=";
+
+in
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchzip {
+    url = "https://github.com/BililiveRecorder/BililiveRecorder/releases/download/v${version}/BililiveRecorder-CLI-any.zip";
+    stripRoot = false;
+    inherit hash;
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/${pname}-${version}}
+    cp -r * $out/share/${pname}-${version}/.
+
+    makeWrapper "${dotnet}/bin/dotnet" $out/bin/BililiveRecorder \
+      --add-flags "$out/share/${pname}-${version}/BililiveRecorder.Cli.dll"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Convenient free open source bilibili live recording tool";
+    homepage = "https://rec.danmuji.org/";
+    changelog = "https://github.com/BililiveRecorder/BililiveRecorder/releases/tag/${version}";
+    mainProgram = "BililiveRecorder";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ zaldnoay ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/bi/bin2c/package.nix b/pkgs/by-name/bi/bin2c/package.nix
new file mode 100644
index 000000000000..7ac93c4539b9
--- /dev/null
+++ b/pkgs/by-name/bi/bin2c/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, util-linux
+}:
+
+stdenv.mkDerivation {
+  pname = "bin2c";
+  version = "unstable-2020-05-30";
+
+  src = fetchFromGitHub {
+    owner = "adobe";
+    repo = "bin2c";
+    rev = "4300880a350679a808dc05bdc2840368f5c24d9a";
+    sha256 = "sha256-PLo5kkN2k3KutVGumoXEB2x9MdxDUtpwAQZLwm4dDvw=";
+  };
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  doCheck = !stdenv.hostPlatform.isDarwin;
+  checkTarget = "test";
+  checkInputs = [ util-linux ]; # uuidgen
+
+  meta = with lib; {
+    description = "Embed binary & text files inside C binaries";
+    mainProgram = "bin2c";
+    homepage = "https://github.com/adobe/bin2c";
+    license = licenses.asl20;
+    maintainers = [ maintainers.shadowrz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/bi/binbloom/package.nix b/pkgs/by-name/bi/binbloom/package.nix
new file mode 100644
index 000000000000..766e40f8f059
--- /dev/null
+++ b/pkgs/by-name/bi/binbloom/package.nix
@@ -0,0 +1,28 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "binbloom";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "quarkslab";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-ox4o9RPtqMsme//8dVatNUo+mA/6dM9eI/T5lsuSAus=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  meta = with lib; {
+    description = "Raw binary firmware analysis software";
+    mainProgram = "binbloom";
+    homepage = "https://github.com/quarkslab/binbloom";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ erdnaxe ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/bi/bind/dont-keep-configure-flags.patch b/pkgs/by-name/bi/bind/dont-keep-configure-flags.patch
new file mode 100644
index 000000000000..b1677da434f5
--- /dev/null
+++ b/pkgs/by-name/bi/bind/dont-keep-configure-flags.patch
@@ -0,0 +1,40 @@
+diff --git a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h
+index 82b632ef04..dedfd4d33b 100644
+--- a/bin/named/include/named/globals.h
++++ b/bin/named/include/named/globals.h
+@@ -69,7 +69,9 @@ EXTERN const char *named_g_version	INIT(PACKAGE_VERSION);
+ EXTERN const char *named_g_product	INIT(PACKAGE_NAME);
+ EXTERN const char *named_g_description	INIT(PACKAGE_DESCRIPTION);
+ EXTERN const char *named_g_srcid	INIT(PACKAGE_SRCID);
++#if 0
+ EXTERN const char *named_g_configargs	INIT(PACKAGE_CONFIGARGS);
++#endif
+ EXTERN const char *named_g_builder	INIT(PACKAGE_BUILDER);
+ EXTERN in_port_t named_g_port		INIT(0);
+ EXTERN in_port_t named_g_tlsport	INIT(0);
+diff --git a/bin/named/main.c b/bin/named/main.c
+index 9ad2d0e277..9729a2b3fc 100644
+--- a/bin/named/main.c
++++ b/bin/named/main.c
+@@ -481,7 +481,9 @@ printversion(bool verbose) {
+ 	}
+ 
+ 	printf("running on %s\n", named_os_uname());
++#if 0
+ 	printf("built by %s with %s\n", PACKAGE_BUILDER, PACKAGE_CONFIGARGS);
++#endif
+ #ifdef __clang__
+ 	printf("compiled by CLANG %s\n", __VERSION__);
+ #else /* ifdef __clang__ */
+@@ -1027,9 +1029,11 @@ setup(void) {
+ 		      NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE, "running on %s",
+ 		      named_os_uname());
+ 
++#if 0
+ 	isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
+ 		      NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE, "built with %s",
+ 		      PACKAGE_CONFIGARGS);
++#endif
+ 
+ 	isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
+ 		      NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
diff --git a/pkgs/by-name/bi/bind/package.nix b/pkgs/by-name/bi/bind/package.nix
new file mode 100644
index 000000000000..545474200bf8
--- /dev/null
+++ b/pkgs/by-name/bi/bind/package.nix
@@ -0,0 +1,133 @@
+{ stdenv
+, lib
+, fetchurl
+, darwin
+, perl
+, pkg-config
+, libcap
+, libidn2
+, libtool
+, libxml2
+, openssl
+, libuv
+, nghttp2
+, jemalloc
+, enablePython ? false
+, python3
+, enableGSSAPI ? true
+, libkrb5
+, buildPackages
+, nixosTests
+, cmocka
+, tzdata
+, gitUpdater
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bind";
+  version = "9.18.28";
+
+  src = fetchurl {
+    url = "https://downloads.isc.org/isc/bind9/${finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
+    hash = "sha256-58zpoWX3thnu/Egy8KjcFrAF0p44kK7WAIxQbqKGpec=";
+  };
+
+  outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
+
+  patches = [
+    ./dont-keep-configure-flags.patch
+  ];
+
+  nativeBuildInputs = [ perl pkg-config ];
+  buildInputs = [ libidn2 libtool libxml2 openssl libuv nghttp2 jemalloc ]
+    ++ lib.optional stdenv.hostPlatform.isLinux libcap
+    ++ lib.optional enableGSSAPI libkrb5
+    ++ lib.optional enablePython (python3.withPackages (ps: with ps; [ ply ]))
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.CoreServices ];
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+  configureFlags = [
+    "--localstatedir=/var"
+    "--without-lmdb"
+    "--with-libidn2"
+  ] ++ lib.optional enableGSSAPI "--with-gssapi=${libkrb5.dev}/bin/krb5-config"
+  ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "BUILD_CC=$(CC_FOR_BUILD)";
+
+  postInstall = ''
+    moveToOutput bin/bind9-config $dev
+
+    moveToOutput bin/host $host
+
+    moveToOutput bin/dig $dnsutils
+    moveToOutput bin/delv $dnsutils
+    moveToOutput bin/nslookup $dnsutils
+    moveToOutput bin/nsupdate $dnsutils
+
+    for f in "$lib/lib/"*.la "$dev/bin/"bind*-config; do
+      sed -i "$f" -e 's|-L${openssl.dev}|-L${lib.getLib openssl}|g'
+    done
+
+    cat <<EOF >$out/etc/rndc.conf
+    include "/etc/bind/rndc.key";
+    options {
+        default-key "rndc-key";
+        default-server 127.0.0.1;
+        default-port 953;
+    };
+    EOF
+  '';
+
+  enableParallelBuilding = true;
+
+  doCheck = false;
+  # TODO: investigate failures; see this and linked discussions:
+  # https://github.com/NixOS/nixpkgs/pull/192962
+  /*
+  doCheck = with stdenv.hostPlatform; !isStatic && !(isAarch64 && isLinux)
+    # https://gitlab.isc.org/isc-projects/bind9/-/issues/4269
+    && !is32bit;
+  */
+  checkTarget = "unit";
+  checkInputs = [
+    cmocka
+  ] ++ lib.optionals (!stdenv.hostPlatform.isMusl) [
+    tzdata
+  ];
+  preCheck = lib.optionalString stdenv.hostPlatform.isMusl ''
+    # musl doesn't respect TZDIR, skip timezone-related tests
+    sed -i '/^ISC_TEST_ENTRY(isc_time_formatISO8601L/d' tests/isc/time_test.c
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+    # Test timeouts on Darwin
+    sed -i '/^ISC_TEST_ENTRY(tcpdns_recv_one/d' tests/isc/netmgr_test.c
+  '';
+
+  passthru = {
+    tests = {
+      withCheck = finalAttrs.finalPackage.overrideAttrs { doCheck = true; };
+      inherit (nixosTests) bind;
+      prometheus-exporter = nixosTests.prometheus-exporters.bind;
+      kubernetes-dns-single-node = nixosTests.kubernetes.dns-single-node;
+      kubernetes-dns-multi-node = nixosTests.kubernetes.dns-multi-node;
+    };
+
+    updateScript = gitUpdater {
+      # No nicer place to find latest stable release.
+      url = "https://gitlab.isc.org/isc-projects/bind9.git";
+      rev-prefix = "v";
+      # Avoid unstable 9.19 releases.
+      odd-unstable = true;
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://www.isc.org/bind/";
+    description = "Domain name server";
+    license = licenses.mpl20;
+    changelog = "https://downloads.isc.org/isc/bind9/cur/${lib.versions.majorMinor finalAttrs.version}/CHANGES";
+    maintainers = with maintainers; [ globin ];
+    platforms = platforms.unix;
+
+    outputsToInstall = [ "out" "dnsutils" "host" ];
+  };
+})
diff --git a/pkgs/by-name/bi/bindfs/package.nix b/pkgs/by-name/bi/bindfs/package.nix
new file mode 100644
index 000000000000..f086e9416ad6
--- /dev/null
+++ b/pkgs/by-name/bi/bindfs/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, fuse
+, fuse3
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  version = "1.17.7";
+  pname = "bindfs";
+
+  src = fetchurl {
+    url = "https://bindfs.org/downloads/bindfs-${finalAttrs.version}.tar.gz";
+    hash = "sha256-wLBg6Uw6IxodSqC88mb/GJmBpO845C++IylqfYFxm3o=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = if stdenv.hostPlatform.isDarwin then [ fuse ] else [ fuse3 ];
+
+  configureFlags = lib.optional stdenv.hostPlatform.isDarwin "--disable-macos-fs-link";
+
+  postFixup = ''
+    ln -s $out/bin/bindfs $out/bin/mount.fuse.bindfs
+  '';
+
+  meta = {
+    changelog = "https://github.com/mpartel/bindfs/raw/${finalAttrs.version}/ChangeLog";
+    description = "FUSE filesystem for mounting a directory to another location";
+    homepage = "https://bindfs.org";
+    license = lib.licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ lovek323 lovesegfault ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/bi/bingo/package.nix b/pkgs/by-name/bi/bingo/package.nix
new file mode 100644
index 000000000000..9af3b77dfbff
--- /dev/null
+++ b/pkgs/by-name/bi/bingo/package.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "bingo";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "bwplotka";
+    repo = "bingo";
+    rev = "v${version}";
+    hash = "sha256-bzh6P+J8EoewjOofwWXMgtSXAhESetD3y9EiqLNOT54=";
+  };
+
+  vendorHash = "sha256-cDeeRkTwuwEKNTqK/6ZEKANrjTIUTeR3o5oClkJQ4AE=";
+
+  postPatch = ''
+    rm get_e2e_test.go get_e2e_utils_test.go
+  '';
+
+  CGO_ENABLED = 0;
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    description = "Like `go get` but for Go tools! CI Automating versioning of Go binaries in a nested, isolated Go modules";
+    mainProgram = "bingo";
+    homepage = "https://github.com/bwplotka/bingo";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ aaronjheng ];
+  };
+}
diff --git a/pkgs/by-name/bi/bingrep/package.nix b/pkgs/by-name/bi/bingrep/package.nix
new file mode 100644
index 000000000000..6a5e2041e57d
--- /dev/null
+++ b/pkgs/by-name/bi/bingrep/package.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "bingrep";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "m4b";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-bHu3/f25U1QtRZv1z5OQSDMayOpLU6tbNaV00K55ZY8=";
+  };
+
+  cargoHash = "sha256-n49VmAJcD98LdkrUCW6ouihSXmSCsdBDvCe9l96G0ec=";
+
+  meta = with lib; {
+    description = "Greps through binaries from various OSs and architectures, and colors them";
+    mainProgram = "bingrep";
+    homepage = "https://github.com/m4b/bingrep";
+    license = licenses.mit;
+    maintainers = with maintainers; [ minijackson ];
+  };
+}
diff --git a/pkgs/by-name/bi/binsider/package.nix b/pkgs/by-name/bi/binsider/package.nix
index 3b85edb9b6e7..74b5b0e38e42 100644
--- a/pkgs/by-name/bi/binsider/package.nix
+++ b/pkgs/by-name/bi/binsider/package.nix
@@ -1,26 +1,38 @@
 {
   lib,
+  darwin,
   rustPlatform,
   fetchFromGitHub,
   stdenv,
 }:
 rustPlatform.buildRustPackage rec {
   pname = "binsider";
-  version = "0.1.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "binsider";
     rev = "v${version}";
-    hash = "sha256-+QgbSpiDKPTVdSm0teEab1O6OJZKEDpC2ZIZ728e69Y=";
+    hash = "sha256-FNaYMp+vrFIziBzZ8//+ppq7kwRjBJypqsxg42XwdEs=";
   };
 
-  cargoHash = "sha256-lXYTZ3nvLrfEgo7AY/qSQYpXsyrdJuQQw43xREezNn0=";
+  cargoHash = "sha256-EGqoHMkBPIhKV/PozArQ62bH/Gqc92S6ZabTjmIbQeE=";
 
-  # Tests need the executable in target/debug/
-  preCheck = ''
-    cargo build
-  '';
+  buildNoDefaultFeatures = !stdenv.isLinux;
+
+  buildInputs = lib.optionals stdenv.isDarwin (
+    with darwin.apple_sdk.frameworks;
+    [
+      AppKit
+      CoreServices
+    ]
+  );
+
+  checkType = "debug";
+  checkFlags = [
+    "--skip=test_extract_strings"
+    "--skip=test_init"
+  ];
 
   meta = with lib; {
     description = "Analyzer of executables using a terminal user interface";
@@ -31,6 +43,5 @@ rustPlatform.buildRustPackage rec {
     ];
     maintainers = with maintainers; [ samueltardieu ];
     mainProgram = "binsider";
-    broken = stdenv.isDarwin || stdenv.isAarch64;
   };
 }
diff --git a/pkgs/by-name/bi/bioawk/package.nix b/pkgs/by-name/bi/bioawk/package.nix
new file mode 100644
index 000000000000..f7da30fc4f72
--- /dev/null
+++ b/pkgs/by-name/bi/bioawk/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+, bison
+, zlib
+}:
+
+stdenv.mkDerivation {
+  pname = "bioawk";
+  version = "unstable-2017-09-11";
+
+  src = fetchFromGitHub {
+    owner = "lh3";
+    repo = "bioawk";
+    rev = "fd40150b7c557da45e781a999d372abbc634cc21";
+    hash = "sha256-WWgz96DPP83J45isWkMbgEvOlibq6WefK//ImV6+AU0=";
+  };
+
+  nativeBuildInputs = [
+    bison
+    installShellFiles
+  ];
+
+  buildInputs = [
+    zlib
+  ];
+
+  buildFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 bioawk -t $out/bin
+    mv awk.1 bioawk.1
+    installManPage bioawk.1
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "BWK awk modified for biological data";
+    mainProgram = "bioawk";
+    homepage = "https://github.com/lh3/bioawk";
+    license = licenses.hpnd;
+    maintainers = with maintainers; [ natsukium ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/bi/biodiff/package.nix b/pkgs/by-name/bi/biodiff/package.nix
new file mode 100644
index 000000000000..adbb69f486e8
--- /dev/null
+++ b/pkgs/by-name/bi/biodiff/package.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub, rustPlatform, wfa2-lib }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "biodiff";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "8051Enthusiast";
+    repo = "biodiff";
+    rev = "v${version}";
+    hash = "sha256-ZLxjOV08sC5dKICvRUyL6FLMORkxwdLgNq7L45CDwa4=";
+    fetchSubmodules = true;
+  };
+
+  cargoHash = "sha256-LxkwhOxXkegdXLmtbNLIB6nOAeCbpvIwSXbTF6jBcHs=";
+
+  buildInputs = [ wfa2-lib ];
+
+  # default statically links wfa2
+  buildNoDefaultFeatures = true;
+  buildFeatures = [ "wfa2" ];
+
+  meta = with lib; {
+    description = "Hex diff viewer using alignment algorithms from biology";
+    homepage = "https://github.com/8051Enthusiast/biodiff";
+    changelog = "https://github.com/8051Enthusiast/biodiff/blob/v${version}/CHANGELOG";
+    license = licenses.mit;
+    maintainers = with maintainers; [ newam ];
+  };
+}
diff --git a/pkgs/by-name/bi/biome/package.nix b/pkgs/by-name/bi/biome/package.nix
index c37b4f6f66e5..993e087d6dec 100644
--- a/pkgs/by-name/bi/biome/package.nix
+++ b/pkgs/by-name/bi/biome/package.nix
@@ -6,41 +6,31 @@
   libgit2,
   rust-jemalloc-sys,
   zlib,
-  stdenv,
-  darwin,
   git,
 }:
 rustPlatform.buildRustPackage rec {
   pname = "biome";
-  version = "1.9.0";
+  version = "1.9.4";
 
   src = fetchFromGitHub {
     owner = "biomejs";
     repo = "biome";
     rev = "cli/v${version}";
-    hash = "sha256-AVw7yhC/f5JkFw2sQZ5YgzeXXjoJ8BfGgsS5sRVV/wE=";
+    hash = "sha256-oK1tCPoTeUHvVdi+ym4J5xEj2NIi2zHQpNU1KUchQfY=";
   };
 
-  cargoHash = "sha256-Vz6GCDGdC2IUtBK5X/t/Q5LODFUSlUxPBTCIjgdw3XU=";
+  cargoHash = "sha256-4vITbsXfgNFoeWMHz7a9Rk7FrsEZRe75nHiyHSMujEQ=";
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
-
-  buildInputs =
-    [
-      libgit2
-      rust-jemalloc-sys
-      zlib
-    ]
-    ++ lib.optionals stdenv.isDarwin [
-      darwin.apple_sdk.frameworks.Security
-    ];
+  nativeBuildInputs = [ pkg-config ];
 
-  nativeCheckInputs = [
-    git
+  buildInputs = [
+    libgit2
+    rust-jemalloc-sys
+    zlib
   ];
 
+  nativeCheckInputs = [ git ];
+
   cargoBuildFlags = [ "-p=biome_cli" ];
   cargoTestFlags =
     cargoBuildFlags
diff --git a/pkgs/by-name/bi/biosdevname/makefile.patch b/pkgs/by-name/bi/biosdevname/makefile.patch
new file mode 100644
index 000000000000..0fc083f9096f
--- /dev/null
+++ b/pkgs/by-name/bi/biosdevname/makefile.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile.am b/Makefile.am
+index 14d9a92..9e324d2 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -8,8 +8,6 @@ dist_noinst_DATA = biosdevname.rules.in biosdevname.spec.fedora biosdevname.spec
+ 
+ CLEANFILES = version src/bios_dev_name.h
+ install-data-local:
+-	mkdir -p $(DESTDIR)@RULEDIR@
+-	$(INSTALL_DATA) $(top_srcdir)/biosdevname.rules.in $(DESTDIR)@RULEDEST@
+ 
+ uninstall-local:
+ 	rm -f $(DESTDIR)@RULEDEST@
diff --git a/pkgs/by-name/bi/biosdevname/package.nix b/pkgs/by-name/bi/biosdevname/package.nix
new file mode 100644
index 000000000000..ce8265520da5
--- /dev/null
+++ b/pkgs/by-name/bi/biosdevname/package.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, zlib, pciutils }:
+
+stdenv.mkDerivation rec {
+  pname = "biosdevname";
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "dell";
+    repo = "biosdevname";
+    rev = "v${version}";
+    sha256 = "19wbb79x9h79k55sgd4dylvdbhhrvfaiaknbw9s1wvfmirkxa1dz";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ zlib pciutils ];
+
+  # Don't install /lib/udev/rules.d/*-biosdevname.rules
+  patches = [ ./makefile.patch ];
+
+  configureFlags = [ "--sbindir=\${out}/bin" ];
+
+  meta = with lib; {
+    description = "Udev helper for naming devices per BIOS names";
+    license = licenses.gpl2Only;
+    platforms = ["x86_64-linux" "i686-linux"];
+    maintainers = [ ];
+    mainProgram = "biosdevname";
+  };
+}
diff --git a/pkgs/by-name/bi/bip/package.nix b/pkgs/by-name/bi/bip/package.nix
new file mode 100644
index 000000000000..75f31d1ba9b5
--- /dev/null
+++ b/pkgs/by-name/bi/bip/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchurl
+, autoreconfHook
+, pkg-config
+, bison
+, flex
+, openssl
+}:
+
+stdenv.mkDerivation {
+  pname = "bip";
+  version = "0.9.3";
+
+  src = fetchurl {
+    # Note that the number behind download is not predictable
+    url = "https://projects.duckcorp.org/attachments/download/146/bip-0.9.3.tar.gz";
+    hash = "sha256-K+6AC8mg0aLQsCgiDoFBM5w2XrR+V2tfWnI8ByeRmOI=";
+  };
+
+  outputs = [ "out" "man" "doc" ];
+
+  postPatch = ''
+    # Drop blanket -Werror to avoid build failure on fresh toolchains
+    # and libraries. Without the cnage build fails on gcc-13 and on
+    # openssl-3.
+    substituteInPlace src/Makefile.am --replace-fail ' -Werror ' ' '
+  '';
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ bison flex openssl ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "IRC proxy (bouncer)";
+    homepage = "http://bip.milkypond.org/";
+    license = lib.licenses.gpl2;
+    downloadPage = "https://projects.duckcorp.org/projects/bip/files";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/bi/bird-lg/package.nix b/pkgs/by-name/bi/bird-lg/package.nix
new file mode 100644
index 000000000000..b459e0b304af
--- /dev/null
+++ b/pkgs/by-name/bi/bird-lg/package.nix
@@ -0,0 +1,51 @@
+{ buildGoModule, fetchFromGitHub, lib, symlinkJoin }:
+let
+  generic = { modRoot, vendorHash }:
+    buildGoModule rec {
+      pname = "bird-lg-${modRoot}";
+      version = "1.3.5";
+
+      src = fetchFromGitHub {
+        owner = "xddxdd";
+        repo = "bird-lg-go";
+        rev = "v${version}";
+        hash = "sha256-lWpTIuN+wCSDBHmpRIfVG8Z1Qx1s55MnJomQPjczB5k=";
+      };
+
+      doDist = false;
+
+      ldflags = [
+        "-s"
+        "-w"
+      ];
+
+      inherit modRoot vendorHash;
+
+      meta = with lib; {
+        description = "Bird Looking Glass";
+        homepage = "https://github.com/xddxdd/bird-lg-go";
+        changelog = "https://github.com/xddxdd/bird-lg-go/releases/tag/v${version}";
+        license = licenses.gpl3Plus;
+        maintainers = with maintainers; [
+          tchekda
+          e1mo
+        ];
+      };
+    };
+
+  bird-lg-frontend = generic {
+    modRoot = "frontend";
+    vendorHash = "sha256-+M9Mlqck2E/ETW+NXsKwIeWlmZAaBU07fgDhKUU9PAI=";
+  };
+
+  bird-lg-proxy = generic {
+    modRoot = "proxy";
+    vendorHash = "sha256-nBTLQUX68f98D0RTlyX0gnvhQ+bu8d3Vv67J/YoXJxs=";
+  };
+in
+symlinkJoin {
+  name = "bird-lg-${bird-lg-frontend.version}";
+  paths = [ bird-lg-frontend bird-lg-proxy ];
+} // {
+  inherit (bird-lg-frontend) version meta;
+}
diff --git a/pkgs/by-name/bi/bird/dont-create-sysconfdir-2.patch b/pkgs/by-name/bi/bird/dont-create-sysconfdir-2.patch
new file mode 100644
index 000000000000..247164461183
--- /dev/null
+++ b/pkgs/by-name/bi/bird/dont-create-sysconfdir-2.patch
@@ -0,0 +1,6 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -165,2 +165,2 @@
+ install: all
+-	$(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) $(DESTDIR)/$(runstatedir)
++	$(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir)
diff --git a/pkgs/by-name/bi/bird/package.nix b/pkgs/by-name/bi/bird/package.nix
new file mode 100644
index 000000000000..b1e3c09db214
--- /dev/null
+++ b/pkgs/by-name/bi/bird/package.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchurl, flex, bison, readline, libssh, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "bird";
+  version = "2.15.1";
+
+  src = fetchurl {
+    url = "ftp://bird.network.cz/pub/bird/${pname}-${version}.tar.gz";
+    hash = "sha256-SOhcYi3hZHVsEy6netGoqVzJ/QE3/9DYgnRlic51x10=";
+  };
+
+  nativeBuildInputs = [ flex bison ];
+  buildInputs = [ readline libssh ];
+
+  patches = [
+    ./dont-create-sysconfdir-2.patch
+  ];
+
+  CPP="${stdenv.cc.targetPrefix}cpp -E";
+
+  configureFlags = [
+    "--localstatedir=/var"
+    "--runstatedir=/run/bird"
+  ];
+
+  passthru.tests = nixosTests.bird;
+
+  meta = with lib; {
+    changelog = "https://gitlab.nic.cz/labs/bird/-/blob/v${version}/NEWS";
+    description = "BIRD Internet Routing Daemon";
+    homepage = "http://bird.network.cz";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ herbetom ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/bi/birdwatcher/package.nix b/pkgs/by-name/bi/birdwatcher/package.nix
new file mode 100644
index 000000000000..9e2d04f2f7e1
--- /dev/null
+++ b/pkgs/by-name/bi/birdwatcher/package.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+  nixosTests,
+  gitUpdater,
+}:
+
+buildGoModule rec {
+  pname = "birdwatcher";
+  version = "2.2.5";
+
+  vendorHash = "sha256-NTD2pnA/GeTn4tXtIFJ227qjRtvBFCjWYZv59Rumc74=";
+
+  src = fetchFromGitHub {
+    owner = "alice-lg";
+    repo = "birdwatcher";
+    rev = version;
+    hash = "sha256-TTU5TYWD/KSh/orDdQnNrQJ/G7z5suBu7psF9V6AAIw=";
+  };
+
+  deleteVendor = true;
+
+  passthru = {
+    tests = {
+      inherit (nixosTests) birdwatcher;
+    };
+
+    updateScript = gitUpdater { };
+  };
+
+  meta = {
+    homepage = "https://github.com/alice-lg/birdwatcher";
+    description = "Small HTTP server meant to provide an API defined by Barry O'Donovan's birds-eye to the BIRD internet routing daemon";
+    changelog = "https://github.com/alice-lg/birdwatcher/blob/master/CHANGELOG";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ stv0g ];
+    mainProgram = "birdwatcher";
+  };
+}
diff --git a/pkgs/by-name/bi/biscuit-cli/package.nix b/pkgs/by-name/bi/biscuit-cli/package.nix
new file mode 100644
index 000000000000..c04d8ea0c118
--- /dev/null
+++ b/pkgs/by-name/bi/biscuit-cli/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, testers
+, nix-update-script
+, biscuit-cli
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "biscuit-cli";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "biscuit-auth";
+    repo = "biscuit-cli";
+    rev = version;
+    sha256 = "sha256-BLDJ4Rzu48sAklbv021XSzmATRd+D01yGHqJt6kvjGw=";
+  };
+
+  cargoHash = "sha256-J5/3zk9ZjSuiZBKrogP+8sVZr+w9dYlROkRRJFPyVvs=";
+
+  passthru = {
+    updateScript = nix-update-script { };
+    tests.version = testers.testVersion {
+      inherit version;
+      package = biscuit-cli;
+      command = "biscuit --version";
+    };
+  };
+
+  meta = with lib; {
+    description = "CLI to generate and inspect biscuit tokens";
+    homepage = "https://www.biscuitsec.org/";
+    maintainers = with maintainers; [ shlevy gaelreyrol ];
+    license = licenses.bsd3;
+    mainProgram = "biscuit";
+  };
+}
diff --git a/pkgs/by-name/bi/bison/package.nix b/pkgs/by-name/bi/bison/package.nix
new file mode 100644
index 000000000000..80a2ad835c28
--- /dev/null
+++ b/pkgs/by-name/bi/bison/package.nix
@@ -0,0 +1,58 @@
+{ lib, stdenv, fetchurl, m4, perl, help2man }:
+
+# Note: this package is used for bootstrapping fetchurl, and thus
+# cannot use fetchpatch! All mutable patches (generated by GitHub or
+# cgit) that are needed here should be included directly in Nixpkgs as
+# files.
+
+stdenv.mkDerivation rec {
+  pname = "bison";
+  version = "3.8.2";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "sha256-BsnhO99+sk1M62tZIFpPZ8LH5yExGWREMP6C+9FKCrs=";
+  };
+
+  # gnulib relies on --host= to detect iconv() features on musl().
+  # Otherwise tests fail due to incorrect unicode symbol oconversion.
+  configurePlatforms = [ "build" "host" ];
+
+  # there's a /bin/sh shebang in bin/yacc which when no strictDeps is patched with the build stdenv shell
+  # however when cross-compiling it would still be patched with the build stdenv shell which would be wrong
+  # cannot add bash to buildInputs due to infinite recursion
+  strictDeps = stdenv.hostPlatform != stdenv.buildPlatform;
+
+  nativeBuildInputs = [ m4 perl ] ++ lib.optional stdenv.hostPlatform.isSunOS help2man;
+  propagatedBuildInputs = [ m4 ];
+
+  enableParallelBuilding = true;
+
+  # Normal check and install check largely execute the same test suite
+  doCheck = false;
+  doInstallCheck = true;
+
+  meta = {
+    homepage = "https://www.gnu.org/software/bison/";
+    description = "Yacc-compatible parser generator";
+    license = lib.licenses.gpl3Plus;
+
+    longDescription = ''
+      Bison is a general-purpose parser generator that converts an
+      annotated context-free grammar into an LALR(1) or GLR parser for
+      that grammar.  Once you are proficient with Bison, you can use
+      it to develop a wide range of language parsers, from those used
+      in simple desk calculators to complex programming languages.
+
+      Bison is upward compatible with Yacc: all properly-written Yacc
+      grammars ought to work with Bison with no change.  Anyone
+      familiar with Yacc should be able to use Bison with little
+      trouble.  You need to be fluent in C or C++ programming in order
+      to use Bison.
+    '';
+
+    platforms = lib.platforms.unix;
+  };
+
+  passthru = { glrSupport = true; };
+}
diff --git a/pkgs/by-name/bi/bisoncpp/package.nix b/pkgs/by-name/bi/bisoncpp/package.nix
new file mode 100644
index 000000000000..16d8e13cdfda
--- /dev/null
+++ b/pkgs/by-name/bi/bisoncpp/package.nix
@@ -0,0 +1,56 @@
+{lib, stdenv, fetchurl, fetchFromGitLab
+, yodl, icmake, flexcpp, bobcat
+}:
+stdenv.mkDerivation rec {
+  pname = "bisonc++";
+  version = "6.04.00";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.com";
+    owner = "fbb-git";
+    repo = "bisoncpp";
+    rev = "6.04.00";
+    hash = "sha256:0aa9bij4g08ilsk6cgrbgi03vyhqr9fn6j2164sjin93m63212wl";
+  };
+
+  buildInputs = [ bobcat ];
+
+  nativeBuildInputs = [ yodl icmake flexcpp ];
+
+  setSourceRoot = ''
+    sourceRoot="$(echo */bisonc++)"
+  '';
+
+  gpl = fetchurl {
+    url = "https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt";
+    sha256 = "sha256:0hq6i0dm4420825fdm0lnnppbil6z67ls67n5kgjcd912dszjxw1";
+  };
+
+  postPatch = ''
+    substituteInPlace INSTALL.im --replace /usr $out
+    patchShebangs .
+    for file in $(find documentation -type f); do
+      substituteInPlace "$file" --replace /usr/share/common-licenses/GPL ${gpl}
+      substituteInPlace "$file" --replace /usr $out
+    done
+  '';
+
+  buildPhase = ''
+    ./build program
+    ./build man
+    ./build manual
+  '';
+
+  installPhase = ''
+    ./build install x
+  '';
+
+  meta = with lib; {
+    description = "Parser generator like bison, but it generates C++ code";
+    mainProgram = "bisonc++";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+    homepage = "https://fbb-git.gitlab.io/bisoncpp/";
+  };
+}
diff --git a/pkgs/by-name/bi/bit/package.nix b/pkgs/by-name/bi/bit/package.nix
new file mode 100644
index 000000000000..a1242c43a9ca
--- /dev/null
+++ b/pkgs/by-name/bi/bit/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, git
+}:
+
+buildGoModule rec {
+  pname = "bit";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = "chriswalz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-18R0JGbG5QBDghF4SyhXaKe9UY5UzF7Ap0Y061Z1SZ8=";
+  };
+
+  vendorHash = "sha256-3Y/B14xX5jaoL44rq9+Nn4niGViLPPXBa8WcJgTvYTA=";
+
+  propagatedBuildInputs = [ git ];
+
+  # Tests require a repository
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Command-line tool for git";
+    homepage = "https://github.com/chriswalz/bit";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "bit";
+  };
+}
diff --git a/pkgs/by-name/bi/bitbake-language-server/package.nix b/pkgs/by-name/bi/bitbake-language-server/package.nix
index 3789d3bd9ba2..fe19310ab29d 100644
--- a/pkgs/by-name/bi/bitbake-language-server/package.nix
+++ b/pkgs/by-name/bi/bitbake-language-server/package.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "bitbake-language-server";
-  version = "0.0.14";
+  version = "0.0.15";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Freed-Wu";
     repo = pname;
     rev = version;
-    hash = "sha256-aGj9lW420A+iTQWSCdIITAJj3p89VUkPvdhQ/0M6uXo=";
+    hash = "sha256-NLDQ2P5peweugkoNYskpCyCEgBwVFA7RTs8+NvH8fj8=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/by-name/bi/bitcomet/package.nix b/pkgs/by-name/bi/bitcomet/package.nix
new file mode 100644
index 000000000000..8b249d403ba6
--- /dev/null
+++ b/pkgs/by-name/bi/bitcomet/package.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  fetchurl,
+  appimageTools,
+  webkitgtk_4_0,
+}:
+let
+  pname = "bitcomet";
+  version = "2.10.0";
+  src = fetchurl {
+    url = "https://download.bitcomet.com/linux/x86_64/BitComet-${version}-x86_64.AppImage";
+    hash = "sha256-HC9kThRuDcc7oWXuMeWe9g6P/v6GZQ8ho5sc4bNzsYw=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraPkgs =
+    pkgs: with pkgs; [
+      libxml2
+      libpng
+      webkitgtk_4_0
+    ];
+
+  extraInstallCommands = ''
+    mkdir -p $out/share/applications
+    install -m 444 ${appimageContents}/com.bitcomet.linux.desktop $out/share/applications/bitcomet.desktop
+    substituteInPlace $out/share/applications/bitcomet.desktop \
+      --replace-fail 'Exec=usr/bin/BitComet' 'Exec=bitcomet'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = {
+    homepage = "https://www.bitcomet.com";
+    description = "Free BitTorrent download client";
+    mainProgram = "bitcomet";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    license = lib.licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ aucub ];
+  };
+}
diff --git a/pkgs/by-name/bi/bite/package.nix b/pkgs/by-name/bi/bite/package.nix
index de072e33d470..4dd9e4384142 100644
--- a/pkgs/by-name/bi/bite/package.nix
+++ b/pkgs/by-name/bi/bite/package.nix
@@ -60,14 +60,14 @@ rustPlatform.buildRustPackage rec {
       pango
       vulkan-loader
     ]
-    ++ lib.optionals stdenv.isDarwin [
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [
       darwin.apple_sdk.frameworks.AppKit
       darwin.apple_sdk.frameworks.CoreGraphics
       darwin.apple_sdk.frameworks.Foundation
       darwin.apple_sdk.frameworks.Metal
       darwin.apple_sdk.frameworks.QuartzCore
     ]
-    ++ lib.optionals stdenv.isLinux [
+    ++ lib.optionals stdenv.hostPlatform.isLinux [
       wayland
     ];
 
@@ -76,7 +76,7 @@ rustPlatform.buildRustPackage rec {
       libxkbcommon
       vulkan-loader
     ]
-    ++ lib.optionals stdenv.isLinux [
+    ++ lib.optionals stdenv.hostPlatform.isLinux [
       wayland
     ];
 
@@ -105,6 +105,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [vinnymeller];
     mainProgram = "bite";
-    broken = stdenv.isDarwin && stdenv.isx86_64;
+    broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64;
   };
 }
diff --git a/pkgs/by-name/bi/bitlbee-discord/package.nix b/pkgs/by-name/bi/bitlbee-discord/package.nix
new file mode 100644
index 000000000000..a763ed6e81e0
--- /dev/null
+++ b/pkgs/by-name/bi/bitlbee-discord/package.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub, stdenv, bitlbee, autoreconfHook, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "bitlbee-discord";
+  version = "0.4.3";
+
+  src = fetchFromGitHub {
+    rev = version;
+    owner = "sm00th";
+    repo = "bitlbee-discord";
+    sha256 = "00qgdvrp7hv02n0ns685igp810zxmv3adsama8601122al6x041n";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ bitlbee ];
+
+  preConfigure = ''
+    export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+    export BITLBEE_DATADIR=$out/share/bitlbee
+    ./autogen.sh
+  '';
+
+  meta = with lib; {
+    description = "Bitlbee plugin for Discord";
+
+    homepage = "https://github.com/sm00th/bitlbee-discord";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ lassulus ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/bi/bitlbee-facebook/package.nix b/pkgs/by-name/bi/bitlbee-facebook/package.nix
new file mode 100644
index 000000000000..707e7ffd9e46
--- /dev/null
+++ b/pkgs/by-name/bi/bitlbee-facebook/package.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, json-glib }:
+
+stdenv.mkDerivation rec {
+  pname = "bitlbee-facebook";
+  version = "1.2.2";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "bitlbee";
+    repo = "bitlbee-facebook";
+    sha256 = "1qiiiq17ybylbhwgbwsvmshb517589r8yy5rsh1rfaylmlcxyy7z";
+  };
+
+  nativeBuildInputs = [ autoconf automake libtool pkg-config ];
+
+  buildInputs = [ bitlbee json-glib ];
+
+  preConfigure = ''
+    export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+    ./autogen.sh
+  '';
+
+  meta = with lib; {
+    description = "Facebook protocol plugin for bitlbee";
+    homepage = "https://github.com/bitlbee/bitlbee-facebook";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ toonn ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/bi/bitlbee-mastodon/package.nix b/pkgs/by-name/bi/bitlbee-mastodon/package.nix
new file mode 100644
index 000000000000..0e014ea9a790
--- /dev/null
+++ b/pkgs/by-name/bi/bitlbee-mastodon/package.nix
@@ -0,0 +1,28 @@
+{ lib, fetchgit, stdenv, bitlbee, autoreconfHook, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "bitlbee-mastodon";
+  version = "1.4.5";
+
+  src = fetchgit {
+    url = "https://alexschroeder.ch/cgit/bitlbee-mastodon";
+    rev = "v${version}";
+    sha256 = "sha256-8vmq/YstuBYUxe00P4NrxD/eMYI++R9uvn1sCcMTr7I=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ bitlbee ];
+
+  preConfigure = ''
+    export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+    export BITLBEE_DATADIR=$out/share/bitlbee
+  '';
+
+  meta = with lib; {
+    description = "Bitlbee plugin for Mastodon";
+    homepage = "https://alexschroeder.ch/cgit/bitlbee-mastodon/about";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ jpotier ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/bi/bitlbee-steam/package.nix b/pkgs/by-name/bi/bitlbee-steam/package.nix
new file mode 100644
index 000000000000..441963f57ddf
--- /dev/null
+++ b/pkgs/by-name/bi/bitlbee-steam/package.nix
@@ -0,0 +1,29 @@
+{ lib, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, libgcrypt }:
+
+stdenv.mkDerivation rec {
+  version = "1.4.2";
+  pname = "bitlbee-steam";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "bitlbee";
+    repo = "bitlbee-steam";
+    sha256 = "121r92mgwv445wwxzh35n19fs5k81ihr0j19k256ia5502b1xxaq";
+  };
+
+  nativeBuildInputs = [ pkg-config autoconf automake ];
+  buildInputs = [ bitlbee libtool libgcrypt ];
+
+  preConfigure = ''
+    export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+    ./autogen.sh
+  '';
+
+  meta = with lib; {
+    description = "Steam protocol plugin for BitlBee";
+
+    homepage = "https://github.com/jgeboski/bitlbee-steam";
+    license = licenses.gpl2Plus;
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/bi/bitmagnet/package.nix b/pkgs/by-name/bi/bitmagnet/package.nix
index dfeb7b31e86c..565d53048851 100644
--- a/pkgs/by-name/bi/bitmagnet/package.nix
+++ b/pkgs/by-name/bi/bitmagnet/package.nix
@@ -1,10 +1,10 @@
 { lib
-, buildGoModule
+, buildGo122Module  # builds, but does not start on 1.23
 , fetchFromGitHub
 , nix-update-script
 }:
 
-buildGoModule rec {
+buildGo122Module rec {
   pname = "bitmagnet";
   version = "0.9.5";
 
diff --git a/pkgs/by-name/bi/bitmeter/package.nix b/pkgs/by-name/bi/bitmeter/package.nix
new file mode 100644
index 000000000000..9ae4bd7e79fb
--- /dev/null
+++ b/pkgs/by-name/bi/bitmeter/package.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, autoreconfHook, fetchurl, libjack2, gtk2, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "bitmeter";
+  version = "1.2";
+
+  src = fetchurl {
+    url = "https://devel.tlrmx.org/audio/source/${pname}-${version}.tar.gz";
+    sha256 = "09ck2gxqky701dc1p0ip61rrn16v0pdc7ih2hc2sd63zcw53g2a7";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ libjack2 gtk2 ];
+
+  patches = [
+    (fetchurl {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/bitmeter/files/bitmeter-1.2-fix-build-system.patch";
+      sha256 = "021mz6933iw7mpk6b9cbjr8naj6smbq1hwqjszlyx72qbwrrid7k";
+    })
+  ];
+
+  meta = with lib; {
+    homepage = "http://devel.tlrmx.org/audio/bitmeter/";
+    description = "Also known as jack bitscope. Useful to detect denormals";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    mainProgram = "bitmeter";
+  };
+}
diff --git a/pkgs/by-name/bi/bitrise/package.nix b/pkgs/by-name/bi/bitrise/package.nix
index 99ad2b59ed74..3d1dcbb66e3e 100644
--- a/pkgs/by-name/bi/bitrise/package.nix
+++ b/pkgs/by-name/bi/bitrise/package.nix
@@ -6,13 +6,13 @@
 }:
 buildGoModule rec {
   pname = "bitrise";
-  version = "2.20.1";
+  version = "2.22.0";
 
   src = fetchFromGitHub {
     owner = "bitrise-io";
     repo = "bitrise";
     rev = version;
-    hash = "sha256-M1OAMppeY13fXclycUXwp2H1GSLVJRNV11QxAvNLQuQ=";
+    hash = "sha256-eXXH+KKLayX4ZTs76MOqLw2/IeMgiWuh27Ocb0CGhgE=";
   };
 
   # many tests rely on writable $HOME/.bitrise and require network access
diff --git a/pkgs/by-name/bi/bitwarden-cli/package.nix b/pkgs/by-name/bi/bitwarden-cli/package.nix
index d6fa628ae91e..2fe5a8e36878 100644
--- a/pkgs/by-name/bi/bitwarden-cli/package.nix
+++ b/pkgs/by-name/bi/bitwarden-cli/package.nix
@@ -32,7 +32,7 @@ buildNpmPackage rec {
 
   nativeBuildInputs = [
     (python3.withPackages (ps: with ps; [ setuptools ]))
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     cctools
     xcbuild.xcrun
   ];
diff --git a/pkgs/by-name/bi/bitwarden-desktop/package.nix b/pkgs/by-name/bi/bitwarden-desktop/package.nix
index a45712bfe801..ce31c0fdd96c 100644
--- a/pkgs/by-name/bi/bitwarden-desktop/package.nix
+++ b/pkgs/by-name/bi/bitwarden-desktop/package.nix
@@ -2,7 +2,6 @@
 , buildNpmPackage
 , cargo
 , copyDesktopItems
-, dbus
 , electron_32
 , fetchFromGitHub
 , glib
@@ -21,12 +20,19 @@
 , runCommand
 , rustc
 , rustPlatform
+, stdenv
 }:
 
 let
   description = "Secure and free password manager for all of your devices";
   icon = "bitwarden";
   electron = electron_32;
+
+  bitwardenDesktopNativeArch = {
+    aarch64 = "arm64";
+    x86_64  = "x64";
+  }.${stdenv.hostPlatform.parsed.cpu.name} or (throw "bitwarden-desktop: unsupported CPU family ${stdenv.hostPlatform.parsed.cpu.name}");
+
 in buildNpmPackage rec {
   pname = "bitwarden-desktop";
   version = "2024.9.0";
@@ -121,8 +127,8 @@ in buildNpmPackage rec {
   postBuild = ''
     pushd apps/desktop
 
-    # desktop_native/index.js loads a file of that name regarldess of the libc being used
-    mv desktop_native/napi/desktop_napi.* desktop_native/napi/desktop_napi.linux-x64-musl.node
+    # desktop_native/index.js loads a file of that name regardless of the libc being used
+    mv desktop_native/napi/desktop_napi.* desktop_native/napi/desktop_napi.linux-${bitwardenDesktopNativeArch}-musl.node
 
     npm exec electron-builder -- \
       --dir \
@@ -135,7 +141,6 @@ in buildNpmPackage rec {
   doCheck = true;
 
   nativeCheckInputs = [
-    dbus
     (gnome-keyring.override { useWrappedDaemon = false; })
   ];
 
@@ -143,19 +148,14 @@ in buildNpmPackage rec {
     "--skip=password::password::tests::test"
   ];
 
-  checkPhase = ''
-    runHook preCheck
-
+  preCheck = ''
     pushd ${cargoRoot}
-    export HOME=$(mktemp -d)
-    export -f cargoCheckHook runHook _eval _callImplicitHook _logHook
-    export cargoCheckType=release
-    dbus-run-session \
-      --config-file=${dbus}/share/dbus-1/session.conf \
-      -- bash -e -c cargoCheckHook
-    popd
+    cargoCheckType=release
+    HOME=$(mktemp -d)
+  '';
 
-    runHook postCheck
+  postCheck = ''
+    popd
   '';
 
   installPhase = ''
@@ -163,7 +163,7 @@ in buildNpmPackage rec {
 
     mkdir $out
 
-    pushd apps/desktop/dist/linux-unpacked
+    pushd apps/desktop/dist/linux-${lib.optionalString stdenv.isAarch64 "arm64-"}unpacked
     mkdir -p $out/opt/Bitwarden
     cp -r locales resources{,.pak} $out/opt/Bitwarden
     popd
@@ -193,6 +193,7 @@ in buildNpmPackage rec {
       comment = description;
       desktopName = "Bitwarden";
       categories = [ "Utility" ];
+      mimeTypes = [ "x-scheme-handler/bitwarden" ];
     })
   ];
 
@@ -208,7 +209,7 @@ in buildNpmPackage rec {
     homepage = "https://bitwarden.com";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ amarshall ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
     mainProgram = "bitwarden";
   };
 }
diff --git a/pkgs/by-name/bi/bitwise/package.nix b/pkgs/by-name/bi/bitwise/package.nix
new file mode 100644
index 000000000000..a01fa83b3c79
--- /dev/null
+++ b/pkgs/by-name/bi/bitwise/package.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, ncurses, readline, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "bitwise";
+  version = "0.50";
+
+  src = fetchFromGitHub {
+    owner = "mellowcandle";
+    repo = "bitwise";
+    rev = "v${version}";
+    sha256 = "sha256-x+ky1X0c0bQZnkNvNNuXN2BoMDtDSCt/8dBAG92jCCQ=";
+  };
+
+  buildInputs = [ ncurses readline ];
+  nativeBuildInputs = [ autoreconfHook ];
+
+  meta = with lib; {
+    description = "Terminal based bitwise calculator in curses";
+    homepage = "https://github.com/mellowcandle/bitwise";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.whonore ];
+    platforms = platforms.unix;
+    mainProgram = "bitwise";
+  };
+}
diff --git a/pkgs/by-name/bi/bitwuzla/package.nix b/pkgs/by-name/bi/bitwuzla/package.nix
new file mode 100644
index 000000000000..6499b48d95a6
--- /dev/null
+++ b/pkgs/by-name/bi/bitwuzla/package.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, python3
+, meson
+, ninja
+, git
+, btor2tools
+, symfpu
+, gtest
+, gmp
+, cadical
+, cryptominisat
+, zlib
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bitwuzla";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "bitwuzla";
+    repo = "bitwuzla";
+    rev = finalAttrs.version;
+    hash = "sha256-xO9+hixboGaCAIi01sWuIYtPamIwUpiTujmOD60NEm0=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [ meson pkg-config git ninja ];
+  buildInputs = [
+    cadical
+    cryptominisat
+    btor2tools
+    symfpu
+    gmp
+    zlib
+  ];
+
+  mesonFlags = [
+    # note: the default value for default_library fails to link dynamic dependencies
+    # but setting it to shared works even in pkgsStatic
+    "-Ddefault_library=shared"
+
+    (lib.strings.mesonEnable "testing" finalAttrs.finalPackage.doCheck)
+  ];
+
+  nativeCheckInputs = [ python3 ];
+  checkInputs = [ gtest ];
+  # two tests fail on darwin
+  doCheck = stdenv.hostPlatform.isLinux;
+
+  meta = {
+    description = "SMT solver for fixed-size bit-vectors, floating-point arithmetic, arrays, and uninterpreted functions";
+    mainProgram = "bitwuzla";
+    homepage = "https://bitwuzla.github.io";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ symphorien ];
+  };
+})