diff options
Diffstat (limited to 'pkgs/os-specific/linux')
18 files changed, 223 insertions, 33 deletions
diff --git a/pkgs/os-specific/linux/alsa-tools/default.nix b/pkgs/os-specific/linux/alsa-tools/default.nix index 8faba250fb3e..14b10e6752bb 100644 --- a/pkgs/os-specific/linux/alsa-tools/default.nix +++ b/pkgs/os-specific/linux/alsa-tools/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { name = "alsa-tools-${version}"; - version = "1.1.6"; + version = "1.1.7"; src = fetchurl { url = "mirror://alsa/tools/${name}.tar.bz2"; - sha256 = "09rjb6hw1mn9y1jfdfj5djncgc2cr5wfps83k56rf6k4zg14v76n"; + sha256 = "1xjfghr9s0j6n91kgs95cc4r6qrjsgc4yj2w0nir3xpnm0l36950"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/os-specific/linux/alsa-utils/default.nix b/pkgs/os-specific/linux/alsa-utils/default.nix index 60e3b9750d71..c9cf12912670 100644 --- a/pkgs/os-specific/linux/alsa-utils/default.nix +++ b/pkgs/os-specific/linux/alsa-utils/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "alsa-utils-${version}"; - version = "1.1.6"; + version = "1.1.7"; src = fetchurl { url = "mirror://alsa/utils/${name}.tar.bz2"; - sha256 = "0vnkyymgwj9rfdb11nvab30dnfrylmakdfildxl0y8mj836awp0m"; + sha256 = "02jlw6a22j2rr7inggfgk2hzx3w0fjhvhs0dn1afpzdp9aspzchx"; }; patchPhase = '' diff --git a/pkgs/os-specific/linux/firejail/default.nix b/pkgs/os-specific/linux/firejail/default.nix index 568e474f444a..553b3804a038 100644 --- a/pkgs/os-specific/linux/firejail/default.nix +++ b/pkgs/os-specific/linux/firejail/default.nix @@ -37,6 +37,14 @@ stdenv.mkDerivation { sed -e "s@/etc/@$out/etc/@g" -e "/chmod u+s/d" -i Makefile ''; + # We need to set the directory for the .local override files back to + # /etc/firejail so we can actually override them + postInstall = '' + sed -E -e 's@^include (.*)(/firejail/.*.local)$@include /etc\2@g' -i $out/etc/firejail/*.profile + ''; + + enableParallelBuilding = true; + meta = { inherit (s) version; description = ''Namespace-based sandboxing tool for Linux''; diff --git a/pkgs/os-specific/linux/hwdata/default.nix b/pkgs/os-specific/linux/hwdata/default.nix index 5943ced2f8f9..dfca87e27165 100644 --- a/pkgs/os-specific/linux/hwdata/default.nix +++ b/pkgs/os-specific/linux/hwdata/default.nix @@ -2,24 +2,24 @@ stdenv.mkDerivation rec { name = "hwdata-${version}"; - version = "0.314"; + version = "0.316"; src = fetchFromGitHub { owner = "vcrhonek"; repo = "hwdata"; rev = "v${version}"; - sha256 = "12k466ndg152fqld1w5v1zfdyv000yypazcwy75ywlxvlknv4y90"; + sha256 = "0k3fypykbq9943cnxlmmpk0xp9nhhf46pfdhkgm99iaa27b8s1gb"; }; preConfigure = "patchShebangs ./configure"; - configureFlags = [ "--datadir=$(prefix)/data" ]; + configureFlags = [ "--datadir=${placeholder "out"}/share" ]; doCheck = false; # this does build machine-specific checks (e.g. enumerates PCI bus) outputHashMode = "recursive"; outputHashAlgo = "sha256"; - outputHash = "1w00y5kj8rd8slzydw1gw8cablxlkham4vq786kdd8zga286zabb"; + outputHash = "0g2w4jr4p1hykracp2za7jb0rcr51kks1m43pzcaf7g99x8669ww"; meta = { homepage = https://github.com/vcrhonek/hwdata; diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix index 23dcbb05f30a..011668f0c679 100644 --- a/pkgs/os-specific/linux/kernel-headers/default.nix +++ b/pkgs/os-specific/linux/kernel-headers/default.nix @@ -1,9 +1,10 @@ { stdenvNoCC, lib, buildPackages -, fetchurl, perl +, fetchurl, fetchpatch, perl +, elf-header }: let - common = { version, sha256, patches ? [] }: stdenvNoCC.mkDerivation { + common = { version, sha256, patches ? [] }: stdenvNoCC.mkDerivation ({ name = "linux-headers-${version}"; src = fetchurl { @@ -16,18 +17,55 @@ let # 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 ]; - nativeBuildInputs = [ perl ]; + # TODO make unconditional next mass rebuild + nativeBuildInputs = [ perl ] ++ lib.optional + (stdenvNoCC.hostPlatform != stdenvNoCC.buildPlatform) + elf-header; extraIncludeDirs = lib.optional stdenvNoCC.hostPlatform.isPowerPC ["ppc"]; + # "patches" array defaults to 'null' to avoid changing hash + # and causing mass rebuild inherit patches; - buildPhase = '' + # TODO avoid native hack next rebuild + makeFlags = if stdenvNoCC.hostPlatform == stdenvNoCC.buildPlatform then null else [ + "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:=$(BUILD_CC)" + "HOSTCXX:=$(BUILD_CXX)" + ]; + + # TODO avoid native hack next rebuild + # Skip clean on darwin, case-sensitivity issues. + buildPhase = if stdenvNoCC.hostPlatform == stdenvNoCC.buildPlatform then '' make mrproper headers_check SHELL=bash + '' else lib.optionalString (!stdenvNoCC.buildPlatform.isDarwin) '' + make mrproper $makeFlags + '' + # For some reason, doing `make install_headers` twice, first without + # INSTALL_HDR_PATH=$out then with, is neccessary to get this to work + # for darwin cross. @Ericson2314 has no idea why. + + '' + make headers_install $makeFlags + ''; + + # TODO avoid native hack next rebuild + checkPhase = if stdenvNoCC.hostPlatform == stdenvNoCC.buildPlatform then null else '' + make headers_check $makeFlags ''; - installPhase = '' + # TODO avoid native hack next rebuild + installPhase = (if stdenvNoCC.hostPlatform == stdenvNoCC.buildPlatform then '' make INSTALL_HDR_PATH=$out headers_install + '' else '' + make headers_install INSTALL_HDR_PATH=$out $makeFlags + '') + '' # Some builds (e.g. KVM) want a kernel.release. mkdir -p $out/include/config @@ -39,11 +77,19 @@ let license = licenses.gpl2; platforms = platforms.linux; }; - }; + } // lib.optionalAttrs (stdenvNoCC.hostPlatform != stdenvNoCC.buildPlatform) { + # TODO Make unconditional next mass rebuild + hardeningDisable = lib.optional stdenvNoCC.buildPlatform.isDarwin "format"; + }); in { linuxHeaders = common { version = "4.18.3"; sha256 = "1m23hjd02bg8mqnd8dc4z4m3kxds1cyrc6j5saiwnhzbz373rvc1"; + # TODO make unconditional next mass rebuild + patches = lib.optionals (stdenvNoCC.hostPlatform != stdenvNoCC.buildPlatform) [ + ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms + ./no-dynamic-cc-version-check.patch # so we can use `stdenvNoCC`, see `makeFlags` above + ]; }; } diff --git a/pkgs/os-specific/linux/kernel-headers/no-dynamic-cc-version-check.patch b/pkgs/os-specific/linux/kernel-headers/no-dynamic-cc-version-check.patch new file mode 100644 index 000000000000..9b582cac7153 --- /dev/null +++ b/pkgs/os-specific/linux/kernel-headers/no-dynamic-cc-version-check.patch @@ -0,0 +1,32 @@ +diff --git a/Makefile b/Makefile +index 863f58503bee..b778d5023208 100644 +--- a/Makefile ++++ b/Makefile +@@ -501,11 +501,9 @@ KBUILD_CFLAGS += $(call cc-option,-fno-PIE) + KBUILD_AFLAGS += $(call cc-option,-fno-PIE) + + # check for 'asm goto' +-ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y) + CC_HAVE_ASM_GOTO := 1 + KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO + KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO +-endif + + # The expansion should be delayed until arch/$(SRCARCH)/Makefile is included. + # Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile. +diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include +index 065324a8046f..d09c67194549 100644 +--- a/scripts/Kbuild.include ++++ b/scripts/Kbuild.include +@@ -216,11 +216,8 @@ cc-disable-warning = $(call try-run-cached,\ + cc-name = $(call shell-cached,$(CC) -v 2>&1 | grep -q "clang version" && echo clang || echo gcc) + + # cc-version +-cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC)) + + # cc-fullversion +-cc-fullversion = $(shell $(CONFIG_SHELL) \ +- $(srctree)/scripts/gcc-version.sh -p $(CC)) + + # cc-ifversion + # Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1) diff --git a/pkgs/os-specific/linux/kernel-headers/no-relocs.patch b/pkgs/os-specific/linux/kernel-headers/no-relocs.patch new file mode 100644 index 000000000000..67e8b19e23bd --- /dev/null +++ b/pkgs/os-specific/linux/kernel-headers/no-relocs.patch @@ -0,0 +1,13 @@ +diff --git a/arch/x86/Makefile b/arch/x86/Makefile +index fad55160dcb9..a48c8331cbb2 100644 +--- a/arch/x86/Makefile ++++ b/arch/x86/Makefile +@@ -239,7 +239,7 @@ ifdef CONFIG_RETPOLINE + endif + + archscripts: scripts_basic +- $(Q)$(MAKE) $(build)=arch/x86/tools relocs ++ $(Q)$(MAKE) $(build)=arch/x86/tools + + ### + # Syscall table generation diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix new file mode 100644 index 000000000000..5aa033348d4e --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix @@ -0,0 +1,18 @@ +{ stdenv, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args: + +with stdenv.lib; + +buildLinux (args // rec { + version = "4.19"; + + # modDirVersion needs to be x.y.z, will automatically add .0 if needed + modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg; + + # branchVersion needs to be x.y + extraMeta.branch = concatStrings (intersperse "." (take 2 (splitString "." version))); + + src = fetchurl { + url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; + sha256 = "18a92z17alh5kkvjv7l9z8wk5jgdb6raawdfkpwx9bi8amjzas0c"; + }; +} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 5e6023582082..1d280647c5a1 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -1,4 +1,5 @@ { buildPackages, runCommand, nettools, bc, bison, flex, perl, rsync, gmp, libmpc, mpfr, openssl +, pkgconfig ? null, ncurses ? null , libelf , utillinux , writeTextFile @@ -265,6 +266,7 @@ stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.platform kernelPatches ++ optional (stdenv.lib.versionAtLeast version "4.14") libelf ++ optional (stdenv.lib.versionAtLeast version "4.15") utillinux ++ optionals (stdenv.lib.versionAtLeast version "4.16") [ bison flex ] + ++ optionals stdenv.lib.inNixShell [ pkgconfig ncurses ] ; hardeningDisable = [ "bindnow" "format" "fortify" "stackprotector" "pic" ]; diff --git a/pkgs/os-specific/linux/libcgroup/default.nix b/pkgs/os-specific/linux/libcgroup/default.nix index a70ab13db623..1e920247a754 100644 --- a/pkgs/os-specific/linux/libcgroup/default.nix +++ b/pkgs/os-specific/linux/libcgroup/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pam, yacc, flex }: +{ stdenv, fetchurl, fetchpatch, pam, yacc, flex }: stdenv.mkDerivation rec { name = "libcgroup-${version}"; @@ -11,6 +11,13 @@ stdenv.mkDerivation rec { buildInputs = [ pam yacc flex ]; + patches = [ + (fetchpatch { + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/libcgroup/files/libcgroup-0.41-remove-umask.patch?id=33e9f4c81de754bbf76b893ea1133ed023f2a0e5"; + sha256 = "1x0x29ld0cgmfwq4qy13s6d5c8sym1frfh1j2q47d8gfw6qaxka5"; + }) + ]; + postPatch = '' substituteInPlace src/tools/Makefile.in \ --replace 'chmod u+s' 'chmod +x' diff --git a/pkgs/os-specific/linux/mdadm/default.nix b/pkgs/os-specific/linux/mdadm/default.nix index 52a5f16bc52c..c6c5f8436902 100644 --- a/pkgs/os-specific/linux/mdadm/default.nix +++ b/pkgs/os-specific/linux/mdadm/default.nix @@ -14,11 +14,11 @@ let ''; in stdenv.mkDerivation rec { - name = "mdadm-4.0"; + name = "mdadm-4.1"; src = fetchurl { url = "mirror://kernel/linux/utils/raid/mdadm/${name}.tar.xz"; - sha256 = "1ad3mma641946wn5lsllwf0lifw9lps34fv1nnkhyfpd9krffshx"; + sha256 = "0jjgjgqijpdp7ijh8slzzjjw690kydb1jjadf0x5ilq85628hxmb"; }; # This is to avoid self-references, which causes the initrd to explode @@ -47,6 +47,7 @@ stdenv.mkDerivation rec { description = "Programs for managing RAID arrays under Linux"; homepage = http://neil.brown.name/blog/mdadm; license = licenses.gpl2; + maintainers = with maintainers; [ ekleog ]; platforms = platforms.linux; }; } diff --git a/pkgs/os-specific/linux/nfs-utils/default.nix b/pkgs/os-specific/linux/nfs-utils/default.nix index 7235d8415f55..19a5184f8962 100644 --- a/pkgs/os-specific/linux/nfs-utils/default.nix +++ b/pkgs/os-specific/linux/nfs-utils/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, fetchpatch, lib, pkgconfig, utillinux, libcap, libtirpc, libevent , sqlite, kerberos, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers -, buildEnv +, buildEnv, python3 }: let @@ -25,6 +25,7 @@ stdenv.mkDerivation rec { buildInputs = [ libtirpc libcap libevent sqlite lvm2 libuuid keyutils kerberos tcp_wrappers + python3 ]; enableParallelBuilding = true; diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix index 492b268610f1..44598588db9d 100644 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ b/pkgs/os-specific/linux/nvidia-x11/default.nix @@ -1,4 +1,4 @@ -{ lib, callPackage, fetchurl }: +{ lib, callPackage, fetchurl, stdenv }: let generic = args: callPackage (import ./generic.nix args) { }; @@ -16,7 +16,17 @@ let in rec { # Policy: use the highest stable version as the default (on our master). - stable = generic { + stable = if stdenv.hostPlatform.system == "x86_64-linux" then stable_410 else stable_390; + + stable_410 = generic { + version = "410.66"; + sha256_64bit = "05xjzvj0fgmkpz36dbd7hy2vzl6xxiflzx7kml3k7ad9gy2svdlg"; + settingsSha256 = "1nsxz1byshgjs3c03lyx6ya36dp0f2vg2l0d9pkh1i6cpzkp53kz"; + persistencedSha256 = "0m4wdpb8w4y323d8py105p9hizwmf2ai8frkl7h77sn3ski17zw6"; + }; + + # Last one supporting x86 + stable_390 = generic { version = "390.87"; sha256_32bit = "0rlr1f4lnpb8c4qz4w5r8xw5gdy9bzz26qww45qyl1qav3wwaaaw"; sha256_64bit = "07k1kq8lkgbvjyr2dnbxcz6nppcwpq17wf925w8kfq78345hla9q"; @@ -26,12 +36,8 @@ rec { patches = lib.optional (kernel.meta.branch == "4.19") ./drm_mode_connector.patch; }; - beta = generic { - version = "410.57"; - sha256_64bit = "08534rv3wcmzslbwq11kd3s7cxm72p48dia6540c0586xwgjwg2w"; - settingsSha256 = "1phhhzlc8n3rqdhrn757mnlqmsp616d079a6h1qjpa6jba9z9915"; - persistencedSha256 = "1z7c1ff0y486yp9i5w0siwh9dnprml22x2avarbjfgqwm4f652lw"; - }; + # No active beta right now + beta = stable; legacy_340 = generic { version = "340.104"; diff --git a/pkgs/os-specific/linux/open-isns/default.nix b/pkgs/os-specific/linux/open-isns/default.nix index c8b404c6be7f..21d32af3ba83 100644 --- a/pkgs/os-specific/linux/open-isns/default.nix +++ b/pkgs/os-specific/linux/open-isns/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "open-isns-${version}"; - version = "0.98"; + version = "0.99"; src = fetchFromGitHub { owner = "gonzoleeman"; repo = "open-isns"; rev = "v${version}"; - sha256 = "055gjwz5hxaj5jk23bf7dy9wbxk9m8cfgl1msbzjc60gr2mmcbdg"; + sha256 = "0m294aiv80rkihacw5094093pc0kd5bkbxqgs6i32jsglxy33hvf"; }; propagatedBuildInputs = [ openssl ]; diff --git a/pkgs/os-specific/linux/r8168/default.nix b/pkgs/os-specific/linux/r8168/default.nix new file mode 100644 index 000000000000..f2c87b97c4ff --- /dev/null +++ b/pkgs/os-specific/linux/r8168/default.nix @@ -0,0 +1,56 @@ +{ 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.046.00"; + + # This is a mirror. The original website[1] doesn't allow non-interactive + # downloads, instead emailing you a download link. + # [1] http://www.realtek.com.tw/downloads/downloadsView.aspx?PFid=5&Level=5&Conn=4&DownTypeID=3 + # I've verified manually (`diff -r`) that the source code for version 8.046.00 + # is the same as the one available on the realtek website. + src = fetchFromGitHub { + owner = "mtorromeo"; + repo = "r8168"; + rev = version; + sha256 = "0y8w3biw5mshn5bvl24b9rybfh67f1s9gfzkcv9p4m7s7nchj2dg"; + }; + + 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 + preBuild = '' + makeFlagsArray+=("-C${kernel.dev}/lib/modules/${kernel.modDirVersion}/build") + makeFlagsArray+=("SUBDIRS=$PWD/src") + makeFlagsArray+=("EXTRA_CFLAGS=-DCONFIG_R8168_NAPI -DCONFIG_R8168_VLAN") + makeFlagsArray+=("modules") + ''; + + 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 ]; + }; +} diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix index b66cb78a702b..ecfd8581ca9d 100644 --- a/pkgs/os-specific/linux/rdma-core/default.nix +++ b/pkgs/os-specific/linux/rdma-core/default.nix @@ -3,7 +3,7 @@ } : let - version = "20"; + version = "20.1"; in stdenv.mkDerivation { name = "rdma-core-${version}"; @@ -12,7 +12,7 @@ in stdenv.mkDerivation { owner = "linux-rdma"; repo = "rdma-core"; rev = "v${version}"; - sha256 = "1zz9r1zq9ql806sbyi7nrslx1d96hgd9zvdlzbv4j31m6kfmsyri"; + sha256 = "1j6d3n4wzl04m0k4nxbmahfwc094185d5jyijgvg3z5hwwb8lkwv"; }; nativeBuildInputs = [ cmake pkgconfig pandoc ]; diff --git a/pkgs/os-specific/linux/sysstat/default.nix b/pkgs/os-specific/linux/sysstat/default.nix index 5f3eb22f127e..d3a9d7834cdc 100644 --- a/pkgs/os-specific/linux/sysstat/default.nix +++ b/pkgs/os-specific/linux/sysstat/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, gettext, bzip2 }: stdenv.mkDerivation rec { - name = "sysstat-12.0.1"; + name = "sysstat-12.1.1"; src = fetchurl { url = "http://perso.orange.fr/sebastien.godard/${name}.tar.xz"; - sha256 = "114wh7iqi82c0az8wn3dg3y56279fb2wg81v8kvx87mq5975bg51"; + sha256 = "0drrlv2fr64g5zf0a2bkla2rql4nmq4n192wvcr9r4zppg58d8k4"; }; buildInputs = [ gettext ]; diff --git a/pkgs/os-specific/linux/usbutils/default.nix b/pkgs/os-specific/linux/usbutils/default.nix index 657d6cc24a8d..8d53756d5101 100644 --- a/pkgs/os-specific/linux/usbutils/default.nix +++ b/pkgs/os-specific/linux/usbutils/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { postInstall = '' substituteInPlace $out/bin/lsusb.py \ - --replace /usr/share/usb.ids ${hwdata}/data/hwdata/usb.ids + --replace /usr/share/usb.ids ${hwdata}/share/hwdata/usb.ids ''; meta = with stdenv.lib; { |