diff options
Diffstat (limited to 'pkgs/os-specific/linux')
865 files changed, 0 insertions, 60621 deletions
diff --git a/pkgs/os-specific/linux/915resolution/default.nix b/pkgs/os-specific/linux/915resolution/default.nix deleted file mode 100644 index 6966a76cfa97..000000000000 --- a/pkgs/os-specific/linux/915resolution/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "915resolution"; - version = "0.5.3"; - - src = fetchurl { - url = "http://915resolution.mango-lang.org/915resolution-${version}.tar.gz"; - sha256 = "0hmmy4kkz3x6yigz6hk99416ybznd67dpjaxap50nhay9f1snk5n"; - }; - - patchPhase = "rm *.o"; - installPhase = "mkdir -p $out/sbin; cp 915resolution $out/sbin/"; - - meta = with lib; { - homepage = "http://915resolution.mango-lang.org/"; - description = "A tool to modify Intel 800/900 video BIOS"; - mainProgram = "915resolution"; - platforms = [ "i686-linux" "x86_64-linux" ]; - license = licenses.publicDomain; - }; -} diff --git a/pkgs/os-specific/linux/9ptls/default.nix b/pkgs/os-specific/linux/9ptls/default.nix deleted file mode 100644 index 20fa779ecf61..000000000000 --- a/pkgs/os-specific/linux/9ptls/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib -, stdenv -, tlsclient -}: - -stdenv.mkDerivation (finalAttrs: { - inherit (tlsclient) src version enableParallelBuilding; - pname = "9ptls"; - - strictDeps = true; - - buildFlags = [ "mount.9ptls" ]; - installFlags = [ "PREFIX=$(out)" "SBIN=$(out)/bin" ]; - installTargets = "mount.9ptls.install"; - - meta = with lib; { - description = "mount.9ptls mount helper"; - longDescription = '' - mount.9ptls wraps the v9fs mount type in a dp9ik authenticated - tls tunnel using tlsclient. - ''; - homepage = "https://git.sr.ht/~moody/tlsclient"; - license = licenses.mit; - maintainers = with maintainers; [ moody ]; - mainProgram = "mount.9ptls"; - platforms = platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/acpi-call/default.nix b/pkgs/os-specific/linux/acpi-call/default.nix deleted file mode 100644 index 0da824b169e6..000000000000 --- a/pkgs/os-specific/linux/acpi-call/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "acpi-call"; - version = "1.2.2"; - name = "${pname}-${version}-${kernel.version}"; - - src = fetchFromGitHub { - owner = "nix-community"; - repo = "acpi_call"; - rev = "v${version}"; - sha256 = "1s7h9y3adyfhw7cjldlfmid79lrwz3vqlvziw9nwd6x5qdj4w9vp"; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - install -D acpi_call.ko $out/lib/modules/${kernel.modDirVersion}/misc/acpi_call.ko - install -D -m755 examples/turn_off_gpu.sh $out/bin/test_discrete_video_off.sh - ''; - - meta = with lib; { - maintainers = with maintainers; [ raskin mic92 ]; - homepage = "https://github.com/nix-community/acpi_call"; - platforms = platforms.linux; - description = "A module allowing arbitrary ACPI calls; use case: hybrid video"; - mainProgram = "test_discrete_video_off.sh"; - license = licenses.gpl3Plus; - }; -} diff --git a/pkgs/os-specific/linux/acpi/default.nix b/pkgs/os-specific/linux/acpi/default.nix deleted file mode 100644 index 2b661e57c4cd..000000000000 --- a/pkgs/os-specific/linux/acpi/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "acpi"; - version = "1.7"; - - src = fetchurl { - url = "mirror://sourceforge/acpiclient/${version}/${pname}-${version}.tar.gz"; - sha256 = "01ahldvf0gc29dmbd5zi4rrnrw2i1ajnf30sx2vyaski3jv099fp"; - }; - - meta = with lib; { - description = "Show battery status and other ACPI information"; - mainProgram = "acpi"; - longDescription = '' - Linux ACPI client is a small command-line - program that attempts to replicate the functionality of - the "old" `apm' command on ACPI systems. It includes - battery and thermal information. - ''; - homepage = "https://sourceforge.net/projects/acpiclient/"; - license = lib.licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = [ ]; - }; -} diff --git a/pkgs/os-specific/linux/acpid/default.nix b/pkgs/os-specific/linux/acpid/default.nix deleted file mode 100644 index 8f981ec401bc..000000000000 --- a/pkgs/os-specific/linux/acpid/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib, stdenv, fetchurl, autoreconfHook }: - -stdenv.mkDerivation rec { - pname = "acpid"; - version = "2.0.34"; - - src = fetchurl { - url = "mirror://sourceforge/acpid2/acpid-${version}.tar.xz"; - sha256 = "sha256-LQlcjPy8hHyux0bWLNyNC/8ewbxy73xnTHIeBNpqszM="; - }; - - nativeBuildInputs = [ autoreconfHook ]; - - meta = with lib; { - homepage = "https://sourceforge.net/projects/acpid2/"; - description = "A daemon for delivering ACPI events to userspace programs"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/acpitool/default.nix b/pkgs/os-specific/linux/acpitool/default.nix deleted file mode 100644 index 317ca54b7cde..000000000000 --- a/pkgs/os-specific/linux/acpitool/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{lib, stdenv, fetchurl, fetchpatch}: - -let - acpitool-patch-051-4 = params: fetchpatch rec { - inherit (params) name sha256; - url = "https://salsa.debian.org/debian/acpitool/raw/33e2ef42a663de820457b212ea2925e506df3b88/debian/patches/${name}"; - }; - -in stdenv.mkDerivation rec { - pname = "acpitool"; - version = "0.5.1"; - - src = fetchurl { - url = "mirror://sourceforge/acpitool/acpitool-${version}.tar.bz2"; - sha256 = "004fb6cd43102918b6302cf537a2db7ceadda04aef2e0906ddf230f820dad34f"; - }; - - patches = [ - (acpitool-patch-051-4 { - name = "ac_adapter.patch"; - sha256 = "0rn14vfv9x5gmwyvi6bha5m0n0pm4wbpg6h8kagmy3i1f8lkcfi8"; - }) - (acpitool-patch-051-4 { - name = "battery.patch"; - sha256 = "190msm5cgqgammxp1j4dycfz206mggajm5904r7ifngkcwizh9m7"; - }) - (acpitool-patch-051-4 { - name = "kernel3.patch"; - sha256 = "1qb47iqnv09i7kgqkyk9prr0pvlx0yaip8idz6wc03wci4y4bffg"; - }) - (acpitool-patch-051-4 { - name = "wakeup.patch"; - sha256 = "1mmzf8n4zsvc7ngn51map2v42axm9vaf8yknbd5amq148sjf027z"; - }) - (acpitool-patch-051-4 { - name = "0001-Do-not-assume-fixed-line-lengths-for-proc-acpi-wakeu.patch"; - sha256 = "10wwh7l3jbmlpa80fzdr18nscahrg5krl18pqwy77f7683mg937m"; - }) - (acpitool-patch-051-4 { - name = "typos.patch"; - sha256 = "1178fqpk6sbqp1cyb1zf9qv7ahpd3pidgpid3bbpms7gyhqvvdpa"; - }) - ]; - - meta = { - description = "A small, convenient command-line ACPI client with a lot of features"; - mainProgram = "acpitool"; - homepage = "https://sourceforge.net/projects/acpitool/"; - license = lib.licenses.gpl2Plus; - maintainers = [ lib.maintainers.guibert ]; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/os-specific/linux/adcli/default.nix b/pkgs/os-specific/linux/adcli/default.nix deleted file mode 100644 index 5f94da21f207..000000000000 --- a/pkgs/os-specific/linux/adcli/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib -, stdenv -, fetchFromGitLab -, openldap -, libkrb5 -, libxslt -, autoreconfHook -, pkg-config -, cyrus_sasl -, util-linux -, xmlto -, docbook_xsl -, docbook_xml_dtd_43 -}: - -stdenv.mkDerivation rec { - pname = "adcli"; - version = "0.9.2"; - - src = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "realmd"; - repo = pname; - rev = version; - sha256 = "sha256-dipNKlIdc1DpXLg/YJjUxZlNoMFy+rt8Y/+AfWFA4dE="; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - docbook_xsl - util-linux - xmlto - ]; - - buildInputs = [ - openldap - libkrb5 - libxslt - cyrus_sasl - ]; - - configureFlags = [ "--disable-debug" ]; - - postPatch = '' - substituteInPlace tools/Makefile.am \ - --replace 'sbin_PROGRAMS' 'bin_PROGRAMS' - - substituteInPlace doc/Makefile.am \ - --replace 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl' \ - '${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl' - - function patch_docbook() { - substituteInPlace $1 \ - --replace "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" \ - "${docbook_xml_dtd_43}/xml/dtd/docbook/docbookx.dtd" - } - patch_docbook doc/adcli.xml - patch_docbook doc/adcli-devel.xml - patch_docbook doc/adcli-docs.xml - ''; - - meta = with lib; { - homepage = "https://www.freedesktop.org/software/realmd/adcli/adcli.html"; - description = "A helper library and tools for Active Directory client operations."; - mainProgram = "adcli"; - license = licenses.lgpl21Only; - maintainers = with maintainers; [ SohamG anthonyroussel ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/afuse/default.nix b/pkgs/os-specific/linux/afuse/default.nix deleted file mode 100644 index 6d8bb81b99c2..000000000000 --- a/pkgs/os-specific/linux/afuse/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook, fuse }: - -stdenv.mkDerivation rec { - pname = "afuse"; - version = "0.5.0"; - - src = fetchFromGitHub { - owner = "pcarrier"; - repo = "afuse"; - rev = "v${version}"; - sha256 = "sha256-KpysJRvDx+12BSl9pIGRqbJAM4W1NbzxMgDycGCr2RM="; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ fuse ]; - - postPatch = lib.optionalString stdenv.isDarwin '' - # Fix the build on macOS with macFUSE installed - substituteInPlace configure.ac --replace \ - 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' \ - "" - ''; - - meta = { - description = "Automounter in userspace"; - homepage = "https://github.com/pcarrier/afuse"; - license = lib.licenses.gpl2; - maintainers = [ lib.maintainers.marcweber ]; - platforms = lib.platforms.unix; - }; -} diff --git a/pkgs/os-specific/linux/akvcam/default.nix b/pkgs/os-specific/linux/akvcam/default.nix deleted file mode 100644 index 3fdb247a33eb..000000000000 --- a/pkgs/os-specific/linux/akvcam/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "akvcam"; - version = "1.2.6"; - - src = fetchFromGitHub { - owner = "webcamoid"; - repo = "akvcam"; - rev = version; - sha256 = "sha256-8jQxBvWRE9Bsh0oz76gO7o+ROm6Z5QGAIe3WERIouUw="; - }; - sourceRoot = "${src.name}/src"; - - nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags ++ [ - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - install -m644 -b -D akvcam.ko $out/lib/modules/${kernel.modDirVersion}/akvcam.ko - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Virtual camera driver for Linux"; - homepage = "https://github.com/webcamoid/akvcam"; - maintainers = with maintainers; [ freezeboy ]; - platforms = platforms.linux; - license = licenses.gpl2Only; - }; -} diff --git a/pkgs/os-specific/linux/amdctl/default.nix b/pkgs/os-specific/linux/amdctl/default.nix deleted file mode 100644 index abc26aabf784..000000000000 --- a/pkgs/os-specific/linux/amdctl/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -}: - -stdenv.mkDerivation rec { - pname = "amdctl"; - version = "0.11"; - - src = fetchFromGitHub { - owner = "kevinlekiller"; - repo = "amdctl"; - rev = "v${version}"; - hash = "sha256-2wBk/9aAD7ARMGbcVxk+CzEvUf8U4RS4ZwTCj8cHNNo="; - }; - - installPhase = '' - runHook preInstall - - install -Dm755 amdctl $out/bin/amdctl - - runHook postInstall - ''; - - meta = with lib; { - description = "Set P-State voltages and clock speeds on recent AMD CPUs on Linux."; - mainProgram = "amdctl"; - homepage = "https://github.com/kevinlekiller/amdctl"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/amdgpu-pro/default.nix b/pkgs/os-specific/linux/amdgpu-pro/default.nix deleted file mode 100644 index ade6da99810b..000000000000 --- a/pkgs/os-specific/linux/amdgpu-pro/default.nix +++ /dev/null @@ -1,222 +0,0 @@ -{ lib -, stdenv -, fetchurl -, elfutils -, xorg -, patchelf -, libxcb -, libxshmfence -, perl -, zlib -, expat -, libffi_3_3 -, libselinux -, libdrm -, udev -, kernel ? null -}: - -with lib; - -let - - bitness = if stdenv.is64bit then "64" else "32"; - - libArch = - if stdenv.hostPlatform.system == "i686-linux" then - "i386-linux-gnu" - else if stdenv.hostPlatform.system == "x86_64-linux" then - "x86_64-linux-gnu" - else throw "amdgpu-pro is Linux only. Sorry ${stdenv.hostPlatform.system}."; - -in stdenv.mkDerivation rec { - - version = "21.30"; - pname = "amdgpu-pro"; - build = "${version}-1290604"; - - src = fetchurl { - url = "https://drivers.amd.com/drivers/linux/amdgpu-pro-${build}-ubuntu-20.04.tar.xz"; - sha256 = "sha256-WECqxjo2WLP3kMWeVyJgYufkvHTzwGaj57yeMGXiQ4I="; - curlOpts = "--referer https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux-21-30"; - }; - - postUnpack = '' - mkdir root - pushd $sourceRoot - for deb in *_all.deb *_${if stdenv.is64bit then "amd64" else "i386"}.deb - do - ar p $deb data.tar.xz | tar -C ../root -xJ - done - popd - # if we don't use a short sourceRoot, compilation can fail due to command - # line length - sourceRoot=root - ''; - - passthru = optionalAttrs (kernel != null) { - kmod = stdenv.mkDerivation rec { - inherit version src postUnpack; - name = "${pname}-${version}-kmod-${kernel.dev.version}"; - - postPatch = '' - pushd usr/src/amdgpu-* - patchShebangs amd/dkms/*.sh - substituteInPlace amd/dkms/pre-build.sh --replace "./configure" "./configure --with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source --with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - popd - ''; - - preConfigure = '' - pushd usr/src/amdgpu-* - makeFlags="$makeFlags M=$(pwd)" - amd/dkms/pre-build.sh ${kernel.version} - popd - ''; - - postBuild = '' - pushd usr/src/amdgpu-* - find -name \*.ko -exec xz {} \; - popd - ''; - - makeFlags = optionalString (kernel != null) "-C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build modules"; - - installPhase = '' - runHook preInstall - - pushd usr/src/amdgpu-* - find -name \*.ko.xz -exec install -Dm444 {} $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/gpu/drm/{} \; - popd - - runHook postInstall - ''; - - # without this we get a collision with the ttm module from linux - meta.priority = 4; - }; - - fw = stdenv.mkDerivation rec { - inherit version src postUnpack; - name = "${pname}-${version}-fw"; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib - cp -r usr/src/amdgpu-*/firmware $out/lib/firmware - - runHook postInstall - ''; - }; - }; - - outputs = [ "out" "vulkan" ]; - - depLibPath = makeLibraryPath [ - stdenv.cc.cc.lib - zlib - libxcb - libxshmfence - elfutils - expat - libffi_3_3 - libselinux - # libudev is not listed in any dependencies, but is loaded dynamically - udev - xorg.libXext - xorg.libX11 - xorg.libXfixes - xorg.libXdamage - xorg.libXxf86vm - ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out - - cp -r usr/lib/${libArch} $out/lib - cp -r usr/share $out/share - - mkdir -p $out/opt/amdgpu{,-pro} - cp -r opt/amdgpu-pro/lib/${libArch} $out/opt/amdgpu-pro/lib - cp -r opt/amdgpu/lib/${libArch} $out/opt/amdgpu/lib - - pushd $out/lib - ln -s ../opt/amdgpu-pro/lib/libGL.so* . - ln -s ../opt/amdgpu-pro/lib/libEGL.so* . - popd - - # short name to allow replacement below - ln -s lib/dri $out/dri - - '' + optionalString (stdenv.is64bit) '' - mkdir -p $out/etc - pushd etc - cp -r modprobe.d udev amd $out/etc - popd - - cp -r lib/udev/rules.d/* $out/etc/udev/rules.d - cp -r opt/amdgpu/lib/xorg $out/lib/xorg - cp -r opt/amdgpu-pro/lib/xorg/* $out/lib/xorg - cp -r opt/amdgpu/share $out/opt/amdgpu/share - '' + '' - - mkdir -p $vulkan/share/vulkan/icd.d - install opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd${bitness}.json $vulkan/share/vulkan/icd.d - - runHook postInstall - ''; - - preFixup = (if stdenv.is64bit - # this could also be done with LIBGL_DRIVERS_PATH, but it would need to be - # set in the user session and for Xorg - then '' - expr1='s:/opt/amdgpu/lib/x86_64-linux-gnu/dri\0:/run/opengl-driver/lib/dri\0\0\0\0\0\0\0\0\0\0\0:g' - expr2='s:/usr/lib/x86_64-linux-gnu/dri[\0\:]:/run/opengl-driver/lib/dri\0\0\0\0:g' - perl -pi -e "$expr2" $out/lib/xorg/modules/extensions/libglx.so - '' - else '' - expr1='s:/opt/amdgpu/lib/i386-linux-gnu/dri\0:/run/opengl-driver-32/lib/dri\0\0\0\0\0\0:g' - # we replace a different path on 32-bit because it's the only one long - # enough to fit the target path :( - expr2='s:/usr/lib/i386-linux-gnu/dri[\0\:]:/run/opengl-driver-32/dri\0\0\0:g' - '') + '' - perl -pi -e "$expr1" \ - $out/opt/amdgpu/lib/libEGL.so.1.0.0 \ - $out/opt/amdgpu/lib/libgbm.so.1.0.0 \ - $out/opt/amdgpu/lib/libGL.so.1.2.0 - - perl -pi -e "$expr2" \ - $out/opt/amdgpu-pro/lib/libEGL.so.1 \ - $out/opt/amdgpu-pro/lib/libGL.so.1.2 \ - $out/opt/amdgpu-pro/lib/libGLX_amd.so.0 - - find $out -type f -exec perl -pi -e 's:/opt/amdgpu-pro/:/run/amdgpu-pro/:g' {} \; - find $out -type f -exec perl -pi -e 's:/opt/amdgpu/:/run/amdgpu/:g' {} \; - - substituteInPlace $vulkan/share/vulkan/icd.d/*.json --replace /opt/amdgpu-pro/lib/${libArch} "$out/opt/amdgpu-pro/lib" - ''; - - # doing this in post because shrinking breaks things that dynamically load - postFixup = '' - libPath="$out/opt/amdgpu/lib:$out/opt/amdgpu-pro/lib:$depLibPath" - find "$out" -name '*.so*' -type f -exec patchelf --set-rpath "$libPath" {} \; - ''; - - buildInputs = [ - libdrm - patchelf - perl - ]; - - enableParallelBuilding = true; - - meta = with lib; { - description = "AMDGPU-PRO drivers"; - homepage = "https://www.amd.com/en/support"; - license = licenses.unfree; - platforms = platforms.linux; - maintainers = with maintainers; [ corngood ]; - }; -} diff --git a/pkgs/os-specific/linux/anbox/0001-NixOS-Use-anbox-from-PATH-in-desktop-files.patch b/pkgs/os-specific/linux/anbox/0001-NixOS-Use-anbox-from-PATH-in-desktop-files.patch deleted file mode 100644 index 1c3450238c7f..000000000000 --- a/pkgs/os-specific/linux/anbox/0001-NixOS-Use-anbox-from-PATH-in-desktop-files.patch +++ /dev/null @@ -1,34 +0,0 @@ -From cb61e856c4357d9787f7a2313bacb1c3b2133d36 Mon Sep 17 00:00:00 2001 -From: Samuel Dionne-Riel <samuel@dionne-riel.com> -Date: Fri, 4 Jun 2021 19:05:53 -0400 -Subject: [PATCH] [NixOS] Use `anbox` from PATH in desktop files - ---- - src/anbox/application/launcher_storage.cpp | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/src/anbox/application/launcher_storage.cpp b/src/anbox/application/launcher_storage.cpp -index d5053cf..a4be719 100644 ---- a/src/anbox/application/launcher_storage.cpp -+++ b/src/anbox/application/launcher_storage.cpp -@@ -69,9 +69,7 @@ void LauncherStorage::add_or_update(const Database::Item &item) { - auto package_name = item.package; - std::replace(package_name.begin(), package_name.end(), '.', '-'); - -- auto exe_path = utils::process_get_exe_path(getpid()); -- if (utils::get_env_value("SNAP").length() > 0) -- exe_path = snap_exe_path; -+ auto exe_path = "anbox"; - - std::string exec = utils::string_format("%s launch ", exe_path); - -@@ -121,4 +119,4 @@ void LauncherStorage::remove(const Database::Item &item) { - fs::remove(item_icon_path); - } - --} -\ No newline at end of file -+} --- -2.29.2 - diff --git a/pkgs/os-specific/linux/anbox/0002-NixOS-Build-android-emugl-with-cpp-14.patch b/pkgs/os-specific/linux/anbox/0002-NixOS-Build-android-emugl-with-cpp-14.patch deleted file mode 100644 index bf8750282684..000000000000 --- a/pkgs/os-specific/linux/anbox/0002-NixOS-Build-android-emugl-with-cpp-14.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/external/android-emugl/CMakeLists.txt -+++ b/external/android-emugl/CMakeLists.txt -@@ -1,7 +1,7 @@ - # Don't treat any warnings as error as we take the source directly from - # upstream and just compile it. - set(CMAKE_C_FLAGS "-Wall") --set(CMAKE_CXX_FLAGS "-std=c++11 -Wall") -+set(CMAKE_CXX_FLAGS "-std=c++14 -Wall") - - # Ensure -fPIC - set(CMAKE_POSITION_INDEPENDENT_CODE ON) diff --git a/pkgs/os-specific/linux/anbox/default.nix b/pkgs/os-specific/linux/anbox/default.nix deleted file mode 100644 index a3724c792482..000000000000 --- a/pkgs/os-specific/linux/anbox/default.nix +++ /dev/null @@ -1,172 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchurl -, callPackage -, fetchpatch -, cmake, pkg-config, dbus, makeWrapper -, boost -, elfutils # for libdw -, git -, glib -, glm -, gtest -, libbfd -, libcap -, libdwarf -, libGL -, libglvnd -, lxc -, mesa -, properties-cpp -, protobuf -, protobufc -, python3 -, runtimeShell -, SDL2 -, SDL2_image -, systemd -, writeText -, writeShellScript -, nixosTests -}: - -let - - dbus-service = writeText "org.anbox.service" '' - [D-BUS Service] - Name=org.anbox - Exec=@out@/libexec/anbox-session-manager - ''; - - anbox-application-manager = writeShellScript "anbox-application-manager" '' - exec @out@/bin/anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity - ''; - -in - -stdenv.mkDerivation rec { - pname = "anbox"; - version = "unstable-2023-02-03"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "ddf4c57ebbe3a2e46099087570898ab5c1e1f279"; - sha256 = "sha256-QXWhatewiUDQ93cH1UZsYgbjUxpgB1ajtGFYZnKmabc="; - fetchSubmodules = true; - }; - - nativeBuildInputs = [ - cmake - pkg-config - makeWrapper - ]; - - buildInputs = [ - boost - dbus - elfutils # libdw - glib - glm - gtest - libbfd - libcap - libdwarf - libGL - lxc - mesa - properties-cpp - protobuf protobufc - python3 - SDL2 SDL2_image - systemd - ]; - - env.CXXFLAGS = toString [ "-include cstdint" ]; - - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU (toString [ - "-Wno-error=redundant-move" - # Flag needed by GCC 12 but unrecognized by GCC 9 (aarch64-linux default now) - (lib.optionalString (lib.versionAtLeast stdenv.cc.version "12") "-Wno-error=mismatched-new-delete") - ]); - - prePatch = '' - patchShebangs scripts - - cat >cmake/FindGMock.cmake <<'EOF' - add_library(gtest INTERFACE) - target_include_directories(gtest INTERFACE ${gtest.dev}/include) - target_link_libraries(gtest INTERFACE ${gtest}/lib/libgtest.so ''${CMAKE_THREAD_LIBS_INIT}) - add_dependencies(gtest GMock) - - add_library(gtest_main INTERFACE) - target_include_directories(gtest_main INTERFACE ${gtest.dev}/include) - target_link_libraries(gtest_main INTERFACE ${gtest}/lib/libgtest_main.so gtest) - - add_library(gmock INTERFACE) - target_include_directories(gmock INTERFACE ${gtest.dev}/include) - target_link_libraries(gmock INTERFACE ${gtest}/lib/libgmock.so gtest) - - add_library(gmock_main INTERFACE) - target_include_directories(gmock_main INTERFACE ${gtest.dev}/include) - target_link_libraries(gmock_main INTERFACE ${gtest}/lib/libgmock_main.so gmock gtest_main) - - set(GTEST_LIBRARIES gtest) - set(GTEST_MAIN_LIBRARIES gtest_main) - set(GMOCK_LIBRARIES gmock gmock_main) - set(GTEST_BOTH_LIBRARIES ''${GTEST_LIBRARIES} ''${GTEST_MAIN_LIBRARIES}) - EOF - ''; - - patches = [ - # Fixes compatibility with lxc 4 - (fetchpatch { - url = "https://git.alpinelinux.org/aports/plain/community/anbox/lxc4.patch?id=64243590a16aee8d4e72061886fc1b15256492c3"; - sha256 = "1da5xyzyjza1g2q9nbxb4p3njj2sf3q71vkpvmmdphia5qnb0gk5"; - }) - # Wait 10× more time when starting - # Not *strictly* needed, but helps a lot on slower hardware - (fetchpatch { - url = "https://git.alpinelinux.org/aports/plain/community/anbox/give-more-time-to-start.patch?id=058b56d4b332ef3379551b343bf31e0f2004321a"; - sha256 = "0iiz3c7fgfgl0dvx8sf5hv7a961xqnihwpz6j8r0ib9v8piwxh9a"; - }) - # Ensures generated desktop files work on store path change - ./0001-NixOS-Use-anbox-from-PATH-in-desktop-files.patch - # Allows android-emugl to build with gtest 1.13+ - ./0002-NixOS-Build-android-emugl-with-cpp-14.patch - # Provide window icons - (fetchpatch { - url = "https://github.com/samueldr/anbox/commit/2387f4fcffc0e19e52e58fb6f8264fbe87aafe4d.patch"; - sha256 = "12lmr0kxw1n68g3abh1ak5awmpczfh75c26f53jc8qpvdvv1ywha"; - }) - ]; - - postInstall = '' - wrapProgram $out/bin/anbox \ - --set SDL_VIDEO_X11_WMCLASS "anbox" \ - --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [libGL libglvnd]} \ - --prefix PATH : ${git}/bin - - mkdir -p $out/share/dbus-1/services - substitute ${dbus-service} $out/share/dbus-1/services/org.anbox.service \ - --subst-var out - - mkdir $out/libexec - makeWrapper $out/bin/anbox $out/libexec/anbox-session-manager \ - --add-flags session-manager - - substitute ${anbox-application-manager} $out/bin/anbox-application-manager \ - --subst-var out - chmod +x $out/bin/anbox-application-manager - ''; - - passthru.tests = { inherit (nixosTests) anbox; }; - passthru.image = callPackage ./postmarketos-image.nix { }; - - meta = with lib; { - homepage = "https://anbox.io"; - description = "Android in a box"; - license = licenses.gpl2; - maintainers = with maintainers; [ edwtjo ]; - platforms = [ "armv7l-linux" "aarch64-linux" "x86_64-linux" ]; - }; - -} diff --git a/pkgs/os-specific/linux/anbox/postmarketos-image.nix b/pkgs/os-specific/linux/anbox/postmarketos-image.nix deleted file mode 100644 index 648a1a5ea9a0..000000000000 --- a/pkgs/os-specific/linux/anbox/postmarketos-image.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ stdenv, fetchurl }: - -let - imgroot = "https://web.archive.org/web/20211027150924/https://anbox.postmarketos.org"; -in - { - armv7l-linux = fetchurl { - url = imgroot + "/android-7.1.2_r39.1-anbox_armv7a_neon-userdebug.img"; - sha256 = "1bgzqw4yp52a2q40dr1jlay1nh73jl5mx6wqsxvpb09xghxsng0a"; - }; - aarch64-linux = fetchurl { - url = imgroot + "/android-7.1.2_r39-anbox_arm64-userdebug.img"; - sha256 = "0dx8mhfcjbkak982zfh65bvy35slz5jk31yl4ara50ryrxsp32nx"; - }; - x86_64-linux = fetchurl { - url = imgroot + "/android-7.1.2_r39-anbox_x86_64-userdebug.img"; - sha256 = "16vmiz5al2r19wjpd44nagvz7d901ljxdms8gjp2w4xz1d91vzpm"; - }; - }.${stdenv.system} or (throw "Unsupported platform ${stdenv.system}") diff --git a/pkgs/os-specific/linux/android-udev-rules/default.nix b/pkgs/os-specific/linux/android-udev-rules/default.nix deleted file mode 100644 index 5e3768447e28..000000000000 --- a/pkgs/os-specific/linux/android-udev-rules/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -## Usage -# In NixOS, simply add this package to services.udev.packages: -# services.udev.packages = [ pkgs.android-udev-rules ]; - -stdenv.mkDerivation rec { - pname = "android-udev-rules"; - version = "20240221"; - - src = fetchFromGitHub { - owner = "M0Rf30"; - repo = "android-udev-rules"; - rev = version; - hash = "sha256-Zbztl8ZFLS2UME8LtbahINKk6OUG5jo0O07awMXCPWY="; - }; - - installPhase = '' - runHook preInstall - install -D 51-android.rules $out/lib/udev/rules.d/51-android.rules - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://github.com/M0Rf30/android-udev-rules"; - description = "Android udev rules list aimed to be the most comprehensive on the net"; - platforms = platforms.linux; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ abbradar ]; - }; -} diff --git a/pkgs/os-specific/linux/apfs/default.nix b/pkgs/os-specific/linux/apfs/default.nix deleted file mode 100644 index 68265f9f826c..000000000000 --- a/pkgs/os-specific/linux/apfs/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, kernel -, nixosTests -}: - -let - tag = "0.3.8"; -in -stdenv.mkDerivation { - pname = "apfs"; - version = "${tag}-${kernel.version}"; - - src = fetchFromGitHub { - owner = "linux-apfs"; - repo = "linux-apfs-rw"; - rev = "v${tag}"; - hash = "sha256-I/wuS4//bUiUW8NGW6aNVPzDtuY2lMUeFiv5y2c7TYY="; - }; - - hardeningDisable = [ "pic" ]; - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KERNELRELEASE=${kernel.modDirVersion}" - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "INSTALL_MOD_PATH=$(out)" - ]; - - passthru.tests.apfs = nixosTests.apfs; - - meta = with lib; { - description = "APFS module for linux"; - longDescription = '' - The Apple File System (APFS) is the copy-on-write filesystem currently - used on all Apple devices. This module provides a degree of experimental - support on Linux. - If you make use of the write support, expect data corruption. - Read-only support is somewhat more complete, with sealed volumes, - snapshots, and all the missing compression algorithms recently added. - Encryption is still not in the works though. - ''; - homepage = "https://github.com/linux-apfs/linux-apfs-rw"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ Luflosi ]; - }; -} diff --git a/pkgs/os-specific/linux/apparmor/0001-aa-remove-unknown_empty-ruleset.patch b/pkgs/os-specific/linux/apparmor/0001-aa-remove-unknown_empty-ruleset.patch deleted file mode 100644 index ce2a0e7cc5b3..000000000000 --- a/pkgs/os-specific/linux/apparmor/0001-aa-remove-unknown_empty-ruleset.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit 166afaf144d6473464975438353257359dd51708 -Author: Andreas Wiese <andreas.wiese@kernkonzept.com> -Date: Thu Feb 1 11:35:02 2024 +0100 - - aa-remove-unknown: fix readability check - - This check is intended for ensuring that the profiles file can actually - be opened. The *actual* check is performed by the shell, not the read - utility, which won't even be executed if the input redirection (and - hence the test) fails. - - If the test succeeds, though, using `read` here might actually - jeopardize the test result if there are no profiles loaded and the file - is empty. - - This commit fixes that case by simply using `true` instead of `read`. - -diff --git a/utils/aa-remove-unknown b/utils/aa-remove-unknown -index 0e00d6a0..3351feef 100755 ---- a/utils/aa-remove-unknown -+++ b/utils/aa-remove-unknown -@@ -63,7 +63,7 @@ fi - # We have to do this check because error checking awk's getline() below is - # tricky and, as is, results in an infinite loop when apparmorfs returns an - # error from open(). --if ! IFS= read -r _ < "$PROFILES" ; then -+if ! true < "$PROFILES" ; then - echo "ERROR: Unable to read apparmorfs profiles file" 1>&2 - exit 1 - elif [ ! -w "$REMOVE" ] ; then diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix deleted file mode 100644 index cebae9b8402d..000000000000 --- a/pkgs/os-specific/linux/apparmor/default.nix +++ /dev/null @@ -1,352 +0,0 @@ -{ stdenv, lib, fetchFromGitLab, fetchpatch, makeWrapper, autoreconfHook -, pkg-config, which -, flex, bison -, linuxHeaders ? stdenv.cc.libc.linuxHeaders -, gawk -, withPerl ? stdenv.hostPlatform == stdenv.buildPlatform && lib.meta.availableOn stdenv.hostPlatform perl, perl -, withPython ? stdenv.hostPlatform == stdenv.buildPlatform && lib.meta.availableOn stdenv.hostPlatform python3, python3 -, swig -, ncurses -, pam -, libnotify -, buildPackages -, coreutils -, bash -, gnugrep -, gnused -, kmod -, writeShellScript -, closureInfo -, runCommand -, libxcrypt -}: - -let - apparmor-version = "3.1.7"; - - apparmor-meta = component: with lib; { - homepage = "https://apparmor.net/"; - description = "A mandatory access control system - ${component}"; - license = with licenses; [ gpl2Only lgpl21Only ]; - maintainers = with maintainers; [ julm thoughtpolice ] ++ teams.helsinki-systems.members; - platforms = platforms.linux; - }; - - apparmor-sources = fetchFromGitLab { - owner = "apparmor"; - repo = "apparmor"; - rev = "v${apparmor-version}"; - hash = "sha256-AzY05bcpNYXix2GL4Rhc9d3RBA1pd2fwOa7yoiwc2nQ="; - }; - - aa-teardown = writeShellScript "aa-teardown" '' - PATH="${lib.makeBinPath [coreutils gnused gnugrep]}:$PATH" - . ${apparmor-parser}/lib/apparmor/rc.apparmor.functions - remove_profiles - ''; - - prePatchCommon = '' - chmod a+x ./common/list_capabilities.sh ./common/list_af_names.sh - patchShebangs ./common/list_capabilities.sh ./common/list_af_names.sh - substituteInPlace ./common/Make.rules \ - --replace "/usr/bin/pod2man" "${buildPackages.perl}/bin/pod2man" \ - --replace "/usr/bin/pod2html" "${buildPackages.perl}/bin/pod2html" \ - --replace "/usr/share/man" "share/man" - substituteInPlace ./utils/Makefile \ - --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h" - ''; - - patches = [ - ./0001-aa-remove-unknown_empty-ruleset.patch - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - (fetchpatch { - url = "https://git.alpinelinux.org/aports/plain/testing/apparmor/0003-Added-missing-typedef-definitions-on-parser.patch?id=74b8427cc21f04e32030d047ae92caa618105b53"; - name = "0003-Added-missing-typedef-definitions-on-parser.patch"; - sha256 = "0yyaqz8jlmn1bm37arggprqz0njb4lhjni2d9c8qfqj0kll0bam0"; - }) - ]; - - python = python3.withPackages (ps: with ps; [ setuptools ]); - - # Set to `true` after the next FIXME gets fixed or this gets some - # common derivation infra. Too much copy-paste to fix one by one. - doCheck = false; - - # FIXME: convert these to a single multiple-outputs package? - - libapparmor = stdenv.mkDerivation { - pname = "libapparmor"; - version = apparmor-version; - - src = apparmor-sources; - - # checking whether python bindings are enabled... yes - # checking for python3... no - # configure: error: python is required when enabling python bindings - strictDeps = false; - - nativeBuildInputs = [ - autoreconfHook - bison - flex - pkg-config - swig - ncurses - which - perl - ] ++ lib.optional withPython python; - - buildInputs = [ libxcrypt ] - ++ lib.optional withPerl perl - ++ lib.optional withPython python; - - # required to build apparmor-parser - dontDisableStatic = true; - - prePatch = prePatchCommon + '' - substituteInPlace ./libraries/libapparmor/swig/perl/Makefile.am --replace install_vendor install_site - ''; - inherit patches; - - postPatch = '' - cd ./libraries/libapparmor - ''; - - # https://gitlab.com/apparmor/apparmor/issues/1 - configureFlags = [ - (lib.withFeature withPerl "perl") - (lib.withFeature withPython "python") - ]; - - outputs = [ "out" ] ++ lib.optional withPython "python"; - - postInstall = lib.optionalString withPython '' - mkdir -p $python/lib - mv $out/lib/python* $python/lib/ - ''; - - inherit doCheck; - - meta = apparmor-meta "library"; - }; - - apparmor-utils = python.pkgs.buildPythonApplication { - pname = "apparmor-utils"; - version = apparmor-version; - format = "other"; - - src = apparmor-sources; - - strictDeps = true; - - nativeBuildInputs = [ makeWrapper which python ]; - - buildInputs = [ - bash - perl - python - libapparmor - (libapparmor.python or null) - ]; - - propagatedBuildInputs = [ - libapparmor.python - - # Used by aa-notify - python.pkgs.notify2 - python.pkgs.psutil - ]; - - prePatch = prePatchCommon + - # Do not build vim file - lib.optionalString stdenv.hostPlatform.isMusl '' - sed -i ./utils/Makefile -e "/\<vim\>/d" - '' + '' - sed -i -E 's/^(DESTDIR|BINDIR|PYPREFIX)=.*//g' ./utils/Makefile - - sed -i utils/aa-unconfined -e "/my_env\['PATH'\]/d" - - substituteInPlace utils/aa-remove-unknown \ - --replace "/lib/apparmor/rc.apparmor.functions" "${apparmor-parser}/lib/apparmor/rc.apparmor.functions" - ''; - inherit patches; - postPatch = "cd ./utils"; - makeFlags = [ "LANGS=" ]; - installFlags = [ "DESTDIR=$(out)" "BINDIR=$(out)/bin" "VIM_INSTALL_PATH=$(out)/share" "PYPREFIX=" ]; - - postInstall = '' - wrapProgram $out/bin/aa-remove-unknown \ - --prefix PATH : ${lib.makeBinPath [ gawk ]} - - ln -s ${aa-teardown} $out/bin/aa-teardown - ''; - - inherit doCheck; - - meta = apparmor-meta "user-land utilities" // { - broken = !(withPython && withPerl); - }; - }; - - apparmor-bin-utils = stdenv.mkDerivation { - pname = "apparmor-bin-utils"; - version = apparmor-version; - - src = apparmor-sources; - - nativeBuildInputs = [ - pkg-config - libapparmor - which - ]; - - buildInputs = [ - libapparmor - ]; - - prePatch = prePatchCommon; - postPatch = '' - cd ./binutils - ''; - makeFlags = [ "LANGS=" "USE_SYSTEM=1" ]; - installFlags = [ "DESTDIR=$(out)" "BINDIR=$(out)/bin" "SBINDIR=$(out)/bin" ]; - - inherit doCheck; - - meta = apparmor-meta "binary user-land utilities"; - }; - - apparmor-parser = stdenv.mkDerivation { - pname = "apparmor-parser"; - version = apparmor-version; - - src = apparmor-sources; - - nativeBuildInputs = [ bison flex which ]; - - buildInputs = [ libapparmor ]; - - prePatch = prePatchCommon + '' - ## techdoc.pdf still doesn't build ... - substituteInPlace ./parser/Makefile \ - --replace "/usr/bin/bison" "${bison}/bin/bison" \ - --replace "/usr/bin/flex" "${flex}/bin/flex" \ - --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h" \ - --replace "manpages htmlmanpages pdf" "manpages htmlmanpages" - substituteInPlace parser/rc.apparmor.functions \ - --replace "/sbin/apparmor_parser" "$out/bin/apparmor_parser" - sed -i parser/rc.apparmor.functions -e '2i . ${./fix-rc.apparmor.functions.sh}' - ''; - inherit patches; - postPatch = '' - cd ./parser - ''; - makeFlags = [ - "LANGS=" "USE_SYSTEM=1" "INCLUDEDIR=${libapparmor}/include" - "AR=${stdenv.cc.bintools.targetPrefix}ar" - ]; - installFlags = [ "DESTDIR=$(out)" "DISTRO=unknown" ]; - - inherit doCheck; - - meta = apparmor-meta "rule parser"; - }; - - apparmor-pam = stdenv.mkDerivation { - pname = "apparmor-pam"; - version = apparmor-version; - - src = apparmor-sources; - - nativeBuildInputs = [ pkg-config which ]; - - buildInputs = [ libapparmor pam ]; - - postPatch = '' - cd ./changehat/pam_apparmor - ''; - makeFlags = [ "USE_SYSTEM=1" ]; - installFlags = [ "DESTDIR=$(out)" ]; - - inherit doCheck; - - meta = apparmor-meta "PAM service"; - }; - - apparmor-profiles = stdenv.mkDerivation { - pname = "apparmor-profiles"; - version = apparmor-version; - - src = apparmor-sources; - - nativeBuildInputs = [ which ]; - - postPatch = '' - cd ./profiles - ''; - - installFlags = [ "DESTDIR=$(out)" "EXTRAS_DEST=$(out)/share/apparmor/extra-profiles" ]; - - inherit doCheck; - - meta = apparmor-meta "profiles"; - }; - - apparmor-kernel-patches = stdenv.mkDerivation { - pname = "apparmor-kernel-patches"; - version = apparmor-version; - - src = apparmor-sources; - - dontBuild = true; - - installPhase = '' - mkdir "$out" - cp -R ./kernel-patches/* "$out" - ''; - - inherit doCheck; - - meta = apparmor-meta "kernel patches"; - }; - - # Generate generic AppArmor rules in a file, from the closure of given - # rootPaths. To be included in an AppArmor profile like so: - # - # include "${apparmorRulesFromClosure { } [ pkgs.hello ]}" - apparmorRulesFromClosure = - { # The store path of the derivation is given in $path - additionalRules ? [] - # TODO: factorize here some other common paths - # that may emerge from use cases. - , baseRules ? [ - "r $path" - "r $path/etc/**" - "r $path/share/**" - # Note that not all libraries are prefixed with "lib", - # eg. glibc-2.30/lib/ld-2.30.so - "mr $path/lib/**.so*" - # eg. glibc-2.30/lib/gconv/gconv-modules - "r $path/lib/**" - ] - , name ? "" - }: rootPaths: runCommand - ( "apparmor-closure-rules" - + lib.optionalString (name != "") "-${name}" ) {} '' - touch $out - while read -r path - do printf >>$out "%s,\n" ${lib.concatMapStringsSep " " (x: "\"${x}\"") (baseRules ++ additionalRules)} - done <${closureInfo { inherit rootPaths; }}/store-paths - ''; -in -{ - inherit - libapparmor - apparmor-utils - apparmor-bin-utils - apparmor-parser - apparmor-pam - apparmor-profiles - apparmor-kernel-patches - apparmorRulesFromClosure; -} diff --git a/pkgs/os-specific/linux/apparmor/fix-rc.apparmor.functions.sh b/pkgs/os-specific/linux/apparmor/fix-rc.apparmor.functions.sh deleted file mode 100644 index ebc1baaa92d4..000000000000 --- a/pkgs/os-specific/linux/apparmor/fix-rc.apparmor.functions.sh +++ /dev/null @@ -1,32 +0,0 @@ -aa_action() { - STRING=$1 - shift - $* - rc=$? - if [ $rc -eq 0 ] ; then - aa_log_success_msg $"$STRING " - else - aa_log_failure_msg $"$STRING " - fi - return $rc -} - -aa_log_success_msg() { - [ -n "$1" ] && echo -n $1 - echo ": done." -} - -aa_log_warning_msg() { - [ -n "$1" ] && echo -n $1 - echo ": Warning." -} - -aa_log_failure_msg() { - [ -n "$1" ] && echo -n $1 - echo ": Failed." -} - -aa_log_skipped_msg() { - [ -n "$1" ] && echo -n $1 - echo ": Skipped." -} diff --git a/pkgs/os-specific/linux/aseq2json/default.nix b/pkgs/os-specific/linux/aseq2json/default.nix deleted file mode 100644 index d828c808037a..000000000000 --- a/pkgs/os-specific/linux/aseq2json/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, pkg-config, alsa-lib, glib, json-glib }: - -stdenv.mkDerivation (finalAttrs: { - pname = "aseq2json"; - version = "unstable-2018-04-28"; - src = fetchFromGitHub { - owner = "google"; - repo = "midi-dump-tools"; - rev = "8572e6313a0d7ec95492dcab04a46c5dd30ef33a"; - sha256 = "LQ9LLVumi3GN6c9tuMSOd1Bs2pgrwrLLQbs5XF+NZeA="; - }; - sourceRoot = "${finalAttrs.src.name}/aseq2json"; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ alsa-lib glib json-glib ]; - - installPhase = '' - install -D --target-directory "$out/bin" aseq2json - ''; - - meta = with lib; { - description = "Listens for MIDI events on the Alsa sequencer and outputs as JSON to stdout"; - mainProgram = "aseq2json"; - homepage = "https://github.com/google/midi-dump-tools"; - license = licenses.asl20; - maintainers = [ maintainers.queezle ]; - platforms = platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/asus-ec-sensors/default.nix b/pkgs/os-specific/linux/asus-ec-sensors/default.nix deleted file mode 100644 index c80f18a78ece..000000000000 --- a/pkgs/os-specific/linux/asus-ec-sensors/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - name = "asus-ec-sensors-${version}-${kernel.version}"; - version = "unstable-2022-07-10"; - - src = fetchFromGitHub { - owner = "zeule"; - repo = "asus-ec-sensors"; - rev = "5fbdd1461dc88fc952e02717b8120438ce5558b3"; - sha256 = "sha256-kBGl8i7HzdItMoM7L91OfX6y+bqDfd22WICRg0n25pI="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "KERNELRELEASE=${kernel.modDirVersion}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}" - ]; - - installPhase = '' - install asus-ec-sensors.ko -Dm444 -t ${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon - ''; - - meta = with lib; { - description = "Linux HWMON sensors driver for ASUS motherboards to read sensor data from the embedded controller"; - homepage = "https://github.com/zeule/asus-ec-sensors"; - license = licenses.gpl2; - platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ nickhu ]; - broken = kernel.kernelOlder "5.11"; - }; -} diff --git a/pkgs/os-specific/linux/asus-wmi-sensors/default.nix b/pkgs/os-specific/linux/asus-wmi-sensors/default.nix deleted file mode 100644 index 3098cbb72538..000000000000 --- a/pkgs/os-specific/linux/asus-wmi-sensors/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - name = "asus-wmi-sensors-${version}-${kernel.version}"; - version = "unstable-2019-11-07"; - - # The original was deleted from github, but this seems to be an active fork - src = fetchFromGitHub { - owner = "electrified"; - repo = "asus-wmi-sensors"; - rev = "8daafd45d1b860cf5b17eee1c94d93feb04164a9"; - sha256 = "0kc0xlrsmf783ln5bqyj6qxzmrhdxdfdd2b9ygf2lbl2153i04vc"; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - preConfigure = '' - sed -i 's|depmod|#depmod|' Makefile - ''; - - makeFlags = [ - "TARGET=${kernel.modDirVersion}" - "KERNEL_MODULES=${kernel.dev}/lib/modules/${kernel.modDirVersion}" - "MODDESTDIR=${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon" - ]; - - meta = with lib; { - description = "Linux HWMON (lmsensors) sensors driver for various ASUS Ryzen and Threadripper motherboards"; - homepage = "https://github.com/electrified/asus-wmi-sensors"; - license = licenses.gpl2; - platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = with maintainers; [ Frostman ]; - broken = versionOlder kernel.version "4.12"; - }; -} diff --git a/pkgs/os-specific/linux/atop/atop.service.patch b/pkgs/os-specific/linux/atop/atop.service.patch deleted file mode 100644 index 3ef59e60cbc0..000000000000 --- a/pkgs/os-specific/linux/atop/atop.service.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/atop.service -+++ b/atop.service -@@ -9,5 +9,6 @@ - Environment=LOGPATH=/var/log/atop --EnvironmentFile=/etc/default/atop -+EnvironmentFile=-/etc/default/atop - ExecStartPre=/bin/sh -c 'test -n "$LOGINTERVAL" -a "$LOGINTERVAL" -eq "$LOGINTERVAL"' - ExecStartPre=/bin/sh -c 'test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS"' -+ExecStartPre=/bin/sh -c 'mkdir -p "${LOGPATH}"' - ExecStart=/bin/sh -c 'exec @out@/bin/atop ${LOGOPTS} -w "${LOGPATH}/atop_$(date +%%Y%%m%%d)" ${LOGINTERVAL}' diff --git a/pkgs/os-specific/linux/atop/atopacct.service.patch b/pkgs/os-specific/linux/atop/atopacct.service.patch deleted file mode 100644 index 9f2cd8f2e9ca..000000000000 --- a/pkgs/os-specific/linux/atop/atopacct.service.patch +++ /dev/null @@ -1,7 +0,0 @@ ---- a/atopacct.service -+++ b/atopacct.service -@@ -9,3 +9,3 @@ - Type=forking --PIDFile=/var/run/atopacctd.pid -+PIDFile=/run/atopacctd.pid - ExecStart=@out@/bin/atopacctd diff --git a/pkgs/os-specific/linux/atop/default.nix b/pkgs/os-specific/linux/atop/default.nix deleted file mode 100644 index 808d1bc42376..000000000000 --- a/pkgs/os-specific/linux/atop/default.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ lib -, stdenv -, fetchurl -, zlib -, ncurses -, findutils -, systemd -, python3 -# makes the package unfree via pynvml -, withAtopgpu ? false -}: - -stdenv.mkDerivation rec { - pname = "atop"; - version = "2.8.1"; - - src = fetchurl { - url = "https://www.atoptool.nl/download/atop-${version}.tar.gz"; - sha256 = "sha256-lwBYoZt5w0RPlx+FRXKg5jiR3C1fcDf/g3VwhUzg2h4="; - }; - - nativeBuildInputs = lib.optionals withAtopgpu [ - python3.pkgs.wrapPython - ]; - - buildInputs = [ - zlib - ncurses - ] ++ lib.optionals withAtopgpu [ - python3 - ]; - - pythonPath = lib.optionals withAtopgpu [ - python3.pkgs.pynvml - ]; - - makeFlags = [ - "DESTDIR=$(out)" - "BINPATH=/bin" - "SBINPATH=/bin" - "MAN1PATH=/share/man/man1" - "MAN5PATH=/share/man/man5" - "MAN8PATH=/share/man/man8" - "SYSDPATH=/lib/systemd/system" - "PMPATHD=/lib/systemd/system-sleep" - ]; - - patches = [ - # Fix paths in atop.service, atop-rotate.service, atopgpu.service, atopacct.service, - # and atop-pm.sh - ./fix-paths.patch - # Don't fail on missing /etc/default/atop, make sure /var/log/atop exists pre-start - ./atop.service.patch - # Specify PIDFile in /run, not /var/run to silence systemd warning - ./atopacct.service.patch - ]; - - preConfigure = '' - for f in *.{sh,service}; do - findutils=${findutils} systemd=${systemd} substituteAllInPlace "$f" - done - - substituteInPlace Makefile --replace 'chown' 'true' - substituteInPlace Makefile --replace 'chmod 04711' 'chmod 0711' - ''; - - preInstall = '' - mkdir -p $out/bin - ''; - - postInstall = '' - # Remove extra files we don't need - rm -r $out/{var,etc} $out/bin/atop{sar,}-${version} - '' + (if withAtopgpu then '' - wrapPythonPrograms - '' else '' - rm $out/lib/systemd/system/atopgpu.service $out/bin/atopgpud $out/share/man/man8/atopgpud.8 - ''); - - meta = with lib; { - platforms = platforms.linux; - maintainers = with maintainers; [ raskin ]; - description = "Console system performance monitor"; - longDescription = '' - Atop is an ASCII full-screen performance monitor that is capable of reporting the activity of - all processes (even if processes have finished during the interval), daily logging of system - and process activity for long-term analysis, highlighting overloaded system resources by using - colors, etc. At regular intervals, it shows system-level activity related to the CPU, memory, - swap, disks and network layers, and for every active process it shows the CPU utilization, - memory growth, disk utilization, priority, username, state, and exit code. - ''; - license = licenses.gpl2Plus; - downloadPage = "http://atoptool.nl/downloadatop.php"; - }; -} diff --git a/pkgs/os-specific/linux/atop/fix-paths.patch b/pkgs/os-specific/linux/atop/fix-paths.patch deleted file mode 100644 index e6cd631d3c11..000000000000 --- a/pkgs/os-specific/linux/atop/fix-paths.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/atop.service -+++ b/atop.service -@@ -12,4 +12,4 @@ - ExecStartPre=/bin/sh -c 'test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS"' --ExecStart=/bin/sh -c 'exec /usr/bin/atop ${LOGOPTS} -w "${LOGPATH}/atop_$(date +%%Y%%m%%d)" ${LOGINTERVAL}' --ExecStartPost=/usr/bin/find "${LOGPATH}" -name "atop_*" -mtime +${LOGGENERATIONS} -exec rm -v {} \; -+ExecStart=/bin/sh -c 'exec @out@/bin/atop ${LOGOPTS} -w "${LOGPATH}/atop_$(date +%%Y%%m%%d)" ${LOGINTERVAL}' -+ExecStartPost=@findutils@/bin/find "${LOGPATH}" -name "atop_*" -mtime +${LOGGENERATIONS} -exec rm -v {} \; - KillSignal=SIGUSR2 - ---- a/atop-rotate.service -+++ b/atop-rotate.service -@@ -4,3 +4,3 @@ - [Service] - Type=oneshot --ExecStart=/usr/bin/systemctl try-restart atop.service -+ExecStart=@systemd@/bin/systemctl try-restart atop.service - ---- a/atopgpu.service -+++ b/atopgpu.service -@@ -6,5 +6,5 @@ - - [Service] --ExecStart=/usr/sbin/atopgpud -+ExecStart=@out@/bin/atopgpud - Type=oneshot - RemainAfterExit=yes - ---- a/atopacct.service -+++ b/atopacct.service -@@ -10,3 +10,3 @@ - PIDFile=/var/run/atopacctd.pid --ExecStart=/usr/sbin/atopacctd -+ExecStart=@out@/bin/atopacctd - ---- a/atop-pm.sh -+++ b/atop-pm.sh -@@ -2,8 +2,8 @@ - - case "$1" in -- pre) /usr/bin/systemctl stop atop -+ pre) @systemd@/bin/systemctl stop atop - exit 0 - ;; -- post) /usr/bin/systemctl start atop -+ post) @systemd@/bin/systemctl start atop - exit 0 - ;; diff --git a/pkgs/os-specific/linux/audit/default.nix b/pkgs/os-specific/linux/audit/default.nix deleted file mode 100644 index 1e941a13767e..000000000000 --- a/pkgs/os-specific/linux/audit/default.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, autoreconfHook -, bash -, buildPackages -, libtool -, linuxHeaders -, python3 -, swig - -# Enabling python support while cross compiling would be possible, but the -# configure script tries executing python to gather info instead of relying on -# python3-config exclusively -, enablePython ? stdenv.hostPlatform == stdenv.buildPlatform, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "audit"; - version = "3.1.2"; - - src = fetchurl { - url = "https://people.redhat.com/sgrubb/audit/audit-${finalAttrs.version}.tar.gz"; - hash = "sha256-wLF5LR8KiMbxgocQUJy7mHBZ/GhxLJdmnKkOrhA9KH0="; - }; - - postPatch = '' - substituteInPlace bindings/swig/src/auditswig.i \ - --replace "/usr/include/linux/audit.h" \ - "${linuxHeaders}/include/linux/audit.h" - ''; - - outputs = [ "bin" "dev" "out" "man" ]; - - strictDeps = true; - - depsBuildBuild = [ - buildPackages.stdenv.cc - ]; - - nativeBuildInputs = [ - autoreconfHook - ] - ++ lib.optionals enablePython [ - python3 - swig - ]; - - buildInputs = [ - bash - ]; - - configureFlags = [ - # z/OS plugin is not useful on Linux, and pulls in an extra openldap - # dependency otherwise - "--disable-zos-remote" - "--with-arm" - "--with-aarch64" - (if enablePython then "--with-python" else "--without-python") - ]; - - enableParallelBuilding = true; - - meta = { - homepage = "https://people.redhat.com/sgrubb/audit/"; - description = "Audit Library"; - changelog = "https://github.com/linux-audit/audit-userspace/releases/tag/v${finalAttrs.version}"; - license = lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ AndersonTorres ]; - platforms = lib.platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/autofs/default.nix b/pkgs/os-specific/linux/autofs/default.nix deleted file mode 100644 index db0e7b48383f..000000000000 --- a/pkgs/os-specific/linux/autofs/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib, stdenv, fetchurl, flex, bison, linuxHeaders, libtirpc, mount, umount, nfs-utils, e2fsprogs -, libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto -, fetchpatch -}: - -stdenv.mkDerivation rec { - version = "5.1.6"; - pname = "autofs"; - - src = fetchurl { - url = "mirror://kernel/linux/daemons/autofs/v5/autofs-${version}.tar.xz"; - sha256 = "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx"; - }; - - patches = [ - # glibc 2.34 compat - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/autofs/raw/cc745af5e42396d540d5b3b92fae486e232bf6bd/f/autofs-5.1.7-use-default-stack-size-for-threads.patch"; - sha256 = "sha256-6ETDFbW7EhHR03xFWF+6OJBgn9NX3WW3bGhTNGodaOc="; - excludes = [ "CHANGELOG" ]; - }) - ]; - - preConfigure = '' - configureFlags="--enable-force-shutdown --enable-ignore-busy --with-path=$PATH" - export sssldir="${sssd}/lib/sssd/modules" - export HAVE_SSS_AUTOFS=1 - - export MOUNT=${mount}/bin/mount - export MOUNT_NFS=${nfs-utils}/bin/mount.nfs - export UMOUNT=${umount}/bin/umount - export MODPROBE=${kmod}/bin/modprobe - export E2FSCK=${e2fsprogs}/bin/fsck.ext2 - export E3FSCK=${e2fsprogs}/bin/fsck.ext3 - export E4FSCK=${e2fsprogs}/bin/fsck.ext4 - - unset STRIP # Makefile.rules defines a usable STRIP only without the env var. - ''; - - # configure script is not finding the right path - env.NIX_CFLAGS_COMPILE = toString [ "-I${libtirpc.dev}/include/tirpc" ]; - - installPhase = '' - make install SUBDIRS="lib daemon modules man" # all but samples - #make install SUBDIRS="samples" # impure! - ''; - - buildInputs = [ linuxHeaders libtirpc libxml2 libkrb5 kmod openldap sssd - openssl cyrus_sasl rpcsvc-proto ]; - - nativeBuildInputs = [ flex bison ]; - - meta = { - description = "Kernel-based automounter"; - mainProgram = "automount"; - homepage = "https://www.kernel.org/pub/linux/daemons/autofs/"; - license = lib.licenses.gpl2Plus; - executables = [ "automount" ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ax99100/default.nix b/pkgs/os-specific/linux/ax99100/default.nix deleted file mode 100644 index 761800cfd7ba..000000000000 --- a/pkgs/os-specific/linux/ax99100/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ kernel, stdenv, kmod, lib, fetchzip, dos2unix }: - -stdenv.mkDerivation { - pname = "ax99100"; - version = "1.8.0"; - - nativeBuildInputs = [ dos2unix kmod ] ++ kernel.moduleBuildDependencies; - - src = fetchzip { - url = "https://www.asix.com.tw/en/support/download/file/1229"; - sha256 = "1rbp1m01qr6b3nbr72vpbw89pjh8mddc60im78z2yjd951xkbcjh"; - extension = "tar.bz2"; - }; - - prePatch = '' - # The sources come with Windows file endings and that makes - # applying patches hard without first fixing the line endings. - dos2unix *.c *.h - ''; - - # The patches are adapted from: https://aur.archlinux.org/packages/asix-ax99100 - # - # We included them here instead of fetching them, because of line - # ending issues that are easier to fix manually. Also the - # set_termios patch needs to be applied for 6.1 not for 6.0. - patches = [ - ./kernel-5.18-pci_free_consistent-pci_alloc_consistent.patch - ./kernel-6.1-set_termios-const-ktermios.patch - ] ++ lib.optionals (lib.versionAtLeast kernel.version "6.2") [ - ./kernel-6.2-fix-pointer-type.patch - ./kernel-6.4-fix-define-semaphore.patch - ]; - - patchFlags = [ "-p0" ]; - - makeFlags = [ "KDIR='${kernel.dev}/lib/modules/${kernel.modDirVersion}/build'" ]; - - installPhase = '' - mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/tty/serial - cp ax99100.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/tty/serial - ''; - - meta = { - description = "ASIX AX99100 Serial and Parallel Port driver"; - homepage = "https://www.asix.com.tw/en/product/Interface/PCIe_Bridge/AX99100"; - # According to the source code in the tarball, the license is gpl2. - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - - # Older Linux versions need more patches to work. - broken = lib.versionOlder kernel.version "5.4.0"; - }; -} diff --git a/pkgs/os-specific/linux/ax99100/kernel-5.18-pci_free_consistent-pci_alloc_consistent.patch b/pkgs/os-specific/linux/ax99100/kernel-5.18-pci_free_consistent-pci_alloc_consistent.patch deleted file mode 100644 index 05ec0cfad222..000000000000 --- a/pkgs/os-specific/linux/ax99100/kernel-5.18-pci_free_consistent-pci_alloc_consistent.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -pNaru5 a/ax99100_sp.h b/ax99100_sp.h ---- ax99100_sp.h 2022-06-07 16:55:26.621034945 -0400 -+++ ax99100_sp.h 2022-06-07 16:58:32.488989767 -0400 -@@ -255,5 +255,10 @@ struct custom_eeprom { - #define _INLINE_ - #endif - - #define DEFAULT99100_BAUD 115200 - #endif -+ -+/* #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,18,0) */ -+#define pci_alloc_consistent(hwdev,size,dma_handle) dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC) -+#define pci_free_consistent(hwdev,size,vaddr,dma_handle) dma_free_coherent(&hwdev->dev, size, vaddr, dma_handle) -+/* #endif */ diff --git a/pkgs/os-specific/linux/ax99100/kernel-6.1-set_termios-const-ktermios.patch b/pkgs/os-specific/linux/ax99100/kernel-6.1-set_termios-const-ktermios.patch deleted file mode 100644 index 8d75ad454cfe..000000000000 --- a/pkgs/os-specific/linux/ax99100/kernel-6.1-set_termios-const-ktermios.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -pNaru5 a/ax99100_sp.c b/ax99100_sp.c ---- ax99100_sp.c 2023-01-02 23:44:46.707423858 -0500 -+++ ax99100_sp.c 2023-01-02 23:44:27.171293092 -0500 -@@ -1915,11 +1915,13 @@ static unsigned int serial99100_get_divi - DEBUG("In %s quot=%u----baud=%u-----------------------------END\n",__FUNCTION__,quot,baud); - return quot; - } - - //This is a port ops function to set the terminal settings. --#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0) -+static void serial99100_set_termios(struct uart_port *port, struct ktermios *termios, const struct ktermios *old) -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) - static void serial99100_set_termios(struct uart_port *port, struct ktermios *termios, struct ktermios *old) - #else - static void serial99100_set_termios(struct uart_port *port, struct termios *termios, struct termios *old) - #endif - { diff --git a/pkgs/os-specific/linux/ax99100/kernel-6.2-fix-pointer-type.patch b/pkgs/os-specific/linux/ax99100/kernel-6.2-fix-pointer-type.patch deleted file mode 100644 index 39071f2f4798..000000000000 --- a/pkgs/os-specific/linux/ax99100/kernel-6.2-fix-pointer-type.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ax99100_spi.c -+++ ax99100_spi.c -@@ -76,7 +76,7 @@ int spi_suspend_count; - static unsigned int spi_major = 241; - static unsigned int spi_min_count = 0; - /* device Class */ --static char *ax_devnode(struct device *dev, umode_t *mode) -+static char *ax_devnode(const struct device *dev, umode_t *mode) - { - return kasprintf(GFP_KERNEL, "%s", dev_name(dev)); - } diff --git a/pkgs/os-specific/linux/ax99100/kernel-6.4-fix-define-semaphore.patch b/pkgs/os-specific/linux/ax99100/kernel-6.4-fix-define-semaphore.patch deleted file mode 100644 index 434bb559e177..000000000000 --- a/pkgs/os-specific/linux/ax99100/kernel-6.4-fix-define-semaphore.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- ax99100_sp.c -+++ ax99100_sp.c -@@ -2670,8 +2670,10 @@ static void serial99100_dma_tx_tasklet (unsigned long param) - - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) - static DECLARE_MUTEX(serial99100_sem); --#else -+#elif LINUX_VERSION_CODE < KERNEL_VERSION(6,4,0) - static DEFINE_SEMAPHORE(serial99100_sem); -+#else -+static DEFINE_SEMAPHORE(serial99100_sem, 1); - #endif - - static struct uart_driver starex_serial_driver = { diff --git a/pkgs/os-specific/linux/batman-adv/alfred.nix b/pkgs/os-specific/linux/batman-adv/alfred.nix deleted file mode 100644 index ae7d784591d2..000000000000 --- a/pkgs/os-specific/linux/batman-adv/alfred.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, gpsd, libcap, libnl }: - -let cfg = import ./version.nix; in - -stdenv.mkDerivation rec { - pname = "alfred"; - inherit (cfg) version; - - src = fetchurl { - url = "https://downloads.open-mesh.org/batman/releases/batman-adv-${version}/${pname}-${version}.tar.gz"; - sha256 = cfg.sha256.${pname}; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ gpsd libcap libnl ]; - - preBuild = '' - makeFlags="PREFIX=$out" - ''; - - meta = { - homepage = "https://www.open-mesh.org/projects/batman-adv/wiki/Wiki"; - description = "B.A.T.M.A.N. routing protocol in a linux kernel module for layer 2, information distribution tool"; - license = lib.licenses.gpl2; - maintainers = with lib.maintainers; [ fpletz ]; - platforms = with lib.platforms; linux; - }; -} diff --git a/pkgs/os-specific/linux/batman-adv/batctl.nix b/pkgs/os-specific/linux/batman-adv/batctl.nix deleted file mode 100644 index bb44ac5e99f5..000000000000 --- a/pkgs/os-specific/linux/batman-adv/batctl.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, libnl }: - -let cfg = import ./version.nix; in - -stdenv.mkDerivation rec { - pname = "batctl"; - inherit (cfg) version; - - src = fetchurl { - url = "https://downloads.open-mesh.org/batman/releases/batman-adv-${version}/${pname}-${version}.tar.gz"; - sha256 = cfg.sha256.${pname}; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libnl ]; - - preBuild = '' - makeFlags="PREFIX=$out" - ''; - - meta = { - homepage = "https://www.open-mesh.org/projects/batman-adv/wiki/Wiki"; - description = "B.A.T.M.A.N. routing protocol in a linux kernel module for layer 2, control tool"; - mainProgram = "batctl"; - license = lib.licenses.gpl2; - maintainers = with lib.maintainers; [ fpletz ]; - platforms = with lib.platforms; linux; - }; -} diff --git a/pkgs/os-specific/linux/batman-adv/default.nix b/pkgs/os-specific/linux/batman-adv/default.nix deleted file mode 100644 index b825cfc0a962..000000000000 --- a/pkgs/os-specific/linux/batman-adv/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch2 -, kernel -}: - -let cfg = import ./version.nix; in - -stdenv.mkDerivation rec { - pname = "batman-adv"; - version = "${cfg.version}-${kernel.version}"; - - src = fetchurl { - url = "http://downloads.open-mesh.org/batman/releases/${pname}-${cfg.version}/${pname}-${cfg.version}.tar.gz"; - sha256 = cfg.sha256.${pname}; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags ++ [ - "KERNELPATH=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - hardeningDisable = [ "pic" ]; - - preBuild = '' - sed -i -e "s,INSTALL_MOD_DIR=,INSTALL_MOD_PATH=$out INSTALL_MOD_DIR=," \ - -e /depmod/d Makefile - ''; - - meta = { - homepage = "https://www.open-mesh.org/projects/batman-adv/wiki/Wiki"; - description = "B.A.T.M.A.N. routing protocol in a linux kernel module for layer 2"; - license = lib.licenses.gpl2; - maintainers = with lib.maintainers; [ fpletz philiptaron ]; - platforms = with lib.platforms; linux; - }; -} diff --git a/pkgs/os-specific/linux/batman-adv/version.nix b/pkgs/os-specific/linux/batman-adv/version.nix deleted file mode 100644 index 545285a6cf42..000000000000 --- a/pkgs/os-specific/linux/batman-adv/version.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - version = "2024.0"; - - # To get these, run: - # - # ``` - # for tool in alfred batctl batman-adv; do - # nix-prefetch-url https://downloads.open-mesh.org/batman/releases/batman-adv-2024.0/$tool-2024.0.tar.gz --type sha256 | xargs nix hash to-sri --type sha256 - # done - # ``` - sha256 = { - alfred = "sha256-0CmkNjirFnceX3HhNLyEPRcT10BBxlvNoYox0Y9VMb0="; - batctl = "sha256-doU+hyAa9jxBHbFS/QxiWnKalzMRWJfRMxYE4sWmfH0="; - batman-adv = "sha256-YREGl7V5n2RqKoKk3Pl/rtS7EqfMQ79Gg9LE3k9rQOc="; - }; -} diff --git a/pkgs/os-specific/linux/bbswitch/default.nix b/pkgs/os-specific/linux/bbswitch/default.nix deleted file mode 100644 index 8312d64acddc..000000000000 --- a/pkgs/os-specific/linux/bbswitch/default.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, kernel, runtimeShell }: - -let - baseName = "bbswitch"; - version = "unstable-2021-11-29"; - name = "${baseName}-${version}-${kernel.version}"; - -in - -stdenv.mkDerivation { - inherit name; - - src = fetchFromGitHub { - owner = "Bumblebee-Project"; - repo = "bbswitch"; - # https://github.com/Bumblebee-Project/bbswitch/tree/develop - rev = "23891174a80ea79c7720bcc7048a5c2bfcde5cd9"; - hash = "sha256-50v1Jxem5kaI1dHOKmgBbPLxI82QeYxiaRHhrHpWRzU="; - }; - - patches = [ - (fetchpatch { - url = "https://raw.githubusercontent.com/archlinux/svntogit-community/0bd986055ba52887b81048de5c61e618eec06eb0/trunk/0003-kernel-5.18.patch"; - sha256 = "sha256-va62/bR1qyBBMPg0lUwCH7slGG0XijxVCsFa4FCoHEQ="; - }) - ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" ]; - - preBuild = '' - substituteInPlace Makefile \ - --replace "/lib/modules" "${kernel.dev}/lib/modules" - ''; - - makeFlags = kernel.makeFlags; - - installPhase = '' - mkdir -p $out/lib/modules/${kernel.modDirVersion}/misc - cp bbswitch.ko $out/lib/modules/${kernel.modDirVersion}/misc - - mkdir -p $out/bin - tee $out/bin/discrete_vga_poweroff << EOF - #!${runtimeShell} - - echo -n OFF > /proc/acpi/bbswitch - EOF - tee $out/bin/discrete_vga_poweron << EOF - #!${runtimeShell} - - echo -n ON > /proc/acpi/bbswitch - EOF - chmod +x $out/bin/discrete_vga_poweroff $out/bin/discrete_vga_poweron - ''; - - meta = with lib; { - description = "A module for powering off hybrid GPUs"; - platforms = [ "x86_64-linux" "i686-linux" ]; - homepage = "https://github.com/Bumblebee-Project/bbswitch"; - maintainers = with maintainers; [ abbradar ]; - license = licenses.gpl2Plus; - }; -} diff --git a/pkgs/os-specific/linux/bcc/absolute-ausyscall.patch b/pkgs/os-specific/linux/bcc/absolute-ausyscall.patch deleted file mode 100644 index 7480e9c5d97b..000000000000 --- a/pkgs/os-specific/linux/bcc/absolute-ausyscall.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 01e793163231c5085afced37471df32b94a313f5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io> -Date: Thu, 30 Dec 2021 06:34:41 +0100 -Subject: [PATCH] absolute ausyscall -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Jörg Thalheim <joerg@thalheim.io> ---- - libbpf-tools/syscall_helpers.c | 2 +- - src/python/bcc/syscall.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libbpf-tools/syscall_helpers.c b/libbpf-tools/syscall_helpers.c -index e114a08f..62adea78 100644 ---- a/libbpf-tools/syscall_helpers.c -+++ b/libbpf-tools/syscall_helpers.c -@@ -47,7 +47,7 @@ void init_syscall_names(void) - int err; - FILE *f; - -- f = popen("ausyscall --dump 2>/dev/null", "r"); -+ f = popen("@ausyscall@ --dump 2>/dev/null", "r"); - if (!f) { - warn("popen: ausyscall --dump: %s\n", strerror(errno)); - return; -diff --git a/src/python/bcc/syscall.py b/src/python/bcc/syscall.py -index 1346b4e8..e7e29a11 100644 ---- a/src/python/bcc/syscall.py -+++ b/src/python/bcc/syscall.py -@@ -376,7 +376,7 @@ def _parse_syscall(line): - try: - # Skip the first line, which is a header. The rest of the lines are simply - # SYSCALL_NUM\tSYSCALL_NAME pairs. -- out = subprocess.check_output(['ausyscall', '--dump'], stderr=subprocess.STDOUT) -+ out = subprocess.check_output(['@ausyscall@', '--dump'], stderr=subprocess.STDOUT) - # remove the first line of expected output - out = out.split(b'\n',1)[1] - syscalls = dict(map(_parse_syscall, out.strip().split(b'\n'))) --- -2.34.0 - diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix deleted file mode 100644 index 3cf9b26f4fdd..000000000000 --- a/pkgs/os-specific/linux/bcc/default.nix +++ /dev/null @@ -1,122 +0,0 @@ -{ audit -, bash -, bison -, cmake -, elfutils -, fetchFromGitHub -, flex -, iperf -, lib -, libbpf -, llvmPackages -, luajit -, makeWrapper -, netperf -, nixosTests -, python3 -, stdenv -, zip -}: - -python3.pkgs.buildPythonApplication rec { - pname = "bcc"; - version = "0.30.0"; - - disabled = !stdenv.isLinux; - - src = fetchFromGitHub { - owner = "iovisor"; - repo = "bcc"; - rev = "v${version}"; - hash = "sha256-ngGLGfLv2prnjhgaRPf8ea3oyy4129zGodR0Yz1QtCw="; - }; - format = "other"; - - buildInputs = with llvmPackages; [ - llvm llvm.dev libclang - elfutils luajit netperf iperf - flex bash libbpf - ]; - - patches = [ - # This is needed until we fix - # https://github.com/NixOS/nixpkgs/issues/40427 - ./fix-deadlock-detector-import.patch - ]; - - propagatedBuildInputs = [ python3.pkgs.netaddr ]; - nativeBuildInputs = [ - bison - cmake - flex - llvmPackages.llvm.dev - makeWrapper - python3.pkgs.setuptools - zip - ]; - - cmakeFlags = [ - "-DBCC_KERNEL_MODULES_DIR=/run/booted-system/kernel-modules/lib/modules" - "-DREVISION=${version}" - "-DENABLE_USDT=ON" - "-DENABLE_CPP_API=ON" - "-DCMAKE_USE_LIBBPF_PACKAGE=ON" - "-DENABLE_LIBDEBUGINFOD=OFF" - ]; - - # to replace this executable path: - # https://github.com/iovisor/bcc/blob/master/src/python/bcc/syscall.py#L384 - ausyscall = "${audit}/bin/ausyscall"; - - postPatch = '' - substituteAll ${./libbcc-path.patch} ./libbcc-path.patch - patch -p1 < libbcc-path.patch - - substituteAll ${./absolute-ausyscall.patch} ./absolute-ausyscall.patch - patch -p1 < absolute-ausyscall.patch - - # https://github.com/iovisor/bcc/issues/3996 - substituteInPlace src/cc/libbcc.pc.in \ - --replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ - ''; - - preInstall = '' - # required for setuptool during install - export PYTHONPATH=$out/${python3.sitePackages}:$PYTHONPATH - ''; - postInstall = '' - mkdir -p $out/bin $out/share - rm -r $out/share/bcc/tools/old - mv $out/share/bcc/tools/doc $out/share - mv $out/share/bcc/man $out/share/ - - find $out/share/bcc/tools -type f -executable -print0 | \ - while IFS= read -r -d ''$'\0' f; do - bin=$out/bin/$(basename $f) - if [ ! -e $bin ]; then - ln -s $f $bin - fi - substituteInPlace "$f" \ - --replace '$(dirname $0)/lib' "$out/share/bcc/tools/lib" - done - - sed -i -e "s!lib=.*!lib=$out/bin!" $out/bin/{java,ruby,node,python}gc - ''; - - postFixup = '' - wrapPythonProgramsIn "$out/share/bcc/tools" "$out $pythonPath" - ''; - - outputs = [ "out" "man" ]; - - passthru.tests = { - bpf = nixosTests.bpf; - }; - - meta = with lib; { - description = "Dynamic Tracing Tools for Linux"; - homepage = "https://iovisor.github.io/bcc/"; - license = licenses.asl20; - maintainers = with maintainers; [ ragge mic92 thoughtpolice martinetd ]; - }; -} diff --git a/pkgs/os-specific/linux/bcc/fix-deadlock-detector-import.patch b/pkgs/os-specific/linux/bcc/fix-deadlock-detector-import.patch deleted file mode 100644 index 1c422635f4fe..000000000000 --- a/pkgs/os-specific/linux/bcc/fix-deadlock-detector-import.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- source.org/tools/deadlock.py 1980-01-02 00:00:00.000000000 +0000 -+++ source/tools/deadlock.py 2018-05-29 13:57:11.807126673 +0100 -@@ -44,9 +44,8 @@ - # - # 01-Feb-2017 Kenny Yu Created this. - --from __future__ import ( -- absolute_import, division, unicode_literals, print_function --) -+from __future__ import absolute_import, division, unicode_literals, print_function -+ - from bcc import BPF - from collections import defaultdict - import argparse diff --git a/pkgs/os-specific/linux/bcc/libbcc-path.patch b/pkgs/os-specific/linux/bcc/libbcc-path.patch deleted file mode 100644 index 187bb3aadd00..000000000000 --- a/pkgs/os-specific/linux/bcc/libbcc-path.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- source.org/src/python/bcc/libbcc.py 2018-05-13 08:35:06.850522883 +0100 -+++ source/src/python/bcc/libbcc.py 2018-05-13 08:36:24.602733151 +0100 -@@ -14,7 +14,7 @@ - - import ctypes as ct - --lib = ct.CDLL("libbcc.so.0", use_errno=True) -+lib = ct.CDLL("@out@/lib/libbcc.so.0", use_errno=True) - - # keep in sync with bpf_common.h - lib.bpf_module_create_b.restype = ct.c_void_p diff --git a/pkgs/os-specific/linux/beefi/default.nix b/pkgs/os-specific/linux/beefi/default.nix deleted file mode 100644 index 39300b948976..000000000000 --- a/pkgs/os-specific/linux/beefi/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, installShellFiles -, binutils-unwrapped -, systemd }: - -stdenv.mkDerivation rec { - pname = "beefi"; - version = "0.1.1"; - - src = fetchFromGitHub { - owner = "jfeick"; - repo = "beefi"; - rev = version; - sha256 = "1180avalbw414q1gnfqdgc9zg3k9y0401kw9qvcn51qph81d04v5"; - }; - - nativeBuildInputs = [ installShellFiles ]; - - buildInputs = [ - binutils-unwrapped - systemd - ]; - - patchPhase = '' - substituteInPlace beefi \ - --replace objcopy ${binutils-unwrapped}/bin/objcopy \ - --replace /usr/lib/systemd ${systemd}/lib/systemd - ''; - - installPhase = '' - install -Dm755 beefi $out/bin/beefi - installManPage beefi.1 - ''; - - meta = with lib; { - description = "A small script to create bootable EFISTUB kernel images"; - mainProgram = "beefi"; - license = licenses.gpl3; - platforms = platforms.linux; - maintainers = with maintainers; [ tu-maurice ]; - homepage = "https://github.com/jfeick/beefi"; - }; -} diff --git a/pkgs/os-specific/linux/below/default.nix b/pkgs/os-specific/linux/below/default.nix deleted file mode 100644 index 5efc80357d8f..000000000000 --- a/pkgs/os-specific/linux/below/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, rustPlatform -, clang -, pkg-config -, elfutils -, rustfmt -, zlib -}: - -rustPlatform.buildRustPackage rec { - pname = "below"; - version = "0.8.1"; - - src = fetchFromGitHub { - owner = "facebookincubator"; - repo = "below"; - rev = "v${version}"; - sha256 = "sha256-87Fdx3Jqi3dNWM5DZl+UYs031qn2DoiiWd3IysT/glQ="; - }; - - cargoHash = "sha256-y2fNypA0MrCdUI/K6QrZWw/5mkYafj2s6jrGHU2zGXw="; - - prePatch = ''sed -i "s,ExecStart=.*/bin,ExecStart=$out/bin," etc/below.service''; - postInstall = '' - install -d $out/lib/systemd/system - install -t $out/lib/systemd/system etc/below.service - ''; - - # bpf code compilation - hardeningDisable = [ "stackprotector" ]; - - nativeBuildInputs = [ clang pkg-config rustfmt ]; - buildInputs = [ elfutils zlib ]; - - # needs /sys/fs/cgroup - doCheck = false; - - meta = with lib; { - platforms = platforms.linux; - maintainers = with maintainers; [ globin ]; - description = "A time traveling resource monitor for modern Linux systems"; - license = licenses.asl20; - homepage = "https://github.com/facebookincubator/below"; - mainProgram = "below"; - }; -} diff --git a/pkgs/os-specific/linux/bionic-prebuilt/default.nix b/pkgs/os-specific/linux/bionic-prebuilt/default.nix deleted file mode 100644 index 3ce10735f1de..000000000000 --- a/pkgs/os-specific/linux/bionic-prebuilt/default.nix +++ /dev/null @@ -1,148 +0,0 @@ -{ stdenv, stdenvNoCC, lib, fetchzip, pkgs -, enableStatic ? stdenv.hostPlatform.isStatic -, enableShared ? !stdenv.hostPlatform.isStatic -}: -let - - choosePlatform = - let pname = stdenv.hostPlatform.parsed.cpu.name; in - pset: pset.${pname} or (throw "bionic-prebuilt: unsupported platform ${pname}"); - - prebuilt_crt = choosePlatform { - aarch64 = fetchzip { - url = "https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/+archive/98dce673ad97a9640c5d90bbb1c718e75c21e071/lib/gcc/aarch64-linux-android/4.9.x.tar.gz"; - sha256 = "sha256-LLD2OJi78sNN5NulOsJZl7Ei4F1EUYItGG6eUsKWULc="; - stripRoot = false; - }; - x86_64 = fetchzip { - url = "https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/+archive/7e8507d2a2d4df3bced561b894576de70f065be4/lib/gcc/x86_64-linux-android/4.9.x.tar.gz"; - sha256 = "sha256-y7CFLF76pTlj+oYev9taBnL2nlT3+Tx8c6wmicWmKEw="; - stripRoot = false; - }; - }; - - prebuilt_libs = choosePlatform { - aarch64 = fetchzip { - url = "https://android.googlesource.com/platform/prebuilts/ndk/+archive/f2c77d8ba8a7f5c2d91771e31164f29be0b8ff98/platform/platforms/android-30/arch-arm64/usr/lib.tar.gz"; - sha256 = "sha256-TZBV7+D1QvKOCEi+VNGT5SStkgj0xRbyWoLH65zSrjw="; - stripRoot = false; - }; - x86_64 = fetchzip { - url = "https://android.googlesource.com/platform/prebuilts/ndk/+archive/f2c77d8ba8a7f5c2d91771e31164f29be0b8ff98/platform/platforms/android-30/arch-x86_64/usr/lib64.tar.gz"; - sha256 = "sha256-n2EuOKy3RGKmEYofNlm+vDDBuiQRuAJEJT6wq6NEJQs="; - stripRoot = false; - }; - }; - - prebuilt_ndk_crt = choosePlatform { - aarch64 = fetchzip { - url = "https://android.googlesource.com/toolchain/prebuilts/ndk/r23/+archive/6c5fa4c0d3999b9ee932f6acbd430eb2f31f3151/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/30.tar.gz"; - sha256 = "sha256-KHw+cCwAwlm+5Nwp1o8WONqdi4BBDhFaVVr+7GxQ5uE="; - stripRoot = false; - }; - x86_64 = fetchzip { - url = "https://android.googlesource.com/toolchain/prebuilts/ndk/r23/+archive/6c5fa4c0d3999b9ee932f6acbd430eb2f31f3151/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/30.tar.gz"; - sha256 = "sha256-XEd7L3cBzn+1pKfji40V92G/uZhHSMMuZcRZaiKkLnk="; - stripRoot = false; - }; - }; - - ndk_support_headers = fetchzip { - url ="https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/0e7f808fa26cce046f444c9616d9167dafbfb272/clang-r416183b/include/c++/v1/support.tar.gz"; - sha256 = "sha256-NBv7Pk1CEaz8ns9moleEERr3x/rFmVmG33LgFSeO6fY="; - stripRoot = false; - }; - - kernelHeaders = pkgs.makeLinuxHeaders { - version = "android-common-11-5.4"; - src = fetchzip { - url = "https://android.googlesource.com/kernel/common/+archive/48ffcbf0b9e7f0280bfb8c32c68da0aaf0fdfef6.tar.gz"; - sha256 = "1y7cmlmcr5vdqydd9n785s139yc4aylc3zhqa59xsylmkaf5habk"; - stripRoot = false; - }; - }; - -in -stdenvNoCC.mkDerivation rec { - pname = "bionic-prebuilt"; - version = "ndk-release-r23"; - name = "${stdenv.hostPlatform.parsed.cpu.name}-${pname}-${version}"; - - src = fetchzip { - url = "https://android.googlesource.com/platform/bionic/+archive/00e8ce1142d8823b0d2fc8a98b40119b0f1f02cd.tar.gz"; - sha256 = "10z5mp4w0acvjvgxv7wlqa7m70hcyarmjdlfxbd9rwzf4mrsr8d1"; - stripRoot = false; - }; - - NIX_DONT_SET_RPATH = true; - - dontConfigure = true; - dontBuild = true; - - patches = [ - ./ndk-version.patch - ]; - - postPatch = '' - substituteInPlace libc/include/sys/cdefs.h --replace \ - "__has_builtin(__builtin_umul_overflow)" "1" - substituteInPlace libc/include/bits/ioctl.h --replace \ - "!defined(BIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD)" "0" - ''; - - installPhase= '' - # copy the bionic headers - mkdir -p $out/include/support $out/include/android - cp -vr libc/include/* $out/include - # copy the kernel headers - cp -vr ${kernelHeaders}/include/* $out/include/ - - chmod -R +w $out/include/linux - - # fix a bunch of kernel headers so that things can actually be found - sed -i 's,struct epoll_event {,#include <bits/epoll_event.h>\nstruct Xepoll_event {,' $out/include/linux/eventpoll.h - sed -i 's,struct in_addr {,typedef unsigned int in_addr_t;\nstruct in_addr {,' $out/include/linux/in.h - sed -i 's,struct udphdr {,struct Xudphdr {,' $out/include/linux/udp.h - sed -i 's,union semun {,union Xsemun {,' $out/include/linux/sem.h - sed -i 's,struct __kernel_sockaddr_storage,#define sockaddr_storage __kernel_sockaddr_storage\nstruct __kernel_sockaddr_storage,' $out/include/linux/socket.h - sed -i 's,#ifndef __UAPI_DEF_.*$,#if 1,' $out/include/linux/libc-compat.h - substituteInPlace $out/include/linux/in.h --replace "__be32 imr_" "struct in_addr imr_" - substituteInPlace $out/include/linux/in.h --replace "__be32 imsf_" "struct in_addr imsf_" - substituteInPlace $out/include/linux/sysctl.h --replace "__unused" "_unused" - - # what could possibly live in <linux/compiler.h> - touch $out/include/linux/compiler.h - - # copy the support headers - cp -vr ${ndk_support_headers}* $out/include/support/ - - mkdir $out/lib - cp -v ${prebuilt_crt.out}/*.o $out/lib/ - cp -v ${prebuilt_crt.out}/libgcc.a $out/lib/ - cp -v ${prebuilt_ndk_crt.out}/*.o $out/lib/ - '' + lib.optionalString enableShared '' - for i in libc.so libm.so libdl.so liblog.so; do - cp -v ${prebuilt_libs.out}/$i $out/lib/ - done - '' + lib.optionalString enableStatic '' - # no liblog.a; while it's also part of the base libraries, - # it's only available as shared object in the prebuilts. - for i in libc.a libm.a libdl.a; do - cp -v ${prebuilt_ndk_crt.out}/$i $out/lib/ - done - '' + '' - mkdir -p $dev/include - cp -v $out/include/*.h $dev/include/ - ''; - - outputs = [ "out" "dev" ]; - passthru.linuxHeaders = kernelHeaders; - - meta = with lib; { - description = "The Android libc implementation"; - homepage = "https://android.googlesource.com/platform/bionic/"; - license = licenses.mit; - platforms = platforms.linux; - maintainers = with maintainers; [ s1341 ]; - }; -} diff --git a/pkgs/os-specific/linux/bionic-prebuilt/ndk-version.patch b/pkgs/os-specific/linux/bionic-prebuilt/ndk-version.patch deleted file mode 100644 index a6842ed479ff..000000000000 --- a/pkgs/os-specific/linux/bionic-prebuilt/ndk-version.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/libc/include/android/ndk-version.h 2021-04-01 16:08:03.109183965 +0300 -+++ b/libc/include/android/ndk-version.h 2021-04-01 16:07:19.811424641 +0300 -@@ -0,0 +1,39 @@ -+#pragma once -+ -+/** -+ * Set to 1 if this is an NDK, unset otherwise. See -+ * https://android.googlesource.com/platform/bionic/+/master/docs/defines.md. -+ */ -+#define __ANDROID_NDK__ 1 -+ -+/** -+ * Major version of this NDK. -+ * -+ * For example: 16 for r16. -+ */ -+#define __NDK_MAJOR__ 22 -+ -+/** -+ * Minor version of this NDK. -+ * -+ * For example: 0 for r16 and 1 for r16b. -+ */ -+#define __NDK_MINOR__ 0 -+ -+/** -+ * Set to 0 if this is a release build, or 1 for beta 1, -+ * 2 for beta 2, and so on. -+ */ -+#define __NDK_BETA__ 0 -+ -+/** -+ * Build number for this NDK. -+ * -+ * For a local development build of the NDK, this is -1. -+ */ -+#define __NDK_BUILD__ 7026061 -+ -+/** -+ * Set to 1 if this is a canary build, 0 if not. -+ */ -+#define __NDK_CANARY__ 0 diff --git a/pkgs/os-specific/linux/blktrace/default.nix b/pkgs/os-specific/linux/blktrace/default.nix deleted file mode 100644 index d1b2376e7bd2..000000000000 --- a/pkgs/os-specific/linux/blktrace/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchurl, libaio }: - -stdenv.mkDerivation rec { - pname = "blktrace"; - version = "1.3.0"; - - # Official source - # "https://git.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git" - src = fetchurl { - url = "https://brick.kernel.dk/snaps/blktrace-${version}.tar.bz2"; - sha256 = "sha256-1t7aA4Yt4r0bG5+6cpu7hi2bynleaqf3yoa2VoEacNY="; - }; - - buildInputs = [ libaio ]; - - makeFlags = [ - "prefix=${placeholder "out"}" - "CC:=$(CC)" - ]; - - meta = with lib; { - description = "Block layer IO tracing mechanism"; - maintainers = with maintainers; [ nickcao ]; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/bolt/0001-skip-mkdir.patch b/pkgs/os-specific/linux/bolt/0001-skip-mkdir.patch deleted file mode 100644 index 0853bcea9167..000000000000 --- a/pkgs/os-specific/linux/bolt/0001-skip-mkdir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/scripts/meson-install.sh b/scripts/meson-install.sh -index 859ae81..05a1c58 100644 ---- a/scripts/meson-install.sh -+++ b/scripts/meson-install.sh -@@ -7,5 +7,5 @@ fi - - BOLT_DBDIR=$1 - --echo "Creating database dir: ${BOLT_DBDIR}" --mkdir -p "${DESTDIR}/${BOLT_DBDIR}" -+# echo "Creating database dir: ${BOLT_DBDIR}" -+# mkdir -p "${DESTDIR}/${BOLT_DBDIR}" diff --git a/pkgs/os-specific/linux/bolt/default.nix b/pkgs/os-specific/linux/bolt/default.nix deleted file mode 100644 index 11973ba5a570..000000000000 --- a/pkgs/os-specific/linux/bolt/default.nix +++ /dev/null @@ -1,102 +0,0 @@ -{ stdenv -, lib -, meson -, ninja -, pkg-config -, fetchFromGitLab -, fetchpatch -, python3 -, umockdev -, gobject-introspection -, dbus -, asciidoc -, libxml2 -, libxslt -, docbook_xml_dtd_45 -, docbook-xsl-nons -, glib -, systemd -, polkit -}: - -stdenv.mkDerivation rec { - pname = "bolt"; - version = "0.9.7"; - - src = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "bolt"; - repo = "bolt"; - rev = version; - sha256 = "sha256-6m4Yrev9W5WV4/pptc8tJ4hc6QSC+eJ7BSt2mx33s9U="; - }; - - patches = [ - # meson install tries to create /var/lib/boltd - ./0001-skip-mkdir.patch - - # Test does not work on ZFS with atime disabled. - # Upstream issue: https://gitlab.freedesktop.org/bolt/bolt/-/issues/167 - (fetchpatch { - url = "https://gitlab.freedesktop.org/bolt/bolt/-/commit/c2f1d5c40ad71b20507e02faa11037b395fac2f8.diff"; - revert = true; - sha256 = "6w7ll65W/CydrWAVi/qgzhrQeDv1PWWShulLxoglF+I="; - }) - ]; - - depsBuildBuild = [ - pkg-config - ]; - - nativeBuildInputs = [ - asciidoc - docbook_xml_dtd_45 - docbook-xsl-nons - libxml2 - libxslt - meson - ninja - pkg-config - glib - ] ++ lib.optional (!doCheck) python3; - - buildInputs = [ - polkit - systemd - ]; - - # https://gitlab.freedesktop.org/bolt/bolt/-/issues/181 - doCheck = false; - - preCheck = '' - export LD_LIBRARY_PATH=${umockdev.out}/lib/ - ''; - - nativeCheckInputs = [ - dbus - gobject-introspection - umockdev - (python3.pythonOnBuildForHost.withPackages - (p: [ p.pygobject3 p.dbus-python p.python-dbusmock ])) - ]; - - postPatch = '' - patchShebangs scripts tests - ''; - - mesonFlags = [ - "-Dlocalstatedir=/var" - ]; - - PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system"; - PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev"; - - meta = with lib; { - description = "Thunderbolt 3 device management daemon"; - mainProgram = "boltctl"; - homepage = "https://gitlab.freedesktop.org/bolt/bolt"; - license = licenses.lgpl21Plus; - maintainers = with maintainers; [ callahad ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/bpfmon/default.nix b/pkgs/os-specific/linux/bpfmon/default.nix deleted file mode 100644 index ca59dbde6bb8..000000000000 --- a/pkgs/os-specific/linux/bpfmon/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, libpcap -, yascreen -}: - -stdenv.mkDerivation rec { - pname = "bpfmon"; - version = "2.52"; - - src = fetchFromGitHub { - owner = "bbonev"; - repo = "bpfmon"; - rev = "refs/tags/v${version}"; - hash = "sha256-W7OnrC+FCxMd4YbYiybjIvO0LT7Hr1/0Y3BQwItaTBs="; - }; - - buildInputs = [ - libpcap - yascreen - ]; - - makeFlags = [ - "PREFIX=$(out)" - ]; - - meta = with lib; { - description = "BPF based visual packet rate monitor"; - mainProgram = "bpfmon"; - homepage = "https://github.com/bbonev/bpfmon"; - changelog = "https://github.com/bbonev/bpfmon/releases/tag/v${version}"; - maintainers = with maintainers; [ arezvov ]; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/bpftools/default.nix b/pkgs/os-specific/linux/bpftools/default.nix deleted file mode 100644 index 9ec4778ca38c..000000000000 --- a/pkgs/os-specific/linux/bpftools/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, stdenv, linuxHeaders -, libopcodes, libopcodes_2_38 -, libbfd, libbfd_2_38 -, elfutils, readline -, zlib -, python3, bison, flex -}: - -stdenv.mkDerivation rec { - pname = "bpftools"; - - inherit (linuxHeaders) version src; - - separateDebugInfo = true; - - patches = [ - # fix unknown type name '__vector128' on ppc64le - ./include-asm-types-for-ppc64le.patch - ]; - - nativeBuildInputs = [ python3 bison flex ]; - buildInputs = (if (lib.versionAtLeast version "5.20") - then [ libopcodes libbfd ] - else [ libopcodes_2_38 libbfd_2_38 ]) - ++ [ elfutils zlib readline ]; - - preConfigure = '' - patchShebangs scripts/bpf_doc.py - - cd tools/bpf - substituteInPlace ./bpftool/Makefile \ - --replace '/usr/local' "$out" \ - --replace '/usr' "$out" \ - --replace '/sbin' '/bin' - ''; - - buildFlags = [ "bpftool" "bpf_asm" "bpf_dbg" ]; - - installPhase = '' - make -C bpftool install - install -Dm755 -t $out/bin bpf_asm - install -Dm755 -t $out/bin bpf_dbg - ''; - - meta = with lib; { - homepage = "https://github.com/libbpf/bpftool"; - description = "Debugging/program analysis tools for the eBPF subsystem"; - license = [ licenses.gpl2 licenses.bsd2 ]; - platforms = platforms.linux; - maintainers = with maintainers; [ thoughtpolice ]; - }; -} diff --git a/pkgs/os-specific/linux/bpftools/include-asm-types-for-ppc64le.patch b/pkgs/os-specific/linux/bpftools/include-asm-types-for-ppc64le.patch deleted file mode 100644 index 47c8f8077a5a..000000000000 --- a/pkgs/os-specific/linux/bpftools/include-asm-types-for-ppc64le.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/tools/include/uapi/linux/types.h b/tools/include/uapi/linux/types.h -index 91fa51a9c31d..bfbd9b47277f 100644 ---- a/tools/include/uapi/linux/types.h -+++ b/tools/include/uapi/linux/types.h -@@ -2,7 +2,7 @@ - #ifndef _UAPI_LINUX_TYPES_H - #define _UAPI_LINUX_TYPES_H - --#include <asm-generic/int-ll64.h> -+#include <asm/types.h> - - /* copied from linux:include/uapi/linux/types.h */ - #define __bitwise diff --git a/pkgs/os-specific/linux/bpftrace/default.nix b/pkgs/os-specific/linux/bpftrace/default.nix deleted file mode 100644 index 068f4532451b..000000000000 --- a/pkgs/os-specific/linux/bpftrace/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch -, llvmPackages, elfutils, bcc -, libbpf, libbfd, libopcodes -, cereal, asciidoctor -, cmake, pkg-config, flex, bison -, util-linux -, nixosTests -}: - -stdenv.mkDerivation rec { - pname = "bpftrace"; - version = "0.20.3"; - - src = fetchFromGitHub { - owner = "iovisor"; - repo = "bpftrace"; - rev = "v${version}"; - hash = "sha256-B4BxoZSPSpDWLUgcYgQEmuhVr2mX04hrFCLu04vp1so="; - }; - - - buildInputs = with llvmPackages; [ - llvm libclang - elfutils bcc - libbpf libbfd libopcodes - cereal asciidoctor - ]; - - nativeBuildInputs = [ - cmake pkg-config flex bison - llvmPackages.llvm.dev - util-linux - ]; - - # tests aren't built, due to gtest shenanigans. see: - # - # https://github.com/iovisor/bpftrace/issues/161#issuecomment-453606728 - # https://github.com/iovisor/bpftrace/pull/363 - # - cmakeFlags = [ - "-DBUILD_TESTING=FALSE" - "-DLIBBCC_INCLUDE_DIRS=${bcc}/include" - "-DINSTALL_TOOL_DOCS=OFF" - "-DUSE_SYSTEM_BPF_BCC=ON" - ]; - - - # Pull BPF scripts into $PATH (next to their bcc program equivalents), but do - # not move them to keep `${pkgs.bpftrace}/share/bpftrace/tools/...` working. - postInstall = '' - ln -sr $out/share/bpftrace/tools/*.bt $out/bin/ - # do not use /usr/bin/env for shipped tools - # If someone can get patchShebangs to work here please fix. - sed -i -e "1s:#!/usr/bin/env bpftrace:#!$out/bin/bpftrace:" $out/share/bpftrace/tools/*.bt - ''; - - outputs = [ "out" "man" ]; - - passthru.tests = { - bpf = nixosTests.bpf; - }; - - meta = with lib; { - description = "High-level tracing language for Linux eBPF"; - homepage = "https://github.com/iovisor/bpftrace"; - changelog = "https://github.com/iovisor/bpftrace/releases/tag/v${version}"; - mainProgram = "bpftrace"; - license = licenses.asl20; - maintainers = with maintainers; [ rvl thoughtpolice martinetd mfrw ]; - }; -} diff --git a/pkgs/os-specific/linux/bpftune/default.nix b/pkgs/os-specific/linux/bpftune/default.nix deleted file mode 100644 index 517cd04a455d..000000000000 --- a/pkgs/os-specific/linux/bpftune/default.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, clang -, bpftools -, docutils -, libbpf -, libcap -, libnl -, nixosTests -}: - -stdenv.mkDerivation rec { - pname = "bpftune"; - version = "unstable-2023-12-20"; - - src = fetchFromGitHub { - owner = "oracle"; - repo = "bpftune"; - rev = "0e6bca2e5880fcbaac6478c4042f5f9314e61463"; - hash = "sha256-y9WQrQb9U5YdzKAR63FzC8V1+jZL027pzAmQPpgM3jM="; - }; - - postPatch = '' - # otherwise shrink rpath would drop $out/lib from rpath - substituteInPlace src/Makefile \ - --replace /lib64 /lib \ - --replace /sbin /bin \ - --replace ldconfig true - substituteInPlace src/bpftune.service \ - --replace /usr/sbin/bpftune "$out/bin/bpftune" - substituteInPlace include/bpftune/libbpftune.h \ - --replace /usr/lib64/bpftune/ "$out/lib/bpftune/" \ - --replace /usr/local/lib64/bpftune/ "$out/lib/bpftune/" - substituteInPlace src/libbpftune.c \ - --replace /lib/modules /run/booted-system/kernel-modules/lib/modules - - substituteInPlace src/Makefile sample_tuner/Makefile \ - --replace 'BPF_INCLUDE := /usr/include' 'BPF_INCLUDE := ${lib.getDev libbpf}/include' \ - ''; - - nativeBuildInputs = [ - clang - bpftools - docutils # rst2man - ]; - - buildInputs = [ - libbpf - libcap - libnl - ]; - - makeFlags = [ - "prefix=${placeholder "out"}" - "confprefix=${placeholder "out"}/etc" - "BPFTUNE_VERSION=${version}" - "NL_INCLUDE=${lib.getDev libnl}/include/libnl3" - ]; - - hardeningDisable = [ - "stackprotector" - ]; - - passthru.tests = { - inherit (nixosTests) bpftune; - }; - - enableParallelBuilding = true; - - meta = with lib; { - description = "BPF-based auto-tuning of Linux system parameters"; - mainProgram = "bpftune"; - homepage = "https://github.com/oracle-samples/bpftune"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ nickcao ]; - }; -} diff --git a/pkgs/os-specific/linux/bridge-utils/autoconf-ar.patch b/pkgs/os-specific/linux/bridge-utils/autoconf-ar.patch deleted file mode 100644 index 21b089179ce1..000000000000 --- a/pkgs/os-specific/linux/bridge-utils/autoconf-ar.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/configure.ac -+++ b/configure.ac -@@ -9,6 +9,7 @@ dnl Checks for programs. - AC_PROG_CC - AC_PROG_INSTALL - AC_PROG_RANLIB -+AC_CHECK_TOOL([AR], [ar]) - - dnl Checks for header files. - AC_HEADER_STDC ---- a/libbridge/Makefile.in -+++ b/libbridge/Makefile.in -@@ -1,7 +1,7 @@ - - KERNEL_HEADERS=-I@KERNEL_HEADERS@ - --AR=ar -+AR=@AR@ - RANLIB=@RANLIB@ - - CC=@CC@ diff --git a/pkgs/os-specific/linux/bridge-utils/default.nix b/pkgs/os-specific/linux/bridge-utils/default.nix deleted file mode 100644 index 1753be599380..000000000000 --- a/pkgs/os-specific/linux/bridge-utils/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchurl, autoreconfHook, fetchpatch }: - -stdenv.mkDerivation rec { - pname = "bridge-utils"; - version = "1.7.1"; - - src = fetchurl { - url = "https://kernel.org/pub/linux/utils/net/bridge-utils/bridge-utils-${version}.tar.xz"; - sha256 = "sha256-ph2L5PGhQFxgyO841UTwwYwFszubB+W0sxAzU2Fl5g4="; - }; - - patches = [ - ./autoconf-ar.patch - - (fetchpatch { - name = "musl-includes.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/bridge-utils/fix-PATH_MAX-on-ppc64le.patch?id=12c9046eee3a0a35665dc4e280c1f5ae2af5845d"; - sha256 = "sha256-uY1tgJhcm1DFctg9scmC8e+mgowgz4f/oF0+k+x+jqw="; - }) - ]; - - nativeBuildInputs = [ autoreconfHook ]; - - meta = { - description = "An userspace tool to configure linux bridges (deprecated in favour or iproute2)."; - mainProgram = "brctl"; - homepage = "https://wiki.linuxfoundation.org/networking/bridge"; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/brillo/default.nix b/pkgs/os-specific/linux/brillo/default.nix deleted file mode 100644 index 237b6db65b02..000000000000 --- a/pkgs/os-specific/linux/brillo/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitLab , go-md2man, coreutils, substituteAll }: - -stdenv.mkDerivation rec { - pname = "brillo"; - version = "1.4.12"; - - src = fetchFromGitLab { - owner= "cameronnemo"; - repo= "brillo"; - rev= "v${version}"; - sha256 = "sha256-dKGNioWGVAFuB4kySO+QGTnstyAD0bt4/6FBVwuRxJo="; - }; - - patches = [ - (substituteAll { - src = ./udev-rule.patch; - inherit coreutils; - }) - ]; - - nativeBuildInputs = [ go-md2man ]; - - makeFlags = [ "PREFIX=$(out)" "AADIR=$(out)/etc/apparmor.d" ]; - - installTargets = [ "install-dist" ]; - - meta = with lib; { - description = "Backlight and Keyboard LED control tool"; - homepage = "https://gitlab.com/cameronnemo/brillo"; - mainProgram = "brillo"; - license = [ licenses.gpl3 licenses.bsd0 ]; - platforms = platforms.linux; - maintainers = [ maintainers.alexarice ]; - }; -} diff --git a/pkgs/os-specific/linux/brillo/udev-rule.patch b/pkgs/os-specific/linux/brillo/udev-rule.patch deleted file mode 100644 index 7b1cf4840675..000000000000 --- a/pkgs/os-specific/linux/brillo/udev-rule.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/contrib/udev.in b/contrib/udev.in -index 0625952..a6c940e 100644 ---- a/contrib/udev.in -+++ b/contrib/udev.in -@@ -1,4 +1,4 @@ --ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp @group@ /sys/class/backlight/%k/brightness" --ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness" --ACTION=="add", SUBSYSTEM=="leds", RUN+="/bin/chgrp @group@ /sys/class/leds/%k/brightness" --ACTION=="add", SUBSYSTEM=="leds", RUN+="/bin/chmod g+w /sys/class/leds/%k/brightness" -+ACTION=="add", SUBSYSTEM=="backlight", RUN+="@coreutils@/bin/chgrp @group@ /sys/class/backlight/%k/brightness" -+ACTION=="add", SUBSYSTEM=="backlight", RUN+="@coreutils@/bin/chmod g+w /sys/class/backlight/%k/brightness" -+ACTION=="add", SUBSYSTEM=="leds", RUN+="@coreutils@/bin/chgrp @group@ /sys/class/leds/%k/brightness" -+ACTION=="add", SUBSYSTEM=="leds", RUN+="@coreutils@/bin/chmod g+w /sys/class/leds/%k/brightness" diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix deleted file mode 100644 index 6b7d8b912fa2..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/default.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ lib, stdenv, fetchurl, kernel }: - -let - version = "6.30.223.271"; - hashes = { - i686-linux = "1kaqa2dw3nb8k23ffvx46g8jj3wdhz8xa6jp1v3wb35cjfr712sg"; - x86_64-linux = "1gj485qqr190idilacpxwgqyw21il03zph2rddizgj7fbd6pfyaz"; - }; - - arch = lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "_64"; - tarballVersion = lib.replaceStrings ["."] ["_"] version; - tarball = "hybrid-v35${arch}-nodebug-pcoem-${tarballVersion}.tar.gz"; -in -stdenv.mkDerivation { - name = "broadcom-sta-${version}-${kernel.version}"; - - src = fetchurl { - url = "https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/${tarball}"; - sha256 = hashes.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - patches = [ - ./i686-build-failure.patch - ./license.patch - ./linux-4.7.patch - # source: https://git.archlinux.org/svntogit/community.git/tree/trunk/004-linux48.patch?h=packages/broadcom-wl-dkms - ./linux-4.8.patch - # source: https://aur.archlinux.org/cgit/aur.git/tree/linux411.patch?h=broadcom-wl - ./linux-4.11.patch - # source: https://aur.archlinux.org/cgit/aur.git/tree/linux412.patch?h=broadcom-wl - ./linux-4.12.patch - ./linux-4.15.patch - ./linux-5.1.patch - # source: https://salsa.debian.org/Herrie82-guest/broadcom-sta/-/commit/247307926e5540ad574a17c062c8da76990d056f - ./linux-5.6.patch - # source: https://gist.github.com/joanbm/5c640ac074d27fd1d82c74a5b67a1290 - ./linux-5.9.patch - # source: https://github.com/archlinux/svntogit-community/blob/33b4bd2b9e30679b03f5d7aa2741911d914dcf94/trunk/012-linux517.patch - ./linux-5.17.patch - # source: https://github.com/archlinux/svntogit-community/blob/2e1fd240f9ce06f500feeaa3e4a9675e65e6b967/trunk/013-linux518.patch - ./linux-5.18.patch - # source: https://gist.github.com/joanbm/207210d74637870c01ef5a3c262a597d - ./linux-6.0.patch - # source: https://gist.github.com/joanbm/94323ea99eff1e1d1c51241b5b651549 - ./linux-6.1.patch - ./pedantic-fix.patch - ./null-pointer-fix.patch - ./gcc.patch - ]; - - makeFlags = [ "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}" ]; - - unpackPhase = '' - sourceRoot=broadcom-sta - mkdir "$sourceRoot" - tar xvf "$src" -C "$sourceRoot" - ''; - - installPhase = '' - binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - docDir="$out/share/doc/broadcom-sta/" - mkdir -p "$binDir" "$docDir" - cp wl.ko "$binDir" - cp lib/LICENSE.txt "$docDir" - ''; - - meta = { - description = "Kernel module driver for some Broadcom's wireless cards"; - homepage = "http://www.broadcom.com/support/802.11/linux_sta.php"; - license = lib.licenses.unfreeRedistributable; - maintainers = with lib.maintainers; [ ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/broadcom-sta/gcc.patch b/pkgs/os-specific/linux/broadcom-sta/gcc.patch deleted file mode 100644 index f93e3f1d3a3f..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/gcc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Makefile 2014-06-26 10:42:08.000000000 +0000 -+++ b/Makefile 2014-07-17 22:44:01.662297228 +0000 -@@ -126,6 +126,8 @@ - EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include - #EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR - -+EXTRA_CFLAGS += -Wno-date-time -+ - EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped - - KBASE ?= /lib/modules/`uname -r` diff --git a/pkgs/os-specific/linux/broadcom-sta/i686-build-failure.patch b/pkgs/os-specific/linux/broadcom-sta/i686-build-failure.patch deleted file mode 100644 index 9bb093ca49c5..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/i686-build-failure.patch +++ /dev/null @@ -1,18 +0,0 @@ -https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=fe47ae6e1a5005b2e82f7eab57b5c3820453293a -https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=4ea1636b04dbd66536fa387bae2eea463efc705b - -diff -ru a/src/shared/linux_osl.c b/src/shared/linux_osl.c ---- a/src/shared/linux_osl.c 2015-09-19 01:47:15.000000000 +0300 -+++ b/src/shared/linux_osl.c 2015-11-21 15:20:30.585902518 +0200 -@@ -932,7 +932,11 @@ - uint cycles; - - #if defined(__i386__) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ cycles = (u32)rdtsc(); -+#else - rdtscl(cycles); -+#endif - #else - cycles = 0; - #endif diff --git a/pkgs/os-specific/linux/broadcom-sta/license.patch b/pkgs/os-specific/linux/broadcom-sta/license.patch deleted file mode 100644 index aebb46365195..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/license.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c ---- hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c 2009-04-23 02:48:59.000000000 +0900 -+++ hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c 2009-05-08 00:48:20.000000000 +0900 -@@ -171,6 +171,8 @@ - static void wl_free_if(wl_info_t *wl, wl_if_t *wlif); - static void wl_get_driver_info(struct net_device *dev, struct ethtool_drvinfo *info); - -+MODULE_LICENSE("MIXED/Proprietary"); -+ - #if defined(WL_CONFIG_RFKILL) - #include <linux/rfkill.h> - static int wl_init_rfkill(wl_info_t *wl); - diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-4.11.patch b/pkgs/os-specific/linux/broadcom-sta/linux-4.11.patch deleted file mode 100644 index a779f8c84cfd..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-4.11.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index a9671e2..da36405 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -30,6 +30,9 @@ - #include <linux/kthread.h> - #include <linux/netdevice.h> - #include <linux/ieee80211.h> -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) -+#include <linux/sched/signal.h> -+#endif - #include <net/cfg80211.h> - #include <linux/nl80211.h> - #include <net/rtnetlink.h> -diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c -index 489c9f5..f8278ad 100644 ---- a/src/wl/sys/wl_linux.c -+++ b/src/wl/sys/wl_linux.c -@@ -117,6 +117,9 @@ int wl_found = 0; - - typedef struct priv_link { - wl_if_t *wlif; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) -+ unsigned long last_rx; -+#endif - } priv_link_t; - - #define WL_DEV_IF(dev) ((wl_if_t*)((priv_link_t*)DEV_PRIV(dev))->wlif) -@@ -2450,6 +2453,9 @@ wl_monitor(wl_info_t *wl, wl_rxsts_t *rxsts, void *p) - { - struct sk_buff *oskb = (struct sk_buff *)p; - struct sk_buff *skb; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) -+ priv_link_t *priv_link; -+#endif - uchar *pdata; - uint len; - -@@ -2916,7 +2922,13 @@ wl_monitor(wl_info_t *wl, wl_rxsts_t *rxsts, void *p) - if (skb == NULL) return; - - skb->dev = wl->monitor_dev; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) -+ priv_link = MALLOC(wl->osh, sizeof(priv_link_t)); -+ priv_link = netdev_priv(skb->dev); -+ priv_link->last_rx = jiffies; -+#else - skb->dev->last_rx = jiffies; -+#endif - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22) - skb_reset_mac_header(skb); - #else diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-4.12.patch b/pkgs/os-specific/linux/broadcom-sta/linux-4.12.patch deleted file mode 100644 index 8abc73db4db1..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-4.12.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index da36405..d3741eb 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -53,7 +53,11 @@ u32 wl_dbg_level = WL_DBG_ERR; - #endif - - static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -+ enum nl80211_iftype type, struct vif_params *params); -+#else - enum nl80211_iftype type, u32 *flags, struct vif_params *params); -+#endif - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0) - static s32 - wl_cfg80211_scan(struct wiphy *wiphy, -@@ -466,7 +470,11 @@ wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len) - - static s32 - wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -+ enum nl80211_iftype type, -+#else - enum nl80211_iftype type, u32 *flags, -+#endif - struct vif_params *params) - { - struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy); -@@ -2361,6 +2369,20 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, - const wl_event_msg_t *e, void *data) - { - struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -+ struct cfg80211_bss *bss; -+ struct wlc_ssid *ssid; -+ ssid = &wl->profile->ssid; -+ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, -+ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); -+ struct cfg80211_roam_info roam_info = { -+ .bss = bss, -+ .req_ie = conn_info->req_ie, -+ .req_ie_len = conn_info->req_ie_len, -+ .resp_ie = conn_info->resp_ie, -+ .resp_ie_len = conn_info->resp_ie_len, -+ }; -+#endif - s32 err = 0; - - wl_get_assoc_ies(wl); -@@ -2368,12 +2390,17 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, - memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN); - wl_update_bss_info(wl); - cfg80211_roamed(ndev, -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -+ &roam_info, -+#else - #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) - &wl->conf->channel, - #endif - (u8 *)&wl->bssid, - conn_info->req_ie, conn_info->req_ie_len, -- conn_info->resp_ie, conn_info->resp_ie_len, GFP_KERNEL); -+ conn_info->resp_ie, conn_info->resp_ie_len, -+#endif -+ GFP_KERNEL); - WL_DBG(("Report roaming result\n")); - - set_bit(WL_STATUS_CONNECTED, &wl->status); diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-4.15.patch b/pkgs/os-specific/linux/broadcom-sta/linux-4.15.patch deleted file mode 100644 index 523fa291d525..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-4.15.patch +++ /dev/null @@ -1,47 +0,0 @@ -See: https://lkml.org/lkml/2017/11/25/90 - -diff -urNZ a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c ---- a/src/wl/sys/wl_linux.c 2015-09-18 22:47:30.000000000 +0000 -+++ b/src/wl/sys/wl_linux.c 2018-01-31 22:52:10.859856221 +0000 -@@ -93,7 +93,11 @@ - - #include <wlc_wowl.h> - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) -+static void wl_timer(struct timer_list *tl); -+#else - static void wl_timer(ulong data); -+#endif - static void _wl_timer(wl_timer_t *t); - static struct net_device *wl_alloc_linux_if(wl_if_t *wlif); - -@@ -2298,9 +2302,15 @@ - } - - static void -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) -+wl_timer(struct timer_list *tl) -+{ -+ wl_timer_t *t = from_timer(t, tl, timer); -+#else - wl_timer(ulong data) - { - wl_timer_t *t = (wl_timer_t *)data; -+#endif - - if (!WL_ALL_PASSIVE_ENAB(t->wl)) - _wl_timer(t); -@@ -2352,9 +2362,13 @@ - - bzero(t, sizeof(wl_timer_t)); - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) -+ timer_setup(&t->timer, wl_timer, 0); -+#else - init_timer(&t->timer); - t->timer.data = (ulong) t; - t->timer.function = wl_timer; -+#endif - t->wl = wl; - t->fn = fn; - t->arg = arg; diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-4.7.patch b/pkgs/os-specific/linux/broadcom-sta/linux-4.7.patch deleted file mode 100644 index 44222b3324bf..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-4.7.patch +++ /dev/null @@ -1,109 +0,0 @@ -Since Linux 4.7, the enum ieee80211_band is no longer used - -This shall cause no problem's since both enums ieee80211_band -and nl80211_band were added in the same commit: -https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=13ae75b103e07304a34ab40c9136e9f53e06475c - -This patch refactors the references of IEEE80211_BAND_* to NL80211_BAND_* - -Reference: -https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=57fbcce37be7c1d2622b56587c10ade00e96afa3 - ---- a/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:57:36.159340297 -0500 -+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2016-06-13 11:58:18.442323435 -0500 -@@ -236,7 +236,7 @@ - #endif - - #define CHAN2G(_channel, _freq, _flags) { \ -- .band = IEEE80211_BAND_2GHZ, \ -+ .band = NL80211_BAND_2GHZ, \ - .center_freq = (_freq), \ - .hw_value = (_channel), \ - .flags = (_flags), \ -@@ -245,7 +245,7 @@ - } - - #define CHAN5G(_channel, _flags) { \ -- .band = IEEE80211_BAND_5GHZ, \ -+ .band = NL80211_BAND_5GHZ, \ - .center_freq = 5000 + (5 * (_channel)), \ - .hw_value = (_channel), \ - .flags = (_flags), \ -@@ -379,7 +379,7 @@ - }; - - static struct ieee80211_supported_band __wl_band_2ghz = { -- .band = IEEE80211_BAND_2GHZ, -+ .band = NL80211_BAND_2GHZ, - .channels = __wl_2ghz_channels, - .n_channels = ARRAY_SIZE(__wl_2ghz_channels), - .bitrates = wl_g_rates, -@@ -387,7 +387,7 @@ - }; - - static struct ieee80211_supported_band __wl_band_5ghz_a = { -- .band = IEEE80211_BAND_5GHZ, -+ .band = NL80211_BAND_5GHZ, - .channels = __wl_5ghz_a_channels, - .n_channels = ARRAY_SIZE(__wl_5ghz_a_channels), - .bitrates = wl_a_rates, -@@ -395,7 +395,7 @@ - }; - - static struct ieee80211_supported_band __wl_band_5ghz_n = { -- .band = IEEE80211_BAND_5GHZ, -+ .band = NL80211_BAND_5GHZ, - .channels = __wl_5ghz_n_channels, - .n_channels = ARRAY_SIZE(__wl_5ghz_n_channels), - .bitrates = wl_a_rates, -@@ -1876,8 +1876,8 @@ - wdev->wiphy->max_num_pmkids = WL_NUM_PMKIDS_MAX; - #endif - wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); -- wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &__wl_band_2ghz; -- wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_a; -+ wdev->wiphy->bands[NL80211_BAND_2GHZ] = &__wl_band_2ghz; -+ wdev->wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_a; - wdev->wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; - wdev->wiphy->cipher_suites = __wl_cipher_suites; - wdev->wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites); -@@ -2000,7 +2000,7 @@ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) - freq = ieee80211_channel_to_frequency(notif_bss_info->channel, - (notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? -- IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ); -+ NL80211_BAND_2GHZ : NL80211_BAND_5GHZ); - #else - freq = ieee80211_channel_to_frequency(notif_bss_info->channel); - #endif -@@ -2116,7 +2116,7 @@ - return err; - } - chan = wf_chspec_ctlchan(chanspec); -- band = (chan <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ; -+ band = (chan <= CH_MAX_2G_CHANNEL) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ; - freq = ieee80211_channel_to_frequency(chan, band); - channel = ieee80211_get_channel(wiphy, freq); - cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL); -@@ -2250,10 +2250,10 @@ - join_params->params.chanspec_list[0] = - ieee80211_frequency_to_channel(chan->center_freq); - -- if (chan->band == IEEE80211_BAND_2GHZ) { -+ if (chan->band == NL80211_BAND_2GHZ) { - chanspec |= WL_CHANSPEC_BAND_2G; - } -- else if (chan->band == IEEE80211_BAND_5GHZ) { -+ else if (chan->band == NL80211_BAND_5GHZ) { - chanspec |= WL_CHANSPEC_BAND_5G; - } - else { -@@ -2885,7 +2885,7 @@ - - if (phy == 'n' || phy == 'a' || phy == 'v') { - wiphy = wl_to_wiphy(wl); -- wiphy->bands[IEEE80211_BAND_5GHZ] = &__wl_band_5ghz_n; -+ wiphy->bands[NL80211_BAND_5GHZ] = &__wl_band_5ghz_n; - } - - return err; diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-4.8.patch b/pkgs/os-specific/linux/broadcom-sta/linux-4.8.patch deleted file mode 100644 index 20e8a9ae49d2..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-4.8.patch +++ /dev/null @@ -1,64 +0,0 @@ -From d3f93542326a06d920c6eb89b703384290d37b8b Mon Sep 17 00:00:00 2001 -From: Alberto Milone <alberto.milone@canonical.com> -Date: Fri, 2 Sep 2016 17:35:34 +0200 -Subject: [PATCH 1/1] Add support for Linux 4.8 - -Orginal author: Krzysztof Kolasa ---- - src/wl/sys/wl_cfg80211_hybrid.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index 2fc71fe..ec5e472 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -2388,8 +2388,16 @@ wl_bss_connect_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, - s32 err = 0; - - if (wl->scan_request) { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ struct cfg80211_scan_info info = { -+ .aborted = true, -+ }; -+ WL_DBG(("%s: Aborting scan\n", __FUNCTION__)); -+ cfg80211_scan_done(wl->scan_request, &info); -+#else - WL_DBG(("%s: Aborting scan\n", __FUNCTION__)); - cfg80211_scan_done(wl->scan_request, true); -+#endif - wl->scan_request = NULL; - } - -@@ -2490,7 +2498,14 @@ wl_notify_scan_status(struct wl_cfg80211_priv *wl, struct net_device *ndev, - - scan_done_out: - if (wl->scan_request) { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ struct cfg80211_scan_info info = { -+ .aborted = false, -+ }; -+ cfg80211_scan_done(wl->scan_request, &info); -+#else - cfg80211_scan_done(wl->scan_request, false); -+#endif - wl->scan_request = NULL; - } - rtnl_unlock(); -@@ -2909,7 +2924,14 @@ s32 wl_cfg80211_down(struct net_device *ndev) - s32 err = 0; - - if (wl->scan_request) { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ struct cfg80211_scan_info info = { -+ .aborted = true, -+ }; -+ cfg80211_scan_done(wl->scan_request, &info); -+#else - cfg80211_scan_done(wl->scan_request, true); -+#endif - wl->scan_request = NULL; - } - --- -2.7.4 - diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-5.1.patch b/pkgs/os-specific/linux/broadcom-sta/linux-5.1.patch deleted file mode 100644 index 8f04a737cab8..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-5.1.patch +++ /dev/null @@ -1,32 +0,0 @@ -commit bcb06af629a36eb84f9a35ac599ec7e51e2d39fb -Author: georgewhewell <georgerw@gmail.com> -Date: Sat May 18 21:22:37 2019 +0100 - - find src -type f -name \'*.c\' -exec sed -i "s/get_ds()/KERNEL_DS/g" {} \; - -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index 7b606e0..51c81bc 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -450,7 +450,7 @@ wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len) - ifr.ifr_data = (caddr_t)&ioc; - - fs = get_fs(); -- set_fs(get_ds()); -+ set_fs(KERNEL_DS); - #if defined(WL_USE_NETDEV_OPS) - err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); - #else -diff --git a/src/wl/sys/wl_iw.c b/src/wl/sys/wl_iw.c -index c4c610b..9c3c74e 100644 ---- a/src/wl/sys/wl_iw.c -+++ b/src/wl/sys/wl_iw.c -@@ -117,7 +117,7 @@ dev_wlc_ioctl( - ifr.ifr_data = (caddr_t) &ioc; - - fs = get_fs(); -- set_fs(get_ds()); -+ set_fs(KERNEL_DS); - #if defined(WL_USE_NETDEV_OPS) - ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); - #else diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-5.17.patch b/pkgs/os-specific/linux/broadcom-sta/linux-5.17.patch deleted file mode 100644 index 6f23316691c8..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-5.17.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 31b7849092c43805c7fbaf7518b99874aa1b310c Mon Sep 17 00:00:00 2001 -From: Joan Bruguera <joanbrugueram@gmail.com> -Date: Wed, 12 Jan 2022 20:49:20 +0100 -Subject: [PATCH] Tentative fix for broadcom-wl 6.30.223.271 driver for Linux 5.17-rc1 - -Set netdev->dev_addr through dev_addr_mod + PDE_DATA fix - -Since Linux 5.17 netdev->dev_addr is const and must be changed through -dev_addr_mod, otherwise a warning is logged in dmesg and bad things may happen. - -NB: The #if is not wrong, dev_addr_mod is defined since Linux 5.15-rc1 - -Plus a trivial fix for PDE_DATA. - -Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-28 on Arch Linux. - -See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=adeef3e32146a8d2a73c399dc6f5d76a449131b1 - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=359745d78351c6f5442435f81549f0207ece28aa ---- - src/wl/sys/wl_linux.c | 16 +++++++++++++--- - 1 file changed, 13 insertions(+), 3 deletions(-) - -diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c -index e491df7..e4614fb 100644 ---- a/src/wl/sys/wl_linux.c -+++ b/src/wl/sys/wl_linux.c -@@ -93,6 +93,10 @@ struct iw_statistics *wl_get_wireless_stats(struct net_device *dev); - - #include <wlc_wowl.h> - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0)) -+#define PDE_DATA pde_data -+#endif -+ - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) - static void wl_timer(struct timer_list *tl); - #else -@@ -490,6 +494,12 @@ wl_if_setup(struct net_device *dev) - #endif - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0) -+static inline void eth_hw_addr_set(struct net_device *dev, const void *addr) { -+ memcpy(dev->dev_addr, addr, ETHER_ADDR_LEN); -+} -+#endif -+ - static wl_info_t * - wl_attach(uint16 vendor, uint16 device, ulong regs, - uint bustype, void *btparam, uint irq, uchar* bar1_addr, uint32 bar1_size) -@@ -634,7 +644,7 @@ wl_attach(uint16 vendor, uint16 device, ulong regs, - WL_ERROR(("wl%d: Error setting MAC ADDRESS\n", unit)); - } - #endif -- bcopy(&wl->pub->cur_etheraddr, dev->dev_addr, ETHER_ADDR_LEN); -+ eth_hw_addr_set(dev, wl->pub->cur_etheraddr.octet); - - online_cpus = 1; - -@@ -1835,7 +1845,7 @@ wl_set_mac_address(struct net_device *dev, void *addr) - - WL_LOCK(wl); - -- bcopy(sa->sa_data, dev->dev_addr, ETHER_ADDR_LEN); -+ eth_hw_addr_set(dev, sa->sa_data); - err = wlc_iovar_op(wl->wlc, "cur_etheraddr", NULL, 0, sa->sa_data, ETHER_ADDR_LEN, - IOV_SET, (WL_DEV_IF(dev))->wlcif); - WL_UNLOCK(wl); -@@ -3010,7 +3020,7 @@ _wl_add_monitor_if(wl_task_t *task) - else - dev->type = ARPHRD_IEEE80211_RADIOTAP; - -- bcopy(wl->dev->dev_addr, dev->dev_addr, ETHER_ADDR_LEN); -+ eth_hw_addr_set(dev, wl->dev->dev_addr); - - #if defined(WL_USE_NETDEV_OPS) - dev->netdev_ops = &wl_netdev_monitor_ops; --- -2.35.1 - diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-5.18.patch b/pkgs/os-specific/linux/broadcom-sta/linux-5.18.patch deleted file mode 100644 index d837429a6899..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-5.18.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff -u -r a/src/shared/linux_osl.c b/src/shared/linux_osl.c ---- a/src/shared/linux_osl.c 2022-05-24 20:51:15.662604980 +0000 -+++ b/src/shared/linux_osl.c 2022-05-24 21:13:38.264472425 +0000 -@@ -599,6 +599,8 @@ - va = kmalloc(size, GFP_ATOMIC | __GFP_ZERO); - if (va) - *pap = (ulong)__virt_to_phys(va); -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) -+ va = dma_alloc_coherent(&((struct pci_dev *)osh->pdev)->dev, size, (dma_addr_t*)pap, GFP_ATOMIC); - #else - va = pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap); - #endif -@@ -612,6 +614,8 @@ - - #ifdef __ARM_ARCH_7A__ - kfree(va); -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) -+ dma_free_coherent(&((struct pci_dev *)osh->pdev)->dev, size, va, (dma_addr_t)pa); - #else - pci_free_consistent(osh->pdev, size, va, (dma_addr_t)pa); - #endif -@@ -623,7 +627,11 @@ - int dir; - - ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC))); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) -+ dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE; -+#else - dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE; -+#endif - - #if defined(__ARM_ARCH_7A__) && defined(BCMDMASGLISTOSL) - if (dmah != NULL) { -@@ -641,7 +649,11 @@ - ASSERT(totsegs + nsegs <= MAX_DMA_SEGS); - sg->page_link = 0; - sg_set_buf(sg, PKTDATA(osh, skb), PKTLEN(osh, skb)); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) -+ dma_map_single(&((struct pci_dev *)osh->pdev)->dev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir); -+#else - pci_map_single(osh->pdev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir); -+#endif - } - totsegs += nsegs; - totlen += PKTLEN(osh, skb); -@@ -656,7 +668,11 @@ - } - #endif - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) -+ return (dma_map_single(&((struct pci_dev *)osh->pdev)->dev, va, size, dir)); -+#else - return (pci_map_single(osh->pdev, va, size, dir)); -+#endif - } - - void BCMFASTPATH -@@ -665,8 +681,13 @@ - int dir; - - ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC))); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) -+ dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE; -+ dma_unmap_single(&((struct pci_dev *)osh->pdev)->dev, (uint32)pa, size, dir); -+#else - dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE; - pci_unmap_single(osh->pdev, (uint32)pa, size, dir); -+#endif - } - - #if defined(BCMDBG_ASSERT) diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-5.6.patch b/pkgs/os-specific/linux/broadcom-sta/linux-5.6.patch deleted file mode 100644 index df5af79f77c6..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-5.6.patch +++ /dev/null @@ -1,87 +0,0 @@ -From dd057e40a167f4febb1a7c77dd32b7d36056952c Mon Sep 17 00:00:00 2001 -From: Herman van Hazendonk <github.com@herrie.org> -Date: Tue, 31 Mar 2020 17:09:55 +0200 -Subject: [PATCH] Add fixes for 5.6 kernel - -Use ioremap instead of ioremap_nocache and proc_ops instead of file_operations on Linux kernel 5.6 and above. - -Signed-off-by: Herman van Hazendonk <github.com@herrie.org> ---- - src/shared/linux_osl.c | 6 +++++- - src/wl/sys/wl_linux.c | 21 ++++++++++++++++++++- - 2 files changed, 25 insertions(+), 2 deletions(-) - -diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c -index 6157d18..dcfc075 100644 ---- a/src/shared/linux_osl.c -+++ b/src/shared/linux_osl.c -@@ -942,7 +942,11 @@ osl_getcycles(void) - void * - osl_reg_map(uint32 pa, uint size) - { -- return (ioremap_nocache((unsigned long)pa, (unsigned long)size)); -+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) -+ return (ioremap((unsigned long)pa, (unsigned long)size)); -+ #else -+ return (ioremap_nocache((unsigned long)pa, (unsigned long)size)); -+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */ - } - - void -diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c -index 0d05100..6d9dd0d 100644 ---- a/src/wl/sys/wl_linux.c -+++ b/src/wl/sys/wl_linux.c -@@ -582,10 +582,17 @@ wl_attach(uint16 vendor, uint16 device, ulong regs, - } - wl->bcm_bustype = bustype; - -+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) -+ if ((wl->regsva = ioremap(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) { -+ WL_ERROR(("wl%d: ioremap() failed\n", unit)); -+ goto fail; -+ } -+ #else - if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) { - WL_ERROR(("wl%d: ioremap() failed\n", unit)); - goto fail; - } -+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */ - - wl->bar1_addr = bar1_addr; - wl->bar1_size = bar1_size; -@@ -772,8 +779,13 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) - if ((val & 0x0000ff00) != 0) - pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); - bar1_size = pci_resource_len(pdev, 2); -+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) -+ bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2), -+ bar1_size); -+ #else - bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), - bar1_size); -+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */ - wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev, - pdev->irq, bar1_addr, bar1_size); - -@@ -3335,12 +3347,19 @@ wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t - } - - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) -+static const struct proc_ops wl_fops = { -+ .proc_read = wl_proc_read, -+ .proc_write = wl_proc_write, -+}; -+#else - static const struct file_operations wl_fops = { - .owner = THIS_MODULE, - .read = wl_proc_read, - .write = wl_proc_write, - }; --#endif -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */ -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) */ - - static int - wl_reg_proc_entry(wl_info_t *wl) diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-5.9.patch b/pkgs/os-specific/linux/broadcom-sta/linux-5.9.patch deleted file mode 100644 index 2a4e6fa89cc3..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-5.9.patch +++ /dev/null @@ -1,184 +0,0 @@ -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index 4b3298f..c45ad48 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -41,6 +41,7 @@ - #include <wlioctl.h> - #include <proto/802.11.h> - #include <wl_cfg80211_hybrid.h> -+#include <wl_linux.h> - - #define EVENT_TYPE(e) dtoh32((e)->event_type) - #define EVENT_FLAGS(e) dtoh16((e)->flags) -@@ -442,30 +443,7 @@ static void key_endian_to_host(struct wl_wsec_key *key) - static s32 - wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len) - { -- struct ifreq ifr; -- struct wl_ioctl ioc; -- mm_segment_t fs; -- s32 err = 0; -- -- BUG_ON(len < sizeof(int)); -- -- memset(&ioc, 0, sizeof(ioc)); -- ioc.cmd = cmd; -- ioc.buf = arg; -- ioc.len = len; -- strcpy(ifr.ifr_name, dev->name); -- ifr.ifr_data = (caddr_t)&ioc; -- -- fs = get_fs(); -- set_fs(KERNEL_DS); --#if defined(WL_USE_NETDEV_OPS) -- err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); --#else -- err = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE); --#endif -- set_fs(fs); -- -- return err; -+ return wlc_ioctl_internal(dev, cmd, arg, len); - } - - static s32 -diff --git a/src/wl/sys/wl_iw.c b/src/wl/sys/wl_iw.c -index 9c3c74e..e346b15 100644 ---- a/src/wl/sys/wl_iw.c -+++ b/src/wl/sys/wl_iw.c -@@ -37,6 +37,7 @@ typedef const struct si_pub si_t; - - #include <wl_dbg.h> - #include <wl_iw.h> -+#include <wl_linux.h> - - extern bool wl_iw_conn_status_str(uint32 event_type, uint32 status, - uint32 reason, char* stringBuf, uint buflen); -@@ -103,29 +104,7 @@ dev_wlc_ioctl( - int len - ) - { -- struct ifreq ifr; -- wl_ioctl_t ioc; -- mm_segment_t fs; -- int ret; -- -- memset(&ioc, 0, sizeof(ioc)); -- ioc.cmd = cmd; -- ioc.buf = arg; -- ioc.len = len; -- -- strcpy(ifr.ifr_name, dev->name); -- ifr.ifr_data = (caddr_t) &ioc; -- -- fs = get_fs(); -- set_fs(KERNEL_DS); --#if defined(WL_USE_NETDEV_OPS) -- ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE); --#else -- ret = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE); --#endif -- set_fs(fs); -- -- return ret; -+ return wlc_ioctl_internal(dev, cmd, arg, len); - } - - static int -diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c -index c990c70..5bb9480 100644 ---- a/src/wl/sys/wl_linux.c -+++ b/src/wl/sys/wl_linux.c -@@ -1664,10 +1664,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) - goto done2; - } - -- if (segment_eq(get_fs(), KERNEL_DS)) -- buf = ioc.buf; -- -- else if (ioc.buf) { -+ if (ioc.buf) { - if (!(buf = (void *) MALLOC(wl->osh, MAX(ioc.len, WLC_IOCTL_MAXLEN)))) { - bcmerror = BCME_NORESOURCE; - goto done2; -@@ -1688,7 +1685,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) - WL_UNLOCK(wl); - - done1: -- if (ioc.buf && (ioc.buf != buf)) { -+ if (ioc.buf) { - if (copy_to_user(ioc.buf, buf, ioc.len)) - bcmerror = BCME_BADADDR; - MFREE(wl->osh, buf, MAX(ioc.len, WLC_IOCTL_MAXLEN)); -@@ -1701,6 +1698,39 @@ done2: - return (OSL_ERROR(bcmerror)); - } - -+int -+wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len) -+{ -+ wl_info_t *wl; -+ wl_if_t *wlif; -+ int bcmerror; -+ -+ if (!dev) -+ return -ENETDOWN; -+ -+ wl = WL_INFO(dev); -+ wlif = WL_DEV_IF(dev); -+ if (wlif == NULL || wl == NULL || wl->dev == NULL) -+ return -ENETDOWN; -+ -+ bcmerror = 0; -+ -+ WL_TRACE(("wl%d: wlc_ioctl_internal: cmd 0x%x\n", wl->pub->unit, cmd)); -+ -+ WL_LOCK(wl); -+ if (!capable(CAP_NET_ADMIN)) { -+ bcmerror = BCME_EPERM; -+ } else { -+ bcmerror = wlc_ioctl(wl->wlc, cmd, buf, len, wlif->wlcif); -+ } -+ WL_UNLOCK(wl); -+ -+ ASSERT(VALID_BCMERROR(bcmerror)); -+ if (bcmerror != 0) -+ wl->pub->bcmerror = bcmerror; -+ return (OSL_ERROR(bcmerror)); -+} -+ - static struct net_device_stats* - wl_get_stats(struct net_device *dev) - { -diff --git a/src/wl/sys/wl_linux.h b/src/wl/sys/wl_linux.h -index 5b1048e..c8c1f41 100644 ---- a/src/wl/sys/wl_linux.h -+++ b/src/wl/sys/wl_linux.h -@@ -22,6 +22,7 @@ - #define _wl_linux_h_ - - #include <wlc_types.h> -+#include <wlc_pub.h> - - typedef struct wl_timer { - struct timer_list timer; -@@ -187,6 +188,7 @@ extern irqreturn_t wl_isr(int irq, void *dev_id, struct pt_regs *ptregs); - extern int __devinit wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent); - extern void wl_free(wl_info_t *wl); - extern int wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); -+extern int wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len); - extern struct net_device * wl_netdev_get(wl_info_t *wl); - - #endif -diff --git a/src/wl/sys/wlc_pub.h b/src/wl/sys/wlc_pub.h -index 53a98b8..2b5a029 100644 ---- a/src/wl/sys/wlc_pub.h -+++ b/src/wl/sys/wlc_pub.h -@@ -24,6 +24,7 @@ - - #include <wlc_types.h> - #include <wlc_utils.h> -+#include <siutils.h> - #include "proto/802.11.h" - #include "proto/bcmevent.h" - diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-6.0.patch b/pkgs/os-specific/linux/broadcom-sta/linux-6.0.patch deleted file mode 100644 index dcb5515264d3..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-6.0.patch +++ /dev/null @@ -1,30 +0,0 @@ -From dbee29df729e543a89b3f95c1436e982eb0047c1 Mon Sep 17 00:00:00 2001 -From: Joan Bruguera <joanbrugueram@gmail.com> -Date: Thu, 30 Jun 2022 02:15:35 +0200 -Subject: [PATCH] Tentative patch for broadcom-wl 6.30.223.271 driver for Linux 6.0-rc1 - -Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-33 on Arch Linux. ---- - src/wl/sys/wl_cfg80211_hybrid.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index d815b33..7faa735 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -2381,7 +2381,12 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, - bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, - ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); - struct cfg80211_roam_info roam_info = { -+// Rel. commit "cfg80211: Indicate MLO connection info in connect and roam callbacks" (Veerendranath Jakkam, Wed Jun 8) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) - .bss = bss, -+#else -+ .links[0].bss = bss, -+#endif - .req_ie = conn_info->req_ie, - .req_ie_len = conn_info->req_ie_len, - .resp_ie = conn_info->resp_ie, --- -2.37.0 - diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-6.1.patch b/pkgs/os-specific/linux/broadcom-sta/linux-6.1.patch deleted file mode 100644 index 5ececd487d74..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/linux-6.1.patch +++ /dev/null @@ -1,83 +0,0 @@ -From a63a5f70e5cf05f6bce4cda2e0dd67462e1d76a5 Mon Sep 17 00:00:00 2001 -From: Joan Bruguera <joanbrugueram@gmail.com> -Date: Mon, 29 Aug 2022 00:06:53 +0200 -Subject: [PATCH] Tentative patch for broadcom-wl 6.30.223.271 driver for Linux 6.1-rc1 - -Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-35 on Arch Linux ---- - src/wl/sys/wl_cfg80211_hybrid.c | 21 +++++++++++++-------- - 1 file changed, 13 insertions(+), 8 deletions(-) - -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index 4fef22a..50d1e34 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -105,20 +105,25 @@ static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wd - static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, s32 *dbm); - #endif - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) -+#define MAYBE_INT_LINK_ID int link_id, -+#else -+#define MAYBE_INT_LINK_ID -+#endif - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) - static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy, -- struct net_device *dev, u8 key_idx, bool unicast, bool multicast); -+ struct net_device *dev, MAYBE_INT_LINK_ID u8 key_idx, bool unicast, bool multicast); - #else - static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy, - struct net_device *dev, u8 key_idx); - #endif - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) - static s32 wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, -- u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params); -+ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params); - static s32 wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, -- u8 key_idx, bool pairwise, const u8 *mac_addr); -+ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr); - static s32 wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev, -- u8 key_idx, bool pairwise, const u8 *mac_addr, -+ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr, - void *cookie, void (*callback) (void *cookie, struct key_params *params)); - #else - static s32 wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, -@@ -1165,7 +1170,7 @@ static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, s32 *dbm) - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) - static s32 - wl_cfg80211_config_default_key(struct wiphy *wiphy, -- struct net_device *dev, u8 key_idx, bool unicast, bool multicast) -+ struct net_device *dev, MAYBE_INT_LINK_ID u8 key_idx, bool unicast, bool multicast) - #else - static s32 - wl_cfg80211_config_default_key(struct wiphy *wiphy, -@@ -1190,7 +1195,7 @@ wl_cfg80211_config_default_key(struct wiphy *wiphy, - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) - static s32 - wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, -- u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params) -+ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params) - #else - static s32 - wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, -@@ -1311,7 +1316,7 @@ wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) - static s32 - wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, -- u8 key_idx, bool pairwise, const u8 *mac_addr) -+ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr) - #else - static s32 - wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, -@@ -1354,7 +1359,7 @@ wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) - static s32 - wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev, -- u8 key_idx, bool pairwise, const u8 *mac_addr, void *cookie, -+ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr, void *cookie, - void (*callback) (void *cookie, struct key_params * params)) - #else - static s32 --- -2.37.2 - diff --git a/pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch b/pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch deleted file mode 100644 index 763797294307..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/null-pointer-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -urN a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c ---- a/src/wl/sys/wl_linux.c 2015-01-06 12:33:42.981659618 +0100 -+++ b/src/wl/sys/wl_linux.c 2015-01-06 12:34:05.647395418 +0100 -@@ -2157,8 +2157,8 @@ - wlif = WL_DEV_IF(dev); - wl = WL_INFO(dev); - -+ skb->prev = NULL; - if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) { -- skb->prev = NULL; - - TXQ_LOCK(wl); - diff --git a/pkgs/os-specific/linux/broadcom-sta/pedantic-fix.patch b/pkgs/os-specific/linux/broadcom-sta/pedantic-fix.patch deleted file mode 100644 index 3d190b9d1f82..000000000000 --- a/pkgs/os-specific/linux/broadcom-sta/pedantic-fix.patch +++ /dev/null @@ -1,99 +0,0 @@ -diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c -index 711b771..5a2636a 100644 ---- a/src/shared/linux_osl.c -+++ b/src/shared/linux_osl.c -@@ -1105,7 +1105,7 @@ osl_os_get_image_block(char *buf, int len, void *image) - if (!image) - return 0; - -- rdlen = kernel_read(fp, fp->f_pos, buf, len); -+ rdlen = kernel_read(fp, (void *)fp->f_pos, (size_t)len, (loff_t *)buf); - if (rdlen > 0) - fp->f_pos += rdlen; - -diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index 2b3c290..093dce6 100644 ---- a/src/wl/sys/wl_cfg80211_hybrid.c -+++ b/src/wl/sys/wl_cfg80211_hybrid.c -@@ -790,6 +790,7 @@ wl_set_auth_type(struct net_device *dev, struct cfg80211_connect_params *sme) - break; - case NL80211_AUTHTYPE_NETWORK_EAP: - WL_DBG(("network eap\n")); -+ break; - default: - val = 2; - WL_ERR(("invalid auth type (%d)\n", sme->auth_type)); -@@ -2347,26 +2348,24 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, - const wl_event_msg_t *e, void *data) - { - struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); -+ s32 err = 0; - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) - struct cfg80211_bss *bss; - struct wlc_ssid *ssid; -+ struct cfg80211_roam_info roam_info; - ssid = &wl->profile->ssid; - bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, - ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); -- struct cfg80211_roam_info roam_info = { - // Rel. commit "cfg80211: Indicate MLO connection info in connect and roam callbacks" (Veerendranath Jakkam, Wed Jun 8) - #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) -- .bss = bss, -+ roam_info.bss = bss; - #else -- .links[0].bss = bss, -+ roam_info.links[0].bss = bss; - #endif -- .req_ie = conn_info->req_ie, -- .req_ie_len = conn_info->req_ie_len, -- .resp_ie = conn_info->resp_ie, -- .resp_ie_len = conn_info->resp_ie_len, -- }; -+ roam_info.req_ie = conn_info->req_ie; -+ roam_info.req_ie_len = conn_info->req_ie_len; -+ roam_info.resp_ie = conn_info->resp_ie; - #endif -- s32 err = 0; - - wl_get_assoc_ies(wl); - memcpy(wl->profile->bssid, &e->addr, ETHER_ADDR_LEN); -diff --git a/src/wl/sys/wl_iw.h b/src/wl/sys/wl_iw.h -index 3ab084f..471d11f 100644 ---- a/src/wl/sys/wl_iw.h -+++ b/src/wl/sys/wl_iw.h -@@ -70,7 +70,6 @@ struct cntry_locales_custom { - #define WL_IW_RSSI_EXCELLENT -57 - #define WL_IW_RSSI_INVALID 0 - #define MAX_WX_STRING 80 --#define isprint(c) bcm_isprint(c) - #define WL_IW_SET_ACTIVE_SCAN (SIOCIWFIRSTPRIV+1) - #define WL_IW_GET_RSSI (SIOCIWFIRSTPRIV+3) - #define WL_IW_SET_PASSIVE_SCAN (SIOCIWFIRSTPRIV+5) -diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c -index d13fb98..97ae2a6 100644 ---- a/src/wl/sys/wl_linux.c -+++ b/src/wl/sys/wl_linux.c -@@ -797,14 +797,15 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) - pci_read_config_dword(pdev, 0x40, &val); - if ((val & 0x0000ff00) != 0) - pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); -- bar1_size = pci_resource_len(pdev, 2); -- #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) -- bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2), -- bar1_size); -- #else -- bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), -- bar1_size); -- #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */ -+ -+ bar1_size = pci_resource_len(pdev, 2); -+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) -+ bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2), -+ bar1_size); -+ #else -+ bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2), -+ bar1_size); -+ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */ - wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev, - pdev->irq, bar1_addr, bar1_size); - diff --git a/pkgs/os-specific/linux/btfs/default.nix b/pkgs/os-specific/linux/btfs/default.nix deleted file mode 100644 index 342272f42861..000000000000 --- a/pkgs/os-specific/linux/btfs/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config -, python3, boost, fuse, libtorrent-rasterbar, curl }: - -stdenv.mkDerivation rec { - pname = "btfs"; - version = "2.24"; - - src = fetchFromGitHub { - owner = "johang"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-fkS0U/MqFRQNi+n7NE4e1cnNICvfST2IQ9FMoJUyj6w="; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ - boost fuse libtorrent-rasterbar curl python3 - ]; - - meta = with lib; { - description = "A bittorrent filesystem based on FUSE"; - homepage = "https://github.com/johang/btfs"; - license = licenses.gpl3; - maintainers = with maintainers; [ rnhmjoj ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/os-specific/linux/busybox/busybox-in-store.patch b/pkgs/os-specific/linux/busybox/busybox-in-store.patch deleted file mode 100644 index 2d356b66b3ae..000000000000 --- a/pkgs/os-specific/linux/busybox/busybox-in-store.patch +++ /dev/null @@ -1,23 +0,0 @@ -Allow BusyBox to be invoked as "<something>-busybox". This is -necessary when it's run from the Nix store as <hash>-busybox during -stdenv bootstrap. ---- a/libbb/appletlib.c -+++ b/libbb/appletlib.c -@@ -947,7 +947,7 @@ void FAST_FUNC run_applet_no_and_exit(int applet_no, const char *name, char **ar - static NORETURN void run_applet_and_exit(const char *name, char **argv) - { - # if ENABLE_BUSYBOX -- if (is_prefixed_with(name, "busybox")) -+ if (strstr(name, "busybox") != 0) - exit(busybox_main(/*unused:*/ 0, argv)); - # endif - # if NUM_APPLETS > 0 -@@ -1045,7 +1045,7 @@ int main(int argc UNUSED_PARAM, char **argv) - - lbb_prepare("busybox" IF_FEATURE_INDIVIDUAL(, argv)); - # if !ENABLE_BUSYBOX -- if (argv[1] && is_prefixed_with(bb_basename(argv[0]), "busybox")) -+ if (argv[1] && strstr(bb_basename(argv[0]), "busybox") != 0) - argv++; - # endif - applet_name = argv[0]; diff --git a/pkgs/os-specific/linux/busybox/clang-cross.patch b/pkgs/os-specific/linux/busybox/clang-cross.patch deleted file mode 100644 index b2d696bfd73f..000000000000 --- a/pkgs/os-specific/linux/busybox/clang-cross.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/Makefile b/Makefile -index 6fedcffba..3385836c4 100644 ---- a/Makefile -+++ b/Makefile -@@ -271,8 +271,8 @@ export quiet Q KBUILD_VERBOSE - # Look for make include files relative to root of kernel src - MAKEFLAGS += --include-dir=$(srctree) - --HOSTCC = gcc --HOSTCXX = g++ -+HOSTCC = cc -+HOSTCXX = c++ - HOSTCFLAGS := - HOSTCXXFLAGS := - # We need some generic definitions -@@ -289,7 +289,7 @@ MAKEFLAGS += -rR - # Make variables (CC, etc...) - - AS = $(CROSS_COMPILE)as --CC = $(CROSS_COMPILE)gcc -+CC = $(CROSS_COMPILE)cc - LD = $(CC) -nostdlib - CPP = $(CC) -E - AR = $(CROSS_COMPILE)ar -diff --git a/scripts/Makefile.IMA b/scripts/Makefile.IMA -index f155108d7..185257064 100644 ---- a/scripts/Makefile.IMA -+++ b/scripts/Makefile.IMA -@@ -39,7 +39,7 @@ ifndef HOSTCC - HOSTCC = cc - endif - AS = $(CROSS_COMPILE)as --CC = $(CROSS_COMPILE)gcc -+CC = $(CROSS_COMPILE)cc - LD = $(CC) -nostdlib - CPP = $(CC) -E - AR = $(CROSS_COMPILE)ar diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix deleted file mode 100644 index 33fa7663f46d..000000000000 --- a/pkgs/os-specific/linux/busybox/default.nix +++ /dev/null @@ -1,172 +0,0 @@ -{ stdenv, lib, buildPackages, fetchurl, fetchFromGitLab -, enableStatic ? stdenv.hostPlatform.isStatic -, enableMinimal ? false -, enableAppletSymlinks ? true -# Allow forcing musl without switching stdenv itself, e.g. for our bootstrapping: -# nix build -f pkgs/top-level/release.nix stdenvBootstrapTools.x86_64-linux.dist -, useMusl ? stdenv.hostPlatform.libc == "musl", musl -, extraConfig ? "" -}: - -assert stdenv.hostPlatform.libc == "musl" -> useMusl; - -let - configParser = '' - function parseconfig { - while read LINE; do - NAME=`echo "$LINE" | cut -d \ -f 1` - OPTION=`echo "$LINE" | cut -d \ -f 2` - - if ! [[ "$NAME" =~ ^CONFIG_ ]]; then continue; fi - - echo "parseconfig: removing $NAME" - sed -i /$NAME'\(=\| \)'/d .config - - echo "parseconfig: setting $NAME=$OPTION" - echo "$NAME=$OPTION" >> .config - done - } - ''; - - libcConfig = lib.optionalString useMusl '' - CONFIG_FEATURE_UTMP n - CONFIG_FEATURE_WTMP n - ''; - - # The debian version lags behind the upstream version and also contains - # a debian-specific suffix. We only fetch the debian repository to get the - # default.script - debianVersion = "1.30.1-6"; - debianSource = fetchFromGitLab { - domain = "salsa.debian.org"; - owner = "installer-team"; - repo = "busybox"; - rev = "debian/1%${debianVersion}"; - sha256 = "sha256-6r0RXtmqGXtJbvLSD1Ma1xpqR8oXL2bBKaUE/cSENL8="; - }; - debianDispatcherScript = "${debianSource}/debian/tree/udhcpc/etc/udhcpc/default.script"; - outDispatchPath = "$out/default.script"; -in - -stdenv.mkDerivation rec { - pname = "busybox"; - version = "1.36.1"; - - # Note to whoever is updating busybox: please verify that: - # nix-build pkgs/stdenv/linux/make-bootstrap-tools.nix -A test - # still builds after the update. - src = fetchurl { - url = "https://busybox.net/downloads/${pname}-${version}.tar.bz2"; - sha256 = "sha256-uMwkyVdNgJ5yecO+NJeVxdXOtv3xnKcJ+AzeUOR94xQ="; - }; - - hardeningDisable = [ "format" "pie" ] - ++ lib.optionals enableStatic [ "fortify" ]; - - patches = [ - ./busybox-in-store.patch - (fetchurl { - name = "CVE-2022-28391.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch?id=ed92963eb55bbc8d938097b9ccb3e221a94653f4"; - sha256 = "sha256-yviw1GV+t9tbHbY7YNxEqPi7xEreiXVqbeRyf8c6Awo="; - }) - (fetchurl { - name = "CVE-2022-28391.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch?id=ed92963eb55bbc8d938097b9ccb3e221a94653f4"; - sha256 = "sha256-vl1wPbsHtXY9naajjnTicQ7Uj3N+EQ8pRNnrdsiow+w="; - }) - ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch; - - separateDebugInfo = true; - - postPatch = "patchShebangs ."; - - configurePhase = '' - export KCONFIG_NOTIMESTAMP=1 - make ${if enableMinimal then "allnoconfig" else "defconfig"} - - ${configParser} - - cat << EOF | parseconfig - - CONFIG_PREFIX "$out" - CONFIG_INSTALL_NO_USR y - - CONFIG_LFS y - - # More features for modprobe. - ${lib.optionalString (!enableMinimal) '' - CONFIG_FEATURE_MODPROBE_BLACKLIST y - CONFIG_FEATURE_MODUTILS_ALIAS y - CONFIG_FEATURE_MODUTILS_SYMBOLS y - CONFIG_MODPROBE_SMALL n - ''} - - ${lib.optionalString enableStatic '' - CONFIG_STATIC y - ''} - - ${lib.optionalString (!enableAppletSymlinks) '' - CONFIG_INSTALL_APPLET_DONT y - CONFIG_INSTALL_APPLET_SYMLINKS n - ''} - - # Use the external mount.cifs program. - CONFIG_FEATURE_MOUNT_CIFS n - CONFIG_FEATURE_MOUNT_HELPERS y - - # Set paths for console fonts. - CONFIG_DEFAULT_SETFONT_DIR "/etc/kbd" - - # Bump from 4KB, much faster I/O - CONFIG_FEATURE_COPYBUF_KB 64 - - # Set the path for the udhcpc script - CONFIG_UDHCPC_DEFAULT_SCRIPT "${outDispatchPath}" - - ${extraConfig} - CONFIG_CROSS_COMPILER_PREFIX "${stdenv.cc.targetPrefix}" - ${libcConfig} - EOF - - make oldconfig - - runHook postConfigure - ''; - - postConfigure = lib.optionalString (useMusl && stdenv.hostPlatform.libc != "musl") '' - makeFlagsArray+=("CC=${stdenv.cc.targetPrefix}cc -isystem ${musl.dev}/include -B${musl}/lib -L${musl}/lib") - ''; - - makeFlags = [ "SKIP_STRIP=y" ]; - - postInstall = '' - sed -e ' - 1 a busybox() { '$out'/bin/busybox "$@"; }\ - logger() { '$out'/bin/logger "$@"; }\ - ' ${debianDispatcherScript} > ${outDispatchPath} - chmod 555 ${outDispatchPath} - HOST_PATH=$out/bin patchShebangs --host ${outDispatchPath} - ''; - - strictDeps = true; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - buildInputs = lib.optionals (enableStatic && !useMusl && stdenv.cc.libc ? static) [ stdenv.cc.libc stdenv.cc.libc.static ]; - - enableParallelBuilding = true; - - doCheck = false; # tries to access the net - - passthru.shellPath = "/bin/ash"; - - meta = with lib; { - description = "Tiny versions of common UNIX utilities in a single small executable"; - homepage = "https://busybox.net/"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ TethysSvensson qyliss ]; - platforms = platforms.linux; - priority = 15; # below systemd (halt, init, poweroff, reboot) and coreutils - }; -} diff --git a/pkgs/os-specific/linux/busybox/sandbox-shell.nix b/pkgs/os-specific/linux/busybox/sandbox-shell.nix deleted file mode 100644 index fa70e5f91d80..000000000000 --- a/pkgs/os-specific/linux/busybox/sandbox-shell.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ busybox}: - -# Minimal shell for use as basic /bin/sh in sandbox builds -busybox.override { - enableStatic = true; - enableMinimal = true; - extraConfig = '' - CONFIG_FEATURE_FANCY_ECHO y - CONFIG_FEATURE_SH_MATH y - CONFIG_FEATURE_SH_MATH_64 y - CONFIG_FEATURE_TEST_64 y - - CONFIG_ASH y - CONFIG_ASH_OPTIMIZE_FOR_SIZE y - - CONFIG_ASH_ALIAS y - CONFIG_ASH_BASH_COMPAT y - CONFIG_ASH_CMDCMD y - CONFIG_ASH_ECHO y - CONFIG_ASH_GETOPTS y - CONFIG_ASH_INTERNAL_GLOB y - CONFIG_ASH_JOB_CONTROL y - CONFIG_ASH_PRINTF y - CONFIG_ASH_TEST y - ''; -} diff --git a/pkgs/os-specific/linux/cachefilesd/default.nix b/pkgs/os-specific/linux/cachefilesd/default.nix deleted file mode 100644 index 12b9e1cf9919..000000000000 --- a/pkgs/os-specific/linux/cachefilesd/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "cachefilesd"; - version = "0.10.10"; - - src = fetchurl { - url = "https://people.redhat.com/dhowells/fscache/${pname}-${version}.tar.bz2"; - sha256 = "00hsw4cdlm13wijlygp8f0aq6gxdp0skbxs9r2vh5ggs3s2hj0qd"; - }; - - installFlags = [ - "ETCDIR=$(out)/etc" - "SBINDIR=$(out)/sbin" - "MANDIR=$(out)/share/man" - ]; - - meta = with lib; { - description = "Local network file caching management daemon"; - mainProgram = "cachefilesd"; - homepage = "https://people.redhat.com/dhowells/fscache/"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ]; - }; -} diff --git a/pkgs/os-specific/linux/can-isotp/default.nix b/pkgs/os-specific/linux/can-isotp/default.nix deleted file mode 100644 index 7c20b74e54cb..000000000000 --- a/pkgs/os-specific/linux/can-isotp/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, kernel, fetchFromGitHub }: - -stdenv.mkDerivation { - pname = "can-isotp"; - version = "20200910"; - - hardeningDisable = [ "pic" ]; - - src = fetchFromGitHub { - owner = "hartkopp"; - repo = "can-isotp"; - rev = "21a3a59e2bfad246782896841e7af042382fcae7"; - sha256 = "1laax93czalclg7cy9iq1r7hfh9jigh7igj06y9lski75ap2vhfq"; - }; - - makeFlags = kernel.makeFlags ++ [ - "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "INSTALL_MOD_PATH=${placeholder "out"}" - ]; - - buildFlags = [ "modules" ]; - installTargets = [ "modules_install" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - meta = with lib; { - broken = kernel.kernelAtLeast "5.16"; - description = "Kernel module for ISO-TP (ISO 15765-2)"; - homepage = "https://github.com/hartkopp/can-isotp"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = [ maintainers.evck ]; - }; -} diff --git a/pkgs/os-specific/linux/can-utils/default.nix b/pkgs/os-specific/linux/can-utils/default.nix deleted file mode 100644 index 6d5b7e0d6506..000000000000 --- a/pkgs/os-specific/linux/can-utils/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "can-utils"; - version = "2023.03"; - - src = fetchFromGitHub { - owner = "linux-can"; - repo = "can-utils"; - rev = "v${version}"; - hash = "sha256-FaopviBJOmO0lXoJcdKNdtsoaJ8JrFEJGyO1aNBv+Pg="; - }; - - makeFlags = [ "PREFIX=$(out)" ]; - - meta = with lib; { - description = "CAN userspace utilities and tools (for use with Linux SocketCAN)"; - homepage = "https://github.com/linux-can/can-utils"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ bjornfor Luflosi ]; - }; -} diff --git a/pkgs/os-specific/linux/cannelloni/default.nix b/pkgs/os-specific/linux/cannelloni/default.nix deleted file mode 100644 index 86107d4f7aa0..000000000000 --- a/pkgs/os-specific/linux/cannelloni/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, lksctp-tools, sctpSupport ? true }: - -stdenv.mkDerivation (finalAttrs: { - pname = "cannelloni"; - version = "1.1.0"; - src = fetchFromGitHub { - owner = "mguentner"; - repo = "cannelloni"; - rev = "v${finalAttrs.version}"; - hash = "sha256-pAXHo9NCXMFKYcIJogytBiPkQE0nK6chU5TKiDNCKA8="; - }; - - nativeBuildInputs = [ - cmake - ]; - - buildInputs = lib.optionals sctpSupport [ lksctp-tools ]; - - cmakeFlags = [ - "-DSCTP_SUPPORT=${lib.boolToString sctpSupport}" - ]; - - meta = with lib; { - description = "A SocketCAN over Ethernet tunnel"; - mainProgram = "cannelloni"; - homepage = "https://github.com/mguentner/cannelloni"; - platforms = platforms.linux; - license = licenses.gpl2Only; - maintainers = [ maintainers.samw ]; - }; -}) diff --git a/pkgs/os-specific/linux/catfs/Cargo.lock b/pkgs/os-specific/linux/catfs/Cargo.lock deleted file mode 100644 index d79e0a9e168d..000000000000 --- a/pkgs/os-specific/linux/catfs/Cargo.lock +++ /dev/null @@ -1,651 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" - -[[package]] -name = "aho-corasick" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" -dependencies = [ - "memchr", -] - -[[package]] -name = "ansi_term" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -dependencies = [ - "winapi", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" - -[[package]] -name = "backtrace" -version = "0.3.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1931848a574faa8f7c71a12ea00453ff5effbb5f51afe7f77d7a48cace6ac1" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "bit-set" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9bf6104718e80d7b26a68fdbacff3481cfc05df670821affc7e9cbc1884400c" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f" - -[[package]] -name = "bitflags" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" - -[[package]] -name = "block-buffer" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1339a1042f5d9f295737ad4d9a6ab6bf81c84a933dba110b9200cd6d1448b814" -dependencies = [ - "byte-tools", - "generic-array", -] - -[[package]] -name = "byte-tools" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" - -[[package]] -name = "catfs" -version = "0.9.0" -dependencies = [ - "backtrace", - "chan-signal", - "clap", - "daemonize", - "env_logger", - "fd", - "fuse", - "generic-array", - "itertools", - "libc", - "log 0.3.9", - "rand 0.3.23", - "sha2", - "syslog", - "threadpool", - "time", - "twox-hash", - "xattr", -] - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "chan" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d14956a3dae065ffaa0d92ece848ab4ced88d32361e7fdfbfd653a5c454a1ed8" -dependencies = [ - "rand 0.3.23", -] - -[[package]] -name = "chan-signal" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3bb6c3bc387004ad914f0c5b7f33ace8bf7604bbec35f228b1a017f52cd3a0" -dependencies = [ - "bit-set", - "chan", - "lazy_static 0.2.11", - "libc", -] - -[[package]] -name = "clap" -version = "2.33.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" -dependencies = [ - "ansi_term", - "atty", - "bitflags", - "strsim", - "textwrap", - "unicode-width", - "vec_map", -] - -[[package]] -name = "daemonize" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0239832c1b4ca406d5ec73728cf4c7336d25cf85dd32db9e047e9e706ee0e935" -dependencies = [ - "libc", -] - -[[package]] -name = "digest" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5b29bf156f3f4b3c4f610a25ff69370616ae6e0657d416de22645483e72af0a" -dependencies = [ - "generic-array", -] - -[[package]] -name = "either" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" - -[[package]] -name = "env_logger" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" -dependencies = [ - "log 0.3.9", - "regex", -] - -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - -[[package]] -name = "fd" -version = "0.2.3" -source = "git+https://github.com/stemjail/fd-rs.git?rev=3bc3e3587f8904cce8bf29163a2021c2f5906557#3bc3e3587f8904cce8bf29163a2021c2f5906557" -dependencies = [ - "libc", -] - -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - -[[package]] -name = "fuse" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e57070510966bfef93662a81cb8aa2b1c7db0964354fa9921434f04b9e8660" -dependencies = [ - "libc", - "log 0.3.9", - "pkg-config", - "thread-scoped", - "time", -] - -[[package]] -name = "generic-array" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fceb69994e330afed50c93524be68c42fa898c2d9fd4ee8da03bd7363acd26f2" -dependencies = [ - "nodrop", - "typenum", -] - -[[package]] -name = "getrandom" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "gimli" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" - -[[package]] -name = "hermit-abi" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c30f6d0bc6b00693347368a67d41b58f2fb851215ff1da49e90fe2c5c667151" -dependencies = [ - "libc", -] - -[[package]] -name = "itertools" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3f2be4da1690a039e9ae5fd575f706a63ad5a2120f161b1d653c9da3930dd21" -dependencies = [ - "either", -] - -[[package]] -name = "lazy_static" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa7087f49d294270db4e1928fc110c976cd4b9e5a16348e0a1df09afa99e6c98" - -[[package]] -name = "log" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -dependencies = [ - "log 0.4.11", -] - -[[package]] -name = "log" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "memchr" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" - -[[package]] -name = "miniz_oxide" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9" -dependencies = [ - "adler", - "autocfg", -] - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "object" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5" - -[[package]] -name = "pkg-config" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" - -[[package]] -name = "ppv-lite86" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" - -[[package]] -name = "rand" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" -dependencies = [ - "libc", - "rand 0.4.6", -] - -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom", - "libc", - "rand_chacha", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "regex" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", - "thread_local", - "utf8-ranges", -] - -[[package]] -name = "regex-syntax" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" -dependencies = [ - "ucd-util", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" - -[[package]] -name = "sha2" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d963c78ce367df26d7ea8b8cc655c651b42e8a1e584e869c1e17dae3ccb116a" -dependencies = [ - "block-buffer", - "byte-tools", - "digest", - "fake-simd", - "generic-array", -] - -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "syslog" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbc9b0acde4f7c05fdc1cfb05239b8a53a66815dd86c67fee5aa9bfac5b4ed42" -dependencies = [ - "libc", - "log 0.3.9", - "time", - "unix_socket", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "thread-scoped" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcbb6aa301e5d3b0b5ef639c9a9c7e2f1c944f177b460c04dc24c69b1fa2bd99" - -[[package]] -name = "thread_local" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -dependencies = [ - "lazy_static 1.4.0", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "twox-hash" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bfd5b7557925ce778ff9b9ef90e3ade34c524b5ff10e239c69a42d546d2af56" -dependencies = [ - "rand 0.7.3", -] - -[[package]] -name = "typenum" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" - -[[package]] -name = "ucd-util" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85f514e095d348c279b1e5cd76795082cf15bd59b93207832abe0b1d8fed236" - -[[package]] -name = "unicode-width" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" - -[[package]] -name = "unix_socket" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564" -dependencies = [ - "cfg-if", - "libc", -] - -[[package]] -name = "utf8-ranges" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba" - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "xattr" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" -dependencies = [ - "libc", -] diff --git a/pkgs/os-specific/linux/catfs/default.nix b/pkgs/os-specific/linux/catfs/default.nix deleted file mode 100644 index 107dce2123db..000000000000 --- a/pkgs/os-specific/linux/catfs/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib, rustPlatform, fetchFromGitHub -, fetchpatch -, fuse -, pkg-config -}: - -rustPlatform.buildRustPackage rec { - pname = "catfs"; - version = "0.9.0"; - - src = fetchFromGitHub { - owner = "kahing"; - repo = pname; - rev = "v${version}"; - hash = "sha256-OvmtU2jpewP5EqPwEFAf67t8UCI1WuzUO2QQj4cH1Ak="; - }; - - patches = [ - # monitor https://github.com/kahing/catfs/issues/71 - ./fix-for-rust-1.65.diff - ]; - - cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "fd-0.2.3" = "sha256-Xps5s30urCZ8FZYce41nOZGUAk7eRyvObUS/mMx6Tfg="; - }; - }; - - nativeBuildInputs = [ pkg-config ]; - - buildInputs = [ fuse ]; - - # require fuse module to be active to run tests - # instead, run command - doCheck = false; - doInstallCheck = true; - installCheckPhase = '' - $out/bin/catfs --help > /dev/null - ''; - - meta = with lib; { - description = "Caching filesystem written in Rust"; - mainProgram = "catfs"; - homepage = "https://github.com/kahing/catfs"; - license = licenses.asl20; - platforms = platforms.linux; - maintainers = with maintainers; [ jonringer ]; - }; -} diff --git a/pkgs/os-specific/linux/catfs/fix-for-rust-1.65.diff b/pkgs/os-specific/linux/catfs/fix-for-rust-1.65.diff deleted file mode 100644 index 4208c362ebcd..000000000000 --- a/pkgs/os-specific/linux/catfs/fix-for-rust-1.65.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/catfs/file.rs b/src/catfs/file.rs -index 6e781eb..92fdd80 100644 ---- a/src/catfs/file.rs -+++ b/src/catfs/file.rs -@@ -569,7 +569,7 @@ impl Handle { - path: &dyn AsRef<Path>, - create: bool, - ) -> error::Result<()> { -- let _ = self.page_in_res.0.lock().unwrap(); -+ drop(self.page_in_res.0.lock().unwrap()); - - let mut buf = [0u8; 0]; - let mut flags = rlibc::O_RDWR; diff --git a/pkgs/os-specific/linux/cfs-zen-tweaks/default.nix b/pkgs/os-specific/linux/cfs-zen-tweaks/default.nix deleted file mode 100644 index d7a06ed6e737..000000000000 --- a/pkgs/os-specific/linux/cfs-zen-tweaks/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, makeWrapper -, gawk -}: - -stdenv.mkDerivation rec { - pname = "cfs-zen-tweaks"; - version = "1.3.0"; - - src = fetchFromGitHub { - owner = "igo95862"; - repo = "cfs-zen-tweaks"; - rev = version; - hash = "sha256-E3sNWWXm0NEqLCzFccd/nfYby+/b/MVjIHeGlDxV1W4="; - }; - - preConfigure = '' - substituteInPlace set-cfs-zen-tweaks.sh \ - --replace '$(gawk' '$(${gawk}/bin/gawk' - ''; - - preFixup = '' - chmod +x $out/lib/cfs-zen-tweaks/set-cfs-zen-tweaks.sh - ''; - - nativeBuildInputs = [ cmake ]; - - meta = with lib; { - description = "Tweak Linux CPU scheduler for desktop responsiveness"; - homepage = "https://github.com/igo95862/cfs-zen-tweaks"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ mkg20001 ]; - }; -} diff --git a/pkgs/os-specific/linux/ch9344/default.nix b/pkgs/os-specific/linux/ch9344/default.nix deleted file mode 100644 index 42c26503ea15..000000000000 --- a/pkgs/os-specific/linux/ch9344/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ stdenv, lib, fetchzip, kernel }: - -stdenv.mkDerivation rec { - pname = "ch9344"; - version = "2.0"; - - src = fetchzip { - name = "CH9344SER_LINUX.zip"; - url = "https://www.wch.cn/downloads/file/386.html#CH9344SER_LINUX.zip"; - hash = "sha256-YKNMYpap7CjhgTIpd/M9+nB11NtpwGYT/P14J6q3XZg="; - }; - - patches = [ - ./fix-incompatible-pointer-types.patch - ]; - - sourceRoot = "${src.name}/driver"; - hardeningDisable = [ "pic" ]; - nativeBuildInputs = kernel.moduleBuildDependencies; - - preBuild = '' - substituteInPlace Makefile --replace "KERNELDIR :=" "KERNELDIR ?=" - ''; - - makeFlags = [ - "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - runHook preInstall - install -D ch9344.ko $out/lib/modules/${kernel.modDirVersion}/usb/serial/ch9344.ko - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://www.wch-ic.com/"; - downloadPage = "https://www.wch.cn/downloads/CH9344SER_LINUX_ZIP.html"; - description = "WCH CH9344/CH348 UART driver"; - longDescription = '' - A kernel module for WinChipHead CH9344/CH348 USB To Multi Serial Ports controller. - ''; - # Archive contains no license. - license = licenses.unfree; - platforms = platforms.linux; - maintainers = with maintainers; [ MakiseKurisu ]; - }; -} diff --git a/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch b/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch deleted file mode 100644 index 89c95347ed65..000000000000 --- a/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/ch9344.c b/ch9344.c -index bfa10bb..76a94a7 100644 ---- a/ch9344.c -+++ b/ch9344.c -@@ -837,7 +837,11 @@ static void ch9344_tty_close(struct tty_struct *tty, struct file *filp) - } - } - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0)) -+static ssize_t ch9344_tty_write(struct tty_struct *tty, const u8 *buf, size_t count) -+#else - static int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count) -+#endif - { - struct ch9344 *ch9344 = tty->driver_data; - int stat; diff --git a/pkgs/os-specific/linux/checkpolicy/default.nix b/pkgs/os-specific/linux/checkpolicy/default.nix deleted file mode 100644 index 7e5f1e496522..000000000000 --- a/pkgs/os-specific/linux/checkpolicy/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchurl, bison, flex, libsepol }: - -stdenv.mkDerivation rec { - pname = "checkpolicy"; - version = "3.6"; - inherit (libsepol) se_url; - - src = fetchurl { - url = "${se_url}/${version}/checkpolicy-${version}.tar.gz"; - sha256 = "sha256-GzRrPN1PinihV2J7rWSjs0ecZ7ahnRXm1chpRiDq28E="; - }; - - nativeBuildInputs = [ bison flex ]; - buildInputs = [ libsepol ]; - - makeFlags = [ - "PREFIX=$(out)" - "LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a" - ]; - - meta = removeAttrs libsepol.meta ["outputsToInstall"] // { - description = "SELinux policy compiler"; - }; -} diff --git a/pkgs/os-specific/linux/checksec/0001-attempt-to-modprobe-config-before-checking-kernel.patch b/pkgs/os-specific/linux/checksec/0001-attempt-to-modprobe-config-before-checking-kernel.patch deleted file mode 100644 index 2aabbc4d4c80..000000000000 --- a/pkgs/os-specific/linux/checksec/0001-attempt-to-modprobe-config-before-checking-kernel.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 5cfb08effd21d9278e3eb8901c85112a331c3181 Mon Sep 17 00:00:00 2001 -From: Austin Seipp <aseipp@pobox.com> -Date: Tue, 26 Oct 2021 09:23:07 +0000 -Subject: [PATCH] attempt to 'modprobe config' before checking kernel - ---- - checksec | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/checksec b/checksec -index 5536250..895073b 100755 ---- a/checksec -+++ b/checksec -@@ -1059,6 +1059,7 @@ kernelcheck() { - echo_message " options that harden the kernel itself against attack.\n\n" '' '' '' - echo_message " Kernel config:\n" '' '' '{ "kernel": ' - -+ modprobe configs 2> /dev/null - if [[ ! "${1}" == "" ]]; then - kconfig="cat ${1}" - echo_message " Warning: The config ${1} on disk may not represent running kernel config!\n\n" "${1}" "<kernel config=\"${1}\"" "{ \"KernelConfig\":\"${1}\"" --- -2.33.0 - diff --git a/pkgs/os-specific/linux/checksec/0002-don-t-sanatize-the-environment.patch b/pkgs/os-specific/linux/checksec/0002-don-t-sanatize-the-environment.patch deleted file mode 100644 index bd639574f63f..000000000000 --- a/pkgs/os-specific/linux/checksec/0002-don-t-sanatize-the-environment.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 3b047ab4271919856ae0a3dee3a03a24045c0016 Mon Sep 17 00:00:00 2001 -From: Paul Meyer <49727155+katexochen@users.noreply.github.com> -Date: Mon, 13 Nov 2023 20:24:54 +0000 -Subject: [PATCH] don't sanatize the environment - ---- - checksec | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/checksec b/checksec -index 4fc3c31..135223a 100755 ---- a/checksec -+++ b/checksec -@@ -2,9 +2,6 @@ - # Do not edit this file directly, this file is generated from the files - # in the src directory. Any updates to this file will be overwritten when generated - --# sanitize the environment before run --[[ "$(env | /bin/sed -r -e '/^(PWD|SHLVL|_)=/d')" ]] && exec -c "$0" "$@" -- - # --- Modified Version --- - # Name : checksec.sh - # Version : 1.7.0 --- -2.42.0 diff --git a/pkgs/os-specific/linux/checksec/default.nix b/pkgs/os-specific/linux/checksec/default.nix deleted file mode 100644 index 488bfdff1a6a..000000000000 --- a/pkgs/os-specific/linux/checksec/default.nix +++ /dev/null @@ -1,106 +0,0 @@ -{ lib -, stdenv -, fetchpatch -, fetchFromGitHub -, makeWrapper -, testers -, runCommand - - # dependencies -, binutils -, coreutils -, curl -, elfutils -, file -, findutils -, gawk -, glibc -, gnugrep -, gnused -, openssl -, procps -, sysctl -, wget -, which - - # tests -, checksec -}: - -stdenv.mkDerivation rec { - pname = "checksec"; - version = "2.6.0"; - - src = fetchFromGitHub { - owner = "slimm609"; - repo = "checksec.sh"; - rev = version; - hash = "sha256-BWtchWXukIDSLJkFX8M/NZBvfi7vUE2j4yFfS0KEZDo="; - }; - - patches = [ - ./0001-attempt-to-modprobe-config-before-checking-kernel.patch - # Tool would sanitize the environment, removing the PATH set by our wrapper. - ./0002-don-t-sanatize-the-environment.patch - # Fix the exit code of debug_report command. Check if PR 226 was merged when upgrading version. - (fetchpatch { - url = "https://github.com/slimm609/checksec.sh/commit/851ebff6972f122fde5507f1883e268bbff1f23d.patch"; - hash = "sha256-DOcVF+oPGIR9VSbqE+EqWlcNANEvou1gV8qBvJLGLBE="; - }) - ]; - - nativeBuildInputs = [ - makeWrapper - ]; - - installPhase = - let - path = lib.makeBinPath [ - binutils - coreutils - curl - elfutils - file - findutils - gawk - gnugrep - gnused - openssl - procps - sysctl - wget - which - ]; - in - '' - mkdir -p $out/bin - install checksec $out/bin - substituteInPlace $out/bin/checksec \ - --replace "/bin/sed" "${gnused}/bin/sed" \ - --replace "/usr/bin/id" "${coreutils}/bin/id" \ - --replace "/lib/libc.so.6" "${glibc}/lib/libc.so.6" - wrapProgram $out/bin/checksec \ - --prefix PATH : ${path} - ''; - - passthru.tests = { - version = testers.testVersion { - package = checksec; - version = "v${version}"; - }; - debug-report = runCommand "debug-report" { buildInputs = [ checksec ]; } '' - checksec --debug_report || exit 1 - echo "OK" - touch $out - ''; - }; - - meta = with lib; { - description = "Tool for checking security bits on executables"; - mainProgram = "checksec"; - homepage = "https://www.trapkit.de/tools/checksec/"; - license = licenses.bsd3; - platforms = platforms.linux; - maintainers = with maintainers; [ thoughtpolice globin ]; - }; -} diff --git a/pkgs/os-specific/linux/chromium-xorg-conf/default.nix b/pkgs/os-specific/linux/chromium-xorg-conf/default.nix deleted file mode 100644 index d9608650ed9d..000000000000 --- a/pkgs/os-specific/linux/chromium-xorg-conf/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ fetchFromGitiles }: - -fetchFromGitiles { - name = "chromium-xorg-conf"; - url = "https://chromium.googlesource.com/chromiumos/platform/xorg-conf"; - rev = "26fb9d57e195c7e467616b35b17e2b5d279c1514"; - sha256 = "0643y3l3hjk4mv4lm3h9z56h990q6k11hcr10lcqppgsii0d3zcf"; -} diff --git a/pkgs/os-specific/linux/cifs-utils/default.nix b/pkgs/os-specific/linux/cifs-utils/default.nix deleted file mode 100644 index cae7901386d1..000000000000 --- a/pkgs/os-specific/linux/cifs-utils/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, lib, fetchurl, autoreconfHook, docutils, pkg-config -, libkrb5, keyutils, pam, talloc, python3 }: - -stdenv.mkDerivation rec { - pname = "cifs-utils"; - version = "7.0"; - - src = fetchurl { - url = "mirror://samba/pub/linux-cifs/cifs-utils/${pname}-${version}.tar.bz2"; - sha256 = "sha256-De+quFvT6kb/xFq0H7DQrVTQWuLPqn5QPehtTxK8gWE="; - }; - - nativeBuildInputs = [ autoreconfHook docutils pkg-config ]; - - buildInputs = [ libkrb5 keyutils pam talloc python3 ]; - - configureFlags = [ "ROOTSBINDIR=$(out)/sbin" ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - # AC_FUNC_MALLOC is broken on cross builds. - "ac_cv_func_malloc_0_nonnull=yes" - "ac_cv_func_realloc_0_nonnull=yes" - ]; - - meta = with lib; { - homepage = "https://wiki.samba.org/index.php/LinuxCIFS_utils"; - description = "Tools for managing Linux CIFS client filesystems"; - platforms = platforms.linux; - license = licenses.lgpl3; - }; -} diff --git a/pkgs/os-specific/linux/compsize/default.nix b/pkgs/os-specific/linux/compsize/default.nix deleted file mode 100644 index 441108b0e54f..000000000000 --- a/pkgs/os-specific/linux/compsize/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, btrfs-progs }: - -stdenv.mkDerivation rec { - pname = "compsize"; - version = "1.5"; - - src = fetchFromGitHub { - owner = "kilobyte"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-OX41ChtHX36lVRL7O2gH21Dfw6GPPEClD+yafR/PFm8="; - }; - - buildInputs = [ btrfs-progs ]; - - installFlags = [ - "PREFIX=${placeholder "out"}" - ]; - - preInstall = '' - mkdir -p $out/share/man/man8 - ''; - - meta = with lib; { - description = "btrfs: Find compression type/ratio on a file or set of files"; - mainProgram = "compsize"; - homepage = "https://github.com/kilobyte/compsize"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ CrazedProgrammer ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix deleted file mode 100644 index 0818850f7549..000000000000 --- a/pkgs/os-specific/linux/conky/default.nix +++ /dev/null @@ -1,156 +0,0 @@ -{ config, lib, stdenv, fetchFromGitHub, pkg-config, cmake - -# dependencies -, glib, libXinerama, catch2 - -# optional features without extra dependencies -, mpdSupport ? true -, ibmSupport ? true # IBM/Lenovo notebooks - -# optional features with extra dependencies - -# ouch, this is ugly, but this gives the man page -, docsSupport ? true, docbook2x, libxslt ? null - , man ? null, less ? null - , docbook_xsl ? null , docbook_xml_dtd_44 ? null - -, ncursesSupport ? true , ncurses ? null -, x11Support ? true , freetype, xorg -, waylandSupport ? true , pango, wayland, wayland-protocols, wayland-scanner -, xdamageSupport ? x11Support, libXdamage ? null -, doubleBufferSupport ? x11Support -, imlib2Support ? x11Support, imlib2 ? null - -, luaSupport ? true , lua ? null -, luaImlib2Support ? luaSupport && imlib2Support -, luaCairoSupport ? luaSupport && (x11Support || waylandSupport), cairo ? null -, toluapp ? null - -, wirelessSupport ? true , wirelesstools ? null -, nvidiaSupport ? false , libXNVCtrl ? null -, pulseSupport ? config.pulseaudio or false, libpulseaudio ? null - -, curlSupport ? true , curl ? null -, rssSupport ? curlSupport -, weatherMetarSupport ? curlSupport -, weatherXoapSupport ? curlSupport -, journalSupport ? true, systemd ? null -, libxml2 ? null -}: - -assert docsSupport -> docbook2x != null && libxslt != null - && man != null && less != null - && docbook_xsl != null && docbook_xml_dtd_44 != null; - -assert ncursesSupport -> ncurses != null; - -assert xdamageSupport -> x11Support && libXdamage != null; -assert imlib2Support -> x11Support && imlib2 != null; -assert luaSupport -> lua != null; -assert luaImlib2Support -> luaSupport && imlib2Support - && toluapp != null; -assert luaCairoSupport -> luaSupport && toluapp != null - && cairo != null; -assert luaCairoSupport || luaImlib2Support - -> lua.luaversion == "5.4"; - -assert wirelessSupport -> wirelesstools != null; -assert nvidiaSupport -> libXNVCtrl != null; -assert pulseSupport -> libpulseaudio != null; - -assert curlSupport -> curl != null; -assert rssSupport -> curlSupport && libxml2 != null; -assert weatherMetarSupport -> curlSupport; -assert weatherXoapSupport -> curlSupport && libxml2 != null; -assert journalSupport -> systemd != null; - -with lib; - -stdenv.mkDerivation rec { - pname = "conky"; - version = "1.19.6"; - - src = fetchFromGitHub { - owner = "brndnmtthws"; - repo = "conky"; - rev = "v${version}"; - hash = "sha256-L8YSbdk+qQl17L4IRajFD/AEWRXb2w7xH9sM9qPGrQo="; - }; - - postPatch = optionalString docsSupport '' - substituteInPlace cmake/Conky.cmake --replace "# set(RELEASE true)" "set(RELEASE true)" - - cp ${catch2}/include/catch2/catch.hpp tests/catch2/catch.hpp - '' + optionalString waylandSupport '' - substituteInPlace src/CMakeLists.txt \ - --replace 'COMMAND ''${Wayland_SCANNER}' 'COMMAND wayland-scanner' - ''; - - env = { - # For some reason -Werror is on by default, causing the project to fail compilation. - NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = "-lgcc_s"; - }; - - nativeBuildInputs = [ cmake pkg-config ] - ++ optionals docsSupport [ docbook2x docbook_xsl docbook_xml_dtd_44 libxslt man less ] - ++ optional waylandSupport wayland-scanner - ++ optional luaImlib2Support toluapp - ++ optional luaCairoSupport toluapp - ; - buildInputs = [ glib libXinerama ] - ++ optional ncursesSupport ncurses - ++ optionals x11Support [ freetype xorg.libICE xorg.libX11 xorg.libXext xorg.libXft xorg.libSM ] - ++ optionals waylandSupport [ pango wayland wayland-protocols ] - ++ optional xdamageSupport libXdamage - ++ optional imlib2Support imlib2 - ++ optional luaSupport lua - ++ optional luaImlib2Support imlib2 - ++ optional luaCairoSupport cairo - ++ optional wirelessSupport wirelesstools - ++ optional curlSupport curl - ++ optional rssSupport libxml2 - ++ optional weatherXoapSupport libxml2 - ++ optional nvidiaSupport libXNVCtrl - ++ optional pulseSupport libpulseaudio - ++ optional journalSupport systemd - ; - - cmakeFlags = [] - ++ optional docsSupport "-DMAINTAINER_MODE=ON" - ++ optional curlSupport "-DBUILD_CURL=ON" - ++ optional (!ibmSupport) "-DBUILD_IBM=OFF" - ++ optional imlib2Support "-DBUILD_IMLIB2=ON" - ++ optional luaCairoSupport "-DBUILD_LUA_CAIRO=ON" - ++ optional luaImlib2Support "-DBUILD_LUA_IMLIB2=ON" - ++ optional (!mpdSupport) "-DBUILD_MPD=OFF" - ++ optional (!ncursesSupport) "-DBUILD_NCURSES=OFF" - ++ optional rssSupport "-DBUILD_RSS=ON" - ++ optional (!x11Support) "-DBUILD_X11=OFF" - ++ optional waylandSupport "-DBUILD_WAYLAND=ON" - ++ optional xdamageSupport "-DBUILD_XDAMAGE=ON" - ++ optional doubleBufferSupport "-DBUILD_XDBE=ON" - ++ optional weatherMetarSupport "-DBUILD_WEATHER_METAR=ON" - ++ optional weatherXoapSupport "-DBUILD_WEATHER_XOAP=ON" - ++ optional wirelessSupport "-DBUILD_WLAN=ON" - ++ optional nvidiaSupport "-DBUILD_NVIDIA=ON" - ++ optional pulseSupport "-DBUILD_PULSEAUDIO=ON" - ++ optional journalSupport "-DBUILD_JOURNAL=ON" - ; - - # `make -f src/CMakeFiles/conky.dir/build.make src/CMakeFiles/conky.dir/conky.cc.o`: - # src/conky.cc:137:23: fatal error: defconfig.h: No such file or directory - enableParallelBuilding = false; - - doCheck = true; - - meta = with lib; { - homepage = "https://conky.cc"; - changelog = "https://github.com/brndnmtthws/conky/releases/tag/v${version}"; - description = "Advanced, highly configurable system monitor based on torsmo"; - mainProgram = "conky"; - maintainers = [ maintainers.guibert ]; - license = licenses.gpl3Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/conntrack-tools/default.nix b/pkgs/os-specific/linux/conntrack-tools/default.nix deleted file mode 100644 index 42741fae5b6c..000000000000 --- a/pkgs/os-specific/linux/conntrack-tools/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ fetchurl, lib, stdenv, flex, bison, pkg-config, libmnl, libnfnetlink -, libnetfilter_conntrack, libnetfilter_queue, libnetfilter_cttimeout -, libnetfilter_cthelper, libtirpc -, systemdSupport ? true, systemd -}: - -stdenv.mkDerivation rec { - pname = "conntrack-tools"; - version = "1.4.8"; - - src = fetchurl { - url = "https://www.netfilter.org/projects/conntrack-tools/files/${pname}-${version}.tar.xz"; - hash = "sha256-BnZ39MX2VkgZ547TqdSomAk16pJz86uyKkIOowq13tY="; - }; - - buildInputs = [ - libmnl libnfnetlink libnetfilter_conntrack libnetfilter_queue - libnetfilter_cttimeout libnetfilter_cthelper libtirpc - ] ++ lib.optionals systemdSupport [ - systemd - ]; - nativeBuildInputs = [ flex bison pkg-config ]; - - configureFlags = [ - (lib.enableFeature systemdSupport "systemd") - ]; - - meta = with lib; { - homepage = "http://conntrack-tools.netfilter.org/"; - description = "Connection tracking userspace tools"; - platforms = platforms.linux; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ fpletz ]; - }; -} diff --git a/pkgs/os-specific/linux/consoletools/default.nix b/pkgs/os-specific/linux/consoletools/default.nix deleted file mode 100644 index 61ddd5203cdc..000000000000 --- a/pkgs/os-specific/linux/consoletools/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, SDL, SDL2 }: - -stdenv.mkDerivation rec { - pname = "linuxconsoletools"; - version = "1.8.1"; - - src = fetchurl { - url = "mirror://sourceforge/linuxconsole/${pname}-${version}.tar.bz2"; - sha256 = "sha256-TaKXRceCt9sY9fN8Sed78WMSHdN2Hi/HY2+gy/NcJFY="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ SDL SDL2 ]; - - makeFlags = [ "DESTDIR=$(out)"]; - - installFlags = [ "PREFIX=\"\"" ]; - - meta = with lib; { - homepage = "https://sourceforge.net/projects/linuxconsole/"; - description = "A set of tools for joysticks and serial peripherals"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ pSub ebzzry ]; - - longDescription = '' - The included tools are: - - ffcfstress(1) - force-feedback stress test - ffmvforce(1) - force-feedback orientation test - ffset(1) - force-feedback configuration tool - fftest(1) - general force-feedback test - jstest(1) - joystick test - jscal(1) - joystick calibration tool - inputattach(1) - connects legacy serial devices to the input layer - ''; - }; -} diff --git a/pkgs/os-specific/linux/conspy/default.nix b/pkgs/os-specific/linux/conspy/default.nix deleted file mode 100644 index 19b1565e435d..000000000000 --- a/pkgs/os-specific/linux/conspy/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchurl, autoconf, automake, ncurses }: - -stdenv.mkDerivation rec { - pname = "conspy"; - version = "1.16"; - - src = fetchurl { - url = "mirror://sourceforge/project/conspy/conspy-${version}-1/conspy-${version}.tar.gz"; - sha256 = "02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf"; - curlOpts = " -A application/octet-stream "; - }; - - nativeBuildInputs = [ autoconf automake ]; - buildInputs = [ - ncurses - ]; - - preConfigure = '' - touch NEWS - echo "EPL 1.0" > COPYING - aclocal - automake --add-missing - autoconf - ''; - - meta = with lib; { - description = "Linux text console viewer"; - mainProgram = "conspy"; - license = licenses.epl10; - maintainers = with maintainers; [ raskin ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/cpufrequtils/default.nix b/pkgs/os-specific/linux/cpufrequtils/default.nix deleted file mode 100644 index f62d8463714e..000000000000 --- a/pkgs/os-specific/linux/cpufrequtils/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchurl, libtool, gettext }: - -stdenv.mkDerivation rec { - pname = "cpufrequtils"; - version = "008"; - - src = fetchurl { - url = "http://ftp.be.debian.org/pub/linux/utils/kernel/cpufreq/cpufrequtils-${version}.tar.gz"; - hash = "sha256-AFOgcYPQaUg70GJhS8YcuAgMV32mHN9+ExsGThoa8Yg="; - }; - - patches = [ - # I am not 100% sure that this is ok, but it breaks repeatable builds. - ./remove-pot-creation-date.patch - ]; - - patchPhase = '' - sed -e "s@= /usr/bin/@= @g" \ - -e "s@/usr/@$out/@" \ - -i Makefile - ''; - - buildInputs = [ stdenv.cc.libc.linuxHeaders libtool gettext ]; - - meta = with lib; { - description = "Tools to display or change the CPU governor settings"; - homepage = "http://ftp.be.debian.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html"; - license = licenses.gpl2Only; - platforms = [ "x86_64-linux" ]; - mainProgram = "cpufreq-set"; - }; -} diff --git a/pkgs/os-specific/linux/cpufrequtils/remove-pot-creation-date.patch b/pkgs/os-specific/linux/cpufrequtils/remove-pot-creation-date.patch deleted file mode 100644 index 0116ed9eab0c..000000000000 --- a/pkgs/os-specific/linux/cpufrequtils/remove-pot-creation-date.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -u cpufrequtils-008/Makefile cpufrequtils-008.new/Makefile ---- cpufrequtils-008/Makefile 2012-05-06 01:17:18.000000000 +0200 -+++ cpufrequtils-008.new/Makefile 2013-08-16 20:52:29.961086536 +0200 -@@ -205,7 +205,8 @@ - @xgettext --default-domain=$(PACKAGE) --add-comments \ - --keyword=_ --keyword=N_ $(UTIL_SRC) && \ - test -f $(PACKAGE).po && \ -- mv -f $(PACKAGE).po po/$(PACKAGE).pot -+ mv -f $(PACKAGE).po po/$(PACKAGE).pot && \ -+ sed -i -e'/POT-Creation/d' po/*.pot - - update-gmo: po/$(PACKAGE).pot - @for HLANG in $(LANGUAGES); do \ -@@ -217,6 +218,7 @@ - echo "msgmerge for $$HLANG failed!"; \ - rm -f po/$$HLANG.new.po; \ - fi; \ -+ sed -i -e'/POT-Creation/d' po/*.po; \ - msgfmt --statistics -o po/$$HLANG.gmo po/$$HLANG.po; \ - done; - -Common subdirectories: cpufrequtils-008/man and cpufrequtils-008.new/man -Common subdirectories: cpufrequtils-008/po and cpufrequtils-008.new/po -Common subdirectories: cpufrequtils-008/utils and cpufrequtils-008.new/utils diff --git a/pkgs/os-specific/linux/cpuid/default.nix b/pkgs/os-specific/linux/cpuid/default.nix deleted file mode 100644 index d74d25398f64..000000000000 --- a/pkgs/os-specific/linux/cpuid/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - perl, -}: - -stdenv.mkDerivation rec { - pname = "cpuid"; - version = "20240324"; - - src = fetchurl { - url = "http://etallen.com/cpuid/${pname}-${version}.src.tar.gz"; - sha256 = "sha256-3fvFudgBUbsEl16d7BMFEDQZeY0i7/LiRJCD3AhiGEw="; - }; - - # For pod2man during the build process. - nativeBuildInputs = [ perl ]; - - # As runtime dependency for cpuinfo2cpuid. - buildInputs = [ perl ]; - - # The Makefile hardcodes $(BUILDROOT)/usr as installation - # destination. Just nuke all mentions of /usr to get the right - # installation location. - patchPhase = '' - sed -i -e 's,/usr/,/,' Makefile - ''; - - installPhase = '' - make install BUILDROOT=$out - - if [ ! -x $out/bin/cpuid ]; then - echo Failed to properly patch Makefile. - exit 1 - fi - ''; - - meta = with lib; { - description = "Linux tool to dump x86 CPUID information about the CPU"; - longDescription = '' - cpuid dumps detailed information about the CPU(s) gathered from the CPUID - instruction, and also determines the exact model of CPU(s). It supports - Intel, AMD, VIA, Hygon, and Zhaoxin CPUs, as well as older Transmeta, - Cyrix, UMC, NexGen, Rise, and SiS CPUs. - ''; - homepage = "http://etallen.com/cpuid.html"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ blitz ]; - platforms = [ - "i686-linux" - "x86_64-linux" - ]; - }; -} diff --git a/pkgs/os-specific/linux/cpupower-gui/default.nix b/pkgs/os-specific/linux/cpupower-gui/default.nix deleted file mode 100644 index 02a781d1f0cf..000000000000 --- a/pkgs/os-specific/linux/cpupower-gui/default.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, buildPythonApplication -, appstream-glib -, dbus-python -, desktop-file-utils -, gettext -, glib -, gobject-introspection -, gtk3 -, hicolor-icon-theme -, libappindicator -, libhandy -, meson -, ninja -, pkg-config -, pygobject3 -, pyxdg -, systemd -, wrapGAppsHook -}: - -buildPythonApplication rec { - pname = "cpupower-gui"; - version = "1.0.0"; - - # This packages doesn't have a setup.py - format = "other"; - - src = fetchFromGitHub { - owner = "vagnum08"; - repo = pname; - rev = "v${version}"; - sha256 = "05lvpi3wgyi741sd8lgcslj8i7yi3wz7jwl7ca3y539y50hwrdas"; - }; - - patches = [ - # Fix build with 0.61, can be removed on next update - # https://hydra.nixos.org/build/171052557/nixlog/1 - (fetchpatch { - url = "https://github.com/vagnum08/cpupower-gui/commit/97f8ac02fe33e412b59d3f3968c16a217753e74b.patch"; - sha256 = "XYnpm03kq8JLMjAT73BMCJWlzz40IAuHESm715VV6G0="; - }) - ]; - - nativeBuildInputs = [ - appstream-glib - desktop-file-utils # needed for update-desktop-database - gettext - glib # needed for glib-compile-schemas - gobject-introspection # need for gtk namespace to be available - hicolor-icon-theme # needed for postinstall script - meson - ninja - pkg-config - wrapGAppsHook - - # Python packages - dbus-python - libappindicator - pygobject3 - pyxdg - ]; - - buildInputs = [ - glib - gtk3 - libhandy - ]; - - propagatedBuildInputs = [ - dbus-python - libappindicator - pygobject3 - pyxdg - ]; - - mesonFlags = [ - "-Dsystemddir=${placeholder "out"}/lib/systemd" - ]; - - preConfigure = '' - patchShebangs build-aux/meson/postinstall.py - ''; - - strictDeps = false; - dontWrapGApps = true; - - makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ]; - - postFixup = '' - wrapPythonProgramsIn $out/lib "$out $propagatedBuildInputs" - ''; - - meta = with lib; { - description = "Change the frequency limits of your cpu and its governor"; - mainProgram = "cpupower-gui"; - homepage = "https://github.com/vagnum08/cpupower-gui/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ unode ]; - }; -} diff --git a/pkgs/os-specific/linux/cpupower/default.nix b/pkgs/os-specific/linux/cpupower/default.nix deleted file mode 100644 index 7c1b031d8334..000000000000 --- a/pkgs/os-specific/linux/cpupower/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib, stdenv, buildPackages, kernel, pciutils, gettext }: - -stdenv.mkDerivation { - pname = "cpupower"; - inherit (kernel) version src patches; - - nativeBuildInputs = [ gettext ]; - buildInputs = [ pciutils ]; - - postPatch = '' - cd tools/power/cpupower - sed -i 's,/bin/true,${buildPackages.coreutils}/bin/true,' Makefile - sed -i 's,/bin/pwd,${buildPackages.coreutils}/bin/pwd,' Makefile - sed -i 's,/usr/bin/install,${buildPackages.coreutils}/bin/install,' Makefile - ''; - - makeFlags = [ - "CROSS=${stdenv.cc.targetPrefix}" - "CC=${stdenv.cc.targetPrefix}cc" - "LD=${stdenv.cc.targetPrefix}cc" - ]; - - installFlags = lib.mapAttrsToList - (n: v: "${n}dir=${placeholder "out"}/${v}") { - bin = "bin"; - sbin = "sbin"; - man = "share/man"; - include = "include"; - lib = "lib"; - locale = "share/locale"; - doc = "share/doc/cpupower"; - conf = "etc"; - bash_completion_ = "share/bash-completion/completions"; - }; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Tool to examine and tune power saving features"; - homepage = "https://www.kernel.org/"; - license = licenses.gpl2; - mainProgram = "cpupower"; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/cpustat/default.nix b/pkgs/os-specific/linux/cpustat/default.nix deleted file mode 100644 index 84a4fc53933e..000000000000 --- a/pkgs/os-specific/linux/cpustat/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, ncurses -}: - -stdenv.mkDerivation rec { - pname = "cpustat"; - version = "0.02.20"; - - src = fetchFromGitHub { - owner = "ColinIanKing"; - repo ="cpustat"; - rev = "refs/tags/V${version}"; - hash = "sha256-cdHoo2esm772q782kb7mwRwlPXGDNNLHJRbd2si5g7k="; - }; - - buildInputs = [ - ncurses - ]; - - installFlags = [ - "BINDIR=${placeholder "out"}/bin" - "MANDIR=${placeholder "out"}/share/man/man8" - "BASHDIR=${placeholder "out"}/share/bash-completion/completions" - ]; - - meta = with lib; { - description = "CPU usage monitoring tool"; - homepage = "https://github.com/ColinIanKing/cpustat"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ dtzWill ]; - mainProgram = "cpustat"; - }; -} diff --git a/pkgs/os-specific/linux/cramfsprogs/default.nix b/pkgs/os-specific/linux/cramfsprogs/default.nix deleted file mode 100644 index 59fbfed1b728..000000000000 --- a/pkgs/os-specific/linux/cramfsprogs/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv -, fetchurl -, zlib -}: - -stdenv.mkDerivation rec { - pname = "cramfsprogs"; - version = "1.1"; - - src = fetchurl { - url = "mirror://debian/pool/main/c/cramfs/cramfs_${version}.orig.tar.gz"; - sha256 = "0s13sabykbkbp0pcw8clxddwzxckyq7ywm2ial343ip7qjiaqg0k"; - }; - - # CramFs is unmaintained upstream: https://tracker.debian.org/pkg/cramfs. - # So patch the "missing include" bug ourselves. - patches = [ ./include-sysmacros.patch ]; - - makeFlags = [ - "CC=${stdenv.cc.targetPrefix}cc" - ]; - - installPhase = '' - install --target $out/bin -D cramfsck mkcramfs - ''; - - buildInputs = [ zlib ]; - - meta = with lib; { - description = "Tools to create, check, and extract content of CramFs images"; - homepage = "https://packages.debian.org/jessie/cramfsprogs"; - license = licenses.gpl2; - maintainers = with maintainers; [ pamplemousse ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch b/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch deleted file mode 100644 index 7c115a66ac90..000000000000 --- a/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/mkcramfs.c b/mkcramfs.c -index a2ef018959d..bec83c112d1 100644 ---- a/mkcramfs.c -+++ b/mkcramfs.c -@@ -22,6 +22,7 @@ - * If you change the disk format of cramfs, please update fs/cramfs/README. - */ - -+#include <sys/sysmacros.h> - #include <sys/types.h> - #include <stdio.h> - #include <sys/stat.h> diff --git a/pkgs/os-specific/linux/cramfsswap/default.nix b/pkgs/os-specific/linux/cramfsswap/default.nix deleted file mode 100644 index c696df6f0084..000000000000 --- a/pkgs/os-specific/linux/cramfsswap/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{lib, stdenv, fetchurl, zlib}: - -stdenv.mkDerivation rec { - pname = "cramfsswap"; - version = "1.4.2"; - - src = fetchurl { - url = "mirror://debian/pool/main/c/cramfsswap/${pname}_${version}.tar.xz"; - sha256 = "10mj45zx71inaa3l1d81g64f7yn1xcprvq4v4yzpdwbxqmqaikw1"; - }; - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=996964 - patches = [ ./parallel-make.patch ]; - - # Needed for cross-compilation - postPatch = '' - substituteInPlace Makefile --replace 'strip ' '$(STRIP) ' - ''; - - buildInputs = [zlib]; - - installPhase = '' - install --target $out/bin -D cramfsswap - ''; - - meta = with lib; { - description = "Swap endianess of a cram filesystem (cramfs)"; - mainProgram = "cramfsswap"; - homepage = "https://packages.debian.org/sid/utils/cramfsswap"; - license = licenses.gpl2Only; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/cramfsswap/parallel-make.patch b/pkgs/os-specific/linux/cramfsswap/parallel-make.patch deleted file mode 100644 index 280c5286b79a..000000000000 --- a/pkgs/os-specific/linux/cramfsswap/parallel-make.patch +++ /dev/null @@ -1,14 +0,0 @@ -Fix parallel build failure bya dding the dependency. - -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=996964 ---- a/Makefile -+++ b/Makefile -@@ -6,7 +6,7 @@ debian: cramfsswap - cramfsswap: cramfsswap.c - $(CC) -Wall -g -O $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o cramfsswap cramfsswap.c -lz - --strip: -+strip: cramfsswap - strip cramfsswap - - install: cramfsswap diff --git a/pkgs/os-specific/linux/criu/default.nix b/pkgs/os-specific/linux/criu/default.nix deleted file mode 100644 index 66e3303890b0..000000000000 --- a/pkgs/os-specific/linux/criu/default.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, protobuf, protobufc, asciidoc, iptables -, xmlto, docbook_xsl, libpaper, libnl, libcap, libnet, pkg-config, iproute2, gzip -, which, python3, makeWrapper, docbook_xml_dtd_45, perl, nftables, libbsd, gnutar -, buildPackages -}: - -stdenv.mkDerivation rec { - pname = "criu"; - version = "3.19"; - - src = fetchFromGitHub { - owner = "checkpoint-restore"; - repo = pname; - rev = "v${version}"; - hash = "sha256-S0nxBHfm7tWmW5PhSDhSAgy1uDa0RD5GTNpMDUHKqwY="; - }; - - enableParallelBuilding = true; - depsBuildBuild = [ protobufc buildPackages.stdenv.cc ]; - nativeBuildInputs = [ - pkg-config - asciidoc - xmlto - libpaper - docbook_xsl - which - makeWrapper - docbook_xml_dtd_45 - python3 - python3.pkgs.wrapPython - perl - ]; - buildInputs = [ - protobuf - libnl - libcap - libnet - nftables - libbsd - ]; - propagatedBuildInputs = [ - protobufc - ] ++ (with python3.pkgs; [ - python - python3.pkgs.protobuf - ]); - - postPatch = '' - substituteInPlace ./Documentation/Makefile \ - --replace "2>/dev/null" "" \ - --replace "-m custom.xsl" "-m custom.xsl --skip-validation -x ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl" - substituteInPlace ./Makefile --replace "head-name := \$(shell git tag -l v\$(CRIU_VERSION))" "head-name = ${version}.0" - ln -sf ${protobuf}/include/google/protobuf/descriptor.proto ./images/google/protobuf/descriptor.proto - ''; - - makeFlags = let - # criu's Makefile infrastructure expects to be passed a target architecture - # which neither matches the config-tuple's first part, nor the - # targetPlatform.linuxArch attribute. Thus we take the latter and map it - # onto the expected string: - linuxArchMapping = { - "x86_64" = "x86"; - "arm" = "arm"; - "arm64" = "aarch64"; - "powerpc" = "ppc64"; - "s390" = "s390"; - "mips" = "mips"; - }; - in [ - "PREFIX=$(out)" - "ASCIIDOC=${buildPackages.asciidoc}/bin/asciidoc" - "XMLTO=${buildPackages.xmlto}/bin/xmlto" - ] ++ (lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "ARCH=${linuxArchMapping."${stdenv.hostPlatform.linuxArch}"}" - "CROSS_COMPILE=${stdenv.hostPlatform.config}-" - ]); - - outputs = [ "out" "dev" "man" ]; - - preBuild = '' - # No idea why but configure scripts break otherwise. - export SHELL="" - ''; - - hardeningDisable = [ "stackprotector" "fortify" ]; - # dropping fortify here as well as package uses it by default: - # command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror] - - postFixup = '' - wrapProgram $out/bin/criu \ - --set-default CR_IPTABLES ${iptables}/bin/iptables \ - --set-default CR_IP_TOOL ${iproute2}/bin/ip \ - --prefix PATH : ${lib.makeBinPath [ gnutar gzip ]} - wrapPythonPrograms - ''; - - meta = with lib; { - description = "Userspace checkpoint/restore for Linux"; - homepage = "https://criu.org"; - license = licenses.gpl2; - platforms = [ "x86_64-linux" "aarch64-linux" "armv7l-linux" ]; - maintainers = [ maintainers.thoughtpolice ]; - }; -} diff --git a/pkgs/os-specific/linux/cryptodev/default.nix b/pkgs/os-specific/linux/cryptodev/default.nix deleted file mode 100644 index cacef99afd74..000000000000 --- a/pkgs/os-specific/linux/cryptodev/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ fetchFromGitHub, lib, stdenv, kernel ? false }: - -stdenv.mkDerivation rec { - pname = "cryptodev-linux-1.13"; - name = "${pname}-${kernel.version}"; - - src = fetchFromGitHub { - owner = "cryptodev-linux"; - repo = "cryptodev-linux"; - rev = pname; - hash = "sha256-EzTPoKYa+XWOAa/Dk7ru02JmlymHeXVX7RMmEoJ1OT0="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - hardeningDisable = [ "pic" ]; - - makeFlags = kernel.makeFlags ++ [ - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "INSTALL_MOD_PATH=$(out)" - "prefix=$(out)" - ]; - - meta = { - description = "Device that allows access to Linux kernel cryptographic drivers"; - homepage = "http://cryptodev-linux.org/"; - maintainers = with lib.maintainers; [ moni ]; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix deleted file mode 100644 index 0e32966615ac..000000000000 --- a/pkgs/os-specific/linux/cryptsetup/default.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ lib, stdenv, fetchurl, lvm2, json_c, asciidoctor -, openssl, libuuid, pkg-config, popt, nixosTests -, libargon2, withInternalArgon2 ? false - - # Programs enabled by default upstream are implicitly enabled unless - # manually set to false. -, programs ? {} - # The release tarballs contain precomputed manpage files, so we don't need - # to run asciidoctor on the man sources. By avoiding asciidoctor, we make - # the bare NixOS build hash independent of changes to the ruby ecosystem, - # saving mass-rebuilds. -, rebuildMan ? false -}: - -stdenv.mkDerivation rec { - pname = "cryptsetup"; - version = "2.7.1"; - - outputs = [ "bin" "out" "dev" "man" ]; - separateDebugInfo = true; - - src = fetchurl { - url = "mirror://kernel/linux/utils/cryptsetup/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - hash = "sha256-2l0UGeKobgGqMv15WCzVTSCIV8tUG8ov1Cal/xqqu8M="; - }; - - patches = [ - # Allow reading tokens from a relative path, see #167994 - ./relative-token-path.patch - ]; - - postPatch = '' - patchShebangs tests - - # O_DIRECT is filesystem dependent and fails in a sandbox (on tmpfs) - # and on several filesystem types (btrfs, zfs) without sandboxing. - # Remove it, see discussion in #46151 - substituteInPlace tests/unit-utils-io.c --replace "| O_DIRECT" "" - ''; - - NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s"; - - configureFlags = [ - "--with-crypto_backend=openssl" - "--disable-ssh-token" - ] ++ lib.optionals (!rebuildMan) [ - "--disable-asciidoc" - ] ++ lib.optionals (!withInternalArgon2) [ - "--enable-libargon2" - ] ++ lib.optionals stdenv.hostPlatform.isStatic [ - "--disable-external-tokens" - # We have to override this even though we're removing token - # support, because the path still gets included in the binary even - # though it isn't used. - "--with-luks2-external-tokens-path=/" - ] ++ (with lib; mapAttrsToList (flip enableFeature)) programs; - - nativeBuildInputs = [ pkg-config ] ++ lib.optionals rebuildMan [ asciidoctor ]; - buildInputs = [ lvm2 json_c openssl libuuid popt ] ++ lib.optional (!withInternalArgon2) libargon2; - - # The test [7] header backup in compat-test fails with a mysterious - # "out of memory" error, even though tons of memory is available. - # Issue filed upstream: https://gitlab.com/cryptsetup/cryptsetup/-/issues/763 - doCheck = !stdenv.hostPlatform.isMusl; - - passthru = { - tests = { - nixos = - lib.optionalAttrs stdenv.hostPlatform.isLinux ( - lib.recurseIntoAttrs ( - lib.filterAttrs - (name: _value: lib.hasPrefix "luks" name) - nixosTests.installer - ) - ); - }; - }; - - meta = { - homepage = "https://gitlab.com/cryptsetup/cryptsetup/"; - description = "LUKS for dm-crypt"; - changelog = "https://gitlab.com/cryptsetup/cryptsetup/-/raw/v${version}/docs/v${version}-ReleaseNotes"; - license = lib.licenses.gpl2; - mainProgram = "cryptsetup"; - maintainers = with lib.maintainers; [ raitobezarius ]; - platforms = with lib.platforms; linux; - }; -} diff --git a/pkgs/os-specific/linux/cryptsetup/relative-token-path.patch b/pkgs/os-specific/linux/cryptsetup/relative-token-path.patch deleted file mode 100644 index dffd0ba3bb52..000000000000 --- a/pkgs/os-specific/linux/cryptsetup/relative-token-path.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 4f95ab1f8110a8ab9d7b0e192731ce467f6e5c26 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Janne=20He=C3=9F?= <janne@hess.ooo> -Date: Sun, 4 Sep 2022 11:15:02 -0600 -Subject: [PATCH] Allow loading token handlers from the default search path - -Since [1] landed in cryptsetup, token handlers (libcryptsetup-token-*.so) -are loaded from a fixed path defined at compile-time. This is -problematic with NixOS since it introduces a dependency cycle -between cryptsetup and systemd. - -This downstream patch [2] allows loading token plugins from the -default library search path. This approach is not accepted upstream [3] -due to security concerns, but the potential attack vectors require -root access and they are sufficiently addressed: - -* cryptsetup could be used as a setuid binary (not used in NixOS). - In this case, LD_LIBRARY_PATH is ignored because of secure-execution - mode. -* cryptsetup running as root could lead to a malicious token handler - being loaded through LD_LIBRARY_PATH. However, fixing the path - doesn't prevent the same malicious .so being loaded through LD_PRELOAD. - -[1] https://gitlab.com/cryptsetup/cryptsetup/-/commit/5b9e98f94178d3cd179d9f6e2a0a68c7d9eb6507 -[2] https://github.com/NixOS/nixpkgs/issues/167994#issuecomment-1094249369 -[3] https://gitlab.com/cryptsetup/cryptsetup/-/issues/733 ---- - lib/luks2/luks2_token.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/lib/luks2/luks2_token.c b/lib/luks2/luks2_token.c -index 26467253..6f8329f0 100644 ---- a/lib/luks2/luks2_token.c -+++ b/lib/luks2/luks2_token.c -@@ -151,12 +151,10 @@ crypt_token_load_external(struct crypt_device *cd, const char *name, struct cryp - - token = &ret->u.v2; - -- r = snprintf(buf, sizeof(buf), "%s/libcryptsetup-token-%s.so", crypt_token_external_path(), name); -+ r = snprintf(buf, sizeof(buf), "libcryptsetup-token-%s.so", name); - if (r < 0 || (size_t)r >= sizeof(buf)) - return -EINVAL; - -- assert(*buf == '/'); -- - log_dbg(cd, "Trying to load %s.", buf); - - h = dlopen(buf, RTLD_LAZY); --- -2.37.2 - diff --git a/pkgs/os-specific/linux/cshatag/default.nix b/pkgs/os-specific/linux/cshatag/default.nix deleted file mode 100644 index 70fd5ccbb695..000000000000 --- a/pkgs/os-specific/linux/cshatag/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, buildGoModule, fetchFromGitHub }: - -buildGoModule rec { - pname = "cshatag"; - version = "2.1.0"; - - src = fetchFromGitHub { - owner = "rfjakob"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-Ez8zGVX10A7xuggkh3n7w/qzda8f4t6EgSc9l6SPEZQ="; - }; - - vendorHash = "sha256-QTnwltsoyUbH4vob5go1KBrb9gwxaaPNW3S4sxVls3k="; - - ldflags = [ "-s" "-w" ]; - - postInstall = '' - # Install man page - install -D -m755 -t $out/share/man/man1/ cshatag.1 - ''; - - meta = with lib; { - description = "A tool to detect silent data corruption"; - mainProgram = "cshatag"; - homepage = "https://github.com/rfjakob/cshatag"; - license = licenses.mit; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/dbus-broker/default.nix b/pkgs/os-specific/linux/dbus-broker/default.nix deleted file mode 100644 index 784024f8754d..000000000000 --- a/pkgs/os-specific/linux/dbus-broker/default.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, docutils -, meson -, ninja -, pkg-config -, dbus -, linuxHeaders -, systemd -}: - -let - - dep = { pname, version, hash, rev ? "v${version}", buildInputs ? [ ] }: - stdenv.mkDerivation { - inherit pname version; - src = fetchFromGitHub { - owner = "c-util"; - repo = pname; - inherit hash rev; - }; - nativeBuildInputs = [ meson ninja pkg-config ]; - inherit buildInputs; - }; - - # These libraries are not used outside of dbus-broker. - # - # If that changes, we can always break them out, but they are essentially - # part of the dbus-broker project, just in separate repositories. - c-dvar = dep { pname = "c-dvar"; version = "1.1.0"; hash = "sha256-p/C+BktclVseCtZJ1Q/YK03vP2ClnYRLB1Vmj2OQJD4="; buildInputs = [ c-stdaux c-utf8 ]; }; - c-ini = dep { pname = "c-ini"; version = "1.1.0"; hash = "sha256-wa7aNl20hkb/83c4AkQ/0YFDdmBs4XGW+WLUtBWIC98="; buildInputs = [ c-list c-rbtree c-stdaux c-utf8 ]; }; - c-list = dep { pname = "c-list"; version = "3.1.0"; hash = "sha256-fp3EAqcbFCLaT2EstLSzwP2X13pi2EFpFAullhoCtpw="; }; - c-rbtree = dep { pname = "c-rbtree"; version = "3.2.0"; hash = "sha256-dTMeawhPLRtHvMXfXCrT5iCdoh7qS3v+raC6c+t+X38="; buildInputs = [ c-stdaux ]; }; - c-shquote = dep { pname = "c-shquote"; version = "1.1.0"; hash = "sha256-z6hpQ/kpCYAngMNfxLkfsxaGtvP4yBMigX1lGpIIzMQ="; buildInputs = [ c-stdaux ]; }; - c-stdaux = dep { pname = "c-stdaux"; version = "1.5.0"; hash = "sha256-MsnuEyVCmOIr/q6I1qyPsNXp48jxIEcXoYLHbOAZtW0="; }; - c-utf8 = dep { pname = "c-utf8"; version = "1.1.0"; hash = "sha256-9vBYylbt1ypJwIAQJd/oiAueh+4VYcn/KzofQuhUea0="; buildInputs = [ c-stdaux ]; }; - -in - -stdenv.mkDerivation (finalAttrs: { - pname = "dbus-broker"; - version = "36"; - - src = fetchFromGitHub { - owner = "bus1"; - repo = "dbus-broker"; - rev = "v${finalAttrs.version}"; - hash = "sha256-5dAMKjybqrHG57vArbtWEPR/svSj2ION75JrjvnnpVM="; - }; - - patches = [ - ./paths.patch - ./disable-test.patch - ]; - - nativeBuildInputs = [ docutils meson ninja pkg-config ]; - - buildInputs = [ - c-dvar - c-ini - c-list - c-rbtree - c-shquote - c-stdaux - c-utf8 - dbus - linuxHeaders - systemd - ]; - - mesonFlags = [ - # while we technically support 4.9 and 4.14, the NixOS module will throw an - # error when using a kernel that's too old - "-D=linux-4-17=true" - "-D=system-console-users=gdm,sddm,lightdm" - ]; - - PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system"; - PKG_CONFIG_SYSTEMD_SYSTEMDUSERUNITDIR = "${placeholder "out"}/lib/systemd/user"; - PKG_CONFIG_SYSTEMD_CATALOGDIR = "${placeholder "out"}/lib/systemd/catalog"; - - postInstall = '' - install -Dm444 $src/README.md $out/share/doc/dbus-broker/README - - sed -i $out/lib/systemd/{system,user}/dbus-broker.service \ - -e 's,^ExecReload.*busctl,ExecReload=${systemd}/bin/busctl,' - ''; - - doCheck = true; - - meta = with lib; { - description = "Linux D-Bus Message Broker"; - homepage = "https://github.com/bus1/dbus-broker/wiki"; - license = licenses.asl20; - maintainers = with maintainers; [ peterhoeg ]; - platforms = platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/dbus-broker/disable-test.patch b/pkgs/os-specific/linux/dbus-broker/disable-test.patch deleted file mode 100644 index 14faf1907cc2..000000000000 --- a/pkgs/os-specific/linux/dbus-broker/disable-test.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/src/meson.build b/src/meson.build -index 4b9bc71..221ed5c 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -202,9 +202,6 @@ test('Error Handling', test_error, suite: 'unit') - test_fdlist = executable('test-fdlist', sources: ['util/test-fdlist.c'], kwargs: test_kwargs) - test('Utility File-Desciptor Lists', test_fdlist, suite: 'unit') - --test_fs = executable('test-fs', sources: ['util/test-fs.c'], kwargs: test_kwargs) --test('File System Helpers', test_fs, suite: 'unit') -- - test_match = executable('test-match', sources: ['bus/test-match.c'], kwargs: test_kwargs) - test('D-Bus Match Handling', test_match, suite: 'unit') - diff --git a/pkgs/os-specific/linux/dbus-broker/paths.patch b/pkgs/os-specific/linux/dbus-broker/paths.patch deleted file mode 100644 index 577270d30dce..000000000000 --- a/pkgs/os-specific/linux/dbus-broker/paths.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/src/launch/launcher.c b/src/launch/launcher.c -index 5bf5cf5..06ce7f4 100644 ---- a/src/launch/launcher.c -+++ b/src/launch/launcher.c -@@ -924,9 +924,7 @@ static int launcher_load_standard_session_services(Launcher *launcher, NSSCache - - static int launcher_load_standard_system_services(Launcher *launcher, NSSCache *nss_cache) { - static const char *default_data_dirs[] = { -- "/usr/local/share", -- "/usr/share", -- "/lib", -+ "/run/current-system/sw/share", - NULL, - }; - const char *suffix = "dbus-1/system-services"; -@@ -1012,9 +1010,9 @@ static int launcher_parse_config(Launcher *launcher, ConfigRoot **rootp, NSSCach - if (launcher->configfile) - configfile = launcher->configfile; - else if (launcher->user_scope) -- configfile = "/usr/share/dbus-1/session.conf"; -+ configfile = "/etc/dbus-1/session.conf"; - else -- configfile = "/usr/share/dbus-1/system.conf"; -+ configfile = "/etc/dbus-1/system.conf"; - - config_parser_init(&parser); - diff --git a/pkgs/os-specific/linux/dcgm/default.nix b/pkgs/os-specific/linux/dcgm/default.nix deleted file mode 100644 index a7f3511b3f4b..000000000000 --- a/pkgs/os-specific/linux/dcgm/default.nix +++ /dev/null @@ -1,140 +0,0 @@ -{ lib -, gcc11Stdenv -, fetchFromGitHub -, autoAddDriverRunpath -, catch2 -, cmake -, cudaPackages_10_2 -, cudaPackages_11_8 -, cudaPackages_12 -, fmt_9 -, git -, jsoncpp -, libevent -, plog -, python3 -, symlinkJoin -, tclap_1_4 -, yaml-cpp -}: -let - # Flags copied from DCGM's libevent build script - libevent-nossl = libevent.override { sslSupport = false; }; - libevent-nossl-static = libevent-nossl.overrideAttrs (super: { - CFLAGS = "-Wno-cast-function-type -Wno-implicit-fallthrough -fPIC"; - CXXFLAGS = "-Wno-cast-function-type -Wno-implicit-fallthrough -fPIC"; - configureFlags = super.configureFlags ++ [ "--disable-shared" "--with-pic" ]; - }); - - jsoncpp-static = jsoncpp.override { enableStatic = true; }; - - # DCGM depends on 3 different versions of CUDA at the same time. - # The runtime closure, thankfully, is quite small because most things - # are statically linked. - cudaPackageSetByVersion = [ - { - version = "10"; - # Nixpkgs cudaPackages_10 doesn't have redist packages broken out. - pkgSet = [ - cudaPackages_10_2.cudatoolkit - cudaPackages_10_2.cudatoolkit.lib - ]; - } - { - version = "11"; - pkgSet = getCudaPackages cudaPackages_11_8; - } - { - version = "12"; - pkgSet = getCudaPackages cudaPackages_12; - } - ]; - - # Select needed redist packages from cudaPackages - # C.f. https://github.com/NVIDIA/DCGM/blob/7e1012302679e4bb7496483b32dcffb56e528c92/dcgmbuild/scripts/0080_cuda.sh#L24-L39 - getCudaPackages = p: with p; [ - cuda_cccl - cuda_cudart - cuda_nvcc - cuda_nvml_dev - libcublas - libcufft - libcurand - ]; - - # Builds CMake code to add CUDA paths for include and lib. - mkAppendCudaPaths = { version, pkgSet }: - let - # The DCGM CMake assumes that the folder containing cuda.h contains all headers, so we must - # combine everything together for headers to work. - # It would be more convenient to use symlinkJoin on *just* the include subdirectories - # of each package, but not all of them have an include directory and making that work - # is more effort than it's worth for this temporary, build-time package. - combined = symlinkJoin { - name = "cuda-combined-${version}"; - paths = pkgSet; - }; - # The combined package above breaks the build for some reason so we just configure - # each package's library path. - libs = lib.concatMapStringsSep " " (x: ''"${x}/lib"'') pkgSet; - in '' - list(APPEND Cuda${version}_INCLUDE_PATHS "${combined}/include") - list(APPEND Cuda${version}_LIB_PATHS ${libs}) - ''; - -# gcc11 is required by DCGM's very particular build system -# C.f. https://github.com/NVIDIA/DCGM/blob/7e1012302679e4bb7496483b32dcffb56e528c92/dcgmbuild/build.sh#L22 -in gcc11Stdenv.mkDerivation rec { - pname = "dcgm"; - version = "3.2.5"; # N.B: If you change this, be sure prometheus-dcgm-exporter supports this version. - - src = fetchFromGitHub { - owner = "NVIDIA"; - repo = "DCGM"; - rev = "refs/tags/v${version}"; - hash = "sha256-iMyYOr3dSpdRV2S/TlB/tEOAWYhK09373ZRbd5vzogQ="; - }; - - # Add our paths to the CUDA paths so FindCuda.cmake can find them. - EXTRA_CUDA_PATHS = lib.concatMapStringsSep "\n" mkAppendCudaPaths cudaPackageSetByVersion; - prePatch = '' - echo "$EXTRA_CUDA_PATHS"$'\n'"$(cat cmake/FindCuda.cmake)" > cmake/FindCuda.cmake - ''; - - hardeningDisable = [ "all" ]; - - strictDeps = true; - - nativeBuildInputs = [ - # autoAddDriverRunpath does not actually depend on or incur any dependency - # of cudaPackages. It merely adds an impure, non-Nix PATH to the RPATHs of - # executables that need to use cuda at runtime. - autoAddDriverRunpath - - cmake - git - python3 - ]; - - buildInputs = [ - plog.dev # header-only - tclap_1_4 # header-only - - catch2 - fmt_9 - jsoncpp-static - libevent-nossl-static - yaml-cpp - ]; - - disallowedReferences = lib.concatMap (x: x.pkgSet) cudaPackageSetByVersion; - - meta = with lib; { - description = "Data Center GPU Manager (DCGM) is a daemon that allows users to monitor NVIDIA data-center GPUs."; - homepage = "https://developer.nvidia.com/dcgm"; - license = licenses.asl20; - maintainers = teams.deshaw.members; - mainProgram = "dcgmi"; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ddcci/default.nix b/pkgs/os-specific/linux/ddcci/default.nix deleted file mode 100644 index ce435b3874f3..000000000000 --- a/pkgs/os-specific/linux/ddcci/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, fetchFromGitLab, kernel }: - -stdenv.mkDerivation rec { - pname = "ddcci-driver"; - version = "0.4.4"; - name = "${pname}-${kernel.version}-${version}"; - - src = fetchFromGitLab { - owner = "${pname}-linux"; - repo = "${pname}-linux"; - rev = "v${version}"; - hash = "sha256-4pCfXJcteWwU6cK8OOSph4XlhKTk289QqLxsSWY7cac="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - prePatch = '' - substituteInPlace ./ddcci/Makefile \ - --replace '"$(src)"' '$(PWD)' \ - --replace depmod \# - substituteInPlace ./ddcci-backlight/Makefile \ - --replace '"$(src)"' '$(PWD)' \ - --replace depmod \# - ''; - - makeFlags = kernel.makeFlags ++ [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "KVER=${kernel.modDirVersion}" - "KERNEL_MODLIB=$(out)/lib/modules/${kernel.modDirVersion}" - "INCLUDEDIR=$(out)/include" - ]; - - meta = with lib; { - description = "Kernel module driver for DDC/CI monitors"; - homepage = "https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ ]; - platforms = platforms.linux; - broken = kernel.kernelOlder "5.1"; - }; -} diff --git a/pkgs/os-specific/linux/dddvb/default.nix b/pkgs/os-specific/linux/dddvb/default.nix deleted file mode 100644 index 925edb61472a..000000000000 --- a/pkgs/os-specific/linux/dddvb/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, kernel -}: - -stdenv.mkDerivation rec { - pname = "dddvb"; - version = "0.9.38-pre.6"; - - src = fetchFromGitHub { - owner = "DigitalDevices"; - repo = "dddvb"; - rev = "refs/tags/${version}"; - hash = "sha256-bt/vMnqRWDDChZ6R4JbCr77cz3nlSPkx6siC9KLSEqs="; - }; - - patches = [ - (fetchpatch { - # pci_*_dma_mask no longer exists in 5.18 - url = "https://github.com/DigitalDevices/dddvb/commit/871821d6a0be147313bb52570591ce3853b3d370.patch"; - hash = "sha256-wY05HrsduvsIdp/KpS9NWfL3hR9IvGjuNCDljFn7dd0="; - }) - ]; - - postPatch = '' - sed -i '/depmod/d' Makefile - ''; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - INSTALL_MOD_PATH = placeholder "out"; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://github.com/DigitalDevices/dddvb"; - description = "ddbridge linux driver"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ ]; - platforms = platforms.linux; - broken = lib.versionAtLeast kernel.version "6.2"; - }; -} diff --git a/pkgs/os-specific/linux/decklink/default.nix b/pkgs/os-specific/linux/decklink/default.nix deleted file mode 100644 index a2811ddae8a5..000000000000 --- a/pkgs/os-specific/linux/decklink/default.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ stdenv -, lib -, fetchpatch -, blackmagic-desktop-video -, kernel -}: - -stdenv.mkDerivation rec { - pname = "decklink"; - - # the download is a horrible curl mess. we reuse it between the kernel module - # and desktop service, since the version of the two have to match anyways. - # See pkgs/tools/video/blackmagic-desktop-video/default.nix for more. - inherit (blackmagic-desktop-video) src version; - - KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; - INSTALL_MOD_PATH = placeholder "out"; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - patches = lib.optionals (lib.versionAtLeast kernel.version "6.8") [ - (fetchpatch { - name = "decklink-addMutex.patch"; - url = "https://aur.archlinux.org/cgit/aur.git/plain/01-addMutex.patch?h=decklink&id=132ce45a76e230cbfec4a3daac237ffe9b8a377a"; - sha256 = "sha256-YLIjO3wMrMoEZwMX5Fs9W4uRu9Xo8klzsjfhxS2wRfQ="; - }) - (fetchpatch { - name = "decklink-changeMaxOrder.patch"; - url = "https://aur.archlinux.org/cgit/aur.git/plain/02-changeMaxOrder.patch?h=decklink&id=132ce45a76e230cbfec4a3daac237ffe9b8a377a"; - sha256 = "sha256-/erUVYjpTuyaQaCSzSxwKgNocxijc1uNaUjnrJEMa6g="; - }) - ]; - - - postUnpack = let - arch = stdenv.hostPlatform.uname.processor; - in '' - tar xf Blackmagic_Desktop_Video_Linux_${lib.head (lib.splitString "a" version)}/other/${arch}/desktopvideo-${version}-${arch}.tar.gz - moduleRoot=$NIX_BUILD_TOP/desktopvideo-${version}-${stdenv.hostPlatform.uname.processor}/usr/src - sourceRoot=$moduleRoot - ''; - - - buildPhase = '' - runHook preBuild - - make -C $moduleRoot/blackmagic-${version} -j$NIX_BUILD_CORES - make -C $moduleRoot/blackmagic-io-${version} -j$NIX_BUILD_CORES - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - make -C $KERNELDIR M=$moduleRoot/blackmagic-${version} modules_install - make -C $KERNELDIR M=$moduleRoot/blackmagic-io-${version} modules_install - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://www.blackmagicdesign.com/support/family/capture-and-playback"; - maintainers = [ maintainers.hexchen ]; - license = licenses.unfree; - description = "Kernel module for the Blackmagic Design Decklink cards"; - sourceProvenance = with lib.sourceTypes; [ binaryFirmware ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/device-tree/default.nix b/pkgs/os-specific/linux/device-tree/default.nix deleted file mode 100644 index a15a9e32137c..000000000000 --- a/pkgs/os-specific/linux/device-tree/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ lib, stdenv, stdenvNoCC, dtc }: - -with lib; { - # Compile single Device Tree overlay source - # file (.dts) into its compiled variant (.dtb) - compileDTS = ({ - name, - dtsFile, - includePaths ? [], - extraPreprocessorFlags ? [] - }: stdenv.mkDerivation { - inherit name; - - nativeBuildInputs = [ dtc ]; - - buildCommand = - let - includeFlagsStr = lib.concatMapStringsSep " " (includePath: "-I${includePath}") includePaths; - extraPreprocessorFlagsStr = lib.concatStringsSep " " extraPreprocessorFlags; - in - '' - $CC -E -nostdinc ${includeFlagsStr} -undef -D__DTS__ -x assembler-with-cpp ${extraPreprocessorFlagsStr} ${dtsFile} | \ - dtc -I dts -O dtb -@ -o $out - ''; - }); - - applyOverlays = (base: overlays': stdenvNoCC.mkDerivation { - name = "device-tree-overlays"; - nativeBuildInputs = [ dtc ]; - buildCommand = let - overlays = toList overlays'; - in '' - mkdir -p $out - cd "${base}" - find -L . -type f -name '*.dtb' -print0 \ - | xargs -0 cp -v --no-preserve=mode --target-directory "$out" --parents - - for dtb in $(find "$out" -type f -name '*.dtb'); do - dtbCompat=$(fdtget -t s "$dtb" / compatible 2>/dev/null || true) - # skip files without `compatible` string - test -z "$dtbCompat" && continue - - ${flip (concatMapStringsSep "\n") overlays (o: '' - overlayCompat="$(fdtget -t s "${o.dtboFile}" / compatible)" - - # skip incompatible and non-matching overlays - if [[ ! "$dtbCompat" =~ "$overlayCompat" ]]; then - echo "Skipping overlay ${o.name}: incompatible with $(basename "$dtb")" - elif ${if (o.filter == null) then "false" else '' - [[ "''${dtb//${o.filter}/}" == "$dtb" ]] - ''} - then - echo "Skipping overlay ${o.name}: filter does not match $(basename "$dtb")" - else - echo -n "Applying overlay ${o.name} to $(basename "$dtb")... " - mv "$dtb"{,.in} - fdtoverlay -o "$dtb" -i "$dtb.in" "${o.dtboFile}" - echo "ok" - rm "$dtb.in" - fi - '')} - - done - ''; - }); -} diff --git a/pkgs/os-specific/linux/device-tree/raspberrypi.nix b/pkgs/os-specific/linux/device-tree/raspberrypi.nix deleted file mode 100644 index d9ccb70f1f03..000000000000 --- a/pkgs/os-specific/linux/device-tree/raspberrypi.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenvNoCC, raspberrypifw }: - -stdenvNoCC.mkDerivation { - pname = "raspberrypi-dtbs"; - version = raspberrypifw.version; - nativeBuildInputs = [ raspberrypifw ]; - - # Rename DTBs so u-boot finds them, like linux-rpi.nix - buildCommand = '' - mkdir -p $out/broadcom/ - cd $out/broadcom/ - - cp ${raspberrypifw}/share/raspberrypi/boot/bcm*.dtb . - - cp bcm2708-rpi-zero-w.dtb bcm2835-rpi-zero-w.dtb - cp bcm2708-rpi-b.dtb bcm2835-rpi-a.dtb - cp bcm2708-rpi-b.dtb bcm2835-rpi-b.dtb - cp bcm2708-rpi-b.dtb bcm2835-rpi-b-rev2.dtb - cp bcm2708-rpi-b-plus.dtb bcm2835-rpi-a-plus - cp bcm2708-rpi-b-plus.dtb bcm2835-rpi-b-plus - cp bcm2708-rpi-b-plus.dtb bcm2835-rpi-zero.dtb - cp bcm2708-rpi-cm.dtb bcm2835-rpi-cm.dtb - cp bcm2709-rpi-2-b.dtb bcm2836-rpi-2-b.dtb - cp bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb - cp bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-b-plus.dtb - cp bcm2710-rpi-cm3.dtb bcm2837-rpi-cm3.dtb - cp bcm2711-rpi-4-b.dtb bcm2838-rpi-4-b.dtb - ''; - - passthru = { - # Compatible overlays that may be used - overlays = "${raspberrypifw}/share/raspberrypi/boot/overlays"; - }; - meta = with lib; { - inherit (raspberrypifw.meta) homepage license; - description = "DTBs for the Raspberry Pi"; - }; -} diff --git a/pkgs/os-specific/linux/devmem2/default.nix b/pkgs/os-specific/linux/devmem2/default.nix deleted file mode 100644 index 88a3877c37f2..000000000000 --- a/pkgs/os-specific/linux/devmem2/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation { - pname = "devmem2"; - version = "unstable-2004-08-05"; - - src = fetchurl { - urls = [ - "http://lartmaker.nl/lartware/port/devmem2.c" - "https://raw.githubusercontent.com/hackndev/tools/7ed212230f8fbb1da3424a15ee88de3279bf96ec/devmem2.c" - ]; - sha256 = "14f1k7v6i1yaxg4xcaaf5i4aqn0yabba857zjnbg9wiymy82qf7c"; - }; - - hardeningDisable = [ "format" ]; # fix compile error - - buildCommand = '' - $CC "$src" -o devmem2 - install -D devmem2 "$out/bin/devmem2" - ''; - - meta = with lib; { - description = "Simple program to read/write from/to any location in memory"; - mainProgram = "devmem2"; - homepage = "http://lartmaker.nl/lartware/port/"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ bjornfor ]; - }; -} diff --git a/pkgs/os-specific/linux/digimend/default.nix b/pkgs/os-specific/linux/digimend/default.nix deleted file mode 100644 index 11756dcbe85c..000000000000 --- a/pkgs/os-specific/linux/digimend/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "digimend"; - version = "unstable-2023-05-03"; - - src = fetchFromGitHub { - owner = "digimend"; - repo = "digimend-kernel-drivers"; - rev = "eca6e1b701bffb80a293234a485ebf6b4bc85562"; - hash = "sha256-0mjIUgHvbNcVQVzU3xzaloe5R41a4eknDhdhruJH+6c="; - }; - - postPatch = '' - sed 's/udevadm /true /' -i Makefile - sed 's/depmod /true /' -i Makefile - ''; - - # Fix build on Linux kernel >= 5.18 - env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=implicit-fallthrough" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - postInstall = '' - # Remove module reload hack. - # The hid-rebind unloads and then reloads the hid-* module to ensure that - # the extra/ module is loaded. - rm -r $out/lib/udev - ''; - - makeFlags = kernel.makeFlags ++ [ - "KVERSION=${kernel.modDirVersion}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "DESTDIR=${placeholder "out"}" - "INSTALL_MOD_PATH=${placeholder "out"}" - ]; - - meta = with lib; { - description = "DIGImend graphics tablet drivers for the Linux kernel"; - homepage = "https://digimend.github.io/"; - license = licenses.gpl2; - maintainers = with maintainers; [ gebner ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/directvnc/default.nix b/pkgs/os-specific/linux/directvnc/default.nix deleted file mode 100644 index 78ccb6772571..000000000000 --- a/pkgs/os-specific/linux/directvnc/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, directfb, zlib, libjpeg, xorgproto }: - -stdenv.mkDerivation { - pname = "directvnc"; - version = "0.7.7.2015-04-16"; - - src = fetchFromGitHub { - owner = "drinkmilk"; - repo = "directvnc"; - rev = "d336f586c5865da68873960092b7b5fbc9f8617a"; - sha256 = "16x7mr7x728qw7nbi6rqhrwsy73zsbpiz8pbgfzfl2aqhfdiz88b"; - }; - - patches = [ - # Pull fix pending upstream inclusion for -fno-common toolchain - # support: - # https://github.com/drinkmilk/directvnc/pull/7 - (fetchpatch { - name = "fno-common.patch"; - url = "https://github.com/drinkmilk/directvnc/commit/e9c23d049bcf31d0097348d44391fe5fd9aad12b.patch"; - sha256 = "1dnzr0dnx20w80r73j4a9n6mhbazjzlr5ps9xjj898924cg140zx"; - }) - ]; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - - buildInputs = [ directfb zlib libjpeg xorgproto ]; - - meta = with lib; { - description = "DirectFB VNC client"; - homepage = "http://drinkmilk.github.io/directvnc/"; - license = licenses.gpl2; - maintainers = [ maintainers.raskin ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/disk-indicator/default.nix b/pkgs/os-specific/linux/disk-indicator/default.nix deleted file mode 100644 index e0e238fd3560..000000000000 --- a/pkgs/os-specific/linux/disk-indicator/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, libX11 }: - -stdenv.mkDerivation { - pname = "disk-indicator"; - version = "unstable-2018-12-18"; - - src = fetchFromGitHub { - owner = "MeanEYE"; - repo = "Disk-Indicator"; - rev = "ec2d2f6833f038f07a72d15e2d52625c23e10b12"; - sha256 = "sha256-cRqgIxF6H1WyJs5hhaAXVdWAlv6t22BZLp3p/qRlCSM="; - }; - - buildInputs = [ libX11 ]; - - postPatch = '' - # avoid -Werror - substituteInPlace Makefile --replace "-Werror" "" - # avoid host-specific options - substituteInPlace Makefile --replace "-march=native" "" - ''; - - postConfigure = '' - patchShebangs ./configure.sh - ./configure.sh --all - ''; - - makeFlags = [ - "COMPILER=${stdenv.cc.targetPrefix}cc" - ]; - - installPhase = '' - runHook preInstall - - mkdir -p "$out/bin" - cp ./disk_indicator "$out/bin/" - - runHook postInstall - ''; - - meta = { - homepage = "https://github.com/MeanEYE/Disk-Indicator"; - description = "A program that will turn a LED into a hard disk indicator"; - mainProgram = "disk_indicator"; - longDescription = '' - Small program for Linux that will turn your Scroll, Caps or Num Lock LED - or LED on your ThinkPad laptop into a hard disk activity indicator. - ''; - license = lib.licenses.gpl3; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/displaylink/99-displaylink.rules b/pkgs/os-specific/linux/displaylink/99-displaylink.rules deleted file mode 100644 index ceeb658a415a..000000000000 --- a/pkgs/os-specific/linux/displaylink/99-displaylink.rules +++ /dev/null @@ -1 +0,0 @@ -ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="17e9", ATTR{bInterfaceClass}=="ff", ATTR{bInterfaceProtocol}=="03", TAG+="systemd", ENV{SYSTEMD_WANTS}="dlm.service" diff --git a/pkgs/os-specific/linux/displaylink/default.nix b/pkgs/os-specific/linux/displaylink/default.nix deleted file mode 100644 index 476ea57d44ec..000000000000 --- a/pkgs/os-specific/linux/displaylink/default.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ stdenv -, lib -, unzip -, util-linux -, libusb1 -, evdi -, makeBinaryWrapper -, requireFile -}: - -let - bins = - if stdenv.hostPlatform.system == "x86_64-linux" then "x64-ubuntu-1604" - else if stdenv.hostPlatform.system == "i686-linux" then "x86-ubuntu-1604" - else if stdenv.hostPlatform.system == "aarch64-linux" then "aarch64-linux-gnu" - else throw "Unsupported architecture"; - libPath = lib.makeLibraryPath [ stdenv.cc.cc util-linux libusb1 evdi ]; -in -stdenv.mkDerivation (finalAttrs: { - pname = "displaylink"; - version = "5.8.0-63.33"; - - src = requireFile rec { - name = "displaylink-580.zip"; - sha256 = "05m8vm6i9pc9pmvar021lw3ls60inlmq92nling0vj28skm55i92"; - message = '' - In order to install the DisplayLink drivers, you must first - comply with DisplayLink's EULA and download the binaries and - sources from here: - - https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu-5.8 - - Once you have downloaded the file, please use the following - commands and re-run the installation: - - mv \$PWD/"DisplayLink USB Graphics Software for Ubuntu5.8-EXE.zip" \$PWD/${name} - nix-prefetch-url file://\$PWD/${name} - ''; - }; - - nativeBuildInputs = [ - makeBinaryWrapper - unzip - ]; - - unpackPhase = '' - runHook preUnpack - unzip $src - chmod +x displaylink-driver-${finalAttrs.version}.run - ./displaylink-driver-${finalAttrs.version}.run --target . --noexec --nodiskspace - runHook postUnpack - ''; - - installPhase = '' - runHook preInstall - install -Dt $out/lib/displaylink *.spkg - install -Dm755 ${bins}/DisplayLinkManager $out/bin/DisplayLinkManager - mkdir -p $out/lib/udev/rules.d $out/share - cp ${./99-displaylink.rules} $out/lib/udev/rules.d/99-displaylink.rules - patchelf \ - --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ - --set-rpath ${libPath} \ - $out/bin/DisplayLinkManager - wrapProgram $out/bin/DisplayLinkManager \ - --chdir "$out/lib/displaylink" - - # We introduce a dependency on the source file so that it need not be redownloaded everytime - echo $src >> "$out/share/workspace_dependencies.pin" - runHook postInstall - ''; - - dontStrip = true; - dontPatchELF = true; - - meta = with lib; { - description = "DisplayLink DL-5xxx, DL-41xx and DL-3x00 Driver for Linux"; - homepage = "https://www.displaylink.com/"; - hydraPlatforms = []; - license = licenses.unfree; - mainProgram = "DisplayLinkManager"; - maintainers = with maintainers; [ abbradar ]; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - }; -}) diff --git a/pkgs/os-specific/linux/dmidecode/default.nix b/pkgs/os-specific/linux/dmidecode/default.nix deleted file mode 100644 index 3bfaad303516..000000000000 --- a/pkgs/os-specific/linux/dmidecode/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "dmidecode"; - version = "3.6"; - - src = fetchurl { - url = "mirror://savannah/dmidecode/dmidecode-${version}.tar.xz"; - sha256 = "sha256-5Axl8+w9r+Ma2DSaTvGpcSLTj2UATtZldeGo1XXdi64="; - }; - - makeFlags = [ - "prefix=$(out)" - "CC=${stdenv.cc.targetPrefix}cc" - ]; - - meta = with lib; { - homepage = "https://www.nongnu.org/dmidecode/"; - description = "A tool that reads information about your system's hardware from the BIOS according to the SMBIOS/DMI standard"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/dmraid/default.nix b/pkgs/os-specific/linux/dmraid/default.nix deleted file mode 100644 index fa26f38941b9..000000000000 --- a/pkgs/os-specific/linux/dmraid/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, lvm2 }: - -stdenv.mkDerivation rec { - pname = "dmraid"; - version = "1.0.0.rc16"; - - src = fetchurl { - url = "https://people.redhat.com/~heinzm/sw/dmraid/src/old/dmraid-${version}.tar.bz2"; - sha256 = "0m92971gyqp61darxbiri6a48jz3wq3gkp8r2k39320z0i6w8jgq"; - }; - - patches = [ ./hardening-format.patch ] - ++ lib.optionals stdenv.hostPlatform.isMusl [ - (fetchpatch { - url = "https://raw.githubusercontent.com/void-linux/void-packages/fceed4b8e96b3c1da07babf6f67b6ed1588a28b2/srcpkgs/dmraid/patches/006-musl-libc.patch"; - sha256 = "1j8xda0fpz8lxjxnqdidy7qb866qrzwpbca56yjdg6vf4x21hx6w"; - stripLen = 2; - extraPrefix = "1.0.0.rc16/"; - }) - (fetchpatch { - url = "https://raw.githubusercontent.com/void-linux/void-packages/fceed4b8e96b3c1da07babf6f67b6ed1588a28b2/srcpkgs/dmraid/patches/007-fix-loff_t-musl.patch"; - sha256 = "0msnq39qnzg3b1pdksnz1dgqwa3ak03g41pqh0lw3h7w5rjc016k"; - stripLen = 2; - extraPrefix = "1.0.0.rc16/"; - }) - ]; - - postPatch = '' - sed -i 's/\[\[[^]]*\]\]/[ "''$''${n##*.}" = "so" ]/' */lib/Makefile.in - '' + lib.optionalString stdenv.hostPlatform.isMusl '' - NIX_CFLAGS_COMPILE+=" -D_GNU_SOURCE" - ''; - - preConfigure = "cd */"; - - buildInputs = [ lvm2 ]; - - # Hand-written Makefile does not have full dependencies to survive - # parallel build: - # tools/dmraid.c:12:10: fatal error: dmraid/dmraid.h: No such file - enableParallelBuilding = false; - - meta = { - description = "Old-style RAID configuration utility"; - longDescription = '' - Old RAID configuration utility (still under development, though). - It is fully compatible with modern kernels and mdadm recognizes - its volumes. May be needed for rescuing an older system or nuking - the metadata when reformatting. - ''; - maintainers = [ lib.maintainers.raskin ]; - platforms = lib.platforms.linux; - license = lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/os-specific/linux/dmraid/hardening-format.patch b/pkgs/os-specific/linux/dmraid/hardening-format.patch deleted file mode 100644 index f91a7fb18aa0..000000000000 --- a/pkgs/os-specific/linux/dmraid/hardening-format.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/1.0.0.rc16/lib/events/libdmraid-events-isw.c 2016-01-29 05:16:57.455425454 +0000 -+++ b/1.0.0.rc16/lib/events/libdmraid-events-isw.c 2016-01-29 05:17:55.520564013 +0000 -@@ -838,13 +838,13 @@ - - sz = _log_all_devs(log_type, rs, NULL, 0); - if (!sz) { -- syslog(LOG_ERR, msg[0]); -+ syslog(LOG_ERR, "%s", msg[0]); - return; - } - - str = dm_malloc(++sz); - if (!str) { -- syslog(LOG_ERR, msg[1]); -+ syslog(LOG_ERR, "%s", msg[1]); - return; - } - diff --git a/pkgs/os-specific/linux/dmtcp/default.nix b/pkgs/os-specific/linux/dmtcp/default.nix deleted file mode 100644 index 6315d361ed68..000000000000 --- a/pkgs/os-specific/linux/dmtcp/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, bash, perl, python3 }: - -stdenv.mkDerivation rec { - pname = "dmtcp"; - version = "unstable-2022-02-28"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "133687764c6742906006a1d247e3b83cd860fa1d"; - hash = "sha256-9Vr8IhoeATCfyt7Lp7kYe/7e87mFX9KMNGTqxJgIztE="; - }; - - dontDisableStatic = true; - - patches = [ ./ld-linux-so-buffer-size.patch ]; - - postPatch = '' - patchShebangs . - - substituteInPlace configure \ - --replace '#define ELF_INTERPRETER "$interp"' \ - "#define ELF_INTERPRETER \"$(cat $NIX_CC/nix-support/dynamic-linker)\"" - substituteInPlace src/restartscript.cpp \ - --replace /bin/bash ${stdenv.shell} - substituteInPlace util/dmtcp_restart_wrapper.sh \ - --replace /bin/bash ${stdenv.shell} - substituteInPlace test/autotest.py \ - --replace /bin/bash ${bash}/bin/bash \ - --replace /usr/bin/perl ${perl}/bin/perl \ - --replace /usr/bin/python ${python3.interpreter} \ - --replace "os.environ['USER']" "\"nixbld1\"" \ - --replace "os.getenv('USER')" "\"nixbld1\"" - ''; - - meta = with lib; { - description = "Distributed MultiThreaded Checkpointing"; - longDescription = '' - DMTCP (Distributed MultiThreaded Checkpointing) is a tool to - transparently checkpointing the state of an arbitrary group of - programs spread across many machines and connected by sockets. It does - not modify the user's program or the operating system. - ''; - homepage = "http://dmtcp.sourceforge.net/"; - license = licenses.lgpl3Plus; # most files seem this or LGPL-2.1+ - platforms = intersectLists platforms.linux platforms.x86; # broken on ARM and Darwin - }; -} diff --git a/pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch b/pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch deleted file mode 100644 index 118e52b8e626..000000000000 --- a/pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/util_exec.cpp b/src/util_exec.cpp -index 0e8a13c1..0cc99c1e 100644 ---- a/src/util_exec.cpp -+++ b/src/util_exec.cpp -@@ -300,7 +300,7 @@ Util::elfType(const char *pathname, bool *isElf, bool *is32bitElf) - static string - ld_linux_so_path(int version, bool is32bitElf = false) - { -- char buf[80]; -+ char buf[128]; - - #if (defined(__x86_64__) || defined(__aarch64__)) && !defined(CONFIG_M32) - if (is32bitElf) { diff --git a/pkgs/os-specific/linux/dpdk-kmods/default.nix b/pkgs/os-specific/linux/dpdk-kmods/default.nix deleted file mode 100644 index ec5fda7aa419..000000000000 --- a/pkgs/os-specific/linux/dpdk-kmods/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchzip, fetchpatch, kernel }: - -stdenv.mkDerivation rec { - pname = "dpdk-kmods"; - version = "2023-02-05"; - - src = fetchzip { - url = "https://git.dpdk.org/dpdk-kmods/snapshot/dpdk-kmods-e721c733cd24206399bebb8f0751b0387c4c1595.tar.xz"; - sha256 = "sha256-AG5Lthp+CPR4R7I23DUmoWAmET8gLEFHHdjk2TUbQn4="; - }; - - hardeningDisable = [ "pic" ]; - - makeFlags = kernel.makeFlags ++ [ - "INSTALL_MOD_PATH=${placeholder "out"}" - ]; - KSRC = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - preBuild = "cd linux/igb_uio"; - - installPhase = '' - make -C ${KSRC} M=$(pwd) modules_install $makeFlags - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Kernel modules for DPDK"; - homepage = "https://git.dpdk.org/dpdk-kmods/"; - license = licenses.gpl2Only; - maintainers = [ maintainers.mic92 ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/dpdk/default.nix b/pkgs/os-specific/linux/dpdk/default.nix deleted file mode 100644 index bd5d9db661a8..000000000000 --- a/pkgs/os-specific/linux/dpdk/default.nix +++ /dev/null @@ -1,89 +0,0 @@ -{ stdenv, lib -, fetchurl -, pkg-config, meson, ninja, makeWrapper -, libbsd, numactl, libbpf, zlib, elfutils, jansson, openssl, libpcap, rdma-core -, doxygen, python3, pciutils -, withExamples ? [] -, shared ? false -, machine ? ( - if stdenv.isx86_64 then "nehalem" - else if stdenv.isAarch64 then "generic" - else null - ) -}: - -stdenv.mkDerivation rec { - pname = "dpdk"; - version = "23.11"; - - src = fetchurl { - url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz"; - sha256 = "sha256-ZPpY/fyelRDo5BTjvt0WW9PUykZaIxsoAyP4PNU/2GU="; - }; - - nativeBuildInputs = [ - makeWrapper - doxygen - meson - ninja - pkg-config - python3 - python3.pkgs.sphinx - python3.pkgs.pyelftools - ]; - buildInputs = [ - jansson - libbpf - elfutils - libpcap - numactl - openssl.dev - zlib - python3 - ]; - - propagatedBuildInputs = [ - # Propagated to support current DPDK users in nixpkgs which statically link - # with the framework (e.g. odp-dpdk). - rdma-core - # Requested by pkg-config. - libbsd - ]; - - postPatch = '' - patchShebangs config/arm buildtools - ''; - - mesonFlags = [ - "-Dtests=false" - "-Denable_docs=true" - "-Ddeveloper_mode=disabled" - ] - ++ [(if shared then "-Ddefault_library=shared" else "-Ddefault_library=static")] - ++ lib.optional (machine != null) "-Dmachine=${machine}" - ++ lib.optional (withExamples != []) "-Dexamples=${builtins.concatStringsSep "," withExamples}"; - - postInstall = '' - # Remove Sphinx cache files. Not only are they not useful, but they also - # contain store paths causing spurious dependencies. - rm -rf $out/share/doc/dpdk/html/.doctrees - - wrapProgram $out/bin/dpdk-devbind.py \ - --prefix PATH : "${lib.makeBinPath [ pciutils ]}" - '' + lib.optionalString (withExamples != []) '' - mkdir -p $examples/bin - find examples -type f -executable -exec install {} $examples/bin \; - ''; - - outputs = - [ "out" "doc" ] - ++ lib.optional (withExamples != []) "examples"; - - meta = with lib; { - description = "Set of libraries and drivers for fast packet processing"; - homepage = "http://dpdk.org/"; - license = with licenses; [ lgpl21 gpl2 bsd2 ]; - platforms = platforms.linux; - maintainers = with maintainers; [ magenbluten orivej mic92 zhaofengli ]; - }; -} diff --git a/pkgs/os-specific/linux/dracut/default.nix b/pkgs/os-specific/linux/dracut/default.nix deleted file mode 100644 index e5461bddbc8f..000000000000 --- a/pkgs/os-specific/linux/dracut/default.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, gitUpdater -, makeBinaryWrapper -, pkg-config -, asciidoc -, libxslt -, docbook_xsl -, bash -, kmod -, binutils -, bzip2 -, coreutils -, cpio -, findutils -, gnugrep -, gnused -, gnutar -, gzip -, lz4 -, lzop -, squashfsTools -, util-linux -, xz -, zstd -}: - -stdenv.mkDerivation rec { - pname = "dracut"; - version = "059"; - - src = fetchFromGitHub { - owner = "dracutdevs"; - repo = "dracut"; - rev = version; - hash = "sha256-zSyC2SnSQkmS/mDpBXG2DtVVanRRI9COKQJqYZZCPJM="; - }; - - strictDeps = true; - - buildInputs = [ - bash - kmod - ]; - - nativeBuildInputs = [ - makeBinaryWrapper - pkg-config - asciidoc - libxslt - docbook_xsl - ]; - - postPatch = '' - substituteInPlace dracut.sh \ - --replace 'dracutbasedir="$dracutsysrootdir"/usr/lib/dracut' 'dracutbasedir="$dracutsysrootdir"'"$out/lib/dracut" - substituteInPlace lsinitrd.sh \ - --replace 'dracutbasedir=/usr/lib/dracut' "dracutbasedir=$out/lib/dracut" - - echo 'DRACUT_VERSION=${version}' >dracut-version.sh - ''; - - postFixup = '' - wrapProgram $out/bin/dracut --prefix PATH : ${lib.makeBinPath [ - coreutils - util-linux - ]} --suffix DRACUT_PATH : ${lib.makeBinPath [ - bash - binutils - coreutils - findutils - gnugrep - gnused - gnutar - stdenv.cc.libc # for ldd command - util-linux - ]} - wrapProgram $out/bin/dracut-catimages --set PATH ${lib.makeBinPath [ - coreutils - cpio - findutils - gzip - ]} - wrapProgram $out/bin/lsinitrd --set PATH ${lib.makeBinPath [ - binutils - bzip2 - coreutils - cpio - gnused - gzip - lz4 - lzop - squashfsTools - util-linux - xz - zstd - ]} - ''; - - passthru.updateScript = gitUpdater { }; - - meta = with lib; { - homepage = "https://github.com/dracutdevs/dracut/wiki"; - description = "An event driven initramfs infrastructure"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ lilyinstarlight ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/drbd/driver.nix b/pkgs/os-specific/linux/drbd/driver.nix deleted file mode 100644 index 106bcf71cd98..000000000000 --- a/pkgs/os-specific/linux/drbd/driver.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ stdenv, lib, fetchurl, kernel, flex, coccinelle, python3 }: - -stdenv.mkDerivation rec { - name = "drbd-${version}-${kernel.version}"; - version = "9.2.8"; - - src = fetchurl { - url = "https://pkg.linbit.com//downloads/drbd/9/drbd-${version}.tar.gz"; - hash = "sha256-LqK1lPucab7wKvcB4VKGdvBIq+K9XtuO2m0DP5XtK3M="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = [ - kernel.moduleBuildDependencies - flex - coccinelle - python3 - ]; - - makeFlags = [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "SPAAS=false" - ]; - - # 6.4 and newer provide a in-tree version of the handshake module https://www.kernel.org/doc/html/v6.4/networking/tls-handshake.html - installPhase = '' - runHook preInstall - install -D drbd/drbd.ko -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/block/drbd9 - install -D drbd/drbd_transport_tcp.ko -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/block/drbd9 - install -D drbd/drbd_transport_lb-tcp.ko -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/block/drbd9 - install -D drbd/drbd_transport_rdma.ko -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/block/drbd9 - ${lib.optionalString (lib.versionOlder kernel.version "6.4") '' - install -D drbd/drbd-kernel-compat/handshake/handshake.ko -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/block/drbd9 - ''} - runHook postInstall - ''; - - postPatch = '' - patchShebangs . - substituteInPlace Makefile --replace 'SHELL=/bin/bash' 'SHELL=${builtins.getEnv "SHELL"}' - ''; - - # builder.pl had complained about the same file (drbd.ko.xz) provided by two different packages - # builder.pl also had complained about different permissions between the files from the two packages - # The compression is required because the kernel has the CONFIG_MODULE_COMPRESS_XZ option enabled - postFixup = '' - for ko in $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/block/drbd9/*.ko; do - xz --compress -6 --threads=0 $ko - chmod 0444 $ko.xz - done - ''; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://github.com/LINBIT/drbd"; - description = "LINBIT DRBD kernel module"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ birkb ]; - longDescription = '' - DRBD is a software-based, shared-nothing, replicated storage solution - mirroring the content of block devices (hard disks, partitions, logical volumes, and so on) between hosts. - ''; - broken = lib.versionAtLeast kernel.version "6.8"; # wait until next DRBD release for 6.8 support https://github.com/LINBIT/drbd/issues/87#issuecomment-2059323084 - }; -} diff --git a/pkgs/os-specific/linux/drbd/utils.nix b/pkgs/os-specific/linux/drbd/utils.nix deleted file mode 100644 index ad50c2c3e50a..000000000000 --- a/pkgs/os-specific/linux/drbd/utils.nix +++ /dev/null @@ -1,135 +0,0 @@ -{ lib -, stdenv -, docbook_xml_dtd_44 -, docbook_xml_dtd_45 -, docbook_xsl -, asciidoctor -, fetchurl -, flex -, kmod -, libxslt -, nixosTests -, perl -, perlPackages -, systemd -, keyutils - -# drbd-utils are compiled twice, once with forOCF = true to extract -# its OCF definitions for use in the ocf-resource-agents derivation, -# then again with forOCF = false, where the ocf-resource-agents is -# provided as the OCF_ROOT. -, forOCF ? false -, ocf-resource-agents -}: - -stdenv.mkDerivation rec { - pname = "drbd"; - version = "9.27.0"; - - src = fetchurl { - url = "https://pkg.linbit.com/downloads/drbd/utils/${pname}-utils-${version}.tar.gz"; - sha256 = "1qwdrjrgas8z8vc6c85xcrqaczjwyqd61yig01n44wa5z0j3v4aq"; - }; - - nativeBuildInputs = [ - flex - libxslt - docbook_xsl - asciidoctor - keyutils - ]; - - buildInputs = [ - perl - perlPackages.Po4a - ]; - - configureFlags = [ - "--libdir=${placeholder "out"}/lib" - "--sbindir=${placeholder "out"}/bin" - "--localstatedir=/var" - "--sysconfdir=/etc" - "--without-distro" - ]; - - makeFlags = [ - "SOURCE_DATE_EPOCH=1" - "WANT_DRBD_REPRODUCIBLE_BUILD=1" - ] ++ lib.optional (!forOCF) "OCF_ROOT=${ocf-resource-agents}/usr/lib/ocf}"; - - installFlags = [ - "prefix=" - "DESTDIR=${placeholder "out"}" - "localstatedir=/var" - "DRBD_LIB_DIR=/var/lib" - "INITDIR=/etc/init.d" - "udevrulesdir=/etc/udev/rules.d" - "sysconfdir=/etc" - "sbindir=/bin" - "datadir=" - "LIBDIR=/lib/drbd" - "mandir=/share/man" - ]; - - postPatch = '' - patchShebangs . - substituteInPlace user/v84/drbdadm_usage_cnt.c \ - --replace '"/lib/drbd");' \ - '"${placeholder "out"}/lib/drbd");' - substituteInPlace user/v9/drbdsetup_linux.c \ - --replace 'ret = system("/sbin/modprobe drbd");' \ - 'ret = system("${kmod}/bin/modprobe drbd");' - substituteInPlace user/v84/drbdsetup.c \ - --replace 'system("/sbin/modprobe drbd")' \ - 'system("${kmod}/bin/modprobe drbd")' - substituteInPlace documentation/ra2refentry.xsl \ - --replace "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" \ - "${docbook_xml_dtd_44}/xml/dtd/docbook/docbookx.dtd" - function patch_docbook45() { - substituteInPlace $1 \ - --replace "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \ - "${docbook_xml_dtd_45}/xml/dtd/docbook/docbookx.dtd" - } - patch_docbook45 documentation/v9/drbd.conf.xml.in - patch_docbook45 documentation/v9/drbdsetup.xml.in - patch_docbook45 documentation/v84/drbdsetup.xml - patch_docbook45 documentation/v84/drbd.conf.xml - # The ja documentation is disabled because: - # make[1]: Entering directory '/build/drbd-utils-9.16.0/documentation/ja/v84' - # /nix/store/wyx2nn2pjcn50lc95c6qgsgm606rn0x2-perl5.32.1-po4a-0.62/bin/po4a-translate -f docbook -M utf-8 -L utf-8 -keep 0 -m ../../v84/drbdsetup.xml -p drbdsetup.xml.po -l drbdsetup.xml - # Use of uninitialized value $args[1] in sprintf at /nix/store/wyx2nn2pjcn50lc95c6qgsgm606rn0x2-perl5.32.1-po4a-0.62/lib/perl5/site_perl/Locale/Po4a/Common.pm line 134. - # Invalid po file drbdsetup.xml.po: - substituteInPlace Makefile.in \ - --replace 'DOC_DIRS := documentation/v9 documentation/ja/v9' \ - 'DOC_DIRS := documentation/v9' \ - --replace 'DOC_DIRS += documentation/v84 documentation/ja/v84' \ - 'DOC_DIRS += documentation/v84' \ - --replace '$(MAKE) -C documentation/ja/v9 doc' \ - "" \ - --replace '$(MAKE) -C documentation/ja/v84 doc' \ - "" - substituteInPlace user/v9/drbdtool_common.c \ - --replace 'add_component_to_path("/lib/drbd");' \ - 'add_component_to_path("${placeholder "out"}/lib/drbd");' - ''; - - preConfigure = '' - export PATH=${systemd}/sbin:$PATH - ''; - - enableParallelBuilding = true; - - passthru.tests.drbd = nixosTests.drbd; - - meta = with lib; { - homepage = "https://linbit.com/drbd/"; - description = "Distributed Replicated Block Device, a distributed storage system for Linux (userspace utilities)"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ ryantm astro birkb ]; - longDescription = '' - DRBD is a software-based, shared-nothing, replicated storage solution - mirroring the content of block devices (hard disks, partitions, logical volumes, and so on) between hosts. - ''; - }; -} diff --git a/pkgs/os-specific/linux/dropwatch/default.nix b/pkgs/os-specific/linux/dropwatch/default.nix deleted file mode 100644 index 470b59018704..000000000000 --- a/pkgs/os-specific/linux/dropwatch/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, pkg-config -, libbfd -, libnl -, libpcap -, ncurses -, readline -, zlib -}: - -stdenv.mkDerivation rec { - pname = "dropwatch"; - version = "1.5.4"; - - src = fetchFromGitHub { - owner = "nhorman"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-TbhgcX5WzuigP5/Mj5JuK7O/UKcu70D7dcOcvo4fxeQ="; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - buildInputs = [ - libbfd - libnl - libpcap - ncurses - readline - zlib - ]; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Linux kernel dropped packet monitor"; - homepage = "https://github.com/nhorman/dropwatch"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ c0bw3b ]; - }; -} diff --git a/pkgs/os-specific/linux/dstat/default.nix b/pkgs/os-specific/linux/dstat/default.nix deleted file mode 100644 index 75b613075e78..000000000000 --- a/pkgs/os-specific/linux/dstat/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, fetchFromGitHub, fetchpatch, python3Packages }: - -python3Packages.buildPythonApplication rec { - pname = "dstat"; - format = "other"; - version = "0.7.4"; - - src = fetchFromGitHub { - owner = "dstat-real"; - repo = "dstat"; - rev = "v${version}"; - sha256 = "1qnmkhqmjd1m3if05jj29dvr5hn6kayq9bkkkh881w472c0zhp8v"; - }; - - propagatedBuildInputs = with python3Packages; [ six ]; - - patches = [ - ./fix_pluginpath.patch - # this fixes another bug with python3 - (fetchpatch { - url = "https://github.com/efexgee/dstat/commit/220a785321b13b6df92a536080aca6ef1cb644ad.patch"; - sha256 = "08kcz3yxvl35m55y7g1pr73x3bjcqnv0qlswxqyq8cqxg9zd64cn"; - }) - ]; - - makeFlags = [ "prefix=$(out)" ]; - - # remove deprecation warnings - preFixup = '' - sed -i "s/import collections/import collections.abc/g" $out/share/dstat/dstat.py $out/bin/dstat - sed -i "s/collections.Sequence/collections.abc.Sequence/g" "$out"/bin/dstat - ''; - - meta = with lib; { - homepage = "http://dag.wieers.com/home-made/dstat/"; - description = "Versatile resource statistics tool"; - mainProgram = "dstat"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - changelog = "https://github.com/dstat-real/dstat/blob/v${version}/ChangeLog"; - }; -} diff --git a/pkgs/os-specific/linux/dstat/fix_pluginpath.patch b/pkgs/os-specific/linux/dstat/fix_pluginpath.patch deleted file mode 100644 index 06d7793da47e..000000000000 --- a/pkgs/os-specific/linux/dstat/fix_pluginpath.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/dstat b/dstat -index 3ac7087..c5f089d 100755 ---- a/dstat -+++ b/dstat -@@ -66,9 +66,7 @@ if sys.version_info < (2, 3): - - pluginpath = [ - os.path.expanduser('~/.dstat/'), # home + /.dstat/ -- os.path.abspath(os.path.dirname(sys.argv[0])) + '/plugins/', # binary path + /plugins/ -- '/usr/share/dstat/', -- '/usr/local/share/dstat/', -+ os.path.abspath(os.path.dirname(sys.argv[0])) + '/../share/dstat/', # binary path + /../share/dstat/ - ] - - class Options: diff --git a/pkgs/os-specific/linux/e1000e/default.nix b/pkgs/os-specific/linux/e1000e/default.nix deleted file mode 100644 index 51bc6ada07de..000000000000 --- a/pkgs/os-specific/linux/e1000e/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl, kernel }: - -assert lib.versionOlder kernel.version "4.10"; - -stdenv.mkDerivation rec { - name = "e1000e-${version}-${kernel.version}"; - version = "3.8.4"; - - src = fetchurl { - url = "mirror://sourceforge/e1000/e1000e-${version}.tar.gz"; - sha256 = "1q8dbqh14c7r15q6k6iv5k0d6xpi74i71d5r54py60gr099m2ha4"; - }; - - hardeningDisable = [ "pic" ]; - - configurePhase = '' - cd src - kernel_version=${kernel.modDirVersion} - substituteInPlace common.mk \ - --replace "/lib/modules" "${kernel.dev}/lib/modules" - export makeFlags="BUILD_KERNEL=$kernel_version" - ''; - - installPhase = '' - install -v -D -m 644 e1000e.ko "$out/lib/modules/$kernel_version/kernel/drivers/net/e1000e/e1000e.ko" - ''; - - dontStrip = true; - - enableParallelBuilding = true; - - meta = { - description = "Linux kernel drivers for Intel Ethernet adapters and LOMs (LAN On Motherboard)"; - homepage = "http://e1000.sf.net/"; - license = lib.licenses.gpl2; - }; -} diff --git a/pkgs/os-specific/linux/ebtables/default.nix b/pkgs/os-specific/linux/ebtables/default.nix deleted file mode 100644 index 31a5dbd68f9d..000000000000 --- a/pkgs/os-specific/linux/ebtables/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "ebtables"; - version = "2.0.11"; - - src = fetchurl { - url = "http://ftp.netfilter.org/pub/${pname}/${pname}-${version}.tar.gz"; - sha256 = "0apxgmkhsk3vxn9q3libxn3dgrdljrxyy4mli2gk49m7hi3na7xp"; - }; - - makeFlags = [ - "LIBDIR=$(out)/lib" "BINDIR=$(out)/sbin" "MANDIR=$(out)/share/man" - "ETCDIR=$(out)/etc" "INITDIR=$(TMPDIR)" "SYSCONFIGDIR=$(out)/etc/sysconfig" - "LOCALSTATEDIR=/var" - ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error"; - - preInstall = "mkdir -p $out/etc/sysconfig"; - - postInstall = '' - ln -s $out/sbin/ebtables-legacy $out/sbin/ebtables - ln -s $out/sbin/ebtables-legacy-restore $out/sbin/ebtables-restore - ln -s $out/sbin/ebtables-legacy-save $out/sbin/ebtables-save - ''; - - meta = with lib; { - description = "A filtering tool for Linux-based bridging firewalls"; - homepage = "http://ebtables.sourceforge.net/"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/edac-utils/default.nix b/pkgs/os-specific/linux/edac-utils/default.nix deleted file mode 100644 index 6171f8ed3073..000000000000 --- a/pkgs/os-specific/linux/edac-utils/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, perl, makeWrapper -, sysfsutils, dmidecode, kmod }: - -stdenv.mkDerivation { - pname = "edac-utils"; - version = "unstable-2015-01-07"; - - src = fetchFromGitHub { - owner = "grondo"; - repo = "edac-utils"; - rev = "f9aa96205f610de39a79ff43c7478b7ef02e3138"; - sha256 = "1dmfqb15ffldl5zirbmwiqzpxbcc2ny9rpfvxcfvpmh5b69knvdg"; - }; - - nativeBuildInputs = [ perl makeWrapper ]; - buildInputs = [ sysfsutils ]; - - configureFlags = [ - "--sysconfdir=/etc" - "--localstatedir=/var" - ]; - - installFlags = [ - "sysconfdir=\${out}/etc" - ]; - - postInstall = '' - wrapProgram "$out/sbin/edac-ctl" \ - --set PATH ${lib.makeBinPath [ dmidecode kmod ]} - ''; - - meta = with lib; { - homepage = "https://github.com/grondo/edac-utils"; - description = "Handles the reporting of hardware-related memory errors"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ell/default.nix b/pkgs/os-specific/linux/ell/default.nix deleted file mode 100644 index 9c16a341a478..000000000000 --- a/pkgs/os-specific/linux/ell/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib, stdenv -, fetchgit -, autoreconfHook -, pkg-config -, dbus -, sysctl -, gitUpdater -}: - -stdenv.mkDerivation rec { - pname = "ell"; - version = "0.64"; - - outputs = [ "out" "dev" ]; - - src = fetchgit { - url = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; - rev = version; - hash = "sha256-LONfgFgPg8KCDwtw//WTOYQT9RpnIskdHAWcgafOhcg="; - }; - - nativeBuildInputs = [ - pkg-config - autoreconfHook - ]; - - nativeCheckInputs = [ - dbus - # required as the sysctl test works on some machines - sysctl - ]; - - enableParallelBuilding = true; - - # tests sporadically fail on musl - doCheck = !stdenv.hostPlatform.isMusl; - - passthru = { - updateScript = gitUpdater { - url = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; - }; - }; - - meta = with lib; { - homepage = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; - description = "Embedded Linux Library"; - longDescription = '' - The Embedded Linux* Library (ELL) provides core, low-level functionality for system daemons. It typically has no dependencies other than the Linux kernel, C standard library, and libdl (for dynamic linking). While ELL is designed to be efficient and compact enough for use on embedded Linux platforms, it is not limited to resource-constrained systems. - ''; - changelog = "https://git.kernel.org/pub/scm/libs/ell/ell.git/tree/ChangeLog?h=${version}"; - license = licenses.lgpl21Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ mic92 dtzWill ]; - }; -} diff --git a/pkgs/os-specific/linux/ena/default.nix b/pkgs/os-specific/linux/ena/default.nix deleted file mode 100644 index b6ed869a71f5..000000000000 --- a/pkgs/os-specific/linux/ena/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - version = "2.8.9"; - name = "ena-${version}-${kernel.version}"; - - src = fetchFromGitHub { - owner = "amzn"; - repo = "amzn-drivers"; - rev = "ena_linux_${version}"; - hash = "sha256-9Csrq9wM7Q99qPj7+NlnQgP6KcciNHMbAAb+Wg7eYAU="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags; - - # linux 3.12 - env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration"; - - configurePhase = '' - runHook preConfigure - cd kernel/linux/ena - export ENA_PHC_INCLUDE=1 - substituteInPlace Makefile --replace '/lib/modules/$(BUILD_KERNEL)' ${kernel.dev}/lib/modules/${kernel.modDirVersion} - runHook postConfigure - ''; - - installPhase = '' - runHook preInstall - $STRIP -S ena.ko - dest=$out/lib/modules/${kernel.modDirVersion}/misc - mkdir -p $dest - cp ena.ko $dest/ - xz $dest/ena.ko - runHook postInstall - ''; - - meta = with lib; { - description = "Amazon Elastic Network Adapter (ENA) driver for Linux"; - homepage = "https://github.com/amzn/amzn-drivers"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ eelco sielicki ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/error-inject/default.nix b/pkgs/os-specific/linux/error-inject/default.nix deleted file mode 100644 index 69b90169bda0..000000000000 --- a/pkgs/os-specific/linux/error-inject/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ lib, stdenv, fetchzip -, bison, flex, rasdaemon -}: - -{ - edac-inject = rasdaemon.inject; - - mce-inject = stdenv.mkDerivation rec { - pname = "mce-inject"; - version = "4cbe46321b4a81365ff3aafafe63967264dbfec5"; - - src = fetchzip { - url = "https://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git/snapshot/mce-inject-${version}.tar.gz"; - sha256 = "0gjapg2hrlxp8ssrnhvc19i3r1xpcnql7xv0zjgbv09zyha08g6z"; - }; - - nativeBuildInputs = [ bison flex ]; - - makeFlags = [ "destdir=${placeholder "out"}" ]; - - postInstall = '' - mkdir $out/sbin - mv $out/usr/sbin/mce-inject $out/sbin/mce-inject - - mkdir $out/test - cp test/* $out/test/. - ''; - - meta = with lib; { - description = "MCE error injection tool"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = [ maintainers.evils ]; - }; - }; - - aer-inject = stdenv.mkDerivation rec { - pname = "aer-inject"; - version = "9bd5e2c7886fca72f139cd8402488a2235957d41"; - - src = fetchzip { - url = "https://git.kernel.org/pub/scm/linux/kernel/git/gong.chen/aer-inject.git/snapshot/aer-inject-${version}.tar.gz"; - sha256 = "0bh6mzpk2mr4xidkammmkfk21b4dbq793qjg25ryyxd1qv0c6cg4"; - }; - - nativeBuildInputs = [ bison flex ]; - - # how is this necessary? - makeFlags = [ "DESTDIR=${placeholder "out"}" ]; - - postInstall = '' - mkdir $out/bin - mv $out/usr/local/aer-inject $out/bin/aer-inject - - mkdir -p $out/examples - cp examples/* $out/examples/. - ''; - - meta = with lib; { - description = "PCIE AER error injection tool"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = [ maintainers.evils ]; - }; - }; -} diff --git a/pkgs/os-specific/linux/esdm/default.nix b/pkgs/os-specific/linux/esdm/default.nix deleted file mode 100644 index 195c645eb539..000000000000 --- a/pkgs/os-specific/linux/esdm/default.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, protobufc -, pkg-config -, fuse3 -, meson -, ninja -, libselinux -, jitterentropy -, botan3 -, openssl -, libkcapi - -# A more detailed explaination of the following meson build options can be found -# in the source code of esdm. -# A brief explanation is given. - -# general options -, selinux ? false # enable selinux support -, drngHashDrbg ? true # set the default drng callback -, drngChaCha20 ? false # set the default drng callback -, ais2031 ? false # set the seeding strategy to be compliant with AIS 20/31 -, sp80090c ? false # set compliance with NIST SP800-90C -, cryptoBackend ? "botan" # set backend for hash and drbg operations -, linuxDevFiles ? true # enable linux /dev/random and /dev/urandom support -, linuxGetRandom ? true # enable linux getrandom support -, hashSha512 ? false # set the conditioning hash: SHA2-512 -, hashSha3_512 ? true # set the conditioning hash: SHA3-512 -, openSSLRandProvider ? true # build ESDM provider for OpenSSL 3.x -, botanRng ? true # build ESDM class for Botan 3.x - -# client-related options (handle with care, consult source code and meson options) -# leave as is if in doubt -, connectTimeoutExponent ? 28 # (1 << EXPONENT nanoseconds) -, rxTxTimeoutExponent ? 28 # (1 << EXPONENT nanoseconds) -, reconnectAttempts ? 10 # how often to attempt unix socket connection before giving up - -# entropy sources -, esJitterRng ? true # enable support for the entropy source: jitter rng (running in user space) -, esJitterRngEntropyRate ? 256 # amount of entropy to account for jitter rng source -, esJitterRngKernel ? true # enable support for the entropy source: jitter rng (running in kernel space) -, esJitterRngKernelEntropyRate ? 256 # amount of entropy to account for kernel jitter rng source -, esCPU ? true # enable support for the entropy source: cpu-based entropy -, esCPUEntropyRate ? 8 # amount of entropy to account for cpu rng source -, esKernel ? true # enable support for the entropy source: kernel-based entropy -, esKernelEntropyRate ? 128 # amount of entropy to account for kernel-based source -, esIRQ ? false # enable support for the entropy source: interrupt-based entropy -, esIRQEntropyRate ? 256 # amount of entropy to account for interrupt-based source (only set irq XOR sched != 0) -, esSched ? false # enable support for the entropy source: scheduler-based entropy -, esSchedEntropyRate ? 0 # amount of entropy to account for interrupt-based source (only set irq XOR sched != 0) -, esHwrand ? true # enable support for the entropy source: /dev/hwrng -, esHwrandEntropyRate ? 128 # amount of entropy to account for /dev/hwrng-based sources -}: - -assert drngHashDrbg != drngChaCha20; -assert hashSha512 != hashSha3_512; -assert cryptoBackend == "openssl" || cryptoBackend == "botan" || cryptoBackend == "builtin" "Unsupported ESDM crypto backend"; - -stdenv.mkDerivation rec { - pname = "esdm"; - version = "1.1.0"; - - src = fetchFromGitHub { - owner = "smuellerDD"; - repo = "esdm"; - rev = "v${version}"; - sha256 = "sha256-UH6ws/hfHdcmbLETyZ0b4wDm8nHPdLsot3ZhIljpUlw="; - }; - - nativeBuildInputs = [ meson pkg-config ninja ]; - buildInputs = [ protobufc ] - ++ lib.optional (cryptoBackend == "botan" || botanRng) botan3 - ++ lib.optional (cryptoBackend == "openssl" || openSSLRandProvider) openssl - ++ lib.optional selinux libselinux - ++ lib.optional esJitterRng jitterentropy - ++ lib.optional linuxDevFiles fuse3 - ++ lib.optional esJitterRngKernel libkcapi; - - mesonFlags = [ - (lib.mesonBool "b_lto" false) - (lib.mesonBool "fips140" false) - (lib.mesonBool "ais2031" ais2031) - (lib.mesonBool "sp80090c" sp80090c) - (lib.mesonEnable "node" true) # multiple DRNGs - (lib.mesonOption "threading_max_threads" (toString 64)) - (lib.mesonOption "crypto_backend" cryptoBackend) - (lib.mesonEnable "linux-devfiles" linuxDevFiles) - (lib.mesonEnable "linux-getrandom" linuxGetRandom) - (lib.mesonOption "client-connect-timeout-exponent" (toString connectTimeoutExponent)) - (lib.mesonOption "client-rx-tx-timeout-exponent" (toString rxTxTimeoutExponent)) - (lib.mesonOption "client-reconnect-attempts" (toString reconnectAttempts)) - (lib.mesonEnable "es_jent" esJitterRng) - (lib.mesonOption "es_jent_entropy_rate" (toString esJitterRngEntropyRate)) - (lib.mesonEnable "es_jent_kernel" esJitterRngKernel) - (lib.mesonOption "es_jent_kernel_entropy_rate" (toString esJitterRngKernelEntropyRate)) - (lib.mesonEnable "es_cpu" esCPU) - (lib.mesonOption "es_cpu_entropy_rate" (toString esCPUEntropyRate)) - (lib.mesonEnable "es_kernel" esKernel) - (lib.mesonOption "es_kernel_entropy_rate" (toString esKernelEntropyRate)) - (lib.mesonEnable "es_irq" esIRQ) - (lib.mesonOption "es_irq_entropy_rate" (toString esIRQEntropyRate)) - (lib.mesonEnable "es_sched" esSched) - (lib.mesonOption "es_sched_entropy_rate" (toString esSchedEntropyRate)) - (lib.mesonEnable "es_hwrand" esHwrand) - (lib.mesonOption "es_hwrand_entropy_rate" (toString esHwrandEntropyRate)) - (lib.mesonEnable "hash_sha512" hashSha512) - (lib.mesonEnable "hash_sha3_512" hashSha3_512) - (lib.mesonEnable "selinux" selinux) - (lib.mesonEnable "drng_hash_drbg" drngHashDrbg) - (lib.mesonEnable "drng_chacha20" drngChaCha20) - (lib.mesonEnable "openssl-rand-provider" openSSLRandProvider) - (lib.mesonEnable "botan-rng" botanRng) - ]; - - doCheck = true; - - strictDeps = true; - mesonBuildType = "release"; - - meta = { - homepage = "https://www.chronox.de/esdm.html"; - description = "Entropy Source and DRNG Manager in user space"; - license = with lib.licenses; [ gpl2Only bsd3 ]; - platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ orichter thillux ]; - }; -} diff --git a/pkgs/os-specific/linux/ethq/default.nix b/pkgs/os-specific/linux/ethq/default.nix deleted file mode 100644 index 581382e4faf2..000000000000 --- a/pkgs/os-specific/linux/ethq/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, ncurses }: - -stdenv.mkDerivation rec { - pname = "ethq"; - version = "0.6.3"; - - src = fetchFromGitHub { - owner = "isc-projects"; - repo = "ethq"; - rev = "refs/tags/v${builtins.replaceStrings ["."] ["_"] version}"; - hash = "sha256-dr37KiSnP0S0OjQof242EcbH+y4pCCzu6R9D6fXR9qc="; - }; - - buildInputs = [ ncurses ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - install -m0755 ethq $out/bin/ethq - - runHook postInstall - ''; - - meta = with lib; { - description = "Ethernet NIC Queue stats viewer"; - mainProgram = "ethq"; - homepage = "https://github.com/isc-projects/ethq"; - license = licenses.mpl20; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/evdi/default.nix b/pkgs/os-specific/linux/evdi/default.nix deleted file mode 100644 index 25a82b1806ca..000000000000 --- a/pkgs/os-specific/linux/evdi/default.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, kernel -, libdrm -, python3 -}: - -let - python3WithLibs = python3.withPackages (ps: with ps; [ - pybind11 - ]); -in -stdenv.mkDerivation (finalAttrs: { - pname = "evdi"; - version = "1.14.4"; - - src = fetchFromGitHub { - owner = "DisplayLink"; - repo = "evdi"; - rev = "refs/tags/v${finalAttrs.version}"; - hash = "sha256-+T2shA6n+A0c20+/ZZoXmspH7uPdIRaHT1Cj7BxpL+U="; - }; - - env.NIX_CFLAGS_COMPILE = toString [ - "-Wno-error" - "-Wno-error=discarded-qualifiers" # for Linux 4.19 compatibility - "-Wno-error=sign-compare" - ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - buildInputs = [ - kernel - libdrm - python3WithLibs - ]; - - makeFlags = kernel.makeFlags ++ [ - "KVER=${kernel.modDirVersion}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - hardeningDisable = [ "format" "pic" "fortify" ]; - - installPhase = '' - runHook preInstall - install -Dm755 module/evdi.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/gpu/drm/evdi/evdi.ko - install -Dm755 library/libevdi.so $out/lib/libevdi.so - runHook postInstall - ''; - - enableParallelBuilding = true; - - meta = with lib; { - broken = kernel.kernelOlder "4.19"; - changelog = "https://github.com/DisplayLink/evdi/releases/tag/v${finalAttrs.version}"; - description = "Extensible Virtual Display Interface"; - homepage = "https://www.displaylink.com/"; - license = with licenses; [ lgpl21Only gpl2Only ]; - maintainers = with maintainers; [ ]; - platforms = platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/eventstat/default.nix b/pkgs/os-specific/linux/eventstat/default.nix deleted file mode 100644 index 3c551939c7cf..000000000000 --- a/pkgs/os-specific/linux/eventstat/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, ncurses }: - -stdenv.mkDerivation rec { - pname = "eventstat"; - version = "0.06.00"; - - src = fetchFromGitHub { - owner = "ColinIanKing"; - repo = pname; - rev = "V${version}"; - hash = "sha256-lCtXILpZn1/laRnsfE5DlQQQKKvfHxOJu87SkpWKeTE="; - }; - - buildInputs = [ ncurses ]; - installFlags = [ - "BINDIR=${placeholder "out"}/bin" - "MANDIR=${placeholder "out"}/share/man/man8" - "BASHDIR=${placeholder "out"}/share/bash-completion/completions" - ]; - - meta = with lib; { - description = "Simple monitoring of system events"; - mainProgram = "eventstat"; - homepage = "https://github.com/ColinIanKing/eventstat"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/exfat/default.nix b/pkgs/os-specific/linux/exfat/default.nix deleted file mode 100644 index 3d2445df4980..000000000000 --- a/pkgs/os-specific/linux/exfat/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, kernel }: - -stdenv.mkDerivation rec { - name = "exfat-nofuse-${version}-${kernel.version}"; - version = "2020-04-15"; - - src = fetchFromGitHub { - owner = "barrybingo"; - repo = "exfat-nofuse"; - rev = "297a5739cd4a942a1d814d05a9cd9b542e7b8fc8"; - sha256 = "14jahy7n6pr482fjfrlf9ck3f2rkr5ds0n5r85xdfsla37ria26d"; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "ARCH=${stdenv.hostPlatform.linuxArch}" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; - - installPhase = '' - install -m644 -b -D exfat.ko $out/lib/modules/${kernel.modDirVersion}/kernel/fs/exfat/exfat.ko - ''; - - meta = { - description = "exfat kernel module"; - inherit (src.meta) homepage; - license = lib.licenses.gpl2; - maintainers = with lib.maintainers; [ makefu ]; - platforms = lib.platforms.linux; - broken = true; - }; -} diff --git a/pkgs/os-specific/linux/extrace/default.nix b/pkgs/os-specific/linux/extrace/default.nix deleted file mode 100644 index e4afe6f85039..000000000000 --- a/pkgs/os-specific/linux/extrace/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "extrace"; - version = "0.9"; - - src = fetchFromGitHub { - owner = "leahneukirchen"; - repo = "extrace"; - rev = "v${version}"; - hash = "sha256-Jy/Ac3NcqBkW0kHyypMAVUGAQ41qWM96BbLAym06ogM="; - }; - - makeFlags = [ "PREFIX=${placeholder "out"}" ]; - - postInstall = '' - install -dm755 "$out/share/licenses/extrace/" - install -m644 LICENSE "$out/share/licenses/extrace/LICENSE" - ''; - - meta = with lib; { - homepage = "https://github.com/leahneukirchen/extrace"; - description = "Trace exec() calls system-wide"; - license = with licenses; [ gpl2Plus bsd2 ]; - platforms = platforms.linux; - maintainers = [ maintainers.leahneukirchen ]; - }; -} diff --git a/pkgs/os-specific/linux/facetimehd/default.nix b/pkgs/os-specific/linux/facetimehd/default.nix deleted file mode 100644 index ceba075758a6..000000000000 --- a/pkgs/os-specific/linux/facetimehd/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - name = "facetimehd-${version}-${kernel.version}"; - version = "0.6.8.1"; - - # Note: When updating this revision: - # 1. Also update pkgs/os-specific/linux/firmware/facetimehd-firmware/ - # 2. Test the module and firmware change via: - # a. Give some applications a try (Skype, Hangouts, Cheese, etc.) - # b. Run: journalctl -f - # c. Then close the lid - # d. Then open the lid (and maybe press a key to wake it up) - # e. see if the module loads back (apps using the camera won't - # recover and will have to be restarted) and the camera - # still works. - src = fetchFromGitHub { - owner = "patjak"; - repo = "facetimehd"; - rev = version; - sha256 = "sha256-h5Erga2hlDIWdDKQbkmkLY1aNCibFM7SVSnxVcoToaM="; - }; - - preConfigure = '' - export INSTALL_MOD_PATH="$out" - ''; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - meta = with lib; { - homepage = "https://github.com/patjak/bcwc_pcie"; - description = "Linux driver for the Facetime HD (Broadcom 1570) PCIe webcam"; - license = licenses.gpl2; - maintainers = with maintainers; [ womfoo grahamc kraem ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/fan2go/default.nix b/pkgs/os-specific/linux/fan2go/default.nix deleted file mode 100644 index cb8ff5a84b74..000000000000 --- a/pkgs/os-specific/linux/fan2go/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ buildGoModule, fetchFromGitHub, lib, lm_sensors }: - -buildGoModule rec { - pname = "fan2go"; - version = "0.8.1"; - - src = fetchFromGitHub { - owner = "markusressel"; - repo = pname; - rev = version; - hash = "sha256-w2Qwu3ZmBkoA86xa7V6pnIBAbfG9mtkAHePkQjefRW8="; - }; - - vendorHash = "sha256-6OEdl7ie0dTjXrG//Fvcg4ZyTW/mhrUievDljY2zi/4="; - - postConfigure = '' - substituteInPlace vendor/github.com/md14454/gosensors/gosensors.go \ - --replace '"/etc/sensors3.conf"' '"${lm_sensors}/etc/sensors3.conf"' - ''; - - CGO_CFLAGS = "-I ${lm_sensors}/include"; - CGO_LDFLAGS = "-L ${lm_sensors}/lib"; - - meta = with lib; { - description = "A simple daemon providing dynamic fan speed control based on temperature sensors"; - mainProgram = "fan2go"; - homepage = "https://github.com/markusressel/fan2go"; - license = licenses.agpl3Plus; - maintainers = with maintainers; [ mtoohey ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/fanctl/default.nix b/pkgs/os-specific/linux/fanctl/default.nix deleted file mode 100644 index f55779bd9165..000000000000 --- a/pkgs/os-specific/linux/fanctl/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, fetchFromGitLab, rustPlatform }: - -rustPlatform.buildRustPackage rec { - version = "0.6.4"; - pname = "fanctl"; - - src = fetchFromGitLab { - owner = "mcoffin"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-XmawybmqRJ9Lj6ii8TZBFwqdQZVp0pOLN4xiSLkU/bw="; - }; - - cargoSha256 = "sha256-tj00DXQEqC/8+3uzTMWcph+1fNTTVZLSJbV/5lLFkFs="; - - meta = with lib; { - description = "Replacement for fancontrol with more fine-grained control interface in its config file"; - mainProgram = "fanctl"; - homepage = "https://gitlab.com/mcoffin/fanctl"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ icewind1991 ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/fanout/default.nix b/pkgs/os-specific/linux/fanout/default.nix deleted file mode 100644 index 3352f59a05f7..000000000000 --- a/pkgs/os-specific/linux/fanout/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, kmod }: - -stdenv.mkDerivation rec { - pname = "fanout"; - version = "unstable-2022-10-17-${kernel.version}"; - - src = fetchFromGitHub { - owner = "bob-linuxtoys"; - repo = "fanout"; - rev = "69b1cc69bf425d1a5f83b4e84d41272f1caa0144"; - hash = "sha256-Q19c88KDFu0A6MejZgKYei9J2693EjRkKtR9hcRcHa0="; - }; - - preBuild = '' - substituteInPlace Makefile --replace "modules_install" "INSTALL_MOD_PATH=$out modules_install" - ''; - - patches = [ - ./remove_auto_mknod.patch - ]; - - hardeningDisable = [ "format" "pic" ]; - - nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - meta = with lib; { - description = "Kernel-based publish-subscribe system"; - homepage = "https://github.com/bob-linuxtoys/fanout"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ therishidesai ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/fanout/remove_auto_mknod.patch b/pkgs/os-specific/linux/fanout/remove_auto_mknod.patch deleted file mode 100644 index 1f62e2b4633b..000000000000 --- a/pkgs/os-specific/linux/fanout/remove_auto_mknod.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/fanout.c b/fanout.c -index f5d2a55..87125f4 100644 ---- a/fanout.c -+++ b/fanout.c -@@ -13,7 +13,7 @@ - /* Comment out to forgo the creation of /dev entries - * The companion udev rules 'fanout.rules' sets the special file mode - */ --#define DEV_MKNOD -+// #define DEV_MKNOD - - #include <linux/kernel.h> - #include <linux/module.h> diff --git a/pkgs/os-specific/linux/fatrace/default.nix b/pkgs/os-specific/linux/fatrace/default.nix deleted file mode 100644 index 487ad533668f..000000000000 --- a/pkgs/os-specific/linux/fatrace/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv -, fetchFromGitHub -, python3 -, which -}: - -stdenv.mkDerivation rec { - pname = "fatrace"; - version = "0.17.0"; - - src = fetchFromGitHub { - owner = "martinpitt"; - repo = pname; - rev = version; - sha256 = "sha256-MRHM+hyuRevK4L3u6dGw1S3O7w+BJBsprJVcSz6Q9xg="; - }; - - buildInputs = [ python3 which ]; - - postPatch = '' - substituteInPlace power-usage-report \ - --replace "'which'" "'${which}/bin/which'" - ''; - - makeFlags = [ "PREFIX=$(out)" ]; - - meta = with lib; { - description = "Report system-wide file access events"; - homepage = "https://github.com/martinpitt/fatrace"; - license = licenses.gpl3Plus; - longDescription = '' - fatrace reports file access events from all running processes. - Its main purpose is to find processes which keep waking up the disk - unnecessarily and thus prevent some power saving. - Requires a Linux kernel with the FANOTIFY configuration option enabled. - Enabling X86_MSR is also recommended for power-usage-report on x86. - ''; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/fbterm/default.nix b/pkgs/os-specific/linux/fbterm/default.nix deleted file mode 100644 index 8704c72a21ba..000000000000 --- a/pkgs/os-specific/linux/fbterm/default.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ stdenv -, autoreconfHook -, fetchFromGitLab -, fetchpatch -, fetchurl -, fontconfig -, freetype -, gpm -, lib -, ncurses -, pkg-config -}: - -stdenv.mkDerivation rec { - version = "1.7-2"; - pname = "fbterm"; - - src = fetchFromGitLab { - domain = "salsa.debian.org"; - owner = "debian"; - repo = pname; - rev = "debian/${version}"; - hash = "sha256-vRUZgFpA1IkzkLzl7ImT+Yff5XqjFbUlkHmj/hd7XDE="; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ncurses - ]; - buildInputs = [ - gpm - freetype - fontconfig - ncurses - ]; - - makeFlags = [ - "AR:=$(AR)" - ]; - - # preConfigure = '' - # sed -e '/ifdef SYS_signalfd/atypedef long long loff_t;' -i src/fbterm.cpp - # sed -e '/install-exec-hook:/,/^[^\t]/{d}; /.NOEXPORT/iinstall-exec-hook:\ - # ' -i src/Makefile.in - # export HOME=$PWD; - # export NIX_LDFLAGS="$NIX_LDFLAGS -lfreetype" - # ''; - - preInstall = '' - export HOME=$PWD - ''; - - postInstall = - let - fbtermrc = fetchurl { - url = "https://aur.archlinux.org/cgit/aur.git/plain/fbtermrc?h=fbterm"; - hash = "sha256-zNIfi2ZjEGc5PLdOIirKGTXESb5Wm5XBAI1sfHa31LY="; - }; - in - '' - mkdir -p "$out/share/terminfo" - tic -a -v2 -o"$out/share/terminfo" terminfo/fbterm - - mkdir -p "$out/etc/fbterm" - cp "${fbtermrc}" "$out/etc/fbterm" - ''; - - # Patches from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=fbterm - patches = [ - (fetchpatch { - url = "https://aur.archlinux.org/cgit/aur.git/plain/fbconfig.patch?h=fbterm"; - hash = "sha256-skCdUqyMkkqxS1YUI7cofsfnNNo3SL/qe4WEIXlhm/s="; - }) - (fetchpatch { - url = "https://aur.archlinux.org/cgit/aur.git/plain/color_palette.patch?h=fbterm"; - hash = "sha256-SkWxzfapyBTtMpTXkiFHRAw8/uXw7cAWwg5Q3TqWlk8="; - }) - (fetchpatch { - url = "https://aur.archlinux.org/cgit/aur.git/plain/fbterm.patch?h=fbterm"; - hash = "sha256-XNHBTGQGeaQPip2XgcKlr123VDwils2pnyiGqkBGhzU="; - }) - (fetchpatch { - url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-Fix-build-with-gcc-6.patch?h=fbterm"; - hash = "sha256-3d3zBvr5upICVVkd6tn63IhuB0sF67f62aKnf8KvOwg="; - }) - (fetchpatch { - url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_ftbfs_crosscompile.patch?h=fbterm"; - hash = "sha256-jv/FSG6dHR0jKjPXQIfqsvpiT/XYzwv/VwuV+qUSovM="; - }) - (fetchpatch { - url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_ftbfs_epoll.patch?h=fbterm"; - hash = "sha256-wkhfG0uY/5ZApcXTERkaKqz5IDpnilxUEcxull4645A="; - }) - ]; - - meta = with lib; { - description = "Framebuffer terminal emulator"; - mainProgram = "fbterm"; - homepage = "https://salsa.debian.org/debian/fbterm"; - maintainers = with maintainers; [ lovesegfault raskin ]; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/fbterm/select.patch b/pkgs/os-specific/linux/fbterm/select.patch deleted file mode 100644 index 549674047a93..000000000000 --- a/pkgs/os-specific/linux/fbterm/select.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/fbio.cpp b/src/fbio.cpp -index e5afc44..2485227 100644 ---- a/src/fbio.cpp -+++ b/src/fbio.cpp -@@ -18,6 +18,7 @@ - * - */ - -+#include <sys/select.h> - #include <unistd.h> - #include <fcntl.h> - #include "config.h" diff --git a/pkgs/os-specific/linux/ffado/default.nix b/pkgs/os-specific/linux/ffado/default.nix deleted file mode 100644 index dfa974e3e683..000000000000 --- a/pkgs/os-specific/linux/ffado/default.nix +++ /dev/null @@ -1,124 +0,0 @@ -{ lib -, stdenv -, mkDerivation -, argp-standalone -, dbus -, dbus_cplusplus -, desktop-file-utils -, fetchurl -, fetchpatch -, glibmm -, kernel -, libavc1394 -, libconfig -, libiec61883 -, libraw1394 -, libxmlxx3 -, pkg-config -, python3 -, scons -, which -, wrapQtAppsHook -}: - -let - inherit (python3.pkgs) pyqt5 dbus-python; - python = python3.withPackages (pkgs: with pkgs; [ pyqt5 dbus-python ]); -in -mkDerivation rec { - pname = "ffado"; - version = "2.4.8"; - - src = fetchurl { - url = "http://www.ffado.org/files/libffado-${version}.tgz"; - hash = "sha256-f0x561ehKw6uMSri0RZip+v1JHZuhixtywl0PVU/N44="; - }; - - sourceRoot = "libffado-${version}/libffado"; - - prePatch = '' - substituteInPlace ./support/tools/ffado-diag.in \ - --replace /lib/modules/ "/run/booted-system/kernel-modules/lib/modules/" - ''; - - patches = [ - # fix installing metainfo file - ./fix-build.patch - - (fetchpatch { - name = "musl.patch"; - url = "http://subversion.ffado.org/changeset?format=diff&new=2846&old=2845"; - stripLen = 2; - hash = "sha256-iWeYnb5J69Uvo1lftc7MWg7WrLa+CGZyOwJPOe8/PKg="; - }) - ]; - - outputs = [ "out" "bin" "dev" ]; - - nativeBuildInputs = [ - desktop-file-utils - scons - pkg-config - which - python - pyqt5 - wrapQtAppsHook - ]; - - prefixKey = "PREFIX="; - sconsFlags = [ - "DEBUG=False" - "ENABLE_ALL=True" - "BUILD_TESTS=True" - "WILL_DEAL_WITH_XDG_MYSELF=True" - "BUILD_MIXER=True" - "UDEVDIR=${placeholder "out"}/lib/udev/rules.d" - "PYPKGDIR=${placeholder "out"}/${python3.sitePackages}" - "BINDIR=${placeholder "bin"}/bin" - "INCLUDEDIR=${placeholder "dev"}/include" - "PYTHON_INTERPRETER=${python.interpreter}" - ]; - - buildInputs = [ - dbus - dbus_cplusplus - glibmm - libavc1394 - libconfig - libiec61883 - libraw1394 - libxmlxx3 - python - ] ++ lib.optionals (!stdenv.hostPlatform.isGnu) [ - argp-standalone - ]; - - NIX_LDFLAGS = lib.optionalString (!stdenv.hostPlatform.isGnu) "-largp"; - - enableParallelBuilding = true; - dontWrapQtApps = true; - - postInstall = '' - desktop="$bin/share/applications/ffado-mixer.desktop" - install -DT -m 444 support/xdg/ffado.org-ffadomixer.desktop $desktop - substituteInPlace "$desktop" \ - --replace Exec=ffado-mixer "Exec=$bin/bin/ffado-mixer" \ - --replace hi64-apps-ffado ffado-mixer - install -DT -m 444 support/xdg/hi64-apps-ffado.png "$bin/share/icons/hicolor/64x64/apps/ffado-mixer.png" - - # prevent build tools from leaking into closure - echo 'See `nix-store --query --tree ${placeholder "out"}`.' > $out/lib/libffado/static_info.txt - ''; - - preFixup = '' - wrapQtApp $bin/bin/ffado-mixer - ''; - - meta = with lib; { - homepage = "http://www.ffado.org"; - description = "FireWire audio drivers"; - license = licenses.gpl3; - maintainers = with maintainers; [ goibhniu michojel ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ffado/fix-build.patch b/pkgs/os-specific/linux/ffado/fix-build.patch deleted file mode 100644 index 7e360932613f..000000000000 --- a/pkgs/os-specific/linux/ffado/fix-build.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b0f2b20b23780dd2e67a01c15462070dd86c4ac1 Mon Sep 17 00:00:00 2001 -From: Jan Tojnar <jtojnar@gmail.com> -Date: Sun, 3 Mar 2019 11:50:27 +0100 -Subject: [PATCH] Fix build on Nix - -We do not have global /usr. ---- - SConstruct | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/SConstruct b/SConstruct -index 05755e4b..3fbdc1d8 100644 ---- a/SConstruct -+++ b/SConstruct -@@ -537,7 +537,7 @@ env['mandir'] = Template( env.destdir + env['MANDIR'] ).safe_substitute( env ) - env['pypkgdir'] = Template( env.destdir + env['PYPKGDIR'] ).safe_substitute( env ) - env['udevdir'] = Template( env.destdir + env['UDEVDIR'] ).safe_substitute( env ) - env['PYPKGDIR'] = Template( env['PYPKGDIR'] ).safe_substitute( env ) --env['metainfodir'] = Template( env.destdir + "/usr/share/metainfo" ).safe_substitute( env ) -+env['metainfodir'] = Template( env.destdir + env['SHAREDIR'] + "/metainfo" ).safe_substitute( env ) - - env.Command( target=env['sharedir'], source="", action=Mkdir( env['sharedir'] ) ) - --- -2.19.2 - diff --git a/pkgs/os-specific/linux/firejail/default.nix b/pkgs/os-specific/linux/firejail/default.nix deleted file mode 100644 index 64607c5653eb..000000000000 --- a/pkgs/os-specific/linux/firejail/default.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, pkg-config -, libapparmor -, which -, xdg-dbus-proxy -, nixosTests -}: - -stdenv.mkDerivation rec { - pname = "firejail"; - version = "0.9.72"; - - src = fetchFromGitHub { - owner = "netblue30"; - repo = "firejail"; - rev = version; - sha256 = "sha256-XAlb6SSyY2S1iWDaulIlghQ16OGvT/wBCog95/nxkog="; - }; - - nativeBuildInputs = [ - pkg-config - ]; - - buildInputs = [ - libapparmor - which - ]; - - configureFlags = [ - "--enable-apparmor" - ]; - - patches = [ - # Adds the /nix directory when using an overlay. - # Required to run any programs under this mode. - ./mount-nix-dir-on-overlay.patch - - # By default fbuilder hardcodes the firejail binary to the install path. - # On NixOS the firejail binary is a setuid wrapper available in $PATH. - ./fbuilder-call-firejail-on-path.patch - ]; - - prePatch = '' - # Fix the path to 'xdg-dbus-proxy' hardcoded in the 'common.h' file - substituteInPlace src/include/common.h \ - --replace '/usr/bin/xdg-dbus-proxy' '${xdg-dbus-proxy}/bin/xdg-dbus-proxy' - - # Workaround for regression introduced in 0.9.72 preventing usage of - # end-of-options indicator "--" - # See https://github.com/netblue30/firejail/issues/5659 - substituteInPlace src/firejail/sandbox.c \ - --replace " && !arg_doubledash" "" - ''; - - preConfigure = '' - sed -e 's@/bin/bash@${stdenv.shell}@g' -i $( grep -lr /bin/bash .) - sed -e "s@/bin/cp@$(which cp)@g" -i $( grep -lr /bin/cp .) - ''; - - preBuild = '' - sed -e "s@/etc/@$out/etc/@g" -e "/chmod u+s/d" -i Makefile - ''; - - # The profile files provided with the firejail distribution include `.local` - # profile files using relative paths. The way firejail works when it comes to - # handling includes is by looking target files up in `~/.config/firejail` - # first, and then trying `SYSCONFDIR`. The latter normally points to - # `/etc/filejail`, but in the case of nixos points to the nix store. This - # makes it effectively impossible to place any profile files in - # `/etc/firejail`. - # - # The workaround applied below is by creating a set of `.local` files which - # only contain respective includes to `/etc/firejail`. This way - # `~/.config/firejail` still takes precedence, but `/etc/firejail` will also - # be searched in second order. This replicates the behaviour from - # non-nixos platforms. - # - # See https://github.com/netblue30/firejail/blob/e4cb6b42743ad18bd11d07fd32b51e8576239318/src/firejail/profile.c#L68-L83 - # for the profile file lookup implementation. - postInstall = '' - for local in $(grep -Eh '^include.*local$' $out/etc/firejail/*{.inc,.profile} | awk '{print $2}' | sort | uniq) - do - echo "include /etc/firejail/$local" >$out/etc/firejail/$local - done - ''; - - # At high parallelism, the build sometimes fails with: - # bash: src/fsec-optimize/fsec-optimize: No such file or directory - enableParallelBuilding = false; - - passthru.tests = nixosTests.firejail; - - meta = { - description = "Namespace-based sandboxing tool for Linux"; - license = lib.licenses.gpl2Plus; - maintainers = [ lib.maintainers.raskin ]; - platforms = lib.platforms.linux; - homepage = "https://firejail.wordpress.com/"; - }; -} diff --git a/pkgs/os-specific/linux/firejail/fbuilder-call-firejail-on-path.patch b/pkgs/os-specific/linux/firejail/fbuilder-call-firejail-on-path.patch deleted file mode 100644 index 548bb80e7bf7..000000000000 --- a/pkgs/os-specific/linux/firejail/fbuilder-call-firejail-on-path.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/fbuilder/build_profile.c -+++ b/src/fbuilder/build_profile.c -@@ -48,7 +48,7 @@ - // build command - char *cmd[len]; - unsigned curr_len = 0; -- cmd[curr_len++] = BINDIR "/firejail"; -+ cmd[curr_len++] = "firejail"; - cmd[curr_len++] = "--quiet"; - cmd[curr_len++] = "--noprofile"; - cmd[curr_len++] = "--caps.drop=all"; diff --git a/pkgs/os-specific/linux/firejail/mount-nix-dir-on-overlay.patch b/pkgs/os-specific/linux/firejail/mount-nix-dir-on-overlay.patch deleted file mode 100644 index 6493eb4fdf26..000000000000 --- a/pkgs/os-specific/linux/firejail/mount-nix-dir-on-overlay.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/src/firejail/fs_overlayfs.c -+++ b/src/firejail/fs_overlayfs.c -@@ -327,6 +327,16 @@ - errExit("mounting /dev"); - fs_logger("whitelist /dev"); - -+ // mount-bind /nix -+ if (arg_debug) -+ printf("Mounting /nix\n"); -+ char *nix; -+ if (asprintf(&nix, "%s/nix", oroot) == -1) -+ errExit("asprintf"); -+ if (mount("/nix", nix, NULL, MS_BIND|MS_REC, NULL) < 0) -+ errExit("mounting /nix"); -+ fs_logger("whitelist /nix"); -+ - // mount-bind run directory - if (arg_debug) - printf("Mounting /run\n"); -@@ -384,6 +394,7 @@ - free(odiff); - free(owork); - free(dev); -+ free(nix); - free(run); - free(tmp); - } diff --git a/pkgs/os-specific/linux/firmware/ath9k/default.nix b/pkgs/os-specific/linux/firmware/ath9k/default.nix deleted file mode 100644 index ab342d68c135..000000000000 --- a/pkgs/os-specific/linux/firmware/ath9k/default.nix +++ /dev/null @@ -1,154 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchFromGitHub -, m4 -, cmake -, perl -, writeScript -, enableUnstable ? false -}: - -let - stableVersion = "1.4.0"; -in - -stdenv.mkDerivation (finalAttrs: { - pname = "ath9k-htc-blobless-firmware"; - version = if enableUnstable then "unstable-2022-05-22" else stableVersion; - - src = fetchFromGitHub ({ - owner = "qca"; - repo = "open-ath9k-htc-firmware"; - } // (if enableUnstable then { - rev = "d856466a068afe4069335257c0d28295ff777d92"; - hash = "sha256-9OE6qYGABeXjf1r/Depd+811EJ2e8I0Ni5ePHSOh9G4="; - } else { - rev = finalAttrs.version; - hash = "sha256-Q/A0ryIC5E1pt2Sh7o79gxHbe4OgdlrwflOWtxWSS5o="; - })); - - postPatch = '' - patchShebangs target_firmware/firmware-crc.pl - ''; - - nativeBuildInputs = [ m4 cmake perl ]; - - env.NIX_CFLAGS_COMPILE = "-w"; # old libiberty emits fatal warnings - - dontUseCmakeConfigure = true; - enableParallelBuilding = true; - - # The firmware repository builds its own toolchain, with patches - # applied to the xtensa support in both gcc and binutils. - preBuild = - let - inherit (lib) toUpper splitString last listToAttrs pipe; - inherit (builtins) map; - urls-and-hashes = import (./. + "/urls-and-hashes-${finalAttrs.version}.nix"); - make-links = pipe - [ "gcc" "binutils" "gmp" "mpfr" "mpc" ] - [ (map (vname: fetchurl rec { - url = urls-and-hashes."${(toUpper vname) + "_URL"}"; - sha256 = urls-and-hashes."${(toUpper vname) + "_SUM"}" or ""; - name = last (splitString "/" url); - })) - (map (v: "ln -sT ${v} toolchain/dl/${v.name}")) - (lib.concatStringsSep "\n") - ]; - in '' - mkdir -p toolchain/dl - ${make-links} - ''; - - makeTargets = [ "toolchain" "firmware" ]; - - installPhase = '' - runHook preInstall - install -Dt "$out/lib/firmware/ath9k_htc/" target_firmware/*.fw - # make symlinks so that firmware will be automatically found - ln -s htc_7010.fw "$out/lib/firmware/ath9k_htc/htc_7010-${stableVersion}.fw" - ln -s htc_9271.fw "$out/lib/firmware/ath9k_htc/htc_9271-${stableVersion}.fw" - runHook postInstall - ''; - - passthru = { - inherit (finalAttrs) src; - updateScript = writeScript "${finalAttrs.pname}-${finalAttrs.version}-updateScript" '' - nix-shell '<nixpkgs>' -A ${finalAttrs.pname}${lib.optionalString enableUnstable "-unstable"}.passthru.update \ - > pkgs/os-specific/linux/firmware/ath9k/urls-and-hashes-${finalAttrs.version}.nix - ''; - update = stdenv.mkDerivation { - name = "${finalAttrs.pname}-${finalAttrs.version}-update"; - shellHook = '' - echo 'rec {' - echo ' BASEDIR="$NIX_BUILD_TOP";' - make --dry-run --print-data-base -f ${finalAttrs.src}/Makefile download \ - | egrep '^[A-Z]+_(VER|URL|SUM|DIR) = ' \ - | sed 's_\([^ ]*\) = \(.*\)_\1 = "\2\";_' \ - | tr \( \{ \ - | tr \) \} - '' - # sha256 checksums were not added to upstream's Makefile until - # after the 1.4.0 release. The following line is needed for - # the `enableUnstable==false` build but not for the - # `enableUnstable==true` build. We can remove the lines below - # as soon as `enableUnstable==false` points to a version - # greater than 1.4.0. - + lib.optionalString (finalAttrs.version == "1.4.0") '' - echo 'GCC_SUM = "sha256-kuYcbcOgpEnmLXKjgYX9pVAWioZwLeoHEl69PsOZYoI=";' - echo 'MPFR_SUM = "sha256-e2bD8T3IOF8IJkyAWFPz4aju2rgHHVgvPmYZccms1f0=";' - echo 'MPC_SUM = "sha256-7VqBXP6lJdx3jfDLN0aLnBtVSq8w2TKLFDHKcFt0AP8=";' - echo 'GMP_SUM = "sha256-H1iKrMxBu5rtlG+f44Uhwm2LKQ0APF34B/ZWkPKq3sk=";' - echo 'BINUTILS_SUM = "sha256-KrLlsD4IbRLGKV+DGtrUaz4UEKOiNJM6Lo+sZssuehk=";' - '' + '' - echo '}' - exit - ''; - }; - }; - - meta = { - description = "Blobless, open source wifi firmware for ath9k_htc.ko"; - longDescription = '' - Firmware for Qualcomm Atheros cards which use the ath9k_htc.ko - Linux driver, supporting 802.11 abgn on both 2.4ghz and 5ghz - bands, 3x3-antenna MIMO, up to 600mbit/sec. - - Most devices which use this driver are based on the Qualcomm - Atheros AR9271 chip, which is a PCIe device. If your device - is connected via USB, it will also include a Qualcomm Atheros - AR7010, which bridges from a USB gadget interface to a PCIe - host interface. This repository includes the firmware for - both chips. - - This firmware is completely open source with no blobs, which - is quite rare in the wifi world. Wifi chips have their own - dedicated general-purpose CPUs. This source code allows you - to see what those CPUs are doing and modify their behavior. - ''; - license = with lib.licenses; [ # see NOTICE.txt for details - bsd3 # almost everything; "the ClearBSD licence" - gpl2ClasspathPlus # **/*cmnos_printf.c, only three files - mit # **/xtos, **/xtensa - ]; - - # release 1.4.0 vendors a GMP which uses an ancient version of - # autotools that does not work on aarch64 or powerpc. - # However, enableUnstable (unreleased upstream) works. - /* - # disabled until #195294 is merged - badPlatforms = - with lib.systems.inspect.patterns; - lib.optionals (!enableUnstable && lib.versionOlder finalAttrs.version "1.4.1") [ - isAarch64 - isPower64 - ]; - */ - - sourceProvenance = [ lib.sourceTypes.fromSource ]; - homepage = "http://lists.infradead.org/mailman/listinfo/ath9k_htc_fw"; - downloadPage = "https://github.com/qca/open-ath9k-htc-firmware"; - changelog = "https://github.com/qca/open-ath9k-htc-firmware/tags"; - }; -}) diff --git a/pkgs/os-specific/linux/firmware/ath9k/urls-and-hashes-1.4.0.nix b/pkgs/os-specific/linux/firmware/ath9k/urls-and-hashes-1.4.0.nix deleted file mode 100644 index d67669c93b33..000000000000 --- a/pkgs/os-specific/linux/firmware/ath9k/urls-and-hashes-1.4.0.nix +++ /dev/null @@ -1,26 +0,0 @@ -rec { - BASEDIR="$NIX_BUILD_TOP"; -BINUTILS_URL = "https://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VER}.tar.bz2"; -DL_DIR = "${TOOLCHAIN_DIR}/dl"; -GMP_URL = "https://ftp.gnu.org/gnu/gmp/gmp-${GMP_VER}.tar.bz2"; -GCC_URL = "https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-${GCC_VER}.tar.bz2"; -BINUTILS_DIR = "binutils-${BINUTILS_VER}"; -GCC_VER = "4.7.4"; -MPFR_URL = "https://ftp.gnu.org/gnu/mpfr/mpfr-${MPFR_VER}.tar.bz2"; -MPC_VER = "1.0.1"; -GMP_DIR = "gmp-${GMP_VER}"; -MPC_URL = "https://ftp.gnu.org/gnu/mpc/mpc-${MPC_VER}.tar.gz"; -GCC_DIR = "gcc-${GCC_VER}"; -MPFR_DIR = "mpfr-${MPFR_VER}"; -MPC_DIR = "mpc-${MPC_VER}"; -MPFR_VER = "3.1.1"; -GMP_VER = "5.0.5"; -BINUTILS_VER = "2.23.1"; -BUILD_DIR = "${TOOLCHAIN_DIR}/build"; -TOOLCHAIN_DIR = "${BASEDIR}/toolchain"; -GCC_SUM = "sha256-kuYcbcOgpEnmLXKjgYX9pVAWioZwLeoHEl69PsOZYoI="; -MPFR_SUM = "sha256-e2bD8T3IOF8IJkyAWFPz4aju2rgHHVgvPmYZccms1f0="; -MPC_SUM = "sha256-7VqBXP6lJdx3jfDLN0aLnBtVSq8w2TKLFDHKcFt0AP8="; -GMP_SUM = "sha256-H1iKrMxBu5rtlG+f44Uhwm2LKQ0APF34B/ZWkPKq3sk="; -BINUTILS_SUM = "sha256-KrLlsD4IbRLGKV+DGtrUaz4UEKOiNJM6Lo+sZssuehk="; -} diff --git a/pkgs/os-specific/linux/firmware/ath9k/urls-and-hashes-unstable-2022-05-22.nix b/pkgs/os-specific/linux/firmware/ath9k/urls-and-hashes-unstable-2022-05-22.nix deleted file mode 100644 index 4234f91ef978..000000000000 --- a/pkgs/os-specific/linux/firmware/ath9k/urls-and-hashes-unstable-2022-05-22.nix +++ /dev/null @@ -1,26 +0,0 @@ -rec { - BASEDIR="$NIX_BUILD_TOP"; -BINUTILS_URL = "https://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VER}.tar.bz2"; -DL_DIR = "${TOOLCHAIN_DIR}/dl"; -GMP_SUM = "f51c99cb114deb21a60075ffb494c1a210eb9d7cb729ed042ddb7de9534451ea"; -GMP_URL = "https://ftp.gnu.org/gnu/gmp/gmp-${GMP_VER}.tar.bz2"; -GCC_URL = "https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-${GCC_VER}.tar.gz"; -BINUTILS_DIR = "binutils-${BINUTILS_VER}"; -GCC_VER = "10.2.0"; -MPFR_URL = "https://ftp.gnu.org/gnu/mpfr/mpfr-${MPFR_VER}.tar.bz2"; -MPC_VER = "1.1.0"; -GMP_DIR = "gmp-${GMP_VER}"; -MPC_URL = "https://ftp.gnu.org/gnu/mpc/mpc-${MPC_VER}.tar.gz"; -GCC_DIR = "gcc-${GCC_VER}"; -MPC_SUM = "6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e"; -GCC_SUM = "27e879dccc639cd7b0cc08ed575c1669492579529b53c9ff27b0b96265fa867d"; -BINUTILS_SUM = "7d24660f87093670738e58bcc7b7b06f121c0fcb0ca8fc44368d675a5ef9cff7"; -MPFR_DIR = "mpfr-${MPFR_VER}"; -MPC_DIR = "mpc-${MPC_VER}"; -MPFR_VER = "4.1.0"; -GMP_VER = "6.2.0"; -BINUTILS_VER = "2.35"; -BUILD_DIR = "${TOOLCHAIN_DIR}/build"; -MPFR_SUM = "feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926"; -TOOLCHAIN_DIR = "${BASEDIR}/toolchain"; -} diff --git a/pkgs/os-specific/linux/firmware/b43-firmware-cutter/default.nix b/pkgs/os-specific/linux/firmware/b43-firmware-cutter/default.nix deleted file mode 100644 index 65e259667516..000000000000 --- a/pkgs/os-specific/linux/firmware/b43-firmware-cutter/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "b43-fwcutter"; - version = "019"; - - src = fetchurl { - url = "https://bues.ch/b43/fwcutter/b43-fwcutter-${version}.tar.bz2"; - sha256 = "1ki1f5fy3yrw843r697f8mqqdz0pbsbqnvg4yzkhibpn1lqqbsnn"; - }; - - patches = [ ./no-root-install.patch ]; - - makeFlags = [ - "PREFIX=$(out)" - "CC=${stdenv.cc.targetPrefix}cc" - ]; - - meta = { - description = "Firmware extractor for cards supported by the b43 kernel module"; - mainProgram = "b43-fwcutter"; - homepage = "http://wireless.kernel.org/en/users/Drivers/b43"; - license = lib.licenses.bsd2; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/b43-firmware-cutter/no-root-install.patch b/pkgs/os-specific/linux/firmware/b43-firmware-cutter/no-root-install.patch deleted file mode 100644 index 578812e0ad0b..000000000000 --- a/pkgs/os-specific/linux/firmware/b43-firmware-cutter/no-root-install.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -Naur b43-fwcutter-015-orig/Makefile b43-fwcutter-015/Makefile ---- b43-fwcutter-015-orig/Makefile 2011-08-21 08:17:01.000000000 -0400 -+++ b43-fwcutter-015/Makefile 2012-07-13 17:57:53.002154557 -0400 -@@ -51,10 +51,10 @@ - $(QUIET_CC) $(CFLAGS) -o $(BIN) $(call OBJS,$(SRCS)) $(LDFLAGS) - - install: all -- install -d -o 0 -g 0 -m 755 $(PREFIX)/bin/ -- install -o 0 -g 0 -m 755 $(BIN) $(PREFIX)/bin/ -- install -d -o 0 -g 0 -m 755 $(PREFIX)/man/man1/ -- install -o 0 -g 0 -m 644 $(BIN).1 $(PREFIX)/man/man1/ -+ install -d -m 755 $(PREFIX)/bin/ -+ install -m 755 $(BIN) $(PREFIX)/bin/ -+ install -d -m 755 $(PREFIX)/man/man1/ -+ install -m 644 $(BIN).1 $(PREFIX)/man/man1/ - - clean: - -rm -Rf obj dep *.orig *.rej *~ diff --git a/pkgs/os-specific/linux/firmware/b43-firmware/5.1.138.nix b/pkgs/os-specific/linux/firmware/b43-firmware/5.1.138.nix deleted file mode 100644 index a5683a1ce535..000000000000 --- a/pkgs/os-specific/linux/firmware/b43-firmware/5.1.138.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenvNoCC, fetchurl, b43FirmwareCutter }: - -let version = "5.100.138"; in - -stdenvNoCC.mkDerivation { - pname = "b43-firmware"; - inherit version; - - src = fetchurl { - url = "http://www.lwfinger.com/b43-firmware/broadcom-wl-${version}.tar.bz2"; - sha256 = "0vz4ka8gycf72gmnaq61k8rh8y17j1wm2k3fidxvcqjvmix0drzi"; - }; - - nativeBuildInputs = [ b43FirmwareCutter ]; - - installPhase = '' - mkdir -p $out/lib/firmware - b43-fwcutter -w $out/lib/firmware linux/wl_apsta.o - ''; - - meta = { - description = "Firmware for cards supported by the b43 kernel module"; - homepage = "https://wireless.wiki.kernel.org/en/users/drivers/b43"; - license = lib.licenses.unfree; - }; -} diff --git a/pkgs/os-specific/linux/firmware/b43-firmware/6.30.163.46.nix b/pkgs/os-specific/linux/firmware/b43-firmware/6.30.163.46.nix deleted file mode 100644 index e117db45b182..000000000000 --- a/pkgs/os-specific/linux/firmware/b43-firmware/6.30.163.46.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenvNoCC, fetchurl, b43FirmwareCutter }: - -stdenvNoCC.mkDerivation rec { - pname = "b43-firmware"; - version = "6.30.163.46"; - - src = fetchurl { - url = "http://www.lwfinger.com/b43-firmware/broadcom-wl-${version}.tar.bz2"; - sha256 = "0baw6gcnrhxbb447msv34xg6rmlcj0gm3ahxwvdwfcvq4xmknz50"; - }; - - nativeBuildInputs = [ b43FirmwareCutter ]; - - sourceRoot = "."; - - installPhase = '' - mkdir -p $out/lib/firmware - b43-fwcutter -w $out/lib/firmware *.wl_apsta.o - ''; - - meta = with lib; { - description = "Firmware for cards supported by the b43 kernel module"; - homepage = "https://wireless.wiki.kernel.org/en/users/drivers/b43"; - downloadPage = "http://www.lwfinger.com/b43-firmware"; - license = licenses.unfree; - }; -} diff --git a/pkgs/os-specific/linux/firmware/broadcom-bt-firmware/default.nix b/pkgs/os-specific/linux/firmware/broadcom-bt-firmware/default.nix deleted file mode 100644 index 073d443bee41..000000000000 --- a/pkgs/os-specific/linux/firmware/broadcom-bt-firmware/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenvNoCC, fetchurl, cabextract, bt-fw-converter }: - -stdenvNoCC.mkDerivation rec { - pname = "broadcom-bt-firmware"; - version = "12.0.1.1012"; - - src = fetchurl { - url = "http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/04/852bb503-de7b-4810-a7dd-cbab62742f09_7cf83a4c194116648d17707ae37d564f9c70bec2.cab"; - sha256 = "1b1qjwxjk4y91l3iz157kms8601n0mmiik32cs6w9b1q4sl4pxx9"; - }; - - nativeBuildInputs = [ cabextract bt-fw-converter ]; - - unpackCmd = '' - mkdir -p ${pname}-${version} - cabextract $src --directory ${pname}-${version} - ''; - - installPhase = '' - mkdir -p $out/lib/firmware/brcm - bt-fw-converter -f bcbtums.inf -o $out/lib/firmware/brcm - for filename in $out/lib/firmware/brcm/*.hcd - do - linkname=$(basename $filename | awk 'match($0,/^(BCM)[0-9A-Z]+(-[0-9a-z]{4}-[0-9a-z]{4}\.hcd)$/,c) { print c[1]c[2] }') - if ! [ -z $linkname ] - then - ln -s --relative -T $filename $out/lib/firmware/brcm/$linkname - fi - done - ''; - - outputHashMode = "recursive"; - outputHashAlgo = "sha256"; - outputHash = "042frb2dmrqfj8q83h5p769q6hg2b3i8fgnyvs9r9a71z7pbsagq"; - - meta = with lib; { - description = "Firmware for Broadcom WIDCOMM® Bluetooth devices"; - homepage = "https://www.catalog.update.microsoft.com/Search.aspx?q=Broadcom+bluetooth"; - license = licenses.unfree; - platforms = platforms.linux; - maintainers = with maintainers; [ zraexy ]; - }; -} diff --git a/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix b/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix deleted file mode 100644 index 988aabd85779..000000000000 --- a/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchurl, makeWrapper, perl, perlPackages, bluez }: - -stdenv.mkDerivation rec { - pname = "bt-fw-converter"; - version = "2017-02-19"; - rev = "2d8b34402df01c6f7f4b8622de9e8b82fadf4153"; - - src = fetchurl { - url = "https://raw.githubusercontent.com/winterheart/broadcom-bt-firmware/${rev}/tools/bt-fw-converter.pl"; - sha256 = "c259b414a4a273c89a0fa7159b3ef73d1ea62b6de91c3a7c2fcc832868e39f4b"; - }; - - nativeBuildInputs = [ makeWrapper ]; - - buildInputs = [ perl perlPackages.RegexpGrammars bluez ]; - - unpackCmd = '' - mkdir -p ${pname}-${version} - cp $src ${pname}-${version}/bt-fw-converter.pl - ''; - - installPhase = '' - install -D -m755 bt-fw-converter.pl $out/bin/bt-fw-converter - substituteInPlace $out/bin/bt-fw-converter --replace /usr/bin/hex2hcd ${bluez}/bin/hex2hcd - wrapProgram $out/bin/bt-fw-converter --set PERL5LIB $PERL5LIB - ''; - - meta = with lib; { - homepage = "https://github.com/winterheart/broadcom-bt-firmware/"; - description = "A tool that converts hex to hcd based on inf file"; - mainProgram = "bt-fw-converter"; - license = licenses.mit; - platforms = platforms.linux; - maintainers = with maintainers; [ zraexy ]; - }; -} diff --git a/pkgs/os-specific/linux/firmware/facetimehd-calibration/default.nix b/pkgs/os-specific/linux/firmware/facetimehd-calibration/default.nix deleted file mode 100644 index ca6782688728..000000000000 --- a/pkgs/os-specific/linux/firmware/facetimehd-calibration/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib, stdenvNoCC, fetchurl, unrar-wrapper, pkgs }: - -let - - version = "5.1.5769"; - - - # Described on https://github.com/patjak/facetimehd/wiki/Extracting-the-sensor-calibration-files - - # From the wiki page, range extracted with binwalk: - zipUrl = "https://download.info.apple.com/Mac_OS_X/031-30890-20150812-ea191174-4130-11e5-a125-930911ba098f/bootcamp${version}.zip"; - zipRange = "2338085-3492508"; # the whole download is 518MB, this deflate stream is 1.2MB - - # CRC and length from the ZIP entry header (not strictly necessary, but makes it extract cleanly): - gzFooter = ''\x51\x1f\x86\x78\xcf\x5b\x12\x00''; - - # Also from the wiki page: - calibrationFiles = [ - { file = "1771_01XX.dat"; offset = "1644880"; size = "19040"; } - { file = "1871_01XX.dat"; offset = "1606800"; size = "19040"; } - { file = "1874_01XX.dat"; offset = "1625840"; size = "19040"; } - { file = "9112_01XX.dat"; offset = "1663920"; size = "33060"; } - ]; - -in - -stdenvNoCC.mkDerivation { - - pname = "facetimehd-calibration"; - inherit version; - src = fetchurl { - url = zipUrl; - sha256 = "1dzyv457fp6d8ly29sivqn6llwj5ydygx7p8kzvdnsp11zvid2xi"; - curlOpts = "-r ${zipRange}"; - }; - - dontUnpack = true; - dontInstall = true; - - buildInputs = [ unrar-wrapper ]; - - buildPhase = '' - { printf '\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00' - cat $src - printf '${gzFooter}' - } | zcat > AppleCamera64.exe - unrar x AppleCamera64.exe AppleCamera.sys - - mkdir -p $out/lib/firmware/facetimehd - '' + lib.concatMapStrings ({file, offset, size}: '' - dd bs=1 skip=${offset} count=${size} if=AppleCamera.sys of=$out/lib/firmware/facetimehd/${file} - '') calibrationFiles; - - meta = with lib; { - description = "facetimehd calibration"; - homepage = "https://support.apple.com/kb/DL1837"; - license = licenses.unfree; - maintainers = with maintainers; [ alexshpilkin womfoo grahamc ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; - -} diff --git a/pkgs/os-specific/linux/firmware/facetimehd-firmware/default.nix b/pkgs/os-specific/linux/firmware/facetimehd-firmware/default.nix deleted file mode 100644 index 6679f1f19e75..000000000000 --- a/pkgs/os-specific/linux/firmware/facetimehd-firmware/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ lib, stdenvNoCC, fetchurl, cpio, xz, pkgs }: - -let - - version = "1.43_5"; - - - # Updated according to https://github.com/patjak/bcwc_pcie/pull/81/files - # and https://github.com/patjak/bcwc_pcie/blob/5a7083bd98b38ef3bd223f7ee531d58f4fb0fe7c/firmware/Makefile#L3-L9 - # and https://github.com/patjak/bcwc_pcie/blob/5a7083bd98b38ef3bd223f7ee531d58f4fb0fe7c/firmware/extract-firmware.sh - - # From the Makefile: - dmgUrl = "https://updates.cdn-apple.com/2019/cert/041-88431-20191011-e7ee7d98-2878-4cd9-bc0a-d98b3a1e24b1/OSXUpd10.11.5.dmg"; - dmgRange = "204909802-207733123"; # the whole download is 1.3GB, this cuts it down to 2MB - # Notes: - # 1. Be sure to update the sha256 below in the fetch_url - # 2. Be sure to update the homepage in the meta - - # Also from the Makefile (OS_DRV, OS_DRV_DIR), but seems to not change: - firmwareIn = "./System/Library/Extensions/AppleCameraInterface.kext/Contents/MacOS/AppleCameraInterface"; - firmwareOut = "firmware.bin"; - - # The following are from the extract-firmware.sh - firmwareOffset = "81920"; # Variable: firmw_offsets - firmwareSize = "603715"; # Variable: firmw_sizes - - - # separated this here as the script will fail without the 'exit 0' - unpack = pkgs.writeScriptBin "unpack" '' - xzcat -Q $src | cpio --format odc -i -d ${firmwareIn} - exit 0 - ''; - -in - -stdenvNoCC.mkDerivation { - - pname = "facetimehd-firmware"; - inherit version; - src = fetchurl { - url = dmgUrl; - sha256 = "0s8crlh8rvpanzk1w4z3hich0a3mw0m5xhpcg07bxy02calhpdk1"; - curlOpts = "-r ${dmgRange}"; - }; - - dontUnpack = true; - dontInstall = true; - - buildInputs = [ cpio xz ]; - - buildPhase = '' - ${unpack}/bin/unpack - dd bs=1 skip=${firmwareOffset} count=${firmwareSize} if=${firmwareIn} of=${firmwareOut}.gz &> /dev/null - mkdir -p $out/lib/firmware/facetimehd - gunzip -c ${firmwareOut}.gz > $out/lib/firmware/facetimehd/${firmwareOut} - ''; - - meta = with lib; { - description = "facetimehd firmware"; - homepage = "https://support.apple.com/kb/DL1877"; - license = licenses.unfree; - maintainers = with maintainers; [ womfoo grahamc ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; - -} diff --git a/pkgs/os-specific/linux/firmware/firmware-manager/Cargo.lock b/pkgs/os-specific/linux/firmware/firmware-manager/Cargo.lock deleted file mode 100644 index db5008fda79b..000000000000 --- a/pkgs/os-specific/linux/firmware/firmware-manager/Cargo.lock +++ /dev/null @@ -1,4125 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aho-corasick" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" -dependencies = [ - "memchr", -] - -[[package]] -name = "anstream" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is-terminal", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" - -[[package]] -name = "anstyle-parse" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "anstyle-wincon" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" -dependencies = [ - "anstyle", - "windows-sys 0.48.0", -] - -[[package]] -name = "anyhow" -version = "1.0.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" - -[[package]] -name = "apply" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f47b57fc4521e3cae26a4d45b5227f8fadee4c345be0fefd8d5d1711afb8aeb9" - -[[package]] -name = "arc-swap" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" - -[[package]] -name = "async-broadcast" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" -dependencies = [ - "event-listener", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-executor" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" -dependencies = [ - "async-lock", - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "slab", -] - -[[package]] -name = "async-fs" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" -dependencies = [ - "async-lock", - "autocfg", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite", - "log", - "parking", - "polling", - "rustix", - "slab", - "socket2", - "waker-fn", -] - -[[package]] -name = "async-lock" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-recursion" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "async-task" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" - -[[package]] -name = "async-trait" -version = "0.1.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "atk" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" -dependencies = [ - "atk-sys", - "bitflags", - "glib", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "atomic-waker" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide 0.6.2", - "object", - "rustc-demangle", -] - -[[package]] -name = "base32" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" - -[[package]] -name = "better-panic" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa9e1d11a268684cbd90ed36370d7577afb6c62d912ddff5c15fc34343e5036" -dependencies = [ - "backtrace", - "console", -] - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blocking" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" -dependencies = [ - "async-channel", - "async-lock", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", - "log", -] - -[[package]] -name = "buildchain" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4ba006f08f732ddc25f629c349fbb89c67e6c90a4764ce04534d32a1940b0" -dependencies = [ - "base32", - "clap 3.2.25", - "lxd", - "plain", - "rand 0.8.5", - "reqwest", - "serde", - "serde_json", - "sha2 0.10.6", - "sodalite", - "tempdir", -] - -[[package]] -name = "bumpalo" -version = "3.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" - -[[package]] -name = "cairo-rs" -version = "0.15.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" -dependencies = [ - "bitflags", - "cairo-sys-rs", - "glib", - "libc", - "thiserror", -] - -[[package]] -name = "cairo-sys-rs" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "cascade" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d499b43edbf784dd81e16f0395f5b4350a35b477da8a074251087adefc11cb52" - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cdylib-link-lines" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a317db7ea5b455731e51d7f632762716fa5c0b1098dcaa6221e55e2386d170f2" -dependencies = [ - "serde", - "serde_derive", - "toml 0.5.11", -] - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cfg-expr" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9" -dependencies = [ - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "clap" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "atty", - "bitflags", - "clap_derive", - "clap_lex 0.2.4", - "indexmap", - "once_cell", - "strsim", - "termcolor", - "textwrap", -] - -[[package]] -name = "clap" -version = "4.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1f23fa97e1d1641371b51f35535cb26959b8e27ab50d167a8b996b5bada819" -dependencies = [ - "clap_builder", -] - -[[package]] -name = "clap_builder" -version = "4.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdc5d93c358224b4d6867ef1356d740de2303e9892edc06c5340daeccd96bab" -dependencies = [ - "anstream", - "anstyle", - "bitflags", - "clap_lex 0.4.1", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" -dependencies = [ - "heck 0.4.1", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - -[[package]] -name = "clap_lex" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" - -[[package]] -name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - -[[package]] -name = "combine" -version = "4.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "commoncrypto" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007" -dependencies = [ - "commoncrypto-sys", -] - -[[package]] -name = "commoncrypto-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2" -dependencies = [ - "libc", -] - -[[package]] -name = "concurrent-queue" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "console" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "windows-sys 0.42.0", -] - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "cpufeatures" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "crypto-hash" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a77162240fd97248d19a564a565eb563a3f592b386e4136fb300909e67dddca" -dependencies = [ - "commoncrypto", - "hex 0.3.2", - "openssl", - "winapi", -] - -[[package]] -name = "dashmap" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" -dependencies = [ - "cfg-if", - "hashbrown", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "dbus" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48b5f0f36f1eebe901b0e6bee369a77ed3396334bf3f09abd46454a576f71819" -dependencies = [ - "libc", - "libdbus-sys", -] - -[[package]] -name = "dbus" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" -dependencies = [ - "libc", - "libdbus-sys", - "winapi", -] - -[[package]] -name = "dbus-crossroads" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a816e8ae3382c7b1bccfa6f2778346ee5b13f80e0eccf80cf8f2912af73995a" -dependencies = [ - "dbus 0.9.7", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer 0.10.4", - "crypto-common", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "displaydoc" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "ecflash" -version = "0.1.0" -source = "git+https://github.com/system76/ecflash.git?branch=stable#ee9d69d4edf3bee6b2fb6dddb021bb58ee3bbbbb" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" - -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "encoding_rs" -version = "0.8.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enum_derive" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406ac2a8c9eedf8af9ee1489bee9e50029278a6456c740f7454cf8a158abc816" - -[[package]] -name = "enumflags2" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "errno" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fern" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee" -dependencies = [ - "log", -] - -[[package]] -name = "field-offset" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cf3a800ff6e860c863ca6d4b16fd999db8b752819c1606884047b73e468535" -dependencies = [ - "memoffset 0.8.0", - "rustc_version", -] - -[[package]] -name = "filetime" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.2.16", - "windows-sys 0.48.0", -] - -[[package]] -name = "find-crate" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2" -dependencies = [ - "toml 0.5.11", -] - -[[package]] -name = "firmware-manager" -version = "0.1.5" -dependencies = [ - "apply", - "better-panic", - "dashmap", - "futures", - "fwupd-dbus", - "human-sort", - "i18n-embed", - "i18n-embed-fl", - "log", - "once_cell", - "rust-embed", - "shrinkwraprs", - "slotmap", - "system76-firmware-daemon", - "thiserror", - "tokio", - "tokio-udev", - "users", - "xdg", -] - -[[package]] -name = "firmware-manager-gtk" -version = "0.1.5" -dependencies = [ - "better-panic", - "cascade", - "clap 4.2.5", - "fern", - "firmware-manager", - "gdk", - "gio", - "glib", - "gtk", - "html2md", - "i18n-embed", - "i18n-embed-fl", - "log", - "once_cell", - "rust-embed", - "shrinkwraprs", - "slotmap", - "upower_dbus", - "yansi", -] - -[[package]] -name = "firmware-manager-gtk-ffi" -version = "0.1.5" -dependencies = [ - "cdylib-link-lines", - "firmware-manager-gtk", - "glib", - "gtk", - "gtk-sys", - "i18n-embed", - "i18n-embed-fl", - "once_cell", - "rust-embed", -] - -[[package]] -name = "firmware-manager-notify" -version = "0.1.5" -dependencies = [ - "firmware-manager", - "fomat-macros", - "i18n-embed", - "i18n-embed-fl", - "notify-rust", - "once_cell", - "rust-embed", -] - -[[package]] -name = "flate2" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" -dependencies = [ - "crc32fast", - "miniz_oxide 0.7.1", -] - -[[package]] -name = "fluent" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f69378194459db76abd2ce3952b790db103ceb003008d3d50d97c41ff847a7" -dependencies = [ - "fluent-bundle", - "unic-langid", -] - -[[package]] -name = "fluent-bundle" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffd" -dependencies = [ - "fluent-langneg", - "fluent-syntax", - "intl-memoizer", - "intl_pluralrules", - "rustc-hash", - "self_cell", - "smallvec", - "unic-langid", -] - -[[package]] -name = "fluent-langneg" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94" -dependencies = [ - "unic-langid", -] - -[[package]] -name = "fluent-syntax" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78" -dependencies = [ - "thiserror", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "fomat-macros" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f722aa875298d34a0ebb6004699f6f4ea830d36dec8ac2effdbbc840248a096" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "freedesktop-desktop-entry" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8f6c340bead95f07434f2432ab52ce048f290d93e42e3c63f416a364801e4bf" -dependencies = [ - "markup", -] - -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - -[[package]] -name = "futures" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fwupd-dbus" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740e23cb282f6e8e1aaa26b04553cdf04dbe9c6c18b94a8bdd7da0cc75c4c225" -dependencies = [ - "base64 0.13.1", - "bitflags", - "cascade", - "crypto-hash", - "dbus 0.9.7", - "hex-view", - "log", - "shrinkwraprs", - "thiserror", - "ureq", - "url", - "xdg", - "zbus", -] - -[[package]] -name = "gdk" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio", - "glib", - "libc", - "pango", -] - -[[package]] -name = "gdk-pixbuf" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" -dependencies = [ - "bitflags", - "gdk-pixbuf-sys", - "gio", - "glib", - "libc", -] - -[[package]] -name = "gdk-pixbuf-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gdk-sys" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" -dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" - -[[package]] -name = "gio" -version = "0.15.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-io", - "gio-sys", - "glib", - "libc", - "once_cell", - "thiserror", -] - -[[package]] -name = "gio-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", - "winapi", -] - -[[package]] -name = "glib" -version = "0.15.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "glib-macros", - "glib-sys", - "gobject-sys", - "libc", - "once_cell", - "smallvec", - "thiserror", -] - -[[package]] -name = "glib-macros" -version = "0.15.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" -dependencies = [ - "anyhow", - "heck 0.4.1", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "glib-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" -dependencies = [ - "libc", - "system-deps", -] - -[[package]] -name = "gobject-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gtk" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" -dependencies = [ - "atk", - "bitflags", - "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio", - "glib", - "gtk-sys", - "gtk3-macros", - "libc", - "once_cell", - "pango", - "pkg-config", -] - -[[package]] -name = "gtk-sys" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" -dependencies = [ - "atk-sys", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "system-deps", -] - -[[package]] -name = "gtk3-macros" -version = "0.15.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" -dependencies = [ - "anyhow", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "h2" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" - -[[package]] -name = "hex" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hex-view" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494e16c9fe4dd02a88f3fe9ec0f27e38045691ea0ceb11603670f220ff5ca97f" - -[[package]] -name = "home" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "html2md" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be92446e11d68f5d71367d571c229d09ced1f24ab6d08ea0bff329d5f6c0b2a3" -dependencies = [ - "html5ever", - "jni", - "lazy_static", - "markup5ever_rcdom", - "percent-encoding", - "regex", -] - -[[package]] -name = "html5ever" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" -dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "human-sort" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140a09c9305e6d5e557e2ed7cbc68e05765a7d4213975b87cb04920689cc6219" - -[[package]] -name = "hyper" -version = "0.14.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "i18n-config" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d9f93ceee6543011739bc81699b5e0cf1f23f3a80364649b6d80de8636bc8df" -dependencies = [ - "log", - "serde", - "serde_derive", - "thiserror", - "toml 0.5.11", - "unic-langid", -] - -[[package]] -name = "i18n-embed" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2653dd1a8be0726315603f1c180b29f90e5b2a58f8b943d949d5170d9ad81101" -dependencies = [ - "arc-swap", - "fluent", - "fluent-langneg", - "fluent-syntax", - "i18n-embed-impl", - "intl-memoizer", - "lazy_static", - "locale_config", - "log", - "parking_lot", - "rust-embed", - "thiserror", - "unic-langid", - "walkdir", -] - -[[package]] -name = "i18n-embed-fl" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b5809e2295beeb55013705c3b947cbbe83b8cadf3c73a1e6dca06381927212a" -dependencies = [ - "dashmap", - "find-crate", - "fluent", - "fluent-syntax", - "i18n-config", - "i18n-embed", - "lazy_static", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "strsim", - "syn 1.0.109", - "unic-langid", -] - -[[package]] -name = "i18n-embed-impl" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0db2330e035808eb064afb67e6743ddce353763af3e0f2bdfc2476e00ce76136" -dependencies = [ - "find-crate", - "i18n-config", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "idna" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "index-fixed" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161ceaf2f41b6cd3f6502f5da085d4ad4393a51e0c70ed2fce1d5698d798fae" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "intl-memoizer" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66f" -dependencies = [ - "type-map", - "unic-langid", -] - -[[package]] -name = "intl_pluralrules" -version = "7.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972" -dependencies = [ - "unic-langid", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" -dependencies = [ - "hermit-abi 0.3.1", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ipnet" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" - -[[package]] -name = "is-terminal" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" -dependencies = [ - "hermit-abi 0.3.1", - "io-lifetimes", - "rustix", - "windows-sys 0.48.0", -] - -[[package]] -name = "itertools" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" - -[[package]] -name = "jni" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "js-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.142" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" - -[[package]] -name = "libdbus-sys" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" -dependencies = [ - "pkg-config", -] - -[[package]] -name = "libudev-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "linux-raw-sys" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64f40e5e03e0d54f03845c8197d0291253cdbedfb1cb46b13c2c117554a9f4c" - -[[package]] -name = "locale_config" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934" -dependencies = [ - "lazy_static", - "objc", - "objc-foundation", - "regex", - "winapi", -] - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "lxd" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "918a314b8eb7d4e19c3d154b4069b12aa37c25a68bae4f2c2a69f50bf47c7c5a" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - -[[package]] -name = "mac-notification-sys" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e72d50edb17756489e79d52eb146927bec8eba9dd48faadf9ef08bca3791ad5" -dependencies = [ - "cc", - "dirs-next", - "objc-foundation", - "objc_id", - "time", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "markup" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360ec4d83ae8c3150530220fd89e0c5dba54cfc8d7675695f1fdc3581880dce9" -dependencies = [ - "markup-proc-macro", -] - -[[package]] -name = "markup-proc-macro" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba9c3711ed5187a843aaa960eb78db98f64d76ea22a47c204ca2affb3904bb92" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - -[[package]] -name = "markup5ever" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" -dependencies = [ - "log", - "phf", - "phf_codegen", - "string_cache", - "string_cache_codegen", - "tendril", -] - -[[package]] -name = "markup5ever_rcdom" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9521dd6750f8e80ee6c53d65e2e4656d7de37064f3a7a5d2d11d05df93839c2" -dependencies = [ - "html5ever", - "markup5ever", - "tendril", - "xml5ever", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" -dependencies = [ - "libc", - "log", - "miow", - "ntapi", - "winapi", -] - -[[package]] -name = "mio" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.45.0", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "nix" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" -dependencies = [ - "bitflags", - "cfg-if", - "libc", - "memoffset 0.7.1", - "static_assertions", -] - -[[package]] -name = "notify-rust" -version = "4.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bfa211d18e360f08e36c364308f394b5eb23a6629150690e109a916dc6f610e" -dependencies = [ - "dbus 0.9.7", - "log", - "mac-notification-sys", - "tauri-winrt-notification", -] - -[[package]] -name = "ntapi" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" -dependencies = [ - "winapi", -] - -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi 0.2.6", - "libc", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", -] - -[[package]] -name = "objc-foundation" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" -dependencies = [ - "block", - "objc", - "objc_id", -] - -[[package]] -name = "objc_id" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" -dependencies = [ - "objc", -] - -[[package]] -name = "object" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "openssl" -version = "0.10.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-stream" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" -dependencies = [ - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "os_str_bytes" -version = "6.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" - -[[package]] -name = "pango" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" -dependencies = [ - "bitflags", - "glib", - "libc", - "once_cell", - "pango-sys", -] - -[[package]] -name = "pango-sys" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "parking" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "windows-sys 0.45.0", -] - -[[package]] -name = "percent-encoding" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" - -[[package]] -name = "phf" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared", - "rand 0.8.5", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" - -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -dependencies = [ - "unicode-xid 0.1.0", -] - -[[package]] -name = "proc-macro2" -version = "1.0.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quick-xml" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -dependencies = [ - "proc-macro2 0.4.30", -] - -[[package]] -name = "quote" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" -dependencies = [ - "proc-macro2 1.0.56", -] - -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom", - "redox_syscall 0.2.16", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "reqwest" -version = "0.11.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" -dependencies = [ - "base64 0.21.0", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi", -] - -[[package]] -name = "rust-embed" -version = "6.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b68543d5527e158213414a92832d2aab11a84d2571a5eb021ebe22c43aab066" -dependencies = [ - "rust-embed-impl", - "rust-embed-utils", - "walkdir", -] - -[[package]] -name = "rust-embed-impl" -version = "6.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4e0f0ced47ded9a68374ac145edd65a6c1fa13a96447b873660b2a568a0fd7" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "rust-embed-utils", - "syn 1.0.109", - "walkdir", -] - -[[package]] -name = "rust-embed-utils" -version = "7.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512b0ab6853f7e14e3c8754acb43d6f748bb9ced66aa5915a6553ac8213f7731" -dependencies = [ - "sha2 0.10.6", - "walkdir", -] - -[[package]] -name = "rust-lzma" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "895dc04daeaeee338bb96e229797902ed3f0675bfc59d5b42e0f0b0c13ac54da" -dependencies = [ - "pkg-config", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.37.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bbfc1d1c7c40c01715f47d71444744a81669ca84e8b63e25a55e169b1f86433" -dependencies = [ - "bitflags", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustls" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" -dependencies = [ - "log", - "ring", - "sct", - "webpki", -] - -[[package]] -name = "ryu" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" -dependencies = [ - "windows-sys 0.42.0", -] - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "security-framework" -version = "2.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "self_cell" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ef965a420fe14fdac7dd018862966a4c14094f900e1650bbc71ddd7d580c8af" - -[[package]] -name = "semver" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" - -[[package]] -name = "serde" -version = "1.0.160" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.160" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "serde_json" -version = "1.0.96" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "serde_spanned" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - -[[package]] -name = "shrinkwraprs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" -dependencies = [ - "bitflags", - "itertools", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "siphasher" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" - -[[package]] -name = "slab" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slotmap" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" -dependencies = [ - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "socket2" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "sodalite" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41784a359d15c58bba298cccb7f30a847a1a42d0620c9bdaa0aa42fdb3c280e0" -dependencies = [ - "index-fixed", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared", - "precomputed-hash", - "serde", -] - -[[package]] -name = "string_cache_codegen" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2 1.0.56", - "quote 1.0.26", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" -dependencies = [ - "heck 0.3.3", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "syn" -version = "0.15.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "unicode-xid 0.2.4", -] - -[[package]] -name = "system-deps" -version = "6.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0fe581ad25d11420b873cf9aedaca0419c2b411487b134d4d21065f3d092055" -dependencies = [ - "cfg-expr", - "heck 0.4.1", - "pkg-config", - "toml 0.7.3", - "version-compare", -] - -[[package]] -name = "system76-firmware" -version = "1.0.51" -source = "git+https://github.com/pop-os/system76-firmware#c3d5323647a0853c4d28e4f7148a4a96f63dbb3a" -dependencies = [ - "anyhow", - "bincode", - "buildchain", - "clap 3.2.25", - "ecflash", - "libc", - "plain", - "rust-lzma", - "serde", - "serde_json", - "sha2 0.9.9", - "system76_ectool", - "tar", - "tempdir", - "uuid", -] - -[[package]] -name = "system76-firmware-daemon" -version = "0.1.0" -source = "git+https://github.com/pop-os/system76-firmware#c3d5323647a0853c4d28e4f7148a4a96f63dbb3a" -dependencies = [ - "dbus 0.9.7", - "dbus-crossroads", - "enum_derive", - "libc", - "serde", - "serde_json", - "shrinkwraprs", - "system76-firmware", - "thiserror", -] - -[[package]] -name = "system76_ectool" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c957fdd329e017031dbd261ff48fad01296660a9c237942c226cff064bd0610a" -dependencies = [ - "libc", -] - -[[package]] -name = "tar" -version = "0.4.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d779dc6aeff029314570f666ec83f19df7280bb36ef338442cfa8c604021b80" -dependencies = [ - "filetime", - "libc", - "xattr", -] - -[[package]] -name = "target-lexicon" -version = "0.12.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" - -[[package]] -name = "tauri-winrt-notification" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58de036c4d2e20717024de2a3c4bf56c301f07b21bc8ef9b57189fce06f1f3b" -dependencies = [ - "quick-xml", - "strum", - "windows", -] - -[[package]] -name = "tempdir" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -dependencies = [ - "rand 0.4.6", - "remove_dir_all", -] - -[[package]] -name = "tempfile" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" -dependencies = [ - "cfg-if", - "fastrand", - "redox_syscall 0.3.5", - "rustix", - "windows-sys 0.45.0", -] - -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", -] - -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "textwrap" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" - -[[package]] -name = "thiserror" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "time" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" -dependencies = [ - "serde", - "time-core", -] - -[[package]] -name = "time-core" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" - -[[package]] -name = "tinystr" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ac3f5b6856e931e15e07b478e98c8045239829a65f9156d4fa7e7788197a5ef" -dependencies = [ - "displaydoc", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" -dependencies = [ - "autocfg", - "bytes", - "libc", - "mio 0.8.6", - "num_cpus", - "pin-project-lite", - "socket2", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-udev" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246ffebae60acd93eb0056bac967cad807c7aa09916fabceac50479ad1f53e64" -dependencies = [ - "futures-core", - "mio 0.7.14", - "tokio", - "udev", -] - -[[package]] -name = "tokio-util" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tools" -version = "0.1.0" -dependencies = [ - "clap 4.2.5", - "freedesktop-desktop-entry", -] - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "type-map" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46" -dependencies = [ - "rustc-hash", -] - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "udev" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c960764f7e816eed851a96c364745d37f9fe71a2e7dba79fbd40104530b5dd0" -dependencies = [ - "libc", - "libudev-sys", - "mio 0.8.6", - "pkg-config", -] - -[[package]] -name = "uds_windows" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" -dependencies = [ - "tempfile", - "winapi", -] - -[[package]] -name = "unic-langid" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f" -dependencies = [ - "unic-langid-impl", -] - -[[package]] -name = "unic-langid-impl" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff" -dependencies = [ - "serde", - "tinystr", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - -[[package]] -name = "unicode-ident" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "upower_dbus" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8121b555fe6fd748fb4bb147f7b31b5ea17d006633183447e0d89e19d9aa9b7" -dependencies = [ - "dbus 0.6.5", - "failure", - "failure_derive", -] - -[[package]] -name = "ureq" -version = "2.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338b31dd1314f68f3aabf3ed57ab922df95ffcd902476ca7ba3c4ce7b908c46d" -dependencies = [ - "base64 0.13.1", - "flate2", - "log", - "once_cell", - "rustls", - "url", - "webpki", - "webpki-roots", -] - -[[package]] -name = "url" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "users" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032" -dependencies = [ - "libc", - "log", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version-compare" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - -[[package]] -name = "walkdir" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" -dependencies = [ - "quote 1.0.26", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" - -[[package]] -name = "web-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" -dependencies = [ - "windows_aarch64_msvc 0.39.0", - "windows_i686_gnu 0.39.0", - "windows_i686_msvc 0.39.0", - "windows_x86_64_gnu 0.39.0", - "windows_x86_64_msvc 0.39.0", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" -dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" - -[[package]] -name = "windows_i686_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" - -[[package]] -name = "windows_i686_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" - -[[package]] -name = "winnow" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - -[[package]] -name = "xattr" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" -dependencies = [ - "libc", -] - -[[package]] -name = "xdg" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688597db5a750e9cad4511cb94729a078e274308099a0382b5b8203bbc767fee" -dependencies = [ - "home", -] - -[[package]] -name = "xdg-home" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" -dependencies = [ - "nix", - "winapi", -] - -[[package]] -name = "xml5ever" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650" -dependencies = [ - "log", - "mac", - "markup5ever", -] - -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - -[[package]] -name = "zbus" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29242fa5ec5693629ae74d6eb1f69622a9511f600986d6d9779bccf36ac316e3" -dependencies = [ - "async-broadcast", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-recursion", - "async-task", - "async-trait", - "byteorder", - "derivative", - "enumflags2", - "event-listener", - "futures-core", - "futures-sink", - "futures-util", - "hex 0.4.3", - "nix", - "once_cell", - "ordered-stream", - "rand 0.8.5", - "serde", - "serde_repr", - "sha1", - "static_assertions", - "tracing", - "uds_windows", - "winapi", - "xdg-home", - "zbus_macros", - "zbus_names", - "zvariant", -] - -[[package]] -name = "zbus_macros" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537793e26e9af85f774801dc52c6f6292352b2b517c5cf0449ffd3735732a53a" -dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.56", - "quote 1.0.26", - "regex", - "syn 1.0.109", - "zvariant_utils", -] - -[[package]] -name = "zbus_names" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34f314916bd89bdb9934154627fab152f4f28acdda03e7c4c68181b214fe7e3" -dependencies = [ - "serde", - "static_assertions", - "zvariant", -] - -[[package]] -name = "zvariant" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe4914a985446d6fd287019b5fceccce38303d71407d9e6e711d44954a05d8" -dependencies = [ - "byteorder", - "enumflags2", - "libc", - "serde", - "static_assertions", - "zvariant_derive", -] - -[[package]] -name = "zvariant_derive" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34c20260af4b28b3275d6676c7e2a6be0d4332e8e0aba4616d34007fd84e462a" -dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "zvariant_utils", -] - -[[package]] -name = "zvariant_utils" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b22993dbc4d128a17a3b6c92f1c63872dd67198537ee728d8b5d7c40640a8b" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] diff --git a/pkgs/os-specific/linux/firmware/firmware-manager/default.nix b/pkgs/os-specific/linux/firmware/firmware-manager/default.nix deleted file mode 100644 index af455e7ef61f..000000000000 --- a/pkgs/os-specific/linux/firmware/firmware-manager/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, stdenv -, rustPlatform -, fetchFromGitHub -, cargo -, pkg-config -, rustc -, openssl -, udev -, gtk3 -, wrapGAppsHook -}: - -stdenv.mkDerivation rec { - pname = "firmware-manager"; - version = "0.1.5"; - - src = fetchFromGitHub { - owner = "pop-os"; - repo = pname; - rev = version; - hash = "sha256-Q+LJJ4xK583fAcwuOFykt6GKT0rVJgmTt+zUX4o4Tm4="; - }; - - cargoDeps = rustPlatform.importCargoLock { - lockFile = ./Cargo.lock; - outputHashes = { - "ecflash-0.1.0" = "sha256-W613wbW54R65/rs6oiPAH/qov2OVEjMMszpUJdX4TxI="; - "system76-firmware-1.0.51" = "sha256-+GPz7uKygGnFUptQEGYWkEdHgxBc65kLZqpwZqtwets="; - }; - }; - - postPatch = '' - substituteInPlace Makefile --replace '$(DESTDIR)/etc' '$(DESTDIR)$(prefix)/etc' - ''; - - nativeBuildInputs = [ - cargo - rustc - pkg-config - rustPlatform.cargoSetupHook - wrapGAppsHook - ]; - - buildInputs = [ - openssl - gtk3 - udev - ]; - - makeFlags = [ "prefix=$(out)" ]; - - meta = { - description = "Graphical frontend for firmware management"; - homepage = "https://github.com/pop-os/firmware-manager"; - license = lib.licenses.gpl3; - maintainers = [ lib.maintainers.shlevy ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/firmware-updater/default.nix b/pkgs/os-specific/linux/firmware/firmware-updater/default.nix deleted file mode 100644 index 952139bb35e2..000000000000 --- a/pkgs/os-specific/linux/firmware/firmware-updater/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib -, writeText -, flutter -, fetchFromGitHub -}: - -flutter.buildFlutterApplication rec { - pname = "firmware-updater"; - version = "unstable-2024-18-04"; - - pubspecLock = lib.importJSON ./pubspec.lock.json; - - patches = [ - ./upgrade-file.patch - ]; - - sourceRoot = "./source/packages/firmware_updater"; - - gitHashes = { - fwupd = "sha256-l/+HrrJk1mE2Mrau+NmoQ7bu9qhHU6wX68+m++9Hjd4="; - }; - - src = fetchFromGitHub { - owner = "canonical"; - repo = "firmware-updater"; - rev = "e48bb3f693e5d76656a3e7bbc07be0fcbfa19f23"; - hash = "sha256-SO3sDIsJCK4Sh51pXO4u6WX4zcFa6jQYu9E+WtVrjDE="; - }; - - meta = with lib; { - description = "Firmware Updater for Linux"; - mainProgram = "firmware-updater"; - homepage = "https://github.com/canonical/firmware-updater"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ mkg20001 ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/firmware-updater/pubspec.lock.json b/pkgs/os-specific/linux/firmware/firmware-updater/pubspec.lock.json deleted file mode 100644 index 2212f0227868..000000000000 --- a/pkgs/os-specific/linux/firmware/firmware-updater/pubspec.lock.json +++ /dev/null @@ -1,1257 +0,0 @@ -{ - "packages": { - "_fe_analyzer_shared": { - "dependency": "transitive", - "description": { - "name": "_fe_analyzer_shared", - "sha256": "ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "61.0.0" - }, - "analyzer": { - "dependency": "transitive", - "description": { - "name": "analyzer", - "sha256": "ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.13.0" - }, - "args": { - "dependency": "transitive", - "description": { - "name": "args", - "sha256": "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.5.0" - }, - "async": { - "dependency": "transitive", - "description": { - "name": "async", - "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.11.0" - }, - "boolean_selector": { - "dependency": "transitive", - "description": { - "name": "boolean_selector", - "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.1" - }, - "build": { - "dependency": "transitive", - "description": { - "name": "build", - "sha256": "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.1" - }, - "build_config": { - "dependency": "transitive", - "description": { - "name": "build_config", - "sha256": "bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.1" - }, - "build_daemon": { - "dependency": "transitive", - "description": { - "name": "build_daemon", - "sha256": "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.0.1" - }, - "build_resolvers": { - "dependency": "transitive", - "description": { - "name": "build_resolvers", - "sha256": "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.2" - }, - "build_runner": { - "dependency": "direct dev", - "description": { - "name": "build_runner", - "sha256": "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.9" - }, - "build_runner_core": { - "dependency": "transitive", - "description": { - "name": "build_runner_core", - "sha256": "30859c90e9ddaccc484f56303931f477b1f1ba2bab74aa32ed5d6ce15870f8cf", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.2.8" - }, - "built_collection": { - "dependency": "transitive", - "description": { - "name": "built_collection", - "sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.1.1" - }, - "built_value": { - "dependency": "transitive", - "description": { - "name": "built_value", - "sha256": "c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "8.9.2" - }, - "characters": { - "dependency": "transitive", - "description": { - "name": "characters", - "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.0" - }, - "checked_yaml": { - "dependency": "transitive", - "description": { - "name": "checked_yaml", - "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.3" - }, - "clock": { - "dependency": "transitive", - "description": { - "name": "clock", - "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.1" - }, - "code_builder": { - "dependency": "transitive", - "description": { - "name": "code_builder", - "sha256": "f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.10.0" - }, - "collection": { - "dependency": "direct main", - "description": { - "name": "collection", - "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.18.0" - }, - "convert": { - "dependency": "transitive", - "description": { - "name": "convert", - "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.1" - }, - "crypto": { - "dependency": "transitive", - "description": { - "name": "crypto", - "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.3" - }, - "csslib": { - "dependency": "transitive", - "description": { - "name": "csslib", - "sha256": "831883fb353c8bdc1d71979e5b342c7d88acfbc643113c14ae51e2442ea0f20f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.17.3" - }, - "dart_style": { - "dependency": "transitive", - "description": { - "name": "dart_style", - "sha256": "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.2" - }, - "dbus": { - "dependency": "direct main", - "description": { - "name": "dbus", - "sha256": "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.7.10" - }, - "diacritic": { - "dependency": "transitive", - "description": { - "name": "diacritic", - "sha256": "96db5db6149cbe4aa3cfcbfd170aca9b7648639be7e48025f9d458517f807fe4", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.5" - }, - "dio": { - "dependency": "direct main", - "description": { - "name": "dio", - "sha256": "11e40df547d418cc0c4900a9318b26304e665da6fa4755399a9ff9efd09034b5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.4.3+1" - }, - "fake_async": { - "dependency": "transitive", - "description": { - "name": "fake_async", - "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.1" - }, - "ffi": { - "dependency": "transitive", - "description": { - "name": "ffi", - "sha256": "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.2" - }, - "file": { - "dependency": "direct main", - "description": { - "name": "file", - "sha256": "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.0.0" - }, - "fixnum": { - "dependency": "transitive", - "description": { - "name": "fixnum", - "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.0" - }, - "flutter": { - "dependency": "direct main", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_driver": { - "dependency": "transitive", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_html": { - "dependency": "direct main", - "description": { - "name": "flutter_html", - "sha256": "02ad69e813ecfc0728a455e4bf892b9379983e050722b1dce00192ee2e41d1ee", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.0-beta.2" - }, - "flutter_lints": { - "dependency": "transitive", - "description": { - "name": "flutter_lints", - "sha256": "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.2" - }, - "flutter_localizations": { - "dependency": "direct main", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_markdown": { - "dependency": "transitive", - "description": { - "name": "flutter_markdown", - "sha256": "04c4722cc36ec5af38acc38ece70d22d3c2123c61305d555750a091517bbe504", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.6.23" - }, - "flutter_svg": { - "dependency": "transitive", - "description": { - "name": "flutter_svg", - "sha256": "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.10+1" - }, - "flutter_test": { - "dependency": "direct dev", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "flutter_web_plugins": { - "dependency": "transitive", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "freezed": { - "dependency": "direct dev", - "description": { - "name": "freezed", - "sha256": "a434911f643466d78462625df76fd9eb13e57348ff43fe1f77bbe909522c67a1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.5.2" - }, - "freezed_annotation": { - "dependency": "direct main", - "description": { - "name": "freezed_annotation", - "sha256": "c3fd9336eb55a38cc1bbd79ab17573113a8deccd0ecbbf926cca3c62803b5c2d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.1" - }, - "frontend_server_client": { - "dependency": "transitive", - "description": { - "name": "frontend_server_client", - "sha256": "f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.0.0" - }, - "fuchsia_remote_debug_protocol": { - "dependency": "transitive", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "fwupd": { - "dependency": "direct main", - "description": { - "path": ".", - "ref": "refresh-property-cache", - "resolved-ref": "22f96d558fb3b72b682758a7b55f39002cd217c2", - "url": "https://github.com/d-loose/fwupd.dart" - }, - "source": "git", - "version": "0.2.2" - }, - "get_it": { - "dependency": "transitive", - "description": { - "name": "get_it", - "sha256": "d85128a5dae4ea777324730dc65edd9c9f43155c109d5cc0a69cab74139fbac1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.7.0" - }, - "glob": { - "dependency": "transitive", - "description": { - "name": "glob", - "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.2" - }, - "graphs": { - "dependency": "transitive", - "description": { - "name": "graphs", - "sha256": "aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.3.1" - }, - "gtk": { - "dependency": "direct main", - "description": { - "name": "gtk", - "sha256": "e8ce9ca4b1df106e4d72dad201d345ea1a036cc12c360f1a7d5a758f78ffa42c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.0" - }, - "handy_window": { - "dependency": "direct main", - "description": { - "name": "handy_window", - "sha256": "458a9f7d4ae23816e8f33c76596f943a04e7eff13d864e0867f3b40f1647d63d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.3.1" - }, - "html": { - "dependency": "transitive", - "description": { - "name": "html", - "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.15.4" - }, - "http": { - "dependency": "transitive", - "description": { - "name": "http", - "sha256": "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.1" - }, - "http_multi_server": { - "dependency": "transitive", - "description": { - "name": "http_multi_server", - "sha256": "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.2.1" - }, - "http_parser": { - "dependency": "transitive", - "description": { - "name": "http_parser", - "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.0.2" - }, - "integration_test": { - "dependency": "direct dev", - "description": "flutter", - "source": "sdk", - "version": "0.0.0" - }, - "intl": { - "dependency": "transitive", - "description": { - "name": "intl", - "sha256": "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.18.1" - }, - "io": { - "dependency": "transitive", - "description": { - "name": "io", - "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.4" - }, - "js": { - "dependency": "transitive", - "description": { - "name": "js", - "sha256": "c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.7.1" - }, - "json_annotation": { - "dependency": "transitive", - "description": { - "name": "json_annotation", - "sha256": "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.9.0" - }, - "leak_tracker": { - "dependency": "transitive", - "description": { - "name": "leak_tracker", - "sha256": "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "10.0.0" - }, - "leak_tracker_flutter_testing": { - "dependency": "transitive", - "description": { - "name": "leak_tracker_flutter_testing", - "sha256": "b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.1" - }, - "leak_tracker_testing": { - "dependency": "transitive", - "description": { - "name": "leak_tracker_testing", - "sha256": "a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.1" - }, - "lints": { - "dependency": "transitive", - "description": { - "name": "lints", - "sha256": "cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.0" - }, - "list_counter": { - "dependency": "transitive", - "description": { - "name": "list_counter", - "sha256": "c447ae3dfcd1c55f0152867090e67e219d42fe6d4f2807db4bbe8b8d69912237", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.2" - }, - "logging": { - "dependency": "transitive", - "description": { - "name": "logging", - "sha256": "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.1" - }, - "logging_appenders": { - "dependency": "transitive", - "description": { - "name": "logging_appenders", - "sha256": "c2ea00fb779a81e995943f1e3e6e6969d463de3882d134d78ad58e76f2b6f1b1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.2" - }, - "markdown": { - "dependency": "transitive", - "description": { - "name": "markdown", - "sha256": "ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "7.2.2" - }, - "matcher": { - "dependency": "transitive", - "description": { - "name": "matcher", - "sha256": "d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.12.16+1" - }, - "material_color_utilities": { - "dependency": "transitive", - "description": { - "name": "material_color_utilities", - "sha256": "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.8.0" - }, - "meta": { - "dependency": "direct main", - "description": { - "name": "meta", - "sha256": "d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.11.0" - }, - "mime": { - "dependency": "transitive", - "description": { - "name": "mime", - "sha256": "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.5" - }, - "mockito": { - "dependency": "direct dev", - "description": { - "name": "mockito", - "sha256": "7d5b53bcd556c1bc7ffbe4e4d5a19c3e112b7e925e9e172dd7c6ad0630812616", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.4.2" - }, - "nested": { - "dependency": "transitive", - "description": { - "name": "nested", - "sha256": "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.0" - }, - "package_config": { - "dependency": "transitive", - "description": { - "name": "package_config", - "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.0" - }, - "path": { - "dependency": "direct main", - "description": { - "name": "path", - "sha256": "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.9.0" - }, - "path_parsing": { - "dependency": "transitive", - "description": { - "name": "path_parsing", - "sha256": "e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.1" - }, - "petitparser": { - "dependency": "transitive", - "description": { - "name": "petitparser", - "sha256": "c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.0.2" - }, - "platform": { - "dependency": "transitive", - "description": { - "name": "platform", - "sha256": "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.4" - }, - "plugin_platform_interface": { - "dependency": "transitive", - "description": { - "name": "plugin_platform_interface", - "sha256": "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.8" - }, - "pool": { - "dependency": "transitive", - "description": { - "name": "pool", - "sha256": "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.5.1" - }, - "process": { - "dependency": "transitive", - "description": { - "name": "process", - "sha256": "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "5.0.2" - }, - "provider": { - "dependency": "direct main", - "description": { - "name": "provider", - "sha256": "c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.1.2" - }, - "pub_semver": { - "dependency": "transitive", - "description": { - "name": "pub_semver", - "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.4" - }, - "pubspec_parse": { - "dependency": "transitive", - "description": { - "name": "pubspec_parse", - "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.3" - }, - "safe_change_notifier": { - "dependency": "direct main", - "description": { - "name": "safe_change_notifier", - "sha256": "8d0645ec2706f580912c38de488439ddb491be48247826927b7bc2e54ea8f7af", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.3.2" - }, - "screen_retriever": { - "dependency": "transitive", - "description": { - "name": "screen_retriever", - "sha256": "6ee02c8a1158e6dae7ca430da79436e3b1c9563c8cf02f524af997c201ac2b90", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.9" - }, - "shelf": { - "dependency": "transitive", - "description": { - "name": "shelf", - "sha256": "ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.4.1" - }, - "shelf_web_socket": { - "dependency": "transitive", - "description": { - "name": "shelf_web_socket", - "sha256": "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.4" - }, - "sky_engine": { - "dependency": "transitive", - "description": "flutter", - "source": "sdk", - "version": "0.0.99" - }, - "source_gen": { - "dependency": "transitive", - "description": { - "name": "source_gen", - "sha256": "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.5.0" - }, - "source_span": { - "dependency": "transitive", - "description": { - "name": "source_span", - "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.10.0" - }, - "stack_trace": { - "dependency": "transitive", - "description": { - "name": "stack_trace", - "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.11.1" - }, - "state_notifier": { - "dependency": "transitive", - "description": { - "name": "state_notifier", - "sha256": "b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.0" - }, - "stream_channel": { - "dependency": "transitive", - "description": { - "name": "stream_channel", - "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.2" - }, - "stream_transform": { - "dependency": "transitive", - "description": { - "name": "stream_transform", - "sha256": "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.0" - }, - "string_scanner": { - "dependency": "transitive", - "description": { - "name": "string_scanner", - "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.0" - }, - "sync_http": { - "dependency": "transitive", - "description": { - "name": "sync_http", - "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.3.1" - }, - "term_glyph": { - "dependency": "transitive", - "description": { - "name": "term_glyph", - "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.1" - }, - "test_api": { - "dependency": "transitive", - "description": { - "name": "test_api", - "sha256": "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.6.1" - }, - "timing": { - "dependency": "transitive", - "description": { - "name": "timing", - "sha256": "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.0.1" - }, - "typed_data": { - "dependency": "transitive", - "description": { - "name": "typed_data", - "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.3.2" - }, - "ubuntu_lints": { - "dependency": "direct dev", - "description": { - "name": "ubuntu_lints", - "sha256": "1c9fd31f3b3e24969f4c5e5ccf19e1665df3e27ce9ff22ca000e4f687c4772c4", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.3.0" - }, - "ubuntu_localizations": { - "dependency": "transitive", - "description": { - "name": "ubuntu_localizations", - "sha256": "eca4f43453339acca16b4b23a70b93315ab92b1500f98156a8f95af5e5078def", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.3.6" - }, - "ubuntu_logger": { - "dependency": "direct main", - "description": { - "name": "ubuntu_logger", - "sha256": "90de0c496c2c35757e0d6a32d2e3555cb37e9c2d4aab356bad589f64234bcdcc", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.1" - }, - "ubuntu_service": { - "dependency": "direct main", - "description": { - "name": "ubuntu_service", - "sha256": "b9845f972bcc919df79381b0eb42cceee1834b3232b3f444c0e4943d66d01901", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.3.2" - }, - "ubuntu_test": { - "dependency": "direct main", - "description": { - "name": "ubuntu_test", - "sha256": "ed8e277575e74057e59363eced7c86b5c9cb172b560b7590ab911eed738e32e5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.0-beta.9" - }, - "upower": { - "dependency": "direct main", - "description": { - "name": "upower", - "sha256": "cf042403154751180affa1d15614db7fa50234bc2373cd21c3db666c38543ebf", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.7.0" - }, - "vector_graphics": { - "dependency": "transitive", - "description": { - "name": "vector_graphics", - "sha256": "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.11+1" - }, - "vector_graphics_codec": { - "dependency": "transitive", - "description": { - "name": "vector_graphics_codec", - "sha256": "c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.11+1" - }, - "vector_graphics_compiler": { - "dependency": "transitive", - "description": { - "name": "vector_graphics_compiler", - "sha256": "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.11+1" - }, - "vector_math": { - "dependency": "transitive", - "description": { - "name": "vector_math", - "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.1.4" - }, - "vm_service": { - "dependency": "transitive", - "description": { - "name": "vm_service", - "sha256": "b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "13.0.0" - }, - "watcher": { - "dependency": "transitive", - "description": { - "name": "watcher", - "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.1.0" - }, - "web": { - "dependency": "transitive", - "description": { - "name": "web", - "sha256": "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.5.1" - }, - "web_socket_channel": { - "dependency": "transitive", - "description": { - "name": "web_socket_channel", - "sha256": "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.5" - }, - "webdriver": { - "dependency": "transitive", - "description": { - "name": "webdriver", - "sha256": "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.0.3" - }, - "window_manager": { - "dependency": "transitive", - "description": { - "name": "window_manager", - "sha256": "b3c895bdf936c77b83c5254bec2e6b3f066710c1f89c38b20b8acc382b525494", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.3.8" - }, - "xml": { - "dependency": "transitive", - "description": { - "name": "xml", - "sha256": "b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "6.5.0" - }, - "yaml": { - "dependency": "direct main", - "description": { - "name": "yaml", - "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.1.2" - }, - "yaru": { - "dependency": "direct main", - "description": { - "name": "yaru", - "sha256": "e9ccb22cb283ecf3f6b21d64dee9764d4abff65a44f48ce21aa13b9eae3e3be5", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.2.2" - }, - "yaru_color_generator": { - "dependency": "transitive", - "description": { - "name": "yaru_color_generator", - "sha256": "78b96cefc4eef763e4786f891ce336cdd55ef8edc55494c4bea2bc9d10ef9c96", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.0" - }, - "yaru_colors": { - "dependency": "direct main", - "description": { - "name": "yaru_colors", - "sha256": "42814cafa3c4a6876962559ae9d8b9ff088a59635e649e4eae86d35905496063", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.7" - }, - "yaru_icons": { - "dependency": "direct main", - "description": { - "name": "yaru_icons", - "sha256": "2dff89ee31c2dd888e1ce146f0faef1c8de4ffbc90cb6466aacd55c3a9ad0674", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.4.0" - }, - "yaru_test": { - "dependency": "transitive", - "description": { - "name": "yaru_test", - "sha256": "a62539bd03465065e4067e1c88472d5789a7215bd4a0873f051abb7896ff0934", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.5" - }, - "yaru_widgets": { - "dependency": "direct main", - "description": { - "name": "yaru_widgets", - "sha256": "0bade922090f25eedcc88cdc15b8a6adbaba4e4b56d793e999224b22c95a19d2", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "3.6.0" - }, - "yaru_window": { - "dependency": "transitive", - "description": { - "name": "yaru_window", - "sha256": "c9d16f78962652ad71aa160ab0a1e2e5924359439303394f980fd00eefc905eb", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.2.1" - }, - "yaru_window_linux": { - "dependency": "transitive", - "description": { - "name": "yaru_window_linux", - "sha256": "3676355492eba0461f03acf1b7420f7885982d1bffe113fccdca9415fbe39f5d", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.2.0" - }, - "yaru_window_manager": { - "dependency": "transitive", - "description": { - "name": "yaru_window_manager", - "sha256": "2d358263d19ae6598df21d6d8c0d25e75c79a82f459b63b0013a13e395c48b23", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.2" - }, - "yaru_window_platform_interface": { - "dependency": "transitive", - "description": { - "name": "yaru_window_platform_interface", - "sha256": "e9f8cd34e207d7f7b771ae70dee347ed974cee06b981819c4181b3e474e52254", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.1.2" - }, - "yaru_window_web": { - "dependency": "transitive", - "description": { - "name": "yaru_window_web", - "sha256": "3ff30758a330d7626d54643df0cca6c179782f401aba7752da9cc0d60c9a6f74", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "0.0.3" - } - }, - "sdks": { - "dart": ">=3.3.0 <4.0.0", - "flutter": ">=3.19.0" - } -} diff --git a/pkgs/os-specific/linux/firmware/firmware-updater/upgrade-file.patch b/pkgs/os-specific/linux/firmware/firmware-updater/upgrade-file.patch deleted file mode 100644 index 2c82fa8bbaf9..000000000000 --- a/pkgs/os-specific/linux/firmware/firmware-updater/upgrade-file.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/pubspec.yaml b/pubspec.yaml -index e9dfa1f..ec9f2f2 100644 ---- a/pubspec.yaml -+++ b/pubspec.yaml -@@ -10,7 +10,7 @@ dependencies: - collection: ^1.17.2 - dbus: ^0.7.8 - dio: ^5.3.3 -- file: ^6.1.4 -+ file: ^7.0.0 - flutter: - sdk: flutter - flutter_html: ^3.0.0-beta.2 diff --git a/pkgs/os-specific/linux/firmware/fwupd-efi/default.nix b/pkgs/os-specific/linux/firmware/fwupd-efi/default.nix deleted file mode 100644 index d89c4a7b140a..000000000000 --- a/pkgs/os-specific/linux/firmware/fwupd-efi/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchFromGitHub -, substituteAll -, pkg-config -, meson -, ninja -, gnu-efi -, python3 -, python3Packages -}: - -stdenv.mkDerivation rec { - pname = "fwupd-efi"; - version = "1.6"; - - src = fetchurl { - url = "https://github.com/fwupd/fwupd-efi/releases/download/${version}/fwupd-efi-${version}.tar.xz"; - hash = "sha256-r9CAWirQgafK/y71vABM46AUe1OAFejsqWY0FxaxJg4="; - }; - - nativeBuildInputs = [ - meson - ninja - pkg-config - python3 - python3Packages.pefile - ]; - - buildInputs = [ - gnu-efi - ]; - - postPatch = '' - patchShebangs \ - efi/generate_binary.py \ - efi/generate_sbat.py - ''; - - mesonFlags = [ - "-Defi-includedir=${gnu-efi}/include/efi" - "-Defi-libdir=${gnu-efi}/lib" - "-Defi-ldsdir=${gnu-efi}/lib" - "-Defi_sbat_distro_id=nixos" - "-Defi_sbat_distro_summary=NixOS" - "-Defi_sbat_distro_pkgname=${pname}" - "-Defi_sbat_distro_version=${version}" - "-Defi_sbat_distro_url=https://search.nixos.org/packages?channel=unstable&show=fwupd-efi&from=0&size=50&sort=relevance&query=fwupd-efi" - ]; - - meta = with lib; { - homepage = "https://fwupd.org/"; - maintainers = with maintainers; [ ]; - license = licenses.lgpl21Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/intel2200BGFirmware/default.nix b/pkgs/os-specific/linux/firmware/intel2200BGFirmware/default.nix deleted file mode 100644 index af9a44b92f46..000000000000 --- a/pkgs/os-specific/linux/firmware/intel2200BGFirmware/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenvNoCC -, lib -, fetchurl }: - -stdenvNoCC.mkDerivation rec { - pname = "intel2200BGFirmware"; - version = "3.1"; - - src = fetchurl { - url = "https://src.fedoraproject.org/repo/pkgs/ipw2200-firmware/ipw2200-fw-${version}.tgz/eaba788643c7cc7483dd67ace70f6e99/ipw2200-fw-${version}.tgz"; - hash = "sha256-xoGMEcGMwDDVX/g/ZLK62P7vSF53QvhPlKYdgRpiWL0="; - }; - - installPhase = '' - runHook preInstall - - install -D -m644 ipw2200-bss.fw $out/lib/firmware/ipw2200-bss.fw - install -D -m644 ipw2200-ibss.fw $out/lib/firmware/ipw2200-ibss.fw - install -D -m644 ipw2200-sniffer.fw $out/lib/firmware/ipw2200-sniffer.fw - install -D -m644 LICENSE.ipw2200-fw $out/share/doc/intel2200BGFirmware/LICENSE - - runHook postInstall - ''; - - meta = with lib; { - description = "Firmware for Intel 2200BG cards"; - homepage = "https://ipw2200.sourceforge.net/firmware.php"; - license = licenses.unfreeRedistributableFirmware; - maintainers = with maintainers; [ sternenseemann ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/ipu6-camera-bins/default.nix b/pkgs/os-specific/linux/firmware/ipu6-camera-bins/default.nix deleted file mode 100644 index 71a7cd9e947b..000000000000 --- a/pkgs/os-specific/linux/firmware/ipu6-camera-bins/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoPatchelfHook -, expat -, zlib -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "ipu6-camera-bins"; - version = "unstable-2023-10-26"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "ipu6-camera-bins"; - rev = "af5ba0cb4a763569ac7514635013e9d870040bcf"; - hash = "sha256-y0pT5M7AKACbquQWLZPYpTPXRC5hipLNL61nhs+cst4="; - }; - - nativeBuildInputs = [ - autoPatchelfHook - stdenv.cc.cc.lib - expat - zlib - ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out - cp --no-preserve=mode --recursive \ - lib \ - include \ - $out/ - - install -m 0644 -D LICENSE $out/share/doc/LICENSE - - runHook postInstall - ''; - - postFixup = '' - for pcfile in $out/lib/*/pkgconfig/*.pc; do - substituteInPlace $pcfile \ - --replace 'prefix=/usr' "prefix=$out" - done - ''; - - meta = with lib; { - description = "IPU firmware and proprietary image processing libraries"; - homepage = "https://github.com/intel/ipu6-camera-bins"; - license = licenses.issl; - sourceProvenance = with sourceTypes; [ - binaryFirmware - ]; - maintainers = with maintainers; [ - hexa - ]; - platforms = [ "x86_64-linux" ]; - }; -}) diff --git a/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix b/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix deleted file mode 100644 index e2f2fd4f9fee..000000000000 --- a/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -}: - -stdenv.mkDerivation { - pname = "ivsc-firmware"; - version = "unstable-2023-08-11"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "ivsc-firmware"; - rev = "10c214fea5560060d387fbd2fb8a1af329cb6232"; - hash = "sha256-kEoA0yeGXuuB+jlMIhNm+SBljH+Ru7zt3PzGb+EPBPw="; - }; - - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib/firmware/vsc - cp --no-preserve=mode --recursive ./firmware/* $out/lib/firmware/vsc/ - install -D ./LICENSE $out/share/doc - - mkdir -p $out/lib/firmware/vsc/soc_a1_prod - # According to Intel's documentation for prod platform the a1_prod postfix is need it (https://github.com/intel/ivsc-firmware) - # This fixes ipu6 webcams - for file in $out/lib/firmware/vsc/*.bin; do - ln -sf "$file" "$out/lib/firmware/vsc/soc_a1_prod/$(basename "$file" .bin)_a1_prod.bin" - done - - runHook postInstall - ''; - - meta = with lib; { - description = "Firmware binaries for the Intel Vision Sensing Controller"; - homepage = "https://github.com/intel/ivsc-firmware"; - license = licenses.issl; - sourceProvenance = with sourceTypes; [ - binaryFirmware - ]; - maintainers = with maintainers; [ - hexa - ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/firmware/libreelec-dvb-firmware/default.nix b/pkgs/os-specific/linux/firmware/libreelec-dvb-firmware/default.nix deleted file mode 100644 index d2e3696ea4c9..000000000000 --- a/pkgs/os-specific/linux/firmware/libreelec-dvb-firmware/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ stdenvNoCC, fetchFromGitHub, lib}: - -stdenvNoCC.mkDerivation rec { - pname = "libreelec-dvb-firmware"; - version = "1.5.0"; - - src = fetchFromGitHub { - repo = "dvb-firmware"; - owner = "LibreElec"; - rev = version; - sha256 = "sha256-uEobcv5kqGxIOfSVVKH+iT7DHPF13OFiRF7c1GIUqtU="; - }; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib - cp -rv firmware $out/lib - find $out/lib \( -name 'README.*' -or -name 'LICEN[SC]E.*' -or -name '*.txt' \) | xargs rm - - runHook postInstall - ''; - - meta = with lib; { - description = "DVB firmware from LibreELEC"; - homepage = "https://github.com/LibreELEC/dvb-firmware"; - license = licenses.unfreeRedistributableFirmware; - maintainers = with maintainers; [ kittywitch ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/linux-firmware/default.nix b/pkgs/os-specific/linux/firmware/linux-firmware/default.nix deleted file mode 100644 index ae04c6a9ce32..000000000000 --- a/pkgs/os-specific/linux/firmware/linux-firmware/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -let - source = import ./source.nix; -in { - stdenvNoCC, - fetchzip, - lib, - rdfind, - which, -}: - -stdenvNoCC.mkDerivation rec { - pname = "linux-firmware"; - version = source.version; - - src = fetchzip { - url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-${source.revision}.tar.gz"; - hash = source.sourceHash; - }; - - nativeBuildInputs = [ - rdfind - which - ]; - - installFlags = [ "DESTDIR=$(out)" ]; - - # Firmware blobs do not need fixing and should not be modified - dontFixup = true; - - outputHashMode = "recursive"; - outputHashAlgo = "sha256"; - outputHash = source.outputHash; - - meta = with lib; { - description = "Binary firmware collection packaged by kernel.org"; - homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"; - license = licenses.unfreeRedistributableFirmware; - platforms = platforms.linux; - maintainers = with maintainers; [ fpletz ]; - priority = 6; # give precedence to kernel firmware - }; - - passthru.updateScript = ./update.sh; -} diff --git a/pkgs/os-specific/linux/firmware/linux-firmware/source.nix b/pkgs/os-specific/linux/firmware/linux-firmware/source.nix deleted file mode 100644 index 3739c1dc3e46..000000000000 --- a/pkgs/os-specific/linux/firmware/linux-firmware/source.nix +++ /dev/null @@ -1,7 +0,0 @@ -# This file is autogenerated! Run ./update.sh to regenerate. -{ - version = "20240410"; - revision = "20240410"; - sourceHash = "sha256-Qo4f5kdHlBYKlzdFOtoKoCPHXxgDeCawSE3tnRwfC4U="; - outputHash = "sha256-pOYDdb0A1sESiT0kfA4DbWxKJ3+pog54+S3KcQB3BsA="; -} diff --git a/pkgs/os-specific/linux/firmware/linux-firmware/update.sh b/pkgs/os-specific/linux/firmware/linux-firmware/update.sh deleted file mode 100755 index 4b28d6e1374f..000000000000 --- a/pkgs/os-specific/linux/firmware/linux-firmware/update.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -cd "$(dirname "$(readlink -f "$0")")" || exit - -repo="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git" - -# step 1: figure out the latest version from the tags -if [ -z "${1:-}" ]; then - revision="$(git ls-remote --refs --tags --sort refname "$repo" | tail -n1 | cut -f2 | cut -d '/' -f3)" - version=$revision -else - revision=$1 - if [ -z "${2:-}" ]; then - version="unstable-$(date "+%Y-%m-%d")" - else - version=$2 - fi -fi - -# step 2: prefetch the source tarball -snapshotUrl="$repo/snapshot/linux-firmware-$revision.tar.gz" -hash="$(nix-prefetch-url --unpack "$snapshotUrl")" -sriHash="$(nix --experimental-features nix-command hash to-sri "sha256:$hash")" - -# step 3: rebuild as a non-FO derivation to get the right hash -cat > source.nix << EOF -{ - version = "$version"; - revision = "$revision"; - sourceHash = "$sriHash"; - outputHash = null; -} -EOF - -outPath="$(nix --experimental-features "nix-command flakes" build ".#linux-firmware" --no-link --print-out-paths)" -outHash="$(nix --experimental-features nix-command hash path "$outPath")" - -# step 4: generate the final file -cat > source.nix << EOF -# This file is autogenerated! Run ./update.sh to regenerate. -{ - version = "$version"; - revision = "$revision"; - sourceHash = "$sriHash"; - outputHash = "$outHash"; -} -EOF diff --git a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix deleted file mode 100644 index 386df843971c..000000000000 --- a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ lib, stdenvNoCC, fetchFromGitHub }: - -stdenvNoCC.mkDerivation { - pname = "raspberrypi-wireless-firmware"; - version = "unstable-2023-11-15"; - - srcs = [ - (fetchFromGitHub { - name = "bluez-firmware"; - owner = "RPi-Distro"; - repo = "bluez-firmware"; - rev = "d9d4741caba7314d6500f588b1eaa5ab387a4ff5"; - hash = "sha256-CjbZ3t3TW/iJ3+t9QKEtM9NdQU7SwcUCDYuTmFEwvhU="; - }) - (fetchFromGitHub { - name = "firmware-nonfree"; - owner = "RPi-Distro"; - repo = "firmware-nonfree"; - rev = "88aa085bfa1a4650e1ccd88896f8343c22a24055"; - hash = "sha256-Yynww79LPPkau4YDSLI6IMOjH64nMpHUdGjnCfIR2+M="; - }) - ]; - - sourceRoot = "."; - - dontBuild = true; - # Firmware blobs do not need fixing and should not be modified - dontFixup = true; - - installPhase = '' - runHook preInstall - mkdir -p "$out/lib/firmware/brcm" - - # Wifi firmware - cp -rv "$NIX_BUILD_TOP/firmware-nonfree/debian/config/brcm80211/." "$out/lib/firmware/" - - # Bluetooth firmware - cp -rv "$NIX_BUILD_TOP/bluez-firmware/debian/firmware/broadcom/." "$out/lib/firmware/brcm" - - # brcmfmac43455-sdio.bin is a symlink to the non-existent path: ../cypress/cyfmac43455-sdio.bin. - # See https://github.com/RPi-Distro/firmware-nonfree/issues/26 - ln -s "./cyfmac43455-sdio-standard.bin" "$out/lib/firmware/cypress/cyfmac43455-sdio.bin" - - pushd $out/lib/firmware/brcm &>/dev/null - # Symlinks for Zero 2W - ln -s "./brcmfmac43436-sdio.clm_blob" "$out/lib/firmware/brcm/brcmfmac43430b0-sdio.clm_blob" - popd &>/dev/null - - runHook postInstall - ''; - - meta = with lib; { - description = "Firmware for builtin Wifi/Bluetooth devices in the Raspberry Pi 3+ and Zero W"; - homepage = "https://github.com/RPi-Distro/firmware-nonfree"; - license = licenses.unfreeRedistributableFirmware; - platforms = platforms.linux; - maintainers = with maintainers; [ lopsided98 ]; - }; -} diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/armstubs.nix b/pkgs/os-specific/linux/firmware/raspberrypi/armstubs.nix deleted file mode 100644 index 72c6f6235548..000000000000 --- a/pkgs/os-specific/linux/firmware/raspberrypi/armstubs.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -let - inherit (lib) optionals; -in -stdenv.mkDerivation { - pname = "raspberrypi-armstubs"; - version = "unstable-2022-07-11"; - - src = fetchFromGitHub { - owner = "raspberrypi"; - repo = "tools"; - rev = "439b6198a9b340de5998dd14a26a0d9d38a6bcac"; - hash = "sha512-KMHgj73eXHT++IE8DbCsFeJ87ngc9R3XxMUJy4Z3s4/MtMeB9zblADHkyJqz9oyeugeJTrDtuVETPBRo7M4Y8A=="; - }; - - env.NIX_CFLAGS_COMPILE = toString [ - "-march=armv8-a+crc" - ]; - - preConfigure = '' - cd armstubs - ''; - - makeFlags = [ - "CC8=${stdenv.cc.targetPrefix}cc" - "LD8=${stdenv.cc.targetPrefix}ld" - "OBJCOPY8=${stdenv.cc.targetPrefix}objcopy" - "OBJDUMP8=${stdenv.cc.targetPrefix}objdump" - "CC7=${stdenv.cc.targetPrefix}cc" - "LD7=${stdenv.cc.targetPrefix}ld" - "OBJCOPY7=${stdenv.cc.targetPrefix}objcopy" - "OBJDUMP7=${stdenv.cc.targetPrefix}objdump" - ] - ++ optionals (stdenv.isAarch64) [ "armstub8.bin" "armstub8-gic.bin" ] - ++ optionals (stdenv.isAarch32) [ "armstub7.bin" "armstub8-32.bin" "armstub8-32-gic.bin" ] - ; - - installPhase = '' - runHook preInstall - mkdir -vp $out/ - cp -v *.bin $out/ - runHook postInstall - ''; - - meta = with lib; { - description = "Firmware related ARM stubs for the Raspberry Pi"; - homepage = "https://github.com/raspberrypi/tools"; - license = licenses.bsd3; - platforms = [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ]; - maintainers = with maintainers; [ samueldr ]; - }; -} diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix deleted file mode 100644 index 0aea94bca067..000000000000 --- a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenvNoCC, fetchFromGitHub }: - -stdenvNoCC.mkDerivation rec { - # NOTE: this should be updated with linux_rpi - pname = "raspberrypi-firmware"; - # raspberrypi/firmware no longers tag the releases. However, since each commit - # on the stable branch corresponds to a tag in raspberrypi/linux repo, we - # assume they are cut together. - version = "stable_20231123"; - - src = fetchFromGitHub { - owner = "raspberrypi"; - repo = "firmware"; - rev = "524247ac6d8b1f4ddd53730e978a70c76a320bd6"; - hash = "sha256-rESwkR7pc5MTwIZ8PaMUPXuzxfv+jVpdRp8ijvxHGcg="; - }; - - installPhase = '' - mkdir -p $out/share/raspberrypi/ - mv boot "$out/share/raspberrypi/" - ''; - - dontConfigure = true; - dontBuild = true; - dontFixup = true; - - meta = with lib; { - description = "Firmware for the Raspberry Pi board"; - homepage = "https://github.com/raspberrypi/firmware"; - license = licenses.unfreeRedistributableFirmware; # See https://github.com/raspberrypi/firmware/blob/master/boot/LICENCE.broadcom - maintainers = with maintainers; [ dezgeg ]; - # Hash mismatch on source, mystery. - # Maybe due to https://github.com/NixOS/nix/issues/847 - broken = stdenvNoCC.isDarwin; - }; -} diff --git a/pkgs/os-specific/linux/firmware/rt5677/default.nix b/pkgs/os-specific/linux/firmware/rt5677/default.nix deleted file mode 100644 index 47e0068cc348..000000000000 --- a/pkgs/os-specific/linux/firmware/rt5677/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenvNoCC, fetchFromGitHub }: - -stdenvNoCC.mkDerivation { - name = "rt5677-firmware"; - - src = fetchFromGitHub { - owner = "raphael"; - repo = "linux-samus"; - rev = "995de6c2093797905fbcd79f1a3625dd3f50be37"; - sha256 = "sha256-PjPFpz4qJLC+vTomV31dA3AKGjfYjKB2ZYfUpnj61Cg="; - }; - - installPhase = '' - mkdir -p $out/lib/firmware - cp ./firmware/rt5677_elf_vad $out/lib/firmware - ''; - - meta = with lib; { - description = "Firmware for Realtek rt5677 device"; - license = licenses.unfreeRedistributableFirmware; - maintainers = [ maintainers.zohl ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/rtl8192su-firmware/default.nix b/pkgs/os-specific/linux/firmware/rtl8192su-firmware/default.nix deleted file mode 100644 index 53f32ac31f9d..000000000000 --- a/pkgs/os-specific/linux/firmware/rtl8192su-firmware/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenvNoCC, fetchFromGitHub }: -with lib; -stdenvNoCC.mkDerivation { - pname = "rtl8192su"; - version = "unstable-2016-10-05"; - - src = fetchFromGitHub { - owner = "chunkeey"; - repo = "rtl8192su"; - rev = "c00112c9a14133290fe30bd3b44e45196994cb1c"; - sha256 = "0j3c35paapq1icmxq0mg7pm2xa2m69q7bkfmwgq99d682yr2cb5l"; - }; - - dontBuild = true; - - installPhase = '' - for i in rtl8192sfw.bin \ - rtl8192sufw-ap.bin \ - rtl8192sufw-apple.bin \ - rtl8192sufw-windows.bin \ - rtl8712u-linux-firmware-bad.bin \ - rtl8712u-most-recent-v2.6.6-bad.bin \ - rtl8712u-most-recent-v2.6.6-bad.bin \ - rtl8712u-oldest-but-good.bin; - do - install -D -pm644 firmwares/$i $out/lib/firmware/rtlwifi/$i - done - ''; - - meta = with lib; { - description = "Firmware for Realtek RTL8188SU/RTL8191SU/RTL8192SU"; - homepage = "https://github.com/chunkeey/rtl8192su"; - license = licenses.unfreeRedistributableFirmware; - maintainers = with maintainers; [ mic92 ]; - platforms = with platforms; linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/rtl8761b-firmware/default.nix b/pkgs/os-specific/linux/firmware/rtl8761b-firmware/default.nix deleted file mode 100644 index c3fbe79537c4..000000000000 --- a/pkgs/os-specific/linux/firmware/rtl8761b-firmware/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenvNoCC, fetchFromGitHub }: - -stdenvNoCC.mkDerivation { - name = "rtl8761b-firmware"; - - src = fetchFromGitHub { - owner = "Realtek-OpenSource"; - repo = "android_hardware_realtek"; - rev = "rtk1395"; - sha256 = "sha256-vd9sZP7PGY+cmnqVty3sZibg01w8+UNinv8X85B+dzc="; - }; - - installPhase = '' - install -D -pm644 \ - bt/rtkbt/Firmware/BT/rtl8761b_fw \ - $out/lib/firmware/rtl_bt/rtl8761b_fw.bin - - install -D -pm644 \ - bt/rtkbt/Firmware/BT/rtl8761b_config \ - $out/lib/firmware/rtl_bt/rtl8761b_config.bin - ''; - - meta = with lib; { - description = "Firmware for Realtek RTL8761b"; - license = licenses.unfreeRedistributableFirmware; - maintainers = with maintainers; [ milibopp ]; - platforms = with platforms; linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/rtw88-firmware/default.nix b/pkgs/os-specific/linux/firmware/rtw88-firmware/default.nix deleted file mode 100644 index b4e07624b6ef..000000000000 --- a/pkgs/os-specific/linux/firmware/rtw88-firmware/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ stdenvNoCC, lib, linuxPackages }: - -stdenvNoCC.mkDerivation { - pname = "rtw88-firmware"; - inherit (linuxPackages.rtw88) version src; - - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib/firmware/rtw88 - cp *.bin $out/lib/firmware/rtw88 - - runHook postInstall - ''; - - meta = with lib; { - description = "Firmware for the newest Realtek rtlwifi codes"; - homepage = "https://github.com/lwfinger/rtw88"; - license = licenses.unfreeRedistributableFirmware; - maintainers = with maintainers; [ tvorog ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix deleted file mode 100644 index e4aa0b353aca..000000000000 --- a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib -, fetchurl -, stdenvNoCC -}: - -stdenvNoCC.mkDerivation rec { - pname = "sof-firmware"; - version = "2024.03"; - - src = fetchurl { - url = "https://github.com/thesofproject/sof-bin/releases/download/v${version}/sof-bin-${version}.tar.gz"; - sha256 = "sha256-T9ky97vBUXsG+nkR5tVmgU1dxP7FYIvbROfE/kkp+/Y="; - }; - - dontFixup = true; # binaries must not be stripped or patchelfed - - installPhase = '' - runHook preInstall - mkdir -p $out/lib/firmware/intel - cp -av sof $out/lib/firmware/intel/sof - cp -av sof-tplg $out/lib/firmware/intel/sof-tplg - cp -av sof-ace-tplg $out/lib/firmware/intel/sof-ace-tplg - cp -av sof-ipc4 $out/lib/firmware/intel/sof-ipc4 - cp -av sof-ipc4-tplg $out/lib/firmware/intel/sof-ipc4-tplg - runHook postInstall - ''; - - meta = with lib; { - changelog = "https://github.com/thesofproject/sof-bin/releases/tag/v${version}"; - description = "Sound Open Firmware"; - homepage = "https://www.sofproject.org/"; - license = with licenses; [ bsd3 isc ]; - maintainers = with maintainers; [ lblasc evenbrenden hmenke ]; - platforms = with platforms; linux; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - }; -} diff --git a/pkgs/os-specific/linux/firmware/system76-firmware/Cargo.lock b/pkgs/os-specific/linux/firmware/system76-firmware/Cargo.lock deleted file mode 100644 index 3ac385d816eb..000000000000 --- a/pkgs/os-specific/linux/firmware/system76-firmware/Cargo.lock +++ /dev/null @@ -1,1551 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "anyhow" -version = "1.0.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "base32" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" - -[[package]] -name = "base64" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" -dependencies = [ - "generic-array", -] - -[[package]] -name = "buildchain" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4ba006f08f732ddc25f629c349fbb89c67e6c90a4764ce04534d32a1940b0" -dependencies = [ - "base32", - "clap", - "lxd", - "plain", - "rand 0.8.5", - "reqwest", - "serde", - "serde_json", - "sha2 0.10.6", - "sodalite", - "tempdir", -] - -[[package]] -name = "bumpalo" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" - -[[package]] -name = "bytes" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "clap" -version = "3.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" -dependencies = [ - "atty", - "bitflags", - "clap_derive", - "clap_lex", - "indexmap", - "once_cell", - "strsim", - "termcolor", - "textwrap", -] - -[[package]] -name = "clap_derive" -version = "3.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" -dependencies = [ - "heck", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "cpufeatures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "dbus" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" -dependencies = [ - "libc", - "libdbus-sys", - "winapi", -] - -[[package]] -name = "dbus-crossroads" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a816e8ae3382c7b1bccfa6f2778346ee5b13f80e0eccf80cf8f2912af73995a" -dependencies = [ - "dbus", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer 0.10.3", - "crypto-common", -] - -[[package]] -name = "ecflash" -version = "0.1.0" -source = "git+https://github.com/system76/ecflash.git?branch=stable#ee9d69d4edf3bee6b2fb6dddb021bb58ee3bbbbb" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" - -[[package]] -name = "encoding_rs" -version = "0.8.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enum_derive" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406ac2a8c9eedf8af9ee1489bee9e50029278a6456c740f7454cf8a158abc816" - -[[package]] -name = "fastrand" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] - -[[package]] -name = "filetime" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "windows-sys", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - -[[package]] -name = "futures-channel" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" - -[[package]] -name = "futures-io" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" - -[[package]] -name = "futures-sink" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" - -[[package]] -name = "futures-task" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" - -[[package]] -name = "futures-util" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" -dependencies = [ - "futures-core", - "futures-io", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "h2" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "heck" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "http" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "hyper" -version = "0.14.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "idna" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "index-fixed" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161ceaf2f41b6cd3f6502f5da085d4ad4393a51e0c70ed2fce1d5698d798fae" - -[[package]] -name = "indexmap" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "ipnet" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" - -[[package]] -name = "itertools" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" - -[[package]] -name = "js-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.139" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" - -[[package]] -name = "libdbus-sys" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2264f9d90a9b4e60a2dc722ad899ea0374f03c2e96e755fe22a8f551d4d5fb3c" -dependencies = [ - "pkg-config", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "lxd" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "918a314b8eb7d4e19c3d154b4069b12aa37c25a68bae4f2c2a69f50bf47c7c5a" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "mime" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" - -[[package]] -name = "mio" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi 0.2.6", - "libc", -] - -[[package]] -name = "once_cell" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "openssl" -version = "0.10.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b102428fd03bc5edf97f62620f7298614c45cedf287c271e7ed450bbaf83f2e1" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23bbbf7854cd45b83958ebe919f0e8e516793727652e27fda10a8384cfc790b7" -dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "os_str_bytes" -version = "6.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" - -[[package]] -name = "percent-encoding" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" - -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "reqwest" -version = "0.11.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21eed90ec8570952d53b772ecf8f206aa1ec9a3d76b2521c56c42973f2d91ee9" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "rust-lzma" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "895dc04daeaeee338bb96e229797902ed3f0675bfc59d5b42e0f0b0c13ac54da" -dependencies = [ - "pkg-config", -] - -[[package]] -name = "ryu" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" - -[[package]] -name = "schannel" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "security-framework" -version = "2.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - -[[package]] -name = "shrinkwraprs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e63e6744142336dfb606fe2b068afa2e1cca1ee6a5d8377277a92945d81fa331" -dependencies = [ - "bitflags", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "slab" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" -dependencies = [ - "autocfg", -] - -[[package]] -name = "socket2" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "sodalite" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41784a359d15c58bba298cccb7f30a847a1a42d0620c9bdaa0aa42fdb3c280e0" -dependencies = [ - "index-fixed", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "syn" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "system76-firmware" -version = "1.0.50" -dependencies = [ - "anyhow", - "bincode", - "buildchain", - "clap", - "ecflash", - "libc", - "plain", - "rust-lzma", - "serde", - "serde_json", - "sha2 0.9.9", - "system76_ectool", - "tar", - "tempdir", - "uuid", -] - -[[package]] -name = "system76-firmware-daemon" -version = "0.1.0" -dependencies = [ - "dbus", - "dbus-crossroads", - "enum_derive", - "libc", - "serde", - "serde_json", - "shrinkwraprs", - "system76-firmware", - "thiserror", -] - -[[package]] -name = "system76_ectool" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c957fdd329e017031dbd261ff48fad01296660a9c237942c226cff064bd0610a" -dependencies = [ - "libc", -] - -[[package]] -name = "tar" -version = "0.4.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d779dc6aeff029314570f666ec83f19df7280bb36ef338442cfa8c604021b80" -dependencies = [ - "filetime", - "libc", - "xattr", -] - -[[package]] -name = "tempdir" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -dependencies = [ - "rand 0.4.6", - "remove_dir_all", -] - -[[package]] -name = "tempfile" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" -dependencies = [ - "cfg-if", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "textwrap" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" - -[[package]] -name = "thiserror" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "tokio" -version = "1.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" -dependencies = [ - "autocfg", - "bytes", - "libc", - "memchr", - "mio", - "num_cpus", - "pin-project-lite", - "socket2", - "windows-sys", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "unicode-bidi" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" - -[[package]] -name = "unicode-ident" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "url" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" - -[[package]] -name = "web-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - -[[package]] -name = "xattr" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" -dependencies = [ - "libc", -] diff --git a/pkgs/os-specific/linux/firmware/system76-firmware/default.nix b/pkgs/os-specific/linux/firmware/system76-firmware/default.nix deleted file mode 100644 index d28372a465d9..000000000000 --- a/pkgs/os-specific/linux/firmware/system76-firmware/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ rustPlatform, lib, fetchFromGitHub, xz, pkg-config, openssl, dbus, efibootmgr, makeWrapper }: -rustPlatform.buildRustPackage rec { - pname = "system76-firmware"; - # Check Makefile when updating, make sure postInstall matches make install - version = "1.0.50"; - - src = fetchFromGitHub { - owner = "pop-os"; - repo = pname; - rev = version; - sha256 = "sha256-nLbDhs+FxIcoVK66bwUAxAubikic5NT8yOA/mH/irgQ="; - }; - - nativeBuildInputs = [ pkg-config makeWrapper ]; - - buildInputs = [ xz openssl dbus ]; - - cargoBuildFlags = [ "--workspace" ]; - - cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "ecflash-0.1.0" = "sha256-W613wbW54R65/rs6oiPAH/qov2OVEjMMszpUJdX4TxI="; - }; - }; - - # Purposefully don't install systemd unit file, that's for NixOS - postInstall = '' - install -D -m -0644 data/system76-firmware-daemon.conf $out/etc/dbus-1/system.d/system76-firmware-daemon.conf - - for bin in $out/bin/system76-firmware-* - do - wrapProgram $bin --prefix PATH : "${efibootmgr}/bin" - done - ''; - - meta = with lib; { - description = "Tools for managing firmware updates for system76 devices"; - homepage = "https://github.com/pop-os/system76-firmware"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ shlevy ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/firmware/xow_dongle-firmware/default.nix b/pkgs/os-specific/linux/firmware/xow_dongle-firmware/default.nix deleted file mode 100644 index 444585189434..000000000000 --- a/pkgs/os-specific/linux/firmware/xow_dongle-firmware/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ stdenvNoCC, lib, fetchurl, cabextract }: - -stdenvNoCC.mkDerivation rec { - pname = "xow_dongle-firmware"; - version = "2017-07"; - - dontConfigure = true; - dontBuild = true; - - src = fetchurl { - url = "http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab"; - sha256 = "013g1zngxffavqrk5jy934q3bdhsv6z05ilfixdn8dj0zy26lwv5"; - }; - - nativeBuildInputs = [ cabextract ]; - - sourceRoot = "."; - - unpackCmd = '' - cabextract -F FW_ACC_00U.bin ${src} - ''; - - installPhase = '' - install -Dm644 FW_ACC_00U.bin ${placeholder "out"}/lib/firmware/xow_dongle.bin - ''; - - meta = with lib; { - description = "Xbox One wireless dongle firmware"; - homepage = "https://www.xbox.com/en-NZ/accessories/adapters/wireless-adapter-windows"; - license = licenses.unfree; - maintainers = with lib.maintainers; [ rhysmdnz ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/firmware/zd1211/default.nix b/pkgs/os-specific/linux/firmware/zd1211/default.nix deleted file mode 100644 index eb6276d36ac9..000000000000 --- a/pkgs/os-specific/linux/firmware/zd1211/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ stdenvNoCC -, lib -, fetchurl -}: - -stdenvNoCC.mkDerivation rec { - pname = "zd1211-firmware"; - version = "1.5"; - - src = fetchurl { - url = "mirror://sourceforge/zd1211/${pname}-${version}.tar.bz2"; - hash = "sha256-8R04ENf3KDOZf2NFhKWG3M7XGjU/llq/gQYuxDHQKxI="; - }; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib/firmware/zd1211 - cp zd1211* $out/lib/firmware/zd1211 - - runHook postInstall - ''; - - meta = { - description = "Firmware for the ZyDAS ZD1211(b) 802.11a/b/g USB WLAN chip"; - homepage = "https://sourceforge.net/projects/zd1211/"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/flashbench/default.nix b/pkgs/os-specific/linux/flashbench/default.nix deleted file mode 100644 index 619aea69aa64..000000000000 --- a/pkgs/os-specific/linux/flashbench/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation { - pname = "flashbench-unstable"; - version = "2020-01-23"; - - src = fetchFromGitHub { - owner = "bradfa"; - repo = "flashbench"; - rev = "d783b1bd2443812c6deadc31b081f043e43e4c1a"; - sha256 = "045j1kpay6x2ikz8x54ph862ymfy1nzpbmmqpf3nkapiv32fjqw5"; - }; - - installPhase = '' - runHook preInstall - - install -d -m755 $out/bin $out/share/doc/flashbench - install -v -m755 flashbench $out/bin - install -v -m755 erase $out/bin/flashbench-erase - install -v -m644 README $out/share/doc/flashbench - - runHook postInstall - ''; - - meta = with lib; { - description = "Testing tool for flash based memory devices"; - homepage = "https://github.com/bradfa/flashbench"; - platforms = platforms.linux; - license = licenses.gpl2Only; - }; -} diff --git a/pkgs/os-specific/linux/fnotifystat/default.nix b/pkgs/os-specific/linux/fnotifystat/default.nix deleted file mode 100644 index 18afaaa6d29b..000000000000 --- a/pkgs/os-specific/linux/fnotifystat/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -}: - -stdenv.mkDerivation rec { - pname = "fnotifystat"; - version = "0.02.11"; - - src = fetchFromGitHub { - owner = "ColinIanKing"; - repo = pname; - rev = "V${version}"; - hash = "sha256-CwjaDL5pt2HMUhq0Q3s6Ssp3jr9uwCdVhT1JzlKcQQw="; - }; - - installFlags = [ - "BINDIR=${placeholder "out"}/bin" - "MANDIR=${placeholder "out"}/share/man/man8" - "BASHDIR=${placeholder "out"}/share/bash-completion/completions" - ]; - - meta = with lib; { - description = "File activity monitoring tool"; - mainProgram = "fnotifystat"; - homepage = "https://github.com/ColinIanKing/fnotifystat"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ womfoo dtzWill ]; - }; -} diff --git a/pkgs/os-specific/linux/forkstat/default.nix b/pkgs/os-specific/linux/forkstat/default.nix deleted file mode 100644 index 75ca64833a59..000000000000 --- a/pkgs/os-specific/linux/forkstat/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, lib, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "forkstat"; - version = "0.03.02"; - - src = fetchFromGitHub { - owner = "ColinIanKing"; - repo = pname; - rev = "V${version}"; - hash = "sha256-lwJIs5knNzkwgIkSdMSVVtrzqnxGy6uOTKsBDkS3xy4="; - }; - - installFlags = [ - "BINDIR=${placeholder "out"}/bin" - "MANDIR=${placeholder "out"}/share/man/man8" - "BASHDIR=${placeholder "out"}/share/bash-completion/completions" - ]; - - meta = with lib; { - description = "Process fork/exec/exit monitoring tool"; - mainProgram = "forkstat"; - homepage = "https://github.com/ColinIanKing/forkstat"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ womfoo ]; - }; -} diff --git a/pkgs/os-specific/linux/forktty/default.nix b/pkgs/os-specific/linux/forktty/default.nix deleted file mode 100644 index 7dc1f0c3b2e4..000000000000 --- a/pkgs/os-specific/linux/forktty/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "forktty"; - version = "1.3"; - - src = fetchurl { - url = "mirror://ibiblioPubLinux/utils/terminal/${pname}-${version}.tgz"; - hash = "sha256-6xc5eshCuCIOsDh0r2DizKAeypGH0TRRotZ4itsvpVk="; - }; - - preBuild = '' - sed -e s@/usr/bin/ginstall@install@g -i Makefile - ''; - - preInstall = '' - mkdir -p "$out/bin" - mkdir -p "$out/share/man/man8" - ''; - - makeFlags = [ "prefix=$(out)" "manprefix=$(out)/share/" ]; - - meta = with lib; { - description = "Tool to detach from controlling TTY and attach to another"; - license = licenses.gpl2; - maintainers = with maintainers; [ raskin ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/framework-laptop-kmod/default.nix b/pkgs/os-specific/linux/framework-laptop-kmod/default.nix deleted file mode 100644 index b5cb505e09a2..000000000000 --- a/pkgs/os-specific/linux/framework-laptop-kmod/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib -, stdenv -, linuxPackages -, kernel -, fetchFromGitHub -}: - -stdenv.mkDerivation rec { - pname = "framework-laptop-kmod"; - version = "0-unstable-2024-01-02"; - - src = fetchFromGitHub { - owner = "DHowett"; - repo = "framework-laptop-kmod"; - rev = "a9e8db9ba2959b75c1fb820ffac8fa189f0f63c3"; - hash = "sha256-Ai/OxvkaKPltri8R0oyfmxQLUVfaj6Q8vebrhmWYhUU="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - runHook preInstall - install -D framework_laptop.ko -t $out/lib/modules/${kernel.modDirVersion}/extra - runHook postInstall - ''; - - meta = with lib; { - description = "A kernel module that exposes the Framework Laptop (13, 16)'s battery charge limit and LEDs to userspace."; - homepage = "https://github.com/DHowett/framework-laptop-kmod"; - license = licenses.gpl2; - maintainers = with maintainers; [ gaykitty ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/freefall/default.nix b/pkgs/os-specific/linux/freefall/default.nix deleted file mode 100644 index bad4849ca0bf..000000000000 --- a/pkgs/os-specific/linux/freefall/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, kernel }: - -stdenv.mkDerivation { - inherit (kernel) version src; - - pname = "freefall"; - - postPatch = '' - cd tools/laptop/freefall - - # Default time-out is a little low, probably because the AC/lid status - # functions were never implemented. Because no-one still uses HDDs, right? - substituteInPlace freefall.c --replace "alarm(2)" "alarm(5)" - ''; - - makeFlags = [ "PREFIX=$(out)" ]; - - meta = with lib; { - inherit (kernel.meta) homepage license; - - description = "Free-fall protection for spinning HP/Dell laptop hard drives"; - mainProgram = "freefall"; - longDescription = '' - Provides a shock protection facility in modern laptops with spinning hard - drives, by stopping all input/output operations on the internal hard drive - and parking its heads on the ramp when critical situations are anticipated. - Requires support for the ATA/ATAPI-7 IDLE IMMEDIATE command with unload - feature, which should cause the drive to switch to idle mode and unload the - disk heads, and an accelerometer device. It has no effect on SSD devices! - ''; - - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/freeipa/default.nix b/pkgs/os-specific/linux/freeipa/default.nix deleted file mode 100644 index e94f6370da98..000000000000 --- a/pkgs/os-specific/linux/freeipa/default.nix +++ /dev/null @@ -1,172 +0,0 @@ -{ stdenv -, lib -, fetchurl -, pkg-config -, autoconf -, automake -, kerberos -, openldap -, popt -, sasl -, curl -, xmlrpc_c -, ding-libs -, p11-kit -, gettext -, nspr -, nss -, _389-ds-base -, svrcore -, libuuid -, talloc -, tevent -, samba -, libunistring -, libverto -, libpwquality -, systemd -, python3 -, bind -, sssd -, jre -, rhino -, lesscpy -, jansson -, runtimeShell -}: - -let - pathsPy = ./paths.py; - - pythonInputs = with python3.pkgs; [ - six - python-ldap - dnspython - netaddr - netifaces - gssapi - dogtag-pki - pyasn1 - sssd - cffi - lxml - dbus-python - cryptography - python-memcached - qrcode - pyusb - yubico - setuptools - jinja2 - augeas - samba - ]; -in -stdenv.mkDerivation rec { - pname = "freeipa"; - version = "4.11.1"; - - src = fetchurl { - url = "https://releases.pagure.org/freeipa/freeipa-${version}.tar.gz"; - sha256 = "sha256-Ubq2xAqBvjUwrzD2R6tB0i1WsdA0Y0jnJLgi4p4r8D4="; - }; - - nativeBuildInputs = [ - python3.pkgs.wrapPython - jre - rhino - lesscpy - automake - autoconf - gettext - pkg-config - ]; - - buildInputs = [ - kerberos - openldap - popt - sasl - curl - xmlrpc_c - ding-libs - p11-kit - python3 - nspr - nss - _389-ds-base - svrcore - libuuid - talloc - tevent - samba - libunistring - libverto - systemd - bind - libpwquality - jansson - ] ++ pythonInputs; - - postPatch = '' - patchShebangs makeapi makeaci install/ui/util - - substituteInPlace ipaplatform/setup.py \ - --replace 'ipaplatform.debian' 'ipaplatform.nixos' - - substituteInPlace ipasetup.py.in \ - --replace 'int(v)' 'int(v.replace("post", ""))' - - substituteInPlace client/ipa-join.c \ - --replace /usr/sbin/ipa-getkeytab $out/bin/ipa-getkeytab - - cp -r ipaplatform/{fedora,nixos} - substitute ${pathsPy} ipaplatform/nixos/paths.py \ - --subst-var out \ - --subst-var-by bind ${bind.dnsutils} \ - --subst-var-by curl ${curl} \ - --subst-var-by kerberos ${kerberos} - ''; - - NIX_CFLAGS_COMPILE = "-I${_389-ds-base}/include/dirsrv"; - pythonPath = pythonInputs; - - # Building and installing the server fails with silent Rhino errors, skipping - # for now. Need a newer Rhino version. - #buildFlags = [ "client" "server" ] - - configureFlags = [ - "--with-systemdsystemunitdir=$out/lib/systemd/system" - "--with-ipaplatform=nixos" - "--disable-server" - ]; - - postInstall = '' - echo " - #!${runtimeShell} - echo 'ipa-client-install is not available on NixOS. Please see security.ipa, instead.' - exit 1 - " > $out/sbin/ipa-client-install - ''; - - postFixup = '' - wrapPythonPrograms - rm -rf $out/etc/ipa $out/var/lib/ipa-client/sysrestore - ''; - - meta = with lib; { - description = "Identity, Policy and Audit system"; - longDescription = '' - IPA is an integrated solution to provide centrally managed Identity (users, - hosts, services), Authentication (SSO, 2FA), and Authorization - (host access control, SELinux user roles, services). The solution provides - features for further integration with Linux based clients (SUDO, automount) - and integration with Active Directory based infrastructures (Trusts). - ''; - homepage = "https://www.freeipa.org/"; - license = licenses.gpl3Plus; - maintainers = [ maintainers.s1341 ]; - platforms = platforms.linux; - mainProgram = "ipa"; - }; -} diff --git a/pkgs/os-specific/linux/freeipa/paths.py b/pkgs/os-specific/linux/freeipa/paths.py deleted file mode 100644 index 36c0cc0c7403..000000000000 --- a/pkgs/os-specific/linux/freeipa/paths.py +++ /dev/null @@ -1,13 +0,0 @@ -from ipaplatform.fedora.paths import FedoraPathNamespace - -class NixOSPathNamespace(FedoraPathNamespace): - SBIN_IPA_JOIN = "@out@/bin/ipa-join" - IPA_GETCERT = "@out@/bin/ipa-getcert" - IPA_RMKEYTAB = "@out@/bin/ipa-rmkeytab" - IPA_GETKEYTAB = "@out@/bin/ipa-getkeytab" - NSUPDATE = "@bind@/bin/nsupdate" - BIN_CURL = "@curl@/bin/curl" - KINIT = "@kerberos@/bin/kinit" - KDESTROY = "@kerberos@/bin/kdestroy" - -paths = NixOSPathNamespace() diff --git a/pkgs/os-specific/linux/fscrypt/default.nix b/pkgs/os-specific/linux/fscrypt/default.nix deleted file mode 100644 index 8b54a1f9a745..000000000000 --- a/pkgs/os-specific/linux/fscrypt/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib, buildGoModule, fetchFromGitHub, gnum4, pam, fscrypt-experimental }: - -# Don't use this for anything important yet! - -buildGoModule rec { - pname = "fscrypt"; - version = "0.3.4"; - - src = fetchFromGitHub { - owner = "google"; - repo = "fscrypt"; - rev = "v${version}"; - hash = "sha256-4Im3YWhLs5Q+o4DtpSuSMuKtKqXaICL9/EB0q5um6mQ="; - }; - - postPatch = '' - substituteInPlace Makefile \ - --replace 'TAG_VERSION := $(shell git describe --tags)' "" \ - --replace "/usr/local" "$out" - ''; - - vendorHash = "sha256-APW0XM6fTQOCw4tE1NA5VNN3fBUmsvn99NqqJnB3Q0s="; - - doCheck = false; - - nativeBuildInputs = [ gnum4 ]; - buildInputs = [ pam ]; - - buildPhase = '' - runHook preBuild - make - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - make install - runHook postInstall - ''; - - meta = with lib; { - description = - "A high-level tool for the management of Linux filesystem encryption"; - mainProgram = "fscrypt"; - longDescription = '' - This tool manages metadata, key generation, key wrapping, PAM integration, - and provides a uniform interface for creating and modifying encrypted - directories. - ''; - inherit (src.meta) homepage; - changelog = "https://github.com/google/fscrypt/releases/tag/v${version}"; - license = licenses.asl20; - platforms = platforms.linux; - maintainers = with maintainers; [ primeos ]; - }; -} diff --git a/pkgs/os-specific/linux/fscryptctl/default.nix b/pkgs/os-specific/linux/fscryptctl/default.nix deleted file mode 100644 index 4b38913b7122..000000000000 --- a/pkgs/os-specific/linux/fscryptctl/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "fscryptctl"; - version = "1.0.0"; - - goPackagePath = "github.com/google/fscrypt"; - - src = fetchFromGitHub { - owner = "google"; - repo = "fscryptctl"; - rev = "v${version}"; - sha256 = "1hwj726mm0yhlcf6523n07h0yq1rvkv4km64h3ydpjcrcxklhw6l"; - }; - - makeFlags = [ "PREFIX=${placeholder "out"}" ]; - - meta = with lib; { - description = "Small C tool for Linux filesystem encryption"; - mainProgram = "fscryptctl"; - longDescription = '' - fscryptctl is a low-level tool written in C that handles raw keys and - manages policies for Linux filesystem encryption, specifically the - "fscrypt" kernel interface which is supported by the ext4, f2fs, and - UBIFS filesystems. - fscryptctl is mainly intended for embedded systems which can't use the - full-featured fscrypt tool, or for testing or experimenting with the - kernel interface to Linux filesystem encryption. fscryptctl does not - handle key generation, key stretching, key wrapping, or PAM integration. - Most users should use the fscrypt tool instead, which supports these - features and generally is much easier to use. - As fscryptctl is intended for advanced users, you should read the kernel - documentation for filesystem encryption before using fscryptctl. - ''; - inherit (src.meta) homepage; - changelog = "https://github.com/google/fscryptctl/releases/tag/v${version}"; - license = licenses.asl20; - platforms = platforms.linux; - maintainers = with maintainers; [ primeos ]; - }; -} diff --git a/pkgs/os-specific/linux/fsverity-utils/default.nix b/pkgs/os-specific/linux/fsverity-utils/default.nix deleted file mode 100644 index 7d0f1f48e7e5..000000000000 --- a/pkgs/os-specific/linux/fsverity-utils/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ stdenv -, lib -, fetchzip -, openssl -, enableShared ? !stdenv.hostPlatform.isStatic -, enableManpages ? false -, pandoc -}: - -stdenv.mkDerivation rec { - pname = "fsverity-utils"; - version = "1.6"; - - outputs = [ "out" "lib" "dev" ] ++ lib.optional enableManpages "man"; - - src = fetchzip { - url = "https://git.kernel.org/pub/scm/fs/fsverity/fsverity-utils.git/snapshot/fsverity-utils-v${version}.tar.gz"; - sha256 = "sha256-FZN4MKNmymIXZ2Q0woA0SLzPf4SaUJkj4ssKPsY4xXc="; - }; - - patches = lib.optionals (!enableShared) [ - ./remove-dynamic-libs.patch - ]; - - enableParallelBuilding = true; - strictDeps = true; - - nativeBuildInputs = lib.optional enableManpages pandoc; - buildInputs = [ openssl ]; - - makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ] ++ lib.optional enableShared "USE_SHARED_LIB=1"; - - doCheck = true; - - installTargets = [ "install" ] ++ lib.optional enableManpages "install-man"; - - postInstall = '' - mkdir -p $lib - mv $out/lib $lib/lib - ''; - - meta = with lib; { - homepage = "https://www.kernel.org/doc/html/latest/filesystems/fsverity.html#userspace-utility"; - changelog = "https://git.kernel.org/pub/scm/fs/fsverity/fsverity-utils.git/tree/NEWS.md"; - description = "A set of userspace utilities for fs-verity"; - mainProgram = "fsverity"; - license = licenses.mit; - maintainers = with maintainers; [ jk ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/fsverity-utils/remove-dynamic-libs.patch b/pkgs/os-specific/linux/fsverity-utils/remove-dynamic-libs.patch deleted file mode 100644 index 95635cbccdb8..000000000000 --- a/pkgs/os-specific/linux/fsverity-utils/remove-dynamic-libs.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/Makefile b/Makefile -index 2304a21..697ccd4 100644 ---- a/Makefile -+++ b/Makefile -@@ -149,13 +149,11 @@ libfsverity.so.$(SOVERSION):$(SHARED_LIB_OBJ) - $(QUIET_CCLD) $(CC) -o $@ -Wl,-soname=$@ -shared $+ \ - $(CFLAGS) $(LDFLAGS) $(LDLIBS) - --DEFAULT_TARGETS += libfsverity.so.$(SOVERSION) - - # Create the symlink libfsverity.so => libfsverity.so.$(SOVERSION) - libfsverity.so:libfsverity.so.$(SOVERSION) - $(QUIET_LN) ln -sf $+ $@ - --DEFAULT_TARGETS += libfsverity.so - - ############################################################################## - -@@ -263,8 +261,6 @@ install:all - install -d $(DESTDIR)$(LIBDIR)/pkgconfig $(DESTDIR)$(INCDIR) $(DESTDIR)$(BINDIR) - install -m755 $(FSVERITY) $(DESTDIR)$(BINDIR) - install -m644 libfsverity.a $(DESTDIR)$(LIBDIR) -- install -m755 libfsverity.so.$(SOVERSION) $(DESTDIR)$(LIBDIR) -- ln -sf libfsverity.so.$(SOVERSION) $(DESTDIR)$(LIBDIR)/libfsverity.so - install -m644 include/libfsverity.h $(DESTDIR)$(INCDIR) - sed -e "s|@PREFIX@|$(PREFIX)|" \ - -e "s|@LIBDIR@|$(LIBDIR)|" \ diff --git a/pkgs/os-specific/linux/fswebcam/default.nix b/pkgs/os-specific/linux/fswebcam/default.nix deleted file mode 100644 index 1f45d7955da4..000000000000 --- a/pkgs/os-specific/linux/fswebcam/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, stdenv, fetchurl, libv4l, gd }: - -stdenv.mkDerivation rec { - pname = "fswebcam"; - version = "20200725"; - - src = fetchurl { - url = "https://www.sanslogic.co.uk/fswebcam/files/fswebcam-${version}.tar.gz"; - sha256 = "1dazsrcaw9s30zz3jpxamk9lkff5dkmflp1s0jjjvdbwa0k6k6ii"; - }; - - buildInputs = - [ libv4l gd ]; - - meta = { - description = "Neat and simple webcam app"; - mainProgram = "fswebcam"; - homepage = "http://www.sanslogic.co.uk/fswebcam"; - platforms = lib.platforms.linux; - license = lib.licenses.gpl2; - }; -} diff --git a/pkgs/os-specific/linux/ftop/default.nix b/pkgs/os-specific/linux/ftop/default.nix deleted file mode 100644 index b199c84b9fb5..000000000000 --- a/pkgs/os-specific/linux/ftop/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchurl, ncurses }: - -stdenv.mkDerivation rec { - pname = "ftop"; - version = "1.0"; - - src = fetchurl { - url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/ftop/${pname}-${version}.tar.bz2"; - sha256 = "3a705f4f291384344cd32c3dd5f5f6a7cd7cea7624c83cb7e923966dbcd47f82"; - }; - - buildInputs = [ ncurses ]; - - patches = [ - ./ftop-fix_buffer_overflow.patch - ./ftop-fix_printf_format.patch - ]; - patchFlags = [ "-p0" ]; - - postPatch = '' - substituteInPlace configure --replace "curses" "ncurses" - ''; - - meta = with lib; { - description = "Show progress of open files and file systems"; - mainProgram = "ftop"; - homepage = "https://code.google.com/archive/p/ftop/"; - license = licenses.gpl3Plus; - longDescription = '' - ftop is to files what top is to processes. The progress of all open files - and file systems can be monitored. If run as a regular user, the set of - open files will be limited to those in that user's processes (which is - generally all that is of interest to the user). - As with top, the items are displayed in order from most to least active. - ''; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ftop/ftop-fix_buffer_overflow.patch b/pkgs/os-specific/linux/ftop/ftop-fix_buffer_overflow.patch deleted file mode 100644 index f10fa6a33b85..000000000000 --- a/pkgs/os-specific/linux/ftop/ftop-fix_buffer_overflow.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/ftop.c.orig 2010-06-15 21:42:15.000000000 +0200 -+++ src/ftop.c 2010-06-15 21:45:38.000000000 +0200 -@@ -935,7 +935,7 @@ - { - if (bar_used > 0) - { -- snprintf(rate_buf, bar_used + 1, "%s", tmp_buf); -+ snprintf(rate_buf, bar_used >= sizeof(rate_buf) ? sizeof(rate_buf) : bar_used + 1, "%s", tmp_buf); - p_attron(p, A_REVERSE); - p_printf(p, "%s", rate_buf); - if (bar_used > bytes) diff --git a/pkgs/os-specific/linux/ftop/ftop-fix_printf_format.patch b/pkgs/os-specific/linux/ftop/ftop-fix_printf_format.patch deleted file mode 100644 index afb04306428a..000000000000 --- a/pkgs/os-specific/linux/ftop/ftop-fix_printf_format.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- src/ftop.c.orig 2010-06-15 23:14:50.000000000 +0200 -+++ src/ftop.c 2010-06-15 23:15:52.000000000 +0200 -@@ -222,7 +222,7 @@ - p_eol(p, part); - - cols = snprintf(tmp_buf, sizeof(tmp_buf), -- "Processes: %u total, %u unreadable", -+ "Processes: %zu total, %zu unreadable", - s->num_processes + s->num_unreadable_processes, - s->num_unreadable_processes); - -@@ -244,7 +244,7 @@ - p_eol(p, part); - - snprintf(tmp_buf, sizeof(tmp_buf), -- "Open Files: %u regular, %u dir, %u chr, %u blk, %u pipe, %u sock, %u misc", -+ "Open Files: %zu regular, %zu dir, %zu chr, %zu blk, %zu pipe, %zu sock, %zu misc", - s->num_reg, s->num_dir, s->num_chr, s->num_blk, s->num_pipe, - s->num_sock, s->num_misc); - diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix deleted file mode 100644 index f4b8bfc5661a..000000000000 --- a/pkgs/os-specific/linux/fuse/common.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ version, hash }: - -{ lib, stdenv, fetchFromGitHub, fetchpatch -, fusePackages, util-linux, gettext, shadow -, meson, ninja, pkg-config -, autoreconfHook -, python3Packages, which -}: - -let - isFuse3 = lib.hasPrefix "3" version; -in stdenv.mkDerivation rec { - pname = "fuse"; - inherit version; - - src = fetchFromGitHub { - owner = "libfuse"; - repo = "libfuse"; - rev = "${pname}-${version}"; - inherit hash; - }; - - preAutoreconf = "touch config.rpath"; - - patches = - lib.optional - (!isFuse3 && (stdenv.isAarch64 || stdenv.hostPlatform.isLoongArch64)) - (fetchpatch { - url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch"; - sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa"; - }) - ++ (if isFuse3 - then [ ./fuse3-install.patch ./fuse3-Do-not-set-FUSERMOUNT_DIR.patch ] - else [ - ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch - (fetchpatch { - url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch?id=8a970396fca7aca2d5a761b8e7a8242f1eef14c9"; - sha256 = "sha256-ELYBW/wxRcSMssv7ejCObrpsJHtOPJcGq33B9yHQII4="; - }) - ]); - - nativeBuildInputs = if isFuse3 - then [ meson ninja pkg-config ] - else [ autoreconfHook gettext ]; - - outputs = [ "out" ] ++ lib.optional isFuse3 "common"; - - mesonFlags = lib.optionals isFuse3 [ - "-Dudevrulesdir=/udev/rules.d" - "-Duseroot=false" - "-Dinitscriptdir=" - ]; - - preConfigure = '' - export MOUNT_FUSE_PATH=$out/sbin - export INIT_D_PATH=$TMPDIR/etc/init.d - export UDEV_RULES_PATH=$out/etc/udev/rules.d - - # Ensure that FUSE calls the setuid wrapper, not - # $out/bin/fusermount. It falls back to calling fusermount in - # $PATH, so it should also work on non-NixOS systems. - export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\"" - - substituteInPlace lib/mount_util.c --replace "/bin/" "${util-linux}/bin/" - '' + (if isFuse3 then '' - # The configure phase will delete these files (temporary workaround for - # ./fuse3-install_man.patch) - install -D -m444 doc/fusermount3.1 $out/share/man/man1/fusermount3.1 - install -D -m444 doc/mount.fuse3.8 $out/share/man/man8/mount.fuse3.8 - '' else '' - substituteInPlace util/mount.fuse.c --replace '"su"' '"${shadow.su}/bin/su"' - sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh - ./makeconf.sh - ''); - - nativeCheckInputs = [ which ] ++ (with python3Packages; [ python pytest ]); - - checkPhase = '' - python3 -m pytest test/ - ''; - - doCheck = false; # v2: no tests, v3: all tests get skipped in a sandbox - - postFixup = "cd $out\n" + (if isFuse3 then '' - install -D -m444 etc/fuse.conf $common/etc/fuse.conf - install -D -m444 etc/udev/rules.d/99-fuse3.rules $common/etc/udev/rules.d/99-fuse.rules - '' else '' - cp ${fusePackages.fuse_3.common}/etc/fuse.conf etc/fuse.conf - cp ${fusePackages.fuse_3.common}/etc/udev/rules.d/99-fuse.rules etc/udev/rules.d/99-fuse.rules - ''); - - meta = with lib; { - description = "Library that allows filesystems to be implemented in user space"; - longDescription = '' - FUSE (Filesystem in Userspace) is an interface for userspace programs to - export a filesystem to the Linux kernel. The FUSE project consists of two - components: The fuse kernel module (maintained in the regular kernel - repositories) and the libfuse userspace library (this package). libfuse - provides the reference implementation for communicating with the FUSE - kernel module. - ''; - homepage = "https://github.com/libfuse/libfuse"; - changelog = "https://github.com/libfuse/libfuse/releases/tag/fuse-${version}"; - platforms = platforms.linux; - license = with licenses; [ gpl2Only lgpl21Only ]; - maintainers = [ maintainers.primeos ]; - }; -} diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix deleted file mode 100644 index f692c2fb41c7..000000000000 --- a/pkgs/os-specific/linux/fuse/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ callPackage, util-linux }: - -let - mkFuse = args: callPackage (import ./common.nix args) { - inherit util-linux; - }; -in { - fuse_2 = mkFuse { - version = "2.9.9"; - hash = "sha256-dgjM6M7xk5MHi9xPyCyvF0vq0KM8UCsEYBcMhkrdvfs="; - }; - - fuse_3 = mkFuse { - version = "3.16.2"; - hash = "sha256-QO9s+IkR0rkqIYNqt2IYST6AVBkCr56jcuuz5nKJuA4="; - }; -} diff --git a/pkgs/os-specific/linux/fuse/fuse2-Do-not-set-FUSERMOUNT_DIR.patch b/pkgs/os-specific/linux/fuse/fuse2-Do-not-set-FUSERMOUNT_DIR.patch deleted file mode 100644 index 8ff40f34f938..000000000000 --- a/pkgs/os-specific/linux/fuse/fuse2-Do-not-set-FUSERMOUNT_DIR.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/lib/Makefile.am -+++ b/lib/Makefile.am -@@ -1,7 +1,7 @@ - ## Process this file with automake to produce Makefile.in - - AUTOMAKE_OPTIONS = subdir-objects --AM_CPPFLAGS = -I$(top_srcdir)/include -DFUSERMOUNT_DIR=\"$(bindir)\" \ -+AM_CPPFLAGS = -I$(top_srcdir)/include \ - -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 - - lib_LTLIBRARIES = libfuse.la libulockmgr.la diff --git a/pkgs/os-specific/linux/fuse/fuse3-Do-not-set-FUSERMOUNT_DIR.patch b/pkgs/os-specific/linux/fuse/fuse3-Do-not-set-FUSERMOUNT_DIR.patch deleted file mode 100644 index 582d3eb0dec8..000000000000 --- a/pkgs/os-specific/linux/fuse/fuse3-Do-not-set-FUSERMOUNT_DIR.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/meson.build b/lib/meson.build ---- a/lib/meson.build -+++ b/lib/meson.build -@@ -37,8 +37,7 @@ libfuse = library('fuse3', libfuse_sources, version: meson.project_version(), - soversion: '3', include_directories: include_dirs, - dependencies: deps, install: true, - link_depends: 'fuse_versionscript', -- c_args: [ '-DFUSE_USE_VERSION=312', -- '-DFUSERMOUNT_DIR="@0@"'.format(fusermount_path) ], -+ c_args: [ '-DFUSE_USE_VERSION=312' ], - link_args: ['-Wl,--version-script,' + meson.current_source_dir() - + '/fuse_versionscript' ]) - diff --git a/pkgs/os-specific/linux/fuse/fuse3-install.patch b/pkgs/os-specific/linux/fuse/fuse3-install.patch deleted file mode 100644 index 769e3088664c..000000000000 --- a/pkgs/os-specific/linux/fuse/fuse3-install.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/util/install_helper.sh 2023-08-26 22:12:11.028651669 +0200 -+++ b/util/install_helper.sh 2023-08-26 22:38:03.165058694 +0200 -@@ -39,12 +39,12 @@ - - if [ "${udevrulesdir}" != "" ]; then - install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \ -- "${DESTDIR}${udevrulesdir}/99-fuse3.rules" -+ "${sysconfdir}${udevrulesdir}/99-fuse3.rules" - fi - - if [ "$initscriptdir" != "" ]; then - install -D -m 755 "${MESON_SOURCE_ROOT}/util/init_script" \ -- "${DESTDIR}${initscriptdir}/fuse3" -+ "${sysconfdir}${initscriptdir}/fuse3" - - if test -x /usr/sbin/update-rc.d && test -z "${DESTDIR}"; then - /usr/sbin/update-rc.d fuse3 start 34 S . start 41 0 6 . || /bin/true -diff --git a/util/meson.build b/util/meson.build -index aa0e734..06d4378 100644 ---- a/util/meson.build -+++ b/util/meson.build -@@ -1,4 +1,4 @@ --fuseconf_path = join_paths(get_option('prefix'), get_option('sysconfdir'), 'fuse.conf') -+fuseconf_path = join_paths('/', get_option('sysconfdir'), 'fuse.conf') - - executable('fusermount3', ['fusermount.c', '../lib/mount_util.c'], - include_directories: include_dirs, diff --git a/pkgs/os-specific/linux/fw-ectool/default.nix b/pkgs/os-specific/linux/fw-ectool/default.nix deleted file mode 100644 index a73cc1896ecd..000000000000 --- a/pkgs/os-specific/linux/fw-ectool/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, pkg-config -, hostname -}: - -stdenv.mkDerivation { - pname = "fw-ectool"; - version = "unstable-2022-12-03"; - - src = fetchFromGitHub { - owner = "DHowett"; - repo = "fw-ectool"; - rev = "54c140399bbc3e6a3dce6c9f842727c4128367be"; - hash = "sha256-2teJFz4zcA+USpbVPXMEIHLdmMLem8ik7YrmrSxr/n0="; - }; - - nativeBuildInputs = [ - pkg-config - hostname - ]; - - buildPhase = '' - patchShebangs util - make out=out utils - ''; - - installPhase = '' - install -D out/util/ectool $out/bin/ectool - ''; - - meta = with lib; { - description = "EC-Tool adjusted for usage with framework embedded controller"; - homepage = "https://github.com/DHowett/framework-ec"; - license = licenses.bsd3; - maintainers = [ maintainers.mkg20001 ]; - platforms = platforms.linux; - mainProgram = "ectool"; - }; -} diff --git a/pkgs/os-specific/linux/fwts/default.nix b/pkgs/os-specific/linux/fwts/default.nix deleted file mode 100644 index f04b8fcd2108..000000000000 --- a/pkgs/os-specific/linux/fwts/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchzip, autoreconfHook, pkg-config, gnumake42, glib, pcre -, json_c, flex, bison, dtc, pciutils, dmidecode, acpica-tools, libbsd }: - -stdenv.mkDerivation rec { - pname = "fwts"; - version = "24.01.00"; - - src = fetchzip { - url = "https://fwts.ubuntu.com/release/${pname}-V${version}.tar.gz"; - sha256 = "sha256-MXWmKxcxgSVCSeeGlWsa8JTBa5hLyvGPZ0811w+s+yA="; - stripRoot = false; - }; - - # fails with make 4.4 - nativeBuildInputs = [ autoreconfHook pkg-config gnumake42 ]; - buildInputs = [ glib pcre json_c flex bison dtc pciutils dmidecode acpica-tools libbsd ]; - - postPatch = '' - substituteInPlace src/lib/include/fwts_binpaths.h \ - --replace "/usr/bin/lspci" "${pciutils}/bin/lspci" \ - --replace "/usr/sbin/dmidecode" "${dmidecode}/bin/dmidecode" \ - --replace "/usr/bin/iasl" "${acpica-tools}/bin/iasl" - - substituteInPlace src/lib/src/fwts_devicetree.c \ - src/devicetree/dt_base/dt_base.c \ - --replace "dtc -I" "${dtc}/bin/dtc -I" - ''; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://wiki.ubuntu.com/FirmwareTestSuite"; - description = "Firmware Test Suite"; - platforms = platforms.linux; - license = licenses.gpl2; - maintainers = with maintainers; [ tadfisher ]; - }; -} diff --git a/pkgs/os-specific/linux/fwts/module.nix b/pkgs/os-specific/linux/fwts/module.nix deleted file mode 100644 index a4083d275465..000000000000 --- a/pkgs/os-specific/linux/fwts/module.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fwts, kernel }: - -stdenv.mkDerivation rec { - pname = "fwts-efi-runtime"; - version = "${fwts.version}-${kernel.version}"; - - inherit (fwts) src; - - sourceRoot = "${src.name}/efi_runtime"; - - postPatch = '' - substituteInPlace Makefile --replace \ - '/lib/modules/$(KVER)/build' \ - '${kernel.dev}/lib/modules/${kernel.modDirVersion}/build' - ''; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" ]; - - makeFlags = kernel.makeFlags ++ [ - "INSTALL_MOD_PATH=${placeholder "out"}" - ]; - - meta = with lib; { - inherit (fwts.meta) homepage license; - description = fwts.meta.description + "(efi-runtime kernel module)"; - maintainers = with maintainers; [ dtzWill ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/fxload/default.nix b/pkgs/os-specific/linux/fxload/default.nix deleted file mode 100644 index a4b204b571d4..000000000000 --- a/pkgs/os-specific/linux/fxload/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib -, stdenv -, libusb1 -}: - -stdenv.mkDerivation rec { - pname = "fxload"; - version = libusb1.version; - dontUnpack = true; - dontBuild = true; - dontConfigure = true; - dontInstall = true; - dontPatch = true; - dontPatchELF = true; - - # fxload binary exist inside the `examples/bin` directory of `libusb1` - postFixup = '' - mkdir -p $out/bin - ln -s ${passthru.libusb}/examples/bin/fxload $out/bin/fxload - ''; - - passthru.libusb = libusb1.override { withExamples = true; }; - - meta = with lib; { - homepage = "https://github.com/libusb/libusb"; - description = "Tool to upload firmware to into an21, fx, fx2, fx2lp and fx3 ez-usb devices"; - mainProgram = "fxload"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ realsnick ]; - }; -} diff --git a/pkgs/os-specific/linux/g15daemon/default.nix b/pkgs/os-specific/linux/g15daemon/default.nix deleted file mode 100644 index 90a818be4947..000000000000 --- a/pkgs/os-specific/linux/g15daemon/default.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, fetchurl -, fetchpatch -, patchelf -, freetype -, libusb-compat-0_1 -}: -let - license = lib.licenses.gpl2; - maintainers = with lib.maintainers; [ peterhoeg ]; - - g15src = { pname, version, sha256 }: fetchurl { - url = "mirror://sourceforge/g15tools/${pname}/${version}/${pname}-${version}.tar.bz2"; - inherit sha256; - }; - - libg15 = stdenv.mkDerivation rec { - pname = "libg15"; - version = "1.2.7"; - - src = g15src { - inherit pname version; - sha256 = "1mkrf622n0cmz57lj8w9q82a9dcr1lmyyxbnrghrxzb6gvifnbqk"; - }; - - buildInputs = [ libusb-compat-0_1 ]; - - enableParallelBuilding = true; - - meta = { - description = "Provides low-level access to Logitech G11/G15 keyboards and Z10 speakers"; - inherit license maintainers; - }; - }; - - libg15render = stdenv.mkDerivation rec { - pname = "libg15render"; - version = "1.2"; - - src = g15src { - inherit pname version; - sha256 = "03yjb78j1fnr2fwklxy54sdljwi0imvp29m8kmwl9v0pdapka8yj"; - }; - - buildInputs = [ libg15 ]; - - enableParallelBuilding = true; - - meta = { - description = "A small graphics library optimised for drawing on an LCD"; - inherit license maintainers; - }; - }; -in -stdenv.mkDerivation rec { - pname = "g15daemon"; - version = "1.9.5.3"; - - src = fetchurl { - url = "mirror://sourceforge/${pname}/G15Daemon%201.9x/${version}/${pname}-${version}.tar.bz2"; - sha256 = "1613gsp5dgilwbshqxxhiyw73ksngnam7n1iw6yxdjkp9fyd2a3d"; - }; - - patches = let - patch = fname: sha256: fetchurl rec { - url = "https://raw.githubusercontent.com/archlinux/svntogit-community/c0b0b6d4d6d7b79eca68123b20e0c9fb82e1c6e1/g15daemon/trunk/${pname}-${version}-${fname}.patch"; - name = "${fname}.patch"; - inherit sha256; - }; - in - [ - (patch "uinput" "1misfff7a1vg0qgfk3n25y7drnm86a4gq96iflpcwr5x3lw7q0h7") - (patch "config-write" "0jkrbqvzqrvxr14h5qi17cb4d32caq7vw9kzlz3qwpxdgxjrjvy2") - (patch "recv-oob-answer" "1f67iqpj5hcgpakagi7gbw1xviwhy5vizs546l9bfjimx8r2d29g") - ./pid_location.patch - ]; - - buildInputs = [ libg15 libg15render ]; - - # Workaround build failure on -fno-common toolchains like upstream gcc-10: - # ld: g15_plugins.o:/build/g15daemon-1.9.5.3/g15daemon/./g15daemon.h:218: - # multiple definition of `lcdlist_mutex'; utility_funcs.o:g15daemon.h:218: first defined here - env.NIX_CFLAGS_COMPILE = "-fcommon"; - - enableParallelBuilding = true; - - meta = { - description = "A daemon that makes it possible to use the Logitech keyboard G-Buttons and draw on various Logitech LCDs"; - mainProgram = "g15daemon"; - inherit license maintainers; - }; -} diff --git a/pkgs/os-specific/linux/g15daemon/pid_location.patch b/pkgs/os-specific/linux/g15daemon/pid_location.patch deleted file mode 100644 index f88c4a809626..000000000000 --- a/pkgs/os-specific/linux/g15daemon/pid_location.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/g15daemon/main.c b/g15daemon/main.c -index e674475..97b8242 100644 ---- a/g15daemon/main.c -+++ b/g15daemon/main.c -@@ -574,7 +574,7 @@ exitnow: - g15daemon_quit_refresh(); - uf_conf_write(lcdlist,"/etc/g15daemon.conf"); - uf_conf_free(lcdlist); -- unlink("/var/run/g15daemon.pid"); -+ unlink("/run/g15daemon/g15daemon.pid"); - } - return 0; - } -diff --git a/g15daemon/utility_funcs.c b/g15daemon/utility_funcs.c -index c93d164..2e9c679 100644 ---- a/g15daemon/utility_funcs.c -+++ b/g15daemon/utility_funcs.c -@@ -48,7 +48,7 @@ - - extern unsigned int g15daemon_debug; - extern volatile int leaving; --#define G15DAEMON_PIDFILE "/var/run/g15daemon.pid" -+#define G15DAEMON_PIDFILE "/run/g15daemon/g15daemon.pid" - - pthread_cond_t lcd_refresh = PTHREAD_COND_INITIALIZER; diff --git a/pkgs/os-specific/linux/game-devices-udev-rules/default.nix b/pkgs/os-specific/linux/game-devices-udev-rules/default.nix deleted file mode 100644 index daaf23db6ce2..000000000000 --- a/pkgs/os-specific/linux/game-devices-udev-rules/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib -, stdenv -, fetchFromGitea -, bash -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "game-devices-udev-rules"; - version = "0.22"; - - src = fetchFromGitea { - domain = "codeberg.org"; - owner = "fabiscafe"; - repo = "game-devices-udev"; - rev = finalAttrs.version; - hash = "sha256-1aOb8pJxB+/PM7spcvZcy/cwdEolHQ4+lwBLij+6iDk="; - }; - - postInstall = '' - install -Dm444 -t "$out/lib/udev/rules.d" *.rules - substituteInPlace $out/lib/udev/rules.d/71-powera-controllers.rules \ - --replace "/bin/sh" "${bash}/bin/bash" - ''; - - meta = with lib; { - description = "Udev rules to make supported controllers available with user-grade permissions"; - homepage = "https://codeberg.org/fabiscafe/game-devices-udev"; - license = licenses.mit; - longDescription = '' - These udev rules are intended to be used as a package under 'services.udev.packages'. - They will not be activated if installed as 'environment.systemPackages' or 'users.user.<user>.packages'. - - Additionally, you may need to enable 'hardware.uinput'. - ''; - platforms = platforms.linux; - maintainers = with maintainers; [ keenanweaver ]; - }; -}) diff --git a/pkgs/os-specific/linux/gasket/default.nix b/pkgs/os-specific/linux/gasket/default.nix deleted file mode 100644 index c1e81dfa9b71..000000000000 --- a/pkgs/os-specific/linux/gasket/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "gasket"; - version = "1.0-18-unstable-2023-09-05"; - - src = fetchFromGitHub { - owner = "google"; - repo = "gasket-driver"; - rev = "09385d485812088e04a98a6e1227bf92663e0b59"; - sha256 = "fcnqCBh04e+w8g079JyuyY2RPu34M+/X+Q8ObE+42i4="; - }; - - makeFlags = kernel.makeFlags ++ [ - "-C" - "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "M=$(PWD)" - ]; - buildFlags = [ "modules" ]; - - installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ]; - installTargets = [ "modules_install" ]; - - sourceRoot = "${src.name}/src"; - hardeningDisable = [ "pic" "format" ]; - nativeBuildInputs = kernel.moduleBuildDependencies; - - meta = with lib; { - description = "The Coral Gasket Driver allows usage of the Coral EdgeTPU on Linux systems."; - homepage = "https://github.com/google/gasket-driver"; - license = licenses.gpl2; - maintainers = [ lib.maintainers.kylehendricks ]; - platforms = platforms.linux; - broken = versionOlder kernel.version "5.15"; - }; -} diff --git a/pkgs/os-specific/linux/gcadapter-oc-kmod/default.nix b/pkgs/os-specific/linux/gcadapter-oc-kmod/default.nix deleted file mode 100644 index 1f0265207dfb..000000000000 --- a/pkgs/os-specific/linux/gcadapter-oc-kmod/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv -, fetchFromGitHub -, kernel -, kmod -}: - -let - kerneldir = "lib/modules/${kernel.modDirVersion}"; -in stdenv.mkDerivation rec { - pname = "gcadapter-oc-kmod"; - version = "unstable-2021-12-11"; - - src = fetchFromGitHub { - owner = "HannesMann"; - repo = pname; - rev = "d4ddf15deb74c51dbdfc814d481ef127c371f444"; - sha256 = "sha256-bHA1611rcO8/d48b1CHsiurEt3/n+5WErtHXAU7Eh1o="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KERNEL_SOURCE_DIR=${kernel.dev}/${kerneldir}/build" - "INSTALL_MOD_PATH=$(out)" - ]; - - installPhase = '' - install -D {,$out/${kerneldir}/extra/}gcadapter_oc.ko - ''; - - meta = with lib; { - description = "Kernel module for overclocking the Nintendo Wii U/Mayflash GameCube adapter"; - homepage = "https://github.com/HannesMann/gcadapter-oc-kmod"; - license = licenses.gpl2; - maintainers = with maintainers; [ r-burns ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/gfxtablet/default.nix b/pkgs/os-specific/linux/gfxtablet/default.nix deleted file mode 100644 index 3ee35844f999..000000000000 --- a/pkgs/os-specific/linux/gfxtablet/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{lib, stdenv, fetchFromGitHub, linuxHeaders}: - -stdenv.mkDerivation rec { - version = "1.4"; - pname = "gfxtablet-uinput-driver"; - - buildInputs = [ - linuxHeaders - ]; - - src = fetchFromGitHub { - owner = "rfc2822"; - repo = "GfxTablet"; - rev = "android-app-${version}"; - sha256 = "1i2m98yypfa9phshlmvjlgw7axfisxmldzrvnbzm5spvv5s4kvvb"; - }; - - preBuild = "cd driver-uinput"; - - installPhase = '' - mkdir -p "$out/bin" - cp networktablet "$out/bin" - mkdir -p "$out/share/doc/gfxtablet/" - cp ../*.md "$out/share/doc/gfxtablet/" - ''; - - meta = { - description = "Uinput driver for Android GfxTablet tablet-as-input-device app"; - mainProgram = "networktablet"; - license = lib.licenses.mit ; - maintainers = [lib.maintainers.raskin]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/gobi_loader/default.nix b/pkgs/os-specific/linux/gobi_loader/default.nix deleted file mode 100644 index 2b251242119c..000000000000 --- a/pkgs/os-specific/linux/gobi_loader/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv -, fetchurl -}: - -stdenv.mkDerivation rec { - pname = "gobi_loader"; - version = "0.7"; - - src = fetchurl { - url = "https://www.codon.org.uk/~mjg59/gobi_loader/download/${pname}-${version}.tar.gz"; - sha256 = "0jkmpqkiddpxrzl2s9s3kh64ha48m00nn53f82m1rphw8maw5gbq"; - }; - - postPatch = '' - substituteInPlace 60-gobi.rules --replace "gobi_loader" "${placeholder "out"}/lib/udev/gobi_loader" - substituteInPlace 60-gobi.rules --replace "/lib/firmware" "/run/current-system/firmware" - ''; - - makeFlags = [ "prefix=${placeholder "out"}" ]; - - meta = with lib; { - description = "Firmware loader for Qualcomm Gobi USB chipsets"; - homepage = "https://www.codon.org.uk/~mjg59/gobi_loader/"; - license = with licenses; [ gpl2 ]; - maintainers = with maintainers; [ _0x4A6F ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/google-authenticator/default.nix b/pkgs/os-specific/linux/google-authenticator/default.nix deleted file mode 100644 index 11791a664c8b..000000000000 --- a/pkgs/os-specific/linux/google-authenticator/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, autoreconfHook, pam, qrencode }: - -stdenv.mkDerivation rec { - pname = "google-authenticator-libpam"; - version = "1.10"; - - src = fetchFromGitHub { - owner = "google"; - repo = "google-authenticator-libpam"; - rev = version; - hash = "sha256-KEfwQeJIuRF+S3gPn+maDb8Fu0FRXLs2/Nlbjj2d3AE="; - }; - - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ pam ]; - - preConfigure = '' - sed -i "s|libqrencode.so.4|${qrencode.out}/lib/libqrencode.so.4|" src/google-authenticator.c - ''; - - installPhase = '' - mkdir -p $out/bin $out/lib/security - cp ./.libs/pam_google_authenticator.so $out/lib/security - cp google-authenticator $out/bin - ''; - - meta = with lib; { - homepage = "https://github.com/google/google-authenticator-libpam"; - description = "Two-step verification, with pam module"; - mainProgram = "google-authenticator"; - license = licenses.asl20; - maintainers = with maintainers; [ aneeshusa ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/gpu-switch/default.nix b/pkgs/os-specific/linux/gpu-switch/default.nix deleted file mode 100644 index d6f749aa8f1e..000000000000 --- a/pkgs/os-specific/linux/gpu-switch/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ stdenv, lib, fetchFromGitHub }: - -stdenv.mkDerivation { - pname = "gpu-switch-unstable"; - version = "2017-04-28"; - src = fetchFromGitHub { - owner = "0xbb"; - repo = "gpu-switch"; - rev = "a365f56d435c8ef84c4dd2ab935ede4992359e31"; - sha256 = "1jnh43nijkqd83h7piq7225ixziggyzaalabgissyxdyz6szcn0r"; - }; - installPhase = '' - mkdir -p $out/bin - cp gpu-switch $out/bin/ - ''; - meta = with lib; { - description = "Application that allows to switch between the graphic cards of dual-GPU MacBook Pro models"; - mainProgram = "gpu-switch"; - homepage = "https://github.com/0xbb/gpu-switch"; - license = licenses.mit; - platforms = platforms.linux; - maintainers = [ maintainers.msiedlarek ]; - }; -} diff --git a/pkgs/os-specific/linux/gradm/default.nix b/pkgs/os-specific/linux/gradm/default.nix deleted file mode 100644 index cd99dfa5db8d..000000000000 --- a/pkgs/os-specific/linux/gradm/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib, stdenv, fetchurl -, bison, flex -, pam -}: - -stdenv.mkDerivation rec { - pname = "gradm"; - version = "3.1-202102241600"; - - src = fetchurl { - url = "https://grsecurity.net/stable/${pname}-${version}.tar.gz"; - sha256 = "02ni34hpggv00140p9gvh0lqi173zdddd2qhfi96hyr1axd5pl50"; - }; - - nativeBuildInputs = [ bison flex ]; - buildInputs = [ pam ]; - - enableParallelBuilding = true; - - makeFlags = [ - "DESTDIR=$(out)" - "LEX=${flex}/bin/flex" - "MANDIR=/share/man" - "MKNOD=true" - ]; - - preBuild = '' - substituteInPlace Makefile \ - --replace "/usr/bin/" "" \ - --replace "/usr/include/security/pam_" "${pam}/include/security/pam_" - - substituteInPlace gradm_defs.h \ - --replace "/sbin/grlearn" "$out/bin/grlearn" \ - --replace "/sbin/gradm" "$out/bin/gradm" \ - --replace "/sbin/gradm_pam" "$out/bin/gradm_pam" - - echo 'inherit-learn /nix/store' >>learn_config - - mkdir -p "$out/etc/udev/rules.d" - ''; - - postInstall = "rmdir $out/dev"; - - meta = with lib; { - description = "grsecurity RBAC administration and policy analysis utility"; - homepage = "https://grsecurity.net"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ thoughtpolice joachifm ]; - }; -} diff --git a/pkgs/os-specific/linux/gt/default.nix b/pkgs/os-specific/linux/gt/default.nix deleted file mode 100644 index 9d35556358b5..000000000000 --- a/pkgs/os-specific/linux/gt/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, cmake, bash-completion, pkg-config, libconfig -, asciidoc -, libusbgx -}: -stdenv.mkDerivation (finalAttrs: { - pname = "gt"; - version = "unstable-2022-05-08"; - - src = fetchFromGitHub { - owner = "linux-usb-gadgets"; - repo = "gt"; - rev = "7f9c45d98425a27444e49606ce3cf375e6164e8e"; - sha256 = "sha256-km4U+t4Id2AZx6GpH24p2WNmvV5RVjJ14sy8tWLCQsk="; - }; - - sourceRoot = "${finalAttrs.src.name}/source"; - - preConfigure = '' - cmakeFlagsArray+=("-DBASH_COMPLETION_COMPLETIONSDIR=$out/share/bash-completions/completions") - ''; - - nativeBuildInputs = [ cmake pkg-config asciidoc ]; - - buildInputs = [ bash-completion libconfig libusbgx]; - - meta = { - description = "Linux command line tool for setting up USB gadgets using configfs"; - mainProgram = "gt"; - license = with lib.licenses; [ asl20 ]; - maintainers = with lib.maintainers; [ lheckemann ]; - platforms = lib.platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/guvcview/default.nix b/pkgs/os-specific/linux/guvcview/default.nix deleted file mode 100644 index e08203873011..000000000000 --- a/pkgs/os-specific/linux/guvcview/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ config -, lib, stdenv -, fetchurl -, intltool -, pkg-config -, portaudio -, SDL2 -, ffmpeg_4 -, udev -, libusb1 -, libv4l -, alsa-lib -, gsl -, libpng -, sfml -, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux -, libpulseaudio ? null -, useQt ? false -, qtbase ? null -, wrapQtAppsHook ? null -# can be turned off if used as a library -, useGtk ? true -, gtk3 ? null -, wrapGAppsHook ? null -}: - -assert pulseaudioSupport -> libpulseaudio != null; - -stdenv.mkDerivation rec { - version = "2.0.6"; - pname = "guvcview"; - - src = fetchurl { - url = "mirror://sourceforge/project/guvcview/source/guvcview-src-${version}.tar.gz"; - sha256 = "11byyfpkcik7wvf2qic77zjamfr2rhji97dpj1gy2fg1bvpiqf4m"; - }; - - nativeBuildInputs = [ - intltool - pkg-config - ] - ++ lib.optionals (useGtk) [ wrapGAppsHook ] - ++ lib.optionals (useQt) [ wrapQtAppsHook ] - ; - - buildInputs = [ - SDL2 - alsa-lib - ffmpeg_4 - libusb1 - libv4l - portaudio - udev - gsl - libpng - sfml - ] - ++ lib.optionals (pulseaudioSupport) [ libpulseaudio ] - ++ lib.optionals (useGtk) [ gtk3 ] - ++ lib.optionals (useQt) [ - qtbase - ] - ; - configureFlags = [ - "--enable-sfml" - ] - ++ lib.optionals (useGtk) [ "--enable-gtk3" ] - ++ lib.optionals (useQt) [ "--enable-qt5" ] - ; - - meta = with lib; { - description = "A simple interface for devices supported by the linux UVC driver"; - mainProgram = "guvcview"; - homepage = "https://guvcview.sourceforge.net"; - maintainers = [ maintainers.coconnor ]; - license = licenses.gpl3; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/hd-idle/default.nix b/pkgs/os-specific/linux/hd-idle/default.nix deleted file mode 100644 index 7c2ac2894a55..000000000000 --- a/pkgs/os-specific/linux/hd-idle/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: - -buildGoModule rec { - pname = "hd-idle"; - version = "1.21"; - - src = fetchFromGitHub { - owner = "adelolmo"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-WHJcysTN9LHI1WnDuFGTyTirxXirpLpJIeNDj4sZGY0="; - }; - - vendorHash = null; - - nativeBuildInputs = [ installShellFiles ]; - - postInstall = '' - installManPage debian/hd-idle.8 - ''; - - meta = with lib; { - description = "Spins down external disks after a period of idle time"; - mainProgram = "hd-idle"; - homepage = "https://github.com/adelolmo/hd-idle"; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = [ maintainers.rycee ]; - }; -} diff --git a/pkgs/os-specific/linux/hdapsd/default.nix b/pkgs/os-specific/linux/hdapsd/default.nix deleted file mode 100644 index e9dca6fd8927..000000000000 --- a/pkgs/os-specific/linux/hdapsd/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "hdapsd"; - version = "20141203"; - - src = fetchurl { - url = "https://github.com/evgeni/hdapsd/releases/download/${version}/hdapsd-${version}.tar.gz"; - sha256 = "0ppgrfabd0ivx9hyny3c3rv4rphjyxcdsd5svx5pgfai49mxnl36"; - }; - - postInstall = builtins.readFile ./postInstall.sh; - - meta = with lib; - { description = "Hard Drive Active Protection System Daemon"; - mainProgram = "hdapsd"; - homepage = "http://hdaps.sf.net/"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = [ maintainers.ehmry ]; - }; -} diff --git a/pkgs/os-specific/linux/hdapsd/postInstall.sh b/pkgs/os-specific/linux/hdapsd/postInstall.sh deleted file mode 100644 index 37867817bf63..000000000000 --- a/pkgs/os-specific/linux/hdapsd/postInstall.sh +++ /dev/null @@ -1,7 +0,0 @@ -mkdir -p $out/lib/udev/rules.d $out/lib/systemd/system -cp misc/hdapsd.rules $out/lib/udev/rules.d -SBIN_REWRITE="s|@sbindir@|$out/bin|g" -for i in misc/*.service.in -do sed $SBIN_REWRITE "$i" > "$out/lib/systemd/system/$(basename ${i%.in})" -done - diff --git a/pkgs/os-specific/linux/hdparm/default.nix b/pkgs/os-specific/linux/hdparm/default.nix deleted file mode 100644 index 3e23e3a7da7b..000000000000 --- a/pkgs/os-specific/linux/hdparm/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation (finalAttrs: { - pname = "hdparm"; - version = "9.65"; - - src = fetchurl { - url = "mirror://sourceforge/hdparm/hdparm-${finalAttrs.version}.tar.gz"; - sha256 = "sha256-0Ukp+RDQYJMucX6TgkJdR8LnFEI1pTcT1VqU995TWks="; - }; - - makeFlags = [ - "sbindir=${placeholder "out"}/sbin" - "manprefix=${placeholder "out"}" - ]; - - meta = with lib; { - description = "A tool to get/set ATA/SATA drive parameters under Linux"; - homepage = "https://sourceforge.net/projects/hdparm/"; - platforms = platforms.linux; - license = licenses.bsd2; - mainProgram = "hdparm"; - maintainers = [ ]; - }; -}) diff --git a/pkgs/os-specific/linux/health-check/default.nix b/pkgs/os-specific/linux/health-check/default.nix deleted file mode 100644 index e63b7ca7fe25..000000000000 --- a/pkgs/os-specific/linux/health-check/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, json_c, libbsd }: - -stdenv.mkDerivation rec { - pname = "health-check"; - version = "0.04.00"; - - src = fetchFromGitHub { - owner = "ColinIanKing"; - repo = pname; - rev = "V${version}"; - hash = "sha256-CPKXpPpdagq3UnTk8Z58WtSPek8L79totKX+Uh6foVg="; - }; - - buildInputs = [ json_c libbsd ]; - - makeFlags = [ "JSON_OUTPUT=y" "FNOTIFY=y" ]; - - installFlags = [ - "BINDIR=${placeholder "out"}/bin" - "MANDIR=${placeholder "out"}/share/man/man8" - "BASHDIR=${placeholder "out"}/share/bash-completion/completions" - ]; - - meta = with lib; { - description = "Process monitoring tool"; - mainProgram = "health-check"; - homepage = "https://github.com/ColinIanKing/health-check"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ dtzWill ]; - }; -} diff --git a/pkgs/os-specific/linux/hibernate/default.nix b/pkgs/os-specific/linux/hibernate/default.nix deleted file mode 100644 index 71a93e4a154e..000000000000 --- a/pkgs/os-specific/linux/hibernate/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, stdenv, fetchurl, gawk }: - -let version = "2.0"; -in - stdenv.mkDerivation { - pname = "hibernate"; - inherit version; - src = fetchurl { - url = "http://tuxonice.nigelcunningham.com.au/files/hibernate-script-${version}.tar.gz"; - sha256 = "0ib5bac3spbcwmhf8f9apjbll8x7fgqj4k1s5q3srijh793rfifh"; - }; - - patches = [ ./install.patch ./gen-manpages.patch ./hibernate.patch ]; - - buildInputs = [ gawk ]; - - installPhase = '' - # FIXME: Storing config files under `$out/etc' is not very useful. - - substituteInPlace "hibernate.sh" --replace \ - 'SWSUSP_D="/etc/hibernate"' "SWSUSP_D=\"$out/etc/hibernate\"" - - # Remove all references to `/bin' and `/sbin'. - for i in scriptlets.d/* - do - substituteInPlace "$i" --replace "/bin/" "" --replace "/sbin/" "" - done - - PREFIX="$out" CONFIG_PREFIX="$out" ./install.sh - - ln -s "$out/share/hibernate/scriptlets.d" "$out/etc/hibernate" - ''; - - meta = { - description = "The `hibernate' script for swsusp and Tux-on-Ice"; - mainProgram = "hibernate"; - longDescription = '' - This package provides the `hibernate' script, a command-line utility - that saves the computer's state to disk and switches it off, turning - it into "hibernation". It works both with Linux swsusp and Tux-on-Ice. - ''; - - license = lib.licenses.gpl2Plus; - homepage = "http://www.tuxonice.net/"; - platforms = lib.platforms.linux; - }; - } diff --git a/pkgs/os-specific/linux/hibernate/gen-manpages.patch b/pkgs/os-specific/linux/hibernate/gen-manpages.patch deleted file mode 100644 index cdbacc86bafa..000000000000 --- a/pkgs/os-specific/linux/hibernate/gen-manpages.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- hibernate-script-1.98.1/gen-manpages.sh 2008-03-31 09:40:29.000000000 +0200 -+++ hibernate-script-1.98.1/gen-manpages.sh 2008-04-01 15:58:11.000000000 +0200 -@@ -254,7 +254,7 @@ BEGIN { - } - - # Create a copy of hibernate.sh with only the help items --TMPF=`mktemp /tmp/tmp.hibernate.XXXXXX` -+TMPF=`mktemp "$TMPDIR/tmp.hibernate.XXXXXX"` - awk '{ - if ((substr($0, 1, 1) != "#") && (match($0, "AddConfigHelp") || match($0, "AddOptionHelp")) && (match($0, "\\(\\)") == 0)) { - print $0; diff --git a/pkgs/os-specific/linux/hibernate/hibernate.patch b/pkgs/os-specific/linux/hibernate/hibernate.patch deleted file mode 100644 index 24de1637d3ce..000000000000 --- a/pkgs/os-specific/linux/hibernate/hibernate.patch +++ /dev/null @@ -1,37 +0,0 @@ ---- hibernate-script-1.98.1/hibernate.sh 2008-03-31 09:40:29.000000000 +0200 -+++ hibernate-script-1.98.1/hibernate.sh 2008-04-01 18:24:23.000000000 +0200 -@@ -224,7 +224,7 @@ FindXServer() { - - xauth="`get_env_var_of_process $xpid XAUTHORITY`" - xhome="`get_env_var_of_process $xpid HOME`" -- xuser=`/bin/ls -ld /proc/$xpid/ | awk '{print $3}'` -+ xuser=`ls -ld /proc/$xpid/ | awk '{print $3}'` - [ -z $xauth ] && [ -n $xhome ] && [ -f $xhome/.Xauthority ] && xauth=$xhome/.Xauthority - - [ -z $xauth ] && continue -@@ -273,14 +273,14 @@ UsingSuspendMethod() { - # chain. - SortSuspendBits() { - # explicit path required to be ash compatible. -- /bin/echo -ne "$SUSPEND_BITS" | sort -n -+ echo -ne "$SUSPEND_BITS" | sort -n - } - - # SortResumeBits: Returns a list of functions registered in the correct order - # to call for resuming, prefixed by their position number. - SortResumeBits() { - # explicit path required to be ash compatible. -- /bin/echo -ne "$RESUME_BITS" | sort -rn -+ echo -ne "$RESUME_BITS" | sort -rn - } - - # WrapHelpText: takes text from stdin, wraps it with an indent of 5 and width -@@ -557,7 +557,7 @@ LoadScriptlets() { - CURRENT_SOURCED_SCRIPTLET="" - for scriptlet_dir in $SCRIPTLET_PATH ; do - [ -d "$scriptlet_dir" ] || continue -- [ -z "`/bin/ls -1 $scriptlet_dir`" ] && continue -+ [ -z "`ls -1 $scriptlet_dir`" ] && continue - for scriptlet in $scriptlet_dir/* ; do - # Avoid editor backup files. - case "$scriptlet" in *~|*.bak) continue ;; esac diff --git a/pkgs/os-specific/linux/hibernate/install.patch b/pkgs/os-specific/linux/hibernate/install.patch deleted file mode 100644 index ae296b955ac8..000000000000 --- a/pkgs/os-specific/linux/hibernate/install.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- hibernate-script-1.98.1/install.sh 2008-03-31 09:40:29.000000000 +0200 -+++ hibernate-script-1.98.1/install.sh 2008-04-01 15:50:46.000000000 +0200 -@@ -63,7 +63,7 @@ fi - cp -a blacklisted-modules $BLACKLIST - - # Test if they have anything in there, and warn them --if /bin/ls $OLD_SCRIPTLET_DIR/* > /dev/null 2>&1 ; then -+if ls $OLD_SCRIPTLET_DIR/* > /dev/null 2>&1 ; then - echo " **" - echo " ** You have scriptlets already installed in $OLD_SCRIPTLET_DIR" - echo " ** Since version 0.95, these have moved to $SCRIPTLET_DIR." diff --git a/pkgs/os-specific/linux/hid-ite8291r3/default.nix b/pkgs/os-specific/linux/hid-ite8291r3/default.nix deleted file mode 100644 index d4f69c734ac0..000000000000 --- a/pkgs/os-specific/linux/hid-ite8291r3/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "hid-ite8291r3"; - version = "unstable-2022-06-01"; - - src = fetchFromGitHub { - owner = "pobrn"; - repo = "hid-ite8291r3"; - rev = "48e04cb96517f8574225ebabb286775feb942ef5"; - hash = "sha256-/69vvVbAVULDW8rwDYSj5706vrqJ6t4s/T6s3vmG9wk="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "VERSION=${version}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - runHook preInstall - install -D hid-ite8291r3.ko -t $out/lib/modules/${kernel.modDirVersion}/extra - runHook postInstall - ''; - - meta = with lib; { - description = "Linux driver for the ITE 8291 RGB keyboard backlight controller"; - homepage = "https://github.com/pobrn/hid-ite8291r3/"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ aacebedo ]; - platforms = platforms.linux; - broken = kernel.kernelOlder "5.9"; - }; -} diff --git a/pkgs/os-specific/linux/hid-tmff2/default.nix b/pkgs/os-specific/linux/hid-tmff2/default.nix deleted file mode 100644 index ac297c78e10e..000000000000 --- a/pkgs/os-specific/linux/hid-tmff2/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - -stdenv.mkDerivation { - pname = "hid-tmff2"; - # https://github.com/Kimplul/hid-tmff2/blob/ca168637fbfb085ebc9ade0c47fa0653dac5d25b/dkms/dkms-install.sh#L12 - version = "0.81"; - - src = fetchFromGitHub { - owner = "Kimplul"; - repo = "hid-tmff2"; - rev = "ca168637fbfb085ebc9ade0c47fa0653dac5d25b"; - hash = "sha256-Nm5m5xjwJGy+ia4nTkvPZynIxUj6MVGGbSNmIcIpziM="; - # For hid-tminit. Source: https://github.com/scarburato/hid-tminit - fetchSubmodules = true; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installFlags = [ - "INSTALL_MOD_PATH=${placeholder "out"}" - ]; - - postPatch = "sed -i '/depmod -A/d' Makefile"; - - meta = with lib; { - description = "A linux kernel module for Thrustmaster T300RS, T248 and TX(experimental)"; - homepage = "https://github.com/Kimplul/hid-tmff2"; - license = licenses.gpl2Plus; - maintainers = [ maintainers.rayslash ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix deleted file mode 100644 index 23ace63249b1..000000000000 --- a/pkgs/os-specific/linux/hostapd/default.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, libnl, openssl, sqlite ? null }: - -stdenv.mkDerivation rec { - pname = "hostapd"; - version = "2.10"; - - src = fetchurl { - url = "https://w1.fi/releases/${pname}-${version}.tar.gz"; - sha256 = "sha256-IG58eZtnhXLC49EgMCOHhLxKn4IyOwFWtMlGbxSYkV0="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libnl openssl sqlite ]; - - patches = [ - (fetchurl { - # Note: fetchurl seems to be unhappy with openwrt git - # server's URLs containing semicolons. Using the github mirror instead. - url = "https://raw.githubusercontent.com/openwrt/openwrt/eefed841b05c3cd4c65a78b50ce0934d879e6acf/package/network/services/hostapd/patches/300-noscan.patch"; - sha256 = "08p5frxhpq1rp2nczkscapwwl8g9nc4fazhjpxic5bcbssc3sb00"; - }) - ]; - - outputs = [ "out" "man" ]; - - # Based on hostapd's defconfig. Only differences are tracked. - extraConfig = '' - # Use epoll(7) instead of select(2) on linux - CONFIG_ELOOP_EPOLL=y - - # Drivers - CONFIG_DRIVER_WIRED=y - CONFIG_DRIVER_NONE=y - - # Integrated EAP server - CONFIG_EAP_SIM=y - CONFIG_EAP_AKA=y - CONFIG_EAP_AKA_PRIME=y - CONFIG_EAP_PAX=y - CONFIG_EAP_PSK=y - CONFIG_EAP_PWD=y - CONFIG_EAP_SAKE=y - CONFIG_EAP_GPSK=y - CONFIG_EAP_GPSK_SHA256=y - CONFIG_EAP_FAST=y - CONFIG_EAP_IKEV2=y - CONFIG_EAP_TNC=y - CONFIG_EAP_EKE=y - - CONFIG_TLS=openssl - CONFIG_TLSV11=y - CONFIG_TLSV12=y - - CONFIG_SAE=y - CONFIG_SAE_PK=y - - CONFIG_OWE=y - CONFIG_OCV=y - - # TKIP is considered insecure and upstream support will be removed in the future - CONFIG_NO_TKIP=y - - # Misc - CONFIG_RADIUS_SERVER=y - CONFIG_MACSEC=y - CONFIG_DRIVER_MACSEC_LINUX=y - CONFIG_FULL_DYNAMIC_VLAN=y - CONFIG_VLAN_NETLINK=y - CONFIG_GETRANDOM=y - CONFIG_INTERWORKING=y - CONFIG_HS20=y - CONFIG_FST=y - CONFIG_FST_TEST=y - CONFIG_ACS=y - CONFIG_WNM=y - CONFIG_MBO=y - - CONFIG_IEEE80211R=y - CONFIG_IEEE80211W=y - CONFIG_IEEE80211N=y - CONFIG_IEEE80211AC=y - CONFIG_IEEE80211AX=y - '' + lib.optionalString (sqlite != null) '' - CONFIG_SQLITE=y - ''; - - passAsFile = [ "extraConfig" ]; - - configurePhase = '' - cd hostapd - cp -v defconfig .config - cat $extraConfigPath >> .config - cat -n .config - substituteInPlace Makefile --replace /usr/local $out - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags libnl-3.0)" - ''; - - preInstall = "mkdir -p $out/bin"; - postInstall = '' - install -vD hostapd.8 -t $man/share/man/man8 - install -vD hostapd_cli.1 -t $man/share/man/man1 - ''; - - meta = with lib; { - homepage = "https://w1.fi/hostapd/"; - description = "A user space daemon for access point and authentication servers"; - license = licenses.gpl2; - maintainers = with maintainers; [ ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/hwdata/default.nix b/pkgs/os-specific/linux/hwdata/default.nix deleted file mode 100644 index 83519d7f2a7a..000000000000 --- a/pkgs/os-specific/linux/hwdata/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "hwdata"; - version = "0.381"; - - src = fetchFromGitHub { - owner = "vcrhonek"; - repo = "hwdata"; - rev = "v${version}"; - hash = "sha256-FD1p4qyO+ZsBdMXRa9u6CpO07RewWH8OxULLxcYAsyk="; - }; - - configureFlags = [ "--datadir=${placeholder "out"}/share" ]; - - doCheck = false; # this does build machine-specific checks (e.g. enumerates PCI bus) - - meta = { - homepage = "https://github.com/vcrhonek/hwdata"; - description = "Hardware Database, including Monitors, pci.ids, usb.ids, and video cards"; - license = lib.licenses.gpl2Plus; - maintainers = with lib.maintainers; [ pedrohlc ]; - platforms = lib.platforms.all; - }; -} diff --git a/pkgs/os-specific/linux/hyperv-daemons/default.nix b/pkgs/os-specific/linux/hyperv-daemons/default.nix deleted file mode 100644 index 619318d7e04c..000000000000 --- a/pkgs/os-specific/linux/hyperv-daemons/default.nix +++ /dev/null @@ -1,112 +0,0 @@ -{ stdenv, lib, python2, python3, kernel, makeWrapper, writeText -, gawk, iproute2 }: - -let - libexec = "libexec/hypervkvpd"; - - daemons = stdenv.mkDerivation rec { - pname = "hyperv-daemons-bin"; - inherit (kernel) src version; - - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ (if lib.versionOlder version "4.19" then python2 else python3) ]; - - # as of 4.9 compilation will fail due to -Werror=format-security - hardeningDisable = [ "format" ]; - - postPatch = '' - cd tools/hv - substituteInPlace hv_kvp_daemon.c \ - --replace /usr/libexec/hypervkvpd/ $out/${libexec}/ - ''; - - # We don't actually need the hv_get_{dhcp,dns}_info scripts on NixOS in - # their current incarnation but with them in place, we stop the spam of - # errors in the log. - installPhase = '' - runHook preInstall - - for f in fcopy kvp vss ; do - install -Dm755 hv_''${f}_daemon -t $out/bin - done - - install -Dm755 lsvmbus $out/bin/lsvmbus - install -Dm755 hv_get_dhcp_info.sh $out/${libexec}/hv_get_dhcp_info - install -Dm755 hv_get_dns_info.sh $out/${libexec}/hv_get_dns_info - - runHook postInstall - ''; - - postFixup = '' - wrapProgram $out/bin/hv_kvp_daemon \ - --prefix PATH : $out/bin:${lib.makeBinPath [ gawk iproute2 ]} - ''; - }; - - service = bin: title: check: - writeText "hv-${bin}.service" '' - [Unit] - Description=Hyper-V ${title} daemon - ConditionVirtualization=microsoft - ${lib.optionalString (check != "") '' - ConditionPathExists=/dev/vmbus/${check} - ''} - [Service] - ExecStart=@out@/hv_${bin}_daemon -n - Restart=on-failure - PrivateTmp=true - Slice=hyperv.slice - - [Install] - WantedBy=hyperv-daemons.target - ''; - -in stdenv.mkDerivation { - pname = "hyperv-daemons"; - inherit (kernel) version; - - # we just stick the bins into out as well as it requires "out" - outputs = [ "bin" "lib" "out" ]; - - buildInputs = [ daemons ]; - - buildCommand = '' - system=$lib/lib/systemd/system - - install -Dm444 ${service "fcopy" "file copy (FCOPY)" "hv_fcopy" } $system/hv-fcopy.service - install -Dm444 ${service "kvp" "key-value pair (KVP)" "hv_kvp" } $system/hv-kvp.service - install -Dm444 ${service "vss" "volume shadow copy (VSS)" "hv_vss" } $system/hv-vss.service - - cat > $system/hyperv-daemons.target <<EOF - [Unit] - Description=Hyper-V Daemons - Wants=hv-fcopy.service hv-kvp.service hv-vss.service - EOF - - for f in $lib/lib/systemd/system/*.service ; do - substituteInPlace $f --replace @out@ ${daemons}/bin - done - - # we need to do both $out and $bin as $out is required - for d in $out/bin $bin/bin ; do - # make user binaries available - mkdir -p $d - ln -s ${daemons}/bin/lsvmbus $d/lsvmbus - done - ''; - - meta = with lib; { - description = "Integration Services for running NixOS under HyperV"; - mainProgram = "lsvmbus"; - longDescription = '' - This packages contains the daemons that are used by the Hyper-V hypervisor - on the host. - - Microsoft calls their guest agents "Integration Services" which is why - we use that name here. - ''; - homepage = "https://kernel.org"; - maintainers = with maintainers; [ peterhoeg ]; - platforms = kernel.meta.platforms; - }; -} diff --git a/pkgs/os-specific/linux/i2c-tools/default.nix b/pkgs/os-specific/linux/i2c-tools/default.nix deleted file mode 100644 index e682bb398f91..000000000000 --- a/pkgs/os-specific/linux/i2c-tools/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib -, stdenv -, fetchzip -, perl -, read-edid -}: - -stdenv.mkDerivation rec { - pname = "i2c-tools"; - version = "4.3"; - - src = fetchzip { - url = "https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/snapshot/i2c-tools-v${version}.tar.gz"; - sha256 = "sha256-HlmIocum+HZEKNiS5BUwEIswRfTMUhD1vCPibAuAK0Q="; - }; - - buildInputs = [ perl ]; - - postPatch = '' - substituteInPlace eeprom/decode-edid \ - --replace "/usr/sbin/parse-edid" "${read-edid}/bin/parse-edid" - - substituteInPlace stub/i2c-stub-from-dump \ - --replace "/sbin/" "" - ''; - - makeFlags = [ "PREFIX=${placeholder "out"}" ]; - - outputs = [ "out" "man" ]; - - postInstall = '' - rm -rf $out/include/linux/i2c-dev.h # conflics with kernel headers - ''; - - meta = with lib; { - description = "Set of I2C tools for Linux"; - homepage = "https://i2c.wiki.kernel.org/index.php/I2C_Tools"; - # library is LGPL 2.1 or later; "most tools" GPL 2 or later - license = with licenses; [ lgpl21Plus gpl2Plus ]; - maintainers = [ maintainers.dezgeg ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/i7z/default.nix b/pkgs/os-specific/linux/i7z/default.nix deleted file mode 100644 index 9bd5ca302da3..000000000000 --- a/pkgs/os-specific/linux/i7z/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, ncurses -, withGui ? false, qtbase }: - -stdenv.mkDerivation rec { - pname = "i7z"; - version = "0.27.4"; - - src = fetchFromGitHub { - owner = "DimitryAndric"; - repo = "i7z"; - rev = "v${version}"; - sha256 = "00c4ng30ry88hcya4g1i9dngiqmz3cs31x7qh1a10nalxn1829xy"; - }; - - buildInputs = [ ncurses ] ++ lib.optional withGui qtbase; - - patches = [ - (fetchpatch { - url = "https://salsa.debian.org/debian/i7z/raw/ad1359764ee7a860a02e0c972f40339058fa9369/debian/patches/fix-insecure-tempfile.patch"; - sha256 = "0ifg06xjw14y4fnzzgkhqm4sv9mcdzgi8m2wffq9z8b1r0znya3s"; - }) - (fetchpatch { - url = "https://salsa.debian.org/debian/i7z/raw/ad1359764ee7a860a02e0c972f40339058fa9369/debian/patches/nehalem.patch"; - sha256 = "1ys6sgm01jkqb6d4y7qc3h89dzph8jjjcfya5c5jcm7dkxlzjq8a"; - }) - (fetchpatch { - url = "https://salsa.debian.org/debian/i7z/raw/ad1359764ee7a860a02e0c972f40339058fa9369/debian/patches/hyphen-used-as-minus-sign.patch"; - sha256 = "1ji2qvdyq0594cpqz0dlsfggvw3rm63sygh0jxvwjgxpnhykhg1p"; - }) - ./qt5.patch - ]; - - enableParallelBuilding = true; - - postBuild = lib.optionalString withGui '' - cd GUI - qmake - make clean - make - cd .. - ''; - - makeFlags = [ "prefix=${placeholder "out"}" ]; - - postInstall = lib.optionalString withGui '' - install -Dm755 GUI/i7z_GUI $out/bin/i7z-gui - ''; - - meta = with lib; { - description = "A better i7 (and now i3, i5) reporting tool for Linux"; - mainProgram = "i7z"; - homepage = "https://github.com/DimitryAndric/i7z"; - license = licenses.gpl2; - maintainers = with maintainers; [ bluescreen303 ]; - # broken on ARM - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/i7z/qt5.patch b/pkgs/os-specific/linux/i7z/qt5.patch deleted file mode 100644 index 9e9b162d9e85..000000000000 --- a/pkgs/os-specific/linux/i7z/qt5.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur a/GUI/i7z_GUI.pro b/GUI/i7z_GUI.pro ---- a/GUI/i7z_GUI.pro 2013-10-12 21:59:19.000000000 +0100 -+++ b/GUI/i7z_GUI.pro 2016-11-05 13:54:30.118655672 +0000 -@@ -3,7 +3,8 @@ - ###################################################################### - - TEMPLATE = app --TARGET = -+TARGET = i7z_GUI -+QT += widgets - DEPENDPATH += . - INCLUDEPATH += . - CONFIG += debug diff --git a/pkgs/os-specific/linux/i810switch/default.nix b/pkgs/os-specific/linux/i810switch/default.nix deleted file mode 100644 index 3a202ca08e96..000000000000 --- a/pkgs/os-specific/linux/i810switch/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl, pciutils }: - -stdenv.mkDerivation { - pname = "i810switch"; - version = "0.6.5"; - - installPhase = " - sed -i -e 's+/usr++' Makefile - sed -i -e 's+^\\(.*putenv(\"PATH=\\).*$+\\1${pciutils}/sbin\");+' i810switch.c - make clean - make install DESTDIR=\${out} - "; - - src = fetchurl { - url = "http://www16.plala.or.jp/mano-a-mano/i810switch/i810switch-0.6.5.tar.gz"; - sha256 = "d714840e3b14e1fa9c432c4be0044b7c008d904dece0d611554655b979cad4c3"; - }; - - meta = with lib; { - description = "A utility for switching between the LCD and external VGA display on Intel graphics cards"; - homepage = "http://www16.plala.or.jp/mano-a-mano/i810switch.html"; - maintainers = with maintainers; [ ]; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ifenslave/default.nix b/pkgs/os-specific/linux/ifenslave/default.nix deleted file mode 100644 index cc132c69faf7..000000000000 --- a/pkgs/os-specific/linux/ifenslave/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "ifenslave"; - version = "1.1.0"; - - src = fetchurl { - url = "mirror://debian/pool/main/i/ifenslave-2.6/ifenslave-2.6_${version}.orig.tar.gz"; - sha256 = "0h9hrmy19zdksl7ys250r158b943ihbgkb95n8p4k8l0vqsby5vr"; - }; - - buildPhase = '' - gcc -o ifenslave ifenslave.c - ''; - - installPhase = '' - mkdir -p $out/bin - cp -a ifenslave $out/bin - ''; - - hardeningDisable = [ "format" ]; - - meta = { - description = "Utility for enslaving networking interfaces under a bond"; - mainProgram = "ifenslave"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ifmetric/default.nix b/pkgs/os-specific/linux/ifmetric/default.nix deleted file mode 100644 index d4672b9be21b..000000000000 --- a/pkgs/os-specific/linux/ifmetric/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl, lynx }: - -stdenv.mkDerivation rec { - pname = "ifmetric"; - version = "0.3"; - - src = fetchurl { - url = "http://0pointer.de/lennart/projects/${pname}/${pname}-${version}.tar.gz"; - sha256 = "1v0s5x81jzwnnl7hr254d4nkyc8qcv983pzr6vqmbr9l9q553a0g"; - }; - - buildInputs = [ lynx ]; - - patches = [ - # Fixes an issue related to the netlink API. - # Upstream is largely inactive; this is a Debian patch. - (fetchurl { - url = "https://launchpadlibrarian.net/85974387/10_netlink_fix.patch"; - sha256 = "1pnlcr0qvk0bd5243wpg14i387zp978f4xhwwkcqn1cir91x7fbc"; - }) - ]; - - meta = with lib; { - description = "Tool for setting IP interface metrics"; - longDescription = '' - ifmetric is a Linux tool for setting the metrics of all IPv4 routes - attached to a given network interface at once. This may be used to change - the priority of routing IPv4 traffic over the interface. Lower metrics - correlate with higher priorities. - ''; - homepage = "http://0pointer.de/lennart/projects/ifmetric"; - license = licenses.gpl2Plus; - maintainers = [ maintainers.anna328p ]; - platforms = platforms.linux; - mainProgram = "ifmetric"; - }; -} diff --git a/pkgs/os-specific/linux/iio-sensor-proxy/default.nix b/pkgs/os-specific/linux/iio-sensor-proxy/default.nix deleted file mode 100644 index 38c30dc43687..000000000000 --- a/pkgs/os-specific/linux/iio-sensor-proxy/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib -, stdenv -, fetchFromGitLab -, glib -, cmake -, libxml2 -, meson -, ninja -, pkg-config -, libgudev -, systemd -, polkit -}: - -stdenv.mkDerivation rec { - pname = "iio-sensor-proxy"; - version = "3.5"; - - src = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "hadess"; - repo = pname; - rev = version; - hash = "sha256-pFu+nJzj45s7yIKoLWLeiv2AT5vLf6JpdWWQ0JZfnvY="; - }; - - postPatch = '' - # upstream meson.build currently doesn't have an option to change the default polkit dir - substituteInPlace data/meson.build \ - --replace 'polkit_policy_directory' "'$out/share/polkit-1/actions'" - ''; - - buildInputs = [ - libgudev - systemd - polkit - ]; - - nativeBuildInputs = [ - meson - cmake - glib - libxml2 - ninja - pkg-config - ]; - - mesonFlags = [ - (lib.mesonOption "udevrulesdir" "${placeholder "out"}/lib/udev/rules.d") - (lib.mesonOption "systemdsystemunitdir" "${placeholder "out"}/lib/systemd/system") - ]; - - meta = with lib; { - description = "Proxy for sending IIO sensor data to D-Bus"; - mainProgram = "monitor-sensor"; - homepage = "https://gitlab.freedesktop.org/hadess/iio-sensor-proxy"; - license = licenses.gpl3; - maintainers = with maintainers; [ _999eagle ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ima-evm-utils/default.nix b/pkgs/os-specific/linux/ima-evm-utils/default.nix deleted file mode 100644 index fa90ceecdb2b..000000000000 --- a/pkgs/os-specific/linux/ima-evm-utils/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib -, stdenv -, fetchgit -, autoreconfHook -, pkg-config -, openssl -, keyutils -, asciidoc -, libxslt -, docbook_xsl -}: - -stdenv.mkDerivation rec { - pname = "ima-evm-utils"; - version = "1.5"; - - src = fetchgit { - url = "git://git.code.sf.net/p/linux-ima/ima-evm-utils"; - rev = "v${version}"; - sha256 = "sha256-WPBG7v29JHZ+ZGeLgA2gtLzZmaG0Xdvpq+BZ6NriY+A="; - }; - - strictDeps = true; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - asciidoc - libxslt - ]; - - buildInputs = [ - openssl - keyutils - ]; - - env.MANPAGE_DOCBOOK_XSL = "${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"; - - meta = { - description = "evmctl utility to manage digital signatures of the Linux kernel integrity subsystem (IMA/EVM)"; - mainProgram = "evmctl"; - homepage = "https://sourceforge.net/projects/linux-ima/"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ nickcao ]; - }; -} diff --git a/pkgs/os-specific/linux/input-utils/default.nix b/pkgs/os-specific/linux/input-utils/default.nix deleted file mode 100644 index 36a203a47c76..000000000000 --- a/pkgs/os-specific/linux/input-utils/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, fetchurl, linuxHeaders }: - -stdenv.mkDerivation rec { - pname = "input-utils"; - version = "1.3"; - - src = fetchurl { - url = "https://www.kraxel.org/releases/input/input-${version}.tar.gz"; - sha256 = "11w0pp20knx6qpgzmawdbk1nj2z3fzp8yd6nag6s8bcga16w6hli"; - }; - - prePatch = '' - # Use proper include path for kernel include files. - substituteInPlace ./name.sh --replace "/usr/include/linux/" "${linuxHeaders}/include/linux/" - substituteInPlace ./lirc.sh --replace "/usr/include/linux/" "${linuxHeaders}/include/linux/" - ''; - - makeFlags = [ - "prefix=$(out)" - "STRIP=" - ]; - - meta = with lib; { - description = "Input layer utilities, includes lsinput"; - homepage = "https://www.kraxel.org/blog/linux/input/"; - license = licenses.gpl2; - maintainers = with maintainers; [ samueldr ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/intel-cmt-cat/default.nix b/pkgs/os-specific/linux/intel-cmt-cat/default.nix deleted file mode 100644 index 71f7735996ad..000000000000 --- a/pkgs/os-specific/linux/intel-cmt-cat/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - version = "23.11.1"; - pname = "intel-cmt-cat"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "intel-cmt-cat"; - rev = "v${version}"; - sha256 = "sha256-cBsbXua3uOqzElkLcLrOnNXXukGn5zRF8ytWa9VzGdE="; - }; - - enableParallelBuilding = true; - - makeFlags = [ "PREFIX=$(out)" "NOLDCONFIG=y" ]; - - meta = with lib; { - description = "User space software for Intel(R) Resource Director Technology"; - homepage = "https://github.com/intel/intel-cmt-cat"; - license = licenses.bsd3; - maintainers = with maintainers; [ arkivm ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/intel-compute-runtime/default.nix b/pkgs/os-specific/linux/intel-compute-runtime/default.nix deleted file mode 100644 index e686e0680419..000000000000 --- a/pkgs/os-specific/linux/intel-compute-runtime/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, pkg-config -, intel-gmmlib -, intel-graphics-compiler -, level-zero -, libva -}: - -stdenv.mkDerivation rec { - pname = "intel-compute-runtime"; - version = "24.13.29138.7"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "compute-runtime"; - rev = version; - hash = "sha256-AMIuA1AMrSX0xpdGSfye8iUJTk5s9HDiRy9Yy3kZss8="; - }; - - nativeBuildInputs = [ cmake pkg-config ]; - - buildInputs = [ intel-gmmlib intel-graphics-compiler libva level-zero ]; - - cmakeFlags = [ - "-DSKIP_UNIT_TESTS=1" - "-DIGC_DIR=${intel-graphics-compiler}" - "-DOCL_ICD_VENDORDIR=${placeholder "out"}/etc/OpenCL/vendors" - # The install script assumes this path is relative to CMAKE_INSTALL_PREFIX - "-DCMAKE_INSTALL_LIBDIR=lib" - ]; - - outputs = [ "out" "drivers" ]; - - # causes redefinition of _FORTIFY_SOURCE - hardeningDisable = [ "fortify3" ]; - - postInstall = '' - # Avoid clash with intel-ocl - mv $out/etc/OpenCL/vendors/intel.icd $out/etc/OpenCL/vendors/intel-neo.icd - - mkdir -p $drivers/lib - mv -t $drivers/lib $out/lib/libze_intel* - ''; - - postFixup = '' - patchelf --set-rpath ${lib.makeLibraryPath [ intel-gmmlib intel-graphics-compiler libva stdenv.cc.cc.lib ]} \ - $out/lib/intel-opencl/libigdrcl.so - ''; - - meta = with lib; { - description = "Intel Graphics Compute Runtime for OpenCL. Replaces Beignet for Gen8 (Broadwell) and beyond"; - mainProgram = "ocloc"; - homepage = "https://github.com/intel/compute-runtime"; - changelog = "https://github.com/intel/compute-runtime/releases/tag/${version}"; - license = licenses.mit; - platforms = [ "x86_64-linux" "aarch64-linux" ]; - maintainers = with maintainers; [ SuperSandro2000 ]; - }; -} diff --git a/pkgs/os-specific/linux/intel-ocl/default.nix b/pkgs/os-specific/linux/intel-ocl/default.nix deleted file mode 100644 index b1451421d69b..000000000000 --- a/pkgs/os-specific/linux/intel-ocl/default.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ lib, stdenv, fetchzip, rpmextract, ncurses5, numactl, zlib }: - -stdenv.mkDerivation rec { - pname = "intel-ocl"; - version = "5.0-63503"; - - src = fetchzip { - # https://github.com/NixOS/nixpkgs/issues/166886 - urls = [ - "https://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip" - "http://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip" - "https://web.archive.org/web/20190526190814/http://registrationcenter-download.intel.com/akdlm/irc_nas/11396/SRB5.0_linux64.zip" - ]; - sha256 = "0qbp63l74s0i80ysh9ya8x7r79xkddbbz4378nms9i7a0kprg9p2"; - stripRoot = false; - }; - - buildInputs = [ rpmextract ]; - - sourceRoot = "."; - - libPath = lib.makeLibraryPath [ - stdenv.cc.cc.lib - ncurses5 - numactl - zlib - ]; - - postUnpack = '' - # Extract the RPMs contained within the source ZIP. - rpmextract source/intel-opencl-r${version}.x86_64.rpm - rpmextract source/intel-opencl-cpu-r${version}.x86_64.rpm - ''; - - patchPhase = '' - runHook prePatch - - # Remove libOpenCL.so, since we use ocl-icd's libOpenCL.so instead and this would cause a clash. - rm opt/intel/opencl/libOpenCL.so* - - # Patch shared libraries. - for lib in opt/intel/opencl/*.so; do - patchelf --set-rpath "${libPath}:$out/lib/intel-ocl" $lib || true - done - - runHook postPatch - ''; - - buildPhase = '' - runHook preBuild - - # Create ICD file, which just contains the path of the corresponding shared library. - echo "$out/lib/intel-ocl/libintelocl.so" > intel.icd - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - install -D -m 0755 opt/intel/opencl/*.so* -t $out/lib/intel-ocl - install -D -m 0644 opt/intel/opencl/*.{o,rtl,bin} -t $out/lib/intel-ocl - install -D -m 0644 opt/intel/opencl/{LICENSE,NOTICES} -t $out/share/doc/intel-ocl - install -D -m 0644 intel.icd -t $out/etc/OpenCL/vendors - - runHook postInstall - ''; - - dontStrip = true; - - meta = { - description = "Official OpenCL runtime for Intel CPUs"; - homepage = "https://software.intel.com/en-us/articles/opencl-drivers"; - license = lib.licenses.unfree; - platforms = [ "x86_64-linux" ]; - maintainers = [ lib.maintainers.kierdavis ]; - }; -} diff --git a/pkgs/os-specific/linux/intel-speed-select/default.nix b/pkgs/os-specific/linux/intel-speed-select/default.nix deleted file mode 100644 index 9d9c9b134c64..000000000000 --- a/pkgs/os-specific/linux/intel-speed-select/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, stdenv, kernel }: - -stdenv.mkDerivation { - pname = "intel-speed-select"; - inherit (kernel) src version; - - makeFlags = [ "bindir=${placeholder "out"}/bin" ]; - - postPatch = '' - cd tools/power/x86/intel-speed-select - sed -i 's,/usr,,g' Makefile - ''; - - meta = with lib; { - description = "Tool to enumerate and control the Intel Speed Select Technology features"; - mainProgram = "intel-speed-select"; - homepage = "https://www.kernel.org/"; - license = licenses.gpl2; - platforms = [ "i686-linux" "x86_64-linux" ]; # x86-specific - broken = kernel.kernelAtLeast "5.18"; - }; -} diff --git a/pkgs/os-specific/linux/iomelt/default.nix b/pkgs/os-specific/linux/iomelt/default.nix deleted file mode 100644 index 331c9020a480..000000000000 --- a/pkgs/os-specific/linux/iomelt/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ fetchurl -, lib -, stdenv -}: - -let version = "0.7"; -in stdenv.mkDerivation { - inherit version; - pname = "iomelt"; - src = fetchurl { - url = "https://web.archive.org/web/20180816072405if_/http://iomelt.com/s/iomelt-${version}.tar.gz"; - sha256 = "1jhrdm5b7f1bcbrdwcc4yzg26790jxl4d2ndqiwd9brl2g5537im"; - }; - - preBuild = '' - install -d $out/{bin,share/man/man1} - - substituteInPlace Makefile \ - --replace /usr $out - ''; - - meta = with lib; { - description = "A simple yet effective way to benchmark disk IO in Linux systems"; - homepage = "https://github.com/camposr/iomelt"; - maintainers = with maintainers; [ raspher ]; - license = licenses.artistic2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ioport/default.nix b/pkgs/os-specific/linux/ioport/default.nix deleted file mode 100644 index 6da154648fc2..000000000000 --- a/pkgs/os-specific/linux/ioport/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, stdenv, perl, fetchurl }: - -stdenv.mkDerivation rec { - pname = "ioport"; - version = "1.2"; - - src = fetchurl { - url = "https://people.redhat.com/rjones/ioport/files/ioport-${version}.tar.gz"; - sha256 = "1h4d5g78y7kla0zl25jgyrk43wy3m3bygqg0blki357bc55irb3z"; - }; - - buildInputs = [ perl ]; - - meta = with lib; { - description = "Direct access to I/O ports from the command line"; - homepage = "https://people.redhat.com/rjones/ioport/"; - license = licenses.gpl2Plus; - platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = [ maintainers.cleverca22 ]; - }; -} diff --git a/pkgs/os-specific/linux/iotop-c/default.nix b/pkgs/os-specific/linux/iotop-c/default.nix deleted file mode 100644 index 57254f30c3c9..000000000000 --- a/pkgs/os-specific/linux/iotop-c/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{stdenv, fetchFromGitHub, lib, ncurses, pkg-config }: - -stdenv.mkDerivation rec { - pname = "iotop-c"; - version = "1.26"; - - src = fetchFromGitHub { - owner = "Tomas-M"; - repo = "iotop"; - rev = "v${version}"; - sha256 = "sha256-m75BHvKMk9ckZ6TgT1QDfHYcEfvfEwWu0bQacnVgSmU="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ncurses ]; - makeFlags = [ "DESTDIR=$(out)" "TARGET=iotop-c" ]; - - postInstall = '' - mv $out/usr/share/man/man8/{iotop,iotop-c}.8 - ln -s $out/usr/sbin $out/bin - ln -s $out/usr/share $out/share - ''; - - meta = with lib; { - description = "iotop identifies processes that use high amount of input/output requests on your machine"; - homepage = "https://github.com/Tomas-M/iotop"; - maintainers = [ maintainers.arezvov ]; - mainProgram = "iotop-c"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/iotop/default.nix b/pkgs/os-specific/linux/iotop/default.nix deleted file mode 100644 index 41647a2378e4..000000000000 --- a/pkgs/os-specific/linux/iotop/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, fetchurl, python3Packages, fetchpatch }: - -python3Packages.buildPythonApplication rec { - pname = "iotop"; - version = "0.6"; - - src = fetchurl { - url = "http://guichaz.free.fr/iotop/files/iotop-${version}.tar.bz2"; - sha256 = "0nzprs6zqax0cwq8h7hnszdl3d2m4c2d4vjfxfxbnjfs9sia5pis"; - }; - - patches = [ - (fetchpatch { - url = "https://repo.or.cz/iotop.git/patch/99c8d7cedce81f17b851954d94bfa73787300599"; - sha256 = "0rdgz6xpmbx77lkr1ixklliy1aavdsjmfdqvzwrjylbv0xh5wc8z"; - }) - ]; - - doCheck = false; - - meta = with lib; { - description = "A tool to find out the processes doing the most IO"; - homepage = "http://guichaz.free.fr/iotop"; - license = licenses.gpl2; - mainProgram = "iotop"; - maintainers = [ maintainers.raskin ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ipp-usb/default.nix b/pkgs/os-specific/linux/ipp-usb/default.nix deleted file mode 100644 index d02018f570c4..000000000000 --- a/pkgs/os-specific/linux/ipp-usb/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ buildGoModule, avahi, libusb1, pkg-config, lib, fetchFromGitHub, ronn }: -buildGoModule rec { - pname = "ipp-usb"; - version = "0.9.25"; - - src = fetchFromGitHub { - owner = "openprinting"; - repo = "ipp-usb"; - rev = version; - sha256 = "sha256-ryKQDzb31JA192lbCYkwJrXgwErViqIzP4mD2NmWdgA="; - }; - - postPatch = '' - # rebuild with patched paths - rm ipp-usb.8 - substituteInPlace Makefile --replace "install: all" "install: man" - substituteInPlace systemd-udev/ipp-usb.service --replace "/sbin" "$out/bin" - for i in Makefile paths.go ipp-usb.8.md; do - substituteInPlace $i --replace "/usr" "$out" - substituteInPlace $i --replace "/var/ipp-usb" "/var/lib/ipp-usb" - done - ''; - - nativeBuildInputs = [ pkg-config ronn ]; - buildInputs = [ libusb1 avahi ]; - - vendorHash = "sha256-61vCER1yR70Pn+CrfTai1sgiQQLU6msb9jxushus5W4="; - - postInstall = '' - # to accomodate the makefile - cp $out/bin/ipp-usb . - make install DESTDIR=$out - ''; - - meta = { - description = "Daemon to use the IPP everywhere protocol with USB printers"; - mainProgram = "ipp-usb"; - homepage = "https://github.com/OpenPrinting/ipp-usb"; - maintainers = [ lib.maintainers.symphorien ]; - platforms = lib.platforms.linux; - license = lib.licenses.bsd2; - }; -} diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix deleted file mode 100644 index 031dbfa700bc..000000000000 --- a/pkgs/os-specific/linux/iproute/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ lib, stdenv, fetchurl -, buildPackages, bison, flex, pkg-config -, db, iptables, elfutils, libmnl -, gitUpdater -}: - -stdenv.mkDerivation rec { - pname = "iproute2"; - version = "6.8.0"; - - src = fetchurl { - url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz"; - hash = "sha256-A6bMo9cakI0fFfe0lb4rj+hR+UFFjcRmSQDX9F/PaM4="; - }; - - postPatch = '' - # Don't try to create /var/lib/arpd: - sed -e '/ARPDDIR/d' -i Makefile - - substituteInPlace Makefile \ - --replace "CC := gcc" "CC ?= $CC" - ''; - - outputs = [ "out" "dev" ]; - - makeFlags = [ - "PREFIX=$(out)" - "SBINDIR=$(out)/sbin" - "DOCDIR=$(TMPDIR)/share/doc/${pname}" # Don't install docs - "HDRDIR=$(dev)/include/iproute2" - ] ++ lib.optionals stdenv.hostPlatform.isStatic [ - "SHARED_LIBS=n" - # all build .so plugins: - "TC_CONFIG_NO_XT=y" - ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "HOSTCC=$(CC_FOR_BUILD)" - ]; - - buildFlags = [ - "CONFDIR=/etc/iproute2" - ]; - - installFlags = [ - "CONFDIR=$(out)/etc/iproute2" - ]; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; # netem requires $HOSTCC - nativeBuildInputs = [ bison flex pkg-config ]; - buildInputs = [ db iptables elfutils libmnl ]; - - enableParallelBuilding = true; - - passthru.updateScript = gitUpdater { - # No nicer place to find latest release. - url = "https://git.kernel.org/pub/scm/network/iproute2/iproute2.git"; - rev-prefix = "v"; - }; - - meta = with lib; { - homepage = "https://wiki.linuxfoundation.org/networking/iproute2"; - description = "A collection of utilities for controlling TCP/IP networking and traffic control in Linux"; - platforms = platforms.linux; - license = licenses.gpl2; - maintainers = with maintainers; [ primeos eelco fpletz globin ]; - }; -} diff --git a/pkgs/os-specific/linux/ipset/default.nix b/pkgs/os-specific/linux/ipset/default.nix deleted file mode 100644 index 4b8fadcecf25..000000000000 --- a/pkgs/os-specific/linux/ipset/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, libmnl }: - -stdenv.mkDerivation rec { - pname = "ipset"; - version = "7.21"; - - src = fetchurl { - url = "https://ipset.netfilter.org/${pname}-${version}.tar.bz2"; - sha256 = "sha256-4sbOT886yziTyl01yGk1+ArXb8XMrmARhYQt92DgvGk="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libmnl ]; - - configureFlags = [ "--with-kmod=no" ]; - - meta = with lib; { - homepage = "https://ipset.netfilter.org/"; - description = "Administration tool for IP sets"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/iptables/default.nix b/pkgs/os-specific/linux/iptables/default.nix deleted file mode 100644 index b82484514e5f..000000000000 --- a/pkgs/os-specific/linux/iptables/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib, stdenv, fetchurl -, autoreconfHook, pkg-config, pruneLibtoolFiles, flex, bison -, libmnl, libnetfilter_conntrack, libnfnetlink, libnftnl, libpcap -, nftablesCompat ? true -, gitUpdater -}: - -stdenv.mkDerivation rec { - version = "1.8.10"; - pname = "iptables"; - - src = fetchurl { - url = "https://www.netfilter.org/projects/${pname}/files/${pname}-${version}.tar.xz"; - sha256 = "XMJVwYk1bjF9BwdVzpNx62Oht4PDRJj7jDAmTzzFnJw="; - }; - - outputs = [ "out" "dev" "man" ]; - - nativeBuildInputs = [ - autoreconfHook pkg-config pruneLibtoolFiles flex bison - ]; - - buildInputs = [ libmnl libnetfilter_conntrack libnfnetlink libnftnl libpcap ]; - - configureFlags = [ - "--enable-bpf-compiler" - "--enable-devel" - "--enable-libipq" - "--enable-nfsynproxy" - "--enable-shared" - ] ++ lib.optional (!nftablesCompat) "--disable-nftables"; - - enableParallelBuilding = true; - - postInstall = lib.optionalString nftablesCompat '' - rm $out/sbin/{iptables,iptables-restore,iptables-save,ip6tables,ip6tables-restore,ip6tables-save} - ln -sv xtables-nft-multi $out/bin/iptables - ln -sv xtables-nft-multi $out/bin/iptables-restore - ln -sv xtables-nft-multi $out/bin/iptables-save - ln -sv xtables-nft-multi $out/bin/ip6tables - ln -sv xtables-nft-multi $out/bin/ip6tables-restore - ln -sv xtables-nft-multi $out/bin/ip6tables-save - ''; - - passthru = { - updateScript = gitUpdater { - url = "https://git.netfilter.org/iptables"; - rev-prefix = "v"; - }; - }; - - meta = with lib; { - description = "A program to configure the Linux IP packet filtering ruleset"; - homepage = "https://www.netfilter.org/projects/iptables/index.html"; - platforms = platforms.linux; - maintainers = with maintainers; [ fpletz ]; - license = licenses.gpl2; - downloadPage = "https://www.netfilter.org/projects/iptables/files/"; - }; -} diff --git a/pkgs/os-specific/linux/iptstate/default.nix b/pkgs/os-specific/linux/iptstate/default.nix deleted file mode 100644 index d1e193f831ca..000000000000 --- a/pkgs/os-specific/linux/iptstate/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchurl, libnetfilter_conntrack, ncurses }: - -stdenv.mkDerivation rec { - pname = "iptstate"; - version = "2.2.7"; - - src = fetchurl { - url = "https://github.com/jaymzh/iptstate/releases/download/v${version}/${pname}-${version}.tar.bz2"; - sha256 = "sha256-iW3wYCiFRWomMfeV1jT8ITEeUF+MkQNI5jEoYPIJeVU="; - }; - - buildInputs = [ libnetfilter_conntrack ncurses ]; - - meta = with lib; { - description = "Conntrack top like tool"; - mainProgram = "iptstate"; - homepage = "https://github.com/jaymzh/iptstate"; - platforms = platforms.linux; - maintainers = with maintainers; [ trevorj ]; - downloadPage = "https://github.com/jaymzh/iptstate/releases"; - license = licenses.zlib; - }; - - installPhase = '' - install -m755 -D iptstate $out/bin/iptstate - ''; -} - diff --git a/pkgs/os-specific/linux/ipu6-drivers/default.nix b/pkgs/os-specific/linux/ipu6-drivers/default.nix deleted file mode 100644 index fe9cb1da018c..000000000000 --- a/pkgs/os-specific/linux/ipu6-drivers/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, ivsc-driver -, kernel -}: - -stdenv.mkDerivation { - pname = "ipu6-drivers"; - version = "unstable-2023-11-24"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "ipu6-drivers"; - rev = "07f0612eabfdc31df36f5e316a9eae115807804f"; - hash = "sha256-8JRZG6IKJT0qtoqJHm8641kSQMLc4Z+DRzK6FpL9Euk="; - }; - - postPatch = '' - cp --no-preserve=mode --recursive --verbose \ - ${ivsc-driver.src}/backport-include \ - ${ivsc-driver.src}/drivers \ - ${ivsc-driver.src}/include \ - . - ''; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KERNELRELEASE=${kernel.modDirVersion}" - "KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - enableParallelBuilding = true; - - preInstall = '' - sed -i -e "s,INSTALL_MOD_DIR=,INSTALL_MOD_PATH=$out INSTALL_MOD_DIR=," Makefile - ''; - - installTargets = [ - "modules_install" - ]; - - meta = { - homepage = "https://github.com/intel/ipu6-drivers"; - description = "IPU6 kernel driver"; - license = lib.licenses.gpl2; - maintainers = with lib.maintainers; [ hexa ]; - platforms = [ "x86_64-linux" ]; - # requires 6.1.7 https://github.com/intel/ipu6-drivers/pull/84 - broken = kernel.kernelOlder "6.1.7"; - }; -} diff --git a/pkgs/os-specific/linux/iputils/default.nix b/pkgs/os-specific/linux/iputils/default.nix deleted file mode 100644 index 75d706b63f95..000000000000 --- a/pkgs/os-specific/linux/iputils/default.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, meson -, ninja -, pkg-config -, gettext -, libxslt -, docbook_xsl_ns -, libcap -, libidn2 -, iproute2 -, apparmorRulesFromClosure -}: - -stdenv.mkDerivation rec { - pname = "iputils"; - version = "20240117"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = version; - hash = "sha256-sERY8ZKuXiY85cXdNWOm4byiNU7mOVIeA55dgQJHdoE="; - }; - - outputs = [ "out" "apparmor" ]; - - # We don't have the required permissions inside the build sandbox: - # /build/source/build/ping/ping: socket: Operation not permitted - doCheck = false; - - mesonFlags = [ - "-DNO_SETCAP_OR_SUID=true" - "-Dsystemdunitdir=etc/systemd/system" - "-DINSTALL_SYSTEMD_UNITS=true" - "-DSKIP_TESTS=${lib.boolToString (!doCheck)}" - ] - # Disable idn usage w/musl (https://github.com/iputils/iputils/pull/111): - ++ lib.optional stdenv.hostPlatform.isMusl "-DUSE_IDN=false"; - - nativeBuildInputs = [ meson ninja pkg-config gettext libxslt.bin docbook_xsl_ns ]; - buildInputs = [ libcap ] - ++ lib.optional (!stdenv.hostPlatform.isMusl) libidn2; - nativeCheckInputs = [ iproute2 ]; - - postInstall = '' - mkdir $apparmor - cat >$apparmor/bin.ping <<EOF - include <tunables/global> - $out/bin/ping { - include <abstractions/base> - include <abstractions/consoles> - include <abstractions/nameservice> - include "${apparmorRulesFromClosure { name = "ping"; } - ([libcap] ++ lib.optional (!stdenv.hostPlatform.isMusl) libidn2)}" - include <local/bin.ping> - capability net_raw, - network inet raw, - network inet6 raw, - mr $out/bin/ping, - r $out/share/locale/**, - r @{PROC}/@{pid}/environ, - } - EOF - ''; - - meta = with lib; { - homepage = "https://github.com/iputils/iputils"; - changelog = "https://github.com/iputils/iputils/releases/tag/${version}"; - description = "A set of small useful utilities for Linux networking"; - longDescription = '' - A set of small useful utilities for Linux networking including: - - - arping: send ARP REQUEST to a neighbour host - - clockdiff: measure clock difference between hosts - - ping: send ICMP ECHO_REQUEST to network hosts - - tracepath: traces path to a network host discovering MTU along this path - ''; - license = with licenses; [ gpl2Plus bsd3 ]; - platforms = platforms.linux; - maintainers = with maintainers; [ primeos lheckemann ]; - }; -} diff --git a/pkgs/os-specific/linux/ipvsadm/default.nix b/pkgs/os-specific/linux/ipvsadm/default.nix deleted file mode 100644 index c98816746918..000000000000 --- a/pkgs/os-specific/linux/ipvsadm/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, libnl, popt, gnugrep }: - -stdenv.mkDerivation rec { - pname = "ipvsadm"; - version = "1.31"; - - src = fetchurl { - url = "mirror://kernel/linux/utils/kernel/ipvsadm/${pname}-${version}.tar.xz"; - sha256 = "1nyzpv1hx75k9lh0vfxfhc0p2fpqaqb38xpvs8sn88m1nljmw2hs"; - }; - - postPatch = '' - substituteInPlace Makefile --replace "-lnl" "$(pkg-config --libs libnl-genl-3.0)" - ''; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libnl popt ]; - - # Disable parallel build, errors: - # *** No rule to make target 'libipvs/libipvs.a', needed by 'ipvsadm'. Stop. - enableParallelBuilding = false; - - preBuild = '' - makeFlagsArray+=( - INCLUDE=$(pkg-config --cflags libnl-genl-3.0) - BUILD_ROOT=$out - MANDIR=share/man - ) - ''; - - postInstall = '' - sed -i -e "s|^PATH=.*|PATH=$out/bin:${gnugrep}/bin|" $out/sbin/ipvsadm-{restore,save} - ''; - - meta = with lib; { - description = "Linux Virtual Server support programs"; - homepage = "http://www.linuxvirtualserver.org/software/ipvs.html"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/irqbalance/default.nix b/pkgs/os-specific/linux/irqbalance/default.nix deleted file mode 100644 index 5e4b7fff489c..000000000000 --- a/pkgs/os-specific/linux/irqbalance/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, glib, ncurses, libcap_ng }: - -stdenv.mkDerivation rec { - pname = "irqbalance"; - version = "1.9.4"; - - src = fetchFromGitHub { - owner = "irqbalance"; - repo = "irqbalance"; - rev = "v${version}"; - sha256 = "sha256-7es7wwsPnDSF37uL5SCgAQB+u+qGWmWDHOh3JkHuXMs="; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ glib ncurses libcap_ng ]; - - LDFLAGS = "-lncurses"; - - postInstall = - '' - # Systemd service - mkdir -p $out/lib/systemd/system - grep -vi "EnvironmentFile" misc/irqbalance.service >$out/lib/systemd/system/irqbalance.service - substituteInPlace $out/lib/systemd/system/irqbalance.service \ - --replace /usr/sbin/irqbalance $out/bin/irqbalance \ - --replace ' $IRQBALANCE_ARGS' "" - ''; - - meta = with lib; { - homepage = "https://github.com/Irqbalance/irqbalance"; - changelog = "https://github.com/Irqbalance/irqbalance/releases/tag/v${version}"; - description = "A daemon to help balance the cpu load generated by interrupts across all of a systems cpus"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ moni ]; - }; -} diff --git a/pkgs/os-specific/linux/isgx/default.nix b/pkgs/os-specific/linux/isgx/default.nix deleted file mode 100644 index c49a0a7b913d..000000000000 --- a/pkgs/os-specific/linux/isgx/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - name = "isgx-${version}-${kernel.version}"; - version = "2.14"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "linux-sgx-driver"; - rev = "sgx_diver_${version}"; # Typo is upstream's. - sha256 = "0kbbf2inaywp44lm8ig26mkb36jq3smsln0yp6kmrirdwc3c53mi"; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - runHook preInstall - install -D isgx.ko -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/intel/sgx - runHook postInstall - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Intel SGX Linux Driver"; - longDescription = '' - The linux-sgx-driver project (isgx) hosts an out-of-tree driver - for the Linux* Intel(R) SGX software stack, which would be used - until the driver upstreaming process is complete (before 5.11.0). - - It is used to support Enhanced Privacy Identification (EPID) - based attestation on the platforms without Flexible Launch Control. - ''; - homepage = "https://github.com/intel/linux-sgx-driver"; - license = with licenses; [ bsd3 /* OR */ gpl2Only ]; - maintainers = [ ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/it87/default.nix b/pkgs/os-specific/linux/it87/default.nix deleted file mode 100644 index aa51626986e7..000000000000 --- a/pkgs/os-specific/linux/it87/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - name = "it87-${version}-${kernel.version}"; - version = "unstable-2022-02-26"; - - # Original is no longer maintained. - # This is the same upstream as the AUR uses. - src = fetchFromGitHub { - owner = "frankcrawford"; - repo = "it87"; - rev = "c93d61adadecb009c92f3258cd3ff14a66efb193"; - sha256 = "sha256-wVhs//iwZUUGRTk1DpV/SnA7NZ7cFyYbsUbtazlxb6Q="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - preConfigure = '' - sed -i 's|depmod|#depmod|' Makefile - ''; - - makeFlags = [ - "TARGET=${kernel.modDirVersion}" - "KERNEL_MODULES=${kernel.dev}/lib/modules/${kernel.modDirVersion}" - "MODDESTDIR=$(out)/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon" - ]; - - meta = with lib; { - description = "Patched module for IT87xx superio chip sensors support"; - homepage = "https://github.com/hannesha/it87"; - license = licenses.gpl2Plus; - platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = teams.lumiguide.members; - }; -} diff --git a/pkgs/os-specific/linux/ithc/default.nix b/pkgs/os-specific/linux/ithc/default.nix deleted file mode 100644 index 69b202e7e201..000000000000 --- a/pkgs/os-specific/linux/ithc/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "ithc"; - version = "unstable-2022-06-07"; - - src = fetchFromGitHub { - owner = "quo"; - repo = "ithc-linux"; - rev = "5af2a2213d2f3d944b19ec7ccdb96f16d56adddb"; - hash = "sha256-p4TooWUOWPfNdePE18ESmRJezPDAl9nLb55LQtkJiSg="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "VERSION=${version}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - postPatch = '' - sed -i ./Makefile -e '/depmod/d' - ''; - - installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ]; - - meta = with lib; { - description = "Linux driver for Intel Touch Host Controller"; - homepage = "https://github.com/quo/ithc-linux"; - license = licenses.publicDomain; - maintainers = with maintainers; [ aacebedo ]; - platforms = platforms.linux; - broken = kernel.kernelOlder "5.9"; - }; -} diff --git a/pkgs/os-specific/linux/ivsc-driver/default.nix b/pkgs/os-specific/linux/ivsc-driver/default.nix deleted file mode 100644 index 72173de49baa..000000000000 --- a/pkgs/os-specific/linux/ivsc-driver/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, kernel -}: - -stdenv.mkDerivation { - pname = "ivsc-driver"; - version = "unstable-2023-11-09"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "ivsc-driver"; - rev = "73a044d9633212fac54ea96cdd882ff5ab40573e"; - hash = "sha256-vE5pOtVqjiWovlUMSEoBKTk/qvs8K8T5oY2r7njh0wQ="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KERNELRELEASE=${kernel.modDirVersion}" - "KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - enableParallelBuilding = true; - - preInstall = '' - sed -i -e "s,INSTALL_MOD_DIR=,INSTALL_MOD_PATH=$out INSTALL_MOD_DIR=," Makefile - ''; - - installTargets = [ - "modules_install" - ]; - - meta = { - homepage = "https://github.com/intel/ivsc-driver"; - description = "Intel Vision Sensing Controller kernel driver"; - license = lib.licenses.gpl2; - maintainers = with lib.maintainers; [ hexa ]; - platforms = [ "x86_64-linux" ]; - broken = kernel.kernelOlder "5.15"; - }; -} diff --git a/pkgs/os-specific/linux/iw/default.nix b/pkgs/os-specific/linux/iw/default.nix deleted file mode 100644 index 4c1d94f02e6b..000000000000 --- a/pkgs/os-specific/linux/iw/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, libnl }: - -stdenv.mkDerivation rec { - pname = "iw"; - version = "5.19"; - - src = fetchurl { - url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-8We76UfdU7uevAwdzvXbatc6wdYITyxvk3bFw2DMTU4="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libnl ]; - - makeFlags = [ "PREFIX=${placeholder "out"}" ]; - - meta = { - description = "Tool to use nl80211"; - mainProgram = "iw"; - longDescription = '' - iw is a new nl80211 based CLI configuration utility for wireless devices. - It supports all new drivers that have been added to the kernel recently. - The old tool iwconfig, which uses Wireless Extensions interface, is - deprecated and it's strongly recommended to switch to iw and nl80211. - ''; - homepage = "https://wireless.wiki.kernel.org/en/users/Documentation/iw"; - license = lib.licenses.isc; - maintainers = with lib.maintainers; [ viric primeos ]; - platforms = with lib.platforms; linux; - }; -} diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix deleted file mode 100644 index 5c1d153b83fc..000000000000 --- a/pkgs/os-specific/linux/iwd/default.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ lib, stdenv -, fetchgit -, autoreconfHook -, pkg-config -, ell -, coreutils -, docutils -, readline -, openssl -, python3Packages -, gitUpdater -}: - -stdenv.mkDerivation rec { - pname = "iwd"; - version = "2.17"; - - src = fetchgit { - url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git"; - rev = version; - hash = "sha256-o/Q8vUtB4Yiz1x+/6+8LUKUQNtiAmwcdh++/tTUN4mM="; - }; - - outputs = [ "out" "man" "doc" ] - ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "test"; - - nativeBuildInputs = [ - autoreconfHook - docutils - pkg-config - python3Packages.wrapPython - ]; - - buildInputs = [ - ell - python3Packages.python - readline - ]; - - nativeCheckInputs = [ openssl ]; - - # wrapPython wraps the scripts in $test. They pull in gobject-introspection, - # which doesn't cross-compile. - pythonPath = lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ - python3Packages.dbus-python - python3Packages.pygobject3 - ]; - - configureFlags = [ - "--enable-external-ell" - "--enable-wired" - "--localstatedir=/var/" - "--with-dbus-busdir=${placeholder "out"}/share/dbus-1/system-services/" - "--with-dbus-datadir=${placeholder "out"}/share/" - "--with-systemd-modloaddir=${placeholder "out"}/etc/modules-load.d/" # maybe - "--with-systemd-unitdir=${placeholder "out"}/lib/systemd/system/" - "--with-systemd-networkdir=${placeholder "out"}/lib/systemd/network/" - ]; - - postUnpack = '' - mkdir -p iwd/ell - ln -s ${ell.src}/ell/useful.h iwd/ell/useful.h - ln -s ${ell.src}/ell/asn1-private.h iwd/ell/asn1-private.h - patchShebangs . - ''; - - doCheck = true; - - postInstall = '' - mkdir -p $doc/share/doc - cp -a doc $doc/share/doc/iwd - cp -a README AUTHORS TODO $doc/share/doc/iwd - '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' - mkdir -p $test/bin - cp -a test/* $test/bin/ - ''; - - preFixup = '' - wrapPythonPrograms - ''; - - postFixup = '' - substituteInPlace $out/share/dbus-1/system-services/net.connman.ead.service \ - --replace-fail /bin/false ${coreutils}/bin/false - substituteInPlace $out/share/dbus-1/system-services/net.connman.iwd.service \ - --replace-fail /bin/false ${coreutils}/bin/false - ''; - - enableParallelBuilding = true; - - passthru.updateScript = gitUpdater { - # No nicer place to find latest release. - url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git"; - }; - - meta = with lib; { - homepage = "https://git.kernel.org/pub/scm/network/wireless/iwd.git"; - description = "Wireless daemon for Linux"; - license = licenses.lgpl21Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ dtzWill fpletz ]; - }; -} diff --git a/pkgs/os-specific/linux/ixgbevf/default.nix b/pkgs/os-specific/linux/ixgbevf/default.nix deleted file mode 100644 index 6a748c470190..000000000000 --- a/pkgs/os-specific/linux/ixgbevf/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchurl, kernel, kmod }: - -stdenv.mkDerivation rec { - name = "ixgbevf-${version}-${kernel.version}"; - version = "4.6.1"; - - src = fetchurl { - url = "mirror://sourceforge/e1000/ixgbevf-${version}.tar.gz"; - sha256 = "0h8a2g4hm38wmr13gvi2188r7nlv2c5rx6cal9gkf1nh6sla181c"; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" ]; - - configurePhase = '' - cd src - makeFlagsArray+=(KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build INSTALL_MOD_PATH=$out MANDIR=/share/man) - substituteInPlace common.mk --replace /sbin/depmod ${kmod}/bin/depmod - # prevent host system kernel introspection - substituteInPlace common.mk --replace /boot/System.map /not-exists - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Intel 82599 Virtual Function Driver"; - homepage = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/"; - license = licenses.gpl2; - priority = 20; - # kernels ship ixgbevf driver for a long time already, maybe switch to a newest kernel? - broken = versionAtLeast kernel.version "5.2"; - }; -} diff --git a/pkgs/os-specific/linux/jool/cli.nix b/pkgs/os-specific/linux/jool/cli.nix deleted file mode 100644 index ee5ee1128a86..000000000000 --- a/pkgs/os-specific/linux/jool/cli.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, nixosTests -, autoreconfHook, pkg-config, libnl, iptables -}: - -let - sourceAttrs = (import ./source.nix) { inherit fetchFromGitHub; }; -in - -stdenv.mkDerivation { - pname = "jool-cli"; - version = sourceAttrs.version; - - src = sourceAttrs.src; - - patches = [ - ./validate-config.patch - ]; - - outputs = [ - "out" - "man" - ]; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ libnl iptables ]; - - makeFlags = [ "-C" "src/usr" ]; - - prePatch = '' - sed -e 's%^XTABLES_SO_DIR = .*%XTABLES_SO_DIR = '"$out"'/lib/xtables%g' -i src/usr/iptables/Makefile - ''; - - passthru.tests = { inherit (nixosTests) jool; }; - - meta = with lib; { - homepage = "https://www.jool.mx/"; - description = "Fairly compliant SIIT and Stateful NAT64 for Linux - CLI tools"; - platforms = platforms.linux; - license = licenses.gpl2; - maintainers = with maintainers; [ fpletz ]; - }; -} diff --git a/pkgs/os-specific/linux/jool/default.nix b/pkgs/os-specific/linux/jool/default.nix deleted file mode 100644 index 91276cbc11b1..000000000000 --- a/pkgs/os-specific/linux/jool/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, nixosTests }: - -let - sourceAttrs = (import ./source.nix) { inherit fetchFromGitHub; }; -in - -stdenv.mkDerivation { - name = "jool-${sourceAttrs.version}-${kernel.version}"; - - src = sourceAttrs.src; - - nativeBuildInputs = kernel.moduleBuildDependencies; - hardeningDisable = [ "pic" ]; - - prePatch = '' - sed -e 's@/lib/modules/\$(.*)@${kernel.dev}/lib/modules/${kernel.modDirVersion}@' -i src/mod/*/Makefile - ''; - - makeFlags = kernel.makeFlags ++ [ - "-C src/mod" - "INSTALL_MOD_PATH=${placeholder "out"}" - ]; - - installTargets = "modules_install"; - - passthru.tests = { inherit (nixosTests) jool; }; - - meta = with lib; { - homepage = "https://www.jool.mx/"; - description = "Fairly compliant SIIT and Stateful NAT64 for Linux - kernel modules"; - platforms = platforms.linux; - license = licenses.gpl2Only; - maintainers = with maintainers; [ fpletz ]; - }; -} diff --git a/pkgs/os-specific/linux/jool/source.nix b/pkgs/os-specific/linux/jool/source.nix deleted file mode 100644 index 59c224cef6dc..000000000000 --- a/pkgs/os-specific/linux/jool/source.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ fetchFromGitHub }: - -rec { - version = "4.1.11"; - src = fetchFromGitHub { - owner = "NICMx"; - repo = "Jool"; - rev = "refs/tags/v${version}"; - hash = "sha256-fTYUdtU51/zOBbd568QtfUYnqWl+ZN9uSbE29tJC6UM="; - }; -} diff --git a/pkgs/os-specific/linux/jool/validate-config.patch b/pkgs/os-specific/linux/jool/validate-config.patch deleted file mode 100644 index 8841b6fb14f3..000000000000 --- a/pkgs/os-specific/linux/jool/validate-config.patch +++ /dev/null @@ -1,193 +0,0 @@ -From df0a1cf61188b5b7bb98675d746cb63d9300f148 Mon Sep 17 00:00:00 2001 -From: rnhmjoj <rnhmjoj@inventati.org> -Date: Sat, 1 Jul 2023 18:47:05 +0200 -Subject: [PATCH] Add mode to validate the atomic configuration - ---- - src/usr/argp/main.c | 6 ++++++ - src/usr/argp/wargp/file.c | 26 +++++++++++++++++++++++++- - src/usr/argp/wargp/file.h | 1 + - src/usr/nl/file.c | 32 ++++++++++++++++++++++---------- - src/usr/nl/file.h | 3 ++- - 5 files changed, 56 insertions(+), 12 deletions(-) - -diff --git a/src/usr/argp/main.c b/src/usr/argp/main.c -index 744a6df0..d04917da 100644 ---- a/src/usr/argp/main.c -+++ b/src/usr/argp/main.c -@@ -238,6 +238,12 @@ static struct cmd_option file_ops[] = { - .handler = handle_file_update, - .handle_autocomplete = autocomplete_file_update, - }, -+ { -+ .label = "check", -+ .xt = XT_ANY, -+ .handler = handle_file_check, -+ .handle_autocomplete = autocomplete_file_update, -+ }, - { 0 }, - }; - -diff --git a/src/usr/argp/wargp/file.c b/src/usr/argp/wargp/file.c -index 0951b544..27ee3e64 100644 ---- a/src/usr/argp/wargp/file.c -+++ b/src/usr/argp/wargp/file.c -@@ -26,6 +26,30 @@ static struct wargp_option update_opts[] = { - { 0 }, - }; - -+int handle_file_check(char *iname, int argc, char **argv, void const *arg) -+{ -+ struct update_args uargs = { 0 }; -+ struct joolnl_socket sk = { 0 }; -+ struct jool_result result; -+ -+ result.error = wargp_parse(update_opts, argc, argv, &uargs); -+ if (result.error) -+ return result.error; -+ -+ if (!uargs.file_name.value) { -+ struct requirement reqs[] = { -+ { false, "a file name" }, -+ { 0 } -+ }; -+ return requirement_print(reqs); -+ } -+ -+ result = joolnl_file_parse(&sk, xt_get(), iname, uargs.file_name.value, -+ uargs.force.value, true); -+ -+ return pr_result(&result); -+} -+ - int handle_file_update(char *iname, int argc, char **argv, void const *arg) - { - struct update_args uargs = { 0 }; -@@ -49,7 +73,7 @@ int handle_file_update(char *iname, int argc, char **argv, void const *arg) - return pr_result(&result); - - result = joolnl_file_parse(&sk, xt_get(), iname, uargs.file_name.value, -- uargs.force.value); -+ uargs.force.value, false); - - joolnl_teardown(&sk); - return pr_result(&result); -diff --git a/src/usr/argp/wargp/file.h b/src/usr/argp/wargp/file.h -index ce5de508..8ea4a4d2 100644 ---- a/src/usr/argp/wargp/file.h -+++ b/src/usr/argp/wargp/file.h -@@ -2,6 +2,7 @@ - #define SRC_USR_ARGP_WARGP_FILE_H_ - - int handle_file_update(char *iname, int argc, char **argv, void const *arg); -+int handle_file_check(char *iname, int argc, char **argv, void const *arg); - void autocomplete_file_update(void const *args); - - #endif /* SRC_USR_ARGP_WARGP_FILE_H_ */ -diff --git a/src/usr/nl/file.c b/src/usr/nl/file.c -index f9413236..51a668bd 100644 ---- a/src/usr/nl/file.c -+++ b/src/usr/nl/file.c -@@ -29,6 +29,7 @@ static struct joolnl_socket sk; - static char const *iname; - static xlator_flags flags; - static __u8 force; -+static bool check; - - struct json_meta { - char const *name; /* This being NULL signals the end of the array. */ -@@ -163,9 +164,11 @@ static struct jool_result handle_array(cJSON *json, int attrtype, char *name, - goto too_small; - - nla_nest_end(msg, root); -- result = joolnl_request(&sk, msg, NULL, NULL); -- if (result.error) -- return result; -+ if (!check) { -+ result = joolnl_request(&sk, msg, NULL, NULL); -+ if (result.error) -+ return result; -+ } - - msg = NULL; - json = json->prev; -@@ -179,6 +182,8 @@ static struct jool_result handle_array(cJSON *json, int attrtype, char *name, - return result_success(); - - nla_nest_end(msg, root); -+ if (check) -+ return result_success(); - return joolnl_request(&sk, msg, NULL, NULL); - - too_small: -@@ -244,6 +249,8 @@ static struct jool_result handle_global(cJSON *json) - - nla_nest_end(msg, root); - free(meta); -+ if (check) -+ return result_success(); - return joolnl_request(&sk, msg, NULL, NULL); - - revert_meta: -@@ -654,9 +661,11 @@ static struct jool_result send_ctrl_msg(bool init) - else - NLA_PUT(msg, JNLAR_ATOMIC_END, 0, NULL); - -- result = joolnl_request(&sk, msg, NULL, NULL); -- if (result.error) -- return result; -+ if (!check) { -+ result = joolnl_request(&sk, msg, NULL, NULL); -+ if (result.error) -+ return result; -+ } - - return result_success(); - -@@ -683,9 +692,11 @@ static struct jool_result do_parsing(char const *iname, char *buffer) - if (result.error) - goto fail; - -- result = send_ctrl_msg(true); -- if (result.error) -- goto fail; -+ if (!check) { -+ result = send_ctrl_msg(true); -+ if (result.error) -+ goto fail; -+ } - - switch (xlator_flags2xt(flags)) { - case XT_SIIT: -@@ -718,12 +729,13 @@ fail: - } - - struct jool_result joolnl_file_parse(struct joolnl_socket *_sk, xlator_type xt, -- char const *iname, char const *file_name, bool _force) -+ char const *iname, char const *file_name, bool _force, bool _check) - { - char *buffer; - struct jool_result result; - - sk = *_sk; -+ check = _check; - flags = xt; - force = _force ? JOOLNLHDR_FLAGS_FORCE : 0; - -diff --git a/src/usr/nl/file.h b/src/usr/nl/file.h -index 51802aaf..8b4a66dd 100644 ---- a/src/usr/nl/file.h -+++ b/src/usr/nl/file.h -@@ -9,7 +9,8 @@ struct jool_result joolnl_file_parse( - xlator_type xt, - char const *iname, - char const *file_name, -- bool force -+ bool force, -+ bool check - ); - - struct jool_result joolnl_file_get_iname( --- -2.40.1 - diff --git a/pkgs/os-specific/linux/joycond/default.nix b/pkgs/os-specific/linux/joycond/default.nix deleted file mode 100644 index 5edc227732f8..000000000000 --- a/pkgs/os-specific/linux/joycond/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libevdev, udev, acl }: - -stdenv.mkDerivation rec { - pname = "joycond"; - version = "unstable-2021-07-30"; - - src = fetchFromGitHub { - owner = "DanielOgorchock"; - repo = "joycond"; - rev = "f9a66914622514c13997c2bf7ec20fa98e9dfc1d"; - sha256 = "sha256-quw7yBHDDZk1+6uHthsfMCej7g5uP0nIAqzvI6436B8="; - }; - - nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ libevdev udev ]; - - # CMake has hardcoded install paths - installPhase = '' - mkdir -p $out/{bin,etc/{systemd/system,udev/rules.d},lib/modules-load.d} - - cp ./joycond $out/bin - cp $src/udev/{89,72}-joycond.rules $out/etc/udev/rules.d - cp $src/systemd/joycond.service $out/etc/systemd/system - cp $src/systemd/joycond.conf $out/lib/modules-load.d - - substituteInPlace $out/etc/systemd/system/joycond.service --replace \ - "ExecStart=/usr/bin/joycond" "ExecStart=$out/bin/joycond" - - substituteInPlace $out/etc/udev/rules.d/89-joycond.rules --replace \ - "/bin/setfacl" "${acl}/bin/setfacl" - ''; - - meta = with lib; { - homepage = "https://github.com/DanielOgorchock/joycond"; - description = "Userspace daemon to combine joy-cons from the hid-nintendo kernel driver"; - mainProgram = "joycond"; - license = licenses.gpl3Only; - maintainers = [ maintainers.ivar ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/jujuutils/default.nix b/pkgs/os-specific/linux/jujuutils/default.nix deleted file mode 100644 index 12e4c15e62c0..000000000000 --- a/pkgs/os-specific/linux/jujuutils/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib, stdenv, fetchurl, linuxHeaders }: - -stdenv.mkDerivation rec { - pname = "jujuutils"; - version = "0.2"; - - src = fetchurl { - url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jujuutils/jujuutils-${version}.tar.gz"; - sha256 = "1r74m7s7rs9d6y7cffi7mdap3jf96qwm1v6jcw53x5cikgmfxn4x"; - }; - - buildInputs = [ linuxHeaders ]; - - meta = { - homepage = "https://github.com/cladisch/linux-firewire-utils"; - description = "Utilities around FireWire devices connected to a Linux computer"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/kbd/default.nix b/pkgs/os-specific/linux/kbd/default.nix deleted file mode 100644 index badb02aaec5a..000000000000 --- a/pkgs/os-specific/linux/kbd/default.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ lib -, stdenv -, fetchurl -, nixosTests -, autoreconfHook -, pkg-config -, flex -, check -, pam -, coreutils -, gzip -, bzip2 -, xz -, zstd -, gitUpdater -}: - -stdenv.mkDerivation rec { - pname = "kbd"; - version = "2.6.4"; - - src = fetchurl { - url = "mirror://kernel/linux/utils/kbd/${pname}-${version}.tar.xz"; - sha256 = "sha256-UZ+NCHrsyn4KM80IS++SwGbrGXMWZmU9zHDJ1xqkCSY="; - }; - - # vlock is moved into its own output, since it depends on pam. This - # reduces closure size for most use cases. - outputs = [ "out" "vlock" "dev" ]; - - configureFlags = [ - "--enable-optional-progs" - "--enable-libkeymap" - "--disable-nls" - ]; - - patches = [ - ./search-paths.patch - ]; - - postPatch = - '' - # Renaming keymaps with name clashes, because loadkeys just picks - # the first keymap it sees. The clashing names lead to e.g. - # "loadkeys no" defaulting to a norwegian dvorak map instead of - # the much more common qwerty one. - pushd data/keymaps/i386 - mv qwertz/cz{,-qwertz}.map - mv olpc/es{,-olpc}.map - mv olpc/pt{,-olpc}.map - mv fgGIod/trf{,-fgGIod}.map - mv colemak/{en-latin9,colemak}.map - popd - - # Fix paths to decompressors. Trailing space to avoid replacing `xz` in `".xz"`. - substituteInPlace src/libkbdfile/kbdfile.c \ - --replace 'gzip ' '${gzip}/bin/gzip ' \ - --replace 'bzip2 ' '${bzip2.bin}/bin/bzip2 ' \ - --replace 'xz ' '${xz.bin}/bin/xz ' \ - --replace 'zstd ' '${zstd.bin}/bin/zstd ' - - sed -i ' - 1i prefix:=$(vlock) - 1i bindir := $(vlock)/bin' \ - src/vlock/Makefile.in \ - src/vlock/Makefile.am - ''; - - postInstall = '' - for i in $out/bin/unicode_{start,stop}; do - substituteInPlace "$i" \ - --replace /usr/bin/tty ${coreutils}/bin/tty - done - ''; - - buildInputs = [ check pam ]; - NIX_LDFLAGS = lib.optional stdenv.hostPlatform.isStatic "-laudit"; - nativeBuildInputs = [ autoreconfHook pkg-config flex ]; - - passthru.tests = { - inherit (nixosTests) keymap kbd-setfont-decompress kbd-update-search-paths-patch; - }; - passthru = { - gzip = gzip; - updateScript = gitUpdater { - # No nicer place to find latest release. - url = "https://github.com/legionus/kbd.git"; - rev-prefix = "v"; - }; - }; - - meta = with lib; { - homepage = "https://kbd-project.org/"; - description = "Linux keyboard tools and keyboard maps"; - platforms = platforms.linux; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ davidak ]; - }; -} diff --git a/pkgs/os-specific/linux/kbd/search-paths.patch b/pkgs/os-specific/linux/kbd/search-paths.patch deleted file mode 100644 index 61e8918017c2..000000000000 --- a/pkgs/os-specific/linux/kbd/search-paths.patch +++ /dev/null @@ -1,80 +0,0 @@ -Add /etc/kbd to the list of directories to search for the console -fonts, screen mappings, Unicode maps, keytable files, etc. - -Without this patch, kbd will only look inside -/nix/store/<hash>-kbd-x.x.x/share. - ---- a/src/libkeymap/analyze.l -+++ b/src/libkeymap/analyze.l -@@ -109,6 +109,9 @@ static const char *const include_dirpath1[] = { - NULL - }; - static const char *const include_dirpath3[] = { -+ "/etc/kbd/" KEYMAPDIR "/include/", -+ "/etc/kbd/" KEYMAPDIR "/i386/include/", -+ "/etc/kbd/" KEYMAPDIR "/mac/include/", - DATADIR "/" KEYMAPDIR "/include/", - DATADIR "/" KEYMAPDIR "/i386/include/", - DATADIR "/" KEYMAPDIR "/mac/include/", ---- a/src/libkfont/context.c -+++ b/src/libkfont/context.c -@@ -13,5 +13,6 @@ - /* search for the map file in these directories (with trailing /) */ - static const char *const mapdirpath[] = { -+ "/etc/kbd/" TRANSDIR "/", - DATADIR "/" TRANSDIR "/", - NULL - }; -@@ -28,5 +29,6 @@ static const char *const mapsuffixes[] = { - /* search for the font in these directories (with trailing /) */ - static const char *const fontdirpath[] = { -+ "/etc/kbd/" FONTDIR "/", - DATADIR "/" FONTDIR "/", - NULL - }; -@@ -42,5 +44,6 @@ static char const *const fontsuffixes[] = { - - static const char *const unidirpath[] = { -+ "/etc/kbd/" UNIMAPDIR "/", - DATADIR "/" UNIMAPDIR "/", - NULL - }; -@@ -55,5 +58,6 @@ static const char *const unisuffixes[] = { - /* hide partial fonts a bit - loading a single one is a bad idea */ - const char *const partfontdirpath[] = { -+ "/etc/kbd/" FONTDIR "/" PARTIALDIR "/", - DATADIR "/" FONTDIR "/" PARTIALDIR "/", - NULL - }; ---- a/src/loadkeys.c -+++ b/src/loadkeys.c -@@ -27,5 +27,6 @@ - - static const char *const dirpath1[] = { -+ "/etc/kbd/" KEYMAPDIR "/**", - DATADIR "/" KEYMAPDIR "/**", - KERNDIR "/", - NULL ---- a/src/resizecons.c -+++ b/src/resizecons.c -@@ -104,6 +104,7 @@ static void vga_set_verticaldisplayend_lowbyte(int); - - const char *const dirpath[] = { - "", -+ "/etc/kbd/" VIDEOMODEDIR "/", - DATADIR "/" VIDEOMODEDIR "/", - NULL - }; ---- a/src/setfont.c -+++ b/src/setfont.c -@@ -48,8 +48,8 @@ usage(void) - " -v Be verbose.\n" - " -C <cons> Indicate console device to be used.\n" - " -V Print version and exit.\n" -- "Files are loaded from the current directory or %s/*/.\n"), -- DATADIR); -+ "Files are loaded from the current directory or %s/*/ or %s/*/.\n"), -+ DATADIR, "/etc/kbd"); - exit(EX_USAGE); - } - diff --git a/pkgs/os-specific/linux/kbdlight/default.nix b/pkgs/os-specific/linux/kbdlight/default.nix deleted file mode 100644 index b41e4cd4da1c..000000000000 --- a/pkgs/os-specific/linux/kbdlight/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "kbdlight"; - version = "1.3"; - - src = fetchFromGitHub { - owner = "hobarrera"; - repo = "kbdlight"; - rev = "v${version}"; - sha256 = "1f08aid1xrbl4sb5447gkip9lnvkia1c4ap0v8zih5s9w8v72bny"; - }; - - preConfigure = '' - substituteInPlace Makefile \ - --replace /usr/local $out \ - --replace 4755 0755 - ''; - - meta = with lib; { - homepage = "https://github.com/hobarrera/kbdlight"; - description = "A very simple application that changes MacBooks' keyboard backlight level"; - mainProgram = "kbdlight"; - license = licenses.isc; - maintainers = [ maintainers.womfoo ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix deleted file mode 100644 index fc2f8ddbd143..000000000000 --- a/pkgs/os-specific/linux/kernel-headers/default.nix +++ /dev/null @@ -1,125 +0,0 @@ -{ stdenvNoCC, lib, buildPackages, fetchurl, perl, elf-header -, bison, flex, rsync -, writeTextFile -}: - -let - - # As part of building a hostPlatform=mips kernel, Linux creates and runs a - # tiny utility `arch/mips/boot/tools/relocs_main.c` for the buildPlatform. - # This utility references a glibc-specific header `byteswap.h`. There is a - # compatibility header in gnulib for most BSDs, but not for Darwin, so we - # synthesize one here. - darwin-endian-h = writeTextFile { - name = "endian-h"; - text = '' - #include <byteswap.h> - ''; - destination = "/include/endian.h"; - }; - darwin-byteswap-h = writeTextFile { - name = "byteswap-h"; - text = '' - #pragma once - #include <libkern/OSByteOrder.h> - #define bswap_16 OSSwapInt16 - #define bswap_32 OSSwapInt32 - #define bswap_64 OSSwapInt64 - ''; - destination = "/include/byteswap.h"; - }; - - makeLinuxHeaders = { src, version, patches ? [] }: stdenvNoCC.mkDerivation { - inherit src; - - pname = "linux-headers"; - inherit version; - - ARCH = stdenvNoCC.hostPlatform.linuxArch; - - strictDeps = true; - enableParallelBuilding = true; - - # It may look odd that we use `stdenvNoCC`, and yet explicit depend on a cc. - # We do this so we have a build->build, not build->host, C compiler. - depsBuildBuild = [ buildPackages.stdenv.cc ]; - # `elf-header` is null when libc provides `elf.h`. - nativeBuildInputs = [ - perl elf-header - ] ++ lib.optionals stdenvNoCC.hostPlatform.isAndroid [ - bison flex rsync - ] ++ lib.optionals (stdenvNoCC.buildPlatform.isDarwin && - stdenvNoCC.hostPlatform.isMips) [ - darwin-endian-h - darwin-byteswap-h - ]; - - extraIncludeDirs = lib.optionals (with stdenvNoCC.hostPlatform; isPower && is32bit && isBigEndian) ["ppc"]; - - inherit patches; - - hardeningDisable = lib.optional stdenvNoCC.buildPlatform.isDarwin "format"; - - makeFlags = [ - "SHELL=bash" - # Avoid use of runtime build->host compilers for checks. These - # checks only cared to work around bugs in very old compilers, so - # these changes should be safe. - "cc-version:=9999" - "cc-fullversion:=999999" - # `$(..)` expanded by make alone - "HOSTCC:=$(CC_FOR_BUILD)" - "HOSTCXX:=$(CXX_FOR_BUILD)" - ]; - - # Skip clean on darwin, case-sensitivity issues. - buildPhase = lib.optionalString (!stdenvNoCC.buildPlatform.isDarwin) '' - make mrproper $makeFlags - '' + (if stdenvNoCC.hostPlatform.isAndroid then '' - make defconfig - make headers_install - '' else '' - make headers $makeFlags - ''); - - checkPhase = '' - make headers_check $makeFlags - ''; - - # The following command requires rsync: - # make headers_install INSTALL_HDR_PATH=$out $makeFlags - # but rsync depends on popt which does not compile on aarch64 without - # updateAutotoolsGnuConfigScriptsHook which is not enabled in stage2, - # so we replicate it with cp. This also reduces bootstrap closure size. - installPhase = '' - mkdir -p $out - cp -r usr/include $out - find $out -type f ! -name '*.h' -delete - '' - # Some builds (e.g. KVM) want a kernel.release. - + '' - mkdir -p $out/include/config - echo "${version}-default" > $out/include/config/kernel.release - ''; - - meta = with lib; { - description = "Header files and scripts for Linux kernel"; - license = licenses.gpl2; - platforms = platforms.linux; - }; - }; -in { - inherit makeLinuxHeaders; - - linuxHeaders = let version = "6.7"; in - makeLinuxHeaders { - inherit version; - src = fetchurl { - url = "mirror://kernel/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz"; - hash = "sha256-7zEUSiV20IDYwxaY6D7J9mv5fGd/oqrw1bu58zRbEGk="; - }; - patches = [ - ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms - ]; - }; -} diff --git a/pkgs/os-specific/linux/kernel-headers/no-relocs.patch b/pkgs/os-specific/linux/kernel-headers/no-relocs.patch deleted file mode 100644 index 32c88224b867..000000000000 --- a/pkgs/os-specific/linux/kernel-headers/no-relocs.patch +++ /dev/null @@ -1,7 +0,0 @@ ---- a/arch/x86/Makefile -+++ b/arch/x86/Makefile -@@ -231,3 +231,3 @@ endif - archscripts: scripts_basic -- $(Q)$(MAKE) $(build)=arch/x86/tools relocs -+ $(Q)$(MAKE) $(build)=arch/x86/tools - diff --git a/pkgs/os-specific/linux/kernel/README.md b/pkgs/os-specific/linux/kernel/README.md deleted file mode 100644 index 84fb05fc07a2..000000000000 --- a/pkgs/os-specific/linux/kernel/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# How to add a new (major) version of the Linux kernel to Nixpkgs: - -1. Copy the old Nix expression (e.g., `linux-2.6.21.nix`) to the new one (e.g., `linux-2.6.22.nix`) and update it. - -2. Add the new kernel to the `kernels` attribute set in [`linux-kernels.nix`](./linux-kernels.nix) (e.g., create an attribute `kernel_2_6_22`). - -3. Update the kernel configuration: - - 1. While in the Nixpkgs repository, enter the development shell for that kernel: - - ```console - $ nix-shell -A linuxKernel.kernels.linux_2_6_22 - ``` - - 2. Unpack the kernel: - - ```console - [nix-shell]$ pushd $(mktemp -d) - [nix-shell]$ unpackPhase - ``` - - 3. For each supported platform (`i686`, `x86_64`, `uml`) do the following: - - 1. Make a copy from the old config (e.g., `config-2.6.21-i686-smp`) to the new one (e.g., `config-2.6.22-i686-smp`). - - 2. Copy the config file for this platform (e.g., `config-2.6.22-i686-smp`) to `.config` in the unpacked kernel source tree. - - 3. Run `make oldconfig ARCH={i386,x86_64,um}` and answer all questions. (For the uml configuration, also add `SHELL=bash`.) Make sure to keep the configuration consistent between platforms (i.e., don’t enable some feature on `i686` and disable it on `x86_64`). - - 4. If needed, you can also run `make menuconfig`: - - ```ShellSession - $ nix-shell -p ncurses pkg-config - $ make menuconfig ARCH=arch - ``` - - 5. Copy `.config` over the new config file (e.g., `config-2.6.22-i686-smp`). - -4. Test building the kernel: - -```ShellSession -nix-build -A linuxKernel.kernels.kernel_2_6_22 -``` - -If it compiles, ship it! For extra credit, try booting NixOS with it. - -5. It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the `linuxPackagesFor` function in `linux-kernels.nix` (such as the NVIDIA drivers, AUFS, etc.). If the updated packages aren’t backwards compatible with older kernels, you may need to keep the older versions around. diff --git a/pkgs/os-specific/linux/kernel/bridge-stp-helper.patch b/pkgs/os-specific/linux/kernel/bridge-stp-helper.patch deleted file mode 100644 index 70d0f944c2a0..000000000000 --- a/pkgs/os-specific/linux/kernel/bridge-stp-helper.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h -index aea3d13..8fcbf81 100644 ---- a/net/bridge/br_private.h -+++ b/net/bridge/br_private.h -@@ -39,7 +39,7 @@ - #define BR_GROUPFWD_8021AD 0xB801u - - /* Path to usermode spanning tree program */ --#define BR_STP_PROG "/sbin/bridge-stp" -+#define BR_STP_PROG "/run/current-system/sw/bin/bridge-stp" - - typedef struct bridge_id bridge_id; - typedef struct mac_addr mac_addr; diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix deleted file mode 100644 index c213bd4e6ffe..000000000000 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ /dev/null @@ -1,1275 +0,0 @@ -# WARNING/NOTE: whenever you want to add an option here you need to either -# * mark it as an optional one with `option`, -# * or make sure it works for all the versions in nixpkgs, -# * or check for which kernel versions it will work (using kernel -# changelog, google or whatever) and mark it with `whenOlder` or -# `whenAtLeast`. -# Then do test your change by building all the kernels (or at least -# their configs) in Nixpkgs or else you will guarantee lots and lots -# of pain to users trying to switch to an older kernel because of some -# hardware problems with a new one. - -# Configuration -{ lib, stdenv, version - -, features ? {} -}: - -with lib; -with lib.kernel; -with (lib.kernel.whenHelpers version); - -let - - - # configuration items have to be part of a subattrs - flattenKConf = nested: mapAttrs (name: values: if length values == 1 then head values else throw "duplicate kernel configuration option: ${name}") (zipAttrs (attrValues nested)); - - whenPlatformHasEBPFJit = - mkIf (stdenv.hostPlatform.isAarch32 || - stdenv.hostPlatform.isAarch64 || - stdenv.hostPlatform.isx86_64 || - (stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) || - (stdenv.hostPlatform.isMips && stdenv.hostPlatform.is64bit)); - - options = { - - debug = { - # Necessary for BTF - DEBUG_INFO = mkMerge [ - (whenOlder "5.2" (if (features.debug or false) then yes else no)) - (whenBetween "5.2" "5.18" yes) - ]; - DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT = whenAtLeast "5.18" yes; - # Reduced debug info conflict with BTF and have been enabled in - # aarch64 defconfig since 5.13 - DEBUG_INFO_REDUCED = whenAtLeast "5.13" (option no); - DEBUG_INFO_BTF = whenAtLeast "5.2" (option yes); - # Allow loading modules with mismatched BTFs - # FIXME: figure out how to actually make BTFs reproducible instead - # See https://github.com/NixOS/nixpkgs/pull/181456 for details. - MODULE_ALLOW_BTF_MISMATCH = whenAtLeast "5.18" (option yes); - BPF_LSM = whenAtLeast "5.7" (option yes); - DEBUG_KERNEL = yes; - DEBUG_DEVRES = no; - DYNAMIC_DEBUG = yes; - DEBUG_STACK_USAGE = no; - RCU_TORTURE_TEST = no; - SCHEDSTATS = yes; - DETECT_HUNG_TASK = yes; - CRASH_DUMP = option no; - # Easier debugging of NFS issues. - SUNRPC_DEBUG = yes; - # Provide access to tunables like sched_migration_cost_ns - SCHED_DEBUG = yes; - - # Count IRQ and steal CPU time separately - IRQ_TIME_ACCOUNTING = yes; - PARAVIRT_TIME_ACCOUNTING = yes; - - # Enable CPU lockup detection - LOCKUP_DETECTOR = yes; - SOFTLOCKUP_DETECTOR = yes; - HARDLOCKUP_DETECTOR = yes; - - # Enable streaming logs to a remote device over a network - NETCONSOLE = module; - NETCONSOLE_DYNAMIC = yes; - - # Export known printks in debugfs - PRINTK_INDEX = whenAtLeast "5.15" yes; - }; - - power-management = { - CPU_FREQ_DEFAULT_GOV_SCHEDUTIL = yes; - CPU_FREQ_GOV_SCHEDUTIL = yes; - PM_ADVANCED_DEBUG = yes; - PM_WAKELOCKS = yes; - POWERCAP = yes; - # ACPI Firmware Performance Data Table Support - ACPI_FPDT = whenAtLeast "5.12" (option yes); - # ACPI Heterogeneous Memory Attribute Table Support - ACPI_HMAT = whenAtLeast "5.2" (option yes); - # ACPI Platform Error Interface - ACPI_APEI = (option yes); - # APEI Generic Hardware Error Source - ACPI_APEI_GHES = (option yes); - - # Enable lazy RCUs for power savings: - # https://lore.kernel.org/rcu/20221019225138.GA2499943@paulmck-ThinkPad-P17-Gen-1/ - # RCU_LAZY depends on RCU_NOCB_CPU depends on NO_HZ_FULL - # depends on HAVE_VIRT_CPU_ACCOUNTING_GEN depends on 64BIT, - # so we can't force-enable this - RCU_LAZY = whenAtLeast "6.2" (option yes); - - # Auto suspend Bluetooth devices at idle - BT_HCIBTUSB_AUTOSUSPEND = yes; - - # Expose cpufreq stats in sysfs - CPU_FREQ_STAT = yes; - - # Enable CPU energy model for scheduling - ENERGY_MODEL = whenAtLeast "5.0" yes; - - # Enable thermal interface netlink API - THERMAL_NETLINK = whenAtLeast "5.9" yes; - - # Prefer power-efficient workqueue implementation to per-CPU workqueues, - # which is slightly slower, but improves battery life. - # This is opt-in per workqueue, and can be disabled globally with a kernel command line option. - WQ_POWER_EFFICIENT_DEFAULT = yes; - - # Default SATA link power management to "medium with device initiated PM" - # for some extra power savings. - SATA_MOBILE_LPM_POLICY = whenAtLeast "5.18" (freeform "3"); - - # GPIO power management - POWER_RESET_GPIO = option yes; - POWER_RESET_GPIO_RESTART = option yes; - - # Enable Pulse-Width-Modulation support, commonly used for fan and backlight. - PWM = yes; - } // optionalAttrs (stdenv.hostPlatform.isx86) { - INTEL_IDLE = yes; - INTEL_RAPL = whenAtLeast "5.3" module; - X86_INTEL_LPSS = yes; - X86_INTEL_PSTATE = yes; - X86_AMD_PSTATE = whenAtLeast "5.17" yes; - # Intel DPTF (Dynamic Platform and Thermal Framework) Support - ACPI_DPTF = whenAtLeast "5.10" yes; - - # Required to bring up some Bay Trail devices properly - I2C = yes; - I2C_DESIGNWARE_PLATFORM = yes; - PMIC_OPREGION = whenAtLeast "5.10" yes; - INTEL_SOC_PMIC = whenAtLeast "5.10" yes; - BYTCRC_PMIC_OPREGION = whenAtLeast "5.10" yes; - CHTCRC_PMIC_OPREGION = whenAtLeast "5.10" yes; - XPOWER_PMIC_OPREGION = whenAtLeast "5.10" yes; - BXT_WC_PMIC_OPREGION = whenAtLeast "5.10" yes; - INTEL_SOC_PMIC_CHTWC = whenAtLeast "5.10" yes; - CHT_WC_PMIC_OPREGION = whenAtLeast "5.10" yes; - INTEL_SOC_PMIC_CHTDC_TI = whenAtLeast "5.10" yes; - CHT_DC_TI_PMIC_OPREGION = whenAtLeast "5.10" yes; - MFD_TPS68470 = whenBetween "5.10" "5.13" yes; - TPS68470_PMIC_OPREGION = whenAtLeast "5.10" yes; - - # Enable Intel thermal hardware feedback - INTEL_HFI_THERMAL = whenAtLeast "5.18" yes; - }; - - external-firmware = { - # Support drivers that need external firmware. - STANDALONE = no; - }; - - proc-config-gz = { - # Make /proc/config.gz available - IKCONFIG = yes; - IKCONFIG_PROC = yes; - }; - - optimization = { - X86_GENERIC = mkIf (stdenv.hostPlatform.system == "i686-linux") yes; - # Optimize with -O2, not -Os - CC_OPTIMIZE_FOR_SIZE = no; - }; - - memory = { - DAMON = whenAtLeast "5.15" yes; - DAMON_VADDR = whenAtLeast "5.15" yes; - DAMON_PADDR = whenAtLeast "5.16" yes; - DAMON_SYSFS = whenAtLeast "5.18" yes; - DAMON_DBGFS = whenBetween "5.15" "6.9" yes; - DAMON_RECLAIM = whenAtLeast "5.16" yes; - DAMON_LRU_SORT = whenAtLeast "6.0" yes; - # Support recovering from memory failures on systems with ECC and MCA recovery. - MEMORY_FAILURE = yes; - - # Collect ECC errors and retire pages that fail too often - RAS_CEC = yes; - } // optionalAttrs (stdenv.is32bit) { - # Enable access to the full memory range (aka PAE) on 32-bit architectures - # This check isn't super accurate but it's close enough - HIGHMEM = option yes; - BOUNCE = option yes; - }; - - memtest = { - MEMTEST = yes; - }; - - # Include the CFQ I/O scheduler in the kernel, rather than as a - # module, so that the initrd gets a good I/O scheduler. - scheduler = { - IOSCHED_CFQ = whenOlder "5.0" yes; # Removed in 5.0-RC1 - BLK_CGROUP = yes; # required by CFQ" - BLK_CGROUP_IOLATENCY = yes; - BLK_CGROUP_IOCOST = whenAtLeast "5.4" yes; - IOSCHED_DEADLINE = whenOlder "5.0" yes; # Removed in 5.0-RC1 - MQ_IOSCHED_DEADLINE = yes; - BFQ_GROUP_IOSCHED = yes; - MQ_IOSCHED_KYBER = yes; - IOSCHED_BFQ = module; - # Enable CPU utilization clamping for RT tasks - UCLAMP_TASK = whenAtLeast "5.3" yes; - UCLAMP_TASK_GROUP = whenAtLeast "5.4" yes; - }; - - - timer = { - # Enable Full Dynticks System. - # NO_HZ_FULL depends on HAVE_VIRT_CPU_ACCOUNTING_GEN depends on 64BIT - NO_HZ_FULL = mkIf stdenv.is64bit yes; - }; - - # Enable NUMA. - numa = { - NUMA = option yes; - NUMA_BALANCING = option yes; - }; - - networking = { - NET = yes; - IP_ADVANCED_ROUTER = yes; - IP_PNP = no; - IP_ROUTE_MULTIPATH = yes; - IP_VS_PROTO_TCP = yes; - IP_VS_PROTO_UDP = yes; - IP_VS_PROTO_ESP = yes; - IP_VS_PROTO_AH = yes; - IP_VS_IPV6 = yes; - IP_DCCP_CCID3 = no; # experimental - CLS_U32_PERF = yes; - CLS_U32_MARK = yes; - BPF_JIT = whenPlatformHasEBPFJit yes; - BPF_JIT_ALWAYS_ON = whenPlatformHasEBPFJit no; # whenPlatformHasEBPFJit yes; # see https://github.com/NixOS/nixpkgs/issues/79304 - HAVE_EBPF_JIT = whenPlatformHasEBPFJit yes; - BPF_STREAM_PARSER = yes; - XDP_SOCKETS = yes; - XDP_SOCKETS_DIAG = whenAtLeast "5.1" yes; - WAN = yes; - TCP_CONG_ADVANCED = yes; - TCP_CONG_CUBIC = yes; # This is the default congestion control algorithm since 2.6.19 - # Required by systemd per-cgroup firewalling - CGROUP_BPF = option yes; - CGROUP_NET_PRIO = yes; # Required by systemd - IP_ROUTE_VERBOSE = yes; - IP_MROUTE_MULTIPLE_TABLES = yes; - IP_MULTICAST = yes; - IP_MULTIPLE_TABLES = yes; - IPV6 = yes; - IPV6_ROUTER_PREF = yes; - IPV6_ROUTE_INFO = yes; - IPV6_OPTIMISTIC_DAD = yes; - IPV6_MULTIPLE_TABLES = yes; - IPV6_SUBTREES = yes; - IPV6_MROUTE = yes; - IPV6_MROUTE_MULTIPLE_TABLES = yes; - IPV6_PIMSM_V2 = yes; - IPV6_FOU_TUNNEL = module; - IPV6_SEG6_LWTUNNEL = yes; - IPV6_SEG6_HMAC = yes; - IPV6_SEG6_BPF = yes; - NET_CLS_BPF = module; - NET_ACT_BPF = module; - NET_SCHED = yes; - L2TP_V3 = yes; - L2TP_IP = module; - L2TP_ETH = module; - BRIDGE_VLAN_FILTERING = yes; - BONDING = module; - NET_L3_MASTER_DEV = option yes; - NET_FOU_IP_TUNNELS = option yes; - IP_NF_TARGET_REDIRECT = module; - - PPP_MULTILINK = yes; # PPP multilink support - PPP_FILTER = yes; - - # needed for iwd WPS support (wpa_supplicant replacement) - KEY_DH_OPERATIONS = yes; - - # needed for nftables - # Networking Options - NETFILTER = yes; - NETFILTER_ADVANCED = yes; - # Core Netfilter Configuration - NF_CONNTRACK_ZONES = yes; - NF_CONNTRACK_EVENTS = yes; - NF_CONNTRACK_TIMEOUT = yes; - NF_CONNTRACK_TIMESTAMP = yes; - NETFILTER_NETLINK_GLUE_CT = yes; - NF_TABLES_INET = yes; - NF_TABLES_NETDEV = yes; - NFT_REJECT_NETDEV = whenAtLeast "5.11" module; - - # IP: Netfilter Configuration - NF_TABLES_IPV4 = yes; - NF_TABLES_ARP = yes; - # IPv6: Netfilter Configuration - NF_TABLES_IPV6 = yes; - # Bridge Netfilter Configuration - NF_TABLES_BRIDGE = mkMerge [ (whenOlder "5.3" yes) - (whenAtLeast "5.3" module) ]; - # Expose some debug info - NF_CONNTRACK_PROCFS = yes; - NF_FLOW_TABLE_PROCFS = whenAtLeast "6.0" yes; - - # needed for `dropwatch` - # Builtin-only since https://github.com/torvalds/linux/commit/f4b6bcc7002f0e3a3428bac33cf1945abff95450 - NET_DROP_MONITOR = yes; - - # needed for ss - # Use a lower priority to allow these options to be overridden in hardened/config.nix - INET_DIAG = mkDefault module; - INET_TCP_DIAG = mkDefault module; - INET_UDP_DIAG = mkDefault module; - INET_RAW_DIAG = mkDefault module; - INET_DIAG_DESTROY = mkDefault yes; - - # enable multipath-tcp - MPTCP = whenAtLeast "5.6" yes; - MPTCP_IPV6 = whenAtLeast "5.6" yes; - INET_MPTCP_DIAG = whenAtLeast "5.9" (mkDefault module); - - # Kernel TLS - TLS = module; - TLS_DEVICE = yes; - - # infiniband - INFINIBAND = module; - INFINIBAND_IPOIB = module; - INFINIBAND_IPOIB_CM = yes; - - # Enable debugfs for wireless drivers - CFG80211_DEBUGFS = yes; - MAC80211_DEBUGFS = yes; - } // optionalAttrs (stdenv.hostPlatform.system == "aarch64-linux") { - # Not enabled by default, hides modules behind it - NET_VENDOR_MEDIATEK = yes; - # Enable SoC interface for MT7915 module, required for MT798X. - MT7986_WMAC = whenBetween "5.18" "6.6" yes; - MT798X_WMAC = whenAtLeast "6.6" yes; - }; - - wireless = { - CFG80211_WEXT = option yes; # Without it, ipw2200 drivers don't build - IPW2100_MONITOR = option yes; # support promiscuous mode - IPW2200_MONITOR = option yes; # support promiscuous mode - HOSTAP_FIRMWARE = whenOlder "6.8" (option yes); # Support downloading firmware images with Host AP driver - HOSTAP_FIRMWARE_NVRAM = whenOlder "6.8" (option yes); - MAC80211_MESH = option yes; # Enable 802.11s (mesh networking) support - ATH9K_PCI = option yes; # Detect Atheros AR9xxx cards on PCI(e) bus - ATH9K_AHB = option yes; # Ditto, AHB bus - # The description of this option makes it sound dangerous or even illegal - # But OpenWRT enables it by default: https://github.com/openwrt/openwrt/blob/master/package/kernel/mac80211/Makefile#L55 - # At the time of writing (25-06-2023): this is only used in a "correct" way by ath drivers for initiating DFS radiation - # for "certified devices" - EXPERT = option yes; # this is needed for offering the certification option - RFKILL_INPUT = option yes; # counteract an undesired effect of setting EXPERT - CFG80211_CERTIFICATION_ONUS = option yes; - # DFS: "Dynamic Frequency Selection" is a spectrum-sharing mechanism that allows - # you to use certain interesting frequency when your local regulatory domain mandates it. - # ATH drivers hides the feature behind this option and makes hostapd works with DFS frequencies. - # OpenWRT enables it too: https://github.com/openwrt/openwrt/blob/master/package/kernel/mac80211/ath.mk#L42 - ATH9K_DFS_CERTIFIED = option yes; - ATH10K_DFS_CERTIFIED = option yes; - B43_PHY_HT = option yes; - BCMA_HOST_PCI = option yes; - RTW88 = whenAtLeast "5.2" module; - RTW88_8822BE = mkMerge [ (whenBetween "5.2" "5.8" yes) (whenAtLeast "5.8" module) ]; - RTW88_8822CE = mkMerge [ (whenBetween "5.2" "5.8" yes) (whenAtLeast "5.8" module) ]; - }; - - fb = { - FB = yes; - FB_EFI = yes; - FB_NVIDIA_I2C = yes; # Enable DDC Support - FB_RIVA_I2C = yes; - FB_ATY_CT = yes; # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support - FB_ATY_GX = yes; # Mach64 GX support - FB_SAVAGE_I2C = yes; - FB_SAVAGE_ACCEL = yes; - FB_SIS_300 = yes; - FB_SIS_315 = yes; - FB_3DFX_ACCEL = yes; - FB_VESA = yes; - FRAMEBUFFER_CONSOLE = yes; - FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER = yes; - FRAMEBUFFER_CONSOLE_ROTATION = yes; - FRAMEBUFFER_CONSOLE_DETECT_PRIMARY = yes; - FB_GEODE = mkIf (stdenv.hostPlatform.system == "i686-linux") yes; - # Use simplefb on older kernels where we don't have simpledrm (enabled below) - FB_SIMPLE = whenOlder "5.15" yes; - DRM_FBDEV_EMULATION = yes; - }; - - fonts = { - FONTS = yes; - # Default fonts enabled if FONTS is not set - FONT_8x8 = yes; - FONT_8x16 = yes; - # High DPI font - FONT_TER16x32 = whenAtLeast "5.0" yes; - }; - - video = let - whenHasDevicePrivate = mkIf (!stdenv.isx86_32 && versionAtLeast version "5.1"); - in { - # compile in DRM so simpledrm can load before initrd if necessary - AGP = yes; - DRM = yes; - - DRM_LEGACY = whenOlder "6.8" no; - - NOUVEAU_LEGACY_CTX_SUPPORT = whenBetween "5.2" "6.3" no; - - # Enable simpledrm and use it for generic framebuffer - # Technically added in 5.14, but adding more complex configuration is not worth it - DRM_SIMPLEDRM = whenAtLeast "5.15" yes; - SYSFB_SIMPLEFB = whenAtLeast "5.15" yes; - - # Allow specifying custom EDID on the kernel command line - DRM_LOAD_EDID_FIRMWARE = yes; - VGA_SWITCHEROO = yes; # Hybrid graphics support - DRM_GMA500 = whenAtLeast "5.12" module; - DRM_GMA600 = whenOlder "5.13" yes; - DRM_GMA3600 = whenOlder "5.12" yes; - DRM_VMWGFX_FBCON = whenOlder "6.2" yes; - # (experimental) amdgpu support for verde and newer chipsets - DRM_AMDGPU_SI = yes; - # (stable) amdgpu support for bonaire and newer chipsets - DRM_AMDGPU_CIK = yes; - # Allow device firmware updates - DRM_DP_AUX_CHARDEV = yes; - # amdgpu display core (DC) support - DRM_AMD_DC_DCN1_0 = whenOlder "5.6" yes; - DRM_AMD_DC_DCN2_0 = whenBetween "5.3" "5.6" yes; - DRM_AMD_DC_DCN2_1 = whenBetween "5.4" "5.6" yes; - DRM_AMD_DC_DCN3_0 = whenBetween "5.9" "5.11" yes; - DRM_AMD_DC_DCN = whenBetween "5.11" "6.4" yes; - DRM_AMD_DC_FP = whenAtLeast "6.4" yes; - DRM_AMD_DC_HDCP = whenBetween "5.5" "6.4" yes; - DRM_AMD_DC_SI = whenAtLeast "5.10" yes; - - # Enable AMD Audio Coprocessor support for HDMI outputs - DRM_AMD_ACP = yes; - - # Enable AMD secure display when available - DRM_AMD_SECURE_DISPLAY = whenAtLeast "5.13" yes; - - # Enable new firmware (and by extension NVK) for compatible hardware on Nouveau - DRM_NOUVEAU_GSP_DEFAULT = whenAtLeast "6.8" yes; - - # Enable Nouveau shared virtual memory (used by OpenCL) - DEVICE_PRIVATE = whenHasDevicePrivate yes; - DRM_NOUVEAU_SVM = whenHasDevicePrivate yes; - - # Enable HDMI-CEC receiver support - RC_CORE = yes; - MEDIA_CEC_RC = whenAtLeast "5.10" yes; - - # Enable CEC over DisplayPort - DRM_DP_CEC = yes; - } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") { - # Intel GVT-g graphics virtualization supports 64-bit only - DRM_I915_GVT = yes; - DRM_I915_GVT_KVMGT = module; - # Enable Hyper-V Synthetic DRM Driver - DRM_HYPERV = whenAtLeast "5.14" module; - } // optionalAttrs (stdenv.hostPlatform.system == "aarch64-linux") { - # enable HDMI-CEC on RPi boards - DRM_VC4_HDMI_CEC = yes; - }; - - # Enables Rust support in the Linux kernel. This is currently not enabled by default, because it occasionally requires - # patching the Linux kernel for the specific Rust toolchain in nixpkgs. These patches usually take a bit - # of time to appear and this would hold up Linux kernel and Rust toolchain updates. - # - # Once Rust in the kernel has more users, we can reconsider enabling it by default. - rust = optionalAttrs ((features.rust or false) && versionAtLeast version "6.7") { - RUST = yes; - GCC_PLUGINS = no; - }; - - sound = { - SND_DYNAMIC_MINORS = yes; - SND_AC97_POWER_SAVE = yes; # AC97 Power-Saving Mode - # 10s for the idle timeout, Fedora does 1, Arch does 10. - # The kernel says we should do 10. - # Read: https://docs.kernel.org/sound/designs/powersave.html - SND_AC97_POWER_SAVE_DEFAULT = freeform "10"; - SND_HDA_POWER_SAVE_DEFAULT = freeform "10"; - SND_HDA_INPUT_BEEP = yes; # Support digital beep via input layer - SND_HDA_RECONFIG = yes; # Support reconfiguration of jack functions - # Support configuring jack functions via fw mechanism at boot - SND_HDA_PATCH_LOADER = yes; - SND_HDA_CODEC_CA0132_DSP = whenOlder "5.7" yes; # Enable DSP firmware loading on Creative Soundblaster Z/Zx/ZxR/Recon - SND_OSSEMUL = yes; - SND_USB_CAIAQ_INPUT = yes; - SND_USB_AUDIO_MIDI_V2 = whenAtLeast "6.5" yes; - # Enable Sound Open Firmware support - } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" && - versionAtLeast version "5.5") { - SND_SOC_INTEL_SOUNDWIRE_SOF_MACH = whenAtLeast "5.10" module; - SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES = whenAtLeast "5.10" yes; # dep of SOF_MACH - SND_SOC_SOF_INTEL_SOUNDWIRE_LINK = whenBetween "5.10" "5.11" yes; # dep of SOF_MACH - SND_SOC_SOF_TOPLEVEL = yes; - SND_SOC_SOF_ACPI = module; - SND_SOC_SOF_PCI = module; - SND_SOC_SOF_APOLLOLAKE = whenAtLeast "5.12" module; - SND_SOC_SOF_APOLLOLAKE_SUPPORT = whenOlder "5.12" yes; - SND_SOC_SOF_CANNONLAKE = whenAtLeast "5.12" module; - SND_SOC_SOF_CANNONLAKE_SUPPORT = whenOlder "5.12" yes; - SND_SOC_SOF_COFFEELAKE = whenAtLeast "5.12" module; - SND_SOC_SOF_COFFEELAKE_SUPPORT = whenOlder "5.12" yes; - SND_SOC_SOF_COMETLAKE = whenAtLeast "5.12" module; - SND_SOC_SOF_COMETLAKE_H_SUPPORT = whenOlder "5.8" yes; - SND_SOC_SOF_COMETLAKE_LP_SUPPORT = whenOlder "5.12" yes; - SND_SOC_SOF_ELKHARTLAKE = whenAtLeast "5.12" module; - SND_SOC_SOF_ELKHARTLAKE_SUPPORT = whenOlder "5.12" yes; - SND_SOC_SOF_GEMINILAKE = whenAtLeast "5.12" module; - SND_SOC_SOF_GEMINILAKE_SUPPORT = whenOlder "5.12" yes; - SND_SOC_SOF_HDA_AUDIO_CODEC = yes; - SND_SOC_SOF_HDA_COMMON_HDMI_CODEC = whenOlder "5.7" yes; - SND_SOC_SOF_HDA_LINK = yes; - SND_SOC_SOF_ICELAKE = whenAtLeast "5.12" module; - SND_SOC_SOF_ICELAKE_SUPPORT = whenOlder "5.12" yes; - SND_SOC_SOF_INTEL_TOPLEVEL = yes; - SND_SOC_SOF_JASPERLAKE = whenAtLeast "5.12" module; - SND_SOC_SOF_JASPERLAKE_SUPPORT = whenOlder "5.12" yes; - SND_SOC_SOF_MERRIFIELD = whenAtLeast "5.12" module; - SND_SOC_SOF_MERRIFIELD_SUPPORT = whenOlder "5.12" yes; - SND_SOC_SOF_TIGERLAKE = whenAtLeast "5.12" module; - SND_SOC_SOF_TIGERLAKE_SUPPORT = whenOlder "5.12" yes; - }; - - usb = { - USB = yes; # compile USB core into kernel, so we can use USB_SERIAL_CONSOLE before modules - - USB_EHCI_ROOT_HUB_TT = yes; # Root Hub Transaction Translators - USB_EHCI_TT_NEWSCHED = yes; # Improved transaction translator scheduling - USB_HIDDEV = yes; # USB Raw HID Devices (like monitor controls and Uninterruptable Power Supplies) - - # default to dual role mode - USB_DWC2_DUAL_ROLE = yes; - USB_DWC3_DUAL_ROLE = yes; - }; - - usb-serial = { - USB_SERIAL = yes; - USB_SERIAL_GENERIC = yes; # USB Generic Serial Driver - USB_SERIAL_CONSOLE = yes; # Allow using USB serial adapter as console - U_SERIAL_CONSOLE = whenAtLeast "5.10" yes; # Allow using USB gadget as console - }; - - # Filesystem options - in particular, enable extended attributes and - # ACLs for all filesystems that support them. - filesystem = { - FANOTIFY = yes; - FANOTIFY_ACCESS_PERMISSIONS = yes; - - TMPFS = yes; - TMPFS_POSIX_ACL = yes; - FS_ENCRYPTION = if (versionAtLeast version "5.1") then yes else option module; - - EXT2_FS_XATTR = yes; - EXT2_FS_POSIX_ACL = yes; - EXT2_FS_SECURITY = yes; - - EXT3_FS_POSIX_ACL = yes; - EXT3_FS_SECURITY = yes; - - EXT4_FS_POSIX_ACL = yes; - EXT4_FS_SECURITY = yes; - EXT4_ENCRYPTION = whenOlder "5.1" yes; - - NTFS_FS = whenBetween "5.15" "6.9" no; - NTFS3_LZX_XPRESS = whenAtLeast "5.15" yes; - NTFS3_FS_POSIX_ACL = whenAtLeast "5.15" yes; - - REISERFS_FS_XATTR = option yes; - REISERFS_FS_POSIX_ACL = option yes; - REISERFS_FS_SECURITY = option yes; - - JFS_POSIX_ACL = option yes; - JFS_SECURITY = option yes; - - XFS_QUOTA = option yes; - XFS_POSIX_ACL = option yes; - XFS_RT = option yes; # XFS Realtime subvolume support - XFS_ONLINE_SCRUB = option yes; - - OCFS2_DEBUG_MASKLOG = option no; - - BTRFS_FS_POSIX_ACL = yes; - - BCACHEFS_QUOTA = whenAtLeast "6.7" (option yes); - BCACHEFS_POSIX_ACL = whenAtLeast "6.7" (option yes); - - UBIFS_FS_ADVANCED_COMPR = option yes; - - F2FS_FS = module; - F2FS_FS_SECURITY = option yes; - F2FS_FS_ENCRYPTION = whenOlder "5.1" yes; - F2FS_FS_COMPRESSION = whenAtLeast "5.6" yes; - UDF_FS = module; - - NFSD_V2_ACL = whenOlder "5.15" yes; - NFSD_V3 = whenOlder "5.15" yes; - NFSD_V3_ACL = yes; - NFSD_V4 = yes; - NFSD_V4_SECURITY_LABEL = yes; - - NFS_FSCACHE = yes; - NFS_SWAP = yes; - NFS_V3_ACL = yes; - NFS_V4_1 = yes; # NFSv4.1 client support - NFS_V4_2 = yes; - NFS_V4_SECURITY_LABEL = yes; - - CIFS_XATTR = yes; - CIFS_POSIX = option yes; - CIFS_FSCACHE = yes; - CIFS_WEAK_PW_HASH = whenOlder "5.15" yes; - CIFS_UPCALL = yes; - CIFS_ACL = whenOlder "5.3" yes; - CIFS_DFS_UPCALL = yes; - - CEPH_FSCACHE = yes; - CEPH_FS_POSIX_ACL = yes; - - SQUASHFS_FILE_DIRECT = yes; - SQUASHFS_DECOMP_MULTI_PERCPU = whenOlder "6.2" yes; - SQUASHFS_CHOICE_DECOMP_BY_MOUNT = whenAtLeast "6.2" yes; - SQUASHFS_XATTR = yes; - SQUASHFS_ZLIB = yes; - SQUASHFS_LZO = yes; - SQUASHFS_XZ = yes; - SQUASHFS_LZ4 = yes; - SQUASHFS_ZSTD = yes; - - # Native Language Support modules, needed by some filesystems - NLS = yes; - NLS_DEFAULT = freeform "utf8"; - NLS_UTF8 = module; - NLS_CODEPAGE_437 = module; # VFAT default for the codepage= mount option - NLS_ISO8859_1 = module; # VFAT default for the iocharset= mount option - - # Needed to use the installation iso image. Not included in all defconfigs (e.g. arm64) - ISO9660_FS = module; - - DEVTMPFS = yes; - - UNICODE = whenAtLeast "5.2" yes; # Casefolding support for filesystems - }; - - security = { - FORTIFY_SOURCE = option yes; - - # https://googleprojectzero.blogspot.com/2019/11/bad-binder-android-in-wild-exploit.html - DEBUG_LIST = yes; - HARDENED_USERCOPY = yes; - RANDOMIZE_BASE = option yes; - STRICT_DEVMEM = mkDefault yes; # Filter access to /dev/mem - IO_STRICT_DEVMEM = mkDefault yes; - SECURITY_SELINUX_BOOTPARAM_VALUE = whenOlder "5.1" (freeform "0"); # Disable SELinux by default - # Prevent processes from ptracing non-children processes - SECURITY_YAMA = option yes; - # The goal of Landlock is to enable to restrict ambient rights (e.g. global filesystem access) for a set of processes. - # This does not have any effect if a program does not support it - SECURITY_LANDLOCK = whenAtLeast "5.13" yes; - DEVKMEM = whenOlder "5.13" no; # Disable /dev/kmem - - USER_NS = yes; # Support for user namespaces - - SECURITY_APPARMOR = yes; - DEFAULT_SECURITY_APPARMOR = yes; - - RANDOM_TRUST_CPU = whenOlder "6.2" yes; # allow RDRAND to seed the RNG - RANDOM_TRUST_BOOTLOADER = whenOlder "6.2" (whenAtLeast "5.4" yes); # allow the bootloader to seed the RNG - - MODULE_SIG = no; # r13y, generates a random key during build and bakes it in - # Depends on MODULE_SIG and only really helps when you sign your modules - # and enforce signatures which we don't do by default. - SECURITY_LOCKDOWN_LSM = whenAtLeast "5.4" no; - - # provides a register of persistent per-UID keyrings, useful for encrypting storage pools in stratis - PERSISTENT_KEYRINGS = yes; - # enable temporary caching of the last request_key() result - KEYS_REQUEST_CACHE = whenAtLeast "5.3" yes; - # randomized slab caches - RANDOM_KMALLOC_CACHES = whenAtLeast "6.6" yes; - - # NIST SP800-90A DRBG modes - enabled by most distributions - # and required by some out-of-tree modules (ShuffleCake) - # This does not include the NSA-backdoored Dual-EC mode from the same NIST publication. - CRYPTO_DRBG_HASH = yes; - CRYPTO_DRBG_CTR = yes; - - # Enable KFENCE - # See: https://docs.kernel.org/dev-tools/kfence.html - KFENCE = whenAtLeast "5.12" yes; - - # Enable support for page poisoning. Still needs to be enabled on the command line to actually work. - PAGE_POISONING = yes; - - # Enable stack smashing protections in schedule() - # See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v4.8&id=0d9e26329b0c9263d4d9e0422d80a0e73268c52f - SCHED_STACK_END_CHECK = yes; - } // optionalAttrs stdenv.hostPlatform.isx86_64 { - # Enable Intel SGX - X86_SGX = whenAtLeast "5.11" yes; - # Allow KVM guests to load SGX enclaves - X86_SGX_KVM = whenAtLeast "5.13" yes; - - # AMD Cryptographic Coprocessor (CCP) - CRYPTO_DEV_CCP = yes; - # AMD SME - AMD_MEM_ENCRYPT = yes; - # AMD SEV and AMD SEV-SE - KVM_AMD_SEV = yes; - # AMD SEV-SNP - SEV_GUEST = whenAtLeast "5.19" module; - # Shadow stacks - X86_USER_SHADOW_STACK = whenAtLeast "6.6" yes; - - # Mitigate straight line speculation at the cost of some file size - SLS = whenBetween "5.17" "6.9" yes; - MITIGATION_SLS = whenAtLeast "6.9" yes; - }; - - microcode = { - MICROCODE = yes; - MICROCODE_INTEL = whenOlder "6.6" yes; - MICROCODE_AMD = whenOlder "6.6" yes; - # Write Back Throttling - # https://lwn.net/Articles/682582/ - # https://bugzilla.kernel.org/show_bug.cgi?id=12309#c655 - BLK_WBT = yes; - BLK_WBT_SQ = whenOlder "5.0" yes; # Removed in 5.0-RC1 - BLK_WBT_MQ = yes; - }; - - container = { - NAMESPACES = yes; # Required by 'unshare' used by 'nixos-install' - RT_GROUP_SCHED = no; - CGROUP_DEVICE = yes; - CGROUP_HUGETLB = yes; - CGROUP_PERF = yes; - CGROUP_RDMA = yes; - - MEMCG = yes; - MEMCG_SWAP = whenOlder "6.1" yes; - - BLK_DEV_THROTTLING = yes; - CFQ_GROUP_IOSCHED = whenOlder "5.0" yes; # Removed in 5.0-RC1 - CGROUP_PIDS = yes; - }; - - staging = { - # Enable staging drivers. These are somewhat experimental, but - # they generally don't hurt. - STAGING = yes; - }; - - proc-events = { - # PROC_EVENTS requires that the netlink connector is not built - # as a module. This is required by libcgroup's cgrulesengd. - CONNECTOR = yes; - PROC_EVENTS = yes; - }; - - tracing = { - FTRACE = yes; - KPROBES = yes; - FUNCTION_TRACER = yes; - FTRACE_SYSCALLS = yes; - SCHED_TRACER = yes; - STACK_TRACER = yes; - UPROBE_EVENTS = option yes; - BPF_SYSCALL = yes; - BPF_UNPRIV_DEFAULT_OFF = whenBetween "5.10" "5.16" yes; - BPF_EVENTS = yes; - FUNCTION_PROFILER = yes; - RING_BUFFER_BENCHMARK = no; - }; - - perf = { - # enable AMD Zen branch sampling if available - PERF_EVENTS_AMD_BRS = whenAtLeast "5.19" (option yes); - }; - - virtualisation = { - PARAVIRT = option yes; - - HYPERVISOR_GUEST = yes; - PARAVIRT_SPINLOCKS = option yes; - - KVM_ASYNC_PF = yes; - KVM_GENERIC_DIRTYLOG_READ_PROTECT = yes; - KVM_GUEST = yes; - KVM_MMIO = yes; - KVM_VFIO = yes; - KSM = yes; - VIRT_DRIVERS = yes; - # We need 64 GB (PAE) support for Xen guest support - HIGHMEM64G = { optional = true; tristate = mkIf (!stdenv.is64bit) "y";}; - - VFIO_PCI_VGA = mkIf stdenv.is64bit yes; - - UDMABUF = whenAtLeast "4.20" yes; - - # VirtualBox guest drivers in the kernel conflict with the ones in the - # official additions package and prevent the vboxsf module from loading, - # so disable them for now. - VBOXGUEST = option no; - DRM_VBOXVIDEO = option no; - - XEN = option yes; - XEN_DOM0 = option yes; - PCI_XEN = option yes; - HVC_XEN = option yes; - HVC_XEN_FRONTEND = option yes; - XEN_SYS_HYPERVISOR = option yes; - SWIOTLB_XEN = option yes; - XEN_BACKEND = option yes; - XEN_BALLOON = option yes; - XEN_BALLOON_MEMORY_HOTPLUG = option yes; - XEN_EFI = option yes; - XEN_HAVE_PVMMU = option yes; - XEN_MCE_LOG = option yes; - XEN_PVH = option yes; - XEN_PVHVM = option yes; - XEN_SAVE_RESTORE = option yes; - XEN_SELFBALLOONING = whenOlder "5.3" yes; - - # Enable device detection on virtio-mmio hypervisors - VIRTIO_MMIO_CMDLINE_DEVICES = yes; - }; - - media = { - MEDIA_DIGITAL_TV_SUPPORT = yes; - MEDIA_CAMERA_SUPPORT = yes; - MEDIA_CONTROLLER = yes; - MEDIA_PCI_SUPPORT = yes; - MEDIA_USB_SUPPORT = yes; - MEDIA_ANALOG_TV_SUPPORT = yes; - VIDEO_STK1160_COMMON = whenOlder "6.5" module; - }; - - "9p" = { - # Enable the 9P cache to speed up NixOS VM tests. - "9P_FSCACHE" = option yes; - "9P_FS_POSIX_ACL" = option yes; - }; - - huge-page = { - TRANSPARENT_HUGEPAGE = option yes; - TRANSPARENT_HUGEPAGE_ALWAYS = option no; - TRANSPARENT_HUGEPAGE_MADVISE = option yes; - }; - - zram = { - ZRAM = module; - ZRAM_WRITEBACK = option yes; - ZRAM_MULTI_COMP = whenAtLeast "6.2" yes; - ZSWAP = option yes; - ZPOOL = yes; - ZBUD = option yes; - }; - - brcmfmac = { - # Enable PCIe and USB for the brcmfmac driver - BRCMFMAC_USB = option yes; - BRCMFMAC_PCIE = option yes; - }; - - # Support x2APIC (which requires IRQ remapping) - x2apic = optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") { - X86_X2APIC = yes; - IRQ_REMAP = yes; - }; - - # Disable various self-test modules that have no use in a production system - tests = { - # This menu disables all/most of them on >= 4.16 - RUNTIME_TESTING_MENU = option no; - } // { - CRC32_SELFTEST = option no; - CRYPTO_TEST = option no; - EFI_TEST = option no; - GLOB_SELFTEST = option no; - LOCK_TORTURE_TEST = option no; - MTD_TESTS = option no; - NOTIFIER_ERROR_INJECTION = option no; - RCU_PERF_TEST = whenOlder "5.9" no; - RCU_SCALE_TEST = whenAtLeast "5.10" no; - TEST_ASYNC_DRIVER_PROBE = option no; - WW_MUTEX_SELFTEST = option no; - XZ_DEC_TEST = option no; - }; - - criu = { - # Unconditionally enabled, because it is required for CRIU and - # it provides the kcmp() system call that Mesa depends on. - CHECKPOINT_RESTORE = yes; - - # Allows soft-dirty tracking on pages, used by CRIU. - # See https://docs.kernel.org/admin-guide/mm/soft-dirty.html - MEM_SOFT_DIRTY = mkIf (!stdenv.isx86_32) yes; - }; - - misc = let - # Use zstd for kernel compression if 64-bit and newer than 5.9, otherwise xz. - # i686 issues: https://github.com/NixOS/nixpkgs/pull/117961#issuecomment-812106375 - useZstd = stdenv.buildPlatform.is64bit && versionAtLeast version "5.9"; - in { - KERNEL_XZ = mkIf (!useZstd) yes; - KERNEL_ZSTD = mkIf useZstd yes; - - HID_BATTERY_STRENGTH = yes; - # enabled by default in x86_64 but not arm64, so we do that here - HIDRAW = yes; - - # Enable loading HID fixups as eBPF from userspace - HID_BPF = whenAtLeast "6.3" yes; - - HID_ACRUX_FF = yes; - DRAGONRISE_FF = yes; - GREENASIA_FF = yes; - HOLTEK_FF = yes; - JOYSTICK_PSXPAD_SPI_FF = yes; - LOGIG940_FF = yes; - NINTENDO_FF = whenAtLeast "5.16" yes; - PLAYSTATION_FF = whenAtLeast "5.12" yes; - SONY_FF = yes; - SMARTJOYPLUS_FF = yes; - THRUSTMASTER_FF = yes; - ZEROPLUS_FF = yes; - - MODULE_COMPRESS = whenOlder "5.13" yes; - MODULE_COMPRESS_XZ = yes; - - SYSVIPC = yes; # System-V IPC - - AIO = yes; # POSIX asynchronous I/O - - UNIX = yes; # Unix domain sockets. - - MD = yes; # Device mapper (RAID, LVM, etc.) - - # Enable initrd support. - BLK_DEV_INITRD = yes; - - # Allows debugging systems that get stuck during suspend/resume - PM_TRACE = yes; - PM_TRACE_RTC = yes; - - ACCESSIBILITY = yes; # Accessibility support - AUXDISPLAY = yes; # Auxiliary Display support - HIPPI = yes; - MTD_COMPLEX_MAPPINGS = yes; # needed for many devices - - SCSI_LOWLEVEL = yes; # enable lots of SCSI devices - SCSI_LOWLEVEL_PCMCIA = yes; - SCSI_SAS_ATA = yes; # added to enable detection of hard drive - - SPI = yes; # needed for many devices - SPI_MASTER = yes; - - "8139TOO_8129" = yes; - "8139TOO_PIO" = no; # PIO is slower - - AIC79XX_DEBUG_ENABLE = no; - AIC7XXX_DEBUG_ENABLE = no; - AIC94XX_DEBUG = no; - - BLK_DEV_INTEGRITY = yes; - BLK_DEV_ZONED = yes; - - BLK_SED_OPAL = yes; - - # Enable support for block layer inline encryption - BLK_INLINE_ENCRYPTION = whenAtLeast "5.8" yes; - # ...but fall back to CPU encryption if unavailable - BLK_INLINE_ENCRYPTION_FALLBACK = whenAtLeast "5.8" yes; - - BSD_PROCESS_ACCT_V3 = yes; - - SERIAL_DEV_BUS = yes; # enables support for serial devices - SERIAL_DEV_CTRL_TTYPORT = yes; # enables support for TTY serial devices - - BT_HCIBTUSB_MTK = whenAtLeast "5.3" yes; # MediaTek protocol support - BT_HCIUART_QCA = yes; # Qualcomm Atheros protocol support - BT_HCIUART_SERDEV = yes; # required by BT_HCIUART_QCA - BT_HCIUART = module; # required for BT devices with serial port interface (QCA6390) - BT_HCIUART_BCSP = option yes; - BT_HCIUART_H4 = option yes; # UART (H4) protocol support - BT_HCIUART_LL = option yes; - BT_RFCOMM_TTY = option yes; # RFCOMM TTY support - BT_QCA = module; # enables QCA6390 bluetooth - - # Removed on 5.17 as it was unused - # upstream: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a4ee518185e902758191d968600399f3bc2be31 - CLEANCACHE = whenOlder "5.17" (option yes); - - FSCACHE_STATS = yes; - - DVB_DYNAMIC_MINORS = option yes; # we use udev - - EFI_STUB = yes; # EFI bootloader in the bzImage itself - EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER = - whenOlder "6.2" (whenAtLeast "5.8" yes); # initrd kernel parameter for EFI - CGROUPS = yes; # used by systemd - FHANDLE = yes; # used by systemd - SECCOMP = yes; # used by systemd >= 231 - SECCOMP_FILTER = yes; # ditto - POSIX_MQUEUE = yes; - FRONTSWAP = whenOlder "6.6" yes; - FUSION = yes; # Fusion MPT device support - IDE = whenOlder "5.14" no; # deprecated IDE support, removed in 5.14 - IDLE_PAGE_TRACKING = yes; - - JOYSTICK_IFORCE_232 = { optional = true; tristate = whenOlder "5.3" "y"; }; # I-Force Serial joysticks and wheels - JOYSTICK_IFORCE_USB = { optional = true; tristate = whenOlder "5.3" "y"; }; # I-Force USB joysticks and wheels - JOYSTICK_XPAD_FF = option yes; # X-Box gamepad rumble support - JOYSTICK_XPAD_LEDS = option yes; # LED Support for Xbox360 controller 'BigX' LED - - KEYBOARD_APPLESPI = whenAtLeast "5.3" module; - - KEXEC_FILE = option yes; - KEXEC_JUMP = option yes; - - PARTITION_ADVANCED = yes; # Needed for LDM_PARTITION - # Windows Logical Disk Manager (Dynamic Disk) support - LDM_PARTITION = yes; - LOGIRUMBLEPAD2_FF = yes; # Logitech Rumblepad 2 force feedback - LOGO = no; # not needed - MEDIA_ATTACH = yes; - MEGARAID_NEWGEN = yes; - - MLX5_CORE_EN = option yes; - - NVME_MULTIPATH = yes; - - NVME_AUTH = mkMerge [ - (whenBetween "6.0" "6.7" yes) - (whenAtLeast "6.7" module) - ]; - - NVME_HOST_AUTH = whenAtLeast "6.7" yes; - NVME_TCP_TLS = whenAtLeast "6.7" yes; - - NVME_TARGET = module; - NVME_TARGET_PASSTHRU = whenAtLeast "5.9" yes; - NVME_TARGET_AUTH = whenAtLeast "6.0" yes; - NVME_TARGET_TCP_TLS = whenAtLeast "6.7" yes; - - PCI_P2PDMA = mkIf (stdenv.hostPlatform.is64bit && versionAtLeast version "4.20") yes; - - PSI = whenAtLeast "4.20" yes; - - MOUSE_ELAN_I2C_SMBUS = yes; - MOUSE_PS2_ELANTECH = yes; # Elantech PS/2 protocol extension - MOUSE_PS2_VMMOUSE = yes; - MTRR_SANITIZER = yes; - NET_FC = yes; # Fibre Channel driver support - # Needed for touchpads to work on some AMD laptops - PINCTRL_AMD = whenAtLeast "5.19" yes; - # GPIO on Intel Bay Trail, for some Chromebook internal eMMC disks - PINCTRL_BAYTRAIL = yes; - # GPIO for Braswell and Cherryview devices - # Needs to be built-in to for integrated keyboards to function properly - PINCTRL_CHERRYVIEW = yes; - # 8 is default. Modern gpt tables on eMMC may go far beyond 8. - MMC_BLOCK_MINORS = freeform "32"; - - REGULATOR = yes; # Voltage and Current Regulator Support - RC_DEVICES = option yes; # Enable IR devices - RC_DECODERS = option yes; # Required for IR devices to work - - RT2800USB_RT53XX = yes; - RT2800USB_RT55XX = yes; - - SCHED_AUTOGROUP = yes; - CFS_BANDWIDTH = yes; - - SCSI_LOGGING = yes; # SCSI logging facility - SERIAL_8250 = yes; # 8250/16550 and compatible serial support - - SLAB_FREELIST_HARDENED = yes; - SLAB_FREELIST_RANDOM = yes; - - SLIP_COMPRESSED = yes; # CSLIP compressed headers - SLIP_SMART = yes; - - HWMON = yes; - THERMAL_HWMON = yes; # Hardware monitoring support - NVME_HWMON = whenAtLeast "5.5" yes; # NVMe drives temperature reporting - UEVENT_HELPER = no; - - USERFAULTFD = yes; - X86_CHECK_BIOS_CORRUPTION = yes; - X86_MCE = yes; - - RAS = yes; # Needed for EDAC support - - # Our initrd init uses shebang scripts, so can't be modular. - BINFMT_SCRIPT = yes; - # For systemd-binfmt - BINFMT_MISC = option yes; - - # Disable the firmware helper fallback, udev doesn't implement it any more - FW_LOADER_USER_HELPER_FALLBACK = option no; - - FW_LOADER_COMPRESS = whenAtLeast "5.3" yes; - - HOTPLUG_PCI_ACPI = yes; # PCI hotplug using ACPI - HOTPLUG_PCI_PCIE = yes; # PCI-Expresscard hotplug support - - # Enable AMD's ROCm GPU compute stack - HSA_AMD = mkIf stdenv.hostPlatform.is64bit (whenAtLeast "4.20" yes); - ZONE_DEVICE = mkIf stdenv.hostPlatform.is64bit (whenAtLeast "5.3" yes); - HMM_MIRROR = whenAtLeast "5.3" yes; - DRM_AMDGPU_USERPTR = whenAtLeast "5.3" yes; - - PREEMPT = no; - PREEMPT_VOLUNTARY = yes; - - X86_AMD_PLATFORM_DEVICE = yes; - X86_PLATFORM_DRIVERS_DELL = whenAtLeast "5.12" yes; - X86_PLATFORM_DRIVERS_HP = whenAtLeast "6.1" yes; - - LIRC = yes; - - SCHED_CORE = whenAtLeast "5.14" yes; - - LRU_GEN = whenAtLeast "6.1" yes; - LRU_GEN_ENABLED = whenAtLeast "6.1" yes; - - FSL_MC_UAPI_SUPPORT = mkIf (stdenv.hostPlatform.system == "aarch64-linux") (whenAtLeast "5.12" yes); - - ASHMEM = { optional = true; tristate = whenBetween "5.0" "5.18" "y";}; - ANDROID = { optional = true; tristate = whenBetween "5.0" "5.19" "y";}; - ANDROID_BINDER_IPC = { optional = true; tristate = whenAtLeast "5.0" "y";}; - ANDROID_BINDERFS = { optional = true; tristate = whenAtLeast "5.0" "y";}; - ANDROID_BINDER_DEVICES = { optional = true; freeform = whenAtLeast "5.0" "binder,hwbinder,vndbinder";}; - - TASKSTATS = yes; - TASK_DELAY_ACCT = yes; - TASK_XACCT = yes; - TASK_IO_ACCOUNTING = yes; - - # Fresh toolchains frequently break -Werror build for minor issues. - WERROR = whenAtLeast "5.15" no; - - # > CONFIG_KUNIT should not be enabled in a production environment. Enabling KUnit disables Kernel Address-Space Layout Randomization (KASLR), and tests may affect the state of the kernel in ways not suitable for production. - # https://www.kernel.org/doc/html/latest/dev-tools/kunit/start.html - KUNIT = whenAtLeast "5.5" no; - - # Set system time from RTC on startup and resume - RTC_HCTOSYS = option yes; - - # Expose watchdog information in sysfs - WATCHDOG_SYSFS = yes; - - # Enable generic kernel watch queues - # See https://docs.kernel.org/core-api/watch_queue.html - WATCH_QUEUE = whenAtLeast "5.8" yes; - } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") { - # Enable CPU/memory hotplug support - # Allows you to dynamically add & remove CPUs/memory to a VM client running NixOS without requiring a reboot - ACPI_HOTPLUG_CPU = yes; - ACPI_HOTPLUG_MEMORY = yes; - MEMORY_HOTPLUG = yes; - MEMORY_HOTREMOVE = yes; - HOTPLUG_CPU = yes; - MIGRATION = yes; - SPARSEMEM = yes; - - # Bump the maximum number of CPUs to support systems like EC2 x1.* - # instances and Xeon Phi. - NR_CPUS = freeform "384"; - - # Enable LEDS to display link-state status of PHY devices (i.e. eth lan/wan interfaces) - LED_TRIGGER_PHY = whenAtLeast "4.10" yes; - } // optionalAttrs (stdenv.hostPlatform.system == "armv7l-linux" || stdenv.hostPlatform.system == "aarch64-linux") { - # Enables support for the Allwinner Display Engine 2.0 - SUN8I_DE2_CCU = yes; - - # See comments on https://github.com/NixOS/nixpkgs/commit/9b67ea9106102d882f53d62890468071900b9647 - CRYPTO_AEGIS128_SIMD = whenAtLeast "5.4" no; - - # Distros should configure the default as a kernel option. - # We previously defined it on the kernel command line as cma= - # The kernel command line will override a platform-specific configuration from its device tree. - # https://github.com/torvalds/linux/blob/856deb866d16e29bd65952e0289066f6078af773/kernel/dma/contiguous.c#L35-L44 - CMA_SIZE_MBYTES = freeform "32"; - - # Add debug interfaces for CMA - CMA_DEBUGFS = yes; - CMA_SYSFS = yes; - - # https://docs.kernel.org/arch/arm/mem_alignment.html - # tldr: - # when buggy userspace code emits illegal misaligned LDM, STM, - # LDRD and STRDs, the instructions trap, are caught, and then - # are emulated by the kernel. - # - # This is the default on armv7l, anyway, but it is explicitly - # enabled here for the sake of providing context for the - # aarch64 compat option which follows. - ALIGNMENT_TRAP = mkIf (stdenv.hostPlatform.system == "armv7l-linux") yes; - - # https://patchwork.kernel.org/project/linux-arm-kernel/patch/20220701135322.3025321-1-ardb@kernel.org/ - # tldr: - # when encountering alignment faults under aarch64, this option - # makes the kernel attempt to handle the fault by doing the - # same style of misaligned emulation that is performed under - # armv7l (see above option). - # - # This minimizes the potential for aarch32 userspace to behave - # differently when run under aarch64 kernels compared to when - # it is run under an aarch32 kernel. - COMPAT_ALIGNMENT_FIXUPS = mkIf (stdenv.hostPlatform.system == "aarch64-linux") (whenAtLeast "6.1" yes); - } // optionalAttrs (versionAtLeast version "5.4" && (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux")) { - # Required for various hardware features on Chrome OS devices - CHROME_PLATFORMS = yes; - CHROMEOS_TBMC = module; - - CROS_EC = module; - - CROS_EC_I2C = module; - CROS_EC_SPI = module; - CROS_EC_LPC = module; - CROS_EC_ISHTP = module; - - CROS_KBD_LED_BACKLIGHT = module; - - TCG_TIS_SPI_CR50 = whenAtLeast "5.5" yes; - } // optionalAttrs (versionAtLeast version "5.4" && stdenv.hostPlatform.system == "x86_64-linux") { - CHROMEOS_LAPTOP = module; - CHROMEOS_PSTORE = module; - } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") { - # Enable x86 resource control - X86_CPU_RESCTRL = whenAtLeast "5.0" yes; - - # Enable TSX on CPUs where it's not vulnerable - X86_INTEL_TSX_MODE_AUTO = yes; - - # Enable AMD Wi-Fi RF band mitigations - # See https://cateee.net/lkddb/web-lkddb/AMD_WBRF.html - AMD_WBRF = whenAtLeast "6.8" yes; - - # Enable Intel Turbo Boost Max 3.0 - INTEL_TURBO_MAX_3 = yes; - }; - - accel = { - # Build DRM accelerator devices - DRM_ACCEL = whenAtLeast "6.2" yes; - }; - }; -in - flattenKConf options diff --git a/pkgs/os-specific/linux/kernel/export-rt-sched-migrate.patch b/pkgs/os-specific/linux/kernel/export-rt-sched-migrate.patch deleted file mode 100644 index 1d8ed6f712cb..000000000000 --- a/pkgs/os-specific/linux/kernel/export-rt-sched-migrate.patch +++ /dev/null @@ -1,11 +0,0 @@ -Export linux-rt (PREEMPT_RT) specific symbols needed by ZFS. -(Regular kernel provides them static inline in linux/preempt.h.) - ---- a/kernel/sched/core.c -+++ b/kernel/sched/core.c -@@ -1812 +1812 @@ void migrate_disable(void) --EXPORT_SYMBOL_GPL(migrate_disable); -+EXPORT_SYMBOL(migrate_disable); -@@ -1843 +1843 @@ void migrate_enable(void) --EXPORT_SYMBOL_GPL(migrate_enable); -+EXPORT_SYMBOL(migrate_enable); diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl deleted file mode 100644 index 7e12ca5d96a9..000000000000 --- a/pkgs/os-specific/linux/kernel/generate-config.pl +++ /dev/null @@ -1,154 +0,0 @@ -# This script runs `make config' to generate a Linux kernel -# configuration file. For each question (i.e. kernel configuration -# option), unless an override is provided, it answers "m" if possible, -# and otherwise uses the default answer (as determined by the default -# config for the architecture). Overrides are read from the file -# $KERNEL_CONFIG, which on each line contains an option name and an -# answer, e.g. "EXT2_FS_POSIX_ACL y". The script warns about ignored -# options in $KERNEL_CONFIG, and barfs if `make config' selects -# another answer for an option than the one provided in -# $KERNEL_CONFIG. - -use strict; -use IPC::Open2; -use Cwd; - -# exported via nix -my $debug = $ENV{'DEBUG'}; -my $autoModules = $ENV{'AUTO_MODULES'}; -my $preferBuiltin = $ENV{'PREFER_BUILTIN'}; -my $ignoreConfigErrors = $ENV{'ignoreConfigErrors'}; -my $buildRoot = $ENV{'BUILD_ROOT'}; -my $makeFlags = $ENV{'MAKE_FLAGS'}; -$SIG{PIPE} = 'IGNORE'; - -# Read the answers. -my %answers; -my %requiredAnswers; -open ANSWERS, "<$ENV{KERNEL_CONFIG}" or die "Could not open answer file"; -while (<ANSWERS>) { - chomp; - s/#.*//; - if (/^\s*([A-Za-z0-9_]+)(\?)?\s+(.*\S)\s*$/) { - $answers{$1} = $3; - $requiredAnswers{$1} = !(defined $2); - } elsif (!/^\s*$/) { - die "invalid config line: $_"; - } -} -close ANSWERS; - -sub runConfig { - - # Run `make config'. - my $pid = open2(\*IN, \*OUT, "make -C $ENV{SRC} O=$buildRoot config SHELL=bash ARCH=$ENV{ARCH} CC=$ENV{CC} HOSTCC=$ENV{HOSTCC} HOSTCXX=$ENV{HOSTCXX} $makeFlags"); - - # Parse the output, look for questions and then send an - # appropriate answer. - my $line = ""; my $s; - my %choices = (); - - my ($prevQuestion, $prevName); - - while (!eof IN) { - read IN, $s, 1 or next; - $line .= $s; - - #print STDERR "LINE: $line\n"; - - if ($s eq "\n") { - print STDERR "GOT: $line" if $debug; - - # Remember choice alternatives ("> 1. bla (FOO)" or " 2. bla (BAR) (NEW)"). - if ($line =~ /^\s*>?\s*(\d+)\.\s+.*?\(([A-Za-z0-9_]+)\)(?:\s+\(NEW\))?\s*$/) { - $choices{$2} = $1; - } else { - # The list of choices has ended without us being - # asked. This happens for options where only one value - # is valid, for instance. The results can foul up - # later options, so forget about it. - %choices = (); - } - - $line = ""; - } - - elsif ($line =~ /###$/) { - # The config program is waiting for an answer. - - # Is this a regular question? ("bla bla (OPTION_NAME) [Y/n/m/...] ") - if ($line =~ /(.*) \(([A-Za-z0-9_]+)\) \[(.*)\].*###$/) { - my $question = $1; my $name = $2; my $alts = $3; - my $answer = ""; - # Build everything as a module if possible. - $answer = "m" if $autoModules && $alts =~ qr{\A(\w/)+m/(\w/)*\?\z} && !($preferBuiltin && $alts =~ /Y/); - $answer = $answers{$name} if defined $answers{$name}; - print STDERR "QUESTION: $question, NAME: $name, ALTS: $alts, ANSWER: $answer\n" if $debug; - print OUT "$answer\n"; - die "repeated question: $question" if $prevQuestion && $prevQuestion eq $question && $name eq $prevName; - $prevQuestion = $question; - $prevName = $name; - } - - # Is this a choice? ("choice[1-N]: ") - elsif ($line =~ /choice\[(.*)\]: ###$/) { - my $answer = ""; - foreach my $name (keys %choices) { - $answer = $choices{$name} if ($answers{$name} || "") eq "y"; - } - print STDERR "CHOICE: $1, ANSWER: $answer\n" if $debug; - print OUT "$answer\n" if $1 =~ /-/; - } - - # Some questions lack the option name ("bla bla [Y/n/m/...] "). - elsif ($line =~ /(.*) \[(.*)\] ###$/) { - print OUT "\n"; - } - - else { - warn "don't know how to answer this question: $line\n"; - print OUT "\n"; - } - - $line = ""; - %choices = (); - } - } - - close IN; - waitpid $pid, 0; -} - -# Run `make config' several times to converge on the desired result. -# (Some options may only become available after other options are -# set in a previous run.) -runConfig; -runConfig; - -# Read the final .config file and check that our answers are in -# there. `make config' often overrides answers if later questions -# cause options to be selected. -my %config; -open CONFIG, "<$buildRoot/.config" or die "Could not read .config"; -while (<CONFIG>) { - chomp; - if (/^CONFIG_([A-Za-z0-9_]+)="(.*)"$/) { - # String options have double quotes, e.g. 'CONFIG_NLS_DEFAULT="utf8"' and allow escaping. - ($config{$1} = $2) =~ s/\\([\\"])/$1/g; - } elsif (/^CONFIG_([A-Za-z0-9_]+)=(.*)$/) { - $config{$1} = $2; - } elsif (/^# CONFIG_([A-Za-z0-9_]+) is not set$/) { - $config{$1} = "n"; - } -} -close CONFIG; - -my $ret = 0; -foreach my $name (sort (keys %answers)) { - my $f = $requiredAnswers{$name} && $ignoreConfigErrors ne "1" - ? sub { warn "error: " . $_[0]; $ret = -1; } : sub { warn "warning: " . $_[0]; }; - &$f("unused option: $name\n") unless defined $config{$name}; - &$f("option not set correctly: $name (wanted '$answers{$name}', got '$config{$name}')\n") - if $config{$name} && $config{$name} ne $answers{$name}; -} -exit $ret; diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix deleted file mode 100644 index 631217735d8f..000000000000 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ /dev/null @@ -1,289 +0,0 @@ -{ buildPackages -, callPackage -, perl -, bison ? null -, flex ? null -, gmp ? null -, libmpc ? null -, mpfr ? null -, pahole -, lib -, stdenv -, rustc -, rustPlatform -, rust-bindgen -# testing -, emptyFile -, nixos -, nixosTests -}@args': - -let overridableKernel = -lib.makeOverridable ({ # The kernel source tarball. - src - -, # The kernel version. - version - -, # Allows overriding the default defconfig - defconfig ? null - -, # Legacy overrides to the intermediate kernel config, as string - extraConfig ? "" - - # Additional make flags passed to kbuild -, extraMakeFlags ? [] - -, # enables the options in ./common-config.nix; if `false` then only - # `structuredExtraConfig` is used - enableCommonConfig ? true - -, # kernel intermediate config overrides, as a set - structuredExtraConfig ? {} - -, # The version number used for the module directory - # If unspecified, this is determined automatically from the version. - modDirVersion ? null - -, # An attribute set whose attributes express the availability of - # certain features in this kernel. E.g. `{ia32Emulation = true;}' - # indicates a kernel that provides Intel wireless support. Used in - # NixOS to implement kernel-specific behaviour. - features ? {} - -, # Custom seed used for CONFIG_GCC_PLUGIN_RANDSTRUCT if enabled. This is - # automatically extended with extra per-version and per-config values. - randstructSeed ? "" - -, # A list of patches to apply to the kernel. Each element of this list - # should be an attribute set {name, patch} where `name' is a - # symbolic name and `patch' is the actual patch. The patch may - # optionally be compressed with gzip or bzip2. - kernelPatches ? [] -, ignoreConfigErrors ? stdenv.hostPlatform.linux-kernel.name != "pc" -, extraMeta ? {} - -, isZen ? false -, isLibre ? false -, isHardened ? false - -# easy overrides to stdenv.hostPlatform.linux-kernel members -, autoModules ? stdenv.hostPlatform.linux-kernel.autoModules -, preferBuiltin ? stdenv.hostPlatform.linux-kernel.preferBuiltin or false -, kernelArch ? stdenv.hostPlatform.linuxArch -, kernelTests ? [] - -, stdenv ? args'.stdenv -, buildPackages ? args'.buildPackages - -, ... -}@args: - -# 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. - -assert stdenv.isLinux; - -let - # Dirty hack to make sure that `version` & `src` have - # `<nixpkgs/pkgs/os-specific/linux/kernel/linux-x.y.nix>` as position - # when using `builtins.unsafeGetAttrPos`. - # - # This is to make sure that ofborg actually detects changes in the kernel derivation - # and pings all maintainers. - # - # For further context, see https://github.com/NixOS/nixpkgs/pull/143113#issuecomment-953319957 - basicArgs = builtins.removeAttrs - args - (lib.filter (x: ! (builtins.elem x [ "version" "src" ])) (lib.attrNames args)); - - # Combine the `features' attribute sets of all the kernel patches. - kernelFeatures = lib.foldr (x: y: (x.features or {}) // y) ({ - efiBootStub = true; - netfilterRPFilter = true; - ia32Emulation = true; - } // features) kernelPatches; - - commonStructuredConfig = import ./common-config.nix { - inherit lib stdenv version; - - features = kernelFeatures; # Ensure we know of all extra patches, etc. - }; - - intermediateNixConfig = configfile.moduleStructuredConfig.intermediateNixConfig - # extra config in legacy string format - + extraConfig - + stdenv.hostPlatform.linux-kernel.extraConfig or ""; - - structuredConfigFromPatches = - map ({extraStructuredConfig ? {}, ...}: {settings=extraStructuredConfig;}) kernelPatches; - - # appends kernel patches extraConfig - kernelConfigFun = baseConfigStr: - let - configFromPatches = - map ({extraConfig ? "", ...}: extraConfig) kernelPatches; - in lib.concatStringsSep "\n" ([baseConfigStr] ++ configFromPatches); - - withRust = ((configfile.moduleStructuredConfig.settings.RUST or {}).tristate or null) == "y"; - - configfile = stdenv.mkDerivation { - inherit ignoreConfigErrors autoModules preferBuiltin kernelArch extraMakeFlags; - pname = "linux-config"; - inherit version; - - generateConfig = ./generate-config.pl; - - kernelConfig = kernelConfigFun intermediateNixConfig; - passAsFile = [ "kernelConfig" ]; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ perl gmp libmpc mpfr ] - ++ lib.optionals (lib.versionAtLeast version "4.16") [ bison flex ] - ++ lib.optional (lib.versionAtLeast version "5.2") pahole - ++ lib.optionals withRust [ rust-bindgen rustc ] - ; - - RUST_LIB_SRC = lib.optionalString withRust rustPlatform.rustLibSrc; - - platformName = stdenv.hostPlatform.linux-kernel.name; - # e.g. "defconfig" - kernelBaseConfig = if defconfig != null then defconfig else stdenv.hostPlatform.linux-kernel.baseConfig; - - makeFlags = lib.optionals (stdenv.hostPlatform.linux-kernel ? makeFlags) stdenv.hostPlatform.linux-kernel.makeFlags - ++ extraMakeFlags; - - postPatch = kernel.postPatch + '' - # Patch kconfig to print "###" after every question so that - # generate-config.pl from the generic builder can answer them. - sed -e '/fflush(stdout);/i\printf("###");' -i scripts/kconfig/conf.c - ''; - - preUnpack = kernel.preUnpack or ""; - - inherit (kernel) src patches; - - buildPhase = '' - export buildRoot="''${buildRoot:-build}" - export HOSTCC=$CC_FOR_BUILD - export HOSTCXX=$CXX_FOR_BUILD - export HOSTAR=$AR_FOR_BUILD - export HOSTLD=$LD_FOR_BUILD - - # Get a basic config file for later refinement with $generateConfig. - make $makeFlags \ - -C . O="$buildRoot" $kernelBaseConfig \ - ARCH=$kernelArch \ - HOSTCC=$HOSTCC HOSTCXX=$HOSTCXX HOSTAR=$HOSTAR HOSTLD=$HOSTLD \ - CC=$CC OBJCOPY=$OBJCOPY OBJDUMP=$OBJDUMP READELF=$READELF \ - $makeFlags - - # Create the config file. - echo "generating kernel configuration..." - ln -s "$kernelConfigPath" "$buildRoot/kernel-config" - DEBUG=1 ARCH=$kernelArch KERNEL_CONFIG="$buildRoot/kernel-config" AUTO_MODULES=$autoModules \ - PREFER_BUILTIN=$preferBuiltin BUILD_ROOT="$buildRoot" SRC=. MAKE_FLAGS="$makeFlags" \ - perl -w $generateConfig - ''; - - installPhase = "mv $buildRoot/.config $out"; - - enableParallelBuilding = true; - - passthru = rec { - module = import ../../../../nixos/modules/system/boot/kernel_config.nix; - # used also in apache - # { modules = [ { options = res.options; config = svc.config or svc; } ]; - # check = false; - # The result is a set of two attributes - moduleStructuredConfig = (lib.evalModules { - modules = [ - module - ] ++ lib.optionals enableCommonConfig [ - { settings = commonStructuredConfig; _file = "pkgs/os-specific/linux/kernel/common-config.nix"; } - ] ++ [ - { settings = structuredExtraConfig; _file = "structuredExtraConfig"; } - ] - ++ structuredConfigFromPatches - ; - }).config; - - structuredConfig = moduleStructuredConfig.settings; - }; - }; # end of configfile derivation - - kernel = (callPackage ./manual-config.nix { inherit lib stdenv buildPackages; }) (basicArgs // { - inherit kernelPatches randstructSeed extraMakeFlags extraMeta configfile modDirVersion; - pos = builtins.unsafeGetAttrPos "version" args; - - config = { - CONFIG_MODULES = "y"; - CONFIG_FW_LOADER = "m"; - CONFIG_RUST = lib.mkIf withRust "y"; - }; - }); - -in -kernel.overrideAttrs (finalAttrs: previousAttrs: { - - passthru = previousAttrs.passthru or { } // basicArgs // { - features = kernelFeatures; - inherit commonStructuredConfig structuredExtraConfig extraMakeFlags isZen isHardened isLibre; - isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true; - - # Adds dependencies needed to edit the config: - # nix-shell '<nixpkgs>' -A linux.configEnv --command 'make nconfig' - configEnv = kernel.overrideAttrs (old: { - nativeBuildInputs = old.nativeBuildInputs or [] ++ (with buildPackages; [ - pkg-config ncurses - ]); - }); - - tests = let - overridableKernel = finalAttrs.finalPackage // { - override = args: - lib.warn ( - "override is stubbed for NixOS kernel tests, not applying changes these arguments: " - + toString (lib.attrNames (lib.toFunction args { })) - ) overridableKernel; - }; - /* Certain arguments must be evaluated lazily; so that only the output(s) depend on them. - Original reproducer / simplified use case: - */ - versionDoesNotDependOnPatchesEtcNixOS = - builtins.seq - (nixos ({ config, pkgs, ... }: { - boot.kernelPatches = [ - (builtins.seq config.boot.kernelPackages.kernel.version { patch = pkgs.emptyFile; }) - ]; - })).config.boot.kernelPackages.kernel.outPath - emptyFile; - versionDoesNotDependOnPatchesEtc = - builtins.seq - (import ./generic.nix args' (args // ( - let explain = attrName: - '' - The ${attrName} attribute must be able to access the kernel.version attribute without an infinite recursion. - That means that the kernel attrset (attrNames) and the kernel.version attribute must not depend on the ${attrName} argument. - The fact that this exception is raised shows that such a dependency does exist. - This is a problem for the configurability of ${attrName} in version-aware logic such as that in NixOS. - Strictness can creep in through optional attributes, or assertions and warnings that run as part of code that shouldn't access what is checked. - ''; - in { - kernelPatches = throw (explain "kernelPatches"); - structuredExtraConfig = throw (explain "structuredExtraConfig"); - modDirVersion = throw (explain "modDirVersion"); - }))).version - emptyFile; - in [ - (nixosTests.kernel-generic.passthru.testsForKernel overridableKernel) - versionDoesNotDependOnPatchesEtc - # Disabled by default, because the infinite recursion is hard to understand. The other test's error is better and produces a shorter trace. - # versionDoesNotDependOnPatchesEtcNixOS - ] ++ kernelTests; - }; - -})); -in overridableKernel diff --git a/pkgs/os-specific/linux/kernel/gpio-utils.nix b/pkgs/os-specific/linux/kernel/gpio-utils.nix deleted file mode 100644 index 40e282bbf541..000000000000 --- a/pkgs/os-specific/linux/kernel/gpio-utils.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, linux }: - -with lib; - -stdenv.mkDerivation { - pname = "gpio-utils"; - version = linux.version; - - inherit (linux) src makeFlags; - - preConfigure = '' - cd tools/gpio - ''; - - separateDebugInfo = true; - installFlags = [ "install" "DESTDIR=$(out)" "bindir=/bin" ]; - - meta = { - description = "Linux tools to inspect the gpiochip interface"; - maintainers = with maintainers; [ kwohlfahrt ]; - platforms = platforms.linux; - license = licenses.gpl2; - }; -} diff --git a/pkgs/os-specific/linux/kernel/hardened/anthraxx.asc b/pkgs/os-specific/linux/kernel/hardened/anthraxx.asc deleted file mode 100644 index 101ccfbf0f2b..000000000000 --- a/pkgs/os-specific/linux/kernel/hardened/anthraxx.asc +++ /dev/null @@ -1,325 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 - -mQINBE64OEUBEADPS1v+zoCdKA6zyfUtVIaBoIwMhCibqurXi30tVoC9LgM6W1ve -HwPFukWq7DAS0mZUPE3mSV63JFLaTy0bY/6GO1D4wLdWZx4ppH7XKNCvKCbsi70k -UozFykNVf+83WEskuF1oYzXlF3aB5suz2IWJl7ey1EXgIpehwQaTJUA5JIWYFp9A -566LRNJefYMzUR33xc4dRKj6Etg0xdLVq7/vZoo8HpLCBGNWiP0AKqFWEwTg0xQL -7nsJA5tfJJdwAJvrzjpFsvb63PKG6waAtdHhON4q7E2Udak9fz2tRjxA5l9l2zXk -aqsysUzkxPhNjwMENoQ04KZg4aT+ZhhBzTowSWLp3KV2uaZ66kdPUO3s+/1bPp5/ -N/IlykaUwyL773iYOZ5dOY/9hIuX/zssihcrGEMW6yIyZR5uKhzYdaM9ExTXP637 -UccgNS9/pskPGPx/xK23NDCfeHzL9YHS5KokA2wb/b9hqpwvLaeblbMl2pt79F1R -ac+rZlrRyX3NvlTQP4hqM9Ei2YBAU7QFDJEjH8pVIceL7grxi1Ju1iD5QiSK+je5 -Jj5EAikfwSeAttSzsqNvaXJHfABrv5mkkVt1z3icP3HIHTYnG+uj+t8kvW+o9/1i -pD6e6LUh4w5v1aY9kaK/M3+eBH59yNYI99crPUKUBVfW4gv4DBUJAQTWRQARAQAB -tDVMZXZlbnRlIFBvbHlhayAoYW50aHJheHgpIDxsZXZlbnRlQGxldmVudGVwb2x5 -YWsubmV0PokCQQQTAQIAKwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4ACGQEF -AlSXU9QFCQfATw8ACgkQ/BtUfI2BcsjPbxAAs+UR/bJz/HeYTpPy+HnKwDJgI9GP -AZlNvp+QSIhOTtKCYkQ/Iu+5scY5J0Qyv0pcJW5Rxjx+l7KGovw84jzVznnYsJoy -UQ5H3Ev9T2xW1nrZT3abJ7j6ZIck+Q+WFHu5Plsq6doSXOXmJNoehvT3BVolvc6w -S1+CAoyA5Wm1yfocZgVOvWPWQaa1T4XA7OwxFWrvNWEZwAzTSjkGHkwmji+DxdBd -RPam9+qm/rcN1IJTu6xJPr38a9LydWonsUpTR2Qn7Bo4EJp8yHJLaiLEMV/Nmgrr -1orBYw/OzDzhbdMl+2zzwEBLUMPABdgnPM6ZCZ5PWyWnCU4jsBGyVd0IC5xEu3Eg -a0EtIdvx2lXiLfh2dulpMn52uJY5iNwaTleO+z9CENQVhh5R4FuN9H0BLiyAxf1+ -MkD3jLT+DGl02hQghtxz18iTkRk7KOw/NFn4z0is+TRl4/ocNt1LiWQXt8dr7qdx -zvUpDnxCSYZkeutzopo1TA4lKpnsS2mHabx6CbrUmF+wOIr8gHUfpBFeEQ8BHebU -5X0JrFF5mjeNl4uK9l9lD9ng74rsSpKPr15DU41jIuQDHJYd6H3TXQ4K1z7Ciivy -r4vgsruAFX/GduKseOx1obWW3GfIQzLAIuVdjldgREl61GWoLiGFqlcveiAIkN5p -Bxc20hSrHgZP9ZyIRgQQEQIABgUCTrg/KAAKCRC+dA9BPyK7GTK7AKC8Sd1ndNvc -1ispBaECbHT/JPfGrQCgvkfGBsFn/KBrgC5hTm0mSxdy942JAkEEEwECACsCGwMF -CQIchwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJOuD2qAhkBAAoJEPwbVHyN -gXLIXL4QAJtbs62EpOIFld0N+tTEFn1qQPPaExAXmH/RF5Epf+0rSS6B0OXEZBXz -cWtMPbHxoLjN1iY8o0QC1ex7/KDfYq8Ho18M9P+Lf6XfW0sJ9d021U5MJWGPs4zA -lNFXJqeMgfJZAno2N6dO/azcYHq1wmSgUbTb9Oyi1PHfn3g0UAW59dfkB8d2jEvY -Yed1X0mBPPXcbgnYNZ514JQtm9wuDdVWrh/Si9EhKg6+MPcbv18G4lpPGR+yNq9y -3Jze4vmmWen0ceDJEp06IAeTfJzzD80Oui2WXtLfaQxgf9uuZtGjrMX5l+mq7rBS -VH/dsHP1VYI0efKIs7qbmiLcMRVWYIGix9I1C3UYr3ImYiCGlBG/uQ929xbjWAHa -hy4W6rzruUWjyi/Kz7QRnyBgtHfhDO7hYziTr5hoGhd4VeUpcbxL+MegXFZsWJlE -kz8TOOsZ/4XxXHVoalg8fYOcA7j/aoszsPMQUOL/5jsVRhyP3evtVxb3m1EwvYDK -Lii4IkVxGztlBOIgeT4kwXgoJEASSZHgcd6tDv9q7o33n2I1DGL8X3axcHES2/C7 -cP+li3KL3Hc9vjgaJ9HfcQLuMcHqfoHn+YzVfbG5XeFcxhgQpwpYsZv3MTbXAQwI -fRHXRuIfOiFwqUXahi5N1WSIXNBGSyI7pu9ht5I7gIIOINE+VS7FiQJBBBMBAgAr -AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAIZAQUCUNol8QUJA/yTqwAKCRD8 -G1R8jYFyyIqUD/9yWw7WBQiWyIMpVuX9c2Ov1fAkDya43fDm0gqIgNsdaxCt5ATh -XaXZ/p2jglWwon5jDLDNsVR0/Q/t8ugdcP3bcwRtW2YYQ2F1PaNjfr5WsuPEadyc -J62DIobY4IzqBpDuqGLYdbzZeKr49VwbRRvIJpphrk3+CekFvdIs1ofEpA2Kn2oA -DXfYuaWoVBF7fTwAZmc3hYPOI1jK7nrFZbCnAT4WZPzZ4IY9lsaNTF/4mQ8vV1xF -De6HjfslHURlZWsWtQIKhIPBKoZC1nP5VRK3IHYgKw8toq780kalLH8ofv9BkSrs -t98JOoJX4etdmE8Ta/+Wg5C9EzR+909tQfdWdkaRbhvbtl/x7X76HU4ItefLR5pW -d0OSo488QZMQjCUWlzgPMsmnYMQm6ckNOp0B/RtMfbJV7t5H+JE3PLfFG55jcz3w -uNGhfZyl/ZhV9fvGLU/sPyhIW7ewuIwd+7i12fH9r4NAGB/mkSKK+tHGcTZvXxux -5QMKE+a9u6NMJRrbsIiTFwhrCLMgzLYL0mtX8FZXNFFZzGFYkiXymBR0ze4LKzRo -dMFpyP/w/IIjYBhVpgboT2EMMIgJHSsMJDCdDjI+9cAykVF6ccSiUQ11devHL6Pv -WwlT2Ub4TP4yCScHDPyfWq+tfdQlWFVRZMRJ7kmq0VagqomdRHgLPyPgDYkCHAQQ -AQIABgUCUtgrXgAKCRBH1QFsQv98LACcEACFq3Oz8nHAa6KsyspIWo0+HjzCtTv0 -G6TB+svf3fl24C93IfFhpSyxNf8XVa9h9kCU5ZImYN+LaoUGiz3lcYxjdOeFYDc4 -GU5TFrJwY9eOYYCsr+z+NLn7wlLZEO772lGUDPJMWxSGqR9yOGhQCTIADLLcp6mt -07zdejESYxMT6IjYR+rX6miWG5Hr9/lBdh/X4XhGpHEY64IL8vVB3C+FQfG3hiMB -bHbvJ4/S/cjfNM1T9oKiA0H6jklRHIdstj+2eeWA7lS+GE3Mpkra+8KmkEjV4O03 -izcRpMm1yTGoTjp9UddTNYErb/sha5YigYAqK8bj3gh6tTFNJHbN4RWgtPDyc5Va -1u+sH2ob6JS5tez8/Z6pMarGpTQujIGAlntP4igi0Q4hxyLof6Vtc6XF80uSwTvN -RRmQrcq+kLPwX0NbyZCBCI+kjBPu2b932JDTfVBKwJCLF3e1zvQqN0C7EZnIzveX -r7VtJ4WHIfSyi/HQP7xm5L0uQj+KRr+/LMaxkCDgrlqoWTgAoxCAPYH1XCvBoJRc -DHjNikyEAS8WUGl9ZHQyAoFngi/jqH6WoDAmfBUKRoBMR2hXLOKUBmObw0DHgauM -kk4kD6CW4UEy0SM/i9JD7sk9KiKoHMip1jguKRJkHJ1WSkNl7nZpeo+KG0WbGHXN -b7hnrQsNyqJkUokCQQQTAQIAKwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AC -GQEFAlLV0QIFCQXdHmsACgkQ/BtUfI2Bcsj8DA//b8wZrFY/Fj/iR5ZaO0AjmMV1 -hM7lAFWLfDiLyYofuiGLUg9rqFWj+Ks2kedVN7+22Bjgi5fvpXv3Uy4trZKKw8Xs -FJ/s8HQ6jzIv6pFdIYPLFQBqS2tEgfsanPZWIqJI9fbhOrRGN7WV5tXiksCaRO+u -rLjIhAYmsDb//BD2xqsY54ouRdrz5nRG3qG2odq2Lw8XquW6srouGaSm+BI3sow6 -l2eAW8UjbxwICQg2ZPZYCBc9ArbgLS1ha+yPhp65nGpVbqDA8rUKC11op1ArAbY3 -Yt6xzLg+RCuCHBa1gNPpDoYV9V8Zve03mEIcsK10X0RhJQ+z4INvrjtelPRCOLpN -179JmsyxwOzwAPg773SK1Z31jSirsiEke/q8j13PGNDBCb4ZKpm/KOht+4d0jJLK -GLqD85cv3/uAeSh2zWkoKcVW6uVZpiz3KA3i4YMWnteOlrlZH28nIrDXevPzkOxo -pZlhuLboCD6g6yuZI4Wm9fEiga8xmRDw4RrOIuDXWjNW6IVaeFGvnYaNf0wnmBD+ -FE1SMWwcmqgB1yIylmKqH0lYce8SVAMLkkOlaijhWrfCO5iS7zjWaVz98HCqFfwR -gHuJTxOwwlf9Qb6cyC3bGsfILBUuE0L5vUAZUAc61H+6Sv88CDDUO1EOKaqAAYhR -plvoyYZ3xiSMgzYKGZ+0OkxldmVudGUgUG9seWFrIChKYWJiZXIvWE1QUCBvbmx5 -KSA8YW50aHJheHhAamFiYmVyLmNjYy5kZT6JAj4EEwECACgCGwMGCwkIBwMCBhUI -AgkKCwQWAgMBAh4BAheABQJUl1PaBQkHwE8PAAoJEPwbVHyNgXLIQokQAKxJB9/F -TfBae6eqcT+izxGSnsvbc2bcrtsmKkhu9HwpsJ4IDutphXFB0wFalI40BL0o1k54 -Wlfv5GHbq7Ju3kW2dmTMP0WpfFytV7rr2yqSmik+skJw27BDk74rP0v4TNOHaTrP -nokfTnlaKuv1bqlwbIwV7rJ5jbAtw5hueeN4jghGU8SGlCOEZ/xGxYYsvtyPhZhn -kmsAzcPr/BpW4NkSb2SnRIO8KzcPnzxz7JDdeIusq/YW7P5OlhDx4ejdh0Wg6ISl -zxB5VoqFqNuKTBQNz4HHpqDVQqEDE4JngMerDr+4qAiDYI4w6kN3Ce2LqciRyMVh -YYnTqyyjXYY3C1WwXIa1tZb2Cw2DorshNFdACr7wKQMOoJtAFpdd3d/DRKQWCc3x -jkBERqZ+55unTY0/0uyNPoK0noAcGydiU8WGh6wyi+Do+Zxq4QJEcqL/FHrhlaiw -LTmgDS+XDl7zRtQia7ykpi/xqe74ujOHcJO8tpY0ZCdR2A13xiOi+11wndbOkBFv -dQ0vgih9ROzwe3hBbBQQOdF4hkA9vEd2Ks4gF8IR+5ixWAIyZAVbnDiLelWgQgnE -aeEwTtfcXRNAxuj+MgMPQhXQ2/cK0dPD4z51DchVRIf9G3hAuBT/CEhTqNkkm5F0 -og7azwd75+vh5RxwVld3ES6CMXKaiV4csQkdiEYEEBECAAYFAk64PygACgkQvnQP -QT8iuxlligCeNgfNE4w1AQuOC4ef3HNNY0GXgVMAnjmtCVIUJv/w6PDimvf20rgF -GVHxiQI+BBMBAgAoBQJOuD0KAhsDBQkCHIcABgsJCAcDAgYVCAIJCgsEFgIDAQIe -AQIXgAAKCRD8G1R8jYFyyPv3D/wJ+sYXqSxoo8OriGMUzG5LXs2Hf1YULdlysGa8 -mxWTwCIEMSSx8AoOKf/FyXglDVl9msfOgv6jRiN+UyNCQEv+6a5ZCL7BlAVU0Q4W -w2/UUlOUlLMC1QAodGcC3kiPSy41jnDVswKYRrICuiW1Pqgad3h7u7caqvqG1D/A -YOR2Q8JjY15j6Qf62Xx+YANx2tPWKeDyPUAN/x1W6RrEDbN5F+1qOpPFuTnpPmqH -q4zxm4Dz4szypmAKsN+5/q8T6DJtSnP7COtsY467oX2XtNTTuCIsU79lBVo/yan9 -ofB6hu12KyXwJIl1OK34g9VEP5suU3hcEw7uVAvxyMYJQlxORUCG0DAFc/oPm3d0 -ypRdbxXJMjoS3pmCf7kwnEA9PIAjZDYuVHGZkAdmYYInTIH6ipjkVxDHEF1en0h2 -zHJEZC7NIYgPyzHXmH7Xy3VZVhhKKKM12VDOuIOOecQPuFIw3hG7dymjn5e9dMzv -+DMkbEZzoFahLYkbVGG1FGzhE6Uvb/IG0UJCC4nDz0pzZpV++QHvgEvbY/HLbHJ4 -o3CT5aVE0YIhTP+zqXNFMOao8yZy+AzdMzdX+Y3ADZfY0oiZ+JH1Zo++rdrgXUhg -Y98QgMwVwESbwaBKjsC0JnlmWyNivhIOS6NRyqR75E7j7JSvgJdxhvpQXXkQ/BzL -FM1Ej4kCPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlDaJfoF -CQP8k6sACgkQ/BtUfI2BcsiEahAArZfD1yJK385eqgCZ5LryVLRXrocuF1zlHl/6 -ugRy2TEe43ex4eTOY+mv4ZJVSxbDzUqMbBv0m3IETbM0CSESjGD+i5I7K3IToZO9 -ZgIXDbpoy9x2KWjU+R5oaxCTmZ9jk1p+f4zHxc8lJdgOXPwcIIT5Euwk4LAFN+wn -CUHkO/D0xzP2ivTrM+VHNWqSUcNInAGRx+R0NvdSryIAsdA/5E3ql786WQhPy6L6 -1d7cmxaLsfAKIOf8ydNyoiqmJkT62omLLnqyERfLZRa9RKt5EgnxX6kR2BA+h/Gn -KVV18bCIJjF3Gjnh3qjJehKRaw9nmzrB9KtGQAHdIp8ivNvjMitc1ijRIECfidWd -lGxgmuI/gX58eaV3scjbs5YUFmGhcZIgjCxWWxFSwmzJTUVT5XqBpXFQB4dokj9m -NNMpM3YH8T9QaaS/m9j7cmCJ4gxp7i1bJsqsVG5BjRLiZv701eVKVmU6vqhubR0R -eSZghqho9e44ZMbn4rJ5kTQhGc7ZGNsIyChMSaYVreB8IBLDC7rg8dB/umg1OYOp -8EqRLJyXdtpa4DN3X0e4WcWb0Toj4QuyCh/es1CtBldhdqHr0aLZYCX4i/KuGTXI -kA8LTOJmZsE+K+/NCux1VHK9DADKcNjhSV0QTf+8ntGlNW6i2Mlt34thZK5eeB6W -Bbo1zl6JAhwEEAECAAYFAlLYK14ACgkQR9UBbEL/fCyyQBAA0931q8dBD/6COmat -8S+JSgcuIpylukFxU2vySBWSGRHFmFzwbokUE4bbNyutwNO2cNBa9zcxRPrkIg+7 -d65QjdZNDV2zWTjv5GwzEMjWxhP7VpTwTouYgx9j2d2KpFo2jfhTtZ7OU7DDF9YT -FsaRiZHHZT+W/JHuB9Lxc55HkSagu00yTaZURc0olBui5c/hqBte1b3OWTjCmysG -mwDL2FwdmFi9mbEm77sdD8PSVfkZaBv5rIaet+Xe/JMZoz0WUkZRCFXMr6B7aOdS -WeB7kUsPh2J5dhf4x4YaxKLOHod9JQF/DGJsdexKqMTqM/xOMSQ1FTUMCQ5SBWJc -3PywqMB/0eqlteHydlk7bb9HLCT3M6vVxTkpj834wGRsoVXPqWKzAHPpO2kjxXtc -4DBh7T88YGE2k5rxdJHb3MjWVJQzHGhrO5Ji8CQaHjUJ4BTyim++RDisDi4C/QJ4 -qPOrafw/+KyJoWyfmAUpxplPvY/LKJlvKaKxmpwlildYjH7HjoYvCjagbSCUOnzo -uM//YIJ8/o8QdxEDdYiTd7cwskYWphrAlV8+vCl/Y0lepRf+hsUS+uZi/NX4qYMx -CTsewnnqJQduuehQl9/RnoBX9T04kS64cWNaPZ4dxZUYJm3us5QFcQJMysZ4tT1Y -A0oEUX1KUTDzTQXT/kFi8MtmXauJAj4EEwECACgCGwMGCwkIBwMCBhUIAgkKCwQW -AgMBAh4BAheABQJS1dELBQkF3R5rAAoJEPwbVHyNgXLIV98P/jcu/DiP/muH2Qsy -FtjscyLu1NzBbSFB9q1jMVfx3VbaIT22Ly6BIQNHF7L2fpjf36EWpdJzpfR+Glp5 -1+KqZgIMAW5CGguSy8v7iHs6Rh5hzChiF48wCqxUmMdQ0ITTrnAXIYq6H6s8ytKF -Y31znXmne1XYBg8e4yb3pcBhkzIPeVU7rMz9PjPB0+Q2jWCpqPA4eUSV8rL2TxFR -KbEt8XlkZ6yuCLnkN84aLZFxfZA1tIGifi0PpeaO2z/IwOmftbQRiljMdnsPye49 -j4wlJS7yRIpnH3nH9Zku/MrDV/M0z7BVwKfF2F95/2QX4Tdyd/UESTdLqGtXpX4c -axahZKrOhNr+k60qSBxoBqKauZkSbZunRnbYmVa3nA2kQuIPF9/QmoZgDUfdkKZJ -u1RjwcRUGKd1XV19QjUvBMD3oHA4G6Jbi5vWKQZ40KVcL78YIL7C8dUOiPIasA45 -olaGpCSsGsfrMp5ngegxM+uh9Tc2kTFC9bTqp17VYI96cAqGrEBUQrmLmZLk0HUm -a6MNZO/+vKN4UTlgjpjxZon+/yK8bsmT/VNie5hzqZim6tfztl3rpJ9jPUeLgr5x -oGePYV02inapzNHdWFHk0L9zR/3KKfJ3IRJwUXp00Eya28hEepIvdxgLYcN1UqVn -VuFuMY8zYSl/VXtPxySCLENJHxvdtClMZXZlbnRlIFBvbHlhayA8bGV2ZW50ZUBs -ZXZlbnRlcG9seWFrLmRlPokCPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwEC -HgECF4AFAlSXU9oFCQfATw8ACgkQ/BtUfI2BcsiPxw//X2xUctIrd1O7UOk7LHBX -/xI7xXoWQcA7l/1XMuZhM8yC8yIoAgvFrWBP1a29I0P3/yigkQXs+eTDTdvb0QP2 -q72q7Azt852v5u8+dHzoOXDpbo+4lfX+0OBDWimwJuChD8LQH7b7jO0oqWIV0AzM -vegFJVp3cDbyqw08lBz3xZ79A9JtBeewf6PLpXKjEVS8bEAZjZKjsjAY+5ShtJAf -PsD8r353dmkaHgC5Aji74ijZeY3PUCvGVVCGeN9isLnRpTEn7qUvN2DfHJU4w6aw -sXu7m7zidISo6dQLUzo54dHKWPGFy6INNkzXPOgrlbYnjt7v0Ou21/R6HrhdmsSw -lt7GALJcgAUxrcT/ljB3SZhSB0BdH0DXPcUziEdfhgMhhrXYpMjwH2XFBD1MLusW -GaVDbpPrSoEnmPVePcDUonDHePcuLjfOl13mOER1Kf6WFapOCa+4HCLakfKcPnGY -eyfD7Dbz3/046MmfQ8/Iyf8ipFXN6tI2WkRKj8uq9IFYrX3yoCBxZJN837DM3Grq -h48/T3pYU1f9LiekxbsgXmcHoGNdXX5+EsuO+QILZPttlG5QLuqFdJHei77uvW+B -4u8mgzi1Zhh0hRLm4K6UaJ/fBJ87BZSHShPKI9PI073U1O/CcYXnb8cdPLu3UgSQ -FM/bxT70TSYKI01Dt4KXRfWIRgQQEQIABgUCTrg/KAAKCRC+dA9BPyK7GT9FAJ47 -X5+0dQaOFkfy3WnMgX3AmIXJYQCfR4XL47rZ9a66jWaD0IbcXMK4oE2JAj4EEwEC -ACgFAk64PJ4CGwMFCQIchwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPwb -VHyNgXLI2U8QAJGKPv1gWLn7P1KeHVsKkfRf+zgdsoY4mF3bUjX/03z1h1OKp+S7 -gZD/ZI80ckw/ElgFt9sr8J+pOgHk+aGHW+V0cZNgDHXCINb17s+Ra7SA/SWeJOrr -d4IpvTnjGc88C/j+bzRFagfnGXU601PeJdXIe6H75xVGIb0DgQBfPB9m+7p3sq/R -6UigzLwwhIQRW/l77hq79v5Rm77e0GTfcYHSuKu2Itim8p5OYCNchr4ZpBzrv5cF -/nH+HyD0AnM1q4a3mT9y4abNgtxJMGJBoIUEDT5vaTRpPowVHIGg9QroHkrYkMWA -ffIBzoq38WLnPjvjNtTncyP7sjbP8KS7NfjxZ6RAcNO6m6BTDYG/lM9jwCcOma90 -RZDVYD8hy+z1hXWFfB7zB+5TYuuKV5SXZpS9/JUR1BuI44WkY0hLHUa7inpqLlqc -b9O7KYikgyaeUKAN5LkF8A7rMVzuhrSItNzJVOs7WLnNAe9+Frzqx/jZ9aU04avS -r5OlWLdL7k9JNDnsLFqNtG/XQ7Hc8CPl0HvY3YXYGD3xwW6Ua6+ykxZGmQGPB68W -6a7G5EX+MEWKZgMQYsl1HgU49/sOD6QnCG3m2IB7bRAf5Kd527BnSgAaYHjVug8G -+X9opDwUW1b73Ut5tWfZJqQ4XBjl0Hc7Zi7OtlqdBeKGu/65QU+N9x33iQI+BBMB -AgAoAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUCUNol+gUJA/yTqwAKCRD8 -G1R8jYFyyPv+D/9lA9yMXPBROLaCRab8Ca2QJBEtpT6lGVlkQ5Am2C8xdoLGiuJF -E7Cn/lS1j4RSVDK6DELeaBMXaY2g1eun8g2ERJIUGC98zrPjZXs/ZtCZtX8vYr1X -Bf9U8Ty6N3rKgt1XHc1oMgzkKLUc72RC+P/fkDsiAg62nVcmOFFykyTXnpM/5Ux/ -9kaahjf4LwGeRqkDIoLrXdZ7FHPjei8VlKSiHTkl4F+UCzEySxiInV+BWAhL5Lvb -zHxHaNDCquOb2zbgafVKON3oa8nCZoUw3iwpjrEy/JT+1BG6vxyT/LX7wPG3SKEw -8QTl8YBF8wvHS0JHW4KTc4grCMNWDwfkrlXnp6ZzTpy4JXZfYs/ltR4FH3atDG2C -xRCSAWXkGyTPMZkougdDbJ3jjViYcWO6B//LE1qDjeC05O9G3MXVxu16M5U8nVA2 -B3bo5cVv7+ECBTKaAvG3ZV6eOaeJ63gHRY8qI7y5OgzuNfxUXMTIAjHfO2mvSy5M -qFgDI10F8rYevGOKxvPVE1F8aiD1uRAOMCcLTy3oUKHIdaskSytL1D/bT9WqWzii -OXhLhSjMzkdPSUWVABeC6KM+Jcll0A0sHTkKWS3mavx3dUacB+O4efuTKNhSvo7n -XhUvSOOikRityipE5Ma5WlXBiu54DdIMGFzANHFdb5GmC7da9F1aALkshokCHAQQ -AQIABgUCUtgrXgAKCRBH1QFsQv98LMmaD/9W2qJyFlZAsjOWgNQPwUU4vV9/Ursj -kt4RI/oS0Gzovw2bmL0a+Q/dp6wM4PBMuYQXCepF8V+o4uKzL2OjVZDVtU/KqGCY -rEigiAhG0gHxgF1ukc9JQzhShFeq7/wkY+FQ4MOhuhuUsSMlvFzAd1hY+xlvckol -DEeS54loDspUh4EwxsWlopaA1rs5dzVXrYcinz9iDzLj6ujb6uJzCQVogk9w3dv8 -smKn81TVhtR4RFecqL9mURZcGnj7NV3n2Lrl2Pe0u/DiTtpavCkzVx7v9qiB/2Di -dqWR7OtYcywUr6lZeZsNabNwntPxSP7V6EcNXF3Qpi2IkAcwdJKb+aIG1v7/Wx77 -GhpBhbtdgKEebttzO4EVVeE8a2kmgqc8VXeAeqI89egU53dUdAinejFVDyemxHnJ -L4L6uVnSxbk/vRzu+fr6EaPyBsqORGXj2OuwxlWcnWs/N9XzNaiq6funedUSYtbP -trdpt7ogvzrQew7wetcwfxSB3IWcVwA9QvGDIBHTWPrb87jKV153w9I+cSfz9jg8 -qTIOw4qad7VOC4L1oaoRsLq6VFgnoW5DLsuhaVd6fgdY/byL6H5q2FPYJ+F8ovhR -2yPlQm8UYIFwmnwzpnuGBaPtU0bP7C+SNMK+G/9+b5q4psh1MnK8sg1RfSr1w7sw -b+Tur045QrUDu4kCPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AF -AlLV0QsFCQXdHmsACgkQ/BtUfI2BcsitRA/7BbFuuAXPJMA4XtPhlYbfhNkYQ7+v -vx9HIZ1SgJfhpYwt/vbNTVclO79XD65v5JSWx+0gVJfHNolP5umB0++giIw9NCIx -uVa5eh3kS5NFfJ0YHrYgpFDdZPHRA9wI+oZgJBC/Cm40kafgTUoPFqXb0Sdlcz3R -hciLZBgYXV/uYubczfmAaJpmrVI1UuUWYrdPnmUkgitp9e6IePYiKVDeIGhBW8Bc -7Nbs2hc9yH1zwv3Affs8m+4tQQiwQHsB29WEZcmBuFllTbA5g5bvTvhfCRmYVgWC -Ti4SW+uA0B05a/aVP8fDXk82qCQ4cRB1BOwVNn+1/Aqcw+Zh8KKzH8gpPcsKGGP6 -uNg9uinuxYDneEY8cG7FSpm3XsXu4q4N6j5R63U6hz39pY/5Ib8mzYMEoLEZOLPu -CkVH9OOQc8zuiRL/wGc0pbMiGPEp13rAI0WbIFahrWS60bwtM1YEM5Ep8vD3TLl1 -pTWlF/zWpM/uJ6n/4nDXGQsGzKQn5D5Nsu7+55C0du0d1VRvYd8oG3AaNqhtM46V -C4eOqxH8XZtkJ3WMxhsHnV9acuDTpn5E5JKL7vEq0btN2UQ69lpKv7PmV/TgOJhf -KKvHZ0dh6KYY7iKW7NUCouLGibBoxDa+K4reh0i0M5UcsNiPkCqDIHUAIxW6FrvQ -xBr7NgCls+B9Kwu0JExldmVudGUgUG9seWFrIDxaM3IwLjB4MDBAZ21haWwuY29t -PokCPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlSXU9oFCQfA -Tw8ACgkQ/BtUfI2Bcsg4cw/5Af5/cxr5s8qiPvcGDglJyzFj8VBk0d7hpgdxcOi3 -VCOJY4YRoliu8WKThwxt7sD03fSZurFDDx+X27y3zPtgH/qBohmcr51jbSNom4mH -Gf8gpViFqbQlFh7tYz4kSQExgmpFx/FIaxmwFoEqiVrp6VpM2DZ6kg//4M+Ka2Mt -nuzV3C631A0eoMCJhPWPTgkGGknURvzhw6m2aGFWC/HE1yzf7Ej7fQeaqIxIG4Wy -Fk3lMV9rxMxGuUZTqIhvcU85JSriHowfX1VsAI2LXJYQ9c0jI737FcLwHv8VCa5s -NKDkLkb5S83/4Ep8e9M+a7u4WvkAqzmPfSna7bLxdsTS5gKGqEtMvMP2YGWWQxSR -GRSttiMmIC8Cnd45S8cASA2mR/ebNcrYOpa48cjYpBKDG2BIYU7oSLNulsM1qbxL -WJ0QM/g7iKHcrXhyIBaI22GS9hvmYcS960cox9oPCvNZcOKA6FBklnUg/ReJ3JTj -6D6v9SUxOOfXPQIon8EzB7BNKGedHxCFgniZnl10k+pP34YGyphMZTYGdhtAm6zq -T7PlraHQaFgQ3ba78lJcn3cWVZYpbCNJiH+Nna/Akm3/qQKTst3eW1lqopffCs1m -F6G6wjiHCw2bio5uX1c/gDr4Peh0E28heAqKopjultPXPZbSZL4D3fJIGP2j6e1B -wvmIRgQQEQIABgUCTrg/KAAKCRC+dA9BPyK7GcYrAKCgKW+qFwbMNeh4ikFg9fJx -4/lH9wCdGevT7dwBzPe6L+aWZxipEXYmjx6JAj4EEwECACgFAk64PN0CGwMFCQIc -hwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPwbVHyNgXLIThYP/AnoLpQl -whEEKaIhOSOKXegfdUHK6cL4cHRACzRIbBk/S4G2Vg/bnUW8tvWZDQLZ3CGL8Z0F -tNQ6GusUxt7mcYdSj7xynbi7bZiurgYp7B7hh1hVG3pAXEwlDnJgfoc0YZHrHZwt -HnNVYOfGEQF4zyplmUUxDyp/ZMYcXMr3PVJkYBJhYKCHOkMUtzzNjSSginaqZY1p -fgbP+Gou/9qgotkYiH84oUG9yTSKLIO5x0WzQYuoPNJyOdSHaLPfEqCC435vCYT5 -YLZB1YI5xzQiGsAL//cUCe267oiFmO9Ioky/azeX1Ouy2DH8uEDQPQFTJYXt3CbL -i10HkoBWdmncPC6+b0IJjDUo8Iv4yk0xFt2/DGkGK3h6jJxJ9pzx5KBT46iLfU50 -iTWMTguXn9ud/UJV0MpKgKjvO9hB4fae60n2UootknzEw6Y5W55PfGkT14WcrGGo -WHLSbpR6+gA9apU1cdoOC8nXlf3Eb2No6LP3X7RJXqiRsdP0s6QXkZGfR/qyNXI9 -S5j6wIyqNFU0cX21UgI9oJSKEKIKEFacgyD9za0gswEI+DZr8/p3cJE89ZX8ySgO -FG148wgaakTNGyGwR6aogGZ8IAHc83bnwGCgTeK6ZPSKNLSE/sImcTOrxIN1/x39 -r8o0TxuZjqFH+zKWfpdHX+sJLyi8Gs29CsUhiQI+BBMBAgAoAhsDBgsJCAcDAgYV -CAIJCgsEFgIDAQIeAQIXgAUCUNol+gUJA/yTqwAKCRD8G1R8jYFyyLl/EACG6QRV -kKVBoI2Ycr4UISk2+gCD2r4xSK/QLEhDFcZRgMctvPVnhod3uJOsMGJCk3aPGu91 -Jtwuj0CkeURa/cVzOjC+f7baveTuWQaAqW+r70m6F4gYHU0aDD/uQ75rTCcrsmt2 -pnZCyA9jLJxQGG11AvbOcV+7K7BuIvXs4iAactZ0hRvDVuGXuup2LnUbxyBU2oj7 -OWCXKTpZcJ0KGTWapMf8ClYYsEgS0wvMWotJzAov7ijkoP2DyEQVOPTnGWcfjsTk -QgbyqiFeBl+3IT4+xSzkPsd75dCYhsHBvCoT8cfUH4wvDXzU2CwpC1CDfHit6Hw5 -UigvZ8HXyn00Bm0UjLHGW+haS3kyOoz+z09gVFYd33cpjSnFr5is8ZMBPW31PE15 -q9/l6G/o6OGJCtOax3Yi6ttqn+KbDXIooZoRPZlayOSghyjoD40+ErevmqZPfJ3E -o1kHz62B1YpoXmhUm2Ihf2SbjWJRaW9Hp2nd81kAAXjr+8k4yvOuHxwYPFnpBjfV -cfYNQ3Zf5xF4nfszFuZMc5JYrIR3EYVgEk+n8VpulAqd0rXUEODwGy7rPjdxLY7w -DhUEZMQN3xweIb4vjPDBb0Ax3ACyfWKIdT0kC3rGOy9xyCzxWO2CjHMjrbxy4jL7 -B0WIQ5fpRcV2+wozs2WYgJKVKJgJZGYsW8dDLYkCHAQQAQIABgUCUtgrXgAKCRBH -1QFsQv98LIX0EADVefJUEMGKiTFLwUmWNF2X4oCzEZEMsQ6NliiQFvtNkKrT+OzZ -zggxfINUr0XEKgjjoGZ03Hmm7xAFc1Y51QZEr25H18PuSixz2YSHPqYwwVgLUh0v -u2AqaP0mQckssK+ZAQVvoZ7ZOI22ZXIZ6CPEPY6aJawHov8Strlm8oTbFgLfZ5Wo -3NCxMkkq3NFNHuwesccelNPefgnFZWhwr1mkUeX+rCAbQF/QHYEAi7KjfKyY+XKs -ccjYS+RWxpte21ejngp7pRYli3M8cZoaWKCzLTrD8gKztlo3op9Zc2+hjOY9gZtG -CaXkN8lchJ1yMyWju61ZO++AJq6S2OdBVxgsj9xPm+x91RbZRHQmUuq8mefUzaEm -NHE29udVFfuV//Fpabi04IrOuabkrSvP27eX9FT1y25tKFHuJdL5fDUFGnNnTvcR -X51lJmvnuIKJQ+Lthup7npS0L06+dPIDoqyxF8hmdu3RtwEsvkboPaxx5XTB5d8y -3wzBFWd4ePwBIumrY1YHSzdJCvyyLRXZbSOsHXgZfhfQ1LVgxxebP7E+stWqGLLC -Fry0WGG8f/UUgVr1QpluT6NjioUnuI/ZmKR/aKewqVYWAnr54fF+np4VdxPfYwci -lpbXpkamORZqPfq/nyoWgnp+y4AptDdDkSWnFxfcJ1wnFFcrHVUSFQ1wBYkCPgQT -AQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlLV0QsFCQXdHmsACgkQ -/BtUfI2BcsjV6w/9Fe1+3Mc6wG3R9VbxiYo13/JV4t+tA9/tcJ1R/Y96eAqVajoK -c2ZQ7FrimmlzvLIvxpH4Z76h3NmPWfOQ6qEumZQ5BM3QwBfQQ3Tmj10gfiL5vOZJ -6dUaJjwXgjz0Qyk1G3gw7K1xmtnXgBPyGT9T9q3OAhHHdV2b6xS9dWoNKhUV8GUn -HfIKwq+87aZqexjFE7ubZdOAe+5nrqnlMEfJKgDjXbazES9IYvPQiSjwR3xaIPOa -ma5WfQV0SHg3Vkhtv2PjuoYWNfNy17N7u+dfg7nAtKLIQCPht45uKk66BYWYBoDI -VQfg6zcFLpdNcFzzwmgrYRZvEvBf5aSG3KFD7UReT0695/lHheRxEAA3thsx8gaM -CCavtVxbVUluEfYZ7TgXLMuIO9OBKhi7MwB3iL5qacrNShMB+1J5FxieJBmWXdla -+kCdCdS+9kIZH+mnQ8daGEJ5R9mNcVwcWasI0o9NObqIZwhKw4obrC5Q7m2NfXL6 -FUScfA7yn7+/icdQB9fH2ZXGJVuNm1b8OBN6Nbz0QauaCystWzKXKwpVb/5M623v -Vw75RfnqCFiAf4tX58nL/QalJc4C0E+TvQ2pXC47VQvHmiAB31vKvU0nbo+lzi64 -hAPWJnhr2pmTvglquTFzLwEsWfO4zDtUwFo8KM1XFsonaoX5UzGTXPmIN5+0J0xl -dmVudGUgUG9seWFrIDxhbnRocmF4eEBhcmNobGludXgub3JnPokCPwQTAQIAKQIb -AwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheABQJUl1PbBQkHwE8PAAoJEPwbVHyN -gXLIdGAP/0ch1NeFyXWszqA5ow+itBn6iyUaplXB5I56Q77cTIFB6LqJ5+2kdUuO -UqPvOilGS3dxbyDsSdWDLs+bHRFG4uqZyGUDhmu2mvS+uDqPFwcKJUNDlgdccxph -sA5HJFGg1ca0TWWg8vjwANdU4sL9Ujbaw93v0Mx/1+aSIxyEJBNxc6DJWEfCjpSy -R9JB8WTHgvxEAImVNsT1OGNTvd2DN+17WBhxBktLHDocIGJ/fttzFgKkv6NTPwt+ -y4QyP3UgeYRZR21B6MVckk2/UuCuCY7gAGruTFVoINa/Wqn2YPPZhJYrTX7ysDaV -QLObxlepeo0UWC7wFEiuqu5OM75MWLUX8j/1OAIE6my85vrlcWSf0Z3jOAgPTjJw -VT5h7T/7NPP2azoIlOE2bh5UcKXFkT0xDYPcMr2hV2Ih+jU+Ygiyg/1yIIxearmm -PFjfIHMLepa+7RPtTlHwu4fpNPXzL13W6PXSoCTTi/suGlYmSyLtOwxq15GGT3vg -1Xh8wfkuWwbWJnBKXtt8HkteQRgDngDnRSJwsO2nnQ7+sr+F8J3rQDdlVdVcolic -ekup8ZgSjJYinfcpF+H+qy2kK2jOYyyHI/+zHQtwy1R7MbLwPJe7WNWrBmEvmazB -2//Iu5EVIfFX3flPjeRQbKX4B/SuXF48uo0/8WfdgaMW8glRWJnbiQI/BBMBAgAp -BQJUSwOnAhsDBQkF3R5rBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQ/BtU -fI2Bcsj5ihAAg0d0A8OUsNWG7TiPQTuC/D4e/5JTkJARmQ5xO6gMPxTpjSZCyWEl -7gQOg/liU8nz5HZGaJgg4HuBwTs6euqdnVi6zhW1c1wye2thGTQ7DeSPJnhju3Qe -mPS1jEdC34lXCo6eGjdKnGb7TV7hkptHKHh7XCU9n6qcXQ2cNQQbdqSCRsfVm1XD -+p+mM/FGOz8uFOrhERAUl99WkVZ4NKTdws8U6FXulbdWrWwI4eRggIdwI/Tl7zuy -ja7KxBCCeJ/gFY6g+iOYmIo6//bJITgmAG60hFHJ9JigcN6xglYFI28TCdNqM0+C -hgbZUner0vLmaxRNoXqV9Xw8ihNMQa7fUFYkX8VrXOdLdVvee7OaeLuWWE8x6usQ -NzgLDQQx9fmxtrQY+dC6Y25IPMm094z0nrbM1wtfG2+8Vw4mQ2U099fT5t3Yl7fE -PlanhgQxRZE78PxezyYxms4HV+wqvrhlBzFnWAd6H27uDPfUfO9cLgbmFTUlwFhg -gsDeIFRFx8+h4/0xAIPqUODmTiN0mj5sLRW7zvqZW6zhsGIMdPd+IkhHiGjeJqme -Ai0iOjpV3tRteoW51/+/ajPmyUBbvOxiFJNADHH2NvqoBMU1pkTvpc7Wy+2J9VcF -4TFdWBbwjU8BoC3ZgixTrT0zCSwabnKriglOhA5Ik/n5HsR7S76V13y0KExldmVu -dGUgUG9seWFrIDxhbnRocmF4eEBoYW1idXJnLmNjYy5kZT6JAj0EEwEIACcFAlSX -VHICGwMFCQfATw8FCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQ/BtUfI2Bcsia -Wg//SKLFNUTEBQG11cV/AljxmI2s8y+cPKs3VqlwEjiuRMu4DRkFVaZNEuPq0b8q -8pwcHIJ5/nZvOticm9M/g7TrTp3pOxmSYf7WG31vVrprig22dz8WxQAy76srNn1z -stg0TFO7nKNVjZOFz5D0RpWazwnXyDed3l2/7RZ1CMv7ue/rZez8FnDHN7Di3daX -AJ5XkvDAsD6AITYQd+4XEbh2rt9p8G6qUUjwzoVU/aGVgo1CGZydYMJQVccNL7kv -fumnwkAED8u9j0ZI+xfaD3c1rP98bnqk9u8rJPCAeIkA4ppisDb7noz0NaO7dDyM -ywBK4OR478fw5h7GfiIwZdVAHkCoEHNvF1ON8JnYgyplLvZvxZ0dtYGDYDiFdORN -gVgGMU12kemPws4hEx3WMgUu/BBkF58XyQyqcwt7q+WGI2lQ88UzZ/FAsu8i8r/J -jkV8FsiCJ2rSHEMddmOHoaTM+6oB2i9kZo7KmToSZu7DxuemlHpuOO3kG/iRga2y -NeancRJwbxgZhNGBbhrA/7k5UOcXkmfW74oBkbCci0ncVhHu12dsJXhk+eprkOXv -nD1vEIeuzL4V/SMDar3SxFlfLFwQk4cn9+pdeP3LxwHKBn74pABsbEBhEY4IjUEL -YOTEVoP6s+Ou1NcLxFl3elmniwL2+GV5rDM8pctkKNemtZa5Ag0ETrg4RQEQALfu -qEihKS+DTVlWUujzSq5zK/5oQ1ZL8AiTUTZuVtrRWCq0HE8tWaVxEP3Vt9FCo7yF -afXigokChzHOgzczg80tctrlv+vbFyaZnjGQH20Nlz8EnZP102zudx/RdFXG/up8 -PX50Eck2lH+IvvosMLdvrZTkFJ4SgqMGSoAgMhJHZdZB5N0y8yPPAjcEnSXp8L2A -mo9e0egCrEuqBrCZld00nIoipyDlYNZkLjPf0JRgFPO/AWWgBZLvLlteLu0emq8N -96bT3QTdXpRVPM0qeX94+2gIj+0V1uQ9+k5Xkslbbii9TnOzMnLRO6dBAONVTTb3 -ajzdXK71iv2a8Y9lKShxhYWP9JNOFlXkAp+ZoD7EZex4dgu6giV3PrTDJLyWSu41 -WfqOz6cJGpJSTacrenC542ynAaSVKXH+1plqB9kq/M7HtE/P4GveQXIVT9Sho394 -4hwkuETo20KwCgFPMmiNaBysnOykIcDsDutBOyygdovzdGEyHVsM8/kz007QFgJf -hKy91H6O/Cg7VH+yaUKllRZ+kFsoSy8/E0IqLzqBHG3sUGM6lJ0Q9fgSnpzIZsdE -jRhczNCvlovGLa/kBHcEUWQ2zrjnfjsLkxvamKJ8N6LLIXIDRv5dE2smpdi3oiVg -XdOKshyXB+obhRFlWtirK4udX5yYzUpcB0zBoo1hABEBAAGJAiUEGAECAA8CGwwF -AlSXVAEFCQfATzwACgkQ/BtUfI2Bcsj0Tw//dyDYwcnh0BIb+nDCXFC91KiPUILa -f+wI5w6c9YYEo6TR89q6Wsq8EDiqcqSJcztuNvw3MZGHWA25nNB/0046CGM/tUBd -Jyudd3TxQBi6XMMSTbG1EMtSN1UMV4guuUfYcAGW38oZ+YJACCBFFz/Kt0aa/hhi -/hBNyvI73vZfQ/fsScFDewkxikUEspRsLVmX6gaEmumOxOhJP3HBoxeBCM4Z3IXo -dON2SiiMxt9BPIPJOyKNkFQGQ3dqJIag3GnsZ1s0CEoi8iqF7uS4RjC7uOJtvn74 -CODxg1Ibl1IweyAuBEA80wUh9DGLAdRJpxWy1B2fDhIROvpcg0R5p6j9UX0b0esc -jKLQEiE1wRswjXhWpZhe7Pjl38KhwqMyaeR3OnDtP7JXazIG6HiBIp4cx4k5A2TT -X+LhvG3NHCeuxIyjLTRTWgv241kf7uAu+qgjHDSKXQqpjvo+cUYQgSxQZZXnmlz0 -sz/tEeiWl+i8kW/RNKQvNNR8ghWDW3YRak/zS+WFNoLZchecIzMj+je1vSg411o4 -Xd3LHDur6boCetaq7ZkqoS+NcX9n8MnKhHKYJblvXyc1h67s90+wSwhlumA8WqlM -yqn99m13aF8GuGZbw5B2/x/Cd7WW5wZV6ioola/yqDXB1XtDFBy2Hxr/VMRlE3Cu -kekzzVjVTZxOgZE= -=yRuG ------END PGP PUBLIC KEY BLOCK----- diff --git a/pkgs/os-specific/linux/kernel/hardened/config.nix b/pkgs/os-specific/linux/kernel/hardened/config.nix deleted file mode 100644 index dec6a757c529..000000000000 --- a/pkgs/os-specific/linux/kernel/hardened/config.nix +++ /dev/null @@ -1,133 +0,0 @@ -# Based on recommendations from: -# http://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project#Recommended_settings -# https://wiki.gentoo.org/wiki/Hardened/Hardened_Kernel_Project -# -# Dangerous features that can be permanently (for the boot session) disabled at -# boot via sysctl or kernel cmdline are left enabled here, for improved -# flexibility. -# -# See also <nixos/modules/profiles/hardened.nix> - -{ stdenv, lib, version }: - -with lib; -with lib.kernel; -with (lib.kernel.whenHelpers version); - -assert (versionAtLeast version "4.9"); - -{ - # Report BUG() conditions and kill the offending process. - BUG = yes; - - # Mark LSM hooks read-only after init. SECURITY_WRITABLE_HOOKS n - # conflicts with SECURITY_SELINUX_DISABLE y; disabling the latter - # implicitly marks LSM hooks read-only after init. - # - # SELinux can only be disabled at boot via selinux=0 - # - # We set SECURITY_WRITABLE_HOOKS n primarily for documentation purposes; the - # config builder fails to detect that it has indeed been unset. - SECURITY_SELINUX_DISABLE = whenOlder "6.4" no; # On 6.4: error: unused option: SECURITY_SELINUX_DISABLE - SECURITY_WRITABLE_HOOKS = option no; - - STRICT_KERNEL_RWX = yes; - - # Perform additional validation of commonly targeted structures. - DEBUG_CREDENTIALS = whenOlder "6.6" yes; - DEBUG_NOTIFIERS = yes; - DEBUG_PI_LIST = whenOlder "5.2" yes; # doesn't BUG() - DEBUG_PLIST = whenAtLeast "5.2" yes; - DEBUG_SG = yes; - DEBUG_VIRTUAL = yes; - SCHED_STACK_END_CHECK = yes; - - REFCOUNT_FULL = whenOlder "5.4.208" yes; - - # tell EFI to wipe memory during reset - # https://lwn.net/Articles/730006/ - RESET_ATTACK_MITIGATION = yes; - - # restricts loading of line disciplines via TIOCSETD ioctl to CAP_SYS_MODULE - CONFIG_LDISC_AUTOLOAD = option no; - - # Randomize page allocator when page_alloc.shuffle=1 - SHUFFLE_PAGE_ALLOCATOR = whenAtLeast "5.2" yes; - - # Wipe higher-level memory allocations on free() with page_poison=1 - PAGE_POISONING = yes; - PAGE_POISONING_NO_SANITY = whenOlder "5.11" yes; - PAGE_POISONING_ZERO = whenOlder "5.11" yes; - - # Enable init_on_alloc and init_on_free by default - INIT_ON_ALLOC_DEFAULT_ON = whenAtLeast "5.3" yes; - INIT_ON_FREE_DEFAULT_ON = whenAtLeast "5.3" yes; - - # Wipe all caller-used registers on exit from a function - ZERO_CALL_USED_REGS = whenAtLeast "5.15" yes; - - # Enable the SafeSetId LSM - SECURITY_SAFESETID = whenAtLeast "5.1" yes; - - # Reboot devices immediately if kernel experiences an Oops. - PANIC_TIMEOUT = freeform "-1"; - - GCC_PLUGINS = yes; # Enable gcc plugin options - # Gather additional entropy at boot time for systems that may not have appropriate entropy sources. - GCC_PLUGIN_LATENT_ENTROPY = yes; - - GCC_PLUGIN_STRUCTLEAK = option yes; # A port of the PaX structleak plugin - GCC_PLUGIN_STRUCTLEAK_BYREF_ALL = option yes; # Also cover structs passed by address - GCC_PLUGIN_STACKLEAK = whenAtLeast "4.20" yes; # A port of the PaX stackleak plugin - GCC_PLUGIN_RANDSTRUCT = whenOlder "5.19" yes; # A port of the PaX randstruct plugin - GCC_PLUGIN_RANDSTRUCT_PERFORMANCE = whenOlder "5.19" yes; - - # Runtime undefined behaviour checks - # https://www.kernel.org/doc/html/latest/dev-tools/ubsan.html - # https://developers.redhat.com/blog/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan - UBSAN = yes; - UBSAN_TRAP = whenAtLeast "5.7" yes; - UBSAN_BOUNDS = whenAtLeast "5.7" yes; - UBSAN_SANITIZE_ALL = yes; - UBSAN_LOCAL_BOUNDS = option yes; # clang only - CFI_CLANG = option yes; # clang only Control Flow Integrity since 6.1 - - # Same as GCC_PLUGIN_RANDSTRUCT*, but has been renamed to `RANDSTRUCT*` in 5.19. - RANDSTRUCT = whenAtLeast "5.19" yes; - RANDSTRUCT_PERFORMANCE = whenAtLeast "5.19" yes; - - # Disable various dangerous settings - ACPI_CUSTOM_METHOD = no; # Allows writing directly to physical memory - PROC_KCORE = no; # Exposes kernel text image layout - INET_DIAG = no; # Has been used for heap based attacks in the past - - # INET_DIAG=n causes the following options to not exist anymore, but since they are defined in common-config.nix, - # make them optional - INET_DIAG_DESTROY = option no; - INET_RAW_DIAG = option no; - INET_TCP_DIAG = option no; - INET_UDP_DIAG = option no; - INET_MPTCP_DIAG = option no; - - # Use -fstack-protector-strong (gcc 4.9+) for best stack canary coverage. - CC_STACKPROTECTOR_REGULAR = lib.mkForce (whenOlder "4.18" no); - CC_STACKPROTECTOR_STRONG = whenOlder "4.18" yes; - - # Detect out-of-bound reads/writes and use-after-free - KFENCE = whenAtLeast "5.12" yes; - - # CONFIG_DEVMEM=n causes these to not exist anymore. - STRICT_DEVMEM = option no; - IO_STRICT_DEVMEM = option no; - - # stricter IOMMU TLB invalidation - IOMMU_DEFAULT_DMA_STRICT = option yes; - IOMMU_DEFAULT_DMA_LAZY = option no; - - # not needed for less than a decade old glibc versions - LEGACY_VSYSCALL_NONE = yes; - - # Straight-Line-Speculation - # https://lwn.net/Articles/877845/ - SLS = option yes; -} diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json deleted file mode 100644 index 21772b2e03eb..000000000000 --- a/pkgs/os-specific/linux/kernel/hardened/patches.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "4.19": { - "patch": { - "extra": "-hardened1", - "name": "linux-hardened-4.19.309-hardened1.patch", - "sha256": "1hww72w5anmfr9czqbl31glzl70s34492k9qz9zax141zg1sf6sp", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.309-hardened1/linux-hardened-4.19.309-hardened1.patch" - }, - "sha256": "1yc45kfiwdqsqa11sxafs82b0day6qvgjcll8rx9vipidsmagbcm", - "version": "4.19.309" - }, - "5.10": { - "patch": { - "extra": "-hardened1", - "name": "linux-hardened-5.10.212-hardened1.patch", - "sha256": "0h04i94vshhcli5m4qpnqg4vsi5v1ifvdhhklk7c0bvkfk35cbml", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.212-hardened1/linux-hardened-5.10.212-hardened1.patch" - }, - "sha256": "14vll2bghd52wngjxy78hgglydcxka59yziji0w56dcdpmky9wqc", - "version": "5.10.212" - }, - "5.15": { - "patch": { - "extra": "-hardened1", - "name": "linux-hardened-5.15.151-hardened1.patch", - "sha256": "040jc5n9qsdz2wv5ksfvc28vd72nmya2i2f0ps0jiras6l2wlhjz", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.151-hardened1/linux-hardened-5.15.151-hardened1.patch" - }, - "sha256": "0jby224ncdardjwmf8c59s5j71inpvdlzah984ilf2b6y85pc7la", - "version": "5.15.151" - }, - "5.4": { - "patch": { - "extra": "-hardened1", - "name": "linux-hardened-5.4.271-hardened1.patch", - "sha256": "0rw5il7885d0d3k2hmh46541svib6rp32g00fcl5bw37ydmq3z8b", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.271-hardened1/linux-hardened-5.4.271-hardened1.patch" - }, - "sha256": "0l2qv4xlhnry9crs90rkihsxyny6jz8kxw08bfad7nys9hrn3g6d", - "version": "5.4.271" - }, - "6.1": { - "patch": { - "extra": "-hardened1", - "name": "linux-hardened-6.1.81-hardened1.patch", - "sha256": "0af9dxdsa858zyqc0vsrzg098afhg5vpb2wpr6gj2ykwc13iaf07", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.81-hardened1/linux-hardened-6.1.81-hardened1.patch" - }, - "sha256": "0arl96yrqplbmp2gjyqcfma1lgc30kbn95m0sflv0yyldwf8dg8f", - "version": "6.1.81" - }, - "6.5": { - "patch": { - "extra": "-hardened1", - "name": "linux-hardened-6.5.13-hardened1.patch", - "sha256": "1fj6yaq2gdjlj2h19vkm13jrx0yiczj6pvric1kq1r6cprqrkkki", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.5.13-hardened1/linux-hardened-6.5.13-hardened1.patch" - }, - "sha256": "1dfbbydmayfj9npx3z0g38p574pmcx3qgs49dv0npigl48wd9yvq", - "version": "6.5.13" - }, - "6.6": { - "patch": { - "extra": "-hardened1", - "name": "linux-hardened-6.6.21-hardened1.patch", - "sha256": "0k35s5pj92lvfp6kw3isg78zc3gijsg0xbzcyvxdkmhzaq8j6i1i", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.21-hardened1/linux-hardened-6.6.21-hardened1.patch" - }, - "sha256": "0mz420w99agr7jv1jgqfr4fjhzbv005xif086sqx556s900l62zf", - "version": "6.6.21" - }, - "6.7": { - "patch": { - "extra": "-hardened1", - "name": "linux-hardened-6.7.6-hardened1.patch", - "sha256": "063yrs3g0knlz37aq979jhng9k6l19873nbi1jy167xfqmpqqajr", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.7.6-hardened1/linux-hardened-6.7.6-hardened1.patch" - }, - "sha256": "1lrp7pwnxnqyy8c2l4n4nz997039gbnssrfm8ss8kl3h2c7fr2g4", - "version": "6.7.6" - } -} diff --git a/pkgs/os-specific/linux/kernel/hardened/update.py b/pkgs/os-specific/linux/kernel/hardened/update.py deleted file mode 100755 index cb624ebe86b9..000000000000 --- a/pkgs/os-specific/linux/kernel/hardened/update.py +++ /dev/null @@ -1,305 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i python -p "python3.withPackages (ps: [ps.pygithub ps.packaging])" git gnupg - -# This is automatically called by ../update.sh. - -from __future__ import annotations - -import json -import os -import re -import subprocess -import sys -from dataclasses import dataclass -from pathlib import Path -from tempfile import TemporaryDirectory -from typing import ( - Dict, - Iterator, - List, - Optional, - Sequence, - Tuple, - TypedDict, - Union, -) - -from github import Github -from github.GitRelease import GitRelease - -from packaging.version import parse as parse_version, Version - -VersionComponent = Union[int, str] -Version = List[VersionComponent] - - -PatchData = TypedDict("PatchData", {"name": str, "url": str, "sha256": str, "extra": str}) -Patch = TypedDict("Patch", { - "patch": PatchData, - "version": str, - "sha256": str, -}) - - -def read_min_kernel_branch() -> List[str]: - with open(NIXPKGS_KERNEL_PATH / "kernels-org.json") as f: - return list(parse_version(sorted(json.load(f).keys())[0]).release) - - -@dataclass -class ReleaseInfo: - version: Version - release: GitRelease - - -HERE = Path(__file__).resolve().parent -NIXPKGS_KERNEL_PATH = HERE.parent -NIXPKGS_PATH = HERE.parents[4] -HARDENED_GITHUB_REPO = "anthraxx/linux-hardened" -HARDENED_TRUSTED_KEY = HERE / "anthraxx.asc" -HARDENED_PATCHES_PATH = HERE / "patches.json" -MIN_KERNEL_VERSION: Version = read_min_kernel_branch() - - -def run(*args: Union[str, Path]) -> subprocess.CompletedProcess[bytes]: - try: - return subprocess.run( - args, - check=True, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - encoding="utf-8", - ) - except subprocess.CalledProcessError as err: - print( - f"error: `{err.cmd}` failed unexpectedly\n" - f"status code: {err.returncode}\n" - f"stdout:\n{err.stdout.strip()}\n" - f"stderr:\n{err.stderr.strip()}", - file=sys.stderr, - ) - sys.exit(1) - - -def nix_prefetch_url(url: str) -> Tuple[str, Path]: - output = run("nix-prefetch-url", "--print-path", url).stdout - sha256, path = output.strip().split("\n") - return sha256, Path(path) - - -def verify_openpgp_signature( - *, name: str, trusted_key: Path, sig_path: Path, data_path: Path, -) -> bool: - with TemporaryDirectory(suffix=".nixpkgs-gnupg-home") as gnupg_home_str: - gnupg_home = Path(gnupg_home_str) - run("gpg", "--homedir", gnupg_home, "--import", trusted_key) - keyring = gnupg_home / "pubring.kbx" - try: - subprocess.run( - ("gpgv", "--keyring", keyring, sig_path, data_path), - check=True, - stderr=subprocess.PIPE, - encoding="utf-8", - ) - return True - except subprocess.CalledProcessError as err: - print( - f"error: signature for {name} failed to verify!", - file=sys.stderr, - ) - print(err.stderr, file=sys.stderr, end="") - return False - - -def fetch_patch(*, name: str, release_info: ReleaseInfo) -> Optional[Patch]: - release = release_info.release - extra = f'-{release_info.version[-1]}' - - def find_asset(filename: str) -> str: - try: - it: Iterator[str] = ( - asset.browser_download_url - for asset in release.get_assets() - if asset.name == filename - ) - return next(it) - except StopIteration: - raise KeyError(filename) - - patch_filename = f"{name}.patch" - try: - patch_url = find_asset(patch_filename) - sig_url = find_asset(patch_filename + ".sig") - except KeyError: - print(f"error: {patch_filename}{{,.sig}} not present", file=sys.stderr) - return None - - sha256, patch_path = nix_prefetch_url(patch_url) - _, sig_path = nix_prefetch_url(sig_url) - sig_ok = verify_openpgp_signature( - name=name, - trusted_key=HARDENED_TRUSTED_KEY, - sig_path=sig_path, - data_path=patch_path, - ) - if not sig_ok: - return None - - kernel_ver = re.sub(r"(.*)(-hardened[\d]+)$", r'\1', release_info.release.tag_name) - major = kernel_ver.split('.')[0] - sha256_kernel, _ = nix_prefetch_url(f"mirror://kernel/linux/kernel/v{major}.x/linux-{kernel_ver}.tar.xz") - - return Patch( - patch=PatchData(name=patch_filename, url=patch_url, sha256=sha256, extra=extra), - version=kernel_ver, - sha256=sha256_kernel - ) - - -def parse_version(version_str: str) -> Version: - version: Version = [] - for component in re.split('\.|\-', version_str): - try: - version.append(int(component)) - except ValueError: - version.append(component) - return version - - -def version_string(version: Version) -> str: - return ".".join(str(component) for component in version) - - -def major_kernel_version_key(kernel_version: Version) -> str: - return version_string(kernel_version[:-1]) - - -def commit_patches(*, kernel_key: str, message: str) -> None: - new_patches_path = HARDENED_PATCHES_PATH.with_suffix(".new") - with open(new_patches_path, "w") as new_patches_file: - json.dump(patches, new_patches_file, indent=4, sort_keys=True) - new_patches_file.write("\n") - os.rename(new_patches_path, HARDENED_PATCHES_PATH) - message = f"linux/hardened/patches/{kernel_key}: {message}" - print(message) - if os.environ.get("COMMIT"): - run( - "git", - "-C", - NIXPKGS_PATH, - "commit", - f"--message={message}", - HARDENED_PATCHES_PATH, - ) - - -# Load the existing patches. -patches: Dict[str, Patch] -with open(HARDENED_PATCHES_PATH) as patches_file: - patches = json.load(patches_file) - -# Get the set of currently packaged kernel versions. -kernel_versions = {} -with open(NIXPKGS_KERNEL_PATH / "kernels-org.json") as kernel_versions_json: - kernel_versions = json.load(kernel_versions_json) - for kernel_branch_str in kernel_versions: - if kernel_branch_str == "testing": continue - kernel_branch = [int(i) for i in kernel_branch_str.split(".")] - if kernel_branch < MIN_KERNEL_VERSION: continue - kernel_version = [int(i) for i in kernel_versions[kernel_branch_str]["version"].split(".")] - kernel_versions[kernel_branch_str] = kernel_version - -# Remove patches for unpackaged kernel versions. -for kernel_key in sorted(patches.keys() - kernel_versions.keys()): - commit_patches(kernel_key=kernel_key, message="remove") - -g = Github(os.environ.get("GITHUB_TOKEN")) -repo = g.get_repo(HARDENED_GITHUB_REPO) -failures = False - -# Match each kernel version with the best patch version. -releases = {} -i = 0 -for release in repo.get_releases(): - # Dirty workaround to make sure that we don't run into issues because - # GitHub's API only allows fetching the last 1000 releases. - # It's not reliable to exit earlier because not every kernel minor may - # have hardened patches, hence the naive search below. - i += 1 - if i > 500: - break - - version = parse_version(release.tag_name) - # needs to look like e.g. 5.6.3-hardened1 - if len(version) < 4: - continue - - if not (isinstance(version[-2], int)): - continue - - kernel_version = version[:-1] - - kernel_key = major_kernel_version_key(kernel_version) - try: - packaged_kernel_version = kernel_versions[kernel_key] - except KeyError: - continue - - release_info = ReleaseInfo(version=version, release=release) - - if kernel_version == packaged_kernel_version: - releases[kernel_key] = release_info - else: - # Fall back to the latest patch for this major kernel version, - # skipping patches for kernels newer than the packaged one. - if '.'.join(str(x) for x in kernel_version) > '.'.join(str(x) for x in packaged_kernel_version): - continue - elif ( - kernel_key not in releases or releases[kernel_key].version < version - ): - releases[kernel_key] = release_info - -# Update hardened-patches.json for each release. -for kernel_key in sorted(releases.keys()): - release_info = releases[kernel_key] - release = release_info.release - version = release_info.version - version_str = release.tag_name - name = f"linux-hardened-{version_str}" - - old_version: Optional[Version] = None - old_version_str: Optional[str] = None - update: bool - try: - old_filename = patches[kernel_key]["patch"]["name"] - old_version_str = old_filename.replace("linux-hardened-", "").replace( - ".patch", "" - ) - old_version = parse_version(old_version_str) - update = old_version < version - except KeyError: - update = True - - if update: - patch = fetch_patch(name=name, release_info=release_info) - if patch is None: - failures = True - else: - patches[kernel_key] = patch - if old_version: - message = f"{old_version_str} -> {version_str}" - else: - message = f"init at {version_str}" - commit_patches(kernel_key=kernel_key, message=message) - -missing_kernel_versions = kernel_versions.keys() - patches.keys() - -if missing_kernel_versions: - print( - f"warning: no patches for kernel versions " - + ", ".join(missing_kernel_versions), - file=sys.stderr, - ) - -if failures: - sys.exit(1) diff --git a/pkgs/os-specific/linux/kernel/htmldocs.nix b/pkgs/os-specific/linux/kernel/htmldocs.nix deleted file mode 100644 index dad377db06ab..000000000000 --- a/pkgs/os-specific/linux/kernel/htmldocs.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, stdenv -, graphviz -, imagemagick -, linux_latest -, makeFontsConf -, perl -, python3 -, sphinx -, which -}: - -stdenv.mkDerivation { - pname = "linux-kernel-latest-htmldocs"; - - inherit (linux_latest) version src; - - postPatch = '' - patchShebangs \ - Documentation/sphinx/parse-headers.pl \ - scripts/{get_abi.pl,get_feat.pl,kernel-doc,sphinx-pre-install} \ - tools/net/ynl/ynl-gen-rst.py - ''; - - FONTCONFIG_FILE = makeFontsConf { - fontDirectories = [ ]; - }; - - nativeBuildInputs = [ - graphviz - imagemagick - perl - python3.pkgs.sphinx - python3.pkgs.sphinx-rtd-theme - python3.pkgs.pyyaml - which - ]; - - preBuild = '' - export XDG_CACHE_HOME="$(mktemp -d)" - ''; - - makeFlags = [ "htmldocs" ]; - - installPhase = '' - mkdir -p $out/share/doc - mv Documentation/output $out/share/doc/linux-doc - cp -r Documentation/* $out/share/doc/linux-doc/ - ''; - - meta = with lib; { - description = "Linux kernel html documentation"; - homepage = "https://www.kernel.org/doc/htmldocs/"; - platforms = platforms.linux; - inherit (linux_latest.meta) license; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json deleted file mode 100644 index b69c0f9c6003..000000000000 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "testing": { - "version": "6.9-rc6", - "hash": "sha256:075l5vhk8zmwln4jks7gr5n5k67s65qvs07l2rpbc7a75fdp6c14" - }, - "6.1": { - "version": "6.1.90", - "hash": "sha256:07cfg0chssvpc4mqls3aln6s4lqjp6k4x2n63wndmkjgfqpdg8w3" - }, - "5.15": { - "version": "5.15.158", - "hash": "sha256:1inmdpif3qf1blmvjj4i7y42bylvhv0wyj3b0apq12zxlj1iq1zr" - }, - "5.10": { - "version": "5.10.216", - "hash": "sha256:0lg1zfb9y4ps86q85mlnyalb3s90zix003z62jb9bw139f65h473" - }, - "5.4": { - "version": "5.4.275", - "hash": "sha256:0k1hyknx854k8z27j4rq1gcp8l0xc0bspmrhc41a033gjilb1lns" - }, - "4.19": { - "version": "4.19.313", - "hash": "sha256:1j1r4mrdh1ray468jr5i8d2afiswb653bhq0ck8bcdw4rwp5w558" - }, - "6.6": { - "version": "6.6.30", - "hash": "sha256:1ilwmgpgvddwkd9nx5999cb6z18scjyq7jklid26k1hg7f35nsmn" - }, - "6.8": { - "version": "6.8.9", - "hash": "sha256:1dn9bgmf03bdfbmgq98d043702g808rjikxs2i9yia57iqiz21gr" - } -} diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix deleted file mode 100644 index 3344808ca278..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-libre.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ stdenv, lib, fetchsvn, linux -, scripts ? fetchsvn { - url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/"; - rev = "19546"; - sha256 = "1yyj7pbfs02fki1rdxfj9gcrxdrl26igisy4fji7czcc9xbw03qm"; - } -, ... -}: - -let - majorMinor = lib.versions.majorMinor linux.modDirVersion; - - major = lib.versions.major linux.modDirVersion; - minor = lib.versions.minor linux.modDirVersion; - patch = lib.versions.patch linux.modDirVersion; - - # See http://linux-libre.fsfla.org/pub/linux-libre/releases - versionPrefix = if linux.kernelOlder "5.14" then - "gnu1" - else - "gnu"; -in linux.override { - argsOverride = { - modDirVersion = "${linux.modDirVersion}-${versionPrefix}"; - isLibre = true; - - src = stdenv.mkDerivation { - name = "${linux.name}-libre-src"; - src = linux.src; - buildPhase = '' - # --force flag to skip empty files after deblobbing - ${scripts}/${majorMinor}/deblob-${majorMinor} --force \ - ${major} ${minor} ${patch} - ''; - checkPhase = '' - ${scripts}/deblob-check - ''; - installPhase = '' - cp -r . "$out" - ''; - }; - - passthru.updateScript = ./update-libre.sh; - - maintainers = with lib.maintainers; [ qyliss ivar ]; - }; -} diff --git a/pkgs/os-specific/linux/kernel/linux-rpi.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix deleted file mode 100644 index f1449998984b..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-rpi.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ stdenv, lib, buildPackages, fetchFromGitHub, fetchpatch, perl, buildLinux, rpiVersion, ... } @ args: - -let - # NOTE: raspberrypifw & raspberryPiWirelessFirmware should be updated with this - modDirVersion = "6.1.63"; - tag = "stable_20231123"; -in -lib.overrideDerivation (buildLinux (args // { - version = "${modDirVersion}-${tag}"; - inherit modDirVersion; - - src = fetchFromGitHub { - owner = "raspberrypi"; - repo = "linux"; - rev = tag; - hash = "sha256-4Rc57y70LmRFwDnOD4rHoHGmfxD9zYEAwYm9Wvyb3no="; - }; - - defconfig = { - "1" = "bcmrpi_defconfig"; - "2" = "bcm2709_defconfig"; - "3" = if stdenv.hostPlatform.isAarch64 then "bcmrpi3_defconfig" else "bcm2709_defconfig"; - "4" = "bcm2711_defconfig"; - }.${toString rpiVersion}; - - features = { - efiBootStub = false; - } // (args.features or {}); - - kernelPatches = (args.kernelPatches or []) ++ [ - # Fix "WARNING: unmet direct dependencies detected for MFD_RP1", and - # subsequent build failure. - # https://github.com/NixOS/nixpkgs/pull/268280#issuecomment-1911839809 - # https://github.com/raspberrypi/linux/pull/5900 - { - name = "drm-rp1-depends-on-instead-of-select-MFD_RP1.patch"; - patch = fetchpatch { - url = "https://github.com/peat-psuwit/rpi-linux/commit/6de0bb51929cd3ad4fa27b2a421a2af12e6468f5.patch"; - hash = "sha256-9pHcbgWTiztu48SBaLPVroUnxnXMKeCGt5vEo9V8WGw="; - }; - } - - # Fix `ERROR: modpost: missing MODULE_LICENSE() in <...>/bcm2712-iommu.o` - # by preventing such code from being built as module. - # https://github.com/NixOS/nixpkgs/pull/284035#issuecomment-1913015802 - # https://github.com/raspberrypi/linux/pull/5910 - { - name = "iommu-bcm2712-don-t-allow-building-as-module.patch"; - patch = fetchpatch { - url = "https://github.com/peat-psuwit/rpi-linux/commit/693a5e69bddbcbe1d1b796ebc7581c3597685b1b.patch"; - hash = "sha256-8BYYQDM5By8cTk48ASYKJhGVQnZBIK4PXtV70UtfS+A="; - }; - } - ]; - - extraMeta = if (rpiVersion < 3) then { - platforms = with lib.platforms; arm; - hydraPlatforms = []; - } else { - platforms = with lib.platforms; arm ++ aarch64; - hydraPlatforms = [ "aarch64-linux" ]; - }; -} // (args.argsOverride or {}))) (oldAttrs: { - postConfigure = '' - # The v7 defconfig has this set to '-v7' which screws up our modDirVersion. - sed -i $buildRoot/.config -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/' - sed -i $buildRoot/include/config/auto.conf -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/' - ''; - - # Make copies of the DTBs named after the upstream names so that U-Boot finds them. - # This is ugly as heck, but I don't know a better solution so far. - postFixup = '' - dtbDir=${if stdenv.isAarch64 then "$out/dtbs/broadcom" else "$out/dtbs"} - rm $dtbDir/bcm283*.dtb - copyDTB() { - cp -v "$dtbDir/$1" "$dtbDir/$2" - } - '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv6l-linux"]) '' - copyDTB bcm2708-rpi-zero-w.dtb bcm2835-rpi-zero.dtb - copyDTB bcm2708-rpi-zero-w.dtb bcm2835-rpi-zero-w.dtb - copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-a.dtb - copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-b.dtb - copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-b-rev2.dtb - copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-a-plus.dtb - copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-b-plus.dtb - copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-zero.dtb - copyDTB bcm2708-rpi-cm.dtb bcm2835-rpi-cm.dtb - '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux"]) '' - copyDTB bcm2709-rpi-2-b.dtb bcm2836-rpi-2-b.dtb - '' + lib.optionalString (lib.elem stdenv.hostPlatform.system ["armv7l-linux" "aarch64-linux"]) '' - copyDTB bcm2710-rpi-zero-2.dtb bcm2837-rpi-zero-2.dtb - copyDTB bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb - copyDTB bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-a-plus.dtb - copyDTB bcm2710-rpi-3-b-plus.dtb bcm2837-rpi-3-b-plus.dtb - copyDTB bcm2710-rpi-cm3.dtb bcm2837-rpi-cm3.dtb - copyDTB bcm2711-rpi-4-b.dtb bcm2838-rpi-4-b.dtb - ''; -}) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix deleted file mode 100644 index b013c7f1bf18..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, buildLinux, fetchurl -, kernelPatches ? [ ] -, structuredExtraConfig ? {} -, extraMeta ? {} -, argsOverride ? {} -, ... } @ args: - -let - version = "5.10.215-rt107"; # updated by ./update-rt.sh - branch = lib.versions.majorMinor version; - kversion = builtins.elemAt (lib.splitString "-" version) 0; -in buildLinux (args // { - inherit version; - - # modDirVersion needs a patch number, change X.Y-rtZ to X.Y.0-rtZ. - modDirVersion = lib.versions.pad 3 version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz"; - sha256 = "1af6h86flx96pszg006agpak2f9dkk2jqaazfykd7aafqdcs3747"; - }; - - kernelPatches = let rt-patch = { - name = "rt"; - patch = fetchurl { - url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "0lnnpnfmypafzfzhcmaxqqc18nna4fr236v6hrcyabnxmxam79xj"; - }; - }; in [ rt-patch ] ++ kernelPatches; - - structuredExtraConfig = with lib.kernel; { - PREEMPT_RT = yes; - # Fix error: unused option: PREEMPT_RT. - EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt) - # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n'). - PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it. - # Fix error: unused option: RT_GROUP_SCHED. - RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch. - } // structuredExtraConfig; - - extraMeta = extraMeta // { - inherit branch; - }; -} // argsOverride) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix deleted file mode 100644 index 91774ba38dbd..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-rt-5.15.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib, buildLinux, fetchurl -, kernelPatches ? [ ] -, structuredExtraConfig ? {} -, extraMeta ? {} -, argsOverride ? {} -, ... } @ args: - -let - version = "5.15.153-rt75"; # updated by ./update-rt.sh - branch = lib.versions.majorMinor version; - kversion = builtins.elemAt (lib.splitString "-" version) 0; -in buildLinux (args // { - inherit version; - - # modDirVersion needs a patch number, change X.Y-rtZ to X.Y.0-rtZ. - modDirVersion = if (builtins.match "[^.]*[.][^.]*-.*" version) == null then version - else lib.replaceStrings ["-"] [".0-"] version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz"; - sha256 = "1g44gjcwcdq5552vwinljqwiy90bxax72jjvdasp71x88khv3pfp"; - }; - - kernelPatches = let rt-patch = { - name = "rt"; - patch = fetchurl { - url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "04i22p0ap4dsqybf9jbbmrbzva11qknilnyk46z18gzrr0msjldl"; - }; - }; in [ rt-patch ] ++ kernelPatches; - - structuredExtraConfig = with lib.kernel; { - PREEMPT_RT = yes; - # Fix error: unused option: PREEMPT_RT. - EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt) - # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n'). - PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it. - # Fix error: unused option: RT_GROUP_SCHED. - RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch. - } // structuredExtraConfig; - - extraMeta = extraMeta // { - inherit branch; - }; -} // argsOverride) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix deleted file mode 100644 index 463385036292..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, buildLinux, fetchurl -, kernelPatches ? [ ] -, structuredExtraConfig ? {} -, extraMeta ? {} -, argsOverride ? {} -, ... } @ args: - -let - version = "5.4.271-rt89"; # updated by ./update-rt.sh - branch = lib.versions.majorMinor version; - kversion = builtins.elemAt (lib.splitString "-" version) 0; -in buildLinux (args // { - inherit version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz"; - sha256 = "0l2qv4xlhnry9crs90rkihsxyny6jz8kxw08bfad7nys9hrn3g6d"; - }; - - kernelPatches = let rt-patch = { - name = "rt"; - patch = fetchurl { - url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "15k9jja5yd9zf5yhd7hhydwh4hksg2mybk66jhdjsryh4w9jav7z"; - }; - }; in [ rt-patch ] ++ kernelPatches; - - structuredExtraConfig = with lib.kernel; { - PREEMPT_RT = yes; - # Fix error: unused option: PREEMPT_RT. - EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt) - # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n'). - PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it. - # Fix error: unused option: RT_GROUP_SCHED. - RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch. - } // structuredExtraConfig; - - extraMeta = extraMeta // { - inherit branch; - }; -} // argsOverride) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix deleted file mode 100644 index 06028d209779..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib, buildLinux, fetchurl -, kernelPatches ? [ ] -, structuredExtraConfig ? {} -, extraMeta ? {} -, argsOverride ? {} -, ... } @ args: - -let - version = "6.1.83-rt28"; # updated by ./update-rt.sh - branch = lib.versions.majorMinor version; - kversion = builtins.elemAt (lib.splitString "-" version) 0; -in buildLinux (args // { - inherit version; - - # modDirVersion needs a patch number, change X.Y-rtZ to X.Y.0-rtZ. - modDirVersion = if (builtins.match "[^.]*[.][^.]*-.*" version) == null then version - else lib.replaceStrings ["-"] [".0-"] version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz"; - sha256 = "145iw3wii7znhrqdmgnwhswk235g6gw8axjjji2cw4rn148rddl8"; - }; - - kernelPatches = let rt-patch = { - name = "rt"; - patch = fetchurl { - url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "07wv3zd7n5378k8ywdavrp5ndqkdcis923dwpswfv7062xm34y5h"; - }; - }; in [ rt-patch ] ++ kernelPatches; - - structuredExtraConfig = with lib.kernel; { - PREEMPT_RT = yes; - # Fix error: unused option: PREEMPT_RT. - EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt) - # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n'). - PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it. - # Fix error: unused option: RT_GROUP_SCHED. - RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch. - } // structuredExtraConfig; - - extraMeta = extraMeta // { - inherit branch; - }; -} // argsOverride) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix deleted file mode 100644 index eb85f9c3cd09..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib, buildLinux, fetchurl -, kernelPatches ? [ ] -, structuredExtraConfig ? {} -, extraMeta ? {} -, argsOverride ? {} -, ... } @ args: - -let - version = "6.6.25-rt29"; # updated by ./update-rt.sh - branch = lib.versions.majorMinor version; - kversion = builtins.elemAt (lib.splitString "-" version) 0; -in buildLinux (args // { - inherit version; - - # modDirVersion needs a patch number, change X.Y-rtZ to X.Y.0-rtZ. - modDirVersion = if (builtins.match "[^.]*[.][^.]*-.*" version) == null then version - else lib.replaceStrings ["-"] [".0-"] version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz"; - sha256 = "0i0zvqlj02rm6wpbidji0rn9559vrpfc1b8gbfjk70lhhyz11llr"; - }; - - kernelPatches = let rt-patch = { - name = "rt"; - patch = fetchurl { - url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "15mb4zycv86yp1cbs5svgs3pnmh8jihjhf4jxc4h4ywlzglkb1za"; - }; - }; in [ rt-patch ] ++ kernelPatches; - - structuredExtraConfig = with lib.kernel; { - PREEMPT_RT = yes; - # Fix error: unused option: PREEMPT_RT. - EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt) - # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n'). - PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it. - # Fix error: unused option: RT_GROUP_SCHED. - RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch. - } // structuredExtraConfig; - - extraMeta = extraMeta // { - inherit branch; - }; -} // argsOverride) diff --git a/pkgs/os-specific/linux/kernel/mainline.nix b/pkgs/os-specific/linux/kernel/mainline.nix deleted file mode 100644 index 4e1d5b8a9e87..000000000000 --- a/pkgs/os-specific/linux/kernel/mainline.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ branch, lib, fetchurl, fetchzip, buildLinux, ... } @ args: - -let - allKernels = builtins.fromJSON (builtins.readFile ./kernels-org.json); - thisKernel = allKernels.${branch}; - inherit (thisKernel) version; - - src = - # testing kernels are a special case because they don't have tarballs on the CDN - if branch == "testing" - then fetchzip { - url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; - inherit (thisKernel) hash; - } - else fetchurl { - url = "mirror://kernel/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz"; - inherit (thisKernel) hash; - }; - - args' = (builtins.removeAttrs args ["branch"]) // { - inherit src version; - - modDirVersion = lib.versions.pad 3 version; - extraMeta.branch = branch; - } // (args.argsOverride or {}); -in -buildLinux args' diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix deleted file mode 100644 index cab04ad0c7d8..000000000000 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ /dev/null @@ -1,431 +0,0 @@ -{ lib, stdenv, buildPackages, runCommand, nettools, bc, bison, flex, perl, rsync, gmp, libmpc, mpfr, openssl -, libelf, cpio, elfutils, zstd, python3Minimal, zlib, pahole, kmod, ubootTools -, fetchpatch -, rustc, rust-bindgen, rustPlatform -}: - -let - lib_ = lib; - stdenv_ = stdenv; - - readConfig = configfile: import (runCommand "config.nix" {} '' - echo "{" > "$out" - while IFS='=' read key val; do - [ "x''${key#CONFIG_}" != "x$key" ] || continue - no_firstquote="''${val#\"}"; - echo ' "'"$key"'" = "'"''${no_firstquote%\"}"'";' >> "$out" - done < "${configfile}" - echo "}" >> $out - '').outPath; -in lib.makeOverridable ({ - # The kernel version - version, - # Position of the Linux build expression - pos ? null, - # Additional kernel make flags - extraMakeFlags ? [], - # The name of the kernel module directory - # Needs to be X.Y.Z[-extra], so pad with zeros if needed. - modDirVersion ? null /* derive from version */, - # The kernel source (tarball, git checkout, etc.) - src, - # a list of { name=..., patch=..., extraConfig=...} patches - kernelPatches ? [], - # The kernel .config file - configfile, - # Manually specified nixexpr representing the config - # If unspecified, this will be autodetected from the .config - config ? lib.optionalAttrs allowImportFromDerivation (readConfig configfile), - # Custom seed used for CONFIG_GCC_PLUGIN_RANDSTRUCT if enabled. This is - # automatically extended with extra per-version and per-config values. - randstructSeed ? "", - # Extra meta attributes - extraMeta ? {}, - - # for module compatibility - isZen ? false, - isLibre ? false, - isHardened ? false, - - # Whether to utilize the controversial import-from-derivation feature to parse the config - allowImportFromDerivation ? false, - # ignored - features ? null, lib ? lib_, stdenv ? stdenv_, -}: - -let - # Provide defaults. Note that we support `null` so that callers don't need to use optionalAttrs, - # which can lead to unnecessary strictness and infinite recursions. - modDirVersion_ = if modDirVersion == null then lib.versions.pad 3 version else modDirVersion; -in -let - # Shadow the un-defaulted parameter; don't want null. - modDirVersion = modDirVersion_; - inherit (lib) - hasAttr getAttr optional optionals optionalString optionalAttrs maintainers platforms; - - drvAttrs = config_: kernelConf: kernelPatches: configfile: - let - # Folding in `ubootTools` in the default nativeBuildInputs is problematic, as - # it makes updating U-Boot cumbersome, since it will go above the current - # threshold of rebuilds - # - # To prevent these needless rounds of staging for U-Boot builds, we can - # limit the inclusion of ubootTools to target platforms where uImage *may* - # be produced. - # - # This command lists those (kernel-named) platforms: - # .../linux $ grep -l uImage ./arch/*/Makefile | cut -d'/' -f3 | sort - # - # This is still a guesstimation, but since none of our cached platforms - # coincide in that list, this gives us "perfect" decoupling here. - linuxPlatformsUsingUImage = [ - "arc" - "arm" - "csky" - "mips" - "powerpc" - "sh" - "sparc" - "xtensa" - ]; - needsUbootTools = - lib.elem stdenv.hostPlatform.linuxArch linuxPlatformsUsingUImage - ; - - config = let attrName = attr: "CONFIG_" + attr; in { - isSet = attr: hasAttr (attrName attr) config; - - getValue = attr: if config.isSet attr then getAttr (attrName attr) config else null; - - isYes = attr: (config.getValue attr) == "y"; - - isNo = attr: (config.getValue attr) == "n"; - - isModule = attr: (config.getValue attr) == "m"; - - isEnabled = attr: (config.isModule attr) || (config.isYes attr); - - isDisabled = attr: (!(config.isSet attr)) || (config.isNo attr); - } // config_; - - isModular = config.isYes "MODULES"; - withRust = config.isYes "RUST"; - - buildDTBs = kernelConf.DTB or false; - - # Dependencies that are required to build kernel modules - moduleBuildDependencies = [ - pahole - perl - libelf - # module makefiles often run uname commands to find out the kernel version - (buildPackages.deterministic-uname.override { inherit modDirVersion; }) - ] - ++ optional (lib.versionAtLeast version "5.13") zstd - ++ optionals withRust [ rustc rust-bindgen ] - ; - - in (optionalAttrs isModular { outputs = [ "out" "dev" ]; }) // { - passthru = rec { - inherit version modDirVersion config kernelPatches configfile - moduleBuildDependencies stdenv; - inherit isZen isHardened isLibre withRust; - isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true; - baseVersion = lib.head (lib.splitString "-rc" version); - kernelOlder = lib.versionOlder baseVersion; - kernelAtLeast = lib.versionAtLeast baseVersion; - }; - - inherit src; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr zstd python3Minimal kmod ] - ++ optional needsUbootTools ubootTools - ++ optional (lib.versionOlder version "5.8") libelf - ++ optionals (lib.versionAtLeast version "4.16") [ bison flex ] - ++ optionals (lib.versionAtLeast version "5.2") [ cpio pahole zlib ] - ++ optional (lib.versionAtLeast version "5.8") elfutils - ++ optionals withRust [ rustc rust-bindgen ]; - - RUST_LIB_SRC = lib.optionalString withRust rustPlatform.rustLibSrc; - - patches = - map (p: p.patch) kernelPatches - # Required for deterministic builds along with some postPatch magic. - ++ optional (lib.versionOlder version "5.19") ./randstruct-provide-seed.patch - ++ optional (lib.versionAtLeast version "5.19") ./randstruct-provide-seed-5.19.patch - # Linux 5.12 marked certain PowerPC-only symbols as GPL, which breaks - # OpenZFS; this was fixed in Linux 5.19 so we backport the fix - # https://github.com/openzfs/zfs/pull/13367 - ++ optional (lib.versionAtLeast version "5.12" && - lib.versionOlder version "5.19" && - stdenv.hostPlatform.isPower) - (fetchpatch { - url = "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/patch/?id=d9e5c3e9e75162f845880535957b7fd0b4637d23"; - hash = "sha256-bBOyJcP6jUvozFJU0SPTOf3cmnTQ6ZZ4PlHjiniHXLU="; - }); - - postPatch = '' - # Ensure that depmod gets resolved through PATH - sed -i Makefile -e 's|= /sbin/depmod|= depmod|' - - # Don't include a (random) NT_GNU_BUILD_ID, to make the build more deterministic. - # This way kernels can be bit-by-bit reproducible depending on settings - # (e.g. MODULE_SIG and SECURITY_LOCKDOWN_LSM need to be disabled). - # See also https://kernelnewbies.org/BuildId - sed -i Makefile -e 's|--build-id=[^ ]*|--build-id=none|' - - # Some linux-hardened patches now remove certain files in the scripts directory, so the file may not exist. - [[ -f scripts/ld-version.sh ]] && patchShebangs scripts/ld-version.sh - - # Set randstruct seed to a deterministic but diversified value. Note: - # we could have instead patched gen-random-seed.sh to take input from - # the buildFlags, but that would require also patching the kernel's - # toplevel Makefile to add a variable export. This would be likely to - # cause future patch conflicts. - for file in scripts/gen-randstruct-seed.sh scripts/gcc-plugins/gen-random-seed.sh; do - if [ -f "$file" ]; then - substituteInPlace "$file" \ - --replace NIXOS_RANDSTRUCT_SEED \ - $(echo ${randstructSeed}${src} ${placeholder "configfile"} | sha256sum | cut -d ' ' -f 1 | tr -d '\n') - break - fi - done - - patchShebangs scripts - - # also patch arch-specific install scripts - for i in $(find arch -name install.sh); do - patchShebangs "$i" - done - ''; - - configurePhase = '' - runHook preConfigure - - mkdir build - export buildRoot="$(pwd)/build" - - echo "manual-config configurePhase buildRoot=$buildRoot pwd=$PWD" - - if [ -f "$buildRoot/.config" ]; then - echo "Could not link $buildRoot/.config : file exists" - exit 1 - fi - ln -sv ${configfile} $buildRoot/.config - - # reads the existing .config file and prompts the user for options in - # the current kernel source that are not found in the file. - make $makeFlags "''${makeFlagsArray[@]}" oldconfig - runHook postConfigure - - make $makeFlags "''${makeFlagsArray[@]}" prepare - actualModDirVersion="$(cat $buildRoot/include/config/kernel.release)" - if [ "$actualModDirVersion" != "${modDirVersion}" ]; then - echo "Error: modDirVersion ${modDirVersion} specified in the Nix expression is wrong, it should be: $actualModDirVersion" - exit 1 - fi - - buildFlagsArray+=("KBUILD_BUILD_TIMESTAMP=$(date -u -d @$SOURCE_DATE_EPOCH)") - - cd $buildRoot - ''; - - buildFlags = [ - "KBUILD_BUILD_VERSION=1-NixOS" - kernelConf.target - "vmlinux" # for "perf" and things like that - ] ++ optional isModular "modules" - ++ optionals buildDTBs ["dtbs" "DTC_FLAGS=-@"] - ++ extraMakeFlags; - - installFlags = [ - "INSTALL_PATH=$(out)" - ] ++ (optional isModular "INSTALL_MOD_PATH=$(out)") - ++ optionals buildDTBs ["dtbs_install" "INSTALL_DTBS_PATH=$(out)/dtbs"]; - - preInstall = let - # All we really need to do here is copy the final image and System.map to $out, - # and use the kernel's modules_install, firmware_install, dtbs_install, etc. targets - # for the rest. Easy, right? - # - # Unfortunately for us, the obvious way of getting the built image path, - # make -s image_name, does not work correctly, because some architectures - # (*cough* aarch64 *cough*) change KBUILD_IMAGE on the fly in their install targets, - # so we end up attempting to install the thing we didn't actually build. - # - # Thankfully, there's a way out that doesn't involve just hardcoding everything. - # - # The kernel has an install target, which runs a pretty simple shell script - # (located at scripts/install.sh or arch/$arch/boot/install.sh, depending on - # which kernel version you're looking at) that tries to do something sensible. - # - # (it would be great to hijack this script immediately, as it has all the - # information we need passed to it and we don't need it to try and be smart, - # but unfortunately, the exact location of the scripts differs between kernel - # versions, and they're seemingly not considered to be public API at all) - # - # One of the ways it tries to discover what "something sensible" actually is - # is by delegating to what's supposed to be a user-provided install script - # located at ~/bin/installkernel. - # - # (the other options are: - # - a distribution-specific script at /sbin/installkernel, - # which we can't really create in the sandbox easily - # - an architecture-specific script at arch/$arch/boot/install.sh, - # which attempts to guess _something_ and usually guesses very wrong) - # - # More specifically, the install script exec's into ~/bin/installkernel, if one - # exists, with the following arguments: - # - # $1: $KERNELRELEASE - full kernel version string - # $2: $KBUILD_IMAGE - the final image path - # $3: System.map - path to System.map file, seemingly hardcoded everywhere - # $4: $INSTALL_PATH - path to the destination directory as specified in installFlags - # - # $2 is exactly what we want, so hijack the script and use the knowledge given to it - # by the makefile overlords for our own nefarious ends. - # - # Note that the makefiles specifically look in ~/bin/installkernel, and - # writeShellScriptBin writes the script to <store path>/bin/installkernel, - # so HOME needs to be set to just the store path. - # - # FIXME: figure out a less roundabout way of doing this. - installkernel = buildPackages.writeShellScriptBin "installkernel" '' - cp -av $2 $4 - cp -av $3 $4 - ''; - in '' - installFlagsArray+=("-j$NIX_BUILD_CORES") - export HOME=${installkernel} - ''; - - # Some image types need special install targets (e.g. uImage is installed with make uinstall) - installTargets = [ - (kernelConf.installTarget or ( - /**/ if kernelConf.target == "uImage" then "uinstall" - else if kernelConf.target == "zImage" || kernelConf.target == "Image.gz" then "zinstall" - else "install")) - ]; - - postInstall = optionalString isModular '' - mkdir -p $dev - cp vmlinux $dev/ - if [ -z "''${dontStrip-}" ]; then - installFlagsArray+=("INSTALL_MOD_STRIP=1") - fi - make modules_install $makeFlags "''${makeFlagsArray[@]}" \ - $installFlags "''${installFlagsArray[@]}" - unlink $out/lib/modules/${modDirVersion}/build - rm -f $out/lib/modules/${modDirVersion}/source - - mkdir -p $dev/lib/modules/${modDirVersion}/{build,source} - - # To save space, exclude a bunch of unneeded stuff when copying. - (cd .. && rsync --archive --prune-empty-dirs \ - --exclude='/build/' \ - * $dev/lib/modules/${modDirVersion}/source/) - - cd $dev/lib/modules/${modDirVersion}/source - - cp $buildRoot/{.config,Module.symvers} $dev/lib/modules/${modDirVersion}/build - make modules_prepare $makeFlags "''${makeFlagsArray[@]}" O=$dev/lib/modules/${modDirVersion}/build - - # For reproducibility, removes accidental leftovers from a `cc1` call - # from a `try-run` call from the Makefile - rm -f $dev/lib/modules/${modDirVersion}/build/.[0-9]*.d - - # Keep some extra files on some arches (powerpc, aarch64) - for f in arch/powerpc/lib/crtsavres.o arch/arm64/kernel/ftrace-mod.o; do - if [ -f "$buildRoot/$f" ]; then - cp $buildRoot/$f $dev/lib/modules/${modDirVersion}/build/$f - fi - done - - # !!! No documentation on how much of the source tree must be kept - # If/when kernel builds fail due to missing files, you can add - # them here. Note that we may see packages requiring headers - # from drivers/ in the future; it adds 50M to keep all of its - # headers on 3.10 though. - - chmod u+w -R .. - arch=$(cd $dev/lib/modules/${modDirVersion}/build/arch; ls) - - # Remove unused arches - for d in $(cd arch/; ls); do - if [ "$d" = "$arch" ]; then continue; fi - if [ "$arch" = arm64 ] && [ "$d" = arm ]; then continue; fi - rm -rf arch/$d - done - - # Remove all driver-specific code (50M of which is headers) - rm -fR drivers - - # Keep all headers - find . -type f -name '*.h' -print0 | xargs -0 -r chmod u-w - - # Keep linker scripts (they are required for out-of-tree modules on aarch64) - find . -type f -name '*.lds' -print0 | xargs -0 -r chmod u-w - - # Keep root and arch-specific Makefiles - chmod u-w Makefile arch/"$arch"/Makefile* - - # Keep whole scripts dir - chmod u-w -R scripts - - # Delete everything not kept - find . -type f -perm -u=w -print0 | xargs -0 -r rm - - # Delete empty directories - find -empty -type d -delete - ''; - - requiredSystemFeatures = [ "big-parallel" ]; - - meta = { - description = - "The Linux kernel" + - (if kernelPatches == [] then "" else - " (with patches: " - + lib.concatStringsSep ", " (map (x: x.name) kernelPatches) - + ")"); - license = lib.licenses.gpl2Only; - homepage = "https://www.kernel.org/"; - maintainers = lib.teams.linux-kernel.members ++ [ - maintainers.thoughtpolice - ]; - platforms = platforms.linux; - badPlatforms = - lib.optionals (lib.versionOlder version "4.15") [ "riscv32-linux" "riscv64-linux" ] ++ - lib.optional (lib.versionOlder version "5.19") "loongarch64-linux"; - timeout = 14400; # 4 hours - } // extraMeta; - }; -in - -assert lib.versionOlder version "5.8" -> libelf != null; -assert lib.versionAtLeast version "5.8" -> elfutils != null; - -stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.linux-kernel kernelPatches configfile) // { - pname = "linux"; - inherit version; - - enableParallelBuilding = true; - - hardeningDisable = [ "bindnow" "format" "fortify" "stackprotector" "pic" "pie" ]; - - # Absolute paths for compilers avoid any PATH-clobbering issues. - makeFlags = [ - "O=$(buildRoot)" - "CC=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" - "HOSTCC=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc" - "HOSTLD=${buildPackages.stdenv.cc.bintools}/bin/${buildPackages.stdenv.cc.targetPrefix}ld" - "ARCH=${stdenv.hostPlatform.linuxArch}" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ] ++ (stdenv.hostPlatform.linux-kernel.makeFlags or []) - ++ extraMakeFlags; - - karch = stdenv.hostPlatform.linuxArch; -} // (optionalAttrs (pos != null) { inherit pos; }))) diff --git a/pkgs/os-specific/linux/kernel/modinst-arg-list-too-long.patch b/pkgs/os-specific/linux/kernel/modinst-arg-list-too-long.patch deleted file mode 100644 index 58a9191989ae..000000000000 --- a/pkgs/os-specific/linux/kernel/modinst-arg-list-too-long.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst -index 07650ee..934a7a8 100644 ---- a/scripts/Makefile.modinst -+++ b/scripts/Makefile.modinst -@@ -9,7 +9,8 @@ include scripts/Kbuild.include - - # - --__modules := $(sort $(shell grep -h '\.ko$$' /dev/null $(wildcard $(MODVERDIR)/*.mod))) -+__modules := $(sort $(foreach f,$(wildcard $(MODVERDIR)/*.mod),$(shell \ -+ grep -h '\.ko$$' '$f'))) - modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o))) - - PHONY += $(modules) diff --git a/pkgs/os-specific/linux/kernel/mptcp-config.nix b/pkgs/os-specific/linux/kernel/mptcp-config.nix deleted file mode 100644 index 59b11167ac22..000000000000 --- a/pkgs/os-specific/linux/kernel/mptcp-config.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib }: -with lib.kernel; -{ - # DRM_AMDGPU = yes; - - IPV6 = yes; - MPTCP = yes; - IP_MULTIPLE_TABLES = yes; - - # Enable advanced path-managers... - MPTCP_PM_ADVANCED = yes; - MPTCP_FULLMESH = yes; - MPTCP_NDIFFPORTS = yes; - # ... but use none by default. - # The default is safer if source policy routing is not setup. - DEFAULT_DUMMY = yes; - DEFAULT_MPTCP_PM.freeform = "default"; - - # MPTCP scheduler selection. - MPTCP_SCHED_ADVANCED = yes; - DEFAULT_MPTCP_SCHED.freeform = "default"; - - # Smarter TCP congestion controllers - TCP_CONG_LIA = module; - TCP_CONG_OLIA = module; - TCP_CONG_WVEGAS = module; - TCP_CONG_BALIA = module; -} diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix deleted file mode 100644 index 20100774395e..000000000000 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ lib, fetchpatch, fetchurl }: - -{ - ath_regd_optional = rec { - name = "ath_regd_optional"; - patch = fetchpatch { - name = name + ".patch"; - url = "https://github.com/openwrt/openwrt/raw/ed2015c38617ed6624471e77f27fbb0c58c8c660/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch"; - sha256 = "1ssDXSweHhF+pMZyd6kSrzeW60eb6MO6tlf0il17RC0="; - postFetch = '' - sed -i 's/CPTCFG_/CONFIG_/g' $out - sed -i '/--- a\/local-symbols/,$d' $out - ''; - }; - }; - - bridge_stp_helper = - { name = "bridge-stp-helper"; - patch = ./bridge-stp-helper.patch; - }; - - # Reverts the buggy commit causing https://bugzilla.kernel.org/show_bug.cgi?id=217802 - dell_xps_regression = { - name = "dell_xps_regression"; - patch = fetchpatch { - name = "Revert-101bd907b424-misc-rtsx-judge-ASPM-Mode-to-set.patch"; - url = "https://raw.githubusercontent.com/openSUSE/kernel-source/1b02b1528a26f4e9b577e215c114d8c5e773ee10/patches.suse/Revert-101bd907b424-misc-rtsx-judge-ASPM-Mode-to-set.patch"; - sha256 = "sha256-RHJdQ4p0msTOVPR+/dYiKuwwEoG9IpIBqT4dc5cJjf8="; - }; - }; - - request_key_helper = - { name = "request-key-helper"; - patch = ./request-key-helper.patch; - }; - - request_key_helper_updated = - { name = "request-key-helper-updated"; - patch = ./request-key-helper-updated.patch; - }; - - modinst_arg_list_too_long = - { name = "modinst-arglist-too-long"; - patch = ./modinst-arg-list-too-long.patch; - }; - - hardened = let - mkPatch = kernelVersion: { version, sha256, patch }: let src = patch; in { - name = lib.removeSuffix ".patch" src.name; - patch = fetchurl (lib.filterAttrs (k: v: k != "extra") src); - extra = src.extra; - inherit version sha256; - }; - patches = lib.importJSON ./hardened/patches.json; - in lib.mapAttrs mkPatch patches; - - # Adapted for Linux 5.4 from: - # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=04896832c94aae4842100cafb8d3a73e1bed3a45 - rtl8761b_support = - { name = "rtl8761b-support"; - patch = ./rtl8761b-support.patch; - }; - - export-rt-sched-migrate = { - name = "export-rt-sched-migrate"; - patch = ./export-rt-sched-migrate.patch; - }; - - rust_1_75 = { - name = "rust-1.75.patch"; - patch = ./rust-1.75.patch; - }; - - rust_1_76 = { - name = "rust-1.76.patch"; - patch = fetchurl { - name = "rust-1.76.patch"; - url = "https://lore.kernel.org/rust-for-linux/20240217002638.57373-2-ojeda@kernel.org/raw"; - hash = "sha256-q3iNBo8t4b1Rn5k5lau2myqOAqdA/9V9A+ok2jGkLdY="; - }; - }; - - rust_1_77-6_8 = { - name = "rust-1.77.patch"; - patch = fetchurl { - name = "rust-1.77.patch"; - url = "https://lore.kernel.org/rust-for-linux/20240217002717.57507-1-ojeda@kernel.org/raw"; - hash = "sha256-0KW9nHpJeMSDssCPXWZbrN8kxq5bA434t+XuPfwslUc="; - }; - }; - - rust_1_77-6_9 = { - name = "rust-1.77.patch"; - patch = ./rust-1.77.patch; - }; -} diff --git a/pkgs/os-specific/linux/kernel/perf/default.nix b/pkgs/os-specific/linux/kernel/perf/default.nix deleted file mode 100644 index 02f0407425d1..000000000000 --- a/pkgs/os-specific/linux/kernel/perf/default.nix +++ /dev/null @@ -1,172 +0,0 @@ -{ lib -, stdenv -, fetchpatch -, fetchurl -, kernel -, elfutils -, python3 -, perl -, newt -, slang -, asciidoc -, xmlto -, makeWrapper -, docbook_xsl -, docbook_xml_dtd_45 -, libxslt -, flex -, bison -, pkg-config -, libunwind -, binutils-unwrapped -, libiberty -, audit -, libbfd -, libbfd_2_38 -, libopcodes -, libopcodes_2_38 -, libpfm -, libtraceevent -, openssl -, systemtap -, numactl -, zlib -, babeltrace -, withGtk ? false -, gtk2 -, withZstd ? true -, zstd -, withLibcap ? true -, libcap -}: -let - d3-flame-graph-templates = stdenv.mkDerivation rec { - pname = "d3-flame-graph-templates"; - version = "4.1.3"; - - src = fetchurl { - url = "https://registry.npmjs.org/d3-flame-graph/-/d3-flame-graph-${version}.tgz"; - sha256 = "sha256-W5/Vh5jarXUV224aIiTB2TnBFYT3naEIcG2945QjY8Q="; - }; - - installPhase = '' - install -D -m 0755 -t $out/share/d3-flame-graph/ ./dist/templates/* - ''; - }; -in - -stdenv.mkDerivation { - pname = "perf-linux"; - version = kernel.version; - - inherit (kernel) src; - - postPatch = '' - # Linux scripts - patchShebangs scripts - patchShebangs tools/perf/check-headers.sh - '' + lib.optionalString (lib.versionAtLeast kernel.version "6.3") '' - # perf-specific scripts - patchShebangs tools/perf/pmu-events - '' + '' - cd tools/perf - - for x in util/build-id.c util/dso.c; do - substituteInPlace $x --replace /usr/lib/debug /run/current-system/sw/lib/debug - done - - '' + lib.optionalString (lib.versionAtLeast kernel.version "5.8") '' - substituteInPlace scripts/python/flamegraph.py \ - --replace "/usr/share/d3-flame-graph/d3-flamegraph-base.html" \ - "${d3-flame-graph-templates}/share/d3-flame-graph/d3-flamegraph-base.html" - - '' + lib.optionalString (lib.versionAtLeast kernel.version "6.0") '' - patchShebangs pmu-events/jevents.py - ''; - - makeFlags = [ "prefix=$(out)" "WERROR=0" "ASCIIDOC8=1" ] ++ kernel.makeFlags - ++ lib.optional (!withGtk) "NO_GTK2=1" - ++ lib.optional (!withZstd) "NO_LIBZSTD=1" - ++ lib.optional (!withLibcap) "NO_LIBCAP=1"; - - hardeningDisable = [ "format" ]; - - # perf refers both to newt and slang - nativeBuildInputs = [ - asciidoc - xmlto - docbook_xsl - docbook_xml_dtd_45 - libxslt - flex - bison - libiberty - audit - makeWrapper - pkg-config - python3 - ]; - - buildInputs = [ - elfutils - newt - slang - libtraceevent - libunwind - zlib - openssl - numactl - python3 - perl - babeltrace - ] ++ (if (lib.versionAtLeast kernel.version "5.19") - then [ libbfd libopcodes ] - else [ libbfd_2_38 libopcodes_2_38 ]) - ++ lib.optional (lib.meta.availableOn stdenv.hostPlatform systemtap) systemtap.stapBuild - ++ lib.optional withGtk gtk2 - ++ lib.optional withZstd zstd - ++ lib.optional withLibcap libcap - ++ lib.optional (lib.versionAtLeast kernel.version "5.8") libpfm - ++ lib.optional (lib.versionAtLeast kernel.version "6.0") python3.pkgs.setuptools; - - env.NIX_CFLAGS_COMPILE = toString ([ - "-Wno-error=cpp" - "-Wno-error=bool-compare" - "-Wno-error=deprecated-declarations" - "-Wno-error=stringop-truncation" - ] ++ lib.optionals (stdenv.cc.isGNU && lib.versions.major stdenv.cc.version == "13") [ - # Workaround gcc bug that causes enev simplest `perf top` runs to - # crash: https://gcc.gnu.org/PR111009. - # Can be removed once gcc-13 is updated past 13.2.0. - "-O1" - ]); - - doCheck = false; # requires "sparse" - - installTargets = [ "install" "install-man" ]; - - # TODO: Add completions based on perf-completion.sh - postInstall = '' - # Same as perf. Remove. - rm -f $out/bin/trace - ''; - - separateDebugInfo = true; - - preFixup = '' - # Pull in 'objdump' into PATH to make annotations work. - # The embedded Python interpreter will search PATH to calculate the Python path configuration(Should be fixed by upstream). - # Add python.interpreter to PATH for now. - wrapProgram $out/bin/perf \ - --prefix PATH : ${lib.makeBinPath [ binutils-unwrapped python3 ]} - ''; - - meta = with lib; { - homepage = "https://perf.wiki.kernel.org/"; - description = "Linux tools to profile with performance counters"; - mainProgram = "perf"; - maintainers = with maintainers; [ viric ]; - platforms = platforms.linux; - broken = kernel.kernelOlder "5"; - }; -} diff --git a/pkgs/os-specific/linux/kernel/randstruct-provide-seed-5.19.patch b/pkgs/os-specific/linux/kernel/randstruct-provide-seed-5.19.patch deleted file mode 100644 index 5ca897a76bf6..000000000000 --- a/pkgs/os-specific/linux/kernel/randstruct-provide-seed-5.19.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/scripts/gen-randstruct-seed.sh b/scripts/gen-randstruct-seed.sh -index 61017b36c464..7bb494dd2e18 100755 ---- a/scripts/gen-randstruct-seed.sh -+++ b/scripts/gen-randstruct-seed.sh -@@ -1,7 +1,7 @@ - #!/bin/sh - # SPDX-License-Identifier: GPL-2.0 - --SEED=$(od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n') -+SEED="NIXOS_RANDSTRUCT_SEED" - echo "$SEED" > "$1" - HASH=$(echo -n "$SEED" | sha256sum | cut -d" " -f1) - echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2" diff --git a/pkgs/os-specific/linux/kernel/randstruct-provide-seed.patch b/pkgs/os-specific/linux/kernel/randstruct-provide-seed.patch deleted file mode 100644 index 1328b9cee3c9..000000000000 --- a/pkgs/os-specific/linux/kernel/randstruct-provide-seed.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru a/scripts/gcc-plugins/gen-random-seed.sh b/scripts/gcc-plugins/gen-random-seed.sh ---- a/scripts/gcc-plugins/gen-random-seed.sh 2019-01-11 11:50:29.228258920 +0100 -+++ b/scripts/gcc-plugins/gen-random-seed.sh 2019-01-11 12:18:33.555902720 +0100 -@@ -2,7 +2,7 @@ - # SPDX-License-Identifier: GPL-2.0 - - if [ ! -f "$1" ]; then -- SEED=`od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n'` -+ SEED="NIXOS_RANDSTRUCT_SEED" - echo "const char *randstruct_seed = \"$SEED\";" > "$1" - HASH=`echo -n "$SEED" | sha256sum | cut -d" " -f1 | tr -d ' \n'` - echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2" diff --git a/pkgs/os-specific/linux/kernel/request-key-helper-updated.patch b/pkgs/os-specific/linux/kernel/request-key-helper-updated.patch deleted file mode 100644 index aabb9e801be4..000000000000 --- a/pkgs/os-specific/linux/kernel/request-key-helper-updated.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/security/keys/request_key.c b/security/keys/request_key.c -index 88172c163953..4da74a1eebb2 100644 ---- a/security/keys/request_key.c -+++ b/security/keys/request_key.c -@@ -161,7 +161,7 @@ static int call_sbin_request_key(struct key_construction *cons, - - /* set up the argument list */ - i = 0; -- argv[i++] = "/sbin/request-key"; -+ argv[i++] = "/run/current-system/sw/bin/request-key"; - argv[i++] = (char *) op; - argv[i++] = key_str; - argv[i++] = uid_str; diff --git a/pkgs/os-specific/linux/kernel/request-key-helper.patch b/pkgs/os-specific/linux/kernel/request-key-helper.patch deleted file mode 100644 index 8264e265aedf..000000000000 --- a/pkgs/os-specific/linux/kernel/request-key-helper.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/security/keys/request_key.c b/security/keys/request_key.c -index 957b9e3e1492..5436a0d8b81d 100644 ---- a/security/keys/request_key.c -+++ b/security/keys/request_key.c -@@ -114,7 +114,7 @@ static int call_usermodehelper_keys(const char *path, char **argv, char **envp, - */ - static int call_sbin_request_key(struct key *authkey, void *aux) - { -- static char const request_key[] = "/sbin/request-key"; -+ static char const request_key[] = "/run/current-system/sw/bin/request-key"; - struct request_key_auth *rka = get_request_key_auth(authkey); - const struct cred *cred = current_cred(); - key_serial_t prkey, sskey; diff --git a/pkgs/os-specific/linux/kernel/rtl8761b-support.patch b/pkgs/os-specific/linux/kernel/rtl8761b-support.patch deleted file mode 100644 index b6d80d5bc8d3..000000000000 --- a/pkgs/os-specific/linux/kernel/rtl8761b-support.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c -index 67f4bc21e7c5..3a9afc905f24 100644 ---- a/drivers/bluetooth/btrtl.c -+++ b/drivers/bluetooth/btrtl.c -@@ -130,12 +130,19 @@ static const struct id_table ic_id_table[] = { - .cfg_name = "rtl_bt/rtl8821c_config" }, - - /* 8761A */ -- { IC_MATCH_FL_LMPSUBV, RTL_ROM_LMP_8761A, 0x0, -+ { IC_INFO(RTL_ROM_LMP_8761A, 0xa), - .config_needed = false, - .has_rom_version = true, - .fw_name = "rtl_bt/rtl8761a_fw.bin", - .cfg_name = "rtl_bt/rtl8761a_config" }, - -+ /* 8761B */ -+ { IC_INFO(RTL_ROM_LMP_8761A, 0xb), -+ .config_needed = false, -+ .has_rom_version = true, -+ .fw_name = "rtl_bt/rtl8761b_fw.bin", -+ .cfg_name = "rtl_bt/rtl8761b_config" }, -+ - /* 8822C with USB interface */ - { IC_INFO(RTL_ROM_LMP_8822B, 0xc), - .config_needed = false, -@@ -251,6 +258,7 @@ static int rtlbt_parse_firmware(struct hci_dev *hdev, - { RTL_ROM_LMP_8723B, 9 }, /* 8723D */ - { RTL_ROM_LMP_8821A, 10 }, /* 8821C */ - { RTL_ROM_LMP_8822B, 13 }, /* 8822C */ -+ { RTL_ROM_LMP_8761A, 14 }, /* 8761B */ - }; - - min_size = sizeof(struct rtl_epatch_header) + sizeof(extension_sig) + 3; diff --git a/pkgs/os-specific/linux/kernel/rust-1.75.patch b/pkgs/os-specific/linux/kernel/rust-1.75.patch deleted file mode 100644 index 9d6b1a3dcc75..000000000000 --- a/pkgs/os-specific/linux/kernel/rust-1.75.patch +++ /dev/null @@ -1,373 +0,0 @@ -From 77007eef13d52d0a5df9706d47078c4e1390a0a9 Mon Sep 17 00:00:00 2001 -From: Miguel Ojeda <ojeda@kernel.org> -Date: Sun, 24 Dec 2023 18:21:28 +0100 -Subject: [PATCH] rust: upgrade to Rust 1.75.0 - -This is the next upgrade to the Rust toolchain, from 1.74.1 to 1.75.0 -(i.e. the latest) [1]. - -See the upgrade policy [2] and the comments on the first upgrade in -commit 3ed03f4da06e ("rust: upgrade to Rust 1.68.2"). - -# Unstable features - -The `const_maybe_uninit_zeroed` unstable feature [3] was stabilized in -Rust 1.75.0, which we were using in the PHYLIB abstractions. - -The only unstable features allowed to be used outside the `kernel` crate -are still `new_uninit,offset_of`, though other code to be upstreamed -may increase the list. - -Please see [4] for details. - -# Other improvements - -Rust 1.75.0 stabilized `pointer_byte_offsets` [5] which we could -potentially use as an alternative for `ptr_metadata` in the future. - -# Required changes - -For this upgrade, no changes were required (i.e. on our side). - -# `alloc` upgrade and reviewing - -The vast majority of changes are due to our `alloc` fork being upgraded -at once. - -There are two kinds of changes to be aware of: the ones coming from -upstream, which we should follow as closely as possible, and the updates -needed in our added fallible APIs to keep them matching the newer -infallible APIs coming from upstream. - -Instead of taking a look at the diff of this patch, an alternative -approach is reviewing a diff of the changes between upstream `alloc` and -the kernel's. This allows to easily inspect the kernel additions only, -especially to check if the fallible methods we already have still match -the infallible ones in the new version coming from upstream. - -Another approach is reviewing the changes introduced in the additions in -the kernel fork between the two versions. This is useful to spot -potentially unintended changes to our additions. - -To apply these approaches, one may follow steps similar to the following -to generate a pair of patches that show the differences between upstream -Rust and the kernel (for the subset of `alloc` we use) before and after -applying this patch: - - # Get the difference with respect to the old version. - git -C rust checkout $(linux/scripts/min-tool-version.sh rustc) - git -C linux ls-tree -r --name-only HEAD -- rust/alloc | - cut -d/ -f3- | - grep -Fv README.md | - xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH - git -C linux diff --patch-with-stat --summary -R > old.patch - git -C linux restore rust/alloc - - # Apply this patch. - git -C linux am rust-upgrade.patch - - # Get the difference with respect to the new version. - git -C rust checkout $(linux/scripts/min-tool-version.sh rustc) - git -C linux ls-tree -r --name-only HEAD -- rust/alloc | - cut -d/ -f3- | - grep -Fv README.md | - xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH - git -C linux diff --patch-with-stat --summary -R > new.patch - git -C linux restore rust/alloc - -Now one may check the `new.patch` to take a look at the additions (first -approach) or at the difference between those two patches (second -approach). For the latter, a side-by-side tool is recommended. - -Link: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1750-2023-12-28 [1] -Link: https://rust-for-linux.com/rust-version-policy [2] -Link: https://github.com/rust-lang/rust/issues/91850 [3] -Link: https://github.com/Rust-for-Linux/linux/issues/2 [4] -Link: https://github.com/rust-lang/rust/issues/96283 [5] -Signed-off-by: Miguel Ojeda <ojeda@kernel.org> -Link: https://lore.kernel.org/lkml/20231224172128.271447-1-ojeda@kernel.org/ -Signed-off-by: Alyssa Ross <hi@alyssa.is> ---- - Documentation/process/changes.rst | 2 +- - rust/alloc/alloc.rs | 9 ++++++++- - rust/alloc/boxed.rs | 20 ++++++++++++-------- - rust/alloc/lib.rs | 7 ++++--- - rust/alloc/raw_vec.rs | 19 +++++++++++++++---- - rust/alloc/vec/mod.rs | 16 ++++++++++------ - scripts/min-tool-version.sh | 2 +- - 7 files changed, 51 insertions(+), 24 deletions(-) - -diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst -index 169f67773518..52284fdbaf23 100644 ---- a/Documentation/process/changes.rst -+++ b/Documentation/process/changes.rst -@@ -31,7 +31,7 @@ you probably needn't concern yourself with pcmciautils. - ====================== =============== ======================================== - GNU C 5.1 gcc --version - Clang/LLVM (optional) 11.0.0 clang --version --Rust (optional) 1.74.1 rustc --version -+Rust (optional) 1.75.0 rustc --version - bindgen (optional) 0.65.1 bindgen --version - GNU make 3.82 make --version - bash 4.2 bash --version -diff --git a/rust/alloc/alloc.rs b/rust/alloc/alloc.rs -index 150e13750ff7..8a6be8c98173 100644 ---- a/rust/alloc/alloc.rs -+++ b/rust/alloc/alloc.rs -@@ -379,13 +379,20 @@ const fn ct_error(_: Layout) -> ! { - panic!("allocation failed"); - } - -+ #[inline] - fn rt_error(layout: Layout) -> ! { - unsafe { - __rust_alloc_error_handler(layout.size(), layout.align()); - } - } - -- unsafe { core::intrinsics::const_eval_select((layout,), ct_error, rt_error) } -+ #[cfg(not(feature = "panic_immediate_abort"))] -+ unsafe { -+ core::intrinsics::const_eval_select((layout,), ct_error, rt_error) -+ } -+ -+ #[cfg(feature = "panic_immediate_abort")] -+ ct_error(layout) - } - - // For alloc test `std::alloc::handle_alloc_error` can be used directly. -diff --git a/rust/alloc/boxed.rs b/rust/alloc/boxed.rs -index 9620eba17268..f5f40778a193 100644 ---- a/rust/alloc/boxed.rs -+++ b/rust/alloc/boxed.rs -@@ -161,7 +161,7 @@ - use core::marker::Unsize; - use core::mem::{self, SizedTypeProperties}; - use core::ops::{ -- CoerceUnsized, Deref, DerefMut, DispatchFromDyn, Generator, GeneratorState, Receiver, -+ CoerceUnsized, Coroutine, CoroutineState, Deref, DerefMut, DispatchFromDyn, Receiver, - }; - use core::pin::Pin; - use core::ptr::{self, NonNull, Unique}; -@@ -211,7 +211,7 @@ impl<T> Box<T> { - /// ``` - /// let five = Box::new(5); - /// ``` -- #[cfg(all(not(no_global_oom_handling)))] -+ #[cfg(not(no_global_oom_handling))] - #[inline(always)] - #[stable(feature = "rust1", since = "1.0.0")] - #[must_use] -@@ -2110,28 +2110,28 @@ fn as_mut(&mut self) -> &mut T { - #[stable(feature = "pin", since = "1.33.0")] - impl<T: ?Sized, A: Allocator> Unpin for Box<T, A> where A: 'static {} - --#[unstable(feature = "generator_trait", issue = "43122")] --impl<G: ?Sized + Generator<R> + Unpin, R, A: Allocator> Generator<R> for Box<G, A> -+#[unstable(feature = "coroutine_trait", issue = "43122")] -+impl<G: ?Sized + Coroutine<R> + Unpin, R, A: Allocator> Coroutine<R> for Box<G, A> - where - A: 'static, - { - type Yield = G::Yield; - type Return = G::Return; - -- fn resume(mut self: Pin<&mut Self>, arg: R) -> GeneratorState<Self::Yield, Self::Return> { -+ fn resume(mut self: Pin<&mut Self>, arg: R) -> CoroutineState<Self::Yield, Self::Return> { - G::resume(Pin::new(&mut *self), arg) - } - } - --#[unstable(feature = "generator_trait", issue = "43122")] --impl<G: ?Sized + Generator<R>, R, A: Allocator> Generator<R> for Pin<Box<G, A>> -+#[unstable(feature = "coroutine_trait", issue = "43122")] -+impl<G: ?Sized + Coroutine<R>, R, A: Allocator> Coroutine<R> for Pin<Box<G, A>> - where - A: 'static, - { - type Yield = G::Yield; - type Return = G::Return; - -- fn resume(mut self: Pin<&mut Self>, arg: R) -> GeneratorState<Self::Yield, Self::Return> { -+ fn resume(mut self: Pin<&mut Self>, arg: R) -> CoroutineState<Self::Yield, Self::Return> { - G::resume((*self).as_mut(), arg) - } - } -@@ -2448,4 +2448,8 @@ fn cause(&self) -> Option<&dyn core::error::Error> { - fn source(&self) -> Option<&(dyn core::error::Error + 'static)> { - core::error::Error::source(&**self) - } -+ -+ fn provide<'b>(&'b self, request: &mut core::error::Request<'b>) { -+ core::error::Error::provide(&**self, request); -+ } - } -diff --git a/rust/alloc/lib.rs b/rust/alloc/lib.rs -index 9c7ea73da108..345cf5c9cf92 100644 ---- a/rust/alloc/lib.rs -+++ b/rust/alloc/lib.rs -@@ -80,6 +80,8 @@ - not(no_sync), - target_has_atomic = "ptr" - ))] -+#![cfg_attr(not(bootstrap), doc(rust_logo))] -+#![cfg_attr(not(bootstrap), feature(rustdoc_internals))] - #![no_std] - #![needs_allocator] - // Lints: -@@ -115,7 +117,6 @@ - #![feature(const_eval_select)] - #![feature(const_maybe_uninit_as_mut_ptr)] - #![feature(const_maybe_uninit_write)] --#![feature(const_maybe_uninit_zeroed)] - #![feature(const_pin)] - #![feature(const_refs_to_cell)] - #![feature(const_size_of_val)] -@@ -141,7 +142,7 @@ - #![feature(maybe_uninit_uninit_array)] - #![feature(maybe_uninit_uninit_array_transpose)] - #![feature(pattern)] --#![feature(pointer_byte_offsets)] -+#![feature(ptr_addr_eq)] - #![feature(ptr_internals)] - #![feature(ptr_metadata)] - #![feature(ptr_sub_ptr)] -@@ -168,7 +169,7 @@ - // - // Language features: - // tidy-alphabetical-start --#![cfg_attr(not(test), feature(generator_trait))] -+#![cfg_attr(not(test), feature(coroutine_trait))] - #![cfg_attr(test, feature(panic_update_hook))] - #![cfg_attr(test, feature(test))] - #![feature(allocator_internals)] -diff --git a/rust/alloc/raw_vec.rs b/rust/alloc/raw_vec.rs -index a7425582a323..f1b8cec8cc62 100644 ---- a/rust/alloc/raw_vec.rs -+++ b/rust/alloc/raw_vec.rs -@@ -338,10 +338,13 @@ pub fn reserve_for_push(&mut self, len: usize) { - /// The same as `reserve`, but returns on errors instead of panicking or aborting. - pub fn try_reserve(&mut self, len: usize, additional: usize) -> Result<(), TryReserveError> { - if self.needs_to_grow(len, additional) { -- self.grow_amortized(len, additional) -- } else { -- Ok(()) -+ self.grow_amortized(len, additional)?; - } -+ unsafe { -+ // Inform the optimizer that the reservation has succeeded or wasn't needed -+ core::intrinsics::assume(!self.needs_to_grow(len, additional)); -+ } -+ Ok(()) - } - - /// The same as `reserve_for_push`, but returns on errors instead of panicking or aborting. -@@ -378,7 +381,14 @@ pub fn try_reserve_exact( - len: usize, - additional: usize, - ) -> Result<(), TryReserveError> { -- if self.needs_to_grow(len, additional) { self.grow_exact(len, additional) } else { Ok(()) } -+ if self.needs_to_grow(len, additional) { -+ self.grow_exact(len, additional)?; -+ } -+ unsafe { -+ // Inform the optimizer that the reservation has succeeded or wasn't needed -+ core::intrinsics::assume(!self.needs_to_grow(len, additional)); -+ } -+ Ok(()) - } - - /// Shrinks the buffer down to the specified capacity. If the given amount -@@ -569,6 +579,7 @@ fn alloc_guard(alloc_size: usize) -> Result<(), TryReserveError> { - // ensure that the code generation related to these panics is minimal as there's - // only one location which panics rather than a bunch throughout the module. - #[cfg(not(no_global_oom_handling))] -+#[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))] - fn capacity_overflow() -> ! { - panic!("capacity overflow"); - } -diff --git a/rust/alloc/vec/mod.rs b/rust/alloc/vec/mod.rs -index 41ca71805ef0..0d95fd7ef337 100644 ---- a/rust/alloc/vec/mod.rs -+++ b/rust/alloc/vec/mod.rs -@@ -1376,7 +1376,7 @@ pub fn as_mut_slice(&mut self) -> &mut [T] { - /// [`as_mut_ptr`]: Vec::as_mut_ptr - /// [`as_ptr`]: Vec::as_ptr - #[stable(feature = "vec_as_ptr", since = "1.37.0")] -- #[cfg_attr(not(bootstrap), rustc_never_returns_null_ptr)] -+ #[rustc_never_returns_null_ptr] - #[inline] - pub fn as_ptr(&self) -> *const T { - // We shadow the slice method of the same name to avoid going through -@@ -1436,7 +1436,7 @@ pub fn as_ptr(&self) -> *const T { - /// [`as_mut_ptr`]: Vec::as_mut_ptr - /// [`as_ptr`]: Vec::as_ptr - #[stable(feature = "vec_as_ptr", since = "1.37.0")] -- #[cfg_attr(not(bootstrap), rustc_never_returns_null_ptr)] -+ #[rustc_never_returns_null_ptr] - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - // We shadow the slice method of the same name to avoid going through -@@ -1565,7 +1565,8 @@ pub unsafe fn set_len(&mut self, new_len: usize) { - #[stable(feature = "rust1", since = "1.0.0")] - pub fn swap_remove(&mut self, index: usize) -> T { - #[cold] -- #[inline(never)] -+ #[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))] -+ #[track_caller] - fn assert_failed(index: usize, len: usize) -> ! { - panic!("swap_remove index (is {index}) should be < len (is {len})"); - } -@@ -1606,7 +1607,8 @@ fn assert_failed(index: usize, len: usize) -> ! { - #[stable(feature = "rust1", since = "1.0.0")] - pub fn insert(&mut self, index: usize, element: T) { - #[cold] -- #[inline(never)] -+ #[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))] -+ #[track_caller] - fn assert_failed(index: usize, len: usize) -> ! { - panic!("insertion index (is {index}) should be <= len (is {len})"); - } -@@ -1667,7 +1669,7 @@ fn assert_failed(index: usize, len: usize) -> ! { - #[track_caller] - pub fn remove(&mut self, index: usize) -> T { - #[cold] -- #[inline(never)] -+ #[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))] - #[track_caller] - fn assert_failed(index: usize, len: usize) -> ! { - panic!("removal index (is {index}) should be < len (is {len})"); -@@ -2097,6 +2099,7 @@ pub fn pop(&mut self) -> Option<T> { - } else { - unsafe { - self.len -= 1; -+ core::intrinsics::assume(self.len < self.capacity()); - Some(ptr::read(self.as_ptr().add(self.len()))) - } - } -@@ -2299,7 +2302,8 @@ pub fn split_off(&mut self, at: usize) -> Self - A: Clone, - { - #[cold] -- #[inline(never)] -+ #[cfg_attr(not(feature = "panic_immediate_abort"), inline(never))] -+ #[track_caller] - fn assert_failed(at: usize, len: usize) -> ! { - panic!("`at` split index (is {at}) should be <= len (is {len})"); - } -diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh -index c62066825f53..bcc7d4247290 100755 ---- a/scripts/min-tool-version.sh -+++ b/scripts/min-tool-version.sh -@@ -31,7 +31,7 @@ llvm) - fi - ;; - rustc) -- echo 1.74.1 -+ echo 1.75.0 - ;; - bindgen) - echo 0.65.1 --- -2.43.0 - diff --git a/pkgs/os-specific/linux/kernel/rust-1.77.patch b/pkgs/os-specific/linux/kernel/rust-1.77.patch deleted file mode 100644 index 8bd0a5e33715..000000000000 --- a/pkgs/os-specific/linux/kernel/rust-1.77.patch +++ /dev/null @@ -1,792 +0,0 @@ -From d69265b7d756931b2e763a3262f22ba4100895a0 Mon Sep 17 00:00:00 2001 -From: Miguel Ojeda <ojeda@kernel.org> -Date: Sat, 17 Feb 2024 01:27:17 +0100 -Subject: [PATCH] rust: upgrade to Rust 1.77.0 - -This is the next upgrade to the Rust toolchain, from 1.76.0 to 1.77.0 -(i.e. the latest) [1]. - -See the upgrade policy [2] and the comments on the first upgrade in -commit 3ed03f4da06e ("rust: upgrade to Rust 1.68.2"). - -The `offset_of` feature (single-field `offset_of!`) that we were using -got stabilized in Rust 1.77.0 [3]. - -Therefore, now the only unstable features allowed to be used outside the -`kernel` crate is `new_uninit`, though other code to be upstreamed may -increase the list. - -Please see [4] for details. - -Rust 1.77.0 merged the `unused_tuple_struct_fields` lint into `dead_code`, -thus upgrading it from `allow` to `warn` [5]. In turn, this makes `rustc` -complain about the `ThisModule`'s pointer field being never read. Thus -locally `allow` it for the moment, since we will have users later on -(e.g. Binder needs a `as_ptr` method [6]). - -Rust 1.77.0 introduces the `--check-cfg` feature [7], for which there -is a Call for Testing going on [8]. We were requested to test it and -we found it useful [9] -- we will likely enable it in the future. - -The vast majority of changes are due to our `alloc` fork being upgraded -at once. - -There are two kinds of changes to be aware of: the ones coming from -upstream, which we should follow as closely as possible, and the updates -needed in our added fallible APIs to keep them matching the newer -infallible APIs coming from upstream. - -Instead of taking a look at the diff of this patch, an alternative -approach is reviewing a diff of the changes between upstream `alloc` and -the kernel's. This allows to easily inspect the kernel additions only, -especially to check if the fallible methods we already have still match -the infallible ones in the new version coming from upstream. - -Another approach is reviewing the changes introduced in the additions in -the kernel fork between the two versions. This is useful to spot -potentially unintended changes to our additions. - -To apply these approaches, one may follow steps similar to the following -to generate a pair of patches that show the differences between upstream -Rust and the kernel (for the subset of `alloc` we use) before and after -applying this patch: - - # Get the difference with respect to the old version. - git -C rust checkout $(linux/scripts/min-tool-version.sh rustc) - git -C linux ls-tree -r --name-only HEAD -- rust/alloc | - cut -d/ -f3- | - grep -Fv README.md | - xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH - git -C linux diff --patch-with-stat --summary -R > old.patch - git -C linux restore rust/alloc - - # Apply this patch. - git -C linux am rust-upgrade.patch - - # Get the difference with respect to the new version. - git -C rust checkout $(linux/scripts/min-tool-version.sh rustc) - git -C linux ls-tree -r --name-only HEAD -- rust/alloc | - cut -d/ -f3- | - grep -Fv README.md | - xargs -IPATH cp rust/library/alloc/src/PATH linux/rust/alloc/PATH - git -C linux diff --patch-with-stat --summary -R > new.patch - git -C linux restore rust/alloc - -Now one may check the `new.patch` to take a look at the additions (first -approach) or at the difference between those two patches (second -approach). For the latter, a side-by-side tool is recommended. - -Link: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1770-2024-03-21 [1] -Link: https://rust-for-linux.com/rust-version-policy [2] -Link: https://github.com/rust-lang/rust/pull/118799 [3] -Link: https://github.com/Rust-for-Linux/linux/issues/2 [4] -Link: https://github.com/rust-lang/rust/pull/118297 [5] -Link: https://lore.kernel.org/rust-for-linux/20231101-rust-binder-v1-2-08ba9197f637@google.com/#Z31rust:kernel:lib.rs [6] -Link: https://doc.rust-lang.org/nightly/unstable-book/compiler-flags/check-cfg.html [7] -Link: https://github.com/rust-lang/rfcs/pull/3013#issuecomment-1936648479 [8] -Link: https://github.com/rust-lang/rust/issues/82450#issuecomment-1947462977 [9] -Signed-off-by: Miguel Ojeda <ojeda@kernel.org> -Link: https://lore.kernel.org/r/20240217002717.57507-1-ojeda@kernel.org -Link: https://github.com/Rust-for-Linux/linux/commit/d69265b7d756931b2e763a3262f22ba4100895a0 -Signed-off-by: Alyssa Ross <hi@alyssa.is> ---- - Documentation/process/changes.rst | 2 +- - rust/alloc/alloc.rs | 6 +- - rust/alloc/boxed.rs | 4 +- - rust/alloc/lib.rs | 7 +- - rust/alloc/raw_vec.rs | 13 ++-- - rust/alloc/slice.rs | 4 +- - rust/alloc/vec/into_iter.rs | 108 +++++++++++++++++++----------- - rust/alloc/vec/mod.rs | 101 +++++++++++++++++++--------- - rust/kernel/lib.rs | 3 +- - scripts/Makefile.build | 2 +- - scripts/min-tool-version.sh | 2 +- - 11 files changed, 161 insertions(+), 91 deletions(-) - -diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst -index 7ef8de58f7f892..879ee628893ae1 100644 ---- a/Documentation/process/changes.rst -+++ b/Documentation/process/changes.rst -@@ -31,7 +31,7 @@ you probably needn't concern yourself with pcmciautils. - ====================== =============== ======================================== - GNU C 5.1 gcc --version - Clang/LLVM (optional) 13.0.1 clang --version --Rust (optional) 1.76.0 rustc --version -+Rust (optional) 1.77.0 rustc --version - bindgen (optional) 0.65.1 bindgen --version - GNU make 3.82 make --version - bash 4.2 bash --version -diff --git a/rust/alloc/alloc.rs b/rust/alloc/alloc.rs -index abb791cc23715a..b1204f87227b23 100644 ---- a/rust/alloc/alloc.rs -+++ b/rust/alloc/alloc.rs -@@ -5,7 +5,7 @@ - #![stable(feature = "alloc_module", since = "1.28.0")] - - #[cfg(not(test))] --use core::intrinsics; -+use core::hint; - - #[cfg(not(test))] - use core::ptr::{self, NonNull}; -@@ -210,7 +210,7 @@ impl Global { - let new_size = new_layout.size(); - - // `realloc` probably checks for `new_size >= old_layout.size()` or something similar. -- intrinsics::assume(new_size >= old_layout.size()); -+ hint::assert_unchecked(new_size >= old_layout.size()); - - let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size); - let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?; -@@ -301,7 +301,7 @@ unsafe impl Allocator for Global { - // SAFETY: `new_size` is non-zero. Other conditions must be upheld by the caller - new_size if old_layout.align() == new_layout.align() => unsafe { - // `realloc` probably checks for `new_size <= old_layout.size()` or something similar. -- intrinsics::assume(new_size <= old_layout.size()); -+ hint::assert_unchecked(new_size <= old_layout.size()); - - let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size); - let ptr = NonNull::new(raw_ptr).ok_or(AllocError)?; -diff --git a/rust/alloc/boxed.rs b/rust/alloc/boxed.rs -index c93a22a5c97f14..5fc39dfeb8e7bf 100644 ---- a/rust/alloc/boxed.rs -+++ b/rust/alloc/boxed.rs -@@ -26,6 +26,7 @@ - //! Creating a recursive data structure: - //! - //! ``` -+//! ##[allow(dead_code)] - //! #[derive(Debug)] - //! enum List<T> { - //! Cons(T, Box<List<T>>), -@@ -194,8 +195,7 @@ mod thin; - #[fundamental] - #[stable(feature = "rust1", since = "1.0.0")] - // The declaration of the `Box` struct must be kept in sync with the --// `alloc::alloc::box_free` function or ICEs will happen. See the comment --// on `box_free` for more details. -+// compiler or ICEs will happen. - pub struct Box< - T: ?Sized, - #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global, -diff --git a/rust/alloc/lib.rs b/rust/alloc/lib.rs -index 36f79c07559338..39afd55ec0749e 100644 ---- a/rust/alloc/lib.rs -+++ b/rust/alloc/lib.rs -@@ -105,7 +105,6 @@ - #![feature(allocator_api)] - #![feature(array_chunks)] - #![feature(array_into_iter_constructors)] --#![feature(array_methods)] - #![feature(array_windows)] - #![feature(ascii_char)] - #![feature(assert_matches)] -@@ -122,7 +121,6 @@ - #![feature(const_size_of_val)] - #![feature(const_waker)] - #![feature(core_intrinsics)] --#![feature(core_panic)] - #![feature(deprecated_suggestion)] - #![feature(dispatch_from_dyn)] - #![feature(error_generic_member_access)] -@@ -132,6 +130,7 @@ - #![feature(fmt_internals)] - #![feature(fn_traits)] - #![feature(hasher_prefixfree_extras)] -+#![feature(hint_assert_unchecked)] - #![feature(inline_const)] - #![feature(inplace_iteration)] - #![feature(iter_advance_by)] -@@ -141,6 +140,8 @@ - #![feature(maybe_uninit_slice)] - #![feature(maybe_uninit_uninit_array)] - #![feature(maybe_uninit_uninit_array_transpose)] -+#![feature(non_null_convenience)] -+#![feature(panic_internals)] - #![feature(pattern)] - #![feature(ptr_internals)] - #![feature(ptr_metadata)] -@@ -149,7 +150,6 @@ - #![feature(set_ptr_value)] - #![feature(sized_type_properties)] - #![feature(slice_from_ptr_range)] --#![feature(slice_group_by)] - #![feature(slice_ptr_get)] - #![feature(slice_ptr_len)] - #![feature(slice_range)] -@@ -182,6 +182,7 @@ - #![feature(const_ptr_write)] - #![feature(const_trait_impl)] - #![feature(const_try)] -+#![feature(decl_macro)] - #![feature(dropck_eyepatch)] - #![feature(exclusive_range_pattern)] - #![feature(fundamental)] -diff --git a/rust/alloc/raw_vec.rs b/rust/alloc/raw_vec.rs -index 98b6abf30af6e4..1839d1c8ee7a04 100644 ---- a/rust/alloc/raw_vec.rs -+++ b/rust/alloc/raw_vec.rs -@@ -4,7 +4,7 @@ - - use core::alloc::LayoutError; - use core::cmp; --use core::intrinsics; -+use core::hint; - use core::mem::{self, ManuallyDrop, MaybeUninit, SizedTypeProperties}; - use core::ptr::{self, NonNull, Unique}; - use core::slice; -@@ -317,7 +317,7 @@ impl<T, A: Allocator> RawVec<T, A> { - /// - /// # Panics - /// -- /// Panics if the new capacity exceeds `isize::MAX` bytes. -+ /// Panics if the new capacity exceeds `isize::MAX` _bytes_. - /// - /// # Aborts - /// -@@ -358,7 +358,7 @@ impl<T, A: Allocator> RawVec<T, A> { - } - unsafe { - // Inform the optimizer that the reservation has succeeded or wasn't needed -- core::intrinsics::assume(!self.needs_to_grow(len, additional)); -+ hint::assert_unchecked(!self.needs_to_grow(len, additional)); - } - Ok(()) - } -@@ -381,7 +381,7 @@ impl<T, A: Allocator> RawVec<T, A> { - /// - /// # Panics - /// -- /// Panics if the new capacity exceeds `isize::MAX` bytes. -+ /// Panics if the new capacity exceeds `isize::MAX` _bytes_. - /// - /// # Aborts - /// -@@ -402,7 +402,7 @@ impl<T, A: Allocator> RawVec<T, A> { - } - unsafe { - // Inform the optimizer that the reservation has succeeded or wasn't needed -- core::intrinsics::assume(!self.needs_to_grow(len, additional)); -+ hint::assert_unchecked(!self.needs_to_grow(len, additional)); - } - Ok(()) - } -@@ -553,7 +553,7 @@ where - debug_assert_eq!(old_layout.align(), new_layout.align()); - unsafe { - // The allocator checks for alignment equality -- intrinsics::assume(old_layout.align() == new_layout.align()); -+ hint::assert_unchecked(old_layout.align() == new_layout.align()); - alloc.grow(ptr, old_layout, new_layout) - } - } else { -@@ -591,7 +591,6 @@ fn handle_reserve(result: Result<(), TryReserveError>) { - // `> isize::MAX` bytes will surely fail. On 32-bit and 16-bit we need to add - // an extra guard for this in case we're running on a platform which can use - // all 4GB in user-space, e.g., PAE or x32. -- - #[inline] - fn alloc_guard(alloc_size: usize) -> Result<(), TryReserveError> { - if usize::BITS < 64 && alloc_size > isize::MAX as usize { -diff --git a/rust/alloc/slice.rs b/rust/alloc/slice.rs -index 1181836da5f462..a36b072c95195f 100644 ---- a/rust/alloc/slice.rs -+++ b/rust/alloc/slice.rs -@@ -53,14 +53,14 @@ pub use core::slice::{from_mut, from_ref}; - pub use core::slice::{from_mut_ptr_range, from_ptr_range}; - #[stable(feature = "rust1", since = "1.0.0")] - pub use core::slice::{from_raw_parts, from_raw_parts_mut}; -+#[stable(feature = "slice_group_by", since = "1.77.0")] -+pub use core::slice::{ChunkBy, ChunkByMut}; - #[stable(feature = "rust1", since = "1.0.0")] - pub use core::slice::{Chunks, Windows}; - #[stable(feature = "chunks_exact", since = "1.31.0")] - pub use core::slice::{ChunksExact, ChunksExactMut}; - #[stable(feature = "rust1", since = "1.0.0")] - pub use core::slice::{ChunksMut, Split, SplitMut}; --#[unstable(feature = "slice_group_by", issue = "80552")] --pub use core::slice::{GroupBy, GroupByMut}; - #[stable(feature = "rust1", since = "1.0.0")] - pub use core::slice::{Iter, IterMut}; - #[stable(feature = "rchunks", since = "1.31.0")] -diff --git a/rust/alloc/vec/into_iter.rs b/rust/alloc/vec/into_iter.rs -index 136bfe94af6c83..0f11744c44b34c 100644 ---- a/rust/alloc/vec/into_iter.rs -+++ b/rust/alloc/vec/into_iter.rs -@@ -20,6 +20,17 @@ use core::ops::Deref; - use core::ptr::{self, NonNull}; - use core::slice::{self}; - -+macro non_null { -+ (mut $place:expr, $t:ident) => {{ -+ #![allow(unused_unsafe)] // we're sometimes used within an unsafe block -+ unsafe { &mut *(ptr::addr_of_mut!($place) as *mut NonNull<$t>) } -+ }}, -+ ($place:expr, $t:ident) => {{ -+ #![allow(unused_unsafe)] // we're sometimes used within an unsafe block -+ unsafe { *(ptr::addr_of!($place) as *const NonNull<$t>) } -+ }}, -+} -+ - /// An iterator that moves out of a vector. - /// - /// This `struct` is created by the `into_iter` method on [`Vec`](super::Vec) -@@ -43,10 +54,12 @@ pub struct IntoIter< - // the drop impl reconstructs a RawVec from buf, cap and alloc - // to avoid dropping the allocator twice we need to wrap it into ManuallyDrop - pub(super) alloc: ManuallyDrop<A>, -- pub(super) ptr: *const T, -- pub(super) end: *const T, // If T is a ZST, this is actually ptr+len. This encoding is picked so that -- // ptr == end is a quick test for the Iterator being empty, that works -- // for both ZST and non-ZST. -+ pub(super) ptr: NonNull<T>, -+ /// If T is a ZST, this is actually ptr+len. This encoding is picked so that -+ /// ptr == end is a quick test for the Iterator being empty, that works -+ /// for both ZST and non-ZST. -+ /// For non-ZSTs the pointer is treated as `NonNull<T>` -+ pub(super) end: *const T, - } - - #[stable(feature = "vec_intoiter_debug", since = "1.13.0")] -@@ -70,7 +83,7 @@ impl<T, A: Allocator> IntoIter<T, A> { - /// ``` - #[stable(feature = "vec_into_iter_as_slice", since = "1.15.0")] - pub fn as_slice(&self) -> &[T] { -- unsafe { slice::from_raw_parts(self.ptr, self.len()) } -+ unsafe { slice::from_raw_parts(self.ptr.as_ptr(), self.len()) } - } - - /// Returns the remaining items of this iterator as a mutable slice. -@@ -99,7 +112,7 @@ impl<T, A: Allocator> IntoIter<T, A> { - } - - fn as_raw_mut_slice(&mut self) -> *mut [T] { -- ptr::slice_from_raw_parts_mut(self.ptr as *mut T, self.len()) -+ ptr::slice_from_raw_parts_mut(self.ptr.as_ptr(), self.len()) - } - - /// Drops remaining elements and relinquishes the backing allocation. -@@ -126,7 +139,7 @@ impl<T, A: Allocator> IntoIter<T, A> { - // this creates less assembly - self.cap = 0; - self.buf = unsafe { NonNull::new_unchecked(RawVec::NEW.ptr()) }; -- self.ptr = self.buf.as_ptr(); -+ self.ptr = self.buf; - self.end = self.buf.as_ptr(); - - // Dropping the remaining elements can panic, so this needs to be -@@ -138,9 +151,9 @@ impl<T, A: Allocator> IntoIter<T, A> { - - /// Forgets to Drop the remaining elements while still allowing the backing allocation to be freed. - pub(crate) fn forget_remaining_elements(&mut self) { -- // For th ZST case, it is crucial that we mutate `end` here, not `ptr`. -+ // For the ZST case, it is crucial that we mutate `end` here, not `ptr`. - // `ptr` must stay aligned, while `end` may be unaligned. -- self.end = self.ptr; -+ self.end = self.ptr.as_ptr(); - } - - #[cfg(not(no_global_oom_handling))] -@@ -162,7 +175,7 @@ impl<T, A: Allocator> IntoIter<T, A> { - // say that they're all at the beginning of the "allocation". - 0..this.len() - } else { -- this.ptr.sub_ptr(buf)..this.end.sub_ptr(buf) -+ this.ptr.sub_ptr(this.buf)..this.end.sub_ptr(buf) - }; - let cap = this.cap; - let alloc = ManuallyDrop::take(&mut this.alloc); -@@ -189,29 +202,35 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> { - - #[inline] - fn next(&mut self) -> Option<T> { -- if self.ptr == self.end { -- None -- } else if T::IS_ZST { -- // `ptr` has to stay where it is to remain aligned, so we reduce the length by 1 by -- // reducing the `end`. -- self.end = self.end.wrapping_byte_sub(1); -- -- // Make up a value of this ZST. -- Some(unsafe { mem::zeroed() }) -+ if T::IS_ZST { -+ if self.ptr.as_ptr() == self.end as *mut _ { -+ None -+ } else { -+ // `ptr` has to stay where it is to remain aligned, so we reduce the length by 1 by -+ // reducing the `end`. -+ self.end = self.end.wrapping_byte_sub(1); -+ -+ // Make up a value of this ZST. -+ Some(unsafe { mem::zeroed() }) -+ } - } else { -- let old = self.ptr; -- self.ptr = unsafe { self.ptr.add(1) }; -+ if self.ptr == non_null!(self.end, T) { -+ None -+ } else { -+ let old = self.ptr; -+ self.ptr = unsafe { old.add(1) }; - -- Some(unsafe { ptr::read(old) }) -+ Some(unsafe { ptr::read(old.as_ptr()) }) -+ } - } - } - - #[inline] - fn size_hint(&self) -> (usize, Option<usize>) { - let exact = if T::IS_ZST { -- self.end.addr().wrapping_sub(self.ptr.addr()) -+ self.end.addr().wrapping_sub(self.ptr.as_ptr().addr()) - } else { -- unsafe { self.end.sub_ptr(self.ptr) } -+ unsafe { non_null!(self.end, T).sub_ptr(self.ptr) } - }; - (exact, Some(exact)) - } -@@ -219,7 +238,7 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> { - #[inline] - fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize> { - let step_size = self.len().min(n); -- let to_drop = ptr::slice_from_raw_parts_mut(self.ptr as *mut T, step_size); -+ let to_drop = ptr::slice_from_raw_parts_mut(self.ptr.as_ptr(), step_size); - if T::IS_ZST { - // See `next` for why we sub `end` here. - self.end = self.end.wrapping_byte_sub(step_size); -@@ -261,7 +280,7 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> { - // Safety: `len` indicates that this many elements are available and we just checked that - // it fits into the array. - unsafe { -- ptr::copy_nonoverlapping(self.ptr, raw_ary.as_mut_ptr() as *mut T, len); -+ ptr::copy_nonoverlapping(self.ptr.as_ptr(), raw_ary.as_mut_ptr() as *mut T, len); - self.forget_remaining_elements(); - return Err(array::IntoIter::new_unchecked(raw_ary, 0..len)); - } -@@ -270,7 +289,7 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> { - // Safety: `len` is larger than the array size. Copy a fixed amount here to fully initialize - // the array. - return unsafe { -- ptr::copy_nonoverlapping(self.ptr, raw_ary.as_mut_ptr() as *mut T, N); -+ ptr::copy_nonoverlapping(self.ptr.as_ptr(), raw_ary.as_mut_ptr() as *mut T, N); - self.ptr = self.ptr.add(N); - Ok(raw_ary.transpose().assume_init()) - }; -@@ -288,7 +307,7 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> { - // Also note the implementation of `Self: TrustedRandomAccess` requires - // that `T: Copy` so reading elements from the buffer doesn't invalidate - // them for `Drop`. -- unsafe { if T::IS_ZST { mem::zeroed() } else { ptr::read(self.ptr.add(i)) } } -+ unsafe { if T::IS_ZST { mem::zeroed() } else { self.ptr.add(i).read() } } - } - } - -@@ -296,18 +315,25 @@ impl<T, A: Allocator> Iterator for IntoIter<T, A> { - impl<T, A: Allocator> DoubleEndedIterator for IntoIter<T, A> { - #[inline] - fn next_back(&mut self) -> Option<T> { -- if self.end == self.ptr { -- None -- } else if T::IS_ZST { -- // See above for why 'ptr.offset' isn't used -- self.end = self.end.wrapping_byte_sub(1); -- -- // Make up a value of this ZST. -- Some(unsafe { mem::zeroed() }) -+ if T::IS_ZST { -+ if self.end as *mut _ == self.ptr.as_ptr() { -+ None -+ } else { -+ // See above for why 'ptr.offset' isn't used -+ self.end = self.end.wrapping_byte_sub(1); -+ -+ // Make up a value of this ZST. -+ Some(unsafe { mem::zeroed() }) -+ } - } else { -- self.end = unsafe { self.end.sub(1) }; -+ if non_null!(self.end, T) == self.ptr { -+ None -+ } else { -+ let new_end = unsafe { non_null!(self.end, T).sub(1) }; -+ *non_null!(mut self.end, T) = new_end; - -- Some(unsafe { ptr::read(self.end) }) -+ Some(unsafe { ptr::read(new_end.as_ptr()) }) -+ } - } - } - -@@ -333,7 +359,11 @@ impl<T, A: Allocator> DoubleEndedIterator for IntoIter<T, A> { - #[stable(feature = "rust1", since = "1.0.0")] - impl<T, A: Allocator> ExactSizeIterator for IntoIter<T, A> { - fn is_empty(&self) -> bool { -- self.ptr == self.end -+ if T::IS_ZST { -+ self.ptr.as_ptr() == self.end as *mut _ -+ } else { -+ self.ptr == non_null!(self.end, T) -+ } - } - } - -diff --git a/rust/alloc/vec/mod.rs b/rust/alloc/vec/mod.rs -index 220fb9d6f45b3f..0be27fff4554a1 100644 ---- a/rust/alloc/vec/mod.rs -+++ b/rust/alloc/vec/mod.rs -@@ -360,7 +360,7 @@ mod spec_extend; - /// - /// `vec![x; n]`, `vec![a, b, c, d]`, and - /// [`Vec::with_capacity(n)`][`Vec::with_capacity`], will all produce a `Vec` --/// with exactly the requested capacity. If <code>[len] == [capacity]</code>, -+/// with at least the requested capacity. If <code>[len] == [capacity]</code>, - /// (as is the case for the [`vec!`] macro), then a `Vec<T>` can be converted to - /// and from a [`Box<[T]>`][owned slice] without reallocating or moving the elements. - /// -@@ -447,7 +447,7 @@ impl<T> Vec<T> { - /// - /// # Panics - /// -- /// Panics if the new capacity exceeds `isize::MAX` bytes. -+ /// Panics if the new capacity exceeds `isize::MAX` _bytes_. - /// - /// # Examples - /// -@@ -690,7 +690,7 @@ impl<T, A: Allocator> Vec<T, A> { - /// - /// # Panics - /// -- /// Panics if the new capacity exceeds `isize::MAX` bytes. -+ /// Panics if the new capacity exceeds `isize::MAX` _bytes_. - /// - /// # Examples - /// -@@ -1013,7 +1013,7 @@ impl<T, A: Allocator> Vec<T, A> { - /// - /// # Panics - /// -- /// Panics if the new capacity exceeds `isize::MAX` bytes. -+ /// Panics if the new capacity exceeds `isize::MAX` _bytes_. - /// - /// # Examples - /// -@@ -1043,7 +1043,7 @@ impl<T, A: Allocator> Vec<T, A> { - /// - /// # Panics - /// -- /// Panics if the new capacity exceeds `isize::MAX` bytes. -+ /// Panics if the new capacity exceeds `isize::MAX` _bytes_. - /// - /// # Examples - /// -@@ -1140,8 +1140,11 @@ impl<T, A: Allocator> Vec<T, A> { - - /// Shrinks the capacity of the vector as much as possible. - /// -- /// It will drop down as close as possible to the length but the allocator -- /// may still inform the vector that there is space for a few more elements. -+ /// The behavior of this method depends on the allocator, which may either shrink the vector -+ /// in-place or reallocate. The resulting vector might still have some excess capacity, just as -+ /// is the case for [`with_capacity`]. See [`Allocator::shrink`] for more details. -+ /// -+ /// [`with_capacity`]: Vec::with_capacity - /// - /// # Examples - /// -@@ -1191,10 +1194,10 @@ impl<T, A: Allocator> Vec<T, A> { - - /// Converts the vector into [`Box<[T]>`][owned slice]. - /// -- /// If the vector has excess capacity, its items will be moved into a -- /// newly-allocated buffer with exactly the right capacity. -+ /// Before doing the conversion, this method discards excess capacity like [`shrink_to_fit`]. - /// - /// [owned slice]: Box -+ /// [`shrink_to_fit`]: Vec::shrink_to_fit - /// - /// # Examples - /// -@@ -2017,7 +2020,7 @@ impl<T, A: Allocator> Vec<T, A> { - /// - /// # Panics - /// -- /// Panics if the new capacity exceeds `isize::MAX` bytes. -+ /// Panics if the new capacity exceeds `isize::MAX` _bytes_. - /// - /// # Examples - /// -@@ -2133,7 +2136,7 @@ impl<T, A: Allocator> Vec<T, A> { - } else { - unsafe { - self.len -= 1; -- core::intrinsics::assume(self.len < self.capacity()); -+ core::hint::assert_unchecked(self.len < self.capacity()); - Some(ptr::read(self.as_ptr().add(self.len()))) - } - } -@@ -2143,7 +2146,7 @@ impl<T, A: Allocator> Vec<T, A> { - /// - /// # Panics - /// -- /// Panics if the new capacity exceeds `isize::MAX` bytes. -+ /// Panics if the new capacity exceeds `isize::MAX` _bytes_. - /// - /// # Examples - /// -@@ -2315,6 +2318,12 @@ impl<T, A: Allocator> Vec<T, A> { - /// `[at, len)`. After the call, the original vector will be left containing - /// the elements `[0, at)` with its previous capacity unchanged. - /// -+ /// - If you want to take ownership of the entire contents and capacity of -+ /// the vector, see [`mem::take`] or [`mem::replace`]. -+ /// - If you don't need the returned vector at all, see [`Vec::truncate`]. -+ /// - If you want to take ownership of an arbitrary subslice, or you don't -+ /// necessarily want to store the removed items in a vector, see [`Vec::drain`]. -+ /// - /// # Panics - /// - /// Panics if `at > len`. -@@ -2346,14 +2355,6 @@ impl<T, A: Allocator> Vec<T, A> { - assert_failed(at, self.len()); - } - -- if at == 0 { -- // the new vector can take over the original buffer and avoid the copy -- return mem::replace( -- self, -- Vec::with_capacity_in(self.capacity(), self.allocator().clone()), -- ); -- } -- - let other_len = self.len - at; - let mut other = Vec::with_capacity_in(other_len, self.allocator().clone()); - -@@ -3027,6 +3028,50 @@ impl<T, I: SliceIndex<[T]>, A: Allocator> IndexMut<I> for Vec<T, A> { - } - } - -+/// Collects an iterator into a Vec, commonly called via [`Iterator::collect()`] -+/// -+/// # Allocation behavior -+/// -+/// In general `Vec` does not guarantee any particular growth or allocation strategy. -+/// That also applies to this trait impl. -+/// -+/// **Note:** This section covers implementation details and is therefore exempt from -+/// stability guarantees. -+/// -+/// Vec may use any or none of the following strategies, -+/// depending on the supplied iterator: -+/// -+/// * preallocate based on [`Iterator::size_hint()`] -+/// * and panic if the number of items is outside the provided lower/upper bounds -+/// * use an amortized growth strategy similar to `pushing` one item at a time -+/// * perform the iteration in-place on the original allocation backing the iterator -+/// -+/// The last case warrants some attention. It is an optimization that in many cases reduces peak memory -+/// consumption and improves cache locality. But when big, short-lived allocations are created, -+/// only a small fraction of their items get collected, no further use is made of the spare capacity -+/// and the resulting `Vec` is moved into a longer-lived structure, then this can lead to the large -+/// allocations having their lifetimes unnecessarily extended which can result in increased memory -+/// footprint. -+/// -+/// In cases where this is an issue, the excess capacity can be discarded with [`Vec::shrink_to()`], -+/// [`Vec::shrink_to_fit()`] or by collecting into [`Box<[T]>`][owned slice] instead, which additionally reduces -+/// the size of the long-lived struct. -+/// -+/// [owned slice]: Box -+/// -+/// ```rust -+/// # use std::sync::Mutex; -+/// static LONG_LIVED: Mutex<Vec<Vec<u16>>> = Mutex::new(Vec::new()); -+/// -+/// for i in 0..10 { -+/// let big_temporary: Vec<u16> = (0..1024).collect(); -+/// // discard most items -+/// let mut result: Vec<_> = big_temporary.into_iter().filter(|i| i % 100 == 0).collect(); -+/// // without this a lot of unused capacity might be moved into the global -+/// result.shrink_to_fit(); -+/// LONG_LIVED.lock().unwrap().push(result); -+/// } -+/// ``` - #[cfg(not(no_global_oom_handling))] - #[stable(feature = "rust1", since = "1.0.0")] - impl<T> FromIterator<T> for Vec<T> { -@@ -3069,14 +3114,8 @@ impl<T, A: Allocator> IntoIterator for Vec<T, A> { - begin.add(me.len()) as *const T - }; - let cap = me.buf.capacity(); -- IntoIter { -- buf: NonNull::new_unchecked(begin), -- phantom: PhantomData, -- cap, -- alloc, -- ptr: begin, -- end, -- } -+ let buf = NonNull::new_unchecked(begin); -+ IntoIter { buf, phantom: PhantomData, cap, alloc, ptr: buf, end } - } - } - } -@@ -3598,8 +3637,10 @@ impl<T, A: Allocator> From<Box<[T], A>> for Vec<T, A> { - impl<T, A: Allocator> From<Vec<T, A>> for Box<[T], A> { - /// Convert a vector into a boxed slice. - /// -- /// If `v` has excess capacity, its items will be moved into a -- /// newly-allocated buffer with exactly the right capacity. -+ /// Before doing the conversion, this method discards excess capacity like [`Vec::shrink_to_fit`]. -+ /// -+ /// [owned slice]: Box -+ /// [`Vec::shrink_to_fit`]: Vec::shrink_to_fit - /// - /// # Examples - /// -diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs -index be68d5e567b1a1..71f95e5aa09abd 100644 ---- a/rust/kernel/lib.rs -+++ b/rust/kernel/lib.rs -@@ -16,7 +16,6 @@ - #![feature(coerce_unsized)] - #![feature(dispatch_from_dyn)] - #![feature(new_uninit)] --#![feature(offset_of)] - #![feature(receiver_trait)] - #![feature(unsize)] - -@@ -78,7 +77,7 @@ pub trait Module: Sized + Sync { - /// Equivalent to `THIS_MODULE` in the C API. - /// - /// C header: [`include/linux/export.h`](srctree/include/linux/export.h) --pub struct ThisModule(*mut bindings::module); -+pub struct ThisModule(#[allow(dead_code)] *mut bindings::module); - - // SAFETY: `THIS_MODULE` may be used from all threads within a module. - unsafe impl Sync for ThisModule {} -diff --git a/scripts/Makefile.build b/scripts/Makefile.build -index baf86c0880b6d7..367cfeea74c5f5 100644 ---- a/scripts/Makefile.build -+++ b/scripts/Makefile.build -@@ -263,7 +263,7 @@ $(obj)/%.lst: $(src)/%.c FORCE - # Compile Rust sources (.rs) - # --------------------------------------------------------------------------- - --rust_allowed_features := new_uninit,offset_of -+rust_allowed_features := new_uninit - - # `--out-dir` is required to avoid temporaries being created by `rustc` in the - # current working directory, which may be not accessible in the out-of-tree -diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh -index 5927cc6b7de338..cc5141b67b4a71 100755 ---- a/scripts/min-tool-version.sh -+++ b/scripts/min-tool-version.sh -@@ -33,7 +33,7 @@ llvm) - fi - ;; - rustc) -- echo 1.76.0 -+ echo 1.77.0 - ;; - bindgen) - echo 0.65.1 diff --git a/pkgs/os-specific/linux/kernel/update-libre.sh b/pkgs/os-specific/linux/kernel/update-libre.sh deleted file mode 100755 index aea12df55cc5..000000000000 --- a/pkgs/os-specific/linux/kernel/update-libre.sh +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i bash -p nix-prefetch-svn git curl -set -euo pipefail - -nixpkgs="$(git rev-parse --show-toplevel)" -path="$nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix" - -old_rev="$(grep -o 'rev = ".*"' "$path" | awk -F'"' '{print $2}')" -old_sha256="$(grep -o 'sha256 = ".*"' "$path" | awk -F'"' '{print $2}')" - -svn_url=https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/ -rev="$(curl -s "$svn_url" | grep -Em 1 -o 'Revision [0-9]+' | awk '{print $2}')" - -if [ "$old_rev" = "$rev" ]; then - echo "No updates for linux-libre" - exit 0 -fi - -sha256="$(QUIET=1 nix-prefetch-svn "$svn_url" "$rev" | tail -1)" - -if [ "$old_sha256" = "$sha256" ]; then - echo "No updates for linux-libre" - exit 0 -fi - -sed -i -e "s/rev = \".*\"/rev = \"$rev\"/" \ - -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" "$path" - -if [ -n "${COMMIT-}" ]; then - git commit -qm "linux_latest-libre: $old_rev -> $rev" "$path" \ - $nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix - echo "Updated linux_latest-libre $old_rev -> $rev" -fi diff --git a/pkgs/os-specific/linux/kernel/update-mainline.py b/pkgs/os-specific/linux/kernel/update-mainline.py deleted file mode 100755 index bf5001ee378a..000000000000 --- a/pkgs/os-specific/linux/kernel/update-mainline.py +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i python3 -p "python3.withPackages (ps: [ ps.beautifulsoup4 ps.lxml ps.packaging ])" -import json -import os -import pathlib -import subprocess -import sys -import urllib.request -from dataclasses import dataclass -from enum import Enum - -from bs4 import BeautifulSoup, NavigableString, Tag -from packaging.version import parse as parse_version, Version -from typing import List - -HERE = pathlib.Path(__file__).parent -ROOT = HERE.parent.parent.parent.parent -VERSIONS_FILE = HERE / "kernels-org.json" - - -class KernelNature(Enum): - MAINLINE = 1 - STABLE = 2 - LONGTERM = 3 - - -@dataclass -class KernelRelease: - nature: KernelNature - version: str - branch: str - date: str - link: str - eol: bool = False - - -def parse_release(release: Tag) -> KernelRelease | None: - columns: list[Tag] = list(release.find_all("td")) - try: - nature = KernelNature[columns[0].get_text().rstrip(":").upper()] - except KeyError: - return None - - version = columns[1].get_text().rstrip(" [EOL]") - date = columns[2].get_text() - link = columns[3].find("a") - if link is not None and isinstance(link, Tag): - link = link.attrs.get("href") - assert link is not None, f"link for kernel {version} is non-existent" - eol = bool(release.find(class_="eolkernel")) - - return KernelRelease( - nature=nature, - branch=get_branch(version), - version=version, - date=date, - link=link, - eol=eol, - ) - - -def get_branch(version: str): - # This is a testing kernel. - if "rc" in version: - return "testing" - else: - major, minor, *_ = version.split(".") - return f"{major}.{minor}" - - -def get_hash(kernel: KernelRelease): - if kernel.branch == "testing": - args = ["--unpack"] - else: - args = [] - - hash = ( - subprocess.check_output(["nix-prefetch-url", kernel.link] + args) - .decode() - .strip() - ) - return f"sha256:{hash}" - - -def get_oldest_branch() -> Version: - with open(VERSIONS_FILE) as f: - return parse_version(sorted(json.load(f).keys())[0]) - - -def predates_oldest_branch(oldest: Version, to_compare: str) -> bool: - if to_compare == "testing": - return False - - return parse_version(to_compare) < oldest - - -def commit(message): - return subprocess.check_call(["git", "commit", "-m", message, VERSIONS_FILE]) - - -def main(): - kernel_org = urllib.request.urlopen("https://kernel.org/") - soup = BeautifulSoup(kernel_org.read().decode(), "lxml") - release_table = soup.find(id="releases") - if not release_table or isinstance(release_table, NavigableString): - print(release_table, file=sys.stderr) - print("Failed to find the release table on https://kernel.org", file=sys.stderr) - sys.exit(1) - - releases = release_table.find_all("tr") - parsed_releases = filter(None, [parse_release(release) for release in releases]) - all_kernels = json.load(VERSIONS_FILE.open()) - - oldest_branch = get_oldest_branch() - - for kernel in parsed_releases: - branch = get_branch(kernel.version) - nixpkgs_branch = branch.replace(".", "_") - - old_version = all_kernels.get(branch, {}).get("version") - if old_version == kernel.version: - print(f"linux_{nixpkgs_branch}: {kernel.version} is latest, skipping...") - continue - - if predates_oldest_branch(oldest_branch, kernel.branch): - print( - f"{kernel.branch} is too old and not supported anymore, skipping...", - file=sys.stderr - ) - continue - - if old_version is None: - if kernel.eol: - print( - f"{kernel.branch} is EOL, not adding...", - file=sys.stderr - ) - continue - - message = f"linux_{nixpkgs_branch}: init at {kernel.version}" - else: - message = f"linux_{nixpkgs_branch}: {old_version} -> {kernel.version}" - - print(message, file=sys.stderr) - - all_kernels[branch] = { - "version": kernel.version, - "hash": get_hash(kernel), - } - - with VERSIONS_FILE.open("w") as fd: - json.dump(all_kernels, fd, indent=4) - fd.write("\n") # makes editorconfig happy - - if os.environ.get("COMMIT") == "1": - commit(message) - - -if __name__ == "__main__": - main() diff --git a/pkgs/os-specific/linux/kernel/update-rt.sh b/pkgs/os-specific/linux/kernel/update-rt.sh deleted file mode 100755 index a9e0577fae92..000000000000 --- a/pkgs/os-specific/linux/kernel/update-rt.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# To update all rt kernels run: ./update-rt.sh - -# To update just one ./linux-rt-5.X.nix run: ./update-rt.sh ./linux-rt-5.X.nix - -# To add a new kernel branch 5.Y run: ./update-rt.sh ./linux-rt-5.Y.nix -# (with nonexistent .nix file) and update all-packages.nix. - -# To commit run with: env COMMIT=1 - -mirror=https://kernel.org/pub/linux/kernel - -main() { - if [ $# -ge 1 ]; then - update-if-needed "$1" - else - update-all-if-needed - fi -} - -update-all-if-needed() { - for f in "$(dirname "$0")"/linux-rt-*.nix; do - update-if-needed "$f" - done -} - -file-version() { - file="$1" # e.g. ./linux-rt-5.4.nix - if [ -e "$file" ]; then - grep ' version = ' "$file" | grep -o '[0-9].[^"]*' - fi -} - -latest-rt-version() { - branch="$1" # e.g. 5.4 - curl -sL "$mirror/projects/rt/$branch/sha256sums.asc" | - sed -ne '/.patch.xz/ { s/.*patch-\(.*\).patch.xz/\1/p}' | - grep -v '\-rc' | - sort --version-sort | - tail -n 1 -} - -update-if-needed() { - file="$1" # e.g. ./linux-rt-5.4.nix (created if does not exist) - branch=$(basename "$file" .nix) # e.g. linux-rt-5.4 - branch=${branch#linux-rt-} # e.g. 5.4 - cur=$(file-version "$file") # e.g. 5.4.59-rt36 or empty - new=$(latest-rt-version "$branch") # e.g. 5.4.61-rt37 - kversion=${new%-*} # e.g. 5.4.61 - major=${branch%.*} # e.g 5 - nixattr="linux-rt_${branch/./_}" - if [ "$new" = "$cur" ]; then - echo "$nixattr: $cur (up-to-date)" - return - fi - khash=$(nix-prefetch-url "$mirror/v${major}.x/linux-${kversion}.tar.xz") - phash=$(nix-prefetch-url "$mirror/projects/rt/${branch}/older/patch-${new}.patch.xz") - if [ "$cur" ]; then - msg="$nixattr: $cur -> $new" - else - msg="$nixattr: init at $new" - prev=$(ls -v "$(dirname "$0")"/linux-rt-*.nix | tail -1) - cp "$prev" "$file" - cur=$(file-version "$file") - fi - echo "$msg" - sed -i "$file" \ - -e "s/$cur/$new/" \ - -e "s|kernel/v[0-9]*|kernel/v$major|" \ - -e "1,/.patch.xz/ s/sha256 = .*/sha256 = \"$khash\";/" \ - -e "1,/.patch.xz/! s/sha256 = .*/sha256 = \"$phash\";/" - if [ "${COMMIT:-}" ]; then - git add "$file" - git commit -m "$msg" - fi -} - -return 2>/dev/null || main "$@" diff --git a/pkgs/os-specific/linux/kernel/update-zen.py b/pkgs/os-specific/linux/kernel/update-zen.py deleted file mode 100755 index 3c51f806d8f8..000000000000 --- a/pkgs/os-specific/linux/kernel/update-zen.py +++ /dev/null @@ -1,122 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i python3 -p python3 nix nix-prefetch-git - -import fileinput -import json -import os -import sys -import re -import subprocess - -from datetime import datetime -from urllib.request import urlopen, Request - - -def panic(exc): - raise Exception(exc) - - -DIR = os.path.dirname(os.path.abspath(__file__)) -HEADERS = {'Accept': 'application/vnd.github.v3+json'} - - -def github_api_request(endpoint): - base_url = 'https://api.github.com/' - request = Request(base_url + endpoint, headers=HEADERS) - with urlopen(request) as http_response: - return json.loads(http_response.read().decode('utf-8')) - - -def get_commit_date(repo, sha): - url = f'https://api.github.com/repos/{repo}/commits/{sha}' - request = Request(url, headers=HEADERS) - with urlopen(request) as http_response: - commit = json.loads(http_response.read().decode()) - date = commit['commit']['committer']['date'].rstrip('Z') - date = datetime.fromisoformat(date).date().isoformat() - return 'unstable-' + date - - -def nix_prefetch_git(url, rev): - """Prefetches the requested Git revision (incl. submodules) of the given repository URL.""" - print(f'nix-prefetch-git {url} {rev}') - out = subprocess.check_output([ - 'nix-prefetch-git', '--quiet', - '--url', url, - '--rev', rev, - '--fetch-submodules']) - return json.loads(out)['sha256'] - - -def nix_prefetch_url(url, unpack=False): - """Prefetches the content of the given URL.""" - print(f'nix-prefetch-url {url}') - options = ['--type', 'sha256'] - if unpack: - options += ['--unpack'] - out = subprocess.check_output(['nix-prefetch-url'] + options + [url]) - return out.decode('utf-8').rstrip() - - -def update_file(relpath, variant, version, suffix, sha256): - file_path = os.path.join(DIR, relpath) - with fileinput.FileInput(file_path, inplace=True) as f: - for line in f: - result = line - result = re.sub( - fr'^ version = ".+"; #{variant}', - f' version = "{version}"; #{variant}', - result) - result = re.sub( - fr'^ suffix = ".+"; #{variant}', - f' suffix = "{suffix}"; #{variant}', - result) - result = re.sub( - fr'^ sha256 = ".+"; #{variant}', - f' sha256 = "{sha256}"; #{variant}', - result) - print(result, end='') - - -def read_file(relpath, variant): - file_path = os.path.join(DIR, relpath) - re_version = re.compile(fr'^\s*version = "(.+)"; #{variant}') - re_suffix = re.compile(fr'^\s*suffix = "(.+)"; #{variant}') - version = None - suffix = None - with fileinput.FileInput(file_path, mode='r') as f: - for line in f: - version_match = re_version.match(line) - if version_match: - version = version_match.group(1) - continue - - suffix_match = re_suffix.match(line) - if suffix_match: - suffix = suffix_match.group(1) - continue - - if version and suffix: - break - return version, suffix - - -if __name__ == "__main__": - if len(sys.argv) == 1: - panic("Update variant expected") - variant = sys.argv[1] - if variant not in ("zen", "lqx"): - panic(f"Unexepected variant instead of 'zen' or 'lqx': {sys.argv[1]}") - pattern = re.compile(fr"v(\d+\.\d+\.?\d*)-({variant}\d+)") - zen_tags = github_api_request('repos/zen-kernel/zen-kernel/releases') - for tag in zen_tags: - zen_match = pattern.match(tag['tag_name']) - if zen_match: - zen_tag = zen_match.group(0) - zen_version = zen_match.group(1) - zen_suffix = zen_match.group(2) - break - old_version, old_suffix = read_file('zen-kernels.nix', variant) - if old_version != zen_version or old_suffix != zen_suffix: - zen_hash = nix_prefetch_git('https://github.com/zen-kernel/zen-kernel.git', zen_tag) - update_file('zen-kernels.nix', variant, zen_version, zen_suffix, zen_hash) diff --git a/pkgs/os-specific/linux/kernel/update.sh b/pkgs/os-specific/linux/kernel/update.sh deleted file mode 100755 index 37e1cc1a5cd4..000000000000 --- a/pkgs/os-specific/linux/kernel/update.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -cd "$(dirname "$(readlink -f "$0")")" || exit - -echo "Update linux (mainline)" -COMMIT=1 ./update-mainline.py || echo "update-mainline failed with exit code $?" - -echo "Update linux-rt" -COMMIT=1 ./update-rt.sh || echo "update-rt failed with exit code $?" - -echo "Update linux-libre" -COMMIT=1 ./update-libre.sh || echo "update-libre failed with exit code $?" - -echo "Update linux-hardened" -COMMIT=1 ./hardened/update.py || echo "update-hardened failed with exit code $?" diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix deleted file mode 100644 index b7840b554bee..000000000000 --- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, buildLinux, ... } @ args: - -let - # These names are how they are designated in https://xanmod.org. - - # NOTE: When updating these, please also take a look at the changes done to - # kernel config in the xanmod version commit - ltsVariant = { - version = "6.6.29"; - hash = "sha256-Be2VaW0DQDS0FJUwXM627QaNgrn1B3Hbyq+PiKb7b+k="; - variant = "lts"; - }; - - mainVariant = { - version = "6.8.8"; - hash = "sha256-6fT9vRjHw775m4ySUAUWU9R0dz/cWYYdZsPCwZjGiXM="; - variant = "main"; - }; - - xanmodKernelFor = { version, suffix ? "xanmod1", hash, variant }: buildLinux (args // rec { - inherit version; - modDirVersion = lib.versions.pad 3 "${version}-${suffix}"; - - src = fetchFromGitHub { - owner = "xanmod"; - repo = "linux"; - rev = modDirVersion; - inherit hash; - }; - - structuredExtraConfig = with lib.kernel; { - # CPUFreq governor Performance - CPU_FREQ_DEFAULT_GOV_PERFORMANCE = lib.mkOverride 60 yes; - CPU_FREQ_DEFAULT_GOV_SCHEDUTIL = lib.mkOverride 60 no; - - # Full preemption - PREEMPT = lib.mkOverride 60 yes; - PREEMPT_VOLUNTARY = lib.mkOverride 60 no; - - # Google's BBRv3 TCP congestion Control - TCP_CONG_BBR = yes; - DEFAULT_BBR = yes; - - # Preemptive Full Tickless Kernel at 250Hz - HZ = freeform "250"; - HZ_250 = yes; - HZ_1000 = no; - - # Disable writeback throttling by default - BLK_WBT_MQ = lib.mkOverride 60 no; - }; - - extraMeta = { - branch = lib.versions.majorMinor version; - maintainers = with lib.maintainers; [ moni lovesegfault atemu shawn8901 zzzsy ]; - description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience"; - broken = stdenv.isAarch64; - }; - } // (args.argsOverride or { })); -in -{ - lts = xanmodKernelFor ltsVariant; - main = xanmodKernelFor mainVariant; -} diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix deleted file mode 100644 index 1f36e36c2335..000000000000 --- a/pkgs/os-specific/linux/kernel/zen-kernels.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, buildLinux, ... } @ args: - -let - # comments with variant added for update script - # ./update-zen.py zen - zenVariant = { - version = "6.8.6"; #zen - suffix = "zen1"; #zen - sha256 = "09233xbvkwjd8yglzjh50pbw5n3pk7d8l5pb270ric9rnnl383jn"; #zen - isLqx = false; - }; - # ./update-zen.py lqx - lqxVariant = { - version = "6.8.6"; #lqx - suffix = "lqx2"; #lqx - sha256 = "0mxbl0h8s021m0ab12yy778qyhdlb5789qjbn66l8qxsw0dv4ags"; #lqx - isLqx = true; - }; - zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // { - inherit version; - modDirVersion = lib.versions.pad 3 "${version}-${suffix}"; - isZen = true; - - src = fetchFromGitHub { - owner = "zen-kernel"; - repo = "zen-kernel"; - rev = "v${version}-${suffix}"; - inherit sha256; - }; - - # This is based on the following sources: - # - zen: https://gitlab.archlinux.org/archlinux/packaging/packages/linux-zen/-/blob/main/config - # - lqx: https://github.com/damentz/liquorix-package/blob/6.4/master/linux-liquorix/debian/config/kernelarch-x86/config-arch-64 - # - Liquorix features: https://liquorix.net/ - # The list below is not exhaustive, so the kernels probably doesn't match - # the upstream, but should bring most of the improvements that will be - # expected by users - structuredExtraConfig = with lib.kernel; { - # Zen Interactive tuning - ZEN_INTERACTIVE = yes; - - # FQ-Codel Packet Scheduling - NET_SCH_DEFAULT = yes; - DEFAULT_FQ_CODEL = yes; - DEFAULT_NET_SCH = freeform "fq_codel"; - - # Preempt (low-latency) - PREEMPT = lib.mkOverride 60 yes; - PREEMPT_VOLUNTARY = lib.mkOverride 60 no; - - # Preemptible tree-based hierarchical RCU - TREE_RCU = yes; - PREEMPT_RCU = yes; - RCU_EXPERT = yes; - TREE_SRCU = yes; - TASKS_RCU_GENERIC = yes; - TASKS_RCU = yes; - TASKS_RUDE_RCU = yes; - TASKS_TRACE_RCU = yes; - RCU_STALL_COMMON = yes; - RCU_NEED_SEGCBLIST = yes; - RCU_FANOUT = freeform "64"; - RCU_FANOUT_LEAF = freeform "16"; - RCU_BOOST = yes; - RCU_BOOST_DELAY = freeform "500"; - RCU_NOCB_CPU = yes; - RCU_LAZY = yes; - - # Futex WAIT_MULTIPLE implementation for Wine / Proton Fsync. - FUTEX = yes; - FUTEX_PI = yes; - - # Preemptive Full Tickless Kernel at 1000Hz - HZ = freeform "1000"; - HZ_1000 = yes; - } // lib.optionalAttrs (isLqx) { - # Google's BBRv3 TCP congestion Control - TCP_CONG_BBR = yes; - DEFAULT_BBR = yes; - DEFAULT_TCP_CONG = freeform "bbr"; - - # PDS Process Scheduler - SCHED_ALT = yes; - SCHED_PDS = yes; - - # Swap storage is compressed with LZ4 using zswap - ZSWAP_COMPRESSOR_DEFAULT_LZ4 = yes; - ZSWAP_COMPRESSOR_DEFAULT = freeform "lz4"; - - # Fix error: unused option: XXX. - CFS_BANDWIDTH = lib.mkForce (option no); - PSI = lib.mkForce (option no); - RT_GROUP_SCHED = lib.mkForce (option no); - SCHED_AUTOGROUP = lib.mkForce (option no); - SCHED_CORE = lib.mkForce (option no); - UCLAMP_TASK = lib.mkForce (option no); - UCLAMP_TASK_GROUP = lib.mkForce (option no); - - # ERROR: modpost: "sched_numa_hop_mask" [drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko] undefined! - MLX5_CORE = no; - }; - - passthru.updateScript = [ ./update-zen.py (if isLqx then "lqx" else "zen") ]; - - extraMeta = { - branch = lib.versions.majorMinor version + "/master"; - maintainers = with lib.maintainers; [ thiagokokada jerrysm64 ]; - description = "Built using the best configuration and kernel sources for desktop, multimedia, and gaming workloads." + - lib.optionalString isLqx " (Same as linux_zen, but less aggressive release schedule and additional extra config)"; - broken = stdenv.isAarch64; - }; - - } // (args.argsOverride or { })); -in -{ - zen = zenKernelsFor zenVariant; - lqx = zenKernelsFor lqxVariant; -} diff --git a/pkgs/os-specific/linux/kexec-tools/default.nix b/pkgs/os-specific/linux/kexec-tools/default.nix deleted file mode 100644 index 530fd767bb90..000000000000 --- a/pkgs/os-specific/linux/kexec-tools/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, buildPackages, fetchurl, fetchpatch, zlib }: - -stdenv.mkDerivation rec { - pname = "kexec-tools"; - version = "2.0.28"; - - src = fetchurl { - urls = [ - "mirror://kernel/linux/utils/kernel/kexec/${pname}-${version}.tar.xz" - "http://horms.net/projects/kexec/kexec-tools/${pname}-${version}.tar.xz" - ]; - sha256 = "sha256-0vDvhy854v5LGwH+tisAATgyByObn4BB+YqVVkFh0FM="; - }; - - patches = [ - # Use ELFv2 ABI on ppc64be - (fetchpatch { - url = "https://raw.githubusercontent.com/void-linux/void-packages/6c1192cbf166698932030c2e3de71db1885a572d/srcpkgs/kexec-tools/patches/ppc64-elfv2.patch"; - sha256 = "19wzfwb0azm932v0vhywv4221818qmlmvdfwpvvpfyw4hjsc2s1l"; - }) - ]; - - hardeningDisable = [ "format" "pic" "relro" "pie" ]; - - # Prevent kexec-tools from using uname to detect target, which is wrong in - # cases like compiling for aarch32 on aarch64 - configurePlatforms = [ "build" "host" ]; - configureFlags = [ "BUILD_CC=${buildPackages.stdenv.cc.targetPrefix}cc" ]; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - buildInputs = [ zlib ]; - - meta = with lib; { - homepage = "http://horms.net/projects/kexec/kexec-tools"; - description = "Tools related to the kexec Linux feature"; - platforms = platforms.linux; - badPlatforms = [ - "microblaze-linux" "microblazeel-linux" - "riscv64-linux" "riscv32-linux" - "sparc-linux" "sparc64-linux" - ]; - license = licenses.gpl2; - }; -} diff --git a/pkgs/os-specific/linux/keyutils/0001-Remove-unused-function-after_eq.patch b/pkgs/os-specific/linux/keyutils/0001-Remove-unused-function-after_eq.patch deleted file mode 100644 index 61ad2a474f9a..000000000000 --- a/pkgs/os-specific/linux/keyutils/0001-Remove-unused-function-after_eq.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 59d91e57d103fb4686d2f45ee3c688878244367a Mon Sep 17 00:00:00 2001 -From: Christian Kampka <christian@kampka.net> -Date: Tue, 24 Nov 2020 22:12:40 +0100 -Subject: [PATCH] Remove unused function 'after_eq' - ---- - keyctl_watch.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/keyctl_watch.c b/keyctl_watch.c -index a70a19a..c4ca7f7 100644 ---- a/keyctl_watch.c -+++ b/keyctl_watch.c -@@ -47,11 +47,6 @@ static struct watch_notification_filter filter = { - }, - }; - --static inline bool after_eq(unsigned int a, unsigned int b) --{ -- return (signed int)(a - b) >= 0; --} -- - static void consumer_term(int sig) - { - consumer_stop = 1; --- -2.28.0 - diff --git a/pkgs/os-specific/linux/keyutils/conf-symlink.patch b/pkgs/os-specific/linux/keyutils/conf-symlink.patch deleted file mode 100644 index 02762e857a81..000000000000 --- a/pkgs/os-specific/linux/keyutils/conf-symlink.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/request-key.c b/request-key.c -index bf47c0a..105fee8 100644 ---- a/request-key.c -+++ b/request-key.c -@@ -313,7 +313,7 @@ static void scan_conf_dir(struct parameters *params, const char *confdir) - while ((d = readdir(dir))) { - if (d->d_name[0] == '.') - continue; -- if (d->d_type != DT_UNKNOWN && d->d_type != DT_REG) -+ if (d->d_type != DT_UNKNOWN && d->d_type != DT_REG && d->d_type != DT_LNK) - continue; - l = strlen(d->d_name); - if (l < 5) diff --git a/pkgs/os-specific/linux/keyutils/default.nix b/pkgs/os-specific/linux/keyutils/default.nix deleted file mode 100644 index 342626624c7e..000000000000 --- a/pkgs/os-specific/linux/keyutils/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib, stdenv, fetchurl }: - -# 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 = "keyutils"; - version = "1.6.3"; - - src = fetchurl { - url = "https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot/${pname}-${version}.tar.gz"; - sha256 = "sha256-ph1XBhNq5MBb1I+GGGvP29iN2L1RB+Phlckkz8Gzm7Q="; - }; - - patches = [ - ./conf-symlink.patch - # This patch solves a duplicate symbol error when building with a clang stdenv - # Before removing this patch, please ensure the package still builds by running eg. - # nix-build -E 'with import ./. {}; pkgs.keyutils.override { stdenv = pkgs.clangStdenv; }' - ./0001-Remove-unused-function-after_eq.patch - - # Fix build for s390-linux, where size_t is different from ptrdiff_t. - (fetchurl { - url = "https://lore.kernel.org/keyrings/20230301134250.301819-1-hi@alyssa.is/raw"; - sha256 = "1cbgwxq28fw5ldh38ngcs7xiqvpnmrw0hw9zzhbhb1hdxkavrc1s"; - }) - ]; - - makeFlags = lib.optionals stdenv.hostPlatform.isStatic "NO_SOLIB=1"; - - outputs = [ "out" "lib" "dev" "man" ]; - - postPatch = '' - # https://github.com/archlinux/svntogit-packages/blob/packages/keyutils/trunk/reproducible.patch - substituteInPlace Makefile \ - --replace \ - 'VCPPFLAGS := -DPKGBUILD="\"$(shell date -u +%F)\""' \ - 'VCPPFLAGS := -DPKGBUILD="\"$(date -ud "@$SOURCE_DATE_EPOCH" +%F)\""' - ''; - - enableParallelBuilding = true; - - installFlags = [ - "ETCDIR=$(out)/etc" - "BINDIR=$(out)/bin" - "SBINDIR=$(out)/sbin" - "SHAREDIR=$(out)/share/keyutils" - "MANDIR=$(out)/share/man" - "INCLUDEDIR=$(dev)/include" - "LIBDIR=$(lib)/lib" - "USRLIBDIR=$(lib)/lib" - ]; - - meta = with lib; { - homepage = "https://people.redhat.com/dhowells/keyutils/"; - description = "Tools used to control the Linux kernel key management system"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/kinect-audio-setup/default.nix b/pkgs/os-specific/linux/kinect-audio-setup/default.nix deleted file mode 100644 index 94ae4806cf25..000000000000 --- a/pkgs/os-specific/linux/kinect-audio-setup/default.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ lib -, stdenv -, fetchgit -, requireFile -, pkg-config -, libusb1 -, p7zip -}: - -let - # The last known good firmware package to have been tested - # by the upstream projet. - # The firmware URL is hardcoded in the upstream project's installation script - firmwareUrl = "https://download.microsoft.com/download/F/9/9/F99791F2-D5BE-478A-B77A-830AD14950C3/KinectSDK-v1.0-beta2-x86.msi"; - # The original URL "https://research.microsoft.com/en-us/um/legal/kinectsdk-tou_noncommercial.htm" - # redirects to the following url: - licenseUrl = "https://www.microsoft.com/en-us/legal/terms-of-use"; -in -stdenv.mkDerivation rec { - pname = "kinect-audio-setup"; - - # On update: Make sure that the `firmwareURL` is still in sync with upstream. - # If the project structure hasn't changed you can find the URL in the - # `kinect_fetch_fw` file in the project source. - version = "0.5"; - - # This is an MSI or CAB file - FIRMWARE = requireFile rec { - name = "UACFirmware"; - sha256 = "08a2vpgd061cmc6h3h8i6qj3sjvjr1fwcnwccwywqypz3icn8xw1"; - message = '' - In order to install the Kinect Audio Firmware, you need to download the - non-redistributable firmware from Microsoft. - The firmware is available at ${firmwareUrl} and the license at ${licenseUrl} . - Save the file as UACFirmware and use "nix-prefetch-url file://\$PWD/UACFirmware" to - add it to the Nix store. - ''; - }; - - src = fetchgit { - url = "git://git.ao2.it/kinect-audio-setup.git"; - rev = "v${version}"; - sha256 = "sha256-bFwmWh822KvFwP/0Gu097nF5K2uCwCLMB1RtP7k+Zt0="; - }; - - # These patches are not upstream because the project has seen no - # activity since 2016 - patches = [ - ./libusb-1-import-path.patch - ./udev-rules-extra-devices.patch - ]; - - nativeBuildInputs = [ p7zip libusb1 pkg-config ]; - - makeFlags = [ - "PREFIX=$(out)" - "DESTDIR=$(out)" - "FIRMWARE_PATH=$(out)/lib/firmware/UACFirmware" - "LOADER_PATH=$(out)/libexec/kinect_upload_fw" - ]; - - buildPhase = '' - runHook preBuild - make -C kinect_upload_fw kinect_upload_fw $makeFlags "''${makeFlagsArray[@]}" - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - mkdir -p $out/libexec/ $out/lib/firmware $out/lib/udev/rules.d - - install -Dm755 kinect_upload_fw/kinect_upload_fw $out/libexec/ - - # 7z extract "assume yes on all queries" "only extract/keep files/directories matching UACFIRMWARE.* recursively" - 7z e -y -r "${FIRMWARE}" "UACFirmware.*" >/dev/null - # The filename is bound to change with the Firmware SDK - mv UACFirmware.* $out/lib/firmware/UACFirmware - - make install_udev_rules $makeFlags "''${makeFlagsArray[@]}" - - runHook postInstall - ''; - - meta = with lib; { - description = "Tools to enable audio input from the Microsoft Kinect sensor device"; - homepage = "https://git.ao2.it/kinect-audio-setup.git"; - maintainers = with maintainers; [ berbiche ]; - platforms = platforms.linux; - license = licenses.unfree; - }; -} diff --git a/pkgs/os-specific/linux/kinect-audio-setup/libusb-1-import-path.patch b/pkgs/os-specific/linux/kinect-audio-setup/libusb-1-import-path.patch deleted file mode 100644 index a0c5ad99f9f2..000000000000 --- a/pkgs/os-specific/linux/kinect-audio-setup/libusb-1-import-path.patch +++ /dev/null @@ -1,23 +0,0 @@ -commit 02fd6c4355809e1bff7c66d478e88f30bedde13b -Author: Nicolas Berbiche <nicolas@normie.dev> -Date: Wed May 5 23:14:56 2021 -0400 - - fix libusb include for Linux - -diff --git a/kinect_upload_fw/kinect_upload_fw.c b/kinect_upload_fw/kinect_upload_fw.c -index 1bd4102..351c94f 100644 ---- a/kinect_upload_fw/kinect_upload_fw.c -+++ b/kinect_upload_fw/kinect_upload_fw.c -@@ -35,7 +35,12 @@ - #include <stdlib.h> - #include <string.h> - #include <errno.h> -+ -+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(_WIN32) - #include <libusb.h> -+#else -+#include <libusb-1.0/libusb.h> -+#endif - - #include "endian.h" - diff --git a/pkgs/os-specific/linux/kinect-audio-setup/udev-rules-extra-devices.patch b/pkgs/os-specific/linux/kinect-audio-setup/udev-rules-extra-devices.patch deleted file mode 100644 index d58b970c7c01..000000000000 --- a/pkgs/os-specific/linux/kinect-audio-setup/udev-rules-extra-devices.patch +++ /dev/null @@ -1,15 +0,0 @@ -commit afaaa77b0a03811f86428cf264397b60dd795549 -Author: Nicolas Berbiche <nicolas@normie.dev> -Date: Thu May 6 00:10:37 2021 -0400 - - Add support for other Kinect device in udev - -diff --git a/contrib/55-kinect_audio.rules.in b/contrib/55-kinect_audio.rules.in -index 25ea713..9e1b69f 100644 ---- a/contrib/55-kinect_audio.rules.in -+++ b/contrib/55-kinect_audio.rules.in -@@ -1,2 +1,4 @@ - # Rule to load the Kinect UAC firmware on the "generic" usb device - ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="02ad", RUN+="@LOADER_PATH@ @FIRMWARE_PATH@" -+# Rule to load the Kinect UAC firmware on another supported device -+ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="02bb", RUN+="@LOADER_PATH@ @FIRMWARE_PATH@" diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix deleted file mode 100644 index 2b010e5c8bce..000000000000 --- a/pkgs/os-specific/linux/klibc/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ lib, stdenv, fetchurl, buildPackages, linuxHeaders, perl, nixosTests }: - -let - commonMakeFlags = [ - "prefix=$(out)" - "SHLIBDIR=$(out)/lib" - ]; -in - -stdenv.mkDerivation rec { - pname = "klibc"; - version = "2.0.13"; - - src = fetchurl { - url = "mirror://kernel/linux/libs/klibc/2.0/klibc-${version}.tar.xz"; - hash = "sha256-1nOilPdC1ZNoIi/1w4Ri2BCYxVBjeZ3m+4p7o9SvBDY="; - }; - - patches = [ ./no-reinstall-kernel-headers.patch ]; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ perl ]; - strictDeps = true; - - hardeningDisable = [ "format" "stackprotector" ]; - - makeFlags = commonMakeFlags ++ [ - "KLIBCARCH=${if stdenv.hostPlatform.isRiscV64 then "riscv64" else stdenv.hostPlatform.linuxArch}" - "KLIBCKERNELSRC=${linuxHeaders}" - ] # TODO(@Ericson2314): We now can get the ABI from - # `stdenv.hostPlatform.parsed.abi`, is this still a good idea? - ++ lib.optional (stdenv.hostPlatform.linuxArch == "arm") "CONFIG_AEABI=y" - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "CROSS_COMPILE=${stdenv.cc.targetPrefix}"; - - # Install static binaries as well. - postInstall = '' - dir=$out/lib/klibc/bin.static - mkdir $dir - cp $(find $(find . -name static) -type f ! -name "*.g" -a ! -name ".*") $dir/ - - for file in ${linuxHeaders}/include/*; do - ln -sv $file $out/lib/klibc/include - done - ''; - - passthru.tests = { - # uses klibc's ipconfig - inherit (nixosTests) initrd-network-ssh; - }; - - meta = { - description = "Minimalistic libc subset for initramfs usage"; - mainProgram = "klcc"; - homepage = "https://kernel.org/pub/linux/libs/klibc/"; - maintainers = with lib.maintainers; [ fpletz ]; - license = lib.licenses.bsd3; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/klibc/no-reinstall-kernel-headers.patch b/pkgs/os-specific/linux/klibc/no-reinstall-kernel-headers.patch deleted file mode 100644 index bf46a17f3d7d..000000000000 --- a/pkgs/os-specific/linux/klibc/no-reinstall-kernel-headers.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/scripts/Kbuild.install b/scripts/Kbuild.install -index 0788637f..6708e19f 100644 ---- a/scripts/Kbuild.install -+++ b/scripts/Kbuild.install -@@ -102,7 +102,6 @@ header: - $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include - $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib - $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin -- $(Q)cp -rfL $(KLIBCKERNELSRC)/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/. - ifneq ($(srctree),$(objtree)) - $(Q)cp -rf $(srctree)/usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/. - endif diff --git a/pkgs/os-specific/linux/klibc/shrunk.nix b/pkgs/os-specific/linux/klibc/shrunk.nix deleted file mode 100644 index 8b79940ed78c..000000000000 --- a/pkgs/os-specific/linux/klibc/shrunk.nix +++ /dev/null @@ -1,26 +0,0 @@ -{stdenv, klibc}: - -stdenv.mkDerivation { - # !!! For now, the name has to be exactly as long as the original - # name due to the sed hackery below. Once patchelf 0.4 is in the - # tree, we can do this properly. - #name = "${klibc.name}-shrunk"; - name = klibc.name; - buildCommand = '' - mkdir -p $out/lib - cp -prd ${klibc.out}/lib/klibc/bin $out/ - cp -p ${klibc.out}/lib/*.so $out/lib/ - chmod +w $out/* - old=$(echo ${klibc.out}/lib/klibc-*.so) - new=$(echo $out/lib/klibc-*.so) - for i in $out/bin/*; do - echo $i - sed "s^$old^$new^" -i $i - # !!! use patchelf - #patchelf --set-interpreter $new $i - done - ''; # */ - allowedReferences = ["out"]; - - inherit (klibc) meta; -} diff --git a/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix b/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix deleted file mode 100644 index 464b77ce969e..000000000000 --- a/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchurl }: - -let - version = "30+20230519-1ubuntu3"; # mantic 2023-08-26 - -in stdenv.mkDerivation { - pname = "kmod-blacklist"; - inherit version; - - src = fetchurl { - url = "https://launchpad.net/ubuntu/+archive/primary/+files/kmod_${version}.debian.tar.xz"; - hash = "sha256-VGw1/rUjl9/j6026ut0dvC0/8maAAz8umb0D3YGf8p4="; - }; - - installPhase = '' - mkdir "$out" - for f in modprobe.d/*.conf; do - echo "''\n''\n## file: "`basename "$f"`"''\n''\n" >> "$out"/modprobe.conf - cat "$f" >> "$out"/modprobe.conf - # https://bugs.launchpad.net/ubuntu/+source/kmod/+bug/1475945 - sed -i '/^blacklist i2c_i801/d' $out/modprobe.conf - done - - substituteInPlace "$out"/modprobe.conf \ - --replace /sbin/lsmod /run/booted-system/sw/bin/lsmod \ - --replace /sbin/rmmod /run/booted-system/sw/bin/rmmod \ - --replace /sbin/modprobe /run/booted-system/sw/bin/modprobe \ - --replace " grep " " /run/booted-system/sw/bin/grep " \ - --replace " xargs " " /run/booted-system/sw/bin/xargs " - ''; - - meta = with lib; { - homepage = "https://launchpad.net/ubuntu/+source/kmod"; - description = "Linux kernel module blacklists from Ubuntu"; - platforms = platforms.linux; - license = with licenses; [ gpl2Plus lgpl21Plus ]; - }; -} diff --git a/pkgs/os-specific/linux/kmod-debian-aliases/default.nix b/pkgs/os-specific/linux/kmod-debian-aliases/default.nix deleted file mode 100644 index a4474f7c08fa..000000000000 --- a/pkgs/os-specific/linux/kmod-debian-aliases/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, fetchurl, lib }: - -stdenv.mkDerivation rec { - pname = "kmod-debian-aliases.conf"; - version = "30+20230601-2"; - - src = fetchurl { - url = "https://snapshot.debian.org/archive/debian/20231117T085632Z/pool/main/k/kmod/kmod_${version}.debian.tar.xz"; - hash = "sha256-xJMGKht8hu0aQjN9TER87Rv5EYkVMeDfX/jJ8+UjAqM="; - }; - - installPhase = '' - cp extra/aliases.conf $out - ''; - - meta = with lib; { - homepage = "https://packages.debian.org/source/sid/kmod"; - description = "Linux configuration file for modprobe"; - maintainers = with maintainers; [ mathnerd314 ]; - platforms = with platforms; linux; - license = with licenses; [ gpl2Plus lgpl21Plus ]; - }; -} diff --git a/pkgs/os-specific/linux/kmod/aggregator.nix b/pkgs/os-specific/linux/kmod/aggregator.nix deleted file mode 100644 index cd138f1d7f55..000000000000 --- a/pkgs/os-specific/linux/kmod/aggregator.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ stdenvNoCC, kmod, modules, buildEnv, name ? "kernel-modules" }: - -buildEnv { - inherit name; - - paths = modules; - - postBuild = - '' - source ${stdenvNoCC}/setup - - if ! test -d "$out/lib/modules"; then - echo "No modules found." - # To support a kernel without modules - exit 0 - fi - - kernelVersion=$(cd $out/lib/modules && ls -d *) - if test "$(echo $kernelVersion | wc -w)" != 1; then - echo "inconsistent kernel versions: $kernelVersion" - exit 1 - fi - - echo "kernel version is $kernelVersion" - - shopt -s extglob - - # Regenerate the depmod map files. Be sure to pass an explicit - # kernel version number, otherwise depmod will use `uname -r'. - if test -w $out/lib/modules/$kernelVersion; then - rm -f $out/lib/modules/$kernelVersion/modules.!(builtin*|order*) - ${kmod}/bin/depmod -b $out -C $out/etc/depmod.d -a $kernelVersion - fi - ''; -} diff --git a/pkgs/os-specific/linux/kmod/default.nix b/pkgs/os-specific/linux/kmod/default.nix deleted file mode 100644 index 3f971e7a6edb..000000000000 --- a/pkgs/os-specific/linux/kmod/default.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ stdenv, lib, fetchzip, autoconf, automake, docbook_xml_dtd_42 -, docbook_xml_dtd_43, docbook_xsl, gtk-doc, libtool, pkg-config -, libxslt, xz, zstd, elf-header -, withDevdoc ? stdenv.hostPlatform == stdenv.buildPlatform -, withStatic ? stdenv.hostPlatform.isStatic -, gitUpdater -}: - -let - systems = [ "/run/booted-system/kernel-modules" "/run/current-system/kernel-modules" "" ]; - modulesDirs = lib.concatMapStringsSep ":" (x: "${x}/lib/modules") systems; - -in stdenv.mkDerivation rec { - pname = "kmod"; - version = "31"; - - # autogen.sh is missing from the release tarball, - # and we need to run it to regenerate gtk_doc.make, - # because the version in the release tarball is broken. - # Possibly this will be fixed in kmod 30? - # https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit/.gitignore?id=61a93a043aa52ad62a11ba940d4ba93cb3254e78 - src = fetchzip { - url = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/snapshot/kmod-${version}.tar.gz"; - hash = "sha256-FNR015/AoYBbi7Eb1M2TXH3yxUuddKICCu+ot10CdeQ="; - }; - - outputs = [ "out" "dev" "lib" ] ++ lib.optional withDevdoc "devdoc"; - - strictDeps = true; - nativeBuildInputs = [ - autoconf automake docbook_xsl libtool libxslt pkg-config - - docbook_xml_dtd_42 # for the man pages - ] ++ lib.optionals withDevdoc [ docbook_xml_dtd_43 gtk-doc ]; - buildInputs = [ xz zstd ] - # gtk-doc is looked for with pkg-config - ++ lib.optionals withDevdoc [ gtk-doc ]; - - preConfigure = '' - ./autogen.sh - ''; - - configureFlags = [ - "--sysconfdir=/etc" - "--with-xz" - "--with-zstd" - "--with-modulesdirs=${modulesDirs}" - (lib.enableFeature withDevdoc "gtk-doc") - ] ++ lib.optional withStatic "--enable-static"; - - patches = [ ./module-dir.patch ] - ++ lib.optional withStatic ./enable-static.patch; - - postInstall = '' - for prog in rmmod insmod lsmod modinfo modprobe depmod; do - ln -sv $out/bin/kmod $out/bin/$prog - done - - # Backwards compatibility - ln -s bin $out/sbin - ''; - - passthru.updateScript = gitUpdater { - # No nicer place to find latest release. - url = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git"; - rev-prefix = "v"; - }; - - meta = with lib; { - description = "Tools for loading and managing Linux kernel modules"; - longDescription = '' - kmod is a set of tools to handle common tasks with Linux kernel modules - like insert, remove, list, check properties, resolve dependencies and - aliases. These tools are designed on top of libkmod, a library that is - shipped with kmod. - ''; - homepage = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/"; - downloadPage = "https://www.kernel.org/pub/linux/utils/kernel/kmod/"; - changelog = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/plain/NEWS?h=v${version}"; - license = with licenses; [ lgpl21Plus gpl2Plus ]; # GPLv2+ for tools - platforms = platforms.linux; - maintainers = with maintainers; [ artturin ]; - }; -} diff --git a/pkgs/os-specific/linux/kmod/enable-static.patch b/pkgs/os-specific/linux/kmod/enable-static.patch deleted file mode 100644 index 8308c6557921..000000000000 --- a/pkgs/os-specific/linux/kmod/enable-static.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index ee72283..b42c42a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -19,7 +19,6 @@ AM_SILENT_RULES([yes]) - LT_INIT([disable-static pic-only]) - DOLT - --AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by kmod])]) - AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is not supported by kmod])]) - - ##################################################################### diff --git a/pkgs/os-specific/linux/kmod/module-dir.patch b/pkgs/os-specific/linux/kmod/module-dir.patch deleted file mode 100644 index f7432e3756e9..000000000000 --- a/pkgs/os-specific/linux/kmod/module-dir.patch +++ /dev/null @@ -1,157 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index d4eeb7e..5c9f603 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -19,6 +19,7 @@ AM_CPPFLAGS = \ - -include $(top_builddir)/config.h \ - -I$(top_srcdir) \ - -DSYSCONFDIR=\""$(sysconfdir)"\" \ -+ -DMODULESDIRS=\""$(shell echo $(modulesdirs) | $(SED) 's|:|\\",\\"|g')"\" \ - ${zlib_CFLAGS} - - AM_CFLAGS = $(OUR_CFLAGS) -diff --git a/configure.ac b/configure.ac -index 23510c8..66490cf 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -202,6 +202,12 @@ GTK_DOC_CHECK([1.14],[--flavour no-tmpl-flat]) - ], [ - AM_CONDITIONAL([ENABLE_GTK_DOC], false)]) - -+AC_ARG_WITH([modulesdirs], -+ AS_HELP_STRING([--with-modulesdirs=DIRS], [Kernel modules directories, separated by :]), -+ [], -+ [with_modulesdirs=/lib/modules]) -+AC_SUBST([modulesdirs], [$with_modulesdirs]) -+ - - ##################################################################### - # Default CFLAGS and LDFLAGS -diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c -index 69fe431..d37da32 100644 ---- a/libkmod/libkmod.c -+++ b/libkmod/libkmod.c -@@ -206,12 +206,15 @@ static int log_priority(const char *priority) - return 0; - } - --static const char *dirname_default_prefix = "/lib/modules"; -+static const char *dirname_default_prefixes[] = { -+ MODULESDIRS, -+ NULL -+}; - - static char *get_kernel_release(const char *dirname) - { - struct utsname u; -- char *p; -+ char *p, *dirname_prefix; - - if (dirname != NULL) - return path_make_absolute_cwd(dirname); -@@ -219,8 +222,42 @@ static char *get_kernel_release(const char *dirname) - if (uname(&u) < 0) - return NULL; - -- if (asprintf(&p, "%s/%s", dirname_default_prefix, u.release) < 0) -- return NULL; -+ if ((dirname_prefix = getenv("MODULE_DIR")) != NULL) { -+ if(asprintf(&p, "%s/%s", dirname_prefix, u.release) < 0) -+ return NULL; -+ } else { -+ size_t i; -+ char buf[PATH_MAX]; -+ -+ for (i = 0; dirname_default_prefixes[i] != NULL; i++) { -+ int plen; -+ struct stat dirstat; -+ -+ plen = snprintf(buf, sizeof(buf), "%s/%s", dirname_default_prefixes[i], u.release); -+ if (plen < 0) -+ return NULL; -+ else if (plen >= PATH_MAX) -+ continue; -+ -+ if (dirname_default_prefixes[i + 1] != NULL) { -+ if (stat(buf, &dirstat) < 0) { -+ if (errno == ENOENT) -+ continue; -+ else -+ return NULL; -+ } -+ -+ if (!S_ISDIR(dirstat.st_mode)) -+ continue; -+ } -+ -+ p = malloc(plen + 1); -+ if (p == NULL) -+ return NULL; -+ memcpy(p, buf, plen + 1); -+ break; -+ } -+ } - - return p; - } -diff --git a/tools/static-nodes.c b/tools/static-nodes.c -index 8d2356d..2ed306d 100644 ---- a/tools/static-nodes.c -+++ b/tools/static-nodes.c -@@ -29,10 +29,11 @@ - #include <unistd.h> - #include <sys/stat.h> - #include <sys/types.h> --#include <sys/utsname.h> - - #include <shared/util.h> - -+#include <libkmod/libkmod.h> -+ - #include "kmod.h" - - struct static_nodes_format { -@@ -154,8 +155,8 @@ static void help(void) - - static int do_static_nodes(int argc, char *argv[]) - { -- struct utsname kernel; - char modules[PATH_MAX], buf[4096]; -+ struct kmod_ctx *ctx; - const char *output = "/dev/stdout"; - FILE *in = NULL, *out = NULL; - const struct static_nodes_format *format = &static_nodes_format_human; -@@ -206,22 +207,25 @@ static int do_static_nodes(int argc, char *argv[]) - } - } - -- if (uname(&kernel) < 0) { -- fputs("Error: uname failed!\n", stderr); -+ ctx = kmod_new(NULL, NULL); -+ if (ctx == NULL) { -+ fprintf(stderr, "Error: failed to create kmod context\n"); - ret = EXIT_FAILURE; - goto finish; - } -- -- snprintf(modules, sizeof(modules), "/lib/modules/%s/modules.devname", kernel.release); -+ if (snprintf(modules, sizeof(modules), "%s/modules.devname", kmod_get_dirname(ctx)) < 0) { -+ fprintf(stderr, "Error: path to modules.devname is too long\n"); -+ ret = EXIT_FAILURE; -+ goto finish; -+ } -+ kmod_unref(ctx); - in = fopen(modules, "re"); - if (in == NULL) { - if (errno == ENOENT) { -- fprintf(stderr, "Warning: /lib/modules/%s/modules.devname not found - ignoring\n", -- kernel.release); -+ fprintf(stderr, "Warning: %s not found - ignoring\n", modules); - ret = EXIT_SUCCESS; - } else { -- fprintf(stderr, "Error: could not open /lib/modules/%s/modules.devname - %m\n", -- kernel.release); -+ fprintf(stderr, "Error: could not open %s - %m\n", modules); - ret = EXIT_FAILURE; - } - goto finish; diff --git a/pkgs/os-specific/linux/kmscon/default.nix b/pkgs/os-specific/linux/kmscon/default.nix deleted file mode 100644 index 18ac0370b855..000000000000 --- a/pkgs/os-specific/linux/kmscon/default.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, meson -, libtsm -, systemd -, libxkbcommon -, libdrm -, libGLU -, libGL -, pango -, pixman -, pkg-config -, docbook_xsl -, libxslt -, mesa -, ninja -, buildPackages -}: - -stdenv.mkDerivation rec { - pname = "kmscon"; - version = "9.0.0"; - - src = fetchFromGitHub { - owner = "Aetf"; - repo = "kmscon"; - rev = "v${version}"; - sha256 = "sha256-8owyyzCrZVbWXcCR+RA+m0MOrdzW+efI+rIMWEVEZ1o="; - }; - - strictDeps = true; - - depsBuildBuild = [ - buildPackages.stdenv.cc - ]; - - buildInputs = [ - libGLU - libGL - libdrm - libtsm - libxkbcommon - pango - pixman - systemd - mesa - ]; - - nativeBuildInputs = [ - meson - ninja - docbook_xsl - pkg-config - libxslt # xsltproc - ]; - - patches = [ - (fetchpatch { - name = "0001-tests-fix-warnings.patch"; - url = "https://github.com/Aetf/kmscon/commit/b65f4269b03de580923ab390bde795e7956b633f.patch"; - sha256 = "sha256-ngflPwmNMM/2JzhV+hHiH3efQyoSULfqEywzWox9iAQ="; - }) - ]; - - # _FORTIFY_SOURCE requires compiling with optimization (-O) - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-O" - + " -Wno-error=maybe-uninitialized"; # https://github.com/Aetf/kmscon/issues/49 - - configureFlags = [ - "--enable-multi-seat" - "--disable-debug" - "--enable-optimizations" - "--with-renderers=bbulk,gltex,pixman" - ]; - - enableParallelBuilding = true; - - meta = with lib; { - description = "KMS/DRM based System Console"; - mainProgram = "kmscon"; - homepage = "https://www.freedesktop.org/wiki/Software/kmscon/"; - license = licenses.mit; - maintainers = with maintainers; [ omasanori ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/kmscube/default.nix b/pkgs/os-specific/linux/kmscube/default.nix deleted file mode 100644 index a416e2aa14bd..000000000000 --- a/pkgs/os-specific/linux/kmscube/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchFromGitLab, meson, ninja, libdrm, libX11, libGL, mesa, pkg-config, gst_all_1 }: - -stdenv.mkDerivation { - pname = "kmscube"; - version = "unstable-2023-09-25"; - - src = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "mesa"; - repo = "kmscube"; - rev = "96d63eb59e34c647cda1cbb489265f8c536ae055"; - hash = "sha256-kpnn4JBNvwatrcCF/RGk/fQ7qiKD26iLBr9ovDmAKBo="; - }; - - nativeBuildInputs = [ meson pkg-config ninja ]; - buildInputs = [ - libdrm - libX11 - libGL - mesa - ] ++ (with gst_all_1; [ - gstreamer - gst-plugins-base - ]); - - meta = with lib; { - description = "Example OpenGL app using KMS/GBM"; - homepage = "https://gitlab.freedesktop.org/mesa/kmscube"; - license = licenses.mit; - maintainers = with maintainers; [ dezgeg ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ksmbd-tools/0001-skip-installing-example-configuration.patch b/pkgs/os-specific/linux/ksmbd-tools/0001-skip-installing-example-configuration.patch deleted file mode 100644 index 2b4b35774d19..000000000000 --- a/pkgs/os-specific/linux/ksmbd-tools/0001-skip-installing-example-configuration.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 592de67191a3969fcccef6293740c7142793d461 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io> -Date: Wed, 1 Nov 2023 21:54:05 +0100 -Subject: [PATCH] skip installing example configuration -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This requires root if prefix dir is pointed to /etc, -which we cannot do in nix builds. - -Signed-off-by: Jörg Thalheim <joerg@thalheim.io> ---- - meson.build | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/meson.build b/meson.build -index 5f5935f..8373013 100644 ---- a/meson.build -+++ b/meson.build -@@ -114,10 +114,10 @@ else - runstatedir = rundir - endif - --install_data( -- sources: 'ksmbd.conf.example', -- install_dir: get_option('sysconfdir') / 'ksmbd', --) -+#install_data( -+# sources: 'ksmbd.conf.example', -+# install_dir: get_option('sysconfdir') / 'ksmbd', -+#) - - systemdsystemunitdir = get_option('systemdsystemunitdir') - if systemdsystemunitdir == '' --- -2.42.0 - diff --git a/pkgs/os-specific/linux/ksmbd-tools/default.nix b/pkgs/os-specific/linux/ksmbd-tools/default.nix deleted file mode 100644 index b81f581c07aa..000000000000 --- a/pkgs/os-specific/linux/ksmbd-tools/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, meson -, ninja -, glib -, libkrb5 -, libnl -, libtool -, pkg-config -, withKerberos ? false -}: - -stdenv.mkDerivation rec { - pname = "ksmbd-tools"; - version = "3.5.2"; - - src = fetchFromGitHub { - owner = "cifsd-team"; - repo = pname; - rev = version; - sha256 = "sha256-QE/Pnba4zgeInlVqOEjT3EqV6NPkQTp6xeYU3dsIl4M="; - }; - - buildInputs = [ glib libnl ] ++ lib.optional withKerberos libkrb5; - - nativeBuildInputs = [ meson ninja libtool pkg-config ]; - patches = [ ./0001-skip-installing-example-configuration.patch ]; - mesonFlags = [ - "-Drundir=/run" - "-Dsystemdsystemunitdir=lib/systemd/system" - "--sysconfdir /etc" - ]; - - meta = with lib; { - description = "Userspace utilities for the ksmbd kernel SMB server"; - homepage = "https://www.kernel.org/doc/html/latest/filesystems/cifs/ksmbd.html"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ elohmeier ]; - }; -} diff --git a/pkgs/os-specific/linux/kvdo/default.nix b/pkgs/os-specific/linux/kvdo/default.nix deleted file mode 100644 index 3258295be58a..000000000000 --- a/pkgs/os-specific/linux/kvdo/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, vdo, kernel }: - -stdenv.mkDerivation rec { - inherit (vdo); - pname = "kvdo"; - version = "8.2.3.3"; # bump this version with vdo - - src = fetchFromGitHub { - owner = "dm-vdo"; - repo = "kvdo"; - rev = version; - hash = "sha256-y7uVgWFV6uWRoRqfiu0arG9731mgWijXjcp9KSaZ5X0="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - dontConfigure = true; - enableParallelBuilding = true; - - KSRC = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; - INSTALL_MOD_PATH = placeholder "out"; - - preBuild = '' - makeFlags="$makeFlags -C ${KSRC} M=$(pwd)" - ''; - installTargets = [ "modules_install" ]; - - meta = with lib; { - inherit (vdo.meta) license maintainers; - homepage = "https://github.com/dm-vdo/kvdo"; - description = "A pair of kernel modules which provide pools of deduplicated and/or compressed block storage"; - platforms = platforms.linux; - broken = kernel.kernelOlder "5.15"; - }; -} diff --git a/pkgs/os-specific/linux/kvmfr/default.nix b/pkgs/os-specific/linux/kvmfr/default.nix deleted file mode 100644 index a77d1290ca80..000000000000 --- a/pkgs/os-specific/linux/kvmfr/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, kernel, looking-glass-client }: - -stdenv.mkDerivation { - pname = "kvmfr"; - version = looking-glass-client.version; - - src = looking-glass-client.src; - sourceRoot = "${looking-glass-client.src.name}/module"; - patches = lib.optional (kernel.kernelAtLeast "6.4") [ - ./linux-6-4-compat.patch - ]; - hardeningDisable = [ "pic" "format" ]; - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "KVER=${kernel.modDirVersion}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - install -D kvmfr.ko -t "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/misc/" - ''; - - meta = with lib; { - description = "Optional kernel module for LookingGlass"; - longDescription = '' - This kernel module implements a basic interface to the IVSHMEM device for LookingGlass when using LookingGlass in VM->VM mode - Additionally, in VM->host mode, it can be used to generate a shared memory device on the host machine that supports dmabuf - ''; - homepage = "https://github.com/gnif/LookingGlass"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ j-brn ]; - platforms = [ "x86_64-linux" ]; - broken = kernel.kernelOlder "5.3"; - }; -} diff --git a/pkgs/os-specific/linux/kvmfr/linux-6-4-compat.patch b/pkgs/os-specific/linux/kvmfr/linux-6-4-compat.patch deleted file mode 100644 index e57d1d27c36c..000000000000 --- a/pkgs/os-specific/linux/kvmfr/linux-6-4-compat.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/kvmfr.c b/kvmfr.c -index 121aae5b..2f4c9e1a 100644 ---- a/kvmfr.c -+++ b/kvmfr.c -@@ -539,7 +539,11 @@ static int __init kvmfr_module_init(void) - if (kvmfr->major < 0) - goto out_free; - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) - kvmfr->pClass = class_create(THIS_MODULE, KVMFR_DEV_NAME); -+#else -+ kvmfr->pClass = class_create(KVMFR_DEV_NAME); -+#endif - if (IS_ERR(kvmfr->pClass)) - goto out_unreg; - diff --git a/pkgs/os-specific/linux/latencytop/default.nix b/pkgs/os-specific/linux/latencytop/default.nix deleted file mode 100644 index 023140e1f482..000000000000 --- a/pkgs/os-specific/linux/latencytop/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchurl, ncurses, glib, pkg-config, gtk2, util-linux }: - -stdenv.mkDerivation rec { - pname = "latencytop"; - version = "0.5"; - - postPatch = '' - sed -i s,/usr,$out, Makefile - - # Fix #171609 - substituteInPlace fsync.c --replace /bin/mount ${util-linux}/bin/mount - ''; - - preInstall = "mkdir -p $out/sbin"; - - src = fetchurl { - urls = [ "http://latencytop.org/download/latencytop-${version}.tar.gz" - "http://dbg.download.sourcemage.org/mirror/latencytop-0.5.tar.gz" ]; - sha256 = "1vq3j9zdab6njly2wp900b3d5244mnxfm88j2bkiinbvxbxp4zwy"; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ncurses glib gtk2 ]; - - meta = { - homepage = "http://latencytop.org"; - description = "Tool to show kernel reports on latencies (LATENCYTOP option)"; - mainProgram = "latencytop"; - license = lib.licenses.gpl2; - maintainers = [ lib.maintainers.viric ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ldm/default.nix b/pkgs/os-specific/linux/ldm/default.nix deleted file mode 100644 index 0dea0ce4e8b0..000000000000 --- a/pkgs/os-specific/linux/ldm/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib, stdenv, fetchgit, udev, util-linux, mountPath ? "/media/" }: - -assert mountPath != ""; - -let - version = "0.5"; -in -stdenv.mkDerivation rec { - pname = "ldm"; - inherit version; - - # There is a stable release, but we'll use the lvm branch, which - # contains important fixes for LVM setups. - src = fetchgit { - url = "https://github.com/LemonBoy/ldm"; - rev = "refs/tags/v${version}"; - sha256 = "0lxfypnbamfx6p9ar5k9wra20gvwn665l4pp2j4vsx4yi5q7rw2n"; - }; - - buildInputs = [ udev util-linux ]; - - postPatch = '' - substituteInPlace ldm.c \ - --replace "/mnt/" "${mountPath}" - sed '16i#include <sys/stat.h>' -i ldm.c - ''; - - buildFlags = [ "ldm" ]; - - installPhase = '' - mkdir -p $out/bin - cp -v ldm $out/bin - ''; - - meta = { - description = "A lightweight device mounter, with libudev as only dependency"; - mainProgram = "ldm"; - license = lib.licenses.mit; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/ledger-udev-rules/default.nix b/pkgs/os-specific/linux/ledger-udev-rules/default.nix deleted file mode 100644 index 3a6bf9e5d51c..000000000000 --- a/pkgs/os-specific/linux/ledger-udev-rules/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation { - pname = "ledger-udev-rules"; - version = "unstable-2021-09-10"; - - src = fetchFromGitHub { - owner = "LedgerHQ"; - repo = "udev-rules"; - rev = "2776324af6df36c2af4d2e8e92a1c98c281117c9"; - sha256 = "sha256-yTYI81PXMc32lMfI5uhD14nP20zAI7ZF33V1LRDWg2Y="; - }; - - dontBuild = true; - dontConfigure = true; - - installPhase = '' - mkdir -p $out/lib/udev/rules.d - cp 20-hw1.rules $out/lib/udev/rules.d/20-ledger.rules - ''; - - meta = with lib; { - description = "udev rules for Ledger devices"; - license = licenses.asl20; - maintainers = with maintainers; [ asymmetric ]; - platforms = platforms.linux; - homepage = "https://github.com/LedgerHQ/udev-rules"; - }; -} diff --git a/pkgs/os-specific/linux/lenovo-legion/app.nix b/pkgs/os-specific/linux/lenovo-legion/app.nix deleted file mode 100644 index eeccf301ee95..000000000000 --- a/pkgs/os-specific/linux/lenovo-legion/app.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib, fetchFromGitHub, xorg, libsForQt5, wrapQtAppsHook, python3 }: - -python3.pkgs.buildPythonApplication rec { - pname = "lenovo-legion-app"; - version = "0.0.12"; - - src = fetchFromGitHub { - owner = "johnfanv2"; - repo = "LenovoLegionLinux"; - rev = "v${version}-prerelease"; - hash = "sha256-BNrRv9EBmNINQbAw+BzVxKl/XoDgH1tsNZHJxfSpNoU="; - }; - - sourceRoot = "${src.name}/python/legion_linux"; - - nativeBuildInputs = [ wrapQtAppsHook ]; - - propagatedBuildInputs = with python3.pkgs; [ - pyqt5 - pyqt6 - argcomplete - pyyaml - darkdetect - xorg.libxcb - libsForQt5.qtbase - ]; - - postPatch = '' - substituteInPlace ./setup.cfg \ - --replace-fail "_VERSION" "${version}" - substituteInPlace ../../extra/service/fancurve-set \ - --replace-fail "FOLDER=/etc/legion_linux/" "FOLDER=$out/share/legion_linux" - substituteInPlace ./legion_linux/legion.py \ - --replace-fail "/etc/legion_linux" "$out/share/legion_linux" - substituteInPlace ./legion_linux/legion_gui.desktop \ - --replace-fail "Icon=/usr/share/pixmaps/legion_logo.png" "Icon=legion_logo" - ''; - - dontWrapQtApps = true; - - preFixup = '' - makeWrapperArgs+=("''${qtWrapperArgs[@]}") - ''; - - meta = { - description = "An utility to control Lenovo Legion laptop"; - homepage = "https://github.com/johnfanv2/LenovoLegionLinux"; - license = lib.licenses.gpl2Only; - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.ulrikstrid ]; - mainProgram = "legion_gui"; - }; -} - diff --git a/pkgs/os-specific/linux/lenovo-legion/default.nix b/pkgs/os-specific/linux/lenovo-legion/default.nix deleted file mode 100644 index 527f1852f1e0..000000000000 --- a/pkgs/os-specific/linux/lenovo-legion/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, fetchurl, stdenv, kernel, bash, lenovo-legion }: - -stdenv.mkDerivation { - pname = "lenovo-legion-module"; - inherit (lenovo-legion) version src; - - sourceRoot = "${lenovo-legion.src.name}/kernel_module"; - - hardeningDisable = [ "pic" ]; - - preConfigure = '' - sed -i -e '/depmod/d' ./Makefile - ''; - - makeFlags = kernel.makeFlags ++ [ - "SHELL=bash" - "KERNELVERSION=${kernel.modDirVersion}" - "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "INSTALLDIR=${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/platform/x86" - "MODDESTDIR=${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/platform/x86" - "DKMSDIR=${placeholder "out"}/lib/modules/${kernel.modDirVersion}/misc" - ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - meta = { - description = "Linux kernel module for controlling fan and power in Lenovo Legion laptops"; - homepage = "https://github.com/johnfanv2/LenovoLegionLinux"; - license = lib.licenses.gpl2Only; - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.ulrikstrid ]; - broken = kernel.kernelOlder "5.15"; - }; -} diff --git a/pkgs/os-specific/linux/libaio/default.nix b/pkgs/os-specific/linux/libaio/default.nix deleted file mode 100644 index 324e2695dd53..000000000000 --- a/pkgs/os-specific/linux/libaio/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch }: - -stdenv.mkDerivation rec { - version = "0.3.113"; - pname = "libaio"; - - src = fetchurl { - url = "https://pagure.io/libaio/archive/${pname}-${version}/${pname}-${pname}-${version}.tar.gz"; - sha256 = "sha256-cWxwWXAyRzROsGa1TsvDyiE08BAzBxkubCt9q1+VKKs="; - }; - - postPatch = '' - patchShebangs harness - - # Makefile is too optimistic, gcc is too smart - substituteInPlace harness/Makefile \ - --replace "-Werror" "" - ''; - - makeFlags = [ - "prefix=${placeholder "out"}" - ] ++ lib.optional stdenv.hostPlatform.isStatic "ENABLE_SHARED=0"; - - hardeningDisable = lib.optional (stdenv.isi686) "stackprotector"; - - checkTarget = "partcheck"; # "check" needs root - - meta = { - description = "Library for asynchronous I/O in Linux"; - homepage = "https://lse.sourceforge.net/io/aio.html"; - platforms = lib.platforms.linux; - license = lib.licenses.lgpl21; - maintainers = with lib.maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/libatasmart/default.nix b/pkgs/os-specific/linux/libatasmart/default.nix deleted file mode 100644 index d5be78e913b7..000000000000 --- a/pkgs/os-specific/linux/libatasmart/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, udev, buildPackages }: - -stdenv.mkDerivation rec { - pname = "libatasmart"; - version = "0.19"; - - src = fetchurl { - url = "http://0pointer.de/public/libatasmart-${version}.tar.xz"; - sha256 = "138gvgdwk6h4ljrjsr09pxk1nrki4b155hqdzyr8mlk3bwsfmw31"; - }; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ udev ]; - - meta = with lib; { - homepage = "http://0pointer.de/blog/projects/being-smart.html"; - description = "Library for querying ATA SMART status"; - license = licenses.lgpl21; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/libbpf/0.x.nix b/pkgs/os-specific/linux/libbpf/0.x.nix deleted file mode 100644 index 480e78d0803a..000000000000 --- a/pkgs/os-specific/linux/libbpf/0.x.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ fetchFromGitHub -, elfutils -, pkg-config -, stdenv -, zlib -, lib -, nixosTests -}: - -# update bot does not seem to limit updates here to 0.8.x despite -# the all-packages derivation being libbpf_0 as the libbpf base alias -# is still present: just disable it for 0.x: -# nixpkgs-update: no auto update - -stdenv.mkDerivation rec { - pname = "libbpf"; - version = "0.8.1"; - - src = fetchFromGitHub { - owner = "libbpf"; - repo = "libbpf"; - rev = "v${version}"; - sha256 = "sha256-daVS+TErmDU8ksThOvcepg1A61iD8N8GIkC40cmc9/8="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ elfutils zlib ]; - - enableParallelBuilding = true; - makeFlags = [ "PREFIX=$(out)" "-C src" ]; - - passthru.tests = { - bpf = nixosTests.bpf; - }; - - postInstall = '' - # install linux's libbpf-compatible linux/btf.h - install -Dm444 include/uapi/linux/*.h -t $out/include/linux - ''; - - # FIXME: Multi-output requires some fixes to the way the pkg-config file is - # constructed (it gets put in $out instead of $dev for some reason, with - # improper paths embedded). Don't enable it for now. - - # outputs = [ "out" "dev" ]; - - meta = with lib; { - description = "Upstream mirror of libbpf"; - homepage = "https://github.com/libbpf/libbpf"; - license = with licenses; [ lgpl21 /* or */ bsd2 ]; - maintainers = with maintainers; [ thoughtpolice vcunat saschagrunert martinetd ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/libbpf/default.nix b/pkgs/os-specific/linux/libbpf/default.nix deleted file mode 100644 index 99454beb4187..000000000000 --- a/pkgs/os-specific/linux/libbpf/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ fetchFromGitHub -, elfutils -, pkg-config -, stdenv -, zlib -, lib - -# for passthru.tests -, knot-dns -, nixosTests -, systemd -, tracee -}: - -stdenv.mkDerivation rec { - pname = "libbpf"; - version = "1.4.0"; - - src = fetchFromGitHub { - owner = "libbpf"; - repo = "libbpf"; - rev = "v${version}"; - sha256 = "sha256-3TCsIlr28vO6Zu9lDaEq6J4J+D5sHP7SSo1O/M0ZzUo="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ elfutils zlib ]; - - enableParallelBuilding = true; - makeFlags = [ "PREFIX=$(out)" "-C src" ]; - - passthru.tests = { - inherit knot-dns tracee; - bpf = nixosTests.bpf; - systemd = systemd.override { withLibBPF = true; }; - }; - - postInstall = '' - # install linux's libbpf-compatible linux/btf.h - install -Dm444 include/uapi/linux/*.h -t $out/include/linux - ''; - - # FIXME: Multi-output requires some fixes to the way the pkg-config file is - # constructed (it gets put in $out instead of $dev for some reason, with - # improper paths embedded). Don't enable it for now. - - # outputs = [ "out" "dev" ]; - - meta = with lib; { - description = "Library for loading eBPF programs and reading and manipulating eBPF objects from user-space"; - homepage = "https://github.com/libbpf/libbpf"; - license = with licenses; [ lgpl21 /* or */ bsd2 ]; - maintainers = with maintainers; [ thoughtpolice vcunat saschagrunert martinetd ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/libcap-ng/default.nix b/pkgs/os-specific/linux/libcap-ng/default.nix deleted file mode 100644 index 59aa5bbc0e5d..000000000000 --- a/pkgs/os-specific/linux/libcap-ng/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "libcap-ng"; - version = "0.8.4"; - - src = fetchurl { - url = "https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${version}.tar.gz"; - sha256 = "sha256-aFgdOzjnVTy29t33gTsfyZ5ShW8hQh97R3zlq9JgWoo="; - }; - - outputs = [ "out" "dev" "man" ]; - - configureFlags = [ - "--without-python" - ]; - - meta = with lib; { - description = "Library for working with POSIX capabilities"; - homepage = "https://people.redhat.com/sgrubb/libcap-ng/"; - platforms = platforms.linux; - license = licenses.lgpl21; - }; -} diff --git a/pkgs/os-specific/linux/libcap/default.nix b/pkgs/os-specific/linux/libcap/default.nix deleted file mode 100644 index 3fb3003d77aa..000000000000 --- a/pkgs/os-specific/linux/libcap/default.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ stdenv, lib, buildPackages, fetchurl, attr, runtimeShell -, usePam ? !isStatic, pam ? null -, isStatic ? stdenv.hostPlatform.isStatic - -# passthru.tests -, bind -, chrony -, htop -, libgcrypt -, libvirt -, ntp -, qemu -, squid -, tor -, uwsgi -}: - -assert usePam -> pam != null; - -stdenv.mkDerivation rec { - pname = "libcap"; - version = "2.69"; - - src = fetchurl { - url = "mirror://kernel/linux/libs/security/linux-privs/libcap2/${pname}-${version}.tar.xz"; - sha256 = "sha256-8xH489rYRpnQVm0db37JQ6kpiyj3FMrjyTHf1XSS1+s="; - }; - - outputs = [ "out" "dev" "lib" "man" "doc" ] - ++ lib.optional usePam "pam"; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - buildInputs = lib.optional usePam pam; - - propagatedBuildInputs = [ attr ]; - - makeFlags = [ - "lib=lib" - "PAM_CAP=${if usePam then "yes" else "no"}" - "BUILD_CC=$(CC_FOR_BUILD)" - "CC:=$(CC)" - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ] ++ lib.optionals isStatic [ "SHARED=no" "LIBCSTATIC=yes" ]; - - postPatch = '' - patchShebangs ./progs/mkcapshdoc.sh - - # use full path to bash - substituteInPlace progs/capsh.c --replace "/bin/bash" "${runtimeShell}" - - # set prefixes - substituteInPlace Make.Rules \ - --replace 'prefix=/usr' "prefix=$lib" \ - --replace 'exec_prefix=' "exec_prefix=$out" \ - --replace 'lib_prefix=$(exec_prefix)' "lib_prefix=$lib" \ - --replace 'inc_prefix=$(prefix)' "inc_prefix=$dev" \ - --replace 'man_prefix=$(prefix)' "man_prefix=$doc" - ''; - - installFlags = [ "RAISE_SETFCAP=no" ]; - - postInstall = '' - ${lib.optionalString (!isStatic) ''rm "$lib"/lib/*.a''} - mkdir -p "$doc/share/doc/${pname}-${version}" - cp License "$doc/share/doc/${pname}-${version}/" - '' + lib.optionalString usePam '' - mkdir -p "$pam/lib/security" - mv "$lib"/lib/security "$pam/lib" - ''; - - passthru.tests = { - inherit - bind - chrony - htop - libgcrypt - libvirt - ntp - qemu - squid - tor - uwsgi; - }; - - meta = { - description = "Library for working with POSIX capabilities"; - homepage = "https://sites.google.com/site/fullycapable"; - platforms = lib.platforms.linux; - license = lib.licenses.bsd3; - }; -} diff --git a/pkgs/os-specific/linux/libcgroup/default.nix b/pkgs/os-specific/linux/libcgroup/default.nix deleted file mode 100644 index 8f24362b94b2..000000000000 --- a/pkgs/os-specific/linux/libcgroup/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pam, bison, flex, autoreconfHook }: - -stdenv.mkDerivation rec { - pname = "libcgroup"; - version = "3.0"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "v${version}"; - fetchSubmodules = true; - hash = "sha256-x2yBqpr3LedtWmpZ4K1ipZxIualNJuDtC4FVGzzcQn8="; - }; - - nativeBuildInputs = [ autoreconfHook bison flex ]; - buildInputs = [ pam ]; - - postPatch = '' - substituteInPlace src/tools/Makefile.am \ - --replace 'chmod u+s' 'chmod +x' - ''; - - meta = { - description = "Library and tools to manage Linux cgroups"; - homepage = "https://github.com/libcgroup/libcgroup"; - license = lib.licenses.lgpl2; - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.thoughtpolice ]; - }; -} diff --git a/pkgs/os-specific/linux/libevdevc/default.nix b/pkgs/os-specific/linux/libevdevc/default.nix deleted file mode 100644 index 5e6b7cd47815..000000000000 --- a/pkgs/os-specific/linux/libevdevc/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, coreutils, pkg-config, glib, jsoncpp }: - -stdenv.mkDerivation rec { - pname = "libevdevc"; - version = "2.0.1"; - src = fetchFromGitHub { - owner = "hugegreenbug"; - repo = "libevdevc"; - rev = "v${version}"; - sha256 = "0ry30krfizh87yckmmv8n082ad91mqhhbbynx1lfidqzb6gdy2dd"; - }; - - postPatch = '' - substituteInPlace common.mk \ - --replace /bin/echo ${coreutils}/bin/echo - substituteInPlace include/module.mk \ - --replace /usr/include /include - ''; - - makeFlags = [ "DESTDIR=$(out)" "LIBDIR=/lib" ]; - - # causes redefinition of _FORTIFY_SOURCE - hardeningDisable = [ "fortify3" ]; - - meta = with lib; { - description = "ChromiumOS libevdev. Renamed to avoid conflicts with the standard libevdev found in Linux distros"; - license = licenses.bsd3; - platforms = platforms.linux; - homepage = "https://chromium.googlesource.com/chromiumos/platform/libevdev/"; - maintainers = with maintainers; [ kcalvinalvin ]; - }; -} diff --git a/pkgs/os-specific/linux/libgestures/default.nix b/pkgs/os-specific/linux/libgestures/default.nix deleted file mode 100644 index 1454c0c78a50..000000000000 --- a/pkgs/os-specific/linux/libgestures/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, glib, jsoncpp }: - -stdenv.mkDerivation rec { - pname = "libgestures"; - version = "2.0.1"; - src = fetchFromGitHub { - owner = "hugegreenbug"; - repo = "libgestures"; - rev = "v${version}"; - sha256 = "0dfvads2adzx4k8cqc1rbwrk1jm2wn9wl2jk51m26xxpmh1g0zab"; - }; - patches = [ ./include-fix.patch ]; - - postPatch = '' - substituteInPlace Makefile \ - --replace -Werror -Wno-error \ - --replace '$(DESTDIR)/usr/include' '$(DESTDIR)/include' - ''; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ glib jsoncpp ]; - - - makeFlags = [ "DESTDIR=$(out)" "LIBDIR=/lib" ]; - - meta = with lib; { - description = "ChromiumOS libgestures modified to compile for Linux"; - license = licenses.bsd3; - platforms = platforms.linux; - homepage = "https://chromium.googlesource.com/chromiumos/platform/gestures"; - maintainers = with maintainers; [ kcalvinalvin ]; - }; -} diff --git a/pkgs/os-specific/linux/libgestures/include-fix.patch b/pkgs/os-specific/linux/libgestures/include-fix.patch deleted file mode 100644 index 851be4771434..000000000000 --- a/pkgs/os-specific/linux/libgestures/include-fix.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur a/include/gestures/include/finger_metrics.h b/include/gestures/include/finger_metrics.h ---- a/include/gestures/include/finger_metrics.h 1970-01-01 09:00:01.000000000 +0900 -+++ b/include/gestures/include/finger_metrics.h 2018-12-01 16:58:51.590718511 +0900 -@@ -5,6 +5,8 @@ - #ifndef GESTURES_FINGER_METRICS_H_ - #define GESTURES_FINGER_METRICS_H_ - -+#include <math.h> -+ - #include "gestures/include/gestures.h" - #include "gestures/include/prop_registry.h" -#include "gestures/include/vector.h" diff --git a/pkgs/os-specific/linux/libnl-tiny/default.nix b/pkgs/os-specific/linux/libnl-tiny/default.nix deleted file mode 100644 index 8a8c84513f62..000000000000 --- a/pkgs/os-specific/linux/libnl-tiny/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, lib, fetchgit, cmake, pkg-config }: - -stdenv.mkDerivation { - pname = "libnl-tiny"; - version = "unstable-2023-12-05"; - - src = fetchgit { - url = "https://git.openwrt.org/project/libnl-tiny.git"; - rev = "965c4bf49658342ced0bd6e7cb069571b4a1ddff"; - hash = "sha256-kegTV7FXMERW7vjRZo/Xp4cbSBZmynBgge2lK71Fx94="; - }; - - nativeBuildInputs = [ cmake pkg-config ]; - - preConfigure = '' - sed -e 's|''${prefix}/@CMAKE_INSTALL_LIBDIR@|@CMAKE_INSTALL_FULL_LIBDIR@|g' \ - -e 's|''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@|@CMAKE_INSTALL_FULL_INCLUDEDIR@|g' \ - -i libnl-tiny.pc.in - ''; - - meta = with lib; { - description = "Tiny OpenWrt fork of libnl"; - homepage = "https://git.openwrt.org/?p=project/libnl-tiny.git;a=summary"; - license = licenses.isc; - maintainers = with maintainers; [ mkg20001 ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/libnl/default.nix b/pkgs/os-specific/linux/libnl/default.nix deleted file mode 100644 index 68f4ee20df88..000000000000 --- a/pkgs/os-specific/linux/libnl/default.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ stdenv -, file -, lib -, fetchFromGitHub -, autoreconfHook -, bison -, flex -, pkg-config -, doxygen -, graphviz -, mscgen -, asciidoc -, sourceHighlight -, pythonSupport ? false -, swig ? null -, python ? null -}: - -stdenv.mkDerivation rec { - pname = "libnl"; - version = "3.8.0"; - - src = fetchFromGitHub { - repo = "libnl"; - owner = "thom311"; - rev = "libnl${lib.replaceStrings ["."] ["_"] version}"; - hash = "sha256-zVpoRlB5xDfo6wJkCJGGptuCXkNkriudtZF2Job9YD4="; - }; - - outputs = [ "bin" "dev" "out" "man" ] ++ lib.optional pythonSupport "py"; - - enableParallelBuilding = true; - - nativeBuildInputs = [ - autoreconfHook - bison - flex - pkg-config - file - doxygen - graphviz - mscgen - asciidoc - sourceHighlight - ] ++ lib.optional pythonSupport swig; - - postBuild = lib.optionalString (pythonSupport) '' - cd python - ${python.pythonOnBuildForHost.interpreter} setup.py install --prefix=../pythonlib - cd - - ''; - - postFixup = lib.optionalString pythonSupport '' - mv "pythonlib/" "$py" - ''; - - passthru = { - inherit pythonSupport; - }; - - meta = with lib; { - homepage = "http://www.infradead.org/~tgr/libnl/"; - description = "Linux Netlink interface library suite"; - license = licenses.lgpl21; - maintainers = with maintainers; [ fpletz ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/libnss-mysql/default.nix b/pkgs/os-specific/linux/libnss-mysql/default.nix deleted file mode 100644 index 133312801119..000000000000 --- a/pkgs/os-specific/linux/libnss-mysql/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib -, nixosTests -, stdenv -, fetchFromGitHub -, autoreconfHook -, which -, libmysqlclient -}: - -stdenv.mkDerivation rec { - pname = "libnss-mysql"; - version = "1.7.1"; - - src = fetchFromGitHub { - owner = "saknopper"; - repo = "libnss-mysql"; - rev = "v${version}"; - sha256 = "1fhsswa3h2nkhjkyjxxqnj07rlx6bmfvd8j521snimx2jba8h0d6"; - }; - - nativeBuildInputs = [ autoreconfHook which ]; - buildInputs = [ libmysqlclient ]; - - configureFlags = [ "--sysconfdir=/etc" ]; - installFlags = [ "sysconfdir=$(out)/etc" ]; - postInstall = '' - rm -r $out/etc - ''; - - passthru.tests = { - inherit (nixosTests) auth-mysql; - }; - - meta = with lib; { - description = "MySQL module for the Solaris Nameservice Switch (NSS)"; - homepage = "https://github.com/saknopper/libnss-mysql"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ netali ]; - }; -} diff --git a/pkgs/os-specific/linux/libnvme/default.nix b/pkgs/os-specific/linux/libnvme/default.nix deleted file mode 100644 index 7346e0d67d39..000000000000 --- a/pkgs/os-specific/linux/libnvme/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ fetchFromGitHub -, json_c -, keyutils -, lib -, meson -, ninja -, openssl -, perl -, pkg-config -, python3 -, stdenv -, swig -, systemd -# ImportError: cannot import name 'mlog' from 'mesonbuild' -, withDocs ? stdenv.hostPlatform.canExecute stdenv.buildPlatform -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libnvme"; - version = "1.7.1"; - - outputs = [ "out" ] ++ lib.optionals withDocs [ "man" ]; - - src = fetchFromGitHub { - owner = "linux-nvme"; - repo = "libnvme"; - rev = "v${finalAttrs.version}"; - hash = "sha256-hCR/K8bPXj8HthayrnwwGfI+wxpUwcWkcx3S/8h+3m8="; - }; - - postPatch = '' - patchShebangs scripts - ''; - - nativeBuildInputs = [ - meson - ninja - perl # for kernel-doc - pkg-config - python3.pythonOnBuildForHost - swig - ]; - - buildInputs = [ - keyutils - json_c - openssl - systemd - python3 - ]; - - mesonFlags = [ - "-Ddocs=man" - (lib.mesonBool "tests" finalAttrs.finalPackage.doCheck) - (lib.mesonBool "docs-build" withDocs) - ]; - - preConfigure = '' - export KBUILD_BUILD_TIMESTAMP="$(date -u -d @$SOURCE_DATE_EPOCH)" - ''; - - # mocked ioctl conflicts with the musl one: https://github.com/NixOS/nixpkgs/pull/263768#issuecomment-1782877974 - doCheck = !stdenv.hostPlatform.isMusl; - - meta = with lib; { - description = "C Library for NVM Express on Linux"; - homepage = "https://github.com/linux-nvme/libnvme"; - maintainers = with maintainers; [ vifino ]; - license = with licenses; [ lgpl21Plus ]; - platforms = platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/libpsm2/default.nix b/pkgs/os-specific/linux/libpsm2/default.nix deleted file mode 100644 index 0dab09de4c1c..000000000000 --- a/pkgs/os-specific/linux/libpsm2/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, numactl, pkg-config }: - -stdenv.mkDerivation rec { - pname = "libpsm2"; - version = "12.0.1"; - - preConfigure= '' - export UDEVDIR=$out/etc/udev - substituteInPlace ./Makefile --replace "udevrulesdir}" "prefix}/etc/udev"; - ''; - - enableParallelBuilding = true; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ numactl ]; - - makeFlags = [ - # Disable blanket -Werror to avoid build failures - # on fresh toolchains like gcc-11. - "WERROR=" - ]; - - installFlags = [ - "DESTDIR=$(out)" - "UDEVDIR=/etc/udev" - "LIBPSM2_COMPAT_CONF_DIR=/etc" - ]; - - src = fetchFromGitHub { - owner = "intel"; - repo = "opa-psm2"; - rev = "PSM2_${version}"; - sha256 = "sha256-MzocxY+X2a5rJvTo+gFU0U10YzzazR1IxzgEporJyhI="; - }; - - postInstall = '' - mv $out/usr/* $out - rmdir $out/usr - ''; - - meta = with lib; { - homepage = "https://github.com/intel/opa-psm2"; - description = "The PSM2 library supports a number of fabric media and stacks"; - license = with licenses; [ gpl2 bsd3 ]; - platforms = [ "x86_64-linux" ]; - maintainers = [ maintainers.bzizou ]; - }; -} diff --git a/pkgs/os-specific/linux/libratbag/default.nix b/pkgs/os-specific/linux/libratbag/default.nix deleted file mode 100644 index a35ab1dcc01c..000000000000 --- a/pkgs/os-specific/linux/libratbag/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config -, glib, systemd, udev, libevdev, gitMinimal, check, valgrind, swig, python3 -, json-glib, libunistring }: - -stdenv.mkDerivation rec { - pname = "libratbag"; - version = "0.17"; - - src = fetchFromGitHub { - owner = "libratbag"; - repo = "libratbag"; - rev = "v${version}"; - sha256 = "sha256-TQ8DVj4yqq3IA0oGnLDz+QNTyNRmGqspEjkPeBmXNew="; - }; - - nativeBuildInputs = [ - meson ninja pkg-config gitMinimal swig check valgrind - ]; - - buildInputs = [ - glib systemd udev libevdev json-glib libunistring - (python3.withPackages (ps: with ps; [ evdev pygobject3 ])) - ]; - - mesonFlags = [ - "-Dsystemd-unit-dir=./lib/systemd/system/" - ]; - - meta = with lib; { - description = "Configuration library for gaming mice"; - homepage = "https://github.com/libratbag/libratbag"; - license = licenses.mit; - maintainers = with maintainers; [ mvnetbiz ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/libselinux/default.nix b/pkgs/os-specific/linux/libselinux/default.nix deleted file mode 100644 index c0711f693377..000000000000 --- a/pkgs/os-specific/linux/libselinux/default.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, buildPackages, pcre2, pkg-config, libsepol -, enablePython ? !stdenv.hostPlatform.isStatic -, swig ? null, python3 ? null, python3Packages -, fts -}: - -assert enablePython -> swig != null && python3 != null; - -with lib; - -stdenv.mkDerivation rec { - pname = "libselinux"; - version = "3.6"; - inherit (libsepol) se_url; - - outputs = [ "bin" "out" "dev" "man" ] ++ optional enablePython "py"; - - src = fetchurl { - url = "${se_url}/${version}/libselinux-${version}.tar.gz"; - hash = "sha256-uk4O80snDnZypeXxtSP+K+qzpAuzPZOJ9K06hyjyG1I="; - }; - - patches = [ - # Make it possible to disable shared builds (for pkgsStatic). - # - # We can't use fetchpatch because it processes includes/excludes - # /after/ stripping the prefix, which wouldn't work here because - # there would be no way to distinguish between - # e.g. libselinux/src/Makefile and libsepol/src/Makefile. - # - # This is a static email, so we shouldn't have to worry about - # normalizing the patch. - (fetchurl { - url = "https://lore.kernel.org/selinux/20211113141616.361640-1-hi@alyssa.is/raw"; - sha256 = "16a2s2ji9049892i15yyqgp4r20hi1hij4c1s4s8law9jsx65b3n"; - postFetch = '' - mv "$out" $TMPDIR/patch - ${buildPackages.patchutils_0_3_3}/bin/filterdiff \ - -i 'a/libselinux/*' --strip 1 <$TMPDIR/patch >"$out" - ''; - }) - - (fetchurl { - url = "https://git.yoctoproject.org/meta-selinux/plain/recipes-security/selinux/libselinux/0003-libselinux-restore-drop-the-obsolete-LSF-transitiona.patch?id=62b9c816a5000dc01b28e78213bde26b58cbca9d"; - sha256 = "sha256-RiEUibLVzfiRU6N/J187Cs1iPAih87gCZrlyRVI2abU="; - }) - ]; - - nativeBuildInputs = [ pkg-config python3 ] ++ optionals enablePython [ - python3Packages.pip - python3Packages.setuptools - python3Packages.wheel - swig - ]; - buildInputs = [ libsepol pcre2 fts ] ++ optionals enablePython [ python3 ]; - - # drop fortify here since package uses it by default, leading to compile error: - # command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror] - hardeningDisable = [ "fortify" ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error -D_FILE_OFFSET_BITS=64"; - - makeFlags = [ - "PREFIX=$(out)" - "INCDIR=$(dev)/include/selinux" - "INCLUDEDIR=$(dev)/include" - "MAN3DIR=$(man)/share/man/man3" - "MAN5DIR=$(man)/share/man/man5" - "MAN8DIR=$(man)/share/man/man8" - "SBINDIR=$(bin)/sbin" - "SHLIBDIR=$(out)/lib" - - "LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a" - "ARCH=${stdenv.hostPlatform.linuxArch}" - ] ++ optionals (fts != null) [ - "FTS_LDLIBS=-lfts" - ] ++ optionals stdenv.hostPlatform.isStatic [ - "DISABLE_SHARED=y" - ] ++ optionals enablePython [ - "PYTHON=${python3.pythonOnBuildForHost.interpreter}" - "PYTHONLIBDIR=$(py)/${python3.sitePackages}" - "PYTHON_SETUP_ARGS=--no-build-isolation" - ]; - - postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' - substituteInPlace src/procattr.c \ - --replace "#include <unistd.h>" "" - ''; - - preInstall = optionalString enablePython '' - mkdir -p $py/${python3.sitePackages}/selinux - ''; - - installTargets = [ "install" ] ++ optional enablePython "install-pywrap"; - - meta = removeAttrs libsepol.meta ["outputsToInstall"] // { - description = "SELinux core library"; - }; -} diff --git a/pkgs/os-specific/linux/libsemanage/default.nix b/pkgs/os-specific/linux/libsemanage/default.nix deleted file mode 100644 index f289287743b8..000000000000 --- a/pkgs/os-specific/linux/libsemanage/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, bison, flex, libsepol, libselinux, bzip2, audit -, enablePython ? true, swig ? null, python ? null -}: - -with lib; - -stdenv.mkDerivation rec { - pname = "libsemanage"; - version = "3.6"; - inherit (libsepol) se_url; - - src = fetchurl { - url = "${se_url}/${version}/libsemanage-${version}.tar.gz"; - sha256 = "sha256-QROPRiIkOeEkLyfBWH6Vz1SgWSWarxaB22QswwxODWA="; - }; - - outputs = [ "out" "dev" "man" ] ++ optional enablePython "py"; - - strictDeps = true; - - nativeBuildInputs = [ bison flex pkg-config ] ++ optional enablePython swig; - buildInputs = [ libsepol libselinux bzip2 audit ] - ++ optional enablePython python; - - makeFlags = [ - "PREFIX=$(out)" - "INCLUDEDIR=$(dev)/include" - "MAN3DIR=$(man)/share/man/man3" - "MAN5DIR=$(man)/share/man/man5" - "PYTHON=python" - "PYPREFIX=python" - "PYTHONLIBDIR=$(py)/${python.sitePackages}" - "DEFAULT_SEMANAGE_CONF_LOCATION=$(out)/etc/selinux/semanage.conf" - ]; - - # The following turns the 'clobbered' error into a warning - # which should fix the following error: - # - # semanage_store.c: In function 'semanage_exec_prog': - # semanage_store.c:1278:6: error: variable 'i' might be clobbered by 'longjmp' or 'vfork' [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclobbered-Werror=clobbered8;;] - # 1278 | int i; - # | ^ - # cc1: all warnings being treated as errors - env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=clobbered" ]; - - installTargets = [ "install" ] ++ optionals enablePython [ "install-pywrap" ]; - - enableParallelBuilding = true; - - meta = removeAttrs libsepol.meta ["outputsToInstall"] // { - description = "Policy management tools for SELinux"; - license = lib.licenses.lgpl21; - }; -} diff --git a/pkgs/os-specific/linux/libsepol/default.nix b/pkgs/os-specific/linux/libsepol/default.nix deleted file mode 100644 index 548d5222c7a2..000000000000 --- a/pkgs/os-specific/linux/libsepol/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, flex }: - -stdenv.mkDerivation rec { - pname = "libsepol"; - version = "3.6"; - se_url = "https://github.com/SELinuxProject/selinux/releases/download"; - - outputs = [ "bin" "out" "dev" "man" ]; - - src = fetchurl { - url = "${se_url}/${version}/libsepol-${version}.tar.gz"; - sha256 = "sha256-ydxYXqlJA9eE1ZfIYc1dzmRZFo+V4isxoOqxzdgAl1o="; - }; - - postPatch = lib.optionalString stdenv.hostPlatform.isStatic '' - substituteInPlace src/Makefile --replace 'all: $(LIBA) $(LIBSO)' 'all: $(LIBA)' - sed -i $'/^\t.*LIBSO/d' src/Makefile - ''; - - nativeBuildInputs = [ flex ]; - - makeFlags = [ - "PREFIX=$(out)" - "BINDIR=$(bin)/bin" - "INCDIR=$(dev)/include/sepol" - "INCLUDEDIR=$(dev)/include" - "MAN3DIR=$(man)/share/man/man3" - "MAN8DIR=$(man)/share/man/man8" - "SHLIBDIR=$(out)/lib" - ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error"; - - enableParallelBuilding = true; - - passthru = { inherit se_url; }; - - meta = with lib; { - description = "SELinux binary policy manipulation library"; - homepage = "http://userspace.selinuxproject.org"; - platforms = platforms.linux; - maintainers = [ ]; - license = lib.licenses.gpl2Plus; - pkgConfigModules = [ "libselinux" ]; - }; -} diff --git a/pkgs/os-specific/linux/libsmbios/default.nix b/pkgs/os-specific/linux/libsmbios/default.nix deleted file mode 100644 index df4337a6caff..000000000000 --- a/pkgs/os-specific/linux/libsmbios/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchurl -, pkg-config, autoreconfHook, help2man, gettext, libxml2, perl, python3, doxygen -}: - -stdenv.mkDerivation rec { - pname = "libsmbios"; - version = "2.4.3"; - - src = fetchFromGitHub { - owner = "dell"; - repo = "libsmbios"; - rev = "v${version}"; - sha256 = "0krwwydyvb9224r884y1mlmzyxhlfrcqw73vi1j8787rl0gl5a2i"; - }; - - patches = [ - (fetchurl { - name = "musl.patch"; - url = "https://git.alpinelinux.org/aports/plain/community/libsmbios/fixes.patch?id=bdc4f67889c958c1266fa5d0cab71c3cd639122f"; - sha256 = "aVVc52OovDYvqWRyKcRAi62daa9AalkKvnVOGvrTmRk="; - }) - ]; - - nativeBuildInputs = [ autoreconfHook doxygen gettext libxml2 help2man perl pkg-config ]; - - buildInputs = [ python3 ]; - - configureFlags = [ "--disable-graphviz" ]; - - enableParallelBuilding = true; - - postInstall = '' - mkdir -p $out/include - cp -a src/include/smbios_c $out/include/ - cp -a out/public-include/smbios_c $out/include/ - ''; - - # remove forbidden reference to $TMPDIR - preFixup = '' - patchelf --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" "$out/sbin/smbios-sys-info-lite" - ''; - - meta = with lib; { - homepage = "https://github.com/dell/libsmbios"; - description = "A library to obtain BIOS information"; - license = with licenses; [ osl21 gpl2Plus ]; - maintainers = with maintainers; [ ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/libtraceevent/default.nix b/pkgs/os-specific/linux/libtraceevent/default.nix deleted file mode 100644 index 6571c46eb680..000000000000 --- a/pkgs/os-specific/linux/libtraceevent/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchgit, pkg-config, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, meson, ninja, cunit, gitUpdater }: - -stdenv.mkDerivation rec { - pname = "libtraceevent"; - version = "1.8.2"; - - src = fetchgit { - url = "https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git"; - rev = "libtraceevent-${version}"; - hash = "sha256-2oa3pR8DOPaeHcoqcLX00ihx1lpXablnsf0IZR2sOm8="; - }; - - postPatch = '' - chmod +x Documentation/install-docs.sh.in - patchShebangs --build check-manpages.sh Documentation/install-docs.sh.in - ''; - - outputs = [ "out" "dev" "devman" "doc" ]; - nativeBuildInputs = [ meson ninja pkg-config asciidoc xmlto docbook_xml_dtd_45 docbook_xsl ]; - - ninjaFlags = [ "all" "docs" ]; - - doCheck = true; - checkInputs = [ cunit ]; - - passthru.updateScript = gitUpdater { - # No nicer place to find latest release. - url = "https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git"; - rev-prefix = "libtraceevent-"; - }; - - meta = with lib; { - description = "Linux kernel trace event library"; - homepage = "https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/"; - license = licenses.lgpl21Only; - platforms = platforms.linux; - maintainers = with maintainers; [ wentasah ]; - }; -} diff --git a/pkgs/os-specific/linux/libtracefs/default.nix b/pkgs/os-specific/linux/libtracefs/default.nix deleted file mode 100644 index 3d99466c8f34..000000000000 --- a/pkgs/os-specific/linux/libtracefs/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ lib -, stdenv -, fetchzip -, pkg-config -, libtraceevent -, asciidoc -, xmlto -, docbook_xml_dtd_45 -, docbook_xsl -, coreutils -, valgrind -, sourceHighlight -, meson -, flex -, bison -, ninja -, cunit -}: - -stdenv.mkDerivation rec { - pname = "libtracefs"; - version = "1.7.0"; - - src = fetchzip { - url = "https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/snapshot/libtracefs-libtracefs-${version}.tar.gz"; - hash = "sha256-64eXFFdnZHHf4C3vbADtPuIMsfJ85VZ6t8A1gIc1CW0="; - }; - - postPatch = '' - chmod +x samples/extract-example.sh - patchShebangs --build check-manpages.sh samples/extract-example.sh Documentation/install-docs.sh.in - ''; - - outputs = [ "out" "dev" "devman" "doc" ]; - nativeBuildInputs = [ - meson - ninja - pkg-config - asciidoc - xmlto - docbook_xml_dtd_45 - docbook_xsl - valgrind - sourceHighlight - flex - bison - ]; - buildInputs = [ libtraceevent ]; - - ninjaFlags = [ "all" "docs" ]; - - doCheck = true; - checkInputs = [ cunit ]; - - meta = with lib; { - description = "Linux kernel trace file system library"; - mainProgram = "sqlhist"; - homepage = "https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/"; - license = licenses.lgpl21Only; - platforms = platforms.linux; - maintainers = with maintainers; [ wentasah ]; - }; -} diff --git a/pkgs/os-specific/linux/libudev0-shim/default.nix b/pkgs/os-specific/linux/libudev0-shim/default.nix deleted file mode 100644 index 642dd534232b..000000000000 --- a/pkgs/os-specific/linux/libudev0-shim/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, udev }: - -stdenv.mkDerivation rec { - pname = "libudev0-shim"; - version = "1"; - - src = fetchFromGitHub { - owner = "archlinux"; - repo = "libudev0-shim"; - rev = "v${version}"; - sha256 = "1460qm6rp1cqnns39lj24z7191m8sbpvbjabqbzb55dkdd2kw50z"; - }; - - buildInputs = [ udev ]; - - installPhase = '' - name="$(echo libudev.so.*)" - install -Dm755 "$name" "$out/lib/$name" - ln -s "$name" "$out/lib/libudev.so.0" - ''; - - meta = with lib; { - description = "Shim to preserve libudev.so.0 compatibility"; - homepage = "https://github.com/archlinux/libudev0-shim"; - platforms = platforms.linux; - license = licenses.lgpl21; - maintainers = with maintainers; [ abbradar ]; - }; -} diff --git a/pkgs/os-specific/linux/libvolume_id/default.nix b/pkgs/os-specific/linux/libvolume_id/default.nix deleted file mode 100644 index 653094c91884..000000000000 --- a/pkgs/os-specific/linux/libvolume_id/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "libvolume_id"; - version = "0.81.1"; - - src = fetchurl { - url = "https://www.marcuscom.com/downloads/libvolume_id-${version}.tar.bz2"; - sha256 = "029z04vdxxsl8gycm9whcljhv6dy4b12ybsxdb99jr251gl1ifs5"; - }; - - preBuild = " - makeFlagsArray=(prefix=$out E=echo RANLIB=${stdenv.cc.targetPrefix}ranlib INSTALL='install -c') - "; - - # Work around a broken Makefile. - postInstall = " - rm $out/lib/libvolume_id.so.0 - cp -f libvolume_id.so.0 $out/lib/ - "; - - meta = with lib; { - platforms = platforms.linux; - license = licenses.gpl2; - homepage = "http://www.marcuscom.com/downloads/"; - }; -} diff --git a/pkgs/os-specific/linux/libwebcam/default.nix b/pkgs/os-specific/linux/libwebcam/default.nix deleted file mode 100644 index 5f87a89496b7..000000000000 --- a/pkgs/os-specific/linux/libwebcam/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib -, stdenv -, fetchurl -, cmake -, pkg-config -, libxml2 -}: - -stdenv.mkDerivation rec { - pname = "libwebcam"; - version = "0.2.5"; - - src = fetchurl { - url = "mirror://sourceforge/project/${pname}/source/${pname}-src-${version}.tar.gz"; - sha256 = "0hcxv8di83fk41zjh0v592qm7c0v37a3m3n3lxavd643gff1k99w"; - }; - - patches = [ - ./uvcdynctrl_symlink_support_and_take_data_dir_from_env.patch - ]; - - nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ libxml2 ]; - - postPatch = '' - substituteInPlace ./uvcdynctrl/CMakeLists.txt \ - --replace "/lib/udev" "$out/lib/udev" - - substituteInPlace ./uvcdynctrl/udev/scripts/uvcdynctrl \ - --replace 'debug=0' 'debug=''${NIX_UVCDYNCTRL_UDEV_DEBUG:-0}' \ - --replace 'uvcdynctrlpath=uvcdynctrl' "uvcdynctrlpath=$out/bin/uvcdynctrl" - - substituteInPlace ./uvcdynctrl/udev/rules/80-uvcdynctrl.rules \ - --replace "/lib/udev" "$out/lib/udev" - ''; - - - preConfigure = '' - cmakeFlagsArray=( - $cmakeFlagsArray - "-DCMAKE_INSTALL_PREFIX=$out" - ) - ''; - - meta = with lib; { - description = "The webcam-tools package"; - platforms = platforms.linux; - license = licenses.lgpl3; - maintainers = with maintainers; [ jraygauthier ]; - }; -} diff --git a/pkgs/os-specific/linux/libwebcam/uvcdynctrl_symlink_support_and_take_data_dir_from_env.patch b/pkgs/os-specific/linux/libwebcam/uvcdynctrl_symlink_support_and_take_data_dir_from_env.patch deleted file mode 100644 index 07e5f0bf852b..000000000000 --- a/pkgs/os-specific/linux/libwebcam/uvcdynctrl_symlink_support_and_take_data_dir_from_env.patch +++ /dev/null @@ -1,65 +0,0 @@ -diff --git a/uvcdynctrl/main.c b/uvcdynctrl/main.c -index b7befd1..f3a768c 100644 ---- a/uvcdynctrl/main.c -+++ b/uvcdynctrl/main.c -@@ -674,27 +674,31 @@ get_filename (const char *dir_path, const char *vid) - printf ( "checking dir: %s \n", dir_path); - while ((dp = readdir(dir)) != NULL) - { -- if((dp->d_type == DT_DIR) && (fnmatch("[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]", dp->d_name, 0) == 0)) -+ if((dp->d_type == DT_DIR || dp->d_type == DT_LNK ) && (fnmatch("[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]", dp->d_name, 0) == 0)) - { - if( strcasecmp(vid, dp->d_name) != 0) - { - /*doesn't match - clean up and move to the next entry*/ - continue; - } -- -+ - char *tmp = path_cat (dir_path, dp->d_name); -- printf("found dir: %s \n", dp->d_name); -+ - DIR * subdir = opendir(tmp); -- while ((sdp = readdir(subdir)) != NULL) -+ if ( subdir != NULL ) - { -- if( fnmatch("*.xml", sdp->d_name, 0) == 0 ) -+ printf("found dir: %s \n", dp->d_name); -+ while ((sdp = readdir(subdir)) != NULL) - { -- file_list[nf-1] = path_cat (tmp, sdp->d_name); -- printf("found: %s \n", file_list[nf-1]); -- nf++; -- file_list = realloc(file_list,nf*sizeof(file_list)); -- file_list[nf-1] = NULL; -- } -+ if( fnmatch("*.xml", sdp->d_name, 0) == 0 ) -+ { -+ file_list[nf-1] = path_cat (tmp, sdp->d_name); -+ printf("found: %s \n", file_list[nf-1]); -+ nf++; -+ file_list = realloc(file_list,nf*sizeof(file_list)); -+ file_list[nf-1] = NULL; -+ } -+ } - } - closedir(subdir); - free (tmp); -@@ -869,9 +873,15 @@ main (int argc, char **argv) - pid_set = 1; /*flag pid.xml check*/ - //printf("vid:%s pid:%s\n", vid, pid); - } -- -+ -+ const char* dataDir = getenv( "NIX_UVCDYNCTRL_DATA_DIR" ); -+ // When unavailable, fallback on data dir specified at build time. -+ if ( !dataDir ) { -+ dataDir = DATA_DIR; -+ } -+ - /* get xml file list from DATA_DIR/vid/ */ -- char **xml_files = get_filename (DATA_DIR, vid); -+ char **xml_files = get_filename (dataDir, vid); - - /*check for pid.xml*/ - char fname[9]; diff --git a/pkgs/os-specific/linux/libzbc/default.nix b/pkgs/os-specific/linux/libzbc/default.nix deleted file mode 100644 index 79a4277a8560..000000000000 --- a/pkgs/os-specific/linux/libzbc/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib -, stdenv -, autoreconfHook -, fetchFromGitHub -, gtk3 -, libtool -, pkg-config -, guiSupport ? false -}: - -stdenv.mkDerivation rec { - pname = "libzbc"; - version = "5.13.0"; - - src = fetchFromGitHub { - owner = "westerndigitalcorporation"; - repo = "libzbc"; - rev = "v${version}"; - sha256 = "6xkA96bgQ2Ik1vEwkw7hwjMbjMSlopzv5ziTh60Mjx0="; - }; - - nativeBuildInputs = [ - autoreconfHook - libtool - ] ++ lib.optionals guiSupport [ pkg-config ]; - - buildInputs = lib.optionals guiSupport [ gtk3 ]; - - configureFlags = lib.optional guiSupport "--enable-gui"; - - meta = with lib; { - description = "ZBC device manipulation library"; - homepage = "https://github.com/westerndigitalcorporation/libzbc"; - maintainers = [ ]; - license = with licenses; [ bsd2 lgpl3Plus ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/libzbd/default.nix b/pkgs/os-specific/linux/libzbd/default.nix deleted file mode 100644 index 3bc48d0657b2..000000000000 --- a/pkgs/os-specific/linux/libzbd/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib -, stdenv -, autoconf-archive -, autoreconfHook -, fetchFromGitHub -, gtk3 -, libtool -, pkg-config -, guiSupport ? false -}: - -stdenv.mkDerivation rec { - pname = "libzbd"; - version = "2.0.4"; - - src = fetchFromGitHub { - owner = "westerndigitalcorporation"; - repo = "libzbd"; - rev = "v${version}"; - sha256 = "sha256-iMQjOWsgsS+uI8mqoOXHRAV1+SIu1McUAcrsY+/zcu8="; - }; - - nativeBuildInputs = [ - autoconf-archive # this can be removed with the next release - autoreconfHook - libtool - ] ++ lib.optionals guiSupport [ pkg-config ]; - - buildInputs = lib.optionals guiSupport [ gtk3 ]; - - configureFlags = lib.optional guiSupport "--enable-gui"; - - meta = with lib; { - description = "Zoned block device manipulation library and tools"; - mainProgram = "zbd"; - homepage = "https://github.com/westerndigitalcorporation/libzbd"; - maintainers = [ ]; - license = with licenses; [ lgpl3Plus gpl3Plus ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/light/default.nix b/pkgs/os-specific/linux/light/default.nix deleted file mode 100644 index 5a5064719fef..000000000000 --- a/pkgs/os-specific/linux/light/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, coreutils }: - -stdenv.mkDerivation rec { - version = "1.2.2"; - pname = "light"; - src = fetchFromGitHub { - owner = "haikarainen"; - repo = "light"; - rev = "v${version}"; - sha256 = "1a70zcf88ifsnwll486aicjnh48zisdf8f7vi34ihw61kdadsq9s"; - }; - - patches = [ - # Pull upstream fix for -fno-common toolchains: - # https://github.com/haikarainen/light/pull/135 - (fetchpatch { - name = "fno-common.patch"; - url = "https://github.com/haikarainen/light/commit/eae912ca7ff3356805e47739114861d2b6ae7ec0.patch"; - sha256 = "15jp8hm5scl0myiy1jmvd6m52lhx5jscvi3rgb5siwakmnkgzx9j"; - }) - ]; - - configureFlags = [ "--with-udev" ]; - - nativeBuildInputs = [ autoreconfHook ]; - - # ensure udev rules can find the commands used - postPatch = '' - substituteInPlace 90-backlight.rules \ - --replace '/bin/chgrp' '${coreutils}/bin/chgrp' \ - --replace '/bin/chmod' '${coreutils}/bin/chmod' - ''; - - meta = { - description = "GNU/Linux application to control backlights"; - homepage = "https://haikarainen.github.io/light/"; - license = lib.licenses.gpl3; - mainProgram = "light"; - maintainers = with lib.maintainers; [ puffnfresh dtzWill ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/lightum/default.nix b/pkgs/os-specific/linux/lightum/default.nix deleted file mode 100644 index 46dd76e0d277..000000000000 --- a/pkgs/os-specific/linux/lightum/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, libX11, libXScrnSaver, libXext, glib, dbus, pkg-config, systemd }: - -stdenv.mkDerivation { - pname = "lightum"; - version = "unstable-2014-06-07"; - - src = fetchFromGitHub { - owner = "poliva"; - repo = "lightum"; - rev = "123e6babe0669b23d4c1dfa5511088608ff2baa8"; - sha256 = "sha256-dzWUVY2srgk6BM6jZ7FF+snxnPopz3fx9nq+mVkmogc="; - }; - - nativeBuildInputs = [ pkg-config ]; - - buildInputs = [ - dbus - glib - libX11 - libXScrnSaver - libXext - systemd - ]; - - patchPhase = '' - substituteInPlace Makefile \ - --replace "libsystemd-login" "libsystemd" - ''; - - installPhase = '' - make install prefix=$out bindir=$out/bin docdir=$out/share/doc \ - mandir=$out/share/man INSTALL="install -c" INSTALLDATA="install -c -m 644" - ''; - - meta = { - description = "MacBook automatic light sensor daemon"; - mainProgram = "lightum"; - homepage = "https://github.com/poliva/lightum"; - license = lib.licenses.gpl2; - maintainers = with lib.maintainers; [ puffnfresh ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/linux-wifi-hotspot/default.nix b/pkgs/os-specific/linux/linux-wifi-hotspot/default.nix deleted file mode 100644 index d616675e497b..000000000000 --- a/pkgs/os-specific/linux/linux-wifi-hotspot/default.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, which -, pkg-config -, glib -, gtk3 -, iw -, makeWrapper -, qrencode -, hostapd -, getopt -, dnsmasq -, iproute2 -, flock -, iptables -, gawk -, coreutils -, gnugrep -, gnused -, kmod -, networkmanager -, procps -}: - - -stdenv.mkDerivation rec { - pname = "linux-wifi-hotspot"; - version = "4.7.1"; - - src = fetchFromGitHub { - owner = "lakinduakash"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-yPTnv96n1mV7aN6hf7wSvJIBfT7v9+jjjSoEcpzLRB8="; - }; - - nativeBuildInputs = [ - which - pkg-config - makeWrapper - qrencode - hostapd - ]; - - buildInputs = [ - glib - gtk3 - ]; - - outputs = [ "out" ]; - - postPatch = '' - substituteInPlace ./src/scripts/Makefile \ - --replace "etc" "$out/etc" - substituteInPlace ./src/scripts/wihotspot \ - --replace "/usr" "$out" - substituteInPlace ./src/desktop/wifihotspot.desktop \ - --replace "/usr" "$out" - substituteInPlace ./src/scripts/policies/polkit.policy \ - --replace "/usr" "$out" - ''; - - makeFlags = [ - "PREFIX=${placeholder "out"}" - ]; - - postInstall = '' - wrapProgram $out/bin/create_ap \ - --prefix PATH : ${lib.makeBinPath [ - coreutils - dnsmasq - flock - gawk - getopt - gnugrep - gnused - hostapd - iproute2 - iptables - iw - kmod - networkmanager - procps - which - ]} - - wrapProgram $out/bin/wihotspot-gui \ - --prefix PATH : ${lib.makeBinPath [ iw ]} \ - --prefix PATH : "${placeholder "out"}/bin" - - wrapProgram $out/bin/wihotspot \ - --prefix PATH : ${lib.makeBinPath [ iw ]} \ - --prefix PATH : "${placeholder "out"}/bin" - ''; - - meta = with lib; { - description = "Feature-rich wifi hotspot creator for Linux which provides both GUI and command-line interface"; - homepage = "https://github.com/lakinduakash/linux-wifi-hotspot"; - license = licenses.bsd2; - maintainers = with maintainers; [ onny ]; - platforms = platforms.unix; - }; - -} diff --git a/pkgs/os-specific/linux/linuxptp/default.nix b/pkgs/os-specific/linux/linuxptp/default.nix deleted file mode 100644 index de215024555d..000000000000 --- a/pkgs/os-specific/linux/linuxptp/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchurl, linuxHeaders } : - - -stdenv.mkDerivation rec { - pname = "linuxptp"; - version = "4.2"; - - src = fetchurl { - url = "mirror://sourceforge/linuxptp/${pname}-${version}.tgz"; - hash = "sha256-cOOOXSdk4CF0Q9pvFOiEb+QBpHIpOsE42EGcB6ZlRHo="; - }; - - postPatch = '' - substituteInPlace incdefs.sh --replace \ - '/usr/include/linux/' "${linuxHeaders}/include/linux/" - ''; - - makeFlags = [ - "prefix=" - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; - - preInstall = '' - export DESTDIR=$out - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Implementation of the Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux"; - homepage = "https://linuxptp.sourceforge.net/"; - maintainers = [ maintainers.markuskowa ]; - license = licenses.gpl2Only; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/liquidtux/default.nix b/pkgs/os-specific/linux/liquidtux/default.nix deleted file mode 100644 index 317801bb3cdd..000000000000 --- a/pkgs/os-specific/linux/liquidtux/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - name = "liquidtux-${version}-${kernel.version}"; - version = "unstable-2021-12-16"; - - src = fetchFromGitHub { - owner = "liquidctl"; - repo = "liquidtux"; - rev = "342defc0e22ea58f8ab2ab0f191ad3fd302c44cb"; - sha256 = "12rc3vzfq8vnq9x9ca6swk5ag0xkpgkzmga8ga7q80mah9kxbaax"; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - install nzxt-grid3.ko nzxt-kraken2.ko nzxt-kraken3.ko nzxt-smart2.ko -Dm444 -t ${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon - ''; - - meta = with lib; { - description = "Linux kernel hwmon drivers for AIO liquid coolers and other devices"; - homepage = "https://github.com/liquidctl/liquidtux"; - license = licenses.gpl2; - platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = with maintainers; [ nickhu ]; - broken = lib.versionOlder kernel.version "5.10"; - }; -} diff --git a/pkgs/os-specific/linux/lkrg/default.nix b/pkgs/os-specific/linux/lkrg/default.nix deleted file mode 100644 index 4d6118f8b9f8..000000000000 --- a/pkgs/os-specific/linux/lkrg/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib, stdenv, fetchpatch, fetchFromGitHub, kernel }: -let - isKernelRT = (kernel.structuredExtraConfig ? PREEMPT_RT) && (kernel.structuredExtraConfig.PREEMPT_RT == lib.kernel.yes); -in -stdenv.mkDerivation rec { - name = "${pname}-${version}-${kernel.version}"; - pname = "lkrg"; - version = "0.9.5"; - - src = fetchFromGitHub { - owner = "lkrg-org"; - repo = "lkrg"; - rev = "v${version}"; - sha256 = "sha256-+yIKkTvfVbLnFBoXSKGebB1A8KqpaRmsLh8SsNuI9Dc="; - }; - patches = [ - (fetchpatch { - name = "fix-aarch64.patch"; - url = "https://github.com/lkrg-org/lkrg/commit/a4e5c00f13f7081b346bc3736e4c035e3d17d3f7.patch"; - sha256 = "sha256-DPscqi+DySHwFxGuGe7P2itPkoyb3XGu5Xp2S/ezP4Y="; - }) - ]; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KERNEL=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - dontConfigure = true; - - prePatch = '' - substituteInPlace Makefile --replace "KERNEL := " "KERNEL ?= " - ''; - - installPhase = '' - runHook preInstall - install -D lkrg.ko $out/lib/modules/${kernel.modDirVersion}/extra/lkrg.ko - runHook postInstall - ''; - - meta = with lib; { - description = "LKRG Linux Kernel module"; - longDescription = "LKRG performs runtime integrity checking of the Linux kernel and detection of security vulnerability exploits against the kernel."; - homepage = "https://lkrg.org/"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ chivay ]; - platforms = platforms.linux; - broken = kernel.kernelOlder "5.10" || kernel.kernelAtLeast "6.1" || isKernelRT; - }; -} diff --git a/pkgs/os-specific/linux/lksctp-tools/default.nix b/pkgs/os-specific/linux/lksctp-tools/default.nix deleted file mode 100644 index 24915143fbd0..000000000000 --- a/pkgs/os-specific/linux/lksctp-tools/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "lksctp-tools"; - version = "1.0.17"; - - src = fetchurl { - url = "mirror://sourceforge/lksctp/lksctp-tools-${version}.tar.gz"; - sha256 = "05da6c2v3acc18ndvmkrag6x5lf914b7s0xkkr6wkvrbvd621sqs"; - }; - - meta = with lib; { - description = "Linux Kernel Stream Control Transmission Protocol Tools"; - homepage = "https://lksctp.sourceforge.net/"; - license = with licenses; [ gpl2 lgpl21 ]; # library is lgpl21 - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/lm-sensors/default.nix b/pkgs/os-specific/linux/lm-sensors/default.nix deleted file mode 100644 index 9b37b7c7e63e..000000000000 --- a/pkgs/os-specific/linux/lm-sensors/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, bash -, bison -, flex -, which -, perl -, sensord ? false -, rrdtool ? null -}: - -assert sensord -> rrdtool != null; - -stdenv.mkDerivation rec { - pname = "lm-sensors"; - version = "3.6.0"; - dashedVersion = lib.replaceStrings [ "." ] [ "-" ] version; - - src = fetchFromGitHub { - owner = "lm-sensors"; - repo = "lm-sensors"; - rev = "V${dashedVersion}"; - hash = "sha256-9lfHCcODlS7sZMjQhK0yQcCBEoGyZOChx/oM0CU37sY="; - }; - - # Upstream build system have knob to enable and disable building of static - # library, shared library is built unconditionally. - postPatch = lib.optionalString stdenv.hostPlatform.isStatic '' - sed -i 'lib/Module.mk' -e '/LIBTARGETS :=/,+1d; /-m 755/ d' - substituteInPlace prog/sensors/Module.mk --replace 'lib/$(LIBSHBASENAME)' "" - ''; - - nativeBuildInputs = [ bison flex which ]; - # bash is required for correctly replacing the shebangs in all tools for cross-compilation. - buildInputs = [ bash perl ] - ++ lib.optional sensord rrdtool; - - makeFlags = [ - "PREFIX=${placeholder "out"}" - "CC=${stdenv.cc.targetPrefix}cc" - "AR=${stdenv.cc.targetPrefix}ar" - ] ++ lib.optional sensord "PROG_EXTRA=sensord"; - - installFlags = [ - "ETCDIR=${placeholder "out"}/etc" - ]; - - # Making regexp to patch-out installing of .so symlinks from Makefile is - # complicated, it is easier to remove them post-install. - postInstall = '' - mkdir -p $out/share/doc/${pname} - cp -r configs doc/* $out/share/doc/${pname} - '' + lib.optionalString stdenv.hostPlatform.isStatic '' - rm $out/lib/*.so* - ''; - - meta = with lib; { - homepage = "https://hwmon.wiki.kernel.org/lm_sensors"; - changelog = "https://raw.githubusercontent.com/lm-sensors/lm-sensors/V${dashedVersion}/CHANGES"; - description = "Tools for reading hardware sensors"; - license = with licenses; [ lgpl21Plus gpl2Plus ]; - maintainers = with maintainers; [ pmy ]; - platforms = platforms.linux; - mainProgram = "sensors"; - }; -} diff --git a/pkgs/os-specific/linux/lockdep/default.nix b/pkgs/os-specific/linux/lockdep/default.nix deleted file mode 100644 index be3967f0a858..000000000000 --- a/pkgs/os-specific/linux/lockdep/default.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ lib, stdenv, fetchurl, bash, flex, bison, valgrind }: - -stdenv.mkDerivation rec { - pname = "lockdep"; - - # it would be nice to be able to pick a kernel version in sync with something - # else we already ship, but it seems userspace lockdep isn't very well maintained - # and appears broken in many kernel releases - version = "5.0.21"; - fullver = "5.0.21"; - src = fetchurl { - url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "1my2m9hvnvdrvzcg0fgqgaga59y2cd5zlpv7xrfj2nn98sjhglwq"; - }; - - # ensure *this* kernel's userspace-headers are picked up before we - # fall back to those in glibc, as they will be from a mismatched - # kernel version - postPatch = '' - substituteInPlace tools/lib/lockdep/Makefile \ - --replace 'CONFIG_INCLUDES =' $'CONFIG_INCLUDES = -I../../../usr/include\n#' - ''; - - nativeBuildInputs = [ flex bison ]; - - # Workaround build failure on -fno-common toolchains like upstream - # gcc-10. Otherwise build fails as: - # ld: lockdep.o:/build/linux-5.0.21/tools/lib/lockdep/../../include/linux/rcu.h:5: multiple definition of - # `rcu_scheduler_active'; common.o:/build/linux-5.0.21/tools/lib/lockdep/../../include/linux/rcu.h:5: first defined here - env.NIX_CFLAGS_COMPILE = "-fcommon"; - - buildPhase = '' - make defconfig - make headers_install - cd tools/lib/lockdep - make - ''; - - doCheck = true; - nativeCheckInputs = [ valgrind ]; - checkPhase = '' - # there are more /bin/bash references than just shebangs - for f in lockdep run_tests.sh tests/*.sh; do - substituteInPlace $f \ - --replace '/bin/bash' '${bash}/bin/bash' - done - - ./run_tests.sh - ''; - - installPhase = '' - mkdir -p $out/bin $out/lib $out/include - - cp -R include/liblockdep $out/include - make install DESTDIR=$out prefix="" - - substituteInPlace $out/bin/lockdep --replace "./liblockdep.so" "$out/lib/liblockdep.so.$fullver" - ''; - - meta = { - description = "Userspace locking validation tool built on the Linux kernel"; - mainProgram = "lockdep"; - homepage = "https://kernel.org/"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.thoughtpolice ]; - }; -} diff --git a/pkgs/os-specific/linux/lsb-release/default.nix b/pkgs/os-specific/linux/lsb-release/default.nix deleted file mode 100644 index f79c6527539a..000000000000 --- a/pkgs/os-specific/linux/lsb-release/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ substituteAll, lib -, coreutils, getopt -}: - -substituteAll { - name = "lsb_release"; - - src = ./lsb_release.sh; - - dir = "bin"; - isExecutable = true; - - inherit coreutils getopt; - - meta = with lib; { - description = "Prints certain LSB (Linux Standard Base) and Distribution information"; - mainProgram = "lsb_release"; - license = [ licenses.mit ]; - maintainers = with maintainers; [ primeos ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/lsb-release/lsb_release.sh b/pkgs/os-specific/linux/lsb-release/lsb_release.sh deleted file mode 100644 index ae524181e88a..000000000000 --- a/pkgs/os-specific/linux/lsb-release/lsb_release.sh +++ /dev/null @@ -1,190 +0,0 @@ -#! @shell@ - -set -o errexit -set -o nounset - -show_help() { - @coreutils@/bin/cat << EOF -Usage: lsb_release [options] - -Options: - -h, --help show this help message and exit - -v, --version show LSB modules this system supports - -i, --id show distributor ID - -d, --description show description of this distribution - -r, --release show release number of this distribution - -c, --codename show code name of this distribution - -a, --all show all of the above information - -s, --short show requested information in short format -EOF - exit 0 -} - -# Potential command-line options. -version=0 -id=0 -description=0 -release=0 -codename=0 -all=0 -short=0 - -@getopt@/bin/getopt --test > /dev/null && rc=$? || rc=$? -if [[ $rc -ne 4 ]]; then - # This shouldn't happen. - echo "Warning: Enhanced getopt not supported, please open an issue in nixpkgs." >&2 -else - # Define all short and long options. - SHORT=hvidrcas - LONG=help,version,id,description,release,codename,all,short - - # Parse all options. - PARSED=`@getopt@/bin/getopt --options $SHORT --longoptions $LONG --name "$0" -- "$@"` - - eval set -- "$PARSED" -fi - - -# Process each argument, and set the appropriate flag if we recognize it. -while [[ $# -ge 1 ]]; do - case "$1" in - -v|--version) - version=1 - ;; - -i|--id) - id=1 - ;; - -d|--description) - description=1 - ;; - -r|--release) - release=1 - ;; - -c|--codename) - codename=1 - ;; - -a|--all) - all=1 - ;; - -s|--short) - short=1 - ;; - -h|--help) - show_help - ;; - --) - shift - break - ;; - *) - echo "lsb_release: unrecognized option '$1'" - echo "Type 'lsb_release -h' for a list of available options." - exit 1 - ;; - esac - shift -done - -# Read our variables. -if [[ -e /etc/os-release ]]; then - . /etc/os-release - OS_RELEASE_FOUND=1 -else - # This is e.g. relevant for the Nix build sandbox and compatible with the - # original lsb_release binary: - OS_RELEASE_FOUND=0 - NAME="n/a" - PRETTY_NAME="(none)" - VERSION_ID="n/a" - VERSION_CODENAME="n/a" -fi - -# Default output -if [[ "$version" = "0" ]] && [[ "$id" = "0" ]] && \ - [[ "$description" = "0" ]] && [[ "$release" = "0" ]] && \ - [[ "$codename" = "0" ]] && [[ "$all" = "0" ]]; then - if [[ "$OS_RELEASE_FOUND" = "1" ]]; then - echo "No LSB modules are available." >&2 - else - if [[ "$short" = "0" ]]; then - printf "LSB Version:\tn/a\n" - else - printf "n/a\n" - fi - fi - exit 0 -fi - -# Now output the data - The order of these was chosen to match -# what the original lsb_release used. - -SHORT_OUTPUT="" -append_short_output() { - if [[ "$1" = "n/a" ]]; then - SHORT_OUTPUT+=" $1" - else - SHORT_OUTPUT+=" \"$1\"" - fi -} - -if [[ "$all" = "1" ]] || [[ "$version" = "1" ]]; then - if [[ "$OS_RELEASE_FOUND" = "1" ]]; then - if [[ "$short" = "0" ]]; then - echo "No LSB modules are available." >&2 - else - append_short_output "n/a" - fi - else - if [[ "$short" = "0" ]]; then - printf "LSB Version:\tn/a\n" - else - append_short_output "n/a" - fi - fi -fi - -if [[ "$all" = "1" ]] || [[ "$id" = "1" ]]; then - if [[ "$short" = "0" ]]; then - printf "Distributor ID:\t$NAME\n" - else - append_short_output "$NAME" - fi -fi - -if [[ "$all" = "1" ]] || [[ "$description" = "1" ]]; then - if [[ "$short" = "0" ]]; then - printf "Description:\t$PRETTY_NAME\n" - else - append_short_output "$PRETTY_NAME" - fi -fi - -if [[ "$all" = "1" ]] || [[ "$release" = "1" ]]; then - if [[ "$short" = "0" ]]; then - printf "Release:\t$VERSION_ID\n" - else - append_short_output "$VERSION_ID" - fi -fi - -if [[ "$all" = "1" ]] || [[ "$codename" = "1" ]]; then - if [[ "$short" = "0" ]]; then - printf "Codename:\t$VERSION_CODENAME\n" - else - append_short_output "$VERSION_CODENAME" - fi -fi - -if [[ "$short" = "1" ]]; then - # Output in one line without the first space: - echo "${SHORT_OUTPUT:1}" -fi - -# For compatibility with the original lsb_release: -if [[ "$OS_RELEASE_FOUND" = "0" ]]; then - if [[ "$all" = "1" ]] || [[ "$id" = "1" ]] || \ - [[ "$description" = "1" ]] || [[ "$release" = "1" ]] || \ - [[ "$codename" = "1" ]]; then - exit 3 - fi -fi diff --git a/pkgs/os-specific/linux/lsirec/default.nix b/pkgs/os-specific/linux/lsirec/default.nix deleted file mode 100644 index 10da88b691d9..000000000000 --- a/pkgs/os-specific/linux/lsirec/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, python3 -}: - -stdenv.mkDerivation rec { - pname = "lsirec"; - version = "unstable-2019-03-03"; - - src = fetchFromGitHub { - owner = "marcan"; - repo = "lsirec"; - rev = "2dfb6dc92649feb01a3ddcfd117d4a99098084f2"; - sha256 = "sha256-8v+KKjAJlJNpUT0poedRTQfPiDiwahrosXD35Bmh3jM="; - }; - - buildInputs = [ python3 ]; - - installPhase = '' - runHook preInstall - - install -Dm755 'lsirec' "$out/bin/lsirec" - install -Dm755 'sbrtool.py' "$out/bin/sbrtool" - - runHook postInstall - ''; - - meta = with lib; { - description = "LSI SAS2008/SAS2108 low-level recovery tool for Linux"; - homepage = "https://github.com/marcan/lsirec"; - platforms = platforms.linux; - license = licenses.bsd2; - maintainers = with maintainers; [ Luflosi ]; - # never built on aarch64-linux since first introduction in nixpkgs - broken = stdenv.isLinux && stdenv.isAarch64; - }; -} diff --git a/pkgs/os-specific/linux/lsiutil/default.nix b/pkgs/os-specific/linux/lsiutil/default.nix deleted file mode 100644 index d880e6a60e03..000000000000 --- a/pkgs/os-specific/linux/lsiutil/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib -, stdenv -, fetchurl -, kmod -, coreutils -}: - -stdenv.mkDerivation rec { - pname = "lsiutil"; - version = "1.72"; - - src = fetchurl { - url = "https://github.com/exactassembly/meta-xa-stm/raw/f96cf6e13f3c9c980f5651510dd96279b9b2af4f/recipes-support/lsiutil/files/lsiutil-${version}.tar.gz"; - sha256 = "sha256-aTi+EogY1aDWYq3anjRkjz1mzINVfUPQbOPHthxrvS4="; - }; - - postPatch = '' - substituteInPlace lsiutil.c \ - --replace /sbin/modprobe "${kmod}/bin/modprobe" \ - --replace /bin/mknod "${coreutils}/bin/mknod" - ''; - - buildPhase = '' - runHook preBuild - - gcc -Wall -O lsiutil.c -o lsiutil - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - mkdir -p "$out/bin" - install -Dm755 lsiutil "$out/bin/lsiutil" - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://github.com/exactassembly/meta-xa-stm/tree/master/recipes-support/lsiutil/files"; - description = "Configuration utility for MPT adapters (FC, SCSI, and SAS/SATA)"; - license = licenses.unfree; - platforms = platforms.linux; - maintainers = with maintainers; [ Luflosi ]; - }; -} diff --git a/pkgs/os-specific/linux/lsscsi/default.nix b/pkgs/os-specific/linux/lsscsi/default.nix deleted file mode 100644 index d87820f24664..000000000000 --- a/pkgs/os-specific/linux/lsscsi/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "lsscsi"; - version = "0.32"; - - src = fetchurl { - url = "http://sg.danny.cz/scsi/lsscsi-${version}.tgz"; - sha256 = "sha256-CoAOnpTcoqtwLWXXJ3eujK4Hjj100Ly+1kughJ6AKaE="; - }; - - preConfigure = '' - substituteInPlace Makefile.in --replace /usr "$out" - ''; - - meta = with lib; { - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/lttng-modules/default.nix b/pkgs/os-specific/linux/lttng-modules/default.nix deleted file mode 100644 index 89b49068d40c..000000000000 --- a/pkgs/os-specific/linux/lttng-modules/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "lttng-modules-${kernel.version}"; - version = "2.13.10"; - - src = fetchFromGitHub { - owner = "lttng"; - repo = "lttng-modules"; - rev = "v${version}"; - hash = "sha256-R5qwB1ayw0KueMBSSxm0TwINt78N6w356kY7WGBX0zM="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration"; - - makeFlags = kernel.makeFlags ++ [ - "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "INSTALL_MOD_PATH=${placeholder "out"}" - ]; - - installTargets = [ "modules_install" ]; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Linux kernel modules for LTTng tracing"; - homepage = "https://lttng.org/"; - license = with licenses; [ lgpl21Only gpl2Only mit ]; - platforms = platforms.linux; - maintainers = [ maintainers.bjornfor ]; - broken = (lib.versions.majorMinor kernel.modDirVersion) == "5.10" || (lib.versions.majorMinor kernel.modDirVersion) == "5.4"; - }; -} diff --git a/pkgs/os-specific/linux/lvm2/2_03.nix b/pkgs/os-specific/linux/lvm2/2_03.nix deleted file mode 100644 index fa0a2cc8a600..000000000000 --- a/pkgs/os-specific/linux/lvm2/2_03.nix +++ /dev/null @@ -1,4 +0,0 @@ -import ./common.nix { - version = "2.03.23"; - hash = "sha256-dOeUqene4bz4ogZfZbkZbET98yHiLWO5jtfejJqhel0="; -} diff --git a/pkgs/os-specific/linux/lvm2/common.nix b/pkgs/os-specific/linux/lvm2/common.nix deleted file mode 100644 index caafa52a8173..000000000000 --- a/pkgs/os-specific/linux/lvm2/common.nix +++ /dev/null @@ -1,161 +0,0 @@ -{ version, hash }: - -{ lib, stdenv -, fetchurl -, pkg-config -, coreutils -, libuuid -, libaio -, substituteAll -, enableCmdlib ? false -, enableDmeventd ? false -, udevSupport ? !stdenv.hostPlatform.isStatic, udev -, onlyLib ? stdenv.hostPlatform.isStatic - # Otherwise we have a infinity recursion during static compilation -, enableUtilLinux ? !stdenv.hostPlatform.isStatic, util-linux -, enableVDO ? false, vdo -, enableMdadm ? false, mdadm -, enableMultipath ? false, multipath-tools -, nixosTests -}: - -# configure: error: --enable-dmeventd requires --enable-cmdlib to be used as well -assert enableDmeventd -> enableCmdlib; - -stdenv.mkDerivation rec { - pname = "lvm2" + lib.optionalString enableDmeventd "-with-dmeventd" + lib.optionalString enableVDO "-with-vdo"; - inherit version; - - src = fetchurl { - urls = [ - "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${version}.tgz" - "ftp://sourceware.org/pub/lvm2/LVM2.${version}.tgz" - ]; - inherit hash; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - libaio - ] ++ lib.optionals udevSupport [ - udev - ] ++ lib.optionals (!onlyLib) [ - libuuid - ] ++ lib.optionals enableVDO [ - vdo - ]; - - configureFlags = [ - "--disable-readline" - "--enable-pkgconfig" - "--with-default-locking-dir=/run/lock/lvm" - "--with-default-run-dir=/run/lvm" - "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" - "--with-systemd-run=/run/current-system/systemd/bin/systemd-run" - ] ++ lib.optionals (!enableCmdlib) [ - "--bindir=${placeholder "bin"}/bin" - "--sbindir=${placeholder "bin"}/bin" - "--libdir=${placeholder "lib"}/lib" - "--with-libexecdir=${placeholder "lib"}/libexec" - ] ++ lib.optional enableCmdlib "--enable-cmdlib" - ++ lib.optionals enableDmeventd [ - "--enable-dmeventd" - "--with-dmeventd-pidfile=/run/dmeventd/pid" - "--with-default-dm-run-dir=/run/dmeventd" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "ac_cv_func_malloc_0_nonnull=yes" - "ac_cv_func_realloc_0_nonnull=yes" - ] ++ lib.optionals udevSupport [ - "--enable-udev_rules" - "--enable-udev_sync" - ] ++ lib.optionals enableVDO [ - "--enable-vdo" - ] ++ lib.optionals stdenv.hostPlatform.isStatic [ - "--enable-static_link" - ]; - - preConfigure = '' - sed -i /DEFAULT_SYS_DIR/d Makefile.in - sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in - - substituteInPlace make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system" - substituteInPlace libdm/make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system" - - substituteInPlace scripts/blk_availability_systemd_red_hat.service.in \ - --replace '/usr/bin/true' '${coreutils}/bin/true' - ''; - - postConfigure = '' - sed -i 's|^#define LVM_CONFIGURE_LINE.*$|#define LVM_CONFIGURE_LINE "<removed>"|g' ./include/configure.h - ''; - - patches = [ - # fixes paths to and checks for tools - (substituteAll (let - optionalTool = cond: pkg: if cond then pkg else "/run/current-system/sw"; - in { - src = ./fix-blkdeactivate.patch; - inherit coreutils; - util_linux = optionalTool enableUtilLinux util-linux; - mdadm = optionalTool enableMdadm mdadm; - multipath_tools = optionalTool enableMultipath multipath-tools; - vdo = optionalTool enableVDO vdo; - })) - # Musl fix from Alpine - ./fix-stdio-usage.patch - # https://gitlab.com/lvmteam/lvm2/-/merge_requests/8 - ./fix-static.patch - ]; - - doCheck = false; # requires root - - makeFlags = lib.optionals udevSupport [ - "SYSTEMD_GENERATOR_DIR=${placeholder "out"}/lib/systemd/system-generators" - ] ++ lib.optionals onlyLib [ - "libdm.device-mapper" - ]; - - # To prevent make install from failing. - installFlags = [ "OWNER=" "GROUP=" "confdir=$(out)/etc" ]; - - # Install systemd stuff. - installTargets = [ "install" ] ++ lib.optionals udevSupport [ - "install_systemd_generators" - "install_systemd_units" - "install_tmpfiles_configuration" - ]; - - installPhase = lib.optionalString onlyLib '' - install -D -t $out/lib libdm/ioctl/libdevmapper.${if stdenv.hostPlatform.isStatic then "a" else "so"} - make -C libdm install_include - make -C libdm install_pkgconfig - ''; - - # only split bin and lib out from out if cmdlib isn't enabled - outputs = [ - "out" - ] ++ lib.optionals (!onlyLib) [ - "dev" - "man" - ] ++ lib.optionals (!onlyLib && !enableCmdlib) [ - "bin" - "lib" - ]; - - postInstall = lib.optionalString (enableCmdlib != true) '' - moveToOutput lib/libdevmapper.so $lib - ''; - - passthru.tests = { - installer = nixosTests.installer.lvm; - lvm2 = nixosTests.lvm2; - }; - - meta = with lib; { - homepage = "http://sourceware.org/lvm2/"; - description = "Tools to support Logical Volume Management (LVM) on Linux"; - platforms = platforms.linux; - license = with licenses; [ gpl2 bsd2 lgpl21 ]; - maintainers = with maintainers; [ raskin ajs124 ] ++ teams.helsinki-systems.members; - }; -} diff --git a/pkgs/os-specific/linux/lvm2/fix-blkdeactivate.patch b/pkgs/os-specific/linux/lvm2/fix-blkdeactivate.patch deleted file mode 100644 index db8cfaeae9e3..000000000000 --- a/pkgs/os-specific/linux/lvm2/fix-blkdeactivate.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff --git a/scripts/blkdeactivate.sh.in b/scripts/blkdeactivate.sh.in -index 7c517b87b..e51a33778 100644 ---- a/scripts/blkdeactivate.sh.in -+++ b/scripts/blkdeactivate.sh.in -@@ -34,11 +34,11 @@ TOOL=blkdeactivate - DEV_DIR="/dev" - SYS_BLK_DIR="/sys/block" - --MDADM="/sbin/mdadm" --MOUNTPOINT="/bin/mountpoint" --MPATHD="/sbin/multipathd" --UMOUNT="/bin/umount" --VDO="/bin/vdo" -+MDADM="@mdadm@/bin/mdadm" -+MOUNTPOINT="@util_linux@/bin/mountpoint" -+MPATHD="@multipath_tools@/bin/multipathd" -+UMOUNT="@util_linux@/bin/umount" -+VDO="@vdo@/bin/vdo" - - sbindir="@SBINDIR@" - DMSETUP="$sbindir/dmsetup" -@@ -48,7 +48,7 @@ if "$UMOUNT" --help | grep -- "--all-targets" >"$DEV_DIR/null"; then - UMOUNT_OPTS="--all-targets " - else - UMOUNT_OPTS="" -- FINDMNT="/bin/findmnt -r --noheadings -u -o TARGET" -+ FINDMNT="@util_linux@/bin/findmnt -r --noheadings -u -o TARGET" - FINDMNT_READ="read -r mnt" - fi - DMSETUP_OPTS="" -@@ -57,10 +57,10 @@ MDADM_OPTS="" - MPATHD_OPTS="" - VDO_OPTS="" - --LSBLK="/bin/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT" -+LSBLK="@util_linux@/bin/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT" - LSBLK_VARS="local devtype local kname local name local mnt" - LSBLK_READ="read -r devtype kname name mnt" --SORT_MNT="/bin/sort -r -u -k 4" -+SORT_MNT="@coreutils@/bin/sort -r -u -k 4" - - # Do not show tool errors by default (only done/skipping summary - # message provided by this script) and no verbose mode by default. -@@ -102,6 +102,7 @@ declare -A SKIP_VG_LIST=() - # (list is an associative array!) - # - declare -A SKIP_UMOUNT_LIST=(["/"]=1 \ -+ ["/nix"]=1 ["/nix/store"]=1 \ - ["/lib"]=1 ["/lib64"]=1 \ - ["/bin"]=1 ["/sbin"]=1 \ - ["/var"]=1 ["/var/log"]=1 \ diff --git a/pkgs/os-specific/linux/lvm2/fix-static.patch b/pkgs/os-specific/linux/lvm2/fix-static.patch deleted file mode 100644 index 89192744adec..000000000000 --- a/pkgs/os-specific/linux/lvm2/fix-static.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0cbe7f0adc86c92c61156c417b27b063f156b31b Mon Sep 17 00:00:00 2001 -From: Alyssa Ross <hi@alyssa.is> -Date: Tue, 2 Jan 2024 18:15:20 +0100 -Subject: [PATCH] makefiles: fix disabling shared link - -LIB_SHARED still gets set when shared linking has been disabled, so -the previous version of this check still attempted to build the -shared library. ---- - libdm/make.tmpl.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libdm/make.tmpl.in b/libdm/make.tmpl.in -index 2dd9625d4d..69ba2c35ab 100644 ---- a/libdm/make.tmpl.in -+++ b/libdm/make.tmpl.in -@@ -436,7 +436,7 @@ DEFS+=-D_FILE_OFFSET_BITS=64 - @echo " [CC] $(<F)" - $(Q) $(CC) -c $(CFLAGS) $(CLDFLAGS) $< $(LIBS) -o $@ - --ifneq (,$(LIB_SHARED)) -+ifeq ("@SHARED_LINK@", "yes") - - TARGETS += $(LIB_SHARED).$(LIB_VERSION) - $(LIB_SHARED).$(LIB_VERSION): $(OBJECTS) $(LDDEPS) --- -GitLab - diff --git a/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch b/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch deleted file mode 100644 index 98cdc6eb3ec9..000000000000 --- a/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 63b1c7332bee6080bffecf9ce9d75ff15d799166 Mon Sep 17 00:00:00 2001 -From: Natanael Copa <ncopa@alpinelinux.org> -Date: Wed, 16 Nov 2022 10:42:39 +0100 -Subject: [PATCH] fix stdio usage - ---- - lib/commands/toolcontext.c | 4 ++-- - tools/lvmcmdline.c | 6 +++--- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c -index b630554a9..f20080d18 100644 ---- a/lib/commands/toolcontext.c -+++ b/lib/commands/toolcontext.c -@@ -1667,7 +1667,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd, - /* FIXME Make this configurable? */ - reset_lvm_errno(1); - --#ifndef VALGRIND_POOL -+#if !defined(VALGRIND_POOL) && defined(__GLIBC__) - /* Set in/out stream buffering before glibc */ - if (set_buffering - #ifdef SYS_gettid -@@ -2045,7 +2045,7 @@ void destroy_toolcontext(struct cmd_context *cmd) - dm_hash_destroy(cmd->cft_def_hash); - - dm_device_list_destroy(&cmd->cache_dm_devs); --#ifndef VALGRIND_POOL -+#if !defined(VALGRIND_POOL) && defined(__GLIBC__) - if (cmd->linebuffer) { - /* Reset stream buffering to defaults */ - if (is_valid_fd(STDIN_FILENO) && -diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c -index a5bb6a5c5..0ebfa375c 100644 ---- a/tools/lvmcmdline.c -+++ b/tools/lvmcmdline.c -@@ -3422,7 +3422,7 @@ static int _check_standard_fds(void) - int err = is_valid_fd(STDERR_FILENO); - - if (!is_valid_fd(STDIN_FILENO) && -- !(stdin = fopen(_PATH_DEVNULL, "r"))) { -+ !freopen(_PATH_DEVNULL, "r", stdin)) { - if (err) - perror("stdin stream open"); - else -@@ -3432,7 +3432,7 @@ static int _check_standard_fds(void) - } - - if (!is_valid_fd(STDOUT_FILENO) && -- !(stdout = fopen(_PATH_DEVNULL, "w"))) { -+ !freopen(_PATH_DEVNULL, "w", stdout)) { - if (err) - perror("stdout stream open"); - /* else no stdout */ -@@ -3440,7 +3440,7 @@ static int _check_standard_fds(void) - } - - if (!is_valid_fd(STDERR_FILENO) && -- !(stderr = fopen(_PATH_DEVNULL, "w"))) { -+ !freopen(_PATH_DEVNULL, "w", stderr)) { - printf("stderr stream open: %s\n", - strerror(errno)); - return 0; --- -2.38.1 - diff --git a/pkgs/os-specific/linux/macchanger/default.nix b/pkgs/os-specific/linux/macchanger/default.nix deleted file mode 100644 index e998bfad9361..000000000000 --- a/pkgs/os-specific/linux/macchanger/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, texinfo }: - -stdenv.mkDerivation rec { - pname = "macchanger"; - version = "1.7.0"; - - src = fetchFromGitHub { - owner = "alobbs"; - repo = "macchanger"; - rev = version; - sha256 = "1hypx6sxhd2b1nsxj314hpkhj7q4x9p2kfaaf20rjkkkig0nck9r"; - }; - - patches = [ - (fetchpatch { - url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/02-fix_usage_message.patch"; - sha256 = "0pxljmq0l0znylbhms09i19qwil74gm8gx3xx2ffx00dajaizj18"; - }) - (fetchpatch { - url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/06-update_OUI_list.patch"; - sha256 = "04kbd784z9nwkjva5ckkvb0yb3pim9valb1viywn1yyh577d0y7w"; - }) - (fetchpatch { - url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/08-fix_random_MAC_choice.patch"; - sha256 = "1vz3appxxsdf1imzrn57amazfwlbrvx6g78b6n88aqgwzy5dm34d"; - }) - (fetchpatch { - url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/check-random-device-read-errors.patch"; - sha256 = "0pra6qnk39crjlidspg3l6hpaqiw43cypahx793l59mqn956cngc"; - }) - (fetchpatch { - url = "https://sources.debian.org/data/main/m/macchanger/1.7.0-5.3/debian/patches/verify-changed-MAC.patch"; - sha256 = "0vjhf2fnj1hlghjl821p6idrfc8hmd4lgps5lf1l68ylqvwjw0zj"; - }) - ]; - - nativeBuildInputs = [ autoreconfHook texinfo ]; - - outputs = [ "out" "info" ]; - - meta = with lib; { - description = "A utility for viewing/manipulating the MAC address of network interfaces"; - maintainers = with maintainers; [ joachifm dotlambda ]; - license = licenses.gpl2Plus; - homepage = "https://github.com/alobbs/macchanger"; - platforms = platforms.linux; - mainProgram = "macchanger"; - }; -} diff --git a/pkgs/os-specific/linux/mba6x_bl/default.nix b/pkgs/os-specific/linux/mba6x_bl/default.nix deleted file mode 100644 index 3add5eb227f5..000000000000 --- a/pkgs/os-specific/linux/mba6x_bl/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ fetchFromGitHub, kernel, lib, stdenv }: - -stdenv.mkDerivation { - pname = "mba6x_bl"; - version = "unstable-2017-12-30"; - - src = fetchFromGitHub { - owner = "patjak"; - repo = "mba6x_bl"; - rev = "639719f516b664051929c2c0c1140ea4bf30ce81"; - sha256 = "sha256-QwxBpNa5FitKO+2ne54IIcRgwVYeNSQWI4f2hPPB8ls="; - }; - - enableParallelBuilding = true; - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "INSTALL_MOD_PATH=$(out)" - ]; - - meta = with lib; { - description = "MacBook Air 6,1 and 6,2 (mid 2013) backlight driver"; - homepage = "https://github.com/patjak/mba6x_bl"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = [ maintainers.simonvandel ]; - }; -} diff --git a/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix b/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix deleted file mode 100644 index 0b4fec4dfb4e..000000000000 --- a/pkgs/os-specific/linux/mbp-modules/mbp2018-bridge-drv/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, kernel, fetchFromGitHub, }: - -stdenv.mkDerivation rec { - pname = "mbp2018-bridge-drv"; - version = "2020-01-31"; - - src = fetchFromGitHub { - owner = "MCMrARM"; - repo = "mbp2018-bridge-drv"; - rev = "b43fcc069da73e051072fde24af4014c9c487286"; - sha256 = "sha256-o6yGiR+Y5SnX1johdi7fQWP5ts7HdDMqeju75UOhgik="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags; - - buildPhase = '' - make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \ - -j$NIX_BUILD_CORES M=$(pwd) modules $makeFlags - ''; - - installPhase = '' - make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \ - INSTALL_MOD_PATH=$out M=$(pwd) modules_install $makeFlags - ''; - - meta = with lib; { - description = "A driver for MacBook models 2018 and newer, which makes the keyboard, mouse and audio output work."; - longDescription = '' - A driver for MacBook models 2018 and newer, implementing the VHCI (required for mouse/keyboard/etc.) and audio functionality. - ''; - homepage = "https://github.com/MCMrARM/mbp2018-bridge-drv"; - license = lib.licenses.gpl2Only; - platforms = platforms.linux; - maintainers = [ lib.maintainers.hlolli ]; - broken = kernel.kernelOlder "5.4"; - }; -} diff --git a/pkgs/os-specific/linux/mbpfan/default.nix b/pkgs/os-specific/linux/mbpfan/default.nix deleted file mode 100644 index 4992fdbf1d46..000000000000 --- a/pkgs/os-specific/linux/mbpfan/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ stdenv, lib, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "mbpfan"; - version = "2.4.0"; - src = fetchFromGitHub { - owner = "dgraziotin"; - repo = "mbpfan"; - rev = "v${version}"; - sha256 = "sha256-F9IWUcILOuLn5K4zRSU5jn+1Wk1xy0CONSI6JTXU2pA="; - }; - installPhase = '' - mkdir -p $out/bin $out/etc - cp bin/mbpfan $out/bin - cp mbpfan.conf $out/etc - ''; - meta = with lib; { - description = "Daemon that uses input from coretemp module and sets the fan speed using the applesmc module"; - mainProgram = "mbpfan"; - homepage = "https://github.com/dgraziotin/mbpfan"; - license = licenses.gpl3; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/mceinject/default.nix b/pkgs/os-specific/linux/mceinject/default.nix deleted file mode 100644 index f7cd199a5e8b..000000000000 --- a/pkgs/os-specific/linux/mceinject/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, bison, flex }: - -stdenv.mkDerivation rec { - pname = "mceinject"; - version = "unstable-2013-01-19"; - - src = fetchFromGitHub { - owner = "andikleen"; - repo = "mce-inject"; - rev = "4cbe46321b4a81365ff3aafafe63967264dbfec5"; - sha256 = "0gjapg2hrlxp8ssrnhvc19i3r1xpcnql7xv0zjgbv09zyha08g6z"; - }; - - nativeBuildInputs = [ flex bison ]; - - env.NIX_CFLAGS_COMPILE = "-Os -g -Wall"; - - NIX_LDFLAGS = [ "-lpthread" ]; - - makeFlags = [ "prefix=" ]; - - enableParallelBuilding = true; - - installFlags = [ "destdir=$(out)" "manprefix=/share" ]; - - meta = with lib; { - description = "A tool to inject machine checks into x86 kernel for testing"; - mainProgram = "mce-inject"; - longDescription = '' - mce-inject allows to inject machine check errors on the software level - into a running Linux kernel. This is intended for validation of the - kernel machine check handler. - ''; - homepage = "https://github.com/andikleen/mce-inject/"; - license = licenses.gpl2; - maintainers = with maintainers; [ arkivm ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/mcelog/default.nix b/pkgs/os-specific/linux/mcelog/default.nix deleted file mode 100644 index 2a6727027f48..000000000000 --- a/pkgs/os-specific/linux/mcelog/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, util-linux }: - -stdenv.mkDerivation rec { - pname = "mcelog"; - version = "180"; - - src = fetchFromGitHub { - owner = "andikleen"; - repo = "mcelog"; - rev = "v${version}"; - sha256 = "1xy1082c67yd48idg5vwvrw7yx74gn6jj2d9c67d0rh6yji091ki"; - }; - - postPatch = '' - for i in mcelog.conf paths.h; do - substituteInPlace $i --replace /etc $out/etc - done - touch mcelog.conf.5 # avoid regeneration requiring Python - - substituteInPlace Makefile --replace '"unknown"' '"${version}"' - - for i in triggers/*; do - substituteInPlace $i --replace 'logger' '${util-linux}/bin/logger' - done - ''; - - enableParallelBuilding = true; - - installFlags = [ "DESTDIR=$(out)" "prefix=" "DOCDIR=/share/doc" ]; - - postInstall = '' - mkdir -p $out/lib/systemd/system - substitute mcelog.service $out/lib/systemd/system/mcelog.service \ - --replace /usr/sbin $out/bin - ''; - - meta = with lib; { - description = "Log x86 machine checks: memory, IO, and CPU hardware errors"; - mainProgram = "mcelog"; - longDescription = '' - The mcelog daemon accounts memory and some other errors in various ways - on modern x86 Linux systems. The daemon can be queried and/or execute - triggers when configurable error thresholds are exceeded. This is used to - implement a range of automatic predictive failure analysis algorithms, - including bad page offlining and automatic cache error handling. All - errors are logged to /var/log/mcelog or syslog or the journal. - ''; - homepage = "http://mcelog.org/"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/mdadm/default.nix b/pkgs/os-specific/linux/mdadm/default.nix deleted file mode 100644 index 65556987508e..000000000000 --- a/pkgs/os-specific/linux/mdadm/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ lib, stdenv, util-linux, coreutils, fetchurl, groff, system-sendmail, udev }: - -stdenv.mkDerivation rec { - pname = "mdadm"; - version = "4.3"; - - src = fetchurl { - url = "mirror://kernel/linux/utils/raid/mdadm/mdadm-${version}.tar.xz"; - sha256 = "sha256-QWcnrh8QgOpuMJDOo23QdoJvw2kVHjarc2VXupIZb58="; - }; - - patches = [ - ./no-self-references.patch - ./fix-hardcoded-mapdir.patch - # Fixes build on musl - (fetchurl { - url = "https://raw.githubusercontent.com/void-linux/void-packages/e58d2b17d3c40faffc0d426aab00184f28d9dafa/srcpkgs/mdadm/patches/musl.patch"; - hash = "sha256-TIcQs+8RM5Q6Z8MHkI50kaJd7f9WdS/EVI16F7b2+SA="; - }) - ]; - - makeFlags = [ - "NIXOS=1" "INSTALL=install" "BINDIR=$(out)/sbin" - "SYSTEMD_DIR=$(out)/lib/systemd/system" - "MANDIR=$(out)/share/man" "RUN_DIR=/dev/.mdadm" - "STRIP=" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; - - installFlags = [ "install-systemd" ]; - - enableParallelBuilding = true; - - buildInputs = [ udev ]; - - nativeBuildInputs = [ groff ]; - - postPatch = '' - sed -e 's@/lib/udev@''${out}/lib/udev@' \ - -e 's@ -Werror @ @' \ - -e 's@/usr/sbin/sendmail@${system-sendmail}/bin/sendmail@' -i Makefile - sed -i \ - -e 's@/usr/bin/basename@${coreutils}/bin/basename@g' \ - -e 's@BINDIR/blkid@${util-linux}/bin/blkid@g' \ - *.rules - ''; - - # This is to avoid self-references, which causes the initrd to explode - # in size and in turn prevents mdraid systems from booting. - postFixup = '' - grep -r $out $out/bin && false || true - ''; - - meta = with lib; { - description = "Programs for managing RAID arrays under Linux"; - homepage = "https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git"; - license = licenses.gpl2; - mainProgram = "mdadm"; - maintainers = with maintainers; [ ekleog ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/mdadm/fix-hardcoded-mapdir.patch b/pkgs/os-specific/linux/mdadm/fix-hardcoded-mapdir.patch deleted file mode 100644 index cf50d6012487..000000000000 --- a/pkgs/os-specific/linux/mdadm/fix-hardcoded-mapdir.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/udev.c b/udev.c -index bc4722b0..aa2a1a24 100644 ---- a/udev.c -+++ b/udev.c -@@ -167,7 +167,7 @@ enum udev_status udev_block(char *devnm) - int fd; - char *path = xcalloc(1, BUFSIZ); - -- snprintf(path, BUFSIZ, "/run/mdadm/creating-%s", devnm); -+ snprintf(path, BUFSIZ, "%s/creating-%s", MAP_DIR, devnm); - - fd = open(path, O_CREAT | O_RDWR, 0600); - if (!is_fd_valid(fd)) { diff --git a/pkgs/os-specific/linux/mdadm/no-self-references.patch b/pkgs/os-specific/linux/mdadm/no-self-references.patch deleted file mode 100644 index 3b3dc4d84609..000000000000 --- a/pkgs/os-specific/linux/mdadm/no-self-references.patch +++ /dev/null @@ -1,124 +0,0 @@ -diff --git a/Makefile b/Makefile -index 2a51d813..a31ac48a 100644 ---- a/Makefile -+++ b/Makefile -@@ -63,6 +63,9 @@ endif - ifdef DEBIAN - CPPFLAGS += -DDEBIAN - endif -+ifdef NIXOS -+CPPFLAGS += -DNIXOS -+endif - ifdef DEFAULT_OLD_METADATA - CPPFLAGS += -DDEFAULT_OLD_METADATA - DEFAULT_METADATA=0.90 -@@ -129,6 +132,7 @@ endif - INSTALL = /usr/bin/install - DESTDIR = - BINDIR = /sbin -+INSTALL_BINDIR = ${BINDIR} - MANDIR = /usr/share/man - MAN4DIR = $(MANDIR)/man4 - MAN5DIR = $(MANDIR)/man5 -@@ -253,16 +257,16 @@ sha1.o : sha1.c sha1.h md5.h - install : install-bin install-man install-udev - - install-static : mdadm.static install-man -- $(INSTALL) -D $(STRIP) -m 755 mdadm.static $(DESTDIR)$(BINDIR)/mdadm -+ $(INSTALL) -D $(STRIP) -m 755 mdadm.static $(DESTDIR)$(INSTALL_BINDIR)/mdadm - - install-tcc : mdadm.tcc install-man -- $(INSTALL) -D $(STRIP) -m 755 mdadm.tcc $(DESTDIR)$(BINDIR)/mdadm -+ $(INSTALL) -D $(STRIP) -m 755 mdadm.tcc $(DESTDIR)$(INSTALL_BINDIR)/mdadm - - install-uclibc : mdadm.uclibc install-man -- $(INSTALL) -D $(STRIP) -m 755 mdadm.uclibc $(DESTDIR)$(BINDIR)/mdadm -+ $(INSTALL) -D $(STRIP) -m 755 mdadm.uclibc $(DESTDIR)$(INSTALL_BINDIR)/mdadm - - install-klibc : mdadm.klibc install-man -- $(INSTALL) -D $(STRIP) -m 755 mdadm.klibc $(DESTDIR)$(BINDIR)/mdadm -+ $(INSTALL) -D $(STRIP) -m 755 mdadm.klibc $(DESTDIR)$(INSTALL_BINDIR)/mdadm - - install-man: mdadm.8 md.4 mdadm.conf.5 mdmon.8 - $(INSTALL) -D -m 644 mdadm.8 $(DESTDIR)$(MAN8DIR)/mdadm.8 -@@ -305,7 +309,7 @@ install-bin: mdadm mdmon - $(INSTALL) -D $(STRIP) -m 755 mdmon $(DESTDIR)$(BINDIR)/mdmon - - uninstall: -- rm -f $(DESTDIR)$(MAN8DIR)/mdadm.8 $(DESTDIR)$(MAN8DIR)/mdmon.8 $(DESTDIR)$(MAN4DIR)/md.4 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5 $(DESTDIR)$(BINDIR)/mdadm -+ rm -f $(DESTDIR)$(MAN8DIR)/mdadm.8 $(DESTDIR)$(MAN8DIR)/mdmon.8 $(DESTDIR)$(MAN4DIR)/md.4 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5 $(DESTDIR)$(INSTALL_BINDIR)/mdadm - - test: mdadm mdmon test_stripe swap_super raid6check - @echo "Please run './test' as root" -diff --git a/policy.c b/policy.c -index eee9ef63..9f916e9d 100644 ---- a/policy.c -+++ b/policy.c -@@ -817,12 +817,39 @@ char *find_rule(struct rule *rule, char *rule_type) - #define UDEV_RULE_FORMAT \ - "ACTION==\"add\", SUBSYSTEM==\"block\", " \ - "ENV{DEVTYPE}==\"%s\", ENV{ID_PATH}==\"%s\", " \ --"RUN+=\"" BINDIR "/mdadm --incremental $env{DEVNAME}\"\n" -+"RUN+=\"%s/mdadm --incremental $env{DEVNAME}\"\n" - - #define UDEV_RULE_FORMAT_NOTYPE \ - "ACTION==\"add\", SUBSYSTEM==\"block\", " \ - "ENV{ID_PATH}==\"%s\", " \ --"RUN+=\"" BINDIR "/mdadm --incremental $env{DEVNAME}\"\n" -+"RUN+=\"%s/mdadm --incremental $env{DEVNAME}\"\n" -+ -+#ifdef NIXOS -+const char *get_mdadm_bindir(void) -+{ -+ static char *bindir = NULL; -+ if (bindir != NULL) { -+ return bindir; -+ } else { -+ int len; -+ bindir = xmalloc(1025); -+ len = readlink("/proc/self/exe", bindir, 1024); -+ if (len > 0) { -+ char *basename; -+ if ((basename = strrchr(bindir, '/')) != NULL) -+ *basename = '\0'; -+ else -+ *(bindir + len) = '\0'; -+ } else { -+ *bindir = '\0'; -+ } -+ return bindir; -+ } -+} -+#define SELF get_mdadm_bindir() -+#else -+#define SELF BINDIR -+#endif - - /* Write rule in the rule file. Use format from UDEV_RULE_FORMAT */ - int write_rule(struct rule *rule, int fd, int force_part) -@@ -836,9 +863,9 @@ int write_rule(struct rule *rule, int fd, int force_part) - if (force_part) - typ = type_part; - if (typ) -- snprintf(line, sizeof(line) - 1, UDEV_RULE_FORMAT, typ, pth); -+ snprintf(line, sizeof(line) - 1, UDEV_RULE_FORMAT, typ, pth, SELF); - else -- snprintf(line, sizeof(line) - 1, UDEV_RULE_FORMAT_NOTYPE, pth); -+ snprintf(line, sizeof(line) - 1, UDEV_RULE_FORMAT_NOTYPE, pth, SELF); - return write(fd, line, strlen(line)) == (int)strlen(line); - } - -diff --git a/util.c b/util.c -index 3d05d074..e004a798 100644 ---- a/util.c -+++ b/util.c -@@ -1913,7 +1913,9 @@ int start_mdmon(char *devnm) - char pathbuf[1024]; - char *paths[4] = { - pathbuf, -+#ifndef NIXOS - BINDIR "/mdmon", -+#endif - "./mdmon", - NULL - }; diff --git a/pkgs/os-specific/linux/mdevctl/default.nix b/pkgs/os-specific/linux/mdevctl/default.nix deleted file mode 100644 index ce4ea250827b..000000000000 --- a/pkgs/os-specific/linux/mdevctl/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib -, rustPlatform -, fetchCrate -, docutils -, installShellFiles -}: - -rustPlatform.buildRustPackage rec { - pname = "mdevctl"; - version = "1.3.0"; - - src = fetchCrate { - inherit pname version; - hash = "sha256-4K4NW3DOTtzZJ7Gg0mnRPr88YeqEjTtKX+C4P8i923E="; - }; - - cargoHash = "sha256-hCqNy32uPLsKfUJqiG2DRcXfqdvlp4bCutQmt+FieXc="; - - nativeBuildInputs = [ - docutils - installShellFiles - ]; - - postInstall = '' - ln -s mdevctl $out/bin/lsmdev - - install -Dm444 60-mdevctl.rules -t $out/lib/udev/rules.d - - installManPage $releaseDir/build/mdevctl-*/out/mdevctl.8 - ln -s mdevctl.8 $out/share/man/man8/lsmdev.8 - - installShellCompletion $releaseDir/build/mdevctl-*/out/{lsmdev,mdevctl}.bash - ''; - - meta = with lib; { - homepage = "https://github.com/mdevctl/mdevctl"; - description = "A mediated device management utility for linux"; - license = licenses.lgpl21Only; - maintainers = with maintainers; [ edwtjo ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/metastore/default.nix b/pkgs/os-specific/linux/metastore/default.nix deleted file mode 100644 index 76e4ae893287..000000000000 --- a/pkgs/os-specific/linux/metastore/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, libbsd, fetchFromGitHub }: - -stdenv.mkDerivation rec { - version = "1.1.2"; - pname = "metastore"; - - src = fetchFromGitHub { - owner = "przemoc"; - repo = "metastore"; - rev = "v${version}"; - sha256 = "0mb10wfckswqgi0bq25ncgabnd3iwj7s7hhg3wpcyfgckdynwizv"; - }; - - buildInputs = [ libbsd ]; - installFlags = [ "PREFIX=$(out)" ]; - - meta = with lib; { - description = "Store and restore metadata from a filesystem"; - mainProgram = "metastore"; - homepage = "https://software.przemoc.net/#metastore"; - license = licenses.gpl2; - maintainers = with maintainers; [ sstef ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/microcode/amd.nix b/pkgs/os-specific/linux/microcode/amd.nix deleted file mode 100644 index 3c82cdec29fb..000000000000 --- a/pkgs/os-specific/linux/microcode/amd.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, linux-firmware, libarchive }: - -stdenv.mkDerivation { - pname = "amd-ucode"; - version = linux-firmware.version; - - src = linux-firmware; - - sourceRoot = "."; - - nativeBuildInputs = [ libarchive ]; - - buildPhase = '' - mkdir -p kernel/x86/microcode - find ${linux-firmware}/lib/firmware/amd-ucode -name \*.bin -print0 | sort -z |\ - xargs -0 -I{} sh -c 'cat {} >> kernel/x86/microcode/AuthenticAMD.bin' - ''; - - installPhase = '' - mkdir -p $out - touch -d @$SOURCE_DATE_EPOCH kernel/x86/microcode/AuthenticAMD.bin - echo kernel/x86/microcode/AuthenticAMD.bin | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @- > $out/amd-ucode.img - ''; - - meta = with lib; { - description = "AMD Processor microcode patch"; - homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"; - license = licenses.unfreeRedistributableFirmware; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/microcode/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix deleted file mode 100644 index 6953bbca8963..000000000000 --- a/pkgs/os-specific/linux/microcode/intel.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, libarchive, iucode-tool }: - -stdenv.mkDerivation rec { - pname = "microcode-intel"; - version = "20240312"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "Intel-Linux-Processor-Microcode-Data-Files"; - rev = "microcode-${version}"; - hash = "sha256-4ZSA+LVczfjZINXhImmFOCc/6kKNrrUQvrXPdOvMM8g="; - }; - - nativeBuildInputs = [ iucode-tool libarchive ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out kernel/x86/microcode - iucode_tool -w kernel/x86/microcode/GenuineIntel.bin intel-ucode/ - touch -d @$SOURCE_DATE_EPOCH kernel/x86/microcode/GenuineIntel.bin - echo kernel/x86/microcode/GenuineIntel.bin | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @- > $out/intel-ucode.img - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://www.intel.com/"; - changelog = "https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/${src.rev}"; - description = "Microcode for Intel processors"; - license = licenses.unfreeRedistributableFirmware; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/microcode/iucode-tool.nix b/pkgs/os-specific/linux/microcode/iucode-tool.nix deleted file mode 100644 index 316aaa22932d..000000000000 --- a/pkgs/os-specific/linux/microcode/iucode-tool.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchFromGitLab, autoreconfHook, fetchpatch, argp-standalone }: - -stdenv.mkDerivation rec { - pname = "iucode-tool"; - version = "2.3.1"; - - src = fetchFromGitLab { - owner = "iucode-tool"; - repo = "iucode-tool"; - rev = "v${version}"; - sha256 = "04dlisw87dd3q3hhmkqc5dd58cp22fzx3rzah7pvcyij135yjc3a"; - }; - - patches = [ - # build fix for musl libc, pending upstream review - # https://gitlab.com/iucode-tool/iucode-tool/-/merge_requests/4 - (fetchpatch { - url = "https://gitlab.com/iucode-tool/iucode-tool/-/commit/fda4aaa4727601dbe817fac001f234c19420351a.patch"; - hash = "sha256-BxYrXALpZFyJtFrgU5jFmzd1dIMPmpNgvYArgkwGt/w="; - }) - ]; - - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = lib.optional stdenv.hostPlatform.isMusl argp-standalone; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Intel® 64 and IA-32 processor microcode tool"; - mainProgram = "iucode_tool"; - homepage = "https://gitlab.com/iucode-tool/iucode-tool"; - license = licenses.gpl2; - maintainers = with maintainers; [ peterhoeg ]; - platforms = [ "x86_64-linux" "i686-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/mingetty/default.nix b/pkgs/os-specific/linux/mingetty/default.nix deleted file mode 100644 index eff1bf50a361..000000000000 --- a/pkgs/os-specific/linux/mingetty/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "mingetty"; - version = "1.08"; - - src = fetchurl { - url = "mirror://sourceforge/mingetty/mingetty-${version}.tar.gz"; - sha256 = "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g"; - }; - - makeFlags = [ - "CC:=$(CC)" - "SBINDIR=${placeholder "out"}/sbin" - "MANDIR=${placeholder "out"}/share/man/man8" - ]; - - preInstall = '' - mkdir -p $out/sbin $out/share/man/man8 - ''; - - meta = with lib; { - homepage = "https://sourceforge.net/projects/mingetty"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/bash/2.nix b/pkgs/os-specific/linux/minimal-bootstrap/bash/2.nix deleted file mode 100644 index 5eea877803a5..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/bash/2.nix +++ /dev/null @@ -1,157 +0,0 @@ -{ lib -, derivationWithMeta -, fetchurl -, kaem -, tinycc -, gnumake -, gnupatch -, coreutils -, mescc-tools-extra -, bash_2_05 -}: -let - pname = "bash"; - version = "2.05b"; - - src = fetchurl { - url = "mirror://gnu/bash/bash-${version}.tar.gz"; - sha256 = "1r1z2qdw3rz668nxrzwa14vk2zcn00hw7mpjn384picck49d80xs"; - }; - - # Thanks to the live-bootstrap project! - # See https://github.com/fosslinux/live-bootstrap/blob/1bc4296091c51f53a5598050c8956d16e945b0f5/sysa/bash-2.05b/bash-2.05b.kaem - liveBootstrap = "https://github.com/fosslinux/live-bootstrap/raw/1bc4296091c51f53a5598050c8956d16e945b0f5/sysa/bash-2.05b"; - - main_mk = fetchurl { - url = "${liveBootstrap}/mk/main.mk"; - sha256 = "0hj29q3pq3370p18sxkpvv9flb7yvx2fs96xxlxqlwa8lkimd0j4"; - }; - - common_mk = fetchurl { - url = "${liveBootstrap}/mk/common.mk"; - sha256 = "09rigxxf85p2ybnq248sai1gdx95yykc8jmwi4yjx389zh09mcr8"; - }; - - builtins_mk = fetchurl { - url = "${liveBootstrap}/mk/builtins.mk"; - sha256 = "0939dy5by1xhfmsjj6w63nlgk509fjrhpb2crics3dpcv7prl8lj"; - }; - - patches = [ - # mes libc does not have locale support - (fetchurl { - url = "${liveBootstrap}/patches/mes-libc.patch"; - sha256 = "0zksdjf6zbb3p4hqg6plq631y76hhhgab7kdvf7cnpk8bcykn12z"; - }) - # int name, namelen; is wrong for mes libc, it is char* name, so we modify tinycc - # to reflect this. - (fetchurl { - url = "${liveBootstrap}/patches/tinycc.patch"; - sha256 = "042d2kr4a8klazk1hlvphxr6frn4mr53k957aq3apf6lbvrjgcj2"; - }) - # add ifdef's for features we don't want - (fetchurl { - url = "${liveBootstrap}/patches/missing-defines.patch"; - sha256 = "1q0k1kj5mrvjkqqly7ki5575a5b3hy1ywnmvhrln318yh67qnkj4"; - }) - # mes libc + setting locale = not worky - (fetchurl { - url = "${liveBootstrap}/patches/locale.patch"; - sha256 = "1p1q1slhafsgj8x4k0dpn9h6ryq5fwfx7dicbbxhldbw7zvnnbx9"; - }) - # We do not have /dev at this stage of the bootstrap, including /dev/tty - (fetchurl { - url = "${liveBootstrap}/patches/dev-tty.patch"; - sha256 = "1315slv5f7ziajqyxg4jlyanf1xwd06xw14y6pq7xpm3jzjk55j9"; - }) - ]; -in -kaem.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnupatch - coreutils - ]; - - passthru.runCommand = name: env: buildCommand: - derivationWithMeta ({ - inherit name buildCommand; - builder = "${bash_2_05}/bin/bash"; - args = [ - "-e" - (builtins.toFile "bash-builder.sh" '' - export CONFIG_SHELL=$SHELL - - # Normalize the NIX_BUILD_CORES variable. The value might be 0, which - # means that we're supposed to try and auto-detect the number of - # available CPU cores at run-time. We don't have nproc to detect the - # number of available CPU cores so default to 1 if not set. - NIX_BUILD_CORES="''${NIX_BUILD_CORES:-1}" - if [ $NIX_BUILD_CORES -le 0 ]; then - NIX_BUILD_CORES=1 - fi - export NIX_BUILD_CORES - - bash -eux $buildCommandPath - '') - ]; - passAsFile = [ "buildCommand" ]; - - SHELL = "${bash_2_05}/bin/bash"; - PATH = lib.makeBinPath ((env.nativeBuildInputs or []) ++ [ - bash_2_05 - coreutils - # provides untar, ungz, and unbz2 - mescc-tools-extra - ]); - } // (builtins.removeAttrs env [ "nativeBuildInputs" ])); - - passthru.tests.get-version = result: - kaem.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/bash --version - mkdir ''${out} - ''; - - meta = with lib; { - description = "GNU Bourne-Again Shell, the de facto standard shell on Linux"; - homepage = "https://www.gnu.org/software/bash"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - ungz --file ${src} --output bash.tar - untar --file bash.tar - rm bash.tar - cd bash-${version} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np0 -i ${f}") patches} - - # Configure - cp ${main_mk} Makefile - cp ${builtins_mk} builtins/Makefile - cp ${common_mk} common.mk - touch config.h - touch include/version.h - touch include/pipesize.h - - # Build - make \ - CC="tcc -B ${tinycc.libs}/lib" \ - mkbuiltins - cd builtins - make \ - CC="tcc -B ${tinycc.libs}/lib" \ - libbuiltins.a - cd .. - make CC="tcc -B ${tinycc.libs}/lib" - - # Install - install -D bash ''${out}/bin/bash - ln -s bash ''${out}/bin/sh -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix deleted file mode 100644 index 86fa3a58687b..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/bash/default.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bootBash -, gnumake -, gnupatch -, gnused -, gnugrep -, gnutar -, gawk -, gzip -, diffutils -, tinycc -, derivationWithMeta -, bash -, coreutils -}: -let - pname = "bash"; - version = "5.2.15"; - - src = fetchurl { - url = "mirror://gnu/bash/bash-${version}.tar.gz"; - sha256 = "132qng0jy600mv1fs95ylnlisx2wavkkgpb19c6kmz7lnmjhjwhk"; - }; - - patches = [ - # flush output for generated code - ./mksignames-flush.patch - ]; -in -bootBash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - coreutils - tinycc.compiler - gnumake - gnupatch - gnused - gnugrep - gnutar - gawk - gzip - diffutils - ]; - - passthru.runCommand = name: env: buildCommand: - derivationWithMeta ({ - inherit name buildCommand; - builder = "${bash}/bin/bash"; - args = [ - "-e" - (builtins.toFile "bash-builder.sh" '' - export CONFIG_SHELL=$SHELL - - # Normalize the NIX_BUILD_CORES variable. The value might be 0, which - # means that we're supposed to try and auto-detect the number of - # available CPU cores at run-time. - NIX_BUILD_CORES="''${NIX_BUILD_CORES:-1}" - if ((NIX_BUILD_CORES <= 0)); then - guess=$(nproc 2>/dev/null || true) - ((NIX_BUILD_CORES = guess <= 0 ? 1 : guess)) - fi - export NIX_BUILD_CORES - - bash -eux $buildCommandPath - '') - ]; - passAsFile = [ "buildCommand" ]; - - SHELL = "${bash}/bin/bash"; - PATH = lib.makeBinPath ((env.nativeBuildInputs or []) ++ [ - bash - coreutils - ]); - } // (builtins.removeAttrs env [ "nativeBuildInputs" ])); - - passthru.tests.get-version = result: - bootBash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/bash --version - mkdir $out - ''; - - meta = with lib; { - description = "GNU Bourne-Again Shell, the de facto standard shell on Linux"; - homepage = "https://www.gnu.org/software/bash"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xzf ${src} - cd bash-${version} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np1 -i ${f}") patches} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export AR="tcc -ar" - export LD=tcc - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --without-bash-malloc - - # Build - make -j $NIX_BUILD_CORES SHELL=bash - - # Install - make -j $NIX_BUILD_CORES install - ln -s bash $out/bin/sh -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/bash/mksignames-flush.patch b/pkgs/os-specific/linux/minimal-bootstrap/bash/mksignames-flush.patch deleted file mode 100644 index 6e64dfa7fa3a..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/bash/mksignames-flush.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/support/mksignames.c -+++ b/support/mksignames.c -@@ -68,6 +68,7 @@ write_signames (stream) - fprintf (stream, "};\n\n"); - fprintf (stream, "#define initialize_signames()\n\n"); - #endif -+ fflush(stream); - } - - int diff --git a/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix deleted file mode 100644 index 71e391efb550..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix +++ /dev/null @@ -1,114 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, coreutils -, gnumake -, gnupatch -, gnused -, gnugrep -, gawk -, diffutils -, gnutar -, xz -, tinycc -}: - -let - # Based on https://github.com/ZilchOS/bootstrap-from-tcc/blob/2e0c68c36b3437386f786d619bc9a16177f2e149/using-nix/2a1-static-binutils.nix - pname = "binutils"; - version = "2.41"; - - src = fetchurl { - url = "mirror://gnu/binutils/binutils-${version}.tar.xz"; - hash = "sha256-rppXieI0WeWWBuZxRyPy0//DHAMXQZHvDQFb3wYAdFA="; - }; - - patches = [ - # Make binutils output deterministic by default. - ./deterministic.patch - ]; - - configureFlags = [ - "--prefix=${placeholder "out"}" - "--build=${buildPlatform.config}" - "--host=${hostPlatform.config}" - "--with-sysroot=/" - "--enable-deterministic-archives" - # depends on bison - "--disable-gprofng" - - # Turn on --enable-new-dtags by default to make the linker set - # RUNPATH instead of RPATH on binaries. This is important because - # RUNPATH can be overridden using LD_LIBRARY_PATH at runtime. - "--enable-new-dtags" - - # By default binutils searches $libdir for libraries. This brings in - # libbfd and libopcodes into a default visibility. Drop default lib - # path to force users to declare their use of these libraries. - "--with-lib-path=:" - ]; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnupatch - gnused - gnugrep - gawk - diffutils - gnutar - xz - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/ld --version - mkdir $out - ''; - - meta = with lib; { - description = "Tools for manipulating binaries (linker, assembler, etc.)"; - homepage = "https://www.gnu.org/software/binutils"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - cp ${src} binutils.tar.xz - unxz binutils.tar.xz - tar xf binutils.tar - rm binutils.tar - cd binutils-${version} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np1 -i ${f}") patches} - sed -i 's|/bin/sh|${bash}/bin/bash|' \ - missing install-sh mkinstalldirs - # see libtool's 74c8993c178a1386ea5e2363a01d919738402f30 - sed -i 's/| \$NL2SP/| sort | $NL2SP/' ltmain.sh - # alias makeinfo to true - mkdir aliases - ln -s ${coreutils}/bin/true aliases/makeinfo - export PATH="$(pwd)/aliases/:$PATH" - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export AR="tcc -ar" - export lt_cv_sys_max_cmd_len=32768 - export CFLAGS="-D__LITTLE_ENDIAN__=1" - bash ./configure ${lib.concatStringsSep " " configureFlags} - - # Build - make -j $NIX_BUILD_CORES all-libiberty all-gas all-bfd all-libctf all-zlib all-gprof - make all-ld # race condition on ld/.deps/ldwrite.Po, serialize - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/binutils/deterministic.patch b/pkgs/os-specific/linux/minimal-bootstrap/binutils/deterministic.patch deleted file mode 100644 index 736e0aca6ce1..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/binutils/deterministic.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur orig/binutils-2.23.1/ld/ldlang.c binutils-2.23.1/ld/ldlang.c ---- orig/ld/ldlang.c -+++ new/ld/ldlang.c -@@ -3095,6 +3095,8 @@ - ldfile_output_machine)) - einfo (_("%P%F:%s: can not set architecture: %E\n"), name); - -+ link_info.output_bfd->flags |= BFD_DETERMINISTIC_OUTPUT; -+ - link_info.hash = bfd_link_hash_table_create (link_info.output_bfd); - if (link_info.hash == NULL) - einfo (_("%P%F: can not create hash table: %E\n")); diff --git a/pkgs/os-specific/linux/minimal-bootstrap/bzip2/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/bzip2/default.nix deleted file mode 100644 index 05da061ac263..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/bzip2/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib -, fetchurl -, bash -, tinycc -, gnumake -, gnutar -, gzip -}: -let - pname = "bzip2"; - version = "1.0.8"; - - src = fetchurl { - url = "https://sourceware.org/pub/bzip2/bzip2-${version}.tar.gz"; - sha256 = "0s92986cv0p692icqlw1j42y9nld8zd83qwhzbqd61p1dqbh6nmb"; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnutar - gzip - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/bzip2 --help - mkdir $out - ''; - - meta = with lib; { - description = "High-quality data compression program"; - homepage = "https://www.sourceware.org/bzip2"; - license = licenses.bsdOriginal; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xzf ${src} - cd bzip2-${version} - - # Build - make \ - -j $NIX_BUILD_CORES \ - CC="tcc -B ${tinycc.libs}/lib" \ - AR="tcc -ar" \ - bzip2 bzip2recover - - # Install - make install -j $NIX_BUILD_CORES PREFIX=$out -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/coreutils/default.nix deleted file mode 100644 index 9d7480d239f2..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/default.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ lib -, fetchurl -, kaem -, tinycc -, gnumake -, gnupatch -}: -let - pname = "bootstrap-coreutils"; - version = "5.0"; - - src = fetchurl { - url = "mirror://gnu/coreutils/coreutils-${version}.tar.gz"; - sha256 = "10wq6k66i8adr4k08p0xmg87ff4ypiazvwzlmi7myib27xgffz62"; - }; - - # Thanks to the live-bootstrap project! - # See https://github.com/fosslinux/live-bootstrap/blob/a8752029f60217a5c41c548b16f5cdd2a1a0e0db/sysa/coreutils-5.0/coreutils-5.0.kaem - liveBootstrap = "https://github.com/fosslinux/live-bootstrap/raw/a8752029f60217a5c41c548b16f5cdd2a1a0e0db/sysa/coreutils-5.0"; - - makefile = fetchurl { - url = "${liveBootstrap}/mk/main.mk"; - sha256 = "0njg4xccxfqrslrmlb8ls7h6hlnfmdx42nvxwmca8flvczwrplfd"; - }; - - patches = [ - # modechange.h uses functions defined in sys/stat.h, so we need to move it to - # after sys/stat.h include. - (fetchurl { - url = "${liveBootstrap}/patches/modechange.patch"; - sha256 = "04xa4a5w2syjs3xs6qhh8kdzqavxnrxpxwyhc3qqykpk699p3ms5"; - }) - # mbstate_t is a struct that is required. However, it is not defined by mes libc. - (fetchurl { - url = "${liveBootstrap}/patches/mbstate.patch"; - sha256 = "0rz3c0sflgxjv445xs87b83i7gmjpl2l78jzp6nm3khdbpcc53vy"; - }) - # strcoll() does not exist in mes libc, change it to strcmp. - (fetchurl { - url = "${liveBootstrap}/patches/ls-strcmp.patch"; - sha256 = "0lx8rz4sxq3bvncbbr6jf0kyn5bqwlfv9gxyafp0541dld6l55p6"; - }) - # getdate.c is pre-compiled from getdate.y - # At this point we don't have bison yet and in any case getdate.y does not - # compile when generated with modern bison. - (fetchurl { - url = "${liveBootstrap}/patches/touch-getdate.patch"; - sha256 = "1xd3z57lvkj7r8vs5n0hb9cxzlyp58pji7d335snajbxzwy144ma"; - }) - # touch: add -h to change symlink timestamps, where supported - (fetchurl { - url = "${liveBootstrap}/patches/touch-dereference.patch"; - sha256 = "0wky5r3k028xwyf6g6ycwqxzc7cscgmbymncjg948vv4qxsxlfda"; - }) - # strcoll() does not exist in mes libc, change it to strcmp. - (fetchurl { - url = "${liveBootstrap}/patches/expr-strcmp.patch"; - sha256 = "19f31lfsm1iwqzvp2fyv97lmqg4730prfygz9zip58651jf739a9"; - }) - # strcoll() does not exist in mes libc, change it to strcmp. - # hard_LC_COLLATE is used but not declared when HAVE_SETLOCALE is unset. - (fetchurl { - url = "${liveBootstrap}/patches/sort-locale.patch"; - sha256 = "0bdch18mpyyxyl6gyqfs0wb4pap9flr11izqdyxccx1hhz0a2i6c"; - }) - # don't assume fopen cannot return stdin or stdout. - (fetchurl { - url = "${liveBootstrap}/patches/uniq-fopen.patch"; - sha256 = "0qs6shyxl9j4h34v5j5sgpxrr4gjfljd2hxzw416ghwc3xzv63fp"; - }) - ]; -in -kaem.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnupatch - ]; - - meta = with lib; { - description = "The GNU Core Utilities"; - homepage = "https://www.gnu.org/software/coreutils"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - ungz --file ${src} --output coreutils.tar - untar --file coreutils.tar - rm coreutils.tar - cd coreutils-${version} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np0 -i ${f}") patches} - - # Configure - catm config.h - cp lib/fnmatch_.h lib/fnmatch.h - cp lib/ftw_.h lib/ftw.h - cp lib/search_.h lib/search.h - rm src/dircolors.h - - # Build - make -f ${makefile} \ - CC="tcc -B ${tinycc.libs}/lib" \ - PREFIX=''${out} - - # Check - ./src/echo "Hello coreutils!" - - # Install - ./src/mkdir -p ''${out}/bin - make -f ${makefile} install PREFIX=''${out} -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/musl.nix b/pkgs/os-specific/linux/minimal-bootstrap/coreutils/musl.nix deleted file mode 100644 index 14584e0a7e6d..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/musl.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumake -, gnugrep -, gnused -, gawk -, gnutar -, gzip -}: -let - pname = "bootstrap-coreutils-musl"; - version = "9.4"; - - src = fetchurl { - url = "mirror://gnu/coreutils/coreutils-${version}.tar.gz"; - hash = "sha256-X2ANkJOXOwr+JTk9m8GMRPIjJlf0yg2V6jHHAutmtzk="; - }; - - configureFlags = [ - "--prefix=${placeholder "out"}" - "--build=${buildPlatform.config}" - "--host=${hostPlatform.config}" - # musl 1.1.x doesn't use 64bit time_t - "--disable-year2038" - # libstdbuf.so fails in static builds - "--enable-no-install-program=stdbuf" - ]; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnused - gnugrep - gawk - gnutar - gzip - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/cat --version - mkdir $out - ''; - - meta = with lib; { - description = "The GNU Core Utilities"; - homepage = "https://www.gnu.org/software/coreutils"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xzf ${src} - cd coreutils-${version} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export LD=tcc - bash ./configure ${lib.concatStringsSep " " configureFlags} - - # Build - make -j $NIX_BUILD_CORES AR="tcc -ar" MAKEINFO="true" - - # Install - make -j $NIX_BUILD_CORES install MAKEINFO="true" -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/default.nix deleted file mode 100644 index d344b85a4d64..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/default.nix +++ /dev/null @@ -1,229 +0,0 @@ -{ lib -, config -, buildPlatform -, hostPlatform -, fetchurl -, checkMeta -}: - -lib.makeScope - # Prevent using top-level attrs to protect against introducing dependency on - # non-bootstrap packages by mistake. Any top-level inputs must be explicitly - # declared here. - (extra: lib.callPackageWith ({ inherit lib config buildPlatform hostPlatform fetchurl checkMeta; } // extra)) - (self: with self; { - - bash_2_05 = callPackage ./bash/2.nix { tinycc = tinycc-mes; }; - - bash = callPackage ./bash { - bootBash = bash_2_05; - tinycc = tinycc-musl; - coreutils = coreutils-musl; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - }; - - binutils = callPackage ./binutils { - tinycc = tinycc-musl; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - }; - - bzip2 = callPackage ./bzip2 { - tinycc = tinycc-musl; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - }; - - coreutils = callPackage ./coreutils { tinycc = tinycc-mes; }; - coreutils-musl = callPackage ./coreutils/musl.nix { - bash = bash_2_05; - tinycc = tinycc-musl; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - }; - - diffutils = callPackage ./diffutils { - bash = bash_2_05; - tinycc = tinycc-musl; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - }; - - findutils = callPackage ./findutils { - tinycc = tinycc-musl; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - }; - - gawk-mes = callPackage ./gawk/mes.nix { - bash = bash_2_05; - tinycc = tinycc-mes; - gnused = gnused-mes; - }; - - gawk = callPackage ./gawk { - bash = bash_2_05; - tinycc = tinycc-musl; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - bootGawk = gawk-mes; - }; - - gcc46 = callPackage ./gcc/4.6.nix { - tinycc = tinycc-musl; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - # FIXME: not sure why new gawk doesn't work - gawk = gawk-mes; - }; - gcc46-cxx = callPackage ./gcc/4.6.cxx.nix { - gcc = gcc46; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - # FIXME: not sure why new gawk doesn't work - gawk = gawk-mes; - }; - - gcc8 = callPackage ./gcc/8.nix { - gcc = gcc46-cxx; - gnumake = gnumake-musl; - gnutar = gnutar-latest; - # FIXME: not sure why new gawk doesn't work - gawk = gawk-mes; - }; - - gcc-latest = callPackage ./gcc/latest.nix { - gcc = gcc8; - gnumake = gnumake-musl; - gnutar = gnutar-latest; - # FIXME: not sure why new gawk doesn't work - gawk = gawk-mes; - }; - - gnugrep = callPackage ./gnugrep { - bash = bash_2_05; - tinycc = tinycc-mes; - }; - - gnumake = callPackage ./gnumake { tinycc = tinycc-mes; }; - - gnumake-musl = callPackage ./gnumake/musl.nix { - bash = bash_2_05; - tinycc = tinycc-musl; - gawk = gawk-mes; - gnumakeBoot = gnumake; - }; - - gnupatch = callPackage ./gnupatch { tinycc = tinycc-mes; }; - - gnused = callPackage ./gnused { - bash = bash_2_05; - tinycc = tinycc-musl; - gnused = gnused-mes; - }; - gnused-mes = callPackage ./gnused/mes.nix { - bash = bash_2_05; - tinycc = tinycc-mes; - }; - - gnutar = callPackage ./gnutar/mes.nix { - bash = bash_2_05; - tinycc = tinycc-mes; - gnused = gnused-mes; - }; - - gnutar-musl = callPackage ./gnutar/musl.nix { - bash = bash_2_05; - tinycc = tinycc-musl; - gnused = gnused-mes; - }; - - # FIXME: better package naming scheme - gnutar-latest = callPackage ./gnutar/latest.nix { - gcc = gcc46; - gnumake = gnumake-musl; - gnutarBoot = gnutar-musl; - }; - - gzip = callPackage ./gzip { - bash = bash_2_05; - tinycc = tinycc-mes; - gnused = gnused-mes; - }; - - heirloom = callPackage ./heirloom { - bash = bash_2_05; - tinycc = tinycc-mes; - }; - - heirloom-devtools = callPackage ./heirloom-devtools { tinycc = tinycc-mes; }; - - linux-headers = callPackage ./linux-headers { bash = bash_2_05; }; - - ln-boot = callPackage ./ln-boot { }; - - mes = callPackage ./mes { }; - mes-libc = callPackage ./mes/libc.nix { }; - - musl11 = callPackage ./musl/1.1.nix { - bash = bash_2_05; - tinycc = tinycc-mes; - gnused = gnused-mes; - }; - - musl = callPackage ./musl { - gcc = gcc46; - gnumake = gnumake-musl; - }; - - stage0-posix = callPackage ./stage0-posix { }; - - inherit (self.stage0-posix) kaem m2libc mescc-tools mescc-tools-extra; - - tinycc-bootstrappable = lib.recurseIntoAttrs (callPackage ./tinycc/bootstrappable.nix { }); - tinycc-mes = lib.recurseIntoAttrs (callPackage ./tinycc/mes.nix { }); - tinycc-musl = lib.recurseIntoAttrs (callPackage ./tinycc/musl.nix { - bash = bash_2_05; - musl = musl11; - }); - - xz = callPackage ./xz { - bash = bash_2_05; - tinycc = tinycc-musl; - gnumake = gnumake-musl; - gnutar = gnutar-musl; - }; - - inherit (callPackage ./utils.nix { }) derivationWithMeta writeTextFile writeText; - - test = kaem.runCommand "minimal-bootstrap-test" {} '' - echo ${bash.tests.get-version} - echo ${bash_2_05.tests.get-version} - echo ${binutils.tests.get-version} - echo ${bzip2.tests.get-version} - echo ${coreutils-musl.tests.get-version} - echo ${diffutils.tests.get-version} - echo ${findutils.tests.get-version} - echo ${gawk-mes.tests.get-version} - echo ${gawk.tests.get-version} - echo ${gcc46.tests.get-version} - echo ${gcc46-cxx.tests.hello-world} - echo ${gcc8.tests.hello-world} - echo ${gcc-latest.tests.hello-world} - echo ${gnugrep.tests.get-version} - echo ${gnused.tests.get-version} - echo ${gnused-mes.tests.get-version} - echo ${gnutar.tests.get-version} - echo ${gnutar-musl.tests.get-version} - echo ${gnutar-latest.tests.get-version} - echo ${gzip.tests.get-version} - echo ${heirloom.tests.get-version} - echo ${mes.compiler.tests.get-version} - echo ${musl.tests.hello-world} - echo ${tinycc-mes.compiler.tests.chain} - echo ${tinycc-musl.compiler.tests.hello-world} - echo ${xz.tests.get-version} - mkdir ''${out} - ''; - }) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/diffutils/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/diffutils/default.nix deleted file mode 100644 index 24cd643b3497..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/diffutils/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumake -, gnugrep -, gnused -, gawk -, gnutar -, xz -}: -let - pname = "diffutils"; - # last version that can be built by tinycc-musl 0.9.27 - version = "3.8"; - - src = fetchurl { - url = "mirror://gnu/diffutils/diffutils-${version}.tar.xz"; - hash = "sha256-pr3X0bMSZtEcT03mwbdI1GB6sCMa9RiPwlM9CuJDj+w="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnused - gnugrep - gawk - gnutar - xz - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/diff --version - mkdir $out - ''; - - meta = with lib; { - description = "Commands for showing the differences between files (diff, cmp, etc.)"; - homepage = "https://www.gnu.org/software/diffutils/diffutils.html"; - license = licenses.gpl3Only; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - cp ${src} diffutils.tar.xz - unxz diffutils.tar.xz - tar xf diffutils.tar - rm diffutils.tar - cd diffutils-${version} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export LD=tcc - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} - - # Build - make -j $NIX_BUILD_CORES AR="tcc -ar" - - # Install - make -j $NIX_BUILD_CORES install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/findutils/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/findutils/default.nix deleted file mode 100644 index 97418d218fb9..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/findutils/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumake -, gnugrep -, gnused -, gawk -, gnutar -, xz -}: -let - pname = "findutils"; - version = "4.9.0"; - - src = fetchurl { - url = "mirror://gnu/findutils/findutils-${version}.tar.xz"; - hash = "sha256-or+4wJ1DZ3DtxZ9Q+kg+eFsWGjt7nVR1c8sIBl/UYv4="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnused - gnugrep - gawk - gnutar - xz - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/find --version - mkdir $out - ''; - - meta = with lib; { - description = "GNU Find Utilities, the basic directory searching utilities of the GNU operating system"; - homepage = "https://www.gnu.org/software/findutils"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - cp ${src} findutils.tar.xz - unxz findutils.tar.xz - tar xf findutils.tar - rm findutils.tar - cd findutils-${version} - - # Patch - # configure fails to accurately detect PATH_MAX support - sed -i 's/chdir_long/chdir/' gl/lib/save-cwd.c - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export AR="tcc -ar" - export LD=tcc - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} - - # Build - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gawk/common.nix b/pkgs/os-specific/linux/minimal-bootstrap/gawk/common.nix deleted file mode 100644 index d95c66d86337..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gawk/common.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib }: - -{ - meta = with lib; { - description = "GNU implementation of the Awk programming language"; - homepage = "https://www.gnu.org/software/gawk"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gawk/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gawk/default.nix deleted file mode 100644 index 879b98bf00c5..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gawk/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumake -, gnugrep -, gnused -, gnutar -, gzip -, bootGawk -}: -let - inherit (import ./common.nix { inherit lib; }) meta; - pname = "gawk"; - version = "5.2.2"; - - src = fetchurl { - url = "mirror://gnu/gawk/gawk-${version}.tar.gz"; - hash = "sha256-lFrvfM/xAfILIqEIArwAXplKsrjqPnJMwaGXxi9B9lA="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version meta; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnused - gnugrep - gnutar - gzip - bootGawk - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/awk --version - mkdir $out - ''; -} '' - # Unpack - tar xzf ${src} - cd gawk-${version} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export AR="tcc -ar" - export LD=tcc - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} - - # Build - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gawk/mes.nix b/pkgs/os-specific/linux/minimal-bootstrap/gawk/mes.nix deleted file mode 100644 index c14399309306..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gawk/mes.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumake -, gnupatch -, gnused -, gnugrep -}: -let - inherit (import ./common.nix { inherit lib; }) meta; - pname = "gawk-mes"; - # >=3.1.x is incompatible with mes-libc - version = "3.0.6"; - - src = fetchurl { - url = "mirror://gnu/gawk/gawk-${version}.tar.gz"; - sha256 = "1z4bibjm7ldvjwq3hmyifyb429rs2d9bdwkvs0r171vv1khpdwmb"; - }; - - patches = [ - # for reproducibility don't generate date stamp - ./no-stamp.patch - ]; -in -bash.runCommand "${pname}-${version}" { - inherit pname version meta; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnupatch - gnused - gnugrep - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/awk --version - mkdir $out - ''; -} '' - # Unpack - ungz --file ${src} --output gawk.tar - untar --file gawk.tar - rm gawk.tar - cd gawk-${version} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np0 -i ${f}") patches} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export ac_cv_func_getpgrp_void=yes - export ac_cv_func_tzset=yes - bash ./configure \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --disable-nls \ - --prefix=$out - - # Build - make gawk - - # Install - install -D gawk $out/bin/gawk - ln -s gawk $out/bin/awk -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gawk/no-stamp.patch b/pkgs/os-specific/linux/minimal-bootstrap/gawk/no-stamp.patch deleted file mode 100644 index 74af25ba2106..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gawk/no-stamp.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- configure -+++ configure -@@ -3676,7 +3676,6 @@ cat >> $CONFIG_STATUS <<EOF - - EOF - cat >> $CONFIG_STATUS <<\EOF --date > stamp-h - exit 0 - EOF - chmod +x $CONFIG_STATUS diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix deleted file mode 100644 index 277c5e82cc3d..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix +++ /dev/null @@ -1,140 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, coreutils -, gcc -, musl -, binutils -, gnumake -, gnupatch -, gnused -, gnugrep -, gawk -, diffutils -, findutils -, gnutar -, gzip -}: -let - pname = "gcc-cxx"; - version = "4.6.4"; - - src = fetchurl { - url = "mirror://gnu/gcc/gcc-${version}/gcc-core-${version}.tar.gz"; - sha256 = "173kdb188qg79pcz073cj9967rs2vzanyjdjyxy9v0xb0p5sad75"; - }; - - ccSrc = fetchurl { - url = "mirror://gnu/gcc/gcc-${version}/gcc-g++-${version}.tar.gz"; - sha256 = "1fqqk5zkmdg4vmqzdmip9i42q6b82i3f6yc0n86n9021cr7ms2k9"; - }; - - gmpVersion = "4.3.2"; - gmp = fetchurl { - url = "mirror://gnu/gmp/gmp-${gmpVersion}.tar.gz"; - sha256 = "15rwq54fi3s11izas6g985y9jklm3xprfsmym3v1g6xr84bavqvv"; - }; - - mpfrVersion = "2.4.2"; - mpfr = fetchurl { - url = "mirror://gnu/mpfr/mpfr-${mpfrVersion}.tar.gz"; - sha256 = "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94"; - }; - - mpcVersion = "1.0.3"; - mpc = fetchurl { - url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; - sha256 = "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1"; - }; - - patches = [ - # Remove hardcoded NATIVE_SYSTEM_HEADER_DIR - ./no-system-headers.patch - ]; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - gcc - binutils - gnumake - gnupatch - gnused - gnugrep - gawk - diffutils - findutils - gnutar - gzip - ]; - - passthru.tests.hello-world = result: - bash.runCommand "${pname}-simple-program-${version}" { - nativeBuildInputs = [ binutils musl result ]; - } '' - cat <<EOF >> test.c - #include <stdio.h> - int main() { - printf("Hello World!\n"); - return 0; - } - EOF - musl-gcc -o test test.c - ./test - mkdir $out - ''; - - meta = with lib; { - description = "GNU Compiler Collection, version ${version}"; - homepage = "https://gcc.gnu.org"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xzf ${src} - tar xzf ${ccSrc} - tar xzf ${gmp} - tar xzf ${mpfr} - tar xzf ${mpc} - cd gcc-${version} - - ln -s ../gmp-${gmpVersion} gmp - ln -s ../mpfr-${mpfrVersion} mpfr - ln -s ../mpc-${mpcVersion} mpc - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np1 -i ${f}") patches} - # doesn't recognise musl - sed -i 's|"os/gnu-linux"|"os/generic"|' libstdc++-v3/configure.host - - # Configure - export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export C_INCLUDE_PATH="${musl}/include" - export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH" - export LIBRARY_PATH="${musl}/lib" - - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --with-native-system-header-dir=${musl}/include \ - --with-build-sysroot=${musl} \ - --enable-languages=c,c++ \ - --disable-bootstrap \ - --disable-libmudflap \ - --disable-libstdcxx-pch \ - --disable-lto \ - --disable-multilib - - # Build - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix deleted file mode 100644 index 8b56dff58829..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix +++ /dev/null @@ -1,145 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, binutils -, gnumake -, gnupatch -, gnused -, gnugrep -, gawk -, diffutils -, findutils -, gnutar -, gzip -}: -let - pname = "gcc"; - version = "4.6.4"; - - src = fetchurl { - url = "mirror://gnu/gcc/gcc-${version}/gcc-core-${version}.tar.gz"; - sha256 = "173kdb188qg79pcz073cj9967rs2vzanyjdjyxy9v0xb0p5sad75"; - }; - - ccSrc = fetchurl { - url = "mirror://gnu/gcc/gcc-${version}/gcc-g++-${version}.tar.gz"; - sha256 = "1fqqk5zkmdg4vmqzdmip9i42q6b82i3f6yc0n86n9021cr7ms2k9"; - }; - - gmpVersion = "4.3.2"; - gmp = fetchurl { - url = "mirror://gnu/gmp/gmp-${gmpVersion}.tar.gz"; - sha256 = "15rwq54fi3s11izas6g985y9jklm3xprfsmym3v1g6xr84bavqvv"; - }; - - mpfrVersion = "2.4.2"; - mpfr = fetchurl { - url = "mirror://gnu/mpfr/mpfr-${mpfrVersion}.tar.gz"; - sha256 = "0dxn4904dra50xa22hi047lj8kkpr41d6vb9sd4grca880c7wv94"; - }; - - mpcVersion = "1.0.3"; - mpc = fetchurl { - url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; - sha256 = "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1"; - }; - - patches = [ - # Remove hardcoded NATIVE_SYSTEM_HEADER_DIR - ./no-system-headers.patch - ]; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - binutils - gnumake - gnupatch - gnused - gnugrep - gawk - diffutils - findutils - gnutar - gzip - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/gcc --version - mkdir $out - ''; - - meta = with lib; { - description = "GNU Compiler Collection, version ${version}"; - homepage = "https://gcc.gnu.org"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xzf ${src} - tar xzf ${ccSrc} - tar xzf ${gmp} - tar xzf ${mpfr} - tar xzf ${mpc} - cd gcc-${version} - - ln -s ../gmp-${gmpVersion} gmp - ln -s ../mpfr-${mpfrVersion} mpfr - ln -s ../mpc-${mpcVersion} mpc - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np1 -i ${f}") patches} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export C_INCLUDE_PATH="${tinycc.libs}/include:$(pwd)/mpfr/src" - export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH" - - # Avoid "Link tests are not allowed after GCC_NO_EXECUTABLES" - export lt_cv_shlibpath_overrides_runpath=yes - export ac_cv_func_memcpy=yes - export ac_cv_func_strerror=yes - - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --with-native-system-header-dir=${tinycc.libs}/include \ - --with-build-sysroot=${tinycc.libs}/include \ - --disable-bootstrap \ - --disable-decimal-float \ - --disable-libatomic \ - --disable-libcilkrts \ - --disable-libgomp \ - --disable-libitm \ - --disable-libmudflap \ - --disable-libquadmath \ - --disable-libsanitizer \ - --disable-libssp \ - --disable-libvtv \ - --disable-lto \ - --disable-lto-plugin \ - --disable-multilib \ - --disable-plugin \ - --disable-threads \ - --enable-languages=c \ - --enable-static \ - --disable-shared \ - --enable-threads=single \ - --disable-libstdcxx-pch \ - --disable-build-with-cxx - - # Build - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/8.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/8.nix deleted file mode 100644 index ea9fdaf8854a..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/8.nix +++ /dev/null @@ -1,141 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, coreutils -, gcc -, musl -, binutils -, gnumake -, gnused -, gnugrep -, gawk -, diffutils -, findutils -, gnutar -, gzip -, bzip2 -, xz -}: -let - pname = "gcc"; - version = "8.5.0"; - - src = fetchurl { - url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz"; - hash = "sha256-0wiEGlEbuDCmEAOXsAQtskzhH2Qtq26m7kSELlMl7VA="; - }; - - # last version to compile with gcc 4.6 - gmpVersion = "6.2.1"; - gmp = fetchurl { - url = "mirror://gnu/gmp/gmp-${gmpVersion}.tar.xz"; - hash = "sha256-/UgpkSzd0S+EGBw0Ucx1K+IkZD6H+sSXtp7d2txJtPI="; - }; - - mpfrVersion = "4.2.1"; - mpfr = fetchurl { - url = "mirror://gnu/mpfr/mpfr-${mpfrVersion}.tar.xz"; - hash = "sha256-J3gHNTpnJpeJlpRa8T5Sgp46vXqaW3+yeTiU4Y8fy7I="; - }; - - mpcVersion = "1.3.1"; - mpc = fetchurl { - url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; - hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; - }; - - islVersion = "0.24"; - isl = fetchurl { - url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2"; - hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - gcc - binutils - gnumake - gnused - gnugrep - gawk - diffutils - findutils - gnutar - gzip - bzip2 - xz - ]; - - passthru.tests.hello-world = result: - bash.runCommand "${pname}-simple-program-${version}" { - nativeBuildInputs = [ binutils musl result ]; - } '' - cat <<EOF >> test.c - #include <stdio.h> - int main() { - printf("Hello World!\n"); - return 0; - } - EOF - musl-gcc -o test test.c - ./test - mkdir $out - ''; - - meta = with lib; { - description = "GNU Compiler Collection, version ${version}"; - homepage = "https://gcc.gnu.org"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xf ${src} - tar xf ${gmp} - tar xf ${mpfr} - tar xf ${mpc} - tar xf ${isl} - cd gcc-${version} - - ln -s ../gmp-${gmpVersion} gmp - ln -s ../mpfr-${mpfrVersion} mpfr - ln -s ../mpc-${mpcVersion} mpc - ln -s ../isl-${islVersion} isl - - # Patch - # doesn't recognise musl - sed -i 's|"os/gnu-linux"|"os/generic"|' libstdc++-v3/configure.host - - # Configure - export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export C_INCLUDE_PATH="${musl}/include" - export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH" - export LIBRARY_PATH="${musl}/lib" - - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --with-native-system-header-dir=/include \ - --with-sysroot=${musl} \ - --enable-languages=c,c++ \ - --disable-bootstrap \ - --disable-libmpx \ - --disable-libsanitizer \ - --disable-lto \ - --disable-multilib \ - --disable-plugin - - # Build - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install-strip -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix deleted file mode 100644 index fba3b731a004..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix +++ /dev/null @@ -1,137 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, coreutils -, gcc -, musl -, binutils -, gnumake -, gnused -, gnugrep -, gawk -, diffutils -, findutils -, gnutar -, gzip -, bzip2 -, xz -}: -let - pname = "gcc"; - version = "13.2.0"; - - src = fetchurl { - url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz"; - hash = "sha256-4nXnZEKmBnNBon8Exca4PYYTFEAEwEE1KIY9xrXHQ9o="; - }; - - gmpVersion = "6.3.0"; - gmp = fetchurl { - url = "mirror://gnu/gmp/gmp-${gmpVersion}.tar.xz"; - hash = "sha256-o8K4AgG4nmhhb0rTC8Zq7kknw85Q4zkpyoGdXENTiJg="; - }; - - mpfrVersion = "4.2.1"; - mpfr = fetchurl { - url = "mirror://gnu/mpfr/mpfr-${mpfrVersion}.tar.xz"; - hash = "sha256-J3gHNTpnJpeJlpRa8T5Sgp46vXqaW3+yeTiU4Y8fy7I="; - }; - - mpcVersion = "1.3.1"; - mpc = fetchurl { - url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; - hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; - }; - - islVersion = "0.24"; - isl = fetchurl { - url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2"; - hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - gcc - binutils - gnumake - gnused - gnugrep - gawk - diffutils - findutils - gnutar - gzip - bzip2 - xz - ]; - - passthru.tests.hello-world = result: - bash.runCommand "${pname}-simple-program-${version}" { - nativeBuildInputs = [ binutils musl result ]; - } '' - cat <<EOF >> test.c - #include <stdio.h> - int main() { - printf("Hello World!\n"); - return 0; - } - EOF - musl-gcc -o test test.c - ./test - mkdir $out - ''; - - meta = with lib; { - description = "GNU Compiler Collection, version ${version}"; - homepage = "https://gcc.gnu.org"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xf ${src} - tar xf ${gmp} - tar xf ${mpfr} - tar xf ${mpc} - tar xf ${isl} - cd gcc-${version} - - ln -s ../gmp-${gmpVersion} gmp - ln -s ../mpfr-${mpfrVersion} mpfr - ln -s ../mpc-${mpcVersion} mpc - ln -s ../isl-${islVersion} isl - - # Patch - # force musl even if host triple is gnu - sed -i 's|"os/gnu-linux"|"os/generic"|' libstdc++-v3/configure.host - - # Configure - export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export LIBRARY_PATH="${musl}/lib" - - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --with-native-system-header-dir=/include \ - --with-sysroot=${musl} \ - --enable-languages=c,c++ \ - --disable-bootstrap \ - --disable-libsanitizer \ - --disable-lto \ - --disable-multilib \ - --disable-plugin - - # Build - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install-strip -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/no-system-headers.patch b/pkgs/os-specific/linux/minimal-bootstrap/gcc/no-system-headers.patch deleted file mode 100644 index 318553bf916b..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/no-system-headers.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -440,7 +440,7 @@ LINKER_PLUGIN_API_H = $(srcdir)/../include/plugin-api.h - LTO_SYMTAB_H = $(srcdir)/../include/lto-symtab.h - - # Default native SYSTEM_HEADER_DIR, to be overridden by targets. --NATIVE_SYSTEM_HEADER_DIR = /usr/include -+# NATIVE_SYSTEM_HEADER_DIR = /usr/include - # Default cross SYSTEM_HEADER_DIR, to be overridden by targets. - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@ - diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnugrep/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnugrep/default.nix deleted file mode 100644 index b2899961dfa2..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnugrep/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, fetchurl -, bash -, tinycc -, gnumake -}: -let - pname = "gnugrep"; - version = "2.4"; - - src = fetchurl { - url = "mirror://gnu/grep/grep-${version}.tar.gz"; - sha256 = "05iayw5sfclc476vpviz67hdy03na0pz2kb5csa50232nfx34853"; - }; - - # Thanks to the live-bootstrap project! - # See https://github.com/fosslinux/live-bootstrap/blob/1bc4296091c51f53a5598050c8956d16e945b0f5/sysa/grep-2.4 - makefile = fetchurl { - url = "https://github.com/fosslinux/live-bootstrap/raw/1bc4296091c51f53a5598050c8956d16e945b0f5/sysa/grep-2.4/mk/main.mk"; - sha256 = "08an9ljlqry3p15w28hahm6swnd3jxizsd2188przvvsj093j91k"; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/grep --version - mkdir ''${out} - ''; - - meta = with lib; { - description = "GNU implementation of the Unix grep command"; - homepage = "https://www.gnu.org/software/grep"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - mainProgram = "grep"; - platforms = platforms.unix; - }; -} '' - # Unpack - ungz --file ${src} --output grep.tar - untar --file grep.tar - rm grep.tar - cd grep-${version} - - # Configure - cp ${makefile} Makefile - - # Build - make CC="tcc -B ${tinycc.libs}/lib" - - # Install - make install PREFIX=$out -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/0001-No-impure-bin-sh.patch b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/0001-No-impure-bin-sh.patch deleted file mode 100644 index 58ee2d6fe09b..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/0001-No-impure-bin-sh.patch +++ /dev/null @@ -1,35 +0,0 @@ -From e00a5257a6ca5fedbf68b09eee7df3502971a057 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io> -Date: Sat, 24 Apr 2021 10:11:40 +0200 -Subject: [PATCH 1/2] No impure bin sh - -default_shell is used to populuate default shell used to execute jobs. -Unless SHELL is set to a different value this would be /bin/sh. -Our stdenv provides sh in form of bash anyway. Having this value not -hard-coded has some advantages: - -- It would ensure that on all systems it uses sh from its PATH rather - than /bin/sh, which helps as different systems might have different - shells there (bash vs. dash) -- In the past I had issues with LD_PRELOAD with BEAR, where /bin/sh - used a different glibc than BEAR which came from my development shell. ---- - src/job.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/job.c b/src/job.c -index ae1f18b..6b4ddb3 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -77,7 +77,7 @@ char * vms_strsignal (int status); - - #else - --const char *default_shell = "/bin/sh"; -+const char *default_shell = "sh"; - int batch_mode_shell = 0; - - #endif --- -2.31.1 - diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/0002-remove-impure-dirs.patch b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/0002-remove-impure-dirs.patch deleted file mode 100644 index e62aee7d9993..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/0002-remove-impure-dirs.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 795d63d3c8b5c0dbb7e544954f75507b371b7228 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io> -Date: Sat, 24 Apr 2021 10:20:16 +0200 -Subject: [PATCH 2/2] remove impure dirs - ---- - src/read.c | 3 --- - src/remake.c | 2 -- - 2 files changed, 5 deletions(-) - -diff --git a/src/read.c b/src/read.c -index fa197fb..defacfb 100644 ---- a/src/read.c -+++ b/src/read.c -@@ -109,9 +109,6 @@ static const char *default_include_directories[] = - #endif - INCLUDEDIR, - #ifndef _AMIGA -- "/usr/gnu/include", -- "/usr/local/include", -- "/usr/include", - #endif - 0 - }; -diff --git a/src/remake.c b/src/remake.c -index fb237c5..94bff7d 100644 ---- a/src/remake.c -+++ b/src/remake.c -@@ -1601,8 +1601,6 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr) - static const char *dirs[] = - { - #ifndef _AMIGA -- "/lib", -- "/usr/lib", - #endif - #if defined(WINDOWS32) && !defined(LIBDIR) - /* --- -2.31.1 - diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/0003-tinycc-support.patch b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/0003-tinycc-support.patch deleted file mode 100644 index e2e3f3395153..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/0003-tinycc-support.patch +++ /dev/null @@ -1,58 +0,0 @@ -diff --git a/src/dir.c b/src/dir.c -index 3e94b98..cfaa6a2 100644 ---- a/src/dir.c -+++ b/src/dir.c -@@ -1331,10 +1331,9 @@ local_stat (const char *path, struct stat *buf) - - /* Similarly for lstat. */ - #if !defined(lstat) && !defined(WINDOWS32) || defined(VMS) --# ifndef VMS --# ifndef HAVE_SYS_STAT_H -+// mes-libc implements but does not declare lstat -+# if (!defined(VMS) && !defined(HAVE_SYS_STAT_H)) || defined(__TINYC__) - int lstat (const char *path, struct stat *sbuf); --# endif - # else - /* We are done with the fake lstat. Go back to the real lstat */ - # ifdef lstat -diff --git a/src/job.c b/src/job.c -index ea88561..8388a82 100644 ---- a/src/job.c -+++ b/src/job.c -@@ -2052,7 +2052,8 @@ job_next_command (struct child *child) - static int - load_too_high (void) - { --#if defined(__MSDOS__) || defined(VMS) || defined(_AMIGA) || defined(__riscos__) -+// mes-libc does not support getloadavg -+#if defined(__MSDOS__) || defined(VMS) || defined(_AMIGA) || defined(__riscos__) || defined (__TINYC__) - return 1; - #else - static double last_sec; -diff --git a/src/main.c b/src/main.c -index a9d3a64..664d40f 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -2770,7 +2770,7 @@ main (int argc, char **argv, char **envp) - char *b = alloca (40); - sprintf (b, "MAKE_RESTARTS=%s%u", - OUTPUT_IS_TRACED () ? "-" : "", restarts); -- putenv (b); -+ // mes-libc does not support putenv - } - - fflush (stdout); -diff --git a/src/misc.c b/src/misc.c -index eb14f40..bffca82 100644 ---- a/src/misc.c -+++ b/src/misc.c -@@ -653,7 +653,8 @@ get_tmppath () - - # ifdef HAVE_MKTEMP - path = get_tmptemplate (); -- if (*mktemp (path) == '\0') -+ // tinycc: "src/misc.c:656: error: pointer expected" -+ if (!strcmp(mktemp (path), "")) - { - OSS (error, NILF, - _("cannot generate temp path from %s: %s"), path, strerror (errno)); diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/default.nix deleted file mode 100644 index 823d314f2802..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/default.nix +++ /dev/null @@ -1,190 +0,0 @@ -{ lib -, fetchurl -, kaem -, tinycc -, gnupatch -}: -let - pname = "gnumake"; - version = "4.4.1"; - - src = fetchurl { - url = "mirror://gnu/make/make-${version}.tar.gz"; - sha256 = "1cwgcmwdn7gqn5da2ia91gkyiqs9birr10sy5ykpkaxzcwfzn5nx"; - }; - - patches = [ - # Replaces /bin/sh with sh, see patch file for reasoning - ./0001-No-impure-bin-sh.patch - # Purity: don't look for library dependencies (of the form `-lfoo') in /lib - # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for - # included Makefiles, don't look in /usr/include and friends. - ./0002-remove-impure-dirs.patch - # Fixes for tinycc. See comments in patch file for reasoning - ./0003-tinycc-support.patch - ]; - - CFLAGS = [ - "-I./src" - "-I./lib" - "-DHAVE_CONFIG_H" - "-DMAKE_MAINTAINER_MODE" - "-DLIBDIR=\\\"${placeholder "out"}/lib\\\"" - "-DLOCALEDIR=\\\"/fake-locale\\\"" - "-DPOSIX=1" - # mes-libc doesn't implement osync_* methods - "-DNO_OUTPUT_SYNC=1" - # mes-libc doesn't define O_TMPFILE - "-DO_TMPFILE=020000000" - ] ++ config; - - /* - Maintenance notes: - - Generated by - ./configure \ - --build i686-pc-linux-gnu \ - --host i686-pc-linux-gnu \ - CC="${tinycc.compiler}/bin/tcc -B ${tinycc.libs}/lib" \ - ac_cv_func_dup=no - - `ac_cv_func_dup` disabled as mes-libc doesn't implement tmpfile() - - The output src/config.h was then manually filtered, removing definitions that - didn't have uses in the source code - */ - config = [ - "-DFILE_TIMESTAMP_HI_RES=0" - "-DHAVE_ALLOCA" - "-DHAVE_ALLOCA_H" - "-DHAVE_ATEXIT" - "-DHAVE_DECL_BSD_SIGNAL=0" - "-DHAVE_DECL_GETLOADAVG=0" - "-DHAVE_DECL_SYS_SIGLIST=0" - "-DHAVE_DECL__SYS_SIGLIST=0" - "-DHAVE_DECL___SYS_SIGLIST=0" - "-DHAVE_DIRENT_H" - "-DHAVE_DUP2" - "-DHAVE_FCNTL_H" - "-DHAVE_FDOPEN" - "-DHAVE_GETCWD" - "-DHAVE_GETTIMEOFDAY" - "-DHAVE_INTTYPES_H" - "-DHAVE_ISATTY" - "-DHAVE_LIMITS_H" - "-DHAVE_LOCALE_H" - "-DHAVE_MEMORY_H" - "-DHAVE_MKTEMP" - "-DHAVE_SA_RESTART" - "-DHAVE_SETVBUF" - "-DHAVE_SIGACTION" - "-DHAVE_SIGSETMASK" - "-DHAVE_STDINT_H" - "-DHAVE_STDLIB_H" - "-DHAVE_STRDUP" - "-DHAVE_STRERROR" - "-DHAVE_STRINGS_H" - "-DHAVE_STRING_H" - "-DHAVE_STRTOLL" - "-DHAVE_SYS_FILE_H" - "-DHAVE_SYS_PARAM_H" - "-DHAVE_SYS_RESOURCE_H" - "-DHAVE_SYS_SELECT_H" - "-DHAVE_SYS_STAT_H" - "-DHAVE_SYS_TIMEB_H" - "-DHAVE_SYS_TIME_H" - "-DHAVE_SYS_WAIT_H" - "-DHAVE_TTYNAME" - "-DHAVE_UMASK" - "-DHAVE_UNISTD_H" - "-DHAVE_WAITPID" - "-DMAKE_JOBSERVER" - "-DMAKE_SYMLINKS" - "-DPATH_SEPARATOR_CHAR=':'" - "-DSCCS_GET=\\\"get\\\"" - "-DSTDC_HEADERS" - "-Dsig_atomic_t=int" - "-Dvfork=fork" - ]; - - # Maintenance note: list of source files derived from Basic.mk - make_SOURCES = [ - "src/ar.c" - "src/arscan.c" - "src/commands.c" - "src/default.c" - "src/dir.c" - "src/expand.c" - "src/file.c" - "src/function.c" - "src/getopt.c" - "src/getopt1.c" - "src/guile.c" - "src/hash.c" - "src/implicit.c" - "src/job.c" - "src/load.c" - "src/loadapi.c" - "src/main.c" - "src/misc.c" - "src/output.c" - "src/read.c" - "src/remake.c" - "src/rule.c" - "src/shuffle.c" - "src/signame.c" - "src/strcache.c" - "src/variable.c" - "src/version.c" - "src/vpath.c" - ]; - glob_SOURCES = [ "lib/fnmatch.c" "lib/glob.c" ]; - remote_SOURCES = [ "src/remote-stub.c" ]; - sources = make_SOURCES ++ glob_SOURCES ++ remote_SOURCES ++ [ - "src/posixos.c" - ]; - - objects = map (x: lib.replaceStrings [".c"] [".o"] (builtins.baseNameOf x)) sources; -in -kaem.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ tinycc.compiler gnupatch ]; - - meta = with lib; { - description = "A tool to control the generation of non-source files from sources"; - homepage = "https://www.gnu.org/software/make"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - mainProgram = "make"; - platforms = platforms.unix; - }; -} '' - # Unpack - ungz --file ${src} --output make.tar - untar --file make.tar - rm make.tar - cd make-${version} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np1 -i ${f}") patches} - - # Configure - catm src/config.h src/mkconfig.h src/mkcustom.h - cp lib/glob.in.h lib/glob.h - cp lib/fnmatch.in.h lib/fnmatch.h - - # Compile - alias CC="tcc -B ${tinycc.libs}/lib ${lib.concatStringsSep " " CFLAGS}" - ${lib.concatMapStringsSep "\n" (f: "CC -c ${f}") sources} - - # Link - CC -o make ${lib.concatStringsSep " " objects} - - # Check - ./make --version - - # Install - mkdir -p ''${out}/bin - cp ./make ''${out}/bin - chmod 555 ''${out}/bin/make -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix deleted file mode 100644 index 504095732e8c..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumakeBoot -, gnupatch -, gnused -, gnugrep -, gawk -, gnutar -, gzip -}: -let - pname = "gnumake-musl"; - version = "4.4.1"; - - src = fetchurl { - url = "mirror://gnu/make/make-${version}.tar.gz"; - hash = "sha256-3Rb7HWe/q3mnL16DkHNcSePo5wtJRaFasfgd23hlj7M="; - }; - - patches = [ - # Replaces /bin/sh with sh, see patch file for reasoning - ./0001-No-impure-bin-sh.patch - # Purity: don't look for library dependencies (of the form `-lfoo') in /lib - # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for - # included Makefiles, don't look in /usr/include and friends. - ./0002-remove-impure-dirs.patch - ]; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumakeBoot - gnupatch - gnused - gnugrep - gawk - gnutar - gzip - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/make --version - mkdir $out - ''; - - meta = with lib; { - description = "A tool to control the generation of non-source files from sources"; - homepage = "https://www.gnu.org/software/make"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - mainProgram = "make"; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xzf ${src} - cd make-${version} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np1 -i ${f}") patches} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export LD=tcc - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} - - # Build - make AR="tcc -ar" - - # Install - make install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnupatch/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnupatch/default.nix deleted file mode 100644 index 8e6f6696c68c..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnupatch/default.nix +++ /dev/null @@ -1,107 +0,0 @@ -{ lib -, fetchurl -, kaem -, tinycc -}: -let - pname = "gnupatch"; - # 2.6.x and later use features not implemented in mes-libc (eg. quotearg.h) - version = "2.5.9"; - - src = fetchurl { - url = "mirror://gnu/patch/patch-${version}.tar.gz"; - sha256 = "12nv7jx3gxfp50y11nxzlnmqqrpicjggw6pcsq0wyavkkm3cddgc"; - }; - - # Thanks to the live-bootstrap project! - # https://github.com/fosslinux/live-bootstrap/blob/1bc4296091c51f53a5598050c8956d16e945b0f5/sysa/patch-2.5.9/mk/main.mk - CFLAGS = [ - "-I." - "-DHAVE_DECL_GETENV" - "-DHAVE_DECL_MALLOC" - "-DHAVE_DIRENT_H" - "-DHAVE_LIMITS_H" - "-DHAVE_GETEUID" - "-DHAVE_MKTEMP" - "-DPACKAGE_BUGREPORT=" - "-Ded_PROGRAM=\\\"/nullop\\\"" - "-Dmbstate_t=int" # When HAVE_MBRTOWC is not enabled uses of mbstate_t are always a no-op - "-DRETSIGTYPE=int" - "-DHAVE_MKDIR" - "-DHAVE_RMDIR" - "-DHAVE_FCNTL_H" - "-DPACKAGE_NAME=\\\"patch\\\"" - "-DPACKAGE_VERSION=\\\"${version}\\\"" - "-DHAVE_MALLOC" - "-DHAVE_REALLOC" - "-DSTDC_HEADERS" - "-DHAVE_STRING_H" - "-DHAVE_STDLIB_H" - ]; - - # Maintenance note: List of sources from Makefile.in - SRCS = [ - "addext.c" - "argmatch.c" - "backupfile.c" - "basename.c" - "dirname.c" - "getopt.c" - "getopt1.c" - "inp.c" - "maketime.c" - "partime.c" - "patch.c" - "pch.c" - "quote.c" - "quotearg.c" - "quotesys.c" - "util.c" - "version.c" - "xmalloc.c" - ]; - sources = SRCS ++ [ - # mes-libc doesn't implement `error()` - "error.c" - ]; - - objects = map (x: lib.replaceStrings [".c"] [".o"] (builtins.baseNameOf x)) sources; -in -kaem.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ tinycc.compiler ]; - - meta = with lib; { - description = "GNU Patch, a program to apply differences to files"; - homepage = "https://www.gnu.org/software/patch"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - mainProgram = "patch"; - platforms = platforms.unix; - }; -} '' - # Unpack - ungz --file ${src} --output patch.tar - untar --file patch.tar - rm patch.tar - cd patch-${version} - - # Configure - catm config.h - - # Build - alias CC="tcc -B ${tinycc.libs}/lib ${lib.concatStringsSep " " CFLAGS}" - ${lib.concatMapStringsSep "\n" (f: "CC -c ${f}") sources} - - # Link - CC -o patch ${lib.concatStringsSep " " objects} - - # Check - ./patch --version - - # Install - mkdir -p ''${out}/bin - cp ./patch ''${out}/bin - chmod 555 ''${out}/bin/patch -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnused/common.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnused/common.nix deleted file mode 100644 index 658f05923ac3..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnused/common.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib }: - -{ - meta = with lib; { - description = "GNU sed, a batch stream editor"; - homepage = "https://www.gnu.org/software/sed"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - mainProgram = "sed"; - platforms = platforms.unix; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnused/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnused/default.nix deleted file mode 100644 index ee566f93c164..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnused/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, gnumake -, tinycc -, gnused -, gnugrep -, gnutar -, gzip -}: - -let - inherit (import ./common.nix { inherit lib; }) meta; - pname = "gnused"; - # last version that can be bootstrapped with our slightly buggy gnused-mes - version = "4.2"; - - src = fetchurl { - url = "mirror://gnu/sed/sed-${version}.tar.gz"; - hash = "sha256-20XNY/0BDmUFN9ZdXfznaJplJ0UjZgbl5ceCk3Jn2YM="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version meta; - - nativeBuildInputs = [ - gnumake - tinycc.compiler - gnused - gnugrep - gnutar - gzip - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/sed --version - mkdir ''${out} - ''; -} ('' - # Unpack - tar xzf ${src} - cd sed-${version} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export LD=tcc - ./configure \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --disable-shared \ - --disable-nls \ - --disable-dependency-tracking \ - --prefix=$out - - # Build - make AR="tcc -ar" - - # Install - make install -'') diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnused/mes.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnused/mes.nix deleted file mode 100644 index 031b5b5f0db0..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnused/mes.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, gnumake -, tinycc -}: - -let - inherit (import ./common.nix { inherit lib; }) meta; - pname = "gnused-mes"; - # last version that can be compiled with mes-libc - version = "4.0.9"; - - src = fetchurl { - url = "mirror://gnu/sed/sed-${version}.tar.gz"; - sha256 = "0006gk1dw2582xsvgx6y6rzs9zw8b36rhafjwm288zqqji3qfrf3"; - }; - - # Thanks to the live-bootstrap project! - # See https://github.com/fosslinux/live-bootstrap/blob/1bc4296091c51f53a5598050c8956d16e945b0f5/sysa/sed-4.0.9/sed-4.0.9.kaem - makefile = fetchurl { - url = "https://github.com/fosslinux/live-bootstrap/raw/1bc4296091c51f53a5598050c8956d16e945b0f5/sysa/sed-4.0.9/mk/main.mk"; - sha256 = "0w1f5ri0g5zla31m6l6xyzbqwdvandqfnzrsw90dd6ak126w3mya"; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version meta; - - nativeBuildInputs = [ - gnumake - tinycc.compiler - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/sed --version - mkdir ''${out} - ''; -} ('' - # Unpack - ungz --file ${src} --output sed.tar - untar --file sed.tar - rm sed.tar - cd sed-${version} - - # Configure - cp ${makefile} Makefile - catm config.h - - # Build - make \ - CC="tcc -B ${tinycc.libs}/lib" \ - LIBC=mes - - # Install - make install PREFIX=$out -'') diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/latest.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/latest.nix deleted file mode 100644 index 717ea9868fd9..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/latest.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, gcc -, musl -, binutils -, gnumake -, gnused -, gnugrep -, gawk -, gzip -, gnutarBoot -}: -let - pname = "gnutar"; - version = "1.35"; - - src = fetchurl { - url = "mirror://gnu/tar/tar-${version}.tar.gz"; - hash = "sha256-FNVeMgY+qVJuBX+/Nfyr1TN452l4fv95GcN1WwLStX4="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - gcc - musl - binutils - gnumake - gnused - gnugrep - gawk - gzip - gnutarBoot - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/tar --version - mkdir $out - ''; - - meta = with lib; { - description = "GNU implementation of the `tar' archiver"; - homepage = "https://www.gnu.org/software/tar"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - mainProgram = "tar"; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xzf ${src} - cd tar-${version} - - # Configure - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - CC=musl-gcc - - # Build - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/mes.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/mes.nix deleted file mode 100644 index e07561b3e7e5..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/mes.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumake -, gnused -, gnugrep -}: -let - pname = "gnutar"; - # >= 1.13 is incompatible with mes-libc - version = "1.12"; - - src = fetchurl { - url = "mirror://gnu/tar/tar-${version}.tar.gz"; - sha256 = "02m6gajm647n8l9a5bnld6fnbgdpyi4i3i83p7xcwv0kif47xhy6"; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnused - gnugrep - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/tar --version - mkdir $out - ''; - - meta = with lib; { - description = "GNU implementation of the `tar' archiver"; - homepage = "https://www.gnu.org/software/tar"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - mainProgram = "tar"; - platforms = platforms.unix; - }; -} '' - # Unpack - ungz --file ${src} --output tar.tar - untar --file tar.tar - rm tar.tar - cd tar-${version} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - bash ./configure \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --disable-nls \ - --prefix=$out - - # Build - make AR="tcc -ar" - - # Install - make install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/musl.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/musl.nix deleted file mode 100644 index 0818a0de39a2..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/musl.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumake -, gnugrep -, gnused -}: -let - # gnutar with musl preserves modify times, allowing make to not try - # rebuilding pregenerated files - pname = "gnutar-musl"; - version = "1.12"; - - src = fetchurl { - url = "mirror://gnu/tar/tar-${version}.tar.gz"; - hash = "sha256-xsN+iIsTbM76uQPFEUn0t71lnWnUrqISRfYQU6V6pgo="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnused - gnugrep - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/tar --version - mkdir $out - ''; - - meta = with lib; { - description = "GNU implementation of the `tar' archiver"; - homepage = "https://www.gnu.org/software/tar"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - mainProgram = "tar"; - platforms = platforms.unix; - }; -} '' - # Unpack - ungz --file ${src} --output tar.tar - untar --file tar.tar - rm tar.tar - cd tar-${version} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export LD=tcc - export ac_cv_sizeof_unsigned_long=4 - export ac_cv_sizeof_long_long=8 - export ac_cv_header_netdb_h=no - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --disable-nls - - # Build - make AR="tcc -ar" - - # Install - make install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gzip/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gzip/default.nix deleted file mode 100644 index 39353bf2b48b..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/gzip/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, fetchurl -, bash -, tinycc -, gnumake -, gnused -, gnugrep -}: -let - pname = "gzip"; - version = "1.2.4"; - - src = fetchurl { - url = "mirror://gnu/gzip/gzip-${version}.tar.gz"; - sha256 = "0ryr5b00qz3xcdcv03qwjdfji8pasp0007ay3ppmk71wl8c1i90w"; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnused - gnugrep - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/gzip --version - mkdir $out - ''; - - meta = with lib; { - description = "GNU zip compression program"; - homepage = "https://www.gnu.org/software/gzip"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - ungz --file ${src} --output gzip.tar - untar --file gzip.tar - rm gzip.tar - cd gzip-${version} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib -Dstrlwr=unused" - bash ./configure --prefix=$out - - # Build - make - - # Install - mkdir $out - make install -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom-devtools/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/heirloom-devtools/default.nix deleted file mode 100644 index 88637811b953..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom-devtools/default.nix +++ /dev/null @@ -1,97 +0,0 @@ -{ lib -, fetchurl -, kaem -, tinycc -, gnumake -, gnupatch -, coreutils -}: -let - pname = "heirloom-devtools"; - version = "070527"; - - src = fetchurl { - url = "mirror://sourceforge/heirloom/heirloom-devtools/heirloom-devtools-${version}.tar.bz2"; - sha256 = "9f233d8b78e4351fe9dd2d50d83958a0e5af36f54e9818521458a08e058691ba"; - }; - - # Thanks to the live-bootstrap project! - # See https://github.com/fosslinux/live-bootstrap/blob/d918b984ad6fe4fc7680f3be060fd82f8c9fddd9/sysa/heirloom-devtools-070527/heirloom-devtools-070527.kaem - liveBootstrap = "https://github.com/fosslinux/live-bootstrap/raw/d918b984ad6fe4fc7680f3be060fd82f8c9fddd9/sysa/heirloom-devtools-070527"; - - patches = [ - # Remove all kinds of wchar support. Mes Libc does not support wchar in any form - (fetchurl { - url = "${liveBootstrap}/patches/yacc_remove_wchar.patch"; - sha256 = "0wgiz02bb7xzjy2gnbjp8y31qy6rc4b29v01zi32zh9lw54j68hc"; - }) - # Similarly to yacc, remove wchar. See yacc patch for further information - (fetchurl { - url = "${liveBootstrap}/patches/lex_remove_wchar.patch"; - sha256 = "168dfngi51ljjqgd55wbvmffaq61gk48gak50ymnl1br92qkp4zh"; - }) - ]; -in -kaem.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnupatch - coreutils - ]; - - meta = with lib; { - description = "Portable yacc and lex derived from OpenSolaris"; - homepage = "https://heirloom.sourceforge.net/devtools.html"; - license = with licenses; [ cddl bsdOriginalUC caldera ]; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - unbz2 --file ${src} --output heirloom-devtools.tar - untar --file heirloom-devtools.tar - rm heirloom-devtools.tar - build=''${NIX_BUILD_TOP}/heirloom-devtools-${version} - cd ''${build} - - # Patch - ${lib.concatLines (map (f: "patch -Np0 -i ${f}") patches)} - - # Build yacc - cd yacc - make -f Makefile.mk \ - CC="tcc -B ${tinycc.libs}/lib" \ - AR="tcc -ar" \ - CFLAGS="-DMAXPATHLEN=4096 -DEILSEQ=84 -DMB_LEN_MAX=100" \ - LDFLAGS="-lgetopt" \ - RANLIB=true \ - LIBDIR=''${out}/lib - - # Install yacc - install -D yacc ''${out}/bin/yacc - install -Dm 444 liby.a ''${out}/lib/liby.a - install -Dm 444 yaccpar ''${out}/lib/yaccpar - - # Make yacc available to lex - PATH="''${out}/bin:''${PATH}" - - # Build lex - cd ../lex - make -f Makefile.mk \ - CC="tcc -B ${tinycc.libs}/lib" \ - AR="tcc -ar" \ - CFLAGS="-DEILSEQ=84 -DMB_LEN_MAX=100" \ - LDFLAGS="-lgetopt" \ - RANLIB=true \ - LIBDIR=''${out}/lib - - # Install lex - install -D lex ''${out}/bin/lex - install -Dm 444 ncform ''${out}/lib/lex/ncform - install -Dm 444 nceucform ''${out}/lib/lex/nceucform - install -Dm 444 nrform ''${out}/lib/lex/nrform - install -Dm 444 libl.a ''${out}/lib/libl.a -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/cp-no-socket.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/cp-no-socket.patch deleted file mode 100644 index 88d6e7d6fa4d..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/cp-no-socket.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- cp/cp.c -+++ cp/cp.c -@@ -42,8 +42,6 @@ static const char sccsid[] USED = "@(#)cp.sl 1.84 (gritter) 3/4/06"; - - #include <sys/types.h> - #include <sys/stat.h> --#include <sys/socket.h> --#include <sys/un.h> - #include <sys/time.h> - #include <sys/resource.h> - #include <fcntl.h> -@@ -427,6 +425,7 @@ fdcopy(const char *src, const struct stat *ssp, const int sfd, - #endif - - #ifdef __linux__ -+#ifdef O_DIRECT - if (!bflag && !Dflag && ssp->st_size > 0) { - long long sent; - -@@ -436,6 +435,7 @@ fdcopy(const char *src, const struct stat *ssp, const int sfd, - if (sent < 0) - goto err; - } -+#endif - #endif /* __linux__ */ - if (pagesize == 0) - if ((pagesize = 4096) < 0) -@@ -702,37 +702,6 @@ symlinkcopy(const char *src, const struct stat *ssp, - } - } - --static void --socketcopy(const char *src, const struct stat *ssp, -- const char *tgt, const struct stat *dsp) --{ -- int fd, addrsz; -- struct sockaddr_un addr; -- size_t len; -- -- if (do_unlink(tgt, dsp) != OKAY) -- return; -- len = strlen(tgt); -- memset(&addr, 0, sizeof addr); -- addr.sun_family = AF_UNIX; -- addrsz = sizeof addr - sizeof addr.sun_path + len; -- if ((len >= sizeof addr.sun_path ? errno = ENAMETOOLONG, fd = -1, 1 : -- (strncpy(addr.sun_path,tgt,sizeof addr.sun_path), 0)) || -- (fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0 || -- bind(fd, (struct sockaddr *)&addr, addrsz) < 0) { -- fprintf(stderr, "%s: cannot create socket %s\n%s: %s\n", -- progname, tgt, -- progname, strerror(errno)); -- if (fd >= 0) -- close(fd); -- errcnt |= 01; -- return; -- } -- close(fd); -- if (pflag) -- permissions(tgt, ssp); --} -- - static void - specialcopy(const char *src, const struct stat *ssp, - const char *tgt, const struct stat *dsp) -@@ -748,9 +717,6 @@ specialcopy(const char *src, const struct stat *ssp, - case S_IFLNK: - symlinkcopy(src, ssp, tgt, dsp); - break; -- case S_IFSOCK: -- socketcopy(src, ssp, tgt, dsp); -- break; - case S_IFDOOR: - ignoring("door", src); - break; -@@ -1043,7 +1009,7 @@ ln(const char *src, const char *tgt, struct stat *dsp, int level, - errcnt |= 01; - return; - } --#if (defined (SUS) || defined (S42)) && (defined (__linux__) || defined (__sun)) -+#if (defined (SUS) || defined (S42)) && (defined (__linux__) || defined (__sun)) && !defined (__TINYC__) - if (sflag == 0) { - char *rpbuf = alloca(PATH_MAX+1); - if (realpath(src, rpbuf) == NULL) { diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/default.nix deleted file mode 100644 index 182e515c2f1b..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/default.nix +++ /dev/null @@ -1,130 +0,0 @@ -{ lib -, fetchurl -, bash -, tinycc -, gnumake -, gnupatch -, heirloom-devtools -, heirloom -}: -let - pname = "heirloom"; - version = "070715"; - - src = fetchurl { - url = "mirror://sourceforge/heirloom/heirloom/${version}/heirloom-${version}.tar.bz2"; - sha256 = "sha256-6zP3C8wBmx0OCkHx11UtRcV6FicuThxIY07D5ESWow8="; - }; - - patches = [ - # we pre-generate nawk's proctab.c as meslibc is not capable of running maketab - # during build time (insufficient sscanf support) - ./proctab.patch - - # disable utilities that don't build successfully - ./disable-programs.patch - - # "tcc -ar" doesn't support creating empty archives - ./tcc-empty-ar.patch - # meslibc doesn't have seperate libm - ./dont-link-lm.patch - # meslibc's vprintf doesn't support %ll - ./vprintf.patch - # meslibc doesn't support sysconf() - ./sysconf.patch - # meslibc doesn't support locale - ./strcoll.patch - # meslibc doesn't support termios.h - ./termios.patch - # meslibc doesn't support utime.h - ./utime.patch - # meslibc doesn't support langinfo.h - ./langinfo.patch - # support building with meslibc - ./meslibc-support.patch - # remove socket functionality as unsupported by meslibc - ./cp-no-socket.patch - ]; - - makeFlags = [ - # mk.config build options - "CC='tcc -B ${tinycc.libs}/lib -include ${./stubs.h} -include ${./musl.h}'" - "AR='tcc -ar'" - "RANLIB=true" - "STRIP=true" - "SHELL=${bash}/bin/sh" - "POSIX_SHELL=${bash}/bin/sh" - "DEFBIN=/bin" - "SV3BIN=/5bin" - "S42BIN=/5bin/s42" - "SUSBIN=/bin" - "SU3BIN=/5bin/posix2001" - "UCBBIN=/ucb" - "CCSBIN=/ccs/bin" - "DEFLIB=/lib" - "DEFSBIN=/bin" - "MANDIR=/share/man" - "LCURS=" # disable ncurses - "USE_ZLIB=0" # disable zlib - "IWCHAR='-I../libwchar'" - "LWCHAR='-L../libwchar -lwchar'" - ]; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnupatch - heirloom-devtools - ]; - - passthru.sed = - bash.runCommand "${pname}-sed-${version}" {} '' - install -D ${heirloom}/bin/sed $out/bin/sed - ''; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/banner Hello Heirloom - mkdir $out - ''; - - meta = with lib; { - description = "The Heirloom Toolchest is a collection of standard Unix utilities"; - homepage = "https://heirloom.sourceforge.net/tools.html"; - license = with licenses; [ - # All licenses according to LICENSE/ - zlib - caldera - bsdOriginalUC - cddl - bsd3 - gpl2Plus - lgpl21Plus - lpl-102 - info-zip - ]; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - unbz2 --file ${src} --output heirloom.tar - untar --file heirloom.tar - rm heirloom.tar - cd heirloom-${version} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np0 -i ${f}") patches} - cp ${./proctab.c} nawk/proctab.c - - # Build - # These tools are required during later build steps - export PATH="$PATH:$PWD/ed:$PWD/nawk:$PWD/sed" - make ${lib.concatStringsSep " " makeFlags} - - # Install - make install ROOT=$out ${lib.concatStringsSep " " makeFlags} -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/disable-programs.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/disable-programs.patch deleted file mode 100644 index 2b15ae296805..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/disable-programs.patch +++ /dev/null @@ -1,43 +0,0 @@ ---- makefile -+++ makefile -@@ -1,21 +1,24 @@ --SHELL = /bin/sh -+SHELL = sh - --SUBDIRS = build libwchar libcommon libuxre _install \ -- banner basename bc bdiff bfs \ -- cal calendar cat chmod chown \ -- cksum cmp col comm copy cp cpio csplit cut \ -- date dc dd deroff diff diff3 dircmp dirname df du \ -+SUBDIRS = libwchar libcommon libuxre _install \ -+ banner basename bdiff bfs \ -+ cat chmod chown \ -+ cksum cmp col comm copy cp csplit cut \ -+ dc dirname \ - echo ed env expand expr \ -- factor file find fmt fmtmsg fold \ -- getconf getopt grep groups hd head hostname id join \ -- kill line listusers ln logins logname ls \ -- mail man mesg mkdir mkfifo mknod more mvdir \ -- nawk news nice nl nohup oawk od \ -- paste pathchk pg pgrep pr printenv printf priocntl ps psrinfo pwd \ -- random renice rm rmdir \ -- sdiff sed setpgrp shl sleep sort spell split stty su sum sync \ -- tabs tail tapecntl tar tcopy tee test time touch tr true tsort tty \ -- ul uname uniq units users wc what who whoami whodo xargs yes -+ file fmt fold \ -+ getopt grep hd head join \ -+ kill line ln logname ls \ -+ mesg mkdir mknod \ -+ nl nohup od \ -+ paste pathchk pgrep pr printenv printf pwd \ -+ random rm rmdir \ -+ sed sleep sort split sum \ -+ tee test touch tr true tsort tty \ -+ uniq units wc what whoami xargs yes -+ -+# These depend on some coreutils that we need to build first -+SUBDIRS += bc nawk build - - dummy: makefiles all - diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/dont-link-lm.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/dont-link-lm.patch deleted file mode 100644 index bf7a72b733ee..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/dont-link-lm.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- csplit/Makefile.mk -+++ csplit/Makefile.mk -@@ -1,19 +1,19 @@ - all: csplit csplit_sus csplit_su3 - - csplit: csplit.o -- $(LD) $(LDFLAGS) csplit.o $(LCOMMON) $(LWCHAR) $(LIBS) -lm -o csplit -+ $(LD) $(LDFLAGS) csplit.o $(LCOMMON) $(LWCHAR) $(LIBS) -o csplit - - csplit.o: csplit.c - $(CC) $(CFLAGS) $(CPPFLAGS) $(XO6FL) $(LARGEF) $(IWCHAR) $(ICOMMON) -c csplit.c - - csplit_sus: csplit_sus.o -- $(LD) $(LDFLAGS) csplit_sus.o $(LUXRE) $(LCOMMON) $(LWCHAR) $(LIBS) -lm -o csplit_sus -+ $(LD) $(LDFLAGS) csplit_sus.o $(LUXRE) $(LCOMMON) $(LWCHAR) $(LIBS) -o csplit_sus - - csplit_sus.o: csplit.c - $(CC) $(CFLAGS) $(CPPFLAGS) $(XO6FL) $(LARGEF) $(IUXRE) $(IWCHAR) $(ICOMMON) -DSUS -c csplit.c -o csplit_sus.o - - csplit_su3: csplit_su3.o -- $(LD) $(LDFLAGS) csplit_su3.o $(LUXRE) $(LCOMMON) $(LWCHAR) $(LIBS) -lm -o csplit_su3 -+ $(LD) $(LDFLAGS) csplit_su3.o $(LUXRE) $(LCOMMON) $(LWCHAR) $(LIBS) -o csplit_su3 - - csplit_su3.o: csplit.c - $(CC) $(CFLAGS) $(CPPFLAGS) $(XO6FL) $(LARGEF) $(IUXRE) $(IWCHAR) $(ICOMMON) -DSU3 -c csplit.c -o csplit_su3.o ---- nawk/Makefile.mk -+++ nawk/Makefile.mk -@@ -3,13 +3,13 @@ all: awk awk_sus awk_su3 - OBJ = awk.lx.o b.o lib.o main.o parse.o proctab.o run.o tran.o - - awk: awk.g.o $(OBJ) version.o -- $(LD) $(LDFLAGS) awk.g.o $(OBJ) version.o $(LUXRE) -lm $(LCOMMON) $(LWCHAR) $(LIBS) -o awk -+ $(LD) $(LDFLAGS) awk.g.o $(OBJ) version.o $(LUXRE) $(LCOMMON) $(LWCHAR) $(LIBS) -o awk - - awk_sus: awk.g.o $(OBJ) version_sus.o -- $(LD) $(LDFLAGS) awk.g.o $(OBJ) version_sus.o $(LUXRE) -lm $(LCOMMON) $(LWCHAR) $(LIBS) -o awk_sus -+ $(LD) $(LDFLAGS) awk.g.o $(OBJ) version_sus.o $(LUXRE) $(LCOMMON) $(LWCHAR) $(LIBS) -o awk_sus - - awk_su3: awk.g.2001.o $(OBJ) version_su3.o -- $(LD) $(LDFLAGS) awk.g.2001.o $(OBJ) version_su3.o $(LUXRE) -lm $(LCOMMON) $(LWCHAR) $(LIBS) -o awk_su3 -+ $(LD) $(LDFLAGS) awk.g.2001.o $(OBJ) version_su3.o $(LUXRE) $(LCOMMON) $(LWCHAR) $(LIBS) -o awk_su3 - - awk.g.c: awk.g.y - $(YACC) -d awk.g.y diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/langinfo.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/langinfo.patch deleted file mode 100644 index a8ad842b37c8..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/langinfo.patch +++ /dev/null @@ -1,99 +0,0 @@ ---- nawk/main.c -+++ nawk/main.c -@@ -35,7 +35,6 @@ - #include <errno.h> - #include <string.h> - #include <locale.h> --#include <langinfo.h> - #include <libgen.h> - - #define CMDCLASS ""/*"UX:"*/ /* Command classification */ ---- sort/sort.c -+++ sort/sort.c -@@ -63,7 +63,6 @@ static const char sccsid[] USED = "@(#)sort.sl 1.37 (gritter) 5/29/05"; - #include <locale.h> - #include <wchar.h> - #include <wctype.h> --#include <langinfo.h> - #include <inttypes.h> - #include <errno.h> - -@@ -287,18 +286,6 @@ main(int argc, char **argv) - else - chkblank(); - compare = cmpf = ccoll ? mb_cur_max > 1 ? cmpm : cmpa : cmpl; -- setlocale(LC_NUMERIC, ""); -- arg = nl_langinfo(RADIXCHAR); -- if (mb_cur_max > 1) -- next(radixchar, arg, i); -- else -- radixchar = *arg & 0377; -- arg = nl_langinfo(THOUSEP); -- if (mb_cur_max > 1) -- next(thousep, arg, i); -- else -- thousep = *arg & 0377; -- setlocale(LC_TIME, ""); - fields = smalloc(NF * sizeof *fields); - copyproto(); - eargv = argv; -@@ -1088,8 +1075,7 @@ cmp(const char *i, const char *j) - } else { - sa = elicpy(collba, pa, la, '\n', ignore, code); - sb = elicpy(collbb, pb, lb, '\n', ignore, code); -- n = fp->Mflg ? monthcmp(collba, collbb) : -- strcoll(collba, collbb); -+ n = strcmp(collba, collbb); - if (n) - return n > 0 ? -fp->rflg : fp->rflg; - pa = &pa[sa]; -@@ -1570,49 +1556,6 @@ upcdup(const char *s) - return r; - } - --static const char *months[12]; -- --#define COPY_ABMON(m) months[m-1] = upcdup(nl_langinfo(ABMON_##m)) -- --static void --fillmonths(void) --{ -- COPY_ABMON(1); -- COPY_ABMON(2); -- COPY_ABMON(3); -- COPY_ABMON(4); -- COPY_ABMON(5); -- COPY_ABMON(6); -- COPY_ABMON(7); -- COPY_ABMON(8); -- COPY_ABMON(9); -- COPY_ABMON(10); -- COPY_ABMON(11); -- COPY_ABMON(12); --} -- --static int --monthcoll(const char *s) --{ -- int i; -- char u[MB_LEN_MAX*3+1]; -- -- cpcu3(u, s); -- for (i = 0; i < 12; i++) -- if (strcmp(u, months[i]) == 0) -- return i; -- return 0; --} -- -- --static int --monthcmp(const char *pa, const char *pb) --{ -- if (months[0] == NULL) -- fillmonths(); -- return monthcoll(pa) - monthcoll(pb); --} -- - /* - * isblank() consumes half of execution time (in skip()) with - * glibc 2.3.1. Check if it contains only space and tab, and diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/meslibc-support.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/meslibc-support.patch deleted file mode 100644 index f8f7daede3b0..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/meslibc-support.patch +++ /dev/null @@ -1,322 +0,0 @@ ---- _install/install_ucb.c -+++ _install/install_ucb.c -@@ -267,7 +267,7 @@ cp(const char *src, const char *tgt, struct stat *dsp) - if (check(src, tgt, dsp, &sst) != OKAY) - return; - unlink(tgt); -- if ((dfd = creat(tgt, 0700)) < 0 || fchmod(dfd, 0700) < 0 || -+ if ((dfd = creat(tgt, 0700)) < 0 || chmod(tgt, 0700) < 0 || - fstat(dfd, &nst) < 0) { - fprintf(stderr, "%s: %s: %s\n", progname, src, - strerror(errno)); ---- libcommon/Makefile.mk -+++ libcommon/Makefile.mk -@@ -15,7 +15,7 @@ CHECK: CHECK.c - headers: CHECK - one() { \ - rm -f "$$1.h"; \ -- if grep "$$1_h[ ]*=[ ]*[^0][ ]*;" CHECK >/dev/null; \ -+ if true; \ - then \ - ln -s "_$$1.h" "$$1.h"; \ - fi; \ ---- libcommon/atoll.h -+++ libcommon/atoll.h -@@ -1,8 +1,10 @@ - /* Sccsid @(#)atoll.h 1.4 (gritter) 7/18/04 */ - - #if defined (__hpux) || defined (_AIX) || \ -- defined (__FreeBSD__) && (__FreeBSD__) < 5 -+ (defined (__FreeBSD__) && (__FreeBSD__) < 5) || defined (__TINYC__) -+#ifndef __TINYC__ - extern long long strtoll(const char *nptr, char **endptr, int base); - extern unsigned long long strtoull(const char *nptr, char **endptr, int base); -+#endif - extern long long atoll(const char *nptr); - #endif /* __hpux || _AIX || __FreeBSD__ < 5 */ ---- libcommon/blank.h -+++ libcommon/blank.h -@@ -5,7 +5,7 @@ - */ - /* Sccsid @(#)blank.h 1.3 (gritter) 5/1/04 */ - --#ifndef __dietlibc__ -+#if !defined(__dietlibc__) && !defined(__TINYC__) - #ifndef LIBCOMMON_BLANK_H - #define LIBCOMMON_BLANK_H 1 - ---- libcommon/getdir.c -+++ libcommon/getdir.c -@@ -52,7 +52,7 @@ extern int getdents(int, struct dirent *, size_t); - #undef d_ino - #endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__ - || __APPLE__ */ --#elif defined (__dietlibc__) -+#elif defined (__dietlibc__) || defined(__TINYC__) - #include <dirent.h> - #include <unistd.h> - #else /* !__GLIBC__, !__dietlibc__ */ ---- libcommon/memalign.c -+++ libcommon/memalign.c -@@ -23,7 +23,7 @@ - - #if defined (__FreeBSD__) || defined (__dietlibc__) || defined (_AIX) || \ - defined (__NetBSD__) || defined (__OpenBSD__) || \ -- defined (__DragonFly__) || defined (__APPLE__) -+ defined (__DragonFly__) || defined (__APPLE__) || defined(__TINYC__) - /* - * FreeBSD malloc(3) promises to page-align the return of malloc() calls - * if size is at least a page. This serves for a poor man's memalign() ---- libcommon/memalign.h -+++ libcommon/memalign.h -@@ -26,7 +26,7 @@ - - #if defined (__FreeBSD__) || defined (__dietlibc__) || defined (_AIX) || \ - defined (__NetBSD__) || defined (__OpenBSD__) || \ -- defined (__DragonFly__) || defined (__APPLE__) -+ defined (__DragonFly__) || defined (__APPLE__) || defined(__TINYC__) - #include <stdlib.h> - - extern void *memalign(size_t, size_t); ---- libcommon/pathconf.c -+++ libcommon/pathconf.c -@@ -21,7 +21,7 @@ - */ - /* Sccsid @(#)pathconf.c 1.2 (gritter) 5/1/04 */ - --#ifdef __dietlibc__ -+#if defined(__dietlibc__) || defined(__TINYC__) - #include <unistd.h> - #include "pathconf.h" - ---- libcommon/pathconf.h -+++ libcommon/pathconf.h -@@ -21,7 +21,7 @@ - */ - /* Sccsid @(#)pathconf.h 1.2 (gritter) 5/1/04 */ - --#ifdef __dietlibc__ -+#if defined(__dietlibc__) || defined(__TINYC__) - #include <unistd.h> - - extern long fpathconf(int, int); ---- libcommon/regexp.h -+++ libcommon/regexp.h -@@ -47,7 +47,7 @@ - static const char regexp_h_sccsid[] REGEXP_H_USED = - "@(#)regexp.sl 1.56 (gritter) 5/29/05"; - --#if !defined (REGEXP_H_USED_FROM_VI) && !defined (__dietlibc__) -+#if !defined (REGEXP_H_USED_FROM_VI) && !defined (__dietlibc__) && !defined (__TINYC__) - #define REGEXP_H_WCHARS - #endif - ---- libcommon/sfile.c -+++ libcommon/sfile.c -@@ -21,7 +21,7 @@ - */ - /* Sccsid @(#)sfile.c 1.9 (gritter) 6/7/04 */ - --#ifdef __linux__ -+#if defined(__linux__) && !defined(__TINYC__) - #undef _FILE_OFFSET_BITS - - #include <sys/types.h> ---- libcommon/sighold.c -+++ libcommon/sighold.c -@@ -22,7 +22,7 @@ - /* Sccsid @(#)sighold.c 1.7 (gritter) 1/22/06 */ - - #if defined (__FreeBSD__) || defined (__dietlibc__) || defined (__NetBSD__) || \ -- defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) -+ defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) || defined (__TINYC__) - #include <signal.h> - #include "sigset.h" - ---- libcommon/sigignore.c -+++ libcommon/sigignore.c -@@ -22,7 +22,7 @@ - /* Sccsid @(#)sigignore.c 1.6 (gritter) 1/22/06 */ - - #if defined (__FreeBSD__) || defined (__dietlibc__) || defined (__NetBSD__) || \ -- defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) -+ defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) || defined (__TINYC__) - #include <signal.h> - #include "sigset.h" - ---- libcommon/sigpause.c -+++ libcommon/sigpause.c -@@ -22,7 +22,7 @@ - /* Sccsid @(#)sigpause.c 1.6 (gritter) 1/22/06 */ - - #if defined (__FreeBSD__) || defined (__dietlibc__) || defined (__NetBSD__) || \ -- defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) -+ defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) || defined (__TINYC__) - #include <signal.h> - #include "sigset.h" - ---- libcommon/sigrelse.c -+++ libcommon/sigrelse.c -@@ -22,7 +22,7 @@ - /* Sccsid @(#)sigrelse.c 1.8 (gritter) 1/22/06 */ - - #if defined (__FreeBSD__) || defined (__dietlibc__) || defined (__NetBSD__) || \ -- defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) -+ defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) || defined (__TINYC__) - #include <signal.h> - #include "sigset.h" - ---- libcommon/sigset.c -+++ libcommon/sigset.c -@@ -22,7 +22,7 @@ - /* Sccsid @(#)sigset.c 1.7 (gritter) 1/22/06 */ - - #if defined (__FreeBSD__) || defined (__dietlibc__) || defined (__NetBSD__) || \ -- defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) -+ defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) || defined (__TINYC__) - #include <signal.h> - #include "sigset.h" - -@@ -46,10 +46,7 @@ void (*sigset(int sig, void (*func)(int)))(int) - if (sigaction(sig, func==SIG_HOLD?(struct sigaction *)0:&nact, &oact) - == -1) - return SIG_ERR; -- if (sigismember(&oset, sig)) -- return SIG_HOLD; -- else -- return (oact.sa_handler); -+ return (oact.sa_handler); - } - #endif /* __FreeBSD__ || __dietlibc__ || __NetBSD__ || __OpenBSD__ || - __DragonFly__ || __APPLE__ */ ---- libcommon/sigset.h -+++ libcommon/sigset.h -@@ -22,7 +22,7 @@ - /* Sccsid @(#)sigset.h 1.9 (gritter) 1/22/06 */ - - #if defined (__FreeBSD__) || defined (__dietlibc__) || defined (__NetBSD__) || \ -- defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) -+ defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__) || defined (__TINYC__) - - #ifndef SIG_HOLD - #define SIG_HOLD ((void (*)(int))2) ---- libcommon/strtol.c -+++ libcommon/strtol.c -@@ -1,7 +1,7 @@ - /* Sccsid @(#)strtol.c 1.6 (gritter) 7/18/04 */ - - #if defined (__hpux) || defined (_AIX) || \ -- defined (__FreeBSD__) && (__FreeBSD__) < 5 -+ (defined (__FreeBSD__) && (__FreeBSD__) < 5) || defined (__TINYC__) - - #include <stdlib.h> - #include <ctype.h> -@@ -97,6 +97,7 @@ out: if (pp <= bptr) { - return v * sign; - } - -+#ifndef __TINYC__ - long long - strtoll(const char *nptr, char **endptr, int base) - { -@@ -108,6 +109,7 @@ strtoull(const char *nptr, char **endptr, int base) - { - return (unsigned long long)internal(nptr, endptr, base, 3); - } -+#endif - - long long - atoll(const char *nptr) ---- nawk/awk.h -+++ nawk/awk.h -@@ -156,7 +156,6 @@ extern Cell *rlengthloc; /* RLENGTH */ - #endif - - #ifndef IN_MAKETAB --#include <wchar.h> - - /* - * Get next character from string s and store it in wc; n is set to ---- nawk/awk.lx.l -+++ nawk/awk.lx.l -@@ -71,7 +71,6 @@ - - #include "awk.h" - #include "y.tab.h" --#include <pfmt.h> - #include <unistd.h> - - static void awk_unputstr(const char *s); ---- nawk/run.c -+++ nawk/run.c -@@ -1467,14 +1467,6 @@ Cell *bltin(Node **a, int n) - case FRAND: - u = (Awkfloat) (rand() % 32767) / 32767.0; - break; -- case FSRAND: -- u = saved_srand; /* return previous seed */ -- if (x->tval & REC) /* no argument provided */ -- saved_srand = time(NULL); -- else -- saved_srand = getfval(x); -- srand((int) saved_srand); -- break; - case FTOUPPER: - case FTOLOWER: - p = getsval(x); ---- pgrep/pgrep.c -+++ pgrep/pgrep.c -@@ -214,7 +214,7 @@ chdir_to_proc(void) - fprintf(stderr, "%s: cannot open %s\n", progname, PROCDIR); - exit(3); - } -- if (fchdir(fd) < 0) { -+ if (chdir(PROCDIR) < 0) { - fprintf(stderr, "%s: cannot chdir to %s\n", progname, PROCDIR); - exit(3); - } ---- rm/rm.c -+++ rm/rm.c -@@ -242,7 +242,7 @@ rm(size_t pend, const char *base, const int olddir, int ssub, int level) - } - return; - } -- if (fchdir(df) < 0) { -+ if (chdir(base) < 0) { - if (rmfile(base, &st) < 0) { - fprintf(stderr, - "%s: cannot chdir to %s\n", -@@ -270,7 +270,7 @@ rm(size_t pend, const char *base, const int olddir, int ssub, int level) - progname, path); - errcnt |= 4; - } -- if (olddir >= 0 && fchdir(olddir) < 0) { -+ if (olddir >= 0) { - fprintf(stderr, "%s: cannot change backwards\n", - progname); - exit(1); -@@ -316,24 +316,6 @@ subproc(size_t pend, const char *base, int level) - int status; - - while (waitpid(pid, &status, 0) != pid); -- if (status && WIFSIGNALED(status)) { -- /* -- * If the signal was sent due to a tty keypress, -- * we should be terminated automatically and -- * never reach this point. Otherwise, we terminate -- * with the same signal, but make sure that we do -- * not overwrite a possibly generated core file. -- * This results in nearly the usual behavior except -- * that the shell never prints a 'core dumped' -- * message. -- */ -- struct rlimit rl; -- -- rl.rlim_cur = rl.rlim_max = 0; -- setrlimit(RLIMIT_CORE, &rl); -- raise(WTERMSIG(status)); -- pause(); -- } - return status ? WEXITSTATUS(status) : 0; - } - case -1: diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/musl.h b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/musl.h deleted file mode 100644 index b4a314056074..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/musl.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright © 2005-2019 Rich Felker, et al. - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -// Additional utilities from musl 1.1.24 - -// include/stdlib.h -#define WEXITSTATUS(s) (((s) & 0xff00) >> 8) -#define WTERMSIG(s) ((s) & 0x7f) -#define WIFEXITED(s) (!WTERMSIG(s)) -#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu) - -// include/sys/sysmacros.h -#define major(x) \ - ((unsigned)( (((x)>>31>>1) & 0xfffff000) | (((x)>>8) & 0x00000fff) )) -#define minor(x) \ - ((unsigned)( (((x)>>12) & 0xffffff00) | ((x) & 0x000000ff) )) -#define makedev(x,y) ( \ - (((x)&0xfffff000ULL) << 32) | \ - (((x)&0x00000fffULL) << 8) | \ - (((y)&0xffffff00ULL) << 12) | \ - (((y)&0x000000ffULL)) ) - -// src/misc/basename.c -#include <string.h> -char *basename(char *s) -{ - size_t i; - if (!s || !*s) return "."; - i = strlen(s)-1; - for (; i&&s[i]=='/'; i--) s[i] = 0; - for (; i&&s[i-1]!='/'; i--); - return s+i; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/proctab.c b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/proctab.c deleted file mode 100644 index 7a498a33f369..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/proctab.c +++ /dev/null @@ -1,205 +0,0 @@ -#include <stdio.h> -#include "awk.h" -#include "y.tab.h" - -static unsigned char *printname[92] = { - (unsigned char *) "FIRSTTOKEN", /* 258 */ - (unsigned char *) "PROGRAM", /* 259 */ - (unsigned char *) "PASTAT", /* 260 */ - (unsigned char *) "PASTAT2", /* 261 */ - (unsigned char *) "XBEGIN", /* 262 */ - (unsigned char *) "XEND", /* 263 */ - (unsigned char *) "NL", /* 264 */ - (unsigned char *) "ARRAY", /* 265 */ - (unsigned char *) "MATCH", /* 266 */ - (unsigned char *) "NOTMATCH", /* 267 */ - (unsigned char *) "MATCHOP", /* 268 */ - (unsigned char *) "FINAL", /* 269 */ - (unsigned char *) "DOT", /* 270 */ - (unsigned char *) "ALL", /* 271 */ - (unsigned char *) "CCL", /* 272 */ - (unsigned char *) "NCCL", /* 273 */ - (unsigned char *) "CHAR", /* 274 */ - (unsigned char *) "MCHAR", /* 275 */ - (unsigned char *) "OR", /* 276 */ - (unsigned char *) "STAR", /* 277 */ - (unsigned char *) "QUEST", /* 278 */ - (unsigned char *) "PLUS", /* 279 */ - (unsigned char *) "AND", /* 280 */ - (unsigned char *) "BOR", /* 281 */ - (unsigned char *) "APPEND", /* 282 */ - (unsigned char *) "EQ", /* 283 */ - (unsigned char *) "GE", /* 284 */ - (unsigned char *) "GT", /* 285 */ - (unsigned char *) "LE", /* 286 */ - (unsigned char *) "LT", /* 287 */ - (unsigned char *) "NE", /* 288 */ - (unsigned char *) "IN", /* 289 */ - (unsigned char *) "ARG", /* 290 */ - (unsigned char *) "BLTIN", /* 291 */ - (unsigned char *) "BREAK", /* 292 */ - (unsigned char *) "CONTINUE", /* 293 */ - (unsigned char *) "DELETE", /* 294 */ - (unsigned char *) "DO", /* 295 */ - (unsigned char *) "EXIT", /* 296 */ - (unsigned char *) "FOR", /* 297 */ - (unsigned char *) "FUNC", /* 298 */ - (unsigned char *) "SUB", /* 299 */ - (unsigned char *) "GSUB", /* 300 */ - (unsigned char *) "IF", /* 301 */ - (unsigned char *) "INDEX", /* 302 */ - (unsigned char *) "LSUBSTR", /* 303 */ - (unsigned char *) "MATCHFCN", /* 304 */ - (unsigned char *) "NEXT", /* 305 */ - (unsigned char *) "ADD", /* 306 */ - (unsigned char *) "MINUS", /* 307 */ - (unsigned char *) "MULT", /* 308 */ - (unsigned char *) "DIVIDE", /* 309 */ - (unsigned char *) "MOD", /* 310 */ - (unsigned char *) "ASSIGN", /* 311 */ - (unsigned char *) "ASGNOP", /* 312 */ - (unsigned char *) "ADDEQ", /* 313 */ - (unsigned char *) "SUBEQ", /* 314 */ - (unsigned char *) "MULTEQ", /* 315 */ - (unsigned char *) "DIVEQ", /* 316 */ - (unsigned char *) "MODEQ", /* 317 */ - (unsigned char *) "POWEQ", /* 318 */ - (unsigned char *) "PRINT", /* 319 */ - (unsigned char *) "PRINTF", /* 320 */ - (unsigned char *) "SPRINTF", /* 321 */ - (unsigned char *) "ELSE", /* 322 */ - (unsigned char *) "INTEST", /* 323 */ - (unsigned char *) "CONDEXPR", /* 324 */ - (unsigned char *) "POSTINCR", /* 325 */ - (unsigned char *) "PREINCR", /* 326 */ - (unsigned char *) "POSTDECR", /* 327 */ - (unsigned char *) "PREDECR", /* 328 */ - (unsigned char *) "VAR", /* 329 */ - (unsigned char *) "IVAR", /* 330 */ - (unsigned char *) "VARNF", /* 331 */ - (unsigned char *) "CALL", /* 332 */ - (unsigned char *) "NUMBER", /* 333 */ - (unsigned char *) "STRING", /* 334 */ - (unsigned char *) "FIELD", /* 335 */ - (unsigned char *) "REGEXPR", /* 336 */ - (unsigned char *) "GETLINE", /* 337 */ - (unsigned char *) "RETURN", /* 338 */ - (unsigned char *) "SPLIT", /* 339 */ - (unsigned char *) "SUBSTR", /* 340 */ - (unsigned char *) "WHILE", /* 341 */ - (unsigned char *) "CAT", /* 342 */ - (unsigned char *) "NOT", /* 343 */ - (unsigned char *) "UMINUS", /* 344 */ - (unsigned char *) "POWER", /* 345 */ - (unsigned char *) "DECR", /* 346 */ - (unsigned char *) "INCR", /* 347 */ - (unsigned char *) "INDIRECT", /* 348 */ - (unsigned char *) "LASTTOKEN", /* 349 */ -}; - - -Cell *(*proctab[92])(Node **, int) = { - nullproc, /* FIRSTTOKEN */ - program, /* PROGRAM */ - pastat, /* PASTAT */ - dopa2, /* PASTAT2 */ - nullproc, /* XBEGIN */ - nullproc, /* XEND */ - nullproc, /* NL */ - array, /* ARRAY */ - matchop, /* MATCH */ - matchop, /* NOTMATCH */ - nullproc, /* MATCHOP */ - nullproc, /* FINAL */ - nullproc, /* DOT */ - nullproc, /* ALL */ - nullproc, /* CCL */ - nullproc, /* NCCL */ - nullproc, /* CHAR */ - nullproc, /* MCHAR */ - nullproc, /* OR */ - nullproc, /* STAR */ - nullproc, /* QUEST */ - nullproc, /* PLUS */ - boolop, /* AND */ - boolop, /* BOR */ - nullproc, /* APPEND */ - relop, /* EQ */ - relop, /* GE */ - relop, /* GT */ - relop, /* LE */ - relop, /* LT */ - relop, /* NE */ - instat, /* IN */ - arg, /* ARG */ - bltin, /* BLTIN */ - jump, /* BREAK */ - jump, /* CONTINUE */ - delete, /* DELETE */ - dostat, /* DO */ - jump, /* EXIT */ - forstat, /* FOR */ - nullproc, /* FUNC */ - sub, /* SUB */ - gsub, /* GSUB */ - ifstat, /* IF */ - sindex, /* INDEX */ - nullproc, /* LSUBSTR */ - matchop, /* MATCHFCN */ - jump, /* NEXT */ - arith, /* ADD */ - arith, /* MINUS */ - arith, /* MULT */ - arith, /* DIVIDE */ - arith, /* MOD */ - assign, /* ASSIGN */ - nullproc, /* ASGNOP */ - assign, /* ADDEQ */ - assign, /* SUBEQ */ - assign, /* MULTEQ */ - assign, /* DIVEQ */ - assign, /* MODEQ */ - assign, /* POWEQ */ - print, /* PRINT */ - aprintf, /* PRINTF */ - awsprintf, /* SPRINTF */ - nullproc, /* ELSE */ - intest, /* INTEST */ - condexpr, /* CONDEXPR */ - incrdecr, /* POSTINCR */ - incrdecr, /* PREINCR */ - incrdecr, /* POSTDECR */ - incrdecr, /* PREDECR */ - nullproc, /* VAR */ - nullproc, /* IVAR */ - getnf, /* VARNF */ - call, /* CALL */ - nullproc, /* NUMBER */ - nullproc, /* STRING */ - nullproc, /* FIELD */ - nullproc, /* REGEXPR */ - getline, /* GETLINE */ - jump, /* RETURN */ - split, /* SPLIT */ - substr, /* SUBSTR */ - whilestat, /* WHILE */ - cat, /* CAT */ - boolop, /* NOT */ - arith, /* UMINUS */ - arith, /* POWER */ - nullproc, /* DECR */ - nullproc, /* INCR */ - indirect, /* INDIRECT */ - nullproc, /* LASTTOKEN */ -}; - -unsigned char *tokname(int n) -{ - static unsigned char buf[100]; - - if (n < FIRSTTOKEN || n > LASTTOKEN) { - snprintf((char *)buf, sizeof buf, "token %d", n); - return buf; - } - return printname[n-257]; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/proctab.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/proctab.patch deleted file mode 100644 index 30913c9022b7..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/proctab.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- nawk/Makefile.mk -+++ nawk/Makefile.mk -@@ -28,8 +28,6 @@ maketab: maketab.o - $(HOSTCC) maketab.o -o maketab - ./maketab > proctab.c - --proctab.c: maketab -- - awk.g.o: awk.g.c - $(CC) $(CFLAGSS) $(CPPFLAGS) $(XO5FL) $(LARGEF) $(IWCHAR) $(ICOMMON) $(IUXRE) -c awk.g.c - diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/strcoll.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/strcoll.patch deleted file mode 100644 index 20ed5c5c352e..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/strcoll.patch +++ /dev/null @@ -1,73 +0,0 @@ ---- comm/comm.c -+++ comm/comm.c -@@ -242,7 +242,7 @@ compare(const char *a, const char *b) - return(2); - } - } else { -- n = strcoll(a, b); -+ n = strcmp(a, b); - return n ? n > 0 ? 2 : 1 : 0; - } - } ---- expr/expr.y -+++ expr/expr.y -@@ -234,7 +234,7 @@ _rel(int op, register char *r1, register char *r2) - if (numeric(r1) && numeric(r2)) - i = atoll(r1) - atoll(r2); - else -- i = strcoll(r1, r2); -+ i = strcmp(r1, r2); - switch(op) { - case EQ: i = i==0; break; - case GT: i = i>0; break; ---- join/join.c -+++ join/join.c -@@ -65,7 +65,7 @@ enum { - JF = -1 - }; - #define ppi(f, j) ((j) >= 0 && (j) < ppisize[f] ? ppibuf[f][j] : null) --#define comp() strcoll(ppi(F1, j1),ppi(F2, j2)) -+#define comp() strcmp(ppi(F1, j1),ppi(F2, j2)) - - #define next(wc, s, n) (*(s) & 0200 ? ((n) = mbtowi(&(wc), (s), mb_cur_max), \ - (n) = ((n) > 0 ? (n) : (n) < 0 ? (wc=WEOF, 1) : 1)) : \ ---- ls/ls.c -+++ ls/ls.c -@@ -575,13 +575,13 @@ _mergesort(struct file **al) - static int - namecmp(struct file *f1, struct file *f2) - { -- return strcoll(f1->name, f2->name); -+ return strcmp(f1->name, f2->name); - } - - static int - extcmp(struct file *f1, struct file *f2) - { -- return strcoll(extension(f1->name), extension(f2->name)); -+ return strcmp(extension(f1->name), extension(f2->name)); - } - - static int ---- nawk/run.c -+++ nawk/run.c -@@ -608,7 +608,7 @@ Cell *relop(Node **a, int n) - j = x->fval - y->fval; - i = j<0? -1: (j>0? 1: 0); - } else { -- i = strcoll((char*)getsval(x), (char*)getsval(y)); -+ i = strcmp((char*)getsval(x), (char*)getsval(y)); - } - tempfree(x, ""); - tempfree(y, ""); ---- sort/sort.c -+++ sort/sort.c -@@ -1148,7 +1148,7 @@ cmpl(const char *pa, const char *pb) - - ecpy(collba, pa, '\n'); - ecpy(collbb, pb, '\n'); -- n = strcoll(collba, collbb); -+ n = strcmp(collba, collbb); - return n ? n > 0 ? -fields[0].rflg : fields[0].rflg : 0; - } - diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/stubs.h b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/stubs.h deleted file mode 100644 index 5aef8168180b..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/stubs.h +++ /dev/null @@ -1,64 +0,0 @@ -#include <getopt.h> -extern int optopt; - -int ftruncate(int fd, int offset) { - return -1; -} - -int getsid (int pid) { - return -1; -} - -static int isblank(int c) -{ - return c == ' ' || c == '\t'; -} - -#define lchown chown - -// meslibc implements lstat but is missing declaration -#include <sys/stat.h> -int lstat (char const *file_name, struct stat *statbuf); - -#include <fcntl.h> -int mkstemp(char *t) -{ - mktemp(t); - int fd = open(t, O_CREAT|O_RDWR|O_TRUNC, 0600); - return fd; -} - -int putenv(char *string) -{ - return 0; -} - -char* realpath (char* path, char* resolved) { - return NULL; -} - -#define strncasecmp(a,b,n) strncmp(strupr(a),strupr(b),n) - - -#define nlink_t unsigned long - -#include <limits.h> -#define USHRT_MAX UINT16_MAX -#define SSIZE_MAX LONG_MAX -#define MB_LEN_MAX 1 - -#define EPERM 1 -#define ESRCH 3 -#define EDOM 33 -#define S_IFSOCK 0140000 -#define S_ISVTX 01000 -#define S_IREAD S_IRUSR -#define S_IWRITE S_IWUSR -#define S_IEXEC S_IXUSR - -#define _PC_PATH_MAX PATH_MAX -#define _PC_VDISABLE 8 -#define _POSIX_PATH_MAX PATH_MAX -#define LINE_MAX 4096 - -#define LC_TIME 0 diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/sysconf.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/sysconf.patch deleted file mode 100644 index 3d1b3e152ee1..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/sysconf.patch +++ /dev/null @@ -1,77 +0,0 @@ ---- cmp/cmp.c -+++ cmp/cmp.c -@@ -264,7 +264,7 @@ openfile(const char *fn) - struct file *f; - - if (pagesize == 0) -- if ((pagesize = sysconf(_SC_PAGESIZE)) < 0) -+ if ((pagesize = 4096) < 0) - pagesize = 4096; - if ((f = memalign(pagesize, sizeof *f)) == NULL) { - write(2, "no memory\n", 10); ---- copy/copy.c -+++ copy/copy.c -@@ -362,7 +362,7 @@ fdcopy(const char *src, const struct stat *sp, int sfd, - goto err; - } - #endif /* __linux__ */ -- if (pagesize == 0 && (pagesize = sysconf(_SC_PAGESIZE)) <= 0) -+ if (pagesize == 0 && (pagesize = 4096) <= 0) - pagesize = 4096; - if ((blksize = sp->st_blksize) <= 0) - blksize = 512; ---- cp/cp.c -+++ cp/cp.c -@@ -438,7 +438,7 @@ fdcopy(const char *src, const struct stat *ssp, const int sfd, - } - #endif /* __linux__ */ - if (pagesize == 0) -- if ((pagesize = sysconf(_SC_PAGESIZE)) < 0) -+ if ((pagesize = 4096) < 0) - pagesize = 4096; - if (bflag) - blksize = bflag; ---- libcommon/ib_alloc.c -+++ libcommon/ib_alloc.c -@@ -41,7 +41,7 @@ ib_alloc(int fd, unsigned blksize) - struct stat st; - - if (pagesize == 0) -- if ((pagesize = sysconf(_SC_PAGESIZE)) < 0) -+ if ((pagesize = 4096) < 0) - pagesize = 4096; - if (blksize == 0) { - if (fstat(fd, &st) < 0) ---- libcommon/memalign.c -+++ libcommon/memalign.c -@@ -40,7 +40,7 @@ memalign(size_t alignment, size_t size) - static long pagesize; - - if (pagesize == 0) -- pagesize = sysconf(_SC_PAGESIZE); -+ pagesize = 4096; - if (alignment != pagesize) - return NULL; - if (size < pagesize) ---- libcommon/oblok.c -+++ libcommon/oblok.c -@@ -100,7 +100,7 @@ ob_alloc(int fd, enum ob_mode bf) - struct oblok *op; - - if (pagesize == 0) -- if ((pagesize = sysconf(_SC_PAGESIZE)) < 0) -+ if ((pagesize = 4096) < 0) - pagesize = 4096; - if ((op = memalign(pagesize, sizeof *op)) == NULL) - return NULL; ---- xargs/xargs.c -+++ xargs/xargs.c -@@ -404,7 +404,7 @@ static void - endcmd(void) - { - a_agg = a_cnt; -- a_maxsize = sysconf(_SC_ARG_MAX) - envsz() - 2048 - a_asz; -+ a_maxsize = 65536 - envsz() - 2048 - a_asz; - if (nflag || sflag) { - long newsize = sflag ? atol(sflag) : - #ifdef WEIRD_LIMITS diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/tcc-empty-ar.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/tcc-empty-ar.patch deleted file mode 100644 index 7c57a54b93b3..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/tcc-empty-ar.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libwchar/Makefile.mk -+++ libwchar/Makefile.mk -@@ -10,7 +10,7 @@ fake: - if test "x$(LWCHAR)" = x; \ - then \ - touch $(OBJ); \ -- ar r libwchar.a $(OBJ); \ -+ touch libwchar.a $(OBJ); \ - fi - - install: diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/termios.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/termios.patch deleted file mode 100644 index ea40a8d7a040..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/termios.patch +++ /dev/null @@ -1,141 +0,0 @@ ---- ed/ed.c -+++ ed/ed.c -@@ -68,7 +68,6 @@ static const char sccsid[] USED = "@(#)ed.sl 1.99 (gritter) 7/27/06"; - #include <stdlib.h> - #include <signal.h> - #include "sigset.h" --#include <termios.h> - #include <setjmp.h> - #include <libgen.h> - #include <inttypes.h> -@@ -77,7 +76,6 @@ static const char sccsid[] USED = "@(#)ed.sl 1.99 (gritter) 7/27/06"; - #include <ctype.h> - #include <wctype.h> - #include <limits.h> --#include <termios.h> - static int FNSIZE; - static int LBSIZE; - static int RHSIZE; -@@ -2273,22 +2271,10 @@ sclose(int fd) - static void - fspec(const char *lp) - { -- struct termios ts; - const char *cp; - - freetabs(); - maxlength = 0; -- if (tcgetattr(1, &ts) < 0 --#ifdef TAB3 -- || (ts.c_oflag&TAB3) == 0 --#endif -- ) -- return; -- while (lp[0]) { -- if (lp[0] == '<' && lp[1] == ':') -- break; -- lp++; -- } - if (lp[0]) { - lp += 2; - while ((cp = ftok(&lp)) != NULL) { ---- ls/ls.c -+++ ls/ls.c -@@ -102,7 +102,6 @@ static char ifmt_c[] = "-pc-d-b--nl-SD--"; - #include <grp.h> - #include <errno.h> - #include <fcntl.h> --#include <termios.h> - #include <locale.h> - #include <limits.h> - #include <ctype.h> -@@ -110,14 +109,6 @@ static char ifmt_c[] = "-pc-d-b--nl-SD--"; - #include <wchar.h> - #include <wctype.h> - #include "config.h" --#ifndef USE_TERMCAP --#ifndef sun --#include <curses.h> --#include <term.h> --#endif --#else /* USE_TERMCAP */ --#include <termcap.h> --#endif /* USE_TERMCAP */ - - #ifdef _AIX - #include <sys/sysmacros.h> -@@ -989,13 +980,6 @@ printname(const char *name, struct file *f, int doit) - bold++; - } - if (color) { --#ifndef USE_TERMCAP -- if (bold) -- vidattr(A_BOLD); --#else /* USE_TERMCAP */ -- if (Bold) -- tputs(Bold, 1, putchar); --#endif /* USE_TERMCAP */ - printf(color); - } - } -@@ -1056,13 +1040,6 @@ printname(const char *name, struct file *f, int doit) - } - } - if (doit && color) { --#if !defined (USE_TERMCAP) -- if (bold) -- vidattr(A_NORMAL); --#else /* USE_TERMCAP */ -- if (Normal) -- tputs(Normal, 1, putchar); --#endif /* USE_TERMCAP */ - printf(fc_get(FC_NORMAL)); - } - if (f) -@@ -1598,16 +1575,12 @@ main(int argc, char **argv) - { - struct file *flist = nil, **aflist = &flist; - enum depth depth; -- struct winsize ws; - int i; - char *cp; - - #ifdef __GLIBC__ - putenv("POSIXLY_CORRECT=1"); - #endif -- setlocale(LC_COLLATE, ""); -- setlocale(LC_CTYPE, ""); -- setlocale(LC_TIME, ""); - #ifndef UCB - if (getenv("SYSV3") != NULL) - sysv3 = 1; -@@ -1624,16 +1597,6 @@ main(int argc, char **argv) - } - if (istty || isatty(1)) { - istty = 1; --#if !defined (USE_TERMCAP) -- setupterm(NULL, 1, &tinfostat); --#else /* USE_TERMCAP */ -- { -- char buf[2048]; -- if ((cp = getenv("TERM")) != NULL) -- if (tgetent(buf, cp) > 0) -- tinfostat = 1; -- } --#endif /* USE_TERMCAP */ - field |= FL_STATUS; - } - while ((i = getopt(argc, argv, personalities[personality].per_opt)) -@@ -1753,12 +1716,6 @@ main(int argc, char **argv) - if ((cp = getenv("COLUMNS")) != NULL) { - ncols = atoi(cp); - } else if ((present('C') || present('x') || present('m')) && istty) { -- if (ioctl(1, TIOCGWINSZ, &ws) == 0 && ws.ws_col > 0) -- ncols = ws.ws_col - 1; --#if !defined (USE_TERMCAP) -- else if (tinfostat == 1 && columns > 0) -- ncols = columns; --#endif /* !USE_TERMCAP */ - } - depth = SURFACE; - if (optind == argc) { diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/utime.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/utime.patch deleted file mode 100644 index 081ac9d2ee3c..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/utime.patch +++ /dev/null @@ -1,90 +0,0 @@ ---- copy/copy.c -+++ copy/copy.c -@@ -46,7 +46,6 @@ static const char sccsid[] USED = "@(#)copy.sl 1.15 (gritter) 5/29/05"; - #include <libgen.h> - #include <limits.h> - #include <dirent.h> --#include <utime.h> - #include <stdarg.h> - #include "sfile.h" - #include "memalign.h" -@@ -441,12 +440,6 @@ attribs(const char *dst, const struct stat *sp) - if (oflag && ((sp->st_mode&S_IFMT) == S_IFLNK ? - lchown:chown)(dst, sp->st_uid, sp->st_gid) < 0) - complain("Unable to chown %s", dst); -- if (mflag && (sp->st_mode&S_IFMT) != S_IFLNK) { -- struct utimbuf ut; -- ut.actime = sp->st_atime; -- ut.modtime = sp->st_mtime; -- utime(dst, &ut); -- } - } - - static void ---- cp/cp.c -+++ cp/cp.c -@@ -56,7 +56,6 @@ static const char sccsid[] USED = "@(#)cp.sl 1.84 (gritter) 3/4/06"; - #include <libgen.h> - #include <limits.h> - #include <dirent.h> --#include <utime.h> - #include "sfile.h" - #include "memalign.h" - #include "alloca.h" -@@ -354,18 +353,6 @@ permissions(const char *path, const struct stat *ssp) - - mode = ssp->st_mode & 07777; - if (pflag) { -- struct utimbuf ut; -- ut.actime = ssp->st_atime; -- ut.modtime = ssp->st_mtime; -- if (utime(path, &ut) < 0) { --#if defined (SUS) || defined (S42) -- fprintf(stderr, "%s: cannot set times for %s\n%s: %s\n", -- progname, path, -- progname, strerror(errno)); --#endif /* SUS || S42 */ -- if (pers != PERS_MV) -- errcnt |= 010; -- } - if (myuid == 0) { - if (chown(path, ssp->st_uid, ssp->st_gid) < 0) { - #if defined (SUS) || defined (S42) ---- touch/touch.c -+++ touch/touch.c -@@ -47,7 +47,6 @@ static const char sccsid[] USED = "@(#)touch.sl 1.21 (gritter) 5/29/05"; - #include <stdlib.h> - #include <errno.h> - #include <libgen.h> --#include <utime.h> - #include <ctype.h> - #include <time.h> - -@@ -80,7 +79,6 @@ static void - touch(const char *fn) - { - struct stat st; -- struct utimbuf ut; - - if (stat(fn, &st) < 0) { - if (errno == ENOENT) { -@@ -113,19 +111,6 @@ touch(const char *fn) - return; - } - } -- if (aflag) -- ut.actime = nacc; -- else -- ut.actime = st.st_atime; -- if (mflag) -- ut.modtime = nmod; -- else -- ut.modtime = st.st_mtime; -- if (utime(fn, nulltime ? NULL : &ut) < 0) { -- fprintf(stderr, "%s: cannot change times on %s\n", -- progname, fn); -- errcnt++; -- } - } - - static void diff --git a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/vprintf.patch b/pkgs/os-specific/linux/minimal-bootstrap/heirloom/vprintf.patch deleted file mode 100644 index 6abce89b2f31..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/heirloom/vprintf.patch +++ /dev/null @@ -1,128 +0,0 @@ ---- cksum/cksum.c -+++ cksum/cksum.c -@@ -147,7 +147,7 @@ cksum(const char *name) - s = (s << 8) ^ crctab[(s >> 24) ^ c]; - } - s = ~s; -- printf("%u %llu", (unsigned)s, nbytes); -+ printf("%u %lu", (unsigned)s, nbytes); - if(name) - printf(" %s", name); - printf("\n"); ---- cmp/cmp.c -+++ cmp/cmp.c -@@ -246,8 +246,8 @@ different: - errcnt = 1; - } else { - if (sflag == 0) -- printf("%s %s differ: char %lld," -- " line %lld\n", -+ printf("%s %s differ: char %ld," -+ " line %ld\n", - f1->f_nam, f2->f_nam, - (long long)offset(f1), - line); ---- csplit/csplit.c -+++ csplit/csplit.c -@@ -284,7 +284,7 @@ csplit(const char *fn) - op = nextfile(); - if (op) { - if (!sflag) -- printf("%lld\n", bytes); -+ printf("%ld\n", bytes); - bytes = 0; - fclose(op); - } ---- expr/expr.y -+++ expr/expr.y -@@ -140,7 +140,7 @@ expression: expr NOARG { - if (sus && numeric($1)) { - int64_t n; - n = atoll($1); -- printf("%lld\n", n); -+ printf("%ld\n", n); - exit(n == 0); - } else - puts($1); -@@ -447,10 +447,10 @@ numpr(int64_t val) - int ret; - - rv = smalloc(NUMSZ); -- ret = snprintf(rv, NUMSZ, "%lld", (long long)val); -+ ret = snprintf(rv, NUMSZ, "%ld", (long long)val); - if (ret < 0 || ret >= NUMSZ) { - rv = srealloc(rv, ret + 1); -- ret = snprintf(rv, ret, "%lld", (long long)val); -+ ret = snprintf(rv, ret, "%ld", (long long)val); - if (ret < 0) - yyerror("illegal number"); - } ---- grep/Makefile.mk -+++ grep/Makefile.mk -@@ -92,7 +92,7 @@ config.h: - -echo 'long long foo;' >___build$$$$.c ; \ - $(CC) $(CFLAGS2) $(CPPFLAGS) $(IWCHAR) $(ICOMMON) $(IUXRE) $(LARGEF) -c ___build$$$$.c >/dev/null 2>&1 ; \ - if test $$? = 0 && test -f ___build$$$$.o ; \ -- then echo '#define LONGLONG' >>config.h ; \ -+ then echo '' >>config.h ; \ - fi ; \ - rm -f ___build$$$$.o ___build$$$$.c - ---- ls/Makefile.mk -+++ ls/Makefile.mk -@@ -76,7 +76,7 @@ config.h: - -echo 'long long foo;' >___build$$$$.c ; \ - $(CC) $(CFLAGS) $(CPPFLAGS) $(LARGEF) $(IWCHAR) -c ___build$$$$.c >/dev/null 2>&1 ; \ - if test $$? = 0 && test -f ___build$$$$.o ; \ -- then echo '#define LONGLONG' >>config.h ; \ -+ then echo '' >>config.h ; \ - fi ; \ - rm -f ___build$$$$.o ___build$$$$.c - -echo '#include <sys/types.h>' >___build$$$$.c ; \ ---- pr/pr.c -+++ pr/pr.c -@@ -548,7 +548,7 @@ print(const char *fp, const char **argp) - putcs(" "); - putcs(header); - snprintf(linebuf, sizeof linebuf, -- " Page %lld\n\n\n", page); -+ " Page %ld\n\n\n", page); - putcs(linebuf); - } - c = putpage(); ---- sed/sed1.c -+++ sed/sed1.c -@@ -489,7 +489,7 @@ command(struct reptr *ipc) - break; - - case EQCOM: -- fprintf(stdout, "%lld\n", lnum); -+ fprintf(stdout, "%ld\n", lnum); - break; - - case GCOM: ---- sum/sum.c -+++ sum/sum.c -@@ -116,7 +116,7 @@ sum(const char *name) - else { - s = (s & 0xFFFF) + (s >> 16); - s = (s & 0xFFFF) + (s >> 16); -- printf("%u %llu", (unsigned)s, -+ printf("%u %lu", (unsigned)s, - (unsigned long long)(nbytes+UNIT-1)/UNIT); - } - if(name) ---- wc/wc.c -+++ wc/wc.c -@@ -89,9 +89,9 @@ report(unsigned long long count) - #if defined (S42) - if (putspace++) - printf(" "); -- printf("%llu", count); -+ printf("%lu", count); - #else /* !S42 */ -- printf("%7llu ", count); -+ printf("%7lu ", count); - #endif /* !S42 */ - } - diff --git a/pkgs/os-specific/linux/minimal-bootstrap/linux-headers/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/linux-headers/default.nix deleted file mode 100644 index 6addd11554d0..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/linux-headers/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib -, fetchurl -, bash -, gnutar -, xz -}: -let - # WARNING: You probably don't want to use this package outside minimal-bootstrap - # - # We need some set of Linux kernel headers to build our bootstrap packages - # (gcc/binutils/glibc etc.) against. As long as it compiles it is "good enough". - # Therefore the requirement for correctness, completeness, platform-specific - # features, and being up-to-date, are very loose. - # - # Rebuilding the Linux headers from source correctly is something we can defer - # till we have access to gcc/binutils/perl. For now we can use Guix's assembled - # kernel header distribution and assume it's good enough. - pname = "linux-headers"; - version = "4.14.67"; - - src = fetchurl { - url = "mirror://gnu/gnu/guix/bootstrap/i686-linux/20190815/linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz"; - sha256 = "0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - gnutar - xz - ]; - - meta = with lib; { - description = "Header files and scripts for Linux kernel"; - license = licenses.gpl2; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.linux; - }; -} '' - # Unpack - cp ${src} linux-headers.tar.xz - unxz linux-headers.tar.xz - tar xf linux-headers.tar - - # Install - mkdir $out - cp -r include $out -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/ln-boot/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/ln-boot/default.nix deleted file mode 100644 index c24504ec00a0..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/ln-boot/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib -, kaem -, mes -}: -let - pname = "ln-boot"; - version = "unstable-2023-05-22"; - - src = ./ln.c; -in -kaem.runCommand "${pname}-${version}" { - inherit pname version; - - meta = with lib; { - description = "Basic tool for creating symbolic links"; - license = licenses.mit; - maintainers = teams.minimal-bootstrap.members; - mainProgram = "ln"; - platforms = platforms.unix; - }; -} '' - mkdir -p ''${out}/bin - ${mes.compiler}/bin/mes --no-auto-compile -e main ${mes.srcPost.bin}/bin/mescc.scm -- \ - -L ${mes.libs}/lib \ - -lc+tcc \ - -o ''${out}/bin/ln \ - ${src} -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/ln-boot/ln.c b/pkgs/os-specific/linux/minimal-bootstrap/ln-boot/ln.c deleted file mode 100644 index b7a681f8270c..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/ln-boot/ln.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <string.h> - -int main(int argc, char** argv) -{ - if (argc != 4 || strcmp(argv[1], "-s")) { - fputs("Usage: ", stdout); - fputs(argv[0], stdout); - fputs(" -s TARGET LINK_NAME\n", stdout); - exit(EXIT_FAILURE); - } - - symlink(argv[2], argv[3]); - exit(EXIT_SUCCESS); -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/mes/default.nix deleted file mode 100644 index 03ce9300f316..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/mes/default.nix +++ /dev/null @@ -1,229 +0,0 @@ -{ lib -, fetchurl -, callPackage -, kaem -, mescc-tools -}: - -# Maintenance note: -# Build steps have been adapted from build-aux/bootstrap.sh.in -# as well as the live-bootstrap project -# https://github.com/fosslinux/live-bootstrap/blob/737bf61a26152fb82510a2797f0d712de918aa78/sysa/mes-0.25/mes-0.25.kaem - -let - pname = "mes"; - version = "0.25"; - - src = fetchurl { - url = "mirror://gnu/mes/mes-${version}.tar.gz"; - hash = "sha256-MlJQs1Z+2SA7pwFhyDWvAQeec+vtl7S1u3fKUAuCiUA="; - }; - - nyacc = callPackage ./nyacc.nix { inherit nyacc; }; - - config_h = builtins.toFile "config.h" '' - #undef SYSTEM_LIBC - #define MES_VERSION "${version}" - ''; - - sources = (import ./sources.nix).x86.linux.mescc; - inherit (sources) libc_mini_SOURCES libmescc_SOURCES libc_SOURCES mes_SOURCES; - - # add symlink() to libc+tcc so we can use it in ln-boot - libc_tcc_SOURCES = sources.libc_tcc_SOURCES ++ [ "lib/linux/symlink.c" ]; - - meta = with lib; { - description = "Scheme interpreter and C compiler for bootstrapping"; - homepage = "https://www.gnu.org/software/mes"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = [ "i686-linux" ]; - }; - - srcPost = kaem.runCommand "${pname}-src-${version}" { - outputs = [ "out" "bin" ]; - inherit meta; - } '' - # Unpack source - ungz --file ${src} --output mes.tar - mkdir ''${out} - cd ''${out} - untar --non-strict --file ''${NIX_BUILD_TOP}/mes.tar # ignore symlinks - - MES_PREFIX=''${out}/mes-${version} - - cd ''${MES_PREFIX} - - cp ${config_h} include/mes/config.h - - mkdir include/arch - cp include/linux/x86/syscall.h include/arch/syscall.h - cp include/linux/x86/kernel-stat.h include/arch/kernel-stat.h - - # Remove pregenerated files - rm mes/module/mes/psyntax.pp mes/module/mes/psyntax.pp.header - - # These files are symlinked in the repo - cp mes/module/srfi/srfi-9-struct.mes mes/module/srfi/srfi-9.mes - cp mes/module/srfi/srfi-9/gnu-struct.mes mes/module/srfi/srfi-9/gnu.mes - - # Remove environment impurities - __GUILE_LOAD_PATH="\"''${MES_PREFIX}/mes/module:''${MES_PREFIX}/module:${nyacc.guilePath}\"" - boot0_scm=mes/module/mes/boot-0.scm - guile_mes=mes/module/mes/guile.mes - replace --file ''${boot0_scm} --output ''${boot0_scm} --match-on "(getenv \"GUILE_LOAD_PATH\")" --replace-with ''${__GUILE_LOAD_PATH} - replace --file ''${guile_mes} --output ''${guile_mes} --match-on "(getenv \"GUILE_LOAD_PATH\")" --replace-with ''${__GUILE_LOAD_PATH} - - module_mescc_scm=module/mescc/mescc.scm - replace --file ''${module_mescc_scm} --output ''${module_mescc_scm} --match-on "(getenv \"M1\")" --replace-with "\"${mescc-tools}/bin/M1\"" - replace --file ''${module_mescc_scm} --output ''${module_mescc_scm} --match-on "(getenv \"HEX2\")" --replace-with "\"${mescc-tools}/bin/hex2\"" - replace --file ''${module_mescc_scm} --output ''${module_mescc_scm} --match-on "(getenv \"BLOOD_ELF\")" --replace-with "\"${mescc-tools}/bin/blood-elf\"" - replace --file ''${module_mescc_scm} --output ''${module_mescc_scm} --match-on "(getenv \"srcdest\")" --replace-with "\"''${MES_PREFIX}\"" - - mes_c=src/mes.c - replace --file ''${mes_c} --output ''${mes_c} --match-on "getenv (\"MES_PREFIX\")" --replace-with "\"''${MES_PREFIX}\"" - replace --file ''${mes_c} --output ''${mes_c} --match-on "getenv (\"srcdest\")" --replace-with "\"''${MES_PREFIX}\"" - - # Increase runtime resource limits - gc_c=src/gc.c - replace --file ''${gc_c} --output ''${gc_c} --match-on "getenv (\"MES_ARENA\")" --replace-with "\"100000000\"" - replace --file ''${gc_c} --output ''${gc_c} --match-on "getenv (\"MES_MAX_ARENA\")" --replace-with "\"100000000\"" - replace --file ''${gc_c} --output ''${gc_c} --match-on "getenv (\"MES_STACK\")" --replace-with "\"6000000\"" - - # Create mescc.scm - mescc_in=scripts/mescc.scm.in - replace --file ''${mescc_in} --output ''${mescc_in} --match-on "(getenv \"MES_PREFIX\")" --replace-with "\"''${MES_PREFIX}\"" - replace --file ''${mescc_in} --output ''${mescc_in} --match-on "(getenv \"includedir\")" --replace-with "\"''${MES_PREFIX}/include\"" - replace --file ''${mescc_in} --output ''${mescc_in} --match-on "(getenv \"libdir\")" --replace-with "\"''${MES_PREFIX}/lib\"" - replace --file ''${mescc_in} --output ''${mescc_in} --match-on @prefix@ --replace-with ''${MES_PREFIX} - replace --file ''${mescc_in} --output ''${mescc_in} --match-on @VERSION@ --replace-with ${version} - replace --file ''${mescc_in} --output ''${mescc_in} --match-on @mes_cpu@ --replace-with x86 - replace --file ''${mescc_in} --output ''${mescc_in} --match-on @mes_kernel@ --replace-with linux - mkdir -p ''${bin}/bin - cp ''${mescc_in} ''${bin}/bin/mescc.scm - - # Build mes-m2 - kaem --verbose --strict --file kaem.x86 - cp bin/mes-m2 ''${bin}/bin/mes-m2 - chmod 555 ''${bin}/bin/mes-m2 - ''; - - srcPrefix = "${srcPost.out}/mes-${version}"; - - cc = "${srcPost.bin}/bin/mes-m2"; - ccArgs = [ - "-e" "main" - "${srcPost.bin}/bin/mescc.scm" - "--" - "-D" "HAVE_CONFIG_H=1" - "-I" "${srcPrefix}/include" - "-I" "${srcPrefix}/include/linux/x86" - ]; - - CC = toString ([ cc ] ++ ccArgs); - - stripExt = source: - lib.replaceStrings - [ ".c" ] - [ "" ] - (builtins.baseNameOf source); - - compile = source: kaem.runCommand (stripExt source) {} '' - mkdir ''${out} - cd ''${out} - ${CC} -c ${srcPrefix}/${source} - ''; - - crt1 = compile "/lib/linux/x86-mes-mescc/crt1.c"; - - getRes = suffix: res: "${res}/${res.name}${suffix}"; - - archive = out: sources: - "catm ${out} ${lib.concatMapStringsSep " " (getRes ".o") sources}"; - sourceArchive = out: sources: - "catm ${out} ${lib.concatMapStringsSep " " (getRes ".s") sources}"; - - mkLib = libname: sources: let - os = map compile sources; - in kaem.runCommand "${pname}-${libname}-${version}" { - inherit meta; - } '' - LIBDIR=''${out}/lib - mkdir -p ''${LIBDIR} - cd ''${LIBDIR} - - ${archive "${libname}.a" os} - ${sourceArchive "${libname}.s" os} - ''; - - libc-mini = mkLib "libc-mini" libc_mini_SOURCES; - libmescc = mkLib "libmescc" libmescc_SOURCES; - libc = mkLib "libc" libc_SOURCES; - libc_tcc = mkLib "libc+tcc" libc_tcc_SOURCES; - - # Recompile Mes and Mes C library using mes-m2 bootstrapped Mes - libs = kaem.runCommand "${pname}-m2-libs-${version}" { - inherit pname version; - - passthru.tests.get-version = result: kaem.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/mes --version - mkdir ''${out} - ''; - - inherit meta; - } - '' - LIBDIR=''${out}/lib - mkdir -p ''${out} ''${LIBDIR} - - mkdir -p ''${LIBDIR}/x86-mes - - # crt1.o - cp ${crt1}/crt1.o ''${LIBDIR}/x86-mes - cp ${crt1}/crt1.s ''${LIBDIR}/x86-mes - - # libc-mini.a - cp ${libc-mini}/lib/libc-mini.a ''${LIBDIR}/x86-mes - cp ${libc-mini}/lib/libc-mini.s ''${LIBDIR}/x86-mes - - # libmescc.a - cp ${libmescc}/lib/libmescc.a ''${LIBDIR}/x86-mes - cp ${libmescc}/lib/libmescc.s ''${LIBDIR}/x86-mes - - # libc.a - cp ${libc}/lib/libc.a ''${LIBDIR}/x86-mes - cp ${libc}/lib/libc.s ''${LIBDIR}/x86-mes - - # libc+tcc.a - cp ${libc_tcc}/lib/libc+tcc.a ''${LIBDIR}/x86-mes - cp ${libc_tcc}/lib/libc+tcc.s ''${LIBDIR}/x86-mes - ''; - - # Build mes itself - compiler = kaem.runCommand "${pname}-${version}" { - inherit pname version; - - passthru.tests.get-version = result: kaem.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/mes --version - mkdir ''${out} - ''; - - inherit meta; - } - '' - mkdir -p ''${out}/bin - - ${srcPost.bin}/bin/mes-m2 -e main ${srcPost.bin}/bin/mescc.scm -- \ - -L ''${srcPrefix}/lib \ - -L ${libs}/lib \ - -lc \ - -lmescc \ - -nostdlib \ - -o ''${out}/bin/mes \ - ${libs}/lib/x86-mes/crt1.o \ - ${lib.concatMapStringsSep " " (getRes ".o") (map compile mes_SOURCES)} - ''; -in { - inherit src srcPost srcPrefix nyacc; - inherit compiler libs; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/gen-sources.sh b/pkgs/os-specific/linux/minimal-bootstrap/mes/gen-sources.sh deleted file mode 100755 index d86e5764e065..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/mes/gen-sources.sh +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -i bash -p bash coreutils gnutar - -# Generate a sources.nix for a version of GNU mes. Creates lists of source files -# from build-aux/configure-lib.sh. -# -# You may point this tool at a manually downloaded tarball, but more ideal is -# using the source tarball from Nixpkgs. For example: -# -# MES_TARBALL="$(nix-build --no-link -A minimal-bootstrap.mes.src ../../../../..)" -# ./gen-sources.sh "$MES_TARBALL" > ./new-sources.nix - -set -eu - -# Supported platforms -ARCHS="x86" -KERNELS="linux" -COMPILERS="mescc gcc" - - -format() { - echo "[" - echo $* | xargs printf ' "%s"\n' - echo " ]" -} - -gen_sources() { - # Configuration variables used by configure-lib.sh - export mes_libc=mes - export mes_cpu=$1 - export mes_kernel=$2 - export compiler=$3 - - # Populate source file lists - source $CONFIGURE_LIB_SH - - cat <<EOF - $mes_cpu.$mes_kernel.$compiler = { - libc_mini_SOURCES = $(format $libc_mini_SOURCES); - libmescc_SOURCES = $(format $libmescc_SOURCES); - libtcc1_SOURCES = $(format $libtcc1_SOURCES); - libc_SOURCES = $(format $libc_SOURCES); - libc_tcc_SOURCES = $(format $libc_tcc_SOURCES); - libc_gnu_SOURCES = $(format $libc_gnu_SOURCES); - mes_SOURCES = $(format $mes_SOURCES); - }; -EOF -} - - -MES_TARBALL=$1 -if [ ! -f $MES_TARBALL ]; then - echo "Provide path to mes-x.x.x.tar.gz as first argument" >&2 - exit 1 -fi -echo "Generating sources.nix from $MES_TARBALL" >&2 - -TMP=$(mktemp -d) -cd $TMP -echo "Workdir: $TMP" >&2 - -echo "Extracting $MES_TARBALL" >&2 -tar --strip-components 1 -xf $MES_TARBALL - -CONFIGURE_LIB_SH="$TMP/build-aux/configure-lib.sh" -if [ ! -f $CONFIGURE_LIB_SH ]; then - echo "Could not find mes's configure-lib.sh script at $CONFIGURE_LIB_SH" >&2 - exit 1 -fi - -# Create dummy config expected by configure-lib.sh -touch config.sh -chmod +x config.sh - - -echo "Configuring with $CONFIGURE_LIB_SH" >&2 - -cat <<EOF -# This file is generated by ./gen-sources.sh. -# Do not edit! -{ -EOF - -for arch in $ARCHS; do - for kernel in $KERNELS; do - for compiler in $COMPILERS; do - gen_sources $arch $kernel $compiler - done - done -done - -cat <<EOF -} -EOF diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix b/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix deleted file mode 100644 index 807d043fa9e3..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, kaem -, ln-boot -, mes -, mes-libc -}: -let - pname = "mes-libc"; - inherit (mes.compiler) version; - - sources = (import ./sources.nix).x86.linux.gcc; - inherit (sources) libtcc1_SOURCES libc_gnu_SOURCES; - - # Concatenate all source files into a convenient bundle - # "gcc" variants of source files (eg. "lib/linux/x86-mes-gcc") can also be - # compiled by tinycc - # - # Passing this many arguments is too much for kaem so we need to split - # the operation in two - firstLibc = lib.take 100 libc_gnu_SOURCES; - lastLibc = lib.drop 100 libc_gnu_SOURCES; -in -kaem.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ ln-boot ]; - - passthru.CFLAGS = "-DHAVE_CONFIG_H=1 -I${mes-libc}/include -I${mes-libc}/include/linux/x86"; - - meta = with lib; { - description = "The Mes C Library"; - homepage = "https://www.gnu.org/software/mes"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = [ "i686-linux" ]; - }; -} '' - cd ${mes.srcPrefix} - - # mescc compiled libc.a - mkdir -p ''${out}/lib/x86-mes - - # libc.c - catm ''${TMPDIR}/first.c ${lib.concatStringsSep " " firstLibc} - catm ''${out}/lib/libc.c ''${TMPDIR}/first.c ${lib.concatStringsSep " " lastLibc} - - # crt{1,n,i}.c - cp lib/linux/x86-mes-gcc/crt1.c ''${out}/lib - cp lib/linux/x86-mes-gcc/crtn.c ''${out}/lib - cp lib/linux/x86-mes-gcc/crti.c ''${out}/lib - - # libtcc1.c - catm ''${out}/lib/libtcc1.c ${lib.concatStringsSep " " libtcc1_SOURCES} - - # getopt.c - cp lib/posix/getopt.c ''${out}/lib/libgetopt.c - - # Install headers - ln -s ${mes.srcPrefix}/include ''${out}/include -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/nyacc.nix b/pkgs/os-specific/linux/minimal-bootstrap/mes/nyacc.nix deleted file mode 100644 index c384b4a4c0b4..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/mes/nyacc.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib -, fetchurl -, kaem -, nyacc -}: -let - pname = "nyacc"; - # NYACC is a tightly coupled dependency of mes. This version is known to work - # with mes 0.25. - # https://git.savannah.gnu.org/cgit/mes.git/tree/INSTALL?h=v0.25#n31 - version = "1.00.2"; - - src = fetchurl { - url = "mirror://savannah/nyacc/nyacc-${version}.tar.gz"; - sha256 = "065ksalfllbdrzl12dz9d9dcxrv97wqxblslngsc6kajvnvlyvpk"; - }; -in -kaem.runCommand "${pname}-${version}" { - inherit pname version; - - passthru.guilePath = "${nyacc}/share/${pname}-${version}/module"; - - meta = with lib; { - description = "Modules for generating parsers and lexical analyzers"; - longDescription = '' - Not Yet Another Compiler Compiler is a set of guile modules for - generating computer language parsers and lexical analyzers. - ''; - homepage = "https://savannah.nongnu.org/projects/nyacc"; - license = licenses.lgpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.all; - }; -} '' - ungz --file ${src} --output nyacc.tar - mkdir -p ''${out}/share - cd ''${out}/share - untar --file ''${NIX_BUILD_TOP}/nyacc.tar -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/sources.nix b/pkgs/os-specific/linux/minimal-bootstrap/mes/sources.nix deleted file mode 100644 index 4b5d3b336575..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/mes/sources.nix +++ /dev/null @@ -1,1060 +0,0 @@ -# This file is generated by ./gen-sources.sh. -# Do not edit! -{ - x86.linux.mescc = { - libc_mini_SOURCES = [ - "lib/mes/__init_io.c" - "lib/mes/eputs.c" - "lib/mes/oputs.c" - "lib/mes/globals.c" - "lib/stdlib/exit.c" - "lib/linux/x86-mes-mescc/_exit.c" - "lib/linux/x86-mes-mescc/_write.c" - "lib/stdlib/puts.c" - "lib/string/strlen.c" - "lib/mes/write.c" - ]; - libmescc_SOURCES = [ - "lib/mes/globals.c" - "lib/linux/x86-mes-mescc/syscall-internal.c" - ]; - libtcc1_SOURCES = [ - "lib/libtcc1.c" - ]; - libc_SOURCES = [ - "lib/mes/__init_io.c" - "lib/mes/eputs.c" - "lib/mes/oputs.c" - "lib/mes/globals.c" - "lib/stdlib/exit.c" - "lib/linux/x86-mes-mescc/_exit.c" - "lib/linux/x86-mes-mescc/_write.c" - "lib/stdlib/puts.c" - "lib/string/strlen.c" - "lib/ctype/isnumber.c" - "lib/mes/abtol.c" - "lib/mes/cast.c" - "lib/mes/eputc.c" - "lib/mes/fdgetc.c" - "lib/mes/fdputc.c" - "lib/mes/fdputs.c" - "lib/mes/fdungetc.c" - "lib/mes/itoa.c" - "lib/mes/ltoa.c" - "lib/mes/ltoab.c" - "lib/mes/mes_open.c" - "lib/mes/ntoab.c" - "lib/mes/oputc.c" - "lib/mes/ultoa.c" - "lib/mes/utoa.c" - "lib/stub/__raise.c" - "lib/ctype/isdigit.c" - "lib/ctype/isspace.c" - "lib/ctype/isxdigit.c" - "lib/mes/assert_msg.c" - "lib/posix/write.c" - "lib/stdlib/atoi.c" - "lib/linux/lseek.c" - "lib/mes/__assert_fail.c" - "lib/mes/__buffered_read.c" - "lib/mes/__mes_debug.c" - "lib/posix/execv.c" - "lib/posix/getcwd.c" - "lib/posix/getenv.c" - "lib/posix/isatty.c" - "lib/posix/open.c" - "lib/posix/buffered-read.c" - "lib/posix/setenv.c" - "lib/posix/wait.c" - "lib/stdio/fgetc.c" - "lib/stdio/fputc.c" - "lib/stdio/fputs.c" - "lib/stdio/getc.c" - "lib/stdio/getchar.c" - "lib/stdio/putc.c" - "lib/stdio/putchar.c" - "lib/stdio/ungetc.c" - "lib/stdlib/free.c" - "lib/stdlib/realloc.c" - "lib/string/memchr.c" - "lib/string/memcmp.c" - "lib/string/memcpy.c" - "lib/string/memmove.c" - "lib/string/memset.c" - "lib/string/strcmp.c" - "lib/string/strcpy.c" - "lib/string/strncmp.c" - "lib/posix/raise.c" - "lib/linux/access.c" - "lib/linux/brk.c" - "lib/linux/chmod.c" - "lib/linux/clock_gettime.c" - "lib/linux/dup.c" - "lib/linux/dup2.c" - "lib/linux/execve.c" - "lib/linux/fork.c" - "lib/linux/fsync.c" - "lib/linux/_getcwd.c" - "lib/linux/gettimeofday.c" - "lib/linux/ioctl3.c" - "lib/linux/_open3.c" - "lib/linux/malloc.c" - "lib/linux/_read.c" - "lib/linux/time.c" - "lib/linux/unlink.c" - "lib/linux/wait4.c" - "lib/linux/waitpid.c" - "lib/linux/x86-mes-mescc/syscall.c" - "lib/linux/getpid.c" - "lib/linux/kill.c" - ]; - libc_tcc_SOURCES = [ - "lib/mes/__init_io.c" - "lib/mes/eputs.c" - "lib/mes/oputs.c" - "lib/mes/globals.c" - "lib/stdlib/exit.c" - "lib/linux/x86-mes-mescc/_exit.c" - "lib/linux/x86-mes-mescc/_write.c" - "lib/stdlib/puts.c" - "lib/string/strlen.c" - "lib/ctype/isnumber.c" - "lib/mes/abtol.c" - "lib/mes/cast.c" - "lib/mes/eputc.c" - "lib/mes/fdgetc.c" - "lib/mes/fdputc.c" - "lib/mes/fdputs.c" - "lib/mes/fdungetc.c" - "lib/mes/itoa.c" - "lib/mes/ltoa.c" - "lib/mes/ltoab.c" - "lib/mes/mes_open.c" - "lib/mes/ntoab.c" - "lib/mes/oputc.c" - "lib/mes/ultoa.c" - "lib/mes/utoa.c" - "lib/stub/__raise.c" - "lib/ctype/isdigit.c" - "lib/ctype/isspace.c" - "lib/ctype/isxdigit.c" - "lib/mes/assert_msg.c" - "lib/posix/write.c" - "lib/stdlib/atoi.c" - "lib/linux/lseek.c" - "lib/mes/__assert_fail.c" - "lib/mes/__buffered_read.c" - "lib/mes/__mes_debug.c" - "lib/posix/execv.c" - "lib/posix/getcwd.c" - "lib/posix/getenv.c" - "lib/posix/isatty.c" - "lib/posix/open.c" - "lib/posix/buffered-read.c" - "lib/posix/setenv.c" - "lib/posix/wait.c" - "lib/stdio/fgetc.c" - "lib/stdio/fputc.c" - "lib/stdio/fputs.c" - "lib/stdio/getc.c" - "lib/stdio/getchar.c" - "lib/stdio/putc.c" - "lib/stdio/putchar.c" - "lib/stdio/ungetc.c" - "lib/stdlib/free.c" - "lib/stdlib/realloc.c" - "lib/string/memchr.c" - "lib/string/memcmp.c" - "lib/string/memcpy.c" - "lib/string/memmove.c" - "lib/string/memset.c" - "lib/string/strcmp.c" - "lib/string/strcpy.c" - "lib/string/strncmp.c" - "lib/posix/raise.c" - "lib/linux/access.c" - "lib/linux/brk.c" - "lib/linux/chmod.c" - "lib/linux/clock_gettime.c" - "lib/linux/dup.c" - "lib/linux/dup2.c" - "lib/linux/execve.c" - "lib/linux/fork.c" - "lib/linux/fsync.c" - "lib/linux/_getcwd.c" - "lib/linux/gettimeofday.c" - "lib/linux/ioctl3.c" - "lib/linux/_open3.c" - "lib/linux/malloc.c" - "lib/linux/_read.c" - "lib/linux/time.c" - "lib/linux/unlink.c" - "lib/linux/wait4.c" - "lib/linux/waitpid.c" - "lib/linux/x86-mes-mescc/syscall.c" - "lib/linux/getpid.c" - "lib/linux/kill.c" - "lib/ctype/islower.c" - "lib/ctype/isupper.c" - "lib/ctype/tolower.c" - "lib/ctype/toupper.c" - "lib/mes/abtod.c" - "lib/mes/dtoab.c" - "lib/mes/search-path.c" - "lib/posix/execvp.c" - "lib/stdio/fclose.c" - "lib/stdio/fdopen.c" - "lib/stdio/ferror.c" - "lib/stdio/fflush.c" - "lib/stdio/fopen.c" - "lib/stdio/fprintf.c" - "lib/stdio/fread.c" - "lib/stdio/fseek.c" - "lib/stdio/ftell.c" - "lib/stdio/fwrite.c" - "lib/stdio/printf.c" - "lib/stdio/remove.c" - "lib/stdio/snprintf.c" - "lib/stdio/sprintf.c" - "lib/stdio/sscanf.c" - "lib/stdio/vfprintf.c" - "lib/stdio/vprintf.c" - "lib/stdio/vsnprintf.c" - "lib/stdio/vsprintf.c" - "lib/stdio/vsscanf.c" - "lib/stdlib/calloc.c" - "lib/stdlib/qsort.c" - "lib/stdlib/strtod.c" - "lib/stdlib/strtof.c" - "lib/stdlib/strtol.c" - "lib/stdlib/strtold.c" - "lib/stdlib/strtoll.c" - "lib/stdlib/strtoul.c" - "lib/stdlib/strtoull.c" - "lib/string/memmem.c" - "lib/string/strcat.c" - "lib/string/strchr.c" - "lib/string/strlwr.c" - "lib/string/strncpy.c" - "lib/string/strrchr.c" - "lib/string/strstr.c" - "lib/string/strupr.c" - "lib/stub/sigaction.c" - "lib/stub/ldexp.c" - "lib/stub/mprotect.c" - "lib/stub/localtime.c" - "lib/stub/sigemptyset.c" - "lib/x86-mes-mescc/setjmp.c" - "lib/linux/close.c" - "lib/linux/rmdir.c" - "lib/linux/stat.c" - ]; - libc_gnu_SOURCES = [ - "lib/mes/__init_io.c" - "lib/mes/eputs.c" - "lib/mes/oputs.c" - "lib/mes/globals.c" - "lib/stdlib/exit.c" - "lib/linux/x86-mes-mescc/_exit.c" - "lib/linux/x86-mes-mescc/_write.c" - "lib/stdlib/puts.c" - "lib/string/strlen.c" - "lib/ctype/isnumber.c" - "lib/mes/abtol.c" - "lib/mes/cast.c" - "lib/mes/eputc.c" - "lib/mes/fdgetc.c" - "lib/mes/fdputc.c" - "lib/mes/fdputs.c" - "lib/mes/fdungetc.c" - "lib/mes/itoa.c" - "lib/mes/ltoa.c" - "lib/mes/ltoab.c" - "lib/mes/mes_open.c" - "lib/mes/ntoab.c" - "lib/mes/oputc.c" - "lib/mes/ultoa.c" - "lib/mes/utoa.c" - "lib/stub/__raise.c" - "lib/ctype/isdigit.c" - "lib/ctype/isspace.c" - "lib/ctype/isxdigit.c" - "lib/mes/assert_msg.c" - "lib/posix/write.c" - "lib/stdlib/atoi.c" - "lib/linux/lseek.c" - "lib/mes/__assert_fail.c" - "lib/mes/__buffered_read.c" - "lib/mes/__mes_debug.c" - "lib/posix/execv.c" - "lib/posix/getcwd.c" - "lib/posix/getenv.c" - "lib/posix/isatty.c" - "lib/posix/open.c" - "lib/posix/buffered-read.c" - "lib/posix/setenv.c" - "lib/posix/wait.c" - "lib/stdio/fgetc.c" - "lib/stdio/fputc.c" - "lib/stdio/fputs.c" - "lib/stdio/getc.c" - "lib/stdio/getchar.c" - "lib/stdio/putc.c" - "lib/stdio/putchar.c" - "lib/stdio/ungetc.c" - "lib/stdlib/free.c" - "lib/stdlib/realloc.c" - "lib/string/memchr.c" - "lib/string/memcmp.c" - "lib/string/memcpy.c" - "lib/string/memmove.c" - "lib/string/memset.c" - "lib/string/strcmp.c" - "lib/string/strcpy.c" - "lib/string/strncmp.c" - "lib/posix/raise.c" - "lib/linux/access.c" - "lib/linux/brk.c" - "lib/linux/chmod.c" - "lib/linux/clock_gettime.c" - "lib/linux/dup.c" - "lib/linux/dup2.c" - "lib/linux/execve.c" - "lib/linux/fork.c" - "lib/linux/fsync.c" - "lib/linux/_getcwd.c" - "lib/linux/gettimeofday.c" - "lib/linux/ioctl3.c" - "lib/linux/_open3.c" - "lib/linux/malloc.c" - "lib/linux/_read.c" - "lib/linux/time.c" - "lib/linux/unlink.c" - "lib/linux/wait4.c" - "lib/linux/waitpid.c" - "lib/linux/x86-mes-mescc/syscall.c" - "lib/linux/getpid.c" - "lib/linux/kill.c" - "lib/ctype/islower.c" - "lib/ctype/isupper.c" - "lib/ctype/tolower.c" - "lib/ctype/toupper.c" - "lib/mes/abtod.c" - "lib/mes/dtoab.c" - "lib/mes/search-path.c" - "lib/posix/execvp.c" - "lib/stdio/fclose.c" - "lib/stdio/fdopen.c" - "lib/stdio/ferror.c" - "lib/stdio/fflush.c" - "lib/stdio/fopen.c" - "lib/stdio/fprintf.c" - "lib/stdio/fread.c" - "lib/stdio/fseek.c" - "lib/stdio/ftell.c" - "lib/stdio/fwrite.c" - "lib/stdio/printf.c" - "lib/stdio/remove.c" - "lib/stdio/snprintf.c" - "lib/stdio/sprintf.c" - "lib/stdio/sscanf.c" - "lib/stdio/vfprintf.c" - "lib/stdio/vprintf.c" - "lib/stdio/vsnprintf.c" - "lib/stdio/vsprintf.c" - "lib/stdio/vsscanf.c" - "lib/stdlib/calloc.c" - "lib/stdlib/qsort.c" - "lib/stdlib/strtod.c" - "lib/stdlib/strtof.c" - "lib/stdlib/strtol.c" - "lib/stdlib/strtold.c" - "lib/stdlib/strtoll.c" - "lib/stdlib/strtoul.c" - "lib/stdlib/strtoull.c" - "lib/string/memmem.c" - "lib/string/strcat.c" - "lib/string/strchr.c" - "lib/string/strlwr.c" - "lib/string/strncpy.c" - "lib/string/strrchr.c" - "lib/string/strstr.c" - "lib/string/strupr.c" - "lib/stub/sigaction.c" - "lib/stub/ldexp.c" - "lib/stub/mprotect.c" - "lib/stub/localtime.c" - "lib/stub/sigemptyset.c" - "lib/x86-mes-mescc/setjmp.c" - "lib/linux/close.c" - "lib/linux/rmdir.c" - "lib/linux/stat.c" - "lib/ctype/isalnum.c" - "lib/ctype/isalpha.c" - "lib/ctype/isascii.c" - "lib/ctype/iscntrl.c" - "lib/ctype/isgraph.c" - "lib/ctype/isprint.c" - "lib/ctype/ispunct.c" - "lib/dirent/__getdirentries.c" - "lib/dirent/closedir.c" - "lib/dirent/opendir.c" - "lib/dirent/readdir.c" - "lib/math/ceil.c" - "lib/math/fabs.c" - "lib/math/floor.c" - "lib/mes/fdgets.c" - "lib/posix/alarm.c" - "lib/posix/execl.c" - "lib/posix/execlp.c" - "lib/posix/mktemp.c" - "lib/posix/sbrk.c" - "lib/posix/sleep.c" - "lib/posix/unsetenv.c" - "lib/stdio/clearerr.c" - "lib/stdio/feof.c" - "lib/stdio/fgets.c" - "lib/stdio/fileno.c" - "lib/stdio/freopen.c" - "lib/stdio/fscanf.c" - "lib/stdio/perror.c" - "lib/stdio/vfscanf.c" - "lib/stdlib/__exit.c" - "lib/stdlib/abort.c" - "lib/stdlib/abs.c" - "lib/stdlib/alloca.c" - "lib/stdlib/atexit.c" - "lib/stdlib/atof.c" - "lib/stdlib/atol.c" - "lib/stdlib/mbstowcs.c" - "lib/string/bcmp.c" - "lib/string/bcopy.c" - "lib/string/bzero.c" - "lib/string/index.c" - "lib/string/rindex.c" - "lib/string/strcspn.c" - "lib/string/strdup.c" - "lib/string/strerror.c" - "lib/string/strncat.c" - "lib/string/strpbrk.c" - "lib/string/strspn.c" - "lib/stub/__cleanup.c" - "lib/stub/atan2.c" - "lib/stub/bsearch.c" - "lib/stub/chown.c" - "lib/stub/cos.c" - "lib/stub/ctime.c" - "lib/stub/exp.c" - "lib/stub/fpurge.c" - "lib/stub/freadahead.c" - "lib/stub/frexp.c" - "lib/stub/getgrgid.c" - "lib/stub/getgrnam.c" - "lib/stub/getlogin.c" - "lib/stub/getpgid.c" - "lib/stub/getpgrp.c" - "lib/stub/getpwnam.c" - "lib/stub/getpwuid.c" - "lib/stub/gmtime.c" - "lib/stub/log.c" - "lib/stub/mktime.c" - "lib/stub/modf.c" - "lib/stub/pclose.c" - "lib/stub/popen.c" - "lib/stub/pow.c" - "lib/stub/rand.c" - "lib/stub/rewind.c" - "lib/stub/setbuf.c" - "lib/stub/setgrent.c" - "lib/stub/setlocale.c" - "lib/stub/setvbuf.c" - "lib/stub/sigaddset.c" - "lib/stub/sigblock.c" - "lib/stub/sigdelset.c" - "lib/stub/sigsetmask.c" - "lib/stub/sin.c" - "lib/stub/sqrt.c" - "lib/stub/strftime.c" - "lib/stub/sys_siglist.c" - "lib/stub/system.c" - "lib/stub/times.c" - "lib/stub/ttyname.c" - "lib/stub/umask.c" - "lib/stub/utime.c" - "lib/linux/chdir.c" - "lib/linux/fcntl.c" - "lib/linux/fstat.c" - "lib/linux/getdents.c" - "lib/linux/getegid.c" - "lib/linux/geteuid.c" - "lib/linux/getgid.c" - "lib/linux/getppid.c" - "lib/linux/getrusage.c" - "lib/linux/getuid.c" - "lib/linux/ioctl.c" - "lib/linux/link.c" - "lib/linux/lstat.c" - "lib/linux/mkdir.c" - "lib/linux/mknod.c" - "lib/linux/nanosleep.c" - "lib/linux/pipe.c" - "lib/linux/readlink.c" - "lib/linux/rename.c" - "lib/linux/setgid.c" - "lib/linux/settimer.c" - "lib/linux/setuid.c" - "lib/linux/signal.c" - "lib/linux/sigprogmask.c" - "lib/linux/symlink.c" - ]; - mes_SOURCES = [ - "src/builtins.c" - "src/cc.c" - "src/core.c" - "src/display.c" - "src/eval-apply.c" - "src/gc.c" - "src/globals.c" - "src/hash.c" - "src/lib.c" - "src/math.c" - "src/mes.c" - "src/module.c" - "src/posix.c" - "src/reader.c" - "src/stack.c" - "src/string.c" - "src/struct.c" - "src/symbol.c" - "src/vector.c" - ]; - }; - x86.linux.gcc = { - libc_mini_SOURCES = [ - "lib/mes/__init_io.c" - "lib/mes/eputs.c" - "lib/mes/oputs.c" - "lib/mes/globals.c" - "lib/stdlib/exit.c" - "lib/linux/x86-mes-gcc/_exit.c" - "lib/linux/x86-mes-gcc/_write.c" - "lib/stdlib/puts.c" - "lib/string/strlen.c" - "lib/mes/write.c" - ]; - libmescc_SOURCES = [ - "lib/mes/globals.c" - "lib/linux/x86-mes-gcc/syscall-internal.c" - ]; - libtcc1_SOURCES = [ - "lib/libtcc1.c" - ]; - libc_SOURCES = [ - "lib/mes/__init_io.c" - "lib/mes/eputs.c" - "lib/mes/oputs.c" - "lib/mes/globals.c" - "lib/stdlib/exit.c" - "lib/linux/x86-mes-gcc/_exit.c" - "lib/linux/x86-mes-gcc/_write.c" - "lib/stdlib/puts.c" - "lib/string/strlen.c" - "lib/ctype/isnumber.c" - "lib/mes/abtol.c" - "lib/mes/cast.c" - "lib/mes/eputc.c" - "lib/mes/fdgetc.c" - "lib/mes/fdputc.c" - "lib/mes/fdputs.c" - "lib/mes/fdungetc.c" - "lib/mes/itoa.c" - "lib/mes/ltoa.c" - "lib/mes/ltoab.c" - "lib/mes/mes_open.c" - "lib/mes/ntoab.c" - "lib/mes/oputc.c" - "lib/mes/ultoa.c" - "lib/mes/utoa.c" - "lib/stub/__raise.c" - "lib/ctype/isdigit.c" - "lib/ctype/isspace.c" - "lib/ctype/isxdigit.c" - "lib/mes/assert_msg.c" - "lib/posix/write.c" - "lib/stdlib/atoi.c" - "lib/linux/lseek.c" - "lib/mes/__assert_fail.c" - "lib/mes/__buffered_read.c" - "lib/mes/__mes_debug.c" - "lib/posix/execv.c" - "lib/posix/getcwd.c" - "lib/posix/getenv.c" - "lib/posix/isatty.c" - "lib/posix/open.c" - "lib/posix/buffered-read.c" - "lib/posix/setenv.c" - "lib/posix/wait.c" - "lib/stdio/fgetc.c" - "lib/stdio/fputc.c" - "lib/stdio/fputs.c" - "lib/stdio/getc.c" - "lib/stdio/getchar.c" - "lib/stdio/putc.c" - "lib/stdio/putchar.c" - "lib/stdio/ungetc.c" - "lib/stdlib/free.c" - "lib/stdlib/realloc.c" - "lib/string/memchr.c" - "lib/string/memcmp.c" - "lib/string/memcpy.c" - "lib/string/memmove.c" - "lib/string/memset.c" - "lib/string/strcmp.c" - "lib/string/strcpy.c" - "lib/string/strncmp.c" - "lib/posix/raise.c" - "lib/linux/access.c" - "lib/linux/brk.c" - "lib/linux/chmod.c" - "lib/linux/clock_gettime.c" - "lib/linux/dup.c" - "lib/linux/dup2.c" - "lib/linux/execve.c" - "lib/linux/fork.c" - "lib/linux/fsync.c" - "lib/linux/_getcwd.c" - "lib/linux/gettimeofday.c" - "lib/linux/ioctl3.c" - "lib/linux/_open3.c" - "lib/linux/malloc.c" - "lib/linux/_read.c" - "lib/linux/time.c" - "lib/linux/unlink.c" - "lib/linux/wait4.c" - "lib/linux/waitpid.c" - "lib/linux/x86-mes-gcc/syscall.c" - "lib/linux/getpid.c" - "lib/linux/kill.c" - ]; - libc_tcc_SOURCES = [ - "lib/mes/__init_io.c" - "lib/mes/eputs.c" - "lib/mes/oputs.c" - "lib/mes/globals.c" - "lib/stdlib/exit.c" - "lib/linux/x86-mes-gcc/_exit.c" - "lib/linux/x86-mes-gcc/_write.c" - "lib/stdlib/puts.c" - "lib/string/strlen.c" - "lib/ctype/isnumber.c" - "lib/mes/abtol.c" - "lib/mes/cast.c" - "lib/mes/eputc.c" - "lib/mes/fdgetc.c" - "lib/mes/fdputc.c" - "lib/mes/fdputs.c" - "lib/mes/fdungetc.c" - "lib/mes/itoa.c" - "lib/mes/ltoa.c" - "lib/mes/ltoab.c" - "lib/mes/mes_open.c" - "lib/mes/ntoab.c" - "lib/mes/oputc.c" - "lib/mes/ultoa.c" - "lib/mes/utoa.c" - "lib/stub/__raise.c" - "lib/ctype/isdigit.c" - "lib/ctype/isspace.c" - "lib/ctype/isxdigit.c" - "lib/mes/assert_msg.c" - "lib/posix/write.c" - "lib/stdlib/atoi.c" - "lib/linux/lseek.c" - "lib/mes/__assert_fail.c" - "lib/mes/__buffered_read.c" - "lib/mes/__mes_debug.c" - "lib/posix/execv.c" - "lib/posix/getcwd.c" - "lib/posix/getenv.c" - "lib/posix/isatty.c" - "lib/posix/open.c" - "lib/posix/buffered-read.c" - "lib/posix/setenv.c" - "lib/posix/wait.c" - "lib/stdio/fgetc.c" - "lib/stdio/fputc.c" - "lib/stdio/fputs.c" - "lib/stdio/getc.c" - "lib/stdio/getchar.c" - "lib/stdio/putc.c" - "lib/stdio/putchar.c" - "lib/stdio/ungetc.c" - "lib/stdlib/free.c" - "lib/stdlib/realloc.c" - "lib/string/memchr.c" - "lib/string/memcmp.c" - "lib/string/memcpy.c" - "lib/string/memmove.c" - "lib/string/memset.c" - "lib/string/strcmp.c" - "lib/string/strcpy.c" - "lib/string/strncmp.c" - "lib/posix/raise.c" - "lib/linux/access.c" - "lib/linux/brk.c" - "lib/linux/chmod.c" - "lib/linux/clock_gettime.c" - "lib/linux/dup.c" - "lib/linux/dup2.c" - "lib/linux/execve.c" - "lib/linux/fork.c" - "lib/linux/fsync.c" - "lib/linux/_getcwd.c" - "lib/linux/gettimeofday.c" - "lib/linux/ioctl3.c" - "lib/linux/_open3.c" - "lib/linux/malloc.c" - "lib/linux/_read.c" - "lib/linux/time.c" - "lib/linux/unlink.c" - "lib/linux/wait4.c" - "lib/linux/waitpid.c" - "lib/linux/x86-mes-gcc/syscall.c" - "lib/linux/getpid.c" - "lib/linux/kill.c" - "lib/ctype/islower.c" - "lib/ctype/isupper.c" - "lib/ctype/tolower.c" - "lib/ctype/toupper.c" - "lib/mes/abtod.c" - "lib/mes/dtoab.c" - "lib/mes/search-path.c" - "lib/posix/execvp.c" - "lib/stdio/fclose.c" - "lib/stdio/fdopen.c" - "lib/stdio/ferror.c" - "lib/stdio/fflush.c" - "lib/stdio/fopen.c" - "lib/stdio/fprintf.c" - "lib/stdio/fread.c" - "lib/stdio/fseek.c" - "lib/stdio/ftell.c" - "lib/stdio/fwrite.c" - "lib/stdio/printf.c" - "lib/stdio/remove.c" - "lib/stdio/snprintf.c" - "lib/stdio/sprintf.c" - "lib/stdio/sscanf.c" - "lib/stdio/vfprintf.c" - "lib/stdio/vprintf.c" - "lib/stdio/vsnprintf.c" - "lib/stdio/vsprintf.c" - "lib/stdio/vsscanf.c" - "lib/stdlib/calloc.c" - "lib/stdlib/qsort.c" - "lib/stdlib/strtod.c" - "lib/stdlib/strtof.c" - "lib/stdlib/strtol.c" - "lib/stdlib/strtold.c" - "lib/stdlib/strtoll.c" - "lib/stdlib/strtoul.c" - "lib/stdlib/strtoull.c" - "lib/string/memmem.c" - "lib/string/strcat.c" - "lib/string/strchr.c" - "lib/string/strlwr.c" - "lib/string/strncpy.c" - "lib/string/strrchr.c" - "lib/string/strstr.c" - "lib/string/strupr.c" - "lib/stub/sigaction.c" - "lib/stub/ldexp.c" - "lib/stub/mprotect.c" - "lib/stub/localtime.c" - "lib/stub/sigemptyset.c" - "lib/x86-mes-gcc/setjmp.c" - "lib/linux/close.c" - "lib/linux/rmdir.c" - "lib/linux/stat.c" - ]; - libc_gnu_SOURCES = [ - "lib/mes/__init_io.c" - "lib/mes/eputs.c" - "lib/mes/oputs.c" - "lib/mes/globals.c" - "lib/stdlib/exit.c" - "lib/linux/x86-mes-gcc/_exit.c" - "lib/linux/x86-mes-gcc/_write.c" - "lib/stdlib/puts.c" - "lib/string/strlen.c" - "lib/ctype/isnumber.c" - "lib/mes/abtol.c" - "lib/mes/cast.c" - "lib/mes/eputc.c" - "lib/mes/fdgetc.c" - "lib/mes/fdputc.c" - "lib/mes/fdputs.c" - "lib/mes/fdungetc.c" - "lib/mes/itoa.c" - "lib/mes/ltoa.c" - "lib/mes/ltoab.c" - "lib/mes/mes_open.c" - "lib/mes/ntoab.c" - "lib/mes/oputc.c" - "lib/mes/ultoa.c" - "lib/mes/utoa.c" - "lib/stub/__raise.c" - "lib/ctype/isdigit.c" - "lib/ctype/isspace.c" - "lib/ctype/isxdigit.c" - "lib/mes/assert_msg.c" - "lib/posix/write.c" - "lib/stdlib/atoi.c" - "lib/linux/lseek.c" - "lib/mes/__assert_fail.c" - "lib/mes/__buffered_read.c" - "lib/mes/__mes_debug.c" - "lib/posix/execv.c" - "lib/posix/getcwd.c" - "lib/posix/getenv.c" - "lib/posix/isatty.c" - "lib/posix/open.c" - "lib/posix/buffered-read.c" - "lib/posix/setenv.c" - "lib/posix/wait.c" - "lib/stdio/fgetc.c" - "lib/stdio/fputc.c" - "lib/stdio/fputs.c" - "lib/stdio/getc.c" - "lib/stdio/getchar.c" - "lib/stdio/putc.c" - "lib/stdio/putchar.c" - "lib/stdio/ungetc.c" - "lib/stdlib/free.c" - "lib/stdlib/realloc.c" - "lib/string/memchr.c" - "lib/string/memcmp.c" - "lib/string/memcpy.c" - "lib/string/memmove.c" - "lib/string/memset.c" - "lib/string/strcmp.c" - "lib/string/strcpy.c" - "lib/string/strncmp.c" - "lib/posix/raise.c" - "lib/linux/access.c" - "lib/linux/brk.c" - "lib/linux/chmod.c" - "lib/linux/clock_gettime.c" - "lib/linux/dup.c" - "lib/linux/dup2.c" - "lib/linux/execve.c" - "lib/linux/fork.c" - "lib/linux/fsync.c" - "lib/linux/_getcwd.c" - "lib/linux/gettimeofday.c" - "lib/linux/ioctl3.c" - "lib/linux/_open3.c" - "lib/linux/malloc.c" - "lib/linux/_read.c" - "lib/linux/time.c" - "lib/linux/unlink.c" - "lib/linux/wait4.c" - "lib/linux/waitpid.c" - "lib/linux/x86-mes-gcc/syscall.c" - "lib/linux/getpid.c" - "lib/linux/kill.c" - "lib/ctype/islower.c" - "lib/ctype/isupper.c" - "lib/ctype/tolower.c" - "lib/ctype/toupper.c" - "lib/mes/abtod.c" - "lib/mes/dtoab.c" - "lib/mes/search-path.c" - "lib/posix/execvp.c" - "lib/stdio/fclose.c" - "lib/stdio/fdopen.c" - "lib/stdio/ferror.c" - "lib/stdio/fflush.c" - "lib/stdio/fopen.c" - "lib/stdio/fprintf.c" - "lib/stdio/fread.c" - "lib/stdio/fseek.c" - "lib/stdio/ftell.c" - "lib/stdio/fwrite.c" - "lib/stdio/printf.c" - "lib/stdio/remove.c" - "lib/stdio/snprintf.c" - "lib/stdio/sprintf.c" - "lib/stdio/sscanf.c" - "lib/stdio/vfprintf.c" - "lib/stdio/vprintf.c" - "lib/stdio/vsnprintf.c" - "lib/stdio/vsprintf.c" - "lib/stdio/vsscanf.c" - "lib/stdlib/calloc.c" - "lib/stdlib/qsort.c" - "lib/stdlib/strtod.c" - "lib/stdlib/strtof.c" - "lib/stdlib/strtol.c" - "lib/stdlib/strtold.c" - "lib/stdlib/strtoll.c" - "lib/stdlib/strtoul.c" - "lib/stdlib/strtoull.c" - "lib/string/memmem.c" - "lib/string/strcat.c" - "lib/string/strchr.c" - "lib/string/strlwr.c" - "lib/string/strncpy.c" - "lib/string/strrchr.c" - "lib/string/strstr.c" - "lib/string/strupr.c" - "lib/stub/sigaction.c" - "lib/stub/ldexp.c" - "lib/stub/mprotect.c" - "lib/stub/localtime.c" - "lib/stub/sigemptyset.c" - "lib/x86-mes-gcc/setjmp.c" - "lib/linux/close.c" - "lib/linux/rmdir.c" - "lib/linux/stat.c" - "lib/ctype/isalnum.c" - "lib/ctype/isalpha.c" - "lib/ctype/isascii.c" - "lib/ctype/iscntrl.c" - "lib/ctype/isgraph.c" - "lib/ctype/isprint.c" - "lib/ctype/ispunct.c" - "lib/dirent/__getdirentries.c" - "lib/dirent/closedir.c" - "lib/dirent/opendir.c" - "lib/dirent/readdir.c" - "lib/math/ceil.c" - "lib/math/fabs.c" - "lib/math/floor.c" - "lib/mes/fdgets.c" - "lib/posix/alarm.c" - "lib/posix/execl.c" - "lib/posix/execlp.c" - "lib/posix/mktemp.c" - "lib/posix/sbrk.c" - "lib/posix/sleep.c" - "lib/posix/unsetenv.c" - "lib/stdio/clearerr.c" - "lib/stdio/feof.c" - "lib/stdio/fgets.c" - "lib/stdio/fileno.c" - "lib/stdio/freopen.c" - "lib/stdio/fscanf.c" - "lib/stdio/perror.c" - "lib/stdio/vfscanf.c" - "lib/stdlib/__exit.c" - "lib/stdlib/abort.c" - "lib/stdlib/abs.c" - "lib/stdlib/alloca.c" - "lib/stdlib/atexit.c" - "lib/stdlib/atof.c" - "lib/stdlib/atol.c" - "lib/stdlib/mbstowcs.c" - "lib/string/bcmp.c" - "lib/string/bcopy.c" - "lib/string/bzero.c" - "lib/string/index.c" - "lib/string/rindex.c" - "lib/string/strcspn.c" - "lib/string/strdup.c" - "lib/string/strerror.c" - "lib/string/strncat.c" - "lib/string/strpbrk.c" - "lib/string/strspn.c" - "lib/stub/__cleanup.c" - "lib/stub/atan2.c" - "lib/stub/bsearch.c" - "lib/stub/chown.c" - "lib/stub/cos.c" - "lib/stub/ctime.c" - "lib/stub/exp.c" - "lib/stub/fpurge.c" - "lib/stub/freadahead.c" - "lib/stub/frexp.c" - "lib/stub/getgrgid.c" - "lib/stub/getgrnam.c" - "lib/stub/getlogin.c" - "lib/stub/getpgid.c" - "lib/stub/getpgrp.c" - "lib/stub/getpwnam.c" - "lib/stub/getpwuid.c" - "lib/stub/gmtime.c" - "lib/stub/log.c" - "lib/stub/mktime.c" - "lib/stub/modf.c" - "lib/stub/pclose.c" - "lib/stub/popen.c" - "lib/stub/pow.c" - "lib/stub/rand.c" - "lib/stub/rewind.c" - "lib/stub/setbuf.c" - "lib/stub/setgrent.c" - "lib/stub/setlocale.c" - "lib/stub/setvbuf.c" - "lib/stub/sigaddset.c" - "lib/stub/sigblock.c" - "lib/stub/sigdelset.c" - "lib/stub/sigsetmask.c" - "lib/stub/sin.c" - "lib/stub/sqrt.c" - "lib/stub/strftime.c" - "lib/stub/sys_siglist.c" - "lib/stub/system.c" - "lib/stub/times.c" - "lib/stub/ttyname.c" - "lib/stub/umask.c" - "lib/stub/utime.c" - "lib/linux/chdir.c" - "lib/linux/fcntl.c" - "lib/linux/fstat.c" - "lib/linux/getdents.c" - "lib/linux/getegid.c" - "lib/linux/geteuid.c" - "lib/linux/getgid.c" - "lib/linux/getppid.c" - "lib/linux/getrusage.c" - "lib/linux/getuid.c" - "lib/linux/ioctl.c" - "lib/linux/link.c" - "lib/linux/lstat.c" - "lib/linux/mkdir.c" - "lib/linux/mknod.c" - "lib/linux/nanosleep.c" - "lib/linux/pipe.c" - "lib/linux/readlink.c" - "lib/linux/rename.c" - "lib/linux/setgid.c" - "lib/linux/settimer.c" - "lib/linux/setuid.c" - "lib/linux/signal.c" - "lib/linux/sigprogmask.c" - "lib/linux/symlink.c" - ]; - mes_SOURCES = [ - "src/builtins.c" - "src/cc.c" - "src/core.c" - "src/display.c" - "src/eval-apply.c" - "src/gc.c" - "src/globals.c" - "src/hash.c" - "src/lib.c" - "src/math.c" - "src/mes.c" - "src/module.c" - "src/posix.c" - "src/reader.c" - "src/stack.c" - "src/string.c" - "src/struct.c" - "src/symbol.c" - "src/vector.c" - ]; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/musl/1.1.nix b/pkgs/os-specific/linux/minimal-bootstrap/musl/1.1.nix deleted file mode 100644 index 704ee42edeb1..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/musl/1.1.nix +++ /dev/null @@ -1,116 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumake -, gnupatch -, gnused -, gnugrep -, gnutar -, gzip -}: - -let - inherit (import ./common.nix { inherit lib; }) pname meta; - version = "1.1.24"; - - src = fetchurl { - url = "https://musl.libc.org/releases/musl-${version}.tar.gz"; - hash = "sha256-E3DJqBKyzyp9koAlEMygBYzDfmanvt1wBR8KNAFQIqM="; - }; - - # Thanks to the live-bootstrap project! - # See https://github.com/fosslinux/live-bootstrap/blob/d98f97e21413efc32c770d0356f1feda66025686/sysa/musl-1.1.24/musl-1.1.24.sh - liveBootstrap = "https://github.com/fosslinux/live-bootstrap/raw/d98f97e21413efc32c770d0356f1feda66025686/sysa/musl-1.1.24"; - patches = [ - (fetchurl { - url = "${liveBootstrap}/patches/avoid_set_thread_area.patch"; - hash = "sha256-TsbBZXk4/KMZG9EKi7cF+sullVXrxlizLNH0UHGXsPs="; - }) - (fetchurl { - url = "${liveBootstrap}/patches/avoid_sys_clone.patch"; - hash = "sha256-/ZmH64J57MmbxdfQ4RNjamAiBdkImMTlHsHdgV4gMj4="; - }) - (fetchurl { - url = "${liveBootstrap}/patches/fenv.patch"; - hash = "sha256-vMVGjoN4deAJW5gsSqA207SJqAbvhrnOsGK49DdEiTI="; - }) - (fetchurl { - url = "${liveBootstrap}/patches/makefile.patch"; - hash = "sha256-03iYBAUnsrEdLIIhhhq5mM6BGnPn2EfUmIHu51opxbw="; - }) - (fetchurl { - url = "${liveBootstrap}/patches/musl_weak_symbols.patch"; - hash = "sha256-/d9a2eUkpe9uyi1ye6T4CiYc9MR3FZ9na0Gb90+g4v0="; - }) - (fetchurl { - url = "${liveBootstrap}/patches/set_thread_area.patch"; - hash = "sha256-RIZYqbbRSx4X/0iFUhriwwBRmoXVR295GNBUjf2UrM0="; - }) - (fetchurl { - url = "${liveBootstrap}/patches/sigsetjmp.patch"; - hash = "sha256-wd2Aev1zPJXy3q933aiup5p1IMKzVJBquAyl3gbK4PU="; - }) - # FIXME: this patch causes the build to fail - # (fetchurl { - # url = "${liveBootstrap}/patches/stdio_flush_on_exit.patch"; - # hash = "sha256-/z5ze3h3QTysay8nRvyvwPv3pmTcKptdkBIaMCoeLDg="; - # }) - # HACK: always flush stdio immediately - ./always-flush.patch - (fetchurl { - url = "${liveBootstrap}/patches/va_list.patch"; - hash = "sha256-UmcMIl+YCi3wIeVvjbsCyqFlkyYsM4ECNwTfXP+s7vg="; - }) - ]; -in -bash.runCommand "${pname}-${version}" { - inherit pname version meta; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnupatch - gnused - gnugrep - gnutar - gzip - ]; -} '' - # Unpack - tar xzf ${src} - cd musl-${version} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np0 -i ${f}") patches} - # tcc does not support complex types - rm -rf src/complex - # Configure fails without this - mkdir -p /dev - # https://github.com/ZilchOS/bootstrap-from-tcc/blob/2e0c68c36b3437386f786d619bc9a16177f2e149/using-nix/2a3-intermediate-musl.nix - sed -i 's|/bin/sh|${bash}/bin/bash|' \ - tools/*.sh - chmod 755 tools/*.sh - # patch popen/system to search in PATH instead of hardcoding /bin/sh - sed -i 's|posix_spawn(&pid, "/bin/sh",|posix_spawnp(\&pid, "sh",|' \ - src/stdio/popen.c src/process/system.c - sed -i 's|execl("/bin/sh", "sh", "-c",|execlp("sh", "-c",|'\ - src/misc/wordexp.c - - # Configure - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --disable-shared \ - CC=tcc - - # Build - make AR="tcc -ar" RANLIB=true CFLAGS="-DSYSCALL_NO_TLS" - - # Install - make install - cp ${tinycc.libs}/lib/libtcc1.a $out/lib -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/musl/always-flush.patch b/pkgs/os-specific/linux/minimal-bootstrap/musl/always-flush.patch deleted file mode 100644 index cdeddf962d9d..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/musl/always-flush.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git src/env/__libc_start_main.c src/env/__libc_start_main.c -index 8fbe526..9476c22 100644 ---- src/env/__libc_start_main.c -+++ src/env/__libc_start_main.c -@@ -91,6 +91,7 @@ static int libc_start_main_stage2(int (*main)(int,char **,char **), int argc, ch - __libc_start_init(); - - /* Pass control to the application */ -+ setbuf(stdout, NULL); - exit(main(argc, argv, envp)); - return 0; - } diff --git a/pkgs/os-specific/linux/minimal-bootstrap/musl/common.nix b/pkgs/os-specific/linux/minimal-bootstrap/musl/common.nix deleted file mode 100644 index 52db5f947425..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/musl/common.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ lib }: - -{ - pname = "musl"; - - meta = with lib; { - description = "An efficient, small, quality libc implementation"; - homepage = "https://musl.libc.org"; - license = licenses.mit; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/musl/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/musl/default.nix deleted file mode 100644 index 437ef342f6ae..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/musl/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, gcc -, binutils -, gnumake -, gnugrep -, gnused -, gnutar -, gzip -}: -let - inherit (import ./common.nix { inherit lib; }) pname meta; - version = "1.2.4"; - - src = fetchurl { - url = "https://musl.libc.org/releases/musl-${version}.tar.gz"; - hash = "sha256-ejXq4z1TcqfA2hGI3nmHJvaIJVE7euPr6XqqpSEU8Dk="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version meta; - - nativeBuildInputs = [ - gcc - binutils - gnumake - gnused - gnugrep - gnutar - gzip - ]; - - passthru.tests.hello-world = result: - bash.runCommand "${pname}-simple-program-${version}" { - nativeBuildInputs = [ gcc binutils result ]; - } '' - cat <<EOF >> test.c - #include <stdio.h> - int main() { - printf("Hello World!\n"); - return 0; - } - EOF - musl-gcc -o test test.c - ./test - mkdir $out - ''; -} '' - # Unpack - tar xzf ${src} - cd musl-${version} - - # Patch - # https://github.com/ZilchOS/bootstrap-from-tcc/blob/2e0c68c36b3437386f786d619bc9a16177f2e149/using-nix/2a3-intermediate-musl.nix - sed -i 's|/bin/sh|${bash}/bin/bash|' \ - tools/*.sh - # patch popen/system to search in PATH instead of hardcoding /bin/sh - sed -i 's|posix_spawn(&pid, "/bin/sh",|posix_spawnp(\&pid, "sh",|' \ - src/stdio/popen.c src/process/system.c - sed -i 's|execl("/bin/sh", "sh", "-c",|execlp("sh", "-c",|'\ - src/misc/wordexp.c - - # Configure - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --syslibdir=$out/lib \ - --enable-wrapper - - # Build - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install - sed -i 's|/bin/sh|${bash}/bin/bash|' $out/bin/* - ln -s ../lib/libc.so $out/bin/ldd -'' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix deleted file mode 100644 index 7f2e8ab81a39..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ hostPlatform -}: - -rec { - name = "stage0-posix-${version}-source"; - version = "1.6.0"; - rev = "Release_${version}"; - outputHashAlgo = "sha256"; - outputHash = "sha256-epUaShjKiAd749ICvc6rS6WhUkS8R4heKuPdwUjEtsQ="; - - /* - Since `make-minimal-bootstrap-sources` requires nixpkgs and nix it - will create a circular dependency if it is used in place of the - binary bootstrap-files. To break the circular dependency, - `minimal-bootstrap-sources` extends `make-minimal-bootstrap-sources` - by adding Fixed Output Derivation (FOD) attributes. These cause - the builder to be skipped if the expected output is found (by - its hash) in the store or on a substituter. - - # How do I update the hash? - - Run the following command: - ``` - nix hash path $(nix build --print-out-paths -f '<nixpkgs>' make-minimal-bootstrap-sources) - ``` - - # Why do we need this `.nar` archive? - - This archive exists only because of a quirk/limitation of Nix: in - restricted mode the builtin fetchers can download only single - files; they have no way to unpack multi-file archives except for - NAR archives: - - https://github.com/NixOS/nixpkgs/pull/232576#issuecomment-1592415619 - - # Why don't we have to upload this to tarballs.nixos.org like the binary bootstrap-files did? - - Unlike this archive, the binary bootstrap-files contained binaries, - which meant that we had to: - - 1. Make sure they came from a trusted builder (Hydra) - 2. Keep careful track of exactly what toolchain (i.e. nixpkgs - commit) that builder used to create them. - 3. Keep copies of the built binaries, in case the toolchains that - produced them failed to be perfectly deterministic. - - The curated archives at tarballs.nixos.org exist in order to - satisfy these requirements. - - The second point created a significant burden: since the nixpkgs - toolchain used to build a given copy of the binary bootstrap-files - itself used a *previous* copy of the bootstrap-files, this meant - we had to track the provenance of all bootstrap-files tarballs - ever used, for all eternity. There was no explanation of where - the "original" bootstrap-files came from: turtles all the way - down. In spite of all this effort we still can't be sure of our - ability to reproduce the binary bootstrap-files, since the - compilers that built them don't always produce exactly bit-for-bit - deterministic results. - - Since this archive contains no binaries and uses a format (NAR) - specifically designed for bit-exact reproducibility, none of the - requirements above apply to `minimal-bootstrap-sources`. - */ - minimal-bootstrap-sources = derivation { - inherit name; - system = hostPlatform.system; - outputHashMode = "recursive"; - inherit outputHashAlgo outputHash; - - # This builder always fails, but fortunately Nix will print the - # "builder", which is really the error message that we want the - # user to see. - builder = '' - # - # - # Neither your store nor your substituters seems to have: - # - # ${builtins.placeholder "out"} - # - # You can create this path from an already-bootstrapped nixpkgs - # using the following command: - # - # nix-build '<nixpkgs>' -A make-minimal-bootstrap-sources - # - # Or, if you prefer, you can create this file using only `git`, - # `nix`, and `xz`. For the commands needed in order to do this, - # see `make-bootstrap-sources.nix`. Once you have the manual - # result, do: - # - # nix-store --add-fixed --recursive ${outputHashAlgo} ./${name} - # - # to add it to your store. - ''; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/default.nix deleted file mode 100644 index 9f3d61b92bc9..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib -, newScope -}: - -lib.makeScope newScope (self: with self; { - inherit (callPackage ./platforms.nix { }) platforms stage0Arch m2libcArch m2libcOS baseAddress; - - inherit (self.callPackage ./bootstrap-sources.nix {}) version minimal-bootstrap-sources; - - src = minimal-bootstrap-sources; - - m2libc = src + "/M2libc"; - - hex0 = callPackage ./hex0.nix { }; - inherit (self.hex0) hex0-seed; - - kaem = callPackage ./kaem { }; - kaem-minimal = callPackage ./kaem/minimal.nix { }; - - mescc-tools-boot = callPackage ./mescc-tools-boot.nix { }; - - inherit (self.mescc-tools-boot) blood-elf-0 hex2 kaem-unwrapped M1 M2; - - mescc-tools = callPackage ./mescc-tools { }; - - mescc-tools-extra = callPackage ./mescc-tools-extra { }; -}) diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/hex0.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/hex0.nix deleted file mode 100644 index 9808e25711c1..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/hex0.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib -, derivationWithMeta -, hostPlatform -, src -, version -, platforms -, stage0Arch -}: - -let - hash = { - "AArch64" = "sha256-XTPsoKeI6wTZAF0UwEJPzuHelWOJe//wXg4HYO0dEJo="; - "AMD64" = "sha256-RCgK9oZRDQUiWLVkcIBSR2HeoB+Bh0czthrpjFEkCaY="; - "x86" = "sha256-QU3RPGy51W7M2xnfFY1IqruKzusrSLU+L190ztN6JW8="; - }.${stage0Arch} or (throw "Unsupported system: ${hostPlatform.system}"); - - # Pinned from https://github.com/oriansj/stage0-posix/commit/3189b5f325b7ef8b88e3edec7c1cde4fce73c76c - # This 256 byte seed is the only pre-compiled binary in the bootstrap chain. - hex0-seed = import <nix/fetchurl.nix> { - name = "hex0-seed"; - url = "https://github.com/oriansj/bootstrap-seeds/raw/b1263ff14a17835f4d12539226208c426ced4fba/POSIX/${stage0Arch}/hex0-seed"; - executable = true; - inherit hash; - }; -in -derivationWithMeta { - inherit version; - pname = "hex0"; - builder = hex0-seed; - args = [ - "${src}/${stage0Arch}/hex0_${stage0Arch}.hex0" - (placeholder "out") - ]; - - meta = with lib; { - description = "Minimal assembler for bootstrapping"; - homepage = "https://github.com/oriansj/stage0-posix"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - inherit platforms; - }; - - passthru = { inherit hex0-seed; }; - - # Ensure the untrusted hex0-seed binary produces a known-good hex0 - outputHashMode = "recursive"; - outputHashAlgo = "sha256"; - outputHash = hash; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/kaem/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/kaem/default.nix deleted file mode 100644 index 547790835c5d..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/kaem/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib -, derivationWithMeta -, writeText -, kaem -, kaem-unwrapped -, mescc-tools -, mescc-tools-extra -, version -, platforms -}: - -# Once mescc-tools-extra is available we can install kaem at /bin/kaem -# to make it findable in environments -derivationWithMeta { - inherit version kaem-unwrapped; - pname = "kaem"; - builder = kaem-unwrapped; - args = [ - "--verbose" - "--strict" - "--file" - (builtins.toFile "kaem-wrapper.kaem" '' - mkdir -p ''${out}/bin - cp ''${kaem-unwrapped} ''${out}/bin/kaem - chmod 555 ''${out}/bin/kaem - '') - ]; - PATH = lib.makeBinPath [ mescc-tools-extra ]; - - passthru.runCommand = name: env: buildCommand: - derivationWithMeta ({ - inherit name; - - builder = "${kaem}/bin/kaem"; - args = [ - "--verbose" - "--strict" - "--file" - (writeText "${name}-builder" buildCommand) - ]; - - PATH = lib.makeBinPath ((env.nativeBuildInputs or []) ++ [ kaem mescc-tools mescc-tools-extra ]); - } // (builtins.removeAttrs env [ "nativeBuildInputs" ])); - - meta = with lib; { - description = "Minimal build tool for running scripts on systems that lack any shell"; - homepage = "https://github.com/oriansj/mescc-tools"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - inherit platforms; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/kaem/minimal.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/kaem/minimal.nix deleted file mode 100644 index ae31302894aa..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/kaem/minimal.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib -, derivationWithMeta -, src -, hex0 -, version -, platforms -, stage0Arch -}: -derivationWithMeta { - inherit version; - pname = "kaem-minimal"; - builder = hex0; - args = [ - "${src}/${stage0Arch}/kaem-minimal.hex0" - (placeholder "out") - ]; - - meta = with lib; { - description = "First stage minimal scriptable build tool for bootstrapping"; - homepage = "https://github.com/oriansj/stage0-posix"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - inherit platforms; - }; -} - diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix deleted file mode 100644 index 6cc7cddb82af..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix +++ /dev/null @@ -1,58 +0,0 @@ -# Packaged source files for the first bootstrapping stage. -# -# We don't have access to utilities such as fetchgit and fetchzip since this -# is this is part of the bootstrap process and would introduce a circular -# dependency. The only tool we have to fetch source trees is `import <nix/fetchurl.nix>` -# with the unpack option, taking a NAR file as input. This requires source -# tarballs to be repackaged. -# -# To build: -# -# nix-build '<nixpkgs>' -A make-minimal-bootstrap-sources -# - -{ lib -, hostPlatform -, fetchFromGitHub -, fetchpatch -}: - -let - expected = import ./bootstrap-sources.nix { inherit hostPlatform; }; -in - -fetchFromGitHub { - inherit (expected) name rev; - owner = "oriansj"; - repo = "stage0-posix"; - sha256 = expected.outputHash; - fetchSubmodules = true; - postFetch = '' - # Seed binaries will be fetched separately - echo "Removing seed binaries" - rm -rf $out/bootstrap-seeds/* - - # Remove vendored/duplicate M2libc's - echo "Removing duplicate M2libc" - rm -rf \ - $out/M2-Mesoplanet/M2libc \ - $out/M2-Planet/M2libc \ - $out/mescc-tools/M2libc \ - $out/mescc-tools-extra/M2libc - - # aarch64: syscall: mkdir -> mkdirat - # https://github.com/oriansj/M2libc/pull/17 - patch -Np1 -d $out/M2libc -i ${(fetchpatch { - url = "https://github.com/oriansj/M2libc/commit/ff7c3023b3ab6cfcffc5364620b25f8d0279e96b.patch"; - hash = "sha256-QAKddv4TixIQHpFa9SVu9fAkeKbzhQaxjaWzW2yJy7A="; - })} - ''; - - meta = with lib; { - description = "Packaged sources for the first bootstrapping stage"; - homepage = "https://github.com/oriansj/stage0-posix"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.all; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-boot.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-boot.nix deleted file mode 100644 index 2114ffc707b1..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-boot.nix +++ /dev/null @@ -1,358 +0,0 @@ -# Mes --- Maxwell Equations of Software -# Copyright © 2017,2019 Jan Nieuwenhuizen <janneke@gnu.org> -# Copyright © 2017,2019 Jeremiah Orians -# -# This file is part of Mes. -# -# Mes is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or (at -# your option) any later version. -# -# Mes is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Mes. If not, see <http://www.gnu.org/licenses/>. - -# This is a translation of stage0-posix/stage0-posix/x86/mescc-tools-mini-kaem.kaem to nix -# https://github.com/oriansj/stage0-posix-x86/blob/56e6b8df3e95f4bc04f8b420a4cd8c82c70b9efa/mescc-tools-mini-kaem.kaem -# -# We have access to mini-kaem at this point but it doesn't support substituting -# environment variables. Without variables there's no way of passing in store inputs, -# or the $out path, other than as command line arguments directly - -# Warning all binaries prior to the use of blood-elf will not be readable by -# Objdump, you may need to use ndism or gdb to view the assembly in the binary. - -{ lib -, derivationWithMeta -, hostPlatform -, hex0 -, m2libc -, src -, version -, platforms -, stage0Arch -, m2libcArch -, baseAddress -}: -rec { - out = placeholder "out"; - - endianFlag = if hostPlatform.isLittleEndian then "--little-endian" else "--big-endian"; - - bloodFlags = lib.optional hostPlatform.is64bit "--64"; - - run = pname: builder: args: - derivationWithMeta { - inherit pname version builder args; - - meta = with lib; { - description = "Collection of tools written for use in bootstrapping"; - homepage = "https://github.com/oriansj/stage0-posix"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - inherit platforms; - }; - }; - - ################################ - # Phase-1 Build hex1 from hex0 # - ################################ - - hex1 = run "hex1" hex0 ["${src}/${stage0Arch}/hex1_${stage0Arch}.hex0" out]; - - # hex1 adds support for single character labels and is available in various forms - # in mescc-tools/x86_bootstrap to allow you various ways to verify correctness - - ################################ - # Phase-2 Build hex2 from hex1 # - ################################ - - hex2-0 = run "hex2" hex1 ["${src}/${stage0Arch}/hex2_${stage0Arch}.hex1" out]; - - # hex2 adds support for long labels and absolute addresses thus allowing it - # to function as an effective linker for later stages of the bootstrap - # This is a minimal version which will be used to bootstrap a much more advanced - # version in a later stage. - - ################################# - # Phase-2b Build catm from hex2 # - ################################# - - catm = - if hostPlatform.isAarch64 then - run "catm" hex1 ["${src}/${stage0Arch}/catm_${stage0Arch}.hex1" out] - else - run "catm" hex2-0 ["${src}/${stage0Arch}/catm_${stage0Arch}.hex2" out]; - - # catm removes the need for cat or shell support for redirection by providing - # equivalent functionality via catm output_file input1 input2 ... inputN - - ############################## - # Phase-3 Build M0 from hex2 # - ############################## - - M0_hex2 = run "M0.hex2" catm [out "${m2libc}/${m2libcArch}/ELF-${m2libcArch}.hex2" "${src}/${stage0Arch}/M0_${stage0Arch}.hex2"]; - M0 = run "M0" hex2-0 [M0_hex2 out]; - - # M0 is the architecture specific version of M1 and is by design single - # architecture only and will be replaced by the C code version of M1 - - ################################ - # Phase-4 Build cc_arch from M0 # - ################################ - - cc_arch-0_hex2 = run "cc_arch-0.hex2" M0 ["${src}/${stage0Arch}/cc_${m2libcArch}.M1" out]; - cc_arch-1_hex2 = run "cc_arch-1.hex2" catm [out "${m2libc}/${m2libcArch}/ELF-${m2libcArch}.hex2" cc_arch-0_hex2]; - cc_arch = run "cc_arch" hex2-0 [cc_arch-1_hex2 out]; - - ######################################## - # Phase-5 Build M2-Planet from cc_arch # - ######################################## - - M2-0_c = run "M2-0.c" catm [ - out - "${m2libc}/${m2libcArch}/linux/bootstrap.c" - "${src}/M2-Planet/cc.h" - "${m2libc}/bootstrappable.c" - "${src}/M2-Planet/cc_globals.c" - "${src}/M2-Planet/cc_reader.c" - "${src}/M2-Planet/cc_strings.c" - "${src}/M2-Planet/cc_types.c" - "${src}/M2-Planet/cc_core.c" - "${src}/M2-Planet/cc_macro.c" - "${src}/M2-Planet/cc.c" - ]; - M2-0_M1 = run "M2-0.M1" cc_arch [M2-0_c out]; - M2-0-0_M1 = run "M2-0-0.M1" catm [out "${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1" "${m2libc}/${m2libcArch}/libc-core.M1" M2-0_M1]; - M2-0_hex2 = run "M2-0.hex2" M0 [M2-0-0_M1 out]; - M2-0-0_hex2 = run "M2-0-0.hex2" catm [out "${m2libc}/${m2libcArch}/ELF-${m2libcArch}.hex2" M2-0_hex2]; - M2 = run "M2" hex2-0 [M2-0-0_hex2 out]; - - ############################################ - # Phase-6 Build blood-elf-0 from C sources # - ############################################ - - blood-elf-0_M1 = run "blood-elf-0.M1" M2 [ - "--architecture" m2libcArch - "-f" "${m2libc}/${m2libcArch}/linux/bootstrap.c" - "-f" "${m2libc}/bootstrappable.c" - "-f" "${src}/mescc-tools/stringify.c" - "-f" "${src}/mescc-tools/blood-elf.c" - "--bootstrap-mode" - "-o" out - ]; - - blood-elf-0-0_M1 = run "blood-elf-0-0.M1" catm [out "${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1" "${m2libc}/${m2libcArch}/libc-core.M1" blood-elf-0_M1]; - blood-elf-0_hex2 = run "blood-elf-0.hex2" M0 [blood-elf-0-0_M1 out]; - blood-elf-0-0_hex2 = run "blood-elf-0-0.hex2" catm [out "${m2libc}/${m2libcArch}/ELF-${m2libcArch}.hex2" blood-elf-0_hex2]; - blood-elf-0 = run "blood-elf-0" hex2-0 [blood-elf-0-0_hex2 out]; - - # This is the last stage where the binaries will not have debug info - # and the last piece built that isn't part of the output binaries - - ##################################### - # Phase-7 Build M1-0 from C sources # - ##################################### - - M1-macro-0_M1 = run "M1-macro-0.M1" M2 [ - "--architecture" m2libcArch - "-f" "${m2libc}/${m2libcArch}/linux/bootstrap.c" - "-f" "${m2libc}/bootstrappable.c" - "-f" "${src}/mescc-tools/stringify.c" - "-f" "${src}/mescc-tools/M1-macro.c" - "--bootstrap-mode" - "--debug" - "-o" out - ]; - - M1-macro-0-footer_M1 = run "M1-macro-0-footer.M1" blood-elf-0 (bloodFlags ++ ["-f" M1-macro-0_M1 endianFlag "-o" out]); - M1-macro-0-0_M1 = run "M1-macro-0-0.M1" catm [out "${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1" "${m2libc}/${m2libcArch}/libc-core.M1" M1-macro-0_M1 M1-macro-0-footer_M1]; - M1-macro-0_hex2 = run "M1-macro-0.hex2" M0 [M1-macro-0-0_M1 out]; - M1-macro-0-0_hex2 = run "M1-macro-0-0.hex2" catm [out "${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2" M1-macro-0_hex2]; - M1-0 = run "M1-0" hex2-0 [M1-macro-0-0_hex2 out]; - - # This is the last stage where catm will need to be used and the last stage where - # M0 is used, as we will being using it's much more powerful and cross-platform - # version with a bunch of extra goodies. - - ####################################### - # Phase-8 Build hex2-1 from C sources # - ####################################### - - hex2_linker-0_M1 = run "hex2_linker-0.M1" M2 [ - "--architecture" m2libcArch - "-f" "${m2libc}/sys/types.h" - "-f" "${m2libc}/stddef.h" - "-f" "${m2libc}/${m2libcArch}/linux/unistd.c" - "-f" "${m2libc}/${m2libcArch}/linux/fcntl.c" - "-f" "${m2libc}/fcntl.c" - "-f" "${m2libc}/${m2libcArch}/linux/sys/stat.c" - "-f" "${m2libc}/stdlib.c" - "-f" "${m2libc}/stdio.h" - "-f" "${m2libc}/stdio.c" - "-f" "${m2libc}/bootstrappable.c" - "-f" "${src}/mescc-tools/hex2.h" - "-f" "${src}/mescc-tools/hex2_linker.c" - "-f" "${src}/mescc-tools/hex2_word.c" - "-f" "${src}/mescc-tools/hex2.c" - "--debug" - "-o" out - ]; - - hex2_linker-0-footer_M1 = run "hex2_linker-0-footer.M1" blood-elf-0 (bloodFlags ++ ["-f" hex2_linker-0_M1 endianFlag "-o" out]); - - hex2_linker-0_hex2 = run "hex2_linker-0.hex2" M1-0 [ - "--architecture" m2libcArch - endianFlag - "-f" "${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1" - "-f" "${m2libc}/${m2libcArch}/libc-full.M1" - "-f" hex2_linker-0_M1 - "-f" hex2_linker-0-footer_M1 - "-o" out - ]; - - hex2_linker-0-0_hex2 = run "hex2_linker-0-0.hex2" catm [out "${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2" hex2_linker-0_hex2]; - - hex2-1 = run "hex2-1" hex2-0 [hex2_linker-0-0_hex2 out]; - - # This is the last stage where we will be using the handwritten hex2 and instead - # be using the far more powerful, cross-platform version with a bunch more goodies - - ################################### - # Phase-9 Build M1 from C sources # - ################################### - - M1-macro-1_M1 = run "M1-macro-1.M1" M2 [ - "--architecture" m2libcArch - "-f" "${m2libc}/sys/types.h" - "-f" "${m2libc}/stddef.h" - "-f" "${m2libc}/${m2libcArch}/linux/fcntl.c" - "-f" "${m2libc}/fcntl.c" - "-f" "${m2libc}/${m2libcArch}/linux/unistd.c" - "-f" "${m2libc}/string.c" - "-f" "${m2libc}/stdlib.c" - "-f" "${m2libc}/stdio.h" - "-f" "${m2libc}/stdio.c" - "-f" "${m2libc}/bootstrappable.c" - "-f" "${src}/mescc-tools/stringify.c" - "-f" "${src}/mescc-tools/M1-macro.c" - "--debug" - "-o" out - ]; - - M1-macro-1-footer_M1 = run "M1-macro-1-footer.M1" blood-elf-0 (bloodFlags ++ ["-f" M1-macro-1_M1 endianFlag "-o" out]); - - M1-macro-1_hex2 = run "M1-macro-1.hex2" M1-0 [ - "--architecture" m2libcArch - endianFlag - "-f" "${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1" - "-f" "${m2libc}/${m2libcArch}/libc-full.M1" - "-f" M1-macro-1_M1 - "-f" M1-macro-1-footer_M1 - "-o" out - ]; - - M1 = run "M1" hex2-1 [ - "--architecture" m2libcArch - endianFlag - "--base-address" baseAddress - "-f" "${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2" - "-f" M1-macro-1_hex2 - "-o" out - ]; - - ###################################### - # Phase-10 Build hex2 from C sources # - ###################################### - - hex2_linker-2_M1 = run "hex2_linker-2.M1" M2 [ - "--architecture" m2libcArch - "-f" "${m2libc}/sys/types.h" - "-f" "${m2libc}/stddef.h" - "-f" "${m2libc}/${m2libcArch}/linux/unistd.c" - "-f" "${m2libc}/${m2libcArch}/linux/fcntl.c" - "-f" "${m2libc}/fcntl.c" - "-f" "${m2libc}/${m2libcArch}/linux/sys/stat.c" - "-f" "${m2libc}/stdlib.c" - "-f" "${m2libc}/stdio.h" - "-f" "${m2libc}/stdio.c" - "-f" "${m2libc}/bootstrappable.c" - "-f" "${src}/mescc-tools/hex2.h" - "-f" "${src}/mescc-tools/hex2_linker.c" - "-f" "${src}/mescc-tools/hex2_word.c" - "-f" "${src}/mescc-tools/hex2.c" - "--debug" - "-o" out - ]; - - hex2_linker-2-footer_M1 = run "hex2_linker-2-footer.M1" blood-elf-0 (bloodFlags ++ ["-f" hex2_linker-2_M1 endianFlag "-o" out]); - - hex2_linker-2_hex2 = run "hex2_linker-2.hex2" M1 [ - "--architecture" m2libcArch - endianFlag - "-f" "${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1" - "-f" "${m2libc}/${m2libcArch}/libc-full.M1" - "-f" hex2_linker-2_M1 - "-f" hex2_linker-2-footer_M1 - "-o" out - ]; - - hex2 = run "hex2" hex2-1 [ - "--architecture" m2libcArch - endianFlag - "--base-address" baseAddress - "-f" "${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2" - "-f" hex2_linker-2_hex2 - "-o" out - ]; - - ###################################### - # Phase-11 Build kaem from C sources # - ###################################### - - kaem_M1 = run "kaem.M1" M2 [ - "--architecture" m2libcArch - "-f" "${m2libc}/sys/types.h" - "-f" "${m2libc}/stddef.h" - "-f" "${m2libc}/string.c" - "-f" "${m2libc}/${m2libcArch}/linux/unistd.c" - "-f" "${m2libc}/${m2libcArch}/linux/fcntl.c" - "-f" "${m2libc}/fcntl.c" - "-f" "${m2libc}/stdlib.c" - "-f" "${m2libc}/stdio.h" - "-f" "${m2libc}/stdio.c" - "-f" "${m2libc}/bootstrappable.c" - "-f" "${src}/mescc-tools/Kaem/kaem.h" - "-f" "${src}/mescc-tools/Kaem/variable.c" - "-f" "${src}/mescc-tools/Kaem/kaem_globals.c" - "-f" "${src}/mescc-tools/Kaem/kaem.c" - "--debug" - "-o" out - ]; - - kaem-footer_M1 = run "kaem-footer.M1" blood-elf-0 (bloodFlags ++ ["-f" kaem_M1 endianFlag "-o" out]); - - kaem_hex2 = run "kaem.hex2" M1 [ - "--architecture" m2libcArch - endianFlag - "-f" "${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1" - "-f" "${m2libc}/${m2libcArch}/libc-full.M1" - "-f" kaem_M1 - "-f" kaem-footer_M1 - "-o" out - ]; - - kaem-unwrapped = run "kaem-unwrapped" hex2 [ - "--architecture" m2libcArch - endianFlag - "-f" "${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2" - "-f" kaem_hex2 - "--base-address" baseAddress - "-o" out - ]; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-extra/build.kaem b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-extra/build.kaem deleted file mode 100644 index fb27eccab830..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-extra/build.kaem +++ /dev/null @@ -1,39 +0,0 @@ -# This is a modified version of mescc-tools-extra/mescc-tools-extra.kaem -# https://github.com/oriansj/mescc-tools-extra/blob/ec53af69d6d2119b47b369cd0ec37ac806e7ad60/mescc-tools-extra.kaem -# - Paths to build inputs have been changed for nix -# - Added additional step to create $out directory - -## Copyright (C) 2017 Jeremiah Orians -## This file is part of mescc-tools. -## -## mescc-tools is free software: you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. -## -## mescc-tools is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with mescc-tools. If not, see <http://www.gnu.org/licenses/>. - -alias CC="${mescc-tools}/bin/M2-Mesoplanet --operating-system ${m2libcOS} --architecture ${m2libcArch} -f" -cd ${src}/mescc-tools-extra - -# Create output folder -CC mkdir.c -o ${TMP}/mkdir -${TMP}/mkdir -p ${out}/bin - -CC sha256sum.c -o ${out}/bin/sha256sum -CC match.c -o ${out}/bin/match -CC mkdir.c -o ${out}/bin/mkdir -CC untar.c -o ${out}/bin/untar -CC ungz.c -o ${out}/bin/ungz -CC unbz2.c -o ${out}/bin/unbz2 -CC catm.c -o ${out}/bin/catm -CC cp.c -o ${out}/bin/cp -CC chmod.c -o ${out}/bin/chmod -CC rm.c -o ${out}/bin/rm -CC replace.c -o ${out}/bin/replace diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-extra/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-extra/default.nix deleted file mode 100644 index eee00491c446..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-extra/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib -, derivationWithMeta -, kaem-unwrapped -, mescc-tools -, src -, version -, platforms -, m2libcArch -, m2libcOS -}: -derivationWithMeta { - inherit version src mescc-tools m2libcArch m2libcOS; - pname = "mescc-tools-extra"; - builder = kaem-unwrapped; - args = [ - "--verbose" - "--strict" - "--file" - ./build.kaem - ]; - - meta = with lib; { - description = "Collection of tools written for use in bootstrapping"; - homepage = "https://github.com/oriansj/mescc-tools-extra"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - inherit platforms; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools/build.kaem b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools/build.kaem deleted file mode 100644 index 128ff360fd2c..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools/build.kaem +++ /dev/null @@ -1,204 +0,0 @@ -# This is a modified version of stage0-posix/x86/mescc-tools-full-kaem.kaem -# https://github.com/oriansj/stage0-posix-x86/blob/56e6b8df3e95f4bc04f8b420a4cd8c82c70b9efa/mescc-tools-full-kaem.kaem -# - Paths to build inputs have been changed for nix - -# Mes --- Maxwell Equations of Software -# Copyright © 2017,2019 Jan Nieuwenhuizen <janneke@gnu.org> -# Copyright © 2017,2019 Jeremiah Orians -# -# This file is part of Mes. -# -# Mes is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or (at -# your option) any later version. -# -# Mes is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Mes. If not, see <http://www.gnu.org/licenses/>. - -${mkdir} -p ${out}/bin -${cp} ${M2} ${out}/bin/M2 -${chmod} 0555 ${out}/bin/M2 -${cp} ${M1} ${out}/bin/M1 -${chmod} 0555 ${out}/bin/M1 -${cp} ${hex2} ${out}/bin/hex2 -${chmod} 0555 ${out}/bin/hex2 - -# M2-Mesoplanet searches for runtime dependencies in environment variables -# We can hardcode them with the "replace" utility from mescc-tools-extra -${replace} \ - --file ${src}/M2-Mesoplanet/cc.c \ - --output ./cc_patched.c \ - --match-on "env_lookup(\"M2LIBC_PATH\")" \ - --replace-with "\"${m2libc}\"" -${replace} \ - --file ${src}/M2-Mesoplanet/cc_spawn.c \ - --output ./cc_spawn_patched.c \ - --match-on "env_lookup(\"PATH\")" \ - --replace-with "\"${out}/bin:\"" - -############################################### -# Phase-12 Build M2-Mesoplanet from M2-Planet # -############################################### - -${M2} --architecture ${m2libcArch} \ - -f ${m2libc}/sys/types.h \ - -f ${m2libc}/stddef.h \ - -f ${m2libc}/${m2libcArch}/linux/fcntl.c \ - -f ${m2libc}/fcntl.c \ - -f ${m2libc}/${m2libcArch}/linux/unistd.c \ - -f ${m2libc}/${m2libcArch}/linux/sys/stat.c \ - -f ${m2libc}/stdlib.c \ - -f ${m2libc}/stdio.h \ - -f ${m2libc}/stdio.c \ - -f ${m2libc}/string.c \ - -f ${m2libc}/bootstrappable.c \ - -f ${src}/M2-Mesoplanet/cc.h \ - -f ${src}/M2-Mesoplanet/cc_globals.c \ - -f ${src}/M2-Mesoplanet/cc_env.c \ - -f ${src}/M2-Mesoplanet/cc_reader.c \ - -f ./cc_spawn_patched.c \ - -f ${src}/M2-Mesoplanet/cc_core.c \ - -f ${src}/M2-Mesoplanet/cc_macro.c \ - -f ./cc_patched.c \ - --debug \ - -o ./M2-Mesoplanet-1.M1 - -${blood-elf-0} ${endianFlag} ${bloodFlag} -f ./M2-Mesoplanet-1.M1 -o ./M2-Mesoplanet-1-footer.M1 - -${M1} --architecture ${m2libcArch} \ - ${endianFlag} \ - -f ${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1 \ - -f ${m2libc}/${m2libcArch}/libc-full.M1 \ - -f ./M2-Mesoplanet-1.M1 \ - -f ./M2-Mesoplanet-1-footer.M1 \ - -o ./M2-Mesoplanet-1.hex2 - -${hex2} --architecture ${m2libcArch} \ - ${endianFlag} \ - --base-address ${baseAddress} \ - -f ${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2 \ - -f ./M2-Mesoplanet-1.hex2 \ - -o ${out}/bin/M2-Mesoplanet - -################################################# -# Phase-13 Build final blood-elf from C sources # -################################################# - -${M2} --architecture ${m2libcArch} \ - -f ${m2libc}/sys/types.h \ - -f ${m2libc}/stddef.h \ - -f ${m2libc}/${m2libcArch}/linux/fcntl.c \ - -f ${m2libc}/fcntl.c \ - -f ${m2libc}/${m2libcArch}/linux/unistd.c \ - -f ${m2libc}/stdlib.c \ - -f ${m2libc}/stdio.h \ - -f ${m2libc}/stdio.c \ - -f ${m2libc}/bootstrappable.c \ - -f ${src}/mescc-tools/stringify.c \ - -f ${src}/mescc-tools/blood-elf.c \ - --debug \ - -o ./blood-elf-1.M1 - -${blood-elf-0} ${endianFlag} ${bloodFlag} -f ./blood-elf-1.M1 -o ./blood-elf-1-footer.M1 - -${M1} --architecture ${m2libcArch} \ - ${endianFlag} \ - -f ${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1 \ - -f ${m2libc}/${m2libcArch}/libc-full.M1 \ - -f ./blood-elf-1.M1 \ - -f ./blood-elf-1-footer.M1 \ - -o ./blood-elf-1.hex2 - -${hex2} --architecture ${m2libcArch} \ - ${endianFlag} \ - --base-address ${baseAddress} \ - -f ${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2 \ - -f ./blood-elf-1.hex2 \ - -o ${out}/bin/blood-elf - -# Now we have our shipping debuggable blood-elf, the rest will be down hill from -# here as we have ALL of the core pieces of compiling and assembling debuggable -# programs in a debuggable form with corresponding C source code. - -############################################# -# Phase-14 Build get_machine from C sources # -############################################# - -${M2} --architecture ${m2libcArch} \ - -f ${m2libc}/sys/types.h \ - -f ${m2libc}/stddef.h \ - -f ${m2libc}/${m2libcArch}/linux/unistd.c \ - -f ${m2libc}/${m2libcArch}/linux/fcntl.c \ - -f ${m2libc}/fcntl.c \ - -f ${m2libc}/stdlib.c \ - -f ${m2libc}/stdio.h \ - -f ${m2libc}/stdio.c \ - -f ${m2libc}/bootstrappable.c \ - -f ${src}/mescc-tools/get_machine.c \ - --debug \ - -o get_machine.M1 - -${out}/bin/blood-elf ${endianFlag} ${bloodFlag} -f ./get_machine.M1 -o ./get_machine-footer.M1 - -${M1} --architecture ${m2libcArch} \ - ${endianFlag} \ - -f ${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1 \ - -f ${m2libc}/${m2libcArch}/libc-full.M1 \ - -f ./get_machine.M1 \ - -f ./get_machine-footer.M1 \ - -o ./get_machine.hex2 - -${hex2} --architecture ${m2libcArch} \ - ${endianFlag} \ - --base-address ${baseAddress} \ - -f ${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2 \ - -f ./get_machine.hex2 \ - -o ${out}/bin/get_machine - -############################################ -# Phase-15 Build M2-Planet from M2-Planet # -############################################ - -${M2} --architecture ${m2libcArch} \ - -f ${m2libc}/sys/types.h \ - -f ${m2libc}/stddef.h \ - -f ${m2libc}/${m2libcArch}/linux/unistd.c \ - -f ${m2libc}/${m2libcArch}/linux/fcntl.c \ - -f ${m2libc}/fcntl.c \ - -f ${m2libc}/stdlib.c \ - -f ${m2libc}/stdio.h \ - -f ${m2libc}/stdio.c \ - -f ${m2libc}/bootstrappable.c \ - -f ${src}/M2-Planet/cc.h \ - -f ${src}/M2-Planet/cc_globals.c \ - -f ${src}/M2-Planet/cc_reader.c \ - -f ${src}/M2-Planet/cc_strings.c \ - -f ${src}/M2-Planet/cc_types.c \ - -f ${src}/M2-Planet/cc_core.c \ - -f ${src}/M2-Planet/cc_macro.c \ - -f ${src}/M2-Planet/cc.c \ - --debug \ - -o ./M2-1.M1 - -${out}/bin/blood-elf ${endianFlag} ${bloodFlag} -f ./M2-1.M1 -o ./M2-1-footer.M1 - -${M1} --architecture ${m2libcArch} \ - ${endianFlag} \ - -f ${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1 \ - -f ${m2libc}/${m2libcArch}/libc-full.M1 \ - -f ./M2-1.M1 \ - -f ./M2-1-footer.M1 \ - -o ./M2-1.hex2 - -${hex2} --architecture ${m2libcArch} \ - ${endianFlag} \ - --base-address ${baseAddress} \ - -f ${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2 \ - -f ./M2-1.hex2 \ - -o ${out}/bin/M2-Planet diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools/default.nix deleted file mode 100644 index 4a9c734981e2..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools/default.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ lib -, derivationWithMeta -, hostPlatform -, kaem-unwrapped -, M1 -, M2 -, blood-elf-0 -, hex2 -, m2libc -, src -, version -, platforms -, m2libcArch -, baseAddress -}: - -let - endianFlag = if hostPlatform.isLittleEndian then "--little-endian" else "--big-endian"; - bloodFlag = if hostPlatform.is64bit then "--64" else " "; - - # We need a few tools from mescc-tools-extra to assemble the output folder - buildMesccToolsExtraUtil = name: - derivationWithMeta { - pname = "mescc-tools-extra-${name}"; - builder = kaem-unwrapped; - args = [ - "--verbose" - "--strict" - "--file" - (builtins.toFile "build-${name}.kaem" '' - ''${M2} --architecture ${m2libcArch} \ - -f ''${m2libc}/sys/types.h \ - -f ''${m2libc}/stddef.h \ - -f ''${m2libc}/${m2libcArch}/linux/fcntl.c \ - -f ''${m2libc}/fcntl.c \ - -f ''${m2libc}/${m2libcArch}/linux/unistd.c \ - -f ''${m2libc}/${m2libcArch}/linux/sys/stat.c \ - -f ''${m2libc}/stdlib.c \ - -f ''${m2libc}/stdio.h \ - -f ''${m2libc}/stdio.c \ - -f ''${m2libc}/string.c \ - -f ''${m2libc}/bootstrappable.c \ - -f ''${src}/mescc-tools-extra/${name}.c \ - --debug \ - -o ${name}.M1 - - ''${blood-elf-0} ${endianFlag} ${bloodFlag} -f ${name}.M1 -o ${name}-footer.M1 - - ''${M1} --architecture ${m2libcArch} \ - ${endianFlag} \ - -f ''${m2libc}/${m2libcArch}/${m2libcArch}_defs.M1 \ - -f ''${m2libc}/${m2libcArch}/libc-full.M1 \ - -f ${name}.M1 \ - -f ${name}-footer.M1 \ - -o ${name}.hex2 - - ''${hex2} --architecture ${m2libcArch} \ - ${endianFlag} \ - -f ''${m2libc}/${m2libcArch}/ELF-${m2libcArch}-debug.hex2 \ - -f ${name}.hex2 \ - --base-address ${baseAddress} \ - -o ''${out} - '') - ]; - inherit version M1 M2 blood-elf-0 hex2 m2libc src; - }; - mkdir = buildMesccToolsExtraUtil "mkdir"; - cp = buildMesccToolsExtraUtil "cp"; - chmod = buildMesccToolsExtraUtil "chmod"; - replace = buildMesccToolsExtraUtil "replace"; -in -derivationWithMeta { - pname = "mescc-tools"; - builder = kaem-unwrapped; - args = [ - "--verbose" - "--strict" - "--file" - ./build.kaem - ]; - inherit version M1 M2 blood-elf-0 hex2 mkdir cp chmod replace m2libc src m2libcArch baseAddress bloodFlag endianFlag; - - meta = with lib; { - description = "Collection of tools written for use in bootstrapping"; - homepage = "https://github.com/oriansj/mescc-tools"; - license = licenses.gpl3Plus; - maintainers = teams.minimal-bootstrap.members; - inherit platforms; - }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/platforms.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/platforms.nix deleted file mode 100644 index 53147df33444..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/platforms.nix +++ /dev/null @@ -1,32 +0,0 @@ -# Platform specific constants -{ lib -, hostPlatform -}: - -rec { - # meta.platforms - platforms = [ - "aarch64-linux" - "i686-linux" - "x86_64-linux" - ]; - - # system arch as used within the stage0 project - stage0Arch = { - "aarch64-linux" = "AArch64"; - "i686-linux" = "x86"; - "x86_64-linux" = "AMD64"; - }.${hostPlatform.system} or (throw "Unsupported system: ${hostPlatform.system}"); - - # lower-case form is widely used by m2libc - m2libcArch = lib.toLower stage0Arch; - - # Passed to M2-Mesoplanet as --operating-system - m2libcOS = if hostPlatform.isLinux then "linux" else throw "Unsupported system: ${hostPlatform.system}"; - - baseAddress = { - "aarch64-linux" = "0x00600000"; - "i686-linux" = "0x08048000"; - "x86_64-linux" = "0x00600000"; - }.${hostPlatform.system} or (throw "Unsupported system: ${hostPlatform.system}"); -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/bootstrappable.nix b/pkgs/os-specific/linux/minimal-bootstrap/tinycc/bootstrappable.nix deleted file mode 100644 index 83d89012b0fc..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/bootstrappable.nix +++ /dev/null @@ -1,172 +0,0 @@ -# Bootstrappable TCC is a fork from mainline TCC development -# that can be compiled by MesCC - -# Build steps adapted from https://github.com/fosslinux/live-bootstrap/blob/1bc4296091c51f53a5598050c8956d16e945b0f5/sysa/tcc-0.9.26/tcc-0.9.26.kaem -# -# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -{ lib -, callPackage -, fetchurl -, kaem -, mes -, mes-libc -}: -let - inherit (callPackage ./common.nix { }) buildTinyccMes recompileLibc; - - version = "unstable-2023-04-20"; - rev = "80114c4da6b17fbaabb399cc29f427e368309bc8"; - - tarball = fetchurl { - url = "https://gitlab.com/janneke/tinycc/-/archive/${rev}/tinycc-${rev}.tar.gz"; - sha256 = "1a0cw9a62qc76qqn5sjmp3xrbbvsz2dxrw21lrnx9q0s74mwaxbq"; - }; - src = (kaem.runCommand "tinycc-bootstrappable-${version}-source" {} '' - ungz --file ${tarball} --output tinycc.tar - mkdir -p ''${out} - cd ''${out} - untar --file ''${NIX_BUILD_TOP}/tinycc.tar - - # Patch - cd tinycc-${rev} - # Static link by default - replace --file libtcc.c --output libtcc.c --match-on "s->ms_extensions = 1;" --replace-with "s->ms_extensions = 1; s->static_link = 1;" - '') + "/tinycc-${rev}"; - - meta = with lib; { - description = "Tiny C Compiler's bootstrappable fork"; - homepage = "https://gitlab.com/janneke/tinycc"; - license = licenses.lgpl21Only; - maintainers = teams.minimal-bootstrap.members; - platforms = [ "i686-linux" ]; - }; - - pname = "tinycc-boot-mes"; - - tinycc-boot-mes = rec { - compiler = kaem.runCommand "${pname}-${version}" { - passthru.tests.get-version = result: kaem.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/tcc -version - mkdir ''${out} - ''; - } '' - catm config.h - ${mes.compiler}/bin/mes --no-auto-compile -e main ${mes.srcPost.bin}/bin/mescc.scm -- \ - -S \ - -o tcc.s \ - -I . \ - -D BOOTSTRAP=1 \ - -I ${src} \ - -D TCC_TARGET_I386=1 \ - -D inline= \ - -D CONFIG_TCCDIR=\"\" \ - -D CONFIG_SYSROOT=\"\" \ - -D CONFIG_TCC_CRTPREFIX=\"{B}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"{B}\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${mes-libc}/include\" \ - -D TCC_LIBGCC=\"${mes-libc}/lib/x86-mes/libc.a\" \ - -D CONFIG_TCC_LIBTCC1_MES=0 \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_MES_LIBC=1 \ - -D TCC_VERSION=\"${version}\" \ - -D ONE_SOURCE=1 \ - ${src}/tcc.c - mkdir -p ''${out}/bin - ${mes.compiler}/bin/mes --no-auto-compile -e main ${mes.srcPost.bin}/bin/mescc.scm -- \ - -L ${mes.libs}/lib \ - -l c+tcc \ - -o ''${out}/bin/tcc \ - tcc.s - ''; - - libs = recompileLibc { - inherit pname version; - tcc = compiler; - src = mes-libc; - libtccOptions = mes-libc.CFLAGS; - }; - }; - - # Bootstrap stage build flags obtained from - # https://gitlab.com/janneke/tinycc/-/blob/80114c4da6b17fbaabb399cc29f427e368309bc8/boot.sh - - tinycc-boot0 = buildTinyccMes { - pname = "tinycc-boot0"; - inherit src version meta; - prev = tinycc-boot-mes; - buildOptions = [ - "-D HAVE_LONG_LONG_STUB=1" - "-D HAVE_SETJMP=1" - ]; - libtccBuildOptions = [ - "-D HAVE_LONG_LONG_STUB=1" - ]; - }; - - tinycc-boot1 = buildTinyccMes { - pname = "tinycc-boot1"; - inherit src version meta; - prev = tinycc-boot0; - buildOptions = [ - "-D HAVE_BITFIELD=1" - "-D HAVE_LONG_LONG=1" - "-D HAVE_SETJMP=1" - ]; - libtccBuildOptions = [ - "-D HAVE_LONG_LONG=1" - ]; - }; - - tinycc-boot2 = buildTinyccMes { - pname = "tinycc-boot2"; - inherit src version meta; - prev = tinycc-boot1; - buildOptions = [ - "-D HAVE_BITFIELD=1" - "-D HAVE_FLOAT_STUB=1" - "-D HAVE_LONG_LONG=1" - "-D HAVE_SETJMP=1" - ]; - libtccBuildOptions = [ - "-D HAVE_FLOAT_STUB=1" - "-D HAVE_LONG_LONG=1" - ]; - }; - - tinycc-boot3 = buildTinyccMes { - pname = "tinycc-boot3"; - inherit src version meta; - prev = tinycc-boot2; - buildOptions = [ - "-D HAVE_BITFIELD=1" - "-D HAVE_FLOAT=1" - "-D HAVE_LONG_LONG=1" - "-D HAVE_SETJMP=1" - ]; - libtccBuildOptions = [ - "-D HAVE_FLOAT=1" - "-D HAVE_LONG_LONG=1" - ]; - }; -in -buildTinyccMes { - pname = "tinycc-bootstrappable"; - inherit src version meta; - prev = tinycc-boot3; - buildOptions = [ - "-D HAVE_BITFIELD=1" - "-D HAVE_FLOAT=1" - "-D HAVE_LONG_LONG=1" - "-D HAVE_SETJMP=1" - ]; - libtccBuildOptions = [ - "-D HAVE_FLOAT=1" - "-D HAVE_LONG_LONG=1" - ]; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/common.nix b/pkgs/os-specific/linux/minimal-bootstrap/tinycc/common.nix deleted file mode 100644 index 28dde3298767..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/common.nix +++ /dev/null @@ -1,104 +0,0 @@ -{ lib -, kaem -, mes-libc -}: - -rec { - - # Recompile libc: crt{1,n,i}, libtcc.a, libc.a, libgetopt.a - recompileLibc = - { tcc - , pname - , version - , src - , libtccOptions - }: - let - - crt = kaem.runCommand "crt" {} '' - mkdir -p ''${out}/lib - ${tcc}/bin/tcc ${mes-libc.CFLAGS} -c -o ''${out}/lib/crt1.o ${mes-libc}/lib/crt1.c - ${tcc}/bin/tcc ${mes-libc.CFLAGS} -c -o ''${out}/lib/crtn.o ${mes-libc}/lib/crtn.c - ${tcc}/bin/tcc ${mes-libc.CFLAGS} -c -o ''${out}/lib/crti.o ${mes-libc}/lib/crti.c - ''; - - library = lib: options: source: kaem.runCommand "${lib}.a" {} '' - ${tcc}/bin/tcc ${options} -c -o ${lib}.o ${source} - ${tcc}/bin/tcc -ar cr ''${out} ${lib}.o - ''; - - libtcc1 = library "libtcc1" libtccOptions "${src}/lib/libtcc1.c"; - libc = library "libc" mes-libc.CFLAGS "${mes-libc}/lib/libc.c"; - libgetopt = library "libgetopt" mes-libc.CFLAGS "${mes-libc}/lib/libgetopt.c"; - in - kaem.runCommand "${pname}-libs-${version}" {} '' - mkdir -p ''${out}/lib - cp ${crt}/lib/crt1.o ''${out}/lib - cp ${crt}/lib/crtn.o ''${out}/lib - cp ${crt}/lib/crti.o ''${out}/lib - cp ${libtcc1} ''${out}/lib/libtcc1.a - cp ${libc} ''${out}/lib/libc.a - cp ${libgetopt} ''${out}/lib/libgetopt.a - ''; - - buildTinyccMes = - { pname - , version - , src - , prev - , buildOptions - , libtccBuildOptions - , meta - }: - let - options = lib.strings.concatStringsSep " " buildOptions; - libtccOptions = lib.strings.concatStringsSep " " - (["-c" "-D" "TCC_TARGET_I386=1" ] ++ libtccBuildOptions); - compiler = kaem.runCommand "${pname}-${version}" { - inherit pname version meta; - passthru.tests = rec { - get-version = result: kaem.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/tcc -version - mkdir ''${out} - ''; - chain = result: kaem.runCommand "${pname}-chain-${version}" {} '' - echo ${prev.compiler.tests.chain or prev.compiler.tests.get-version}; - ${result}/bin/tcc -version - mkdir ''${out} - ''; - }; - } '' - catm config.h - mkdir -p ''${out}/bin - ${prev.compiler}/bin/tcc \ - -B ${prev.libs}/lib \ - -g \ - -v \ - -o ''${out}/bin/tcc \ - -D BOOTSTRAP=1 \ - ${options} \ - -I . \ - -I ${src} \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"\" \ - -D CONFIG_SYSROOT=\"\" \ - -D CONFIG_TCC_CRTPREFIX=\"{B}\" \ - -D CONFIG_TCC_ELFINTERP=\"\" \ - -D CONFIG_TCC_LIBPATHS=\"{B}\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${mes-libc}/include\" \ - -D TCC_LIBGCC=\"libc.a\" \ - -D TCC_LIBTCC1=\"libtcc1.a\" \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_MES_LIBC=1 \ - -D TCC_VERSION=\"${version}\" \ - -D ONE_SOURCE=1 \ - ${src}/tcc.c - ''; - libs = recompileLibc { - inherit pname version src libtccOptions; - tcc = compiler; - }; - in { inherit prev compiler libs; }; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/ignore-duplicate-symbols.patch b/pkgs/os-specific/linux/minimal-bootstrap/tinycc/ignore-duplicate-symbols.patch deleted file mode 100644 index 0aec8b465bf2..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/ignore-duplicate-symbols.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- tccelf.c -+++ tccelf.c -@@ -710,8 +710,9 @@ ST_FUNC int set_elf_sym(Section *s, addr_t value, unsigned long size, - #if 0 - printf("new_bind=%x new_shndx=%x new_vis=%x old_bind=%x old_shndx=%x old_vis=%x\n", - sym_bind, shndx, new_vis, esym_bind, esym->st_shndx, esym_vis); --#endif - tcc_error_noabort("'%s' defined twice", name); -+#endif -+ goto do_patch; - } - } else { - esym->st_other = other; diff --git a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/ignore-static-inside-array.patch b/pkgs/os-specific/linux/minimal-bootstrap/tinycc/ignore-static-inside-array.patch deleted file mode 100644 index 8dc2fe3fcfb4..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/ignore-static-inside-array.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- tccgen.c -+++ tccgen.c -@@ -4941,7 +4941,7 @@ static int post_type(CType *type, AttributeDef *ad, int storage, int td) - next(); - n = -1; - t1 = 0; -- if (td & TYPE_PARAM) while (1) { -+ while (1) { - /* XXX The optional type-quals and static should only be accepted - in parameter decls. The '*' as well, and then even only - in prototypes (not function defs). */ -@@ -4972,7 +4972,8 @@ static int post_type(CType *type, AttributeDef *ad, int storage, int td) - } - break; - -- } else if (tok != ']') { -+ } -+ if (tok != ']') { - if (!local_stack || (storage & VT_STATIC)) - vpushi(expr_const()); - else { diff --git a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/mes.nix b/pkgs/os-specific/linux/minimal-bootstrap/tinycc/mes.nix deleted file mode 100644 index 55f6321412db..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/mes.nix +++ /dev/null @@ -1,96 +0,0 @@ -# Build steps adapted from https://github.com/fosslinux/live-bootstrap/blob/1bc4296091c51f53a5598050c8956d16e945b0f5/sysa/tcc-0.9.27/tcc-0.9.27.kaem -# -# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -{ lib -, fetchurl -, callPackage -, kaem -, tinycc-bootstrappable -}: -let - inherit (callPackage ./common.nix { }) buildTinyccMes; - - version = "unstable-2023-04-20"; - rev = "86f3d8e33105435946383aee52487b5ddf918140"; - - tarball = fetchurl { - url = "https://repo.or.cz/tinycc.git/snapshot/${rev}.tar.gz"; - sha256 = "11idrvbwfgj1d03crv994mpbbbyg63j1k64lw1gjy7mkiifw2xap"; - }; - src = (kaem.runCommand "tinycc-${version}-source" {} '' - ungz --file ${tarball} --output tinycc.tar - mkdir -p ''${out} - cd ''${out} - untar --file ''${NIX_BUILD_TOP}/tinycc.tar - - # Patch - cd tinycc-${builtins.substring 0 7 rev} - # Static link by default - replace --file libtcc.c --output libtcc.c --match-on "s->ms_extensions = 1;" --replace-with "s->ms_extensions = 1; s->static_link = 1;" - '') + "/tinycc-${builtins.substring 0 7 rev}"; - - meta = with lib; { - description = "Small, fast, and embeddable C compiler and interpreter"; - homepage = "https://repo.or.cz/w/tinycc.git"; - license = licenses.lgpl21Only; - maintainers = teams.minimal-bootstrap.members; - platforms = [ "i686-linux" ]; - }; - - tccdefs = kaem.runCommand "tccdefs-${version}" {} '' - mkdir ''${out} - ${tinycc-bootstrappable.compiler}/bin/tcc \ - -B ${tinycc-bootstrappable.libs}/lib \ - -DC2STR \ - -o c2str \ - ${src}/conftest.c - ./c2str ${src}/include/tccdefs.h ''${out}/tccdefs_.h - ''; - - tinycc-mes-boot = buildTinyccMes { - pname = "tinycc-mes-boot"; - inherit src version meta; - prev = tinycc-bootstrappable; - buildOptions = [ - "-D HAVE_BITFIELD=1" - "-D HAVE_FLOAT=1" - "-D HAVE_LONG_LONG=1" - "-D HAVE_SETJMP=1" - "-D CONFIG_TCC_PREDEFS=1" - "-I ${tccdefs}" - "-D CONFIG_TCC_SEMLOCK=0" - ]; - libtccBuildOptions = [ - "-D HAVE_FLOAT=1" - "-D HAVE_LONG_LONG=1" - "-D CONFIG_TCC_PREDEFS=1" - "-I ${tccdefs}" - "-D CONFIG_TCC_SEMLOCK=0" - ]; - }; -in -buildTinyccMes { - pname = "tinycc-mes"; - inherit src version meta; - prev = tinycc-mes-boot; - buildOptions = [ - "-std=c99" - "-D HAVE_BITFIELD=1" - "-D HAVE_FLOAT=1" - "-D HAVE_LONG_LONG=1" - "-D HAVE_SETJMP=1" - "-D CONFIG_TCC_PREDEFS=1" - "-I ${tccdefs}" - "-D CONFIG_TCC_SEMLOCK=0" - ]; - libtccBuildOptions = [ - "-D HAVE_FLOAT=1" - "-D HAVE_LONG_LONG=1" - "-D CONFIG_TCC_PREDEFS=1" - "-I ${tccdefs}" - "-D CONFIG_TCC_SEMLOCK=0" - ]; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/musl.nix b/pkgs/os-specific/linux/minimal-bootstrap/tinycc/musl.nix deleted file mode 100644 index 4d26faac20b1..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/musl.nix +++ /dev/null @@ -1,155 +0,0 @@ -{ lib -, fetchurl -, callPackage -, bash -, tinycc-bootstrappable -, musl -, gnupatch -, gnutar -, gzip -}: -let - pname = "tinycc-musl"; - # next commit introduces use of realpath (unsupported in mes-libc) - version = "unstable-2023-07-10"; - rev = "fd6d2180c5c801bb0b4c5dde27d61503059fc97d"; - - src = fetchurl { - url = "https://repo.or.cz/tinycc.git/snapshot/${rev}.tar.gz"; - hash = "sha256-R81SNbEmh4s9FNQxCWZwUiMCYRkkwOHAdRf0aMnnRiA="; - }; - - patches = [ - ./ignore-duplicate-symbols.patch - ./ignore-static-inside-array.patch - ./static-link.patch - ]; - - meta = with lib; { - description = "Small, fast, and embeddable C compiler and interpreter"; - homepage = "https://repo.or.cz/w/tinycc.git"; - license = licenses.lgpl21Only; - maintainers = teams.minimal-bootstrap.members; - platforms = [ "i686-linux" ]; - }; - - tinycc-musl = bash.runCommand "${pname}-${version}" { - inherit pname version meta; - - nativeBuildInputs = [ - tinycc-bootstrappable.compiler - gnupatch - gnutar - gzip - ]; - } '' - # Unpack - tar xzf ${src} - cd tinycc-${builtins.substring 0 7 rev} - - # Patch - ${lib.concatMapStringsSep "\n" (f: "patch -Np0 -i ${f}") patches} - - # Configure - touch config.h - - # Build - # We first have to recompile using tcc-0.9.26 as tcc-0.9.27 is not self-hosting, - # but when linked with musl it is. - ln -s ${musl}/lib/libtcc1.a ./libtcc1.a - - tcc \ - -B ${tinycc-bootstrappable.libs}/lib \ - -DC2STR \ - -o c2str \ - conftest.c - ./c2str include/tccdefs.h tccdefs_.h - - tcc -v \ - -static \ - -o tcc-musl \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"\" \ - -D CONFIG_TCC_CRTPREFIX=\"{B}\" \ - -D CONFIG_TCC_ELFINTERP=\"/musl/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"{B}\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${musl}/include\" \ - -D TCC_LIBGCC=\"libc.a\" \ - -D TCC_LIBTCC1=\"libtcc1.a\" \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_VERSION=\"0.9.27\" \ - -D ONE_SOURCE=1 \ - -D TCC_MUSL=1 \ - -D CONFIG_TCC_PREDEFS=1 \ - -D CONFIG_TCC_SEMLOCK=0 \ - -B . \ - -B ${tinycc-bootstrappable.libs}/lib \ - tcc.c - # libtcc1.a - rm -f libtcc1.a - tcc -c -D HAVE_CONFIG_H=1 lib/libtcc1.c - tcc -ar cr libtcc1.a libtcc1.o - - # Rebuild tcc-musl with itself - ./tcc-musl \ - -v \ - -static \ - -o tcc-musl \ - -D TCC_TARGET_I386=1 \ - -D CONFIG_TCCDIR=\"\" \ - -D CONFIG_TCC_CRTPREFIX=\"{B}\" \ - -D CONFIG_TCC_ELFINTERP=\"/musl/loader\" \ - -D CONFIG_TCC_LIBPATHS=\"{B}\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${musl}/include\" \ - -D TCC_LIBGCC=\"libc.a\" \ - -D TCC_LIBTCC1=\"libtcc1.a\" \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_VERSION=\"0.9.27\" \ - -D ONE_SOURCE=1 \ - -D TCC_MUSL=1 \ - -D CONFIG_TCC_PREDEFS=1 \ - -D CONFIG_TCC_SEMLOCK=0 \ - -B . \ - -B ${musl}/lib \ - tcc.c - # libtcc1.a - rm -f libtcc1.a - ./tcc-musl -c -D HAVE_CONFIG_H=1 lib/libtcc1.c - ./tcc-musl -c -D HAVE_CONFIG_H=1 lib/alloca.S - ./tcc-musl -ar cr libtcc1.a libtcc1.o alloca.o - - # Install - install -D tcc-musl $out/bin/tcc - install -Dm444 libtcc1.a $out/lib/libtcc1.a - ''; -in -{ - compiler = bash.runCommand "${pname}-${version}-compiler" { - inherit pname version meta; - passthru.tests.hello-world = result: - bash.runCommand "${pname}-simple-program-${version}" {} '' - cat <<EOF >> test.c - #include <stdio.h> - int main() { - printf("Hello World!\n"); - return 0; - } - EOF - ${result}/bin/tcc -v -static -B${musl}/lib -o test test.c - ./test - mkdir $out - ''; - passthru.tinycc-musl = tinycc-musl; - } "install -D ${tinycc-musl}/bin/tcc $out/bin/tcc"; - - libs = bash.runCommand "${pname}-${version}-libs" { - inherit pname version meta; - } '' - mkdir $out - cp -r ${musl}/* $out - chmod +w $out/lib/libtcc1.a - cp ${tinycc-musl}/lib/libtcc1.a $out/lib/libtcc1.a - ''; -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/static-link.patch b/pkgs/os-specific/linux/minimal-bootstrap/tinycc/static-link.patch deleted file mode 100644 index 671a3b37f98d..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/tinycc/static-link.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- libtcc.c -+++ libtcc.c -@@ -793,6 +793,7 @@ LIBTCCAPI TCCState *tcc_new(void) - - s->gnu_ext = 1; - s->tcc_ext = 1; -+ s->static_link = 1; - s->nocommon = 1; - s->dollars_in_identifiers = 1; /*on by default like in gcc/clang*/ - s->cversion = 199901; /* default unless -std=c11 is supplied */ diff --git a/pkgs/os-specific/linux/minimal-bootstrap/utils.nix b/pkgs/os-specific/linux/minimal-bootstrap/utils.nix deleted file mode 100644 index cc8c04619169..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/utils.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, buildPlatform -, callPackage -, kaem -, mescc-tools-extra -, checkMeta -}: -rec { - derivationWithMeta = attrs: - let - passthru = attrs.passthru or {}; - validity = checkMeta.assertValidity { inherit meta attrs; }; - meta = checkMeta.commonMeta { inherit validity attrs; }; - baseDrv = derivation ({ - inherit (buildPlatform) system; - inherit (meta) name; - } // (builtins.removeAttrs attrs [ "meta" "passthru" ])); - passthru' = passthru // lib.optionalAttrs (passthru ? tests) { - tests = lib.mapAttrs (_: f: f baseDrv) passthru.tests; - }; - in - lib.extendDerivation - validity.handled - ({ inherit meta; passthru = passthru'; } // passthru') - baseDrv; - - writeTextFile = - { name # the name of the derivation - , text - , executable ? false # run chmod +x ? - , destination ? "" # relative path appended to $out eg "/bin/foo" - }: - derivationWithMeta { - inherit name text; - passAsFile = [ "text" ]; - - builder = "${kaem}/bin/kaem"; - args = [ - "--verbose" - "--strict" - "--file" - (builtins.toFile "write-text-file.kaem" ('' - target=''${out}''${destination} - '' + lib.optionalString (builtins.dirOf destination == ".") '' - mkdir -p ''${out}''${destinationDir} - '' + '' - cp ''${textPath} ''${target} - '' + lib.optionalString executable '' - chmod 555 ''${target} - '')) - ]; - - PATH = lib.makeBinPath [ mescc-tools-extra ]; - destinationDir = builtins.dirOf destination; - inherit destination; - }; - - writeText = name: text: writeTextFile {inherit name text;}; - -} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/xz/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/xz/default.nix deleted file mode 100644 index 8dcccbacaca8..000000000000 --- a/pkgs/os-specific/linux/minimal-bootstrap/xz/default.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ lib -, buildPlatform -, hostPlatform -, fetchurl -, bash -, tinycc -, gnumake -, gnused -, gnugrep -, gawk -, gnutar -, gzip -}: -let - pname = "xz"; - version = "5.4.3"; - - src = fetchurl { - url = "https://tukaani.org/xz/xz-${version}.tar.gz"; - hash = "sha256-HDguC8Lk4K9YOYqQPdYv/35RAXHS3keh6+BtFSjpt+k="; - }; -in -bash.runCommand "${pname}-${version}" { - inherit pname version; - - nativeBuildInputs = [ - tinycc.compiler - gnumake - gnused - gnugrep - gawk - gnutar - gzip - ]; - - passthru.tests.get-version = result: - bash.runCommand "${pname}-get-version-${version}" {} '' - ${result}/bin/xz --version - mkdir $out - ''; - - meta = with lib; { - description = "A general-purpose data compression software, successor of LZMA"; - homepage = "https://tukaani.org/xz"; - license = with licenses; [ gpl2Plus lgpl21Plus ]; - maintainers = teams.minimal-bootstrap.members; - platforms = platforms.unix; - }; -} '' - # Unpack - tar xzf ${src} - cd xz-${version} - - # Configure - export CC="tcc -B ${tinycc.libs}/lib" - export AR="tcc -ar" - export LD=tcc - bash ./configure \ - --prefix=$out \ - --build=${buildPlatform.config} \ - --host=${hostPlatform.config} \ - --disable-shared \ - --disable-assembler - - # Build - make -j $NIX_BUILD_CORES - - # Install - make -j $NIX_BUILD_CORES install -'' diff --git a/pkgs/os-specific/linux/miraclecast/default.nix b/pkgs/os-specific/linux/miraclecast/default.nix deleted file mode 100644 index 0b03aeb3c2d0..000000000000 --- a/pkgs/os-specific/linux/miraclecast/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config -, glib, readline, pcre, systemd, udev, iproute2 }: - -stdenv.mkDerivation { - pname = "miraclecast"; - version = "1.0-20231112"; - - src = fetchFromGitHub { - owner = "albfan"; - repo = "miraclecast"; - rev = "af6ab257eae83bb0270a776a8fe00c0148bc53c4"; - hash = "sha256-3ZIAvA3w/ZhoJtVmUD444nch0PGD58PdBRke7zd9IuQ="; - }; - - nativeBuildInputs = [ meson ninja pkg-config ]; - - buildInputs = [ glib pcre readline systemd udev iproute2 ]; - - mesonFlags = [ - "-Drely-udev=true" - "-Dbuild-tests=true" - "-Dip-binary=${iproute2}/bin/ip" - ]; - - meta = with lib; { - description = "Connect external monitors via Wi-Fi"; - homepage = "https://github.com/albfan/miraclecast"; - license = licenses.lgpl21Plus; - maintainers = with maintainers; [ ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/mkinitcpio-nfs-utils/default.nix b/pkgs/os-specific/linux/mkinitcpio-nfs-utils/default.nix deleted file mode 100644 index da2ba4b9ff2d..000000000000 --- a/pkgs/os-specific/linux/mkinitcpio-nfs-utils/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "mkinitcpio-nfs-utils"; - version = "0.3"; - - src = fetchurl { - url = "https://sources.archlinux.org/other/mkinitcpio/mkinitcpio-nfs-utils-${version}.tar.xz"; - sha256 = "0fc93sfk41ycpa33083kyd7i4y00ykpbhj5qlw611bjghj4x946j"; - # ugh, upstream... - name = "mkinitcpio-nfs-utils-${version}.tar.gz"; - }; - - makeFlags = [ "DESTDIR=$(out)" "bindir=/bin" ]; - - postInstall = '' - rm -rf $out/usr - ''; - - meta = with lib; { - homepage = "https://archlinux.org/"; - description = "ipconfig and nfsmount tools for root on NFS, ported from klibc"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ]; - }; -} diff --git a/pkgs/os-specific/linux/mmc-utils/default.nix b/pkgs/os-specific/linux/mmc-utils/default.nix deleted file mode 100644 index 76b7d3ae1af1..000000000000 --- a/pkgs/os-specific/linux/mmc-utils/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchzip, unstableGitUpdater }: - -stdenv.mkDerivation { - pname = "mmc-utils"; - version = "unstable-2024-03-07"; - - src = fetchzip rec { - url = "https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git/snapshot/mmc-utils-${passthru.rev}.tar.gz"; - passthru.rev = "e1281d4de9166b7254ba30bb58f9191fc2c9e7fb"; - sha256 = "/lkcZ/ArdBAStV9usavrbfjULXenqb+h2rbDJzxZjJk="; - }; - - makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "prefix=$(out)" ]; - - # causes redefinition of _FORTIFY_SOURCE - hardeningDisable = [ "fortify3" ]; - - postInstall = '' - mkdir -p $out/share/man/man1 - cp man/mmc.1 $out/share/man/man1/ - ''; - - enableParallelBuilding = true; - - passthru.updateScript = unstableGitUpdater { - url = "https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git"; - }; - - meta = with lib; { - description = "Configure MMC storage devices from userspace"; - mainProgram = "mmc"; - homepage = "https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git/"; - license = licenses.gpl2Only; - maintainers = [ maintainers.dezgeg ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/molly-guard/default.nix b/pkgs/os-specific/linux/molly-guard/default.nix deleted file mode 100644 index 1100751f451e..000000000000 --- a/pkgs/os-specific/linux/molly-guard/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchurl, dpkg, busybox, systemd }: - -stdenv.mkDerivation rec { - pname = "molly-guard"; - version = "0.7.2"; - - src = fetchurl { - url = "https://launchpad.net/ubuntu/+archive/primary/+files/molly-guard_${version}_all.deb"; - sha256 = "1k6b1hn8lc4rj9n036imsl7s9lqj6ny3acdhnbnamsdkkndmxrw7"; - }; - - buildInputs = [ dpkg ]; - - unpackCmd = '' - dpkg-deb -x "$src" source - ''; - - installPhase = '' - sed -i "s|/lib/molly-guard|${systemd}/sbin|g" lib/molly-guard/molly-guard - sed -i "s|run-parts|${busybox}/bin/run-parts|g" lib/molly-guard/molly-guard - sed -i "s|/etc/molly-guard/|$out/etc/molly-guard/|g" lib/molly-guard/molly-guard - cp -r ./ $out/ - ''; - - postFixup = '' - for modus in init halt poweroff reboot runlevel shutdown telinit; do - ln -sf $out/lib/molly-guard/molly-guard $out/bin/$modus; - done; - ''; - - meta = with lib; { - description = "Attempts to prevent you from accidentally shutting down or rebooting machines"; - homepage = "https://salsa.debian.org/debian/molly-guard"; - license = licenses.artistic2; - platforms = platforms.linux; - maintainers = with maintainers; [ DerTim1 ]; - priority = -10; - }; -} diff --git a/pkgs/os-specific/linux/msr-tools/default.nix b/pkgs/os-specific/linux/msr-tools/default.nix deleted file mode 100644 index 1e6a55a4d656..000000000000 --- a/pkgs/os-specific/linux/msr-tools/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl, unzip }: - -stdenv.mkDerivation rec { - pname = "msr-tools"; - version = "1.3"; - - src = fetchurl { - url = "https://01.org/sites/default/files/downloads/msr-tools/${pname}-${version}.zip"; - sha256 = "07hxmddg0l31kjfmaq84ni142lbbvgq6391r8bd79wpm819pnigr"; - }; - - nativeBuildInputs = [ unzip ]; - - preInstall = '' - mkdir -p $out/bin - substituteInPlace Makefile \ - --replace /usr/sbin $out/bin - ''; - - meta = with lib; { - description = "Tool to read/write from/to MSR CPU registers on Linux"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ peterhoeg ]; - }; -} diff --git a/pkgs/os-specific/linux/msr/000-include-sysmacros.patch b/pkgs/os-specific/linux/msr/000-include-sysmacros.patch deleted file mode 100644 index 5fa96cd14699..000000000000 --- a/pkgs/os-specific/linux/msr/000-include-sysmacros.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur msr-old/msr.c msr-20060208/msr.c ---- msr-old/msr.c 1969-12-31 21:00:01.000000000 -0300 -+++ msr-20060208/msr.c 2021-11-02 21:19:34.576722617 -0300 -@@ -19,6 +19,7 @@ - #include <stdio.h> - #include <sys/types.h> - #include <sys/stat.h> -+#include <sys/sysmacros.h> - #include <fcntl.h> - #include <errno.h> - #include <unistd.h> diff --git a/pkgs/os-specific/linux/msr/default.nix b/pkgs/os-specific/linux/msr/default.nix deleted file mode 100644 index 630fc983690d..000000000000 --- a/pkgs/os-specific/linux/msr/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib -, stdenv -, fetchzip -, installShellFiles -}: - -stdenv.mkDerivation rec { - pname = "msr"; - version = "20060208"; - - src = fetchzip { - name = "${pname}-${version}"; - url = "http://www.etallen.com/msr/${pname}-${version}.src.tar.gz"; - hash = "sha256-e01qYWbOALkXp5NpexuVodMxA3EBySejJ6ZBpZjyT+E="; - }; - - nativeBuildInputs = [ - installShellFiles - ]; - - patches = [ - ./000-include-sysmacros.patch - ]; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin/ - cp msr $out/bin/ - installManPage msr.man - runHook postInstall - ''; - - meta = with lib; { - homepage = "http://www.etallen.com/msr.html"; - description = "Linux tool to display or modify x86 model-specific registers (MSRs)"; - mainProgram = "msr"; - license = licenses.bsd0; - maintainers = with maintainers; [ AndersonTorres ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/mstflint_access/default.nix b/pkgs/os-specific/linux/mstflint_access/default.nix deleted file mode 100644 index 6e29e27ccbf2..000000000000 --- a/pkgs/os-specific/linux/mstflint_access/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv, fetchurl, kernel, kmod, mstflint }: - -stdenv.mkDerivation rec { - pname = "mstflint_access"; - inherit (mstflint) version; - - src = fetchurl { - url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/kernel-mstflint-${version}.tar.gz"; - hash = "sha256-rfZts0m8x6clVazpbAa2xK+dYgRU9Us5rbcWa0uHJ1M="; - }; - - nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KVER=${kernel.modDirVersion}" - "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - enableParallelBuilding = true; - - preConfigure = lib.optionals (lib.versionAtLeast kernel.version "6.4") '' - sed -i "s/class_create(THIS_MODULE, dev->name)/class_create(dev->name)/g" mst_main.c - ''; - - installPhase = '' - runHook preInstall - - install -D ${pname}.ko $out/lib/modules/${kernel.modDirVersion}/extra/${pname}.ko - - runHook postInstall - ''; - - meta = with lib; { - description = "A kernel module for Nvidia NIC firmware update"; - homepage = "https://github.com/Mellanox/mstflint"; - license = [ licenses.gpl2Only ]; - maintainers = with maintainers; [ thillux ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/mstpd/default.nix b/pkgs/os-specific/linux/mstpd/default.nix deleted file mode 100644 index 389acdf91e6e..000000000000 --- a/pkgs/os-specific/linux/mstpd/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }: - -stdenv.mkDerivation rec { - pname = "mstpd"; - version = "0.0.8"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = version; - sha256 = "1xkfydxljdnj49p5r3mirk4k146428b6imfc9bkfps9yjn64mkgb"; - }; - - patches = [ - (fetchpatch { - name = "fix-strncpy-gcc9.patch"; - url = "https://github.com/mstpd/mstpd/commit/d27d7e93485d881d8ff3a7f85309b545edbe1fc6.patch"; - sha256 = "19456daih8l3y6m9kphjr7pj7slrqzbj6yacnlgznpxyd8y4d86y"; - }) - ]; - - nativeBuildInputs = [ autoreconfHook ]; - - configureFlags = [ - "--prefix=$(out)" - "--sysconfdir=$(out)/etc" - "--sbindir=$(out)/sbin" - "--libexecdir=$(out)/lib" - ]; - - meta = with lib; { - description = "Multiple Spanning Tree Protocol daemon"; - homepage = "https://github.com/mstpd/mstpd"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/multipath-tools/default.nix b/pkgs/os-specific/linux/multipath-tools/default.nix deleted file mode 100644 index 5ec8197451cf..000000000000 --- a/pkgs/os-specific/linux/multipath-tools/default.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, coreutils - -, perl -, pkg-config - -, json_c -, libaio -, liburcu -, linuxHeaders -, lvm2 -, readline -, systemd -, util-linuxMinimal - -, cmocka -, nixosTests -}: - -stdenv.mkDerivation rec { - pname = "multipath-tools"; - version = "0.9.6"; - - src = fetchFromGitHub { - owner = "opensvc"; - repo = "multipath-tools"; - rev = "refs/tags/${version}"; - sha256 = "sha256-X4sAMGn4oBMY3cQkVj1dMcrDF7FgMl8SbZeUnCCOY6Q="; - }; - - postPatch = '' - substituteInPlace create-config.mk \ - --replace /bin/echo ${coreutils}/bin/echo - - substituteInPlace multipathd/multipathd.service \ - --replace /sbin/multipathd "$out/bin/multipathd" - - sed -i -re ' - s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'", - ' libmultipath/defaults.h - sed -i -e 's,\$(DESTDIR)/\(usr/\)\?,$(prefix)/,g' \ - kpartx/Makefile libmpathpersist/Makefile - sed -i -e "s,GZIP,GZ," \ - $(find * -name Makefile\*) - - sed '1i#include <assert.h>' -i tests/{util,vpd}.c - ''; - - nativeBuildInputs = [ - perl - pkg-config - ]; - buildInputs = [ - json_c - libaio - liburcu - linuxHeaders - lvm2 - readline - systemd - util-linuxMinimal # for libmount - ]; - - makeFlags = [ - "LIB=lib" - "prefix=$(out)" - "systemd_prefix=$(out)" - "kernel_incdir=${linuxHeaders}/include/" - "man8dir=$(out)/share/man/man8" - "man5dir=$(out)/share/man/man5" - "man3dir=$(out)/share/man/man3" - ]; - - doCheck = true; - preCheck = '' - # skip test attempting to access /sys/dev/block - substituteInPlace tests/Makefile --replace ' devt ' ' ' - ''; - nativeCheckInputs = [ cmocka ]; - - passthru.tests = { inherit (nixosTests) iscsi-multipath-root; }; - - meta = with lib; { - description = "Tools for the Linux multipathing storage driver"; - homepage = "http://christophe.varoqui.free.fr/"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/musl-fts/default.nix b/pkgs/os-specific/linux/musl-fts/default.nix deleted file mode 100644 index cdb1cca47c6a..000000000000 --- a/pkgs/os-specific/linux/musl-fts/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config }: - -stdenv.mkDerivation rec { - pname = "musl-fts"; - version = "1.2.7"; - - src = fetchFromGitHub { - owner = "void-linux"; - repo = "musl-fts"; - rev = "v${version}"; - sha256 = "Azw5qrz6OKDcpYydE6jXzVxSM5A8oYWAztrHr+O/DOE="; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://github.com/void-linux/musl-fts"; - description = "An implementation of fts(3) for musl-libc"; - platforms = platforms.linux; - license = licenses.bsd3; - maintainers = [ maintainers.pjjw ]; - }; -} diff --git a/pkgs/os-specific/linux/musl-obstack/default.nix b/pkgs/os-specific/linux/musl-obstack/default.nix deleted file mode 100644 index ec183da7048c..000000000000 --- a/pkgs/os-specific/linux/musl-obstack/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config }: - -stdenv.mkDerivation rec { - pname = "musl-obstack"; - version = "1.2.3"; - - src = fetchFromGitHub { - owner = "void-linux"; - repo = "musl-obstack"; - rev = "v${version}"; - sha256 = "sha256-oydS7FubUniMHAUWfg84OH9+CZ0JCrTXy7jzwOyJzC8="; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://github.com/void-linux/musl-obstack"; - description = - "An extraction of the obstack functions and macros from GNU libiberty for use with musl-libc"; - platforms = platforms.linux; - license = licenses.lgpl21Plus; - maintainers = [ maintainers.pjjw ]; - }; -} diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix deleted file mode 100644 index 9f7867065ea8..000000000000 --- a/pkgs/os-specific/linux/musl/default.nix +++ /dev/null @@ -1,161 +0,0 @@ -{ stdenv, lib, fetchurl -, linuxHeaders ? null -, useBSDCompatHeaders ? true -}: -let - cdefs_h = fetchurl { - name = "sys-cdefs.h"; - url = "https://git.alpinelinux.org/aports/plain/main/libc-dev/sys-cdefs.h?id=7ca0ed62d4c0d713d9c7dd5b9a077fba78bce578"; - sha256 = "16l3dqnfq0f20rzbkhc38v74nqcsh9n3f343bpczqq8b1rz6vfrh"; - }; - queue_h = fetchurl { - name = "sys-queue.h"; - url = "http://git.alpinelinux.org/aports/plain/main/libc-dev/sys-queue.h?id=7ca0ed62d4c0d713d9c7dd5b9a077fba78bce578"; - sha256 = "12qm82id7zys92a1qh2l1qf2wqgq6jr4qlbjmqyfffz3s3nhfd61"; - }; - tree_h = fetchurl { - name = "sys-tree.h"; - url = "http://git.alpinelinux.org/aports/plain/main/libc-dev/sys-tree.h?id=7ca0ed62d4c0d713d9c7dd5b9a077fba78bce578"; - sha256 = "14igk6k00bnpfw660qhswagyhvr0gfqg4q55dxvaaq7ikfkrir71"; - }; - - stack_chk_fail_local_c = fetchurl { - name = "__stack_chk_fail_local.c"; - url = "https://git.alpinelinux.org/aports/plain/main/musl/__stack_chk_fail_local.c?id=9afbe3cbbf4c30ff23c733218c3c03d7e8c6461d"; - sha256 = "1nhkzzy9pklgjcq2yg89d3l18jif331srd3z3vhy5qwxl1spv6i9"; - }; - - # iconv tool, implemented by musl author. - # Original: http://git.etalabs.net/cgit/noxcuse/plain/src/iconv.c?id=02d288d89683e99fd18fe9f54d4e731a6c474a4f - # We use copy from Alpine which fixes error messages, see: - # https://git.alpinelinux.org/aports/commit/main/musl/iconv.c?id=a3d97e95f766c9c378194ee49361b375f093b26f - iconv_c = fetchurl { - name = "iconv.c"; - url = "https://git.alpinelinux.org/aports/plain/main/musl/iconv.c?id=a3d97e95f766c9c378194ee49361b375f093b26f"; - sha256 = "1mzxnc2ncq8lw9x6n7p00fvfklc9p3wfv28m68j0dfz5l8q2k6pp"; - }; - - arch = if stdenv.hostPlatform.isx86_64 - then "x86_64" - else if stdenv.hostPlatform.isx86_32 - then "i386" - else null; - -in -stdenv.mkDerivation rec { - pname = "musl"; - version = "1.2.3"; - - src = fetchurl { - url = "https://musl.libc.org/releases/${pname}-${version}.tar.gz"; - sha256 = "sha256-fVsLYGJSHkYn4JnkydyCSNMqMChelZt+7Kp4DPjP1KQ="; - }; - - enableParallelBuilding = true; - - # Disable auto-adding stack protector flags, - # so musl can selectively disable as needed - hardeningDisable = [ "stackprotector" ]; - - # Leave these, be friendlier to debuggers/perf tools - # Don't force them on, but don't force off either - postPatch = '' - substituteInPlace configure \ - --replace -fno-unwind-tables "" \ - --replace -fno-asynchronous-unwind-tables "" - ''; - - patches = [ - # Minor touchup to build system making dynamic linker symlink relative - (fetchurl { - url = "https://raw.githubusercontent.com/openwrt/openwrt/87606e25afac6776d1bbc67ed284434ec5a832b4/toolchain/musl/patches/300-relative.patch"; - sha256 = "0hfadrycb60sm6hb6by4ycgaqc9sgrhh42k39v8xpmcvdzxrsq2n"; - }) - - # fix parsing lines with optional fields in fstab etc. NOTE: Remove for the next release since it has been merged upstream - (fetchurl { - url = "https://git.musl-libc.org/cgit/musl/patch/?id=751bee0ee727e8d8b003c87cff77ac76f1dbecd6"; - sha256 = "sha256-qCw132TCSaZrkISmtDb8Q8ufyt8sAJdwACkvfwuoi/0="; - }) - ]; - CFLAGS = [ "-fstack-protector-strong" ] - ++ lib.optional stdenv.hostPlatform.isPower "-mlong-double-64"; - - configureFlags = [ - "--enable-shared" - "--enable-static" - "--enable-debug" - "--enable-wrapper=all" - "--syslibdir=${placeholder "out"}/lib" - ]; - - outputs = [ "out" "bin" "dev" ]; - - dontDisableStatic = true; - dontAddStaticConfigureFlags = true; - separateDebugInfo = true; - - NIX_DONT_SET_RPATH = true; - - preBuild = '' - ${lib.optionalString (stdenv.targetPlatform.libc == "musl" && stdenv.targetPlatform.isx86_32) - "# the -x c flag is required since the file extension confuses gcc - # that detect the file as a linker script. - $CC -x c -c ${stack_chk_fail_local_c} -o __stack_chk_fail_local.o - $AR r libssp_nonshared.a __stack_chk_fail_local.o" - } - ''; - - postInstall = '' - # Not sure why, but link in all but scsi directory as that's what uclibc/glibc do. - # Apparently glibc provides scsi itself? - (cd $dev/include && ln -s $(ls -d ${linuxHeaders}/include/* | grep -v "scsi$") .) - - ${lib.optionalString (stdenv.targetPlatform.libc == "musl" && stdenv.targetPlatform.isx86_32) - "install -D libssp_nonshared.a $out/lib/libssp_nonshared.a" - } - - # Create 'ldd' symlink, builtin - ln -s $out/lib/libc.so $bin/bin/ldd - - # (impure) cc wrapper around musl for interactive usuage - for i in musl-gcc musl-clang ld.musl-clang; do - moveToOutput bin/$i $dev - done - moveToOutput lib/musl-gcc.specs $dev - substituteInPlace $dev/bin/musl-gcc \ - --replace $out/lib/musl-gcc.specs $dev/lib/musl-gcc.specs - - # provide 'iconv' utility, using just-built headers, libc/ldso - $CC ${iconv_c} -o $bin/bin/iconv \ - -I$dev/include \ - -L$out/lib -Wl,-rpath=$out/lib \ - -lc \ - -B $out/lib \ - -Wl,-dynamic-linker=$(ls $out/lib/ld-*) - '' + lib.optionalString (arch != null) '' - # Create 'libc.musl-$arch' symlink - ln -rs $out/lib/libc.so $out/lib/libc.musl-${arch}.so.1 - '' + lib.optionalString useBSDCompatHeaders '' - install -D ${queue_h} $dev/include/sys/queue.h - install -D ${cdefs_h} $dev/include/sys/cdefs.h - install -D ${tree_h} $dev/include/sys/tree.h - ''; - - passthru.linuxHeaders = linuxHeaders; - - meta = with lib; { - description = "An efficient, small, quality libc implementation"; - homepage = "https://musl.libc.org/"; - changelog = "https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?h=v${version}"; - license = licenses.mit; - platforms = [ - "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" - "armv7l-linux" "i686-linux" "x86_64-linux" "m68k-linux" - "microblaze-linux" "microblazeel-linux" "mips-linux" "mips64-linux" - "mipsel-linux" "mips64el-linux" "powerpc64-linux" "powerpc64le-linux" - "riscv64-linux" "s390x-linux" - ]; - maintainers = with maintainers; [ thoughtpolice dtzWill ]; - }; -} diff --git a/pkgs/os-specific/linux/mwprocapture/default.nix b/pkgs/os-specific/linux/mwprocapture/default.nix deleted file mode 100644 index 711a14845df7..000000000000 --- a/pkgs/os-specific/linux/mwprocapture/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ lib, stdenv, fetchurl, kernel, alsa-lib }: - -with lib; - -let - bits = - if stdenv.is64bit then "64" - else "32"; - - libpath = makeLibraryPath [ stdenv.cc.cc stdenv.cc.libc alsa-lib ]; - -in -stdenv.mkDerivation rec { - pname = "mwprocapture"; - subVersion = "4390"; - version = "1.3.0.${subVersion}-${kernel.version}"; - - src = fetchurl { - url = "https://www.magewell.com/files/drivers/ProCaptureForLinux_${subVersion}.tar.gz"; - sha256 = "sha256-a2cU7PYQh1KR5eeMhMNx2Sc3HHd7QvCG9+BoJyVPp1Y="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - preConfigure = '' - cd ./src - export INSTALL_MOD_PATH="$out" - ''; - - hardeningDisable = [ "pic" "format" ]; - - makeFlags = [ - "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-fallthrough"; - - postInstall = '' - cd ../ - mkdir -p $out/bin - cp bin/mwcap-control_${bits} $out/bin/mwcap-control - cp bin/mwcap-info_${bits} $out/bin/mwcap-info - mkdir -p $out/lib/udev/rules.d - # source has a filename typo - cp scripts/10-procatpure-event-dev.rules $out/lib/udev/rules.d/10-procapture-event-dev.rules - cp -r src/res $out - - patchelf \ - --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ - --set-rpath "${libpath}" \ - "$out"/bin/mwcap-control - - patchelf \ - --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ - --set-rpath "${libpath}" \ - "$out"/bin/mwcap-info - ''; - - meta = { - homepage = "https://www.magewell.com/"; - description = "Linux driver for the Magewell Pro Capture family"; - license = licenses.unfreeRedistributable; - maintainers = with maintainers; [ flexiondotorg ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/mxu11x0/default.nix b/pkgs/os-specific/linux/mxu11x0/default.nix deleted file mode 100644 index 17d0c6938206..000000000000 --- a/pkgs/os-specific/linux/mxu11x0/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, stdenv, fetchurl, kernel }: - -let - srcs = import (./srcs.nix) { inherit fetchurl; }; -in -stdenv.mkDerivation rec { - pname = "mxu11x0"; - - src = if lib.versionAtLeast kernel.version "5.0" then srcs.mxu11x0_5.src else srcs.mxu11x0_4.src; - mxu_version = if lib.versionAtLeast kernel.version "5.0" then srcs.mxu11x0_5.version else srcs.mxu11x0_4.version; - - version = mxu_version + "-${kernel.version}"; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - preBuild = '' - sed -i -e 's|/lib/modules|${kernel.dev}/lib/modules|' driver/mxconf - sed -i -e 's|/lib/modules|${kernel.dev}/lib/modules|' driver/Makefile - ''; - - installPhase = '' - install -v -D -m 644 ./driver/mxu11x0.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/usb/serial/mxu11x0.ko" - install -v -D -m 644 ./driver/mxu11x0.ko "$out/lib/modules/${kernel.modDirVersion}/misc/mxu11x0.ko" - ''; - - dontStrip = true; - - enableParallelBuilding = true; - - hardeningDisable = [ "pic" ]; - - meta = with lib; { - description = "MOXA UPort 11x0 USB to Serial Hub driver"; - homepage = "https://www.moxa.com/en/products/industrial-edge-connectivity/usb-to-serial-converters-usb-hubs/usb-to-serial-converters/uport-1000-series"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ uralbash ]; - platforms = platforms.linux; - # broken due to API change in write_room() > v5.14-rc1 - # https://github.com/torvalds/linux/commit/94cc7aeaf6c0cff0b8aeb7cb3579cee46b923560 - broken = kernel.kernelAtLeast "5.14"; - }; -} diff --git a/pkgs/os-specific/linux/mxu11x0/srcs.nix b/pkgs/os-specific/linux/mxu11x0/srcs.nix deleted file mode 100644 index 1f7b75e6bc1e..000000000000 --- a/pkgs/os-specific/linux/mxu11x0/srcs.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ fetchurl }: - -{ - mxu11x0_4 = { - version = "4.1"; - src = fetchurl { - url = "https://www.moxa.com/getmedia/b152d8c2-b9d6-4bc7-b0f4-420633b4bc2d/moxa-uport-1100-series-linux-kernel-4.x-driver-v4.1.tgz"; - sha256 = "sha256-cM3imuMG483ZinFazVa8V4Id0kUGlHaezDHnYtSSb28="; - }; - }; - mxu11x0_5 = { - version = "5.1"; - src = fetchurl { - url = "https://www.moxa.com/getmedia/57dfa4c1-8a2a-4da6-84c1-a36944ead74d/moxa-uport-1100-series-linux-kernel-5.x-driver-v5.1.tgz"; - sha256 = "sha256-P1YMlyAhS955CSBiZ/tyu5m6ds2PiFMcHmyrdTjloPs="; - }; - }; -} diff --git a/pkgs/os-specific/linux/nct6687d/default.nix b/pkgs/os-specific/linux/nct6687d/default.nix deleted file mode 100644 index 35e77c7922df..000000000000 --- a/pkgs/os-specific/linux/nct6687d/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, kernel -, nix-update-script -}: - -stdenv.mkDerivation rec { - pname = "nct6687d"; - version = "0-unstable-2024-02-23"; - - src = fetchFromGitHub { - owner = "Fred78290"; - repo = "nct6687d"; - rev = "0ee35ed9541bde22fe219305d1647b51ed010c5e"; - hash = "sha256-g81U+ngnsOslBDCQP51uDDyHPpCv9T/j+KmFUAQfz/M="; - }; - - setSourceRoot = '' - export sourceRoot=$(pwd)/source - ''; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "-C" "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "M=$(sourceRoot)" - ]; - - buildFlags = [ "modules" ]; - installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ]; - installTargets = [ "modules_install" ]; - - passthru.updateScript = nix-update-script { - extraArgs = [ "--version=branch=main" ]; - }; - - meta = with lib; { - description = "Kernel module for the Nuvoton NCT6687-R chipset found on many B550/B650 motherboards from ASUS and MSI"; - license = with licenses; [ gpl2Only ]; - homepage = "https://github.com/Fred78290/nct6687d/"; - platforms = platforms.linux; - maintainers = with maintainers; [ atemu ]; - }; -} diff --git a/pkgs/os-specific/linux/ndiswrapper/default.nix b/pkgs/os-specific/linux/ndiswrapper/default.nix deleted file mode 100644 index 39a8d919d8be..000000000000 --- a/pkgs/os-specific/linux/ndiswrapper/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, stdenv, fetchurl, kernel, perl, kmod, elfutils }: -let - version = "1.63"; -in -stdenv.mkDerivation { - name = "ndiswrapper-${version}-${kernel.version}"; - inherit version; - - hardeningDisable = [ "pic" ]; - - patches = [ ./no-sbin.patch ]; - - # need at least .config and include - kernel = kernel.dev; - - buildPhase = " - echo make KBUILD=$(echo \$kernel/lib/modules/*/build); - echo -n $kernel/lib/modules/*/build > kbuild_path - export PATH=${kmod}/sbin:$PATH - make KBUILD=$(echo \$kernel/lib/modules/*/build); - "; - - installPhase = '' - make install KBUILD=$(cat kbuild_path) DESTDIR=$out - mv $out/usr/sbin/* $out/sbin/ - mv $out/usr/share $out/ - rm -r $out/usr - - patchShebangs $out/sbin - ''; - - src = fetchurl { - url = "mirror://sourceforge/ndiswrapper/files/stable/ndiswrapper-${version}.tar.gz"; - sha256 = "1v6b66jhisl110jfl00hm43lmnrav32vs39d85gcbxrjqnmcx08g"; - }; - - buildInputs = [ perl elfutils ]; - - meta = { - description = "Ndis driver wrapper for the Linux kernel"; - homepage = "https://sourceforge.net/projects/ndiswrapper"; - license = "GPL"; - platforms = [ "i686-linux" "x86_64-linux" ]; - broken = lib.versionAtLeast kernel.version "5.8"; - }; -} diff --git a/pkgs/os-specific/linux/ndiswrapper/no-sbin.patch b/pkgs/os-specific/linux/ndiswrapper/no-sbin.patch deleted file mode 100644 index 373965fb0853..000000000000 --- a/pkgs/os-specific/linux/ndiswrapper/no-sbin.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/driver/Makefile -+++ b/driver/Makefile -@@ -191,7 +191,7 @@ clean: - rm -rf .tmp_versions - - install: config_check $(MODULE) -- @/sbin/modinfo $(MODULE) | grep -q "^vermagic: *$(KVERS) " || \ -+ @modinfo $(MODULE) | grep -q "^vermagic: *$(KVERS) " || \ - { echo "$(MODULE)" is not for Linux $(KVERS); exit 1; } - mkdir -p -m 755 $(DESTDIR)$(INST_DIR) - install -m 0644 $(MODULE) $(DESTDIR)$(INST_DIR) diff --git a/pkgs/os-specific/linux/net-tools/config.h b/pkgs/os-specific/linux/net-tools/config.h deleted file mode 100644 index dedaac6247d0..000000000000 --- a/pkgs/os-specific/linux/net-tools/config.h +++ /dev/null @@ -1,79 +0,0 @@ -/* -* config.h Automatically generated configuration includefile -* -* NET-TOOLS A collection of programs that form the base set of the -* NET-3 Networking Distribution for the LINUX operating -* system. -* -* DO NOT EDIT DIRECTLY -* -*/ - -/* - * - * Internationalization - * - * The net-tools package has currently been translated to French, - * German and Brazilian Portugese. Other translations are, of - * course, welcome. Answer `n' here if you have no support for - * internationalization on your system. - * - */ -#define I18N 0 - -/* - * - * Protocol Families. - * - */ -#define HAVE_AFUNIX 1 -#define HAVE_AFINET 1 -#define HAVE_AFINET6 1 -#define HAVE_AFIPX 1 -#define HAVE_AFATALK 1 -#define HAVE_AFAX25 0 -#define HAVE_AFNETROM 1 -#define HAVE_AFROSE 0 -#define HAVE_AFX25 0 -#define HAVE_AFECONET 0 -#define HAVE_AFDECnet 0 -#define HAVE_AFASH 0 -#define HAVE_AFBLUETOOTH 0 - -/* - * - * Device Hardware types. - * - */ -#define HAVE_HWETHER 1 -#define HAVE_HWARC 1 -#define HAVE_HWSLIP 1 -#define HAVE_HWPPP 1 -#define HAVE_HWTUNNEL 1 -#define HAVE_HWSTRIP 0 -#define HAVE_HWTR 0 -#define HAVE_HWAX25 0 -#define HAVE_HWROSE 0 -#define HAVE_HWNETROM 1 -#define HAVE_HWX25 0 -#define HAVE_HWFR 1 -#define HAVE_HWSIT 1 -#define HAVE_HWFDDI 0 -#define HAVE_HWHIPPI 0 -#define HAVE_HWASH 0 -#define HAVE_HWHDLCLAPB 0 -#define HAVE_HWIRDA 1 -#define HAVE_HWEC 0 -#define HAVE_HWEC 0 -#define HAVE_HWEUI64 1 -#define HAVE_HWIB 1 - -/* - * - * Other Features. - * - */ -#define HAVE_FW_MASQUERADE 0 -#define HAVE_IP_TOOLS 0 -#define HAVE_MII 0 -#define HAVE_SELINUX 0 diff --git a/pkgs/os-specific/linux/net-tools/default.nix b/pkgs/os-specific/linux/net-tools/default.nix deleted file mode 100644 index bedeaadc294e..000000000000 --- a/pkgs/os-specific/linux/net-tools/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "net-tools"; - version = "2.10"; - - src = fetchurl { - url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-smJDWlJB6Jv6UcPKvVEzdTlS96e3uT8y4Iy52W9YDWk="; - }; - - preBuild = - '' - cp ${./config.h} config.h - ''; - - makeFlags = [ - "CC=${stdenv.cc.targetPrefix}cc" - "AR=${stdenv.cc.targetPrefix}ar" - "BASEDIR=$(out)" - "mandir=/share/man" - "HAVE_ARP_TOOLS=1" - "HAVE_PLIP_TOOLS=1" - "HAVE_SERIAL_TOOLS=1" - "HAVE_HOSTNAME_TOOLS=1" - "HAVE_HOSTNAME_SYMLINKS=1" - "HAVE_MII=1" - ]; - - meta = { - homepage = "http://net-tools.sourceforge.net/"; - description = "A set of tools for controlling the network subsystem in Linux"; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/netatop/default.nix b/pkgs/os-specific/linux/netatop/default.nix deleted file mode 100644 index 68386173ed50..000000000000 --- a/pkgs/os-specific/linux/netatop/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib, stdenv, fetchurl, kernel, kmod, zlib }: - -let - version = "3.1"; -in - -stdenv.mkDerivation { - name = "netatop-${kernel.version}-${version}"; - - src = fetchurl { - url = "http://www.atoptool.nl/download/netatop-${version}.tar.gz"; - sha256 = "0qjw8glfdmngfvbn1w63q128vxdz2jlabw13y140ga9i5ibl6vvk"; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - buildInputs = [ kmod zlib ]; - - hardeningDisable = [ "pic" ]; - env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=implicit-fallthrough" ]; - - patches = [ - # fix paths in netatop.service - ./fix-paths.patch - # Specify PIDFile in /run, not /var/run to silence systemd warning - ./netatop.service.patch - ]; - preConfigure = '' - patchShebangs mkversion - sed -i -e 's,^KERNDIR.*,KERNDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build,' \ - */Makefile - sed -i -e 's,/lib/modules.*extra,'$out'/lib/modules/${kernel.modDirVersion}/extra,' \ - -e s,/usr,$out, \ - -e /init.d/d \ - -e /depmod/d \ - -e s,/lib/systemd,$out/lib/systemd, \ - Makefile - - kmod=${kmod} substituteAllInPlace netatop.service - ''; - - makeFlags = kernel.makeFlags; - - preInstall = '' - mkdir -p $out/lib/systemd/system $out/bin $out/sbin $out/share/man/man{4,8} - mkdir -p $out/lib/modules/${kernel.modDirVersion}/extra - ''; - - meta = { - description = "Network monitoring module for atop"; - mainProgram = "netatopd"; - homepage = "https://www.atoptool.nl/downloadnetatop.php"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ viric ]; - }; -} diff --git a/pkgs/os-specific/linux/netatop/fix-paths.patch b/pkgs/os-specific/linux/netatop/fix-paths.patch deleted file mode 100644 index 0e71c4efdd31..000000000000 --- a/pkgs/os-specific/linux/netatop/fix-paths.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/netatop.service -+++ b/netatop.service -@@ -8,5 +8,5 @@ - Type=oneshot --ExecStartPre=/sbin/modprobe netatop --ExecStart=/usr/sbin/netatopd --ExecStopPost=/sbin/rmmod netatop -+ExecStartPre=@kmod@/bin/modprobe netatop -+ExecStart=@out@/bin/netatopd -+ExecStopPost=@kmod@/bin/rmmod netatop - PIDFile=/var/run/netatop.pid diff --git a/pkgs/os-specific/linux/netatop/netatop.service.patch b/pkgs/os-specific/linux/netatop/netatop.service.patch deleted file mode 100644 index c7c798ee06bc..000000000000 --- a/pkgs/os-specific/linux/netatop/netatop.service.patch +++ /dev/null @@ -1,7 +0,0 @@ ---- a/netatop.service -+++ b/netatop.service -@@ -11,3 +11,3 @@ - ExecStopPost=@kmod@/bin/rmmod netatop --PIDFile=/var/run/netatop.pid -+PIDFile=/run/netatop.pid - RemainAfterExit=yes diff --git a/pkgs/os-specific/linux/new-lg4ff/default.nix b/pkgs/os-specific/linux/new-lg4ff/default.nix deleted file mode 100644 index a92ee9ae64b5..000000000000 --- a/pkgs/os-specific/linux/new-lg4ff/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, kernel, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "new-lg4ff"; - version = "0.4.0"; - - src = fetchFromGitHub { - owner = "berarma"; - repo = "new-lg4ff"; - rev = version; - sha256 = "ZFwNdeJcSxzWtqjOF86SZpqhuz8jXZ2drvlQeIqsaNY="; - }; - - preBuild = '' - substituteInPlace Makefile --replace "modules_install" "INSTALL_MOD_PATH=$out modules_install" - sed -i '/depmod/d' Makefile - sed -i "10i\\\trmmod hid-logitech 2> /dev/null || true" Makefile - sed -i "11i\\\trmmod hid-logitech-new 2> /dev/null || true" Makefile - ''; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "KVERSION=${kernel.modDirVersion}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - meta = with lib; { - description = "Experimental Logitech force feedback module for Linux"; - homepage = "https://github.com/berarma/new-lg4ff"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ matthiasbenaets ]; - platforms = platforms.linux; - broken = stdenv.isAarch64; - }; -} diff --git a/pkgs/os-specific/linux/nfs-utils/default.nix b/pkgs/os-specific/linux/nfs-utils/default.nix deleted file mode 100644 index 4fde1dcf910d..000000000000 --- a/pkgs/os-specific/linux/nfs-utils/default.nix +++ /dev/null @@ -1,131 +0,0 @@ -{ stdenv, fetchurl, fetchpatch, lib, pkg-config, util-linux, libcap, libtirpc, libevent -, sqlite, libkrb5, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers -, python3, buildPackages, nixosTests, rpcsvc-proto -, enablePython ? true -}: - -let - statdPath = lib.makeBinPath [ systemd util-linux coreutils ]; -in - -stdenv.mkDerivation rec { - pname = "nfs-utils"; - version = "2.6.2"; - - src = fetchurl { - url = "mirror://kernel/linux/utils/nfs-utils/${version}/${pname}-${version}.tar.xz"; - hash = "sha256-UgCHPoHE1hDiRi/CYv4YE18tvni3l5+VrM0VmuZNUBE="; - }; - - # libnfsidmap is built together with nfs-utils from the same source, - # put it in the "lib" output, and the headers in "dev" - outputs = [ "out" "dev" "lib" "man" ]; - - nativeBuildInputs = [ pkg-config buildPackages.stdenv.cc rpcsvc-proto ]; - - buildInputs = [ - libtirpc libcap libevent sqlite lvm2 - libuuid keyutils libkrb5 tcp_wrappers - ] ++ lib.optional enablePython python3; - - enableParallelBuilding = true; - - preConfigure = - '' - substituteInPlace configure \ - --replace '$dir/include/gssapi' ${lib.getDev libkrb5}/include/gssapi \ - --replace '$dir/bin/krb5-config' ${lib.getDev libkrb5}/bin/krb5-config - ''; - - configureFlags = - [ "--enable-gss" - "--enable-svcgss" - "--with-statedir=/var/lib/nfs" - "--with-krb5=${lib.getLib libkrb5}" - "--with-systemd=${placeholder "out"}/etc/systemd/system" - "--enable-libmount-mount" - "--with-pluginpath=${placeholder "lib"}/lib/libnfsidmap" # this installs libnfsidmap - "--with-rpcgen=${buildPackages.rpcsvc-proto}/bin/rpcgen" - "--with-modprobedir=${placeholder "out"}/etc/modprobe.d" - ]; - - patches = lib.optionals stdenv.hostPlatform.isMusl [ - # http://openwall.com/lists/musl/2015/08/18/10 - (fetchpatch { - url = "https://raw.githubusercontent.com/alpinelinux/aports/cb880042d48d77af412d4688f24b8310ae44f55f/main/nfs-utils/musl-getservbyport.patch"; - sha256 = "1fqws9dz8n1d9a418c54r11y3w330qgy2652dpwcy96cm44sqyhf"; - }) - ]; - - postPatch = - '' - patchShebangs tests - sed -i "s,/usr/sbin,$out/bin,g" utils/statd/statd.c - sed -i "s,^PATH=.*,PATH=$out/bin:${statdPath}," utils/statd/start-statd - - configureFlags="--with-start-statd=$out/bin/start-statd $configureFlags" - - substituteInPlace systemd/nfs-utils.service \ - --replace "/bin/true" "${coreutils}/bin/true" - - substituteInPlace tools/nfsrahead/Makefile.in \ - --replace "/usr/lib/udev/rules.d/" "$out/lib/udev/rules.d/" - - substituteInPlace utils/mount/Makefile.in \ - --replace "chmod 4511" "chmod 0511" - - sed '1i#include <stdint.h>' -i support/nsm/rpc.c - ''; - - makeFlags = [ - "sbindir=$(out)/bin" - "generator_dir=$(out)/etc/systemd/system-generators" - ]; - - installFlags = [ - "statedir=$(TMPDIR)" - "statdpath=$(TMPDIR)" - ]; - - stripDebugList = [ "lib" "libexec" "bin" "etc/systemd/system-generators" ]; - - postInstall = - '' - # Not used on NixOS - sed -i \ - -e "s,/sbin/modprobe,${kmod}/bin/modprobe,g" \ - -e "s,/usr/sbin,$out/bin,g" \ - $out/etc/systemd/system/* - '' + lib.optionalString (!enablePython) '' - # Remove all scripts that require python (currently mountstats and nfsiostat) - grep -l /usr/bin/python $out/bin/* | xargs -I {} rm -v {} - ''; - - # One test fails on mips. - # doCheck = !stdenv.isMips; - # https://bugzilla.kernel.org/show_bug.cgi?id=203793 - doCheck = false; - - disallowedReferences = [ (lib.getDev libkrb5) ]; - - passthru.tests = { - nfs3-simple = nixosTests.nfs3.simple; - nfs4-simple = nixosTests.nfs4.simple; - nfs4-kerberos = nixosTests.nfs4.kerberos; - }; - - meta = with lib; { - description = "Linux user-space NFS utilities"; - - longDescription = '' - This package contains various Linux user-space Network File - System (NFS) utilities, including RPC `mount' and `nfs' - daemons. - ''; - - homepage = "https://linux-nfs.org/"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ]; - }; -} diff --git a/pkgs/os-specific/linux/nftables/default.nix b/pkgs/os-specific/linux/nftables/default.nix deleted file mode 100644 index 3680cd43efb7..000000000000 --- a/pkgs/os-specific/linux/nftables/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, bison, flex -, asciidoc, libxslt, findXMLCatalogs, docbook_xml_dtd_45, docbook_xsl -, libmnl, libnftnl, libpcap -, gmp, jansson -, autoreconfHook -, withDebugSymbols ? false -, withCli ? true, libedit -, withPython ? false, python3 -, withXtables ? true, iptables -, nixosTests -}: - -stdenv.mkDerivation rec { - version = "1.0.9"; - pname = "nftables"; - - src = fetchurl { - url = "https://netfilter.org/projects/nftables/files/${pname}-${version}.tar.xz"; - hash = "sha256-o8MEzZugYSOe4EdPmvuTipu5nYm5YCRvZvDDoKheFM0="; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config bison flex - asciidoc docbook_xml_dtd_45 docbook_xsl findXMLCatalogs libxslt - ]; - - buildInputs = [ - libmnl libnftnl libpcap - gmp jansson - ] ++ lib.optional withCli libedit - ++ lib.optional withXtables iptables - ++ lib.optionals withPython [ - python3 - python3.pkgs.setuptools - ]; - - patches = [ ./fix-py-libnftables.patch ]; - - postPatch = '' - substituteInPlace "py/src/nftables.py" \ - --subst-var-by "out" "$out" - ''; - - configureFlags = [ - "--with-json" - (lib.withFeatureAs withCli "cli" "editline") - ] ++ lib.optional (!withDebugSymbols) "--disable-debug" - ++ lib.optional (!withPython) "--disable-python" - ++ lib.optional withPython "--enable-python" - ++ lib.optional withXtables "--with-xtables"; - - passthru.tests = { - inherit (nixosTests) firewall-nftables; - lxd-nftables = nixosTests.lxd.nftables; - nat = { inherit (nixosTests.nat.nftables) firewall standalone; }; - }; - - meta = with lib; { - description = "The project that aims to replace the existing {ip,ip6,arp,eb}tables framework"; - homepage = "https://netfilter.org/projects/nftables/"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ izorkin ] ++ teams.helsinki-systems.members; - mainProgram = "nft"; - }; -} diff --git a/pkgs/os-specific/linux/nftables/fix-py-libnftables.patch b/pkgs/os-specific/linux/nftables/fix-py-libnftables.patch deleted file mode 100644 index 3ab1e5363019..000000000000 --- a/pkgs/os-specific/linux/nftables/fix-py-libnftables.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/py/src/nftables.py b/py/src/nftables.py -index f1e43ade..9adcd1be 100644 ---- a/py/src/nftables.py -+++ b/py/src/nftables.py -@@ -69,7 +69,7 @@ class Nftables: - - validator = None - -- def __init__(self, sofile="libnftables.so.1"): -+ def __init__(self, sofile="@out@/lib/libnftables.so.1"): - """Instantiate a new Nftables class object. - - Accepts a shared object file to open, by default standard search path diff --git a/pkgs/os-specific/linux/nixos-rebuild/_nixos-rebuild b/pkgs/os-specific/linux/nixos-rebuild/_nixos-rebuild deleted file mode 100644 index 84e8d223bd80..000000000000 --- a/pkgs/os-specific/linux/nixos-rebuild/_nixos-rebuild +++ /dev/null @@ -1,165 +0,0 @@ -#!/usr/bin/env bash - -# We're faking a `nix build` command-line to re-use Nix's own completion -# for the few options passed through to Nix. -_nixos-rebuild_pretend-nix() { - COMP_LINE="nix build ${COMP_LINE}" - # number of prepended chars - (( COMP_POINT = COMP_POINT + 10)) - - COMP_WORDS=( - nix build - "${COMP_WORDS[@]}" - ) - # Add the amount of prepended words - (( COMP_CWORD = COMP_CWORD + 2)) - _complete_nix "nix" -} - -_nixos-rebuild() { - local curr="$2" - local prev="$3" - local subcommandGiven=0 - local word - local subcommand - - __load_completion nix - - # Arrays are re-ordered by the completion, so it's fine to sort them in logical chunks - local all_args=( - --verbose -v - - # nixos-rebuild options - --fast - --no-build-nix - --profile-name -p # name - --rollback - --specialisation -c # name - --use-remote-sudo - --build-host # host - --target-host # host - # Used with list-generations - --json - - # generation switching options - --install-bootloader - - # nix-channel options - --upgrade - --upgrade-all - - # flakes options - --commit-lock-file - --flake # flake-uri - --override-input # input-name flake-uri - --recreate-lock-file - --update-input - --no-flake - --no-registries - --no-update-lock-file - --no-write-lock-file - - # Nix-copy options - --use-substitutes --substitute-on-destination -s - - # Nix options - --option - --impure - --builders # builder-spec - --show-trace - --keep-failed -K - --keep-going -k - --max-jobs -j # number - --log-format # format - -I # NIX_PATH - ) - - local all_subcommands=( - boot - build - build-vm - build-vm-with-bootloader - dry-activate - dry-build - edit - list-generations - switch - test - ) - - # Suggest arguments that can be consumed under some conditions only - for word in "${COMP_WORDS[@]}"; do - for subcommand in "${all_subcommands[@]}"; do - if [[ "$word" == "$subcommand" ]]; then - subcommandGiven=1 - fi - done - done - - # Fake out a way to complete the second arg to some options - case "${COMP_WORDS[COMP_CWORD-2]}" in - "--override-input") - prev="--override-input_2" - ;; - "--option") - prev="--option_2" - ;; - esac - - case "$prev" in - --max-jobs|-j) - COMPREPLY=( ) - ;; - - --profile-name|-p) - if [[ "$curr" == "" ]]; then - COMPREPLY=( /nix/var/nix/profiles/* ) - else - COMPREPLY=( "$curr"* ) - fi - ;; - - --build-host|--target-host|-t|-h) - _known_hosts_real "$curr" - ;; - - --specialisation|-c) - COMPREPLY=() - ;; - - -I) - _nixos-rebuild_pretend-nix - ;; - --builders) - _nixos-rebuild_pretend-nix - ;; - --flake) - _nixos-rebuild_pretend-nix - ;; - --override-input) - _nixos-rebuild_pretend-nix - ;; - --override-input_2) - _nixos-rebuild_pretend-nix - ;; - --log-format) - _nixos-rebuild_pretend-nix - ;; - --option) - _nixos-rebuild_pretend-nix - ;; - --option_2) - _nixos-rebuild_pretend-nix - ;; - - *) - if [[ "$curr" == -* ]] || (( subcommandGiven )); then - COMPREPLY=( $(compgen -W "${all_args[*]}" -- "$2") ) - else - COMPREPLY=( $(compgen -W "${all_subcommands[*]}" -- "$2") ) - fi - ;; - esac -} - -complete -F _nixos-rebuild nixos-rebuild diff --git a/pkgs/os-specific/linux/nixos-rebuild/default.nix b/pkgs/os-specific/linux/nixos-rebuild/default.nix deleted file mode 100644 index 17a9bc51732c..000000000000 --- a/pkgs/os-specific/linux/nixos-rebuild/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ callPackage -, substitute -, runtimeShell -, coreutils -, gnused -, gnugrep -, jq -, util-linux -, nix -, lib -, nixosTests -, installShellFiles -}: -let - fallback = import ./../../../../nixos/modules/installer/tools/nix-fallback-paths.nix; -in -substitute { - name = "nixos-rebuild"; - src = ./nixos-rebuild.sh; - dir = "bin"; - isExecutable = true; - - substitutions = [ - "--subst-var-by" "runtimeShell" runtimeShell - "--subst-var-by" "nix" nix - "--subst-var-by" "nix_x86_64_linux" fallback.x86_64-linux - "--subst-var-by" "nix_i686_linux" fallback.i686-linux - "--subst-var-by" "nix_aarch64_linux" fallback.aarch64-linux - "--subst-var-by" "path" (lib.makeBinPath [ coreutils gnused gnugrep jq util-linux ]) - ]; - - nativeBuildInputs = [ - installShellFiles - ]; - - postInstall = '' - installManPage ${./nixos-rebuild.8} - - installShellCompletion \ - --bash ${./_nixos-rebuild} - ''; - - # run some a simple installer tests to make sure nixos-rebuild still works for them - passthru.tests = { - install-bootloader = nixosTests.nixos-rebuild-install-bootloader; - repl = callPackage ./test/repl.nix {}; - simple-installer = nixosTests.installer.simple; - specialisations = nixosTests.nixos-rebuild-specialisations; - target-host = nixosTests.nixos-rebuild-target-host; - }; - - meta = { - description = "Rebuild your NixOS configuration and switch to it, on local hosts and remote."; - homepage = "https://github.com/NixOS/nixpkgs/tree/master/pkgs/os-specific/linux/nixos-rebuild"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.Profpatsch ]; - mainProgram = "nixos-rebuild"; - }; -} diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.8 b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.8 deleted file mode 100644 index 8df05f9310f2..000000000000 --- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.8 +++ /dev/null @@ -1,470 +0,0 @@ -.Dd January 1, 1980 -.Dt nixos-rebuild 8 -.Os -.Sh NAME -.Nm nixos-rebuild -.Nd reconfigure a NixOS machine -. -. -. -.Sh SYNOPSIS -.Nm -.Bro -.Cm switch | boot | test | build | dry-build | dry-activate | edit | repl | build-vm | build-vm-with-bootloader | list-generations Op Fl -json -.Brc -.br -.Op Fl -upgrade | -upgrade-all -.Op Fl -install-bootloader -.Op Fl -no-build-nix -.Op Fl -fast -.Op Fl -rollback -.Op Fl -builders Ar builder-spec -.br -.Op Fl -flake Ar flake-uri -.Op Fl -no-flake -.Op Fl -override-input Ar input-name flake-uri -.br -.Op Fl -profile-name | p Ar name -.Op Fl -specialisation | c Ar name -.br -.Op Fl -build-host Va host -.Op Fl -target-host Va host -.Op Fl -use-remote-sudo -.br -.Op Fl -show-trace -.Op Fl I Va NIX_PATH -.Op Fl -verbose | v -.Op Fl -accept-flake-config -.Op Fl -impure -.Op Fl -max-jobs | j Va number -.Op Fl -keep-failed | K -.Op Fl -keep-going | k -. -. -. -.Sh DESCRIPTION -This command updates the system so that it corresponds to the -configuration specified in -.Pa /etc/nixos/configuration.nix -or -.Pa /etc/nixos/flake.nix Ns -\&. Thus, every time you modify the configuration or any other NixOS module, you -must run -.Nm -to make the changes take effect. It builds the new system in -.Pa /nix/store Ns -, runs its activation script, and stop and (re)starts any system services if -needed. Please note that user services need to be started manually as they -aren't detected by the activation script at the moment. -. -.Pp -This command has one required argument, which specifies the desired -operation. It must be one of the following: -.Bl -tag -width indent -.It Cm switch -Build and activate the new configuration, and make it the boot default. That -is, the configuration is added to the GRUB boot menu as the default -menu entry, so that subsequent reboots will boot the system into the new -configuration. Previous configurations activated with -.Ic nixos-rebuild switch -or -.Ic nixos-rebuild boot -remain available in the GRUB menu. -.Pp -Note that if you are using specializations, running just -.Ic nixos-rebuild switch -will switch you back to the unspecialized, base system \(em in that case, you -might want to use this instead: -.Bd -literal -offset indent -$ nixos-rebuild switch --specialisation your-specialisation-name -.Ed -.Pp -This command will build all specialisations and make them bootable just -like regular -.Ic nixos-rebuild switch -does \(em the only thing different is that it will switch to given -specialisation instead of the base system; it can be also used to switch from -the base system into a specialised one, or to switch between specialisations. -. -.It Cm boot -Build the new configuration and make it the boot default (as with -.Ic nixos-rebuild switch Ns -), but do not activate it. That is, the system continues to run the previous -configuration until the next reboot. -. -.It Cm test -Build and activate the new configuration, but do not add it to the GRUB -boot menu. Thus, if you reboot the system (or if it crashes), you will -automatically revert to the default configuration (i.e. the -configuration resulting from the last call to -.Ic nixos-rebuild switch -or -.Ic nixos-rebuild boot Ns -). -.Pp -Note that if you are using specialisations, running just -.Ic nixos-rebuild test -will activate the unspecialised, base system \(em in that case, you might want -to use this instead: -.Bd -literal -offset indent -$ nixos-rebuild test --specialisation your-specialisation-name -.Ed -.Pp -This command can be also used to switch from the base system into a -specialised one, or to switch between specialisations. -. -.It Cm build -Build the new configuration, but neither activate it nor add it to the -GRUB boot menu. It leaves a symlink named -.Pa result -in the current directory, which points to the output of the top-level -.Dq system -derivation. This is essentially the same as doing -.Bd -literal -offset indent -$ nix-build /path/to/nixpkgs/nixos -A system -.Ed -.Pp -Note that you do not need to be root to run -.Ic nixos-rebuild build Ns -\&. -. -.It Cm dry-build -Show what store paths would be built or downloaded by any of the -operations above, but otherwise do nothing. -. -.It Cm dry-activate -Build the new configuration, but instead of activating it, show what -changes would be performed by the activation (i.e. by -.Ic nixos-rebuild test Ns -). For instance, this command will print which systemd units would be restarted. -The list of changes is not guaranteed to be complete. -. -.It Cm edit -Opens -.Pa configuration.nix -in the default editor. -. -.It Cm repl -Opens the configuration in -.Ic nix repl Ns . -. -.It Cm build-vm -Build a script that starts a NixOS virtual machine with the desired -configuration. It leaves a symlink -.Pa result -in the current directory that points (under -.Ql result/bin/run\- Ns Va hostname Ns \-vm Ns -) -at the script that starts the VM. Thus, to test a NixOS configuration in -a virtual machine, you should do the following: -.Bd -literal -offset indent -$ nixos-rebuild build-vm -$ ./result/bin/run-*-vm -.Ed -.Pp -The VM is implemented using the -.Ql qemu -package. For best performance, you should load the -.Ql kvm-intel -or -.Ql kvm-amd -kernel modules to get hardware virtualisation. -.Pp -The VM mounts the Nix store of the host through the 9P file system. The -host Nix store is read-only, so Nix commands that modify the Nix store -will not work in the VM. This includes commands such as -.Nm Ns -; to change the VM’s configuration, you must halt the VM and re-run the commands -above. -.Pp -The VM has its own ext3 root file system, which is automatically created when -the VM is first started, and is persistent across reboots of the VM. It is -stored in -.Ql ./ Ns Va hostname Ns .qcow2 Ns -\&. -.\" The entire file system hierarchy of the host is available in -.\" the VM under -.\" .Pa /hostfs Ns -.\" . -. -.It Cm build-vm-with-bootloader -Like -.Cm build-vm Ns -, but boots using the regular boot loader of your configuration (e.g. GRUB 1 or -2), rather than booting directly into the kernel and initial ramdisk of the -system. This allows you to test whether the boot loader works correctly. \ -However, it does not guarantee that your NixOS configuration will boot -successfully on the host hardware (i.e., after running -.Ic nixos-rebuild switch Ns -), because the hardware and boot loader configuration in the VM are different. -The boot loader is installed on an automatically generated virtual disk -containing a -.Pa /boot -partition. -. -.It Cm list-generations Op Fl -json -List the available generations in a similar manner to the boot loader -menu. It shows the generation number, build date and time, NixOS version, -kernel version and the configuration revision. -There is also a json version of output available. -.El -. -. -. -.Sh OPTIONS -.Bl -tag -width indent -.It Fl -upgrade , -upgrade-all -Update the root user's channel named -.Ql nixos -before rebuilding the system. -.Pp -In addition to the -.Ql nixos -channel, the root user's channels which have a file named -.Ql .update-on-nixos-rebuild -in their base directory will also be updated. -.Pp -Passing -.Fl -upgrade-all -updates all of the root user's channels. -. -.It Fl -install-bootloader -Causes the boot loader to be (re)installed on the device specified by the -relevant configuration options. -. -.It Fl -no-build-nix -Normally, -.Nm -first builds the -.Ql nixUnstable -attribute in Nixpkgs, and uses the resulting instance of the Nix package manager -to build the new system configuration. This is necessary if the NixOS modules -use features not provided by the currently installed version of Nix. This option -disables building a new Nix. -. -.It Fl -fast -Equivalent to -.Fl -no-build-nix Ns -\&. This option is useful if you call -.Nm -frequently (e.g. if you’re hacking on a NixOS module). -. -.It Fl -rollback -Instead of building a new configuration as specified by -.Pa /etc/nixos/configuration.nix Ns -, roll back to the previous configuration. (The previous configuration is -defined as the one before the “current” generation of the Nix profile -.Pa /nix/var/nix/profiles/system Ns -\&.) -. -.It Fl -builders Ar builder-spec -Allow ad-hoc remote builders for building the new system. This requires -the user executing -.Nm -(usually root) to be configured as a trusted user in the Nix daemon. This can be -achieved by using the -.Va nix.settings.trusted-users -NixOS option. Examples values for that option are described in the -.Dq Remote builds -chapter in the Nix manual, (i.e. -.Ql --builders \(dqssh://bigbrother x86_64-linux\(dq Ns -). By specifying an empty string existing builders specified in -.Pa /etc/nix/machines -can be ignored: -.Ql --builders \(dq\(dq -for example when they are not reachable due to network connectivity. -. -.It Fl -profile-name Ar name , Fl p Ar name -Instead of using the Nix profile -.Pa /nix/var/nix/profiles/system -to keep track of the current and previous system configurations, use -.Pa /nix/var/nix/profiles/system-profiles/ Ns Va name Ns -\&. When you use GRUB 2, for every system profile created with this flag, NixOS -will create a submenu named -.Dq NixOS - Profile Va name -in GRUB’s boot menu, containing the current and previous configurations of this profile. -.Pp -For instance, if you want to test a configuration file named -.Pa test.nix -without affecting the default system profile, you would do: -.Bd -literal -offset indent -$ nixos-rebuild switch -p test -I nixos-config=./test.nix -.Ed -.Pp -The new configuration will appear in the GRUB 2 submenu -.Dq NixOS - Profile 'test' Ns -\&. -. -.It Fl -specialisation Ar name , Fl c Ar name -Activates given specialisation; when not specified, switching and testing -will activate the base, unspecialised system. -. -.It Fl -build-host Ar host -Instead of building the new configuration locally, use the specified host -to perform the build. The host needs to be accessible with -.Ic ssh Ns , -and must be able to perform Nix builds. If the option -.Fl -target-host -is not set, the build will be copied back to the local machine when done. -.Pp -Note that, if -.Fl -no-build-nix -is not specified, Nix will be built both locally and remotely. This is because -the configuration will always be evaluated locally even though the building -might be performed remotely. -.Pp -You can include a remote user name in the host name -.Ns ( Va user@host Ns -). You can also set ssh options by defining the -.Ev NIX_SSHOPTS -environment variable. -. -.It Fl -target-host Ar host -Specifies the NixOS target host. By setting this to something other than an -empty string, the system activation will happen on the remote host instead of -the local machine. The remote host needs to be accessible over -.Ic ssh Ns , -and for the commands -.Cm switch Ns -, -.Cm boot -and -.Cm test -you need root access. -.Pp -If -.Fl -build-host -is not explicitly specified or empty, building will take place locally. -.Pp -You can include a remote user name in the host name -.Ns ( Va user@host Ns -). You can also set ssh options by defining the -.Ev NIX_SSHOPTS -environment variable. -.Pp -Note that -.Nm -honors the -.Va nixpkgs.crossSystem -setting of the given configuration but disregards the true architecture of the -target host. Hence the -.Va nixpkgs.crossSystem -setting has to match the target platform or else activation will fail. -. -.It Fl -use-substitutes -When set, nixos-rebuild will add -.Fl -use-substitutes -to each invocation of nix-copy-closure. This will only affect the behavior of -nixos-rebuild if -.Fl -target-host -or -.Fl -build-host -is also set. This is useful when the target-host connection to cache.nixos.org -is faster than the connection between hosts. -. -.It Fl -use-remote-sudo -When set, nixos-rebuild prefixes activation commands that run on the -.Fl -target-host -system with -.Ic sudo Ns -\&. Setting this option allows deploying as a non-root user. -. -.It Fl -flake Va flake-uri Ns Op Va #name -Build the NixOS system from the specified flake. It defaults to the directory -containing the target of the symlink -.Pa /etc/nixos/flake.nix Ns -, if it exists. The flake must contain an output named -.Ql nixosConfigurations. Ns Va name Ns -\&. If -.Va name -is omitted, it default to the current host name. -. -.It Fl -no-flake -Do not imply -.Fl -flake -if -.Pa /etc/nixos/flake.nix -exists. With this option, it is possible to build non-flake NixOS configurations -even if the current NixOS systems uses flakes. -.El -.Pp -In addition, -.Nm -accepts various Nix-related flags, including -.Fl -max-jobs Ns , -.Fl j Ns , -.Fl I Ns , -.Fl -accept-flake-config Ns , -.Fl -show-trace Ns , -.Fl -keep-failed Ns , -.Fl -keep-going Ns , -.Fl -impure Ns , -.Fl -verbose Ns , and -.Fl v Ns -\&. See the Nix manual for details. -. -. -. -.Sh ENVIRONMENT -.Bl -tag -width indent -.It Ev NIXOS_CONFIG -Path to the main NixOS configuration module. Defaults to -.Pa /etc/nixos/configuration.nix Ns -\&. -. -.It Ev NIX_PATH -A colon-separated list of directories used to look up Nix expressions enclosed -in angle brackets (e.g. <nixpkgs>). Example: -.Bd -literal -offset indent -nixpkgs=./my-nixpkgs -.Ed -. -.It Ev NIX_SSHOPTS -Additional options to be passed to -.Ic ssh -on the command line. -.Ed -. -.It Ev NIXOS_SWITCH_USE_DIRTY_ENV -Expose the the current environment variables to post activation scripts. Will -skip usage of -.Ic systemd-run -during system activation. Possibly dangerous, specially in remote environments -(e.g.: via SSH). Will be removed in the future. -.El -. -. -. -.Sh FILES -.Bl -tag -width indent -.It Pa /etc/nixos/flake.nix -If this file exists, then -.Nm -will use it as if the -.Fl -flake -option was given. This file may be a symlink to a -.Pa flake.nix -in an actual flake; thus -.Pa /etc/nixos -need not be a flake. -. -.It Pa /run/current-system -A symlink to the currently active system configuration in the Nix store. -. -.It Pa /nix/var/nix/profiles/system -The Nix profile that contains the current and previous system -configurations. Used to generate the GRUB boot menu. -.El -. -. -. -.Sh BUGS -This command should be renamed to something more descriptive. -. -. -. -.Sh AUTHORS -.An -nosplit -.An Eelco Dolstra -and -.An the Nixpkgs/NixOS contributors diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh deleted file mode 100755 index f3ee49a8c395..000000000000 --- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh +++ /dev/null @@ -1,824 +0,0 @@ -#! @runtimeShell@ -# shellcheck shell=bash - -if [ -x "@runtimeShell@" ]; then export SHELL="@runtimeShell@"; fi; - -set -e -set -o pipefail -shopt -s inherit_errexit - -export PATH=@path@:$PATH - -showSyntax() { - exec man nixos-rebuild - exit 1 -} - - -# Parse the command line. -origArgs=("$@") -copyFlags=() -extraBuildFlags=() -lockFlags=() -flakeFlags=(--extra-experimental-features 'nix-command flakes') -action= -buildNix=1 -fast= -rollback= -upgrade= -upgrade_all= -profile=/nix/var/nix/profiles/system -specialisation= -buildHost= -targetHost= -remoteSudo= -verboseScript= -noFlake= -installBootloader= -json= - -# log the given argument to stderr -log() { - echo "$@" >&2 -} - -while [ "$#" -gt 0 ]; do - i="$1"; shift 1 - case "$i" in - --help) - showSyntax - ;; - switch|boot|test|build|edit|repl|dry-build|dry-run|dry-activate|build-vm|build-vm-with-bootloader|list-generations) - if [ "$i" = dry-run ]; then i=dry-build; fi - if [ "$i" = list-generations ]; then - buildNix= - fast=1 - fi - # exactly one action mandatory, bail out if multiple are given - if [ -n "$action" ]; then showSyntax; fi - action="$i" - ;; - --install-grub) - log "$0: --install-grub deprecated, use --install-bootloader instead" - installBootloader=1 - ;; - --install-bootloader) - installBootloader=1 - ;; - --no-build-nix) - buildNix= - ;; - --rollback) - rollback=1 - ;; - --upgrade) - upgrade=1 - ;; - --upgrade-all) - upgrade=1 - upgrade_all=1 - ;; - --use-substitutes|--substitute-on-destination|-s) - copyFlags+=("-s") - ;; - -I|--max-jobs|-j|--cores|--builders|--log-format) - j="$1"; shift 1 - extraBuildFlags+=("$i" "$j") - ;; - --accept-flake-config|-j*|--quiet|--print-build-logs|-L|--no-build-output|-Q| --show-trace|--keep-going|-k|--keep-failed|-K|--fallback|--refresh|--repair|--impure|--offline|--no-net) - extraBuildFlags+=("$i") - ;; - --verbose|-v|-vv|-vvv|-vvvv|-vvvvv) - verboseScript="true" - extraBuildFlags+=("$i") - ;; - --option) - j="$1"; shift 1 - k="$1"; shift 1 - extraBuildFlags+=("$i" "$j" "$k") - ;; - --fast) - buildNix= - fast=1 - ;; - --profile-name|-p) - if [ -z "$1" ]; then - log "$0: ‘--profile-name’ requires an argument" - exit 1 - fi - if [ "$1" != system ]; then - profile="/nix/var/nix/profiles/system-profiles/$1" - mkdir -p -m 0755 "$(dirname "$profile")" - fi - shift 1 - ;; - --specialisation|-c) - if [ -z "$1" ]; then - log "$0: ‘--specialisation’ requires an argument" - exit 1 - fi - specialisation="$1" - shift 1 - ;; - --build-host) - buildHost="$1" - shift 1 - ;; - --target-host) - targetHost="$1" - shift 1 - ;; - --use-remote-sudo) - remoteSudo=1 - ;; - --flake) - flake="$1" - shift 1 - ;; - --no-flake) - noFlake=1 - ;; - --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file) - lockFlags+=("$i") - ;; - --update-input) - j="$1"; shift 1 - lockFlags+=("$i" "$j") - ;; - --override-input) - j="$1"; shift 1 - k="$1"; shift 1 - lockFlags+=("$i" "$j" "$k") - ;; - --json) - json=1 - ;; - *) - log "$0: unknown option \`$i'" - exit 1 - ;; - esac -done - -if [[ -n "$SUDO_USER" ]]; then - useSudo=1 -fi - -# log the given argument to stderr if verbose mode is on -logVerbose() { - if [ -n "$verboseScript" ]; then - echo "$@" >&2 - fi -} - -# Run a command, logging it first if verbose mode is on -runCmd() { - logVerbose "$" "$@" - "$@" -} - -buildHostCmd() { - local c - if [[ "${useSudo:-x}" = 1 ]]; then - c=("sudo") - else - c=() - fi - - if [ -z "$buildHost" ]; then - runCmd "$@" - elif [ -n "$remoteNix" ]; then - runCmd ssh $SSHOPTS "$buildHost" "${c[@]}" env PATH="$remoteNix":'$PATH' "$@" - else - runCmd ssh $SSHOPTS "$buildHost" "${c[@]}" "$@" - fi -} - -targetHostCmd() { - local c - if [[ "${useSudo:-x}" = 1 ]]; then - c=("sudo") - else - c=() - fi - - if [ -z "$targetHost" ]; then - runCmd "${c[@]}" "$@" - else - runCmd ssh $SSHOPTS "$targetHost" "${c[@]}" "$@" - fi -} - -targetHostSudoCmd() { - if [ -n "$remoteSudo" ]; then - useSudo=1 SSHOPTS="$SSHOPTS -t" targetHostCmd "$@" - else - # While a tty might not be necessary, we apply it to be consistent with - # sudo usage, and an experience that is more consistent with local deployment. - SSHOPTS="$SSHOPTS -t" targetHostCmd "$@" - fi -} - -copyToTarget() { - if ! [ "$targetHost" = "$buildHost" ]; then - if [ -z "$targetHost" ]; then - logVerbose "Running nix-copy-closure with these NIX_SSHOPTS: $SSHOPTS" - NIX_SSHOPTS=$SSHOPTS runCmd nix-copy-closure "${copyFlags[@]}" --from "$buildHost" "$1" - elif [ -z "$buildHost" ]; then - logVerbose "Running nix-copy-closure with these NIX_SSHOPTS: $SSHOPTS" - NIX_SSHOPTS=$SSHOPTS runCmd nix-copy-closure "${copyFlags[@]}" --to "$targetHost" "$1" - else - buildHostCmd nix-copy-closure "${copyFlags[@]}" --to "$targetHost" "$1" - fi - fi -} - -nixBuild() { - logVerbose "Building in legacy (non-flake) mode." - if [ -z "$buildHost" ]; then - logVerbose "No --build-host given, running nix-build locally" - runCmd nix-build "$@" - else - logVerbose "buildHost set to \"$buildHost\", running nix-build remotely" - local instArgs=() - local buildArgs=() - local drv= - - while [ "$#" -gt 0 ]; do - local i="$1"; shift 1 - case "$i" in - -o) - local out="$1"; shift 1 - buildArgs+=("--add-root" "$out" "--indirect") - ;; - -A) - local j="$1"; shift 1 - instArgs+=("$i" "$j") - ;; - -I) # We don't want this in buildArgs - shift 1 - ;; - --no-out-link) # We don't want this in buildArgs - ;; - "<"*) # nix paths - instArgs+=("$i") - ;; - *) - buildArgs+=("$i") - ;; - esac - done - - drv="$(runCmd nix-instantiate "${instArgs[@]}" "${extraBuildFlags[@]}")" - if [ -a "$drv" ]; then - logVerbose "Running nix-copy-closure with these NIX_SSHOPTS: $SSHOPTS" - NIX_SSHOPTS=$SSHOPTS runCmd nix-copy-closure --to "$buildHost" "$drv" - buildHostCmd nix-store -r "$drv" "${buildArgs[@]}" - else - log "nix-instantiate failed" - exit 1 - fi - fi -} - -nixFlakeBuild() { - logVerbose "Building in flake mode." - if [[ -z "$buildHost" && -z "$targetHost" && "$action" != switch && "$action" != boot && "$action" != test && "$action" != dry-activate ]] - then - runCmd nix "${flakeFlags[@]}" build "$@" - readlink -f ./result - elif [ -z "$buildHost" ]; then - runCmd nix "${flakeFlags[@]}" build "$@" --out-link "${tmpDir}/result" - readlink -f "${tmpDir}/result" - else - local attr="$1" - shift 1 - local evalArgs=() - local buildArgs=() - local drv= - - while [ "$#" -gt 0 ]; do - local i="$1"; shift 1 - case "$i" in - --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file) - evalArgs+=("$i") - ;; - --update-input) - local j="$1"; shift 1 - evalArgs+=("$i" "$j") - ;; - --override-input) - local j="$1"; shift 1 - local k="$1"; shift 1 - evalArgs+=("$i" "$j" "$k") - ;; - --impure) # We don't want this in buildArgs, it's only needed at evaluation time, and unsupported during realisation - ;; - *) - buildArgs+=("$i") - ;; - esac - done - - drv="$(runCmd nix "${flakeFlags[@]}" eval --raw "${attr}.drvPath" "${evalArgs[@]}" "${extraBuildFlags[@]}")" - if [ -a "$drv" ]; then - logVerbose "Running nix with these NIX_SSHOPTS: $SSHOPTS" - NIX_SSHOPTS=$SSHOPTS runCmd nix "${flakeFlags[@]}" copy "${copyFlags[@]}" --derivation --to "ssh://$buildHost" "$drv" - buildHostCmd nix-store -r "$drv" "${buildArgs[@]}" - else - log "nix eval failed" - exit 1 - fi - fi -} - - -if [ -z "$action" ]; then showSyntax; fi - -# Only run shell scripts from the Nixpkgs tree if the action is -# "switch", "boot", or "test". With other actions (such as "build"), -# the user may reasonably expect that no code from the Nixpkgs tree is -# executed, so it's safe to run nixos-rebuild against a potentially -# untrusted tree. -canRun= -if [[ "$action" = switch || "$action" = boot || "$action" = test ]]; then - canRun=1 -fi - - -# If ‘--upgrade’ or `--upgrade-all` is given, -# run ‘nix-channel --update nixos’. -if [[ -n $upgrade && -z $_NIXOS_REBUILD_REEXEC && -z $flake ]]; then - # If --upgrade-all is passed, or there are other channels that - # contain a file called ".update-on-nixos-rebuild", update them as - # well. Also upgrade the nixos channel. - - for channelpath in /nix/var/nix/profiles/per-user/root/channels/*; do - channel_name=$(basename "$channelpath") - - if [[ "$channel_name" == "nixos" ]]; then - runCmd nix-channel --update "$channel_name" - elif [ -e "$channelpath/.update-on-nixos-rebuild" ]; then - runCmd nix-channel --update "$channel_name" - elif [[ -n $upgrade_all ]] ; then - runCmd nix-channel --update "$channel_name" - fi - done -fi - -# Make sure that we use the Nix package we depend on, not something -# else from the PATH for nix-{env,instantiate,build}. This is -# important, because NixOS defaults the architecture of the rebuilt -# system to the architecture of the nix-* binaries used. So if on an -# amd64 system the user has an i686 Nix package in her PATH, then we -# would silently downgrade the whole system to be i686 NixOS on the -# next reboot. -if [ -z "$_NIXOS_REBUILD_REEXEC" ]; then - export PATH=@nix@/bin:$PATH -fi - -# Use /etc/nixos/flake.nix if it exists. It can be a symlink to the -# actual flake. -if [[ -z $flake && -e /etc/nixos/flake.nix && -z $noFlake ]]; then - flake="$(dirname "$(readlink -f /etc/nixos/flake.nix)")" -fi - -# For convenience, use the hostname as the default configuration to -# build from the flake. -if [[ -n $flake ]]; then - if [[ $flake =~ ^(.*)\#([^\#\"]*)$ ]]; then - flake="${BASH_REMATCH[1]}" - flakeAttr="${BASH_REMATCH[2]}" - fi - if [[ -z $flakeAttr ]]; then - read -r hostname < /proc/sys/kernel/hostname - if [[ -z $hostname ]]; then - hostname=default - fi - flakeAttr="nixosConfigurations.\"$hostname\"" - else - flakeAttr="nixosConfigurations.\"$flakeAttr\"" - fi -fi - -if [[ ! -z "$specialisation" && ! "$action" = switch && ! "$action" = test ]]; then - log "error: ‘--specialisation’ can only be used with ‘switch’ and ‘test’" - exit 1 -fi - -tmpDir=$(mktemp -t -d nixos-rebuild.XXXXXX) - -if [[ ${#tmpDir} -ge 60 ]]; then - # Very long tmp dirs lead to "too long for Unix domain socket" - # SSH ControlPath errors. Especially macOS sets long TMPDIR paths. - rmdir "$tmpDir" - tmpDir=$(TMPDIR= mktemp -t -d nixos-rebuild.XXXXXX) -fi - -cleanup() { - for ctrl in "$tmpDir"/ssh-*; do - ssh -o ControlPath="$ctrl" -O exit dummyhost 2>/dev/null || true - done - rm -rf "$tmpDir" -} -trap cleanup EXIT - - -# Re-execute nixos-rebuild from the Nixpkgs tree. -if [[ -z $_NIXOS_REBUILD_REEXEC && -n $canRun && -z $fast ]]; then - if [[ -z $flake ]]; then - if p=$(runCmd nix-build --no-out-link --expr 'with import <nixpkgs/nixos> {}; config.system.build.nixos-rebuild' "${extraBuildFlags[@]}"); then - SHOULD_REEXEC=1 - fi - else - runCmd nix "${flakeFlags[@]}" build --out-link "${tmpDir}/nixos-rebuild" "$flake#$flakeAttr.config.system.build.nixos-rebuild" "${extraBuildFlags[@]}" "${lockFlags[@]}" - if p=$(readlink -e "${tmpDir}/nixos-rebuild"); then - SHOULD_REEXEC=1 - fi - fi - - if [[ -n $SHOULD_REEXEC ]]; then - export _NIXOS_REBUILD_REEXEC=1 - # Manually call cleanup as the EXIT trap is not triggered when using exec - cleanup - runCmd exec "$p/bin/nixos-rebuild" "${origArgs[@]}" - exit 1 - fi -fi - -# Find configuration.nix and open editor instead of building. -if [ "$action" = edit ]; then - if [[ -z $flake ]]; then - NIXOS_CONFIG=${NIXOS_CONFIG:-$(runCmd nix-instantiate --find-file nixos-config)} - if [[ -d $NIXOS_CONFIG ]]; then - NIXOS_CONFIG=$NIXOS_CONFIG/default.nix - fi - runCmd exec ${EDITOR:-nano} "$NIXOS_CONFIG" - else - runCmd exec nix "${flakeFlags[@]}" edit "${lockFlags[@]}" -- "$flake#$flakeAttr" - fi - exit 1 -fi - -SSHOPTS="$NIX_SSHOPTS -o ControlMaster=auto -o ControlPath=$tmpDir/ssh-%n -o ControlPersist=60" - -# First build Nix, since NixOS may require a newer version than the -# current one. -if [[ -n "$rollback" || "$action" = dry-build ]]; then - buildNix= -fi - -nixSystem() { - machine="$(uname -m)" - if [[ "$machine" =~ i.86 ]]; then - machine=i686 - fi - echo $machine-linux -} - -prebuiltNix() { - machine="$1" - if [ "$machine" = x86_64 ]; then - echo @nix_x86_64_linux@ - elif [[ "$machine" =~ i.86 ]]; then - echo @nix_i686_linux@ - elif [[ "$machine" = aarch64 ]]; then - echo @nix_aarch64_linux@ - else - log "$0: unsupported platform" - exit 1 - fi -} - -if [[ -n $buildNix && -z $flake ]]; then - log "building Nix..." - nixDrv= - if ! nixDrv="$(runCmd nix-instantiate '<nixpkgs/nixos>' --add-root "$tmpDir/nix.drv" --indirect -A config.nix.package.out "${extraBuildFlags[@]}")"; then - if ! nixDrv="$(runCmd nix-instantiate '<nixpkgs>' --add-root "$tmpDir/nix.drv" --indirect -A nix "${extraBuildFlags[@]}")"; then - if ! nixStorePath="$(runCmd nix-instantiate --eval '<nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix>' -A "$(nixSystem)" | sed -e 's/^"//' -e 's/"$//')"; then - nixStorePath="$(prebuiltNix "$(uname -m)")" - fi - if ! runCmd nix-store -r "$nixStorePath" --add-root "${tmpDir}/nix" --indirect \ - --option extra-binary-caches https://cache.nixos.org/; then - log "warning: don't know how to get latest Nix" - fi - # Older version of nix-store -r don't support --add-root. - [ -e "$tmpDir/nix" ] || ln -sf "$nixStorePath" "$tmpDir/nix" - if [ -n "$buildHost" ]; then - remoteNixStorePath="$(runCmd prebuiltNix "$(buildHostCmd uname -m)")" - remoteNix="$remoteNixStorePath/bin" - if ! buildHostCmd nix-store -r "$remoteNixStorePath" \ - --option extra-binary-caches https://cache.nixos.org/ >/dev/null; then - remoteNix= - log "warning: don't know how to get latest Nix" - fi - fi - fi - fi - if [ -a "$nixDrv" ]; then - nix-store -r "$nixDrv"'!'"out" --add-root "$tmpDir/nix" --indirect >/dev/null - if [ -n "$buildHost" ]; then - nix-copy-closure "${copyFlags[@]}" --to "$buildHost" "$nixDrv" - # The nix build produces multiple outputs, we add them all to the remote path - for p in $(buildHostCmd nix-store -r "$(readlink "$nixDrv")" "${buildArgs[@]}"); do - remoteNix="$remoteNix${remoteNix:+:}$p/bin" - done - fi - fi - PATH="$tmpDir/nix/bin:$PATH" -fi - - -# Update the version suffix if we're building from Git (so that -# nixos-version shows something useful). -if [[ -n $canRun && -z $flake ]]; then - if nixpkgs=$(runCmd nix-instantiate --find-file nixpkgs "${extraBuildFlags[@]}"); then - suffix=$(runCmd $SHELL "$nixpkgs/nixos/modules/installer/tools/get-version-suffix" "${extraBuildFlags[@]}" || true) - if [ -n "$suffix" ]; then - echo -n "$suffix" > "$nixpkgs/.version-suffix" || true - fi - fi -fi - - -if [ "$action" = dry-build ]; then - extraBuildFlags+=(--dry-run) -fi - -if [ "$action" = repl ]; then - # This is a very end user command, implemented using sub-optimal means. - # You should feel free to improve its behavior, as well as resolve tech - # debt in "breaking" ways. Humans adapt quite well. - if [[ -z $flake ]]; then - exec nix repl '<nixpkgs/nixos>' "${extraBuildFlags[@]}" - else - if [[ -n "${lockFlags[0]}" ]]; then - # nix repl itself does not support locking flags - log "nixos-rebuild repl does not support locking flags yet" - exit 1 - fi - d='$' - q='"' - bold="$(echo -e '\033[1m')" - blue="$(echo -e '\033[34;1m')" - attention="$(echo -e '\033[35;1m')" - reset="$(echo -e '\033[0m')" - if [[ -e $flake ]]; then - flakePath=$(realpath "$flake") - else - flakePath=$flake - fi - # This nix repl invocation is impure, because usually the flakeref is. - # For a solution that preserves the motd and custom scope, we need - # something like https://github.com/NixOS/nix/issues/8679. - exec nix repl --impure --expr " - let flake = builtins.getFlake ''$flakePath''; - configuration = flake.$flakeAttr; - motd = '' - $d{$q\n$q} - Hello and welcome to the NixOS configuration - $flakeAttr - in $flake - - The following is loaded into nix repl's scope: - - - ${blue}config${reset} All option values - - ${blue}options${reset} Option data and metadata - - ${blue}pkgs${reset} Nixpkgs package set - - ${blue}lib${reset} Nixpkgs library functions - - other module arguments - - - ${blue}flake${reset} Flake outputs, inputs and source info of $flake - - Use tab completion to browse around ${blue}config${reset}. - - Use ${bold}:r${reset} to ${bold}reload${reset} everything after making a change in the flake. - (assuming $flake is a mutable flake ref) - - See ${bold}:?${reset} for more repl commands. - - ${attention}warning:${reset} nixos-rebuild repl does not currently enforce pure evaluation. - ''; - scope = - assert configuration._type or null == ''configuration''; - assert configuration.class or ''nixos'' == ''nixos''; - configuration._module.args // - configuration._module.specialArgs // - { - inherit (configuration) config options; - lib = configuration.lib or configuration.pkgs.lib; - inherit flake; - }; - in builtins.seq scope builtins.trace motd scope - " "${extraBuildFlags[@]}" - fi -fi - -if [ "$action" = list-generations ]; then - if [ ! -L "$profile" ]; then - log "No profile \`$(basename "$profile")' found" - exit 1 - fi - - generation_from_dir() { - generation_dir="$1" - generation_base="$(basename "$generation_dir")" # Has the format "system-123-link" for generation 123 - no_link_gen="${generation_base%-link}" # remove the "-link" - echo "${no_link_gen##*-}" # remove everything before the last dash - } - describe_generation(){ - generation_dir="$1" - generation_number="$(generation_from_dir "$generation_dir")" - nixos_version="$(cat "$generation_dir/nixos-version" 2> /dev/null || echo "Unknown")" - - kernel_dir="$(dirname "$(realpath "$generation_dir/kernel")")" - kernel_version="$(ls "$kernel_dir/lib/modules" || echo "Unknown")" - - configurationRevision="$("$generation_dir/sw/bin/nixos-version" --configuration-revision 2> /dev/null || true)" - - # Old nixos-version output ignored unknown flags and just printed the version - # therefore the following workaround is done not to show the default output - nixos_version_default="$("$generation_dir/sw/bin/nixos-version")" - if [ "$configurationRevision" == "$nixos_version_default" ]; then - configurationRevision="" - fi - - # jq automatically quotes the output => don't try to quote it in output! - build_date="$(stat "$generation_dir" --format=%W | jq 'todate')" - - pushd "$generation_dir/specialisation/" > /dev/null || : - specialisation_list=(*) - popd > /dev/null || : - - specialisations="$(jq --compact-output --null-input '$ARGS.positional' --args -- "${specialisation_list[@]}")" - - if [ "$(basename "$generation_dir")" = "$(readlink "$profile")" ]; then - current_generation_tag="true" - else - current_generation_tag="false" - fi - - # Escape userdefined strings - nixos_version="$(jq -aR <<< "$nixos_version")" - kernel_version="$(jq -aR <<< "$kernel_version")" - configurationRevision="$(jq -aR <<< "$configurationRevision")" - cat << EOF -{ - "generation": $generation_number, - "date": $build_date, - "nixosVersion": $nixos_version, - "kernelVersion": $kernel_version, - "configurationRevision": $configurationRevision, - "specialisations": $specialisations, - "current": $current_generation_tag -} -EOF - } - - find "$(dirname "$profile")" -regex "$profile-[0-9]+-link" | - sort -Vr | - while read -r generation_dir; do - describe_generation "$generation_dir" - done | - if [ -z "$json" ]; then - jq --slurp -r '.[] | [ - ([.generation, (if .current == true then "current" else "" end)] | join(" ")), - (.date | fromdate | strflocaltime("%Y-%m-%d %H:%M:%S")), - .nixosVersion, .kernelVersion, .configurationRevision, - (.specialisations | join(" ")) - ] | @tsv' | - column --separator $'\t' --table --table-columns "Generation,Build-date,NixOS version,Kernel,Configuration Revision,Specialisation" | - ${PAGER:cat} - else - jq --slurp . - fi - exit 0 -fi - - -# Either upgrade the configuration in the system profile (for "switch" -# or "boot"), or just build it and create a symlink "result" in the -# current directory (for "build" and "test"). -if [ -z "$rollback" ]; then - log "building the system configuration..." - if [[ "$action" = switch || "$action" = boot ]]; then - if [[ -z $flake ]]; then - pathToConfig="$(nixBuild '<nixpkgs/nixos>' --no-out-link -A system "${extraBuildFlags[@]}")" - else - pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}")" - fi - copyToTarget "$pathToConfig" - targetHostSudoCmd nix-env -p "$profile" --set "$pathToConfig" - elif [[ "$action" = test || "$action" = build || "$action" = dry-build || "$action" = dry-activate ]]; then - if [[ -z $flake ]]; then - pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}")" - else - pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}")" - fi - elif [ "$action" = build-vm ]; then - if [[ -z $flake ]]; then - pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A vm -k "${extraBuildFlags[@]}")" - else - pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.vm" "${extraBuildFlags[@]}" "${lockFlags[@]}")" - fi - elif [ "$action" = build-vm-with-bootloader ]; then - if [[ -z $flake ]]; then - pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A vmWithBootLoader -k "${extraBuildFlags[@]}")" - else - pathToConfig="$(nixFlakeBuild "$flake#$flakeAttr.config.system.build.vmWithBootLoader" "${extraBuildFlags[@]}" "${lockFlags[@]}")" - fi - else - showSyntax - fi - # Copy build to target host if we haven't already done it - if ! [[ "$action" = switch || "$action" = boot ]]; then - copyToTarget "$pathToConfig" - fi -else # [ -n "$rollback" ] - if [[ "$action" = switch || "$action" = boot ]]; then - targetHostSudoCmd nix-env --rollback -p "$profile" - pathToConfig="$profile" - elif [[ "$action" = test || "$action" = build ]]; then - systemNumber=$( - targetHostCmd nix-env -p "$profile" --list-generations | - sed -n '/current/ {g; p;}; s/ *\([0-9]*\).*/\1/; h' - ) - pathToConfig="$profile"-${systemNumber}-link - if [ -z "$targetHost" ]; then - ln -sT "$pathToConfig" ./result - fi - else - showSyntax - fi -fi - - -# If we're not just building, then make the new configuration the boot -# default and/or activate it now. -if [[ "$action" = switch || "$action" = boot || "$action" = test || "$action" = dry-activate ]]; then - # Using systemd-run here to protect against PTY failures/network - # disconnections during rebuild. - # See: https://github.com/NixOS/nixpkgs/issues/39118 - cmd=( - "systemd-run" - "-E" "LOCALE_ARCHIVE" # Will be set to new value early in switch-to-configuration script, but interpreter starts out with old value - "-E" "NIXOS_INSTALL_BOOTLOADER=$installBootloader" - "--collect" - "--no-ask-password" - "--pipe" - "--quiet" - "--same-dir" - "--service-type=exec" - "--unit=nixos-rebuild-switch-to-configuration" - "--wait" - ) - # Check if we have a working systemd-run. In chroot environments we may have - # a non-working systemd, so we fallback to not using systemd-run. - # You may also want to explicitly set NIXOS_SWITCH_USE_DIRTY_ENV environment - # variable, since systemd-run runs inside an isolated environment and - # this may break some post-switch scripts. However keep in mind that this - # may be dangerous in remote access (e.g. SSH). - if [[ -n "$NIXOS_SWITCH_USE_DIRTY_ENV" ]]; then - log "warning: skipping systemd-run since NIXOS_SWITCH_USE_DIRTY_ENV is set. This environment variable will be ignored in the future" - cmd=("env" "NIXOS_INSTALL_BOOTLOADER=$installBootloader") - elif ! targetHostSudoCmd "${cmd[@]}" true; then - logVerbose "Skipping systemd-run to switch configuration since it is not working in target host." - cmd=( - "env" - "-i" - "LOCALE_ARCHIVE=$LOCALE_ARCHIVE" - "NIXOS_INSTALL_BOOTLOADER=$installBootloader" - ) - else - logVerbose "Using systemd-run to switch configuration." - fi - if [[ -z "$specialisation" ]]; then - cmd+=("$pathToConfig/bin/switch-to-configuration") - else - cmd+=("$pathToConfig/specialisation/$specialisation/bin/switch-to-configuration") - - if [ -z "$targetHost" ]; then - specialisationExists=$(test -f "${cmd[-1]}") - else - specialisationExists=$(targetHostCmd test -f "${cmd[-1]}") - fi - - if ! $specialisationExists; then - log "error: specialisation not found: $specialisation" - exit 1 - fi - fi - - if ! targetHostSudoCmd "${cmd[@]}" "$action"; then - log "warning: error(s) occurred while switching to the new configuration" - exit 1 - fi -fi - - -if [[ "$action" = build-vm || "$action" = build-vm-with-bootloader ]]; then - cat >&2 <<EOF - -Done. The virtual machine can be started by running $(echo "${pathToConfig}/bin/"run-*-vm) -EOF -fi diff --git a/pkgs/os-specific/linux/nixos-rebuild/test/repl.nix b/pkgs/os-specific/linux/nixos-rebuild/test/repl.nix deleted file mode 100644 index c17546851cbf..000000000000 --- a/pkgs/os-specific/linux/nixos-rebuild/test/repl.nix +++ /dev/null @@ -1,159 +0,0 @@ -{ lib, - expect, - nix, - nixos-rebuild, - path, - runCommand, - stdenv, - writeText, -}: -let - # Arguably not true, but it holds up for now. - escapeExpect = lib.strings.escapeNixString; - - expectSetup = '' - set timeout 180 - proc expect_simple { pattern } { - puts "Expecting: $pattern" - expect { - timeout { - puts "\nTimeout waiting for: $pattern\n" - exit 1 - } - $pattern - } - } - ''; - - # In case we want/need to evaluate packages or the assertions or whatever, - # we want to have a linux system. - # TODO: make the non-flake test use thise. - linuxSystem = lib.replaceStrings ["darwin"] ["linux"] stdenv.hostPlatform.system; - -in -runCommand "test-nixos-rebuild-repl" { - nativeBuildInputs = [ - expect - nix - nixos-rebuild - ]; - nixpkgs = - if builtins.pathExists (path + "/.git") - then lib.cleanSource path - else path; -} '' - export HOME=$(mktemp -d) - export TEST_ROOT=$PWD/test-tmp - - # Prepare for running Nix in sandbox - export NIX_BUILD_HOOK= - export NIX_CONF_DIR=$TEST_ROOT/etc - export NIX_LOCALSTATE_DIR=$TEST_ROOT/var - export NIX_LOG_DIR=$TEST_ROOT/var/log/nix - export NIX_STATE_DIR=$TEST_ROOT/var/nix - export NIX_STORE_DIR=$TEST_ROOT/store - export PAGER=cat - mkdir -p $TEST_ROOT $NIX_CONF_DIR - - echo General setup - ################## - - export NIX_PATH=nixpkgs=$nixpkgs:nixos-config=$HOME/configuration.nix - cat >> ~/configuration.nix <<EOF - { - boot.loader.grub.enable = false; - fileSystems."/".device = "x"; - imports = [ ./hardware-configuration.nix ]; - } - EOF - - echo '{ }' > ~/hardware-configuration.nix - - - echo Test traditional NixOS configuration - ######################################### - - expect ${writeText "test-nixos-rebuild-repl-expect" '' - ${expectSetup} - spawn nixos-rebuild repl --fast - - expect "nix-repl> " - - send "config.networking.hostName\n" - expect "\"nixos\"" - ''} - - - echo Test flake based NixOS configuration - ######################################### - - # Switch to flake flavored environment - unset NIX_PATH - cat > $NIX_CONF_DIR/nix.conf <<EOF - experimental-features = nix-command flakes - EOF - - # Make the config pure - echo '{ nixpkgs.hostPlatform = "${linuxSystem}"; }' > ~/hardware-configuration.nix - - cat >~/flake.nix <<EOF - { - inputs.nixpkgs.url = "path:$nixpkgs"; - outputs = { nixpkgs, ... }: { - nixosConfigurations.testconf = nixpkgs.lib.nixosSystem { - modules = [ - ./configuration.nix - # Let's change it up a bit - { networking.hostName = "itsme"; } - ]; - }; - }; - } - EOF - - # cat -n ~/flake.nix - - expect ${writeText "test-nixos-rebuild-repl-absolute-path-expect" '' - ${expectSetup} - spawn sh -c "nixos-rebuild repl --fast --flake path:\$HOME#testconf" - - expect_simple "nix-repl>" - - send "config.networking.hostName\n" - expect_simple "itsme" - - expect_simple "nix-repl>" - send "lib.version\n" - expect_simple ${escapeExpect ( - # The version string is a bit different in the flake lib, so we expect a prefix and ignore the rest - # Furthermore, including the revision (suffix) would cause unnecessary rebuilds. - # Note that a length of 4 only matches e.g. "24. - lib.strings.substring 0 4 (lib.strings.escapeNixString lib.version))} - - # Make sure it's the right lib - should be the flake lib, not Nixpkgs lib. - expect_simple "nix-repl>" - send "lib?nixosSystem\n" - expect_simple "true" - expect_simple "nix-repl>" - send "lib?nixos\n" - expect_simple "true" - ''} - - pushd "$HOME" - expect ${writeText "test-nixos-rebuild-repl-relative-path-expect" '' - ${expectSetup} - spawn sh -c "nixos-rebuild repl --fast --flake .#testconf" - - expect_simple "nix-repl>" - - send "config.networking.hostName\n" - expect_simple "itsme" - ''} - popd - - echo - - ######### - echo Done - touch $out -'' diff --git a/pkgs/os-specific/linux/nmon/default.nix b/pkgs/os-specific/linux/nmon/default.nix deleted file mode 100644 index 3de22bfae6d7..000000000000 --- a/pkgs/os-specific/linux/nmon/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ fetchurl, lib, stdenv, ncurses }: - -stdenv.mkDerivation rec { - pname = "nmon"; - version = "16q"; - - src = fetchurl { - url = "mirror://sourceforge/nmon/lmon${version}.c"; - sha256 = "sha256-G3ioFnLBkpGz0RpuMZ3ZsjoCKiYtuh786gCNbfUaylE="; - }; - - buildInputs = [ ncurses ]; - dontUnpack = true; - buildPhase = "${stdenv.cc.targetPrefix}cc -o nmon ${src} -g -O2 -D JFS -D GETUSER -Wall -D LARGEMEM -lncurses -lm -g -D ${ - with stdenv.hostPlatform; - if isx86 then "X86" - else if isAarch then "ARM" - else if isPower then "POWER" - else "UNKNOWN" - }"; - installPhase = '' - mkdir -p $out/bin - cp nmon $out/bin - ''; - - meta = with lib; { - description = "AIX & Linux Performance Monitoring tool"; - mainProgram = "nmon"; - homepage = "https://nmon.sourceforge.net"; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ sveitser ]; - }; -} diff --git a/pkgs/os-specific/linux/nsncd/default.nix b/pkgs/os-specific/linux/nsncd/default.nix deleted file mode 100644 index 0ad11ee8b79f..000000000000 --- a/pkgs/os-specific/linux/nsncd/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, rustPlatform -, nix-gitignore -}: - -rustPlatform.buildRustPackage rec { - pname = "nsncd"; - version = "unstable-2024-01-16"; - - src = fetchFromGitHub { - owner = "twosigma"; - repo = "nsncd"; - rev = "f4706786f26d12c533035fb2916be9be5751150b"; - hash = "sha256-GbKDWW00eZZwmslkaGIO8hjCyD5xi7h+S2WP6q5ekOQ="; - }; - - cargoSha256 = "sha256-jAxcyMPDTBFBrG0cuKm0Tm5p/UEnUgTPQKDgqY2yK7w="; - checkFlags = [ - # Relies on the test environment to be able to resolve "localhost" - # on IPv4. That's not the case in the Nix sandbox somehow. Works - # when running cargo test impurely on a (NixOS|Debian) machine. - "--skip=ffi::test_gethostbyname2_r" - ]; - - meta = with lib; { - description = "the name service non-caching daemon"; - mainProgram = "nsncd"; - longDescription = '' - nsncd is a nscd-compatible daemon that proxies lookups, without caching. - ''; - homepage = "https://github.com/twosigma/nsncd"; - license = licenses.asl20; - maintainers = with maintainers; [ flokli picnoir ]; - # never built on aarch64-darwin, x86_64-darwin since first introduction in nixpkgs - broken = stdenv.isDarwin; - }; -} diff --git a/pkgs/os-specific/linux/nss_ldap/crashes.patch b/pkgs/os-specific/linux/nss_ldap/crashes.patch deleted file mode 100644 index 48250141e82a..000000000000 --- a/pkgs/os-specific/linux/nss_ldap/crashes.patch +++ /dev/null @@ -1,104 +0,0 @@ -https://bugzilla.redhat.com/show_bug.cgi?id=488857 - - -Distinguish between contexts that are somewhat persistent and one-offs -which are used to fulfill part of a larger request. - -diff -up nss_ldap-253/ldap-grp.c nss_ldap-253/ldap-grp.c ---- nss_ldap-253/ldap-grp.c 2009-05-08 13:30:43.000000000 -0400 -+++ nss_ldap-253/ldap-grp.c 2009-05-08 13:34:41.000000000 -0400 -@@ -857,7 +857,7 @@ ng_chase (const char *dn, ldap_initgroup - LA_STRING (a) = dn; - LA_TYPE (a) = LA_TYPE_STRING; - -- if (_nss_ldap_ent_context_init_locked (&ctx) == NULL) -+ if (_nss_ldap_ent_context_init_internal_locked (&ctx) == NULL) - { - return NSS_UNAVAIL; - } -@@ -930,7 +930,7 @@ ng_chase_backlink (const char ** members - LA_STRING_LIST (a) = filteredMembersOf; - LA_TYPE (a) = LA_TYPE_STRING_LIST_OR; - -- if (_nss_ldap_ent_context_init_locked (&ctx) == NULL) -+ if (_nss_ldap_ent_context_init_internal_locked (&ctx) == NULL) - { - free (filteredMembersOf); - return NSS_UNAVAIL; -diff -up nss_ldap-253/ldap-netgrp.c nss_ldap-253/ldap-netgrp.c ---- nss_ldap-253/ldap-netgrp.c 2009-05-08 13:31:35.000000000 -0400 -+++ nss_ldap-253/ldap-netgrp.c 2009-05-08 13:33:14.000000000 -0400 -@@ -691,7 +691,7 @@ do_innetgr_nested (ldap_innetgr_args_t * - LA_TYPE (a) = LA_TYPE_STRING; - LA_STRING (a) = nested; /* memberNisNetgroup */ - -- if (_nss_ldap_ent_context_init_locked (&ctx) == NULL) -+ if (_nss_ldap_ent_context_init_internal_locked (&ctx) == NULL) - { - debug ("<== do_innetgr_nested: failed to initialize context"); - return NSS_UNAVAIL; -diff -up nss_ldap-253/ldap-nss.c nss_ldap-253/ldap-nss.c ---- nss_ldap-253/ldap-nss.c 2009-05-08 13:27:17.000000000 -0400 -+++ nss_ldap-253/ldap-nss.c 2009-05-08 14:05:51.000000000 -0400 -@@ -1961,6 +1961,7 @@ _nss_ldap_ent_context_init_locked (ent_c - debug ("<== _nss_ldap_ent_context_init_locked"); - return NULL; - } -+ ctx->ec_internal = 0; - *pctx = ctx; - } - else -@@ -1990,6 +1991,15 @@ _nss_ldap_ent_context_init_locked (ent_c - - return ctx; - } -+ent_context_t * -+_nss_ldap_ent_context_init_internal_locked (ent_context_t ** pctx) -+{ -+ ent_context_t *ctx; -+ ctx = _nss_ldap_ent_context_init_locked (pctx); -+ if (ctx != NULL) -+ ctx->ec_internal = 1; -+ return ctx; -+} - - /* - * Clears a given context; we require the caller -@@ -2031,7 +2041,8 @@ _nss_ldap_ent_context_release (ent_conte - - LS_INIT (ctx->ec_state); - -- if (_nss_ldap_test_config_flag (NSS_LDAP_FLAGS_CONNECT_POLICY_ONESHOT)) -+ if (!ctx->ec_internal && -+ _nss_ldap_test_config_flag (NSS_LDAP_FLAGS_CONNECT_POLICY_ONESHOT)) - { - do_close (); - } -diff -up nss_ldap-253/ldap-nss.h nss_ldap-253/ldap-nss.h ---- nss_ldap-253/ldap-nss.h 2009-05-08 13:35:47.000000000 -0400 -+++ nss_ldap-253/ldap-nss.h 2009-05-08 13:52:25.000000000 -0400 -@@ -560,6 +560,8 @@ struct ent_context - ldap_state_t ec_state; /* eg. for services */ - int ec_msgid; /* message ID */ - LDAPMessage *ec_res; /* result chain */ -+ int ec_internal; /* this context is just a part of a larger -+ * query for information */ - ldap_service_search_descriptor_t *ec_sd; /* current sd */ - struct berval *ec_cookie; /* cookie for paged searches */ - }; -@@ -744,6 +746,15 @@ ent_context_t *_nss_ldap_ent_context_ini - ent_context_t *_nss_ldap_ent_context_init_locked (ent_context_t **); - - /* -+ * _nss_ldap_ent_context_init_internal_locked() has the same -+ * behaviour, except it marks the context as one that's being -+ * used to fetch additional data used in answering a request, i.e. -+ * that this isn't the "main" context -+ */ -+ -+ent_context_t *_nss_ldap_ent_context_init_internal_locked (ent_context_t **); -+ -+/* - * _nss_ldap_ent_context_release() is used to manually free a context - */ - void _nss_ldap_ent_context_release (ent_context_t *); diff --git a/pkgs/os-specific/linux/nss_ldap/default.nix b/pkgs/os-specific/linux/nss_ldap/default.nix deleted file mode 100644 index 7366932d1e67..000000000000 --- a/pkgs/os-specific/linux/nss_ldap/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{lib, stdenv, fetchurl, openldap, perl}: - -stdenv.mkDerivation rec { - pname = "nss_ldap"; - version = "265"; - - src = fetchurl { - url = "http://www.padl.com/download/nss_ldap-${version}.tar.gz"; - sha256 = "1a16q9p97d2blrj0h6vl1xr7dg7i4s8x8namipr79mshby84vdbp"; - }; - - preConfigure = '' - patchShebangs ./vers_string - sed -i s,vers_string,./vers_string, Makefile* - substituteInPlace vers_string --replace "cvslib.pl" "./cvslib.pl" - ''; - - patches = [ ./crashes.patch ]; - - postPatch = '' - patch -p0 < ${./nss_ldap-265-glibc-2.16.patch} - ''; - - preInstall = '' - installFlagsArray=(INST_UID=$(id -u) INST_GID=$(id -g) LIBC_VERS=2.5 NSS_VERS=2 NSS_LDAP_PATH_CONF=$out/etc/ldap.conf) - substituteInPlace Makefile \ - --replace '/usr$(libdir)' $TMPDIR \ - --replace 'install-data-local:' 'install-data-local-disabled:' - mkdir -p $out/etc - ''; - - nativeBuildInputs = [ - perl # shebang of vers_string - ]; - - buildInputs = [ - openldap - ]; - - meta = with lib; { - description = "LDAP module for the Solaris Nameservice Switch (NSS)"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/nss_ldap/nss_ldap-265-glibc-2.16.patch b/pkgs/os-specific/linux/nss_ldap/nss_ldap-265-glibc-2.16.patch deleted file mode 100644 index 8b0b9289327a..000000000000 --- a/pkgs/os-specific/linux/nss_ldap/nss_ldap-265-glibc-2.16.patch +++ /dev/null @@ -1,139 +0,0 @@ -https://github.com/archlinuxarm/PKGBUILDs/issues/296 - -Fixes the bug causing a segfault on nscd and sshd: -symbol lookup error: /usr/lib/libnss_ldap.so.2: undefined symbol: __libc_lock_lock - ---- ldap-nss.c.orig 2012-10-17 12:32:03.908730283 +0000 -+++ ldap-nss.c 2012-10-17 12:38:10.906767283 +0000 -@@ -148,7 +148,7 @@ - */ - static ldap_session_t __session = { NULL, NULL, 0, LS_UNINITIALIZED }; - --#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) -+#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE) - static pthread_once_t __once = PTHREAD_ONCE_INIT; - #endif - -@@ -168,7 +168,7 @@ - static int __ssl_initialized = 0; - #endif /* HAVE_LDAPSSL_CLIENT_INIT */ - --#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) -+#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE) - /* - * Prepare for fork(); lock mutex. - */ -@@ -519,7 +519,7 @@ - } - #endif /* HAVE_NSSWITCH_H */ - --#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) -+#if defined(HAVE_PTHREAD_ATFORK) || defined(HAVE___LIBC_ONCE) - static void - do_atfork_prepare (void) - { -@@ -553,7 +553,7 @@ - #ifdef HAVE_PTHREAD_ATFORK - (void) pthread_atfork (do_atfork_prepare, do_atfork_parent, - do_atfork_child); --#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) -+#elif defined(HAVE___LIBC_ATFORK) - (void) __libc_atfork (do_atfork_prepare, do_atfork_parent, do_atfork_child); - #endif - -@@ -1119,7 +1119,7 @@ - } - - #ifndef HAVE_PTHREAD_ATFORK --#if defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) -+#if defined(HAVE___LIBC_ONCE) - /* - * This bogosity is necessary because Linux uses different - * PIDs for different threads (like IRIX, which we don't -@@ -1151,7 +1151,7 @@ - pid = -1; /* linked against libpthreads, don't care */ - #else - pid = getpid (); --#endif /* HAVE_LIBC_LOCK_H || HAVE_BITS_LIBC_LOCK_H */ -+#endif /* HAVE___LIBC_ONCE */ - #endif /* HAVE_PTHREAD_ATFORK */ - - euid = geteuid (); -@@ -1161,7 +1161,7 @@ - syslog (LOG_DEBUG, - "nss_ldap: __session.ls_state=%d, __session.ls_conn=%p, __euid=%i, euid=%i", - __session.ls_state, __session.ls_conn, __euid, euid); --#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) -+#elif defined(HAVE___LIBC_ONCE) - syslog (LOG_DEBUG, - "nss_ldap: libpthreads=%s, __session.ls_state=%d, __session.ls_conn=%p, __pid=%i, pid=%i, __euid=%i, euid=%i", - ((__pthread_once == NULL || __pthread_atfork == NULL) ? "FALSE" : "TRUE"), -@@ -1185,11 +1185,11 @@ - } - else - #ifndef HAVE_PTHREAD_ATFORK --#if defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) -+#if defined(HAVE___LIBC_ONCE) - if ((__pthread_once == NULL || __pthread_atfork == NULL) && __pid != pid) - #else - if (__pid != pid) --#endif /* HAVE_LIBC_LOCK_H || HAVE_BITS_LIBC_LOCK_H */ -+#endif /* HAVE___LIBC_ONCE */ - { - do_close_no_unbind (); - } -@@ -1250,9 +1250,9 @@ - debug ("<== do_init (pthread_once failed)"); - return NSS_UNAVAIL; - } --#elif defined(HAVE_PTHREAD_ATFORK) && ( defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) ) -+#elif defined(HAVE_PTHREAD_ATFORK) && defined(HAVE___LIBC_ONCE) - __libc_once (__once, do_atfork_setup); --#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) -+#elif defined(HAVE___LIBC_ONCE) - /* - * Only install the pthread_atfork() handlers i - * we are linked against libpthreads. Otherwise, ---- ldap-nss.h.orig 2012-10-17 12:33:05.681379283 +0000 -+++ ldap-nss.h 2012-10-17 12:34:06.337050753 +0000 -@@ -671,7 +671,7 @@ - #define NSS_LDAP_LOCK(m) mutex_lock(&m) - #define NSS_LDAP_UNLOCK(m) mutex_unlock(&m) - #define NSS_LDAP_DEFINE_LOCK(m) static mutex_t m = DEFAULTMUTEX --#elif defined(HAVE_LIBC_LOCK_H) || defined(HAVE_BITS_LIBC_LOCK_H) -+#elif defined(HAVE___LIBC_LOCK_LOCK) && defined(HAVE___LIBC_LOCK_UNLOCK) - #define NSS_LDAP_LOCK(m) __libc_lock_lock(m) - #define NSS_LDAP_UNLOCK(m) __libc_lock_unlock(m) - #define NSS_LDAP_DEFINE_LOCK(m) static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER ---- ldap-nss.c.orig 2012-10-17 12:58:20.270783283 +0000 -+++ ldap-nss.c 2012-10-17 12:58:43.699267283 +0000 -@@ -156,7 +156,7 @@ - static FILE *__debugfile; - #endif /* LBER_OPT_LOG_PRINT_FILE */ - --#ifndef HAVE_PTHREAD_ATFORK -+#if !defined(HAVE_PTHREAD_ATFORK) || !defined(HAVE___LIBC_ONCE) - /* - * Process ID that opened the session. - */ ---- configure.in.orig 2012-10-17 12:59:31.707235283 +0000 -+++ configure.in 2012-10-17 13:00:15.854289283 +0000 -@@ -255,6 +255,7 @@ - AC_CHECK_FUNCS(pthread_once) - AC_CHECK_FUNCS(ether_aton) - AC_CHECK_FUNCS(ether_ntoa) -+AC_CHECK_FUNCS(__libc_once __libc_atfork __libc_lock_lock __libc_lock_unlock) - - AC_MSG_CHECKING(for struct ether_addr) - AC_TRY_COMPILE([#include <sys/types.h> ---- ldap-nss.c.orig 2012-10-17 13:02:01.418010283 +0000 -+++ ldap-nss.c 2012-10-17 13:03:25.017240283 +0000 -@@ -1102,7 +1102,7 @@ - do_init (void) - { - ldap_config_t *cfg; --#ifndef HAVE_PTHREAD_ATFORK -+#if !defined(HAVE_PTHREAD_ATFORK) || !defined(HAVE___LIBC_ONCE) - pid_t pid; - #endif - uid_t euid; diff --git a/pkgs/os-specific/linux/numactl/default.nix b/pkgs/os-specific/linux/numactl/default.nix deleted file mode 100644 index 16e2ae51f957..000000000000 --- a/pkgs/os-specific/linux/numactl/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook }: - -stdenv.mkDerivation rec { - pname = "numactl"; - version = "2.0.18"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "v${version}"; - hash = "sha256-ry29RUNa0Hv5gIhy2RTVT94mHhgfdIwb5aqjBycxxj0="; - }; - - outputs = [ "out" "dev" "man" ]; - - nativeBuildInputs = [ autoreconfHook ]; - - postPatch = '' - patchShebangs test - ''; - - # You probably shouldn't ever run these! They will reconfigure Linux - # NUMA settings, which on my build machine makes the rest of package - # building ~5% slower until reboot. Ugh! - doCheck = false; # never ever! - - meta = with lib; { - description = "Library and tools for non-uniform memory access (NUMA) machines"; - homepage = "https://github.com/numactl/numactl"; - license = with licenses; [ gpl2 lgpl21 ]; # libnuma is lgpl21 - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/numad/default.nix b/pkgs/os-specific/linux/numad/default.nix deleted file mode 100644 index 2eabbc95fa13..000000000000 --- a/pkgs/os-specific/linux/numad/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchgit }: - -stdenv.mkDerivation rec { - pname = "numad"; - version = "0.5"; - - src = fetchgit { - url = "https://pagure.io/numad.git"; - rev = "334278ff3d774d105939743436d7378a189e8693"; - sha256 = "sha256-6nrbfooUI1ufJhsPf68li5584oKQcznXQlxfpStuX5I="; - }; - - hardeningDisable = [ "format" ]; - - patches = [ - ./numad-linker-flags.patch - ]; - postPatch = '' - substituteInPlace Makefile --replace "install -m" "install -Dm" - ''; - - makeFlags = [ "prefix=$(out)" ]; - - meta = with lib; { - description = "A user-level daemon that monitors NUMA topology and processes resource consumption to facilitate good NUMA resource access"; - mainProgram = "numad"; - homepage = "https://fedoraproject.org/wiki/Features/numad"; - license = licenses.lgpl21; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/numad/numad-linker-flags.patch b/pkgs/os-specific/linux/numad/numad-linker-flags.patch deleted file mode 100644 index 97f3dc8b6cf7..000000000000 --- a/pkgs/os-specific/linux/numad/numad-linker-flags.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9eb3cc5c51d846c8c8b750a4eb55545d7b5fea6c Mon Sep 17 00:00:00 2001 -From: Mike Frysinger <vapier@gentoo.org> -Date: Wed, 23 Apr 2014 15:41:26 -0400 -Subject: [PATCH] use LDLIBS for linker flags - -When you put -lfoo into the dependency line of make, it forces it to -search /lib and /usr/lib for files to link against. This can cause -problems when trying to cross-compile or build for different ABIs. -Use the standard LDLIBS variable instead. - -URL: https://bugs.gentoo.org/505760 -Reported-by: Georgi Georgiev <chutzimir@gmail.com> -Signed-off-by: Mike Frysinger <vapier@gentoo.org> ---- - Makefile | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index f3838b4..f2e9a6e 100644 ---- a/Makefile -+++ b/Makefile -@@ -31,7 +31,8 @@ docdir := ${prefix}/share/doc - - all: numad - --numad: numad.o -lpthread -+LDLIBS := -lpthread -+numad: numad.o - - AR ?= ar - RANLIB ?= ranlib --- -1.9.2 diff --git a/pkgs/os-specific/linux/numatop/default.nix b/pkgs/os-specific/linux/numatop/default.nix deleted file mode 100644 index 159afa467dc3..000000000000 --- a/pkgs/os-specific/linux/numatop/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, numactl, ncurses, check }: - -stdenv.mkDerivation rec { - pname = "numatop"; - version = "2.2"; - src = fetchFromGitHub { - owner = "intel"; - repo = "numatop"; - rev = "v${version}"; - sha256 = "sha256-GJvTwqgx34ZW10eIJj/xiKe3ZkAfs7GlJImz8jrnjfI="; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ numactl ncurses ]; - nativeCheckInputs = [ check ]; - - patches = [ - (fetchpatch { - # https://github.com/intel/numatop/pull/54 - url = "https://github.com/intel/numatop/compare/eab0ac5253c5843aa0f0ac36e2eec7612207711b...c1001fd926c24eae2d40729492e07270ce133b72.patch"; - sha256 = "sha256-TbMLv7TT9T8wE4uJ1a/AroyPPwrwL0eX5IBLsh9GTTM="; - name = "fix-string-operations.patch"; - }) - (fetchpatch { - # https://github.com/intel/numatop/pull/64 - url = "https://github.com/intel/numatop/commit/635e2ce2ccb1ac793cc276a7fcb8a92b1ffefa5d.patch"; - sha256 = "sha256-IevbSFJRTS5iQ5apHOVXzF67f3LJaW6j7DySFmVuyiM="; - name = "fix-format-strings-mvwprintw.patch"; - }) - ]; - - doCheck = true; - - meta = with lib; { - description = "Tool for runtime memory locality characterization and analysis of processes and threads on a NUMA system"; - mainProgram = "numatop"; - homepage = "https://01.org/numatop"; - license = licenses.bsd3; - maintainers = with maintainers; [ dtzWill ]; - platforms = [ - "i686-linux" "x86_64-linux" - "powerpc64-linux" "powerpc64le-linux" - ]; - }; -} diff --git a/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules b/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules deleted file mode 100644 index ab07de99718b..000000000000 --- a/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules +++ /dev/null @@ -1,2 +0,0 @@ -SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="a291", TAG+="uaccess" -SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="df11", TAG+="uaccess" diff --git a/pkgs/os-specific/linux/numworks-udev-rules/default.nix b/pkgs/os-specific/linux/numworks-udev-rules/default.nix deleted file mode 100644 index aae7507f50cd..000000000000 --- a/pkgs/os-specific/linux/numworks-udev-rules/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "numworks-udev-rules"; - version = "unstable-2020-08-31"; - - udevRules = ./50-numworks-calculator.rules; - dontUnpack = true; - - installPhase = '' - install -Dm 644 "${udevRules}" "$out/lib/udev/rules.d/50-numworks-calculator.rules" - ''; - - meta = with lib; { - description = "Udev rules for Numworks calculators"; - homepage = "https://numworks.com"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ shamilton ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/numworks-udev-rules/update.sh b/pkgs/os-specific/linux/numworks-udev-rules/update.sh deleted file mode 100755 index 3949f6fd8f41..000000000000 --- a/pkgs/os-specific/linux/numworks-udev-rules/update.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -wget -O 50-numworks-calculator.rules "https://workshop.numworks.com/files/drivers/linux/50-numworks-calculator.rules" diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh deleted file mode 100755 index aa614aec1283..000000000000 --- a/pkgs/os-specific/linux/nvidia-x11/builder.sh +++ /dev/null @@ -1,227 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -unpackManually() { - skip=$(sed 's/^skip=//; t; d' $src) - tail -n +$skip $src | bsdtar xvf - - sourceRoot=. -} - - -unpackFile() { - sh $src -x || unpackManually -} - - -buildPhase() { - runHook preBuild - - if [ -n "$bin" ]; then - # Create the module. - echo "Building linux driver against kernel: $kernel"; - cd kernel - unset src # used by the nv makefile - make $makeFlags -j $NIX_BUILD_CORES module - - cd .. - fi - - runHook postBuild -} - - -installPhase() { - runHook preInstall - - # Install libGL and friends. - - # since version 391, 32bit libraries are bundled in the 32/ sub-directory - if [ "$i686bundled" = "1" ]; then - mkdir -p "$lib32/lib" - cp -prd 32/*.so.* "$lib32/lib/" - if [ -d 32/tls ]; then - cp -prd 32/tls "$lib32/lib/" - fi - fi - - mkdir -p "$out/lib" - cp -prd *.so.* "$out/lib/" - if [ -d tls ]; then - cp -prd tls "$out/lib/" - fi - - # Install systemd power management executables - if [ -e systemd/nvidia-sleep.sh ]; then - mv systemd/nvidia-sleep.sh ./ - fi - if [ -e nvidia-sleep.sh ]; then - sed -E 's#(PATH=).*#\1"$PATH"#' nvidia-sleep.sh > nvidia-sleep.sh.fixed - install -Dm755 nvidia-sleep.sh.fixed $out/bin/nvidia-sleep.sh - fi - - if [ -e systemd/system-sleep/nvidia ]; then - mv systemd/system-sleep/nvidia ./ - fi - if [ -e nvidia ]; then - sed -E "s#/usr(/bin/nvidia-sleep.sh)#$out\\1#" nvidia > nvidia.fixed - install -Dm755 nvidia.fixed $out/lib/systemd/system-sleep/nvidia - fi - - for i in $lib32 $out; do - rm -f $i/lib/lib{glx,nvidia-wfb}.so.* # handled separately - rm -f $i/lib/libnvidia-gtk* # built from source - rm -f $i/lib/libnvidia-wayland-client* # built from source - if [ "$useGLVND" = "1" ]; then - # Pre-built libglvnd - rm $i/lib/lib{GL,GLX,EGL,GLESv1_CM,GLESv2,OpenGL,GLdispatch}.so.* - fi - # Use ocl-icd instead - rm -f $i/lib/libOpenCL.so* - # Move VDPAU libraries to their place - mkdir $i/lib/vdpau - mv $i/lib/libvdpau* $i/lib/vdpau - - # Install ICDs, make absolute paths. - # Be careful not to modify any original files because this runs twice. - - # OpenCL - sed -E "s#(libnvidia-opencl)#$i/lib/\\1#" nvidia.icd > nvidia.icd.fixed - install -Dm644 nvidia.icd.fixed $i/etc/OpenCL/vendors/nvidia.icd - - # Vulkan - if [ -e nvidia_icd.json.template ] || [ -e nvidia_icd.json ]; then - if [ -e nvidia_icd.json.template ]; then - # template patching for version < 435 - sed "s#__NV_VK_ICD__#$i/lib/libGLX_nvidia.so#" nvidia_icd.json.template > nvidia_icd.json.fixed - else - sed -E "s#(libGLX_nvidia)#$i/lib/\\1#" nvidia_icd.json > nvidia_icd.json.fixed - fi - - # nvidia currently only supports x86_64 and i686 - if [ "$i" == "$lib32" ]; then - install -Dm644 nvidia_icd.json.fixed $i/share/vulkan/icd.d/nvidia_icd.i686.json - else - install -Dm644 nvidia_icd.json.fixed $i/share/vulkan/icd.d/nvidia_icd.x86_64.json - fi - fi - - if [ -e nvidia_layers.json ]; then - sed -E "s#(libGLX_nvidia)#$i/lib/\\1#" nvidia_layers.json > nvidia_layers.json.fixed - install -Dm644 nvidia_layers.json.fixed $i/share/vulkan/implicit_layer.d/nvidia_layers.json - fi - - # EGL - if [ "$useGLVND" = "1" ]; then - sed -E "s#(libEGL_nvidia)#$i/lib/\\1#" 10_nvidia.json > 10_nvidia.json.fixed - sed -E "s#(libnvidia-egl-wayland)#$i/lib/\\1#" 10_nvidia_wayland.json > 10_nvidia_wayland.json.fixed - - install -Dm644 10_nvidia.json.fixed $i/share/glvnd/egl_vendor.d/10_nvidia.json - install -Dm644 10_nvidia_wayland.json.fixed $i/share/egl/egl_external_platform.d/10_nvidia_wayland.json - - if [[ -f "15_nvidia_gbm.json" ]]; then - sed -E "s#(libnvidia-egl-gbm)#$i/lib/\\1#" 15_nvidia_gbm.json > 15_nvidia_gbm.json.fixed - install -Dm644 15_nvidia_gbm.json.fixed $i/share/egl/egl_external_platform.d/15_nvidia_gbm.json - - mkdir -p $i/lib/gbm - ln -s $i/lib/libnvidia-allocator.so $i/lib/gbm/nvidia-drm_gbm.so - fi - fi - - # Install libraries needed by Proton to support DLSS - if [ -e nvngx.dll ] && [ -e _nvngx.dll ]; then - install -Dm644 -t $i/lib/nvidia/wine/ nvngx.dll _nvngx.dll - fi - done - - - # OptiX tries loading `$ORIGIN/nvoptix.bin` first - if [ -e nvoptix.bin ]; then - install -Dm444 -t $out/lib/ nvoptix.bin - fi - - if [ -n "$bin" ]; then - # Install the X drivers. - mkdir -p $bin/lib/xorg/modules - if [ -f libnvidia-wfb.so ]; then - cp -p libnvidia-wfb.* $bin/lib/xorg/modules/ - fi - mkdir -p $bin/lib/xorg/modules/drivers - cp -p nvidia_drv.so $bin/lib/xorg/modules/drivers - mkdir -p $bin/lib/xorg/modules/extensions - cp -p libglx*.so* $bin/lib/xorg/modules/extensions - - # Install the kernel module. - mkdir -p $bin/lib/modules/$kernelVersion/misc - for i in $(find ./kernel -name '*.ko'); do - nuke-refs $i - cp $i $bin/lib/modules/$kernelVersion/misc/ - done - - # Install application profiles. - if [ "$useProfiles" = "1" ]; then - mkdir -p $bin/share/nvidia - cp nvidia-application-profiles-*-rc $bin/share/nvidia/nvidia-application-profiles-rc - cp nvidia-application-profiles-*-key-documentation $bin/share/nvidia/nvidia-application-profiles-key-documentation - fi - fi - - if [ -n "$firmware" ]; then - # Install the GSP firmware - install -Dm644 -t $firmware/lib/firmware/nvidia/$version firmware/gsp*.bin - fi - - # All libs except GUI-only are installed now, so fixup them. - for libname in $(find "$out/lib/" $(test -n "$lib32" && echo "$lib32/lib/") $(test -n "$bin" && echo "$bin/lib/") -name '*.so.*') - do - # I'm lazy to differentiate needed libs per-library, as the closure is the same. - # Unfortunately --shrink-rpath would strip too much. - if [[ -n $lib32 && $libname == "$lib32/lib/"* ]]; then - patchelf --set-rpath "$lib32/lib:$libPath32" "$libname" - else - patchelf --set-rpath "$out/lib:$libPath" "$libname" - fi - - libname_short=`echo -n "$libname" | sed 's/so\..*/so/'` - - if [[ "$libname" != "$libname_short" ]]; then - ln -srnf "$libname" "$libname_short" - fi - - if [[ $libname_short =~ libEGL.so || $libname_short =~ libEGL_nvidia.so || $libname_short =~ libGLX.so || $libname_short =~ libGLX_nvidia.so ]]; then - major=0 - else - major=1 - fi - - if [[ "$libname" != "$libname_short.$major" ]]; then - ln -srnf "$libname" "$libname_short.$major" - fi - done - - if [ -n "$bin" ]; then - # Install /share files. - mkdir -p $bin/share/man/man1 - cp -p *.1.gz $bin/share/man/man1 - rm -f $bin/share/man/man1/{nvidia-xconfig,nvidia-settings,nvidia-persistenced}.1.gz - if [ -e "nvidia-dbus.conf" ]; then - install -Dm644 nvidia-dbus.conf $bin/share/dbus-1/system.d/nvidia-dbus.conf - fi - - # Install the programs. - for i in nvidia-cuda-mps-control nvidia-cuda-mps-server nvidia-smi nvidia-debugdump nvidia-powerd; do - if [ -e "$i" ]; then - install -Dm755 $i $bin/bin/$i - # unmodified binary backup for mounting in containers - install -Dm755 $i $bin/origBin/$i - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath $out/lib:$libPath $bin/bin/$i - fi - done - # FIXME: needs PATH and other fixes - # install -Dm755 nvidia-bug-report.sh $bin/bin/nvidia-bug-report.sh - fi - - runHook postInstall -} - -genericBuild diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix deleted file mode 100644 index 777e5b6ca4d9..000000000000 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ /dev/null @@ -1,182 +0,0 @@ -{ lib, callPackage, fetchFromGitHub, fetchurl, fetchpatch, stdenv, pkgsi686Linux }: - -let - generic = args: let - imported = import ./generic.nix args; - in callPackage imported { - lib32 = (pkgsi686Linux.callPackage imported { - libsOnly = true; - kernel = null; - }).out; - }; - - kernel = callPackage # a hacky way of extracting parameters from callPackage - ({ kernel, libsOnly ? false }: if libsOnly then { } else kernel) { }; - - selectHighestVersion = a: b: if lib.versionOlder a.version b.version - then b - else a; - - # https://forums.developer.nvidia.com/t/linux-6-7-3-545-29-06-550-40-07-error-modpost-gpl-incompatible-module-nvidia-ko-uses-gpl-only-symbol-rcu-read-lock/280908/19 - rcu_patch = fetchpatch { - url = "https://github.com/gentoo/gentoo/raw/c64caf53/x11-drivers/nvidia-drivers/files/nvidia-drivers-470.223.02-gpl-pfn_valid.patch"; - hash = "sha256-eZiQQp2S/asE7MfGvfe6dA/kdCvek9SYa/FFGp24dVg="; - }; -in -rec { - mkDriver = generic; - - # Official Unix Drivers - https://www.nvidia.com/en-us/drivers/unix/ - # Branch/Maturity data - http://people.freedesktop.org/~aplattner/nvidia-versions.txt - - # Policy: use the highest stable version as the default (on our master). - stable = if stdenv.hostPlatform.system == "i686-linux" then legacy_390 else latest; - - production = generic { - version = "550.78"; - sha256_64bit = "sha256-NAcENFJ+ydV1SD5/EcoHjkZ+c/be/FQ2bs+9z+Sjv3M="; - sha256_aarch64 = "sha256-2POG5RWT2H7Rhs0YNfTGHO64Q8u5lJD9l/sQCGVb+AA="; - openSha256 = "sha256-cF9omNvfHx6gHUj2u99k6OXrHGJRpDQDcBG3jryf41Y="; - settingsSha256 = "sha256-lZiNZw4dJw4DI/6CI0h0AHbreLm825jlufuK9EB08iw="; - persistencedSha256 = "sha256-qDGBAcZEN/ueHqWO2Y6UhhXJiW5625Kzo1m/oJhvbj4="; - }; - - latest = selectHighestVersion production (generic { - version = "550.54.14"; - sha256_64bit = "sha256-jEl/8c/HwxD7h1FJvDD6pP0m0iN7LLps0uiweAFXz+M="; - sha256_aarch64 = "sha256-sProBhYziFwk9rDAR2SbRiSaO7RMrf+/ZYryj4BkLB0="; - openSha256 = "sha256-F+9MWtpIQTF18F2CftCJxQ6WwpA8BVmRGEq3FhHLuYw="; - settingsSha256 = "sha256-m2rNASJp0i0Ez2OuqL+JpgEF0Yd8sYVCyrOoo/ln2a4="; - persistencedSha256 = "sha256-XaPN8jVTjdag9frLPgBtqvO/goB5zxeGzaTU0CdL6C4="; - }); - - beta = selectHighestVersion latest (generic { - version = "550.40.07"; - sha256_64bit = "sha256-KYk2xye37v7ZW7h+uNJM/u8fNf7KyGTZjiaU03dJpK0="; - sha256_aarch64 = "sha256-AV7KgRXYaQGBFl7zuRcfnTGr8rS5n13nGUIe3mJTXb4="; - openSha256 = "sha256-mRUTEWVsbjq+psVe+kAT6MjyZuLkG2yRDxCMvDJRL1I="; - settingsSha256 = "sha256-c30AQa4g4a1EHmaEu1yc05oqY01y+IusbBuq+P6rMCs="; - persistencedSha256 = "sha256-11tLSY8uUIl4X/roNnxf5yS2PQvHvoNjnd2CB67e870="; - - patches = [ rcu_patch ]; - }); - - # Vulkan developer beta driver - # See here for more information: https://developer.nvidia.com/vulkan-driver - vulkan_beta = generic rec { - version = "550.40.61"; - persistencedVersion = "550.54.14"; - settingsVersion = "550.54.14"; - sha256_64bit = "sha256-JNVeA5/u5/ictU3QpPnbXIHDKOtwou8wGmMt3We4FJY="; - openSha256 = "sha256-kWGTj3eAvwLTJ7zgzRFvyhXmfpxQbUMmyxWxER9i9m0="; - settingsSha256 = "sha256-m2rNASJp0i0Ez2OuqL+JpgEF0Yd8sYVCyrOoo/ln2a4="; - persistencedSha256 = "sha256-XaPN8jVTjdag9frLPgBtqvO/goB5zxeGzaTU0CdL6C4="; - url = "https://developer.nvidia.com/downloads/vulkan-beta-${lib.concatStrings (lib.splitVersion version)}-linux"; - }; - - # data center driver compatible with current default cudaPackages - dc = dc_520; - dc_520 = generic rec { - version = "520.61.05"; - url = "https://us.download.nvidia.com/tesla/${version}/NVIDIA-Linux-x86_64-${version}.run"; - sha256_64bit = "sha256-EPYWZwOur/6iN/otDMrNDpNXr1mzu8cIqQl8lXhQlzU=="; - fabricmanagerSha256 = "sha256-o8Kbmkg7qczKQclaGvEyXNzEOWq9ZpQZn9syeffnEiE=="; - useSettings = false; - usePersistenced = false; - useFabricmanager = true; - - patches = [ rcu_patch ]; - - broken = kernel.kernelAtLeast "6.5"; - }; - - dc_535 = generic rec { - version = "535.154.05"; - url = "https://us.download.nvidia.com/tesla/${version}/NVIDIA-Linux-x86_64-${version}.run"; - sha256_64bit = "sha256-fpUGXKprgt6SYRDxSCemGXLrEsIA6GOinp+0eGbqqJg="; - persistencedSha256 = "sha256-d0Q3Lk80JqkS1B54Mahu2yY/WocOqFFbZVBh+ToGhaE="; - fabricmanagerSha256 = "sha256-/HQfV7YA3MYVmre/sz897PF6tc6MaMiS/h7Q10m2p/o="; - useSettings = false; - usePersistenced = true; - useFabricmanager = true; - - patches = [ rcu_patch ]; - }; - - # Update note: - # If you add a legacy driver here, also update `top-level/linux-kernels.nix`, - # adding to the `nvidia_x11_legacy*` entries. - - # Last one supporting Kepler architecture - legacy_470 = generic { - version = "470.239.06"; - sha256_64bit = "sha256-fXTKrBQKBDLXnr6OQzDceW85un3UCz/NYd92AYG/nMw="; - sha256_aarch64 = "sha256-NZj8OLQ0N7y3V7UBamLyJE8AbI3alZJD1weNjnssuNs="; - settingsSha256 = "sha256-2YTk6DaoB8Qvob9/ohtHXuDhxGO9O/SUwlXXbLSgJP0="; - persistencedSha256 = "sha256-wLrkfD8MQ8sMODE+yEnWg/1ETxYVWOqNsIj1dY+5yjc="; - }; - - # Last one supporting x86 - legacy_390 = generic { - version = "390.157"; - sha256_32bit = "sha256-VdZeCkU5qct5YgDF8Qgv4mP7CVHeqvlqnP/rioD3B5k="; - sha256_64bit = "sha256-W+u8puj+1da52BBw+541HxjtxTSVJVPL3HHo/QubMoo="; - settingsSha256 = "sha256-uJZO4ak/w/yeTQ9QdXJSiaURDLkevlI81de0q4PpFpw="; - persistencedSha256 = "sha256-NuqUQbVt80gYTXgIcu0crAORfsj9BCRooyH3Gp1y1ns="; - - broken = kernel.kernelAtLeast "6.2"; - - # fixes the bug described in https://bbs.archlinux.org/viewtopic.php?pid=2083439#p2083439 - # see https://bbs.archlinux.org/viewtopic.php?pid=2083651#p2083651 - # and https://bbs.archlinux.org/viewtopic.php?pid=2083699#p2083699 - postInstall = '' - mv $out/lib/tls/* $out/lib - rmdir $out/lib/tls - ''; - }; - - legacy_340 = let - # Source corresponding to https://aur.archlinux.org/packages/nvidia-340xx-dkms - aurPatches = fetchFromGitHub { - owner = "archlinux-jerry"; - repo = "nvidia-340xx"; - rev = "7616dfed253aa93ca7d2e05caf6f7f332c439c90"; - hash = "sha256-1qlYc17aEbLD4W8XXn1qKryBk2ltT6cVIv5zAs0jXZo="; - }; - patchset = [ - "0001-kernel-5.7.patch" - "0002-kernel-5.8.patch" - "0003-kernel-5.9.patch" - "0004-kernel-5.10.patch" - "0005-kernel-5.11.patch" - "0006-kernel-5.14.patch" - "0007-kernel-5.15.patch" - "0008-kernel-5.16.patch" - "0009-kernel-5.17.patch" - "0010-kernel-5.18.patch" - "0011-kernel-6.0.patch" - "0012-kernel-6.2.patch" - "0013-kernel-6.3.patch" - "0014-kernel-6.5.patch" - "0015-kernel-6.6.patch" - ]; - in generic { - version = "340.108"; - sha256_32bit = "1jkwa1phf0x4sgw8pvr9d6krmmr3wkgwyygrxhdazwyr2bbalci0"; - sha256_64bit = "06xp6c0sa7v1b82gf0pq0i5p0vdhmm3v964v0ypw36y0nzqx8wf6"; - settingsSha256 = "0zm29jcf0mp1nykcravnzb5isypm8l8mg2gpsvwxipb7nk1ivy34"; - persistencedSha256 = "1ax4xn3nmxg1y6immq933cqzw6cj04x93saiasdc0kjlv0pvvnkn"; - useGLVND = false; - - broken = kernel.kernelAtLeast "6.7"; - patches = map (patch: "${aurPatches}/${patch}") patchset; - - # fixes the bug described in https://bbs.archlinux.org/viewtopic.php?pid=2083439#p2083439 - # see https://bbs.archlinux.org/viewtopic.php?pid=2083651#p2083651 - # and https://bbs.archlinux.org/viewtopic.php?pid=2083699#p2083699 - postInstall = '' - mv $out/lib/tls/* $out/lib - rmdir $out/lib/tls - ''; - }; -} diff --git a/pkgs/os-specific/linux/nvidia-x11/fabricmanager.nix b/pkgs/os-specific/linux/nvidia-x11/fabricmanager.nix deleted file mode 100644 index e70857ea356e..000000000000 --- a/pkgs/os-specific/linux/nvidia-x11/fabricmanager.nix +++ /dev/null @@ -1,46 +0,0 @@ -nvidia_x11: sha256: - -{ stdenv, lib, fetchurl, patchelf }: - -let - sys = with lib; concatStringsSep "-" (reverseList (splitString "-" stdenv.system)); - bsys = builtins.replaceStrings ["_"] ["-"] sys; - fmver = nvidia_x11.version; -in - -stdenv.mkDerivation rec { - pname = "fabricmanager"; - version = fmver; - src = fetchurl { - url = "https://developer.download.nvidia.com/compute/nvidia-driver/redist/fabricmanager/" + - "${sys}/${pname}-${sys}-${fmver}-archive.tar.xz"; - inherit sha256; - }; - - installPhase = '' - mkdir -p $out/{bin,share/nvidia-fabricmanager} - for bin in nv{-fabricmanager,switch-audit};do - ${patchelf}/bin/patchelf \ - --set-interpreter ${stdenv.cc.libc}/lib/ld-${bsys}.so.2 \ - --set-rpath ${lib.makeLibraryPath [ stdenv.cc.libc ]} \ - --shrink-rpath \ - bin/$bin - done - mv bin/nv{-fabricmanager,switch-audit} $out/bin/. - for d in etc systemd share/nvidia;do - mv $d $out/share/nvidia-fabricmanager/. - done - for d in include lib;do - mv $d $out/. - done - ''; - - meta = with lib; { - homepage = "https://www.nvidia.com/object/unix.html"; - description = "Fabricmanager daemon for NVLink intialization and control"; - license = licenses.unfreeRedistributable; - platforms = nvidia_x11.meta.platforms; - mainProgram = "nv-fabricmanager"; - maintainers = with maintainers; [ edwtjo ]; - }; -} diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix deleted file mode 100644 index 2cbc1846362b..000000000000 --- a/pkgs/os-specific/linux/nvidia-x11/generic.nix +++ /dev/null @@ -1,249 +0,0 @@ -{ version -, url ? null -, sha256_32bit ? null -, sha256_64bit -, sha256_aarch64 ? null -, openSha256 ? null -, settingsSha256 ? null -, settingsVersion ? version -, persistencedSha256 ? null -, persistencedVersion ? version -, fabricmanagerSha256 ? null -, fabricmanagerVersion ? version -, useGLVND ? true -, useProfiles ? true -, preferGtk2 ? false -, settings32Bit ? false -, useSettings ? true -, usePersistenced ? true -, useFabricmanager ? false -, ibtSupport ? false - -, prePatch ? null -, postPatch ? null -, patchFlags ? null -, patches ? [ ] -, preInstall ? null -, postInstall ? null -, broken ? false -, brokenOpen ? broken -}@args: - -{ lib -, stdenv -, callPackage -, pkgs -, pkgsi686Linux -, fetchurl -, fetchzip -, kernel ? null -, perl -, nukeReferences -, which -, libarchive -, # Whether to build the libraries only (i.e. not the kernel module or - # nvidia-settings). Used to support 32-bit binaries on 64-bit - # Linux. - libsOnly ? false -, # don't include the bundled 32-bit libraries on 64-bit platforms, - # even if it’s in downloaded binary - disable32Bit ? stdenv.hostPlatform.system == "aarch64-linux" - # 32 bit libs only version of this package -, lib32 ? null - # Whether to extract the GSP firmware, datacenter drivers needs to extract the - # firmware -, firmware ? openSha256 != null || useFabricmanager - # Whether the user accepts the NVIDIA Software License -, config -, acceptLicense ? config.nvidia.acceptLicense or false -}: - -with lib; - -assert !libsOnly -> kernel != null; -assert versionOlder version "391" -> sha256_32bit != null; -assert useSettings -> settingsSha256 != null; -assert usePersistenced -> persistencedSha256 != null; -assert useFabricmanager -> fabricmanagerSha256 != null; -assert useFabricmanager -> !useSettings; - -let - nameSuffix = optionalString (!libsOnly) "-${kernel.version}"; - pkgSuffix = optionalString (versionOlder version "304") "-pkg0"; - i686bundled = versionAtLeast version "391" && !disable32Bit; - - libPathFor = pkgs: lib.makeLibraryPath (with pkgs; [ - libdrm - xorg.libXext - xorg.libX11 - xorg.libXv - xorg.libXrandr - xorg.libxcb - zlib - stdenv.cc.cc - wayland - mesa - libGL - openssl - dbus # for nvidia-powerd - ]); - - # maybe silly since we've ignored this previously and just unfree.. - throwLicense = throw '' - Use of NVIDIA Software requires license acceptance of the license: - - - License For Customer Use of NVIDIA Software [1] - - You can express acceptance by setting acceptLicense to true your nixpkgs.config. - Example: - - configuration.nix: - nixpkgs.config.allowUnfree = true; - nixpkgs.config.nvidia.acceptLicense = true; - - config.nix: - allowUnfree = true; - nvidia.acceptLicense = true; - - [1]: https://www.nvidia.com/content/DriverDownloads/licence.php?lang=us - ''; - - self = stdenv.mkDerivation { - name = "nvidia-${if useFabricmanager then "dc" else "x11"}-${version}${nameSuffix}"; - - builder = ./builder.sh; - - src = - if !acceptLicense && (openSha256 == null) then throwLicense else - if stdenv.hostPlatform.system == "x86_64-linux" then - fetchurl - { - urls = if args ? url then [ args.url ] else [ - "https://us.download.nvidia.com/XFree86/Linux-x86_64/${version}/NVIDIA-Linux-x86_64-${version}${pkgSuffix}.run" - "https://download.nvidia.com/XFree86/Linux-x86_64/${version}/NVIDIA-Linux-x86_64-${version}${pkgSuffix}.run" - ]; - sha256 = sha256_64bit; - } - else if stdenv.hostPlatform.system == "i686-linux" then - fetchurl - { - urls = if args ? url then [ args.url ] else [ - "https://us.download.nvidia.com/XFree86/Linux-x86/${version}/NVIDIA-Linux-x86-${version}${pkgSuffix}.run" - "https://download.nvidia.com/XFree86/Linux-x86/${version}/NVIDIA-Linux-x86-${version}${pkgSuffix}.run" - ]; - sha256 = sha256_32bit; - } - else if stdenv.hostPlatform.system == "aarch64-linux" && sha256_aarch64 != null then - fetchurl - { - urls = if args ? url then [ args.url ] else [ - "https://us.download.nvidia.com/XFree86/aarch64/${version}/NVIDIA-Linux-aarch64-${version}${pkgSuffix}.run" - "https://download.nvidia.com/XFree86/Linux-aarch64/${version}/NVIDIA-Linux-aarch64-${version}${pkgSuffix}.run" - ]; - sha256 = sha256_aarch64; - } - else throw "nvidia-x11 does not support platform ${stdenv.hostPlatform.system}"; - - patches = if libsOnly then null else patches; - inherit prePatch postPatch patchFlags; - inherit preInstall postInstall; - inherit version useGLVND useProfiles; - inherit (stdenv.hostPlatform) system; - inherit i686bundled; - - outputs = [ "out" ] - ++ optional i686bundled "lib32" - ++ optional (!libsOnly) "bin" - ++ optional (!libsOnly && firmware) "firmware"; - outputDev = if libsOnly then null else "bin"; - - kernel = if libsOnly then null else kernel.dev; - kernelVersion = if libsOnly then null else kernel.modDirVersion; - - makeFlags = optionals (!libsOnly) (kernel.makeFlags ++ [ - "IGNORE_PREEMPT_RT_PRESENCE=1" - "NV_BUILD_SUPPORTS_HMM=1" - "SYSSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source" - "SYSOUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]); - - hardeningDisable = [ "pic" "format" ]; - - dontStrip = true; - dontPatchELF = true; - - libPath = libPathFor pkgs; - libPath32 = optionalString i686bundled (libPathFor pkgsi686Linux); - - nativeBuildInputs = [ perl nukeReferences which libarchive ] - ++ optionals (!libsOnly) kernel.moduleBuildDependencies; - - disallowedReferences = optionals (!libsOnly) [ kernel.dev ]; - - passthru = - let - fetchFromGithubOrNvidia = { owner, repo, rev, ... }@args: - let - args' = builtins.removeAttrs args [ "owner" "repo" "rev" ]; - baseUrl = "https://github.com/${owner}/${repo}"; - in - fetchzip (args' // { - urls = [ - "${baseUrl}/archive/${rev}.tar.gz" - "https://download.nvidia.com/XFree86/${repo}/${repo}-${rev}.tar.bz2" - ]; - # github and nvidia use different compression algorithms, - # use an invalid file extension to force detection. - extension = "tar.??"; - }); - in - { - open = mapNullable - (hash: callPackage ./open.nix { - inherit hash; - nvidia_x11 = self; - broken = brokenOpen; - }) - openSha256; - settings = - if useSettings then - (if settings32Bit then pkgsi686Linux.callPackage else callPackage) (import ./settings.nix self settingsSha256) - { - withGtk2 = preferGtk2; - withGtk3 = !preferGtk2; - fetchFromGitHub = fetchFromGithubOrNvidia; - } else { }; - persistenced = - if usePersistenced then - mapNullable - (hash: callPackage (import ./persistenced.nix self hash) { - fetchFromGitHub = fetchFromGithubOrNvidia; - }) - persistencedSha256 - else { }; - fabricmanager = - if useFabricmanager then - mapNullable (hash: callPackage (import ./fabricmanager.nix self hash) { }) fabricmanagerSha256 - else { }; - inherit persistencedVersion settingsVersion; - compressFirmware = false; - ibtSupport = ibtSupport || (lib.versionAtLeast version "530"); - } // optionalAttrs (!i686bundled) { - inherit lib32; - }; - - meta = with lib; { - homepage = "https://www.nvidia.com/object/unix.html"; - description = "${if useFabricmanager then "Data Center" else "X.org"} driver and kernel module for NVIDIA cards"; - license = licenses.unfreeRedistributable; - platforms = [ "x86_64-linux" ] - ++ optionals (sha256_32bit != null) [ "i686-linux" ] - ++ optionals (sha256_aarch64 != null) [ "aarch64-linux" ]; - maintainers = with maintainers; [ jonringer kiskae edwtjo ]; - priority = 4; # resolves collision with xorg-server's "lib/xorg/modules/extensions/libglx.so" - inherit broken; - }; - }; - -in -self diff --git a/pkgs/os-specific/linux/nvidia-x11/open.nix b/pkgs/os-specific/linux/nvidia-x11/open.nix deleted file mode 100644 index a6795c3fd5e7..000000000000 --- a/pkgs/os-specific/linux/nvidia-x11/open.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, kernel -, nvidia_x11 -, hash -, broken ? false -}: - -stdenv.mkDerivation ({ - pname = "nvidia-open"; - version = "${kernel.version}-${nvidia_x11.version}"; - - src = fetchFromGitHub { - owner = "NVIDIA"; - repo = "open-gpu-kernel-modules"; - rev = nvidia_x11.version; - inherit hash; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "SYSSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source" - "SYSOUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "MODLIB=$(out)/lib/modules/${kernel.modDirVersion}" - { - aarch64-linux = "TARGET_ARCH=aarch64"; - x86_64-linux = "TARGET_ARCH=x86_64"; - }.${stdenv.hostPlatform.system} - ]; - - installTargets = [ "modules_install" ]; - enableParallelBuilding = true; - - meta = with lib; { - description = "NVIDIA Linux Open GPU Kernel Module"; - homepage = "https://github.com/NVIDIA/open-gpu-kernel-modules"; - license = with licenses; [ gpl2Plus mit ]; - platforms = [ "x86_64-linux" "aarch64-linux" ]; - maintainers = with maintainers; [ nickcao ]; - inherit broken; - }; -} // lib.optionalAttrs stdenv.hostPlatform.isAarch64 { - env.NIX_CFLAGS_COMPILE = "-fno-stack-protector"; -}) diff --git a/pkgs/os-specific/linux/nvidia-x11/persistenced.nix b/pkgs/os-specific/linux/nvidia-x11/persistenced.nix deleted file mode 100644 index dcdd22044e2a..000000000000 --- a/pkgs/os-specific/linux/nvidia-x11/persistenced.nix +++ /dev/null @@ -1,49 +0,0 @@ -nvidia_x11: sha256: - -{ stdenv -, lib -, fetchFromGitHub -, m4 -, libtirpc -}: - -stdenv.mkDerivation rec { - pname = "nvidia-persistenced"; - version = nvidia_x11.persistencedVersion; - - src = fetchFromGitHub { - owner = "NVIDIA"; - repo = "nvidia-persistenced"; - rev = nvidia_x11.persistencedVersion; - inherit sha256; - }; - - nativeBuildInputs = [ m4 ]; - buildInputs = [ libtirpc ]; - - inherit (nvidia_x11) makeFlags; - - installFlags = [ "PREFIX=$(out)" ]; - - postFixup = '' - # Save a copy of persistenced for mounting in containers - mkdir $out/origBin - cp $out/{bin,origBin}/nvidia-persistenced - patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 $out/origBin/nvidia-persistenced - - patchelf --set-rpath "$(patchelf --print-rpath $out/bin/nvidia-persistenced):${nvidia_x11}/lib" \ - $out/bin/nvidia-persistenced - ''; - - env.NIX_CFLAGS_COMPILE = toString [ "-I${libtirpc.dev}/include/tirpc" ]; - NIX_LDFLAGS = [ "-ltirpc" ]; - - meta = with lib; { - homepage = "https://www.nvidia.com/object/unix.html"; - description = "Settings application for NVIDIA graphics cards"; - license = licenses.unfreeRedistributable; - platforms = nvidia_x11.meta.platforms; - maintainers = with maintainers; [ abbradar ]; - mainProgram = "nvidia-persistenced"; - }; -} diff --git a/pkgs/os-specific/linux/nvidia-x11/settings.nix b/pkgs/os-specific/linux/nvidia-x11/settings.nix deleted file mode 100644 index b11dc06c85eb..000000000000 --- a/pkgs/os-specific/linux/nvidia-x11/settings.nix +++ /dev/null @@ -1,143 +0,0 @@ -nvidia_x11: sha256: - -{ stdenv -, lib -, fetchFromGitHub -, fetchpatch -, pkg-config -, m4 -, jansson -, gtk2 -, dbus -, gtk3 -, libXv -, libXrandr -, libXext -, libXxf86vm -, libvdpau -, librsvg -, wrapGAppsHook -, addOpenGLRunpath -, withGtk2 ? false -, withGtk3 ? true -}: - -let - src = fetchFromGitHub { - owner = "NVIDIA"; - repo = "nvidia-settings"; - rev = nvidia_x11.settingsVersion; - inherit sha256; - }; - - libXNVCtrl = stdenv.mkDerivation { - pname = "libXNVCtrl"; - version = nvidia_x11.settingsVersion; - inherit src; - - buildInputs = [ libXrandr libXext ]; - - preBuild = '' - cd src/libXNVCtrl - ''; - - makeFlags = [ - "OUTPUTDIR=." # src/libXNVCtrl - ]; - - installPhase = '' - mkdir -p $out/lib - mkdir -p $out/include/NVCtrl - - cp libXNVCtrl.a $out/lib - cp NVCtrl.h $out/include/NVCtrl - cp NVCtrlLib.h $out/include/NVCtrl - ''; - }; - -in - -stdenv.mkDerivation { - pname = "nvidia-settings"; - version = nvidia_x11.settingsVersion; - - inherit src; - - patches = lib.optional (lib.versionOlder nvidia_x11.settingsVersion "440") - (fetchpatch { - # fixes "multiple definition of `VDPAUDeviceFunctions'" linking errors - url = "https://github.com/NVIDIA/nvidia-settings/commit/a7c1f5fce6303a643fadff7d85d59934bd0cf6b6.patch"; - hash = "sha256-ZwF3dRTYt/hO8ELg9weoz1U/XcU93qiJL2d1aq1Jlak="; - }) - ++ lib.optional - ((lib.versionAtLeast nvidia_x11.settingsVersion "515.43.04") - && (lib.versionOlder nvidia_x11.settingsVersion "545.29")) - (fetchpatch { - # fix wayland support for compositors that use wl_output version 4 - url = "https://github.com/NVIDIA/nvidia-settings/pull/99/commits/2e0575197e2b3247deafd2a48f45afc038939a06.patch"; - hash = "sha256-wKuO5CUTUuwYvsP46Pz+6fI0yxLNpZv8qlbL0TFkEFE="; - }); - - postPatch = lib.optionalString nvidia_x11.useProfiles '' - sed -i 's,/usr/share/nvidia/,${nvidia_x11.bin}/share/nvidia/,g' src/gtk+-2.x/ctkappprofile.c - ''; - - enableParallelBuilding = true; - makeFlags = [ "NV_USE_BUNDLED_LIBJANSSON=0" ]; - - preBuild = '' - if [ -e src/libXNVCtrl/libXNVCtrl.a ]; then - ( cd src/libXNVCtrl - make $makeFlags - ) - fi - ''; - - nativeBuildInputs = [ pkg-config m4 addOpenGLRunpath ]; - - buildInputs = [ jansson libXv libXrandr libXext libXxf86vm libvdpau nvidia_x11 gtk2 dbus ] - ++ lib.optionals withGtk3 [ gtk3 librsvg wrapGAppsHook ]; - - installFlags = [ "PREFIX=$(out)" ]; - - postInstall = '' - ${lib.optionalString (!withGtk2) '' - rm -f $out/lib/libnvidia-gtk2.so.* - ''} - ${lib.optionalString (!withGtk3) '' - rm -f $out/lib/libnvidia-gtk3.so.* - ''} - - # Install the desktop file and icon. - # The template has substitution variables intended to be replaced resulting - # in absolute paths. Because absolute paths break after the desktop file is - # copied by a desktop environment, make Exec and Icon be just a name. - sed -i doc/nvidia-settings.desktop \ - -e "s|^Exec=.*$|Exec=nvidia-settings|" \ - -e "s|^Icon=.*$|Icon=nvidia-settings|" \ - -e "s|__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__|Settings|g" - install doc/nvidia-settings.desktop -D -t $out/share/applications/ - install doc/nvidia-settings.png -D -t $out/share/icons/hicolor/128x128/apps/ - ''; - - binaryName = if withGtk3 then ".nvidia-settings-wrapped" else "nvidia-settings"; - postFixup = '' - patchelf --set-rpath "$(patchelf --print-rpath $out/bin/$binaryName):$out/lib:${libXv}/lib" \ - $out/bin/$binaryName - - addOpenGLRunpath $out/bin/$binaryName - ''; - - passthru = { - inherit libXNVCtrl; - }; - - meta = with lib; { - homepage = "https://www.nvidia.com/object/unix.html"; - description = "Settings application for NVIDIA graphics cards"; - license = licenses.unfreeRedistributable; - platforms = nvidia_x11.meta.platforms; - mainProgram = "nvidia-settings"; - maintainers = with maintainers; [ abbradar ]; - }; -} diff --git a/pkgs/os-specific/linux/nvidiabl/default.nix b/pkgs/os-specific/linux/nvidiabl/default.nix deleted file mode 100644 index 0f4d485a4edc..000000000000 --- a/pkgs/os-specific/linux/nvidiabl/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - name = "nvidiabl-${version}-${kernel.version}"; - version = "2020-10-01"; - - # We use a fork which adds support for newer kernels -- upstream has been abandoned. - src = fetchFromGitHub { - owner = "yorickvP"; - repo = "nvidiabl"; - rev = "9e21bdcb7efedf29450373a2e9ff2913d1b5e3ab"; - sha256 = "1z57gbnayjid2jv782rpfpp13qdchmbr1vr35g995jfnj624nlgy"; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - preConfigure = '' - sed -i 's|/sbin/depmod|#/sbin/depmod|' Makefile - ''; - - makeFlags = [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "DESTDIR=$(out)" - "KVER=${kernel.modDirVersion}" - ]; - - meta = with lib; { - description = "Linux driver for setting the backlight brightness on laptops using NVIDIA GPU"; - homepage = "https://github.com/yorickvP/nvidiabl"; - license = licenses.gpl2; - platforms = [ "x86_64-linux" "i686-linux" ]; - maintainers = with maintainers; [ yorickvp ]; - broken = kernel.kernelAtLeast "5.18"; - }; -} diff --git a/pkgs/os-specific/linux/nvme-cli/default.nix b/pkgs/os-specific/linux/nvme-cli/default.nix deleted file mode 100644 index d909e331871b..000000000000 --- a/pkgs/os-specific/linux/nvme-cli/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config -, meson -, ninja -, libnvme -, json_c -, zlib -, python3Packages -}: - -stdenv.mkDerivation rec { - pname = "nvme-cli"; - version = "2.7.1"; - - src = fetchFromGitHub { - owner = "linux-nvme"; - repo = "nvme-cli"; - rev = "v${version}"; - hash = "sha256-Gm+1tb/Nh+Yg2PgSUn/1hR4CZYnfTWRwcQU0A8UeQwI="; - }; - - mesonFlags = [ - "-Dversion-tag=${version}" - ]; - - nativeBuildInputs = [ - meson - ninja - pkg-config - python3Packages.nose2 - ]; - buildInputs = [ - libnvme - json_c - zlib - ]; - - meta = with lib; { - inherit (src.meta) homepage; # https://nvmexpress.org/ - description = "NVM-Express user space tooling for Linux"; - longDescription = '' - NVM-Express is a fast, scalable host controller interface designed to - address the needs for not only PCI Express based solid state drives, but - also NVMe-oF(over fabrics). - This nvme program is a user space utility to provide standards compliant - tooling for NVM-Express drives. It was made specifically for Linux as it - relies on the IOCTLs defined by the mainline kernel driver. - ''; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ mic92 vifino ]; - mainProgram = "nvme"; - }; -} diff --git a/pkgs/os-specific/linux/nvmet-cli/default.nix b/pkgs/os-specific/linux/nvmet-cli/default.nix deleted file mode 100644 index eafa8501cdb7..000000000000 --- a/pkgs/os-specific/linux/nvmet-cli/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, python3Packages, fetchurl }: - -python3Packages.buildPythonApplication rec { - pname = "nvmet-cli"; - version = "0.7"; - - src = fetchurl { - url = "ftp://ftp.infradead.org/pub/nvmetcli/nvmetcli-${version}.tar.gz"; - sha256 = "051y1b9w46azy35118154c353v3mhjkdzh6h59brdgn5054hayj2"; - }; - - buildInputs = with python3Packages; [ nose2 ]; - - propagatedBuildInputs = with python3Packages; [ configshell ]; - - # This package requires the `nvmet` kernel module to be loaded for tests. - doCheck = false; - - meta = with lib; { - description = "NVMe target CLI"; - mainProgram = "nvmetcli"; - license = licenses.asl20; - platforms = platforms.linux; - maintainers = with maintainers; [ hoverbear ]; - }; -} diff --git a/pkgs/os-specific/linux/ocf-resource-agents/default.nix b/pkgs/os-specific/linux/ocf-resource-agents/default.nix deleted file mode 100644 index 6c0157bb6cbb..000000000000 --- a/pkgs/os-specific/linux/ocf-resource-agents/default.nix +++ /dev/null @@ -1,89 +0,0 @@ -# This combines together OCF definitions from other derivations. -# https://github.com/ClusterLabs/resource-agents/blob/master/doc/dev-guides/ra-dev-guide.asc -{ stdenv -, lib -, runCommand -, lndir -, fetchFromGitHub -, fetchpatch -, autoreconfHook -, pkg-config -, python3 -, glib -, drbd -, pacemaker -}: - -let - drbdForOCF = drbd.override { - forOCF = true; - }; - pacemakerForOCF = pacemaker.override { - forOCF = true; - }; - - resource-agentsForOCF = stdenv.mkDerivation rec { - pname = "resource-agents"; - version = "4.10.0"; - - src = fetchFromGitHub { - owner = "ClusterLabs"; - repo = pname; - rev = "v${version}"; - sha256 = "0haryi3yrszdfpqnkfnppxj1yiy6ipah6m80snvayc7v0ss0wnir"; - }; - - patches = [ - # autoconf-2.72 upstream fix: - # https://github.com/ClusterLabs/resource-agents/pull/1908 - (fetchpatch { - name = "autoconf-2.72.patch"; - url = "https://github.com/ClusterLabs/resource-agents/commit/bac658711a61fd704e792e2a0a45a2137213c442.patch"; - hash = "sha256-Xq7W8pMRmFZmkqb2430bY5zdmVTrUrob6GwGiN6/bKY="; - }) - ]; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - - buildInputs = [ - glib - python3 - ]; - - env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12") [ - # Needed with GCC 12 but breaks on darwin (with clang) or older gcc - "-Wno-error=maybe-uninitialized" - ]); - - meta = with lib; { - homepage = "https://github.com/ClusterLabs/resource-agents"; - description = "Combined repository of OCF agents from the RHCS and Linux-HA projects"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ ryantm astro ]; - }; - }; - -in - -# This combines together OCF definitions from other derivations. -# https://github.com/ClusterLabs/resource-agents/blob/master/doc/dev-guides/ra-dev-guide.asc -runCommand "ocf-resource-agents" { - # Fix derivation location so things like - # $ nix edit -f. ocf-resource-agents - # just work. - pos = builtins.unsafeGetAttrPos "version" resource-agentsForOCF; - - # Useful to build and undate inputs individually: - passthru.inputs = { - inherit resource-agentsForOCF drbdForOCF pacemakerForOCF; - }; -} '' - mkdir -p $out/usr/lib/ocf - ${lndir}/bin/lndir -silent "${resource-agentsForOCF}/lib/ocf/" $out/usr/lib/ocf - ${lndir}/bin/lndir -silent "${drbdForOCF}/usr/lib/ocf/" $out/usr/lib/ocf - ${lndir}/bin/lndir -silent "${pacemakerForOCF}/usr/lib/ocf/" $out/usr/lib/ocf -'' diff --git a/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix b/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix deleted file mode 100644 index 4f499197fbfd..000000000000 --- a/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib -, buildGoModule -, fetchFromGitHub -, go-md2man -, installShellFiles -, pkg-config -, bcc -, libseccomp -}: - -buildGoModule rec { - pname = "oci-seccomp-bpf-hook"; - version = "1.2.10"; - src = fetchFromGitHub { - owner = "containers"; - repo = "oci-seccomp-bpf-hook"; - rev = "v${version}"; - sha256 = "sha256-bWlm+JYNf7+faKSQfW5fhxoH/D2I8ujjakswH+1r49o="; - }; - vendorHash = null; - - outputs = [ "out" "man" ]; - nativeBuildInputs = [ - go-md2man - installShellFiles - pkg-config - ]; - buildInputs = [ - bcc - libseccomp - ]; - - checkPhase = '' - go test -v ./... - ''; - - buildPhase = '' - make - ''; - - postBuild = '' - substituteInPlace oci-seccomp-bpf-hook.json --replace HOOK_BIN_DIR "$out/bin" - ''; - - installPhase = '' - install -Dm755 bin/* -t $out/bin - install -Dm644 oci-seccomp-bpf-hook.json -t $out - installManPage docs/*.[1-9] - ''; - - meta = with lib; { - homepage = "https://github.com/containers/oci-seccomp-bpf-hook"; - description = '' - OCI hook to trace syscalls and generate a seccomp profile - ''; - mainProgram = "oci-seccomp-bpf-hook"; - license = licenses.asl20; - maintainers = with maintainers; [ saschagrunert ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/oddjob/default.nix b/pkgs/os-specific/linux/oddjob/default.nix deleted file mode 100644 index 1ade48c89697..000000000000 --- a/pkgs/os-specific/linux/oddjob/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ - autoreconfHook, - dbus, - fetchpatch, - fetchurl, - lib, - libxml2, - nixosTests, - pam, - pkg-config, - stdenv, - systemd, -}: - -stdenv.mkDerivation rec { - pname = "oddjob"; - version = "0.34.7"; - - src = fetchurl { - url = "https://pagure.io/oddjob/archive/${pname}-${version}/oddjob-${pname}-${version}.tar.gz"; - hash = "sha256-SUOsMH55HtEsk5rX0CXK0apDObTj738FGOaL5xZRnIM="; - }; - - patches = [ - # Define SystemD service location using `with-systemdsystemunitdir` configure flag - (fetchpatch { - url = "https://pagure.io/oddjob/c/f63287a35107385dcb6e04a4c742077c9d1eab86.patch"; - hash = "sha256-2mmw4pJhrIk4/47FM8zKH0dTQJWnntHPNmq8VAUWqJI="; - }) - ]; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - - buildInputs = [ - dbus - libxml2 - pam - systemd - ]; - - configureFlags = [ - "--prefix=${placeholder "out"}" - "--sysconfdir=${placeholder "out"}/etc" - "--with-selinux-acls=no" - "--with-selinux-labels=no" - "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" - ]; - - postConfigure = '' - substituteInPlace src/oddjobd.c \ - --replace "globals.selinux_enabled" "FALSE" - ''; - - # Requires a dbus-daemon environment - doCheck = false; - - passthru.tests = { - inherit (nixosTests) oddjobd; - }; - - meta = { - changelog = "https://pagure.io/oddjob/blob/oddjob-${version}/f/ChangeLog"; - description = "Odd Job Daemon"; - homepage = "https://pagure.io/oddjob"; - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ SohamG ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/odp-dpdk/default.nix b/pkgs/os-specific/linux/odp-dpdk/default.nix deleted file mode 100644 index d48a87216d46..000000000000 --- a/pkgs/os-specific/linux/odp-dpdk/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, pkg-config -, dpdk -, libbpf -, libconfig -, libpcap -, numactl -, openssl -, zlib -, zstd -, libbsd -, elfutils -, jansson -, libnl -}: - -stdenv.mkDerivation rec { - pname = "odp-dpdk"; - version = "1.44.0.0_DPDK_22.11"; - - src = fetchFromGitHub { - owner = "OpenDataPlane"; - repo = "odp-dpdk"; - rev = "v${version}"; - hash = "sha256-hYtQ7kKB08BImkTYXqtnv1Ny1SUPCs6GX7WOYks8iKA="; - }; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - ]; - - buildInputs = [ - dpdk - libconfig - libpcap - numactl - openssl - zlib - zstd - libbsd - elfutils - jansson - libbpf - libnl - ]; - - # binaries will segfault otherwise - dontStrip = true; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Open Data Plane optimized for DPDK"; - homepage = "https://www.opendataplane.org"; - license = licenses.bsd3; - platforms = platforms.linux; - maintainers = [ maintainers.abuibrahim ]; - }; -} diff --git a/pkgs/os-specific/linux/open-iscsi/default.nix b/pkgs/os-specific/linux/open-iscsi/default.nix deleted file mode 100644 index 9306099213a9..000000000000 --- a/pkgs/os-specific/linux/open-iscsi/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, meson -, pkg-config -, ninja -, perl -, util-linux -, open-isns -, openssl -, kmod -, systemd -, runtimeShell -, nixosTests }: - -stdenv.mkDerivation rec { - pname = "open-iscsi"; - version = "2.1.9"; - - src = fetchFromGitHub { - owner = "open-iscsi"; - repo = "open-iscsi"; - rev = version; - hash = "sha256-y0NIb/KsKpCd8byr/SXI7nwTKXP2/bSSoW8QgeL5xdc="; - }; - - nativeBuildInputs = [ - meson - pkg-config - ninja - perl - ]; - buildInputs = [ - kmod - (lib.getLib open-isns) - openssl - systemd - util-linux - ]; - - preConfigure = '' - patchShebangs . - ''; - - prePatch = '' - substituteInPlace etc/systemd/iscsi-init.service.template \ - --replace /usr/bin/sh ${runtimeShell} - sed -i '/install_dir: db_root/d' meson.build - ''; - - mesonFlags = [ - "-Discsi_sbindir=${placeholder "out"}/sbin" - "-Drulesdir=${placeholder "out"}/etc/udev/rules.d" - "-Dsystemddir=${placeholder "out"}/lib/systemd" - "-Ddbroot=/etc/iscsi" - ]; - - passthru.tests = { inherit (nixosTests) iscsi-root; }; - - meta = with lib; { - description = "A high performance, transport independent, multi-platform implementation of RFC3720"; - license = licenses.gpl2Plus; - homepage = "https://www.open-iscsi.com"; - platforms = platforms.linux; - maintainers = with maintainers; [ cleverca22 zaninime ]; - }; -} diff --git a/pkgs/os-specific/linux/open-isns/default.nix b/pkgs/os-specific/linux/open-isns/default.nix deleted file mode 100644 index 7afe13eea86a..000000000000 --- a/pkgs/os-specific/linux/open-isns/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv, openssl, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "open-isns"; - version = "0.102"; - - src = fetchFromGitHub { - owner = "open-iscsi"; - repo = "open-isns"; - rev = "v${version}"; - sha256 = "sha256-Vz6VqqvEr0f8AdN9NcVnruapswmoOgvAXxXSfrM3yRA="; - }; - - propagatedBuildInputs = [ openssl ]; - outputs = [ "out" "lib" ]; - outputInclude = "lib"; - - configureFlags = [ "--enable-shared" ]; - - installFlags = [ "etcdir=$(out)/etc" "vardir=$(out)/var/lib/isns" ]; - installTargets = [ "install" "install_hdrs" "install_lib" ]; - - meta = with lib; { - description = "iSNS server and client for Linux"; - license = licenses.lgpl21Only; - homepage = "https://github.com/open-iscsi/open-isns"; - platforms = platforms.linux; - maintainers = [ maintainers.markuskowa ]; - }; -} diff --git a/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh b/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh deleted file mode 100644 index ed2c60da2612..000000000000 --- a/pkgs/os-specific/linux/opengl/xorg-sys/builder.sh +++ /dev/null @@ -1,17 +0,0 @@ -if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi -source $stdenv/setup - -mkdir -p $out/lib - -ln -s /usr/lib/libGL.so.1 $out/lib/ -ln -s /usr/lib/libGLU.so.1 $out/lib/ -ln -s /usr/lib/libGLcore.so.1 $out/lib/ -ln -s /usr/lib/tls/libnvidia-tls.so.1 $out/lib/ -#ln -s /usr/lib/libdrm.so.2 $out/lib/ - -for i in $neededLibs; do - ln -s $i/lib/*.so* $out/lib/ -done - - - diff --git a/pkgs/os-specific/linux/opengl/xorg-sys/default.nix b/pkgs/os-specific/linux/opengl/xorg-sys/default.nix deleted file mode 100644 index b7f1b6574404..000000000000 --- a/pkgs/os-specific/linux/opengl/xorg-sys/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -# This is a very dirty hack to allow hardware acceleration of OpenGL -# applications for most (?) users. It will use the driver that your -# Linux distribution installed in /usr/lib/libGL.so.1. Hopefully, -# this driver uses hardware acceleration. -# -# Of course, use of the driver in /usr/lib is highly impure. But it -# might actually work ;-) - -{lib, stdenv, xorg, expat, libdrm}: - -stdenv.mkDerivation { - pname = "xorg-sys-opengl"; - version = "3"; - builder = ./builder.sh; - neededLibs = map (p: p.out) - [xorg.libXxf86vm xorg.libXext expat libdrm stdenv.cc.cc]; - - meta = { - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/openrazer/driver.nix b/pkgs/os-specific/linux/openrazer/driver.nix deleted file mode 100644 index a2116797824c..000000000000 --- a/pkgs/os-specific/linux/openrazer/driver.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ coreutils -, fetchFromGitHub -, kernel -, stdenv -, lib -, util-linux -}: - -let - common = import ../../../development/python-modules/openrazer/common.nix { inherit lib fetchFromGitHub; }; -in -stdenv.mkDerivation (common // { - pname = "openrazer"; - version = "${common.version}-${kernel.version}"; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - runHook preInstall - - binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid" - mkdir -p "$binDir" - cp -v driver/*.ko "$binDir" - RAZER_MOUNT_OUT="$out/bin/razer_mount" - RAZER_RULES_OUT="$out/etc/udev/rules.d/99-razer.rules" - install -m 644 -v -D install_files/udev/99-razer.rules $RAZER_RULES_OUT - install -m 755 -v -D install_files/udev/razer_mount $RAZER_MOUNT_OUT - substituteInPlace $RAZER_RULES_OUT \ - --replace razer_mount $RAZER_MOUNT_OUT \ - --replace plugdev openrazer - substituteInPlace $RAZER_MOUNT_OUT \ - --replace /usr/bin/logger ${util-linux}/bin/logger \ - --replace chgrp ${coreutils}/bin/chgrp \ - --replace "PATH='/sbin:/bin:/usr/sbin:/usr/bin'" "" \ - --replace plugdev openrazer - - runHook postInstall - ''; - - enableParallelBuilding = true; - - meta = common.meta // { - description = "An entirely open source Linux driver that allows you to manage your Razer peripherals on GNU/Linux"; - mainProgram = "razer_mount"; - broken = kernel.kernelOlder "4.19"; - }; -}) diff --git a/pkgs/os-specific/linux/opensnitch-ebpf/default.nix b/pkgs/os-specific/linux/opensnitch-ebpf/default.nix deleted file mode 100644 index e012819254d7..000000000000 --- a/pkgs/os-specific/linux/opensnitch-ebpf/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, kernel -, stdenv -, clang-tools -, llvmPackages -, elfutils -, flex -, bison -, bc -, opensnitch -}: - -stdenv.mkDerivation rec { - pname = "opensnitch_ebpf"; - version = "${opensnitch.version}-${kernel.version}"; - - inherit (opensnitch) src; - - sourceRoot = "${src.name}/ebpf_prog"; - - nativeBuildInputs = with llvmPackages; [ - bc - bison - clang - clang-tools - elfutils - flex - libllvm - ]; - - # We set -fno-stack-protector here to work around a clang regression. - # This is fine - bpf programs do not use stack protectors - # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=opensnitch-ebpf-module&id=984b952a784eb701f691dd9f2d45dfeb8d15053b - env.NIX_CFLAGS_COMPILE = "-fno-stack-protector"; - - env.KERNEL_DIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"; - env.KERNEL_HEADERS="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; - - extraConfig ='' - CONFIG_UPROBE_EVENTS=y - ''; - - installPhase = '' - runHook preInstall - for file in opensnitch*.o; do - install -Dm644 "$file" "$out/etc/opensnitchd/$file" - done - runHook postInstall - ''; - - meta = with lib; { - description = "eBPF process monitor module for OpenSnitch"; - homepage = "https://github.com/evilsocket/opensnitch"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ onny ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/otpw/default.nix b/pkgs/os-specific/linux/otpw/default.nix deleted file mode 100644 index 45d0b77906d3..000000000000 --- a/pkgs/os-specific/linux/otpw/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib -, stdenv -, coreutils -, fetchurl -, libxcrypt -, pam -, procps -, unixtools -, util-linux -}: - -stdenv.mkDerivation rec { - pname = "otpw"; - version = "1.5"; - - src = fetchurl { - url = "https://www.cl.cam.ac.uk/~mgk25/download/otpw-${version}.tar.gz"; - hash = "sha256-mKyjimHHcTZ3uW8kQmynBTSAwP0HfZGx6ZvJ+SzLgyo="; - }; - - patchPhase = '' - sed -i 's/^CFLAGS.*/CFLAGS=-O2 -fPIC/' Makefile - substituteInPlace otpw-gen.c \ - --replace "head -c 20 /dev/urandom 2>&1" "${coreutils}/bin/head -c 20 /dev/urandom 2>&1" \ - --replace "ls -lu /etc/. /tmp/. / /usr/. /bin/. /usr/bin/." "${coreutils}/bin/ls -lu /etc/. /tmp/. / /usr/. /bin/. /usr/bin/." \ - --replace "PATH=/usr/ucb:/bin:/usr/bin;ps lax" "PATH=/usr/ucb:/bin:/usr/bin;${unixtools.procps}/bin/ps lax" \ - --replace "last | head -50" "${util-linux}/bin/last | ${coreutils}/bin/head -50" \ - --replace "uptime;netstat -n;hostname;date;w" "${coreutils}/bin/uptime; ${unixtools.nettools}/bin/netstat -n; ${unixtools.nettools}/bin/hostname; ${coreutils}/bin/date; ${procps}/bin/w" - ''; - - buildInputs = [ - libxcrypt - pam - ]; - - installPhase = '' - mkdir -p $out/bin $out/lib/security $out/share/man/man{1,8} - cp pam_*.so $out/lib/security - cp otpw-gen $out/bin - cp *.1 $out/share/man/man1 - cp *.8 $out/share/man/man8 - ''; - - hardeningDisable = [ - "stackprotector" - ]; - - meta = with lib; { - description = "A one-time password login package"; - mainProgram = "otpw-gen"; - homepage = "http://www.cl.cam.ac.uk/~mgk25/otpw.html"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/oxtools/default.nix b/pkgs/os-specific/linux/oxtools/default.nix deleted file mode 100644 index c16e12ab5e14..000000000000 --- a/pkgs/os-specific/linux/oxtools/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchFromGitHub -, glibc, python3 -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "0xtools"; - version = "1.2.4"; - - src = fetchFromGitHub { - owner = "tanelpoder"; - repo = "0xtools"; - rev = "v${finalAttrs.version}"; - hash = "sha256-h0/HIbwb1CvFUh/NpozDUCjYGCH647lC7JhbpDCvaLk="; - }; - - postPatch = '' - substituteInPlace lib/0xtools/psnproc.py \ - --replace /usr/include/asm/unistd_64.h ${glibc.dev}/include/asm/unistd_64.h - ''; - - buildInputs = [ python3 ]; - - makeFlags = [ "PREFIX=${placeholder "out"}" ]; - - preInstall = '' - mkdir -p $out/bin - ''; - - meta = with lib; { - description = "Utilities for analyzing application performance"; - homepage = "https://0x.tools"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ astro ]; - platforms = [ "x86_64-linux" ]; - }; -}) diff --git a/pkgs/os-specific/linux/pagemon/default.nix b/pkgs/os-specific/linux/pagemon/default.nix deleted file mode 100644 index c05bd6183fc4..000000000000 --- a/pkgs/os-specific/linux/pagemon/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, ncurses }: - -stdenv.mkDerivation rec { - pname = "pagemon"; - version = "0.01.18"; - - src = fetchFromGitHub { - sha256 = "1aq1mq3k8n70h81s64w2zg4kksw1y05326bn4y8p94lpaypvxqfd"; - rev = "V${version}"; - repo = "pagemon"; - owner = "ColinIanKing"; - }; - - buildInputs = [ ncurses ]; - - makeFlags = [ - "BINDIR=$(out)/bin" - "MANDIR=$(out)/share/man/man8" - ]; - - meta = with lib; { - inherit (src.meta) homepage; - description = "Interactive memory/page monitor for Linux"; - mainProgram = "pagemon"; - longDescription = '' - pagemon is an ncurses based interactive memory/page monitoring tool - allowing one to browse the memory map of an active running process - on Linux. - pagemon reads the PTEs of a given process and display the soft/dirty - activity in real time. The tool identifies the type of memory mapping - a page belongs to, so one can easily scan through memory looking at - pages of memory belonging data, code, heap, stack, anonymous mappings - or even swapped-out pages. - ''; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix deleted file mode 100644 index 2b0c327fbc2e..000000000000 --- a/pkgs/os-specific/linux/pam/default.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ lib, stdenv, buildPackages, fetchurl, fetchpatch -, flex, cracklib, db4, gettext, audit, libxcrypt -, nixosTests -, autoreconfHook269, pkg-config-unwrapped -}: - -stdenv.mkDerivation rec { - pname = "linux-pam"; - version = "1.6.0"; - - src = fetchurl { - url = "https://github.com/linux-pam/linux-pam/releases/download/v${version}/Linux-PAM-${version}.tar.xz"; - hash = "sha256-//SjTlu+534ujxmS8nYx4jKby/igVj3etcM4m04xaa0="; - }; - - patches = [ - ./suid-wrapper-path.patch - - # Backport fix for missing include breaking musl builds. - (fetchpatch { - name = "pam_namespace-stdint.h.patch"; - url = "https://github.com/linux-pam/linux-pam/commit/cc9d40b7cdbd3e15ccaa324a0dda1680ef9dea13.patch"; - hash = "sha256-tCnH2yPO4dBbJOZA0fP2gm1EavHRMEJyfzB5Vy7YjAA="; - }) - - # Resotre handling of empty passwords: - # https://github.com/linux-pam/linux-pam/pull/784 - # TODO: drop upstreamed patch on 1.6.1 update. - (fetchpatch { - name = "revert-unconditional-helper.patch"; - url = "https://github.com/linux-pam/linux-pam/commit/8d0c575336ad301cd14e16ad2fdec6fe621764b8.patch"; - hash = "sha256-z9KfMxxqXQVnmNaixaVjLnQqaGsH8MBHhHbiP/8fvhE="; - }) - ]; - - # Case-insensitivity workaround for https://github.com/linux-pam/linux-pam/issues/569 - postPatch = if stdenv.buildPlatform.isDarwin && stdenv.buildPlatform != stdenv.hostPlatform then '' - rm CHANGELOG - touch ChangeLog - '' else null; - - outputs = [ "out" "doc" "man" /* "modules" */ ]; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - # autoreconfHook269 is needed for `suid-wrapper-path.patch` above. - # pkg-config-unwrapped is needed for `AC_CHECK_LIB` and `AC_SEARCH_LIBS` - nativeBuildInputs = [ flex autoreconfHook269 pkg-config-unwrapped ] - ++ lib.optional stdenv.buildPlatform.isDarwin gettext; - - buildInputs = [ cracklib db4 libxcrypt ] - ++ lib.optional stdenv.buildPlatform.isLinux audit; - - enableParallelBuilding = true; - - preConfigure = lib.optionalString (stdenv.hostPlatform.libc == "musl") '' - # export ac_cv_search_crypt=no - # (taken from Alpine linux, apparently insecure but also doesn't build O:)) - # disable insecure modules - # sed -e 's/pam_rhosts//g' -i modules/Makefile.am - sed -e 's/pam_rhosts//g' -i modules/Makefile.in - ''; - - configureFlags = [ - "--includedir=${placeholder "out"}/include/security" - "--enable-sconfigdir=/etc/security" - # The module is deprecated. We re-enable it explicitly until NixOS - # module stops using it. - "--enable-lastlog" - ]; - - installFlags = [ - "SCONFIGDIR=${placeholder "out"}/etc/security" - ]; - - doCheck = false; # fails - - passthru.tests = { - inherit (nixosTests) pam-oath-login pam-u2f shadow sssd-ldap; - }; - - meta = with lib; { - homepage = "http://www.linux-pam.org/"; - description = "Pluggable Authentication Modules, a flexible mechanism for authenticating user"; - platforms = platforms.linux; - license = licenses.bsd3; - }; -} diff --git a/pkgs/os-specific/linux/pam/suid-wrapper-path.patch b/pkgs/os-specific/linux/pam/suid-wrapper-path.patch deleted file mode 100644 index a427ccf38816..000000000000 --- a/pkgs/os-specific/linux/pam/suid-wrapper-path.patch +++ /dev/null @@ -1,6 +0,0 @@ -It needs the SUID version during runtime, and that can't be in /nix/store/** ---- a/modules/pam_unix/Makefile.am -+++ b/modules/pam_unix/Makefile.am -@@ -21 +21 @@ -- -DCHKPWD_HELPER=\"$(sbindir)/unix_chkpwd\" \ -+ -DCHKPWD_HELPER=\"/run/wrappers/bin/unix_chkpwd\" \ diff --git a/pkgs/os-specific/linux/pam_ccreds/default.nix b/pkgs/os-specific/linux/pam_ccreds/default.nix deleted file mode 100644 index 359636e74281..000000000000 --- a/pkgs/os-specific/linux/pam_ccreds/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{lib, stdenv, fetchurl, pam, openssl, db}: - -stdenv.mkDerivation rec { - pname = "pam_ccreds"; - version = "10"; - - src = fetchurl { - url = "https://www.padl.com/download/pam_ccreds-${version}.tar.gz"; - sha256 = "1h7zyg1b1h69civyvrj95w22dg0y7lgw3hq4gqkdcg35w1y76fhz"; - }; - patchPhase = '' - sed 's/-o root -g root//' -i Makefile.in - ''; - - buildInputs = [ pam openssl db ]; - - meta = with lib; { - homepage = "https://www.padl.com/OSS/pam_ccreds.html"; - description = "PAM module to locally authenticate using an enterprise identity when the network is unavailable"; - mainProgram = "ccreds_chkpwd"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pam_dp9ik/default.nix b/pkgs/os-specific/linux/pam_dp9ik/default.nix deleted file mode 100644 index bd097caee497..000000000000 --- a/pkgs/os-specific/linux/pam_dp9ik/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib -, tlsclient -, stdenv -, pkg-config -, pam -}: - -stdenv.mkDerivation { - inherit (tlsclient) src version enableParallelBuilding; - - pname = "pam_dp9ik"; - - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ pam ]; - - buildFlags = [ "pam_p9.so" ]; - installFlags = [ "PREFIX=$(out)" ]; - installTargets = "pam.install"; - - meta = with lib; { - description = "dp9ik pam module"; - longDescription = "Uses tlsclient to authenticate users against a 9front auth server"; - homepage = "https://git.sr.ht/~moody/tlsclient"; - license = licenses.mit; - maintainers = with maintainers; [ moody ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pam_gnupg/default.nix b/pkgs/os-specific/linux/pam_gnupg/default.nix deleted file mode 100644 index 1c54c42120ab..000000000000 --- a/pkgs/os-specific/linux/pam_gnupg/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pam, gnupg }: - -stdenv.mkDerivation rec { - pname = "pam_gnupg"; - version = "0.4"; - - src = fetchFromGitHub { - owner = "cruegge"; - repo = "pam-gnupg"; - rev = "v${version}"; - sha256 = "sha256-6I9a841qohA42lhOgZf/hharnjkthuB8lRptPDxUgMI="; - }; - - configureFlags = [ - "--with-moduledir=${placeholder "out"}/lib/security" - ]; - - buildInputs = [ pam gnupg ]; - - nativeBuildInputs = [ autoreconfHook ]; - - meta = with lib; { - description = "Unlock GnuPG keys on login"; - longDescription = '' - A PAM module that hands over your login password to gpg-agent. This can - be useful if you are using a GnuPG-based password manager like pass. - ''; - homepage = "https://github.com/cruegge/pam-gnupg"; - license = licenses.gpl3; - maintainers = with maintainers; [ mtreca ]; - }; -} diff --git a/pkgs/os-specific/linux/pam_krb5/default.nix b/pkgs/os-specific/linux/pam_krb5/default.nix deleted file mode 100644 index 157226373db0..000000000000 --- a/pkgs/os-specific/linux/pam_krb5/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchurl, pam, libkrb5 }: - -stdenv.mkDerivation rec { - pname = "pam-krb5"; - version = "4.11"; - - src = fetchurl { - url = "https://archives.eyrie.org/software/kerberos/pam-krb5-${version}.tar.gz"; - sha256 = "sha256-UDy+LLGv9L39o7z3+T+U+2ulLCbXCJNOcDmyGC/hCyA="; - }; - - buildInputs = [ pam libkrb5 ]; - - meta = with lib; { - homepage = "https://www.eyrie.org/~eagle/software/pam-krb5/"; - description = "PAM module allowing PAM-aware applications to authenticate users by performing an AS exchange with a Kerberos KDC"; - longDescription = '' - pam_krb5 can optionally convert Kerberos 5 credentials to Kerberos IV - credentials and/or use them to set up AFS tokens for a user's session. - ''; - platforms = platforms.linux; - license = licenses.bsd3; - }; -} diff --git a/pkgs/os-specific/linux/pam_ldap/default.nix b/pkgs/os-specific/linux/pam_ldap/default.nix deleted file mode 100644 index 988256808dbb..000000000000 --- a/pkgs/os-specific/linux/pam_ldap/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ stdenv, fetchurl, pam, openldap, perl }: - -stdenv.mkDerivation rec { - pname = "pam_ldap"; - version = "186"; - - src = fetchurl { - url = "https://www.padl.com/download/pam_ldap-${version}.tar.gz"; - sha256 = "0lv4f7hc02jrd2l3gqxd247qq62z11sp3fafn8lgb8ymb7aj5zn8"; - }; - - postPatch = '' - patchShebangs ./vers_string - substituteInPlace vers_string --replace "cvslib.pl" "./cvslib.pl" - ''; - - preInstall = " - substituteInPlace Makefile --replace '-o root -g root' '' - "; - - nativeBuildInputs = [ perl ]; - buildInputs = [ pam openldap ]; - - meta = { - homepage = "https://www.padl.com/OSS/pam_ldap.html"; - description = "LDAP backend for PAM"; - longDescription = '' - The pam_ldap module provides the means for Solaris and Linux servers and - workstations to authenticate against LDAP directories, and to change their - passwords in the directory.''; - license = "LGPL"; - inherit (pam.meta) platforms; - }; -} diff --git a/pkgs/os-specific/linux/pam_mktemp/default.nix b/pkgs/os-specific/linux/pam_mktemp/default.nix deleted file mode 100644 index 04ba58785efa..000000000000 --- a/pkgs/os-specific/linux/pam_mktemp/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, pam -, e2fsprogs -}: - -stdenv.mkDerivation rec { - pname = "pam_mktemp"; - version = "1.1.1"; - - src = fetchurl { - url = "https://openwall.com/pam/modules/${pname}/${pname}-${version}.tar.gz"; - hash = "sha256-Zs+AwYQ5yjRW25ZALy7qwUsaBQPMHRvn8rFtXwefPz0="; - }; - - patches = [ - (fetchpatch { - name = "inherit_private_prefix_from_home.patch"; - url = "https://git.altlinux.org/gears/p/pam_mktemp.git?p=pam_mktemp.git;a=commitdiff_plain;h=3d2e8ad6da6a44c047bf7a8afa1e1bb2a6e36a55"; - hash = "sha256-xe44fi2xH9jqlStlIR4QPB0KS7spflRdOsvNPEmxJpU"; - }) - (fetchpatch { - name = "allow_private_prefix_to_be_stricter.patch"; - url = "https://git.altlinux.org/gears/p/pam_mktemp.git?p=pam_mktemp.git;a=commitdiff_plain;h=bb2cee0c695d22310e5364c30d74bccb0dbf3205"; - hash = "sha256-TouysUVlNnl+m7lJ2VKPxUTYD2om1Jh5FEJ6NHMAI4U="; - }) - ]; - - patchFlags = "-p2"; - - dontConfigure = true; - - buildInputs = [ pam e2fsprogs ]; - - makeFlags = [ "DESTDIR=$(out)" ]; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://www.openwall.com/pam/"; - description = "PAM for login service to provide per-user private directories"; - license = licenses.bsd0; - maintainers = with maintainers; [ wladmis ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pam_mount/default.nix b/pkgs/os-specific/linux/pam_mount/default.nix deleted file mode 100644 index 2ed6829f3614..000000000000 --- a/pkgs/os-specific/linux/pam_mount/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libtool, pam, libHX, libxml2, pcre2, perl, openssl, cryptsetup, util-linux }: - -stdenv.mkDerivation rec { - pname = "pam_mount"; - version = "2.20"; - - src = fetchurl { - url = "https://inai.de/files/pam_mount/${pname}-${version}.tar.xz"; - hash = "sha256-VCYgekhWgPjhdkukBbs4w5pODIMGvIJxkQ8bgZozbO0="; - }; - - patches = [ - ./insert_utillinux_path_hooks.patch - ]; - - postPatch = '' - substituteInPlace src/mtcrypt.c \ - --replace @@NIX_UTILLINUX@@ ${util-linux}/bin - ''; - - nativeBuildInputs = [ - autoreconfHook - libtool - perl - pkg-config - ]; - - buildInputs = [ - cryptsetup - libHX - libxml2 - openssl - pam - pcre2 - util-linux - ]; - - enableParallelBuilding = true; - - configureFlags = [ - "--prefix=${placeholder "out"}" - "--localstatedir=${placeholder "out"}/var" - "--sbindir=${placeholder "out"}/bin" - "--sysconfdir=${placeholder "out"}/etc" - "--with-slibdir=${placeholder "out"}/lib" - ]; - - postInstall = '' - rm -r $out/var - ''; - - meta = with lib; { - description = "PAM module to mount volumes for a user session"; - homepage = "https://pam-mount.sourceforge.net/"; - license = with licenses; [ gpl2 gpl3 lgpl21 lgpl3 ]; - maintainers = with maintainers; [ netali ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pam_mount/insert_utillinux_path_hooks.patch b/pkgs/os-specific/linux/pam_mount/insert_utillinux_path_hooks.patch deleted file mode 100644 index 6d9da05da295..000000000000 --- a/pkgs/os-specific/linux/pam_mount/insert_utillinux_path_hooks.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -uNr pam_mount-2.15_old/src/mtcrypt.c pam_mount-2.15/src/mtcrypt.c ---- pam_mount-2.15_old/src/mtcrypt.c 2015-07-04 16:00:12.917943336 +0200 -+++ pam_mount-2.15/src/mtcrypt.c 2015-07-04 16:03:45.685302493 +0200 -@@ -534,7 +534,7 @@ - - /* candidate for replacement by some libmount calls, I guess. */ - argk = 0; -- mount_args[argk++] = "mount"; -+ mount_args[argk++] = "@@NIX_UTILLINUX@@/mount"; - if (opt->fstype != NULL) { - mount_args[argk++] = "-t"; - mount_args[argk++] = opt->fstype; -@@ -668,7 +668,7 @@ - - if (!opt->no_update) - pmt_smtab_remove(mntpt, SMTABF_MOUNTPOINT); -- rmt_args[argk++] = "mount"; -+ rmt_args[argk++] = "@@NIX_UTILLINUX@@/mount"; - rmt_args[argk++] = "-o"; - rmt_args[argk++] = opt->extra_opts; - rmt_args[argk++] = mntpt; -@@ -749,7 +749,7 @@ - pmt_smtab_remove(mountpoint, SMTABF_MOUNTPOINT); - pmt_cmtab_remove(mountpoint); - -- umount_args[argk++] = "umount"; -+ umount_args[argk++] = "@@NIX_UTILLINUX@@/umount"; - umount_args[argk++] = "-i"; - umount_args[argk++] = mountpoint; - umount_args[argk] = NULL; diff --git a/pkgs/os-specific/linux/pam_mysql/default.nix b/pkgs/os-specific/linux/pam_mysql/default.nix deleted file mode 100644 index 1088d8abe7a6..000000000000 --- a/pkgs/os-specific/linux/pam_mysql/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib -, nixosTests -, stdenv -, fetchFromGitHub -, meson -, ninja -, pam -, pkg-config -, libmysqlclient -, mariadb -, libxcrypt -}: - -stdenv.mkDerivation rec { - pname = "pam_mysql"; - version = "1.0.0-beta2"; - - src = fetchFromGitHub { - owner = "NigelCunningham"; - repo = "pam-MySQL"; - rev = version; - sha256 = "07acf0hbhkd0kg49gnj4nb5ilnv3v4xx3dsggvzvjg8gi3cjmsap"; - }; - - nativeBuildInputs = [ meson pkg-config ninja ]; - buildInputs = [ pam libmysqlclient mariadb libxcrypt ]; - - passthru.tests = { - inherit (nixosTests) auth-mysql; - }; - - meta = with lib; { - description = "PAM authentication module against a MySQL database"; - homepage = "https://github.com/NigelCunningham/pam-MySQL"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ netali ]; - }; -} diff --git a/pkgs/os-specific/linux/pam_p11/default.nix b/pkgs/os-specific/linux/pam_p11/default.nix deleted file mode 100644 index 0a7e02f4ad81..000000000000 --- a/pkgs/os-specific/linux/pam_p11/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, libp11, pam, libintl, fetchpatch }: - -stdenv.mkDerivation rec { - pname = "pam_p11"; - version = "0.3.1"; - - src = fetchFromGitHub { - owner = "OpenSC"; - repo = "pam_p11"; - rev = "pam_p11-${version}"; - sha256 = "1caidy18rq5zk82d51x8vwidmkhwmanf3qm25x1yrdlbhxv6m7lk"; - }; - - patches = [ - # fix with openssl 3.x - # https://github.com/OpenSC/pam_p11/pull/22 - (fetchpatch { - name = "OpenSC-pam_p11-pull-22.patch"; - url = "https://github.com/OpenSC/pam_p11/compare/cd4eba2e921e1c2f93cde71922a76af99376246c...debd4f7acfaf998cfe4002e0be5c35ad9a9591b5.patch"; - excludes = [ ".github/build.sh" ]; - hash = "sha256-bm/agnBgvrr8L8yoGK4gzBqOGgsNWf9NIgcNJG7proE="; - }) - ]; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ pam libp11.passthru.openssl libp11 ] - ++ lib.optionals stdenv.isDarwin [ libintl ]; - - meta = with lib; { - homepage = "https://github.com/OpenSC/pam_p11"; - description = "Authentication with PKCS#11 modules"; - license = licenses.lgpl21Plus; - platforms = platforms.unix; - maintainers = with maintainers; [ sb0 ]; - }; -} diff --git a/pkgs/os-specific/linux/pam_pgsql/default.nix b/pkgs/os-specific/linux/pam_pgsql/default.nix deleted file mode 100644 index 2eabcefe584c..000000000000 --- a/pkgs/os-specific/linux/pam_pgsql/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, postgresql, libgcrypt, pam, libxcrypt }: - -stdenv.mkDerivation rec { - pname = "pam_pgsql"; - version = "unstable-2020-05-05"; - - src = fetchFromGitHub { - owner = "pam-pgsql"; - repo = "pam-pgsql"; - rev = "f9fd1e1a0daf754e6764a31db5cbec6f9fc02b3d"; - sha256 = "1bvddrwyk1479wibyayzc24h62qzfnlbk9qvdhb31yw9yn17gp6k"; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ libgcrypt pam postgresql libxcrypt ]; - - meta = with lib; { - description = "Support to authenticate against PostgreSQL for PAM-enabled appliations"; - homepage = "https://github.com/pam-pgsql/pam-pgsql"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ]; - }; -} diff --git a/pkgs/os-specific/linux/pam_rssh/default.nix b/pkgs/os-specific/linux/pam_rssh/default.nix deleted file mode 100644 index 8b4224d6f4df..000000000000 --- a/pkgs/os-specific/linux/pam_rssh/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ - lib, - rustPlatform, - fetchFromGitHub, - coreutils, - pkg-config, - openssl, - pam, - openssh, -}: - -rustPlatform.buildRustPackage rec { - pname = "pam_rssh"; - version = "1.1.0"; - - src = fetchFromGitHub { - owner = "z4yx"; - repo = "pam_rssh"; - rev = "v${version}"; - hash = "sha256-SDtMqGy2zhq9jEQVwSEl4EwRp2jgXfTVLrCX7k/kBeU="; - fetchSubmodules = true; - }; - - cargoHash = "sha256-gNy1tcHDUOG1XduGAIMapvx5dlq+U1LitUQkccGfb9o="; - - postPatch = '' - substituteInPlace src/auth_keys.rs \ - --replace '/bin/echo' '${coreutils}/bin/echo' \ - --replace '/bin/false' '${coreutils}/bin/false' - ''; - - nativeBuildInputs = [ pkg-config ]; - - buildInputs = [ - openssl - pam - ]; - - checkFlags = [ - # Fails because it tries finding authorized_keys in /home/$USER. - "--skip=tests::parse_user_authorized_keys" - ]; - - nativeCheckInputs = [ (openssh.override { dsaKeysSupport = true; }) ]; - - env.USER = "nixbld"; - - # Copied from https://github.com/z4yx/pam_rssh/blob/main/.github/workflows/rust.yml. - preCheck = '' - export HOME=$(mktemp -d) - mkdir $HOME/.ssh - ssh-keygen -q -N "" -t ecdsa -b 521 -f $HOME/.ssh/id_ecdsa521 - ssh-keygen -q -N "" -t ecdsa -b 384 -f $HOME/.ssh/id_ecdsa384 - ssh-keygen -q -N "" -t ecdsa -b 256 -f $HOME/.ssh/id_ecdsa256 - ssh-keygen -q -N "" -t ed25519 -f $HOME/.ssh/id_ed25519 - ssh-keygen -q -N "" -t rsa -f $HOME/.ssh/id_rsa - ssh-keygen -q -N "" -t dsa -f $HOME/.ssh/id_dsa - export SSH_AUTH_SOCK=$HOME/ssh-agent.sock - eval $(ssh-agent -a $SSH_AUTH_SOCK) - ssh-add $HOME/.ssh/id_ecdsa521 - ssh-add $HOME/.ssh/id_ecdsa384 - ssh-add $HOME/.ssh/id_ecdsa256 - ssh-add $HOME/.ssh/id_ed25519 - ssh-add $HOME/.ssh/id_rsa - ssh-add $HOME/.ssh/id_dsa - ''; - - meta = with lib; { - description = "PAM module for authenticating via ssh-agent, written in Rust"; - homepage = "https://github.com/z4yx/pam_rssh"; - license = licenses.mit; - platforms = platforms.linux; - maintainers = with maintainers; [ kranzes ]; - }; -} diff --git a/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix b/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix deleted file mode 100644 index 46587028f296..000000000000 --- a/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ lib, stdenv, nixosTests, fetchpatch, fetchFromGitHub, pam, openssl, perl }: - -stdenv.mkDerivation rec { - pname = "pam_ssh_agent_auth"; - version = "0.10.4"; - - src = fetchFromGitHub { - owner = "jbeverly"; - repo = "pam_ssh_agent_auth"; - rev = "pam_ssh_agent_auth-${version}"; - sha256 = "YD1R8Cox0UoNiuWleKGzWSzxJ5lhDRCB2mZPp9OM6Cs="; - }; - - ed25519-donna = fetchFromGitHub { - owner = "floodyberry"; - repo = "ed25519-donna"; - rev = "8757bd4cd209cb032853ece0ce413f122eef212c"; - sha256 = "ETFpIaWQnlYG8ZuDG2dNjUJddlvibB4ukHquTFn3NZM="; - }; - - buildInputs = [ pam openssl perl ]; - - patches = [ - # Allow multiple colon-separated authorized keys files to be - # specified in the file= option. - ./multiple-key-files.patch - ./edcsa-crash-fix.patch - ]; - - configureFlags = [ - # It's not clear to me why this is necessary, but without it, you see: - # - # checking OpenSSL header version... 1010108f (OpenSSL 1.1.1h 22 Sep 2020) - # checking OpenSSL library version... 1010108f (OpenSSL 1.1.1h 22 Sep 2020) - # checking whether OpenSSL's headers match the library... no - # configure: WARNING: Your OpenSSL headers do not match your - # library. Check config.log for details. - # - # ...despite the fact that clearly the values match - "--without-openssl-header-check" - # Make sure it can find ed25519-donna - "--with-cflags=-I$PWD" - ]; - - prePatch = "cp -r ${ed25519-donna}/. ed25519-donna/."; - - enableParallelBuilding = true; - - passthru.tests.sudo = nixosTests.ssh-agent-auth; - - meta = { - homepage = "https://github.com/jbeverly/pam_ssh_agent_auth"; - description = "PAM module for authentication through the SSH agent"; - maintainers = [ lib.maintainers.eelco ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pam_ssh_agent_auth/edcsa-crash-fix.patch b/pkgs/os-specific/linux/pam_ssh_agent_auth/edcsa-crash-fix.patch deleted file mode 100644 index 45ee87458161..000000000000 --- a/pkgs/os-specific/linux/pam_ssh_agent_auth/edcsa-crash-fix.patch +++ /dev/null @@ -1,53 +0,0 @@ -commit 1b0d9bcc5f5cd78b0bb1357d6a11da5d616ad26f -Author: Wout Mertens <Wout.Mertens@gmail.com> -Date: Thu Jun 11 18:08:13 2020 +0200 - - fix segfault when using ECDSA keys. - - Author: Marc Deslauriers <marc.deslauriers@canonical.com> - Bug-Ubuntu: https://bugs.launchpad.net/bugs/1869512 - -diff --git a/ssh-ecdsa.c b/ssh-ecdsa.c -index 5b13b30..5bf29cc 100644 ---- a/ssh-ecdsa.c -+++ b/ssh-ecdsa.c -@@ -46,7 +46,7 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp, - u_int len, dlen; - Buffer b, bb; - #if OPENSSL_VERSION_NUMBER >= 0x10100005L -- BIGNUM *r, *s; -+ BIGNUM *r = NULL, *s = NULL; - #endif - - if (key == NULL || key->type != KEY_ECDSA || key->ecdsa == NULL) { -@@ -137,20 +137,27 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen, - - /* parse signature */ - if ((sig = ECDSA_SIG_new()) == NULL) -- pamsshagentauth_fatal("ssh_ecdsa_verify: DSA_SIG_new failed"); -+ pamsshagentauth_fatal("ssh_ecdsa_verify: ECDSA_SIG_new failed"); - - pamsshagentauth_buffer_init(&b); - pamsshagentauth_buffer_append(&b, sigblob, len); - #if OPENSSL_VERSION_NUMBER < 0x10100005L - if ((pamsshagentauth_buffer_get_bignum2_ret(&b, sig->r) == -1) || - (pamsshagentauth_buffer_get_bignum2_ret(&b, sig->s) == -1)) -+ pamsshagentauth_fatal("ssh_ecdsa_verify:" -+ "pamsshagentauth_buffer_get_bignum2_ret failed"); - #else -- DSA_SIG_get0(sig, &r, &s); -+ if ((r = BN_new()) == NULL) -+ pamsshagentauth_fatal("ssh_ecdsa_verify: BN_new failed"); -+ if ((s = BN_new()) == NULL) -+ pamsshagentauth_fatal("ssh_ecdsa_verify: BN_new failed"); - if ((pamsshagentauth_buffer_get_bignum2_ret(&b, r) == -1) || - (pamsshagentauth_buffer_get_bignum2_ret(&b, s) == -1)) --#endif - pamsshagentauth_fatal("ssh_ecdsa_verify:" - "pamsshagentauth_buffer_get_bignum2_ret failed"); -+ if (ECDSA_SIG_set0(sig, r, s) != 1) -+ pamsshagentauth_fatal("ssh_ecdsa_verify: ECDSA_SIG_set0 failed"); -+#endif - - /* clean up */ - memset(sigblob, 0, len); diff --git a/pkgs/os-specific/linux/pam_ssh_agent_auth/multiple-key-files.patch b/pkgs/os-specific/linux/pam_ssh_agent_auth/multiple-key-files.patch deleted file mode 100644 index 71d8e08ecd0b..000000000000 --- a/pkgs/os-specific/linux/pam_ssh_agent_auth/multiple-key-files.patch +++ /dev/null @@ -1,371 +0,0 @@ -diff -u pam_ssh_agent_auth-0.10.3-orig/iterate_ssh_agent_keys.c pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c ---- pam_ssh_agent_auth-0.10.3-orig/iterate_ssh_agent_keys.c 2016-11-12 19:24:32.000000000 -0800 -+++ pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.c 2017-03-02 23:47:18.012203283 -0800 -@@ -176,7 +176,7 @@ - return; - } - --int -+const char * - pamsshagentauth_find_authorized_keys(const char * user, const char * ruser, const char * servicename) - { - Buffer session_id2 = { 0 }; -@@ -184,7 +184,7 @@ - Key *key; - AuthenticationConnection *ac; - char *comment; -- uint8_t retval = 0; -+ const char *key_file = 0; - uid_t uid = getpwnam(ruser)->pw_uid; - - OpenSSL_add_all_digests(); -@@ -199,13 +199,11 @@ - id->key = key; - id->filename = comment; - id->ac = ac; -- if(userauth_pubkey_from_id(ruser, id, &session_id2)) { -- retval = 1; -- } -+ key_file = userauth_pubkey_from_id(ruser, id, &session_id2); - pamsshagentauth_xfree(id->filename); - pamsshagentauth_key_free(id->key); - pamsshagentauth_xfree(id); -- if(retval == 1) -+ if(key_file) - break; - } - } -@@ -217,5 +215,5 @@ - } - /* pamsshagentauth_xfree(session_id2); */ - EVP_cleanup(); -- return retval; -+ return key_file; - } -diff -u pam_ssh_agent_auth-0.10.3-orig/iterate_ssh_agent_keys.h pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.h ---- pam_ssh_agent_auth-0.10.3-orig/iterate_ssh_agent_keys.h 2016-11-12 19:24:32.000000000 -0800 -+++ pam_ssh_agent_auth-0.10.3/iterate_ssh_agent_keys.h 2017-03-02 23:48:06.345803339 -0800 -@@ -31,6 +31,6 @@ - #ifndef _ITERATE_SSH_AGENT_KEYS_H - #define _ITERATE_SSH_AGENT_KEYS_H - --int pamsshagentauth_find_authorized_keys(const char * user, const char * ruser, const char * servicename); -+const char * pamsshagentauth_find_authorized_keys(const char * user, const char * ruser, const char * servicename); - - #endif -diff -u pam_ssh_agent_auth-0.10.3-orig/pam_ssh_agent_auth.c pam_ssh_agent_auth-0.10.3/pam_ssh_agent_auth.c ---- pam_ssh_agent_auth-0.10.3-orig/pam_ssh_agent_auth.c 2016-11-12 19:24:32.000000000 -0800 -+++ pam_ssh_agent_auth-0.10.3/pam_ssh_agent_auth.c 2017-03-02 23:51:57.642669946 -0800 -@@ -61,7 +61,6 @@ - #define strncasecmp_literal(A,B) strncasecmp( A, B, sizeof(B) - 1) - #define UNUSED(expr) do { (void)(expr); } while (0) - --char *authorized_keys_file = NULL; - uint8_t allow_user_owned_authorized_keys_file = 0; - char *authorized_keys_command = NULL; - char *authorized_keys_command_user = NULL; -@@ -171,15 +170,13 @@ - goto cleanexit; - } - -- if(authorized_keys_file_input && user) { -- /* -- * user is the name of the target-user, and so must be used for validating the authorized_keys file -- */ -- parse_authorized_key_file(user, authorized_keys_file_input); -- } else { -- pamsshagentauth_verbose("Using default file=/etc/security/authorized_keys"); -- authorized_keys_file = pamsshagentauth_xstrdup("/etc/security/authorized_keys"); -- } -+ if (!authorized_keys_file_input || !user) -+ authorized_keys_file_input = "/etc/security/authorized_keys"; -+ -+ /* -+ * user is the name of the target-user, and so must be used for validating the authorized_keys file -+ */ -+ parse_authorized_key_files(user, authorized_keys_file_input); - - /* - * PAM_USER and PAM_RUSER do not necessarily have to get set by the calling application, and we may be unable to divine the latter. -@@ -184,5 +181,5 @@ - */ - - if(user && strlen(ruser) > 0) { -- pamsshagentauth_verbose("Attempting authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file); -+ pamsshagentauth_verbose("Attempting authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file_input); - -@@ -201,3 +197,3 @@ - retval = PAM_SUCCESS; -- pamsshagentauth_logit("Authenticated (sshd): `%s' as `%s' using %s", ruser, user, authorized_keys_file); -+ pamsshagentauth_logit("Authenticated (sshd): `%s' as `%s' using %s", ruser, user, authorized_keys_file_input); - -@@ -211,11 +208,12 @@ - /* - * this pw_uid is used to validate the SSH_AUTH_SOCK, and so must be the uid of the ruser invoking the program, not the target-user - */ -- if(pamsshagentauth_find_authorized_keys(user, ruser, servicename)) { /* getpwnam(ruser)->pw_uid)) { */ -- pamsshagentauth_logit("Authenticated (agent): `%s' as `%s' using %s", ruser, user, authorized_keys_file); -+ const char *key_file; -+ if((key_file = pamsshagentauth_find_authorized_keys(user, ruser, servicename))) { /* getpwnam(ruser)->pw_uid)) { */ -+ pamsshagentauth_logit("Authenticated (agent): `%s' as `%s' using %s", ruser, user, key_file); - retval = PAM_SUCCESS; - } else { -- pamsshagentauth_logit("Failed Authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file); -+ pamsshagentauth_logit("Failed Authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file_input); - } - } else { - pamsshagentauth_logit("No %s specified, cannot continue with this form of authentication", (user) ? "ruser" : "user" ); -@@ -208,7 +206,7 @@ - free(__progname); - #endif - -- free(authorized_keys_file); -+ free_authorized_key_files(); - - return retval; - } -diff -u pam_ssh_agent_auth-0.10.3-orig/pam_ssh_agent_auth.pod pam_ssh_agent_auth-0.10.3/pam_ssh_agent_auth.pod ---- pam_ssh_agent_auth-0.10.3-orig/pam_ssh_agent_auth.pod 2016-11-12 19:24:32.000000000 -0800 -+++ pam_ssh_agent_auth-0.10.3/pam_ssh_agent_auth.pod 2017-03-02 23:52:28.914857449 -0800 -@@ -31,7 +31,7 @@ - - =item file=<path to authorized_keys> - --Specify the path to the authorized_keys file(s) you would like to use for authentication. Subject to tilde and % EXPANSIONS (below) -+Specify the path(s) to the authorized_keys file(s) you would like to use for authentication. Subject to tilde and % EXPANSIONS (below). Paths are separated using colons. - - =item allow_user_owned_authorized_keys_file - -diff -u pam_ssh_agent_auth-0.10.3-orig/pam_user_authorized_keys.c pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.c ---- pam_ssh_agent_auth-0.10.3-orig/pam_user_authorized_keys.c 2016-11-12 19:24:32.000000000 -0800 -+++ pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.c 2017-03-03 00:07:45.201322570 -0800 -@@ -79,8 +79,12 @@ - - #include "identity.h" - #include "pam_user_key_allowed2.h" -+#include "pam_user_authorized_keys.h" - --extern char *authorized_keys_file; -+#define MAX_AUTHORIZED_KEY_FILES 16 -+ -+char *authorized_keys_files[MAX_AUTHORIZED_KEY_FILES]; -+unsigned int nr_authorized_keys_files = 0; - - extern char *authorized_keys_command; - -@@ -91,79 +95,88 @@ - uid_t authorized_keys_file_allowed_owner_uid; - - void --parse_authorized_key_file(const char *user, -- const char *authorized_keys_file_input) -+parse_authorized_key_files(const char *user, -+ const char *authorized_keys_file_input) - { -- char fqdn[HOST_NAME_MAX] = ""; -+ const char *pos = authorized_keys_file_input; - char hostname[HOST_NAME_MAX] = ""; -- char auth_keys_file_buf[4096] = ""; -- char *slash_ptr = NULL; -- char owner_uname[128] = ""; -- size_t owner_uname_len = 0; -- -- /* -- * temporary copy, so that both tilde expansion and percent expansion both -- * get to apply to the path -- */ -- strncat(auth_keys_file_buf, authorized_keys_file_input, -- sizeof(auth_keys_file_buf) - 1); -+ char fqdn[HOST_NAME_MAX] = ""; - -- if(allow_user_owned_authorized_keys_file) -- authorized_keys_file_allowed_owner_uid = getpwnam(user)->pw_uid; -+#if HAVE_GETHOSTNAME -+ *hostname = '\0'; -+ gethostname(fqdn, HOST_NAME_MAX); -+ strncat(hostname, fqdn, strcspn(fqdn,".")); -+#endif - -- if(*auth_keys_file_buf == '~') { -- if(*(auth_keys_file_buf + 1) == '/') { -- authorized_keys_file_allowed_owner_uid = getpwnam(user)->pw_uid; -+ while (pos) { -+ const char *colon = strchr(pos, ':'); -+ char auth_keys_file_buf[4096] = ""; -+ char *slash_ptr = NULL; -+ char owner_uname[128] = ""; -+ size_t owner_uname_len = 0; -+ -+ strncat(auth_keys_file_buf, pos, sizeof(auth_keys_file_buf) - 1); -+ if (colon) { -+ auth_keys_file_buf[colon - pos] = 0; -+ pos = colon + 1; - } else { -- slash_ptr = strchr(auth_keys_file_buf, '/'); -- if(!slash_ptr) -- pamsshagentauth_fatal -- ("cannot expand tilde in path without a `/'"); -- -- owner_uname_len = slash_ptr - auth_keys_file_buf - 1; -- if(owner_uname_len > (sizeof(owner_uname) - 1)) -- pamsshagentauth_fatal("Username too long"); -- -- strncat(owner_uname, auth_keys_file_buf + 1, owner_uname_len); -- if(!authorized_keys_file_allowed_owner_uid) -- authorized_keys_file_allowed_owner_uid = -- getpwnam(owner_uname)->pw_uid; -+ pos = 0; -+ } -+ -+ if(allow_user_owned_authorized_keys_file) -+ authorized_keys_file_allowed_owner_uid = getpwnam(user)->pw_uid; -+ -+ if(*auth_keys_file_buf == '~') { -+ if(*(auth_keys_file_buf+1) == '/') { -+ authorized_keys_file_allowed_owner_uid = getpwnam(user)->pw_uid; -+ } -+ else { -+ slash_ptr = strchr(auth_keys_file_buf,'/'); -+ if(!slash_ptr) -+ pamsshagentauth_fatal("cannot expand tilde in path without a `/'"); -+ -+ owner_uname_len = slash_ptr - auth_keys_file_buf - 1; -+ if(owner_uname_len > (sizeof(owner_uname) - 1) ) -+ pamsshagentauth_fatal("Username too long"); -+ -+ strncat(owner_uname, auth_keys_file_buf + 1, owner_uname_len); -+ if(!authorized_keys_file_allowed_owner_uid) -+ authorized_keys_file_allowed_owner_uid = getpwnam(owner_uname)->pw_uid; -+ } -+ char *tmp = pamsshagentauth_tilde_expand_filename(auth_keys_file_buf, authorized_keys_file_allowed_owner_uid); -+ strncpy(auth_keys_file_buf, tmp, sizeof(auth_keys_file_buf) - 1 ); -+ pamsshagentauth_xfree(tmp); - } -- authorized_keys_file = -- pamsshagentauth_tilde_expand_filename(auth_keys_file_buf, -- authorized_keys_file_allowed_owner_uid); -- strncpy(auth_keys_file_buf, authorized_keys_file, -- sizeof(auth_keys_file_buf) - 1); -- pamsshagentauth_xfree(authorized_keys_file) /* when we -- percent_expand -- later, we'd step -- on this, so free -- it immediately */ ; -- } - -- if(strstr(auth_keys_file_buf, "%h")) { -- authorized_keys_file_allowed_owner_uid = getpwnam(user)->pw_uid; -+ if(strstr(auth_keys_file_buf, "%h")) { -+ authorized_keys_file_allowed_owner_uid = getpwnam(user)->pw_uid; -+ } -+ -+ if (nr_authorized_keys_files >= MAX_AUTHORIZED_KEY_FILES) -+ pamsshagentauth_fatal("Too many authorized key files"); -+ authorized_keys_files[nr_authorized_keys_files++] = -+ pamsshagentauth_percent_expand(auth_keys_file_buf, "h", getpwnam(user)->pw_dir, "H", hostname, "f", fqdn, "u", user, NULL); - } --#if HAVE_GETHOSTNAME -- *hostname = '\0'; -- gethostname(fqdn, HOST_NAME_MAX); -- strncat(hostname, fqdn, strcspn(fqdn, ".")); --#endif -- authorized_keys_file = -- pamsshagentauth_percent_expand(auth_keys_file_buf, "h", -- getpwnam(user)->pw_dir, "H", hostname, -- "f", fqdn, "u", user, NULL); - } - --int -+void -+free_authorized_key_files() -+{ -+ unsigned int n; -+ for (n = 0; n < nr_authorized_keys_files; n++) -+ free(authorized_keys_files[n]); -+ nr_authorized_keys_files = 0; -+} -+ -+const char * - pam_user_key_allowed(const char *ruser, Key * key) - { -- return -- pamsshagentauth_user_key_allowed2(getpwuid(authorized_keys_file_allowed_owner_uid), -- key, authorized_keys_file) -- || pamsshagentauth_user_key_allowed2(getpwuid(0), key, -- authorized_keys_file) -- || pamsshagentauth_user_key_command_allowed2(authorized_keys_command, -- authorized_keys_command_user, -- getpwnam(ruser), key); -+ unsigned int n; -+ for (n = 0; n < nr_authorized_keys_files; n++) { -+ if (pamsshagentauth_user_key_allowed2(getpwuid(authorized_keys_file_allowed_owner_uid), key, authorized_keys_files[n]) -+ || pamsshagentauth_user_key_allowed2(getpwuid(0), key, authorized_keys_files[n]) -+ || pamsshagentauth_user_key_command_allowed2(authorized_keys_command, authorized_keys_command_user, getpwnam(ruser), key)) -+ return authorized_keys_files[n]; -+ } -+ return 0; - } -diff -u pam_ssh_agent_auth-0.10.3-orig/pam_user_authorized_keys.h pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.h ---- pam_ssh_agent_auth-0.10.3-orig/pam_user_authorized_keys.h 2016-11-12 19:24:32.000000000 -0800 -+++ pam_ssh_agent_auth-0.10.3/pam_user_authorized_keys.h 2017-03-03 00:09:17.256064914 -0800 -@@ -28,11 +28,12 @@ - */ - - --#ifndef _PAM_USER_KEY_ALLOWED_H --#define _PAM_USER_KEY_ALLOWED_H -+#ifndef _PAM_USER_AUTHORIZED_KEYS_H -+#define _PAM_USER_AUTHORIZED_KEYS_H - - #include "identity.h" --int pam_user_key_allowed(const char *, Key *); --void parse_authorized_key_file(const char *, const char *); -+const char * pam_user_key_allowed(const char *, Key *); -+void parse_authorized_key_files(const char *, const char *); -+void free_authorized_key_files(); - - #endif -diff -u pam_ssh_agent_auth-0.10.3-orig/userauth_pubkey_from_id.c pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c ---- pam_ssh_agent_auth-0.10.3-orig/userauth_pubkey_from_id.c 2016-11-12 19:24:32.000000000 -0800 -+++ pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.c 2017-03-03 00:10:33.163545380 -0800 -@@ -52,7 +52,7 @@ - extern uint8_t session_id_len; - */ - --int -+const char * - userauth_pubkey_from_id(const char *ruser, Identity * id, Buffer * session_id2) - { - Buffer b = { 0 }; -@@ -60,11 +60,12 @@ - u_char *pkblob = NULL, *sig = NULL; - u_int blen = 0, slen = 0; - int authenticated = 0; -+ const char *key_file; - - pkalg = (char *) key_ssh_name(id->key); - - /* first test if this key is even allowed */ -- if(! pam_user_key_allowed(ruser, id->key)) -+ if(!(key_file = pam_user_key_allowed(ruser, id->key))) - goto user_auth_clean_exit; - - if(pamsshagentauth_key_to_blob(id->key, &pkblob, &blen) == 0) -@@ -97,5 +98,5 @@ - if(pkblob != NULL) - pamsshagentauth_xfree(pkblob); - CRYPTO_cleanup_all_ex_data(); -- return authenticated; -+ return authenticated ? key_file : 0; - } -diff -u pam_ssh_agent_auth-0.10.3-orig/userauth_pubkey_from_id.h pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.h ---- pam_ssh_agent_auth-0.10.3-orig/userauth_pubkey_from_id.h 2016-11-12 19:24:32.000000000 -0800 -+++ pam_ssh_agent_auth-0.10.3/userauth_pubkey_from_id.h 2017-03-03 00:10:59.067046872 -0800 -@@ -32,6 +32,6 @@ - #define _USERAUTH_PUBKEY_FROM_ID_H - - #include <identity.h> --int userauth_pubkey_from_id(const char *, Identity *, Buffer *); -+const char * userauth_pubkey_from_id(const char *, Identity *, Buffer *); - - #endif diff --git a/pkgs/os-specific/linux/pam_tmpdir/default.nix b/pkgs/os-specific/linux/pam_tmpdir/default.nix deleted file mode 100644 index 2eee7c92f5c3..000000000000 --- a/pkgs/os-specific/linux/pam_tmpdir/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl, autoreconfHook, pam }: - -stdenv.mkDerivation rec { - pname = "pam_tmpdir"; - version = "0.09"; - - src = fetchurl { - url = "http://deb.debian.org/debian/pool/main/p/pam-tmpdir/pam-tmpdir_${version}.tar.gz"; - hash = "sha256-MXa1CY6alD83E/Q+MJmsv8NaImWd0pPJKZd/7nbe4J8="; - }; - - postPatch = '' - substituteInPlace pam_tmpdir.c \ - --replace /sbin/pam-tmpdir-helper $out/sbin/pam-tmpdir-helper - - # chmod/chown fails on files in /nix/store - sed -i -E -e '/^\s*(chmod|chown)/d' Makefile.{am,in} - - # the symlinks in m4 assume FHS - rm -rf m4 - ''; - - nativeBuildInputs = [ autoreconfHook ]; - - buildInputs = [ pam ]; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://tracker.debian.org/pkg/pam-tmpdir"; - description = "PAM module for creating safe per-user temporary directories"; - mainProgram = "pam-tmpdir-helper"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ peterhoeg ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pam_u2f/default.nix b/pkgs/os-specific/linux/pam_u2f/default.nix deleted file mode 100644 index 085ff43a7935..000000000000 --- a/pkgs/os-specific/linux/pam_u2f/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, libfido2, pam, openssl }: - -stdenv.mkDerivation rec { - pname = "pam_u2f"; - version = "1.3.0"; - - src = fetchurl { - url = "https://developers.yubico.com/pam-u2f/Releases/${pname}-${version}.tar.gz"; - sha256 = "sha256-cjYMaHVIXrTfQJ2o+PUrF4k/BeTZmFKcI4gUSA4RUiA="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libfido2 pam openssl ]; - - preConfigure = '' - configureFlagsArray+=("--with-pam-dir=$out/lib/security") - ''; - - # a no-op makefile to prevent building the fuzz targets - postConfigure = '' - cat > fuzz/Makefile <<EOF - all: - install: - EOF - ''; - - meta = with lib; { - homepage = "https://developers.yubico.com/pam-u2f/"; - description = "A PAM module for allowing authentication with a U2F device"; - changelog = "https://github.com/Yubico/pam-u2f/raw/pam_u2f-${version}/NEWS"; - license = licenses.bsd2; - platforms = platforms.unix; - maintainers = with maintainers; [ philandstuff ]; - mainProgram = "pamu2fcfg"; - }; -} diff --git a/pkgs/os-specific/linux/pam_ussh/default.nix b/pkgs/os-specific/linux/pam_ussh/default.nix deleted file mode 100644 index 028b33bc9316..000000000000 --- a/pkgs/os-specific/linux/pam_ussh/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ buildGoModule -, fetchFromGitHub -, pam -, lib -, nixosTests -}: - -buildGoModule rec { - pname = "pam_ussh"; - version = "unstable-20210615"; - - src = fetchFromGitHub { - owner = "uber"; - repo = "pam-ussh"; - rev = "e9524bda90ba19d3b9eb24f49cb63a6a56a19193"; # HEAD as of 2022-03-13 - sha256 = "0nb9hpqbghgi3zvq41kabydzyc6ffaaw9b4jkc5jrwn1klpw1xk8"; - }; - - preBuild = '' - cp ${./go.mod} go.mod - cp ${./go.sum} go.sum - ''; - - vendorHash = "sha256-fOIzJuTXiDNJak5ilgI2KnPOCogbFWTlPL3yNQdzUUI="; - - buildInputs = [ - pam - ]; - - buildPhase = '' - runHook preBuild - - if [ -z "$enableParallelBuilding" ]; then - export NIX_BUILD_CORES=1 - fi - go build -buildmode=c-shared -o pam_ussh.so -v -p $NIX_BUILD_CORES . - - runHook postBuild - ''; - checkPhase = '' - runHook preCheck - - go test -v -p $NIX_BUILD_CORES . - - runHook postCheck - ''; - installPhase = '' - runHook preInstall - - mkdir -p $out/lib/security - cp pam_ussh.so $out/lib/security - - runHook postInstall - ''; - - passthru.tests = { inherit (nixosTests) pam-ussh; }; - - meta = with lib; { - homepage = "https://github.com/uber/pam-ussh"; - description = "PAM module to authenticate using SSH certificates"; - license = licenses.mit; - platforms = platforms.linux; - maintainers = with maintainers; [ lukegb ]; - }; -} diff --git a/pkgs/os-specific/linux/pam_ussh/go.mod b/pkgs/os-specific/linux/pam_ussh/go.mod deleted file mode 100644 index 9adc453560a4..000000000000 --- a/pkgs/os-specific/linux/pam_ussh/go.mod +++ /dev/null @@ -1,15 +0,0 @@ -module github.com/uber/pam-ussh - -go 1.17 - -require ( - github.com/stretchr/testify v1.7.0 - golang.org/x/crypto v0.0.0-20220313003712-b769efc7c000 -) - -require ( - github.com/davecgh/go-spew v1.1.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 // indirect - gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect -) diff --git a/pkgs/os-specific/linux/pam_ussh/go.sum b/pkgs/os-specific/linux/pam_ussh/go.sum deleted file mode 100644 index 0df3145edbd5..000000000000 --- a/pkgs/os-specific/linux/pam_ussh/go.sum +++ /dev/null @@ -1,22 +0,0 @@ -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/crypto v0.0.0-20220313003712-b769efc7c000 h1:SL+8VVnkqyshUSz5iNnXtrBQzvFF2SkROm6t5RczFAE= -golang.org/x/crypto v0.0.0-20220313003712-b769efc7c000/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkgs/os-specific/linux/pax-utils/default.nix b/pkgs/os-specific/linux/pax-utils/default.nix deleted file mode 100644 index dcecfa4c13b8..000000000000 --- a/pkgs/os-specific/linux/pax-utils/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ stdenv -, lib -, fetchgit -, buildPackages -, docbook_xml_dtd_44 -, docbook_xsl -, withLibcap ? stdenv.isLinux, libcap -, pkg-config -, meson -, ninja -, xmlto -, python3 - -, gitUpdater -}: - -stdenv.mkDerivation rec { - pname = "pax-utils"; - version = "1.3.7"; - - src = fetchgit { - url = "https://anongit.gentoo.org/git/proj/pax-utils.git"; - rev = "v${version}"; - hash = "sha256-WyNng+UtfRz1+Eu4gwXLxUvBAg+m3mdrc8GdEPYRKVE="; - }; - - strictDeps = true; - - mesonFlags = [ - (lib.mesonEnable "use_libcap" withLibcap) - ]; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ docbook_xml_dtd_44 docbook_xsl meson ninja pkg-config xmlto ]; - buildInputs = lib.optionals withLibcap [ libcap ]; - # Needed for lddtree - propagatedBuildInputs = [ (python3.withPackages (p: with p; [ pyelftools ])) ]; - - passthru.updateScript = gitUpdater { - url = "https://anongit.gentoo.org/git/proj/pax-utils.git"; - rev-prefix = "v"; - }; - - meta = with lib; { - description = "ELF utils that can check files for security relevant properties"; - longDescription = '' - A suite of ELF tools to aid auditing systems. Contains - various ELF related utils for ELF32, ELF64 binaries useful - for displaying PaX and security info on a large groups of - binary files. - ''; - homepage = "https://wiki.gentoo.org/wiki/Hardened/PaX_Utilities"; - license = licenses.gpl2Only; - platforms = platforms.unix; - maintainers = with maintainers; [ thoughtpolice joachifm ]; - }; -} diff --git a/pkgs/os-specific/linux/paxctl/default.nix b/pkgs/os-specific/linux/paxctl/default.nix deleted file mode 100644 index fbb0e00ebe91..000000000000 --- a/pkgs/os-specific/linux/paxctl/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ fetchurl, lib, stdenv, elf-header }: - -stdenv.mkDerivation rec { - pname = "paxctl"; - version = "0.9"; - - src = fetchurl { - url = "https://pax.grsecurity.net/${pname}-${version}.tar.gz"; - sha256 = "0biw882fp1lmgs6kpxznp1v6758r7dg9x8iv5a06k0b82bcdsc53"; - }; - - buildInputs = [ elf-header ]; - - preBuild = '' - sed -i Makefile \ - -e 's|--owner 0 --group 0||g' \ - -e '/CC:=gcc/d' - ''; - - makeFlags = [ - "DESTDIR=$(out)" - "MANDIR=share/man/man1" - ]; - - setupHook = ./setup-hook.sh; - - meta = with lib; { - description = "A tool for controlling PaX flags on a per binary basis"; - mainProgram = "paxctl"; - homepage = "https://pax.grsecurity.net"; - license = licenses.gpl2; - platforms = platforms.all; - maintainers = with maintainers; [ thoughtpolice ]; - }; -} diff --git a/pkgs/os-specific/linux/paxctl/setup-hook.sh b/pkgs/os-specific/linux/paxctl/setup-hook.sh deleted file mode 100644 index 11a6bb9910f9..000000000000 --- a/pkgs/os-specific/linux/paxctl/setup-hook.sh +++ /dev/null @@ -1,8 +0,0 @@ -# PaX-mark binaries. -paxmark() { - local flags="$1" - shift - - paxctl -c "$@" - paxctl -zex -${flags} "$@" -} diff --git a/pkgs/os-specific/linux/paxtest/default.nix b/pkgs/os-specific/linux/paxtest/default.nix deleted file mode 100644 index acea7cbe49f7..000000000000 --- a/pkgs/os-specific/linux/paxtest/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchurl, paxctl }: - -stdenv.mkDerivation rec { - pname = "paxtest"; - version = "0.9.15"; - - src = fetchurl { - url = "https://www.grsecurity.net/~spender/${pname}-${version}.tar.gz"; - sha256 = "0zv6vlaszlik98gj9200sv0irvfzrvjn46rnr2v2m37x66288lym"; - }; - - enableParallelBuilding = true; - - makefile = "Makefile.psm"; - makeFlags = [ "PAXBIN=${paxctl}/bin/paxctl" "BINDIR=$(out)/bin" "RUNDIR=$(out)/lib/paxtest" ]; - installFlags = [ "DESTDIR=\"\"" ]; - - meta = with lib; { - description = "Test various memory protection measures"; - mainProgram = "paxtest"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ copumpkin joachifm ]; - }; -} diff --git a/pkgs/os-specific/linux/pcimem/default.nix b/pkgs/os-specific/linux/pcimem/default.nix deleted file mode 100644 index 2f41e4c7395e..000000000000 --- a/pkgs/os-specific/linux/pcimem/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "pcimem"; - version = "unstable-2018-08-29"; - - src = fetchFromGitHub { - owner = "billfarrow"; - repo = pname; - rev = "09724edb1783a98da2b7ae53c5aaa87493aabc9b"; - sha256 = "0zlbvcl5q4hgna11p3w00px1p8qgn8ga79lh6a2m7d597g86kbq3"; - }; - - outputs = [ "out" "doc" ]; - - makeFlags = [ "CFLAGS=-Wno-maybe-uninitialized" ]; - - installPhase = '' - install -D pcimem "$out/bin/pcimem" - install -D README "$doc/doc/README" - ''; - - meta = with lib; { - description = "Simple method of reading and writing to memory registers on a PCI card"; - mainProgram = "pcimem"; - homepage = "https://github.com/billfarrow/pcimem"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ mafo ]; - }; -} diff --git a/pkgs/os-specific/linux/pcm/default.nix b/pkgs/os-specific/linux/pcm/default.nix deleted file mode 100644 index e464d113e2f7..000000000000 --- a/pkgs/os-specific/linux/pcm/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ cmake, fetchFromGitHub, lib, stdenv }: - -stdenv.mkDerivation rec { - pname = "pcm"; - version = "202403"; - - src = fetchFromGitHub { - owner = "opcm"; - repo = "pcm"; - rev = version; - hash = "sha256-qefqtuxRaQEsWpXNAuGxuIT3LiH2b8xQb54B0RkzKGA="; - }; - - nativeBuildInputs = [ cmake ]; - enableParallelBuilding = true; - - meta = with lib; { - description = "Processor counter monitor"; - homepage = "https://www.intel.com/software/pcm"; - license = licenses.bsd3; - maintainers = with maintainers; [ roosemberth ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/pcmciautils/default.nix b/pkgs/os-specific/linux/pcmciautils/default.nix deleted file mode 100644 index b5f9d8a0a2c2..000000000000 --- a/pkgs/os-specific/linux/pcmciautils/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ config, lib, stdenv, fetchurl -, bison, flex -, sysfsutils, kmod, udev -, firmware ? config.pcmciaUtils.firmware or [] # Special pcmcia cards. -, configOpts ? config.pcmciaUtils.config or null # Special hardware (map memory & port & irq) -}: # used to generate postInstall script. - -# FIXME: should add an option to choose between hotplug and udev. -stdenv.mkDerivation rec { - pname = "pcmciautils"; - version = "018"; - - src = fetchurl { - url = "https://kernel.org/pub/linux/utils/kernel/pcmcia/pcmciautils-${version}.tar.gz"; - sha256 = "0sfm3w2n73kl5w7gb1m6q8gy5k4rgwvzz79n6yhs9w3sag3ix8sk"; - }; - - buildInputs = [udev bison sysfsutils kmod flex]; - - patchPhase = '' - sed -i " - s,/sbin/modprobe,${kmod}&,; - s,/lib/udev/,$out/sbin/,; - " udev/* # fix-color */ - sed -i " - s,/lib/firmware,$out&,; - s,/etc/pcmcia,$out&,; - " src/{startup.c,pcmcia-check-broken-cis.c} # fix-color */ - '' - + (lib.optionalString (firmware == []) ''sed -i "s,STARTUP = true,STARTUP = false," Makefile'') - + (lib.optionalString (configOpts != null) "ln -sf ${configOpts} ./config/config.opts") - ; - - makeFlags = [ "LEX=flex" ]; - installFlags = [ "INSTALL=install" "DESTDIR=${placeholder "out"}" ]; - postInstall = - lib.concatMapStrings (path: '' - for f in : $(find ${path} -type f); do - test "$f" == ":" && continue; - mkdir -p $(dirname $out/lib/firmware/$\{f#${path}}); - ln -s $f $out/lib/firmware/$\{f#${path}}; - done; - '') firmware; - - meta = { - homepage = "https://www.kernel.org/pub/linux/utils/kernel/pcmcia/"; - longDescription = " - PCMCIAutils contains the initialization tools necessary to allow - the PCMCIA subsystem to behave (almost) as every other - hotpluggable bus system. - "; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/perf-tools/default.nix b/pkgs/os-specific/linux/perf-tools/default.nix deleted file mode 100644 index 8c3e31e45384..000000000000 --- a/pkgs/os-specific/linux/perf-tools/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, perl }: - -stdenv.mkDerivation { - pname = "perf-tools"; - version = "unstable-2017-12-19"; - - src = fetchFromGitHub { - owner = "brendangregg"; - repo = "perf-tools"; - rev = "98d42a2a1493d2d1c651a5c396e015d4f082eb20"; - sha256 = "09qnss9pd4kr6qadvp62m2g8sfrj86fksi1rr8m8w4314pzfb93c"; - }; - - buildInputs = [ perl ]; - - patchPhase = - '' - for i in execsnoop iolatency iosnoop kernel/funcslower killsnoop opensnoop; do - substituteInPlace $i \ - --replace /usr/bin/gawk "$(type -p gawk)" \ - --replace /usr/bin/mawk /no-such-path \ - --replace /usr/bin/getconf "$(type -p getconf)" \ - --replace awk=awk "awk=$(type -p gawk)" - done - - rm -rf examples deprecated - ''; - - installPhase = - '' - d=$out/libexec/perf-tools - mkdir -p $d $out/share - cp -prvd . $d/ - ln -s $d/bin $out/bin - mv $d/man $out/share/ - ''; - - meta = with lib; { - platforms = platforms.linux; - homepage = "https://github.com/brendangregg/perf-tools"; - description = "Performance analysis tools based on Linux perf_events (aka perf) and ftrace"; - maintainers = [ maintainers.eelco ]; - license = licenses.gpl2Plus; - }; -} diff --git a/pkgs/os-specific/linux/pflask/default.nix b/pkgs/os-specific/linux/pflask/default.nix deleted file mode 100644 index 0394a3311ba2..000000000000 --- a/pkgs/os-specific/linux/pflask/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, python3, wafHook }: - -stdenv.mkDerivation rec { - pname = "pflask"; - version = "unstable-2018-01-23"; - - src = fetchFromGitHub { - owner = "ghedo"; - repo = pname; - rev = "9ac31ffe2ed29453218aac89ae992abbd6e7cc69"; - hash = "sha256-bAKPUj/EipZ98kHbZiFZZI3hLVMoQpCrYKMmznpSDhg="; - }; - - patches = [ - # Pull patch pending upstream inclusion for -fno-common toolchain support: - # https://github.com/ghedo/pflask/pull/30 - (fetchpatch { - name = "fno-common.patch"; - url = "https://github.com/ghedo/pflask/commit/73ba32ec48e1e0e4a56b1bceed4635711526e079.patch"; - hash = "sha256-KVuBS7LbYJQv6NXljpSiGGja7ar7W6A6SKzkEjB1B6U="; - }) - ]; - - nativeBuildInputs = [ python3 wafHook ]; - - postInstall = '' - mkdir -p $out/bin - cp build/pflask $out/bin - ''; - - meta = { - description = "Lightweight process containers for Linux"; - mainProgram = "pflask"; - homepage = "https://ghedo.github.io/pflask/"; - license = lib.licenses.bsd2; - platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/phc-intel/default.nix b/pkgs/os-specific/linux/phc-intel/default.nix deleted file mode 100644 index a0d43b2e0e36..000000000000 --- a/pkgs/os-specific/linux/phc-intel/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, stdenv, fetchurl, kernel, which }: - -# Don't bother with older versions, though some might even work: -assert lib.versionAtLeast kernel.version "4.10"; - -let - release = "0.4.0"; - revbump = "rev25"; # don't forget to change forum download id... -in stdenv.mkDerivation rec { - name = "linux-phc-intel-${version}-${kernel.version}"; - version = "${release}-${revbump}"; - - src = fetchurl { - sha256 = "1w91hpphd8i0br7g5qra26jdydqar45zqwq6jq8yyz6l0vb10zlz"; - url = "http://www.linux-phc.org/forum/download/file.php?id=194"; - name = "phc-intel-pack-${revbump}.tar.bz2"; - }; - - nativeBuildInputs = [ which ] ++ kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" ]; - - makeFlags = with kernel; [ - "DESTDIR=$(out)" - "KERNELSRC=${dev}/lib/modules/${modDirVersion}/build" - ]; - - configurePhase = '' - make $makeFlags brave - ''; - - enableParallelBuilding = false; - - installPhase = '' - install -m 755 -d $out/lib/modules/${kernel.modDirVersion}/extra/ - install -m 644 *.ko $out/lib/modules/${kernel.modDirVersion}/extra/ - ''; - - meta = with lib; { - description = "Undervolting kernel driver for Intel processors"; - longDescription = '' - PHC is a Linux kernel patch to undervolt processors. This can divide the - power consumption of the CPU by two or more, increasing battery life - while noticably reducing fan noise. This driver works only on supported - Intel architectures. - ''; - homepage = "https://github.com/danielw86dev/phc-intel-dkms"; - license = licenses.gpl2; - platforms = [ "x86_64-linux" "i686-linux" ]; - broken = lib.versionAtLeast kernel.version "4.18"; - }; -} diff --git a/pkgs/os-specific/linux/picoprobe-udev-rules/default.nix b/pkgs/os-specific/linux/picoprobe-udev-rules/default.nix deleted file mode 100644 index 4a651bf473e5..000000000000 --- a/pkgs/os-specific/linux/picoprobe-udev-rules/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchurl }: - -## Usage -# In NixOS, simply add this package to services.udev.packages: -# services.udev.packages = [ pkgs.picoprobe-udev-rules ]; - -stdenv.mkDerivation rec { - pname = "picoprobe-udev-rules"; - version = "unstable-2023-01-31"; - - src = fetchurl { - url = "https://raw.githubusercontent.com/probe-rs/webpage/1cba61acc6ecb5ff96f74641269844ad88ad8ad5/static/files/69-probe-rs.rules"; - sha256 = "sha256-vQMPX3Amttja0u03KWGnPDAVTGM9ekJ+IBTjW+xlJS0="; - }; - - dontUnpack = true; - dontBuild = true; - - installPhase = '' - runHook preInstall - install -D $src $out/lib/udev/rules.d/69-probe-rs.rules - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://probe.rs/docs/getting-started/probe-setup/#udev-rules"; - description = "Picoprobe udev rules list"; - platforms = platforms.linux; - license = licenses.gpl2Only; - maintainers = with maintainers; [ mglolenstine ]; - }; -} diff --git a/pkgs/os-specific/linux/piper/default.nix b/pkgs/os-specific/linux/piper/default.nix deleted file mode 100644 index b1508dcb6a3e..000000000000 --- a/pkgs/os-specific/linux/piper/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, meson, ninja, pkg-config, gettext, fetchFromGitHub, python3 -, wrapGAppsHook, gtk3, glib, desktop-file-utils, appstream-glib, gnome -, gobject-introspection, librsvg }: - -python3.pkgs.buildPythonApplication rec { - pname = "piper"; - version = "0.7"; - - format = "other"; - - src = fetchFromGitHub { - owner = "libratbag"; - repo = "piper"; - rev = version; - sha256 = "0jsvfy0ihdcgnqljfgs41lys1nlz18qvsa0a8ndx3pyr41f8w8wf"; - }; - - nativeBuildInputs = [ meson ninja gettext pkg-config wrapGAppsHook desktop-file-utils appstream-glib gobject-introspection ]; - buildInputs = [ - gtk3 glib gnome.adwaita-icon-theme python3 librsvg - ]; - propagatedBuildInputs = with python3.pkgs; [ lxml evdev pygobject3 ]; - - mesonFlags = [ - "-Druntime-dependency-checks=false" - "-Dtests=false" - ]; - - postPatch = '' - chmod +x meson_install.sh # patchShebangs requires executable file - patchShebangs meson_install.sh data/generate-piper-gresource.xml.py - ''; - - meta = with lib; { - description = "GTK frontend for ratbagd mouse config daemon"; - mainProgram = "piper"; - homepage = "https://github.com/libratbag/piper"; - license = licenses.gpl2; - maintainers = with maintainers; [ mvnetbiz ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pipework/default.nix b/pkgs/os-specific/linux/pipework/default.nix deleted file mode 100644 index 56d192ad308b..000000000000 --- a/pkgs/os-specific/linux/pipework/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, makeWrapper -, bridge-utils, iproute2, lxc, openvswitch, docker, busybox, dhcpcd -}: - -stdenv.mkDerivation { - pname = "pipework"; - version = "2017-08-22"; - src = fetchFromGitHub { - owner = "jpetazzo"; - repo = "pipework"; - rev = "ae42f1b5fef82b3bc23fe93c95c345e7af65fef3"; - sha256 = "0c342m0bpq6ranr7dsxk9qi5mg3j5aw9wv85ql8gprdb2pz59qy8"; - }; - nativeBuildInputs = [ makeWrapper ]; - installPhase = '' - install -D pipework $out/bin/pipework - wrapProgram $out/bin/pipework --prefix PATH : \ - ${lib.makeBinPath [ bridge-utils iproute2 lxc openvswitch docker busybox dhcpcd ]}; - ''; - meta = with lib; { - description = "Software-Defined Networking tools for LXC"; - mainProgram = "pipework"; - homepage = "https://github.com/jpetazzo/pipework"; - license = licenses.asl20; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/pktgen/default.nix b/pkgs/os-specific/linux/pktgen/default.nix deleted file mode 100644 index 66971444e71a..000000000000 --- a/pkgs/os-specific/linux/pktgen/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, fetchpatch -, meson -, ninja -, pkg-config -, dpdk -, libbsd -, libpcap -, lua5_3 -, numactl -, util-linux -, gtk2 -, which -, withGtk ? false -}: - -stdenv.mkDerivation rec { - pname = "pktgen"; - version = "23.10.0"; - - src = fetchFromGitHub { - owner = "pktgen"; - repo = "Pktgen-DPDK"; - rev = "pktgen-${version}"; - sha256 = "sha256-eujVEU+XkxF1kIGQJoBW3oXXNSqBEzx6mwR2XYoHinM="; - }; - - nativeBuildInputs = [ meson ninja pkg-config ]; - - buildInputs = [ - dpdk libbsd libpcap lua5_3 numactl which - ] ++ lib.optionals withGtk [ - gtk2 - ]; - - RTE_SDK = dpdk; - GUI = lib.optionalString withGtk "true"; - - env.NIX_CFLAGS_COMPILE = toString [ - "-Wno-error=sign-compare" - ]; - - # requires symbols from this file - NIX_LDFLAGS = "-lrte_net_bond"; - - postPatch = '' - substituteInPlace lib/common/lscpu.h --replace /usr/bin/lscpu ${util-linux}/bin/lscpu - ''; - - postInstall = '' - # meson installs unneeded files with conflicting generic names, such as - # include/cli.h and lib/liblua.so. - rm -rf $out/include $out/lib - ''; - - meta = with lib; { - description = "Traffic generator powered by DPDK"; - homepage = "http://dpdk.org/"; - license = licenses.bsdOriginal; - platforms = platforms.linux; - maintainers = [ maintainers.abuibrahim ]; - }; -} diff --git a/pkgs/os-specific/linux/ply/default.nix b/pkgs/os-specific/linux/ply/default.nix deleted file mode 100644 index 0c8e323b4349..000000000000 --- a/pkgs/os-specific/linux/ply/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv, kernel, fetchFromGitHub, autoreconfHook, bison, flex, p7zip, rsync }: - -stdenv.mkDerivation rec { - pname = "ply"; - version = "2.1.1-${lib.substring 0 7 src.rev}"; - - nativeBuildInputs = [ autoreconfHook flex bison p7zip rsync ]; - - src = fetchFromGitHub { - owner = "iovisor"; - repo = "ply"; - rev = "e25c9134b856cc7ffe9f562ff95caf9487d16b59"; - sha256 = "1178z7vvnjwnlxc98g2962v16878dy7bd0b2njsgn4vqgrnia7i5"; - }; - - preAutoreconf = '' - # If kernel sources are a folder (i.e. fetched from git), we just copy them in - # Since they are owned by uid 0 and read-only, we need to fix permissions - if [ -d ${kernel.src} ]; then - cp -r ${kernel.src} linux-${kernel.version} - chown -R $(whoami): linux-${kernel.version} - chmod -R a+w linux-${kernel.version} - else - # ply wants to install header files to its build directory - # use 7z to handle multiple archive formats transparently - 7z x ${kernel.src} -so | 7z x -aoa -si -ttar - fi - - configureFlagsArray+=(--with-kerneldir=$(echo $(pwd)/linux-*)) - ./autogen.sh --prefix=$out - ''; - - meta = with lib; { - description = "Dynamic tracing in Linux"; - mainProgram = "ply"; - homepage = "https://wkz.github.io/ply/"; - license = [ licenses.gpl2Only ]; - maintainers = with maintainers; [ mic92 mbbx6spp ]; - }; -} diff --git a/pkgs/os-specific/linux/plymouth/add-runtime-plugin-path.patch b/pkgs/os-specific/linux/plymouth/add-runtime-plugin-path.patch deleted file mode 100644 index e4bd095bfd83..000000000000 --- a/pkgs/os-specific/linux/plymouth/add-runtime-plugin-path.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff --git a/meson.build b/meson.build -index 650ad189..1e1ebe1d 100644 ---- a/meson.build -+++ b/meson.build -@@ -18,6 +18,11 @@ plymouth_time_dir = get_option('prefix') / get_option('localstatedir') / 'lib' / - - plymouth_runtime_dir = get_option('runstatedir') / 'plymouth' - plymouth_runtime_theme_path = plymouth_runtime_dir / 'themes/' -+if get_option('runtime-plugins') -+ plymouth_runtime_plugin_path = plymouth_runtime_dir / 'plugins/' -+else -+ plymouth_runtime_plugin_path = plymouth_plugin_path -+endif - - # Dependencies - cc = meson.get_compiler('c') -@@ -76,7 +81,7 @@ conf.set('PLY_ENABLE_TRACING', get_option('tracing')) - conf.set_quoted('PLYMOUTH_RUNTIME_DIR', plymouth_runtime_dir) - conf.set_quoted('PLYMOUTH_THEME_PATH', plymouth_theme_path) - conf.set_quoted('PLYMOUTH_RUNTIME_THEME_PATH', plymouth_runtime_theme_path) --conf.set_quoted('PLYMOUTH_PLUGIN_PATH', plymouth_plugin_path) -+conf.set_quoted('PLYMOUTH_PLUGIN_PATH', plymouth_runtime_plugin_path) - conf.set_quoted('PLYMOUTH_POLICY_DIR', plymouth_policy_dir) - conf.set_quoted('PLYMOUTH_CONF_DIR', plymouth_conf_dir) - conf.set_quoted('PLYMOUTH_TIME_DIRECTORY', plymouth_time_dir) -diff --git a/meson_options.txt b/meson_options.txt -index 4f601bb0..61fccc12 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -28,6 +28,11 @@ option('runstatedir', - value: '/run', - description: 'runstatedir', - ) -+option('runtime-plugins', -+ type: 'boolean', -+ value: false, -+ description: 'Use runstatedir for loading theme plugins', -+) - option('boot-tty', - type: 'string', - value: '/dev/tty1', -diff --git a/src/libply-splash-core/meson.build b/src/libply-splash-core/meson.build -index 69636b13..02bd5cbd 100644 ---- a/src/libply-splash-core/meson.build -+++ b/src/libply-splash-core/meson.build -@@ -31,7 +31,7 @@ libply_splash_core_cflags = [ - '-DPLYMOUTH_BACKGROUND_COLOR=@0@'.format(get_option('background-color')), - '-DPLYMOUTH_BACKGROUND_START_COLOR=@0@'.format(get_option('background-start-color-stop')), - '-DPLYMOUTH_BACKGROUND_END_COLOR=@0@'.format(get_option('background-end-color-stop')), -- '-DPLYMOUTH_PLUGIN_PATH="@0@"'.format(plymouth_plugin_path), -+ '-DPLYMOUTH_PLUGIN_PATH="@0@"'.format(plymouth_runtime_plugin_path), - ] - - libply_splash_core = library('ply-splash-core', -diff --git a/src/libply-splash-graphics/meson.build b/src/libply-splash-graphics/meson.build -index 32fad963..02b8440b 100644 ---- a/src/libply-splash-graphics/meson.build -+++ b/src/libply-splash-graphics/meson.build -@@ -20,7 +20,7 @@ libply_splash_graphics_cflags = [ - '-DPLYMOUTH_BACKGROUND_COLOR=@0@'.format(get_option('background-color')), - '-DPLYMOUTH_BACKGROUND_START_COLOR=@0@'.format(get_option('background-start-color-stop')), - '-DPLYMOUTH_BACKGROUND_END_COLOR=@0@'.format(get_option('background-end-color-stop')), -- '-DPLYMOUTH_PLUGIN_PATH="@0@"'.format(plymouth_plugin_path), -+ '-DPLYMOUTH_PLUGIN_PATH="@0@"'.format(plymouth_runtime_plugin_path), - ] - - libply_splash_graphics = library('ply-splash-graphics', diff --git a/pkgs/os-specific/linux/plymouth/default.nix b/pkgs/os-specific/linux/plymouth/default.nix deleted file mode 100644 index 02245a108611..000000000000 --- a/pkgs/os-specific/linux/plymouth/default.nix +++ /dev/null @@ -1,127 +0,0 @@ -{ lib -, stdenv -, fetchFromGitLab -, writeText -, substituteAll -, meson -, pkg-config -, ninja -, docbook-xsl-nons -, gettext -, libxslt -, gtk3 -, libdrm -, libevdev -, libpng -, libxkbcommon -, pango -, systemd -, xorg -, fontconfig -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "plymouth"; - version = "24.004.60"; - - outputs = [ "out" "dev" ]; - - src = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "plymouth"; - repo = "plymouth"; - rev = finalAttrs.version; - hash = "sha256-9JmZCm8bjteJTQrMSJeL4x2CAI6RpKowFUDSCcMS4MM="; - }; - - patches = [ - # do not create unnecessary symlink to non-existent header-image.png - ./dont-create-broken-symlink.patch - # add support for loading plugins from /run to assist NixOS module - ./add-runtime-plugin-path.patch - # fix FHS hardcoded paths - (substituteAll { - src = ./fix-paths.patch; - fcmatch = "${fontconfig}/bin/fc-match"; - }) - ]; - - strictDeps = true; - - nativeBuildInputs = [ - meson - pkg-config - ninja - docbook-xsl-nons - gettext - libxslt - ]; - - buildInputs = [ - gtk3 - libdrm - libevdev - libpng - libxkbcommon - pango - systemd - xorg.xkeyboardconfig - ]; - - mesonFlags = let - # https://gitlab.freedesktop.org/plymouth/plymouth/-/blob/a5eda165689864cc9a25ec14fd8c6da458598f42/meson.build#L47 - crossFile = writeText "cross-file.conf" '' - [binaries] - systemd-tty-ask-password-agent = '${lib.getBin systemd}/bin/systemd-tty-ask-password-agent' - ''; - in [ - "--sysconfdir=/etc" - "--localstatedir=/var" - "-Dlogo=/etc/plymouth/logo.png" - "-Dbackground-color=0x000000" - "-Dbackground-start-color-stop=0x000000" - "-Dbackground-end-color-stop=0x000000" - "-Drelease-file=/etc/os-release" - "-Dudev=enabled" - "-Drunstatedir=/run" - "-Druntime-plugins=true" - "--cross-file=${crossFile}" - ]; - - postPatch = '' - substituteInPlace meson.build \ - --replace "run_command(['scripts/generate-version.sh'], check: true).stdout().strip()" "'${finalAttrs.version}'" - - # prevent installing unused non-$out dirs to DESTDIR - sed -i '/^install_emptydir/d' src/meson.build - ''; - - postInstall = '' - # Move stuff from DESTDIR to proper location. - cp -a "$DESTDIR/etc" "$out" - rm -r "$DESTDIR/etc" - for o in $(getAllOutputNames); do - if [[ "$o" = "debug" ]]; then continue; fi - cp -a "$DESTDIR/''${!o}" "$(dirname "''${!o}")" - rm -r "$DESTDIR/''${!o}" - done - # Ensure the DESTDIR is removed. - rmdir "$DESTDIR/${builtins.storeDir}" "$DESTDIR/${builtins.dirOf builtins.storeDir}" "$DESTDIR" - ''; - - # HACK: We want to install configuration files to $out/etc - # but Plymouth should read them from /etc on a NixOS system. - # With autotools, it was possible to override Make variables - # at install time but Meson does not support this - # so we need to convince it to install all files to a temporary - # location using DESTDIR and then move it to proper one in postInstall. - env.DESTDIR = "${placeholder "out"}/dest"; - - meta = with lib; { - homepage = "https://www.freedesktop.org/wiki/Software/Plymouth/"; - description = "Boot splash and boot logger"; - license = licenses.gpl2Plus; - maintainers = [ maintainers.goibhniu ] ++ teams.gnome.members; - platforms = platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/plymouth/dont-create-broken-symlink.patch b/pkgs/os-specific/linux/plymouth/dont-create-broken-symlink.patch deleted file mode 100644 index 7accb7c9efcb..000000000000 --- a/pkgs/os-specific/linux/plymouth/dont-create-broken-symlink.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/themes/spinfinity/meson.build b/themes/spinfinity/meson.build -index f48e8e55..5a2050c8 100644 ---- a/themes/spinfinity/meson.build -+++ b/themes/spinfinity/meson.build -@@ -53,8 +53,3 @@ install_data( - 'throbber-33.png', - install_dir: plymouth_theme_path / 'spinfinity', - ) -- --install_symlink('header-image.png', -- install_dir: plymouth_theme_path / 'spinfinity', -- pointing_to: plymouth_logo_file, --) diff --git a/pkgs/os-specific/linux/plymouth/fix-paths.patch b/pkgs/os-specific/linux/plymouth/fix-paths.patch deleted file mode 100644 index 5f930403f8ac..000000000000 --- a/pkgs/os-specific/linux/plymouth/fix-paths.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/src/plugins/controls/label-freetype/plugin.c b/src/plugins/controls/label-freetype/plugin.c -index 917b04c0..83f2bec2 100644 ---- a/src/plugins/controls/label-freetype/plugin.c -+++ b/src/plugins/controls/label-freetype/plugin.c -@@ -127,7 +127,7 @@ find_default_font_path (void) - FILE *fp; - static char fc_match_out[PATH_MAX]; - -- fp = popen ("/usr/bin/fc-match -f %{file}", "r"); -+ fp = popen ("@fcmatch@ -f %{file}", "r"); - if (!fp) - return FONT_FALLBACK; - -@@ -144,7 +144,7 @@ find_default_monospace_font_path (void) - FILE *fp; - static char fc_match_out[PATH_MAX]; - -- fp = popen ("/usr/bin/fc-match -f %{file} monospace", "r"); -+ fp = popen ("@fcmatch@ -f %{file} monospace", "r"); - if (!fp) - return MONOSPACE_FONT_FALLBACK; diff --git a/pkgs/os-specific/linux/pm-utils/default.nix b/pkgs/os-specific/linux/pm-utils/default.nix deleted file mode 100644 index 4076641717f4..000000000000 --- a/pkgs/os-specific/linux/pm-utils/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib, stdenv, fetchurl, coreutils, gnugrep, util-linux, kmod -, procps, kbd, dbus }: - -let - - binPath = lib.makeBinPath - [ coreutils gnugrep util-linux kmod procps kbd dbus ]; - - sbinPath = lib.makeSearchPathOutput "bin" "sbin" - [ procps ]; - -in - -stdenv.mkDerivation rec { - pname = "pm-utils"; - version = "1.4.1"; - - src = fetchurl { - url = "https://pm-utils.freedesktop.org/releases/pm-utils-${version}.tar.gz"; - sha256 = "02qc6zaf7ams6qcc470fwb6jvr4abv3lrlx16clqpn36501rkn4f"; - }; - - configureFlags = [ "--sysconfdir=/etc" ]; - - preConfigure = - '' - # Install the manpages (xmlto isn't really needed). - substituteInPlace man/Makefile.in --replace '@HAVE_XMLTO_TRUE@' "" - - # Set the PATH properly. - substituteInPlace pm/pm-functions.in --replace '/sbin:/usr/sbin:/bin:/usr/bin' '$PATH:${binPath}:${sbinPath}' - - substituteInPlace src/pm-action.in --replace 'tr ' '${coreutils}/bin/tr ' - - substituteInPlace pm/sleep.d/00logging --replace /bin/uname "$(type -P uname)" - - substituteInPlace pm/sleep.d/90clock --replace /sbin/hwclock hwclock - ''; - - postInstall = - '' - # Remove some hooks that have doubtful usefulness. See - # http://zinc.canonical.com/~cking/power-benchmarking/pm-utils-results/results.txt. - # In particular, journal-commit breaks things if you have - # read-only bind mounts, since it ends up remounting the - # underlying filesystem read-only. - rm $out/lib/pm-utils/power.d/{journal-commit,readahead} - ''; - - meta = { - homepage = "https://pm-utils.freedesktop.org/wiki/"; - description = "A small collection of scripts that handle suspend and resume on behalf of HAL"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pmount/default.nix b/pkgs/os-specific/linux/pmount/default.nix deleted file mode 100644 index 8267a2d4a7f9..000000000000 --- a/pkgs/os-specific/linux/pmount/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, stdenv, fetchurl, intltool, ntfs3g, util-linux -, mediaDir ? "/media/" -, lockDir ? "/var/lock/pmount" -, whiteList ? "/etc/pmount.allow" -}: - -# constraint mention in the configure.ac -assert lib.hasSuffix "/" mediaDir; - -stdenv.mkDerivation rec { - pname = "pmount"; - version = "0.9.23"; - - src = fetchurl { - url = "mirror://debian/pool/main/p/pmount/pmount_${version}.orig.tar.bz2"; - sha256 = "db38fc290b710e8e9e9d442da2fb627d41e13b3ee80326c15cc2595ba00ea036"; - }; - - nativeBuildInputs = [ intltool util-linux ]; - buildInputs = [ util-linux ]; - - configureFlags = [ - "--with-media-dir=${mediaDir}" - "--with-lock-dir=${lockDir}" - "--with-whitelist=${whiteList}" - "--with-mount-prog=${util-linux}/bin/mount" - "--with-umount-prog=${util-linux}/bin/umount" - "--with-mount-ntfs3g=${ntfs3g}/sbin/mount.ntfs-3g" - ]; - - postConfigure = '' - # etc/Mafile.am is hardcoded and it does not respect the --prefix option. - substituteInPlace ./etc/Makefile --replace DESTDIR prefix - # Do not change ownership & Do not add the set user ID bit - substituteInPlace ./src/Makefile --replace '-o root -g root -m 4755 ' '-m 755 ' - ''; - - doCheck = false; # fails 1 out of 1 tests with "Error: could not open fstab-type file: No such file or directory" - - meta = { - homepage = "https://bazaar.launchpad.net/~fourmond/pmount/main/files"; - description = "Mount removable devices as normal user"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/policycoreutils/default.nix b/pkgs/os-specific/linux/policycoreutils/default.nix deleted file mode 100644 index 5fdb3583b5cf..000000000000 --- a/pkgs/os-specific/linux/policycoreutils/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchurl, gettext, libsepol, libselinux, libsemanage, libxcrypt }: - -stdenv.mkDerivation rec { - pname = "policycoreutils"; - version = "3.6"; - inherit (libsepol) se_url; - - src = fetchurl { - url = "${se_url}/${version}/policycoreutils-${version}.tar.gz"; - hash = "sha256-p2rEMepAo1qDFkzpAHkJwcbBL9EFZif2IhROSnBcCiw="; - }; - - postPatch = '' - # Fix install references - substituteInPlace po/Makefile \ - --replace /usr/bin/install install --replace /usr/share /share - substituteInPlace newrole/Makefile --replace /usr/share /share - ''; - - nativeBuildInputs = [ gettext ]; - buildInputs = [ libsepol libselinux libsemanage libxcrypt ]; - - makeFlags = [ - "PREFIX=$(out)" - "SBINDIR=$(out)/bin" - "ETCDIR=$(out)/etc" - "BASHCOMPLETIONDIR=$out/share/bash-completion/completions" - "LOCALEDIR=$(out)/share/locale" - "MAN5DIR=$(out)/share/man/man5" - ]; - - meta = with lib; { - description = "SELinux policy core utilities"; - license = licenses.gpl2; - inherit (libsepol.meta) homepage platforms maintainers; - }; -} diff --git a/pkgs/os-specific/linux/pommed-light/default.nix b/pkgs/os-specific/linux/pommed-light/default.nix deleted file mode 100644 index f92a9c1b5d1d..000000000000 --- a/pkgs/os-specific/linux/pommed-light/default.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib, stdenv -, fetchFromGitHub -, fetchpatch -, pciutils -, libconfuse -, alsa-lib -, audiofile -, pkg-config -, zlib -, eject -}: - -stdenv.mkDerivation rec { - pname = "pommed-light"; - version = "1.51lw"; - - src = fetchFromGitHub { - owner = "bytbox"; - repo = "pommed-light"; - rev = "v${version}"; - sha256 = "18fvdwwhcl6s4bpf2f2i389s71c8k4g0yb81am9rdddqmzaw27iy"; - }; - - patches = [ - # Pull fix pending upstream inclusion for -fno-common toolchain support: - # https://github.com/bytbox/pommed-light/pull/38 - (fetchpatch { - name = "fno-common.patch"; - url = "https://github.com/bytbox/pommed-light/commit/5848b49b45a9c3ab047ebd17deb2162daab1e0b8.patch"; - sha256 = "15rsq2i4rqp4ssab20486a1wgxi2cp87b7nxyk9h23gdwld713vf"; - }) - ]; - - postPatch = '' - substituteInPlace pommed.conf.mactel --replace /usr $out - substituteInPlace pommed.conf.pmac --replace /usr $out - substituteInPlace pommed/beep.h --replace /usr $out - substituteInPlace pommed/cd_eject.c --replace /usr/bin/eject ${eject}/bin/eject - ''; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - pciutils - libconfuse - alsa-lib - audiofile - zlib - eject - ]; - - installPhase = '' - install -Dm755 pommed/pommed $out/bin/pommed - install -Dm644 pommed.conf.mactel $out/etc/pommed.conf.mactel - install -Dm644 pommed.conf.pmac $out/etc/pommed.conf.pmac - - # Man page - install -Dm644 pommed.1 $out/share/man/man1/pommed.1 - - # Sounds - install -Dm644 pommed/data/goutte.wav $out/share/pommed/goutte.wav - install -Dm644 pommed/data/click.wav $out/share/pommed/click.wav - ''; - - meta = { - description = "A trimmed version of the pommed hotkey handler for MacBooks"; - mainProgram = "pommed"; - longDescription = '' - This is a stripped-down version of pommed with client, dbus, and - ambient light sensor support removed, optimized for use with dwm - and the like. - ''; - homepage = "https://github.com/bytbox/pommed-light"; - platforms = [ "x86_64-linux" ]; - license = lib.licenses.gpl2; - }; -} diff --git a/pkgs/os-specific/linux/power-calibrate/default.nix b/pkgs/os-specific/linux/power-calibrate/default.nix deleted file mode 100644 index d2ce5d4d4fa7..000000000000 --- a/pkgs/os-specific/linux/power-calibrate/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, lib, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "power-calibrate"; - version = "0.01.36"; - - src = fetchFromGitHub { - owner = "ColinIanKing"; - repo = pname; - rev = "V${version}"; - hash = "sha256-7NKR82waxooB62D59kRmJPqxoVHX9OIWKwLrmzsg9OQ="; - }; - - installFlags = [ - "BINDIR=${placeholder "out"}/bin" - "MANDIR=${placeholder "out"}/share/man/man8" - "BASHDIR=${placeholder "out"}/share/bash-completion/completions" - ]; - - meta = with lib; { - description = "Tool to calibrate power consumption"; - mainProgram = "power-calibrate"; - homepage = "https://github.com/ColinIanKing/power-calibrate"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ dtzWill ]; - }; -} diff --git a/pkgs/os-specific/linux/power-profiles-daemon/default.nix b/pkgs/os-specific/linux/power-profiles-daemon/default.nix deleted file mode 100644 index 11f26e5013a8..000000000000 --- a/pkgs/os-specific/linux/power-profiles-daemon/default.nix +++ /dev/null @@ -1,123 +0,0 @@ -{ stdenv -, lib -, bash-completion -, pkg-config -, meson -, mesonEmulatorHook -, ninja -, fetchFromGitLab -, libgudev -, glib -, polkit -, dbus -, gobject-introspection -, gettext -, gtk-doc -, docbook-xsl-nons -, docbook_xml_dtd_412 -, libxml2 -, libxslt -, upower -, umockdev -, systemd -, python3 -, nixosTests -}: - -stdenv.mkDerivation rec { - pname = "power-profiles-daemon"; - version = "0.21"; - - outputs = [ "out" "devdoc" ]; - - src = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "upower"; - repo = "power-profiles-daemon"; - rev = version; - sha256 = "sha256-5JbMbz38SeNEkVKFjJLxeUHiOrx+QCaK/vXgRPbzwzY="; - }; - - nativeBuildInputs = [ - pkg-config - meson - ninja - gettext - gtk-doc - docbook-xsl-nons - docbook_xml_dtd_412 - libxml2 # for xmllint for stripping GResources - libxslt # for xsltproc for building docs - gobject-introspection - # checkInput but cheked for during the configuring - (python3.pythonOnBuildForHost.withPackages (ps: with ps; [ - pygobject3 - dbus-python - python-dbusmock - argparse-manpage - shtab - ])) - ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ - mesonEmulatorHook - ]; - - buildInputs = [ - bash-completion - libgudev - systemd - upower - glib - polkit - # for cli tool - (python3.withPackages (ps: [ - ps.pygobject3 - ])) - ]; - - strictDeps = true; - - checkInputs = [ - umockdev - ]; - - nativeCheckInputs = [ - umockdev - dbus - ]; - - mesonFlags = [ - "-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system" - "-Dgtk_doc=true" - "-Dpylint=disabled" - "-Dzshcomp=${placeholder "out"}/share/zsh/site-functions" - "-Dtests=${lib.boolToString (stdenv.buildPlatform.canExecute stdenv.hostPlatform)}" - ]; - - doCheck = true; - - PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions"; - - postPatch = '' - patchShebangs --build \ - tests/integration-test.py \ - tests/unittest_inspector.py - - patchShebangs --host \ - src/powerprofilesctl - ''; - - passthru = { - tests = { - nixos = nixosTests.power-profiles-daemon; - }; - }; - - meta = with lib; { - homepage = "https://gitlab.freedesktop.org/hadess/power-profiles-daemon"; - description = "Makes user-selected power profiles handling available over D-Bus"; - mainProgram = "powerprofilesctl"; - platforms = platforms.linux; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ mvnetbiz picnoir ]; - }; -} diff --git a/pkgs/os-specific/linux/powercap/default.nix b/pkgs/os-specific/linux/powercap/default.nix deleted file mode 100644 index e705b6a34857..000000000000 --- a/pkgs/os-specific/linux/powercap/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }: - -stdenv.mkDerivation rec { - pname = "powercap"; - version = "0.6.0"; - - src = fetchFromGitHub { - owner = "powercap"; - repo = "powercap"; - rev = "v${version}"; - sha256 = "sha256-l+IpFqBnCYUU825++sUPySD/Ku0TEIX2kt+S0Wml6iA="; - }; - - # in master post 0.6.0, see https://github.com/powercap/powercap/issues/8 - patches = [ - (fetchpatch { - name = "fix-pkg-config.patch"; - url = "https://github.com/powercap/powercap/commit/278dceb51635686e343edfc357b6020533fff299.patch"; - sha256 = "0h62j63xdn0iqyx4xbia6hlmdjn45camb82z4vv6sb37x9sph7rg"; - }) - ]; - - nativeBuildInputs = [ cmake ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=On" - ]; - - meta = with lib; { - description = "Tools and library to read/write to the Linux power capping framework (sysfs interface)"; - license = licenses.bsd3; - platforms = platforms.linux; - maintainers = with maintainers; [ rowanG077 ]; - }; -} diff --git a/pkgs/os-specific/linux/powerstat/default.nix b/pkgs/os-specific/linux/powerstat/default.nix deleted file mode 100644 index 83f0aa634efa..000000000000 --- a/pkgs/os-specific/linux/powerstat/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, lib, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "powerstat"; - version = "0.04.03"; - - src = fetchFromGitHub { - owner = "ColinIanKing"; - repo = pname; - rev = "V${version}"; - hash = "sha256-Y9djoy2RaEe4j+1g+9Q2MxEpVzPMA8oyJ92hlQm3Lqg="; - }; - - installFlags = [ - "BINDIR=${placeholder "out"}/bin" - "MANDIR=${placeholder "out"}/share/man/man8" - "BASHDIR=${placeholder "out"}/share/bash-completion/completions" - ]; - - meta = with lib; { - description = "Laptop power measuring tool"; - mainProgram = "powerstat"; - homepage = "https://github.com/ColinIanKing/powerstat"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ womfoo ]; - }; -} diff --git a/pkgs/os-specific/linux/powertop/default.nix b/pkgs/os-specific/linux/powertop/default.nix deleted file mode 100644 index 756bd99816fb..000000000000 --- a/pkgs/os-specific/linux/powertop/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, gettext -, libnl -, ncurses -, pciutils -, pkg-config -, zlib -, autoreconfHook -, autoconf-archive -, nix-update-script -, testers -, powertop -, xorg -}: - -stdenv.mkDerivation rec { - pname = "powertop"; - version = "2.15"; - - src = fetchFromGitHub { - owner = "fenrus75"; - repo = pname; - rev = "v${version}"; - hash = "sha256-53jfqt0dtMqMj3W3m6ravUTzApLQcljDHfdXejeZa4M="; - }; - - outputs = [ "out" "man" ]; - - nativeBuildInputs = [ pkg-config autoreconfHook autoconf-archive ]; - buildInputs = [ gettext libnl ncurses pciutils zlib ]; - - postPatch = '' - substituteInPlace src/main.cpp --replace "/sbin/modprobe" "modprobe" - substituteInPlace src/calibrate/calibrate.cpp --replace "/usr/bin/xset" "${lib.getExe xorg.xset}" - substituteInPlace src/tuning/bluetooth.cpp --replace "/usr/bin/hcitool" "hcitool" - ''; - - passthru = { - updateScript = nix-update-script { }; - tests.version = testers.testVersion { - package = powertop; - command = "powertop --version"; - inherit version; - }; - }; - - meta = with lib; { - inherit (src.meta) homepage; - changelog = "https://github.com/fenrus75/powertop/releases/tag/v${version}"; - description = "Analyze power consumption on Intel-based laptops"; - mainProgram = "powertop"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ fpletz anthonyroussel ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pps-tools/default.nix b/pkgs/os-specific/linux/pps-tools/default.nix deleted file mode 100644 index 66754e5148ec..000000000000 --- a/pkgs/os-specific/linux/pps-tools/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "pps-tools"; - version = "1.0.3"; - - src = fetchFromGitHub { - owner = "redlab-i"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-eLLFHrCgOQzOtVxlAsZ5X91KK+vZiKMGL7zbQFiIZtI="; - }; - - outputs = [ "out" "dev" ]; - - installPhase = '' - mkdir -p $out/bin - mkdir -p $dev/include - mkdir -p $out/{usr/bin,usr/include/sys} - make install DESTDIR=$out - mv $out/usr/bin/* $out/bin - mv $out/usr/include/* $dev/include/ - rm -rf $out/usr/ - ''; - - meta = with lib; { - description = "User-space tools for LinuxPPS"; - homepage = "http://linuxpps.org/"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ sorki ]; - }; -} diff --git a/pkgs/os-specific/linux/prl-tools/autostart.desktop b/pkgs/os-specific/linux/prl-tools/autostart.desktop deleted file mode 100644 index b8eb27fdd992..000000000000 --- a/pkgs/os-specific/linux/prl-tools/autostart.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Version=@version@ -Encoding=UTF-8 -Name=@description@ -Type=Application -Exec=@exec@ -X-KDE-autostart-phase=1 -GenericName[en_US]= diff --git a/pkgs/os-specific/linux/prl-tools/default.nix b/pkgs/os-specific/linux/prl-tools/default.nix deleted file mode 100644 index 6acb8eba3863..000000000000 --- a/pkgs/os-specific/linux/prl-tools/default.nix +++ /dev/null @@ -1,176 +0,0 @@ -{ lib -, stdenv -, fetchurl -, autoPatchelfHook -, bbe -, makeWrapper -, p7zip -, perl -, undmg -, dbus-glib -, glib -, xorg -, zlib -, kernel -, bash -, cups -, gawk -, netcat -, timetrap -, util-linux -}: - -let - kernelVersion = kernel.modDirVersion; - kernelDir = "${kernel.dev}/lib/modules/${kernelVersion}"; - - libPath = lib.concatStringsSep ":" [ "${glib.out}/lib" "${xorg.libXrandr}/lib" ]; - scriptPath = lib.concatStringsSep ":" [ - "${bash}/bin" - "${cups}/sbin" - "${gawk}/bin" - "${netcat}/bin" - "${timetrap}/bin" - "${util-linux}/bin" - ]; -in -stdenv.mkDerivation (finalAttrs: { - pname = "prl-tools"; - version = "19.3.0-54924"; - - # We download the full distribution to extract prl-tools-lin.iso from - # => ${dmg}/Parallels\ Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso - src = fetchurl { - url = "https://download.parallels.com/desktop/v${lib.versions.major finalAttrs.version}/${finalAttrs.version}/ParallelsDesktop-${finalAttrs.version}.dmg"; - hash = "sha256-Hj1manQSZHiht6mmWes44RVk2Bdqp6QdNCdK322bzWc="; - }; - - hardeningDisable = [ "pic" "format" ]; - - nativeBuildInputs = [ - autoPatchelfHook - bbe - makeWrapper - p7zip - perl - undmg - ] ++ kernel.moduleBuildDependencies; - - buildInputs = [ - dbus-glib - glib - xorg.libX11 - xorg.libXcomposite - xorg.libXext - xorg.libXrandr - xorg.libXi - xorg.libXinerama - zlib - ]; - - runtimeDependencies = [ - glib - xorg.libXrandr - ]; - - unpackPhase = '' - runHook preUnpack - - undmg $src - export sourceRoot=prl-tools-build - 7z x "Parallels Desktop.app/Contents/Resources/Tools/prl-tools-lin${lib.optionalString stdenv.isAarch64 "-arm"}.iso" -o$sourceRoot - ( cd $sourceRoot/kmods; tar -xaf prl_mod.tar.gz ) - - runHook postUnpack - ''; - - buildPhase = '' - runHook preBuild - - ( # kernel modules - cd kmods - make -f Makefile.kmods \ - KSRC=${kernelDir}/source \ - HEADERS_CHECK_DIR=${kernelDir}/source \ - KERNEL_DIR=${kernelDir}/build \ - SRC=${kernelDir}/build \ - KVER=${kernelVersion} - ) - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - ( # kernel modules - cd kmods - mkdir -p $out/lib/modules/${kernelVersion}/extra - cp prl_fs/SharedFolders/Guest/Linux/prl_fs/prl_fs.ko $out/lib/modules/${kernelVersion}/extra - cp prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/prl_fs_freeze.ko $out/lib/modules/${kernelVersion}/extra - cp prl_tg/Toolgate/Guest/Linux/prl_tg/prl_tg.ko $out/lib/modules/${kernelVersion}/extra - ${lib.optionalString stdenv.isAarch64 - "cp prl_notifier/Installation/lnx/prl_notifier/prl_notifier.ko $out/lib/modules/${kernelVersion}/extra"} - ) - - ( # tools - cd tools/tools${if stdenv.isAarch64 then "-arm64" else if stdenv.isx86_64 then "64" else "32"} - mkdir -p $out/lib - - # prltoolsd contains hardcoded /bin/bash path - # we're lucky because it uses only -c command - # => replace to /bin/sh - bbe -e "s:/bin/bash:/bin/sh\x00\x00:" -o bin/prltoolsd.tmp bin/prltoolsd - rm -f bin/prltoolsd - mv bin/prltoolsd.tmp bin/prltoolsd - - # install binaries - for i in bin/* sbin/prl_nettool sbin/prl_snapshot; do - # also patch binaries to replace /usr/bin/XXX to XXX - # here a two possible cases: - # 1. it is uses as null terminated string and should be truncated by null; - # 2. it is uses inside shell script and should be truncated by space. - for p in bin/* sbin/prl_nettool sbin/prl_snapshot sbin/prlfsmountd; do - p=$(basename $p) - bbe -e "s:/usr/bin/$p\x00:./$p\x00\x00\x00\x00\x00\x00\x00\x00:" -o $i.tmp $i - bbe -e "s:/usr/sbin/$p\x00:./$p\x00\x00\x00\x00\x00\x00\x00\x00 :" -o $i $i.tmp - bbe -e "s:/usr/bin/$p:$p :" -o $i.tmp $i - bbe -e "s:/usr/sbin/$p:$p :" -o $i $i.tmp - done - - install -Dm755 $i $out/$i - done - - install -Dm755 ../../tools/prlfsmountd.sh $out/sbin/prlfsmountd - for f in $out/bin/* $out/sbin/*; do - wrapProgram $f \ - --prefix LD_LIBRARY_PATH ':' "${libPath}" \ - --prefix PATH ':' "${scriptPath}" - done - - for i in lib/libPrl*.0.0; do - cp $i $out/lib - ln -s $out/$i $out/''${i%.0.0} - done - - mkdir -p $out/share/man/man8 - install -Dm644 ../mount.prl_fs.8 $out/share/man/man8 - - substituteInPlace ../99prltoolsd-hibernate \ - --replace "/bin/bash" "${bash}/bin/bash" - - mkdir -p $out/etc/pm/sleep.d - install -Dm644 ../99prltoolsd-hibernate $out/etc/pm/sleep.d - ) - - runHook postInstall - ''; - - meta = with lib; { - description = "Parallels Tools for Linux guests"; - homepage = "https://parallels.com"; - license = licenses.unfree; - maintainers = with maintainers; [ catap wegank ]; - platforms = platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/procdump/default.nix b/pkgs/os-specific/linux/procdump/default.nix deleted file mode 100644 index 0d648782e38c..000000000000 --- a/pkgs/os-specific/linux/procdump/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, bash, coreutils, gdb, zlib }: - -stdenv.mkDerivation rec { - pname = "procdump"; - version = "1.2"; - - src = fetchFromGitHub { - owner = "Microsoft"; - repo = "ProcDump-for-Linux"; - rev = version; - sha256 = "sha256-gVswAezHl7E2cBTJEQhPFXhHkzhWVHSpPF8m0s8+ekc="; - }; - - patches = [ - # Pull upstream patch to fix parallel builds: - # https://github.com/Sysinternals/ProcDump-for-Linux/pull/133 - (fetchpatch { - name = "parallel.patch"; - url = "https://github.com/Sysinternals/ProcDump-for-Linux/commit/0d735836f11281cc6134be93eac8acb302f2055e.patch"; - sha256 = "sha256-zsqllPHF8ZuXAIDSAPvbzdKa43uSSx9ilUKM1vFVW90="; - }) - ]; - - nativeBuildInputs = [ zlib ]; - buildInputs = [ bash coreutils gdb ]; - - postPatch = '' - substituteInPlace src/CoreDumpWriter.c \ - --replace '"gcore ' '"${gdb}/bin/gcore ' \ - --replace '"rm ' '"${coreutils}/bin/rm ' \ - --replace '/bin/bash' '${bash}/bin/bash' - ''; - - makeFlags = [ - "DESTDIR=${placeholder "out"}" - "INSTALLDIR=/bin" - "MANDIR=/share/man/man1" - ]; - - enableParallelBuilding = true; - - doCheck = false; # needs sudo root - - doInstallCheck = true; - installCheckPhase = '' - runHook preInstallCheck - set +o pipefail - ($out/bin/procdump -h | grep "ProcDump v${version}") || - (echo "ERROR: ProcDump is not the expected version or does not run properly" ; exit 1) - set -o pipefail - runHook postInstallCheck - ''; - - meta = with lib; { - description = "A Linux version of the ProcDump Sysinternals tool"; - mainProgram = "procdump"; - homepage = "https://github.com/Microsoft/ProcDump-for-Linux"; - license = licenses.mit; - maintainers = with maintainers; [ c0bw3b ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/procps-ng/default.nix b/pkgs/os-specific/linux/procps-ng/default.nix deleted file mode 100644 index e4d245fdc7ce..000000000000 --- a/pkgs/os-specific/linux/procps-ng/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ lib -, stdenv -, fetchurl -, ncurses -, pkg-config -, fetchpatch - - # `ps` with systemd support is able to properly report different - # attributes like unit name, so we want to have it on linux. -, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd -, systemd - - # procps is mostly Linux-only. Most commands require a running Linux - # system (or very similar like that found in Cygwin). The one - # exception is ‘watch’ which is portable enough to run on pretty much - # any UNIX-compatible system. -, watchOnly ? !(stdenv.isLinux || stdenv.isCygwin) -}: - -stdenv.mkDerivation rec { - pname = "procps"; - version = "3.3.17"; - - # The project's releases are on SF, but git repo on gitlab. - src = fetchurl { - url = "mirror://sourceforge/procps-ng/procps-ng-${version}.tar.xz"; - sha256 = "sha256-RRiz56r9NOwH0AY9JQ/UdJmbILIAIYw65W9dIRPxQbQ="; - }; - - patches = [ - ./v3-CVE-2023-4016.patch - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - # NOTE: Starting from 4.x we will not need a patch anymore, but need to add - # "--disable-w" to configureFlags instead to prevent the utmp errors - (fetchpatch { - name = "musl-fix-includes.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/procps/musl-fixes.patch?id=37cb5b6ef194db66d9ed07c8ecab59bca3b91215"; - sha256 = "sha256-DphAvESmVg1U3bJABU95R++QD34odStCl82EF0vmht0="; - }) - ]; - - buildInputs = [ ncurses ] - ++ lib.optional withSystemd systemd; - nativeBuildInputs = [ pkg-config ]; - - makeFlags = [ "usrbin_execdir=$(out)/bin" ] - ++ lib.optionals watchOnly [ "watch" "PKG_LDFLAGS=" ]; - - enableParallelBuilding = true; - - # Too red; 8bit support for fixing https://github.com/NixOS/nixpkgs/issues/275220 - configureFlags = [ "--disable-modern-top" "--enable-watch8bit" ] - ++ lib.optional withSystemd "--with-systemd" - ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "ac_cv_func_malloc_0_nonnull=yes" - "ac_cv_func_realloc_0_nonnull=yes" - ]; - - installPhase = lib.optionalString watchOnly '' - install -m 0755 -D watch $out/bin/watch - install -m 0644 -D watch.1 $out/share/man/man1/watch.1 - ''; - - meta = with lib; { - homepage = "https://gitlab.com/procps-ng/procps"; - description = "Utilities that give information about processes using the /proc filesystem"; - priority = 11; # less than coreutils, which also provides "kill" and "uptime" - license = licenses.gpl2; - platforms = platforms.unix; - maintainers = [ maintainers.typetetris ]; - }; -} diff --git a/pkgs/os-specific/linux/procps-ng/v3-CVE-2023-4016.patch b/pkgs/os-specific/linux/procps-ng/v3-CVE-2023-4016.patch deleted file mode 100644 index 2e260eaf7382..000000000000 --- a/pkgs/os-specific/linux/procps-ng/v3-CVE-2023-4016.patch +++ /dev/null @@ -1,63 +0,0 @@ -This is https://gitlab.com/procps-ng/procps/-/commit/2c933ecba3bb1d3041a5a7a53a7b4078a6003413.diff -back-ported to procps 3.3.17. That commit changes xmalloc to xcalloc. This patch differs in two ways: - -* We modify it to change malloc (no x-) to xcalloc instead -* We pull in procps-4's definition of xcalloc - -Alternative considered: Also pull in commits that changed malloc to xmalloc and defined xcalloc. -This alternative is rejected because those commits contain many other unrelated changes. - -diff --git a/ps/parser.c b/ps/parser.c -index 4263a1fb..ee9a57d9 100644 ---- a/ps/parser.c -+++ b/ps/parser.c -@@ -36,6 +36,14 @@ - #include "common.h" - #include "c.h" - -+static void *xxcalloc(const size_t nelems, const size_t size) -+{ -+ void *ret = calloc(nelems, size); -+ if (!ret && size && nelems) -+ xerrx(EXIT_FAILURE, "cannot allocate %zu bytes", nelems*size); -+ return ret; -+} -+ - #define ARG_GNU 0 - #define ARG_END 1 - #define ARG_PGRP 2 -@@ -184,7 +192,6 @@ static const char *parse_list(const char *arg, const char *(*parse_fn)(char *, s - const char *err; /* error code that could or did happen */ - /*** prepare to operate ***/ - node = malloc(sizeof(selection_node)); -- node->u = malloc(strlen(arg)*sizeof(sel_union)); /* waste is insignificant */ - node->n = 0; - buf = strdup(arg); - /*** sanity check and count items ***/ -@@ -205,6 +212,7 @@ static const char *parse_list(const char *arg, const char *(*parse_fn)(char *, s - } while (*++walk); - if(need_item) goto parse_error; - node->n = items; -+ node->u = xxcalloc(items, sizeof(sel_union)); - /*** actually parse the list ***/ - walk = buf; - while(items--){ -@@ -1031,15 +1039,15 @@ static const char *parse_trailing_pids(void){ - thisarg = ps_argc - 1; /* we must be at the end now */ - - pidnode = malloc(sizeof(selection_node)); -- pidnode->u = malloc(i*sizeof(sel_union)); /* waste is insignificant */ -+ pidnode->u = xxcalloc(i, sizeof(sel_union)); /* waste is insignificant */ - pidnode->n = 0; - - grpnode = malloc(sizeof(selection_node)); -- grpnode->u = malloc(i*sizeof(sel_union)); /* waste is insignificant */ -+ grpnode->u = xxcalloc(i, sizeof(sel_union)); /* waste is insignificant */ - grpnode->n = 0; - - sidnode = malloc(sizeof(selection_node)); -- sidnode->u = malloc(i*sizeof(sel_union)); /* waste is insignificant */ -+ sidnode->u = xxcalloc(i, sizeof(sel_union)); /* waste is insignificant */ - sidnode->n = 0; - - while(i--){ diff --git a/pkgs/os-specific/linux/projecteur/default.nix b/pkgs/os-specific/linux/projecteur/default.nix deleted file mode 100644 index 0477985cc196..000000000000 --- a/pkgs/os-specific/linux/projecteur/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib -, mkDerivation -, fetchFromGitHub -, cmake -, pkg-config -, qtbase -, qtgraphicaleffects -, wrapQtAppsHook -}: - -mkDerivation rec { - pname = "projecteur"; - version = "0.10"; - - src = fetchFromGitHub { - owner = "jahnf"; - repo = "Projecteur"; - rev = "v${version}"; - fetchSubmodules = false; - hash = "sha256-F7o93rBjrDTmArTIz8RB/uGBOYE6ny/U7ppk+jEhM5A="; - }; - - postPatch = '' - sed '1i#include <array>' -i src/device.h # gcc12 - ''; - - buildInputs = [ - qtbase - qtgraphicaleffects - ]; - - nativeBuildInputs = [ - cmake - pkg-config - wrapQtAppsHook - ]; - - cmakeFlags = [ - "-DCMAKE_INSTALL_PREFIX:PATH=${placeholder "out"}" - "-DPACKAGE_TARGETS=OFF" - "-DCMAKE_INSTALL_UDEVRULESDIR=${placeholder "out"}/lib/udev/rules.d" - ]; - - meta = { - description = "Linux/X11 application for the Logitech Spotlight device (and similar devices)."; - homepage = "https://github.com/jahnf/Projecteur"; - license = lib.licenses.mit; - mainProgram = "projecteur"; - maintainers = with lib.maintainers; [ benneti drupol ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/pscircle/default.nix b/pkgs/os-specific/linux/pscircle/default.nix deleted file mode 100644 index 712eea0c3651..000000000000 --- a/pkgs/os-specific/linux/pscircle/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchFromGitLab, meson, pkg-config, ninja, cairo }: - -stdenv.mkDerivation rec { - pname = "pscircle"; - version = "1.4.0"; - - src = fetchFromGitLab { - owner = "mildlyparallel"; - repo = "pscircle"; - rev = "v${version}"; - sha256 = "sha256-bqbQBNscNfoqXprhoFUnUQO88YQs9xDhD4d3KHamtG0="; - }; - - nativeBuildInputs = [ - meson - pkg-config - ninja - ]; - - buildInputs = [ - cairo - ]; - - meta = with lib; { - homepage = "https://gitlab.com/mildlyparallel/pscircle"; - description = "Visualize Linux processes in a form of a radial tree"; - mainProgram = "pscircle"; - license = licenses.gpl2; - maintainers = [ maintainers.ldesgoui ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/psftools/default.nix b/pkgs/os-specific/linux/psftools/default.nix deleted file mode 100644 index 5d8c39bb145c..000000000000 --- a/pkgs/os-specific/linux/psftools/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchurl }: -stdenv.mkDerivation rec { - pname = "psftools"; - version = "1.1.1"; - src = fetchurl { - url = "https://www.seasip.info/Unix/PSF/${pname}-${version}.tar.gz"; - sha256 = "sha256-MecY4JsIXTgHdkrFkQ+C3fC6OEFRUgjUgf7qxfKeZtM="; - }; - outputs = ["out" "man" "dev" "lib"]; - - meta = with lib; { - homepage = "https://www.seasip.info/Unix/PSF"; - description = "Conversion tools for .PSF fonts"; - longDescription = '' - The PSFTOOLS are designed to manipulate fixed-width bitmap fonts, - such as DOS or Linux console fonts. Both the PSF1 (8 pixels wide) - and PSF2 (any width) formats are supported; the default output - format is PSF2. - ''; - platforms = platforms.unix; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ kaction ]; - }; -} diff --git a/pkgs/os-specific/linux/psmisc/default.nix b/pkgs/os-specific/linux/psmisc/default.nix deleted file mode 100644 index 0f920eeafb5d..000000000000 --- a/pkgs/os-specific/linux/psmisc/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib -, stdenv -, fetchFromGitLab -, autoconf -, automake -, gettext -, ncurses -}: - -stdenv.mkDerivation rec { - pname = "psmisc"; - version = "23.7"; - - src = fetchFromGitLab { - owner = pname; - repo = pname; - rev = "v${version}"; - hash = "sha256-49YpdIh0DxLHfxos4sw1HUkV0XQBqmm4M9b0T4eN2xI="; - }; - - nativeBuildInputs = [ autoconf automake gettext ]; - buildInputs = [ ncurses ]; - - preConfigure = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - # Goes past the rpl_malloc linking failure - export ac_cv_func_malloc_0_nonnull=yes - export ac_cv_func_realloc_0_nonnull=yes - '' + '' - echo $version > .tarball-version - ./autogen.sh - ''; - - meta = with lib; { - homepage = "https://gitlab.com/psmisc/psmisc"; - description = "A set of small useful utilities that use the proc filesystem (such as fuser, killall and pstree)"; - platforms = platforms.linux; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ ryantm ]; - }; -} diff --git a/pkgs/os-specific/linux/qc71_laptop/default.nix b/pkgs/os-specific/linux/qc71_laptop/default.nix deleted file mode 100644 index bb4bf20ad0f6..000000000000 --- a/pkgs/os-specific/linux/qc71_laptop/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "qc71_laptop"; - version = "unstable-2023-03-02"; - - src = fetchFromGitHub { - owner = "pobrn"; - repo = "qc71_laptop"; - rev = "8805dc5639f6659addf153a295ad4bbaa2483fa3"; - hash = "sha256-wg7APGArjrl9DEAHTG6BknOBx+UbtNrzziwmLueKPfA="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "VERSION=${version}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - runHook preInstall - install -D qc71_laptop.ko -t $out/lib/modules/${kernel.modDirVersion}/extra - runHook postInstall - ''; - - meta = with lib; { - description = "Linux driver for QC71 laptop"; - homepage = "https://github.com/pobrn/qc71_laptop/"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ aacebedo ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/qmk-udev-rules/default.nix b/pkgs/os-specific/linux/qmk-udev-rules/default.nix deleted file mode 100644 index bd322bfa100e..000000000000 --- a/pkgs/os-specific/linux/qmk-udev-rules/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -## Usage -# In NixOS, set hardware.keyboard.qmk.enable = true; - -stdenv.mkDerivation rec { - pname = "qmk-udev-rules"; - version = "0.23.3"; - - src = fetchFromGitHub { - owner = "qmk"; - repo = "qmk_firmware"; - rev = version; - hash = "sha256-dFc6S9x7sBYZAQn0coZJpmGz66Fx0l4rrexjyB4k0zA="; - }; - - dontBuild = true; - - installPhase = '' - runHook preInstall - install -D util/udev/50-qmk.rules $out/lib/udev/rules.d/50-qmk.rules - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://github.com/qmk/qmk_firmware"; - description = "Official QMK udev rules list"; - platforms = platforms.linux; - license = licenses.gpl2Only; - maintainers = with maintainers; [ ekleog ]; - }; -} diff --git a/pkgs/os-specific/linux/qperf/default.nix b/pkgs/os-specific/linux/qperf/default.nix deleted file mode 100644 index 896b5f5c1ff4..000000000000 --- a/pkgs/os-specific/linux/qperf/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ stdenv, lib -, fetchFromGitHub, fetchpatch -, autoconf, automake, perl, rdma-core }: - -stdenv.mkDerivation rec { - pname = "qperf"; - version = "0.4.11"; - - src = fetchFromGitHub { - owner = "linux-rdma"; - repo = "qperf"; - rev = "v${version}"; - hash = "sha256-x9l8xqwMDHlXRZpWt3XiqN5xyCTV5rk8jp/ClRPPECI="; - }; - - patches = [ (fetchpatch { - name = "version-bump.patch"; - url = "https://github.com/linux-rdma/qperf/commit/34ec57ddb7e5ae1adfcfc8093065dff90b69a275.patch"; - hash = "sha256-+7ckhUUB+7BG6qRKv0wgyIxkyvll2xjf3Wk1hpRsDo0="; - }) ]; - - nativeBuildInputs = [ autoconf automake perl rdma-core ]; - buildInputs = [ rdma-core ]; - - postUnpack = '' - patchShebangs . - ''; - - configurePhase = '' - runHook preConfigure - ./autogen.sh - ./configure --prefix=$out - runHook postConfigure - ''; - - meta = with lib; { - description = "Measure RDMA and IP performance"; - mainProgram = "qperf"; - homepage = "https://github.com/linux-rdma/qperf"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ edwtjo ]; - }; -} diff --git a/pkgs/os-specific/linux/r8125/default.nix b/pkgs/os-specific/linux/r8125/default.nix deleted file mode 100644 index 9b5210350bdd..000000000000 --- a/pkgs/os-specific/linux/r8125/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "r8125"; - # On update please verify (using `diff -r`) that the source matches the - # realtek version. - version = "9.013.02"; - - # This is a mirror. The original website[1] doesn't allow non-interactive - # downloads, instead emailing you a download link. - # [1] https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software - src = fetchFromGitHub { - owner = "louistakepillz"; - repo = "r8125"; - rev = version; - sha256 = "sha256-i45xKF5WVN+nNhpD6HWZHvGgxuaD/YhMHERqW8/bC5Y="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - preBuild = '' - substituteInPlace src/Makefile --replace "BASEDIR :=" "BASEDIR ?=" - substituteInPlace src/Makefile --replace "modules_install" "INSTALL_MOD_PATH=$out modules_install" - ''; - - makeFlags = [ - "BASEDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}" - ]; - - buildFlags = [ "modules" ]; - - meta = with lib; { - homepage = "https://github.com/louistakepillz/r8125"; - downloadPage = "https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software"; - description = "Realtek r8125 driver"; - longDescription = '' - A kernel module for Realtek 8125 2.5G network cards. - ''; - # r8125 has been integrated into the kernel as of v5.9.1 - broken = lib.versionAtLeast kernel.version "5.9.1"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ peelz ]; - }; -} diff --git a/pkgs/os-specific/linux/r8168/default.nix b/pkgs/os-specific/linux/r8168/default.nix deleted file mode 100644 index 6eb53ca17f7a..000000000000 --- a/pkgs/os-specific/linux/r8168/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - - -let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/r8168"; - -in stdenv.mkDerivation rec { - name = "r8168-${kernel.version}-${version}"; - # on update please verify that the source matches the realtek version - version = "8.052.01"; - - # This is a mirror. The original website[1] doesn't allow non-interactive - # downloads, instead emailing you a download link. - # [1] https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software - # I've verified manually (`diff -r`) that the source code for version 8.052.01 - # is the same as the one available on the realtek website. - src = fetchFromGitHub { - owner = "mtorromeo"; - repo = "r8168"; - rev = version; - sha256 = "01mi7hh92nc7jaxkfrpz7j0ci78djrhgmq0im4k1270mwmvr0yzj"; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - # avoid using the Makefile directly -- it doesn't understand - # any kernel but the current. - # based on the ArchLinux pkgbuild: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/r8168 - makeFlags = kernel.makeFlags ++ [ - "-C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "M=$(PWD)/src" - "modules" - ]; - preBuild = '' - makeFlagsArray+=("EXTRA_CFLAGS=-DCONFIG_R8168_NAPI -DCONFIG_R8168_VLAN -DCONFIG_ASPM -DENABLE_S5WOL -DENABLE_EEE") - ''; - - enableParallelBuilding = true; - - installPhase = '' - mkdir -p ${modDestDir} - find . -name '*.ko' -exec cp --parents '{}' ${modDestDir} \; - find ${modDestDir} -name '*.ko' -exec xz -f '{}' \; - ''; - - meta = with lib; { - description = "Realtek r8168 driver"; - longDescription = '' - A kernel module for Realtek 8168 network cards. - If you want to use this driver, you might need to blacklist the r8169 driver - by adding "r8169" to boot.blacklistedKernelModules. - ''; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ timokau ]; - broken = (lib.versions.majorMinor kernel.modDirVersion) != "5.15"; - }; -} diff --git a/pkgs/os-specific/linux/radeontools/default.nix b/pkgs/os-specific/linux/radeontools/default.nix deleted file mode 100644 index 01b83f879119..000000000000 --- a/pkgs/os-specific/linux/radeontools/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, stdenv, fetchurl -, autoreconfHook -, pciutils -, pkg-config -, xorg -}: - -stdenv.mkDerivation rec { - pname = "radeontool"; - version = "1.6.3"; - - src = fetchurl { - url = "https://people.freedesktop.org/~airlied/radeontool/${pname}-${version}.tar.gz"; - sha256 = "0mjk9wr9rsb17yy92j6yi16hfpa6v5r1dbyiy60zp4r125wr63za"; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ xorg.libpciaccess ]; - - meta = with lib; { - description = "Lowlevel tools to tweak register and dump state on radeon GPUs"; - homepage = "https://airlied.livejournal.com/"; - license = licenses.zlib; - }; -} diff --git a/pkgs/os-specific/linux/radeontop/default.nix b/pkgs/os-specific/linux/radeontop/default.nix deleted file mode 100644 index 49e2fdfd90b5..000000000000 --- a/pkgs/os-specific/linux/radeontop/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, gettext, makeWrapper -, ncurses, libdrm, libpciaccess, libxcb }: - -stdenv.mkDerivation rec { - pname = "radeontop"; - version = "1.4"; - - src = fetchFromGitHub { - sha256 = "0kwqddidr45s1blp0h8r8h1dd1p50l516yb6mb4s6zsc827xzgg3"; - rev = "v${version}"; - repo = "radeontop"; - owner = "clbr"; - }; - - buildInputs = [ ncurses libdrm libpciaccess libxcb ]; - nativeBuildInputs = [ pkg-config gettext makeWrapper ]; - - enableParallelBuilding = true; - - patchPhase = '' - substituteInPlace getver.sh --replace ver=unknown ver=${version} - substituteInPlace Makefile --replace pkg-config "$PKG_CONFIG" - ''; - - makeFlags = [ "PREFIX=$(out)" ]; - - postInstall = '' - wrapProgram $out/bin/radeontop \ - --prefix LD_LIBRARY_PATH : $out/lib - ''; - - meta = with lib; { - description = "Top-like tool for viewing AMD Radeon GPU utilization"; - mainProgram = "radeontop"; - longDescription = '' - View GPU utilization, both for the total activity percent and individual - blocks. Supports R600 and later cards: even Southern Islands should work. - Works with both the open drivers and AMD Catalyst. Total GPU utilization - is also valid for OpenCL loads; the other blocks are only useful for GL - loads. Requires root rights or other permissions to read /dev/mem. - ''; - homepage = "https://github.com/clbr/radeontop"; - platforms = platforms.linux; - license = licenses.gpl3; - }; -} diff --git a/pkgs/os-specific/linux/rasdaemon/default.nix b/pkgs/os-specific/linux/rasdaemon/default.nix deleted file mode 100644 index 35478732fb8c..000000000000 --- a/pkgs/os-specific/linux/rasdaemon/default.nix +++ /dev/null @@ -1,109 +0,0 @@ -{ lib, stdenv, fetchFromGitHub -, autoreconfHook, pkg-config -, glibcLocales, kmod, coreutils, perl -, dmidecode, hwdata, sqlite, libtraceevent -, fetchpatch -, nixosTests -}: - -stdenv.mkDerivation rec { - pname = "rasdaemon"; - version = "0.8.0"; - - src = fetchFromGitHub { - owner = "mchehab"; - repo = "rasdaemon"; - rev = "v${version}"; - sha256 = "sha256-BX3kc629FOh5cnD6Sa/69wKdhmhT3Rpz5ZvhnD4MclQ="; - }; - - patches = [ - (fetchpatch { # fix #295002 (segfault on AMD), will be in the release after 0.8.0 - name = "fix crash on AMD"; - url = "https://github.com/mchehab/rasdaemon/commit/f1ea76375281001cdf4a048c1a4a24d86c6fbe48.patch"; - hash = "sha256-1VPDTrAsvZGiGbh52EUdG6tYV/n6wUS0mphOSXzran0="; - }) - ]; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - - buildInputs = [ - coreutils - glibcLocales - hwdata - kmod - sqlite - libtraceevent - (perl.withPackages (ps: with ps; [ DBI DBDSQLite ])) - ] - ++ lib.optionals (!stdenv.isAarch64) [ dmidecode ]; - - configureFlags = [ - "--sysconfdir=/etc" - "--localstatedir=/var" - "--with-sysconfdefdir=${placeholder "out"}/etc/sysconfig" - "--enable-all" - ]; - - # The installation attempts to create the following directories: - # /var/lib/rasdaemon - # location of the RAS event log generated by rasdaemon -r - # /etc/ras/dimm_labels.d - # location of the DIMM labels generated by ras-mc-ctl - # /etc/sysconfig/rasdaemon - # location of rasdaemon config file, currently only used for CE PFA config - - # these are optional (for logging, DIMM label storage and user config) - # /var/lib/rasdaemon should be created by the NixOS module - # /etc/ras/dimm_labels.d should probably be generated, - # from user supplied content, in the NixOS module - # /etc/sysconfig/rasdaemon should be generated if there is user supplied content - # and default to $out/etc/sysconfig/rasdaemon which should hold the supplied default - - # therefore, stripping these from the generated Makefile - # (needed in the config flags because those set where the tools look for these) - -# easy way out, ends up installing /nix/store/...rasdaemon/bin in $out - - postConfigure = '' - substituteInPlace Makefile \ - --replace '"$(DESTDIR)/etc/ras/dimm_labels.d"' '"$(prefix)/etc/ras/dimm_labels.d"' - ''; - - outputs = [ "out" "dev" "man" "inject" ]; - - postInstall = '' - install -Dm 0755 contrib/edac-fake-inject $inject/bin/edac-fake-inject - install -Dm 0755 contrib/edac-tests $inject/bin/edac-tests - ''; - - postFixup = '' - # Fix dmidecode and modprobe paths - substituteInPlace $out/bin/ras-mc-ctl \ - --replace 'find_prog ("modprobe") or exit (1)' '"${kmod}/bin/modprobe"' - '' - + lib.optionalString (!stdenv.isAarch64) '' - substituteInPlace $out/bin/ras-mc-ctl \ - --replace 'find_prog ("dmidecode")' '"${dmidecode}/bin/dmidecode"' - ''; - - passthru.tests = nixosTests.rasdaemon; - - meta = with lib; { - description = '' - A Reliability, Availability and Serviceability (RAS) logging tool using EDAC kernel tracing events - ''; - longDescription = '' - Rasdaemon is a RAS (Reliability, Availability and Serviceability) logging - tool. It records memory errors, using the EDAC tracing events. EDAC is a - Linux kernel subsystem with handles detection of ECC errors from memory - controllers for most chipsets on i386 and x86_64 architectures. EDAC - drivers for other architectures like arm also exists. - ''; - homepage = "https://github.com/mchehab/rasdaemon"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - changelog = "https://github.com/mchehab/rasdaemon/blob/v${version}/ChangeLog"; - maintainers = with maintainers; [ evils ]; - }; -} diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix deleted file mode 100644 index 9ddb211ba0d5..000000000000 --- a/pkgs/os-specific/linux/rdma-core/default.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, pkg-config -, docutils -, pandoc -, ethtool -, iproute2 -, libnl -, udev -, python3 -, perl -} : - -stdenv.mkDerivation (finalAttrs: { - pname = "rdma-core"; - version = "51.0"; - - src = fetchFromGitHub { - owner = "linux-rdma"; - repo = "rdma-core"; - rev = "v${finalAttrs.version}"; - hash = "sha256-G5Z2BbmF5fzOg/32BBgGpC6yroDFOnZWtA/+5QatQ1M="; - }; - - strictDeps = true; - - outputs = [ "out" "man" "dev" ]; - - nativeBuildInputs = [ - cmake - docutils - pandoc - pkg-config - python3 - ]; - - buildInputs = [ - ethtool - iproute2 - libnl - perl - udev - ]; - - cmakeFlags = [ - "-DCMAKE_INSTALL_RUNDIR=/run" - "-DCMAKE_INSTALL_SHAREDSTATEDIR=/var/lib" - ]; - - postPatch = '' - substituteInPlace srp_daemon/srp_daemon.sh.in \ - --replace /bin/rm rm - ''; - - postInstall = '' - # cmake script is buggy, move file manually - mkdir -p $out/${perl.libPrefix} - mv $out/share/perl5/* $out/${perl.libPrefix} - ''; - - postFixup = '' - for pls in $out/bin/{ibfindnodesusing.pl,ibidsverify.pl}; do - echo "wrapping $pls" - substituteInPlace $pls --replace \ - "${perl}/bin/perl" "${perl}/bin/perl -I $out/${perl.libPrefix}" - done - ''; - - meta = { - description = "RDMA Core Userspace Libraries and Daemons"; - homepage = "https://github.com/linux-rdma/rdma-core"; - license = lib.licenses.gpl2Only; - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.markuskowa ]; - }; -}) diff --git a/pkgs/os-specific/linux/read-edid/default.nix b/pkgs/os-specific/linux/read-edid/default.nix deleted file mode 100644 index 6e040d3cbffb..000000000000 --- a/pkgs/os-specific/linux/read-edid/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ stdenv, lib, fetchurl, cmake, libx86 }: - -stdenv.mkDerivation rec { - pname = "read-edid"; - version = "3.0.2"; - - src = fetchurl { - url = "http://www.polypux.org/projects/read-edid/${pname}-${version}.tar.gz"; - sha256 = "0vqqmwsgh2gchw7qmpqk6idgzcm5rqf2fab84y7gk42v1x2diin7"; - }; - - patches = [ ./fno-common.patch ]; - - postPatch = '' - substituteInPlace CMakeLists.txt --replace 'COPYING' 'LICENSE' - ''; - - nativeBuildInputs = [ cmake ]; - buildInputs = lib.optional stdenv.hostPlatform.isx86 libx86; - - cmakeFlags = [ "-DCLASSICBUILD=${if stdenv.hostPlatform.isx86 then "ON" else "OFF"}" ]; - - - meta = with lib; { - description = "Tool for reading and parsing EDID data from monitors"; - homepage = "http://www.polypux.org/projects/read-edid/"; - license = licenses.bsd2; # Quoted: "This is an unofficial license. Let's call it BSD-like." - maintainers = [ maintainers.dezgeg ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/read-edid/fno-common.patch b/pkgs/os-specific/linux/read-edid/fno-common.patch deleted file mode 100644 index 336b48b66ad8..000000000000 --- a/pkgs/os-specific/linux/read-edid/fno-common.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/get-edid/classic.c -+++ b/get-edid/classic.c -@@ -26,7 +26,7 @@ typedef byte* real_ptr; - #define dosmemput(buffer,length,offset) memcpy(offset,buffer,length) - - #define display(...) if (quiet == 0) { fprintf(stderr, __VA_ARGS__); } --int quiet; -+extern int quiet; - - real_ptr far_ptr_to_real_ptr( uint32 farptr ) - { ---- a/get-edid/i2c.c -+++ b/get-edid/i2c.c -@@ -15,7 +15,7 @@ - - //Ideas (but not too much actual code) taken from i2c-tools. Thanks guys. - --int quiet; -+extern int quiet; - - #define display(...) if (quiet == 0) { fprintf(stderr, __VA_ARGS__); } - diff --git a/pkgs/os-specific/linux/reap/default.nix b/pkgs/os-specific/linux/reap/default.nix deleted file mode 100644 index 79bfe2936276..000000000000 --- a/pkgs/os-specific/linux/reap/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "reap"; - version = "0.3-unreleased"; - - src = fetchFromGitHub { - owner = "leahneukirchen"; - repo = "reap"; - rev = "0e68d09804fb9ec82af37045fb37c2ceefa391d5"; - hash = "sha256-4Bv7stW5PKcODQanup37YbiUWrEGR6BuSFXibAHmwn0="; - }; - - makeFlags = [ "PREFIX=${placeholder "out"}" ]; - - postInstall = '' - install -dm755 "$out/share/licenses/reap/" - ''; - - meta = with lib; { - homepage = "https://github.com/leahneukirchen/reap"; - description = "run process until all its spawned processes are dead "; - mainProgram = "reap"; - license = with licenses; [ publicDomain ]; - platforms = platforms.linux; - maintainers = [ maintainers.leahneukirchen ]; - }; -} diff --git a/pkgs/os-specific/linux/regionset/default.nix b/pkgs/os-specific/linux/regionset/default.nix deleted file mode 100644 index 07154a1fc9a1..000000000000 --- a/pkgs/os-specific/linux/regionset/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl }: - -let version = "0.2"; in -stdenv.mkDerivation { - pname = "regionset"; - inherit version; - - src = fetchurl { - url = "http://linvdr.org/download/regionset/regionset-${version}.tar.gz"; - sha256 = "1fgps85dmjvj41a5bkira43vs2aiivzhqwzdvvpw5dpvdrjqcp0d"; - }; - - installPhase = '' - install -Dm755 {.,$out/bin}/regionset - install -Dm644 {.,$out/share/man/man8}/regionset.8 - ''; - - meta = with lib; { - inherit version; - homepage = "http://linvdr.org/projects/regionset/"; - description = "Tool for changing the region code setting of DVD players"; - mainProgram = "regionset"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/reptyr/default.nix b/pkgs/os-specific/linux/reptyr/default.nix deleted file mode 100644 index 5a9e58c3f6f9..000000000000 --- a/pkgs/os-specific/linux/reptyr/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, python3 }: - -let - python = python3.withPackages (p: [ p.pexpect ]); -in stdenv.mkDerivation rec { - version = "0.10.0"; - pname = "reptyr"; - - src = fetchFromGitHub { - owner = "nelhage"; - repo = "reptyr"; - rev = "reptyr-${version}"; - sha256 = "sha256-jlO/ykrwGJkgKiPxfRQEX4TSksrbPQhkQs+QddwqaQ4="; - }; - - makeFlags = [ "PREFIX=" "DESTDIR=$(out)" ]; - - nativeCheckInputs = [ python ]; - - # reptyr needs to do ptrace of a non-child process - # It can be neither used nor tested if the kernel is not told to allow this - doCheck = false; - - checkFlags = [ - "PYTHON_CMD=${python.interpreter}" - ]; - - meta = { - platforms = [ - "i686-linux" - "x86_64-linux" - "i686-freebsd" - "x86_64-freebsd" - "armv5tel-linux" - "armv6l-linux" - "armv7l-linux" - "aarch64-linux" - "riscv64-linux" - ]; - maintainers = with lib.maintainers; [raskin]; - license = lib.licenses.mit; - description = "Reparent a running program to a new terminal"; - mainProgram = "reptyr"; - homepage = "https://github.com/nelhage/reptyr"; - }; -} diff --git a/pkgs/os-specific/linux/restool/default.nix b/pkgs/os-specific/linux/restool/default.nix deleted file mode 100644 index 7f7c094007e4..000000000000 --- a/pkgs/os-specific/linux/restool/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, bash, coreutils, dtc, file, gawk, gnugrep, gnused, pandoc, which }: - -stdenv.mkDerivation rec { - pname = "restool"; - version = "2.4"; - - src = fetchFromGitHub { - owner = "nxp-qoriq"; - repo = "restool"; - rev = "abd2f5b7181db9d03db9e6ccda0194923b73e9a2"; - sha256 = "sha256-ryTDyqSy39e8Omf7l8lK4mLWr8jccDhMVPldkVGSQVo="; - }; - - nativeBuildInputs = [ file pandoc ]; - buildInputs = [ bash coreutils dtc gawk gnugrep gnused which ]; - - enableParallelBuilding = true; - makeFlags = [ - "prefix=" - "bindir_completion=/share/bash-completion/completions" - "DESTDIR=$(out)" - "VERSION=${version}" - ]; - - postPatch = '' - # -Werror makes this derivation fragile on compiler version upgrades, patch - # it out. - sed -i /-Werror/d Makefile - ''; - - preFixup = '' - # wrapProgram interacts badly with the ls-main tool, which relies on the - # shell's $0 argument to figure out which operation to run (busybox-style - # symlinks). Instead, inject the environment directly into the shell - # scripts we need to wrap. - for tool in ls-append-dpl ls-debug ls-main; do - sed -i "1 a export PATH=\"$out/bin:${lib.makeBinPath buildInputs}:\$PATH\"" $out/bin/$tool - done - ''; - - meta = with lib; { - description = "DPAA2 Resource Management Tool"; - longDescription = '' - restool is a user space application providing the ability to dynamically - create and manage DPAA2 containers and objects from Linux. - ''; - homepage = "https://github.com/nxp-qoriq/restool"; - license = licenses.bsd3; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/rewritefs/default.nix b/pkgs/os-specific/linux/rewritefs/default.nix deleted file mode 100644 index e78d5f2d164c..000000000000 --- a/pkgs/os-specific/linux/rewritefs/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, fuse3, pcre }: - -stdenv.mkDerivation { - pname = "rewritefs"; - version = "unstable-2021-10-03"; - - src = fetchFromGitHub { - owner = "sloonz"; - repo = "rewritefs"; - rev = "3a56de8b5a2d44968b8bc3885c7d661d46367306"; - sha256 = "1w2rik0lhqm3wr68x51zs45gqfx79l7fi4p0sqznlfq7sz5s8xxn"; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ fuse3 pcre ]; - - prePatch = '' - # do not set sticky bit in nix store - substituteInPlace Makefile --replace 6755 0755 - ''; - - preConfigure = "substituteInPlace Makefile --replace /usr/local $out"; - - meta = with lib; { - description = ''A FUSE filesystem intended to be used - like Apache mod_rewrite''; - homepage = "https://github.com/sloonz/rewritefs"; - license = licenses.gpl2; - maintainers = with maintainers; [ rnhmjoj ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/rfkill/rfkill-hook.sh b/pkgs/os-specific/linux/rfkill/rfkill-hook.sh deleted file mode 100755 index 75716e40daee..000000000000 --- a/pkgs/os-specific/linux/rfkill/rfkill-hook.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!@shell@ - -# Executes a hook in case of a change to the -# rfkill state. The hook can be passed as -# environment variable, or present as executable -# file. - -if [ -z "$RFKILL_STATE" ]; then - echo "rfkill-hook: error: RFKILL_STATE variable not set" - exit 1 -fi - -if [ -x /run/current-system/etc/rfkill.hook ]; then - exec /run/current-system/etc/rfkill.hook -elif [ ! -z "$RFKILL_HOOK" ]; then - exec $RFKILL_HOOK -else - echo "rfkill-hook: $RFKILL_STATE" -fi diff --git a/pkgs/os-specific/linux/rfkill/udev.nix b/pkgs/os-specific/linux/rfkill/udev.nix deleted file mode 100644 index 53cbf68330c6..000000000000 --- a/pkgs/os-specific/linux/rfkill/udev.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ lib, stdenv, substituteAll }: - -# Provides a facility to hook into rfkill changes. -# -# Exemplary usage: -# -# Add this package to udev.packages, e.g.: -# udev.packages = [ pkgs.rfkill_udev ]; -# -# Add a hook script in the managed etc directory, e.g.: -# etc."rfkill.hook" = { -# mode = "0755"; -# text = '' -# #!${pkgs.runtimeShell} -# -# if [ "$RFKILL_STATE" -eq "1" ]; then -# exec ${config.system.build.upstart}/sbin/initctl emit -n antenna-on -# else -# exec ${config.system.build.upstart}/sbin/initctl emit -n antenna-off -# fi -# ''; -# } - -# Note: this package does not need the binaries -# in the rfkill package. - -let - rfkillHook = - substituteAll { - inherit (stdenv) shell; - isExecutable = true; - src = ./rfkill-hook.sh; - }; -in stdenv.mkDerivation { - name = "rfkill-udev"; - - dontUnpack = true; - dontBuild = true; - - installPhase = '' - mkdir -p "$out/etc/udev/rules.d/"; - cat > "$out/etc/udev/rules.d/90-rfkill.rules" << EOF - SUBSYSTEM=="rfkill", ATTR{type}=="wlan", RUN+="$out/bin/rfkill-hook.sh" - EOF - - mkdir -p "$out/bin/"; - cp ${rfkillHook} "$out/bin/rfkill-hook.sh" - ''; - - meta = with lib; { - homepage = "http://wireless.kernel.org/en/users/Documentation/rfkill"; - description = "Rules+hook for udev to catch rfkill state changes"; - mainProgram = "rfkill-hook.sh"; - platforms = platforms.linux; - license = licenses.mit; - }; -} diff --git a/pkgs/os-specific/linux/roccat-tools/default.nix b/pkgs/os-specific/linux/roccat-tools/default.nix deleted file mode 100644 index 389d5036b754..000000000000 --- a/pkgs/os-specific/linux/roccat-tools/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ lib, stdenv, fetchurl, cmake, pkg-config, gettext -, dbus, dbus-glib, libgaminggear, libgudev, lua -, harfbuzz, runtimeShell, coreutils, kmod -}: - -stdenv.mkDerivation rec { - pname = "roccat-tools"; - version = "5.9.0"; - - src = fetchurl { - url = "mirror://sourceforge/roccat/${pname}-${version}.tar.bz2"; - sha256 = "12j02rzbz3iqxprz8cj4kcfcdgnqlva142ci177axqmckcq6crvg"; - }; - - postPatch = '' - sed -i -re 's,/(etc/xdg),\1,' roccateventhandler/CMakeLists.txt - - sed -i -e '/roccat_profile_dir(void).*{/,/}/ { - /return/c \ - return g_build_path("/", g_get_user_data_dir(), "roccat", NULL); - }' libroccat/roccat_helper.c - - substituteInPlace udev/90-roccat-kone.rules \ - --replace "/bin/sh" "${runtimeShell}" \ - --replace "/sbin/modprobe" "${kmod}/bin/modprobe" \ - --replace "/bin/echo" "${coreutils}/bin/echo" - ''; - - nativeBuildInputs = [ cmake pkg-config gettext ]; - buildInputs = [ dbus dbus-glib libgaminggear libgudev lua ]; - - cmakeFlags = [ - "-DUDEVDIR=\${out}/lib/udev/rules.d" - "-DCMAKE_MODULE_PATH=${libgaminggear.dev}/lib/cmake" - "-DWITH_LUA=${lua.luaversion}" - "-DLIBDIR=lib" - ]; - - env.NIX_CFLAGS_COMPILE = toString [ - "-I${harfbuzz.dev}/include/harfbuzz" - - # Workaround build failure on -fno-common toolchains: - # ld: ryos_talk.c.o:(.bss+0x0): multiple definition of `RyosWriteCheckWait'; - # ryos_custom_lights.c.o:(.bss+0x0): first defined here - "-fcommon" - ]; - - meta = { - description = "Tools to configure ROCCAT devices"; - homepage = "https://roccat.sourceforge.net/"; - platforms = lib.platforms.linux; - license = lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/os-specific/linux/rt-tests/default.nix b/pkgs/os-specific/linux/rt-tests/default.nix deleted file mode 100644 index 8e3a9b0ceb02..000000000000 --- a/pkgs/os-specific/linux/rt-tests/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ stdenv -, lib -, makeWrapper -, fetchurl -, numactl -, python3 -}: - -stdenv.mkDerivation rec { - pname = "rt-tests"; - version = "2.6"; - - src = fetchurl { - url = "https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/snapshot/${pname}-${version}.tar.gz"; - sha256 = "sha256-apRJwRqcyzfmyGCCv5BDN92pKP3Nafa9SkxlZ+Bxrm0="; - }; - - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ numactl python3 ]; - - makeFlags = [ "prefix=$(out)" "DESTDIR=" "PYLIB=$(out)/${python3.sitePackages}" ]; - - postInstall = '' - wrapProgram "$out/bin/determine_maximum_mpps.sh" --prefix PATH : $out/bin - ''; - - meta = with lib; { - homepage = "https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git"; - description = "Suite of real-time tests - cyclictest, hwlatdetect, pip_stress, pi_stress, pmqtest, ptsematest, rt-migrate-test, sendme, signaltest, sigwaittest, svsematest"; - platforms = platforms.linux; - maintainers = with maintainers; [ poelzi ]; - license = licenses.gpl2; - }; -} diff --git a/pkgs/os-specific/linux/rtkit/default.nix b/pkgs/os-specific/linux/rtkit/default.nix deleted file mode 100644 index c6bb4e0cbfcd..000000000000 --- a/pkgs/os-specific/linux/rtkit/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch -, meson, ninja, pkg-config, unixtools -, dbus, libcap, polkit, systemd -}: - -stdenv.mkDerivation rec { - pname = "rtkit"; - version = "0.13"; - - src = fetchFromGitHub { - owner = "heftig"; - repo = "rtkit"; - rev = "c295fa849f52b487be6433e69e08b46251950399"; - sha256 = "0yfsgi3pvg6dkizrww1jxpkvcbhzyw9110n1dypmzq0c5hlzjxcd"; - }; - - patches = [ - (fetchpatch { - name = "meson-actual-use-systemd_systemunitdir.patch"; - url = "https://github.com/heftig/rtkit/pull/19/commits/7d62095b94f8df3891c984a1535026d2658bb177.patch"; - sha256 = "17acv549zqcgh7sgprfagbf6drqsr0zdwvf1dsqda7wlqc2h9zn7"; - }) - - (fetchpatch { - name = "meson-fix-librt-find_library-check.patch"; - url = "https://github.com/heftig/rtkit/pull/18/commits/98f70edd8f534c371cb4308b9720739c5178918d.patch"; - sha256 = "18mnjjsdjfr184nkzi01xyphpdngi31ry4bmkv9ysjxf9wilv4nl"; - }) - - (fetchpatch { - name = "rtkit-daemon-dont-log-debug-messages-by-default.patch"; - url = "https://github.com/heftig/rtkit/pull/33/commits/ad649ee491ed1a41537774ad11564a208e598a09.patch"; - sha256 = "sha256-p+MdJVMv58rFd1uc1UFKtq83RquDSFZ3M6YfaBU12UU="; - }) - ]; - - nativeBuildInputs = [ meson ninja pkg-config unixtools.xxd ]; - buildInputs = [ dbus libcap polkit systemd ]; - - mesonFlags = [ - "-Dinstalled_tests=false" - - "-Ddbus_systemservicedir=${placeholder "out"}/share/dbus-1/system-services" - "-Ddbus_interfacedir=${placeholder "out"}/share/dbus-1/interfaces" - "-Ddbus_rulesdir=${placeholder "out"}/etc/dbus-1/system.d" - "-Dpolkit_actiondir=${placeholder "out"}/share/polkit-1/actions" - "-Dsystemd_systemunitdir=${placeholder "out"}/etc/systemd/system" - ]; - - meta = with lib; { - homepage = "https://github.com/heftig/rtkit"; - description = "A daemon that hands out real-time priority to processes"; - mainProgram = "rtkitctl"; - license = with licenses; [ gpl3 bsd0 ]; # lib is bsd license - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/rtl8188eus-aircrack/default.nix b/pkgs/os-specific/linux/rtl8188eus-aircrack/default.nix deleted file mode 100644 index 5348f932250e..000000000000 --- a/pkgs/os-specific/linux/rtl8188eus-aircrack/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, bc, fetchpatch }: - -stdenv.mkDerivation { - pname = "rtl8188eus-aircrack"; - version = "${kernel.version}-unstable-2023-09-21"; - - src = fetchFromGitHub { - owner = "aircrack-ng"; - repo = "rtl8188eus"; - rev = "3fae7237ba121f1169e9a2ea55040dc123697d3b"; - sha256 = "sha256-ILSMEt9nMdg1ZbFeatWm8Yxf6a/E7Vm7KtKhN933KTc="; - }; - - prePatch = '' - substituteInPlace ./Makefile \ - --replace /lib/modules/ "${kernel.dev}/lib/modules/" \ - --replace /sbin/depmod \# \ - --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - # until https://github.com/aircrack-ng/rtl8188eus/pull/275 get merged using patches to fix and add newer kernel 6.7 support - patches = [ - (fetchpatch { - url = "https://github.com/aircrack-ng/rtl8188eus/commit/dcf602320ce0cfa316c990ce067317954d75edae.patch"; - hash = "sha256-AkrqqWv5TPHBfQ7FhS0urXnUw5QHQUrbvEb+NkLxpJA="; - }) - (fetchpatch { - url = "https://github.com/aircrack-ng/rtl8188eus/commit/c5647f440a38e72c97054b949760ac14faf22b6c.patch"; - hash = "sha256-0W0o68V0GkN+pJsI18ZMM8nyQre6FbOPpspegOOMioM="; - }) - ]; - - - hardeningDisable = [ "pic" ]; - - enableParallelBuilding = true; - - nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - meta = with lib; { - description = "RealTek RTL8188eus WiFi driver with monitor mode & frame injection support"; - homepage = "https://github.com/aircrack-ng/rtl8188eus"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ moni ]; - broken = (lib.versionAtLeast kernel.version "6.8") || ((lib.versions.majorMinor kernel.version) == "5.4" && kernel.isHardened); - }; -} diff --git a/pkgs/os-specific/linux/rtl8189es/default.nix b/pkgs/os-specific/linux/rtl8189es/default.nix deleted file mode 100644 index e31a54f56c31..000000000000 --- a/pkgs/os-specific/linux/rtl8189es/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel, bc, nukeReferences }: - -stdenv.mkDerivation rec { - name = "rtl8189es-${kernel.version}-${version}"; - version = "2023-03-14"; - - src = fetchFromGitHub { - owner = "jwrdegoede"; - repo = "rtl8189ES_linux"; - rev = "ae7b31e55526ca0e01d2a3310118530bff4f1055"; - sha256 = "sha256-l/xUxs63Y5LVT6ZafuRc+iaCXCSt2HwysYJLJ5hg3RM="; - }; - - nativeBuildInputs = [ bc nukeReferences ] ++ kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" "format" ]; - - prePatch = '' - substituteInPlace ./Makefile --replace /lib/modules/ "${kernel.dev}/lib/modules/" - substituteInPlace ./Makefile --replace /sbin/depmod \# - substituteInPlace ./Makefile --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - makeFlags = kernel.makeFlags ++ [ - "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ("CONFIG_PLATFORM_I386_PC=" + (if (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) then "y" else "n")) - ("CONFIG_PLATFORM_ARM_RPI=" + (if stdenv.hostPlatform.isAarch then "y" else "n")) - ]; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - postInstall = '' - nuke-refs $out/lib/modules/*/kernel/net/wireless/*.ko - ''; - - meta = with lib; { - description = "Driver for Realtek rtl8189es"; - homepage = "https://github.com/jwrdegoede/rtl8189ES_linux"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ danielfullmer lheckemann ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl8189fs/default.nix b/pkgs/os-specific/linux/rtl8189fs/default.nix deleted file mode 100644 index 67642f11d322..000000000000 --- a/pkgs/os-specific/linux/rtl8189fs/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, kernel, rtl8189es, fetchFromGitHub, fetchpatch }: - -# rtl8189fs is a branch of the rtl8189es driver -rtl8189es.overrideAttrs (drv: rec { - name = "rtl8189fs-${kernel.version}-${version}"; - version = "2023-03-27"; - - src = fetchFromGitHub { - owner = "jwrdegoede"; - repo = "rtl8189ES_linux"; - rev = "c223a25b1000d64432eca4201a8f012414dfc7ce"; - sha256 = "sha256-5b5IshLbWxvmzcKy/xLsqKa3kZpwDQXTQtjqZLHyOCo="; - }; - - meta = with lib; { - description = "Driver for Realtek rtl8189fs"; - homepage = "https://github.com/jwrdegoede/rtl8189ES_linux/tree/rtl8189fs"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ puffnfresh ]; - }; -}) diff --git a/pkgs/os-specific/linux/rtl8192eu/default.nix b/pkgs/os-specific/linux/rtl8192eu/default.nix deleted file mode 100644 index 32b97b59c52e..000000000000 --- a/pkgs/os-specific/linux/rtl8192eu/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel, bc }: - -with lib; - -let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtl8192eu"; - -in stdenv.mkDerivation rec { - pname = "rtl8192eu"; - version = "${kernel.version}-4.4.1.20230613"; - - src = fetchFromGitHub { - owner = "Mange"; - repo = "rtl8192eu-linux-driver"; - rev = "f2fc8af7ab58d2123eed1aa4428e713cdfc27976"; - sha256 = "sha256-OgsxBcXoIP8h9Z0bLsG91/s/+r89Tdn2dPOt4p3sx8k="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies ++ [ bc ]; - - makeFlags = kernel.makeFlags ++ [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; - - enableParallelBuilding = true; - - installPhase = '' - runHook preInstall - - mkdir -p ${modDestDir} - find . -name '*.ko' -exec cp --parents {} ${modDestDir} \; - find ${modDestDir} -name '*.ko' -exec xz -f {} \; - - runHook postInstall - ''; - - meta = with lib; { - description = "Realtek rtl8192eu driver"; - homepage = "https://github.com/Mange/rtl8192eu-linux-driver"; - license = licenses.gpl2Only; - platforms = platforms.linux; - broken = stdenv.hostPlatform.isAarch64; - maintainers = with maintainers; [ troydm ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl8723ds/default.nix b/pkgs/os-specific/linux/rtl8723ds/default.nix deleted file mode 100644 index be4b954c1b61..000000000000 --- a/pkgs/os-specific/linux/rtl8723ds/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, bc }: - -stdenv.mkDerivation { - pname = "rtl8723ds"; - version = "${kernel.version}-unstable-2022-12-01"; - - src = fetchFromGitHub { - owner = "lwfinger"; - repo = "rtl8723ds"; - rev = "a638cc8639015b8b9390af3350fab0366b6c87e7"; - sha256 = "sha256-qfVE7k71NPzw3FwoOaUxH66PnDjbpMAF6CyOyUVdSMA="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies; - - makeFlags = [ - "ARCH=${stdenv.hostPlatform.linuxArch}" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; - - postPatch = '' - substituteInPlace ./Makefile \ - --replace /lib/modules/ "${kernel.dev}/lib/modules/" \ - --replace "/sbin/depmod" "#" \ - --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - enableParallelBuilding = true; - - meta = { - description = "Linux driver for RTL8723DS."; - homepage = "https://github.com/lwfinger/rtl8723ds"; - license = lib.licenses.gpl2Only; - platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ chuangzhu ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl8812au/default.nix b/pkgs/os-specific/linux/rtl8812au/default.nix deleted file mode 100644 index ed330fc24637..000000000000 --- a/pkgs/os-specific/linux/rtl8812au/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, bc, nukeReferences }: - -stdenv.mkDerivation { - pname = "rtl8812au"; - version = "${kernel.version}-unstable-2024-01-19"; - - src = fetchFromGitHub { - owner = "morrownr"; - repo = "8812au-20210629"; - rev = "3b921c0beda8583c1d2d1b0b7e4692d11e7ea772"; - hash = "sha256-Ji61Y23uGSTyj3Z5ia9iev5rVzSOv7XY/IfAClhz7Q8="; - }; - - nativeBuildInputs = [ bc nukeReferences ] ++ kernel.moduleBuildDependencies; - hardeningDisable = [ "pic" "format" ]; - - prePatch = '' - substituteInPlace ./Makefile \ - --replace /lib/modules/ "${kernel.dev}/lib/modules/" \ - --replace /sbin/depmod \# \ - --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - makeFlags = [ - "ARCH=${stdenv.hostPlatform.linuxArch}" - ("CONFIG_PLATFORM_I386_PC=" + (if stdenv.hostPlatform.isx86 then "y" else "n")) - ("CONFIG_PLATFORM_ARM_RPI=" + (if stdenv.hostPlatform.isAarch then "y" else "n")) - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - postInstall = '' - nuke-refs $out/lib/modules/*/kernel/net/wireless/*.ko - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Driver for Realtek 802.11ac, rtl8812au, provides the 8812au mod"; - homepage = "https://github.com/morrownr/8812au-20210629"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ moni ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl8814au/default.nix b/pkgs/os-specific/linux/rtl8814au/default.nix deleted file mode 100644 index bef60b52814d..000000000000 --- a/pkgs/os-specific/linux/rtl8814au/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation { - pname = "rtl8814au"; - version = "${kernel.version}-unstable-2024-03-19"; - - src = fetchFromGitHub { - owner = "morrownr"; - repo = "8814au"; - rev = "d7945c1e0244c83cbbad4da331648246f12eaee9"; - hash = "sha256-idjHlvyFpQgLGfNAPpZKRnLdXnAogUW3qGHC1WzGVmA="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags; - - hardeningDisable = [ "pic" ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types"; - - prePatch = '' - substituteInPlace ./Makefile \ - --replace /lib/modules/ "${kernel.dev}/lib/modules/" \ - --replace /sbin/depmod \# \ - --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Realtek 8814AU USB WiFi driver"; - homepage = "https://github.com/morrownr/8814au"; - license = licenses.gpl2Only; - maintainers = [ maintainers.lassulus ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl8821au/default.nix b/pkgs/os-specific/linux/rtl8821au/default.nix deleted file mode 100644 index e8be48cc403c..000000000000 --- a/pkgs/os-specific/linux/rtl8821au/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, bc, nukeReferences }: - -stdenv.mkDerivation { - pname = "rtl8821au"; - version = "${kernel.version}-unstable-2024-03-16"; - - src = fetchFromGitHub { - owner = "morrownr"; - repo = "8821au-20210708"; - rev = "168ac48174067e17ffb9f8b15ab802f37447dacc"; - hash = "sha256-eB9RCoU5jg5fgZkfcef9fsQ6tyD8gTPD+wYcR6PbWNw="; - }; - - nativeBuildInputs = [ bc nukeReferences ] ++ kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" "format" ]; - - env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types"; - - makeFlags = [ - "ARCH=${stdenv.hostPlatform.linuxArch}" - ("CONFIG_PLATFORM_I386_PC=" + (if stdenv.hostPlatform.isx86 then "y" else "n")) - ("CONFIG_PLATFORM_ARM_RPI=" + (if (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) then "y" else "n")) - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; - - prePatch = '' - substituteInPlace ./Makefile \ - --replace /lib/modules/ "${kernel.dev}/lib/modules/" \ - --replace /sbin/depmod \# \ - --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - postInstall = '' - nuke-refs $out/lib/modules/*/kernel/net/wireless/*.ko - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "rtl8821AU and rtl8812AU chipset driver with firmware"; - homepage = "https://github.com/morrownr/8821au"; - license = licenses.gpl2Only; - platforms = lib.platforms.linux; - maintainers = with maintainers; [ plchldr ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl8821ce/default.nix b/pkgs/os-specific/linux/rtl8821ce/default.nix deleted file mode 100644 index 5f9e2e8cf10d..000000000000 --- a/pkgs/os-specific/linux/rtl8821ce/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, kernel -, bc -}: - -stdenv.mkDerivation rec { - pname = "rtl8821ce"; - version = "${kernel.version}-unstable-2024-01-20"; - - src = fetchFromGitHub { - owner = "tomaspinho"; - repo = "rtl8821ce"; - rev = "66983b69120a13699acf40a12979317f29012111"; - hash = "sha256-Zxb9cOgP67QdCeTNEme0tAsBqd9j/2k+gcE1QKkUQU4="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags; - - prePatch = '' - substituteInPlace ./Makefile \ - --replace /lib/modules/ "${kernel.dev}/lib/modules/" \ - --replace /sbin/depmod \# \ - --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Realtek rtl8821ce driver"; - homepage = "https://github.com/tomaspinho/rtl8821ce"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ hhm ivar ]; - broken = stdenv.isAarch64 || ((lib.versions.majorMinor kernel.version) == "5.4" && kernel.isHardened); - }; -} diff --git a/pkgs/os-specific/linux/rtl8821cu/default.nix b/pkgs/os-specific/linux/rtl8821cu/default.nix deleted file mode 100644 index 806df9f6dd4d..000000000000 --- a/pkgs/os-specific/linux/rtl8821cu/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, bc }: - -stdenv.mkDerivation rec { - pname = "rtl8821cu"; - version = "${kernel.version}-unstable-2023-09-10"; - - src = fetchFromGitHub { - owner = "morrownr"; - repo = "8821cu-20210916"; - rev = "f6d4598290c5e9c8e545130e8a31d130f6d135f4"; - hash = "sha256-jpMf8K9diJ3mbEkP9Cp+VwairK+pwiEGU/AtUIouCqM="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags; - - prePatch = '' - substituteInPlace ./Makefile \ - --replace /lib/modules/ "${kernel.dev}/lib/modules/" \ - --replace /sbin/depmod \# \ - --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Realtek rtl8821cu driver"; - homepage = "https://github.com/morrownr/8821cu"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = [ maintainers.contrun ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl8852au/default.nix b/pkgs/os-specific/linux/rtl8852au/default.nix deleted file mode 100644 index d154fbe86a20..000000000000 --- a/pkgs/os-specific/linux/rtl8852au/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, bc, nukeReferences }: - -stdenv.mkDerivation { - pname = "rtl8852au"; - version = "${kernel.version}-unstable-2023-11-24"; - - src = fetchFromGitHub { - owner = "lwfinger"; - repo = "rtl8852au"; - rev = "70bdde265b9ab002daf11d4bea1a42baa8da4325"; - hash = "sha256-6ARS7/0iKYajpMH+f+jWDxIkPY9ZixJkk864oKom4l4="; - }; - - nativeBuildInputs = [ bc nukeReferences ] ++ kernel.moduleBuildDependencies; - hardeningDisable = [ "pic" "format" ]; - - postPatch = '' - substituteInPlace ./Makefile \ - --replace-fail /sbin/depmod \# \ - --replace-fail '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" \ - --replace-fail '/usr/lib/systemd/system-sleep' "$out/usr/lib/systemd/system-sleep" - substituteInPlace ./platform/i386_pc.mk \ - --replace-fail /lib/modules "${kernel.dev}/lib/modules" - ''; - - makeFlags = [ - "ARCH=${stdenv.hostPlatform.linuxArch}" - ("CONFIG_PLATFORM_I386_PC=" + (if stdenv.hostPlatform.isx86 then "y" else "n")) - ("CONFIG_PLATFORM_ARM_RPI=" + (if stdenv.hostPlatform.isAarch then "y" else "n")) - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - mkdir -p "$out/usr/lib/systemd/system-sleep" - ''; - - postInstall = '' - nuke-refs $out/lib/modules/*/kernel/net/wireless/*.ko - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Driver for Realtek 802.11ac, rtl8852au, provides the 8852au mod"; - homepage = "https://github.com/lwfinger/rtl8852au"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ lonyelon ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl8852bu/default.nix b/pkgs/os-specific/linux/rtl8852bu/default.nix deleted file mode 100644 index cc0f495b8122..000000000000 --- a/pkgs/os-specific/linux/rtl8852bu/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, bc, nukeReferences }: - -stdenv.mkDerivation { - pname = "rtl8852bu"; - version = "${kernel.version}-unstable-2024-03-28"; - - src = fetchFromGitHub { - owner = "morrownr"; - repo = "rtl8852bu"; - rev = "f6aaa3c0094c541d9b0347926c76c1e9cc4a49d1"; - hash = "sha256-Jbd6nixo873LU74klhhQU1qD3ahxEnywdqcF89LTRxc="; - }; - - nativeBuildInputs = [ bc nukeReferences ] ++ kernel.moduleBuildDependencies; - hardeningDisable = [ "pic" "format" ]; - - postPatch = '' - substituteInPlace ./Makefile \ - --replace-fail /sbin/depmod \# \ - --replace-fail '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - substituteInPlace ./platform/i386_pc.mk \ - --replace-fail /lib/modules "${kernel.dev}/lib/modules" - ''; - - makeFlags = [ - "ARCH=${stdenv.hostPlatform.linuxArch}" - ("CONFIG_PLATFORM_I386_PC=" + (if stdenv.hostPlatform.isx86 then "y" else "n")) - ("CONFIG_PLATFORM_ARM_RPI=" + (if stdenv.hostPlatform.isAarch then "y" else "n")) - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - mkdir -p "$out/usr/lib/systemd/system-sleep" - ''; - - postInstall = '' - nuke-refs $out/lib/modules/*/kernel/net/wireless/*.ko - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Driver for Realtek rtl8852au and rtl8832bu chipsets, provides the 8852au mod"; - homepage = "https://github.com/morrownr/rtl8852bu"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ lonyelon ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl88x2bu/default.nix b/pkgs/os-specific/linux/rtl88x2bu/default.nix deleted file mode 100644 index edb2feed6c61..000000000000 --- a/pkgs/os-specific/linux/rtl88x2bu/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, bc }: - -stdenv.mkDerivation { - pname = "rtl88x2bu"; - version = "${kernel.version}-unstable-2023-11-29"; - - src = fetchFromGitHub { - owner = "morrownr"; - repo = "88x2bu-20210702"; - rev = "cd2b6cbd9c8fbfebee8a1f28fab8e4434450456c"; - sha256 = "sha256-t1lLJSEDzY2zvgcKYaxUq/umrlLpxu4+4zWmG8R0Wz4="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = [ bc ] ++ kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags; - - prePatch = '' - substituteInPlace ./Makefile \ - --replace /lib/modules/ "${kernel.dev}/lib/modules/" \ - --replace /sbin/depmod \# \ - --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Realtek rtl88x2bu driver"; - homepage = "https://github.com/morrownr/88x2bu-20210702"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ otavio ]; - }; -} diff --git a/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix b/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix deleted file mode 100644 index 2f6ab211d32e..000000000000 --- a/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "rtl88xxau-aircrack"; - version = "${kernel.version}-unstable-2024-04-09"; - - src = fetchFromGitHub { - owner = "aircrack-ng"; - repo = "rtl8812au"; - rev = "63cf0b4584aa8878b0fe8ab38017f31c319bde3d"; - hash = "sha256-tDsI/ZzsQm9999EpCpDFArfEIg/ueUJEbSYESbGxd4A="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" ]; - - prePatch = '' - substituteInPlace ./Makefile \ - --replace /lib/modules/ "${kernel.dev}/lib/modules/" \ - --replace /sbin/depmod \# \ - --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/" - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = '' - Aircrack-ng kernel module for Realtek 88XXau network cards - (8811au, 8812au, 8814au and 8821au chipsets) with monitor mode and injection support.''; - homepage = "https://github.com/aircrack-ng/rtl8812au"; - license = licenses.gpl2Only; - maintainers = [ maintainers.ja1den maintainers.jethro ]; - platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/rtw88/default.nix b/pkgs/os-specific/linux/rtw88/default.nix deleted file mode 100644 index a28a9f3d19e8..000000000000 --- a/pkgs/os-specific/linux/rtw88/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - -let - modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtw88"; -in -stdenv.mkDerivation { - pname = "rtw88"; - version = "unstable-2023-07-23"; - - src = fetchFromGitHub { - owner = "lwfinger"; - repo = "rtw88"; - rev = "9b6fe04a741a6b0a1edc5ca134927784bff033a5"; - hash = "sha256-OzaIy+WTrljwAhC73wEIRUXrkz1NrGNJAS3zofQyV6E="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags ++ [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; - - enableParallelBuilding = true; - - installPhase = '' - runHook preInstall - - mkdir -p ${modDestDir} - find . -name '*.ko' -exec cp --parents {} ${modDestDir} \; - find ${modDestDir} -name '*.ko' -exec xz -f {} \; - - runHook postInstall - ''; - - meta = with lib; { - description = "Backport of the latest Realtek RTW88 driver from wireless-next for older kernels"; - homepage = "https://github.com/lwfinger/rtw88"; - license = with licenses; [ bsd3 gpl2Only ]; - maintainers = with maintainers; [ tvorog atila ]; - platforms = platforms.linux; - broken = kernel.kernelOlder "4.20"; - priority = -1; - }; -} diff --git a/pkgs/os-specific/linux/rtw89/default.nix b/pkgs/os-specific/linux/rtw89/default.nix deleted file mode 100644 index 1bb42860a8c7..000000000000 --- a/pkgs/os-specific/linux/rtw89/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - -let - modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtw89"; -in -stdenv.mkDerivation { - pname = "rtw89"; - version = "unstable-2022-12-18"; - - src = fetchFromGitHub { - owner = "lwfinger"; - repo = "rtw89"; - rev = "e834edfe8bee6e27e31c2f783817a9c13ff45665"; - sha256 = "19ApYiEvA0E6qgf5XQc03paZ+ghjZL8JoC3vSYYw3xU="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags ++ [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; - - enableParallelBuilding = true; - - installPhase = '' - runHook preInstall - - mkdir -p ${modDestDir} - find . -name '*.ko' -exec cp --parents {} ${modDestDir} \; - find ${modDestDir} -name '*.ko' -exec xz -f {} \; - - runHook postInstall - ''; - - meta = with lib; { - description = " Driver for Realtek 8852AE, 8852BE, and 8853CE, 802.11ax devices"; - homepage = "https://github.com/lwfinger/rtw89"; - license = with licenses; [ gpl2Only ]; - maintainers = with maintainers; [ tvorog ]; - platforms = platforms.linux; - broken = kernel.kernelOlder "5.7"; - priority = -1; - }; -} diff --git a/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix b/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix deleted file mode 100644 index 5ef6f7c4edbb..000000000000 --- a/pkgs/os-specific/linux/rust-out-of-tree-module/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, fetchFromGitHub, kernel }: -kernel.stdenv.mkDerivation { - name = "rust-out-of-tree-module"; - - src = fetchFromGitHub { - owner = "Rust-for-linux"; - repo = "rust-out-of-tree-module"; - - rev = "7addf9dafba795524f6179a557f7272ecbe1b165"; - hash = "sha256-Bj7WonZ499W/FajbxjM7yBkU9iTxTW7CrRbCSzWbsSc="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - makeFlags = kernel.makeFlags ++ [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; - - installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ]; - installTargets = [ "modules_install" ]; - - meta = { - broken = !kernel.withRust; - description = "A basic template for an out-of-tree Linux kernel module written in Rust"; - homepage = "https://github.com/Rust-for-Linux/rust-out-of-tree-module"; - license = lib.licenses.gpl2Only; - maintainers = [ lib.maintainers.blitz ]; - platforms = [ "x86_64-linux" ] - ++ lib.optional (kernel.kernelAtLeast "6.9") "aarch64-linux"; - }; - -} diff --git a/pkgs/os-specific/linux/ryzen-smu/default.nix b/pkgs/os-specific/linux/ryzen-smu/default.nix deleted file mode 100644 index 7f899f2c2c90..000000000000 --- a/pkgs/os-specific/linux/ryzen-smu/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, kernel -}: - -let - version = "0.1.5-unstable-2024-01-03"; - - ## Upstream has not been merging PRs. - ## Nixpkgs maintainers are providing a - ## repo with PRs merged until upstream is - ## updated. - src = fetchFromGitHub { - owner = "Cryolitia"; - repo = "ryzen_smu"; - rev = "ce1aa918efa33ca79998f0f7d467c04d4b07016c"; - hash = "sha256-s9SSmbL6ixWqZUKEhrZdxN4xoWgk+8ClZPoKq2FDAAE="; - }; - - monitor-cpu = stdenv.mkDerivation { - pname = "monitor-cpu"; - inherit version src; - - makeFlags = [ - "-C userspace" - ]; - - installPhase = '' - runHook preInstall - - install userspace/monitor_cpu -Dm755 -t $out/bin - - runHook postInstall - ''; - }; - -in -stdenv.mkDerivation { - pname = "ryzen-smu-${kernel.version}"; - inherit version src; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "TARGET=${kernel.modDirVersion}" - "KERNEL_BUILD=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - runHook preInstall - - install ryzen_smu.ko -Dm444 -t $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/ryzen_smu - install ${monitor-cpu}/bin/monitor_cpu -Dm755 -t $out/bin - - runHook postInstall - ''; - - meta = with lib; { - description = "A Linux kernel driver that exposes access to the SMU (System Management Unit) for certain AMD Ryzen Processors"; - homepage = "https://gitlab.com/leogx9r/ryzen_smu"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ Cryolitia phdyellow ]; - platforms = [ "x86_64-linux" ]; - mainProgram = "monitor_cpu"; - }; -} diff --git a/pkgs/os-specific/linux/ryzenadj/default.nix b/pkgs/os-specific/linux/ryzenadj/default.nix deleted file mode 100644 index ef671b2f16c4..000000000000 --- a/pkgs/os-specific/linux/ryzenadj/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pciutils, cmake }: -stdenv.mkDerivation rec { - pname = "ryzenadj"; - version = "0.15.0"; - - src = fetchFromGitHub { - owner = "FlyGoat"; - repo = "RyzenAdj"; - rev = "v${version}"; - sha256 = "sha256-aNkVP1fuPcb41Qk5YI1loJnqVmamSzoMFyTGkJtrnvg="; - }; - - nativeBuildInputs = [ pciutils cmake ]; - - installPhase = '' - install -D libryzenadj.so $out/lib/libryzenadj.so - install -D ryzenadj $out/bin/ryzenadj - ''; - - meta = with lib; { - description = "Adjust power management settings for Ryzen Mobile Processors."; - mainProgram = "ryzenadj"; - homepage = "https://github.com/FlyGoat/RyzenAdj"; - license = licenses.lgpl3Only; - maintainers = with maintainers; [ rhendric ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/sasutils/default.nix b/pkgs/os-specific/linux/sasutils/default.nix deleted file mode 100644 index 64d288117bf4..000000000000 --- a/pkgs/os-specific/linux/sasutils/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, python3Packages, fetchFromGitHub, installShellFiles, sg3_utils }: - -python3Packages.buildPythonApplication rec { - pname = "sasutils"; - version = "0.5.0"; - - src = fetchFromGitHub { - owner = "stanford-rc"; - repo = pname; - rev = "refs/tags/v${version}"; - sha256 = "sha256-DK0mEqlPf9UGtUxqbzB0l1xX0P4htYm2NYvV7zilhx0="; - }; - - nativeBuildInputs = [ installShellFiles ]; - - propagatedBuildInputs = [ sg3_utils ]; - - postInstall = '' - installManPage doc/man/man1/*.1 - ''; - - meta = with lib; { - homepage = "https://github.com/stanford-rc/sasutils"; - description = "A set of command-line tools to ease the administration of Serial Attached SCSI (SAS) fabrics"; - license = licenses.asl20; - maintainers = with maintainers; [ aij ]; - }; -} diff --git a/pkgs/os-specific/linux/schedtool/default.nix b/pkgs/os-specific/linux/schedtool/default.nix deleted file mode 100644 index d3d009db1714..000000000000 --- a/pkgs/os-specific/linux/schedtool/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "schedtool"; - version = "1.3.0"; - - src = fetchFromGitHub { - owner = "freequaos"; - repo = "schedtool"; - rev = "${pname}-${version}"; - sha256 = "1wdw6fnf9a01xfjhdah3mn8bp1bvahf2lfq74i6hk5b2cagkppyp"; - }; - - makeFlags = [ "DESTDIR=$(out)" "DESTPREFIX=" ]; - - meta = with lib; { - description = "Query or alter a process' scheduling policy under Linux"; - mainProgram = "schedtool"; - homepage = "https://freequaos.host.sk/schedtool/"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ abbradar ]; - }; -} diff --git a/pkgs/os-specific/linux/sd-switch/default.nix b/pkgs/os-specific/linux/sd-switch/default.nix deleted file mode 100644 index 7750862c34c2..000000000000 --- a/pkgs/os-specific/linux/sd-switch/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, fetchFromSourcehut, rustPlatform, pkg-config, dbus }: - -let version = "0.3.0"; -in rustPlatform.buildRustPackage { - pname = "sd-switch"; - inherit version; - - src = fetchFromSourcehut { - owner = "~rycee"; - repo = "sd-switch"; - rev = version; - hash = "sha256-mWrLbCUnoJ3hVtpSU/7dw91U5TLyw5kNchX5nmP9asA="; - }; - - cargoHash = "sha256-VK+kPX1pGhowbWKkUs1PL0DXIhDXJOFVoIHTtWQcWEs="; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ dbus ]; - - meta = with lib; { - description = "A systemd unit switcher for Home Manager"; - mainProgram = "sd-switch"; - homepage = "https://gitlab.com/rycee/sd-switch"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ rycee ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/sdparm/default.nix b/pkgs/os-specific/linux/sdparm/default.nix deleted file mode 100644 index a9137b18f39d..000000000000 --- a/pkgs/os-specific/linux/sdparm/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "sdparm"; - version = "1.12"; - - src = fetchurl { - url = "http://sg.danny.cz/sg/p/${pname}-${version}.tar.xz"; - sha256 = "sha256-xMnvr9vrZi4vlxJwfsSQkyvU0BC7ESmueplSZUburb4="; - }; - - meta = with lib; { - homepage = "http://sg.danny.cz/sg/sdparm.html"; - description = "A utility to access SCSI device parameters"; - license = licenses.bsd3; - platforms = with platforms; linux; - }; -} diff --git a/pkgs/os-specific/linux/selinux-python/default.nix b/pkgs/os-specific/linux/selinux-python/default.nix deleted file mode 100644 index c50f4ffccd0b..000000000000 --- a/pkgs/os-specific/linux/selinux-python/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib, stdenv, fetchurl, python3 -, libselinux, libsemanage, libsepol, setools }: - -# this is python3 only because setools only supports python3 - -with lib; - -stdenv.mkDerivation rec { - pname = "selinux-python"; - version = "3.3"; - - inherit (libsepol) se_url; - - src = fetchurl { - url = "${se_url}/${version}/selinux-python-${version}.tar.gz"; - sha256 = "1v244hpb45my303793xa4kcn7qnxjgxn4ja7rdn9k1q361hi1nca"; - }; - - strictDeps = true; - - nativeBuildInputs = [ python3 python3.pkgs.wrapPython ]; - buildInputs = [ libsepol ]; - propagatedBuildInputs = [ libselinux libsemanage setools python3.pkgs.ipy ]; - - postPatch = '' - substituteInPlace sepolicy/Makefile --replace "echo --root" "echo --prefix" - substituteInPlace sepolgen/src/share/Makefile --replace "/var/lib/sepolgen" \ - "\$PREFIX/var/lib/sepolgen" - ''; - - makeFlags = [ - "PREFIX=$(out)" - "LOCALEDIR=$(out)/share/locale" - "BASHCOMPLETIONDIR=$(out)/share/bash-completion/completions" - "PYTHON=python" - "PYTHONLIBDIR=$(out)/${python3.sitePackages}" - "LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a" - ]; - - - postFixup = '' - wrapPythonPrograms - ''; - - meta = { - description = "SELinux policy core utilities written in Python"; - license = licenses.gpl2; - homepage = "https://selinuxproject.org"; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/selinux-sandbox/default.nix b/pkgs/os-specific/linux/selinux-sandbox/default.nix deleted file mode 100644 index 0d2843d216a4..000000000000 --- a/pkgs/os-specific/linux/selinux-sandbox/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib, stdenv, fetchurl, bash, coreutils, python3 -, libcap_ng, policycoreutils, selinux-python, dbus -, xorgserver, openbox, xmodmap }: - -# this is python3 only as it depends on selinux-python - -with lib; -with python3.pkgs; - -stdenv.mkDerivation rec { - pname = "selinux-sandbox"; - version = "3.3"; - inherit (policycoreutils) se_url; - - src = fetchurl { - url = "${se_url}/${version}/selinux-sandbox-${version}.tar.gz"; - sha256 = "0rw8pxfqhl6ww4w31fbf4hi3zilh1n3b1rfjm7ra76mm78wfyylj"; - }; - - nativeBuildInputs = [ wrapPython ]; - buildInputs = [ bash coreutils libcap_ng policycoreutils python3 xorgserver openbox xmodmap dbus ]; - propagatedBuildInputs = [ pygobject3 selinux-python ]; - - postPatch = '' - # Fix setuid install - substituteInPlace Makefile --replace "-m 4755" "-m 755" - substituteInPlace sandboxX.sh \ - --replace "#!/bin/sh" "#!${bash}/bin/sh" \ - --replace "/usr/share/sandbox/start" "${placeholder "out"}/share/sandbox/start" \ - --replace "/usr/bin/cut" "${coreutils}/bin/cut" \ - --replace "/usr/bin/Xephyr" "${xorgserver}/bin/Xepyhr" \ - --replace "secon" "${policycoreutils}/bin/secon" - substituteInPlace sandbox \ - --replace "/usr/sbin/seunshare" "$out/bin/seunshare" \ - --replace "/usr/share/sandbox" "$out/share/sandbox" \ - --replace "/usr/share/locale" "${policycoreutils}/share/locale" \ - --replace "/usr/bin/openbox" "${openbox}/bin/openbox" \ - --replace "#!/bin/sh" "#!${bash}/bin/sh" \ - --replace "dbus-" "${dbus}/bin/dbus-" \ - --replace "/usr/bin/xmodmap" "${xmodmap}/bin/xmodmap" \ - --replace "/usr/bin/shred" "${coreutils}/bin/shred" \ - --replace "/usr/bin/test" "${coreutils}/bin/test" \ - ''; - - makeFlags = [ - "PREFIX=$(out)" - "SYSCONFDIR=$(out)/etc/sysconfig" - ]; - - postFixup = '' - wrapPythonPrograms - ''; - - meta = { - description = "SELinux sandbox utility"; - license = licenses.gpl2; - homepage = "https://selinuxproject.org"; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/semodule-utils/default.nix b/pkgs/os-specific/linux/semodule-utils/default.nix deleted file mode 100644 index 70de3cc6b60c..000000000000 --- a/pkgs/os-specific/linux/semodule-utils/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchurl, libsepol }: - -stdenv.mkDerivation rec { - pname = "semodule-utils"; - version = "3.6"; - - inherit (libsepol) se_url; - - src = fetchurl { - url = "${se_url}/${version}/${pname}-${version}.tar.gz"; - sha256 = "sha256-7tuI8rISTlOPLWFL4GPA2aw+rMDFGk2kRQDKHtG6FvQ="; - }; - - buildInputs = [ libsepol ]; - - makeFlags = [ - "PREFIX=$(out)" - "LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a" - ]; - - meta = with lib; { - description = "SELinux policy core utilities (packaging additions)"; - license = licenses.gpl2; - inherit (libsepol.meta) homepage platforms; - maintainers = [ ]; - }; -} diff --git a/pkgs/os-specific/linux/service-wrapper/default.nix b/pkgs/os-specific/linux/service-wrapper/default.nix deleted file mode 100644 index e7aa3ea9d49d..000000000000 --- a/pkgs/os-specific/linux/service-wrapper/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, runCommand, substituteAll, coreutils }: - -let - name = "service-wrapper-${version}"; - version = "19.04"; # Akin to Ubuntu Release -in -runCommand name { - script = substituteAll { - src = ./service-wrapper.sh; - isExecutable = true; - inherit (stdenv) shell; - inherit coreutils; - }; - - meta = with lib; { - description = "A convenient wrapper for the systemctl commands, borrow from Ubuntu"; - mainProgram = "service"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ DerTim1 ]; - # Shellscript has been modified but upstream source is: https://git.launchpad.net/ubuntu/+source/init-system-helpers - }; -} -'' - mkdir -p $out/bin - ln -s $out/bin $out/sbin - cp $script $out/bin/service - chmod a+x $out/bin/service -'' diff --git a/pkgs/os-specific/linux/service-wrapper/service-wrapper.sh b/pkgs/os-specific/linux/service-wrapper/service-wrapper.sh deleted file mode 100755 index 2889adc18686..000000000000 --- a/pkgs/os-specific/linux/service-wrapper/service-wrapper.sh +++ /dev/null @@ -1,224 +0,0 @@ -#!@shell@ - -########################################################################### -# /usr/bin/service -# -# A convenient wrapper for the /etc/init.d init scripts. -# -# This script is a modified version of the /sbin/service utility found on -# Red Hat/Fedora systems (licensed GPLv2+). -# -# Copyright (C) 2006 Red Hat, Inc. All rights reserved. -# Copyright (C) 2008 Canonical Ltd. -# * August 2008 - Dustin Kirkland <kirkland@canonical.com> -# Copyright (C) 2013 Michael Stapelberg <stapelberg@debian.org> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# On Debian GNU/Linux systems, the complete text of the GNU General -# Public License can be found in `/usr/share/common-licenses/GPL-2'. -########################################################################### - - -is_ignored_file() { - case "$1" in - skeleton | README | *.dpkg-dist | *.dpkg-old | rc | rcS | single | reboot | bootclean.sh) - return 0 - ;; - esac - return 1 -} - -VERSION=$(@coreutils@/bin/basename $0)" ver. 19-04" -USAGE="Usage: "$(@coreutils@/bin/basename $0)" < option > | --status-all | \ -[ service_name [ command | --full-restart ] ]" -SERVICE= -ACTION= -SERVICEDIR="/etc/init.d" -OPTIONS= -is_systemd= - - -if [ $# -eq 0 ]; then - echo "${USAGE}" >&2 - exit 1 -fi - -if [ -d /run/systemd/system ]; then - is_systemd=1 -fi - -cd / -while [ $# -gt 0 ]; do - case "${1}" in - --help | -h | --h* ) - echo "${USAGE}" >&2 - exit 0 - ;; - --version | -V ) - echo "${VERSION}" >&2 - exit 0 - ;; - *) - if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then - if [ -d "${SERVICEDIR}" ]; then - cd ${SERVICEDIR} - for SERVICE in * ; do - case "${SERVICE}" in - functions | halt | killall | single| linuxconf| kudzu) - ;; - *) - if ! is_ignored_file "${SERVICE}" \ - && [ -x "${SERVICEDIR}/${SERVICE}" ]; then - out=$(env -i LANG="$LANG" LANGUAGE="$LANGUAGE" LC_CTYPE="$LC_CTYPE" LC_NUMERIC="$LC_NUMERIC" LC_TIME="$LC_TIME" LC_COLLATE="$LC_COLLATE" LC_MONETARY="$LC_MONETARY" LC_MESSAGES="$LC_MESSAGES" LC_PAPER="$LC_PAPER" LC_NAME="$LC_NAME" LC_ADDRESS="$LC_ADDRESS" LC_TELEPHONE="$LC_TELEPHONE" LC_MEASUREMENT="$LC_MEASUREMENT" LC_IDENTIFICATION="$LC_IDENTIFICATION" LC_ALL="$LC_ALL" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status 2>&1) - retval=$? - if echo "$out" | egrep -iq "usage:"; then - #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2 - echo " [ ? ] $SERVICE" 1>&2 - continue - else - if [ "$retval" = "0" -a -n "$out" ]; then - #printf " %s %-60s %s\n" "[+]" "$SERVICE:" "running" - echo " [ + ] $SERVICE" - continue - else - #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running" - echo " [ - ] $SERVICE" - continue - fi - fi - #env -i LANG="$LANG" LANGUAGE="$LANGUAGE" LC_CTYPE="$LC_CTYPE" LC_NUMERIC="$LC_NUMERIC" LC_TIME="$LC_TIME" LC_COLLATE="$LC_COLLATE" LC_MONETARY="$LC_MONETARY" LC_MESSAGES="$LC_MESSAGES" LC_PAPER="$LC_PAPER" LC_NAME="$LC_NAME" LC_ADDRESS="$LC_ADDRESS" LC_TELEPHONE="$LC_TELEPHONE" LC_MEASUREMENT="$LC_MEASUREMENT" LC_IDENTIFICATION="$LC_IDENTIFICATION" LC_ALL="$LC_ALL" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status - fi - ;; - esac - done - else - systemctl $sctl_args list-units - fi - exit 0 - elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then - SERVICE="${1}" - # On systems using systemd, we just perform a normal restart: - # A restart with systemd is already a full restart. - if [ -n "$is_systemd" ]; then - ACTION="restart" - else - if [ -x "${SERVICEDIR}/${SERVICE}" ]; then - env -i LANG="$LANG" LANGUAGE="$LANGUAGE" LC_CTYPE="$LC_CTYPE" LC_NUMERIC="$LC_NUMERIC" LC_TIME="$LC_TIME" LC_COLLATE="$LC_COLLATE" LC_MONETARY="$LC_MONETARY" LC_MESSAGES="$LC_MESSAGES" LC_PAPER="$LC_PAPER" LC_NAME="$LC_NAME" LC_ADDRESS="$LC_ADDRESS" LC_TELEPHONE="$LC_TELEPHONE" LC_MEASUREMENT="$LC_MEASUREMENT" LC_IDENTIFICATION="$LC_IDENTIFICATION" LC_ALL="$LC_ALL" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" stop - env -i LANG="$LANG" LANGUAGE="$LANGUAGE" LC_CTYPE="$LC_CTYPE" LC_NUMERIC="$LC_NUMERIC" LC_TIME="$LC_TIME" LC_COLLATE="$LC_COLLATE" LC_MONETARY="$LC_MONETARY" LC_MESSAGES="$LC_MESSAGES" LC_PAPER="$LC_PAPER" LC_NAME="$LC_NAME" LC_ADDRESS="$LC_ADDRESS" LC_TELEPHONE="$LC_TELEPHONE" LC_MEASUREMENT="$LC_MEASUREMENT" LC_IDENTIFICATION="$LC_IDENTIFICATION" LC_ALL="$LC_ALL" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" start - exit $? - fi - fi - elif [ -z "${SERVICE}" ]; then - SERVICE="${1}" - elif [ -z "${ACTION}" ]; then - ACTION="${1}" - else - OPTIONS="${OPTIONS} ${1}" - fi - shift - ;; - esac -done - -run_via_sysvinit() { - # Otherwise, use the traditional sysvinit - if [ -x "${SERVICEDIR}/${SERVICE}" ]; then - exec env -i LANG="$LANG" LANGUAGE="$LANGUAGE" LC_CTYPE="$LC_CTYPE" LC_NUMERIC="$LC_NUMERIC" LC_TIME="$LC_TIME" LC_COLLATE="$LC_COLLATE" LC_MONETARY="$LC_MONETARY" LC_MESSAGES="$LC_MESSAGES" LC_PAPER="$LC_PAPER" LC_NAME="$LC_NAME" LC_ADDRESS="$LC_ADDRESS" LC_TELEPHONE="$LC_TELEPHONE" LC_MEASUREMENT="$LC_MEASUREMENT" LC_IDENTIFICATION="$LC_IDENTIFICATION" LC_ALL="$LC_ALL" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" ${ACTION} ${OPTIONS} - else - echo "${SERVICE}: unrecognized service" >&2 - exit 1 - fi -} - -update_openrc_started_symlinks() { - # maintain the symlinks of /run/openrc/started so that - # rc-status works with the service command as well - if [ -d /run/openrc/started ] ; then - case "${ACTION}" in - start) - if [ ! -h /run/openrc/started/$SERVICE ] ; then - ln -s $SERVICEDIR/$SERVICE /run/openrc/started/$SERVICE || true - fi - ;; - stop) - rm /run/openrc/started/$SERVICE || true - ;; - esac - fi -} - -# When this machine is running systemd, standard service calls are turned into -# systemctl calls. -if [ -n "$is_systemd" ] -then - UNIT="${SERVICE%.sh}.service" - # avoid deadlocks during bootup and shutdown from units/hooks - # which call "invoke-rc.d service reload" and similar, since - # the synchronous wait plus systemd's normal behaviour of - # transactionally processing all dependencies first easily - # causes dependency loops - if ! systemctl --quiet is-active multi-user.target; then - sctl_args="--job-mode=ignore-dependencies" - fi - - case "${ACTION}" in - restart|status|try-restart) - exec systemctl $sctl_args ${ACTION} ${UNIT} - ;; - start|stop) - # Follow the principle of least surprise for SysV people: - # When running "service foo stop" and foo happens to be a service that - # has one or more .socket files, we also stop the .socket units. - # Users who need more control will use systemctl directly. - for unit in $(systemctl list-unit-files --full --type=socket 2>/dev/null | sed -ne 's/\.socket\s*[a-z]*\s*$/.socket/p'); do - if [ "$(systemctl -p Triggers show $unit)" = "Triggers=${UNIT}" ]; then - systemctl $sctl_args ${ACTION} $unit - fi - done - exec systemctl $sctl_args ${ACTION} ${UNIT} - ;; - reload) - _canreload="$(systemctl -p CanReload show ${UNIT} 2>/dev/null)" - if [ "$_canreload" = "CanReload=no" ]; then - # The reload action falls back to the sysv init script just in case - # the systemd service file does not (yet) support reload for a - # specific service. - run_via_sysvinit - else - exec systemctl $sctl_args reload "${UNIT}" - fi - ;; - force-stop) - exec systemctl --signal=KILL kill "${UNIT}" - ;; - force-reload) - _canreload="$(systemctl -p CanReload show ${UNIT} 2>/dev/null)" - if [ "$_canreload" = "CanReload=no" ]; then - exec systemctl $sctl_args restart "${UNIT}" - else - exec systemctl $sctl_args reload "${UNIT}" - fi - ;; - *) - # We try to run non-standard actions by running - # the init script directly. - run_via_sysvinit - ;; - esac -fi - -update_openrc_started_symlinks -run_via_sysvinit diff --git a/pkgs/os-specific/linux/setools/default.nix b/pkgs/os-specific/linux/setools/default.nix deleted file mode 100644 index 8e3b0e627d37..000000000000 --- a/pkgs/os-specific/linux/setools/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, fetchFromGitHub, python3 -, libsepol, libselinux, checkpolicy -, withGraphics ? false -}: - -with lib; -with python3.pkgs; - -buildPythonApplication rec { - pname = "setools"; - version = "4.5.0"; - - src = fetchFromGitHub { - owner = "SELinuxProject"; - repo = pname; - rev = "refs/tags/${version}"; - hash = "sha256-4y4Uhh3O84UbK39j8ACu06/6n7lyHsd8MzODR0FOp3I="; - }; - - nativeBuildInputs = [ cython ]; - buildInputs = [ libsepol ]; - propagatedBuildInputs = [ enum34 libselinux networkx setuptools ] - ++ optionals withGraphics [ pyqt5 ]; - - nativeCheckInputs = [ tox checkpolicy ]; - preCheck = '' - export CHECKPOLICY=${checkpolicy}/bin/checkpolicy - ''; - - setupPyBuildFlags = [ "-i" ]; - - preBuild = '' - export SEPOL="${lib.getLib libsepol}/lib/libsepol.a" - ''; - - meta = { - description = "SELinux Policy Analysis Tools"; - homepage = "https://github.com/SELinuxProject/setools"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/seturgent/default.nix b/pkgs/os-specific/linux/seturgent/default.nix deleted file mode 100644 index b8c02f47d0ee..000000000000 --- a/pkgs/os-specific/linux/seturgent/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchgit, libX11, xorgproto }: - -stdenv.mkDerivation rec { - pname = "seturgent"; - version = "1.5"; - - src = fetchgit { - url = "git://git.codemadness.org/seturgent"; - rev = version; - sha256 = "sha256-XW7ms0BVCf1/fuL3PJ970t6sHkmMY1iLYXfS9R60JX0="; - }; - - buildInputs = [ - libX11 - xorgproto - ]; - - installPhase = '' - mkdir -pv $out/bin - mv seturgent $out/bin - ''; - - meta = with lib; { - platforms = platforms.linux; - description = "Set an application's urgency hint (or not)"; - mainProgram = "seturgent"; - maintainers = with maintainers; [ yarr ]; - homepage = "https://codemadness.org/seturgent-set-urgency-hints-for-x-applications.html"; - license = licenses.mit; - }; -} diff --git a/pkgs/os-specific/linux/sgx/azure-dcap-client/default.nix b/pkgs/os-specific/linux/sgx/azure-dcap-client/default.nix deleted file mode 100644 index c21f8ea8a644..000000000000 --- a/pkgs/os-specific/linux/sgx/azure-dcap-client/default.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ stdenv -, fetchFromGitHub -, fetchpatch -, lib -, curl -, nlohmann_json -, openssl -, pkg-config -, linkFarmFromDrvs -, callPackage -}: -let - # Although those headers are also included in the source of `sgx-psw`, the `azure-dcap-client` build needs specific versions - filterSparse = list: '' - cp -r "$out"/. . - find "$out" -mindepth 1 -delete - cp ${lib.concatStringsSep " " list} "$out/" - ''; - headers = linkFarmFromDrvs "azure-dcpa-client-intel-headers" [ - (fetchFromGitHub rec { - name = "${repo}-headers"; - owner = "intel"; - repo = "linux-sgx"; - # See: <src/Linux/configure> for the revision `azure-dcap-client` uses. - rev = "1ccf25b64abd1c2eff05ead9d14b410b3c9ae7be"; - hash = "sha256-WJRoS6+NBVJrFmHABEEDpDhW+zbWFUl65AycCkRavfs="; - sparseCheckout = [ - "common/inc/sgx_report.h" - "common/inc/sgx_key.h" - "common/inc/sgx_attributes.h" - ]; - postFetch = filterSparse sparseCheckout; - }) - ]; -in -stdenv.mkDerivation rec { - pname = "azure-dcap-client"; - version = "1.12.3"; - - src = fetchFromGitHub { - owner = "microsoft"; - repo = pname; - rev = version; - hash = "sha256-zTDaICsSPXctgFRCZBiZwXV9dLk2pFL9kp5a8FkiTZA="; - }; - - patches = [ - # Fix gcc-13 build: - # https://github.com/microsoft/Azure-DCAP-Client/pull/197 - (fetchpatch { - name = "gcc-13.patch"; - url = "https://github.com/microsoft/Azure-DCAP-Client/commit/fbcae7b3c8f1155998248cf5b5f4c1df979483f5.patch"; - hash = "sha256-ezEuQql3stn58N1ZPKMlhPpUOBkDpCcENpGwFAmWtHc="; - }) - ]; - - nativeBuildInputs = [ - pkg-config - ]; - - buildInputs = [ - curl - nlohmann_json - openssl - ]; - - postPatch = '' - mkdir -p src/Linux/ext/intel - find -L '${headers}' -type f -exec ln -s {} src/Linux/ext/intel \; - - substitute src/Linux/Makefile{.in,} \ - --replace '##CURLINC##' '${curl.dev}/include/curl/' \ - --replace '$(TEST_SUITE): $(PROVIDER_LIB) $(TEST_SUITE_OBJ)' '$(TEST_SUITE): $(TEST_SUITE_OBJ)' - ''; - - env.NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations"; - - makeFlags = [ - "-C src/Linux" - "prefix=$(out)" - ]; - - # Online test suite; run with - # $(nix-build -A sgx-azure-dcap-client.tests.suite)/bin/tests - passthru.tests.suite = callPackage ./test-suite.nix { }; - - meta = with lib; { - description = "Interfaces between SGX SDKs and the Azure Attestation SGX Certification Cache"; - homepage = "https://github.com/microsoft/azure-dcap-client"; - maintainers = with maintainers; [ phlip9 trundle veehaitch ]; - platforms = [ "x86_64-linux" ]; - license = [ licenses.mit ]; - }; -} diff --git a/pkgs/os-specific/linux/sgx/azure-dcap-client/test-suite.nix b/pkgs/os-specific/linux/sgx/azure-dcap-client/test-suite.nix deleted file mode 100644 index 40d80ece8abf..000000000000 --- a/pkgs/os-specific/linux/sgx/azure-dcap-client/test-suite.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib -, sgx-azure-dcap-client -, gtest -, makeWrapper -}: -sgx-azure-dcap-client.overrideAttrs (old: { - nativeBuildInputs = old.nativeBuildInputs ++ [ - makeWrapper - gtest - ]; - - patches = (old.patches or []) ++ [ - ./tests-missing-includes.patch - ]; - - buildFlags = [ - "tests" - ]; - - installPhase = '' - runHook preInstall - - install -D ./src/Linux/tests "$out/bin/tests" - - runHook postInstall - ''; - - postFixup = '' - wrapProgram "$out/bin/tests" \ - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ sgx-azure-dcap-client ]}" - ''; -}) diff --git a/pkgs/os-specific/linux/sgx/azure-dcap-client/tests-missing-includes.patch b/pkgs/os-specific/linux/sgx/azure-dcap-client/tests-missing-includes.patch deleted file mode 100644 index 287fbd39af41..000000000000 --- a/pkgs/os-specific/linux/sgx/azure-dcap-client/tests-missing-includes.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/UnitTest/test_local_cache.cpp b/src/UnitTest/test_local_cache.cpp -index 5fbc31b..6b8d52e 100644 ---- a/src/UnitTest/test_local_cache.cpp -+++ b/src/UnitTest/test_local_cache.cpp -@@ -5,6 +5,7 @@ - #include <gtest/gtest.h> - - #undef NDEBUG // ensure that asserts are never compiled out -+#include <array> - #include <cassert> - #include <cstdio> - #include <cstring> diff --git a/pkgs/os-specific/linux/sgx/psw/default.nix b/pkgs/os-specific/linux/sgx/psw/default.nix deleted file mode 100644 index 42e00071d810..000000000000 --- a/pkgs/os-specific/linux/sgx/psw/default.nix +++ /dev/null @@ -1,188 +0,0 @@ -{ stdenv -, lib -, fetchurl -, cmake -, coreutils -, curl -, file -, makeWrapper -, nixosTests -, protobuf -, python3 -, sgx-sdk -, which -, debug ? false -}: -stdenv.mkDerivation rec { - inherit (sgx-sdk) patches src version versionTag; - pname = "sgx-psw"; - - postUnpack = - let - # Fetch the pre-built, Intel-signed Architectural Enclaves (AE). They help - # run user application enclaves, verify launch policies, produce remote - # attestation quotes, and do platform certification. - ae.prebuilt = fetchurl { - url = "https://download.01.org/intel-sgx/sgx-linux/${versionTag}/prebuilt_ae_${versionTag}.tar.gz"; - hash = "sha256-IGV9VEwY/cQBV4Vz2sps4JgRweWRl/l08ocb9P4SH8Q="; - }; - # Also include the Data Center Attestation Primitives (DCAP) platform - # enclaves. - dcap = rec { - version = "1.20"; - filename = "prebuilt_dcap_${version}.tar.gz"; - prebuilt = fetchurl { - url = "https://download.01.org/intel-sgx/sgx-dcap/${version}/linux/${filename}"; - hash = "sha256-nPsI89KSBA3cSNTMWyktZP5dkf+BwL3NZ4MuUf6G98o="; - }; - }; - in - sgx-sdk.postUnpack + '' - # Make sure we use the correct version of prebuilt DCAP - grep -q 'ae_file_name=${dcap.filename}' "$src/external/dcap_source/QuoteGeneration/download_prebuilt.sh" \ - || (echo "Could not find expected prebuilt DCAP ${dcap.filename} in linux-sgx source" >&2 && exit 1) - - tar -zxf ${ae.prebuilt} -C $sourceRoot/ - tar -zxf ${dcap.prebuilt} -C $sourceRoot/external/dcap_source/QuoteGeneration/ - ''; - - nativeBuildInputs = [ - cmake - file - makeWrapper - python3 - sgx-sdk - which - ]; - - buildInputs = [ - curl - protobuf - ]; - - hardeningDisable = [ - # causes redefinition of _FORTIFY_SOURCE - "fortify3" - ] ++ lib.optionals debug [ - "fortify" - ]; - - postPatch = '' - patchShebangs \ - linux/installer/bin/build-installpkg.sh \ - linux/installer/common/psw/createTarball.sh \ - linux/installer/common/psw/install.sh - ''; - - dontUseCmakeConfigure = true; - - buildFlags = [ - "psw_install_pkg" - ] ++ lib.optionals debug [ - "DEBUG=1" - ]; - - installFlags = [ - "-C linux/installer/common/psw/output" - "DESTDIR=$(TMPDIR)/install" - ]; - - postInstall = '' - installDir=$TMPDIR/install - sgxPswDir=$installDir/opt/intel/sgxpsw - - mv $installDir/usr/lib64/ $out/lib/ - ln -sr $out/lib $out/lib64 - - # Install udev rules to lib/udev/rules.d - mv $sgxPswDir/udev/ $out/lib/ - - # Install example AESM config - mkdir $out/etc/ - mv $sgxPswDir/aesm/conf/aesmd.conf $out/etc/ - rmdir $sgxPswDir/aesm/conf/ - - # Delete init service - rm $sgxPswDir/aesm/aesmd.conf - - # Move systemd services - mkdir -p $out/lib/systemd/system/ - mv $sgxPswDir/aesm/aesmd.service $out/lib/systemd/system/ - mv $sgxPswDir/remount-dev-exec.service $out/lib/systemd/system/ - - # Move misc files - mkdir $out/share/ - mv $sgxPswDir/licenses $out/share/ - - # Remove unnecessary files - rm $sgxPswDir/{cleanup.sh,startup.sh} - rm -r $sgxPswDir/scripts - - # Move aesmd binaries/libraries/enclaves - mv $sgxPswDir/aesm/ $out/ - - # We absolutely MUST avoid stripping or patching these ".signed.so" SGX - # enclaves. Stripping would change each enclave measurement (hash of the - # binary). - # - # We're going to temporarily move these enclave libs to another directory - # until after stripping/patching in the fixupPhase. - mkdir $TMPDIR/enclaves - mv $out/aesm/*.signed.so* $TMPDIR/enclaves - - mkdir $out/bin - makeWrapper $out/aesm/aesm_service $out/bin/aesm_service \ - --suffix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ protobuf ]}:$out/aesm \ - --chdir "$out/aesm" - - # Make sure we didn't forget to handle any files - rmdir $sgxPswDir || (echo "Error: The directory $installDir still contains unhandled files: $(ls -A $installDir)" >&2 && exit 1) - ''; - - stripDebugList = [ - "lib" - "bin" - # Also strip binaries/libs in the `aesm` directory - "aesm" - ]; - - postFixup = '' - # Move the SGX enclaves back after everything else has been stripped. - mv $TMPDIR/enclaves/*.signed.so* $out/aesm/ - rmdir $TMPDIR/enclaves - - # Fixup the aesmd systemd service - # - # Most—if not all—of those fixups are not relevant for NixOS as we have our own - # NixOS module which is based on those files without relying on them. Still, it - # is helpful to have properly patched versions for non-NixOS distributions. - echo "Fixing aesmd.service" - substituteInPlace $out/lib/systemd/system/aesmd.service \ - --replace '@aesm_folder@' \ - "$out/aesm" \ - --replace 'Type=forking' \ - 'Type=simple' \ - --replace "ExecStart=$out/aesm/aesm_service" \ - "ExecStart=$out/bin/aesm_service --no-daemon"\ - --replace "/bin/mkdir" \ - "${coreutils}/bin/mkdir" \ - --replace "/bin/chown" \ - "${coreutils}/bin/chown" \ - --replace "/bin/chmod" \ - "${coreutils}/bin/chmod" \ - --replace "/bin/kill" \ - "${coreutils}/bin/kill" - ''; - - passthru.tests = { - service = nixosTests.aesmd; - }; - - meta = with lib; { - description = "Intel SGX Architectural Enclave Service Manager"; - homepage = "https://github.com/intel/linux-sgx"; - maintainers = with maintainers; [ phlip9 veehaitch citadelcore ]; - platforms = [ "x86_64-linux" ]; - license = with licenses; [ bsd3 ]; - }; -} diff --git a/pkgs/os-specific/linux/sgx/samples/default.nix b/pkgs/os-specific/linux/sgx/samples/default.nix deleted file mode 100644 index 0cbd6db02838..000000000000 --- a/pkgs/os-specific/linux/sgx/samples/default.nix +++ /dev/null @@ -1,140 +0,0 @@ -{ stdenv -, lib -, makeWrapper -, openssl -, sgx-sdk -, sgx-psw -, which - # "SIM" or "HW" -, sgxMode -}: -let - isSimulation = sgxMode == "SIM"; - buildSample = name: stdenv.mkDerivation { - pname = name; - version = sgxMode; - - src = sgx-sdk.out; - sourceRoot = "${sgx-sdk.name}/share/SampleCode/${name}"; - - nativeBuildInputs = [ - makeWrapper - openssl - which - ]; - - buildInputs = [ - sgx-sdk - ]; - - # The samples don't have proper support for parallel building - # causing them to fail randomly. - enableParallelBuilding = false; - - buildFlags = [ - "SGX_MODE=${sgxMode}" - ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/{bin,lib} - install -m 755 app $out/bin - install *.so $out/lib - - wrapProgram "$out/bin/app" \ - --chdir "$out/lib" \ - ${lib.optionalString (!isSimulation) - ''--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ sgx-psw ]}"''} - - runHook postInstall - ''; - - # Breaks the signature of the enclaves - dontFixup = true; - - # We don't have access to real SGX hardware during the build - doInstallCheck = isSimulation; - installCheckPhase = '' - runHook preInstallCheck - - pushd / - echo a | $out/bin/app - popd - - runHook preInstallCheck - ''; - }; -in -{ - cxx11SGXDemo = buildSample "Cxx11SGXDemo"; - cxx14SGXDemo = buildSample "Cxx14SGXDemo"; - cxx17SGXDemo = buildSample "Cxx17SGXDemo"; - localAttestation = (buildSample "LocalAttestation").overrideAttrs (old: { - installPhase = '' - runHook preInstall - - mkdir -p $out/{bin,lib} - install -m 755 bin/app* $out/bin - install bin/*.so $out/lib - - for bin in $out/bin/*; do - wrapProgram $bin \ - --chdir "$out/lib" \ - ${lib.optionalString (!isSimulation) - ''--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ sgx-psw ]}"''} - done - - runHook postInstall - ''; - }); - powerTransition = buildSample "PowerTransition"; - protobufSGXDemo = buildSample "ProtobufSGXDemo"; - remoteAttestation = (buildSample "RemoteAttestation").overrideAttrs (old: { - # Makefile sets rpath to point to $TMPDIR - preFixup = '' - patchelf --remove-rpath $out/bin/app - ''; - - postInstall = '' - install sample_libcrypto/*.so $out/lib - ''; - }); - sampleEnclave = buildSample "SampleEnclave"; - sampleEnclaveGMIPP = buildSample "SampleEnclaveGMIPP"; - sampleMbedCrypto = buildSample "SampleMbedCrypto"; - sealUnseal = (buildSample "SealUnseal").overrideAttrs (old: { - prePatch = '' - substituteInPlace App/App.cpp \ - --replace '"sealed_data_blob.txt"' '"/tmp/sealed_data_blob.txt"' - ''; - }); - switchless = buildSample "Switchless"; - # # Requires SGX-patched openssl (sgxssl) build - # sampleAttestedTLS = buildSample "SampleAttestedTLS"; -} // lib.optionalAttrs (!isSimulation) { - # # Requires kernel >= v6.2 && HW SGX - # sampleAEXNotify = buildSample "SampleAEXNotify"; - - # Requires HW SGX - sampleCommonLoader = (buildSample "SampleCommonLoader").overrideAttrs (old: { - nativeBuildInputs = [ sgx-psw ] ++ old.nativeBuildInputs; - - installPhase = '' - runHook preInstall - - mkdir -p $out/{bin,lib} - mv sample app - install -m 755 app $out/bin - - wrapProgram "$out/bin/app" \ - --chdir "$out/lib" \ - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [sgx-psw]}" - - runHook postInstall - ''; - }); - - # # SEGFAULTs in simulation mode? - # sampleEnclavePCL = buildSample "SampleEnclavePCL"; -} diff --git a/pkgs/os-specific/linux/sgx/sdk/cppmicroservices-no-mtime.patch b/pkgs/os-specific/linux/sgx/sdk/cppmicroservices-no-mtime.patch deleted file mode 100644 index 019f58927152..000000000000 --- a/pkgs/os-specific/linux/sgx/sdk/cppmicroservices-no-mtime.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/external/CppMicroServices/framework/src/bundle/BundleResourceContainer.cpp b/external/CppMicroServices/framework/src/bundle/BundleResourceContainer.cpp -index aee499e9..13fa89d4 100644 ---- a/external/CppMicroServices/framework/src/bundle/BundleResourceContainer.cpp -+++ b/external/CppMicroServices/framework/src/bundle/BundleResourceContainer.cpp -@@ -105,7 +105,7 @@ bool BundleResourceContainer::GetStat(int index, - const_cast<mz_zip_archive*>(&m_ZipArchive), index) - ? true - : false; -- stat.modifiedTime = zipStat.m_time; -+ stat.modifiedTime = 0; - stat.crc32 = zipStat.m_crc32; - // This will limit the size info from uint64 to uint32 on 32-bit - // architectures. We don't care because we assume resources > 2GB -diff --git a/external/CppMicroServices/third_party/miniz.c b/external/CppMicroServices/third_party/miniz.c -index 6b0ebd7a..fa2aebca 100644 ---- a/external/CppMicroServices/third_party/miniz.c -+++ b/external/CppMicroServices/third_party/miniz.c -@@ -170,7 +170,7 @@ - // If MINIZ_NO_TIME is specified then the ZIP archive functions will not be able to get the current time, or - // get/set file times, and the C run-time funcs that get/set times won't be called. - // The current downside is the times written to your archives will be from 1979. --//#define MINIZ_NO_TIME -+#define MINIZ_NO_TIME - - // Define MINIZ_NO_ARCHIVE_APIS to disable all ZIP archive API's. - //#define MINIZ_NO_ARCHIVE_APIS diff --git a/pkgs/os-specific/linux/sgx/sdk/default.nix b/pkgs/os-specific/linux/sgx/sdk/default.nix deleted file mode 100644 index 67489ee3c07c..000000000000 --- a/pkgs/os-specific/linux/sgx/sdk/default.nix +++ /dev/null @@ -1,295 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoconf -, automake -, binutils -, callPackage -, cmake -, file -, gdb -, git -, libtool -, linkFarmFromDrvs -, ocaml -, ocamlPackages -, openssl -, perl -, python3 -, texinfo -, validatePkgConfig -, writeShellApplication -, writeShellScript -, writeText -, debug ? false -}: -stdenv.mkDerivation rec { - pname = "sgx-sdk"; - # Version as given in se_version.h - version = "2.23.100.2"; - # Version as used in the Git tag - versionTag = "2.23"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "linux-sgx"; - rev = "sgx_${versionTag}"; - hash = "sha256-i+fE6xKiuljG8LY8TIHgrW15DVpdp46bZdNo/BjgT/I="; - fetchSubmodules = true; - }; - - postUnpack = '' - # Make sure this is the right version of linux-sgx - grep -q '"${version}"' "$src/common/inc/internal/se_version.h" \ - || (echo "Could not find expected version ${version} in linux-sgx source" >&2 && exit 1) - ''; - - patches = [ - # There's a `make preparation` step that downloads some prebuilt binaries - # and applies some patches to the in-repo git submodules. This patch removes - # the parts that download things, since we can't do that inside the sandbox. - ./disable-downloads.patch - - # This patch disable mtime in bundled zip file for reproducible builds. - # - # Context: The `aesm_service` binary depends on a vendored library called - # `CppMicroServices`. At build time, this lib creates and then bundles - # service resources into a zip file and then embeds this zip into the - # binary. Without changes, the `aesm_service` will be different after every - # build because the embedded zip file contents have different modified times. - ./cppmicroservices-no-mtime.patch - ]; - - postPatch = '' - patchShebangs linux/installer/bin/build-installpkg.sh \ - linux/installer/common/sdk/createTarball.sh \ - linux/installer/common/sdk/install.sh \ - external/sgx-emm/create_symlink.sh - - make preparation - ''; - - # We need `cmake` as a build input but don't use it to kick off the build phase - dontUseCmakeConfigure = true; - - # SDK built with stackprotector produces broken enclaves which crash at runtime. - # Disable all to be safe, SDK build configures compiler mitigations manually. - hardeningDisable = [ "all" ]; - - nativeBuildInputs = [ - autoconf - automake - cmake - file - git - ocaml - ocamlPackages.ocamlbuild - perl - python3 - texinfo - validatePkgConfig - ]; - - buildInputs = [ - libtool - openssl - ]; - - BINUTILS_DIR = "${binutils}/bin"; - - # Build external/ippcp_internal first. The Makefile is rewritten to make the - # build faster by splitting different versions of ipp-crypto builds and to - # avoid patching the Makefile for reproducibility issues. - preBuild = - let - ipp-crypto-no_mitigation = callPackage ./ipp-crypto.nix { }; - - sgx-asm-pp = "python ${src}/build-scripts/sgx-asm-pp.py --assembler=nasm"; - - nasm-load = writeShellScript "nasm-load" "${sgx-asm-pp} --MITIGATION-CVE-2020-0551=LOAD $@"; - ipp-crypto-cve_2020_0551_load = callPackage ./ipp-crypto.nix { - extraCmakeFlags = [ "-DCMAKE_ASM_NASM_COMPILER=${nasm-load}" ]; - }; - - nasm-cf = writeShellScript "nasm-cf" "${sgx-asm-pp} --MITIGATION-CVE-2020-0551=CF $@"; - ipp-crypto-cve_2020_0551_cf = callPackage ./ipp-crypto.nix { - extraCmakeFlags = [ "-DCMAKE_ASM_NASM_COMPILER=${nasm-cf}" ]; - }; - in - '' - echo "Setting up IPP crypto build artifacts" - - pushd 'external/ippcp_internal' - - cp -r ${ipp-crypto-no_mitigation}/include/. inc/ - - install -D -m a+rw ${ipp-crypto-no_mitigation}/lib/intel64/libippcp.a \ - lib/linux/intel64/no_mitigation/libippcp.a - install -D -m a+rw ${ipp-crypto-cve_2020_0551_load}/lib/intel64/libippcp.a \ - lib/linux/intel64/cve_2020_0551_load/libippcp.a - install -D -m a+rw ${ipp-crypto-cve_2020_0551_cf}/lib/intel64/libippcp.a \ - lib/linux/intel64/cve_2020_0551_cf/libippcp.a - - rm inc/ippcp.h - patch ${ipp-crypto-no_mitigation}/include/ippcp.h -i inc/ippcp21u7.patch -o inc/ippcp.h - - install -D ${ipp-crypto-no_mitigation.src}/LICENSE license/LICENSE - - popd - ''; - - buildFlags = [ - "sdk_install_pkg" - ] ++ lib.optionals debug [ - "DEBUG=1" - ]; - - postBuild = '' - patchShebangs linux/installer/bin/sgx_linux_x64_sdk_${version}.bin - ''; - - installPhase = '' - runHook preInstall - - installDir=$TMPDIR - ./linux/installer/bin/sgx_linux_x64_sdk_${version}.bin -prefix $installDir - installDir=$installDir/sgxsdk - - echo "Move files created by installer" - - mkdir -p $out/bin - pushd $out - - mv $installDir/bin/sgx-gdb $out/bin - mkdir $out/bin/x64 - for file in $installDir/bin/x64/*; do - mv $file bin/ - ln -sr bin/$(basename $file) bin/x64/ - done - rmdir $installDir/bin/{x64,} - - # Move `lib64` to `lib` and symlink `lib64` - mv $installDir/lib64 lib - ln -s lib/ lib64 - - # Fixup the symlinks for libsgx_urts.so.* -> libsgx_urts.so - for file in lib/libsgx_urts.so.*; do - ln -srf lib/libsgx_urts.so $file - done - - mv $installDir/include/ . - - mkdir -p share/ - mv $installDir/{SampleCode,licenses} share/ - - mkdir -p share/bin - mv $installDir/{environment,buildenv.mk} share/bin/ - ln -s share/bin/{environment,buildenv.mk} . - - # pkgconfig should go to lib/ - mv $installDir/pkgconfig lib/ - ln -s lib/pkgconfig/ . - - # Also create the `sdk_libs` for compat. All the files - # link to libraries in `lib64/`, we shouldn't link the entire - # directory, however, as there seems to be some ambiguity between - # SDK and PSW libraries. - mkdir sdk_libs/ - for file in $installDir/sdk_libs/*; do - ln -sr lib/$(basename $file) sdk_libs/ - rm $file - done - rmdir $installDir/sdk_libs - - # No uninstall script required - rm $installDir/uninstall.sh - - # Create an `sgxsdk` symlink which points to `$out` for compat - ln -sr . sgxsdk - - # Make sure we didn't forget any files - rmdir $installDir || (echo "Error: The directory $installDir still contains unhandled files: $(ls -A $installDir)" >&2 && exit 1) - - popd - - runHook postInstall - ''; - - preFixup = '' - echo "Strip sgxsdk prefix" - for path in "$out/share/bin/environment" "$out/bin/sgx-gdb"; do - substituteInPlace $path --replace "$TMPDIR/sgxsdk" "$out" - done - - echo "Fixing pkg-config files" - sed -i "s|prefix=.*|prefix=$out|g" $out/lib/pkgconfig/*.pc - - echo "Fixing SGX_SDK default in samples" - substituteInPlace $out/share/SampleCode/LocalAttestation/buildenv.mk \ - --replace '/opt/intel/sgxsdk' "$out" - for file in $out/share/SampleCode/*/Makefile; do - substituteInPlace $file \ - --replace '/opt/intel/sgxsdk' "$out" - done - - echo "Fixing BINUTILS_DIR in buildenv.mk" - substituteInPlace $out/share/bin/buildenv.mk \ - --replace 'BINUTILS_DIR ?= /usr/local/bin' \ - 'BINUTILS_DIR ?= ${BINUTILS_DIR}' - - echo "Fixing GDB path in bin/sgx-gdb" - substituteInPlace $out/bin/sgx-gdb --replace '/usr/local/bin/gdb' '${gdb}/bin/gdb' - ''; - - doInstallCheck = true; - - installCheckPhase = '' - runHook preInstallCheck - - # Make sure all symlinks are valid - output=$(find "$out" -type l -exec test ! -e {} \; -print) - if [[ -n "$output" ]]; then - echo "Broken symlinks:" - echo "$output" - exit 1 - fi - - runHook postInstallCheck - ''; - - setupHook = writeText "setup-hook.sh" '' - sgxsdk() { - export SGX_SDK=@out@ - } - - postHooks+=(sgxsdk) - ''; - - passthru.tests = callPackage ../samples { sgxMode = "SIM"; }; - - # Run tests in SGX hardware mode on an SGX-enabled machine - # $(nix-build -A sgx-sdk.runTestsHW)/bin/run-tests-hw - passthru.runTestsHW = - let - testsHW = lib.filterAttrs (_: v: v ? "name") (callPackage ../samples { sgxMode = "HW"; }); - testsHWLinked = linkFarmFromDrvs "sgx-samples-hw-bundle" (lib.attrValues testsHW); - in - writeShellApplication { - name = "run-tests-hw"; - text = '' - for test in ${testsHWLinked}/*; do - printf '*** Running test %s ***\n\n' "$(basename "$test")" - printf 'a\n' | "$test/bin/app" - printf '\n' - done - ''; - }; - - meta = with lib; { - description = "Intel SGX SDK for Linux built with IPP Crypto Library"; - homepage = "https://github.com/intel/linux-sgx"; - maintainers = with maintainers; [ phlip9 sbellem arturcygan veehaitch ]; - platforms = [ "x86_64-linux" ]; - license = with licenses; [ bsd3 ]; - }; -} diff --git a/pkgs/os-specific/linux/sgx/sdk/disable-downloads.patch b/pkgs/os-specific/linux/sgx/sdk/disable-downloads.patch deleted file mode 100644 index bdf9b9f9136e..000000000000 --- a/pkgs/os-specific/linux/sgx/sdk/disable-downloads.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/Makefile b/Makefile -index 32433051..2e480efb 100644 ---- a/Makefile -+++ b/Makefile -@@ -50,8 +50,8 @@ tips: - preparation: - # As SDK build needs to clone and patch openmp, we cannot support the mode that download the source from github as zip. - # Only enable the download from git -- git submodule update --init --recursive -- ./external/dcap_source/QuoteVerification/prepare_sgxssl.sh nobuild -+ # git submodule update --init --recursive -+ # ./external/dcap_source/QuoteVerification/prepare_sgxssl.sh nobuild - cd external/openmp/openmp_code && git apply ../0001-Enable-OpenMP-in-SGX.patch >/dev/null 2>&1 || git apply ../0001-Enable-OpenMP-in-SGX.patch --check -R - cd external/protobuf/protobuf_code && git apply ../sgx_protobuf.patch >/dev/null 2>&1 || git apply ../sgx_protobuf.patch --check -R - ./external/sgx-emm/create_symlink.sh -@@ -59,8 +59,8 @@ preparation: - cd external/cbor && cp -r libcbor sgx_libcbor - cd external/cbor/libcbor && git apply ../raw_cbor.patch >/dev/null 2>&1 || git apply ../raw_cbor.patch --check -R - cd external/cbor/sgx_libcbor && git apply ../sgx_cbor.patch >/dev/null 2>&1 || git apply ../sgx_cbor.patch --check -R -- ./download_prebuilt.sh -- ./external/dcap_source/QuoteGeneration/download_prebuilt.sh -+ # ./download_prebuilt.sh -+ # ./external/dcap_source/QuoteGeneration/download_prebuilt.sh - - psw: - $(MAKE) -C psw/ USE_OPT_LIBS=$(USE_OPT_LIBS) diff --git a/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix b/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix deleted file mode 100644 index c72a0c528516..000000000000 --- a/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ gcc11Stdenv -, fetchFromGitHub -, cmake -, nasm -, openssl -, python3 -, extraCmakeFlags ? [ ] -}: -gcc11Stdenv.mkDerivation rec { - pname = "ipp-crypto"; - version = "2021.10.0"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "ipp-crypto"; - rev = "ippcp_${version}"; - hash = "sha256-DfXsJ+4XqyjCD+79LUD53Cx8D46o1a4fAZa2UxGI1Xg="; - }; - - cmakeFlags = [ "-DARCH=intel64" ] ++ extraCmakeFlags; - - nativeBuildInputs = [ - cmake - nasm - openssl - python3 - ]; -} diff --git a/pkgs/os-specific/linux/sgx/ssl/default.nix b/pkgs/os-specific/linux/sgx/ssl/default.nix deleted file mode 100644 index 94d7e20b21c4..000000000000 --- a/pkgs/os-specific/linux/sgx/ssl/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ stdenv -, callPackage -, fetchFromGitHub -, fetchurl -, lib -, perl -, sgx-sdk -, which -, debug ? false -}: -let - sgxVersion = sgx-sdk.versionTag; - opensslVersion = "3.0.12"; -in -stdenv.mkDerivation { - pname = "sgx-ssl" + lib.optionalString debug "-debug"; - version = "${sgxVersion}_${opensslVersion}"; - - src = fetchFromGitHub { - owner = "intel"; - repo = "intel-sgx-ssl"; - rev = "3.0_Rev2"; - hash = "sha256-dmLyaG6v+skjSa0KxLAfIfSBOxp9grrI7ds6WdGPe0I="; - }; - - postUnpack = - let - opensslSourceArchive = fetchurl { - url = "https://www.openssl.org/source/openssl-${opensslVersion}.tar.gz"; - hash = "sha256-+Tyejt3l6RZhGd4xdV/Ie0qjSGNmL2fd/LoU0La2m2E="; - }; - in - '' - ln -s ${opensslSourceArchive} $sourceRoot/openssl_source/openssl-${opensslVersion}.tar.gz - ''; - - postPatch = '' - patchShebangs Linux/build_openssl.sh - - # Skip the tests. Build and run separately (see below). - substituteInPlace Linux/sgx/Makefile \ - --replace '$(MAKE) -C $(TEST_DIR) all' \ - 'bash -c "true"' - ''; - - nativeBuildInputs = [ - perl - sgx-sdk - which - ]; - - makeFlags = [ - "-C Linux" - ] ++ lib.optionals debug [ - "DEBUG=1" - ]; - - installFlags = [ - "DESTDIR=$(out)" - ]; - - # These tests build on any x86_64-linux but BOTH SIM and HW will only _run_ on - # real Intel hardware. Split these out so OfBorg doesn't choke on this pkg. - # - # ``` - # nix run .#sgx-ssl.tests.HW - # nix run .#sgx-ssl.tests.SIM - # ``` - passthru.tests = { - HW = callPackage ./tests.nix { sgxMode = "HW"; inherit opensslVersion; }; - SIM = callPackage ./tests.nix { sgxMode = "SIM"; inherit opensslVersion; }; - }; - - meta = with lib; { - description = "Cryptographic library for Intel SGX enclave applications based on OpenSSL"; - homepage = "https://github.com/intel/intel-sgx-ssl"; - maintainers = with maintainers; [ phlip9 trundle veehaitch ]; - platforms = [ "x86_64-linux" ]; - license = [ licenses.bsd3 licenses.openssl ]; - }; -} diff --git a/pkgs/os-specific/linux/sgx/ssl/tests.nix b/pkgs/os-specific/linux/sgx/ssl/tests.nix deleted file mode 100644 index d9357ba04310..000000000000 --- a/pkgs/os-specific/linux/sgx/ssl/tests.nix +++ /dev/null @@ -1,95 +0,0 @@ -# This package _builds_ (but doesn't run!) the sgx-ssl test enclave + harness. -# The whole package effectively does: -# -# ``` -# SGX_MODE=${sgxMode} make -C Linux/sgx/test_app -# cp Linux/sgx/{TestApp,TestEnclave.signed.so} $out/bin -# ``` -# -# OfBorg fails to run these tests since they require real Intel HW. That -# includes the simulation mode! The tests appears to do something fancy with -# cpuid and exception trap handlers that make them very non-portable. -# -# These tests are split out from the parent pkg since recompiling the parent -# takes like 30 min : ) - -{ lib -, openssl -, sgx-psw -, sgx-sdk -, sgx-ssl -, stdenv -, which -, opensslVersion ? throw "required parameter" -, sgxMode ? throw "required parameter" # "SIM" or "HW" -}: -stdenv.mkDerivation { - inherit (sgx-ssl) postPatch src version; - pname = sgx-ssl.pname + "-tests-${sgxMode}"; - - postUnpack = sgx-ssl.postUnpack + '' - sourceRootAbs=$(readlink -e $sourceRoot) - packageDir=$sourceRootAbs/Linux/package - - # Do the inverse of 'make install' and symlink built artifacts back into - # '$src/Linux/package/' to avoid work. - mkdir $packageDir/lib $packageDir/lib64 - ln -s ${lib.getLib sgx-ssl}/lib/* $packageDir/lib/ - ln -s ${lib.getLib sgx-ssl}/lib64/* $packageDir/lib64/ - ln -sf ${lib.getDev sgx-ssl}/include/* $packageDir/include/ - - # test_app needs some internal openssl headers. - # See: tail end of 'Linux/build_openssl.sh' - tar -C $sourceRootAbs/openssl_source -xf $sourceRootAbs/openssl_source/openssl-${opensslVersion}.tar.gz - echo '#define OPENSSL_VERSION_STR "${opensslVersion}"' > $sourceRootAbs/Linux/sgx/osslverstr.h - ln -s $sourceRootAbs/openssl_source/openssl-${opensslVersion}/include/crypto $sourceRootAbs/Linux/sgx/test_app/enclave/ - ln -s $sourceRootAbs/openssl_source/openssl-${opensslVersion}/include/internal $sourceRootAbs/Linux/sgx/test_app/enclave/ - ''; - - nativeBuildInputs = [ - openssl.bin - sgx-sdk - which - ]; - - preBuild = '' - # Need to regerate the edl header - make -C Linux/sgx/libsgx_tsgxssl sgx_tsgxssl_t.c - ''; - - makeFlags = [ - "-C Linux/sgx/test_app" - "SGX_MODE=${sgxMode}" - ]; - - installPhase = '' - runHook preInstall - - # Enclaves can't be stripped after signing. - install -Dm 755 Linux/sgx/test_app/TestEnclave.signed.so -t $TMPDIR/enclaves - - install -Dm 755 Linux/sgx/test_app/TestApp -t $out/bin - - runHook postInstall - ''; - - postFixup = '' - # Move the enclaves where they actually belong. - mv $TMPDIR/enclaves/*.signed.so* $out/bin/ - - # HW SGX must runs against sgx-psw, not sgx-sdk. - if [[ "${sgxMode}" == "HW" ]]; then - patchelf \ - --set-rpath "$( \ - patchelf --print-rpath $out/bin/TestApp \ - | sed 's|${lib.getLib sgx-sdk}|${lib.getLib sgx-psw}|' \ - )" \ - $out/bin/TestApp - fi - ''; - - meta = { - platforms = [ "x86_64-linux" ]; - mainProgram = "TestApp"; - }; -} diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix deleted file mode 100644 index 8329e9e8f966..000000000000 --- a/pkgs/os-specific/linux/shadow/default.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch -, runtimeShell, nixosTests -, autoreconfHook, bison, flex -, docbook_xml_dtd_45, docbook_xsl -, itstool, libbsd, libxml2, libxslt -, libxcrypt, pkg-config -, glibcCross ? null -, pam ? null -, withTcb ? lib.meta.availableOn stdenv.hostPlatform tcb, tcb -}: -let - glibc = - if stdenv.hostPlatform != stdenv.buildPlatform then glibcCross - else assert stdenv.hostPlatform.libc == "glibc"; stdenv.cc.libc; - -in - -stdenv.mkDerivation rec { - pname = "shadow"; - version = "4.14.6"; - - src = fetchFromGitHub { - owner = "shadow-maint"; - repo = pname; - rev = version; - hash = "sha256-+klU1a0cSgHPwZkDnbCSjKnBUKIm2Z3OGUvR/zrqQxo="; - }; - - outputs = [ "out" "su" "dev" "man" ]; - - RUNTIME_SHELL = runtimeShell; - - nativeBuildInputs = [ - autoreconfHook bison flex - docbook_xml_dtd_45 docbook_xsl - itstool libxml2 libxslt - pkg-config - ]; - - buildInputs = [ libbsd libxcrypt ] - ++ lib.optional (pam != null && stdenv.isLinux) pam - ++ lib.optional withTcb tcb; - - patches = [ - ./keep-path.patch - # Obtain XML resources from XML catalog (patch adapted from gtk-doc) - ./respect-xml-catalog-files-var.patch - ./runtime-shell.patch - ./fix-install-with-tcb.patch - # Fix build against `clang-16` and upcoming `gcc-14`: - # https://github.com/shadow-maint/shadow/pull/857 - (fetchpatch { - name = "fix-implicit-getdef_bool.patch"; - url = "https://github.com/shadow-maint/shadow/commit/5abe0811b880208600f646356549b7e5cad89060.patch"; - hash = "sha256-XqvVv8mYY58uXJBKRwncHQRSI45PUkp3dQNn44gzezU="; - }) - ]; - - # The nix daemon often forbids even creating set[ug]id files. - postPatch = '' - sed 's/^\(s[ug]idperms\) = [0-9]755/\1 = 0755/' -i src/Makefile.am - ''; - - # Assume System V `setpgrp (void)', which is the default on GNU variants - # (`AC_FUNC_SETPGRP' is not cross-compilation capable.) - preConfigure = '' - export ac_cv_func_setpgrp_void=yes - export shadow_cv_logdir=/var/log - ''; - - configureFlags = [ - "--enable-man" - "--with-group-name-max-length=32" - "--with-bcrypt" - "--with-yescrypt" - ] ++ lib.optional (stdenv.hostPlatform.libc != "glibc") "--disable-nscd" - ++ lib.optional withTcb "--with-tcb"; - - preBuild = lib.optionalString (stdenv.hostPlatform.libc == "glibc") '' - substituteInPlace lib/nscd.c --replace /usr/sbin/nscd ${glibc.bin}/bin/nscd - ''; - - postInstall = '' - # Don't install ‘groups’, since coreutils already provides it. - rm $out/bin/groups - rm $man/share/man/man1/groups.* - - # Move the su binary into the su package - mkdir -p $su/bin - mv $out/bin/su $su/bin - ''; - - enableParallelBuilding = true; - - disallowedReferences = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) stdenv.shellPackage; - - meta = with lib; { - homepage = "https://github.com/shadow-maint"; - description = "Suite containing authentication-related tools such as passwd and su"; - license = licenses.bsd3; - platforms = platforms.linux; - }; - - passthru = { - shellPath = "/bin/nologin"; - tests = { inherit (nixosTests) shadow; }; - }; -} diff --git a/pkgs/os-specific/linux/shadow/fix-install-with-tcb.patch b/pkgs/os-specific/linux/shadow/fix-install-with-tcb.patch deleted file mode 100644 index ff6166b92f1d..000000000000 --- a/pkgs/os-specific/linux/shadow/fix-install-with-tcb.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/src/Makefile.am b/src/Makefile.am -index a1a2e4e..fa17f9d 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -74,10 +74,6 @@ suidubins += newgidmap newuidmap - endif - endif - --if WITH_TCB --shadowsgidubins = passwd --endif -- - LDADD = $(INTLLIBS) \ - $(top_builddir)/libmisc/libmisc.la \ - $(top_builddir)/lib/libshadow.la \ -@@ -146,12 +142,6 @@ install-am: all-am - set -e; for i in $(suidusbins); do \ - chmod $(suidperms) $(DESTDIR)$(usbindir)/$$i; \ - done --if WITH_TCB -- set -e; for i in $(shadowsgidubins); do \ -- chown root:shadow $(DESTDIR)$(ubindir)/$$i; \ -- chmod $(sgidperms) $(DESTDIR)$(ubindir)/$$i; \ -- done --endif - if ENABLE_SUBIDS - if FCAPS - setcap cap_setuid+ep $(DESTDIR)$(ubindir)/newuidmap diff --git a/pkgs/os-specific/linux/shadow/keep-path.patch b/pkgs/os-specific/linux/shadow/keep-path.patch deleted file mode 100644 index 99fd17c27bc9..000000000000 --- a/pkgs/os-specific/linux/shadow/keep-path.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -ru shadow-4.1.5.1-orig/src/su.c shadow-4.1.5.1/src/su.c ---- shadow-4.1.5.1-orig/src/su.c 2012-05-25 07:51:55.000000000 -0400 -+++ shadow-4.1.5.1/src/su.c 2012-07-25 17:22:57.013547930 -0400 -@@ -879,6 +879,7 @@ - } - } - -+#if 0 - cp = getdef_str ((pw->pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH"); - if (NULL == cp) { - addenv ((pw->pw_uid == 0) ? "PATH=/sbin:/bin:/usr/sbin:/usr/bin" : "PATH=/bin:/usr/bin", NULL); -@@ -887,6 +888,7 @@ - } else { - addenv ("PATH", cp); - } -+#endif - - if (getenv ("IFS") != NULL) { /* don't export user IFS ... */ - addenv ("IFS= \t\n", NULL); /* ... instead, set a safe IFS */ diff --git a/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch b/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch deleted file mode 100644 index 7d922eae71fc..000000000000 --- a/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/acinclude.m4 b/acinclude.m4 -index dd01f165..e23160ee 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -46,9 +46,21 @@ AC_DEFUN([JH_CHECK_XML_CATALOG], - ifelse([$3],,,[$3 - ])dnl - else -- AC_MSG_RESULT([not found]) -- ifelse([$4],, -- [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])], -- [$4]) -+ jh_check_xml_catalog_saved_ifs="$IFS" -+ IFS=' ' -+ for f in $XML_CATALOG_FILES; do -+ if [[ -f "$f" ]] && \ -+ AC_RUN_LOG([$XMLCATALOG --noout "$f" "$1" >&2]); then -+ jh_found_xmlcatalog=true -+ AC_MSG_RESULT([found]) -+ ifelse([$3],,,[$3]) -+ break -+ fi -+ done -+ IFS="$jh_check_xml_catalog_saved_ifs" -+ if ! $jh_found_xmlcatalog; then -+ AC_MSG_RESULT([not found]) -+ ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4]) -+ fi - fi - ]) diff --git a/pkgs/os-specific/linux/shadow/runtime-shell.patch b/pkgs/os-specific/linux/shadow/runtime-shell.patch deleted file mode 100644 index 0b2e68e330e4..000000000000 --- a/pkgs/os-specific/linux/shadow/runtime-shell.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index e4c6aaec..03883ad7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -682,7 +682,7 @@ if test "$enable_utmpx" = "yes"; then - [Define if utmpx should be used]) - fi - --AC_DEFINE_UNQUOTED(SHELL, ["$SHELL"], [The default shell.]) -+AC_DEFINE_UNQUOTED(SHELL, ["$RUNTIME_SHELL"], [The runtime shell.]) - - AM_GNU_GETTEXT_VERSION(0.16) - AM_GNU_GETTEXT([external], [need-ngettext]) diff --git a/pkgs/os-specific/linux/shufflecake/default.nix b/pkgs/os-specific/linux/shufflecake/default.nix deleted file mode 100644 index 8e1330e56789..000000000000 --- a/pkgs/os-specific/linux/shufflecake/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, kernel, stdenv, fetchFromGitea, libgcrypt, lvm2 }: -stdenv.mkDerivation (finalAttrs: { - name = "shufflecake"; - version = "0.4.4"; - src = fetchFromGitea { - domain = "codeberg.org"; - owner = "shufflecake"; - repo = "shufflecake-c"; - rev = "v${finalAttrs.version}"; - hash = "sha256-zvGHM5kajJlROI8vg1yZQ5NvJvuGLV2iKvumdW8aglA="; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - buildInputs = [ libgcrypt lvm2 ]; - makeFlags = kernel.makeFlags ++ [ - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - outputs = [ "out" "bin" ]; - - installPhase = '' - install -Dm444 dm-sflc.ko $out/lib/modules/${kernel.modDirVersion}/drivers/md/dm-sflc.ko - install -Dm555 shufflecake $bin/shufflecake - ''; - - meta = with lib; { - description = "A plausible deniability (hidden storage) layer for Linux"; - homepage = "https://shufflecake.net"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ oluceps ]; - outputsToInstall = [ "bin" ]; - platforms = platforms.linux; - broken = kernel.kernelOlder "6.1"; - }; -}) - diff --git a/pkgs/os-specific/linux/sinit/default.nix b/pkgs/os-specific/linux/sinit/default.nix deleted file mode 100644 index 3bf73a8f495e..000000000000 --- a/pkgs/os-specific/linux/sinit/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchgit, rcinit ? null, rcshutdown ? null, rcreboot ? null }: - -stdenv.mkDerivation rec { - pname = "sinit"; - version = "1.1"; - - src = fetchgit { - url = "https://git.suckless.org/sinit/"; - sha256 = "sha256-VtXkgixgElKKOT26uKN9feXDVjjtSgTWvcgk5o5MLmw="; - rev = "refs/tags/v${version}"; - }; - buildInputs = [ - (lib.getOutput "static" stdenv.cc.libc) - ]; - makeFlags = [ "PREFIX=$(out)" ]; - preConfigure = "" - + (lib.optionalString (rcinit != null) ''sed -re 's@(rcinitcmd[^"]*")[^"]*"@\1${rcinit}"@' -i config.def.h; '') - + (lib.optionalString (rcshutdown != null) ''sed -re 's@(rc(reboot|poweroff)cmd[^"]*")[^"]*"@\1${rcshutdown}"@' -i config.def.h; '') - + (lib.optionalString (rcreboot != null) ''sed -re 's@(rc(reboot)cmd[^"]*")[^"]*"@\1${rcreboot}"@' -i config.def.h; '') - ; - - meta = with lib; { - description = "A very minimal Linux init implementation from suckless.org"; - mainProgram = "sinit"; - license = licenses.mit; - maintainers = with maintainers; [ raskin ]; - platforms = platforms.linux; - homepage = "https://tools.suckless.org/sinit"; - downloadPage = "https://git.suckless.org/sinit"; - }; -} diff --git a/pkgs/os-specific/linux/smem/default.nix b/pkgs/os-specific/linux/smem/default.nix deleted file mode 100644 index 6308b83b600a..000000000000 --- a/pkgs/os-specific/linux/smem/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, stdenv, fetchurl, python3 }: - -stdenv.mkDerivation rec { - pname = "smem"; - version = "1.5"; - - src = fetchurl { - url = "https://selenic.com/repo/smem/archive/${version}.tar.bz2"; - sha256 = "19ibv1byxf2b68186ysrgrhy5shkc5mc69abark1h18yigp3j34m"; - }; - - buildInputs = [ python3 ]; - - makeFlags = [ "smemcap" ]; - - installPhase = - '' - install -Dm555 -t $out/bin/ smem smemcap - install -Dm444 -t $out/share/man/man8/ smem.8 - ''; - - meta = { - homepage = "https://www.selenic.com/smem/"; - description = "A memory usage reporting tool that takes shared memory into account"; - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.eelco ]; - license = lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/os-specific/linux/smemstat/default.nix b/pkgs/os-specific/linux/smemstat/default.nix deleted file mode 100644 index 05ad1ddb0335..000000000000 --- a/pkgs/os-specific/linux/smemstat/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, ncurses }: - -stdenv.mkDerivation rec { - pname = "smemstat"; - version = "0.02.13"; - - src = fetchFromGitHub { - owner = "ColinIanKing"; - repo = pname; - rev = "V${version}"; - hash = "sha256-wxgw5tPdZAhhISbay8BwoL5zxZJV4WstDpOtv9umf54="; - }; - - buildInputs = [ ncurses ]; - installFlags = [ - "BINDIR=${placeholder "out"}/bin" - "MANDIR=${placeholder "out"}/share/man/man8" - "BASHDIR=${placeholder "out"}/share/bash-completion/completions" - ]; - - meta = with lib; { - description = "Memory usage monitoring tool"; - mainProgram = "smemstat"; - homepage = "https://github.com/ColinIanKing/smemstat"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ womfoo ]; - }; -} diff --git a/pkgs/os-specific/linux/sssd/default.nix b/pkgs/os-specific/linux/sssd/default.nix deleted file mode 100644 index 4f27c7e83fb5..000000000000 --- a/pkgs/os-specific/linux/sssd/default.nix +++ /dev/null @@ -1,136 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, makeWrapper, glibc, adcli, augeas, dnsutils, c-ares, curl, - cyrus_sasl, ding-libs, libnl, libunistring, nss, samba, nfs-utils, doxygen, - python3, pam, popt, talloc, tdb, tevent, pkg-config, ldb, openldap, - pcre2, libkrb5, cifs-utils, glib, keyutils, dbus, fakeroot, libxslt, libxml2, - libuuid, systemd, nspr, check, cmocka, uid_wrapper, p11-kit, - nss_wrapper, ncurses, Po4a, http-parser, jansson, jose, - docbook_xsl, docbook_xml_dtd_44, - testers, nix-update-script, nixosTests, fetchpatch, - withSudo ? false }: - -let - docbookFiles = "${docbook_xsl}/share/xml/docbook-xsl/catalog.xml:${docbook_xml_dtd_44}/xml/dtd/docbook/catalog.xml"; -in -stdenv.mkDerivation (finalAttrs: { - pname = "sssd"; - version = "2.9.4"; - - src = fetchFromGitHub { - owner = "SSSD"; - repo = "sssd"; - rev = "refs/tags/${finalAttrs.version}"; - hash = "sha256-VJXZndbmC6mAVxzvv5Wjb4adrQkP16Rt4cgjl4qGDIc="; - }; - - patches = [ - # Fix the build with Samba 4.20 - (fetchpatch { - url = "https://github.com/SSSD/sssd/commit/1bf51929a48b84d62ac54f2a42f17e7fbffe1612.patch"; - hash = "sha256-VLx04APEipp860iOJNIwTGywxZ7rIDdyh3te6m7Ymlo="; - }) - ]; - - postPatch = '' - patchShebangs ./sbus_generate.sh.in - ''; - - # Something is looking for <libxml/foo.h> instead of <libxml2/libxml/foo.h> - env.NIX_CFLAGS_COMPILE = toString [ - "-DRENEWAL_PROG_PATH=\"${adcli}/bin/adcli\"" - "-I${libxml2.dev}/include/libxml2" - ]; - - preConfigure = '' - export SGML_CATALOG_FILES="${docbookFiles}" - export PYTHONPATH=$(find ${python3.pkgs.python-ldap} -type d -name site-packages) - export PATH=$PATH:${openldap}/libexec - - configureFlagsArray=( - --prefix=$out - --sysconfdir=/etc - --localstatedir=/var - --enable-pammoddir=$out/lib/security - --with-os=fedora - --with-pid-path=/run - --with-python3-bindings - --with-syslog=journald - --without-selinux - --without-semanage - --with-xml-catalog-path=''${SGML_CATALOG_FILES%%:*} - --with-ldb-lib-dir=$out/modules/ldb - --with-nscd=${glibc.bin}/sbin/nscd - ) - '' + lib.optionalString withSudo '' - configureFlagsArray+=("--with-sudo") - ''; - - enableParallelBuilding = true; - # Disable parallel install due to missing depends: - # libtool: error: error: relink '_py3sss.la' with the above command before installing i - enableParallelInstalling = false; - nativeBuildInputs = [ autoreconfHook makeWrapper pkg-config doxygen ]; - buildInputs = [ augeas dnsutils c-ares curl cyrus_sasl ding-libs libnl libunistring nss - samba nfs-utils p11-kit python3 popt - talloc tdb tevent ldb pam openldap pcre2 libkrb5 - cifs-utils glib keyutils dbus fakeroot libxslt libxml2 - libuuid python3.pkgs.python-ldap systemd nspr check cmocka uid_wrapper - nss_wrapper ncurses Po4a http-parser jansson jose ]; - - makeFlags = [ - "SGML_CATALOG_FILES=${docbookFiles}" - ]; - - installFlags = [ - "sysconfdir=$(out)/etc" - "localstatedir=$(out)/var" - "pidpath=$(out)/run" - "sss_statedir=$(out)/var/lib/sss" - "logpath=$(out)/var/log/sssd" - "pubconfpath=$(out)/var/lib/sss/pubconf" - "dbpath=$(out)/var/lib/sss/db" - "mcpath=$(out)/var/lib/sss/mc" - "pipepath=$(out)/var/lib/sss/pipes" - "gpocachepath=$(out)/var/lib/sss/gpo_cache" - "secdbpath=$(out)/var/lib/sss/secrets" - "initdir=$(out)/rc.d/init" - ]; - - postInstall = '' - rm -rf "$out"/run - rm -rf "$out"/rc.d - rm -f "$out"/modules/ldb/memberof.la - find "$out" -depth -type d -exec rmdir --ignore-fail-on-non-empty {} \; - ''; - postFixup = '' - for f in $out/bin/sss{ctl,_cache,_debuglevel,_override,_seed}; do - wrapProgram $f --prefix LDB_MODULES_PATH : $out/modules/ldb - done - ''; - - passthru = { - tests = { - inherit (nixosTests) sssd sssd-ldap; - pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - version = testers.testVersion { - package = finalAttrs.finalPackage; - command = "sssd --version"; - }; - }; - updateScript = nix-update-script { }; - }; - - meta = with lib; { - description = "System Security Services Daemon"; - homepage = "https://sssd.io/"; - changelog = "https://sssd.io/release-notes/sssd-${finalAttrs.version}.html"; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ illustris ]; - pkgConfigModules = [ - "ipa_hbac" - "sss_certmap" - "sss_idmap" - "sss_nss_idmap" - ]; - }; -}) diff --git a/pkgs/os-specific/linux/statifier/default.nix b/pkgs/os-specific/linux/statifier/default.nix deleted file mode 100644 index 6aa11cad4f25..000000000000 --- a/pkgs/os-specific/linux/statifier/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, multiStdenv, fetchurl }: - -multiStdenv.mkDerivation rec { - pname = "statifier"; - version = "1.7.4"; - - src = fetchurl { - url = "mirror://sourceforge/statifier/statifier-${version}.tar.gz"; - sha256 = "03lzkla6knjhh186b43cac410x2fmhi28pkmzb3d211n3zp5i9y8"; - }; - - phaseNames = [ "patchPhase" "installPhase" ]; - - postPatch = '' - sed -e s@/usr/@"$out/"@g -i */Makefile src/statifier - sed -e s@/bin/bash@"${multiStdenv.shell}"@g -i src/*.sh - ''; - - meta = with lib; { - description = "Tool for creating static Linux binaries"; - mainProgram = "statifier"; - platforms = platforms.linux; - license = licenses.gpl2; - }; -} diff --git a/pkgs/os-specific/linux/swapview/default.nix b/pkgs/os-specific/linux/swapview/default.nix deleted file mode 100644 index 3ef2426fad93..000000000000 --- a/pkgs/os-specific/linux/swapview/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, rustPlatform, fetchFromGitHub }: - -rustPlatform.buildRustPackage rec { - pname = "swapview"; - version = "0.1.0"; - - src = fetchFromGitHub { - owner = "lilydjwg"; - repo = "swapview"; - rev = "v${version}"; - sha256 = "0339biydk997j5r72vzp7djwkscsz89xr3936nshv23fmxjh2rzj"; - }; - - cargoSha256 = "03yi6bsjjnl8hznxr1nrnxx5lrqb574625j2lkxqbl9vrg9mswdz"; - - meta = with lib; { - description = "A simple program to view processes' swap usage on Linux"; - mainProgram = "swapview"; - homepage = "https://github.com/lilydjwg/swapview"; - platforms = platforms.linux; - license = with licenses; [ bsd3 ]; - maintainers = with maintainers; [ oxalica ]; - }; -} diff --git a/pkgs/os-specific/linux/switcheroo-control/default.nix b/pkgs/os-specific/linux/switcheroo-control/default.nix deleted file mode 100644 index a6993af54910..000000000000 --- a/pkgs/os-specific/linux/switcheroo-control/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib -, ninja -, meson -, fetchFromGitLab -, systemd -, libgudev -, pkg-config -, glib -, python3Packages -}: - -python3Packages.buildPythonApplication rec { - pname = "switcheroo-control"; - version = "2.6"; - - format = "other"; - - src = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "hadess"; - repo = "switcheroo-control"; - rev = version; - hash = "sha256-F+5HhMxM8pcnAGmVBARKWNCL0rIEzHW/jsGHHqYZJug="; - }; - - nativeBuildInputs = [ - ninja - meson - pkg-config - ]; - - buildInputs = [ - systemd - libgudev - glib - ]; - - propagatedBuildInputs = [ - python3Packages.pygobject3 - ]; - - mesonFlags = [ - "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system" - "-Dhwdbdir=${placeholder "out"}/etc/udev/hwdb.d" - ]; - - meta = with lib; { - description = "D-Bus service to check the availability of dual-GPU"; - mainProgram = "switcherooctl"; - homepage = "https://gitlab.freedesktop.org/hadess/switcheroo-control/"; - changelog = "https://gitlab.freedesktop.org/hadess/switcheroo-control/-/blob/${version}/NEWS"; - license = licenses.gpl3Plus; - maintainers = [ ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/sydbox/default.nix b/pkgs/os-specific/linux/sydbox/default.nix deleted file mode 100644 index bdaf77147f2e..000000000000 --- a/pkgs/os-specific/linux/sydbox/default.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ lib -, stdenv -, fetchurl -, pkg-config -, autoreconfHook -, python3 -, perl -, libxslt -, docbook_xsl -, docbook_xml_dtd_42 -, libseccomp -, installTests ? true, gnumake, which -, debugBuild ? false, libunwind -}: - -stdenv.mkDerivation rec { - pname = "sydbox-1"; - version = "2.2.0"; - - outputs = [ "out" "dev" "man" "doc" ] - ++ lib.optional installTests "installedTests"; - - src = fetchurl { - url = "https://git.exherbo.org/${pname}.git/snapshot/${pname}-${version}.tar.xz"; - sha256 = "0664myrrzbvsw73q5b7cqwgv4hl9a7vkm642s1r96gaxm16jk0z7"; - }; - - nativeBuildInputs = [ - pkg-config - autoreconfHook - python3 - perl - libxslt.bin - docbook_xsl - docbook_xml_dtd_42 - ]; - - buildInputs = [ - libseccomp - ] ++ lib.optional debugBuild libunwind - ++ lib.optionals installTests [ - gnumake - python3 - perl - which - ]; - - enableParallelBuilding = true; - - configureFlags = [ ] - ++ lib.optionals installTests [ "--enable-installed-tests" - "--libexecdir=${placeholder "installedTests"}/libexec" ] - ++ lib.optional debugBuild "--enable-debug"; - - makeFlags = [ "SYD_INCLUDEDIR=${stdenv.cc.libc.dev}/include" ]; - - doCheck = true; - checkPhase = '' - # Many of the regular test cases in t/ do not work inside the build sandbox - make -C syd check - ''; - - postInstall = if installTests then '' - moveToOutput bin/syd-test $installedTests - '' else '' - # Tests are installed despite --disable-installed-tests - rm -r $out/bin/syd-test $out/libexec - ''; - - meta = with lib; { - homepage = "https://sydbox.exherbo.org/"; - description = "seccomp-based application sandbox"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ mvs ]; - }; -} diff --git a/pkgs/os-specific/linux/syscall_limiter/default.nix b/pkgs/os-specific/linux/syscall_limiter/default.nix deleted file mode 100644 index 329ec522c422..000000000000 --- a/pkgs/os-specific/linux/syscall_limiter/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv -, fetchFromGitHub -, libseccomp -, perl -, which -}: - -stdenv.mkDerivation { - pname = "syscall_limiter"; - version = "2017-01-23"; - - src = fetchFromGitHub { - owner = "vi"; - repo = "syscall_limiter"; - rev = "481c8c883f2e1260ebc83b352b63bf61a930a341"; - sha256 = "0z5arj1kq1xczgrbw1b8m9kicbv3vs9bd32wvgfr4r6ndingsp5m"; - }; - - buildInputs = [ libseccomp ]; - - installPhase = '' - mkdir -p $out/bin - cp -v limit_syscalls $out/bin - cp -v monitor.sh $out/bin/limit_syscalls_monitor.sh - substituteInPlace $out/bin/limit_syscalls_monitor.sh \ - --replace perl ${perl}/bin/perl \ - --replace which ${which}/bin/which - ''; - - meta = with lib; { - description = "Start Linux programs with only selected syscalls enabled"; - homepage = "https://github.com/vi/syscall_limiter"; - license = licenses.mit; - maintainers = with maintainers; [ obadz ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix deleted file mode 100644 index 25b788104a4c..000000000000 --- a/pkgs/os-specific/linux/sysdig/default.nix +++ /dev/null @@ -1,151 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, kernel, installShellFiles, pkg-config -, luajit, ncurses, perl, jsoncpp, openssl, curl, jq, gcc, elfutils, tbb -, protobuf, grpc, yaml-cpp, nlohmann_json, re2, zstd, uthash }: - -let - # Compare with https://github.com/draios/sysdig/blob/0.36.0/cmake/modules/falcosecurity-libs.cmake - libsRev = "0.15.1"; - libsHash = "sha256-CsKa5ybRj7Mjb71xNwd8FtDprOMfpJMrm3mvkeqZE3o="; - - # Compare with https://github.com/falcosecurity/libs/blob/0.15.1/cmake/modules/valijson.cmake - valijson = fetchFromGitHub { - owner = "tristanpenman"; - repo = "valijson"; - rev = "v1.0.2"; - hash = "sha256-wvFdjsDtKH7CpbEpQjzWtLC4RVOU9+D2rSK0Xo1cJqo="; - }; - - # https://github.com/draios/sysdig/blob/0.36.0/cmake/modules/driver.cmake - driver = fetchFromGitHub { - owner = "falcosecurity"; - repo = "libs"; - rev = "7.0.0+driver"; - hash = "sha256-kXqvfM7HbGh2wEGaO4KBkFDW+m5gpOShJZKJLu9McKk="; - }; -in stdenv.mkDerivation rec { - pname = "sysdig"; - version = "0.36.0"; - - src = fetchFromGitHub { - owner = "draios"; - repo = "sysdig"; - rev = version; - hash = "sha256-EQnmtxByTsSawQPFmTe2pBMcv5rFaNtST+2KXZSFuoo="; - }; - - nativeBuildInputs = [ cmake perl installShellFiles pkg-config ]; - buildInputs = [ - luajit - ncurses - openssl - curl - jq - gcc - elfutils - tbb - re2 - protobuf - grpc - yaml-cpp - jsoncpp - nlohmann_json - zstd - uthash - ] ++ lib.optionals (kernel != null) kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" ]; - - postUnpack = '' - cp -r ${ - fetchFromGitHub { - owner = "falcosecurity"; - repo = "libs"; - rev = libsRev; - hash = libsHash; - } - } libs - chmod -R +w libs - - substituteInPlace libs/userspace/libscap/libscap.pc.in libs/userspace/libsinsp/libsinsp.pc.in \ - --replace-fail "\''${prefix}/@CMAKE_INSTALL_LIBDIR@" "@CMAKE_INSTALL_FULL_LIBDIR@" \ - --replace-fail "\''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@" "@CMAKE_INSTALL_FULL_INCLUDEDIR@" - - cp -r ${driver} driver-src - chmod -R +w driver-src - - # Hacky but needed until https://github.com/draios/sysdig/issues/2077 is resolved for kernel >= 6.8 as strlcpy got removed and build fails - ${lib.optionalString - (kernel != null && lib.versionAtLeast kernel.version "6.8") '' - substituteInPlace libs/driver/ppm_events.c driver-src/driver/ppm_events.c --replace-fail "strlcpy" "strscpy" - ''} - - cmakeFlagsArray+=( - "-DFALCOSECURITY_LIBS_SOURCE_DIR=$(pwd)/libs" - "-DDRIVER_SOURCE_DIR=$(pwd)/driver-src/driver" - ) - ''; - - cmakeFlags = [ - "-DUSE_BUNDLED_DEPS=OFF" - "-DSYSDIG_VERSION=${version}" - "-DUSE_BUNDLED_B64=OFF" - "-DUSE_BUNDLED_TBB=OFF" - "-DUSE_BUNDLED_RE2=OFF" - "-DUSE_BUNDLED_JSONCPP=OFF" - "-DCREATE_TEST_TARGETS=OFF" - "-DVALIJSON_INCLUDE=${valijson}/include" - "-DUTHASH_INCLUDE=${uthash}/include" - ] ++ lib.optional (kernel == null) "-DBUILD_DRIVER=OFF"; - - env.NIX_CFLAGS_COMPILE = - # needed since luajit-2.1.0-beta3 - "-DluaL_reg=luaL_Reg -DluaL_getn(L,i)=((int)lua_objlen(L,i)) " + - # fix compiler warnings been treated as errors - "-Wno-error"; - - preConfigure = '' - if ! grep -q "${libsRev}" cmake/modules/falcosecurity-libs.cmake; then - echo "falcosecurity-libs checksum needs to be updated!" - exit 1 - fi - cmakeFlagsArray+=(-DCMAKE_EXE_LINKER_FLAGS="-ltbb -lcurl -lzstd -labsl_synchronization") - '' + lib.optionalString (kernel != null) '' - export INSTALL_MOD_PATH="$out" - export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ''; - - postInstall = '' - # Fix the bash completion location - installShellCompletion --bash $out/etc/bash_completion.d/sysdig - rm $out/etc/bash_completion.d/sysdig - rmdir $out/etc/bash_completion.d - rmdir $out/etc - '' + lib.optionalString (kernel != null) '' - make install_driver - kernel_dev=${kernel.dev} - kernel_dev=''${kernel_dev#${builtins.storeDir}/} - kernel_dev=''${kernel_dev%%-linux*dev*} - if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/scap.ko"; then - sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/scap.ko - else - for i in $out/lib/modules/${kernel.modDirVersion}/{extra,updates}/scap.ko.xz; do - if test -f "$i"; then - xz -d $i - sed -i "s#$kernel_dev#................................#g" ''${i%.xz} - xz -9 ''${i%.xz} - fi - done - fi - ''; - - meta = with lib; { - description = - "A tracepoint-based system tracing tool for Linux (with clients for other OSes)"; - license = with licenses; [ asl20 gpl2 mit ]; - maintainers = [ maintainers.raskin ]; - platforms = [ "x86_64-linux" ] ++ platforms.darwin; - broken = kernel != null && ((versionOlder kernel.version "4.14") || kernel.isHardened || kernel.isZen); - homepage = "https://sysdig.com/opensource/"; - downloadPage = "https://github.com/draios/sysdig/releases"; - }; -} diff --git a/pkgs/os-specific/linux/sysfsutils/default.nix b/pkgs/os-specific/linux/sysfsutils/default.nix deleted file mode 100644 index 113ba7939a65..000000000000 --- a/pkgs/os-specific/linux/sysfsutils/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "sysfsutils"; - version = "2.1.0"; - - src = fetchurl { - url = "mirror://sourceforge/linux-diag/sysfsutils-${version}.tar.gz"; - sha256 = "e865de2c1f559fff0d3fc936e660c0efaf7afe662064f2fb97ccad1ec28d208a"; - }; - - meta = { - homepage = "https://linux-diag.sourceforge.net/Sysfsutils.html"; - longDescription = - '' - These are a set of utilites built upon sysfs, a new virtual - filesystem in Linux kernel versions 2.5+ that exposes a system's - device tree. - ''; - license = with lib.licenses; [ gpl2 lgpl21 ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/sysklogd/default.nix b/pkgs/os-specific/linux/sysklogd/default.nix deleted file mode 100644 index 048d82b5a530..000000000000 --- a/pkgs/os-specific/linux/sysklogd/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "sysklogd"; - version = "1.5.1"; - - src = fetchurl { - url = "http://www.infodrom.org/projects/sysklogd/download/sysklogd-${version}.tar.gz"; - sha256 = "00f2wy6f0qng7qzga4iicyzl9j8b7mp6mrpfky5jxj93ms2w2rji"; - }; - - patches = [ ./systemd.patch ./union-wait.patch ./fix-includes-for-musl.patch ]; - - env.NIX_CFLAGS_COMPILE = "-DSYSV"; - - installFlags = [ "BINDIR=$(out)/sbin" "MANDIR=$(out)/share/man" "INSTALL=install" ]; - - makeFlags = [ - "CC=${stdenv.cc.targetPrefix}cc" - ]; - - postPatch = '' - # Disable stripping during installation, stripping will be done anyway. - # Fixes cross-compilation. - substituteInPlace Makefile \ - --replace "-m 500 -s" "-m 500" - ''; - - preConfigure = - '' - sed -e 's@-o \''${MAN_USER} -g \''${MAN_GROUP} -m \''${MAN_PERMS} @@' -i Makefile - ''; - - preInstall = "mkdir -p $out/share/man/man5/ $out/share/man/man8/ $out/sbin"; - - meta = with lib; { - description = "A system logging daemon"; - platforms = platforms.linux; - license = licenses.gpl2; - }; -} diff --git a/pkgs/os-specific/linux/sysklogd/fix-includes-for-musl.patch b/pkgs/os-specific/linux/sysklogd/fix-includes-for-musl.patch deleted file mode 100644 index 87e56a10db8b..000000000000 --- a/pkgs/os-specific/linux/sysklogd/fix-includes-for-musl.patch +++ /dev/null @@ -1,120 +0,0 @@ -# this patch both fixes some include paths as well as removes glibc -# gates around defines that musl-libc also depends on. -diff -u sysklogd-1.5.1.orig/klogd.c sysklogd-1.5.1/klogd.c ---- sysklogd-1.5.1.orig/klogd.c 2014-10-04 15:47:18.000000000 -0400 -+++ sysklogd-1.5.1/klogd.c 2021-01-18 23:09:23.000000000 -0500 -@@ -260,11 +260,8 @@ - #include <unistd.h> - #include <signal.h> - #include <errno.h> --#include <sys/fcntl.h> -+#include <fcntl.h> - #include <sys/stat.h> --#if !defined(__GLIBC__) --#include <linux/time.h> --#endif /* __GLIBC__ */ - #include <stdarg.h> - #include <paths.h> - #include <stdlib.h> -@@ -277,13 +274,8 @@ - - #define __LIBRARY__ - #include <linux/unistd.h> --#if !defined(__GLIBC__) --# define __NR_ksyslog __NR_syslog --_syscall3(int,ksyslog,int, type, char *, buf, int, len); --#else - #include <sys/klog.h> - #define ksyslog klogctl --#endif - - #define LOG_BUFFER_SIZE 4096 - #define LOG_LINE_LENGTH 1000 -diff -u sysklogd-1.5.1.orig/ksym_mod.c sysklogd-1.5.1/ksym_mod.c ---- sysklogd-1.5.1.orig/ksym_mod.c 2014-10-04 15:47:18.000000000 -0400 -+++ sysklogd-1.5.1/ksym_mod.c 2021-01-18 23:09:57.000000000 -0500 -@@ -113,12 +113,9 @@ - #include <unistd.h> - #include <signal.h> - #include <errno.h> --#include <sys/fcntl.h> -+#include <fcntl.h> - #include <sys/stat.h> - #include "module.h" --#if !defined(__GLIBC__) --#include <linux/time.h> --#endif /* __GLIBC__ */ - #include <stdarg.h> - #include <paths.h> - #include <linux/version.h> -diff -u sysklogd-1.5.1.orig/pidfile.c sysklogd-1.5.1/pidfile.c ---- sysklogd-1.5.1.orig/pidfile.c 2014-10-04 15:47:18.000000000 -0400 -+++ sysklogd-1.5.1/pidfile.c 2021-01-18 23:23:55.000000000 -0500 -@@ -25,6 +25,7 @@ - */ - - #include <stdio.h> -+#include <fcntl.h> - #include <unistd.h> - #include <sys/stat.h> - #include <sys/file.h> -diff -u sysklogd-1.5.1.orig/syslog.c sysklogd-1.5.1/syslog.c ---- sysklogd-1.5.1.orig/syslog.c 2014-10-04 15:47:18.000000000 -0400 -+++ sysklogd-1.5.1/syslog.c 2021-01-18 23:11:45.000000000 -0500 -@@ -55,7 +55,6 @@ - #include <sys/types.h> - #include <sys/socket.h> - #include <sys/file.h> --#include <sys/signal.h> - #include <sys/syslog.h> - #if 0 - #include "syslog.h" -@@ -64,6 +63,8 @@ - - #include <sys/uio.h> - #include <sys/wait.h> -+#include <signal.h> -+#include <fcntl.h> - #include <netdb.h> - #include <string.h> - #include <time.h> -diff -u sysklogd-1.5.1.orig/syslogd.c sysklogd-1.5.1/syslogd.c ---- sysklogd-1.5.1.orig/syslogd.c 2014-10-04 15:47:18.000000000 -0400 -+++ sysklogd-1.5.1/syslogd.c 2021-01-18 23:13:25.000000000 -0500 -@@ -519,9 +519,9 @@ - #include <time.h> - - #define SYSLOG_NAMES -+#include <errno.h> - #include <sys/syslog.h> - #include <sys/param.h> --#include <sys/errno.h> - #include <sys/ioctl.h> - #include <sys/stat.h> - #include <sys/wait.h> -@@ -818,9 +818,7 @@ - void init(); - void cfline(char *line, register struct filed *f); - int decode(char *name, struct code *codetab); --#if defined(__GLIBC__) - #define dprintf mydprintf --#endif /* __GLIBC__ */ - static void dprintf(char *, ...); - static void allocate_log(void); - void sighup_handler(); -@@ -840,15 +838,9 @@ - register char *p; - #ifndef TESTING - ssize_t msglen; --#endif --#if !defined(__GLIBC__) -- int len, num_fds; --#else /* __GLIBC__ */ --#ifndef TESTING - socklen_t len; - #endif - int num_fds; --#endif /* __GLIBC__ */ - /* - * It took me quite some time to figure out how this is - * supposed to work so I guess I should better write it down. diff --git a/pkgs/os-specific/linux/sysklogd/systemd.patch b/pkgs/os-specific/linux/sysklogd/systemd.patch deleted file mode 100644 index a170f67cadbb..000000000000 --- a/pkgs/os-specific/linux/sysklogd/systemd.patch +++ /dev/null @@ -1,845 +0,0 @@ -Based on http://ftp.free.org/mirrors/rsync.frugalware.org/frugalware-testing/source/apps-extra/sysklogd/sysklogd-1.5-systemd.diff - -diff -ruN -x '*~' sysklogd-1.5-old/Makefile sysklogd-1.5/Makefile ---- sysklogd-1.5-old/Makefile 2007-05-30 17:28:48.000000000 +0200 -+++ sysklogd-1.5/Makefile 2013-05-09 16:01:14.428638113 +0200 -@@ -20,7 +20,7 @@ - CC= gcc - #SKFLAGS= -g -DSYSV -Wall - #LDFLAGS= -g --SKFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce -+SKFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce -I. - # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE - # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE - # $(shell getconf LFS_SKFLAGS) -@@ -79,8 +79,8 @@ - - install: install_man install_exec - --syslogd: syslogd.o pidfile.o -- ${CC} ${LDFLAGS} -o syslogd syslogd.o pidfile.o ${LIBS} -+syslogd: syslogd.o pidfile.o sd-daemon.o -+ ${CC} ${LDFLAGS} -o syslogd syslogd.o pidfile.o sd-daemon.o ${LIBS} - - klogd: klogd.o syslog.o pidfile.o ksym.o ksym_mod.o - ${CC} ${LDFLAGS} -o klogd klogd.o syslog.o pidfile.o ksym.o \ -@@ -101,6 +101,9 @@ - syslog.o: syslog.c - ${CC} ${SKFLAGS} ${SYSLOG_FLAGS} -c syslog.c - -+sd-daemon.o: sd-daemon.c sd-daemon.h -+ ${CC} ${SKFLAGS} ${SYSLOG_FLAGS} -c sd-daemon.c -+ - klogd.o: klogd.c klogd.h version.h - ${CC} ${SKFLAGS} ${KLOGD_FLAGS} $(DEB) -c klogd.c - -diff -ruN -x '*~' sysklogd-1.5-old/sd-daemon.c sysklogd-1.5/sd-daemon.c ---- sysklogd-1.5-old/sd-daemon.c 1970-01-01 01:00:00.000000000 +0100 -+++ sysklogd-1.5/sd-daemon.c 2013-05-09 16:01:14.429638107 +0200 -@@ -0,0 +1,436 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+/*** -+ Copyright 2010 Lennart Poettering -+ -+ Permission is hereby granted, free of charge, to any person -+ obtaining a copy of this software and associated documentation files -+ (the "Software"), to deal in the Software without restriction, -+ including without limitation the rights to use, copy, modify, merge, -+ publish, distribute, sublicense, and/or sell copies of the Software, -+ and to permit persons to whom the Software is furnished to do so, -+ subject to the following conditions: -+ -+ The above copyright notice and this permission notice shall be -+ included in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ SOFTWARE. -+***/ -+ -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE -+#endif -+ -+#include <sys/types.h> -+#include <sys/stat.h> -+#include <sys/socket.h> -+#include <sys/un.h> -+#include <netinet/in.h> -+#include <stdlib.h> -+#include <fcntl.h> -+#include <errno.h> -+#include <unistd.h> -+#include <string.h> -+#include <stdarg.h> -+#include <stdio.h> -+#include <stddef.h> -+ -+#include "sd-daemon.h" -+ -+int sd_listen_fds(int unset_environment) { -+ -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) -+ return 0; -+#else -+ int r, fd; -+ const char *e; -+ char *p = NULL; -+ unsigned long l; -+ -+ if (!(e = getenv("LISTEN_PID"))) { -+ r = 0; -+ goto finish; -+ } -+ -+ errno = 0; -+ l = strtoul(e, &p, 10); -+ -+ if (errno != 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ if (!p || *p || l <= 0) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ /* Is this for us? */ -+ if (getpid() != (pid_t) l) { -+ r = 0; -+ goto finish; -+ } -+ -+ if (!(e = getenv("LISTEN_FDS"))) { -+ r = 0; -+ goto finish; -+ } -+ -+ errno = 0; -+ l = strtoul(e, &p, 10); -+ -+ if (errno != 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ if (!p || *p) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + (int) l; fd ++) { -+ int flags; -+ -+ if ((flags = fcntl(fd, F_GETFD)) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ if (flags & FD_CLOEXEC) -+ continue; -+ -+ if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ } -+ -+ r = (int) l; -+ -+finish: -+ if (unset_environment) { -+ unsetenv("LISTEN_PID"); -+ unsetenv("LISTEN_FDS"); -+ } -+ -+ return r; -+#endif -+} -+ -+int sd_is_fifo(int fd, const char *path) { -+ struct stat st_fd; -+ -+ if (fd < 0) -+ return -EINVAL; -+ -+ memset(&st_fd, 0, sizeof(st_fd)); -+ if (fstat(fd, &st_fd) < 0) -+ return -errno; -+ -+ if (!S_ISFIFO(st_fd.st_mode)) -+ return 0; -+ -+ if (path) { -+ struct stat st_path; -+ -+ memset(&st_path, 0, sizeof(st_path)); -+ if (stat(path, &st_path) < 0) { -+ -+ if (errno == ENOENT || errno == ENOTDIR) -+ return 0; -+ -+ return -errno; -+ } -+ -+ return -+ st_path.st_dev == st_fd.st_dev && -+ st_path.st_ino == st_fd.st_ino; -+ } -+ -+ return 1; -+} -+ -+static int sd_is_socket_internal(int fd, int type, int listening) { -+ struct stat st_fd; -+ -+ if (fd < 0 || type < 0) -+ return -EINVAL; -+ -+ if (fstat(fd, &st_fd) < 0) -+ return -errno; -+ -+ if (!S_ISSOCK(st_fd.st_mode)) -+ return 0; -+ -+ if (type != 0) { -+ int other_type = 0; -+ socklen_t l = sizeof(other_type); -+ -+ if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &other_type, &l) < 0) -+ return -errno; -+ -+ if (l != sizeof(other_type)) -+ return -EINVAL; -+ -+ if (other_type != type) -+ return 0; -+ } -+ -+ if (listening >= 0) { -+ int accepting = 0; -+ socklen_t l = sizeof(accepting); -+ -+ if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &accepting, &l) < 0) -+ return -errno; -+ -+ if (l != sizeof(accepting)) -+ return -EINVAL; -+ -+ if (!accepting != !listening) -+ return 0; -+ } -+ -+ return 1; -+} -+ -+union sockaddr_union { -+ struct sockaddr sa; -+ struct sockaddr_in in4; -+ struct sockaddr_in6 in6; -+ struct sockaddr_un un; -+ struct sockaddr_storage storage; -+}; -+ -+int sd_is_socket(int fd, int family, int type, int listening) { -+ int r; -+ -+ if (family < 0) -+ return -EINVAL; -+ -+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) -+ return r; -+ -+ if (family > 0) { -+ union sockaddr_union sockaddr; -+ socklen_t l; -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ l = sizeof(sockaddr); -+ -+ if (getsockname(fd, &sockaddr.sa, &l) < 0) -+ return -errno; -+ -+ if (l < sizeof(sa_family_t)) -+ return -EINVAL; -+ -+ return sockaddr.sa.sa_family == family; -+ } -+ -+ return 1; -+} -+ -+int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) { -+ union sockaddr_union sockaddr; -+ socklen_t l; -+ int r; -+ -+ if (family != 0 && family != AF_INET && family != AF_INET6) -+ return -EINVAL; -+ -+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) -+ return r; -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ l = sizeof(sockaddr); -+ -+ if (getsockname(fd, &sockaddr.sa, &l) < 0) -+ return -errno; -+ -+ if (l < sizeof(sa_family_t)) -+ return -EINVAL; -+ -+ if (sockaddr.sa.sa_family != AF_INET && -+ sockaddr.sa.sa_family != AF_INET6) -+ return 0; -+ -+ if (family > 0) -+ if (sockaddr.sa.sa_family != family) -+ return 0; -+ -+ if (port > 0) { -+ if (sockaddr.sa.sa_family == AF_INET) { -+ if (l < sizeof(struct sockaddr_in)) -+ return -EINVAL; -+ -+ return htons(port) == sockaddr.in4.sin_port; -+ } else { -+ if (l < sizeof(struct sockaddr_in6)) -+ return -EINVAL; -+ -+ return htons(port) == sockaddr.in6.sin6_port; -+ } -+ } -+ -+ return 1; -+} -+ -+int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) { -+ union sockaddr_union sockaddr; -+ socklen_t l; -+ int r; -+ -+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0) -+ return r; -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ l = sizeof(sockaddr); -+ -+ if (getsockname(fd, &sockaddr.sa, &l) < 0) -+ return -errno; -+ -+ if (l < sizeof(sa_family_t)) -+ return -EINVAL; -+ -+ if (sockaddr.sa.sa_family != AF_UNIX) -+ return 0; -+ -+ if (path) { -+ if (length <= 0) -+ length = strlen(path); -+ -+ if (length <= 0) -+ /* Unnamed socket */ -+ return l == offsetof(struct sockaddr_un, sun_path); -+ -+ if (path[0]) -+ /* Normal path socket */ -+ return -+ (l >= offsetof(struct sockaddr_un, sun_path) + length + 1) && -+ memcmp(path, sockaddr.un.sun_path, length+1) == 0; -+ else -+ /* Abstract namespace socket */ -+ return -+ (l == offsetof(struct sockaddr_un, sun_path) + length) && -+ memcmp(path, sockaddr.un.sun_path, length) == 0; -+ } -+ -+ return 1; -+} -+ -+int sd_notify(int unset_environment, const char *state) { -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) || !defined(SOCK_CLOEXEC) -+ return 0; -+#else -+ int fd = -1, r; -+ struct msghdr msghdr; -+ struct iovec iovec; -+ union sockaddr_union sockaddr; -+ const char *e; -+ -+ if (!state) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ if (!(e = getenv("NOTIFY_SOCKET"))) -+ return 0; -+ -+ /* Must be an abstract socket, or an absolute path */ -+ if ((e[0] != '@' && e[0] != '/') || e[1] == 0) { -+ r = -EINVAL; -+ goto finish; -+ } -+ -+ if ((fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ memset(&sockaddr, 0, sizeof(sockaddr)); -+ sockaddr.sa.sa_family = AF_UNIX; -+ strncpy(sockaddr.un.sun_path, e, sizeof(sockaddr.un.sun_path)); -+ -+ if (sockaddr.un.sun_path[0] == '@') -+ sockaddr.un.sun_path[0] = 0; -+ -+ memset(&iovec, 0, sizeof(iovec)); -+ iovec.iov_base = (char*) state; -+ iovec.iov_len = strlen(state); -+ -+ memset(&msghdr, 0, sizeof(msghdr)); -+ msghdr.msg_name = &sockaddr; -+ msghdr.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(e); -+ -+ if (msghdr.msg_namelen > sizeof(struct sockaddr_un)) -+ msghdr.msg_namelen = sizeof(struct sockaddr_un); -+ -+ msghdr.msg_iov = &iovec; -+ msghdr.msg_iovlen = 1; -+ -+ if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) { -+ r = -errno; -+ goto finish; -+ } -+ -+ r = 1; -+ -+finish: -+ if (unset_environment) -+ unsetenv("NOTIFY_SOCKET"); -+ -+ if (fd >= 0) -+ close(fd); -+ -+ return r; -+#endif -+} -+ -+int sd_notifyf(int unset_environment, const char *format, ...) { -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) -+ return 0; -+#else -+ va_list ap; -+ char *p = NULL; -+ int r; -+ -+ va_start(ap, format); -+ r = vasprintf(&p, format, ap); -+ va_end(ap); -+ -+ if (r < 0 || !p) -+ return -ENOMEM; -+ -+ r = sd_notify(unset_environment, p); -+ free(p); -+ -+ return r; -+#endif -+} -+ -+int sd_booted(void) { -+#if defined(DISABLE_SYSTEMD) || !defined(__linux__) -+ return 0; -+#else -+ -+ struct stat a, b; -+ -+ /* We simply test whether the systemd cgroup hierarchy is -+ * mounted */ -+ -+ if (lstat("/sys/fs/cgroup", &a) < 0) -+ return 0; -+ -+ if (lstat("/sys/fs/cgroup/systemd", &b) < 0) -+ return 0; -+ -+ return a.st_dev != b.st_dev; -+#endif -+} -diff -ruN -x '*~' sysklogd-1.5-old/sd-daemon.h sysklogd-1.5/sd-daemon.h ---- sysklogd-1.5-old/sd-daemon.h 1970-01-01 01:00:00.000000000 +0100 -+++ sysklogd-1.5/sd-daemon.h 2013-05-09 16:01:14.429638107 +0200 -@@ -0,0 +1,265 @@ -+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -+ -+#ifndef foosddaemonhfoo -+#define foosddaemonhfoo -+ -+/*** -+ Copyright 2010 Lennart Poettering -+ -+ Permission is hereby granted, free of charge, to any person -+ obtaining a copy of this software and associated documentation files -+ (the "Software"), to deal in the Software without restriction, -+ including without limitation the rights to use, copy, modify, merge, -+ publish, distribute, sublicense, and/or sell copies of the Software, -+ and to permit persons to whom the Software is furnished to do so, -+ subject to the following conditions: -+ -+ The above copyright notice and this permission notice shall be -+ included in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ SOFTWARE. -+***/ -+ -+#include <sys/types.h> -+#include <inttypes.h> -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+/* -+ Reference implementation of a few systemd related interfaces for -+ writing daemons. These interfaces are trivial to implement. To -+ simplify porting we provide this reference implementation. -+ Applications are welcome to reimplement the algorithms described -+ here if they do not want to include these two source files. -+ -+ The following functionality is provided: -+ -+ - Support for logging with log levels on stderr -+ - File descriptor passing for socket-based activation -+ - Daemon startup and status notification -+ - Detection of systemd boots -+ -+ You may compile this with -DDISABLE_SYSTEMD to disable systemd -+ support. This makes all those calls NOPs that are directly related to -+ systemd (i.e. only sd_is_xxx() will stay useful). -+ -+ Since this is drop-in code we don't want any of our symbols to be -+ exported in any case. Hence we declare hidden visibility for all of -+ them. -+ -+ You may find an up-to-date version of these source files online: -+ -+ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.h -+ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.c -+ -+ This should compile on non-Linux systems, too, but with the -+ exception of the sd_is_xxx() calls all functions will become NOPs. -+ -+ See sd-daemon(7) for more information. -+*/ -+ -+#ifndef _sd_printf_attr_ -+#if __GNUC__ >= 4 -+#define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b))) -+#else -+#define _sd_printf_attr_(a,b) -+#endif -+#endif -+ -+#ifndef _sd_hidden_ -+#if (__GNUC__ >= 4) && !defined(SD_EXPORT_SYMBOLS) -+#define _sd_hidden_ __attribute__ ((visibility("hidden"))) -+#else -+#define _sd_hidden_ -+#endif -+#endif -+ -+/* -+ Log levels for usage on stderr: -+ -+ fprintf(stderr, SD_NOTICE "Hello World!\n"); -+ -+ This is similar to printk() usage in the kernel. -+*/ -+#define SD_EMERG "<0>" /* system is unusable */ -+#define SD_ALERT "<1>" /* action must be taken immediately */ -+#define SD_CRIT "<2>" /* critical conditions */ -+#define SD_ERR "<3>" /* error conditions */ -+#define SD_WARNING "<4>" /* warning conditions */ -+#define SD_NOTICE "<5>" /* normal but significant condition */ -+#define SD_INFO "<6>" /* informational */ -+#define SD_DEBUG "<7>" /* debug-level messages */ -+ -+/* The first passed file descriptor is fd 3 */ -+#define SD_LISTEN_FDS_START 3 -+ -+/* -+ Returns how many file descriptors have been passed, or a negative -+ errno code on failure. Optionally, removes the $LISTEN_FDS and -+ $LISTEN_PID file descriptors from the environment (recommended, but -+ problematic in threaded environments). If r is the return value of -+ this function you'll find the file descriptors passed as fds -+ SD_LISTEN_FDS_START to SD_LISTEN_FDS_START+r-1. Returns a negative -+ errno style error code on failure. This function call ensures that -+ the FD_CLOEXEC flag is set for the passed file descriptors, to make -+ sure they are not passed on to child processes. If FD_CLOEXEC shall -+ not be set, the caller needs to unset it after this call for all file -+ descriptors that are used. -+ -+ See sd_listen_fds(3) for more information. -+*/ -+int sd_listen_fds(int unset_environment) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is a FIFO in the file system stored under the -+ specified path, 0 otherwise. If path is NULL a path name check will -+ not be done and the call only verifies if the file descriptor -+ refers to a FIFO. Returns a negative errno style error code on -+ failure. -+ -+ See sd_is_fifo(3) for more information. -+*/ -+int sd_is_fifo(int fd, const char *path) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is a socket of the specified family (AF_INET, -+ ...) and type (SOCK_DGRAM, SOCK_STREAM, ...), 0 otherwise. If -+ family is 0 a socket family check will not be done. If type is 0 a -+ socket type check will not be done and the call only verifies if -+ the file descriptor refers to a socket. If listening is > 0 it is -+ verified that the socket is in listening mode. (i.e. listen() has -+ been called) If listening is == 0 it is verified that the socket is -+ not in listening mode. If listening is < 0 no listening mode check -+ is done. Returns a negative errno style error code on failure. -+ -+ See sd_is_socket(3) for more information. -+*/ -+int sd_is_socket(int fd, int family, int type, int listening) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is an Internet socket, of the specified family -+ (either AF_INET or AF_INET6) and the specified type (SOCK_DGRAM, -+ SOCK_STREAM, ...), 0 otherwise. If version is 0 a protocol version -+ check is not done. If type is 0 a socket type check will not be -+ done. If port is 0 a socket port check will not be done. The -+ listening flag is used the same way as in sd_is_socket(). Returns a -+ negative errno style error code on failure. -+ -+ See sd_is_socket_inet(3) for more information. -+*/ -+int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) _sd_hidden_; -+ -+/* -+ Helper call for identifying a passed file descriptor. Returns 1 if -+ the file descriptor is an AF_UNIX socket of the specified type -+ (SOCK_DGRAM, SOCK_STREAM, ...) and path, 0 otherwise. If type is 0 -+ a socket type check will not be done. If path is NULL a socket path -+ check will not be done. For normal AF_UNIX sockets set length to -+ 0. For abstract namespace sockets set length to the length of the -+ socket name (including the initial 0 byte), and pass the full -+ socket path in path (including the initial 0 byte). The listening -+ flag is used the same way as in sd_is_socket(). Returns a negative -+ errno style error code on failure. -+ -+ See sd_is_socket_unix(3) for more information. -+*/ -+int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) _sd_hidden_; -+ -+/* -+ Informs systemd about changed daemon state. This takes a number of -+ newline separated environment-style variable assignments in a -+ string. The following variables are known: -+ -+ READY=1 Tells systemd that daemon startup is finished (only -+ relevant for services of Type=notify). The passed -+ argument is a boolean "1" or "0". Since there is -+ little value in signalling non-readiness the only -+ value daemons should send is "READY=1". -+ -+ STATUS=... Passes a single-line status string back to systemd -+ that describes the daemon state. This is free-from -+ and can be used for various purposes: general state -+ feedback, fsck-like programs could pass completion -+ percentages and failing programs could pass a human -+ readable error message. Example: "STATUS=Completed -+ 66% of file system check..." -+ -+ ERRNO=... If a daemon fails, the errno-style error code, -+ formatted as string. Example: "ERRNO=2" for ENOENT. -+ -+ BUSERROR=... If a daemon fails, the D-Bus error-style error -+ code. Example: "BUSERROR=org.freedesktop.DBus.Error.TimedOut" -+ -+ MAINPID=... The main pid of a daemon, in case systemd did not -+ fork off the process itself. Example: "MAINPID=4711" -+ -+ Daemons can choose to send additional variables. However, it is -+ recommened to prefix variable names not listed above with X_. -+ -+ Returns a negative errno-style error code on failure. Returns > 0 -+ if systemd could be notified, 0 if it couldn't possibly because -+ systemd is not running. -+ -+ Example: When a daemon finished starting up, it could issue this -+ call to notify systemd about it: -+ -+ sd_notify(0, "READY=1"); -+ -+ See sd_notifyf() for more complete examples. -+ -+ See sd_notify(3) for more information. -+*/ -+int sd_notify(int unset_environment, const char *state) _sd_hidden_; -+ -+/* -+ Similar to sd_notify() but takes a format string. -+ -+ Example 1: A daemon could send the following after initialization: -+ -+ sd_notifyf(0, "READY=1\n" -+ "STATUS=Processing requests...\n" -+ "MAINPID=%lu", -+ (unsigned long) getpid()); -+ -+ Example 2: A daemon could send the following shortly before -+ exiting, on failure: -+ -+ sd_notifyf(0, "STATUS=Failed to start up: %s\n" -+ "ERRNO=%i", -+ strerror(errno), -+ errno); -+ -+ See sd_notifyf(3) for more information. -+*/ -+int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(2,3) _sd_hidden_; -+ -+/* -+ Returns > 0 if the system was booted with systemd. Returns < 0 on -+ error. Returns 0 if the system was not booted with systemd. Note -+ that all of the functions above handle non-systemd boots just -+ fine. You should NOT protect them with a call to this function. Also -+ note that this function checks whether the system, not the user -+ session is controlled by systemd. However the functions above work -+ for both user and system services. -+ -+ See sd_booted(3) for more information. -+*/ -+int sd_booted(void) _sd_hidden_; -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif -diff -ruN -x '*~' sysklogd-1.5-old/syslogd.c sysklogd-1.5/syslogd.c ---- sysklogd-1.5-old/syslogd.c 2007-07-04 21:04:01.000000000 +0200 -+++ sysklogd-1.5/syslogd.c 2013-05-09 16:04:32.106602589 +0200 -@@ -551,6 +551,7 @@ - - #if defined(__linux__) - #include <paths.h> -+#include <sd-daemon.h> - #endif - - #ifndef UTMP_FILE -@@ -965,8 +966,11 @@ - } - signal (SIGTERM, SIG_DFL); - num_fds = getdtablesize(); -- for (i= 0; i < num_fds; i++) -- (void) close(i); -+#if defined(__linux__) -+ if (sd_listen_fds(0) <= 0) -+#endif -+ for (i = 0; i < num_fds; i++) -+ (void) close(i); - untty(); - } - else -@@ -1253,6 +1257,60 @@ - if (path[0] == '\0') - return -1; - -+#if defined(__linux__) -+ if (strcmp(path, _PATH_LOG) == 0) { -+ int r; -+ -+ /* Check whether an FD was passed in from systemd. If -+ * so, it's the /dev/log socket, so use it. */ -+ -+ r = sd_listen_fds(0); -+ if (r < 0) { -+ logerror("Failed to acquire systemd socket"); -+#ifndef SYSV -+ dienow(); -+#else -+ return -1; -+#endif -+ } -+ -+ -+ if (r > 1) { -+ logerror("Wrong number of systemd sockets passed"); -+#ifndef SYSV -+ dienow(); -+#else -+ return -1; -+#endif -+ } -+ -+ if (r == 1) { -+ fd = SD_LISTEN_FDS_START; -+ r = sd_is_socket_unix(fd, SOCK_DGRAM, -1, "/run/systemd/journal/syslog", 0); -+ if (r < 0) { -+ logerror("Failed to verify systemd socket type"); -+#ifndef SYSV -+ dienow(); -+#else -+ return -1; -+#endif -+ } -+ -+ if (!r) { -+ logerror("Passed systemd socket of wrong type"); -+#ifndef SYSV -+ dienow(); -+#else -+ return -1; -+#endif -+ } -+ -+ dprintf("Using systemd socket (%d).\n", fd); -+ return fd; -+ } -+ } -+#endif -+ - (void) unlink(path); - - memset(&sunx, 0, sizeof(sunx)); -@@ -2254,9 +2312,11 @@ - if (InetInuse) close(inetm); - - /* Clean-up files. */ -- for (i = 0; i < nfunix; i++) -- if (funixn[i] && funix[i] != -1) -- (void)unlink(funixn[i]); -+ i = 0; -+#if defined(__linux__) -+ if (sd_listen_fds(0) > 0) -+ i = 1; -+#endif - #ifndef TESTING - (void) remove_pid(PidFile); - #endif diff --git a/pkgs/os-specific/linux/sysklogd/union-wait.patch b/pkgs/os-specific/linux/sysklogd/union-wait.patch deleted file mode 100644 index e4bffa5d6953..000000000000 --- a/pkgs/os-specific/linux/sysklogd/union-wait.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- sysklogd-1.5-old/syslogd.c 2016-08-30 22:50:59.812926945 +0100 -+++ sysklogd-1.5/syslogd.c 2016-08-30 22:51:12.008842890 +0100 -@@ -2094,7 +2094,7 @@ - (void) signal(SIGCHLD, reapchild); /* reset signal handler -ASP */ - wait ((int *)0); - #else -- union wait status; -+ int status; - - while (wait3(&status, WNOHANG, (struct rusage *) NULL) > 0) - ; diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix deleted file mode 100644 index f5153eb5abc9..000000000000 --- a/pkgs/os-specific/linux/syslinux/default.nix +++ /dev/null @@ -1,135 +0,0 @@ -{ lib -, stdenv -, fetchgit -, fetchurl -, libuuid -, makeWrapper -, mtools -, nasm -, perl -, python3 -}: - -stdenv.mkDerivation { - pname = "syslinux"; - version = "unstable-2019-02-07"; - - # This is syslinux-6.04-pre3^1; syslinux-6.04-pre3 fails to run. - # Same issue here https://www.syslinux.org/archives/2019-February/026330.html - src = fetchgit { - url = "https://repo.or.cz/syslinux"; - rev = "b40487005223a78c3bb4c300ef6c436b3f6ec1f7"; - sha256 = "sha256-GqvRTr9mA2yRD0G0CF11x1X0jCgqV4Mh+tvE0/0yjqk="; - fetchSubmodules = true; - }; - - patches = let - fetchDebianPatch = name: commit: hash: - fetchurl { - url = "https://salsa.debian.org/images-team/syslinux/raw/" - + commit + "/debian/patches/" + name; - inherit name hash; - }; - fetchArchlinuxPatch = name: commit: hash: - fetchurl { - url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/" - + commit + "/trunk/" + name; - inherit name hash; - }; - in [ - ./gcc10.patch - (fetchDebianPatch - "0002-gfxboot-menu-label.patch" - "fa1349f1" - "sha256-0f6QhM4lJmGflLige4n7AZTodL7vnyAvi5dIedd/Lho=") - (fetchArchlinuxPatch - "0005-gnu-efi-version-compatibility.patch" - "821c3da473d1399d930d5b4a086e46a4179eaa45" - "sha256-hhCVnfbAFWj/R4yh60qsMB87ofW9RznarsByhl6L4tc=") - (fetchArchlinuxPatch - "0025-reproducible-build.patch" - "821c3da473d1399d930d5b4a086e46a4179eaa45" - "sha256-mnb291pCSFvDNxY7o4BosJ94ib3BpOGRQIiY8Q3jZmI=") - (fetchDebianPatch - # mbr.bin: too big (452 > 440) - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906414 - "0016-strip-gnu-property.patch" - "7468ef0e38c43" - "sha256-lW+E6THuXlTGvhly0f/D9NwYHhkiKHot2l+bz9Eaxp4=") - (fetchDebianPatch - # mbr.bin: too big (452 > 440) - "0017-single-load-segment.patch" - "012e1dd312eb" - "sha256-C6VmdlTs1blMGUHH3OfOlFBZsfpwRn9vWodwqVn8+Cs=") - (fetchDebianPatch - "0018-prevent-pow-optimization.patch" - "26f0e7b2" - "sha256-dVzXBi/oSV9vYgU85mRFHBKuZdup+1x1BipJX74ED7E=") - ]; - - postPatch = '' - substituteInPlace Makefile --replace /bin/pwd $(type -P pwd) - substituteInPlace utils/ppmtolss16 --replace /usr/bin/perl $(type -P perl) - - # fix tests - substituteInPlace tests/unittest/include/unittest/unittest.h \ - --replace /usr/include/ "" - - # Hack to get `gcc -m32' to work without having 32-bit Glibc headers. - mkdir gnu-efi/inc/ia32/gnu - touch gnu-efi/inc/ia32/gnu/stubs-32.h - ''; - - nativeBuildInputs = [ - nasm - perl - python3 - makeWrapper - ]; - - buildInputs = [ - libuuid - ]; - - # Fails very rarely with 'No rule to make target: ...' - enableParallelBuilding = false; - - hardeningDisable = [ "pic" "stackprotector" "fortify" ]; - - stripDebugList = [ "bin" "sbin" "share/syslinux/com32" ]; - - # Workaround build failure on -fno-common toolchains like upstream - # gcc-10. Otherwise build fails as: - # ld: acpi/xsdt.o:/build/syslinux-b404870/com32/gpllib/../gplinclude/memory.h:40: multiple definition of - # `e820_types'; memory.o:/build/syslinux-b404870/com32/gpllib/../gplinclude/memory.h:40: first defined here - env.NIX_CFLAGS_COMPILE = "-fcommon"; - - makeFlags = [ - "BINDIR=$(out)/bin" - "SBINDIR=$(out)/sbin" - "DATADIR=$(out)/share" - "MANDIR=$(out)/share/man" - "PERL=perl" - "HEXDATE=0x00000000" - ] - ++ lib.optionals stdenv.hostPlatform.isi686 [ "bios" "efi32" ]; - - # Some tests require qemu, some others fail in a sandboxed environment - doCheck = false; - - postInstall = '' - wrapProgram $out/bin/syslinux \ - --prefix PATH : "${mtools}/bin" - - # Delete com32 headers to save space, nobody seems to be using them - rm -rf $out/share/syslinux/com32 - ''; - - meta = with lib; { - homepage = "http://www.syslinux.org/"; - description = "A lightweight bootloader"; - license = licenses.gpl2Plus; - maintainers = [ maintainers.samueldr ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/syslinux/gcc10.patch b/pkgs/os-specific/linux/syslinux/gcc10.patch deleted file mode 100644 index f4893a912313..000000000000 --- a/pkgs/os-specific/linux/syslinux/gcc10.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/dos/string.h b/dos/string.h -index f648de2..a502132 100644 ---- a/dos/string.h -+++ b/dos/string.h -@@ -5,12 +5,13 @@ - #ifndef _STRING_H - #define _STRING_H - -+#include <stddef.h> -+ - /* Standard routines */ - #define memcpy(a,b,c) __builtin_memcpy(a,b,c) - #define memmove(a,b,c) __builtin_memmove(a,b,c) - #define memset(a,b,c) __builtin_memset(a,b,c) - #define strcpy(a,b) __builtin_strcpy(a,b) --#define strlen(a) __builtin_strlen(a) - - /* This only returns true or false */ - static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n) -@@ -21,6 +22,13 @@ static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n) - return rv; - } - -+static inline size_t strlen(const char *s) -+{ -+ size_t len = 0; -+ while (*s++) len++; -+ return len; -+} -+ - extern char *strchr(const char *s, int c); - - #endif /* _STRING_H */ diff --git a/pkgs/os-specific/linux/sysstat/default.nix b/pkgs/os-specific/linux/sysstat/default.nix deleted file mode 100644 index 303935d8adb4..000000000000 --- a/pkgs/os-specific/linux/sysstat/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, gettext -, bzip2 -}: - -stdenv.mkDerivation rec { - pname = "sysstat"; - version = "12.7.4"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = "refs/tags/v${version}"; - hash = "sha256-ELmSzWnJ8vGwGPwY/5MFp/2gQhMXMjNG4bHtCplfQSc="; - }; - - buildInputs = [ gettext ]; - - preConfigure = '' - export PATH_CP=$(type -tp cp) - export PATH_CHKCONFIG=/no-such-program - export BZIP=${bzip2.bin}/bin/bzip2 - export SYSTEMCTL=systemctl - export COMPRESS_MANPG=n - ''; - - makeFlags = [ "SYSCONFIG_DIR=$(out)/etc" "IGNORE_FILE_ATTRIBUTES=y" "CHOWN=true" ]; - installTargets = [ "install_base" "install_nls" "install_man" ]; - - patches = [ ./install.patch ]; - - meta = { - homepage = "http://sebastien.godard.pagesperso-orange.fr/"; - description = "A collection of performance monitoring tools for Linux (such as sar, iostat and pidstat)"; - license = lib.licenses.gpl2Plus; - platforms = lib.platforms.linux; - maintainers = [ lib.maintainers.eelco ]; - }; -} diff --git a/pkgs/os-specific/linux/sysstat/install.patch b/pkgs/os-specific/linux/sysstat/install.patch deleted file mode 100644 index 473fa30b98b4..000000000000 --- a/pkgs/os-specific/linux/sysstat/install.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -rc sysstat-11.0.1/Makefile.in sysstat-11.0.1-new/Makefile.in -*** sysstat-11.0.1/Makefile.in 2014-08-30 15:38:39.000000000 +0200 ---- sysstat-11.0.1-new/Makefile.in 2014-12-18 14:40:45.466349009 +0100 -*************** -*** 331,337 **** - install_base: all sa1 sa2 sysstat.sysconfig install_man install_nls \ - contrib/isag/isag - mkdir -p $(DESTDIR)$(SA_LIB_DIR) -- mkdir -p $(DESTDIR)$(SA_DIR) - ifeq ($(CLEAN_SA_DIR),y) - find $(DESTDIR)$(SA_DIR) \( -name 'sar??' -o -name 'sa??' -o -name 'sar??.gz' -o -name 'sa??.gz' \) \ - -exec rm -f {} \; ---- 331,336 ---- diff --git a/pkgs/os-specific/linux/system76-acpi/default.nix b/pkgs/os-specific/linux/system76-acpi/default.nix deleted file mode 100644 index b384cf639487..000000000000 --- a/pkgs/os-specific/linux/system76-acpi/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: -let - version = "1.0.2"; - sha256 = "1i7zjn5cdv9h00fgjg46b8yrz4d3dqvfr25g3f13967ycy58m48h"; -in -stdenv.mkDerivation { - name = "system76-acpi-module-${version}-${kernel.version}"; - - passthru.moduleName = "system76_acpi"; - - src = fetchFromGitHub { - owner = "pop-os"; - repo = "system76-acpi-dkms"; - rev = version; - inherit sha256; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - buildFlags = [ - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - install -D system76_acpi.ko $out/lib/modules/${kernel.modDirVersion}/misc/system76_acpi.ko - mkdir -p $out/lib/udev/hwdb.d - mv lib/udev/hwdb.d/* $out/lib/udev/hwdb.d - ''; - - meta = with lib; { - maintainers = [ maintainers.khumba ]; - license = [ licenses.gpl2Only ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - broken = kernel.kernelOlder "5.2"; - description = "System76 ACPI Driver (DKMS)"; - homepage = "https://github.com/pop-os/system76-acpi-dkms"; - longDescription = '' - This provides the system76_acpi in-tree driver for systems missing it. - ''; - }; -} diff --git a/pkgs/os-specific/linux/system76-io/default.nix b/pkgs/os-specific/linux/system76-io/default.nix deleted file mode 100644 index 54af222bc7d8..000000000000 --- a/pkgs/os-specific/linux/system76-io/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: -let - version = "1.0.2"; - sha256 = "sha256-DWUjQmoojkzFv1p4Xyt0kOwwqQ216ocO5yR/ujhhMPA="; -in -stdenv.mkDerivation { - name = "system76-io-module-${version}-${kernel.version}"; - - passthru.moduleName = "system76_io"; - - src = fetchFromGitHub { - owner = "pop-os"; - repo = "system76-io-dkms"; - rev = version; - inherit sha256; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - buildFlags = [ - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - install -D system76-io.ko $out/lib/modules/${kernel.modDirVersion}/misc/system76-io.ko - ''; - - meta = with lib; { - maintainers = [ maintainers.khumba ]; - license = [ licenses.gpl2Plus ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - broken = versionOlder kernel.version "4.14"; - description = "DKMS module for controlling System76 I/O board"; - homepage = "https://github.com/pop-os/system76-io-dkms"; - }; -} diff --git a/pkgs/os-specific/linux/system76-power/default.nix b/pkgs/os-specific/linux/system76-power/default.nix deleted file mode 100644 index 6a5456080f59..000000000000 --- a/pkgs/os-specific/linux/system76-power/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ pkg-config, libusb1, dbus, lib, rustPlatform, fetchFromGitHub }: - -rustPlatform.buildRustPackage rec { - pname = "system76-power"; - version = "1.1.23"; - - src = fetchFromGitHub { - owner = "pop-os"; - repo = "system76-power"; - rev = version; - sha256 = "sha256-RuYDG4eZE599oa04xUR+W5B3/IPOpQUss1x7hzoydUQ="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ dbus libusb1 ]; - - cargoSha256 = "sha256-Vps02ZRVmeOQ8jDFZJYAUb502MhqY+2YV2W1/9XGY+0="; - - postInstall = '' - install -D -m 0644 data/com.system76.PowerDaemon.conf $out/etc/dbus-1/system.d/com.system76.PowerDaemon.conf - install -D -m 0644 data/com.system76.PowerDaemon.policy $out/share/polkit-1/actions/com.system76.PowerDaemon.policy - install -D -m 0644 data/com.system76.PowerDaemon.xml $out/share/dbus-1/interfaces/com.system76.PowerDaemon.xml - ''; - - meta = with lib; { - description = "System76 Power Management"; - mainProgram = "system76-power"; - homepage = "https://github.com/pop-os/system76-power"; - license = licenses.gpl3Plus; - platforms = [ "i686-linux" "x86_64-linux" ]; - maintainers = [ maintainers.jwoudenberg ]; - }; -} diff --git a/pkgs/os-specific/linux/system76-scheduler/01-fix-pipewire-paths.kdl b/pkgs/os-specific/linux/system76-scheduler/01-fix-pipewire-paths.kdl deleted file mode 100644 index 1ce08e2d3436..000000000000 --- a/pkgs/os-specific/linux/system76-scheduler/01-fix-pipewire-paths.kdl +++ /dev/null @@ -1,8 +0,0 @@ -assignments { - sound-server { - // original config matches on /usr/bin/..., but this is NixOS - pipewire - pipewire-pulse - jackd - } -} diff --git a/pkgs/os-specific/linux/system76-scheduler/default.nix b/pkgs/os-specific/linux/system76-scheduler/default.nix deleted file mode 100644 index 0608fd1c10d0..000000000000 --- a/pkgs/os-specific/linux/system76-scheduler/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib -, fetchFromGitHub -, rustPlatform -, pipewire -, pkg-config -, bcc -, dbus }: - -let - version = "2.0.1"; -in rustPlatform.buildRustPackage { - pname = "system76-scheduler"; - inherit version; - src = fetchFromGitHub { - owner = "pop-os"; - repo = "system76-scheduler"; - rev = version; - hash = "sha256-o4noaLBXHDe7pMBHfQ85uzKJzwbBE5mkWq8h9l6iIZs="; - }; - cargoSha256 = "sha256-hpFDAhOzm4v3lBWwAl/10pS5xvKCScdKsp5wpCeQ+FE="; - - nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ]; - buildInputs = [ dbus pipewire ]; - - EXECSNOOP_PATH = "${bcc}/bin/execsnoop"; - - # tests don't build - doCheck = false; - - postInstall = '' - mkdir -p $out/data - install -D -m 0644 data/com.system76.Scheduler.conf $out/etc/dbus-1/system.d/com.system76.Scheduler.conf - install -D -m 0644 data/*.kdl $out/data/ - ''; - - meta = with lib; { - description = "System76 Scheduler"; - mainProgram = "system76-scheduler"; - homepage = "https://github.com/pop-os/system76-scheduler"; - license = licenses.mpl20; - platforms = [ "x86_64-linux" "x86-linux" "aarch64-linux" ]; - maintainers = [ maintainers.cmm ]; - }; -} diff --git a/pkgs/os-specific/linux/system76/default.nix b/pkgs/os-specific/linux/system76/default.nix deleted file mode 100644 index 7d9cd9bde024..000000000000 --- a/pkgs/os-specific/linux/system76/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: -let - version = "1.0.13"; - sha256 = "162hhmnww8z9k0795ffs8v3f61hlfm375law156sk5l08if19a4r"; -in -stdenv.mkDerivation { - name = "system76-module-${version}-${kernel.version}"; - - passthru.moduleName = "system76"; - - src = fetchFromGitHub { - owner = "pop-os"; - repo = "system76-dkms"; - rev = version; - inherit sha256; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - buildFlags = [ - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - install -D system76.ko $out/lib/modules/${kernel.modDirVersion}/misc/system76.ko - mkdir -p $out/lib/udev/hwdb.d - mv lib/udev/hwdb.d/* $out/lib/udev/hwdb.d - ''; - - meta = with lib; { - maintainers = [ maintainers.khumba ]; - license = [ licenses.gpl2Plus ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - broken = versionOlder kernel.version "4.14"; - description = "System76 DKMS driver"; - homepage = "https://github.com/pop-os/system76-dkms"; - longDescription = '' - The System76 DKMS driver. On newer System76 laptops, this driver controls - some of the hotkeys and allows for custom fan control. - ''; - }; -} diff --git a/pkgs/os-specific/linux/systemd-wait/default.nix b/pkgs/os-specific/linux/systemd-wait/default.nix deleted file mode 100644 index 99e07ebbf49c..000000000000 --- a/pkgs/os-specific/linux/systemd-wait/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ python3Packages, fetchFromGitHub, lib }: - -python3Packages.buildPythonApplication rec { - pname = "systemd-wait"; - version = "0.1+2018-10-05"; - - src = fetchFromGitHub { - owner = "Stebalien"; - repo = pname; - rev = "bbb58dd4584cc08ad20c3888edb7628f28aee3c7"; - sha256 = "1l8rd0wzf3m7fk0g1c8wc0csdisdfac0filhixpgp0ck9ignayq5"; - }; - - propagatedBuildInputs = with python3Packages; [ - dbus-python pygobject3 - ]; - - meta = { - homepage = "https://github.com/Stebalien/systemd-wait"; - license = lib.licenses.gpl3; - description = "Wait for a systemd unit to enter a specific state"; - mainProgram = "systemd-wait"; - maintainers = [ lib.maintainers.benley ]; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch b/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch deleted file mode 100644 index b08026278edb..000000000000 --- a/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra <eelco.dolstra@logicblox.com> -Date: Tue, 8 Jan 2013 15:46:30 +0100 -Subject: [PATCH] Start device units for uninitialised encrypted devices - -This is necessary because the NixOS service that initialises the -filesystem depends on the appearance of the device unit. Also, this -makes more sense to me: the device is ready; it's the filesystem -that's not, but taking care of that is the responsibility of the mount -unit. (However, this ignores the fsck unit, so it's not perfect...) ---- - rules.d/99-systemd.rules.in | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/rules.d/99-systemd.rules.in b/rules.d/99-systemd.rules.in -index 0d68f31d36..6b52f7ed4b 100644 ---- a/rules.d/99-systemd.rules.in -+++ b/rules.d/99-systemd.rules.in -@@ -22,10 +22,6 @@ SUBSYSTEM=="block", TAG+="systemd" - SUBSYSTEM=="block", ENV{DM_SUSPENDED}=="1", IMPORT{db}="SYSTEMD_READY", GOTO="systemd_end" - SUBSYSTEM=="block", ACTION=="add", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" - --# Ignore encrypted devices with no identified superblock on it, since --# we are probably still calling mke2fs or mkswap on it. --SUBSYSTEM=="block", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_TYPE}=="", ENV{ID_FS_USAGE}=="", ENV{SYSTEMD_READY}="0" -- - # Explicitly set SYSTEMD_READY=1 for DM devices that don't have it set yet, so that we always have something to import above - SUBSYSTEM=="block", ENV{DM_UUID}=="?*", ENV{SYSTEMD_READY}=="", ENV{SYSTEMD_READY}="1" - diff --git a/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch b/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch deleted file mode 100644 index 8507bb583c8a..000000000000 --- a/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Raito Bezarius <masterancpp@gmail.com> -Date: Mon, 19 Jun 2023 02:11:35 +0200 -Subject: [PATCH] Don't try to unmount /nix or /nix/store - -They'll still be remounted read-only. - -https://github.com/NixOS/nixos/issues/126 - -Original-Author: Eelco Dolstra <eelco.dolstra@logicblox.com> ---- - src/shared/fstab-util.c | 2 ++ - src/shutdown/umount.c | 6 ++++-- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/shared/fstab-util.c b/src/shared/fstab-util.c -index 55e76b6e16..015a608035 100644 ---- a/src/shared/fstab-util.c -+++ b/src/shared/fstab-util.c -@@ -66,6 +66,8 @@ bool fstab_is_extrinsic(const char *mount, const char *opts) { - /* Don't bother with the OS data itself */ - if (PATH_IN_SET(mount, - "/", -+ "/nix", -+ "/nix/store", - "/usr", - "/etc")) - return true; -diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c -index 1a9b99d761..04ef9af1ea 100644 ---- a/src/shutdown/umount.c -+++ b/src/shutdown/umount.c -@@ -170,8 +170,10 @@ int mount_points_list_get(const char *mountinfo, MountPoint **head) { - static bool nonunmountable_path(const char *path) { - assert(path); - -- return PATH_IN_SET(path, "/", "/usr") || -- path_startswith(path, "/run/initramfs"); -+ return PATH_IN_SET(path, "/", "/usr") -+ || path_equal(path, "/nix") -+ || path_equal(path, "/nix/store") -+ || path_startswith(path, "/run/initramfs"); - } - - static void log_umount_blockers(const char *mnt) { diff --git a/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch b/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch deleted file mode 100644 index 535ca3d86457..000000000000 --- a/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra <eelco.dolstra@logicblox.com> -Date: Wed, 16 Apr 2014 10:59:28 +0200 -Subject: [PATCH] Fix NixOS containers - -In NixOS containers, the init script is bind-mounted into the -container, so checking early whether it exists will fail. ---- - src/nspawn/nspawn.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 38196ef3d6..57d1750b00 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -5602,6 +5602,7 @@ static int run(int argc, char *argv[]) { - goto finish; - } - } else { -+#if 0 - _cleanup_free_ char *p = NULL; - - if (arg_pivot_root_new) -@@ -5618,6 +5619,7 @@ static int run(int argc, char *argv[]) { - "Directory %s doesn't look like it has an OS tree (/usr/ directory is missing). Refusing.", arg_directory); - goto finish; - } -+#endif - } - - } else { diff --git a/pkgs/os-specific/linux/systemd/0004-Add-some-NixOS-specific-unit-directories.patch b/pkgs/os-specific/linux/systemd/0004-Add-some-NixOS-specific-unit-directories.patch deleted file mode 100644 index d2232765f71d..000000000000 --- a/pkgs/os-specific/linux/systemd/0004-Add-some-NixOS-specific-unit-directories.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Raito Bezarius <masterancpp@gmail.com> -Date: Mon, 19 Jun 2023 02:13:42 +0200 -Subject: [PATCH] Add some NixOS-specific unit directories - -Look in `/nix/var/nix/profiles/default/lib/systemd/{system,user}` for -units provided by packages installed into the default profile via -`nix-env -iA nixos.$package`. - -Also, remove /usr and /lib as these don't exist on NixOS. - -Original-Author: Eelco Dolstra <eelco.dolstra@logicblox.com> ---- - src/basic/path-lookup.c | 18 ++---------------- - src/core/systemd.pc.in | 8 ++++---- - 2 files changed, 6 insertions(+), 20 deletions(-) - -diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c -index 4e3d59fc56..0d18b9a2d0 100644 ---- a/src/basic/path-lookup.c -+++ b/src/basic/path-lookup.c -@@ -92,11 +92,7 @@ int xdg_user_data_dir(char **ret, const char *suffix) { - } - - static const char* const user_data_unit_paths[] = { -- "/usr/local/lib/systemd/user", -- "/usr/local/share/systemd/user", - USER_DATA_UNIT_DIR, -- "/usr/lib/systemd/user", -- "/usr/share/systemd/user", - NULL - }; - -@@ -613,16 +609,13 @@ int lookup_paths_init( - persistent_config, - SYSTEM_CONFIG_UNIT_DIR, - "/etc/systemd/system", -+ "/nix/var/nix/profiles/default/lib/systemd/system", - STRV_IFNOTNULL(persistent_attached), - runtime_config, - "/run/systemd/system", - STRV_IFNOTNULL(runtime_attached), - STRV_IFNOTNULL(generator), -- "/usr/local/lib/systemd/system", - SYSTEM_DATA_UNIT_DIR, -- "/usr/lib/systemd/system", -- /* To be used ONLY for images which might be legacy split-usr */ -- STRV_IFNOTNULL(flags & LOOKUP_PATHS_SPLIT_USR ? "/lib/systemd/system" : NULL), - STRV_IFNOTNULL(generator_late)); - break; - -@@ -638,14 +631,11 @@ int lookup_paths_init( - persistent_config, - USER_CONFIG_UNIT_DIR, - "/etc/systemd/user", -+ "/nix/var/nix/profiles/default/lib/systemd/user", - runtime_config, - "/run/systemd/user", - STRV_IFNOTNULL(generator), -- "/usr/local/share/systemd/user", -- "/usr/share/systemd/user", -- "/usr/local/lib/systemd/user", - USER_DATA_UNIT_DIR, -- "/usr/lib/systemd/user", - STRV_IFNOTNULL(generator_late)); - break; - -@@ -805,7 +795,6 @@ char **generator_binary_paths(RuntimeScope scope) { - case RUNTIME_SCOPE_SYSTEM: - add = strv_new("/run/systemd/system-generators", - "/etc/systemd/system-generators", -- "/usr/local/lib/systemd/system-generators", - SYSTEM_GENERATOR_DIR); - break; - -@@ -813,7 +802,6 @@ char **generator_binary_paths(RuntimeScope scope) { - case RUNTIME_SCOPE_USER: - add = strv_new("/run/systemd/user-generators", - "/etc/systemd/user-generators", -- "/usr/local/lib/systemd/user-generators", - USER_GENERATOR_DIR); - break; - -@@ -852,14 +840,12 @@ char **env_generator_binary_paths(RuntimeScope runtime_scope) { - case RUNTIME_SCOPE_SYSTEM: - add = strv_new("/run/systemd/system-environment-generators", - "/etc/systemd/system-environment-generators", -- "/usr/local/lib/systemd/system-environment-generators", - SYSTEM_ENV_GENERATOR_DIR); - break; - - case RUNTIME_SCOPE_USER: - add = strv_new("/run/systemd/user-environment-generators", - "/etc/systemd/user-environment-generators", -- "/usr/local/lib/systemd/user-environment-generators", - USER_ENV_GENERATOR_DIR); - break; - -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index f3b85b0190..8ae544b495 100644 ---- a/src/core/systemd.pc.in -+++ b/src/core/systemd.pc.in -@@ -43,10 +43,10 @@ systemdsystemconfdir=${systemd_system_conf_dir} - systemd_user_conf_dir=${sysconfdir}/systemd/user - systemduserconfdir=${systemd_user_conf_dir} - --systemd_system_unit_path=${systemd_system_conf_dir}:/etc/systemd/system:/run/systemd/system:/usr/local/lib/systemd/system:${systemd_system_unit_dir}:/usr/lib/systemd/system:/lib/systemd/system -+systemd_system_unit_path=${systemd_system_conf_dir}:/etc/systemd/system:/nix/var/nix/profiles/default/lib/systemd/system:/run/systemd/system:${systemdsystemunitdir} - systemdsystemunitpath=${systemd_system_unit_path} - --systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/run/systemd/user:/usr/local/lib/systemd/user:/usr/local/share/systemd/user:${systemd_user_unit_dir}:/usr/lib/systemd/user:/usr/share/systemd/user -+systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/nix/var/nix/profiles/default/lib/systemd/user:/run/systemd/user:${systemduserunitdir} - systemduserunitpath=${systemd_user_unit_path} - - systemd_system_generator_dir=${prefix}/lib/systemd/system-generators -@@ -55,10 +55,10 @@ systemdsystemgeneratordir=${systemd_system_generator_dir} - systemd_user_generator_dir=${prefix}/lib/systemd/user-generators - systemdusergeneratordir=${systemd_user_generator_dir} - --systemd_system_generator_path=/run/systemd/system-generators:/etc/systemd/system-generators:/usr/local/lib/systemd/system-generators:${systemd_system_generator_dir} -+systemd_system_generator_path=/run/systemd/system-generators:/etc/systemd/system-generators:${systemd_system_generator_dir} - systemdsystemgeneratorpath=${systemd_system_generator_path} - --systemd_user_generator_path=/run/systemd/user-generators:/etc/systemd/user-generators:/usr/local/lib/systemd/user-generators:${systemd_user_generator_dir} -+systemd_user_generator_path=/run/systemd/user-generators:/etc/systemd/user-generators:${systemd_user_generator_dir} - systemdusergeneratorpath=${systemd_user_generator_path} - - systemd_sleep_dir=${prefix}/lib/systemd/system-sleep diff --git a/pkgs/os-specific/linux/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch b/pkgs/os-specific/linux/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch deleted file mode 100644 index a0bcc6afaa12..000000000000 --- a/pkgs/os-specific/linux/systemd/0005-Get-rid-of-a-useless-message-in-user-sessions.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Eelco Dolstra <eelco.dolstra@logicblox.com> -Date: Mon, 11 May 2015 15:39:38 +0200 -Subject: [PATCH] Get rid of a useless message in user sessions - -Namely lots of variants of - - Unit nix-var-nix-db.mount is bound to inactive unit dev-disk-by\x2dlabel-nixos.device. Stopping, too. - -in containers. ---- - src/core/manager.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index e61ebee253..22cc5cc843 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -1562,7 +1562,8 @@ static unsigned manager_dispatch_stop_when_bound_queue(Manager *m) { - if (!unit_is_bound_by_inactive(u, &culprit)) - continue; - -- log_unit_debug(u, "Unit is stopped because bound to inactive unit %s.", culprit->id); -+ if (u->type != UNIT_MOUNT || detect_container() <= 0) -+ log_unit_debug(u, "Unit is stopped because bound to inactive unit %s.", culprit->id); - - /* If stopping a unit fails continuously we might enter a stop loop here, hence stop acting on the - * service being unnecessary after a while. */ diff --git a/pkgs/os-specific/linux/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch b/pkgs/os-specific/linux/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch deleted file mode 100644 index b350e36bc5c2..000000000000 --- a/pkgs/os-specific/linux/systemd/0006-hostnamed-localed-timedated-disable-methods-that-cha.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Gabriel Ebner <gebner@gebner.org> -Date: Sun, 6 Dec 2015 14:26:36 +0100 -Subject: [PATCH] hostnamed, localed, timedated: disable methods that change - system settings. - ---- - src/hostname/hostnamed.c | 6 ++++++ - src/locale/localed.c | 9 +++++++++ - src/timedate/timedated.c | 10 ++++++++++ - 3 files changed, 25 insertions(+) - -diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c -index e1d53f2395..a224e6dadc 100644 ---- a/src/hostname/hostnamed.c -+++ b/src/hostname/hostnamed.c -@@ -1053,6 +1053,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_ - if (r < 0) - return r; - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - name = empty_to_null(name); - - context_read_etc_hostname(c); -@@ -1116,6 +1119,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess - if (r < 0) - return r; - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - name = empty_to_null(name); - - context_read_machine_info(c); -diff --git a/src/locale/localed.c b/src/locale/localed.c -index 5d96237fae..9af35cd29c 100644 ---- a/src/locale/localed.c -+++ b/src/locale/localed.c -@@ -229,6 +229,9 @@ static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *er - - use_localegen = locale_gen_check_available(); - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - /* If single locale without variable name is provided, then we assume it is LANG=. */ - if (strv_length(l) == 1 && !strchr(l[0], '=')) { - if (!locale_is_valid(l[0])) -@@ -347,6 +350,9 @@ static int method_set_vc_keyboard(sd_bus_message *m, void *userdata, sd_bus_erro - if (r < 0) - return bus_log_parse_error(r); - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - vc_context_empty_to_null(&in); - - r = vc_context_verify_and_warn(&in, LOG_ERR, error); -@@ -465,6 +471,9 @@ static int method_set_x11_keyboard(sd_bus_message *m, void *userdata, sd_bus_err - if (r < 0) - return bus_log_parse_error(r); - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - x11_context_empty_to_null(&in); - - r = x11_context_verify_and_warn(&in, LOG_ERR, error); -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index c7be30f563..50f8aa8675 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -659,6 +659,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error * - if (r < 0) - return r; - -+ if (getenv("NIXOS_STATIC_TIMEZONE")) -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing timezone via systemd is not supported when it is set in NixOS configuration."); -+ - if (!timezone_is_valid(z, LOG_DEBUG)) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid or not installed time zone '%s'", z); - -@@ -737,6 +741,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error - if (r < 0) - return r; - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - if (lrtc == c->local_rtc && !fix_system) - return sd_bus_reply_method_return(m, NULL); - -@@ -917,6 +924,9 @@ static int method_set_ntp(sd_bus_message *m, void *userdata, sd_bus_error *error - if (r < 0) - return r; - -+ return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED, -+ "Changing system settings via systemd is not supported on NixOS."); -+ - r = context_update_ntp_status(c, bus, m); - if (r < 0) - return r; diff --git a/pkgs/os-specific/linux/systemd/0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch b/pkgs/os-specific/linux/systemd/0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch deleted file mode 100644 index 30178675f7f9..000000000000 --- a/pkgs/os-specific/linux/systemd/0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nikolay Amiantov <ab@fmap.me> -Date: Tue, 11 Oct 2016 13:12:08 +0300 -Subject: [PATCH] Change /usr/share/zoneinfo to /etc/zoneinfo - -NixOS uses this path. ---- - man/localtime.xml | 4 ++-- - src/basic/time-util.c | 8 ++++---- - src/firstboot/firstboot.c | 2 +- - src/nspawn/nspawn.c | 4 ++-- - src/timedate/timedated.c | 8 ++++---- - 5 files changed, 13 insertions(+), 13 deletions(-) - -diff --git a/man/localtime.xml b/man/localtime.xml -index e486474c44..5f373d0723 100644 ---- a/man/localtime.xml -+++ b/man/localtime.xml -@@ -20,7 +20,7 @@ - </refnamediv> - - <refsynopsisdiv> -- <para><filename>/etc/localtime</filename> -> <filename>../usr/share/zoneinfo/…</filename></para> -+ <para><filename>/etc/localtime</filename> -> <filename>zoneinfo/…</filename></para> - </refsynopsisdiv> - - <refsect1> -@@ -30,7 +30,7 @@ - system-wide timezone of the local system that is used by - applications for presentation to the user. It should be an - absolute or relative symbolic link pointing to -- <filename>/usr/share/zoneinfo/</filename>, followed by a timezone -+ <filename>/etc/zoneinfo/</filename>, followed by a timezone - identifier such as <literal>Europe/Berlin</literal> or - <literal>Etc/UTC</literal>. The resulting link should lead to the - corresponding binary -diff --git a/src/basic/time-util.c b/src/basic/time-util.c -index f9014dc560..3ee0363369 100644 ---- a/src/basic/time-util.c -+++ b/src/basic/time-util.c -@@ -1412,7 +1412,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) { - - assert(ret); - -- f = fopen("/usr/share/zoneinfo/zone1970.tab", "re"); -+ f = fopen("/etc/zoneinfo/zone1970.tab", "re"); - if (!f) - return -errno; - -@@ -1453,7 +1453,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) { - - assert(ret); - -- f = fopen("/usr/share/zoneinfo/tzdata.zi", "re"); -+ f = fopen("/etc/zoneinfo/tzdata.zi", "re"); - if (!f) - return -errno; - -@@ -1565,7 +1565,7 @@ int verify_timezone(const char *name, int log_level) { - if (p - name >= PATH_MAX) - return -ENAMETOOLONG; - -- t = strjoina("/usr/share/zoneinfo/", name); -+ t = strjoina("/etc/zoneinfo/", name); - - fd = open(t, O_RDONLY|O_CLOEXEC); - if (fd < 0) -@@ -1625,7 +1625,7 @@ int get_timezone(char **ret) { - if (r < 0) - return r; /* returns EINVAL if not a symlink */ - -- e = PATH_STARTSWITH_SET(t, "/usr/share/zoneinfo/", "../usr/share/zoneinfo/"); -+ e = PATH_STARTSWITH_SET(t, "/etc/zoneinfo/", "../etc/zoneinfo/"); - if (!e) - return -EINVAL; - -diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c -index f77a5f6266..63bac85b29 100644 ---- a/src/firstboot/firstboot.c -+++ b/src/firstboot/firstboot.c -@@ -632,7 +632,7 @@ static int process_timezone(int rfd) { - if (isempty(arg_timezone)) - return 0; - -- e = strjoina("../usr/share/zoneinfo/", arg_timezone); -+ e = strjoina("zoneinfo/", arg_timezone); - - r = symlinkat_atomic_full(e, pfd, f, /* make_relative= */ false); - if (r < 0) -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index e48ebe8342..41796f3358 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -1845,8 +1845,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid - static const char *timezone_from_path(const char *path) { - return PATH_STARTSWITH_SET( - path, -- "../usr/share/zoneinfo/", -- "/usr/share/zoneinfo/"); -+ "../etc/zoneinfo/", -+ "/etc/zoneinfo/"); - } - - static bool etc_writable(void) { -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index 50f8aa8675..aff156ab42 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -276,7 +276,7 @@ static int context_read_data(Context *c) { - - r = get_timezone(&t); - if (r == -EINVAL) -- log_warning_errno(r, "/etc/localtime should be a symbolic link to a time zone data file in /usr/share/zoneinfo/."); -+ log_warning_errno(r, "/etc/localtime should be a symbolic link to a time zone data file in /etc/zoneinfo/."); - else if (r < 0) - log_warning_errno(r, "Failed to get target of /etc/localtime: %m"); - -@@ -300,7 +300,7 @@ static int context_write_data_timezone(Context *c) { - - if (isempty(c->zone) || streq(c->zone, "UTC")) { - -- if (access("/usr/share/zoneinfo/UTC", F_OK) < 0) { -+ if (access("/etc/zoneinfo/UTC", F_OK) < 0) { - - if (unlink("/etc/localtime") < 0 && errno != ENOENT) - return -errno; -@@ -308,9 +308,9 @@ static int context_write_data_timezone(Context *c) { - return 0; - } - -- source = "../usr/share/zoneinfo/UTC"; -+ source = "../etc/zoneinfo/UTC"; - } else { -- p = path_join("../usr/share/zoneinfo", c->zone); -+ p = path_join("../etc/zoneinfo", c->zone); - if (!p) - return -ENOMEM; - diff --git a/pkgs/os-specific/linux/systemd/0008-localectl-use-etc-X11-xkb-for-list-x11.patch b/pkgs/os-specific/linux/systemd/0008-localectl-use-etc-X11-xkb-for-list-x11.patch deleted file mode 100644 index fe0dca1863dd..000000000000 --- a/pkgs/os-specific/linux/systemd/0008-localectl-use-etc-X11-xkb-for-list-x11.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Imuli <i@imu.li> -Date: Wed, 19 Oct 2016 08:46:47 -0400 -Subject: [PATCH] localectl: use /etc/X11/xkb for list-x11-* - -NixOS has an option to link the xkb data files to /etc/X11, but not to -/usr/share/X11. ---- - src/locale/localectl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/locale/localectl.c b/src/locale/localectl.c -index 32354027f1..1d231f1afc 100644 ---- a/src/locale/localectl.c -+++ b/src/locale/localectl.c -@@ -297,7 +297,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) { - } state = NONE, look_for; - int r; - -- f = fopen("/usr/share/X11/xkb/rules/base.lst", "re"); -+ f = fopen("/etc/X11/xkb/rules/base.lst", "re"); - if (!f) - return log_error_errno(errno, "Failed to open keyboard mapping list. %m"); - diff --git a/pkgs/os-specific/linux/systemd/0009-add-rootprefix-to-lookup-dir-paths.patch b/pkgs/os-specific/linux/systemd/0009-add-rootprefix-to-lookup-dir-paths.patch deleted file mode 100644 index 15fe403c28fc..000000000000 --- a/pkgs/os-specific/linux/systemd/0009-add-rootprefix-to-lookup-dir-paths.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Andreas Rammhold <andreas@rammhold.de> -Date: Thu, 9 May 2019 11:15:22 +0200 -Subject: [PATCH] add rootprefix to lookup dir paths - -systemd does not longer use the UDEVLIBEXEC directory as root for -discovery default udev rules. By adding `$out/lib` to the lookup paths -we should again be able to discover the udev rules amongst other default -files that I might have missed. ---- - src/basic/constants.h | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/basic/constants.h b/src/basic/constants.h -index 6bb5f3c281..678d13737d 100644 ---- a/src/basic/constants.h -+++ b/src/basic/constants.h -@@ -65,13 +65,15 @@ - "/etc/" n "\0" \ - "/run/" n "\0" \ - "/usr/local/lib/" n "\0" \ -- "/usr/lib/" n "\0" -+ "/usr/lib/" n "\0" \ -+ PREFIX "/lib/" n "\0" - - #define CONF_PATHS_USR(n) \ - "/etc/" n, \ - "/run/" n, \ - "/usr/local/lib/" n, \ -- "/usr/lib/" n -+ "/usr/lib/" n, \ -+ PREFIX "/lib/" n - - #define CONF_PATHS(n) \ - CONF_PATHS_USR(n) diff --git a/pkgs/os-specific/linux/systemd/0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch b/pkgs/os-specific/linux/systemd/0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch deleted file mode 100644 index 6f0b81a32aa7..000000000000 --- a/pkgs/os-specific/linux/systemd/0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nikolay Amiantov <ab@fmap.me> -Date: Thu, 25 Jul 2019 20:45:55 +0300 -Subject: [PATCH] systemd-shutdown: execute scripts in - /etc/systemd/system-shutdown - -This is needed for NixOS to use such scripts as systemd directory is immutable. ---- - src/shutdown/shutdown.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c -index b976b7d8cf..b1c02df6fd 100644 ---- a/src/shutdown/shutdown.c -+++ b/src/shutdown/shutdown.c -@@ -336,6 +336,7 @@ static void init_watchdog(void) { - int main(int argc, char *argv[]) { - static const char* const dirs[] = { - SYSTEM_SHUTDOWN_PATH, -+ "/etc/systemd/system-shutdown", - NULL - }; - _cleanup_free_ char *cgroup = NULL; diff --git a/pkgs/os-specific/linux/systemd/0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch b/pkgs/os-specific/linux/systemd/0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch deleted file mode 100644 index a5ed574afa24..000000000000 --- a/pkgs/os-specific/linux/systemd/0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nikolay Amiantov <ab@fmap.me> -Date: Thu, 25 Jul 2019 20:46:58 +0300 -Subject: [PATCH] systemd-sleep: execute scripts in /etc/systemd/system-sleep - -This is needed for NixOS to use such scripts as systemd directory is immutable. ---- - src/sleep/sleep.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c -index 21af3e9e52..6d096e3c78 100644 ---- a/src/sleep/sleep.c -+++ b/src/sleep/sleep.c -@@ -215,6 +215,7 @@ static int execute( - }; - static const char* const dirs[] = { - SYSTEM_SLEEP_PATH, -+ "/etc/systemd/system-sleep", - NULL - }; - diff --git a/pkgs/os-specific/linux/systemd/0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch b/pkgs/os-specific/linux/systemd/0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch deleted file mode 100644 index 55e556288c08..000000000000 --- a/pkgs/os-specific/linux/systemd/0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Florian Klink <flokli@flokli.de> -Date: Sun, 8 Mar 2020 01:05:54 +0100 -Subject: [PATCH] path-util.h: add placeholder for DEFAULT_PATH_NORMAL - -This will be the $PATH used to lookup ExecStart= etc. options, which -systemd itself uses extensively. ---- - src/basic/path-util.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/basic/path-util.h b/src/basic/path-util.h -index 6d943e967f..d4380aa7e3 100644 ---- a/src/basic/path-util.h -+++ b/src/basic/path-util.h -@@ -25,9 +25,9 @@ - # define PATH_SBIN_BIN_NULSTR(x) PATH_NORMAL_SBIN_BIN_NULSTR(x) - #endif - --#define DEFAULT_PATH PATH_SBIN_BIN("/usr/local/") ":" PATH_SBIN_BIN("/usr/") --#define DEFAULT_PATH_NULSTR PATH_SBIN_BIN_NULSTR("/usr/local/") PATH_SBIN_BIN_NULSTR("/usr/") --#define DEFAULT_PATH_COMPAT PATH_SPLIT_SBIN_BIN("/usr/local/") ":" PATH_SPLIT_SBIN_BIN("/usr/") ":" PATH_SPLIT_SBIN_BIN("/") -+#define DEFAULT_PATH "@defaultPathNormal@" -+#define DEFAULT_PATH_NULSTR "@defaultPathNormal@\0" -+#define DEFAULT_PATH_COMPAT DEFAULT_PATH - - #ifndef DEFAULT_USER_PATH - # define DEFAULT_USER_PATH DEFAULT_PATH diff --git a/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch b/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch deleted file mode 100644 index 8bccf5539058..000000000000 --- a/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Yuriy Taraday <yorik.sar@gmail.com> -Date: Fri, 17 Jun 2022 12:45:10 +0000 -Subject: [PATCH] inherit systemd environment when calling generators. - -Systemd generators need access to the environment configured in -stage-2-init.sh since it schedules fsck and mkfs executions based on -being able to find an appropriate binary for the target filesystem. - -With this commit I am altering the systemd behaviour since upstream -tries to gather environments with that they call -"environment-generators" and then seems to pass that on to all the other -executables that are being called from managers. ---- - src/core/manager.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/core/manager.c b/src/core/manager.c -index 22cc5cc843..5dc7d4504f 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -3914,9 +3914,17 @@ static int build_generator_environment(Manager *m, char ***ret) { - * adjust generated units to that. Let's pass down some bits of information that are easy for us to - * determine (but a bit harder for generator scripts to determine), as environment variables. */ - -+ // On NixOS we must propagate PATH to generators so they are -+ // able to find binaries such as `fsck.${fstype}` and -+ // `mkfs.${fstype}`. That is why we ignore transient_environment that -+ // overrides the PATH variable. This propagates systemd's -+ // environment (e.g. PATH) that was setup -+ // before calling systemd from stage-2-init.sh. -+#if 0 - nl = strv_copy(m->transient_environment); - if (!nl) - return -ENOMEM; -+#endif - - r = strv_env_assign(&nl, "SYSTEMD_SCOPE", runtime_scope_to_string(m->runtime_scope)); - if (r < 0) diff --git a/pkgs/os-specific/linux/systemd/0014-core-don-t-taint-on-unmerged-usr.patch b/pkgs/os-specific/linux/systemd/0014-core-don-t-taint-on-unmerged-usr.patch deleted file mode 100644 index 8b862918500e..000000000000 --- a/pkgs/os-specific/linux/systemd/0014-core-don-t-taint-on-unmerged-usr.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: oxalica <oxalicc@pm.me> -Date: Tue, 4 Oct 2022 09:18:07 +0800 -Subject: [PATCH] core: don't taint on unmerged /usr - -NixOS has very different approach towards /bin and /sbin - they don't -really exist (except for /bin/sh and /usr/bin/env, because these are used -heavily in shebangs around the world). The concept of merged or unmerged -usr doesn't really apply here at all, it's neither of the two. -Users don't execute things from /bin or /sbin, there's nothing else in -there. In all cases, systemd doesn't look things up from /usr/bin or /bin, -so showing the taint isn't really helpful. - -See also: https://github.com/systemd/systemd/issues/24191 ---- - src/core/manager.c | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index 5dc7d4504f..6208c9aa31 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -4800,9 +4800,6 @@ char* manager_taint_string(const Manager *m) { - const char* stage[12] = {}; - size_t n = 0; - -- _cleanup_free_ char *usrbin = NULL; -- if (readlink_malloc("/bin", &usrbin) < 0 || !PATH_IN_SET(usrbin, "usr/bin", "/usr/bin")) -- stage[n++] = "unmerged-usr"; - - if (access("/proc/cgroups", F_OK) < 0) - stage[n++] = "cgroups-missing"; diff --git a/pkgs/os-specific/linux/systemd/0015-tpm2_context_init-fix-driver-name-checking.patch b/pkgs/os-specific/linux/systemd/0015-tpm2_context_init-fix-driver-name-checking.patch deleted file mode 100644 index 768f57e1335b..000000000000 --- a/pkgs/os-specific/linux/systemd/0015-tpm2_context_init-fix-driver-name-checking.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Nick Cao <nickcao@nichi.co> -Date: Sun, 15 Jan 2023 20:15:55 +0800 -Subject: [PATCH] tpm2_context_init: fix driver name checking - -https://github.com/systemd/systemd/commit/542dbc623e introduced -additional checks for tpm2 driver names, namely ensuring the driver -name, when concated with "libtss2-tcti-" and ".so.0", generates a valid -filename (with no '/' inside). - -For example, if the driver is name "device", the line - fn = strjoina("libtss2-tcti-", driver, ".so.0") -would yield "libtss2-tcti-device.so.0", passing the check. And the -filename is then passed to dlopen for loading the driver. - -Our current approach for systemd to correctly locate these dynamically -loaded libraries is to patch the filenames to include their absolute -path. Thus the line mentioned above is patched into - fn = strjoina("/nix/store/xxxxxxx-tpm2-tss-3.2.0/lib/libtss2-tcti-", driver, ".so.0") -yielding "/nix/store/xxxxxxx-tpm2-tss-3.2.0/lib/libtss2-tcti-device.so.0", -tripping the check. - -This patch relaxes the check to also accept absolute paths, by replacing -filename_is_valid with path_is_valid. ---- - src/shared/tpm2-util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c -index 5e07b88a89..8dd7315009 100644 ---- a/src/shared/tpm2-util.c -+++ b/src/shared/tpm2-util.c -@@ -654,7 +654,7 @@ int tpm2_context_new(const char *device, Tpm2Context **ret_context) { - fn = strjoina("libtss2-tcti-", driver, ".so.0"); - - /* Better safe than sorry, let's refuse strings that cannot possibly be valid driver early, before going to disk. */ -- if (!filename_is_valid(fn)) -+ if (!path_is_valid(fn)) - return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "TPM2 driver name '%s' not valid, refusing.", driver); - - context->tcti_dl = dlopen(fn, RTLD_NOW); diff --git a/pkgs/os-specific/linux/systemd/0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch b/pkgs/os-specific/linux/systemd/0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch deleted file mode 100644 index 96cd420221e5..000000000000 --- a/pkgs/os-specific/linux/systemd/0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Maximilian Bosch <maximilian@mbosch.me> -Date: Fri, 1 Sep 2023 09:57:02 +0200 -Subject: [PATCH] systemctl-edit: suggest `systemdctl edit --runtime` on system - scope - -This is a NixOS-specific change. When trying to modify a unit with -`systemctl edit` on NixOS, it'll fail with "Read-only file system": - - $ systemctl edit libvirtd - Failed to open "/etc/systemd/system/libvirtd.service.d/.#override.conffa9825a0c9a249eb": Read-only file system - -This is because `/etc/systemd/system` is a symlink into the store. In -fact, I'd consider this a feature rather than a bug since this ensures I -don't introduce state imperatively. - -However, people wrongly assume that it's not possible to edit units -ad-hoc and re-deploy their system for quick&dirty debugging where this -would be absolutely fine (and doable with `--runtime` which adds a -transient and non-persistent unit override in `/run`). - -To make sure that people learn about it quicker, this patch -throws an error which suggests using `--runtime` when running -`systemctl edit` on the system scope. - -For the user scope this isn't needed because user-level unit overrides -are written into `$XDG_CONFIG_HOME/systemd/user`. ---- - src/systemctl/systemctl-edit.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/systemctl/systemctl-edit.c b/src/systemctl/systemctl-edit.c -index 367afa20f7..5777154d01 100644 ---- a/src/systemctl/systemctl-edit.c -+++ b/src/systemctl/systemctl-edit.c -@@ -322,6 +322,9 @@ int verb_edit(int argc, char *argv[], void *userdata) { - sd_bus *bus; - int r; - -+ if (!arg_runtime && arg_runtime_scope == RUNTIME_SCOPE_SYSTEM) -+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "The unit-directory '/etc/systemd/system' is read-only on NixOS, so it's not possible to edit system-units directly. Use 'systemctl edit --runtime' instead."); -+ - if (!on_tty()) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Cannot edit units if not on a tty."); - diff --git a/pkgs/os-specific/linux/systemd/0017-meson.build-do-not-create-systemdstatedir.patch b/pkgs/os-specific/linux/systemd/0017-meson.build-do-not-create-systemdstatedir.patch deleted file mode 100644 index fd38aa9a2850..000000000000 --- a/pkgs/os-specific/linux/systemd/0017-meson.build-do-not-create-systemdstatedir.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: nikstur <nikstur@outlook.com> -Date: Mon, 6 Nov 2023 22:51:38 +0100 -Subject: [PATCH] meson.build: do not create systemdstatedir - ---- - meson.build | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 7419e2b0b0..c82a527976 100644 ---- a/meson.build -+++ b/meson.build -@@ -2497,7 +2497,6 @@ install_data('LICENSE.GPL2', - install_subdir('LICENSES', - install_dir : docdir) - --install_emptydir(systemdstatedir) - - ############################################################ - diff --git a/pkgs/os-specific/linux/systemd/0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch b/pkgs/os-specific/linux/systemd/0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch deleted file mode 100644 index 68ae22644835..000000000000 --- a/pkgs/os-specific/linux/systemd/0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7a27556920fe1feefd17096841c8f3ca1294a1b3 Mon Sep 17 00:00:00 2001 -From: Yuri Nesterov <yuriy.nesterov@unikie.com> -Date: Wed, 21 Jun 2023 17:17:38 +0300 -Subject: [PATCH] timesyncd: disable NSCD when DNSSEC validation is disabled - -Systemd-timesyncd sets SYSTEMD_NSS_RESOLVE_VALIDATE=0 in the unit file -to disable DNSSEC validation but it doesn't work when NSCD is used in -the system. This patch disabes NSCD in systemd-timesyncd when -SYSTEMD_NSS_RESOLVE_VALIDATE is set to 0 so that it uses NSS libraries -directly. ---- - src/timesync/timesyncd.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/src/timesync/timesyncd.c b/src/timesync/timesyncd.c -index 1d8ebecc91..2b0ae361ff 100644 ---- a/src/timesync/timesyncd.c -+++ b/src/timesync/timesyncd.c -@@ -21,6 +21,11 @@ - #include "timesyncd-conf.h" - #include "timesyncd-manager.h" - #include "user-util.h" -+#include "env-util.h" -+ -+struct traced_file; -+extern void __nss_disable_nscd(void (*)(size_t, struct traced_file *)); -+static void register_traced_file(size_t dbidx, struct traced_file *finfo) {} - - static int advance_tstamp(int fd, const struct stat *st) { - assert_se(fd >= 0); -@@ -198,6 +203,12 @@ static int run(int argc, char *argv[]) { - if (r < 0) - return log_error_errno(r, "Failed to parse fallback server strings: %m"); - -+ r = getenv_bool_secure("SYSTEMD_NSS_RESOLVE_VALIDATE"); -+ if (r == 0) { -+ log_info("Disabling NSCD because DNSSEC validation is turned off"); -+ __nss_disable_nscd(register_traced_file); -+ } -+ - log_debug("systemd-timesyncd running as pid " PID_FMT, getpid_cached()); - - notify_message = notify_start("READY=1\n" --- -2.34.1 - diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix deleted file mode 100644 index 9cdc5dcd9d44..000000000000 --- a/pkgs/os-specific/linux/systemd/default.nix +++ /dev/null @@ -1,932 +0,0 @@ -# NOTE: Make sure to (re-)format this file on changes with `nixpkgs-fmt`! - -{ stdenv -, lib -, nixosTests -, pkgsCross -, fetchFromGitHub -, fetchpatch -, fetchzip -, buildPackages -, makeBinaryWrapper -, ninja -, meson -, m4 -, pkg-config -, coreutils -, gperf -, getent -, glibcLocales - - # glib is only used during tests (test-bus-gvariant, test-bus-marshal) -, glib -, gettext -, python3Packages - - # Mandatory dependencies -, libcap -, util-linux -, kbd -, kmod -, libxcrypt - - # Optional dependencies -, pam -, cryptsetup -, audit -, acl -, lz4 -, libgcrypt -, libgpg-error -, libidn2 -, curl -, gnutar -, gnupg -, zlib -, xz -, zstd -, tpm2-tss -, libuuid -, libapparmor -, intltool -, bzip2 -, pcre2 -, elfutils -, linuxHeaders ? stdenv.cc.libc.linuxHeaders -, gnutls -, iptables -, withSelinux ? false -, libselinux -, withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp -, libseccomp -, withKexectools ? lib.meta.availableOn stdenv.hostPlatform kexec-tools -, kexec-tools -, bashInteractive -, bash -, libmicrohttpd -, libfido2 -, p11-kit -, libpwquality -, qrencode - - # the (optional) BPF feature requires bpftool, libbpf, clang and llvm-strip to - # be available during build time. - # Only libbpf should be a runtime dependency. - # Note: llvmPackages is explicitly taken from buildPackages instead of relying - # on splicing. Splicing will evaluate the adjacent (pkgsHostTarget) llvmPackages - # which is sometimes problematic: llvmPackages.clang looks at targetPackages.stdenv.cc - # which, in the unfortunate case of pkgsCross.ghcjs, `throw`s. If we - # explicitly take buildPackages.llvmPackages, this is no problem because - # `buildPackages.targetPackages.stdenv.cc == stdenv.cc` relative to - # us. Working around this is important, because systemd is in the dependency - # closure of GHC via emscripten and jdk. -, bpftools -, libbpf - - # Needed to produce a ukify that works for cross compiling UKIs. -, targetPackages - -, withAcl ? true -, withAnalyze ? true -, withApparmor ? true -, withAudit ? true - # compiles systemd-boot, assumes EFI is available. -, withBootloader ? withEfi - && !stdenv.hostPlatform.isMusl - # "Unknown 64-bit data model" - && !stdenv.hostPlatform.isRiscV32 - # adds bzip2, lz4, xz and zstd -, withCompression ? true -, withCoredump ? true -, withCryptsetup ? true -, withRepart ? true -, withDocumentation ? true -, withEfi ? stdenv.hostPlatform.isEfi -, withFido2 ? true - # conflicts with the NixOS /etc management -, withFirstboot ? false -, withHomed ? !stdenv.hostPlatform.isMusl -, withHostnamed ? true -, withHwdb ? true -, withImportd ? !stdenv.hostPlatform.isMusl -, withIptables ? true -, withKmod ? true -, withLibBPF ? lib.versionAtLeast buildPackages.llvmPackages.clang.version "10.0" - # assumes hard floats - && (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") - # see https://github.com/NixOS/nixpkgs/pull/194149#issuecomment-1266642211 - && !stdenv.hostPlatform.isMips64 - # can't find gnu/stubs-32.h - && (stdenv.hostPlatform.isPower64 -> stdenv.hostPlatform.isBigEndian) - # https://reviews.llvm.org/D43106#1019077 - && (stdenv.hostPlatform.isRiscV32 -> stdenv.cc.isClang) - # buildPackages.targetPackages.llvmPackages is the same as llvmPackages, - # but we do it this way to avoid taking llvmPackages as an input, and - # risking making it too easy to ignore the above comment about llvmPackages. - && lib.meta.availableOn stdenv.hostPlatform buildPackages.targetPackages.llvmPackages.compiler-rt -, withLibidn2 ? true -, withLocaled ? true -, withLogind ? true -, withMachined ? true -, withNetworkd ? true -, withNss ? !stdenv.hostPlatform.isMusl -, withOomd ? true -, withPam ? true -, withPasswordQuality ? true -, withPCRE2 ? true -, withPolkit ? true -, withPortabled ? !stdenv.hostPlatform.isMusl -, withQrencode ? true -, withRemote ? !stdenv.hostPlatform.isMusl -, withResolved ? true -, withShellCompletions ? true -, withSysusers ? true -, withSysupdate ? true -, withTimedated ? true -, withTimesyncd ? true -, withTpm2Tss ? true - # adds python to closure which is too much by default -, withUkify ? false -, withUserDb ? true -, withUtmp ? !stdenv.hostPlatform.isMusl -, withVmspawn ? true - # kernel-install shouldn't usually be used on NixOS, but can be useful, e.g. for - # building disk images for non-NixOS systems. To save users from trying to use it - # on their live NixOS system, we disable it by default. -, withKernelInstall ? false - # tests assume too much system access for them to be feasible for us right now -, withTests ? false - # build only libudev and libsystemd -, buildLibsOnly ? false - - # yes, pname is an argument here -, pname ? "systemd" - -, libxslt -, docbook_xsl -, docbook_xml_dtd_42 -, docbook_xml_dtd_45 -, withLogTrace ? false -}: - -assert withImportd -> withCompression; -assert withCoredump -> withCompression; -assert withHomed -> withCryptsetup; -assert withHomed -> withPam; -assert withUkify -> (withEfi && withBootloader); -assert withRepart -> withCryptsetup; -assert withBootloader -> withEfi; - -let - wantCurl = withRemote || withImportd; - wantGcrypt = withResolved || withImportd; - version = "255.4"; - - # Use the command below to update `releaseTimestamp` on every (major) version - # change. More details in the commentary at mesonFlags. - # command: - # $ curl -s https://api.github.com/repos/systemd/systemd/releases/latest | \ - # jq '.created_at|strptime("%Y-%m-%dT%H:%M:%SZ")|mktime' - releaseTimestamp = "1701895110"; -in -stdenv.mkDerivation (finalAttrs: { - inherit pname version; - - # We use systemd/systemd-stable for src, and ship NixOS-specific patches inside nixpkgs directly - # This has proven to be less error-prone than the previous systemd fork. - src = fetchFromGitHub { - owner = "systemd"; - repo = "systemd-stable"; - rev = "v${version}"; - hash = "sha256-P1mKq+ythrv8MU7y2CuNtEx6qCDacugzfsPRZL+NPys="; - }; - - # On major changes, or when otherwise required, you *must* : - # 1. reformat the patches, - # 2. `git am path/to/00*.patch` them into a systemd worktree, - # 3. rebase to the more recent systemd version, - # 4. and export the patches again via - # `git -c format.signoff=false format-patch v${version} --no-numbered --zero-commit --no-signature`. - # Use `find . -name "*.patch" | sort` to get an up-to-date listing of all - # patches - patches = [ - ./0001-Start-device-units-for-uninitialised-encrypted-devic.patch - ./0002-Don-t-try-to-unmount-nix-or-nix-store.patch - ./0003-Fix-NixOS-containers.patch - ./0004-Add-some-NixOS-specific-unit-directories.patch - ./0005-Get-rid-of-a-useless-message-in-user-sessions.patch - ./0006-hostnamed-localed-timedated-disable-methods-that-cha.patch - ./0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch - ./0008-localectl-use-etc-X11-xkb-for-list-x11.patch - ./0009-add-rootprefix-to-lookup-dir-paths.patch - ./0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch - ./0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch - ./0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch - ./0013-inherit-systemd-environment-when-calling-generators.patch - ./0014-core-don-t-taint-on-unmerged-usr.patch - ./0015-tpm2_context_init-fix-driver-name-checking.patch - ./0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch - ./0017-meson.build-do-not-create-systemdstatedir.patch - ] ++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu) [ - ./0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch - ] ++ lib.optional (stdenv.hostPlatform.isPower || stdenv.hostPlatform.isRiscV || stdenv.hostPlatform.isMips) [ - # Fixed upstream and included in the main and stable branches. Can be dropped - # when bumping to >= v255.5. - # https://github.com/systemd/systemd/issues/30448 - # https://github.com/NixOS/nixpkgs/pull/282607 - (fetchpatch { - url = "https://github.com/systemd/systemd/commit/8040fa55a1cbc34dede3205a902095ecd26c21e3.patch"; - sha256 = "0c6z7bsndbkb8m130jnjpsl138sfv3q171726n5vkyl2n9ihnavk"; - }) - ] ++ lib.optional stdenv.hostPlatform.isMusl ( - let - oe-core = fetchzip { - url = "https://git.openembedded.org/openembedded-core/snapshot/openembedded-core-6fdf03bd950e55ef7881041606f6e76141033716.tar.gz"; - sha256 = "/+9aJdOxBY8Y4vJPftOCxmyK8L2nvR82KmJxil1a2aY="; - }; - musl-patches = oe-core + "/meta/recipes-core/systemd/systemd"; - in - [ - (musl-patches + "/0017-Adjust-for-musl-headers.patch") - (musl-patches + "/0016-pass-correct-parameters-to-getdents64.patch") - (musl-patches + "/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch") - (musl-patches + "/0001-missing_type.h-add-comparison_fn_t.patch") - (musl-patches + "/0002-add-fallback-parse_printf_format-implementation.patch") - (musl-patches + "/0003-src-basic-missing.h-check-for-missing-strndupa.patch") - (musl-patches + "/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch") - (musl-patches + "/0005-add-missing-FTW_-macros-for-musl.patch") - (musl-patches + "/0006-Use-uintmax_t-for-handling-rlim_t.patch") - (musl-patches + "/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch") - (musl-patches + "/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch") - (musl-patches + "/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch") - (musl-patches + "/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch") - (musl-patches + "/0011-avoid-redefinition-of-prctl_mm_map-structure.patch") - (musl-patches + "/0012-do-not-disable-buffer-in-writing-files.patch") - (musl-patches + "/0013-Handle-__cpu_mask-usage.patch") - (musl-patches + "/0014-Handle-missing-gshadow.patch") - (musl-patches + "/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch") - (musl-patches + "/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch") - (musl-patches + "/0021-shared-Do-not-use-malloc_info-on-musl.patch") - (musl-patches + "/0022-avoid-missing-LOCK_EX-declaration.patch") - ] - ); - - postPatch = '' - substituteInPlace src/basic/path-util.h --replace "@defaultPathNormal@" "${placeholder "out"}/bin/" - '' + lib.optionalString withLibBPF '' - substituteInPlace meson.build \ - --replace "find_program('clang'" "find_program('${stdenv.cc.targetPrefix}clang'" - '' + lib.optionalString withUkify '' - substituteInPlace src/ukify/ukify.py \ - --replace \ - "'readelf'" \ - "'${targetPackages.stdenv.cc.bintools.targetPrefix}readelf'" \ - --replace \ - "/usr/lib/systemd/boot/efi" \ - "$out/lib/systemd/boot/efi" - '' + ( - let - # The following patches references to dynamic libraries to ensure that all - # the features that are implemented via dlopen(3) are available (or - # explicitly deactivated) by pointing dlopen to the absolute store path - # instead of relying on the linkers runtime lookup code. - # - # All of the shared library references have to be handled. When new ones - # are introduced by upstream (or one of our patches) they must be - # explicitly declared, otherwise the build will fail. - # - # As of systemd version 247 we've seen a few errors like `libpcre2.… not - # found` when using e.g. --grep with journalctl. Those errors should - # become less unexpected now. - # - # There are generally two classes of dlopen(3) calls. Those that we want - # to support and those that should be deactivated / unsupported. This - # change enforces that we handle all dlopen calls explicitly. Meaning: - # There is not a single dlopen call in the source code tree that we did - # not explicitly handle. - # - # In order to do this we introduced a list of attributes that maps from - # shared object name to the package that contains them. The package can be - # null meaning the reference should be nuked and the shared object will - # never be loadable during runtime (because it points at an invalid store - # path location). - # - # To get a list of dynamically loaded libraries issue something like - # `grep -ri '"lib[a-zA-Z0-9-]*\.so[\.0-9a-zA-z]*"'' $src` - # and update the list below. - dlopenLibs = - let - opt = condition: pkg: if condition then pkg else null; - in - [ - # bpf compilation support. We use libbpf 1 now. - { name = "libbpf.so.1"; pkg = opt withLibBPF libbpf; } - { name = "libbpf.so.0"; pkg = null; } - - # We did never provide support for libxkbcommon - { name = "libxkbcommon.so.0"; pkg = null; } - - # qrencode - { name = "libqrencode.so.4"; pkg = opt withQrencode qrencode; } - { name = "libqrencode.so.3"; pkg = null; } - - # Password quality - # We currently do not package passwdqc, only libpwquality. - { name = "libpwquality.so.1"; pkg = opt withPasswordQuality libpwquality; } - { name = "libpasswdqc.so.1"; pkg = null; } - - # Only include cryptsetup if it is enabled. We might not be able to - # provide it during "bootstrap" in e.g. the minimal systemd build as - # cryptsetup has udev (aka systemd) in it's dependencies. - { name = "libcryptsetup.so.12"; pkg = opt withCryptsetup cryptsetup; } - - # We are using libidn2 so we only provide that and ignore the others. - # Systemd does this decision during configure time and uses ifdef's to - # enable specific branches. We can safely ignore (nuke) the libidn "v1" - # libraries. - { name = "libidn2.so.0"; pkg = opt withLibidn2 libidn2; } - { name = "libidn.so.12"; pkg = null; } - { name = "libidn.so.11"; pkg = null; } - - # journalctl --grep requires libpcre so let's provide it - { name = "libpcre2-8.so.0"; pkg = pcre2; } - - # Support for TPM2 in systemd-cryptsetup, systemd-repart and systemd-cryptenroll - { name = "libtss2-esys.so.0"; pkg = opt withTpm2Tss tpm2-tss; } - { name = "libtss2-rc.so.0"; pkg = opt withTpm2Tss tpm2-tss; } - { name = "libtss2-mu.so.0"; pkg = opt withTpm2Tss tpm2-tss; } - { name = "libtss2-tcti-"; pkg = opt withTpm2Tss tpm2-tss; } - { name = "libfido2.so.1"; pkg = opt withFido2 libfido2; } - - # inspect-elf support - { name = "libelf.so.1"; pkg = opt withCoredump elfutils; } - { name = "libdw.so.1"; pkg = opt withCoredump elfutils; } - - # Support for PKCS#11 in systemd-cryptsetup, systemd-cryptenroll and systemd-homed - { name = "libp11-kit.so.0"; pkg = opt (withHomed || withCryptsetup) p11-kit; } - - { name = "libip4tc.so.2"; pkg = opt withIptables iptables; } - ]; - - patchDlOpen = dl: - let - library = "${lib.makeLibraryPath [ dl.pkg ]}/${dl.name}"; - in - if dl.pkg == null then '' - # remove the dependency on the library by replacing it with an invalid path - for file in $(grep -lr '"${dl.name}"' src); do - echo "patching dlopen(\"${dl.name}\", …) in $file to an invalid store path ("${builtins.storeDir}/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}")…" - substituteInPlace "$file" --replace '"${dl.name}"' '"${builtins.storeDir}/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}"' - done - '' else '' - # ensure that the library we provide actually exists - if ! [ -e ${library} ]; then - # exceptional case, details: - # https://github.com/systemd/systemd-stable/blob/v249-stable/src/shared/tpm2-util.c#L157 - if ! [[ "${library}" =~ .*libtss2-tcti-$ ]]; then - echo 'The shared library `${library}` does not exist but was given as substitute for `${dl.name}`' - exit 1 - fi - fi - # make the path to the dependency explicit - for file in $(grep -lr '"${dl.name}"' src); do - echo "patching dlopen(\"${dl.name}\", …) in $file to ${library}…" - substituteInPlace "$file" --replace '"${dl.name}"' '"${library}"' - done - - ''; - in - # patch all the dlopen calls to contain absolute paths to the libraries - lib.concatMapStringsSep "\n" patchDlOpen dlopenLibs - ) - # finally ensure that there are no left-over dlopen calls (or rather strings - # pointing to shared libraries) that we didn't handle - + '' - if grep -qr '"lib[a-zA-Z0-9-]*\.so[\.0-9a-zA-z]*"' src; then - echo "Found unhandled dynamic library calls: " - grep -r '"lib[a-zA-Z0-9-]*\.so[\.0-9a-zA-z]*"' src - exit 1 - fi - '' - # Finally, patch shebangs in scripts used at build time. This must not patch - # scripts that will end up in the output, to avoid build platform references - # when cross-compiling. - + '' - shopt -s extglob - patchShebangs tools test src/!(rpm|kernel-install|ukify) src/kernel-install/test-kernel-install.sh - ''; - - outputs = [ "out" "dev" ] ++ (lib.optional (!buildLibsOnly) "man"); - - hardeningDisable = [ - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111523 - "trivialautovarinit" - ]; - - nativeBuildInputs = - [ - pkg-config - makeBinaryWrapper - gperf - ninja - meson - glibcLocales - getent - m4 - - intltool - gettext - - libxslt - docbook_xsl - docbook_xml_dtd_42 - docbook_xml_dtd_45 - bash - (buildPackages.python3Packages.python.withPackages (ps: with ps; [ lxml jinja2 ] ++ lib.optional withEfi ps.pyelftools)) - ] - ++ lib.optionals withLibBPF [ - bpftools - buildPackages.llvmPackages.clang - buildPackages.llvmPackages.libllvm - ] - ; - - buildInputs = - [ - libxcrypt - libcap - libuuid - linuxHeaders - bashInteractive # for patch shebangs - ] - - ++ lib.optionals wantGcrypt [ libgcrypt libgpg-error ] - ++ lib.optional withTests glib - ++ lib.optional withAcl acl - ++ lib.optional withApparmor libapparmor - ++ lib.optional withAudit audit - ++ lib.optional wantCurl (lib.getDev curl) - ++ lib.optionals withCompression [ zlib bzip2 lz4 xz zstd ] - ++ lib.optional withCoredump elfutils - ++ lib.optional withCryptsetup (lib.getDev cryptsetup.dev) - ++ lib.optional withKexectools kexec-tools - ++ lib.optional withKmod kmod - ++ lib.optional withLibidn2 libidn2 - ++ lib.optional withLibseccomp libseccomp - ++ lib.optional withIptables iptables - ++ lib.optional withPam pam - ++ lib.optional withPCRE2 pcre2 - ++ lib.optional withSelinux libselinux - ++ lib.optionals withRemote [ libmicrohttpd gnutls ] - ++ lib.optionals (withHomed || withCryptsetup) [ p11-kit ] - ++ lib.optionals (withHomed || withCryptsetup) [ libfido2 ] - ++ lib.optionals withLibBPF [ libbpf ] - ++ lib.optional withTpm2Tss tpm2-tss - ++ lib.optional withUkify (python3Packages.python.withPackages (ps: with ps; [ pefile ])) - ++ lib.optionals withPasswordQuality [ libpwquality ] - ++ lib.optionals withQrencode [ qrencode ] - ; - - mesonBuildType = "release"; - - mesonFlags = [ - # Options - - # We bump this attribute on every (major) version change to ensure that we - # have known-good value for a timestamp that is in the (not so distant) - # past. This serves as a lower bound for valid system timestamps during - # startup. Systemd will reset the system timestamp if this date is +- 15 - # years from the system time. - # See the systemd v250 release notes for further details: - # https://github.com/systemd/systemd/blob/60e930fc3e6eb8a36fbc184773119eb8d2f30364/NEWS#L258-L266 - (lib.mesonOption "time-epoch" releaseTimestamp) - - (lib.mesonOption "version-tag" version) - (lib.mesonOption "mode" "release") - (lib.mesonOption "tty-gid" "3") # tty in NixOS has gid 3 - (lib.mesonOption "debug-shell" "${bashInteractive}/bin/bash") - (lib.mesonOption "pamconfdir" "${placeholder "out"}/etc/pam.d") - # Use cgroupsv2. This is already the upstream default, but better be explicit. - (lib.mesonOption "default-hierarchy" "unified") - (lib.mesonOption "kmod-path" "${kmod}/bin/kmod") - - # D-Bus - (lib.mesonOption "dbuspolicydir" "${placeholder "out"}/share/dbus-1/system.d") - (lib.mesonOption "dbussessionservicedir" "${placeholder "out"}/share/dbus-1/services") - (lib.mesonOption "dbussystemservicedir" "${placeholder "out"}/share/dbus-1/system-services") - - # pkgconfig - (lib.mesonOption "pkgconfiglibdir" "${placeholder "dev"}/lib/pkgconfig") - (lib.mesonOption "pkgconfigdatadir" "${placeholder "dev"}/share/pkgconfig") - - # Keyboard - (lib.mesonOption "loadkeys-path" "${kbd}/bin/loadkeys") - (lib.mesonOption "setfont-path" "${kbd}/bin/setfont") - - # SBAT - (lib.mesonOption "sbat-distro" "nixos") - (lib.mesonOption "sbat-distro-summary" "NixOS") - (lib.mesonOption "sbat-distro-url" "https://nixos.org/") - (lib.mesonOption "sbat-distro-pkgname" pname) - (lib.mesonOption "sbat-distro-version" version) - - # Users - (lib.mesonOption "system-uid-max" "999") - (lib.mesonOption "system-gid-max" "999") - - # SysVinit - (lib.mesonOption "sysvinit-path" "") - (lib.mesonOption "sysvrcnd-path" "") - - # Login - (lib.mesonOption "sulogin-path" "${util-linux.login}/bin/sulogin") - (lib.mesonOption "nologin-path" "${util-linux.login}/bin/nologin") - - # Mount - (lib.mesonOption "mount-path" "${lib.getOutput "mount" util-linux}/bin/mount") - (lib.mesonOption "umount-path" "${lib.getOutput "mount" util-linux}/bin/umount") - - - # Features - - # Tests - (lib.mesonBool "tests" withTests) - (lib.mesonEnable "glib" withTests) - (lib.mesonEnable "dbus" withTests) - - # Compression - (lib.mesonEnable "bzip2" withCompression) - (lib.mesonEnable "lz4" withCompression) - (lib.mesonEnable "xz" withCompression) - (lib.mesonEnable "zstd" withCompression) - (lib.mesonEnable "zlib" withCompression) - - # NSS - (lib.mesonEnable "nss-mymachines" withNss) - (lib.mesonEnable "nss-resolve" withNss) - (lib.mesonBool "nss-myhostname" withNss) - (lib.mesonBool "nss-systemd" withNss) - - # Cryptsetup - (lib.mesonEnable "libcryptsetup" withCryptsetup) - (lib.mesonEnable "libcryptsetup-plugins" withCryptsetup) - (lib.mesonEnable "p11kit" (withHomed || withCryptsetup)) - - # FIDO2 - (lib.mesonEnable "libfido2" withFido2) - (lib.mesonEnable "openssl" withFido2) - - # Password Quality - (lib.mesonEnable "pwquality" withPasswordQuality) - (lib.mesonEnable "passwdqc" false) - - # Remote - (lib.mesonEnable "remote" withRemote) - (lib.mesonEnable "microhttpd" withRemote) - - (lib.mesonEnable "pam" withPam) - (lib.mesonEnable "acl" withAcl) - (lib.mesonEnable "audit" withAudit) - (lib.mesonEnable "apparmor" withApparmor) - (lib.mesonEnable "gcrypt" wantGcrypt) - (lib.mesonEnable "importd" withImportd) - (lib.mesonEnable "homed" withHomed) - (lib.mesonEnable "polkit" withPolkit) - (lib.mesonEnable "elfutils" withCoredump) - (lib.mesonEnable "libcurl" wantCurl) - (lib.mesonEnable "libidn" false) - (lib.mesonEnable "libidn2" withLibidn2) - (lib.mesonEnable "libiptc" withIptables) - (lib.mesonEnable "repart" withRepart) - (lib.mesonEnable "sysupdate" withSysupdate) - (lib.mesonEnable "selinux" withSelinux) - (lib.mesonEnable "tpm2" withTpm2Tss) - (lib.mesonEnable "pcre2" withPCRE2) - (lib.mesonEnable "bpf-framework" withLibBPF) - (lib.mesonEnable "bootloader" withBootloader) - (lib.mesonEnable "ukify" withUkify) - (lib.mesonEnable "kmod" withKmod) - (lib.mesonEnable "qrencode" withQrencode) - (lib.mesonEnable "vmspawn" withVmspawn) - (lib.mesonEnable "xenctrl" false) - (lib.mesonEnable "gnutls" false) - (lib.mesonEnable "xkbcommon" false) - (lib.mesonEnable "man" true) - - (lib.mesonBool "analyze" withAnalyze) - (lib.mesonBool "logind" withLogind) - (lib.mesonBool "localed" withLocaled) - (lib.mesonBool "hostnamed" withHostnamed) - (lib.mesonBool "machined" withMachined) - (lib.mesonBool "networkd" withNetworkd) - (lib.mesonBool "oomd" withOomd) - (lib.mesonBool "portabled" withPortabled) - (lib.mesonBool "hwdb" withHwdb) - (lib.mesonBool "timedated" withTimedated) - (lib.mesonBool "timesyncd" withTimesyncd) - (lib.mesonBool "userdb" withUserDb) - (lib.mesonBool "coredump" withCoredump) - (lib.mesonBool "firstboot" withFirstboot) - (lib.mesonBool "resolve" withResolved) - (lib.mesonBool "sysusers" withSysusers) - (lib.mesonBool "efi" withEfi) - (lib.mesonBool "utmp" withUtmp) - (lib.mesonBool "log-trace" withLogTrace) - (lib.mesonBool "kernel-install" withKernelInstall) - (lib.mesonBool "quotacheck" false) - (lib.mesonBool "ldconfig" false) - (lib.mesonBool "install-sysconfdir" false) - (lib.mesonBool "create-log-dirs" false) - (lib.mesonBool "smack" true) - (lib.mesonBool "b_pie" true) - - ] ++ lib.optionals (withShellCompletions == false) [ - (lib.mesonOption "bashcompletiondir" "no") - (lib.mesonOption "zshcompletiondir" "no") - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - (lib.mesonBool "gshadow" false) - (lib.mesonBool "idn" false) - ]; - preConfigure = - let - # A list of all the runtime binaries referenced by the source code (plus - # scripts and unit files) of systemd executables, tests and libraries. - # As soon as a dependency is lo longer required we should remove it from - # the list. - # The `where` attribute for each of the replacement patterns must be - # exhaustive. If another (unhandled) case is found in the source code the - # build fails with an error message. - binaryReplacements = [ - { - search = "/usr/bin/getent"; - replacement = "${getent}/bin/getent"; - where = [ "src/nspawn/nspawn-setuid.c" ]; - } - { - search = "/sbin/mkswap"; - replacement = "${lib.getBin util-linux}/sbin/mkswap"; - where = [ - "man/systemd-makefs@.service.xml" - ]; - } - { - search = "/sbin/swapon"; - replacement = "${lib.getOutput "swap" util-linux}/sbin/swapon"; - where = [ - "src/core/swap.c" - "src/basic/unit-def.h" - ]; - } - { - search = "/sbin/swapoff"; - replacement = "${lib.getOutput "swap" util-linux}/sbin/swapoff"; - where = [ "src/core/swap.c" ]; - } - { - search = "/bin/echo"; - replacement = "${coreutils}/bin/echo"; - where = [ - "man/systemd-analyze.xml" - "man/systemd.service.xml" - "man/systemd-run.xml" - "src/analyze/test-verify.c" - "src/test/test-env-file.c" - "src/test/test-fileio.c" - "src/test/test-load-fragment.c" - ]; - } - { - search = "/bin/cat"; - replacement = "${coreutils}/bin/cat"; - where = [ - "test/test-execute/exec-noexecpaths-simple.service" - "src/journal/cat.c" - ]; - } - { - search = "/usr/lib/systemd/systemd-fsck"; - replacement = "$out/lib/systemd/systemd-fsck"; - where = [ "man/systemd-fsck@.service.xml" ]; - } - ] ++ lib.optionals withImportd [ - { - search = "\"gpg\""; - replacement = "\\\"${gnupg}/bin/gpg\\\""; - where = [ "src/import/pull-common.c" ]; - } - { - search = "\"tar\""; - replacement = "\\\"${gnutar}/bin/tar\\\""; - where = [ - "src/import/export-tar.c" - "src/import/import-common.c" - "src/import/import-tar.c" - ]; - ignore = [ - # occurrences here refer to the tar sub command - "src/sysupdate/sysupdate-resource.c" - "src/sysupdate/sysupdate-transfer.c" - "src/import/pull.c" - "src/import/export.c" - "src/import/import.c" - "src/import/importd.c" - # runs `tar` but also also creates a temporary directory with the string - "src/import/pull-tar.c" - ]; - } - ] ++ lib.optionals withKmod [ - { - search = "/sbin/modprobe"; - replacement = "${lib.getBin kmod}/sbin/modprobe"; - where = [ "units/modprobe@.service" ]; - } - ]; - - # { replacement, search, where, ignore } -> List[str] - mkSubstitute = { replacement, search, where, ignore ? [ ] }: - map (path: "substituteInPlace ${path} --replace '${search}' \"${replacement}\"") where; - mkEnsureSubstituted = { replacement, search, where, ignore ? [ ] }: - let - ignore' = lib.concatStringsSep "|" (ignore ++ [ "^test" "NEWS" ]); - in - '' - set +e - search=$(grep '${search}' -r | grep -v "${replacement}" | grep -Ev "${ignore'}") - set -e - if [[ -n "$search" ]]; then - echo "Not all references to '${search}' have been replaced. Found the following matches:" - echo "$search" - exit 1 - fi - ''; - in - '' - mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org") - export LC_ALL="en_US.UTF-8"; - - ${lib.concatStringsSep "\n" (lib.flatten (map mkSubstitute binaryReplacements))} - ${lib.concatMapStringsSep "\n" mkEnsureSubstituted binaryReplacements} - - substituteInPlace src/libsystemd/sd-journal/catalog.c \ - --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/ - - substituteInPlace src/import/pull-tar.c \ - --replace 'wait_for_terminate_and_check("tar"' 'wait_for_terminate_and_check("${gnutar}/bin/tar"' - ''; - - # These defines are overridden by CFLAGS and would trigger annoying - # warning messages - postConfigure = '' - substituteInPlace config.h \ - --replace "POLKIT_AGENT_BINARY_PATH" "_POLKIT_AGENT_BINARY_PATH" \ - --replace "SYSTEMD_BINARY_PATH" "_SYSTEMD_BINARY_PATH" \ - --replace "SYSTEMD_CGROUP_AGENTS_PATH" "_SYSTEMD_CGROUP_AGENT_PATH" - ''; - - env.NIX_CFLAGS_COMPILE = toString ([ - # Can't say ${polkit.bin}/bin/pkttyagent here because that would - # lead to a cyclic dependency. - "-UPOLKIT_AGENT_BINARY_PATH" - "-DPOLKIT_AGENT_BINARY_PATH=\"/run/current-system/sw/bin/pkttyagent\"" - - # Set the release_agent on /sys/fs/cgroup/systemd to the - # currently running systemd (/run/current-system/systemd) so - # that we don't use an obsolete/garbage-collected release agent. - "-USYSTEMD_CGROUP_AGENTS_PATH" - "-DSYSTEMD_CGROUP_AGENTS_PATH=\"/run/current-system/systemd/lib/systemd/systemd-cgroups-agent\"" - - "-USYSTEMD_BINARY_PATH" - "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\"" - - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - "-D__UAPI_DEF_ETHHDR=0" - ]); - - doCheck = false; # fails a bunch of tests - - # trigger the test -n "$DESTDIR" || mutate in upstreams build system - preInstall = '' - export DESTDIR=/ - ''; - - mesonInstallTags = lib.optionals buildLibsOnly [ "devel" "libudev" "libsystemd" ]; - - postInstall = lib.optionalString (!buildLibsOnly) '' - mkdir -p $out/example/systemd - mv $out/lib/{binfmt.d,sysctl.d,tmpfiles.d} $out/example - mv $out/lib/systemd/{system,user} $out/example/systemd - - rm -rf $out/etc/systemd/system - - # Fix reference to /bin/false in the D-Bus services. - for i in $out/share/dbus-1/system-services/*.service; do - substituteInPlace $i --replace /bin/false ${coreutils}/bin/false - done - - rm -rf $out/etc/rpm - '' + lib.optionalString (!withKernelInstall) '' - # "kernel-install" shouldn't be used on NixOS. - find $out -name "*kernel-install*" -exec rm {} \; - '' + lib.optionalString (!withDocumentation) '' - rm -rf $out/share/doc - '' + lib.optionalString (withKmod && !buildLibsOnly) '' - mv $out/lib/modules-load.d $out/example - '' + lib.optionalString withSysusers '' - mv $out/lib/sysusers.d $out/example - ''; - - # Avoid *.EFI binary stripping. - # At least on aarch64-linux strip removes too much from PE32+ files: - # https://github.com/NixOS/nixpkgs/issues/169693 - # The hack is to move EFI file out of lib/ before doStrip run and return it - # after doStrip run. - preFixup = lib.optionalString withBootloader '' - mv $out/lib/systemd/boot/efi $out/dont-strip-me - ''; - - # Wrap in the correct path for LUKS2 tokens. - postFixup = lib.optionalString withCryptsetup '' - for f in bin/systemd-cryptsetup bin/systemd-cryptenroll; do - # This needs to be in LD_LIBRARY_PATH because rpath on a binary is not propagated to libraries using dlopen, in this case `libcryptsetup.so` - wrapProgram $out/$f --prefix LD_LIBRARY_PATH : ${placeholder "out"}/lib/cryptsetup - done - '' + lib.optionalString withBootloader '' - mv $out/dont-strip-me $out/lib/systemd/boot/efi - '' + lib.optionalString withUkify '' - # To cross compile a derivation that builds a UKI with ukify, we need to wrap - # ukify with the correct binutils. When wrapping, no splicing happens so we - # have to explicitly pull binutils from targetPackages. - wrapProgram $out/bin/ukify --prefix PATH : ${lib.makeBinPath [ targetPackages.stdenv.cc.bintools ] }:${placeholder "out"}/lib/systemd - ''; - - disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) - # 'or p' is for manually specified buildPackages as they dont have __spliced - (builtins.map (p: p.__spliced.buildHost or p) finalAttrs.nativeBuildInputs); - - passthru = { - # The `interfaceVersion` attribute below points out the incompatibilities - # between systemd versions. When the new systemd build is - # backwards-compatible with the previous one, then they can be switched at - # runtime (the reboot being optional in this case); otherwise, a reboot is - # needed - and therefore `interfaceVersion` should be incremented. - interfaceVersion = 2; - - inherit withBootloader withCryptsetup withEfi withHostnamed withImportd withKmod - withLocaled withMachined withPortabled withTimedated withUtmp util-linux kmod kbd; - - tests = { - inherit (nixosTests) - switchTest - systemd-journal - systemd-journal-gateway - systemd-journal-upload; - cross = - let - systemString = - if stdenv.buildPlatform.isAarch64 - then "gnu64" - else "aarch64-multiplatform"; - in - pkgsCross.${systemString}.systemd; - }; - }; - - meta = { - homepage = "https://www.freedesktop.org/wiki/Software/systemd/"; - description = "A system and service manager for Linux"; - longDescription = '' - systemd is a suite of basic building blocks for a Linux system. It - provides a system and service manager that runs as PID 1 and starts the - rest of the system. systemd provides aggressive parallelization - capabilities, uses socket and D-Bus activation for starting services, - offers on-demand starting of daemons, keeps track of processes using Linux - control groups, maintains mount and automount points, and implements an - elaborate transactional dependency-based service control logic. systemd - supports SysV and LSB init scripts and works as a replacement for - sysvinit. Other parts include a logging daemon, utilities to control basic - system configuration like the hostname, date, locale, maintain a list of - logged-in users and running containers and virtual machines, system - accounts, runtime directories and settings, and daemons to manage simple - network configuration, network time synchronization, log forwarding, and - name resolution. - ''; - license = with lib.licenses; [ - # Taken from https://raw.githubusercontent.com/systemd/systemd-stable/${finalAttrs.src.rev}/LICENSES/README.md - bsd2 - bsd3 - cc0 - lgpl21Plus - lgpl2Plus - mit - mit0 - ofl - publicDomain - ]; - maintainers = with lib.maintainers; [ flokli kloenk ]; - platforms = lib.platforms.linux; - priority = 10; - badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ]; - # https://github.com/systemd/systemd/issues/20600#issuecomment-912338965 - broken = stdenv.hostPlatform.isStatic; - }; -}) diff --git a/pkgs/os-specific/linux/sysvinit/default.nix b/pkgs/os-specific/linux/sysvinit/default.nix deleted file mode 100644 index c8ba3164ab09..000000000000 --- a/pkgs/os-specific/linux/sysvinit/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, stdenv, fetchurl, libxcrypt, withoutInitTools ? false }: - -stdenv.mkDerivation rec { - pname = if withoutInitTools then "sysvtools" else "sysvinit"; - version = "3.04"; - - src = fetchurl { - url = "mirror://savannah/sysvinit/sysvinit-${version}.tar.xz"; - sha256 = "sha256-KmIf5uRSi8kTCLdIZ92q6733dT8COVwMW66Be9K346U="; - }; - - prePatch = '' - # Patch some minimal hard references, so halt/shutdown work - sed -i -e "s,/sbin/,$out/sbin/," src/halt.c src/init.c src/paths.h - ''; - - buildInputs = [ libxcrypt ]; - - makeFlags = [ "SULOGINLIBS=-lcrypt" "ROOT=$(out)" "MANDIR=/share/man" ]; - - preInstall = - '' - substituteInPlace src/Makefile --replace /usr / - ''; - - postInstall = '' - mv $out/sbin/killall5 $out/bin - ln -sf killall5 $out/bin/pidof - '' - + lib.optionalString withoutInitTools - '' - shopt -s extglob - rm -rf $out/sbin/!(sulogin) - rm -rf $out/include - rm -rf $out/share/man/man5 - rm $(for i in $out/share/man/man8/*; do echo $i; done | grep -v 'pidof\|killall5') - rm $out/bin/wall $out/share/man/man1/wall.1 - ''; - - meta = { - homepage = "https://www.nongnu.org/sysvinit/"; - description = "Utilities related to booting and shutdown"; - platforms = lib.platforms.linux; - license = lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/os-specific/linux/tailor-gui/default.nix b/pkgs/os-specific/linux/tailor-gui/default.nix deleted file mode 100644 index 74bfbeafeac9..000000000000 --- a/pkgs/os-specific/linux/tailor-gui/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ stdenv -, lib -, rustPlatform -, cargo -, rustc -, pkg-config -, desktop-file-utils -, appstream-glib -, wrapGAppsHook4 -, meson -, ninja -, libadwaita -, gtk4 -, tuxedo-rs -}: -let - src = tuxedo-rs.src; - sourceRoot = "${src.name}/tailor_gui"; - pname = "tailor_gui"; - version = "0.2.3"; -in -stdenv.mkDerivation { - - inherit src sourceRoot pname version; - - cargoDeps = rustPlatform.fetchCargoTarball { - inherit src sourceRoot; - name = "${pname}-${version}"; - hash = "sha256-jcjq0uls28V8Ka2CMM8oOQmZZRUr9eEQeVtW56AmU28="; - }; - - nativeBuildInputs = [ - rustPlatform.cargoSetupHook - pkg-config - desktop-file-utils - appstream-glib - wrapGAppsHook4 - ]; - - buildInputs = [ - cargo - rustc - meson - ninja - libadwaita - gtk4 - ]; - - meta = with lib; { - description = "Rust GUI for interacting with hardware from TUXEDO Computers"; - mainProgram = "tailor_gui"; - longDescription = '' - An alternative to the TUXEDO Control Center (https://www.tuxedocomputers.com/en/TUXEDO-Control-Center.tuxedo), - written in Rust. - ''; - homepage = "https://github.com/AaronErhardt/tuxedo-rs"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ mrcjkb xaverdh ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/target-isns/default.nix b/pkgs/os-specific/linux/target-isns/default.nix deleted file mode 100644 index 397e414490c2..000000000000 --- a/pkgs/os-specific/linux/target-isns/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, cmake, fetchFromGitHub, fetchpatch } : - -stdenv.mkDerivation rec { - pname = "target-isns"; - version = "0.6.8"; - - src = fetchFromGitHub { - owner = "open-iscsi"; - repo = pname; - rev = "v${version}"; - sha256 = "1b6jjalvvkkjyjbg1pcgk8vmvc6xzzksyjnh2pfi45bbpya4zxim"; - }; - - patches = [ - # fix absoulute paths - ./install_prefix_path.patch - - # fix gcc 10 compiler warning, remove with next update - (fetchpatch { - url = "https://github.com/open-iscsi/target-isns/commit/3d0c47dd89bcf83d828bcc22ecaaa5f58d78b58e.patch"; - sha256 = "1x2bkc1ff15621svhpq1r11m0q4ajv0j4fng6hm7wkkbr2s6d1vx"; - }) - ]; - - cmakeFlags = [ "-DSUPPORT_SYSTEMD=ON" ]; - - nativeBuildInputs = [ cmake ]; - - meta = with lib; { - description = "iSNS client for the Linux LIO iSCSI target"; - mainProgram = "target-isns"; - homepage = "https://github.com/open-iscsi/target-isns"; - maintainers = [ maintainers.markuskowa ]; - license = licenses.gpl2Only; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/target-isns/install_prefix_path.patch b/pkgs/os-specific/linux/target-isns/install_prefix_path.patch deleted file mode 100644 index f98fc21b7a24..000000000000 --- a/pkgs/os-specific/linux/target-isns/install_prefix_path.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f46144d..aeac3e4 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -14,10 +14,10 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror") - option(SUPPORT_SYSTEMD "Support service control via systemd" OFF) - - add_subdirectory(src) --install(FILES target-isns.conf DESTINATION /etc/) -+install(FILES target-isns.conf DESTINATION ${CMAKE_INSTALL_PREFIX}/etc/) - install(FILES target-isns.8 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man8/) - if (SUPPORT_SYSTEMD) -- install(FILES target-isns.service DESTINATION /usr/lib/systemd/system/) -+ install(FILES target-isns.service DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/systemd/system/) - endif (SUPPORT_SYSTEMD) - - add_subdirectory(tests) diff --git a/pkgs/os-specific/linux/targetcli/default.nix b/pkgs/os-specific/linux/targetcli/default.nix deleted file mode 100644 index 6058b3509772..000000000000 --- a/pkgs/os-specific/linux/targetcli/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, python3, fetchFromGitHub, nixosTests }: - -python3.pkgs.buildPythonApplication rec { - pname = "targetcli"; - version = "2.1.58"; - - src = fetchFromGitHub { - owner = "open-iscsi"; - repo = "${pname}-fb"; - rev = "v${version}"; - hash = "sha256-9QYo7jGk9iWr26j0qPQCqYsJ+vLXAsO4Xs7+7VT9/yc="; - }; - - propagatedBuildInputs = with python3.pkgs; [ configshell rtslib ]; - - postInstall = '' - install -D targetcli.8 -t $out/share/man/man8/ - install -D targetclid.8 -t $out/share/man/man8/ - ''; - - passthru.tests = { - inherit (nixosTests) iscsi-root; - }; - - meta = with lib; { - description = "A command shell for managing the Linux LIO kernel target"; - homepage = "https://github.com/open-iscsi/targetcli-fb"; - license = licenses.asl20; - maintainers = lib.teams.helsinki-systems.members; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/tbs/default.nix b/pkgs/os-specific/linux/tbs/default.nix deleted file mode 100644 index 5805a400c1e2..000000000000 --- a/pkgs/os-specific/linux/tbs/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel, kmod, patchutils, perlPackages }: -let - - media = fetchFromGitHub rec { - name = repo; - owner = "tbsdtv"; - repo = "linux_media"; - rev = "d0a7e44358f28064697e0eed309db03166dcd83b"; - hash = "sha256-BTHlnta5qv2bdPjD2bButwYGpwR/bq99/AUoZqTHHYw="; - }; - - build = fetchFromGitHub rec { - name = repo; - owner = "tbsdtv"; - repo = "media_build"; - rev = "88764363a3e3d36b3c59a0a2bf2244e262035d47"; - hash = "sha256-LFTxYVPudflxqYTSBIDNkTrGs09MOuYBXwpGYqWfEFQ="; - }; - -in -stdenv.mkDerivation { - pname = "tbs"; - version = "20231210-${kernel.version}"; - - srcs = [ media build ]; - sourceRoot = build.name; - - # https://github.com/tbsdtv/linux_media/wiki - preConfigure = '' - make dir DIR=../${media.name} - make allyesconfig - sed --regexp-extended --in-place v4l/.config \ - -e 's/(^CONFIG.*_RC.*=)./\1n/g' \ - -e 's/(^CONFIG.*_IR.*=)./\1n/g' \ - -e 's/(^CONFIG_VIDEO_VIA_CAMERA=)./\1n/g' - ''; - - postPatch = '' - patchShebangs . - - sed -i v4l/Makefile \ - -i v4l/scripts/make_makefile.pl \ - -e 's,/sbin/depmod,${kmod}/bin/depmod,g' \ - -e 's,/sbin/lsmod,${kmod}/bin/lsmod,g' - - sed -i v4l/Makefile \ - -e 's,^OUTDIR ?= /lib/modules,OUTDIR ?= ${kernel.dev}/lib/modules,' \ - -e 's,^SRCDIR ?= /lib/modules,SRCDIR ?= ${kernel.dev}/lib/modules,' - ''; - - buildFlags = [ "VER=${kernel.modDirVersion}" ]; - installFlags = [ "DESTDIR=$(out)" ]; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = [ patchutils kmod perlPackages.ProcProcessTable ] - ++ kernel.moduleBuildDependencies; - - postInstall = '' - find $out/lib/modules/${kernel.modDirVersion} -name "*.ko" -exec xz {} \; - ''; - - meta = with lib; { - homepage = "https://www.tbsdtv.com/"; - description = "Linux driver for TBSDTV cards"; - license = licenses.gpl2; - maintainers = with maintainers; [ ck3d ]; - priority = -1; - broken = kernel.kernelOlder "4.14" || kernel.kernelAtLeast "6.6"; - }; -} diff --git a/pkgs/os-specific/linux/tcp-wrappers/cdecls.patch b/pkgs/os-specific/linux/tcp-wrappers/cdecls.patch deleted file mode 100644 index eee640e8a824..000000000000 --- a/pkgs/os-specific/linux/tcp-wrappers/cdecls.patch +++ /dev/null @@ -1,31 +0,0 @@ -__BEGIN_DECLS/__END_DECLS are BSD specific and not defined in musl -glibc and uclibc had sys/cdefs.h doing it. - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Index: tcp_wrappers_7.6/tcpd.h -=================================================================== ---- tcp_wrappers_7.6.orig/tcpd.h -+++ tcp_wrappers_7.6/tcpd.h -@@ -11,7 +11,9 @@ - #include <netinet/in.h> - #include <stdio.h> - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /* Structure to describe one communications endpoint. */ - -@@ -252,6 +254,8 @@ extern char *fix_strtok(); - extern char *my_strtok(); - #endif - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif diff --git a/pkgs/os-specific/linux/tcp-wrappers/default.nix b/pkgs/os-specific/linux/tcp-wrappers/default.nix deleted file mode 100644 index 92a6b328b2cc..000000000000 --- a/pkgs/os-specific/linux/tcp-wrappers/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ fetchurl, lib, stdenv, libnsl }: - -let - vanillaVersion = "7.6.q"; - patchLevel = "26"; -in stdenv.mkDerivation rec { - pname = "tcp-wrappers"; - version = "${vanillaVersion}-${patchLevel}"; - - src = fetchurl { - url = "mirror://debian/pool/main/t/tcp-wrappers/tcp-wrappers_${vanillaVersion}.orig.tar.gz"; - sha256 = "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm"; - }; - - debian = fetchurl { - url = "mirror://debian/pool/main/t/tcp-wrappers/tcp-wrappers_${version}.debian.tar.xz"; - sha256 = "1dcdhi9lwzv7g19ggwxms2msq9fy14rl09rjqb10hwv0jix7z8j8"; - }; - - prePatch = '' - tar -xaf $debian - patches="$(cat debian/patches/series | sed 's,^,debian/patches/,') $patches" - - substituteInPlace Makefile --replace STRINGS STRINGDEFS - substituteInPlace debian/patches/13_shlib_weaksym --replace STRINGS STRINGDEFS - ''; - - # Fix __BEGIN_DECLS usage (even if it wasn't non-standard, this doesn't include sys/cdefs.h) - patches = [ ./cdecls.patch ]; - - postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' - substituteInPlace Makefile \ - --replace '-DNETGROUP' '-DUSE_GETDOMAIN' - ''; - - buildInputs = [ libnsl ]; - - makeFlags = [ "REAL_DAEMON_DIR=$(out)/bin" "linux" "AR:=$(AR)" ]; - - installPhase = '' - mkdir -p "$out/bin" - cp -v safe_finger tcpd tcpdchk tcpdmatch try-from "$out/bin" - - mkdir -p "$out/lib" - cp -v shared/lib*.so* "$out/lib" - - mkdir -p "$out/include" - cp -v *.h "$out/include" - - for i in 3 5 8; - do - mkdir -p "$out/man/man$i" - cp *.$i "$out/man/man$i" ; - done - ''; - - meta = { - description = "TCP Wrappers, a network logger, also known as TCPD or LOG_TCP"; - - longDescription = '' - Wietse Venema's network logger, also known as TCPD or LOG_TCP. - These programs log the client host name of incoming telnet, ftp, - rsh, rlogin, finger etc. requests. Security options are: access - control per host, domain and/or service; detection of host name - spoofing or host address spoofing; booby traps to implement an - early-warning system. The current version supports the System - V.4 TLI network programming interface (Solaris, DG/UX) in - addition to the traditional BSD sockets. - ''; - - homepage = "ftp://ftp.porcupine.org/pub/security/index.html"; - license = "BSD-style"; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/teck-udev-rules/default.nix b/pkgs/os-specific/linux/teck-udev-rules/default.nix deleted file mode 100644 index e0beb09e02ee..000000000000 --- a/pkgs/os-specific/linux/teck-udev-rules/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, stdenv, teck-programmer }: - -stdenv.mkDerivation { - pname = "teck-udev-rules"; - version = lib.getVersion teck-programmer; - - inherit (teck-programmer) src; - - dontBuild = true; - - installPhase = '' - runHook preInstall - install 40-teck.rules -D -t $out/etc/udev/rules.d/ - runHook postInstall - ''; - - meta = { - description = "udev rules for TECK keyboards"; - inherit (teck-programmer.meta) license; - maintainers = [ lib.maintainers.bbjubjub ]; - }; -} diff --git a/pkgs/os-specific/linux/teensy-udev-rules/default.nix b/pkgs/os-specific/linux/teensy-udev-rules/default.nix deleted file mode 100644 index 326cf0a3245f..000000000000 --- a/pkgs/os-specific/linux/teensy-udev-rules/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, coreutils }: - -stdenv.mkDerivation { - pname = "teensy-udev-rules"; - version = "2022-05-15"; - - # Source: https://www.pjrc.com/teensy/00-teensy.rules - src = ./teensy.rules; - - dontUnpack = true; - - runtimeDeps = [ coreutils ]; - - installPhase = '' - install -D $src $out/etc/udev/rules.d/70-teensy.rules - substituteInPlace $out/etc/udev/rules.d/70-teensy.rules \ - --replace "/bin/stty" "${coreutils}/bin/stty" - ''; - - meta = with lib; { - homepage = "https://www.pjrc.com/teensy/00-teensy.rules"; - description = "udev rules for the Teensy microcontrollers"; - longDescription = '' - udev rules that give non-root users permission to communicate with the - Teensy family of microcontrolers. - - ModemManager (part of NetworkManager) can interfere with USB Serial - devices, which includes the Teensy. See comments in the .rules file (or - this package's homepage) for possible workarounds. - ''; - platforms = platforms.linux; - license = licenses.unfree; # No license specified. - maintainers = with maintainers; [ aidalgol ]; - }; -} diff --git a/pkgs/os-specific/linux/teensy-udev-rules/teensy.rules b/pkgs/os-specific/linux/teensy-udev-rules/teensy.rules deleted file mode 100644 index 0a921a507af6..000000000000 --- a/pkgs/os-specific/linux/teensy-udev-rules/teensy.rules +++ /dev/null @@ -1,39 +0,0 @@ -# UDEV Rules for Teensy boards, http://www.pjrc.com/teensy/ -# -# The latest version of this file may be found at: -# http://www.pjrc.com/teensy/00-teensy.rules -# -# This file must be placed at: -# -# /etc/udev/rules.d/00-teensy.rules (preferred location) -# or -# /lib/udev/rules.d/00-teensy.rules (req'd on some broken systems) -# -# To install, type this command in a terminal: -# sudo cp 00-teensy.rules /etc/udev/rules.d/00-teensy.rules -# -# After this file is installed, physically unplug and reconnect Teensy. -# -ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04*", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1" -ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789a]*", ENV{MTP_NO_PROBE}="1" -KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04*", MODE:="0666", RUN:="/bin/stty -F /dev/%k raw -echo" -KERNEL=="hidraw*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04*", MODE:="0666" -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04*", MODE:="0666" -KERNEL=="hidraw*", ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="013*", MODE:="0666" -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="013*", MODE:="0666" - -# -# If you share your linux system with other users, or just don't like the -# idea of write permission for everybody, you can replace MODE:="0666" with -# OWNER:="yourusername" to create the device owned by you, or with -# GROUP:="somegroupname" and mange access using standard unix groups. -# -# ModemManager tends to interfere with USB Serial devices like Teensy. -# Problems manifest as the Arduino Serial Monitor missing some incoming -# data, and "Unable to open /dev/ttyACM0 for reboot request" when -# uploading. If you experience these problems, disable or remove -# ModemManager from your system. If you must use a modem, perhaps -# try disabling the "MM_FILTER_RULE_TTY_ACM_INTERFACE" ModemManager -# rule. Changing ModemManager's filter policy from "strict" to "default" -# may also help. But if you don't use a modem, completely removing -# the troublesome ModemManager is the most effective solution. diff --git a/pkgs/os-specific/linux/thunderbolt/default.nix b/pkgs/os-specific/linux/thunderbolt/default.nix deleted file mode 100644 index e532f9965aa8..000000000000 --- a/pkgs/os-specific/linux/thunderbolt/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv -, boost -, cmake -, fetchFromGitHub -, pkg-config -, txt2tags -}: - -stdenv.mkDerivation rec { - pname = "thunderbolt"; - version = "0.9.3"; - src = fetchFromGitHub { - owner = "01org"; - repo = "thunderbolt-software-user-space"; - rev = "v${version}"; - sha256 = "02w1bfm7xvq0dzkhwqiq0camkzz9kvciyhnsis61c8vzp39cwx0x"; - }; - - nativeBuildInputs = [ cmake pkg-config txt2tags ]; - buildInputs = [ boost ]; - - cmakeFlags = [ - "-DUDEV_BIN_DIR=${placeholder "out"}/bin" - "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d" - ]; - - meta = { - description = "Thunderbolt(TM) user-space components"; - license = lib.licenses.bsd3; - maintainers = [ lib.maintainers.ryantrinkle ]; - homepage = "https://01.org/thunderbolt-sw"; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/tiptop/default.nix b/pkgs/os-specific/linux/tiptop/default.nix deleted file mode 100644 index a26602b6b44c..000000000000 --- a/pkgs/os-specific/linux/tiptop/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ lib, stdenv, fetchurl, fetchpatch, libxml2, ncurses, bison, flex }: - -stdenv.mkDerivation rec { - pname = "tiptop"; - version = "2.3.1"; - - src = fetchurl { - url = "${meta.homepage}/releases/${pname}-${version}.tar.gz"; - sha256 = "10j1138y3cj3hsmfz4w0bmk90523b0prqwi9nhb4z8xvjnf49i2i"; - }; - - patches = [ - (fetchpatch { - name = "reproducibility.patch"; - url = "https://salsa.debian.org/debian/tiptop/raw/debian/2.3.1-1/debian/patches/0001-fix-reproducibility-of-build-process.patch"; - sha256 = "116l7n3nl9lj691i7j8x0d0za1i6zpqgghw5d70qfpb17c04cblp"; - }) - - # Pull upstream patch for ncurses-6.3 - (fetchpatch { - name = "ncurses-6.3.patch"; - url = "https://gitlab.inria.fr/rohou/tiptop/-/commit/a78234c27fdd62fed09430d998950e49e11a1832.patch"; - sha256 = "1k55agdri7iw3gwm4snj3ps62qzmxlqr6s0868l8qamjw38z9g00"; - }) - ]; - - postPatch = '' - substituteInPlace ./configure --replace -lcurses -lncurses - ''; - - nativeBuildInputs = [ flex bison ]; - buildInputs = [ libxml2 ncurses ]; - - env.NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2"; - - meta = with lib; { - description = "Performance monitoring tool for Linux"; - homepage = "http://tiptop.gforge.inria.fr"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = [ ]; - }; -} - diff --git a/pkgs/os-specific/linux/tiscamera/default.nix b/pkgs/os-specific/linux/tiscamera/default.nix deleted file mode 100644 index 600655c447f7..000000000000 --- a/pkgs/os-specific/linux/tiscamera/default.nix +++ /dev/null @@ -1,135 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, pkg-config -, runtimeShell -, catch2 -, elfutils -, libselinux -, libsepol -, libunwind -, libusb1 -, libuuid -, libzip -, orc -, pcre -, zstd -, glib -, gobject-introspection -, gst_all_1 -, wrapGAppsHook - # needs pkg_resources -, withDoc ? false -, sphinx -, graphviz -, withAravis ? true -, aravis -, meson -, withAravisUsbVision ? withAravis -, withGui ? true -, qt5 -}: - -stdenv.mkDerivation rec { - pname = "tiscamera"; - version = "1.1.1"; - - src = fetchFromGitHub { - owner = "TheImagingSource"; - repo = "tiscamera"; - rev = "v-tiscamera-${version}"; - hash = "sha256-33U/8CbqNWIRwfDHXCZSN466WEQj9fip+Z5EJ7kIwRM="; - }; - - postPatch = '' - cp ${catch2}/include/catch2/catch.hpp external/catch/catch.hpp - - substituteInPlace ./data/udev/80-theimagingsource-cameras.rules.in \ - --replace "/bin/sh" "${runtimeShell}/bin/sh" \ - --replace "typically /usr/bin/" "" \ - --replace "typically /usr/share/theimagingsource/tiscamera/uvc-extension/" "" - ''; - - nativeBuildInputs = [ - cmake - pkg-config - wrapGAppsHook - gobject-introspection - ] ++ lib.optionals withDoc [ - sphinx - graphviz - ] ++ lib.optionals withAravis [ - meson - ] ++ lib.optionals withGui [ - qt5.wrapQtAppsHook - ]; - - buildInputs = [ - elfutils - libselinux - libsepol - libunwind - libusb1 - libuuid - libzip - orc - pcre - zstd - glib - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - gst_all_1.gst-plugins-bad - gst_all_1.gst-plugins-ugly - ] ++ lib.optionals withAravis [ - aravis - ] ++ lib.optionals withGui [ - qt5.qtbase - ]; - - hardeningDisable = [ "format" ]; - - cmakeFlags = [ - "-DTCAM_BUILD_GST_1_0=ON" - "-DTCAM_BUILD_TOOLS=ON" - "-DTCAM_BUILD_V4L2=ON" - "-DTCAM_BUILD_LIBUSB=ON" - "-DTCAM_BUILD_TESTS=ON" - "-DTCAM_BUILD_ARAVIS=${if withAravis then "ON" else "OFF"}" - "-DTCAM_BUILD_DOCUMENTATION=${if withDoc then "ON" else "OFF"}" - "-DTCAM_BUILD_WITH_GUI=${if withGui then "ON" else "OFF"}" - "-DTCAM_DOWNLOAD_MESON=OFF" - "-DTCAM_INTERNAL_ARAVIS=OFF" - "-DTCAM_ARAVIS_USB_VISION=${if withAravis && withAravisUsbVision then "ON" else "OFF"}" - "-DTCAM_INSTALL_FORCE_PREFIX=ON" - ]; - - env.CXXFLAGS = "-include cstdint"; - - doCheck = true; - - # gstreamer tests requires, besides gst-plugins-bad, plugins installed by this expression. - checkPhase = "ctest --force-new-ctest-process -E gstreamer"; - - # wrapGAppsHook: make sure we add ourselves to the introspection - # and gstreamer paths. - GI_TYPELIB_PATH = "${placeholder "out"}/lib/girepository-1.0"; - GST_PLUGIN_SYSTEM_PATH_1_0 = "${placeholder "out"}/lib/gstreamer-1.0"; - - QT_PLUGIN_PATH = lib.optionalString withGui "${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"; - - dontWrapQtApps = true; - - preFixup = '' - gappsWrapperArgs+=("''${qtWrapperArgs[@]}") - ''; - - meta = with lib; { - description = "The Linux sources and UVC firmwares for The Imaging Source cameras"; - homepage = "https://github.com/TheImagingSource/tiscamera"; - license = with licenses; [ asl20 ]; - platforms = platforms.linux; - maintainers = with maintainers; [ jraygauthier ]; - }; -} diff --git a/pkgs/os-specific/linux/tmon/default.nix b/pkgs/os-specific/linux/tmon/default.nix deleted file mode 100644 index a80724f19eb5..000000000000 --- a/pkgs/os-specific/linux/tmon/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, kernel, ncurses }: - -stdenv.mkDerivation { - pname = "tmon"; - version = kernel.version; - - inherit (kernel) src; - - buildInputs = [ ncurses ]; - - configurePhase = '' - cd tools/thermal/tmon - ''; - - makeFlags = kernel.makeFlags ++ [ "INSTALL_ROOT=\"$(out)\"" "BINDIR=bin" ]; - NIX_CFLAGS_LINK = "-lgcc_s"; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Monitoring and Testing Tool for Linux kernel thermal subsystem"; - mainProgram = "tmon"; - homepage = "https://www.kernel.org/"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/tomb/default.nix b/pkgs/os-specific/linux/tomb/default.nix deleted file mode 100644 index 98dd9bc1dbca..000000000000 --- a/pkgs/os-specific/linux/tomb/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ stdenvNoCC -, lib -, fetchFromGitHub -, substituteAll -, makeWrapper -, zsh -, coreutils -, cryptsetup -, e2fsprogs -, file -, gawk -, getent -, gettext -, gnugrep -, gnupg -, libargon2 -, lsof -, pinentry -, util-linux -, nix-update-script -}: - -stdenvNoCC.mkDerivation rec { - pname = "tomb"; - version = "2.10"; - - src = fetchFromGitHub { - owner = "dyne"; - repo = "Tomb"; - rev = "refs/tags/v${version}"; - hash = "sha256-lLxQJX0P6b6lbXEcrq45EsX9iKiayZ9XkhqgMfpN3/w="; - }; - - buildInputs = [ zsh pinentry ]; - - nativeBuildInputs = [ makeWrapper ]; - - postPatch = '' - # if not, it shows .tomb-wrapped when running - substituteInPlace tomb \ - --replace-fail 'TOMBEXEC=$0' 'TOMBEXEC=tomb' - ''; - - installPhase = '' - install -Dm755 tomb $out/bin/tomb - install -Dm644 doc/tomb.1 $out/share/man/man1/tomb.1 - - wrapProgram $out/bin/tomb \ - --prefix PATH : $out/bin:${lib.makeBinPath [ - coreutils - cryptsetup - e2fsprogs - file - gawk - getent - gettext - gnugrep - gnupg - libargon2 - lsof - pinentry - util-linux - ]} - ''; - - passthru = { - updateScript = nix-update-script { }; - }; - - meta = with lib; { - description = "File encryption on GNU/Linux"; - homepage = "https://www.dyne.org/software/tomb/"; - changelog = "https://github.com/dyne/Tomb/blob/v${version}/ChangeLog.md"; - license = licenses.gpl3Only; - mainProgram = "tomb"; - maintainers = with maintainers; [ peterhoeg anthonyroussel ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/tp_smapi/default.nix b/pkgs/os-specific/linux/tp_smapi/default.nix deleted file mode 100644 index d9c5921d4655..000000000000 --- a/pkgs/os-specific/linux/tp_smapi/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, fetchpatch -, kernel -, writeScript -, coreutils -, gnugrep -, jq -, curl -, common-updater-scripts -, runtimeShell -}: - -stdenv.mkDerivation rec { - name = "tp_smapi-${version}-${kernel.version}"; - version = "0.43"; - - src = fetchFromGitHub { - owner = "linux-thinkpad"; - repo = "tp_smapi"; - rev = "tp-smapi/${version}"; - sha256 = "1rjb0njckczc2mj05cagvj0lkyvmyk6bw7wkiinv81lw8m90g77g"; - }; - - patches = [ - # update DEFINE_SEMAPHORE usage for linux 6.4+ - # https://github.com/linux-thinkpad/tp_smapi/pull/45 - (fetchpatch { - url = "https://github.com/linux-thinkpad/tp_smapi/commit/0c3398b1acf2a2cabd9cee91dc3fe3d35805fa8b.patch"; - hash = "sha256-J/WvijrpHGwFOZMMxnHdNin5eh8vViTcNb4nwsCqsLs="; - }) - ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" ]; - - makeFlags = [ - "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}" - "SHELL=${stdenv.shell}" - "HDAPS=1" - ]; - - installPhase = '' - install -v -D -m 644 thinkpad_ec.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/thinkpad_ec.ko" - install -v -D -m 644 tp_smapi.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/tp_smapi.ko" - install -v -D -m 644 hdaps.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/hdapsd.ko" - ''; - - dontStrip = true; - - enableParallelBuilding = true; - - passthru.updateScript = import ./update.nix { - inherit lib writeScript coreutils gnugrep jq curl common-updater-scripts runtimeShell; - }; - - meta = { - description = "IBM ThinkPad hardware functions driver"; - homepage = "https://github.com/linux-thinkpad/tp_smapi"; - license = lib.licenses.gpl2; - maintainers = [ ]; - # driver is only ment for linux thinkpads i think bellow platforms should cover it. - platforms = [ "x86_64-linux" "i686-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/tp_smapi/update.nix b/pkgs/os-specific/linux/tp_smapi/update.nix deleted file mode 100644 index 65b557e45457..000000000000 --- a/pkgs/os-specific/linux/tp_smapi/update.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib, writeScript, coreutils, curl, gnugrep, jq, common-updater-scripts, runtimeShell }: - -writeScript "update-tp_smapi" '' -#!${runtimeShell} -PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep jq ]} - -tags=`curl -s https://api.github.com/repos/evgeni/tp_smapi/tags` -latest_tag=`echo $tags | jq -r '.[] | .name' | grep -oP "^tp-smapi/\K.*" | sort --version-sort | tail -1` - -update-source-version linuxPackages.tp_smapi "$latest_tag" -'' diff --git a/pkgs/os-specific/linux/tpacpi-bat/default.nix b/pkgs/os-specific/linux/tpacpi-bat/default.nix deleted file mode 100644 index 42d8a0f9dbcf..000000000000 --- a/pkgs/os-specific/linux/tpacpi-bat/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, perl, kmod, coreutils }: - -# Requires the acpi_call kernel module in order to run. -stdenv.mkDerivation rec { - pname = "tpacpi-bat"; - version = "3.2"; - - src = fetchFromGitHub { - owner = "teleshoes"; - repo = "tpacpi-bat"; - rev = "v${version}"; - sha256 = "sha256-9XnvVNdgB5VeI3juZfc8N5weEyULXuqu1IDChZfQqFk="; - }; - - buildInputs = [ perl ]; - - installPhase = '' - mkdir -p $out/bin - cp tpacpi-bat $out/bin - ''; - - postPatch = '' - substituteInPlace tpacpi-bat \ - --replace modprobe ${kmod}/bin/modprobe \ - --replace cat ${coreutils}/bin/cat - ''; - - meta = { - maintainers = [lib.maintainers.orbekk]; - platforms = lib.platforms.linux; - description = "Tool to set battery charging thresholds on Lenovo Thinkpad"; - mainProgram = "tpacpi-bat"; - license = lib.licenses.gpl3Plus; - }; -} diff --git a/pkgs/os-specific/linux/trace-cmd/default.nix b/pkgs/os-specific/linux/trace-cmd/default.nix deleted file mode 100644 index 80b20c555b4e..000000000000 --- a/pkgs/os-specific/linux/trace-cmd/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ lib, stdenv, fetchpatch, fetchzip, pkg-config, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libtraceevent, libtracefs, zstd, sourceHighlight }: -stdenv.mkDerivation rec { - pname = "trace-cmd"; - version = "3.2"; - - src = fetchzip { - url = "https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/snapshot/trace-cmd-v${version}.tar.gz"; - hash = "sha256-rTcaaEQ3Y4cneNnZSGiMZNp+Z7dyAa3oNTNMAEXr28g="; - }; - - patches = [ - # Upstream patches to be released in the next version - (fetchpatch { - sha256 = "sha256-eGuHODm29M7rbGYsyXUPoNe1xsIG3eJYhwXQDakRJHA="; - url = "https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/patch/?id=6b07a7df871342068604b204711ab741d421d051"; - }) - ]; - - # Don't build and install html documentation - postPatch = '' - sed -i -e '/^all:/ s/html//' -e '/^install:/ s/install-html//' \ - Documentation{,/trace-cmd,/libtracecmd}/Makefile - patchShebangs check-manpages.sh - ''; - - nativeBuildInputs = [ asciidoc libxslt pkg-config xmlto docbook_xsl docbook_xml_dtd_45 sourceHighlight ]; - - buildInputs = [ libtraceevent libtracefs zstd ]; - - outputs = [ "out" "lib" "dev" "man" "devman" ]; - - MANPAGE_DOCBOOK_XSL="${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"; - - dontConfigure = true; - - enableParallelBuilding = true; - makeFlags = [ - # The following values appear in the generated .pc file - "prefix=${placeholder "lib"}" - ]; - - # We do not mention targets (like "doc") explicitly in makeFlags - # because the Makefile would not print warnings about too old - # libraries (see "warning:" in the Makefile) - postBuild = '' - make libs doc -j$NIX_BUILD_CORES - ''; - - installTargets = [ - "install_cmd" - "install_libs" - "install_doc" - ]; - installFlags = [ - "LDCONFIG=false" - "bindir=${placeholder "out"}/bin" - "mandir=${placeholder "man"}/share/man" - "libdir=${placeholder "lib"}/lib" - "pkgconfig_dir=${placeholder "dev"}/lib/pkgconfig" - "includedir=${placeholder "dev"}/include" - "BASH_COMPLETE_DIR=${placeholder "out"}/share/bash-completion/completions" - ]; - - meta = with lib; { - description = "User-space tools for the Linux kernel ftrace subsystem"; - mainProgram = "trace-cmd"; - homepage = "https://www.trace-cmd.org/"; - license = with licenses; [ lgpl21Only gpl2Only ]; - platforms = platforms.linux; - maintainers = with maintainers; [ thoughtpolice basvandijk wentasah ]; - }; -} diff --git a/pkgs/os-specific/linux/trace-cmd/kernelshark.nix b/pkgs/os-specific/linux/trace-cmd/kernelshark.nix deleted file mode 100644 index 1eda219013da..000000000000 --- a/pkgs/os-specific/linux/trace-cmd/kernelshark.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, mkDerivation, fetchzip, qtbase, cmake, asciidoc -, docbook_xsl, json_c, mesa_glu, freeglut, trace-cmd, pkg-config -, libtraceevent, libtracefs, freefont_ttf -}: - -mkDerivation rec { - pname = "kernelshark"; - version = "2.2.1"; - - src = fetchzip { - url = "https://git.kernel.org/pub/scm/utils/trace-cmd/kernel-shark.git/snapshot/kernelshark-v${version}.tar.gz"; - hash = "sha256-V25IzPDOt6V03wgIa/AJ0T8mRaGmXYuMCcvbSOKleY0="; - }; - - outputs = [ "out" ]; - - nativeBuildInputs = [ pkg-config cmake ]; - - buildInputs = [ qtbase json_c mesa_glu freeglut libtraceevent libtracefs trace-cmd ]; - - cmakeFlags = [ - "-D_INSTALL_PREFIX=${placeholder "out"}" - "-D_POLKIT_INSTALL_PREFIX=${placeholder "out"}" - "-DPKG_CONGIG_DIR=${placeholder "out"}/lib/pkgconfig" - "-DTT_FONT_FILE=${freefont_ttf}/share/fonts/truetype/FreeSans.ttf" - ]; - - meta = with lib; { - description = "GUI for trace-cmd which is an interface for the Linux kernel ftrace subsystem"; - homepage = "https://kernelshark.org/"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ basvandijk ]; - }; -} diff --git a/pkgs/os-specific/linux/trelay/Makefile b/pkgs/os-specific/linux/trelay/Makefile deleted file mode 100644 index 3206728dfbf7..000000000000 --- a/pkgs/os-specific/linux/trelay/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -KERNELRELEASE ?= $(shell uname -r) -KERNEL_DIR ?= /lib/modules/$(KERNELRELEASE)/build -PWD := $(shell pwd) - -obj-m := trelay.o - -all: - $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules - -install: - $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules_install - -clean: - $(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean diff --git a/pkgs/os-specific/linux/trelay/default.nix b/pkgs/os-specific/linux/trelay/default.nix deleted file mode 100644 index aea5b57dfca1..000000000000 --- a/pkgs/os-specific/linux/trelay/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ stdenv, lib, fetchgit, kernel, kmod }: -let - version = "22.03.5"; -in -stdenv.mkDerivation (finalAttrs: { - pname = "trelay"; - version = "${version}-${kernel.version}"; - - src = fetchgit { - url = "https://git.openwrt.org/openwrt/openwrt.git"; - rev = "v${version}"; - hash = "sha256-5f9LvaZUxtfTpTR268QMkEmHUpn/nct+MVa44SBGT5c="; - sparseCheckout = [ "package/kernel/trelay/src" ]; - }; - - sourceRoot = "${finalAttrs.src.name}/package/kernel/trelay/src"; - hardeningDisable = [ "pic" "format" ]; - nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies; - - postPatch = '' - cp '${./Makefile}' Makefile - ''; - - makeFlags = kernel.makeFlags ++ [ - "KERNELRELEASE=${kernel.modDirVersion}" - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "INSTALL_MOD_PATH=$(out)" - ]; - - meta = with lib; { - description = "For relaying IP packets between two devices to build a IP bridge between them"; - longDescription = '' - A kernel module that relays ethernet packets between two devices (similar to a bridge), - but without any MAC address checks. - - This makes it possible to bridge client mode or ad-hoc mode wifi devices to ethernet VLANs, - assuming the remote end uses the same source MAC address as the device that packets are - supposed to exit from. - ''; - homepage = "https://github.com/openwrt/openwrt/tree/main/package/kernel/trelay"; - license = licenses.gpl2Plus; - maintainers = [ maintainers.aprl ]; - platforms = platforms.linux; - broken = lib.versionOlder kernel.version "5.10"; - }; -}) diff --git a/pkgs/os-specific/linux/trezor-udev-rules/default.nix b/pkgs/os-specific/linux/trezor-udev-rules/default.nix deleted file mode 100644 index e5d20171c5cb..000000000000 --- a/pkgs/os-specific/linux/trezor-udev-rules/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "trezor-udev-rules"; - version = "unstable-2019-07-17"; - - udevRules = fetchurl { - # let's pin the latest commit in the repo which touched the udev rules file - url = "https://raw.githubusercontent.com/trezor/trezor-firmware/68a3094b0a8e36b588b1bcb58c34a2c9eafc0dca/common/udev/51-trezor.rules"; - sha256 = "0vlxif89nsqpbnbz1vwfgpl1zayzmq87gw1snskn0qns6x2rpczk"; - }; - - dontUnpack = true; - - installPhase = '' - cp ${udevRules} 51-trezor.rules - mkdir -p $out/lib/udev/rules.d - # we use trezord group, not plugdev - # we don't need the udev-acl tag - substituteInPlace 51-trezor.rules \ - --replace 'GROUP="plugdev"' 'GROUP="trezord"' \ - --replace ', TAG+="udev-acl"' "" - cp 51-trezor.rules $out/lib/udev/rules.d/51-trezor.rules - ''; - - meta = with lib; { - description = "Udev rules for Trezor"; - license = licenses.gpl3; - maintainers = with maintainers; [ prusnak ]; - platforms = platforms.linux; - homepage = "https://github.com/trezor/trezor-firmware/tree/master/common/udev"; - }; -} diff --git a/pkgs/os-specific/linux/trinity/default.nix b/pkgs/os-specific/linux/trinity/default.nix deleted file mode 100644 index 370620eef252..000000000000 --- a/pkgs/os-specific/linux/trinity/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "trinity"; - version = "1.9-unstable-2023-07-10"; - - src = fetchFromGitHub { - owner = "kernelslacker"; - repo = "trinity"; - rev = "e71872454d26baf37ae1d12e9b04a73d64179555"; - hash = "sha256-Zy+4L1CuB2Ul5iF+AokDkAW1wheDzoCTNkvRZFGRNps="; - }; - - postPatch = '' - patchShebangs configure - patchShebangs scripts - ''; - - enableParallelBuilding = true; - - installFlags = [ "DESTDIR=$(out)" ]; - - meta = with lib; { - description = "A Linux System call fuzz tester"; - mainProgram = "trinity"; - homepage = "https://github.com/kernelslacker/trinity"; - license = licenses.gpl2Only; - maintainers = [ maintainers.dezgeg ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/tuna/default.nix b/pkgs/os-specific/linux/tuna/default.nix deleted file mode 100644 index b57169369ca7..000000000000 --- a/pkgs/os-specific/linux/tuna/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ lib -, buildPythonApplication -, fetchzip -, pygobject3 -, pytestCheckHook -, gdk-pixbuf -, glib -, gobject-introspection -, gtk3 -, python-linux-procfs -, python-ethtool -, wrapGAppsHook -}: - -buildPythonApplication rec { - pname = "tuna"; - version = "0.15"; - - src = fetchzip { - url = "https://git.kernel.org/pub/scm/utils/tuna/tuna.git/snapshot/tuna-v${version}.tar.gz"; - sha256 = "MwyLBwKz5ur1sBXHiCLq/Nq2u5aaiC+KzXqvGBmQii8="; - }; - - postPatch = '' - mv tuna-cmd.py tuna/cmd.py - - substituteInPlace setup.py \ - --replace 'packages = ["tuna", "tuna/gui"],' \ - 'packages = ["tuna", "tuna/gui"], entry_points={"console_scripts":["tuna=tuna.cmd:main"]},' - - substituteInPlace tuna/tuna_gui.py \ - --replace "self.binpath + 'pkexec'" "'/run/wrappers/bin/pkexec'" \ - --replace 'tuna_glade_dirs = [".", "tuna", "/usr/share/tuna"]' "tuna_glade_dirs = [ \"$out/share/tuna\" ]" - ''; - - nativeBuildInputs = [ - glib.dev - gobject-introspection - gtk3 - wrapGAppsHook - ]; - - propagatedBuildInputs = [ pygobject3 python-linux-procfs python-ethtool ]; - - postInstall = '' - mkdir -p $out/share/tuna - cp tuna/tuna_gui.glade $out/share/tuna/ - ''; - - # contains no tests - doCheck = false; - pythonImportsCheck = [ "tuna" ]; - - meta = with lib; { - description = "Thread and IRQ affinity setting GUI and cmd line tool"; - mainProgram = "tuna"; - homepage = "https://git.kernel.org/pub/scm/utils/tuna/tuna.git"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ elohmeier ]; - }; -} diff --git a/pkgs/os-specific/linux/tunctl/default.nix b/pkgs/os-specific/linux/tunctl/default.nix deleted file mode 100644 index 5e7fea75b6ab..000000000000 --- a/pkgs/os-specific/linux/tunctl/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "tunctl"; - version = "1.5"; - - src = fetchurl { - url = "mirror://sourceforge/tunctl/tunctl-${version}.tar.gz"; - sha256 = "aa2a6c4cc6bfacb11e0d9f62334a6638a0d435475c61230116f00b6af8b14fff"; - }; - - makeFlags = [ "tunctl" ]; - installPhase = '' - mkdir -p $out/bin - cp tunctl $out/bin - ''; - - meta = { - homepage = "https://tunctl.sourceforge.net/"; - description = "Utility to set up and maintain TUN/TAP network interfaces"; - mainProgram = "tunctl"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/turbostat/default.nix b/pkgs/os-specific/linux/turbostat/default.nix deleted file mode 100644 index 4c51bca386d2..000000000000 --- a/pkgs/os-specific/linux/turbostat/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib, stdenv, kernel, libcap }: - -stdenv.mkDerivation { - pname = "turbostat"; - inherit (kernel) src version; - - buildInputs = [ libcap ]; - makeFlags = [ "PREFIX=${placeholder "out"}" ]; - - postPatch = '' - cd tools/power/x86/turbostat - ''; - - meta = with lib; { - description = "Report processor frequency and idle statistics"; - mainProgram = "turbostat"; - homepage = "https://www.kernel.org/"; - license = licenses.gpl2; - platforms = [ "i686-linux" "x86_64-linux" ]; # x86-specific - }; -} - diff --git a/pkgs/os-specific/linux/tuxedo-keyboard/default.nix b/pkgs/os-specific/linux/tuxedo-keyboard/default.nix deleted file mode 100644 index 2e0a13846f32..000000000000 --- a/pkgs/os-specific/linux/tuxedo-keyboard/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, linuxHeaders, pahole }: - -stdenv.mkDerivation (finalAttrs: { - pname = "tuxedo-keyboard-${kernel.version}"; - version = "3.2.14"; - - src = fetchFromGitHub { - owner = "tuxedocomputers"; - repo = "tuxedo-keyboard"; - rev = "v${finalAttrs.version}"; - hash = "sha256-L3NsUUKA/snUcRWwlZidsBiTznhfulNldidEDDmNOkw="; - }; - - buildInputs = [ - pahole - linuxHeaders - ]; - - makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; - - installPhase = '' - runHook preInstall - - mkdir -p "$out/lib/modules/${kernel.modDirVersion}" - - for module in clevo_acpi.ko clevo_wmi.ko tuxedo_keyboard.ko tuxedo_io/tuxedo_io.ko uniwill_wmi.ko; do - mv src/$module $out/lib/modules/${kernel.modDirVersion} - done - - runHook postInstall - ''; - - meta = { - broken = stdenv.isAarch64 || (lib.versionOlder kernel.version "5.5"); - description = "Keyboard and hardware I/O driver for TUXEDO Computers laptops"; - homepage = "https://github.com/tuxedocomputers/tuxedo-keyboard/"; - license = lib.licenses.gpl3Plus; - longDescription = '' - This driver provides support for Fn keys, brightness/color/mode for most TUXEDO - keyboards (except white backlight-only models). - - Can be used with the "hardware.tuxedo-keyboard" NixOS module. - ''; - maintainers = [ lib.maintainers.blanky0230 ]; - platforms = lib.platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/tuxedo-rs/default.nix b/pkgs/os-specific/linux/tuxedo-rs/default.nix deleted file mode 100644 index d6b09df678a8..000000000000 --- a/pkgs/os-specific/linux/tuxedo-rs/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ lib -, fetchFromGitHub -, rustPlatform -, testers -, tuxedo-rs -}: -rustPlatform.buildRustPackage rec { - pname = "tuxedo-rs"; - version = "0.3.1"; - - # NOTE: This src is shared with tailor-gui. - # When updating, the tailor-gui.cargoDeps hash needs to be updated. - src = fetchFromGitHub { - owner = "AaronErhardt"; - repo = "tuxedo-rs"; - rev = "tailor-v${version}"; - hash = "sha256-+NzwUs8TZsA0us9hI1UmEKdiOo9IqTRmTOHs4xmC7MY="; - }; - - - # Some of the tests are impure and rely on files in /etc/tailord - doCheck = false; - - cargoHash = "sha256-HtyCKQ0xDIXevgr4FAnVJcDI8G6vR9fLHFghe9+ADiU="; - - passthru.tests.version = testers.testVersion { - package = tuxedo-rs; - command = "${meta.mainProgram} --version"; - version = version; - }; - - postInstall = '' - install -Dm444 tailord/com.tux.Tailor.conf -t $out/share/dbus-1/system.d - ''; - - meta = with lib; { - description = "Rust utilities for interacting with hardware from TUXEDO Computers"; - longDescription = '' - An alternative to the TUXEDO Control Center daemon. - - Contains the following binaries: - - tailord: Daemon handling fan, keyboard and general HW support for Tuxedo laptops - - tailor: CLI - ''; - homepage = "https://github.com/AaronErhardt/tuxedo-rs"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ mrcjkb xaverdh ]; - platforms = platforms.linux; - mainProgram = "tailor"; - }; -} diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix deleted file mode 100644 index 11b2ed28fb3f..000000000000 --- a/pkgs/os-specific/linux/udisks/2-default.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, substituteAll, pkg-config, gnused, autoreconfHook -, gtk-doc, acl, systemd, glib, libatasmart, polkit, coreutils, bash, which -, expat, libxslt, docbook_xsl, util-linux, mdadm, libgudev, libblockdev, parted -, gobject-introspection, docbook_xml_dtd_412, docbook_xml_dtd_43 -, xfsprogs, f2fs-tools, dosfstools, e2fsprogs, btrfs-progs, exfat, nilfs-utils, ntfs3g -, nixosTests -}: - -stdenv.mkDerivation rec { - pname = "udisks"; - version = "2.10.1"; - - src = fetchFromGitHub { - owner = "storaged-project"; - repo = "udisks"; - rev = "${pname}-${version}"; - sha256 = "sha256-L8jr1+SJWsCizkPXC8VKDy2eVa7/FpqdB8SkBYq6vwc="; - }; - - outputs = [ "out" "man" "dev" ] ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "devdoc"; - - patches = [ - (substituteAll { - src = ./fix-paths.patch; - bash = "${bash}/bin/bash"; - false = "${coreutils}/bin/false"; - mdadm = "${mdadm}/bin/mdadm"; - mkswap = "${util-linux}/bin/mkswap"; - sed = "${gnused}/bin/sed"; - sh = "${bash}/bin/sh"; - sleep = "${coreutils}/bin/sleep"; - swapon = "${util-linux}/bin/swapon"; - true = "${coreutils}/bin/true"; - }) - (substituteAll { - src = ./force-path.patch; - path = lib.makeBinPath [ - btrfs-progs coreutils dosfstools e2fsprogs exfat f2fs-tools nilfs-utils - xfsprogs ntfs3g parted util-linux - ]; - }) - ]; - - strictDeps = true; - # pkg-config had to be in both to find gtk-doc and gobject-introspection - depsBuildBuild = [ pkg-config ]; - nativeBuildInputs = [ - autoreconfHook which gobject-introspection pkg-config - gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl - ]; - - postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' - substituteInPlace udisks/udisksclient.c \ - --replace 'defined( __GNUC_PREREQ)' 1 \ - --replace '__GNUC_PREREQ(4,6)' 1 - ''; - - buildInputs = [ - expat libgudev libblockdev acl systemd glib libatasmart polkit util-linux - ]; - - preConfigure = "NOCONFIGURE=1 ./autogen.sh"; - - configureFlags = [ - (lib.enableFeature (stdenv.buildPlatform == stdenv.hostPlatform) "gtk-doc") - "--sysconfdir=/etc" - "--localstatedir=/var" - "--with-systemdsystemunitdir=$(out)/etc/systemd/system" - "--with-udevdir=$(out)/lib/udev" - "--with-tmpfilesdir=no" - ]; - - makeFlags = [ - "INTROSPECTION_GIRDIR=$(dev)/share/gir-1.0" - "INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0" - ]; - - installFlags = [ - "sysconfdir=${placeholder "out"}/etc" - ]; - - enableParallelBuilding = true; - - doCheck = true; - - passthru = { - inherit libblockdev; - tests.vm = nixosTests.udisks2; - }; - - meta = with lib; { - description = "A daemon, tools and libraries to access and manipulate disks, storage devices and technologies"; - homepage = "https://www.freedesktop.org/wiki/Software/udisks/"; - license = with licenses; [ lgpl2Plus gpl2Plus ]; # lgpl2Plus for the library, gpl2Plus for the tools & daemon - maintainers = teams.freedesktop.members ++ (with maintainers; [ johnazoidberg ]); - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/udisks/fix-paths.patch b/pkgs/os-specific/linux/udisks/fix-paths.patch deleted file mode 100644 index 76d44b96d551..000000000000 --- a/pkgs/os-specific/linux/udisks/fix-paths.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/data/80-udisks2.rules b/data/80-udisks2.rules -index ca802cce..bfd1c29e 100644 ---- a/data/80-udisks2.rules -+++ b/data/80-udisks2.rules -@@ -17,9 +17,9 @@ ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="?*", GOTO="udisks_probe_end" - # - # TODO: file bug against mdadm(8) to have --export-prefix option that can be used with e.g. UDISKS_MD_MEMBER - # --SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="raid", ENV{ID_FS_TYPE}=="linux_raid_member", ENV{UDISKS_MD_MEMBER_LEVEL}=="", IMPORT{program}="/bin/sh -c '/sbin/mdadm --examine --export $tempnode | /bin/sed s/^MD_/UDISKS_MD_MEMBER_/g'" -+SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="raid", ENV{ID_FS_TYPE}=="linux_raid_member", ENV{UDISKS_MD_MEMBER_LEVEL}=="", IMPORT{program}="@sh@ -c '@mdadm@ --examine --export $tempnode | @sed@ s/^MD_/UDISKS_MD_MEMBER_/g'" - --SUBSYSTEM=="block", KERNEL=="md*", ENV{DEVTYPE}!="partition", IMPORT{program}="/bin/sh -c '/sbin/mdadm --detail --export $tempnode | /bin/sed s/^MD_/UDISKS_MD_/g'" -+SUBSYSTEM=="block", KERNEL=="md*", ENV{DEVTYPE}!="partition", IMPORT{program}="@sh@ -c '@mdadm@ --detail --export $tempnode | @sed@ s/^MD_/UDISKS_MD_/g'" - - LABEL="udisks_probe_end" - -diff --git a/src/tests/test.c b/src/tests/test.c -index 3ddbdf2c..a87f960a 100644 ---- a/src/tests/test.c -+++ b/src/tests/test.c -@@ -71,7 +71,7 @@ test_spawned_job_successful (void) - { - UDisksSpawnedJob *job; - -- job = udisks_spawned_job_new ("/bin/true", NULL, getuid (), geteuid (), NULL, NULL); -+ job = udisks_spawned_job_new ("@true@", NULL, getuid (), geteuid (), NULL, NULL); - udisks_spawned_job_start (job); - _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_success), NULL); - g_object_unref (job); -@@ -84,10 +84,10 @@ test_spawned_job_failure (void) - { - UDisksSpawnedJob *job; - -- job = udisks_spawned_job_new ("/bin/false", NULL, getuid (), geteuid (), NULL, NULL); -+ job = udisks_spawned_job_new ("@false@", NULL, getuid (), geteuid (), NULL, NULL); - udisks_spawned_job_start (job); - _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_failure), -- (gpointer) "Command-line `/bin/false' exited with non-zero exit status 1: "); -+ (gpointer) "Command-line `@false@' exited with non-zero exit status 1: "); - g_object_unref (job); - } - -@@ -119,7 +119,7 @@ test_spawned_job_cancelled_at_start (void) - - cancellable = g_cancellable_new (); - g_cancellable_cancel (cancellable); -- job = udisks_spawned_job_new ("/bin/true", NULL, getuid (), geteuid (), NULL, cancellable); -+ job = udisks_spawned_job_new ("@true@", NULL, getuid (), geteuid (), NULL, cancellable); - udisks_spawned_job_start (job); - _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_failure), - (gpointer) "Operation was cancelled (g-io-error-quark, 19)"); -@@ -144,7 +144,7 @@ test_spawned_job_cancelled_midway (void) - GCancellable *cancellable; - - cancellable = g_cancellable_new (); -- job = udisks_spawned_job_new ("/bin/sleep 0.5", NULL, getuid (), geteuid (), NULL, cancellable); -+ job = udisks_spawned_job_new ("@sleep@ 0.5", NULL, getuid (), geteuid (), NULL, cancellable); - udisks_spawned_job_start (job); - g_timeout_add (10, on_timeout, cancellable); /* 10 msec */ - _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_failure), -@@ -197,7 +197,7 @@ test_spawned_job_premature_termination (void) - { - UDisksSpawnedJob *job; - -- job = udisks_spawned_job_new ("/bin/sleep 1000", NULL, getuid (), geteuid (), NULL, NULL /* GCancellable */); -+ job = udisks_spawned_job_new ("@sleep@ 1000", NULL, getuid (), geteuid (), NULL, NULL /* GCancellable */); - udisks_spawned_job_start (job); - g_object_unref (job); - } diff --git a/pkgs/os-specific/linux/udisks/force-path.patch b/pkgs/os-specific/linux/udisks/force-path.patch deleted file mode 100644 index 741f53544bee..000000000000 --- a/pkgs/os-specific/linux/udisks/force-path.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/src/main.c b/src/main.c -index b4dbf9e0..3171fa34 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -144,8 +144,7 @@ main (int argc, - g_setenv("G_MESSAGES_DEBUG", "udisks", FALSE); - } - -- if (g_getenv ("PATH") == NULL) -- g_setenv ("PATH", "/usr/bin:/bin:/usr/sbin:/sbin", TRUE); -+ g_setenv ("PATH", "@path@", TRUE); - - udisks_notice ("udisks daemon version %s starting", PACKAGE_VERSION); - --- -2.33.1 - diff --git a/pkgs/os-specific/linux/uhk-agent/default.nix b/pkgs/os-specific/linux/uhk-agent/default.nix deleted file mode 100644 index 0d6b3ccd515c..000000000000 --- a/pkgs/os-specific/linux/uhk-agent/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ lib -, stdenv -, stdenvNoCC -, fetchurl -, appimageTools -, electron -, makeWrapper -, asar -, autoPatchelfHook -, libusb1 -}: - -let - pname = "uhk-agent"; - version = "4.0.2"; - - src = fetchurl { - url = "https://github.com/UltimateHackingKeyboard/agent/releases/download/v${version}/UHK.Agent-${version}-linux-x86_64.AppImage"; - name = "${pname}-${version}.AppImage"; - sha256 = "sha256-yx5hOmb1la+vNh8x0PM3edcMn4ojdwzNmGBUg/BH7wE="; - }; - - appimageContents = appimageTools.extract { - name = "${pname}-${version}"; - inherit src; - }; -in -stdenvNoCC.mkDerivation { - inherit pname version src; - - dontUnpack = true; - - nativeBuildInputs = [ - asar - makeWrapper - autoPatchelfHook - ]; - - buildInputs = [ - stdenv.cc.cc.lib - libusb1 - ]; - - autoPatchelfIgnoreMissingDeps = [ - "libc.musl-x86_64.so.1" - ]; - - installPhase = '' - runHook preInstall - - mkdir -p "$out"/{opt,share/applications} - - cp -r --no-preserve=mode "${appimageContents}/resources" "$out/opt/${pname}" - cp -r --no-preserve=mode "${appimageContents}/usr/share/icons" "$out/share/icons" - cp -r --no-preserve=mode "${appimageContents}/${pname}.desktop" "$out/share/applications/${pname}.desktop" - - substituteInPlace "$out/share/applications/${pname}.desktop" \ - --replace "Exec=AppRun" "Exec=${pname}" - - asar extract "$out/opt/${pname}/app.asar" "$out/opt/${pname}/app.asar.unpacked" - rm "$out/opt/${pname}/app.asar" - - makeWrapper "${electron}/bin/electron" "$out/bin/${pname}" \ - --add-flags "$out/opt/${pname}/app.asar.unpacked" \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ - --set-default ELECTRON_IS_DEV 0 \ - --inherit-argv0 - - runHook postInstall - ''; - - meta = with lib; { - description = "Agent is the configuration application of the Ultimate Hacking Keyboard"; - homepage = "https://github.com/UltimateHackingKeyboard/agent"; - license = licenses.unfreeRedistributable; - maintainers = with maintainers; [ ngiger nickcao ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/uhk-udev-rules/default.nix b/pkgs/os-specific/linux/uhk-udev-rules/default.nix deleted file mode 100644 index 1b68c46b6571..000000000000 --- a/pkgs/os-specific/linux/uhk-udev-rules/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib, stdenv, uhk-agent }: - -stdenv.mkDerivation { - pname = "uhk-udev-rules"; - inherit (uhk-agent) version; - - dontUnpack = true; - dontBuild = true; - installPhase = '' - runHook preInstall - install -D -m 644 ${uhk-agent.out}/opt/uhk-agent/rules/50-uhk60.rules $out/lib/udev/rules.d/50-uhk60.rules - runHook postInstall - ''; - - meta = { - description = "udev rules for UHK keyboards from https://ultimatehackingkeyboard.com"; - inherit (uhk-agent.meta) license; - maintainers = [ lib.maintainers.ngiger ]; - }; -} diff --git a/pkgs/os-specific/linux/ulogd/default.nix b/pkgs/os-specific/linux/ulogd/default.nix deleted file mode 100644 index 533db8f19c84..000000000000 --- a/pkgs/os-specific/linux/ulogd/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ stdenv, lib, fetchurl, gnumake, libnetfilter_acct, libnetfilter_conntrack -, libnetfilter_log, libmnl, libnfnetlink, automake, autoconf, autogen, libtool -, postgresql, libmysqlclient, sqlite -, pkg-config, libpcap, linuxdoc-tools, autoreconfHook, nixosTests }: - -stdenv.mkDerivation rec { - version = "2.0.8"; - pname = "ulogd"; - - src = fetchurl { - url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2"; - hash = "sha256-Tq1sOXDD9X+h6J/i18xIO6b+K9GwhwFSHgs6/WZ98pE="; - }; - - outputs = [ "out" "doc" "man" ]; - - postPatch = '' - substituteInPlace ulogd.8 --replace "/usr/share/doc" "$doc/share/doc" - ''; - - postBuild = '' - pushd doc/ - linuxdoc --backend=txt --filter ulogd.sgml - linuxdoc --backend=html --split=0 ulogd.sgml - popd - ''; - - postInstall = '' - install -Dm444 -t $out/share/doc/${pname} ulogd.conf doc/ulogd.txt doc/ulogd.html README doc/*table - install -Dm444 -t $out/share/doc/${pname}-mysql doc/mysql*.sql - install -Dm444 -t $out/share/doc/${pname}-pgsql doc/pgsql*.sql - ''; - - buildInputs = [ - libnetfilter_acct - libnetfilter_conntrack - libnetfilter_log - libmnl - libnfnetlink - libpcap - postgresql - libmysqlclient - sqlite - ]; - - nativeBuildInputs = [ - autoreconfHook - pkg-config - automake - autoconf - autogen - libtool - linuxdoc-tools - ]; - - passthru.tests = { inherit (nixosTests) ulogd; }; - - meta = with lib; { - description = "Userspace logging daemon for netfilter/iptables"; - mainProgram = "ulogd"; - - longDescription = '' - Logging daemon that reads event messages coming from the Netfilter - connection tracking, the Netfilter packet logging subsystem and from the - Netfilter accounting subsystem. You have to enable support for connection - tracking event delivery; ctnetlink and the NFLOG target in your Linux - kernel 2.6.x or load their respective modules. The deprecated ULOG target - (which has been superseded by NFLOG) is also supported. - - The received messages can be logged into files or into a MySQL, SQLite3 - or PostgreSQL database. IPFIX and Graphite output are also supported. - ''; - - homepage = "https://www.netfilter.org/projects/ulogd/index.html"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ p-h ]; - }; -} diff --git a/pkgs/os-specific/linux/ultrablue-server/default.nix b/pkgs/os-specific/linux/ultrablue-server/default.nix deleted file mode 100644 index 1d3cc69fae10..000000000000 --- a/pkgs/os-specific/linux/ultrablue-server/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib -, fetchFromGitHub -, buildGoModule -}: - -buildGoModule rec { - pname = "ultrablue-server"; - version = "unstable-fosdem2023"; - - src = fetchFromGitHub { - owner = "ANSSI-FR"; - repo = "ultrablue"; - # Do not use a more recent - rev = "tags/fosdem-2023"; - hash = "sha256-rnUbgZI+SycYCDUoSziOy+WxRFvyM3XJWJnk3+t0eb4="; - # rev = "6de04af6e353e38c030539c5678e5918f64be37e"; - }; - - sourceRoot = "${src.name}/server"; - - vendorHash = "sha256-249LWguTHIF0HNIo8CsE/HWpAtBw4P46VPvlTARLTpw="; - doCheck = false; - - meta = with lib; { - description = "User-friendly Lightweight TPM Remote Attestation over Bluetooth"; - mainProgram = "ultrablue-server"; - homepage = "https://github.com/ANSSI-FR/ultrablue"; - license = licenses.asl20; - platforms = platforms.linux; - maintainers = with maintainers; [ raitobezarius ]; - }; -} diff --git a/pkgs/os-specific/linux/undervolt/default.nix b/pkgs/os-specific/linux/undervolt/default.nix deleted file mode 100644 index d720031eb8ac..000000000000 --- a/pkgs/os-specific/linux/undervolt/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, fetchFromGitHub, python3Packages }: - -python3Packages.buildPythonApplication rec { - version = "0.4.0"; - pname = "undervolt"; - - src = fetchFromGitHub { - owner = "georgewhewell"; - repo = "undervolt"; - rev = version; - hash = "sha256-G+CK/lnZXkQdyNZPqY9P3owVJsd22H3K8wSpjHFG0ow="; - }; - - meta = with lib; { - homepage = "https://github.com/georgewhewell/undervolt/"; - description = "A program for undervolting Intel CPUs on Linux"; - mainProgram = "undervolt"; - - longDescription = '' - Undervolt is a program for undervolting Intel CPUs under Linux. It works in a similar - manner to the Windows program ThrottleStop (i.e, MSR 0x150). You can apply a fixed - voltage offset to one of 5 voltage planes, and override your systems temperature - target (CPU will throttle when this temperature is reached). - ''; - license = licenses.gpl2; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/unscd/0001-adjust-socket-paths-for-nixos.patch b/pkgs/os-specific/linux/unscd/0001-adjust-socket-paths-for-nixos.patch deleted file mode 100644 index 941b5c90a624..000000000000 --- a/pkgs/os-specific/linux/unscd/0001-adjust-socket-paths-for-nixos.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9d76d183a97cb667a1ab6d95af69d6db745215df Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <milan@petabyte.dev> -Date: Tue, 1 Jun 2021 16:55:45 +0200 -Subject: [PATCH] adjust socket paths for nixos - -The original unscd would crash, because it is not allowed to create its -legacy socket at /var/run/.nscd_socket. - -This socket is only required for very old glibc versions, but removing it -is currently non-trivial, so we just move it somewhere, where it is -allowed to be created. A patch has been submitted upstream to make this -hack unnecessary. - -Also change /var/run to /run, since we shouldn't be using /var/run -anymore. ---- - nscd.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/nscd.c b/nscd.c -index a71e474..0cd7106 100644 ---- a/nscd.c -+++ b/nscd.c -@@ -2100,10 +2100,10 @@ static void main_loop(void) - ** Initialization - */ - --#define NSCD_PIDFILE "/var/run/nscd/nscd.pid" --#define NSCD_DIR "/var/run/nscd" --#define NSCD_SOCKET "/var/run/nscd/socket" --#define NSCD_SOCKET_OLD "/var/run/.nscd_socket" -+#define NSCD_PIDFILE "/run/nscd/nscd.pid" -+#define NSCD_DIR "/run/nscd" -+#define NSCD_SOCKET "/run/nscd/socket" -+#define NSCD_SOCKET_OLD "/run/nscd/socket_legacy" - - static smallint wrote_pidfile; - --- -2.31.1 - diff --git a/pkgs/os-specific/linux/unscd/default.nix b/pkgs/os-specific/linux/unscd/default.nix deleted file mode 100644 index 9f77fa01b0ee..000000000000 --- a/pkgs/os-specific/linux/unscd/default.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ fetchurl, fetchpatch, stdenv, systemd, lib }: - -stdenv.mkDerivation rec { - pname = "unscd"; - version = "0.54"; - - src = fetchurl { - url = "https://busybox.net/~vda/unscd/nscd-${version}.c"; - sha256 = "0iv4iwgs3sjnqnwd7dpcw6s7i4ar9q89vgsms32clx14fdqjrqch"; - }; - - unpackPhase = '' - runHook preUnpack - cp $src nscd.c - chmod u+w nscd.c - runHook postUnpack - ''; - - patches = [ - # Patches from Debian that have not (yet) been included upstream, but are useful to us - (fetchpatch { - url = "https://sources.debian.org/data/main/u/${pname}/${version}-1/debian/patches/change_invalidate_request_info_output"; - sha256 = "17whakazpisiq9nnw3zybaf7v3lqkww7n6jkx0igxv4z2r3mby6l"; - }) - (fetchpatch { - url = "https://sources.debian.org/data/main/u/${pname}/${version}-1/debian/patches/support_large_numbers_in_config"; - sha256 = "0jrqb4cwclwirpqfb6cvnmiff3sm2jhxnjwxa7h0wx78sg0y3bpp"; - }) - (fetchpatch { - url = "https://sources.debian.org/data/main/u/${pname}/${version}-1/debian/patches/no_debug_on_invalidate"; - sha256 = "0znwzb522zgikb0mm7awzpvvmy0wf5z7l3jgjlkdpgj0scxgz86w"; - }) - (fetchpatch { - url = "https://sources.debian.org/data/main/u/${pname}/${version}-1/debian/patches/notify_systemd_about_successful_startup"; - sha256 = "1ipwmbfwm65yisy74nig9960vxpjx683l3skgxfgssfx1jb9z2mc"; - }) - - # The original unscd would crash, because it is not allowed to create its - # legacy socket at /var/run/.nscd_socket. - # This socket is only required for very old glibc versions, but removing it - # is currently non-trivial, so we just move it somewhere, where it is - # allowed to be created. A patch has been submitted upstream to make this - # hack unnecessary. - # Also change /var/run to /run, since we shouldn't be using /var/run - # anymore. - # See also: http://lists.busybox.net/pipermail/busybox/2021-June/088866.html - ./0001-adjust-socket-paths-for-nixos.patch - ]; - - buildInputs = [ systemd ]; - - buildPhase = '' - runHook preBuild - gcc -Wall \ - -Wl,--sort-section -Wl,alignment \ - -Wl,--sort-common \ - -fomit-frame-pointer \ - -lsystemd \ - -o nscd nscd.c - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - install -Dm755 -t $out/bin nscd - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://busybox.net/~vda/unscd/"; - description = "Less buggy replacement for the glibc name service cache daemon"; - mainProgram = "nscd"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/unstick/default.nix b/pkgs/os-specific/linux/unstick/default.nix deleted file mode 100644 index 3c61e26b335b..000000000000 --- a/pkgs/os-specific/linux/unstick/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config, libseccomp }: - -stdenv.mkDerivation rec { - pname = "unstick"; - version = "0.1.0"; - - src = fetchFromGitHub { - owner = "kwohlfahrt"; - repo = "unstick"; - rev = "effee9aa242ca12dc94cc6e96bc073f4cc9e8657"; - sha256 = "08la3jmmzlf4pm48bf9zx4cqj9gbqalpqy0s57bh5vfsdk74nnhv"; - }; - - sourceRoot = "${src.name}/src"; - - nativeBuildInputs = [ meson ninja pkg-config ]; - buildInputs = [ libseccomp ]; - - meta = { - homepage = "https://github.com/kwohlfahrt/unstick"; - description = "Silently eats chmod commands forbidden by Nix"; - mainProgram = "unstick"; - license = lib.licenses.gpl3; - platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ kwohlfahrt ]; - }; -} diff --git a/pkgs/os-specific/linux/untie/default.nix b/pkgs/os-specific/linux/untie/default.nix deleted file mode 100644 index 7d96631deb86..000000000000 --- a/pkgs/os-specific/linux/untie/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenv, fetchurl }: - -stdenv.mkDerivation rec { - pname = "untie"; - version = "0.3"; - src = fetchurl { - url = "http://guichaz.free.fr/untie/files/${pname}-${version}.tar.bz2"; - sha256 = "1334ngvbi4arcch462mzi5vxvxck4sy1nf0m58116d9xmx83ak0m"; - }; - - makeFlags = [ "PREFIX=$(out)" ]; - - meta = with lib; { - description = "A tool to run processes untied from some of the namespaces"; - mainProgram = "untie"; - maintainers = with maintainers; [ raskin ]; - platforms = platforms.linux; - license = licenses.gpl2Plus; - }; - - passthru = { - updateInfo = { - downloadPage = "http://guichaz.free.fr/untie"; - }; - }; -} diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix deleted file mode 100644 index 8a1d79a9d7bd..000000000000 --- a/pkgs/os-specific/linux/upower/default.nix +++ /dev/null @@ -1,219 +0,0 @@ -{ lib -, stdenv -, fetchFromGitLab -, makeWrapper -, pkg-config -, libxslt -, meson -, ninja -, python3 -, dbus -, umockdev -, libeatmydata -, gtk-doc -, docbook-xsl-nons -, udev -, libgudev -, libusb1 -, glib -, gettext -, systemd -, nixosTests -, useIMobileDevice ? true -, libimobiledevice -, withDocs ? withIntrospection -, mesonEmulatorHook -, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages -, buildPackages -, gobject-introspection -}: - -assert withDocs -> withIntrospection; - -stdenv.mkDerivation (finalAttrs: { - pname = "upower"; - version = "1.90.4"; - - outputs = [ "out" "dev" "installedTests" ] - ++ lib.optionals withDocs [ "devdoc" ]; - - src = fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "upower"; - repo = "upower"; - rev = "v${finalAttrs.version}"; - hash = "sha256-5twHuDLisVF07Y5KYwlqWMi12+p6UpARJvoBN/+tX2o="; - }; - - patches = lib.optionals (stdenv.hostPlatform.system == "i686-linux") [ - # Remove when this is fixed upstream: - # https://gitlab.freedesktop.org/upower/upower/-/issues/214 - ./i686-test-remove-battery-check.patch - ] ++ [ - ./installed-tests-path.patch - ]; - - strictDeps = true; - - depsBuildBuild = [ - pkg-config - ]; - - nativeBuildInputs = [ - meson - ninja - python3 - docbook-xsl-nons - gettext - libxslt - makeWrapper - pkg-config - glib - ] ++ lib.optionals withIntrospection [ - gobject-introspection - ] ++ lib.optionals withDocs [ - gtk-doc - ] ++ lib.optionals (withDocs && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ - mesonEmulatorHook - ]; - - buildInputs = [ - libgudev - libusb1 - udev - systemd - # Duplicate from nativeCheckInputs until https://github.com/NixOS/nixpkgs/issues/161570 is solved - umockdev - - # For installed tests. - (python3.withPackages (pp: [ - pp.dbus-python - pp.python-dbusmock - pp.pygobject3 - pp.packaging - ])) - ] ++ lib.optionals useIMobileDevice [ - libimobiledevice - ]; - - nativeCheckInputs = [ - python3.pkgs.dbus-python - python3.pkgs.python-dbusmock - python3.pkgs.pygobject3 - dbus - umockdev - libeatmydata - python3.pkgs.packaging - ]; - - propagatedBuildInputs = [ - glib - ]; - - mesonFlags = [ - "--localstatedir=/var" - "--sysconfdir=/etc" - "-Dos_backend=linux" - "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system" - "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d" - "-Dudevhwdbdir=${placeholder "out"}/lib/udev/hwdb.d" - (lib.mesonEnable "introspection" withIntrospection) - (lib.mesonBool "gtk-doc" withDocs) - "-Dinstalled_test_prefix=${placeholder "installedTests"}" - ]; - - doCheck = true; - - postPatch = '' - patchShebangs src/linux/integration-test.py - patchShebangs src/linux/unittest_inspector.py - - substituteInPlace src/linux/integration-test.py \ - --replace "/usr/share/dbus-1" "$out/share/dbus-1" - ''; - - preCheck = '' - # Our gobject-introspection patches make the shared library paths absolute - # in the GIR files. When running tests, the library is not yet installed, - # though, so we need to replace the absolute path with a local one during build. - mkdir -p "$out/lib" - ln -s "$PWD/libupower-glib/libupower-glib.so" "$out/lib/libupower-glib.so.3" - ''; - - checkPhase = '' - runHook preCheck - - # Slow fsync calls can make self-test fail: - # https://gitlab.freedesktop.org/upower/upower/-/issues/195 - eatmydata meson test --print-errorlogs - - runHook postCheck - ''; - - postCheck = '' - # Undo patchShebangs from postPatch so that it can be replaced with runtime shebang - # unittest_inspector.py intentionally not reverted because it would trigger - # meson rebuild during install and it is not used at runtime anyway. - sed -Ei 's~#!.+/bin/python3~#!/usr/bin/python3~' \ - ../src/linux/integration-test.py - - # Undo preCheck installation since DESTDIR hack expects outputs to not exist. - rm "$out/lib/libupower-glib.so.3" - rmdir "$out/lib" "$out" - ''; - - postInstall = '' - # Move stuff from DESTDIR to proper location. - for o in $(getAllOutputNames); do - # devdoc is created later by _multioutDocs hook. - if [[ "$o" = "devdoc" ]]; then continue; fi - mv "$DESTDIR''${!o}" "$(dirname "''${!o}")" - done - - mv "$DESTDIR/var" "$out" - # The /etc already exist so we need to merge it. - cp --recursive "$DESTDIR/etc" "$out" - rm --recursive "$DESTDIR/etc" - - # Ensure we did not forget to install anything. - rmdir --parents --ignore-fail-on-non-empty "$DESTDIR${builtins.storeDir}" - ! test -e "$DESTDIR" - ''; - - postFixup = '' - wrapProgram "$installedTests/libexec/upower/integration-test.py" \ - --prefix GI_TYPELIB_PATH : "${lib.makeSearchPath "lib/girepository-1.0" [ - "$out" - umockdev.out - ]}" \ - --prefix PATH : "${lib.makeBinPath [ - umockdev - ]}" - ''; - - env = { - # HACK: We want to install configuration files to $out/etc - # but upower should read them from /etc on a NixOS system. - # With autotools, it was possible to override Make variables - # at install time but Meson does not support this - # so we need to convince it to install all files to a temporary - # location using DESTDIR and then move it to proper one in postInstall. - DESTDIR = "dest"; - }; - - passthru = { - tests = { - installedTests = nixosTests.installed-tests.upower; - }; - }; - - meta = with lib; { - homepage = "https://upower.freedesktop.org/"; - changelog = "https://gitlab.freedesktop.org/upower/upower/-/blob/v${finalAttrs.version}/NEWS"; - description = "A D-Bus service for power management"; - mainProgram = "upower"; - maintainers = teams.freedesktop.members; - platforms = platforms.linux; - license = licenses.gpl2Plus; - }; -}) diff --git a/pkgs/os-specific/linux/upower/i686-test-remove-battery-check.patch b/pkgs/os-specific/linux/upower/i686-test-remove-battery-check.patch deleted file mode 100644 index c9121dfb038a..000000000000 --- a/pkgs/os-specific/linux/upower/i686-test-remove-battery-check.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -u "a/src/linux/integration-test.py" "b/src/linux/integration-test.py" ---- a/src/linux/integration-test.py -+++ b/src/linux/integration-test.py -@@ -870,5 +870,4 @@ - self.assertEqual(self.get_dbus_dev_property(bat0_up, 'EnergyFull'), 126.0) - self.assertEqual(self.get_dbus_dev_property(bat0_up, 'EnergyFullDesign'), 132.0) - self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Voltage'), 12.0) -- self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), 40.0) - self.stop_daemon() - - -Diff finished. Tue Nov 8 16:48:57 2022 diff --git a/pkgs/os-specific/linux/upower/installed-tests-path.patch b/pkgs/os-specific/linux/upower/installed-tests-path.patch deleted file mode 100644 index 367f3eab096b..000000000000 --- a/pkgs/os-specific/linux/upower/installed-tests-path.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/meson_options.txt b/meson_options.txt -index eec3659..f064a1b 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -6,6 +6,10 @@ option('gtk-doc', - type : 'boolean', - value : 'true', - description : 'Build developer documentation') -+option('installed_test_prefix', -+ type: 'string', -+ value: '', -+ description: 'Prefix for installed tests') - option('introspection', - type : 'feature', - value : 'auto', -diff --git a/src/meson.build b/src/meson.build -index a2352ac..c1f25ac 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -85,6 +85,7 @@ install_subdir('does-not-exist', install_dir: historydir, strip_directory : true - - cdata = configuration_data() - cdata.set('libexecdir', get_option('prefix') / get_option('libexecdir')) -+cdata.set('installed_test_bindir', get_option('installed_test_prefix') / 'libexec' / 'upower') - cdata.set('historydir', historydir) - - configure_file( -@@ -147,16 +148,16 @@ if os_backend == 'linux' and gobject_introspection.found() - 'linux/integration-test.py', - 'linux/output_checker.py', - ], -- install_dir: get_option('prefix') / get_option('libexecdir') / 'upower' -+ install_dir: get_option('installed_test_prefix') / 'libexec' / 'upower' - ) - install_subdir('linux/tests/', -- install_dir: get_option('prefix') / get_option('libexecdir') / 'upower' -+ install_dir: get_option('installed_test_prefix') / 'libexec' / 'upower' - ) - - configure_file( - input: 'upower-integration.test.in', - output: 'upower-integration.test', -- install_dir: get_option('datadir') / 'installed-tests' / 'upower', -+ install_dir: get_option('installed_test_prefix') / 'share' / 'installed-tests' / 'upower', - configuration: cdata - ) - endif -diff --git a/src/upower-integration.test.in b/src/upower-integration.test.in -index 151ded0..b0a9bec 100644 ---- a/src/upower-integration.test.in -+++ b/src/upower-integration.test.in -@@ -1,3 +1,3 @@ - [Test] - Type=session --Exec=@libexecdir@/upower/integration-test.py -+Exec=@installed_test_bindir@/integration-test.py diff --git a/pkgs/os-specific/linux/usb-blaster-udev-rules/default.nix b/pkgs/os-specific/linux/usb-blaster-udev-rules/default.nix deleted file mode 100644 index d04c8ddb9398..000000000000 --- a/pkgs/os-specific/linux/usb-blaster-udev-rules/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, stdenvNoCC }: - -stdenvNoCC.mkDerivation rec { - name = "usb-blaster-udev-rules"; - - udevRules = ./usb-blaster.rules; - dontUnpack = true; - - installPhase = '' - install -Dm 644 "${udevRules}" "$out/lib/udev/rules.d/51-usbblaster.rules" - ''; - - meta = with lib; { - description = "udev rules that give NixOS permission to communicate with usb blasters"; - longDescription = '' - udev rules that give NixOS permission to communicate with usb blasters. - To use it under NixOS, add - - services.udev.packages = [ pkgs.usb-blaster-udev-rules ]; - - to the system configuration. - ''; - license = licenses.free; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/usb-blaster-udev-rules/usb-blaster.rules b/pkgs/os-specific/linux/usb-blaster-udev-rules/usb-blaster.rules deleted file mode 100644 index 0add604ee819..000000000000 --- a/pkgs/os-specific/linux/usb-blaster-udev-rules/usb-blaster.rules +++ /dev/null @@ -1,8 +0,0 @@ -# USB-Blaster -ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", TAG+="uaccess" -ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6002", TAG+="uaccess" -ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6003", TAG+="uaccess" - -# USB-Blaster II -ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6010", TAG+="uaccess" -ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6810", TAG+="uaccess" diff --git a/pkgs/os-specific/linux/usbguard-notifier/default.nix b/pkgs/os-specific/linux/usbguard-notifier/default.nix deleted file mode 100644 index a9eaa6651f99..000000000000 --- a/pkgs/os-specific/linux/usbguard-notifier/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - fetchpatch, - autoreconfHook, - pkg-config, - libqb, - usbguard, - librsvg, - libnotify, - catch2, - asciidoc, -}: - -stdenv.mkDerivation rec { - pname = "usbguard-notifier"; - version = "0.1.0"; - - src = fetchFromGitHub { - owner = "Cropi"; - repo = pname; - rev = "${pname}-${version}"; - hash = "sha256-gWvCGSbOuey2ELAPD2WCG4q77IClL0S7rE2RaUJDc1I="; - }; - - patches = [ - # gcc-13 compatibility upstream fix: - # https://github.com/Cropi/usbguard-notifier/pull/74 - (fetchpatch { - name = "gcc-13.patch"; - url = "https://github.com/Cropi/usbguard-notifier/commit/f4586b732c8a7379aacbc9899173beeacfd54793.patch"; - hash = "sha256-2q/qD6yEQUPxA/UutGIZKFJ3hHJ8ZlGMZI1wJyMRbmo="; - }) - ]; - - nativeBuildInputs = [ autoreconfHook pkg-config asciidoc ]; - buildInputs = [ libqb usbguard librsvg libnotify ]; - - configureFlags = [ "CPPFLAGS=-I${catch2}/include/catch2" ]; - - prePatch = '' - substituteInPlace configure.ac \ - --replace 'AC_MSG_FAILURE([Cannot detect the systemd system unit dir])' \ - 'systemd_unit_dir="$out/lib/systemd/user"' - ''; - - meta = { - description = "Notifications for detecting usbguard policy and device presence changes"; - homepage = "https://github.com/Cropi/usbguard-notifier"; - maintainers = with lib.maintainers; [ fpletz ]; - platforms = lib.platforms.linux; - license = lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/os-specific/linux/usbguard/default.nix b/pkgs/os-specific/linux/usbguard/default.nix deleted file mode 100644 index e43ee0b421dc..000000000000 --- a/pkgs/os-specific/linux/usbguard/default.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, fetchpatch -, autoreconfHook -, installShellFiles -, nixosTests -, asciidoc -, pkg-config -, libxslt -, libxml2 -, docbook_xml_dtd_45 -, docbook_xsl -, dbus-glib -, libcap_ng -, libqb -, libseccomp -, polkit -, protobuf -, audit -, libsodium -}: - -stdenv.mkDerivation rec { - version = "1.1.2"; - pname = "usbguard"; - - src = fetchFromGitHub { - owner = "USBGuard"; - repo = pname; - rev = "usbguard-${version}"; - sha256 = "sha256-uwNoKczmVOMpkU4KcKTOtbcTHiYVGXjk/rVbqMl5pGk="; - fetchSubmodules = true; - }; - - patches = [ - # Pull upstream fix for gcc-13: - # https://github.com/USBGuard/usbguard/pull/586 - (fetchpatch { - name = "gcc-13.patch"; - url = "https://github.com/USBGuard/usbguard/commit/22b1e0897af977cc96af926c730ff948bd120bb5.patch"; - hash = "sha256-yw0ZHcn6naHcsfsqdBB/aTgCwvEHecew/6HDmjyY2ZA="; - }) - ]; - - nativeBuildInputs = [ - autoreconfHook - installShellFiles - asciidoc - pkg-config - libxslt # xsltproc - libxml2 # xmllint - docbook_xml_dtd_45 - docbook_xsl - dbus-glib # gdbus-codegen - protobuf # protoc - ]; - - buildInputs = [ - dbus-glib - libcap_ng - libqb - libseccomp - libsodium - polkit - protobuf - audit - ]; - - configureFlags = [ - "--with-bundled-catch" - "--with-bundled-pegtl" - "--with-dbus" - "--with-crypto-library=sodium" - "--with-polkit" - ]; - - enableParallelBuilding = true; - - postInstall = '' - installShellCompletion --bash --name usbguard.bash scripts/bash_completion/usbguard - installShellCompletion --zsh --name _usbguard scripts/usbguard-zsh-completion - ''; - - passthru.tests = nixosTests.usbguard; - - meta = with lib; { - description = "The USBGuard software framework helps to protect your computer against BadUSB"; - longDescription = '' - USBGuard is a software framework for implementing USB device authorization - policies (what kind of USB devices are authorized) as well as method of - use policies (how a USB device may interact with the system). Simply put, - it is a USB device whitelisting tool. - ''; - homepage = "https://usbguard.github.io/"; - license = licenses.gpl2Plus; - maintainers = [ maintainers.tnias ]; - }; -} diff --git a/pkgs/os-specific/linux/usbip/default.nix b/pkgs/os-specific/linux/usbip/default.nix deleted file mode 100644 index b91f55dcd2fb..000000000000 --- a/pkgs/os-specific/linux/usbip/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, stdenv, fetchpatch, kernel, udev, autoconf, automake, libtool, hwdata, kernelOlder }: - -stdenv.mkDerivation { - name = "usbip-${kernel.name}"; - - src = kernel.src; - - patches = lib.optionals (kernelOlder "5.4") [ - # fixes build with gcc8 - ./fix-snprintf-truncation.patch - # fixes build with gcc9 - ./fix-strncpy-truncation.patch - ] ++ kernel.patches; - - nativeBuildInputs = [ autoconf automake libtool ]; - buildInputs = [ udev ]; - - env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=address-of-packed-member" ]; - - preConfigure = '' - cd tools/usb/usbip - ./autogen.sh - ''; - - configureFlags = [ "--with-usbids-dir=${hwdata}/share/hwdata/" ]; - - meta = with lib; { - homepage = "https://github.com/torvalds/linux/tree/master/tools/usb/usbip"; - description = "allows to pass USB device from server to client over the network"; - license = with licenses; [ gpl2Only gpl2Plus ]; - platforms = platforms.linux; - broken = kernelOlder "4.10"; - }; -} diff --git a/pkgs/os-specific/linux/usbip/fix-snprintf-truncation.patch b/pkgs/os-specific/linux/usbip/fix-snprintf-truncation.patch deleted file mode 100644 index 63fca9ddbfe5..000000000000 --- a/pkgs/os-specific/linux/usbip/fix-snprintf-truncation.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/tools/usb/usbip/libsrc/vhci_driver.c b/tools/usb/usbip/libsrc/vhci_driver.c -index 8159fd98680b..7d6eb3e3fe1e 100644 ---- a/tools/usb/usbip/libsrc/vhci_driver.c -+++ b/tools/usb/usbip/libsrc/vhci_driver.c -@@ -111,7 +111,7 @@ static int parse_status(const char *value) - static int refresh_imported_device_list(void) - { - const char *attr_status; -- char status[MAX_STATUS_NAME+1] = "status"; -+ char status[MAX_STATUS_NAME+2] = "status"; - int i, ret; - - for (i = 0; i < vhci_driver->ncontrollers; i++) { diff --git a/pkgs/os-specific/linux/usbip/fix-strncpy-truncation.patch b/pkgs/os-specific/linux/usbip/fix-strncpy-truncation.patch deleted file mode 100644 index a5c4c97bbc08..000000000000 --- a/pkgs/os-specific/linux/usbip/fix-strncpy-truncation.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/tools/usb/usbip/libsrc/usbip_common.c b/tools/usb/usbip/libsrc/usbip_common.c -index bb424638d75b..2fc5837e609a 100644 ---- a/tools/usb/usbip/libsrc/usbip_common.c -+++ b/tools/usb/usbip/libsrc/usbip_common.c -@@ -226,8 +226,8 @@ int read_usb_device(struct udev_device *sdev, struct usbip_usb_device *udev) - path = udev_device_get_syspath(sdev); - name = udev_device_get_sysname(sdev); - -- strncpy(udev->path, path, SYSFS_PATH_MAX); -- strncpy(udev->busid, name, SYSFS_BUS_ID_SIZE); -+ strncpy(udev->path, path, SYSFS_PATH_MAX-1); -+ strncpy(udev->busid, name, SYSFS_BUS_ID_SIZE-1); - - sscanf(name, "%u-%u", &busnum, &devnum); - udev->busnum = busnum; -diff --git a/tools/usb/usbip/libsrc/usbip_device_driver.c b/tools/usb/usbip/libsrc/usbip_device_driver.c -index 5a3726eb44ab..95b416af8b99 100644 ---- a/tools/usb/usbip/libsrc/usbip_device_driver.c -+++ b/tools/usb/usbip/libsrc/usbip_device_driver.c -@@ -91,7 +91,7 @@ int read_usb_vudc_device(struct udev_device *sdev, struct usbip_usb_device *dev) - copy_descr_attr16(dev, &descr, idProduct); - copy_descr_attr16(dev, &descr, bcdDevice); - -- strncpy(dev->path, path, SYSFS_PATH_MAX); -+ strncpy(dev->path, path, SYSFS_PATH_MAX-1); - - dev->speed = USB_SPEED_UNKNOWN; - speed = udev_device_get_sysattr_value(sdev, "current_speed"); -@@ -110,7 +110,7 @@ int read_usb_vudc_device(struct udev_device *sdev, struct usbip_usb_device *dev) - dev->busnum = 0; - - name = udev_device_get_sysname(plat); -- strncpy(dev->busid, name, SYSFS_BUS_ID_SIZE); -+ strncpy(dev->busid, name, SYSFS_BUS_ID_SIZE-1); - return 0; - err: - fclose(fd); diff --git a/pkgs/os-specific/linux/usbrelay/daemon.nix b/pkgs/os-specific/linux/usbrelay/daemon.nix deleted file mode 100644 index 6e4e4661fd53..000000000000 --- a/pkgs/os-specific/linux/usbrelay/daemon.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ stdenv, usbrelay, python3, installShellFiles }: -let - python = python3.withPackages (ps: with ps; [ usbrelay-py paho-mqtt ]); -in -# This is a separate derivation, not just an additional output of -# usbrelay, because otherwise, we have a cyclic dependency between -# usbrelay (default.nix) and the python module (python.nix). -stdenv.mkDerivation { - pname = "usbrelayd"; - - inherit (usbrelay) src version; - - postPatch = '' - substituteInPlace 'usbrelayd.service' \ - --replace '/usr/bin/python3' "${python}/bin/python3" \ - --replace '/usr/sbin/usbrelayd' "$out/bin/usbrelayd" - ''; - - nativeBuildInputs = [ installShellFiles ]; - - buildInputs = [ python ]; - - dontBuild = true; - - installPhase = '' - runHook preInstall; - install -m 644 -D usbrelayd $out/bin/usbrelayd - install -m 644 -D usbrelayd.service $out/lib/systemd/system/usbrelayd.service - install -m 644 -D 50-usbrelay.rules $out/lib/udev/rules.d/50-usbrelay.rules - install -m 644 -D usbrelayd.conf $out/etc/usbrelayd.conf # include this as an example - installManPage usbrelayd.8 - runHook postInstall - ''; - - meta = { - description = "USB Relay MQTT service"; - inherit (usbrelay.meta) homepage license maintainers platforms; - }; -} diff --git a/pkgs/os-specific/linux/usbrelay/default.nix b/pkgs/os-specific/linux/usbrelay/default.nix deleted file mode 100644 index 656808d8389b..000000000000 --- a/pkgs/os-specific/linux/usbrelay/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, hidapi, installShellFiles }: -stdenv.mkDerivation (finalAttrs: { - pname = "usbrelay"; - version = "1.2.1"; - - src = fetchFromGitHub { - owner = "darrylb123"; - repo = "usbrelay"; - rev = finalAttrs.version; - sha256 = "sha256-9jEiMmBEpqY4+nKh3H8N/JrLohp/7oPK3rPmRjp2gvc="; - }; - - nativeBuildInputs = [ - installShellFiles - ]; - - buildInputs = [ - hidapi - ]; - - makeFlags = [ - "DIR_VERSION=${finalAttrs.version}" - "PREFIX=${placeholder "out"}" - "LDCONFIG=${stdenv.cc.libc.bin}/bin/ldconfig" - ]; - - postInstall = '' - installManPage usbrelay.1 - ''; - - meta = with lib; { - description = "Tool to control USB HID relays"; - mainProgram = "usbrelay"; - homepage = "https://github.com/darrylb123/usbrelay"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ wentasah ]; - platforms = platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/usbrelay/python.nix b/pkgs/os-specific/linux/usbrelay/python.nix deleted file mode 100644 index 90838295ecb5..000000000000 --- a/pkgs/os-specific/linux/usbrelay/python.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ buildPythonPackage, usbrelay }: - -buildPythonPackage { - pname = "usbrelay_py"; - inherit (usbrelay) version src; - - preConfigure = '' - cd usbrelay_py - ''; - - buildInputs = [ usbrelay ]; - - pythonImportsCheck = [ "usbrelay_py" ]; - - inherit (usbrelay) meta; -} diff --git a/pkgs/os-specific/linux/usbrelay/test.nix b/pkgs/os-specific/linux/usbrelay/test.nix deleted file mode 100644 index 58e4375dab8d..000000000000 --- a/pkgs/os-specific/linux/usbrelay/test.nix +++ /dev/null @@ -1,64 +0,0 @@ -# NixOS test for usbrelayd -# -# It is not stored in nixos/tests directory, because it requires the -# USB relay connected to the host computer and as such, it cannot be -# run automatically. -# -# Run this test as: -# -# nix-build test.nix -A driverInteractive && ./result/bin/nixos-test-driver --no-interactive -# -# The interactive driver is required because the default -# (non-interactive) driver uses qemu without support for passing USB -# devices to the guest (see -# https://discourse.nixos.org/t/hardware-dependent-nixos-tests/18564 -# for discussion of other alternatives). - -import ../../../../nixos/tests/make-test-python.nix ({ pkgs, ... }: { - name = "usbrelayd"; - - nodes.machine = { - virtualisation.qemu.options = [ - "-device qemu-xhci" - "-device usb-host,vendorid=0x16c0,productid=0x05df" - ]; - services.usbrelayd.enable = true; - systemd.services.usbrelayd = { - after = [ "mosquitto.service" ]; - }; - services.mosquitto = { - enable = true; - listeners = [{ - acl = [ "pattern readwrite #" ]; - omitPasswordAuth = true; - settings.allow_anonymous = true; - }]; - }; - environment.systemPackages = [ - pkgs.usbrelay - pkgs.mosquitto - ]; - documentation.nixos.enable = false; # building nixos manual takes long time - }; - - testScript = '' - import os - if os.waitstatus_to_exitcode(os.system("lsusb -d 16c0:05df")) != 0: - print("No USB relay detected, skipping test") - import sys - sys.exit(2) - machine.start() - # usbrelayd is started by udev when an relay is detected - machine.wait_for_unit("usbrelayd.service") - - stdout = machine.succeed("usbrelay") - relay_id = stdout.split(sep="_")[0] - assert relay_id != "" - import time - time.sleep(1) - machine.succeed(f"mosquitto_pub -h localhost -t cmnd/{relay_id}/1 -m ON") - time.sleep(1) - machine.succeed(f"mosquitto_pub -h localhost -t cmnd/{relay_id}/1 -m OFF") - print("Did you see the relay switching on and off?") - ''; -}) diff --git a/pkgs/os-specific/linux/usbtop/default.nix b/pkgs/os-specific/linux/usbtop/default.nix deleted file mode 100644 index ba97cae68bd0..000000000000 --- a/pkgs/os-specific/linux/usbtop/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchFromGitHub -, cmake -, libpcap, boost }: - -stdenv.mkDerivation rec { - pname = "usbtop"; - version = "1.0"; - - src = fetchFromGitHub { - owner = "aguinet"; - repo = pname; - rev = "release-${version}"; - sha256 = "0qbad0aq6j4jrh90l6a0akk71wdzhyzmy6q8wl138axyj2bp9kss"; - }; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ libpcap boost ]; - - meta = with lib; { - homepage = "https://github.com/aguinet/usbtop"; - description = "A top utility that shows an estimated instantaneous bandwidth on USB buses and devices"; - mainProgram = "usbtop"; - maintainers = with maintainers; [ ]; - license = licenses.bsd3; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/usbutils/default.nix b/pkgs/os-specific/linux/usbutils/default.nix deleted file mode 100644 index 4e64f394d82f..000000000000 --- a/pkgs/os-specific/linux/usbutils/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchurl, substituteAll, autoreconfHook, pkg-config, libusb1, hwdata, python3 }: - -stdenv.mkDerivation rec { - pname = "usbutils"; - version = "017"; - - src = fetchurl { - url = "mirror://kernel/linux/utils/usb/usbutils/usbutils-${version}.tar.xz"; - hash = "sha256-pqJf/c+RA+ONekRzKsoXBz9OYCuS5K5VYlIxqCcC4Fs="; - }; - - patches = [ - (substituteAll { - src = ./fix-paths.patch; - inherit hwdata; - }) - ]; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ libusb1 python3 ]; - - outputs = [ "out" "man" "python" ]; - postInstall = '' - moveToOutput "bin/lsusb.py" "$python" - ''; - - meta = with lib; { - homepage = "http://www.linux-usb.org/"; - description = "Tools for working with USB devices, such as lsusb"; - maintainers = with maintainers; [ cafkafk ]; - license = licenses.gpl2Plus; - platforms = platforms.linux; - mainProgram = "lsusb"; - }; -} diff --git a/pkgs/os-specific/linux/usbutils/fix-paths.patch b/pkgs/os-specific/linux/usbutils/fix-paths.patch deleted file mode 100644 index ef63a41e726c..000000000000 --- a/pkgs/os-specific/linux/usbutils/fix-paths.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Makefile.am -+++ b/Makefile.am -@@ -61,7 +61,7 @@ EXTRA_DIST = \ - LICENSES/GPL-3.0-only.txt - - lsusb.py: $(srcdir)/lsusb.py.in -- sed 's|VERSION|$(VERSION)|g;s|@usbids@|$(datadir)/usb.ids|g' $< >$@ -+ sed 's|VERSION|$(VERSION)|g;s|@usbids@|@hwdata@/share/hwdata/usb.ids|g' $< >$@ - chmod 755 $@ - - lsusb.8: $(srcdir)/lsusb.8.in diff --git a/pkgs/os-specific/linux/usermount/default.nix b/pkgs/os-specific/linux/usermount/default.nix deleted file mode 100644 index 73135da548ed..000000000000 --- a/pkgs/os-specific/linux/usermount/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, dbus, libnotify, udisks2, gdk-pixbuf }: - -stdenv.mkDerivation { - pname = "usermount"; - version = "0.1"; - - src = fetchFromGitHub { - owner = "tom5760"; - repo = "usermount"; - rev = "0d6aba3c1f8fec80de502f5b92fd8b28041cc8e4"; - sha256 = "sha256-giMHUVYdAygiemYru20VxpQixr5aGgHhevNkHvkG9z4="; - }; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ dbus libnotify udisks2 gdk-pixbuf ]; - - env.NIX_CFLAGS_COMPILE = "-DENABLE_NOTIFICATIONS"; - - installPhase = '' - mkdir -p $out/bin - mv usermount $out/bin/ - ''; - - meta = { - homepage = "https://github.com/tom5760/usermount"; - description = "A simple tool to automatically mount removable drives using UDisks2 and D-Bus"; - mainProgram = "usermount"; - license = lib.licenses.mit; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix deleted file mode 100644 index ba989b41a6ca..000000000000 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ /dev/null @@ -1,140 +0,0 @@ -{ lib, stdenv, fetchurl, pkg-config, zlib, shadow -, capabilitiesSupport ? stdenv.isLinux -, libcap_ng -, libxcrypt -, ncursesSupport ? true -, ncurses -, pamSupport ? true -, pam -, systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd -, systemd -, nlsSupport ? true -, translateManpages ? true -, po4a -, installShellFiles -, writeSupport ? stdenv.isLinux -, shadowSupport ? stdenv.isLinux -, memstreamHook -, gitUpdater -}: - -stdenv.mkDerivation rec { - pname = "util-linux" + lib.optionalString (!nlsSupport && !ncursesSupport && !systemdSupport) "-minimal"; - version = "2.39.3"; - - src = fetchurl { - url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/util-linux-${version}.tar.xz"; - hash = "sha256-e2YF5I0aSfQ8xLTPxZ8xPQ3VQC+kC5aBC9Vy4Wff7Q8="; - }; - - patches = [ - ./rtcwake-search-PATH-for-shutdown.patch - ]; - - # We separate some of the utilities into their own outputs. This - # allows putting together smaller systems depending on only part of - # the greater util-linux toolset. - # Compatibility is maintained by symlinking the binaries from the - # smaller outputs in the bin output. - outputs = [ "bin" "dev" "out" "lib" "man" ] ++ lib.optionals stdenv.isLinux [ "mount" ] ++ [ "login" ] ++ lib.optionals stdenv.isLinux [ "swap" ]; - separateDebugInfo = true; - - postPatch = '' - patchShebangs tests/run.sh - - substituteInPlace sys-utils/eject.c \ - --replace "/bin/umount" "$bin/bin/umount" - '' + lib.optionalString shadowSupport '' - substituteInPlace include/pathnames.h \ - --replace "/bin/login" "${shadow}/bin/login" - ''; - - # !!! It would be better to obtain the path to the mount helpers - # (/sbin/mount.*) through an environment variable, but that's - # somewhat risky because we have to consider that mount can setuid - # root... - configureFlags = [ - "--localstatedir=/var" - "--disable-use-tty-group" - "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin" - "--disable-makeinstall-setuid" "--disable-makeinstall-chown" - "--disable-su" # provided by shadow - (lib.enableFeature writeSupport "write") - (lib.enableFeature nlsSupport "nls") - (lib.withFeature ncursesSupport "ncursesw") - (lib.withFeature systemdSupport "systemd") - (lib.withFeatureAs systemdSupport - "systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/") - (lib.enableFeature translateManpages "poman") - "SYSCONFSTATICDIR=${placeholder "lib"}/lib" - ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - "scanf_cv_type_modifier=ms" - ; - - makeFlags = [ - "usrbin_execdir=${placeholder "bin"}/bin" - "usrlib_execdir=${placeholder "lib"}/lib" - "usrsbin_execdir=${placeholder "bin"}/sbin" - ]; - - nativeBuildInputs = [ pkg-config installShellFiles ] - ++ lib.optionals translateManpages [ po4a ]; - - buildInputs = [ zlib libxcrypt ] - ++ lib.optionals pamSupport [ pam ] - ++ lib.optionals capabilitiesSupport [ libcap_ng ] - ++ lib.optionals ncursesSupport [ ncurses ] - ++ lib.optionals systemdSupport [ systemd ] - ++ lib.optionals (stdenv.system == "x86_64-darwin") [ memstreamHook ]; - - doCheck = false; # "For development purpose only. Don't execute on production system!" - - enableParallelBuilding = true; - - postInstall = lib.optionalString stdenv.isLinux '' - moveToOutput bin/mount "$mount" - moveToOutput bin/umount "$mount" - ln -svf "$mount/bin/"* $bin/bin/ - '' + '' - - moveToOutput sbin/nologin "$login" - moveToOutput sbin/sulogin "$login" - prefix=$login _moveSbin - ln -svf "$login/bin/"* $bin/bin/ - '' + lib.optionalString stdenv.isLinux '' - - moveToOutput sbin/swapon "$swap" - moveToOutput sbin/swapoff "$swap" - prefix=$swap _moveSbin - ln -svf "$swap/bin/"* $bin/bin/ - '' + '' - - installShellCompletion --bash bash-completion/* - ''; - - passthru = { - updateScript = gitUpdater { - # No nicer place to find latest release. - url = "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"; - rev-prefix = "v"; - ignoredVersions = "(-rc).*"; - }; - }; - - meta = with lib; { - homepage = "https://www.kernel.org/pub/linux/utils/util-linux/"; - description = "A set of system utilities for Linux"; - changelog = "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${lib.versions.majorMinor version}/v${version}-ReleaseNotes"; - # https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/README.licensing - license = with licenses; [ gpl2Only gpl2Plus gpl3Plus lgpl21Plus bsd3 bsdOriginalUC publicDomain ]; - platforms = platforms.unix; - pkgConfigModules = [ - "blkid" - "fdisk" - "mount" - "smartcols" - "uuid" - ]; - priority = 6; # lower priority than coreutils ("kill") and shadow ("login" etc.) packages - }; -} diff --git a/pkgs/os-specific/linux/util-linux/rtcwake-search-PATH-for-shutdown.patch b/pkgs/os-specific/linux/util-linux/rtcwake-search-PATH-for-shutdown.patch deleted file mode 100644 index 52c970a18f3d..000000000000 --- a/pkgs/os-specific/linux/util-linux/rtcwake-search-PATH-for-shutdown.patch +++ /dev/null @@ -1,69 +0,0 @@ -Search $PATH for the shutdown binary instead of hard-coding /sbin/shutdown, -which isn't valid on NixOS (and a compatibility link on most other modern -distros anyway). - ---- a/include/pathnames.h -+++ b/include/pathnames.h -@@ -50,8 +50,8 @@ - #ifndef _PATH_LOGIN - # define _PATH_LOGIN "/bin/login" - #endif --#define _PATH_SHUTDOWN "/sbin/shutdown" --#define _PATH_POWEROFF "/sbin/poweroff" -+#define _PATH_SHUTDOWN "shutdown" -+#define _PATH_POWEROFF "poweroff" - - #define _PATH_TERMCOLORS_DIRNAME "terminal-colors.d" - #define _PATH_TERMCOLORS_DIR "/etc/" _PATH_TERMCOLORS_DIRNAME ---- a/sys-utils/rtcwake.c -+++ b/sys-utils/rtcwake.c -@@ -587,29 +587,29 @@ int main(int argc, char **argv) - char *arg[5]; - int i = 0; - -- if (!access(_PATH_SHUTDOWN, X_OK)) { -- arg[i++] = _PATH_SHUTDOWN; -- arg[i++] = "-h"; -- arg[i++] = "-P"; -- arg[i++] = "now"; -- arg[i] = NULL; -- } else if (!access(_PATH_POWEROFF, X_OK)) { -- arg[i++] = _PATH_POWEROFF; -- arg[i] = NULL; -- } else { -- arg[i] = NULL; -- } -+ arg[i++] = _PATH_SHUTDOWN; -+ arg[i++] = "-h"; -+ arg[i++] = "-P"; -+ arg[i++] = "now"; -+ arg[i] = NULL; - -- if (arg[0]) { -- if (ctl.verbose) -- printf(_("suspend mode: off; executing %s\n"), -- arg[0]); -- if (!ctl.dryrun) { -- execv(arg[0], arg); -+ if (ctl.verbose) -+ printf(_("suspend mode: off; executing %s\n"), -+ arg[0]); -+ -+ if (!ctl.dryrun) { -+ execvp(arg[0], arg); -+ if (ctl.verbose) { - warn(_("failed to execute %s"), arg[0]); -- rc = EX_EXEC_ENOENT; -+ // Reuse translations. -+ printf(_("suspend mode: off; executing %s\n"), -+ _PATH_POWEROFF); - } -- } else { -+ -+ i = 0; -+ arg[i++] = _PATH_POWEROFF; -+ arg[i] = NULL; -+ execvp(arg[0], arg); - /* Failed to find shutdown command */ - warn(_("failed to find shutdown command")); - rc = EX_EXEC_ENOENT; diff --git a/pkgs/os-specific/linux/uvcdynctrl/default.nix b/pkgs/os-specific/linux/uvcdynctrl/default.nix deleted file mode 100644 index 8fa91e158e1c..000000000000 --- a/pkgs/os-specific/linux/uvcdynctrl/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libxml2 }: - -stdenv.mkDerivation { - version = "0.3.0"; - pname = "uvcdynctrl"; - - src = fetchFromGitHub { - owner = "cshorler"; - repo = "webcam-tools"; - rev = "bee2ef3c9e350fd859f08cd0e6745871e5f55cb9"; - sha256 = "0s15xxgdx8lnka7vi8llbf6b0j4rhbjl6yp0qxaihysf890xj73s"; - }; - - nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ libxml2 ]; - - prePatch = '' - local fixup_list=( - uvcdynctrl/CMakeLists.txt - uvcdynctrl/udev/rules/80-uvcdynctrl.rules - uvcdynctrl/udev/scripts/uvcdynctrl - ) - for f in "''${fixup_list[@]}"; do - substituteInPlace "$f" \ - --replace "/etc/udev" "$out/etc/udev" \ - --replace "/lib/udev" "$out/lib/udev" - done - ''; - - meta = with lib; { - description = "A simple interface for devices supported by the linux UVC driver"; - homepage = "https://guvcview.sourceforge.net"; - license = licenses.gpl3Plus; - maintainers = [ maintainers.puffnfresh ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix deleted file mode 100644 index 87fd282f6960..000000000000 --- a/pkgs/os-specific/linux/v4l-utils/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ stdenv, lib, fetchurl, pkg-config, perl -, argp-standalone, libjpeg, udev -, withUtils ? true -, withGUI ? true, alsa-lib, libX11, qtbase, libGLU, wrapQtAppsHook -}: - -# See libv4l in all-packages.nix for the libs only (overrides alsa, libX11 & QT) - -let - withQt = withUtils && withGUI; - -# we need to use stdenv.mkDerivation in order not to pollute the libv4l’s closure with Qt -in stdenv.mkDerivation rec { - pname = "v4l-utils"; - version = "1.24.1"; - - src = fetchurl { - url = "https://linuxtv.org/downloads/${pname}/${pname}-${version}.tar.bz2"; - hash = "sha256-y7f+imMH9c5TOgXN7XC7k8O6BjlaubbQB+tTt12AX1s="; - }; - - outputs = [ "out" ] ++ lib.optional withUtils "lib" ++ [ "dev" ]; - - configureFlags = (if withUtils then [ - "--with-localedir=${placeholder "lib"}/share/locale" - "--with-udevdir=${placeholder "out"}/lib/udev" - ] else [ - "--disable-v4l-utils" - ]); - - postFixup = '' - # Create symlink for V4l1 compatibility - ln -s "$dev/include/libv4l1-videodev.h" "$dev/include/videodev.h" - ''; - - nativeBuildInputs = [ pkg-config perl ] ++ lib.optional withQt wrapQtAppsHook; - - buildInputs = [ udev ] - ++ lib.optional (!stdenv.hostPlatform.isGnu) argp-standalone - ++ lib.optionals withQt [ alsa-lib libX11 qtbase libGLU ]; - - propagatedBuildInputs = [ libjpeg ]; - - postPatch = '' - patchShebangs utils/ - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "V4L utils and libv4l, provide common image formats regardless of the v4l device"; - homepage = "https://linuxtv.org/projects.php"; - changelog = "https://git.linuxtv.org/v4l-utils.git/plain/ChangeLog?h=v4l-utils-${version}"; - license = with licenses; [ lgpl21Plus gpl2Plus ]; - maintainers = with maintainers; [ codyopel ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/v4l2-relayd/default.nix b/pkgs/os-specific/linux/v4l2-relayd/default.nix deleted file mode 100644 index 77d7034b863b..000000000000 --- a/pkgs/os-specific/linux/v4l2-relayd/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, stdenv -, fetchgit -, autoreconfHook -, glib -, gst_all_1 -, libtool -, pkg-config -, which -}: -stdenv.mkDerivation rec { - pname = "v4l2-relayd"; - version = "0.1.3"; - - src = fetchgit { - url = "https://git.launchpad.net/v4l2-relayd"; - rev = "refs/tags/upstream/${version}"; - hash = "sha256-oU6naDFZ0PQVHZ3brANfMULDqYMYxeJN+MCUCvN/DpU="; - }; - - patches = [ - ./upstream-v4l2loopback-compatibility.patch - ]; - - nativeBuildInputs = [ - autoreconfHook - libtool - pkg-config - which - ]; - - buildInputs = [ - glib - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - ]; - - preConfigure = "./autogen.sh --prefix=$out"; - - meta = with lib; { - description = "Streaming relay for v4l2loopback using GStreamer"; - mainProgram = "v4l2-relayd"; - homepage = "https://git.launchpad.net/v4l2-relayd"; - license = licenses.gpl2; - maintainers = with maintainers; [ betaboon ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/v4l2-relayd/upstream-v4l2loopback-compatibility.patch b/pkgs/os-specific/linux/v4l2-relayd/upstream-v4l2loopback-compatibility.patch deleted file mode 100644 index 643535228256..000000000000 --- a/pkgs/os-specific/linux/v4l2-relayd/upstream-v4l2loopback-compatibility.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/src/v4l2-relayd.c b/src/v4l2-relayd.c -index 21bb0d5..cfc9e27 100644 ---- a/src/v4l2-relayd.c -+++ b/src/v4l2-relayd.c -@@ -27,7 +27,10 @@ - #include <gst/app/gstappsrc.h> - #include <gst/video/video-info.h> - --#define V4L2_EVENT_PRI_CLIENT_USAGE V4L2_EVENT_PRIVATE_START -+#define V4L2LOOPBACK_EVENT_BASE (V4L2_EVENT_PRIVATE_START) -+#define V4L2LOOPBACK_EVENT_OFFSET 0x08E00000 -+#define V4L2_EVENT_PRI_CLIENT_USAGE \ -+ (V4L2LOOPBACK_EVENT_BASE + V4L2LOOPBACK_EVENT_OFFSET + 1) - - struct v4l2_event_client_usage { - __u32 count; diff --git a/pkgs/os-specific/linux/v4l2loopback/default.nix b/pkgs/os-specific/linux/v4l2loopback/default.nix deleted file mode 100644 index 6fe83fd09eff..000000000000 --- a/pkgs/os-specific/linux/v4l2loopback/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, kmod }: - -stdenv.mkDerivation { - pname = "v4l2loopback"; - version = "0.12.7-unstable-2024-02-12-${kernel.version}"; - - src = fetchFromGitHub { - owner = "umlaeute"; - repo = "v4l2loopback"; - rev = "5d72c17f92ee0e38efbb7eb85e34443ecbf1a80c"; - hash = "sha256-ggmYH5MUXhMPvA8UZ2EAG+eGoPTNbw7B8UxmmgP6CsE="; - }; - - hardeningDisable = [ "format" "pic" ]; - - preBuild = '' - substituteInPlace Makefile --replace "modules_install" "INSTALL_MOD_PATH=$out modules_install" - sed -i '/depmod/d' Makefile - ''; - - nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies; - - postInstall = '' - make install-utils PREFIX=$bin - ''; - - outputs = [ "out" "bin" ]; - - makeFlags = kernel.makeFlags ++ [ - "KERNELRELEASE=${kernel.modDirVersion}" - "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - meta = with lib; { - description = "A kernel module to create V4L2 loopback devices"; - mainProgram = "v4l2loopback-ctl"; - homepage = "https://github.com/umlaeute/v4l2loopback"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ moni ]; - platforms = platforms.linux; - outputsToInstall = [ "out" ]; - }; -} diff --git a/pkgs/os-specific/linux/v86d/default.nix b/pkgs/os-specific/linux/v86d/default.nix deleted file mode 100644 index 8597cc5ac9f9..000000000000 --- a/pkgs/os-specific/linux/v86d/default.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, kernel -, klibc -}: - -let - pversion = "0.1.10"; -in stdenv.mkDerivation rec { - pname = "v86d"; - version = "${pversion}-${kernel.version}"; - - src = fetchFromGitHub { - owner = "mjanusz"; - repo = "v86d"; - rev = "v86d-${pversion}"; - hash = "sha256-95LRzVbO/DyddmPwQNNQ290tasCGoQk7FDHlst6LkbA="; - }; - - patchPhase = '' - patchShebangs configure - ''; - - configureFlags = [ "--with-klibc" "--with-x86emu" ]; - - hardeningDisable = [ "stackprotector" ]; - - makeFlags = [ - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source" - "DESTDIR=$(out)" - ]; - - configurePhase = '' - ./configure $configureFlags - ''; - - buildInputs = [ klibc ]; - - meta = with lib; { - description = "A daemon to run x86 code in an emulated environment"; - mainProgram = "v86d"; - homepage = "https://github.com/mjanusz/v86d"; - license = licenses.gpl2; - maintainers = with maintainers; [ codyopel ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; -} diff --git a/pkgs/os-specific/linux/vdo/default.nix b/pkgs/os-specific/linux/vdo/default.nix deleted file mode 100644 index 625aa232cc66..000000000000 --- a/pkgs/os-specific/linux/vdo/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ lib, stdenv -, fetchFromGitHub -, installShellFiles -, libuuid -, lvm2_dmeventd # <libdevmapper-event.h> -, zlib -, python3 -}: - -stdenv.mkDerivation rec { - pname = "vdo"; - version = "8.2.2.2"; # bump this version with kvdo - - src = fetchFromGitHub { - owner = "dm-vdo"; - repo = pname; - rev = version; - hash = "sha256-+2w9jzJemI2xr+i/Jd5TIBZ/o8Zv+Ett0fbJbkOD7KI="; - }; - - nativeBuildInputs = [ - installShellFiles - ]; - - buildInputs = [ - libuuid - lvm2_dmeventd - zlib - python3.pkgs.wrapPython - ]; - - propagatedBuildInputs = with python3.pkgs; [ - pyyaml - ]; - - pythonPath = propagatedBuildInputs; - - makeFlags = [ - "DESTDIR=${placeholder "out"}" - "INSTALLOWNER=" - # all of these paths are relative to DESTDIR and have defaults that don't work for us - "bindir=/bin" - "defaultdocdir=/share/doc" - "mandir=/share/man" - "python3_sitelib=${python3.sitePackages}" - ]; - - enableParallelBuilding = true; - - postInstall = '' - installShellCompletion --bash $out/bash_completion.d/* - rm -r $out/bash_completion.d - - wrapPythonPrograms - ''; - - meta = with lib; { - homepage = "https://github.com/dm-vdo/vdo"; - description = "A set of userspace tools for managing pools of deduplicated and/or compressed block storage"; - # platforms are defined in https://github.com/dm-vdo/vdo/blob/master/utils/uds/atomicDefs.h - platforms = [ "x86_64-linux" "aarch64-linux" "s390-linux" "powerpc64-linux" "powerpc64le-linux" ]; - license = with licenses; [ gpl2Plus ]; - maintainers = teams.helsinki-systems.members; - }; -} diff --git a/pkgs/os-specific/linux/veikk-linux-driver/default.nix b/pkgs/os-specific/linux/veikk-linux-driver/default.nix deleted file mode 100644 index 8cf4896ae027..000000000000 --- a/pkgs/os-specific/linux/veikk-linux-driver/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "veikk-linux-driver"; - version = "2.0"; - - src = fetchFromGitHub { - owner = "jlam55555"; - repo = pname; - rev = "v${version}"; - sha256 = "11mg74ds58jwvdmi3i7c4chxs6v9g09r9ll22pc2kbxjdnrp8zrn"; - }; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - buildInputs = [ kernel ]; - - makeFlags = kernel.makeFlags ++ [ - "BUILD_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/veikk - install -Dm755 veikk.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/veikk - ''; - - meta = with lib; { - description = "Linux driver for VEIKK-brand digitizers"; - homepage = "https://github.com/jlam55555/veikk-linux-driver/"; - license = licenses.gpl2Only; - platforms = platforms.linux; - maintainers = with maintainers; [ nicbk ]; - broken = kernel.kernelOlder "4.19"; - }; -} diff --git a/pkgs/os-specific/linux/vendor-reset/default.nix b/pkgs/os-specific/linux/vendor-reset/default.nix deleted file mode 100644 index f4430f3224ae..000000000000 --- a/pkgs/os-specific/linux/vendor-reset/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ stdenv, fetchFromGitHub, fetchpatch, kernel, lib }: - -stdenv.mkDerivation rec { - pname = "vendor-reset"; - version = "unstable-2021-02-16-${kernel.version}"; - - src = fetchFromGitHub { - owner = "gnif"; - repo = "vendor-reset"; - rev = "225a49a40941e350899e456366265cf82b87ad25"; - sha256 = "sha256-xa7P7+mRk4FVgi+YYCcsFLfyNqPmXvy3xhGoTDVqPxw="; - }; - - patches = [ - # Fix build with Linux 5.18. - # https://github.com/gnif/vendor-reset/pull/58 - (fetchpatch { - url = "https://github.com/gnif/vendor-reset/commit/5bbffcd6fee5348e8808bdbfcb5b21d455b02f55.patch"; - sha256 = "sha256-L1QxVpcZAVYiaMFCBfL2EJgeMyOR8sDa1UqF1QB3bns="; - }) - ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - hardeningDisable = [ "pic" ]; - - makeFlags = [ - "KVER=${kernel.modDirVersion}" - "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - installPhase = '' - install -D vendor-reset.ko -t "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/misc/" - ''; - - enableParallelBuilding = true; - - meta = with lib; { - description = "Linux kernel vendor specific hardware reset module"; - homepage = "https://github.com/gnif/vendor-reset"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ ]; - platforms = [ "x86_64-linux" ]; - broken = kernel.kernelOlder "4.19"; - }; -} diff --git a/pkgs/os-specific/linux/virtio_vmmci/default.nix b/pkgs/os-specific/linux/virtio_vmmci/default.nix deleted file mode 100644 index cff2cbbeae8c..000000000000 --- a/pkgs/os-specific/linux/virtio_vmmci/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - name = "virtio_vmmci"; - version = "0.6.0"; - - src = fetchFromGitHub { - owner = "voutilad"; - repo = "virtio_vmmci"; - rev = version; - hash = "sha256-dMh6bqlhsp/cWKqiJ9xjVI9yJj2w1ap7agKSnRjadXA="; - }; - - hardeningDisable = [ "pic" "format" ]; - nativeBuildInputs = kernel.moduleBuildDependencies; - - extraConfig = '' - CONFIG_RTC_HCTOSYS yes - ''; - - makeFlags = kernel.makeFlags ++ [ - "DEPMOD=echo" - "INSTALL_MOD_PATH=$(out)" - "KERNELRELEASE=${kernel.modDirVersion}" - "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - meta = with lib; { - description = "An OpenBSD VMM Control Interface (vmmci) for Linux"; - homepage = "https://github.com/voutilad/virtio_vmmci"; - license = licenses.gpl2; - maintainers = with maintainers; [ qbit ]; - platforms = platforms.linux; - }; - - enableParallelBuilding = true; -} diff --git a/pkgs/os-specific/linux/virtualbox/default.nix b/pkgs/os-specific/linux/virtualbox/default.nix deleted file mode 100644 index 3aae58933c8f..000000000000 --- a/pkgs/os-specific/linux/virtualbox/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, virtualbox, kernel }: - -stdenv.mkDerivation { - pname = "virtualbox-modules"; - version = "${virtualbox.version}-${kernel.version}"; - src = virtualbox.modsrc; - hardeningDisable = [ - "fortify" "pic" "stackprotector" - ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; - - makeFlags = [ "INSTALL_MOD_PATH=$(out)" ]; - installTargets = [ "install" ]; - - enableParallelBuilding = true; - - meta = virtualbox.meta // { - description = virtualbox.meta.description + " (kernel modules)"; - }; -} diff --git a/pkgs/os-specific/linux/vm-tools/default.nix b/pkgs/os-specific/linux/vm-tools/default.nix deleted file mode 100644 index c5981bfc2713..000000000000 --- a/pkgs/os-specific/linux/vm-tools/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, stdenv, linux }: - -stdenv.mkDerivation { - pname = "vm-tools"; - inherit (linux) version src; - - makeFlags = [ "sbindir=${placeholder "out"}/bin" ]; - - preConfigure = "cd tools/vm"; - - meta = with lib; { - inherit (linux.meta) license platforms; - description = "Set of virtual memory tools"; - maintainers = [ maintainers.evils ]; - }; -} diff --git a/pkgs/os-specific/linux/vmm_clock/default.nix b/pkgs/os-specific/linux/vmm_clock/default.nix deleted file mode 100644 index 7ce99f40df1f..000000000000 --- a/pkgs/os-specific/linux/vmm_clock/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel }: - -stdenv.mkDerivation rec { - pname = "vmm_clock"; - version = "0.2.0"; - - src = fetchFromGitHub { - owner = "voutilad"; - repo = "vmm_clock"; - rev = version; - hash = "sha256-8z/N/dbkeFd40sH7jatNmSS62B88tC0jVgNljhxslOo="; - }; - - hardeningDisable = [ "pic" "format" ]; - nativeBuildInputs = kernel.moduleBuildDependencies; - - extraConfig = '' - CONFIG_RTC_HCTOSYS yes - ''; - - makeFlags = kernel.makeFlags ++ [ - "DEPMOD=echo" - "INSTALL_MOD_PATH=$(out)" - "KERNELRELEASE=${kernel.modDirVersion}" - "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ]; - - meta = with lib; { - description = - "Experimental implementation of a kvmclock-derived clocksource for Linux guests under OpenBSD's hypervisor"; - homepage = "https://github.com/voutilad/vmm_clock"; - license = licenses.gpl2; - maintainers = with maintainers; [ qbit ]; - platforms = [ "i686-linux" "x86_64-linux" ]; - }; - - enableParallelBuilding = true; -} diff --git a/pkgs/os-specific/linux/vmware/default.nix b/pkgs/os-specific/linux/vmware/default.nix deleted file mode 100644 index d63e5247dc51..000000000000 --- a/pkgs/os-specific/linux/vmware/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, kernel, kmod, gnugrep }: - -stdenv.mkDerivation rec { - pname = "vmware-modules"; - version = "workstation-17.5.1-unstable-2024-01-12-${kernel.version}"; - - src = fetchFromGitHub { - owner = "mkubecek"; - repo = "vmware-host-modules"; - # Developer no longer provides tags for kernel compatibility fixes - # Commit hash for branch workstation-17.5.1 as of 2024-03-07 - rev = "2c6d66f3f1947384038b765c897b102ecdb18298"; - hash = "sha256-VKN6nxtgQqElVrSD5++UdngjZio4+vmetGCgTAfgtTs="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - enableParallelBuilding = true; - - postPatch = '' - substituteInPlace Makefile \ - --replace '/lib/modules/$(VM_UNAME)/misc' "$out/lib/modules/${kernel.modDirVersion}/misc" \ - --replace /sbin/modinfo "${kmod}/bin/modinfo" \ - --replace 'test -z "$(DESTDIR)"' "0" - - for module in "vmmon-only" "vmnet-only"; do - substituteInPlace "./$module/Makefile" \ - --replace '/lib/modules/' "${kernel.dev}/lib/modules/" \ - --replace /bin/grep "${gnugrep}/bin/grep" - done - ''; - - preInstall = '' - mkdir -p "$out/lib/modules/${kernel.modDirVersion}/misc" - ''; - - meta = with lib; { - description = "Kernel modules needed for VMware hypervisor"; - homepage = "https://github.com/mkubecek/vmware-host-modules"; - license = licenses.gpl2Only; - platforms = [ "x86_64-linux" ]; - broken = (kernel.kernelOlder "5.5" && kernel.isHardened); - maintainers = with maintainers; [ deinferno vifino ]; - }; -} diff --git a/pkgs/os-specific/linux/waydroid/default.nix b/pkgs/os-specific/linux/waydroid/default.nix deleted file mode 100644 index ae42c206280d..000000000000 --- a/pkgs/os-specific/linux/waydroid/default.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ lib -, fetchFromGitHub -, fetchpatch -, python3Packages -, dnsmasq -, gawk -, getent -, gobject-introspection -, gtk3 -, kmod -, lxc -, iproute2 -, iptables -, util-linux -, wrapGAppsHook -, wl-clipboard -, runtimeShell -}: - -python3Packages.buildPythonApplication rec { - pname = "waydroid"; - version = "1.4.2"; - format = "other"; - - src = fetchFromGitHub { - owner = pname; - repo = pname; - rev = version; - sha256 = "sha256-/dFvhiK3nCOOmAtrYkQEB8Ge8Rf1ea5cDO7puTwS5bI="; - }; - - patches = [ - # https://github.com/waydroid/waydroid/pull/1218 - (fetchpatch { - url = "https://github.com/waydroid/waydroid/commit/595e0e5b309a79fedaa07d90b9073ddcb156314c.patch"; - hash = "sha256-A+rUmJbFFhMZ5WpT+QBCTEcn82wJuvmi8Wbcsio41Nk="; - }) - ]; - - nativeBuildInputs = [ - gobject-introspection - wrapGAppsHook - ]; - - buildInputs = [ - gtk3 - ]; - - propagatedBuildInputs = with python3Packages; [ - dbus-python - gbinder-python - pyclip - pygobject3 - ]; - - dontUseSetuptoolsBuild = true; - dontUsePipInstall = true; - dontUseSetuptoolsCheck = true; - dontWrapPythonPrograms = true; - dontWrapGApps = true; - - installPhase = '' - make install PREFIX=$out USE_SYSTEMD=0 - ''; - - preFixup = '' - makeWrapperArgs+=("''${gappsWrapperArgs[@]}") - - patchShebangs --host $out/lib/waydroid/data/scripts - wrapProgram $out/lib/waydroid/data/scripts/waydroid-net.sh \ - --prefix PATH ":" ${lib.makeBinPath [ dnsmasq getent iproute2 iptables ]} - - wrapPythonProgramsIn $out/lib/waydroid/ "${lib.concatStringsSep " " ([ - "$out" - ] ++ propagatedBuildInputs ++ [ - gawk - kmod - lxc - util-linux - wl-clipboard - ])}" - - substituteInPlace $out/lib/waydroid/tools/helpers/*.py \ - --replace '"sh"' '"${runtimeShell}"' - ''; - - meta = { - description = "Waydroid is a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu"; - mainProgram = "waydroid"; - homepage = "https://github.com/waydroid/waydroid"; - license = lib.licenses.gpl3; - platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ mcaju ]; - }; -} diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix deleted file mode 100644 index 8d8342cce980..000000000000 --- a/pkgs/os-specific/linux/wireguard/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, stdenv, fetchzip, kernel, perl, wireguard-tools, bc }: - -# wireguard upstreamed since 5.6 https://lists.zx2c4.com/pipermail/wireguard/2019-December/004704.html -assert lib.versionOlder kernel.version "5.6"; - -stdenv.mkDerivation rec { - pname = "wireguard"; - version = "1.0.20220627"; - - src = fetchzip { - url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz"; - sha256 = "sha256-skbho3e49lZ/GLp/JDQpf/yXIEjes86aYtw/dn6e0Uo="; - }; - - hardeningDisable = [ "pic" ]; - - KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; - - nativeBuildInputs = [ perl bc ] ++ kernel.moduleBuildDependencies; - - preBuild = "cd src"; - buildFlags = [ "module" ]; - makeFlags = [ - "ARCH=${stdenv.hostPlatform.linuxArch}" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; - - INSTALL_MOD_PATH = placeholder "out"; - installFlags = [ "DEPMOD=true" ]; - enableParallelBuilding = true; - - passthru = { - # remove this when our kernel comes with native wireguard support - # and our tests no longer tests this package - inherit (wireguard-tools) tests; - }; - - meta = with lib; { - inherit (wireguard-tools.meta) homepage license maintainers; - description = "Kernel module for the WireGuard secure network tunnel"; - longDescription = '' - Backport of WireGuard for kernels 3.10 to 5.5, as an out of tree module. - (as WireGuard was merged into the Linux kernel for 5.6) - ''; - downloadPage = "https://git.zx2c4.com/wireguard-linux-compat/refs/"; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/wireless-tools/default.nix b/pkgs/os-specific/linux/wireless-tools/default.nix deleted file mode 100644 index e95506461a4b..000000000000 --- a/pkgs/os-specific/linux/wireless-tools/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{lib, stdenv, fetchurl}: - -stdenv.mkDerivation rec { - pname = "wireless-tools"; - version = "30.pre9"; - - src = fetchurl { - url = "https://hewlettpackard.github.io/wireless-tools/wireless_tools.${version}.tar.gz"; - sha256 = "0qscyd44jmhs4k32ggp107hlym1pcyjzihiai48xs7xzib4wbndb"; - }; - - makeFlags = [ - "PREFIX=${placeholder "out"}" - "CC:=$(CC)" - "AR:=$(AR)" - "RANLIB:=$(RANLIB)" - "LDCONFIG=:" - ]; - - meta = { - description = "Wireless tools for Linux"; - homepage = "https://hewlettpackard.github.io/wireless-tools/Tools.html"; - platforms = lib.platforms.linux; - license = lib.licenses.gpl2; - }; -} diff --git a/pkgs/os-specific/linux/wiringpi/default.nix b/pkgs/os-specific/linux/wiringpi/default.nix deleted file mode 100644 index bc80e2a33543..000000000000 --- a/pkgs/os-specific/linux/wiringpi/default.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ lib -, stdenv -, symlinkJoin -, fetchFromGitHub -, libxcrypt -}: - -let - version = "2.61-1"; - mkSubProject = { subprj # The only mandatory argument - , buildInputs ? [] - , src ? fetchFromGitHub { - owner = "WiringPi"; - repo = "WiringPi"; - rev = version; - sha256 = "sha256-VxAaPhaPXd9xYt663Ju6SLblqiSLizauhhuFqCqbO5M="; - } - }: stdenv.mkDerivation (finalAttrs: { - pname = "wiringpi-${subprj}"; - inherit version src; - sourceRoot = "${src.name}/${subprj}"; - inherit buildInputs; - # Remove (meant for other OSs) lines from Makefiles - preInstall = '' - sed -i "/chown root/d" Makefile - sed -i "/chmod/d" Makefile - ''; - makeFlags = [ - "DESTDIR=${placeholder "out"}" - "PREFIX=/." - # On NixOS we don't need to run ldconfig during build: - "LDCONFIG=echo" - ]; - }); - passthru = { - inherit mkSubProject; - wiringPi = mkSubProject { - subprj = "wiringPi"; - buildInputs = [ - libxcrypt - ]; - }; - devLib = mkSubProject { - subprj = "devLib"; - buildInputs = [ - passthru.wiringPi - ]; - }; - wiringPiD = mkSubProject { - subprj = "wiringPiD"; - buildInputs = [ - libxcrypt - passthru.wiringPi - passthru.devLib - ]; - }; - gpio = mkSubProject { - subprj = "gpio"; - buildInputs = [ - libxcrypt - passthru.wiringPi - passthru.devLib - ]; - }; - }; -in - -symlinkJoin { - name = "wiringpi-${version}"; - inherit passthru; - paths = [ - passthru.wiringPi - passthru.devLib - passthru.wiringPiD - passthru.gpio - ]; - meta = with lib; { - description = "Gordon's Arduino wiring-like WiringPi Library for the Raspberry Pi (Unofficial Mirror for WiringPi bindings)"; - homepage = "https://github.com/WiringPi/WiringPi"; - license = licenses.lgpl3Plus; - maintainers = with maintainers; [ doronbehar ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/wooting-udev-rules/default.nix b/pkgs/os-specific/linux/wooting-udev-rules/default.nix deleted file mode 100644 index 8231e3e3ea33..000000000000 --- a/pkgs/os-specific/linux/wooting-udev-rules/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, stdenv }: - -stdenv.mkDerivation rec { - pname = "wooting-udev-rules"; - version = "unstable-2023-03-31"; - - # Source: https://help.wooting.io/en/article/wootility-configuring-device-access-for-wootility-under-linux-udev-rules-r6lb2o/ - src = [ ./wooting.rules ]; - - dontUnpack = true; - - installPhase = '' - install -Dpm644 $src $out/lib/udev/rules.d/70-wooting.rules - ''; - - meta = with lib; { - homepage = "https://help.wooting.io/en/article/wootility-configuring-device-access-for-wootility-under-linux-udev-rules-r6lb2o/"; - description = "udev rules that give NixOS permission to communicate with Wooting keyboards"; - platforms = platforms.linux; - license = "unknown"; - maintainers = with maintainers; [ davidtwco ]; - }; -} diff --git a/pkgs/os-specific/linux/wooting-udev-rules/wooting.rules b/pkgs/os-specific/linux/wooting-udev-rules/wooting.rules deleted file mode 100644 index 365627fa1aec..000000000000 --- a/pkgs/os-specific/linux/wooting-udev-rules/wooting.rules +++ /dev/null @@ -1,96 +0,0 @@ -# Wooting One Legacy -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="ff01", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="ff01", MODE:="0660", GROUP="input" -# Wooting One update mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402", MODE:="0660", GROUP="input" - -# Wooting Two Legacy -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="ff02", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="ff02", MODE:="0660", GROUP="input" -# Wooting Two update mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2403", MODE:="0660", GROUP="input" - -# Wooting One -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1100", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1100", MODE:="0660", GROUP="input" -# Wooting One Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1101", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1101", MODE:="0660", GROUP="input" -# Wooting One 2nd Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1102", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1102", MODE:="0660", GROUP="input" - -# Wooting Two -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1200", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1200", MODE:="0660", GROUP="input" -# Wooting Two Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1201", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1201", MODE:="0660", GROUP="input" -# Wooting Two 2nd Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1202", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1202", MODE:="0660", GROUP="input" - -# Wooting Lekker -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1210", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1210", MODE:="0660", GROUP="input" -# Wooting Lekker Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1211", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1211", MODE:="0660", GROUP="input" -# Wooting Lekker 2nd Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1212", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1212", MODE:="0660", GROUP="input" - -# Wooting Lekker update mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="121f", MODE:="0660", GROUP="input" - -# Wooting Two HE -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1220", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1220", MODE:="0660", GROUP="input" -# Wooting Two HE Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1221", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1221", MODE:="0660", GROUP="input" -# Wooting Two HE 2nd Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1222", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1222", MODE:="0660", GROUP="input" - -# Wooting Two HE update mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="122f", MODE:="0660", GROUP="input" - -# Wooting Two HE (ARM) -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1230", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1230", MODE:="0660", GROUP="input" -# Wooting Two HE Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1231", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1231", MODE:="0660", GROUP="input" -# Wooting Two HE 2nd Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1232", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1232", MODE:="0660", GROUP="input" - -# Wooting Two HE (ARM) update mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="123f", MODE:="0660", GROUP="input" - -# Wooting 60HE -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1300", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1300", MODE:="0660", GROUP="input" -# Wooting 60HE Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1301", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1301", MODE:="0660", GROUP="input" -# Wooting 60HE 2nd Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1302", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1302", MODE:="0660", GROUP="input" - -# Wooting 60HE update mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="130f", MODE:="0660", GROUP="input" - -# Wooting 60HE (ARM) -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1310", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1310", MODE:="0660", GROUP="input" -# Wooting 60HE (ARM) Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1311", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1311", MODE:="0660", GROUP="input" -# Wooting 60HE (ARM) 2nd Alt-gamepad mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1312", MODE:="0660", GROUP="input" -SUBSYSTEM=="usb", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="1312", MODE:="0660", GROUP="input" - -# Wooting 60HE (ARM) update mode -SUBSYSTEM=="hidraw", ATTRS{idVendor}=="31e3", ATTRS{idProduct}=="131f", MODE:="0660", GROUP="input" diff --git a/pkgs/os-specific/linux/wpa_supplicant/0001-Implement-read-only-mode-for-ssids.patch b/pkgs/os-specific/linux/wpa_supplicant/0001-Implement-read-only-mode-for-ssids.patch deleted file mode 100644 index d459de8a7f39..000000000000 --- a/pkgs/os-specific/linux/wpa_supplicant/0001-Implement-read-only-mode-for-ssids.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 99ae610f0ae3608a12c864caedf396f14e68327d Mon Sep 17 00:00:00 2001 -From: Maximilian Bosch <maximilian@mbosch.me> -Date: Fri, 19 Feb 2021 19:44:21 +0100 -Subject: [PATCH] Implement read-only mode for ssids - -With this change it's possible to define `network=`-sections in a second -config file specified via `-I` without having changes written to -`/etc/wpa_supplicant.conf`. - -This is helpful on e.g. NixOS to allow both declarative (i.e. read-only) -and imperative (i.e. mutable) networks. ---- - wpa_supplicant/config.h | 2 +- - wpa_supplicant/config_file.c | 5 +++-- - wpa_supplicant/config_none.c | 2 +- - wpa_supplicant/config_ssid.h | 2 ++ - wpa_supplicant/wpa_supplicant.c | 8 ++++---- - 5 files changed, 11 insertions(+), 8 deletions(-) - -diff --git a/wpa_supplicant/config.h b/wpa_supplicant/config.h -index 6a297ecfe..adaf4d398 100644 ---- a/wpa_supplicant/config.h -+++ b/wpa_supplicant/config.h -@@ -1614,7 +1614,7 @@ const char * wpa_config_get_global_field_name(unsigned int i, int *no_var); - * - * Each configuration backend needs to implement this function. - */ --struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp); -+struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp, int ro); - - /** - * wpa_config_write - Write or update configuration data -diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c -index 77c326df5..d5ed051b9 100644 ---- a/wpa_supplicant/config_file.c -+++ b/wpa_supplicant/config_file.c -@@ -373,7 +373,7 @@ static int wpa_config_process_blob(struct wpa_config *config, FILE *f, - #endif /* CONFIG_NO_CONFIG_BLOBS */ - - --struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp) -+struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp, int ro) - { - FILE *f; - char buf[512], *pos; -@@ -415,6 +415,7 @@ struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp) - while (wpa_config_get_line(buf, sizeof(buf), f, &line, &pos)) { - if (os_strcmp(pos, "network={") == 0) { - ssid = wpa_config_read_network(f, &line, id++); -+ ssid->ro = ro; - if (ssid == NULL) { - wpa_printf(MSG_ERROR, "Line %d: failed to " - "parse network block.", line); -@@ -1591,7 +1592,7 @@ int wpa_config_write(const char *name, struct wpa_config *config) - } - - for (ssid = config->ssid; ssid; ssid = ssid->next) { -- if (ssid->key_mgmt == WPA_KEY_MGMT_WPS || ssid->temporary) -+ if (ssid->key_mgmt == WPA_KEY_MGMT_WPS || ssid->temporary || ssid->ro) - continue; /* do not save temporary networks */ - if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt) && !ssid->psk_set && - !ssid->passphrase) -diff --git a/wpa_supplicant/config_none.c b/wpa_supplicant/config_none.c -index 2aac28fa3..02191b425 100644 ---- a/wpa_supplicant/config_none.c -+++ b/wpa_supplicant/config_none.c -@@ -17,7 +17,7 @@ - #include "base64.h" - - --struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp) -+struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp, int ro) - { - struct wpa_config *config; - -diff --git a/wpa_supplicant/config_ssid.h b/wpa_supplicant/config_ssid.h -index d5c5c00a9..fd80c079c 100644 ---- a/wpa_supplicant/config_ssid.h -+++ b/wpa_supplicant/config_ssid.h -@@ -93,6 +93,8 @@ struct wpa_ssid { - */ - int id; - -+ int ro; -+ - /** - * priority - Priority group - * -diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c -index 911d79d17..cb0cb99b1 100644 ---- a/wpa_supplicant/wpa_supplicant.c -+++ b/wpa_supplicant/wpa_supplicant.c -@@ -1052,14 +1052,14 @@ int wpa_supplicant_reload_configuration(struct wpa_supplicant *wpa_s) - - if (wpa_s->confname == NULL) - return -1; -- conf = wpa_config_read(wpa_s->confname, NULL); -+ conf = wpa_config_read(wpa_s->confname, NULL, 0); - if (conf == NULL) { - wpa_msg(wpa_s, MSG_ERROR, "Failed to parse the configuration " - "file '%s' - exiting", wpa_s->confname); - return -1; - } - if (wpa_s->confanother && -- !wpa_config_read(wpa_s->confanother, conf)) { -+ !wpa_config_read(wpa_s->confanother, conf, 1)) { - wpa_msg(wpa_s, MSG_ERROR, - "Failed to parse the configuration file '%s' - exiting", - wpa_s->confanother); -@@ -5638,7 +5638,7 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, - #else /* CONFIG_BACKEND_FILE */ - wpa_s->confname = os_strdup(iface->confname); - #endif /* CONFIG_BACKEND_FILE */ -- wpa_s->conf = wpa_config_read(wpa_s->confname, NULL); -+ wpa_s->conf = wpa_config_read(wpa_s->confname, NULL, 0); - if (wpa_s->conf == NULL) { - wpa_printf(MSG_ERROR, "Failed to read or parse " - "configuration '%s'.", wpa_s->confname); -@@ -5646,7 +5646,7 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, - } - wpa_s->confanother = os_rel2abs_path(iface->confanother); - if (wpa_s->confanother && -- !wpa_config_read(wpa_s->confanother, wpa_s->conf)) { -+ !wpa_config_read(wpa_s->confanother, wpa_s->conf, 1)) { - wpa_printf(MSG_ERROR, - "Failed to read or parse configuration '%s'.", - wpa_s->confanother); --- -2.29.2 - diff --git a/pkgs/os-specific/linux/wpa_supplicant/Use-unique-IDs-for-networks-and-credentials.patch b/pkgs/os-specific/linux/wpa_supplicant/Use-unique-IDs-for-networks-and-credentials.patch deleted file mode 100644 index 09e5b3673ac4..000000000000 --- a/pkgs/os-specific/linux/wpa_supplicant/Use-unique-IDs-for-networks-and-credentials.patch +++ /dev/null @@ -1,32 +0,0 @@ -The id and cred_id variables are reset to 0 every time the -wpa_config_read function is called, which is fine as long as it is only -called once. However, this is not the case when using both the -c and -I -options to specify two config files. - -This is a problem because the GUI, since eadfeb0e93748eb396ae62012b92d21a7f533646, -relies on the network IDs being unique (and increasing), and might get -into an infinite loop otherwise. - -This is solved by simply making the variables static. ---- - wpa_supplicant/config_file.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c -index 6db5010db..c996e3916 100644 ---- a/wpa_supplicant/config_file.c -+++ b/wpa_supplicant/config_file.c -@@ -297,8 +297,8 @@ struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp) - struct wpa_ssid *ssid, *tail, *head; - struct wpa_cred *cred, *cred_tail, *cred_head; - struct wpa_config *config; -- int id = 0; -- int cred_id = 0; -+ static int id = 0; -+ static int cred_id = 0; - - if (name == NULL) - return NULL; --- -2.34.1 - diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix deleted file mode 100644 index 49355de17784..000000000000 --- a/pkgs/os-specific/linux/wpa_supplicant/default.nix +++ /dev/null @@ -1,144 +0,0 @@ -{ lib, stdenv, fetchurl, openssl, pkg-config, libnl -, nixosTests, wpa_supplicant_gui -, dbusSupport ? !stdenv.hostPlatform.isStatic, dbus -, withReadline ? true, readline -, withPcsclite ? !stdenv.hostPlatform.isStatic, pcsclite -, readOnlyModeSSIDs ? false -}: - -with lib; -stdenv.mkDerivation rec { - version = "2.10"; - - pname = "wpa_supplicant"; - - src = fetchurl { - url = "https://w1.fi/releases/${pname}-${version}.tar.gz"; - sha256 = "sha256-IN965RVLODA1X4q0JpEjqHr/3qWf50/pKSqR0Nfhey8="; - }; - - patches = [ - # Fix a bug when using two config files - ./Use-unique-IDs-for-networks-and-credentials.patch - ] ++ lib.optionals readOnlyModeSSIDs [ - # Allow read-only networks - ./0001-Implement-read-only-mode-for-ssids.patch - ]; - - # TODO: Patch epoll so that the dbus actually responds - # TODO: Figure out how to get privsep working, currently getting SIGBUS - extraConfig = '' - #CONFIG_ELOOP_EPOLL=y - #CONFIG_PRIVSEP=y - #CONFIG_TLSV12=y see #8332 - CONFIG_AP=y - CONFIG_BGSCAN_LEARN=y - CONFIG_BGSCAN_SIMPLE=y - CONFIG_DEBUG_SYSLOG=y - CONFIG_EAP_EKE=y - CONFIG_EAP_FAST=y - CONFIG_EAP_GPSK=y - CONFIG_EAP_GPSK_SHA256=y - CONFIG_EAP_IKEV2=y - CONFIG_EAP_PAX=y - CONFIG_EAP_PWD=y - CONFIG_EAP_SAKE=y - CONFIG_ELOOP=eloop - CONFIG_EXT_PASSWORD_FILE=y - CONFIG_HS20=y - CONFIG_HT_OVERRIDES=y - CONFIG_IEEE80211AC=y - CONFIG_IEEE80211AX=y - CONFIG_IEEE80211N=y - CONFIG_IEEE80211R=y - CONFIG_IEEE80211W=y - CONFIG_INTERNETWORKING=y - CONFIG_L2_PACKET=linux - CONFIG_LIBNL32=y - CONFIG_MESH=y - CONFIG_OWE=y - CONFIG_P2P=y - CONFIG_SAE_PK=y - CONFIG_TDLS=y - CONFIG_TLS=openssl - CONFIG_TLSV11=y - CONFIG_VHT_OVERRIDES=y - CONFIG_WNM=y - CONFIG_WPS=y - CONFIG_WPS_ER=y - CONFIG_WPS_NFS=y - '' + optionalString withPcsclite '' - CONFIG_EAP_SIM=y - CONFIG_EAP_AKA=y - CONFIG_EAP_AKA_PRIME=y - CONFIG_PCSC=y - '' + optionalString dbusSupport '' - CONFIG_CTRL_IFACE_DBUS=y - CONFIG_CTRL_IFACE_DBUS_NEW=y - CONFIG_CTRL_IFACE_DBUS_INTRO=y - '' - # Upstream uses conditionals based on ifdef, so opposite of =y is - # not =n, as one may expect, but undefine. - # - # This config is sourced into makefile. - + optionalString (!dbusSupport) '' - undefine CONFIG_CTRL_IFACE_DBUS - undefine CONFIG_CTRL_IFACE_DBUS_NEW - undefine CONFIG_CTRL_IFACE_DBUS_INTRO - '' + (if withReadline then '' - CONFIG_READLINE=y - '' else '' - CONFIG_WPA_CLI_EDIT=y - ''); - - preBuild = '' - for manpage in wpa_supplicant/doc/docbook/wpa_supplicant.conf* ; do - substituteInPlace "$manpage" --replace /usr/share/doc $out/share/doc - done - cd wpa_supplicant - cp -v defconfig .config - echo "$extraConfig" >> .config - cat -n .config - substituteInPlace Makefile --replace /usr/local $out - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE \ - -I$(echo "${lib.getDev libnl}"/include/libnl*/) \ - ${optionalString withPcsclite "-I${lib.getDev pcsclite}/include/PCSC/"}" - ''; - - buildInputs = [ openssl libnl ] - ++ optional dbusSupport dbus - ++ optional withReadline readline - ++ optional withPcsclite pcsclite; - - nativeBuildInputs = [ pkg-config ]; - - postInstall = '' - mkdir -p $out/share/man/man5 $out/share/man/man8 - cp -v "doc/docbook/"*.5 $out/share/man/man5/ - cp -v "doc/docbook/"*.8 $out/share/man/man8/ - '' - + lib.optionalString dbusSupport '' - mkdir -p $out/share/dbus-1/system.d $out/share/dbus-1/system-services $out/etc/systemd/system - cp -v "dbus/"*service $out/share/dbus-1/system-services - sed -e "s@/sbin/wpa_supplicant@$out&@" -i "$out/share/dbus-1/system-services/"* - cp -v dbus/dbus-wpa_supplicant.conf $out/share/dbus-1/system.d - cp -v "systemd/"*.service $out/etc/systemd/system - '' - + '' - rm $out/share/man/man8/wpa_priv.8 - install -Dm444 wpa_supplicant.conf $out/share/doc/wpa_supplicant/wpa_supplicant.conf.example - ''; - - passthru.tests = { - inherit (nixosTests) wpa_supplicant; - inherit wpa_supplicant_gui; # inherits the src+version updates - }; - - meta = with lib; { - homepage = "https://w1.fi/wpa_supplicant/"; - description = "A tool for connecting to WPA and WPA2-protected wireless networks"; - license = licenses.bsd3; - maintainers = with maintainers; [ marcweber ma27 ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/wpa_supplicant/gui.nix b/pkgs/os-specific/linux/wpa_supplicant/gui.nix deleted file mode 100644 index ac1de01af974..000000000000 --- a/pkgs/os-specific/linux/wpa_supplicant/gui.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, mkDerivation, fetchpatch, qtbase, qmake, inkscape, imagemagick, wpa_supplicant }: - -mkDerivation { - pname = "wpa_gui"; - inherit (wpa_supplicant) version src; - - buildInputs = [ qtbase ]; - nativeBuildInputs = [ qmake inkscape imagemagick ]; - - postPatch = '' - cd wpa_supplicant/wpa_gui-qt4 - ''; - - postBuild = '' - make -C icons - ''; - - postInstall = '' - mkdir -pv $out/{bin,share/applications,share/icons} - cp -v wpa_gui $out/bin - cp -v wpa_gui.desktop $out/share/applications - cp -av icons/hicolor $out/share/icons - ''; - - meta = with lib; { - description = "Qt-based GUI for wpa_supplicant"; - mainProgram = "wpa_gui"; - homepage = "https://hostap.epitest.fi/wpa_supplicant/"; - license = licenses.bsd3; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix b/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix deleted file mode 100644 index cbe2a8134e60..000000000000 --- a/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, kernel }: - -stdenv.mkDerivation { - pname = "x86_energy_perf_policy"; - version = kernel.version; - - src = kernel.src; - - postPatch = '' - cd tools/power/x86/x86_energy_perf_policy - sed -i 's,/usr,,g' Makefile - ''; - - preInstall = '' - mkdir -p $out/bin $out/share/man/man8 - ''; - - makeFlags = [ "DESTDIR=$(out)" ]; - - meta = with lib; { - description = "Set the energy versus performance policy preference bias on recent X86 processors"; - mainProgram = "x86_energy_perf_policy"; - homepage = "https://www.kernel.org/"; - license = licenses.gpl2; - platforms = [ "i686-linux" "x86_64-linux" ]; # x86-specific - }; -} diff --git a/pkgs/os-specific/linux/x86info/default.nix b/pkgs/os-specific/linux/x86info/default.nix deleted file mode 100644 index f330fbbe6c7a..000000000000 --- a/pkgs/os-specific/linux/x86info/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, pciutils -, pkg-config -, python3 -}: - -stdenv.mkDerivation rec { - pname = "x86info"; - version = "unstable-2021-08-07"; - - src = fetchFromGitHub { - owner = "kernelslacker"; - repo = pname; - rev = "061ea35ecb0697761b6260998fa2045b8bb0be68"; - hash = "sha256-/qWioC4dV1bQkU4SiTR8duYqoGIMIH7s8vuAXi75juo="; - }; - - nativeBuildInputs = [ - pkg-config - python3 - ]; - - buildInputs = [ - pciutils - ]; - - # causes redefinition of _FORTIFY_SOURCE - hardeningDisable = [ "fortify3" ]; - - postBuild = '' - patchShebangs lsmsr/createheader.py - make -C lsmsr - ''; - - installPhase = '' - mkdir -p $out/bin - cp x86info $out/bin - cp lsmsr/lsmsr $out/bin - ''; - - meta = { - description = "Identification utility for the x86 series of processors"; - longDescription = '' - x86info will identify all Intel/AMD/Centaur/Cyrix/VIA CPUs. It leverages - the cpuid kernel module where possible. it supports parsing model specific - registers (MSRs) via the msr kernel module. it will approximate processor - frequency, and identify the cache sizes and layout. - ''; - platforms = [ "i686-linux" "x86_64-linux" ]; - license = lib.licenses.gpl2; - homepage = "https://github.com/kernelslacker/x86info"; - maintainers = with lib.maintainers; [ jcumming ]; - }; -} diff --git a/pkgs/os-specific/linux/xf86-input-cmt/default.nix b/pkgs/os-specific/linux/xf86-input-cmt/default.nix deleted file mode 100644 index a973f844fd4a..000000000000 --- a/pkgs/os-specific/linux/xf86-input-cmt/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, xorgserver, xorgproto, - utilmacros, libgestures, libevdevc }: - -stdenv.mkDerivation rec { - pname = "xf86-input-cmt"; - version = "2.0.2"; - src = fetchFromGitHub { - owner = "hugegreenbug"; - repo = "xf86-input-cmt"; - rev = "v${version}"; - sha256 = "1cnwf518nc0ybc1r3rsgc1gcql1k3785khffv0i4v3akrm9wdw98"; - }; - - postPatch = '' - patchShebangs ./apply_patches.sh - ./apply_patches.sh - ''; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - xorgserver xorgproto utilmacros - libgestures libevdevc - ]; - - configureFlags = [ - "--with-sdkdir=${placeholder "out"}" - ]; - - meta = with lib; { - description = "Chromebook touchpad driver"; - license = licenses.bsd3; - platforms = platforms.linux; - homepage = "https://www.github.com/hugegreenbug/xf86-input-cmt"; - maintainers = with maintainers; [ kcalvinalvin ]; - }; -} diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix deleted file mode 100644 index 1a872b758aca..000000000000 --- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib -, stdenv -, autoreconfHook -, fetchFromGitHub -, xorgproto -, libX11 -, libXext -, libXi -, libXinerama -, libXrandr -, libXrender -, ncurses -, pixman -, pkg-config -, udev -, utilmacros -, xorgserver -}: - -stdenv.mkDerivation rec { - pname = "xf86-input-wacom"; - version = "1.2.2"; - - src = fetchFromGitHub { - owner = "linuxwacom"; - repo = pname; - rev = "${pname}-${version}"; - sha256 = "sha256-3w12OjjMdu03BhUVEjkyj1ngDFnp0Cp66L0nn3LuU8Q="; - }; - - nativeBuildInputs = [ autoreconfHook pkg-config ]; - - buildInputs = [ - libX11 - libXext - libXi - libXinerama - libXrandr - libXrender - ncurses - udev - utilmacros - pixman - xorgproto - xorgserver - ]; - - configureFlags = [ - "--with-xorg-module-dir=${placeholder "out"}/lib/xorg/modules" - "--with-sdkdir=${placeholder "out"}/include/xorg" - "--with-xorg-conf-dir=${placeholder "out"}/share/X11/xorg.conf.d" - ]; - - meta = with lib; { - maintainers = with maintainers; [ goibhniu moni ]; - description = "Wacom digitizer driver for X11"; - homepage = "https://linuxwacom.sourceforge.net"; - license = licenses.gpl2Only; - platforms = platforms.linux; # Probably, works with other unixes as well - }; -} diff --git a/pkgs/os-specific/linux/xf86-video-nested/default.nix b/pkgs/os-specific/linux/xf86-video-nested/default.nix deleted file mode 100644 index 4092e3797c2f..000000000000 --- a/pkgs/os-specific/linux/xf86-video-nested/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchgit, autoreconfHook, xorgproto, libX11, libXext -, pixman, pkg-config, utilmacros, xorgserver -}: - -stdenv.mkDerivation { - pname = "xf86-video-nested"; - version = "unstable-2017-06-12"; - - src = fetchgit { - url = "git://anongit.freedesktop.org/xorg/driver/xf86-video-nested"; - rev = "6a48b385c41ea89354d0b2ee7f4649a1d1d9ec70"; - sha256 = "133rd2kvr2q2wmwpx82bb93qbi8wm8qp1vlmbhgc7aslz0j4cqqv"; - }; - - nativeBuildInputs = [ pkg-config autoreconfHook ]; - - buildInputs = - [ xorgproto libX11 libXext pixman - utilmacros xorgserver - ]; - - hardeningDisable = [ "fortify" ]; - - CFLAGS = "-I${pixman}/include/pixman-1"; - - meta = with lib; { - homepage = "https://cgit.freedesktop.org/xorg/driver/xf86-video-nested"; - description = "A driver to run Xorg on top of Xorg or something else"; - maintainers = [ maintainers.goibhniu ]; - platforms = platforms.linux; - license = licenses.mit; - }; -} diff --git a/pkgs/os-specific/linux/xone/default.nix b/pkgs/os-specific/linux/xone/default.nix deleted file mode 100644 index b1e2ce570a2d..000000000000 --- a/pkgs/os-specific/linux/xone/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ stdenv, lib, fetchFromGitHub, kernel, fetchurl, fetchpatch }: - -stdenv.mkDerivation (finalAttrs: { - pname = "xone"; - version = "0.3-unstable-2024-03-16"; - - src = fetchFromGitHub { - owner = "medusalix"; - repo = "xone"; - rev = "948d2302acdd6333295eaba4da06d96677290ad3"; - hash = "sha256-srAEw1ai5KT0rmVUL3Dut9R2mNb00AAZVCcINikh2sM="; - }; - - setSourceRoot = '' - export sourceRoot=$(pwd)/${finalAttrs.src.name} - ''; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ - "-C" - "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "M=$(sourceRoot)" - "VERSION=${finalAttrs.version}" - ]; - - buildFlags = [ "modules" ]; - installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ]; - installTargets = [ "modules_install" ]; - - meta = with lib; { - description = "Linux kernel driver for Xbox One and Xbox Series X|S accessories"; - homepage = "https://github.com/medusalix/xone"; - license = licenses.gpl2; - maintainers = with lib.maintainers; [ rhysmdnz ]; - platforms = platforms.linux; - }; -} -) diff --git a/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix b/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix deleted file mode 100644 index 18aa86282567..000000000000 --- a/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ lib -, stdenv -, fetchzip -, libusb1 -, glibc -, libGL -, xorg -, makeWrapper -, qtx11extras -, wrapQtAppsHook -, autoPatchelfHook -, libX11 -, libXtst -, libXi -, libXrandr -, libXinerama -}: - -let - dataDir = "var/lib/xppend1v2"; -in -stdenv.mkDerivation rec { - pname = "xp-pen-deco-01-v2-driver"; - version = "3.4.9-231023"; - - src = fetchzip { - url = "https://www.xp-pen.com/download/file/id/1936/pid/440/ext/gz.html#.tar.gz"; - name = "xp-pen-deco-01-v2-driver-${version}.tar.gz"; - sha256 = "sha256-A/dv6DpelH0NHjlGj32tKv37S+9q3F8cYByiYlMuqLg="; - }; - - nativeBuildInputs = [ - wrapQtAppsHook - autoPatchelfHook - makeWrapper - ]; - - dontBuild = true; - - dontWrapQtApps = true; # this is done manually - - buildInputs = [ - libusb1 - libX11 - libXtst - libXi - libXrandr - libXinerama - glibc - libGL - stdenv.cc.cc.lib - qtx11extras - ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/{opt,bin} - cp -r App/usr/lib/pentablet/{PenTablet,resource.rcc,conf} $out/opt - chmod +x $out/opt/PenTablet - cp -r App/lib $out/lib - sed -i 's#usr/lib/pentablet#${dataDir}#g' $out/opt/PenTablet - - runHook postInstall - ''; - - postFixup = '' - makeWrapper $out/opt/PenTablet $out/bin/xp-pen-deco-01-v2-driver \ - "''${qtWrapperArgs[@]}" \ - --run 'if [ "$EUID" -ne 0 ]; then echo "Please run as root."; exit 1; fi' \ - --run 'if [ ! -d /${dataDir} ]; then mkdir -p /${dataDir}; cp -r '$out'/opt/conf /${dataDir}; chmod u+w -R /${dataDir}; fi' - ''; - - meta = with lib; { - homepage = "https://www.xp-pen.com/product/461.html"; - description = "Drivers for the XP-PEN Deco 01 v2 drawing tablet"; - platforms = [ "x86_64-linux" ]; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - maintainers = with maintainers; [ virchau13 ]; - license = licenses.unfree; - }; -} diff --git a/pkgs/os-specific/linux/xp-pen-drivers/g430/default.nix b/pkgs/os-specific/linux/xp-pen-drivers/g430/default.nix deleted file mode 100644 index ad983662109a..000000000000 --- a/pkgs/os-specific/linux/xp-pen-drivers/g430/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, stdenv, mkDerivation, fetchzip, autoPatchelfHook, libusb1, libX11, libXtst, qtbase, libglvnd }: - -mkDerivation rec { - pname = "xp-pen-g430-driver"; - version = "1.2.13.1"; - - src = fetchzip { - url = "https://download01.xp-pen.com/file/2020/04/Linux_Pentablet_V${version}.tar.gz(20200428).zip"; - sha256 = "1r423hcpi26v82pzl59br1zw5vablikclqsy6mcqi0v5p84hfrdd"; - } + /Linux_Pentablet_V1.2.13.1.tar.gz; - - nativeBuildInputs = [ - autoPatchelfHook - ]; - - buildInputs = [ - libusb1 - libX11 - libXtst - qtbase - libglvnd - stdenv.cc.cc.lib - ]; - - installPhase = '' - mkdir -p $out/bin - cp Pentablet_Driver $out/bin/pentablet-driver - cp config.xml $out/bin/config.xml - ''; - - meta = with lib; { - homepage = "https://www.xp-pen.com/download-46.html"; - description = "Driver for XP-PEN Pentablet drawing tablets"; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; - license = licenses.unfree; - platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ ivar ]; - }; -} diff --git a/pkgs/os-specific/linux/xpadneo/default.nix b/pkgs/os-specific/linux/xpadneo/default.nix deleted file mode 100644 index b186c90ddbd7..000000000000 --- a/pkgs/os-specific/linux/xpadneo/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, kernel -, bluez -, nixosTests -, nix-update-script -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "xpadneo"; - version = "0.9.6"; - - src = fetchFromGitHub { - owner = "atar-axis"; - repo = "xpadneo"; - rev = "refs/tags/v${finalAttrs.version}"; - sha256 = "sha256-pX9zpAGnhDLKUAKOQ5iqtK8cKEkjCqDa5v3MwYViWX4="; - }; - - setSourceRoot = '' - export sourceRoot=$(pwd)/${finalAttrs.src.name}/hid-xpadneo/src - ''; - - nativeBuildInputs = kernel.moduleBuildDependencies; - buildInputs = [ bluez ]; - - makeFlags = kernel.makeFlags ++ [ - "-C" - "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "M=$(sourceRoot)" - "VERSION=${finalAttrs.version}" - ]; - - buildFlags = [ "modules" ]; - installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ]; - installTargets = [ "modules_install" ]; - - passthru.tests = { - xpadneo = nixosTests.xpadneo; - }; - - passthru.updateScript = nix-update-script { }; - - meta = with lib; { - description = "Advanced Linux driver for Xbox One wireless controllers"; - homepage = "https://atar-axis.github.io/xpadneo"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ kira-bruneau ]; - platforms = platforms.linux; - }; -}) diff --git a/pkgs/os-specific/linux/xsensors/default.nix b/pkgs/os-specific/linux/xsensors/default.nix deleted file mode 100644 index e3639fefffa4..000000000000 --- a/pkgs/os-specific/linux/xsensors/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, lib, fetchurl, gtk2, pkg-config, lm_sensors }: - -stdenv.mkDerivation rec { - pname = "xsensors"; - version = "0.70"; - src = fetchurl { - url = "http://www.linuxhardware.org/xsensors/xsensors-${version}.tar.gz"; - sha256 = "1siplsfgvcxamyqf44h71jx6jdfmvhfm7mh0y1q8ps4zs6pj2zwh"; - }; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - gtk2 lm_sensors - ]; - patches = [ - ./remove-unused-variables.patch - ./replace-deprecated-gtk.patch - ]; - meta = with lib; { - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ ]; - }; -} diff --git a/pkgs/os-specific/linux/xsensors/remove-unused-variables.patch b/pkgs/os-specific/linux/xsensors/remove-unused-variables.patch deleted file mode 100644 index 7da97a0e56e8..000000000000 --- a/pkgs/os-specific/linux/xsensors/remove-unused-variables.patch +++ /dev/null @@ -1,39 +0,0 @@ -Author: Nanley Chery <nanleychery@gmail.com> -From: Jean Delvare <khali@linux-fr.org> -Subject: Remove declared, but unused variables -Bug-Debian: http://bugs.debian.org/625435 ---- ---- a/src/gui.c -+++ b/src/gui.c -@@ -257,10 +257,9 @@ - - /* Start the sensor info update timer. */ - gint start_timer( GtkWidget *widget, gpointer data ) { -- gint timer; - - /* Setup timer for updates. */ -- timer = g_timeout_add( update_time * 1000, -+ g_timeout_add( update_time * 1000, - (GtkFunction) update_sensor_data, - (gpointer) data ); - -@@ -287,7 +286,7 @@ - - /* feature data */ - updates *head = NULL; -- updates *current = NULL, *prev = NULL; -+ updates *current = NULL; - - const sensors_feature *feature; - -@@ -347,10 +346,8 @@ - new_node->pbar = featpbar; - - if ( head == NULL ) { -- prev = head; - head = current = new_node; - } else { -- prev = current; - current = current->next = new_node; - } - diff --git a/pkgs/os-specific/linux/xsensors/replace-deprecated-gtk.patch b/pkgs/os-specific/linux/xsensors/replace-deprecated-gtk.patch deleted file mode 100644 index fed4c7dc4c95..000000000000 --- a/pkgs/os-specific/linux/xsensors/replace-deprecated-gtk.patch +++ /dev/null @@ -1,168 +0,0 @@ -Author: Nanley Chery <nanleychery@gmail.com> -Subject: Update deprecated gtk casts and replace deprecated function calls with their analogous cairo counterparts. -Bug-Debian: http://bugs.debian.org/622005 -Bug-Debian: http://bugs.debian.org/610321 ---- ---- a/src/gui.c -+++ b/src/gui.c -@@ -27,10 +27,10 @@ - GtkWidget *mainwindow = NULL; - - GdkColor colorWhite = { 0, 0xFFFF, 0xFFFF, 0xFFFF }; -- --GdkColormap *cmap = NULL; - --GdkPixmap *theme = NULL; -+GdkPixbuf *theme = NULL; -+ -+cairo_surface_t *surface = NULL; - - /* Destroy the main window. */ - gint destroy_gui( GtkWidget *widget, gpointer data ) { -@@ -76,17 +76,16 @@ - } - } - --static void draw_digits( GtkWidget *widget, const gchar *digits, int highLow ) -+static void draw_digits( GtkWidget *widget, cairo_t *cr, const gchar *digits, int highLow ) - { - const gchar *digit = digits; - int pos = 0, x = 0, y = 0, w = 0; - - while ( *digit ) { - get_pm_location( *digit, &x, &y, &w ); -- gdk_draw_drawable( widget->window, -- widget->style->fg_gc[ GTK_WIDGET_STATE -- (widget) ], theme, x, y + highLow, -- pos, 0, w, 30 ); -+ cairo_set_source_surface (cr, surface, pos-x, 0-(y + highLow)); -+ cairo_rectangle(cr, pos, 0, w, 30); -+ cairo_fill(cr); - pos += w; - digit++; - } -@@ -102,6 +101,8 @@ - - gchar result[7]; - -+ cairo_t *cr = gdk_cairo_create(widget->window); -+ - #ifdef DEBUG_XSENSORS - printf( "area.width = %d, area.height = %d\n", event->area.width, - event->area.height ); -@@ -117,13 +118,11 @@ - - /* Display the digits */ - if ( g_snprintf( result, 6, "%5.0f", current->curvalue ) >= 0 ) -- draw_digits( widget, result, highLow ); -+ draw_digits( widget, cr, result, highLow ); - - /* Display RPM */ -- gdk_draw_drawable( widget->window, -- widget->style->fg_gc[ GTK_WIDGET_STATE -- (widget) ], theme, 0, 120 + highLow, -- 90, 0, 57, 30 ); -+ cairo_set_source_surface (cr, surface, 90-0, 0-(120 + highLow)); -+ cairo_rectangle(cr, 90, 0, 57, 30); - break; - case TEMP: - if ( current->curvalue > current->curmax ) -@@ -134,17 +133,15 @@ - - /* Display the digits */ - if ( g_snprintf( result, 7, "%6.1f", current->curvalue ) >= 0 ) -- draw_digits( widget, result, highLow ); -+ draw_digits( widget, cr, result, highLow ); - - /* Display degree symbol */ - if ( tf == FALSE ) - x = 0; - else - x = 57; -- gdk_draw_drawable( widget->window, -- widget->style->fg_gc[ GTK_WIDGET_STATE -- (widget) ], theme, x, 60 + highLow, -- 96, 0, 57, 30 ); -+ cairo_set_source_surface (cr, surface, 96-x, 0-(60 + highLow)); -+ cairo_rectangle(cr, 96, 0, 57, 30); - - break; - case VOLT: -@@ -154,20 +151,17 @@ - - /* Display the digits */ - if ( g_snprintf( result, 7, "%6.2f", current->curvalue ) >= 0 ) -- draw_digits( widget, result, highLow ); -+ draw_digits( widget, cr, result, highLow ); - - /* Display V */ -- gdk_draw_drawable( widget->window, -- widget->style->fg_gc[ GTK_WIDGET_STATE -- (widget) ], theme, 114, 60 + highLow, -- 96, 0, 57, 30 ); -- -- -+ cairo_set_source_surface (cr, surface, 96-114, 0-(60 + highLow)); -+ cairo_rectangle(cr, 96, 0, 57, 30); - break; - default: - break; - } -- -+ cairo_fill(cr); -+ cairo_destroy(cr); - return TRUE; - } - -@@ -260,7 +254,7 @@ - - /* Setup timer for updates. */ - g_timeout_add( update_time * 1000, -- (GtkFunction) update_sensor_data, -+ (GSourceFunc) update_sensor_data, - (gpointer) data ); - - return SUCCESS; -@@ -460,8 +454,6 @@ - g_signal_connect( G_OBJECT (mainwindow), "delete_event", - G_CALLBACK (destroy_gui), NULL ); - -- /* Graphics needed for drawing info. */ -- cmap = gtk_widget_get_colormap( mainwindow ); - - /* Set up the image file used for displaying characters. */ - if ( imagefile == NULL ) { -@@ -481,12 +473,10 @@ - "Image file not found in either location! Exiting!\n" ); - exit( 1 ); - } else { -- theme = gdk_pixmap_colormap_create_from_xpm( NULL, cmap, -- NULL, NULL, "./images/default.xpm" ); -+ theme = gdk_pixbuf_new_from_file("./images/default.xpm", NULL ); - } - } else { -- theme = gdk_pixmap_colormap_create_from_xpm( NULL, cmap, -- NULL, NULL, imagefile ); -+ theme = gdk_pixbuf_new_from_file(imagefile, NULL ); - } - } else { - if ( stat( imagefile, &sbuf ) != 0 ) { -@@ -495,11 +485,15 @@ - "Image file not found in specified location! Exiting!\n" ); - exit( 1 ); - } else { -- theme = gdk_pixmap_colormap_create_from_xpm( NULL, cmap, -- NULL, NULL, imagefile ); -+ theme = gdk_pixbuf_new_from_file(imagefile, NULL ); - } - } -- -+ surface = cairo_image_surface_create_for_data(gdk_pixbuf_get_pixels(theme), -+ CAIRO_FORMAT_RGB24, -+ gdk_pixbuf_get_width(theme), -+ gdk_pixbuf_get_height(theme), -+ gdk_pixbuf_get_rowstride(theme)); -+ - /* Create notebook for sensors. */ - notebook = gtk_notebook_new( ); - gtk_widget_modify_bg( notebook, GTK_STATE_NORMAL, &colorWhite ); diff --git a/pkgs/os-specific/linux/xsos/default.nix b/pkgs/os-specific/linux/xsos/default.nix deleted file mode 100644 index 8d2dd747ffb6..000000000000 --- a/pkgs/os-specific/linux/xsos/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, makeWrapper -, installShellFiles -, dmidecode -, ethtool -, pciutils -, multipath-tools -, iproute2 -, sysvinit -}: -let - binPath = [ - iproute2 - dmidecode - ethtool - pciutils - multipath-tools - iproute2 - sysvinit - ]; -in - -stdenv.mkDerivation rec { - pname = "xsos"; - version = "0.7.19"; - - src = fetchFromGitHub { - owner = "ryran"; - repo = "xsos"; - rev = "v${version}"; - sha256 = "11cc8z3pz4gl0mwl2fc701mn4cgx50fybygx0rvs9bhvb0jnphay"; - }; - - nativeBuildInputs = [ makeWrapper installShellFiles ]; - - installPhase = '' - mkdir -p $out/bin - cp -a xsos $out/bin - wrapProgram "$out/bin/xsos" --prefix PATH : ${lib.makeBinPath binPath} - installShellCompletion --bash --name xsos.bash xsos-bash-completion.bash - ''; - - meta = with lib; { - description = "Summarize system info from sosreports"; - mainProgram = "xsos"; - homepage = "https://github.com/ryran/xsos"; - license = licenses.gpl3; - platforms = [ "i686-linux" "x86_64-linux" ]; - maintainers = [ maintainers.nixinator ]; - }; -} diff --git a/pkgs/os-specific/linux/zenmonitor/default.nix b/pkgs/os-specific/linux/zenmonitor/default.nix deleted file mode 100644 index e8fce959c8dc..000000000000 --- a/pkgs/os-specific/linux/zenmonitor/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, gtk3, wrapGAppsHook }: - -stdenv.mkDerivation rec { - pname = "zenmonitor"; - version = "2.0.0"; - - src = fetchFromGitHub { - owner = "Ta180m"; - repo = "zenmonitor3"; - rev = "v${version}"; - sha256 = "sha256-2EsuSMXnnMg0e0JD1TXJplsi7sOg9em0qqge2WlC6ro="; - }; - - buildInputs = [ gtk3 ]; - nativeBuildInputs = [ pkg-config wrapGAppsHook ]; - - makeFlags = [ "PREFIX=${placeholder "out"}" ]; - - meta = with lib; { - description = "Monitoring software for AMD Zen-based CPUs"; - mainProgram = "zenmonitor"; - homepage = "https://github.com/Ta180m/zenmonitor3"; - license = licenses.mit; - platforms = [ "i686-linux" "x86_64-linux" ]; - maintainers = with maintainers; [ alexbakker artturin ]; - }; -} diff --git a/pkgs/os-specific/linux/zenpower/default.nix b/pkgs/os-specific/linux/zenpower/default.nix deleted file mode 100644 index bf1240610f8c..000000000000 --- a/pkgs/os-specific/linux/zenpower/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, kernel, fetchFromGitea }: - -stdenv.mkDerivation rec { - pname = "zenpower"; - version = "unstable-2022-11-04"; - - src = fetchFromGitea { - domain = "git.exozy.me"; - owner = "a"; - repo = "zenpower3"; - rev = "c176fdb0d5bcba6ba2aba99ea36812e40f47751f"; - sha256 = "sha256-d2WH8Zv7F0phZmEKcDiaak9On+Mo9bAFhMulT/N5FWI="; - }; - - hardeningDisable = [ "pic" ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = [ "KERNEL_BUILD=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; - - installPhase = '' - install -D zenpower.ko -t "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon/zenpower/" - ''; - - meta = with lib; { - inherit (src.meta) homepage; - description = "Linux kernel driver for reading temperature, voltage(SVI2), current(SVI2) and power(SVI2) for AMD Zen family CPUs."; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ alexbakker artturin ]; - platforms = [ "x86_64-linux" ]; - broken = versionOlder kernel.version "4.14"; - }; -} diff --git a/pkgs/os-specific/linux/zenstates/default.nix b/pkgs/os-specific/linux/zenstates/default.nix deleted file mode 100644 index a320e959f021..000000000000 --- a/pkgs/os-specific/linux/zenstates/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -# Zenstates provides access to a variety of CPU tunables no Ryzen processors. -# -# In particular, I am adding Zenstates because I need it to disable the C6 -# sleep state to stabilize wake from sleep on my Lenovo x395 system. After -# installing Zenstates, I need a before-sleep script like so: -# -# before-sleep = pkgs.writeScript "before-sleep" '' -# #!${pkgs.bash}/bin/bash -# ${pkgs.zenstates}/bin/zenstates --c6-disable -# ''; -# -# ... -# -# systemd.services.before-sleep = { -# description = "Jobs to run before going to sleep"; -# serviceConfig = { -# Type = "oneshot"; -# ExecStart = "${before-sleep}"; -# }; -# wantedBy = [ "sleep.target" ]; -# before = [ "sleep.target" ]; -# }; - -{ lib, stdenv, fetchFromGitHub, python3 }: -stdenv.mkDerivation rec { - pname = "zenstates"; - version = "0.0.1"; - - src = fetchFromGitHub { - owner = "r4m0n"; - repo = "ZenStates-Linux"; - rev = "0bc27f4740e382f2a2896dc1dabfec1d0ac96818"; - sha256 = "1h1h2n50d2cwcyw3zp4lamfvrdjy1gjghffvl3qrp6arfsfa615y"; - }; - - buildInputs = [ python3 ]; - - installPhase = '' - mkdir -p $out/bin - cp $src/zenstates.py $out/bin/zenstates - chmod +x $out/bin/zenstates - patchShebangs --build $out/bin/zenstates - ''; - - meta = with lib; { - description = "Linux utility for Ryzen processors and motherboards"; - mainProgram = "zenstates"; - homepage = "https://github.com/r4m0n/ZenStates-Linux"; - license = licenses.mit; - maintainers = with maintainers; [ savannidgerinel ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/zfs/2_1.nix b/pkgs/os-specific/linux/zfs/2_1.nix deleted file mode 100644 index 97173a5154a5..000000000000 --- a/pkgs/os-specific/linux/zfs/2_1.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ callPackage -, kernel ? null -, stdenv -, linuxKernel -, lib -, nixosTests -, ... -} @ args: - -let - stdenv' = if kernel == null then stdenv else kernel.stdenv; -in -callPackage ./generic.nix args { - # You have to ensure that in `pkgs/top-level/linux-kernels.nix` - # this attribute is the correct one for this package. - kernelModuleAttribute = "zfs_2_1"; - # check the release notes for compatible kernels - kernelCompatible = kernel.kernelOlder "6.8"; - - latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_6; - - # This is a fixed version to the 2.1.x series, move only - # if the 2.1.x series moves. - version = "2.1.15"; - - hash = "sha256-zFO8fMbirEOrn5W57rAN7IWY6EIXG8jDXqhP7BWJyiY="; - - tests = [ - nixosTests.zfs.series_2_1 - ]; - - maintainers = [ lib.maintainers.raitobezarius ]; -} diff --git a/pkgs/os-specific/linux/zfs/2_2.nix b/pkgs/os-specific/linux/zfs/2_2.nix deleted file mode 100644 index 455c17383604..000000000000 --- a/pkgs/os-specific/linux/zfs/2_2.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ callPackage -, kernel ? null -, stdenv -, linuxKernel -, nixosTests -, ... -} @ args: - -let - stdenv' = if kernel == null then stdenv else kernel.stdenv; -in -callPackage ./generic.nix args { - # You have to ensure that in `pkgs/top-level/linux-kernels.nix` - # this attribute is the correct one for this package. - kernelModuleAttribute = "zfs_2_2"; - # check the release notes for compatible kernels - kernelCompatible = kernel.kernelOlder "6.8"; - - latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_6; - - # this package should point to the latest release. - version = "2.2.3"; - - tests = [ - nixosTests.zfs.installer - nixosTests.zfs.series_2_2 - ]; - - hash = "sha256-Bzkow15OitUUQ+mTYhCXgTrQl+ao/B4feleHY/rSSjg="; -} diff --git a/pkgs/os-specific/linux/zfs/generic.nix b/pkgs/os-specific/linux/zfs/generic.nix deleted file mode 100644 index c0ff834cb34a..000000000000 --- a/pkgs/os-specific/linux/zfs/generic.nix +++ /dev/null @@ -1,243 +0,0 @@ -let - genericBuild = - { pkgs, lib, stdenv, fetchFromGitHub, fetchpatch - , autoreconfHook269, util-linux, nukeReferences, coreutils - , perl - , configFile ? "all" - - # Userspace dependencies - , zlib, libuuid, python3, attr, openssl - , libtirpc - , nfs-utils, samba - , gawk, gnugrep, gnused, systemd - , smartmontools, enableMail ? false - , sysstat, pkg-config - , curl - , pam - - # Kernel dependencies - , kernel ? null - , enablePython ? true - , ... - }@outerArgs: - - assert (configFile == "kernel") -> (kernel != null); - { version - , hash - , kernelModuleAttribute - , extraPatches ? [] - , rev ? "zfs-${version}" - , isUnstable ? false - , latestCompatibleLinuxPackages - , kernelCompatible ? null - , maintainers ? (with lib.maintainers; [ amarshall adamcstephens ]) - , tests - }@innerArgs: - - let - inherit (lib) any optionalString optionals optional makeBinPath versionAtLeast; - - smartmon = smartmontools.override { inherit enableMail; }; - - buildKernel = any (n: n == configFile) [ "kernel" "all" ]; - buildUser = any (n: n == configFile) [ "user" "all" ]; - isAtLeast22Series = versionAtLeast version "2.2.0"; - - # XXX: You always want to build kernel modules with the same stdenv as the - # kernel was built with. However, since zfs can also be built for userspace we - # need to correctly pick between the provided/default stdenv, and the one used - # by the kernel. - # If you don't do this your ZFS builds will fail on any non-standard (e.g. - # clang-built) kernels. - stdenv' = if kernel == null then stdenv else kernel.stdenv; - in - - stdenv'.mkDerivation { - name = "zfs-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}"; - pname = "zfs"; - inherit version; - - src = fetchFromGitHub { - owner = "openzfs"; - repo = "zfs"; - inherit rev hash; - }; - - patches = extraPatches; - - postPatch = optionalString buildKernel '' - patchShebangs scripts - # The arrays must remain the same length, so we repeat a flag that is - # already part of the command and therefore has no effect. - substituteInPlace ./module/os/linux/zfs/zfs_ctldir.c \ - --replace '"/usr/bin/env", "umount"' '"${util-linux}/bin/umount", "-n"' \ - --replace '"/usr/bin/env", "mount"' '"${util-linux}/bin/mount", "-n"' - '' + optionalString buildUser '' - substituteInPlace ./lib/libshare/os/linux/nfs.c --replace "/usr/sbin/exportfs" "${ - # We don't *need* python support, but we set it like this to minimize closure size: - # If it's disabled by default, no need to enable it, even if we have python enabled - # And if it's enabled by default, only change that if we explicitly disable python to remove python from the closure - nfs-utils.override (old: { enablePython = old.enablePython or true && enablePython; }) - }/bin/exportfs" - substituteInPlace ./lib/libshare/smb.h --replace "/usr/bin/net" "${samba}/bin/net" - # Disable dynamic loading of libcurl - substituteInPlace ./config/user-libfetch.m4 --replace "curl-config --built-shared" "true" - substituteInPlace ./config/user-systemd.m4 --replace "/usr/lib/modules-load.d" "$out/etc/modules-load.d" - substituteInPlace ./config/zfs-build.m4 --replace "\$sysconfdir/init.d" "$out/etc/init.d" \ - --replace "/etc/default" "$out/etc/default" - substituteInPlace ./contrib/initramfs/Makefile.am \ - --replace "/usr/share/initramfs-tools" "$out/usr/share/initramfs-tools" - '' + optionalString isAtLeast22Series '' - substituteInPlace ./udev/vdev_id \ - --replace "PATH=/bin:/sbin:/usr/bin:/usr/sbin" \ - "PATH=${makeBinPath [ coreutils gawk gnused gnugrep systemd ]}" - '' + optionalString (!isAtLeast22Series) '' - substituteInPlace ./etc/zfs/Makefile.am --replace "\$(sysconfdir)/zfs" "$out/etc/zfs" - - find ./contrib/initramfs -name Makefile.am -exec sed -i -e 's|/usr/share/initramfs-tools|'$out'/share/initramfs-tools|g' {} \; - - substituteInPlace ./cmd/vdev_id/vdev_id \ - --replace "PATH=/bin:/sbin:/usr/bin:/usr/sbin" \ - "PATH=${makeBinPath [ coreutils gawk gnused gnugrep systemd ]}" - '' + '' - substituteInPlace ./config/zfs-build.m4 \ - --replace "bashcompletiondir=/etc/bash_completion.d" \ - "bashcompletiondir=$out/share/bash-completion/completions" - ''; - - nativeBuildInputs = [ autoreconfHook269 nukeReferences ] - ++ optionals buildKernel (kernel.moduleBuildDependencies ++ [ perl ]) - ++ optional buildUser pkg-config; - buildInputs = optionals buildUser [ zlib libuuid attr libtirpc pam ] - ++ optional buildUser openssl - ++ optional buildUser curl - ++ optional (buildUser && enablePython) python3; - - # for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work - NIX_CFLAGS_LINK = "-lgcc_s"; - - hardeningDisable = [ "fortify" "stackprotector" "pic" ]; - - configureFlags = [ - "--with-config=${configFile}" - "--with-tirpc=1" - (lib.withFeatureAs (buildUser && enablePython) "python" python3.interpreter) - ] ++ optionals buildUser [ - "--with-dracutdir=$(out)/lib/dracut" - "--with-udevdir=$(out)/lib/udev" - "--with-systemdunitdir=$(out)/etc/systemd/system" - "--with-systemdpresetdir=$(out)/etc/systemd/system-preset" - "--with-systemdgeneratordir=$(out)/lib/systemd/system-generator" - "--with-mounthelperdir=$(out)/bin" - "--libexecdir=$(out)/libexec" - "--sysconfdir=/etc" - "--localstatedir=/var" - "--enable-systemd" - "--enable-pam" - ] ++ optionals buildKernel ([ - "--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source" - "--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - ] ++ kernel.makeFlags); - - makeFlags = optionals buildKernel kernel.makeFlags; - - enableParallelBuilding = true; - - installFlags = [ - "sysconfdir=\${out}/etc" - "DEFAULT_INITCONF_DIR=\${out}/default" - "INSTALL_MOD_PATH=\${out}" - ]; - - preConfigure = '' - # The kernel module builds some tests during the configurePhase, this envvar controls their parallelism - export TEST_JOBS=$NIX_BUILD_CORES - if [ -z "$enableParallelBuilding" ]; then - export TEST_JOBS=1 - fi - ''; - - # Enabling BTF causes zfs to be build with debug symbols. - # Since zfs compress kernel modules on installation, our strip hooks skip stripping them. - # Hence we strip modules prior to compression. - postBuild = optionalString buildKernel '' - find . -name "*.ko" -print0 | xargs -0 -P$NIX_BUILD_CORES ${stdenv.cc.targetPrefix}strip --strip-debug - ''; - - postInstall = optionalString buildKernel '' - # Add reference that cannot be detected due to compressed kernel module - mkdir -p "$out/nix-support" - echo "${util-linux}" >> "$out/nix-support/extra-refs" - '' + optionalString buildUser '' - # Remove provided services as they are buggy - rm $out/etc/systemd/system/zfs-import-*.service - - for i in $out/etc/systemd/system/*; do - if [ -L $i ]; then - continue - fi - sed -i '/zfs-import-scan.service/d' $i - substituteInPlace $i --replace "zfs-import-cache.service" "zfs-import.target" - done - - # Remove tests because they add a runtime dependency on gcc - rm -rf $out/share/zfs/zfs-tests - - # Add Bash completions. - install -v -m444 -D -t $out/share/bash-completion/completions contrib/bash_completion.d/zfs - (cd $out/share/bash-completion/completions; ln -s zfs zpool) - ''; - - postFixup = let - path = "PATH=${makeBinPath [ coreutils gawk gnused gnugrep util-linux smartmon sysstat ]}:$PATH"; - in '' - for i in $out/libexec/zfs/zpool.d/*; do - sed -i '2i${path}' $i - done - ''; - - outputs = [ "out" ] ++ optionals buildUser [ "dev" ]; - - passthru = { - inherit enableMail latestCompatibleLinuxPackages kernelModuleAttribute; - # The corresponding userspace tools to this instantiation - # of the ZFS package set. - userspaceTools = genericBuild (outerArgs // { - configFile = "user"; - }) innerArgs; - - inherit tests; - }; - - meta = { - description = "ZFS Filesystem Linux" + (if buildUser then " Userspace Tools" else " Kernel Module"); - longDescription = '' - ZFS is a filesystem that combines a logical volume manager with a - Copy-On-Write filesystem with data integrity detection and repair, - snapshotting, cloning, block devices, deduplication, and more. - - ${if buildUser then "This is the userspace tools package." else "This is the kernel module package."} - ''; - homepage = "https://github.com/openzfs/zfs"; - changelog = "https://github.com/openzfs/zfs/releases/tag/zfs-${version}"; - license = lib.licenses.cddl; - - # The case-block for TARGET_CPU has branches for only some CPU families, - # which prevents ZFS from building on any other platform. Since the NixOS - # `boot.zfs.enabled` property is `readOnly`, excluding platforms where ZFS - # does not build is the only way to produce a NixOS installer on such - # platforms. - # https://github.com/openzfs/zfs/blob/6723d1110f6daf93be93db74d5ea9f6b64c9bce5/config/always-arch.m4#L12 - platforms = - with lib.systems.inspect.patterns; - map (p: p // isLinux) ([ isx86_32 isx86_64 isPower isAarch64 isSparc ] ++ isArmv7); - - inherit maintainers; - mainProgram = "zfs"; - # If your Linux kernel version is not yet supported by zfs, try zfs_unstable. - # On NixOS set the option `boot.zfs.package = pkgs.zfs_unstable`. - broken = buildKernel && (kernelCompatible != null) && !kernelCompatible; - }; - }; -in - genericBuild diff --git a/pkgs/os-specific/linux/zfs/unstable.nix b/pkgs/os-specific/linux/zfs/unstable.nix deleted file mode 100644 index c8db9c5c5df9..000000000000 --- a/pkgs/os-specific/linux/zfs/unstable.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ callPackage -, kernel ? null -, stdenv -, linuxKernel -, nixosTests -, ... -} @ args: - -let - stdenv' = if kernel == null then stdenv else kernel.stdenv; -in -callPackage ./generic.nix args { - # You have to ensure that in `pkgs/top-level/linux-kernels.nix` - # this attribute is the correct one for this package. - kernelModuleAttribute = "zfs_unstable"; - # check the release notes for compatible kernels - kernelCompatible = kernel.kernelOlder "6.9"; - - latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_6; - - # this package should point to a version / git revision compatible with the latest kernel release - # IMPORTANT: Always use a tagged release candidate or commits from the - # zfs-<version>-staging branch, because this is tested by the OpenZFS - # maintainers. - version = "2.2.3-unstable-2024-04-09"; - rev = "28520cad2500b60ce8653e431990e33f77ff08f7"; - - isUnstable = true; - tests = [ - nixosTests.zfs.unstable - ]; - - hash = "sha256-lGoiTmCWOxqACSYY0WA0gN6CN/1FyYhSVHmtYC1Izhg="; -} diff --git a/pkgs/os-specific/linux/zsa-udev-rules/default.nix b/pkgs/os-specific/linux/zsa-udev-rules/default.nix deleted file mode 100644 index 66485ab51dd8..000000000000 --- a/pkgs/os-specific/linux/zsa-udev-rules/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ lib, stdenv, fetchFromGitHub }: - -stdenv.mkDerivation rec { - pname = "zsa-udev-rules"; - version = "unstable-2023-11-30"; - - src = fetchFromGitHub { - owner = "zsa"; - repo = "wally"; - rev = "a6648f6b543b703e3902faf5c08e997e0d58c909"; - hash = "sha256-j9n3VoX+UngX12DF28rtNh+oy80Th1BINPQqk053lvE="; - }; - - # Only copies udevs rules - dontConfigure = true; - dontBuild = true; - dontFixup = true; - - installPhase = '' - mkdir -p $out/lib/udev/rules.d - cp dist/linux64/50-oryx.rules $out/lib/udev/rules.d/ - cp dist/linux64/50-wally.rules $out/lib/udev/rules.d/ - ''; - - meta = with lib; { - description = "udev rules for ZSA devices"; - license = licenses.mit; - maintainers = with maintainers; [ davidak ]; - platforms = platforms.linux; - homepage = "https://github.com/zsa/wally/wiki/Linux-install#2-create-a-udev-rule-file"; - }; -} |