diff options
38 files changed, 483 insertions, 61 deletions
diff --git a/nixos/modules/hardware/system-76.nix b/nixos/modules/hardware/system-76.nix new file mode 100644 index 0000000000000..48eb63f4f22de --- /dev/null +++ b/nixos/modules/hardware/system-76.nix @@ -0,0 +1,56 @@ +{ config, lib, pkgs, ... }: + +let + inherit (lib) mkOption mkEnableOption types mkIf mkMerge optional versionOlder; + cfg = config.hardware.system76; + + kpkgs = config.boot.kernelPackages; + modules = [ "system76" "system76-io" ] ++ (optional (versionOlder kpkgs.kernel.version "5.5") "system76-acpi"); + modulePackages = map (m: kpkgs.${m}) modules; + moduleConfig = mkIf cfg.kernel-modules.enable { + boot.extraModulePackages = modulePackages; + + boot.kernelModules = modules; + + services.udev.packages = modulePackages; + }; + + firmware-pkg = pkgs.system76-firmware; + firmwareConfig = mkIf cfg.firmware-daemon.enable { + services.dbus.packages = [ firmware-pkg ]; + + systemd.services.system76-firmware-daemon = { + description = "The System76 Firmware Daemon"; + + serviceConfig = { + ExecStart = "${firmware-pkg}/bin/system76-firmware-daemon"; + + Restart = "on-failure"; + }; + + wantedBy = [ "multi-user.target" ]; + }; + }; +in { + options = { + hardware.system76 = { + enableAll = mkEnableOption "all recommended configuration for system76 systems"; + + firmware-daemon.enable = mkOption { + default = cfg.enableAll; + example = true; + description = "Whether to enable the system76 firmware daemon"; + type = types.bool; + }; + + kernel-modules.enable = mkOption { + default = cfg.enableAll; + example = true; + description = "Whether to make the system76 out-of-tree kernel modules available"; + type = types.bool; + }; + }; + }; + + config = mkMerge [ moduleConfig firmwareConfig ]; +} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index b516b1785195a..41cbb50132312 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -60,6 +60,7 @@ ./hardware/printers.nix ./hardware/raid/hpsa.nix ./hardware/steam-hardware.nix + ./hardware/system-76.nix ./hardware/tuxedo-keyboard.nix ./hardware/usb-wwan.nix ./hardware/onlykey.nix diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh index 0c1be71cf5326..f7c2940049e56 100644 --- a/nixos/modules/system/boot/stage-1-init.sh +++ b/nixos/modules/system/boot/stage-1-init.sh @@ -218,6 +218,7 @@ done # Create device nodes in /dev. @preDeviceCommands@ echo "running udev..." +ln -sfn /proc/self/fd /dev/fd mkdir -p /etc/systemd ln -sfn @linkUnits@ /etc/systemd/network mkdir -p /etc/udev diff --git a/nixos/tests/magnetico.nix b/nixos/tests/magnetico.nix index 6770d32358e83..e79a728b2ac86 100644 --- a/nixos/tests/magnetico.nix +++ b/nixos/tests/magnetico.nix @@ -27,12 +27,13 @@ in start_all() machine.wait_for_unit("magneticod") machine.wait_for_unit("magneticow") + machine.wait_for_open_port(${toString port}) machine.succeed( - "${pkgs.curl}/bin/curl " + "${pkgs.curl}/bin/curl --fail " + "-u user:password http://localhost:${toString port}" ) - assert "Unauthorised." in machine.succeed( - "${pkgs.curl}/bin/curl " + machine.fail( + "${pkgs.curl}/bin/curl --fail " + "-u user:wrongpwd http://localhost:${toString port}" ) machine.shutdown() diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 4e3960ee72968..a79a48fffcc5c 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -17,7 +17,7 @@ , libXScrnSaver, libXcursor, libXtst, libGLU, libGL , protobuf, speechd, libXdamage, cups , ffmpeg_3, libxslt, libxml2, at-spi2-core -, jre +, jre8 , pipewire_0_2 # optional dependencies @@ -50,6 +50,8 @@ with stdenv.lib; # see http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/chromium.html let + jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731 + # The additional attributes for creating derivations based on the chromium # source tree. extraAttrs = buildFun base; diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 1c811acd2547a..7f5378e2b1992 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -55,6 +55,17 @@ let sha256 = "0h3wf4152zdvrbb0jbj49q6814lfl3rcy5mj8b2pl9s0ahvkbc6q"; }; }); + } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "87") { + llvmPackages = llvmPackages_11; + useOzone = true; # YAY: https://chromium-review.googlesource.com/c/chromium/src/+/2382834 \o/ + gnChromium = gn.overrideAttrs (oldAttrs: { + version = "2020-08-17"; + src = fetchgit { + url = "https://gn.googlesource.com/gn"; + rev = "6f13aaac55a977e1948910942675c69f2b4f7a94"; + sha256 = "01hpma1sllpdx09mvr4d6073sg6zmk6iv44kd3r28khymcj4s251"; + }; + }); }); browser = callPackage ./browser.nix { inherit channel enableWideVine; }; diff --git a/pkgs/applications/networking/browsers/chromium/update.py b/pkgs/applications/networking/browsers/chromium/update.py index 0a0d512004b54..bfc7f0d2478c3 100755 --- a/pkgs/applications/networking/browsers/chromium/update.py +++ b/pkgs/applications/networking/browsers/chromium/update.py @@ -4,9 +4,11 @@ import csv import json import subprocess +import sys + from codecs import iterdecode +from collections import OrderedDict from os.path import abspath, dirname -from sys import stderr from urllib.request import urlopen HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux' @@ -27,7 +29,7 @@ def nix_prefetch_url(url, algo='sha256'): channels = {} last_channels = load_json(JSON_PATH) -print(f'GET {HISTORY_URL}', file=stderr) +print(f'GET {HISTORY_URL}', file=sys.stderr) with urlopen(HISTORY_URL) as resp: builds = csv.DictReader(iterdecode(resp, 'utf-8')) for build in builds: @@ -59,5 +61,17 @@ with urlopen(HISTORY_URL) as resp: channels[channel_name] = channel with open(JSON_PATH, 'w') as out: - json.dump(channels, out, indent=2) + def get_channel_key(item): + channel_name = item[0] + if channel_name == 'stable': + return 0 + elif channel_name == 'beta': + return 1 + elif channel_name == 'dev': + return 2 + else: + print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr) + sys.exit(1) + sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key)) + json.dump(sorted_channels, out, indent=2) out.write('\n') diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 76c384114a9ef..ec8fc3407d255 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -1,17 +1,17 @@ { "stable": { - "version": "85.0.4183.102", - "sha256": "032yh1mfwins7a62zw8kwwq8xw1n52a0a93lqz7qlyjaf9sd8s4a", - "sha256bin64": "1i8xaxxnmg80vsia8hxnq58qi9k5nnbrl80d6d23g9lb7dbc9cpm" + "version": "85.0.4183.121", + "sha256": "0a1xn39kmvyfpal6pgnylpy30z0322p3v7sx6vxi0r2naiz58670", + "sha256bin64": "08vqf1v91703aik47344bl409rsl4myar9bsd2lsvzqncncwsaca" }, "beta": { - "version": "86.0.4240.22", - "sha256": "1qxacdwknrjwfp44mnqmq24n8sw4yaf0d1qnz39km2m4apc39svp", - "sha256bin64": "05qdzkq9daqjliqj7zxsa03903rv3kwaj627192ls6m33bacz9gp" + "version": "86.0.4240.42", + "sha256": "06cfhiym9xmz2q86v6b6xcicrrp2pmr7karavylzz4fqvwd2v6fa", + "sha256bin64": "1z5zmdc2i31iimps7p5z43vv4qi83c8ljb7x68zc1rvf8x62p7xj" }, "dev": { - "version": "86.0.4240.8", - "sha256": "1x0kbc7xp6599jyn461mbmchbixivnxm0jsyfq0snhxz8x81z55q", - "sha256bin64": "0y7drzxxfn0vmfq0m426l8xvkgyajb8pjydi0d7kzk6i92sjf45j" + "version": "87.0.4263.3", + "sha256": "1ybfrlm4417lpbg5qcwhq5p6nnxrw68wzyy5zvb1sg1ma8s9hhkk", + "sha256bin64": "1f7a272kalglmdwmrrzb4iw3crvvpv3mhxca5jh75qpldn4gby6m" } } diff --git a/pkgs/applications/science/logic/why3/default.nix b/pkgs/applications/science/logic/why3/default.nix index b9bd2172bb1c4..eacff32bdf62e 100644 --- a/pkgs/applications/science/logic/why3/default.nix +++ b/pkgs/applications/science/logic/why3/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation { pname = "why3"; - version = "1.3.1"; + version = "1.3.3"; src = fetchurl { - url = "https://gforge.inria.fr/frs/download.php/file/38291/why3-1.3.1.tar.gz"; - sha256 = "16zcrc60zz2j3gd3ww93z2z9x2jkxb3kr57y8i5rcgmacy7mw3bv"; + url = "https://gforge.inria.fr/frs/download.php/file/38367/why3-1.3.3.tar.gz"; + sha256 = "1n0a2nn1gnk0zg339lh698g4wpk7m8m1vyi2yvifd5adqvk4milw"; }; buildInputs = with ocamlPackages; [ diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index f270fe97326c1..e17a0af4efd85 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -29,7 +29,7 @@ , target ? null , cargoVendorDir ? null , checkType ? buildType - +, depsExtraArgs ? {} # Needed to `pushd`/`popd` into a subdir of a tarball if this subdir # contains a Cargo.toml, but isn't part of a workspace (which is e.g. the # case for `rustfmt`/etc from the `rust-sources). @@ -43,11 +43,11 @@ assert buildType == "release" || buildType == "debug"; let cargoDeps = if cargoVendorDir == null - then fetchCargoTarball { + then fetchCargoTarball ({ inherit name src srcs sourceRoot unpackPhase cargoUpdateHook; patches = cargoPatches; sha256 = cargoSha256; - } + } // depsExtraArgs) else null; # If we have a cargoSha256 fixed-output derivation, validate it at build time @@ -83,7 +83,7 @@ let in -stdenv.mkDerivation (args // { +stdenv.mkDerivation ((removeAttrs args ["depsExtraArgs"]) // { inherit cargoDeps; patchRegistryDeps = ./patch-registry-deps; diff --git a/pkgs/development/compilers/llvm/5/lldb.nix b/pkgs/development/compilers/llvm/5/lldb.nix index e0698e1dcf3dd..e827f76231f11 100644 --- a/pkgs/development/compilers/llvm/5/lldb.nix +++ b/pkgs/development/compilers/llvm/5/lldb.nix @@ -1,5 +1,6 @@ { stdenv , fetch +, fetchpatch , cmake , zlib , ncurses @@ -20,6 +21,15 @@ stdenv.mkDerivation { src = fetch "lldb" "05j2a63yzln43852nng8a7y47spzlyr1cvdmgmbxgd29c8r0bfkq"; + patches = [ + # Fix PythonString::GetString for >=python-3.7 + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/5457b426f5e15a29c0acc8af1a476132f8be2a36.patch"; + sha256 = "1zbx4m0m8kbg0wq6740jcw151vb2pb1p25p401wiq8diqqagkjps"; + stripLen = 1; + }) + ]; + postPatch = '' # Fix up various paths that assume llvm and clang are installed in the same place sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \ diff --git a/pkgs/development/compilers/llvm/6/lldb.nix b/pkgs/development/compilers/llvm/6/lldb.nix index 80e298eaf8c0c..629749e10f3c4 100644 --- a/pkgs/development/compilers/llvm/6/lldb.nix +++ b/pkgs/development/compilers/llvm/6/lldb.nix @@ -1,5 +1,6 @@ { stdenv , fetch +, fetchpatch , cmake , zlib , ncurses @@ -20,6 +21,15 @@ stdenv.mkDerivation { src = fetch "lldb" "05178zkyh84x32n91md6wm22lkzzrrfwa5cpmgzn0yrg3y2771bb"; + patches = [ + # Fix PythonString::GetString for >=python-3.7 + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/5457b426f5e15a29c0acc8af1a476132f8be2a36.patch"; + sha256 = "1zbx4m0m8kbg0wq6740jcw151vb2pb1p25p401wiq8diqqagkjps"; + stripLen = 1; + }) + ]; + postPatch = '' # Fix up various paths that assume llvm and clang are installed in the same place sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \ diff --git a/pkgs/development/libraries/crc32c/default.nix b/pkgs/development/libraries/crc32c/default.nix index 1da2f210c5cf3..b9c12b1889c21 100644 --- a/pkgs/development/libraries/crc32c/default.nix +++ b/pkgs/development/libraries/crc32c/default.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchFromGitHub, cmake, gflags }: +{ stdenv, lib, fetchFromGitHub, cmake, gflags +, staticOnly ? false }: + stdenv.mkDerivation rec { pname = "crc32c"; version = "1.1.0"; @@ -14,6 +16,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ gflags ]; NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isAarch64 "-march=armv8-a+crc"; + cmakeFlags = lib.optionals (!staticOnly) [ "-DBUILD_SHARED_LIBS=1" ]; meta = with stdenv.lib; { homepage = "https://github.com/google/crc32c"; diff --git a/pkgs/development/python-modules/bcrypt/3_1.nix b/pkgs/development/python-modules/bcrypt/3_1.nix new file mode 100644 index 0000000000000..c70161cf28b06 --- /dev/null +++ b/pkgs/development/python-modules/bcrypt/3_1.nix @@ -0,0 +1,23 @@ +{ stdenv, lib, buildPythonPackage, fetchPypi +, isPyPy, cffi, pytest, six }: + +buildPythonPackage rec { + version = "3.1.7"; + pname = "bcrypt"; + + src = fetchPypi { + inherit pname version; + sha256 = "0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42"; + }; + + checkInputs = [ pytest ]; + + propagatedBuildInputs = [ six ] ++ lib.optional (!isPyPy) cffi; + + meta = with lib; { + description = "Modern password hashing for your software and your servers"; + homepage = "https://github.com/pyca/bcrypt/"; + license = licenses.asl20; + maintainers = with maintainers; [ domenkozar ]; + }; +} diff --git a/pkgs/development/python-modules/fluent-logger/default.nix b/pkgs/development/python-modules/fluent-logger/default.nix index e99ececc24e11..70c9173f4d50b 100644 --- a/pkgs/development/python-modules/fluent-logger/default.nix +++ b/pkgs/development/python-modules/fluent-logger/default.nix @@ -9,10 +9,21 @@ buildPythonPackage rec { sha256 = "a7d47eae4d2a11c8cb0df10ae3d034d95b0b8cef9d060e59e7519ad1f82ffa73"; }; + prePatch = '' + substituteInPlace setup.py \ + --replace "msgpack<1.0.0" "msgpack" + ''; + propagatedBuildInputs = [ msgpack ]; # Tests fail because absent in package doCheck = false; + pythonImportsCheck = [ + "fluent" + "fluent.event" + "fluent.handler" + "fluent.sender" + ]; meta = with lib; { description = "A structured logger for Fluentd (Python)"; diff --git a/pkgs/development/python-modules/google-crc32c/default.nix b/pkgs/development/python-modules/google-crc32c/default.nix new file mode 100644 index 0000000000000..fbed406cebcea --- /dev/null +++ b/pkgs/development/python-modules/google-crc32c/default.nix @@ -0,0 +1,31 @@ +{ lib, buildPythonPackage, isPy3k, fetchFromGitHub, cffi, crc32c, pytestCheckHook }: + +buildPythonPackage rec { + pname = "google-crc32c"; + version = "1.0.0"; + + disabled = !isPy3k; + + src = fetchFromGitHub { + owner = "googleapis"; + repo = "python-crc32c"; + rev = "v${version}"; + sha256 = "0n3ggsxmk1fhq0kz6p5rcj4gypfb05i26fcn7lsawakgl7fzxqyl"; + }; + + buildInputs = [ crc32c ]; + propagatedBuildInputs = [ cffi ]; + + LDFLAGS = "-L${crc32c}/lib"; + CFLAGS = "-I${crc32c}/include"; + + checkInputs = [ pytestCheckHook crc32c ]; + pythonImportsCheck = [ "google_crc32c" ]; + + meta = with lib; { + homepage = "https://github.com/googleapis/python-crc32c"; + description = "Wrapper the google/crc32c hardware-based implementation of the CRC32C hashing algorithm"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ freezeboy ]; + }; +} diff --git a/pkgs/development/python-modules/google_resumable_media/default.nix b/pkgs/development/python-modules/google_resumable_media/default.nix index ac8a111b3e764..5bd95004f93b3 100644 --- a/pkgs/development/python-modules/google_resumable_media/default.nix +++ b/pkgs/development/python-modules/google_resumable_media/default.nix @@ -1,30 +1,35 @@ -{ stdenv +{ lib , buildPythonPackage +, isPy3k , fetchPypi , six , requests , setuptools , pytest , mock +, crcmod +, google-crc32c }: buildPythonPackage rec { pname = "google-resumable-media"; - version = "0.7.1"; + version = "1.0.0"; src = fetchPypi { inherit pname version; - sha256 = "57841f5e65fb285c01071f439724745b2549a72eb75e5fd979198eb518608ed0"; + sha256 = "FzrMa63hSApSn6KcbCcXVDri3AnULpRh/bhvOVAu/PI="; }; checkInputs = [ pytest mock ]; - propagatedBuildInputs = [ requests setuptools six ]; + propagatedBuildInputs = [ requests setuptools six ] + ++ lib.optional isPy3k google-crc32c + ++ lib.optional (!isPy3k) crcmod; checkPhase = '' py.test tests/unit ''; - meta = with stdenv.lib; { + meta = with lib; { description = "Utilities for Google Media Downloads and Resumable Uploads"; homepage = "https://github.com/GoogleCloudPlatform/google-resumable-media-python"; license = licenses.asl20; diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix index 834942ee00eac..54eae801dfe70 100644 --- a/pkgs/development/python-modules/trytond/default.nix +++ b/pkgs/development/python-modules/trytond/default.nix @@ -1,6 +1,7 @@ { stdenv , buildPythonApplication , fetchPypi +, pythonOlder , mock , lxml , relatorio @@ -25,6 +26,8 @@ with stdenv.lib; buildPythonApplication rec { pname = "trytond"; version = "5.6.5"; + disabled = pythonOlder "3.5"; + src = fetchPypi { inherit pname version; sha256 = "a373d73b141d71f8e30d728dd8380955bc0f33daaa097201fa9a952e3663e6d8"; diff --git a/pkgs/os-specific/linux/firmware/firmware-manager/default.nix b/pkgs/os-specific/linux/firmware/firmware-manager/default.nix new file mode 100644 index 0000000000000..e98de6bbe9e8e --- /dev/null +++ b/pkgs/os-specific/linux/firmware/firmware-manager/default.nix @@ -0,0 +1,38 @@ +{ rustPlatform, lib, fetchFromGitHub, lzma, pkgconfig, openssl, dbus, glib, udev, cairo, pango, atk, gdk-pixbuf, gtk3, wrapGAppsHook }: +rustPlatform.buildRustPackage rec { + pname = "firmware-manager"; + version = "0.1.1"; + + src = fetchFromGitHub { + owner = "pop-os"; + repo = pname; + rev = version; + sha256 = "0x9604jsflqxvbkfp139mzjicpyx8v21139jj8bp88c14ngvmdlw"; + }; + + nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; + + buildInputs = [ lzma openssl dbus glib udev cairo pango atk gdk-pixbuf gtk3 ]; + + depsExtraArgs.postPatch = "make prefix='$(out)' toml-gen"; + + postPatch = '' + sed -i 's|etc|$(prefix)/etc|' Makefile + ''; + + buildPhase = "make prefix='$(out)'"; + + installPhase = "make prefix='$(out)' install"; + + cargoSha256 = "0byc0pqa1w2qnfrx3psrzdq1c8qjslbmzxg872b9v6fr5d4c9cvg"; + + doCheck = false; + + 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/system76-firmware/default.nix b/pkgs/os-specific/linux/firmware/system76-firmware/default.nix new file mode 100644 index 0000000000000..40598abac9211 --- /dev/null +++ b/pkgs/os-specific/linux/firmware/system76-firmware/default.nix @@ -0,0 +1,39 @@ +{ rustPlatform, lib, fetchFromGitHub, lzma, pkgconfig, openssl, dbus, efibootmgr, makeWrapper }: +rustPlatform.buildRustPackage rec { + pname = "system76-firmware"; + # Check Makefile when updating, make sure postInstall matches make install + version = "1.0.17"; + + src = fetchFromGitHub { + owner = "pop-os"; + repo = pname; + rev = version; + sha256 = "0cnrskfk3sam90lfpgsraqs4bx9yz8rxhwfs8rxdri04lakxgghg"; + }; + + nativeBuildInputs = [ pkgconfig makeWrapper ]; + + buildInputs = [ lzma openssl dbus ]; + + cargoBuildFlags = [ "--workspace" ]; + + cargoSha256 = "06jrmxy68glcmbn9px29wc0s8pqdn26iy4jn3c246dapv1zvbb4s"; + + # 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 = { + description = "Tools for managing firmware updates for system76 devices."; + homepage = "https://github.com/pop-os/system76-firmware"; + license = lib.licenses.gpl3; + maintainers = [ lib.maintainers.shlevy ]; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix index 58721a2a6427a..e0c370c59466b 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.14.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.14.198"; + version = "4.14.199"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "00xmij2l4qmx1s07hplxkn9ddlwiyalh2l5fqdk6d8v031cbmyhy"; + sha256 = "1yflafb0n783igghk6d392pk6lbk3p2w7y01ams08f1b4qm47wq2"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix index d50535e5d3289..aebded8cb7390 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.19.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "4.19.146"; + version = "4.19.147"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0jl17yk3fpz0sx203l9l1fj5bly3jgsyr8hy5qa6py99fbk0qnim"; + sha256 = "19nnx61v7c0102ik1rjan0kdsj8av8v7iqz5vm3v3kjllmjmvr2x"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix index 937149c571c73..c6f9b6ddb47c5 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.4.236"; + version = "4.4.237"; extraMeta.branch = "4.4"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1v1mx16x1crnxf4pix0bhw40lq89n7wpd66gjc2mhxi75h6x6i80"; + sha256 = "1q6hwjwvlsikgr8b04l7v2jia2wyqxgbli6i7y20aq49h13ap2qk"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix index 116e40fed7822..c6d29d2d8a521 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.9.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix @@ -1,11 +1,11 @@ { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args: buildLinux (args // rec { - version = "4.9.236"; + version = "4.9.237"; extraMeta.branch = "4.9"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "1ma2z0nvby4qyxzi3vxa28f0wvlnl74njk6cryjrqaksq6161qp7"; + sha256 = "07w6mwgh7i3bvg1w3w5i9kgxjmvqr7cv7nzrmx7j9p6cq295gv41"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix index 90f191c3681b6..046007c58e64f 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.4.66"; + version = "5.4.67"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "1cnsrz21kcf0h7krpv9p1a7n59mybr5ii0jdi3yc3x3lcwvk06gz"; + sha256 = "196avi0950qrd0lxdpdsl6lxa51f20sz476mcl1i5islbnfbsxf1"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.8.nix b/pkgs/os-specific/linux/kernel/linux-5.8.nix index 14abb483eee71..d9567b20e03e4 100644 --- a/pkgs/os-specific/linux/kernel/linux-5.8.nix +++ b/pkgs/os-specific/linux/kernel/linux-5.8.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.8.10"; + version = "5.8.11"; # modDirVersion needs to be x.y.z, will automatically add .0 if needed modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; @@ -13,6 +13,6 @@ buildLinux (args // rec { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "1wjsdc93xilag0pk205m2q0ixmpp93ql5qj0fm3qlqddgxm14vlx"; + sha256 = "0jy0yrrixzql9dlk9305w98pja2pm6ijrdbai326595pnk740n9y"; }; } // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/system76-acpi/default.nix b/pkgs/os-specific/linux/system76-acpi/default.nix new file mode 100644 index 0000000000000..b7c0e27669da4 --- /dev/null +++ b/pkgs/os-specific/linux/system76-acpi/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchFromGitHub, kernel }: +let + version = "1.0.1"; + sha256 = "0jmm9h607f7k20yassm6af9mh5l00yih5248wwv4i05bd68yw3p5"; +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 stdenv.lib; { + maintainers = [ maintainers.khumba ]; + license = [ licenses.gpl2Only ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + broken = versionOlder kernel.version "4.14"; + 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 new file mode 100644 index 0000000000000..dac1e2db1e383 --- /dev/null +++ b/pkgs/os-specific/linux/system76-io/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, kernel }: +let + version = "1.0.1"; + sha256 = "0qkgkkjy1isv6ws6hrcal75dxjz98rpnvqbm7agdcc6yv0c17wwh"; +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 stdenv.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/default.nix b/pkgs/os-specific/linux/system76/default.nix new file mode 100644 index 0000000000000..02eca1d5bbd57 --- /dev/null +++ b/pkgs/os-specific/linux/system76/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchFromGitHub, kernel }: +let + version = "1.0.9"; + sha256 = "0i4825y2vd679kdjv30ifzj1i1066d3x37z4lgk39hx16993k162"; +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 stdenv.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/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix index 0bcad77c4155f..975c092251012 100644 --- a/pkgs/servers/monitoring/grafana/default.nix +++ b/pkgs/servers/monitoring/grafana/default.nix @@ -2,7 +2,7 @@ buildGoModule rec { pname = "grafana"; - version = "7.1.5"; + version = "7.2.0"; excludedPackages = [ "release_publisher" ]; @@ -10,15 +10,15 @@ buildGoModule rec { rev = "v${version}"; owner = "grafana"; repo = "grafana"; - sha256 = "089z2x6jhiv5cx70vm7f1pyj5avappnaxrwah8jbnlkaz2kisp79"; + sha256 = "1pzsg6kr5kq5767plji7m6ssy2z9jxjp9zp182baxjd634mmclcx"; }; srcStatic = fetchurl { url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz"; - sha256 = "0l1lw3y5w4s6qfkmclzc6h6hqwxqmxlppnwsq1zpm2hmrndy440j"; + sha256 = "003sn06r94m68b6l91cjr3xr3i7hq54ay0gb562i6y5swrfkqqwz"; }; - vendorSha256 = "0i0qdfh6cjdjg2mrrabm42427aaxs6a90ydb554ds14k6r4jdf8b"; + vendorSha256 = "1b33kibvfa1qgalqb9ngxqimcn92cy8sllsc81wc9gmz4giz9mn1"; postPatch = '' substituteInPlace pkg/cmd/grafana-server/main.go \ diff --git a/pkgs/test/haskell-shellFor/default.nix b/pkgs/test/haskell-shellFor/default.nix index 1b3de999d228f..05d09d6f39cf7 100644 --- a/pkgs/test/haskell-shellFor/default.nix +++ b/pkgs/test/haskell-shellFor/default.nix @@ -1,7 +1,7 @@ -{ stdenv, haskellPackages, cabal-install }: +{ lib, stdenv, haskellPackages, cabal-install }: -haskellPackages.shellFor { - packages = p: [ p.database-id-class p.constraints-extras ]; +(haskellPackages.shellFor { + packages = p: [ p.database-id-class p.constraints ]; nativeBuildInputs = [ cabal-install ]; phases = [ "unpackPhase" "buildPhase" "installPhase" ]; unpackPhase = '' @@ -9,16 +9,25 @@ haskellPackages.shellFor { mkdir -p "$sourceRoot" cd "$sourceRoot" tar -xf ${haskellPackages.database-id-class.src} - tar -xf ${haskellPackages.constraints-extras.src} - cp ${builtins.toFile "cabal.project" "packages: database-id-class* constraints-extras*"} cabal.project + tar -xf ${haskellPackages.constraints.src} + cp ${builtins.toFile "cabal.project" "packages: database-id-class* constraints*"} cabal.project ''; buildPhase = '' export HOME=$(mktemp -d) mkdir -p $HOME/.cabal touch $HOME/.cabal/config - cabal v2-build --offline --verbose database-id-class constraints-extras --ghc-options="-O0 -j$NIX_BUILD_CORES" + cabal v2-build --offline --verbose database-id-class constraints --ghc-options="-O0 -j$NIX_BUILD_CORES" ''; installPhase = '' touch $out ''; -} +}).overrideAttrs (oldAttrs: { + meta = + let + oldMeta = oldAttrs.meta or {}; + oldMaintainers = oldMeta.maintainers or []; + additionalMaintainers = with lib.maintainers; [ cdepillabout ]; + allMaintainers = oldMaintainers ++ additionalMaintainers; + in + oldMeta // { maintainers = allMaintainers; }; +}) diff --git a/pkgs/tools/filesystems/orangefs/default.nix b/pkgs/tools/filesystems/orangefs/default.nix index 37f4026799b63..8c1378d97bc42 100644 --- a/pkgs/tools/filesystems/orangefs/default.nix +++ b/pkgs/tools/filesystems/orangefs/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "orangefs"; - version = "2.9.7"; + version = "2.9.8"; src = fetchurl { url = "http://download.orangefs.org/current/source/orangefs-${version}.tar.gz"; - sha256 = "15669f5rcvn44wkas0mld0qmyclrmhbrw4bbbp66sw3a12vgn4sm"; + sha256 = "0c2yla615j04ygclfavh8g5miqhbml2r0zs2c5mvkacf9in7p7sq"; }; nativeBuildInputs = [ bison flex perl autoreconfHook ]; diff --git a/pkgs/tools/misc/birdfont/default.nix b/pkgs/tools/misc/birdfont/default.nix index bdf68d708a5dc..7cec0cab996ea 100644 --- a/pkgs/tools/misc/birdfont/default.nix +++ b/pkgs/tools/misc/birdfont/default.nix @@ -14,7 +14,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ python3 pkgconfig vala_0_44 gobject-introspection wrapGAppsHook ]; buildInputs = [ xmlbird libgee cairo gdk-pixbuf glib gtk3 webkitgtk libnotify sqlite gsettings-desktop-schemas ]; - postPatch = "patchShebangs ."; + postPatch = '' + substituteInPlace install.py \ + --replace 'platform.version()' '"Nix"' + + patchShebangs . + ''; buildPhase = "./build.py"; diff --git a/pkgs/tools/misc/birdfont/xmlbird.nix b/pkgs/tools/misc/birdfont/xmlbird.nix index e5ad56376cac7..eddcba1c9c891 100644 --- a/pkgs/tools/misc/birdfont/xmlbird.nix +++ b/pkgs/tools/misc/birdfont/xmlbird.nix @@ -13,7 +13,11 @@ stdenv.mkDerivation rec { buildInputs = [ glib ]; - postPatch = "patchShebangs ."; + postPatch = '' + substituteInPlace configure \ + --replace 'platform.dist()[0]' '"nix"' + patchShebangs . + ''; buildPhase = "./build.py"; diff --git a/pkgs/tools/networking/curlie/default.nix b/pkgs/tools/networking/curlie/default.nix index b2c4d46a8ce9e..f8147cb161159 100644 --- a/pkgs/tools/networking/curlie/default.nix +++ b/pkgs/tools/networking/curlie/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "curlie"; - version = "1.3.1"; + version = "1.5.4"; src= fetchFromGitHub { owner = "rs"; repo = pname; rev = "v${version}"; - sha256 = "09v8alrbw6qva3q3bcqxnyjm7svagfxqvhdff7cqf5pbmkxnhln9"; + sha256 = "0z92gz39m0gk8j7l2nwa5vrfr3mq160vr1b15sy13jwi1zspc7hx"; }; - vendorSha256 = "1mxgf004czf65a2mv99gfp27g98xhllmfcz4ynfv66nfkbfz6a8n"; + vendorSha256 = "1qnl15b9cs6xi8z368a9n34v3wr2adwp376cjzhyllni7sf6v1mm"; doCheck = false; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1dc11963f273c..43d1856ad4bbd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2537,7 +2537,7 @@ in biblatex-check = callPackage ../tools/typesetting/biblatex-check { }; birdfont = callPackage ../tools/misc/birdfont { }; - xmlbird = callPackage ../tools/misc/birdfont/xmlbird.nix { }; + xmlbird = callPackage ../tools/misc/birdfont/xmlbird.nix { stdenv = gccStdenv; }; blastem = callPackage ../misc/emulators/blastem { inherit (python27Packages) pillow; @@ -17304,6 +17304,8 @@ in fwupd = callPackage ../os-specific/linux/firmware/fwupd { }; + firmware-manager = callPackage ../os-specific/linux/firmware/firmware-manager { }; + fwts = callPackage ../os-specific/linux/fwts { }; gobi_loader = callPackage ../os-specific/linux/gobi_loader { }; @@ -17811,6 +17813,12 @@ in systemtap = callPackage ../development/tools/profiling/systemtap { }; + system76 = callPackage ../os-specific/linux/system76 { }; + + system76-acpi = callPackage ../os-specific/linux/system76-acpi { }; + + system76-io = callPackage ../os-specific/linux/system76-io { }; + tmon = callPackage ../os-specific/linux/tmon { }; tp_smapi = callPackage ../os-specific/linux/tp_smapi { }; @@ -18104,6 +18112,8 @@ in nvme-cli = callPackage ../os-specific/linux/nvme-cli { }; + system76-firmware = callPackage ../os-specific/linux/firmware/system76-firmware { }; + open-vm-tools = callPackage ../applications/virtualization/open-vm-tools { }; open-vm-tools-headless = open-vm-tools.override { withX = false; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 90d4646dfb4a3..237a3800537dd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -776,7 +776,10 @@ in { bcdoc = callPackage ../development/python-modules/bcdoc { }; - bcrypt = callPackage ../development/python-modules/bcrypt { }; + bcrypt = if pythonOlder "3.6" then + callPackage ../development/python-modules/bcrypt/3_1.nix { } + else + callPackage ../development/python-modules/bcrypt { }; beaker = callPackage ../development/python-modules/beaker { }; @@ -2452,6 +2455,10 @@ in { google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { }; + google-crc32c = callPackage ../development/python-modules/google-crc32c { + inherit (pkgs) crc32c; + }; + google-i18n-address = callPackage ../development/python-modules/google-i18n-address { }; google-music = callPackage ../development/python-modules/google-music { }; diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix index ca64c4d975cb6..4fa5b92e951d0 100644 --- a/pkgs/top-level/static.nix +++ b/pkgs/top-level/static.nix @@ -191,6 +191,9 @@ in { gsm = super.gsm.override { staticSupport = true; }; + crc32c = super.crc32c.override { + staticOnly = true; + }; parted = super.parted.override { enableStatic = true; }; |