diff --git a/doc/contributing/submitting-changes.chapter.md b/doc/contributing/submitting-changes.chapter.md index 8a981284153c..e360dba5abd7 100644 --- a/doc/contributing/submitting-changes.chapter.md +++ b/doc/contributing/submitting-changes.chapter.md @@ -161,7 +161,7 @@ Many Nix packages are designed to run on multiple platforms. As such, it’s imp ### Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests) {#submitting-changes-nixos-tests} -Packages with automated tests are much more likely to be merged in a timely fashion because it doesn’t require as much manual testing by the maintainer to verify the functionality of the package. If there are existing tests for the package, they should be run to verify your changes do not break the tests. Tests only apply to packages with NixOS modules defined and can only be run on Linux. For more details on writing and running tests, see the [section in the NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests). +Packages with automated tests are much more likely to be merged in a timely fashion because it doesn’t require as much manual testing by the maintainer to verify the functionality of the package. If there are existing tests for the package, they should be run to verify your changes do not break the tests. Tests can only be run on Linux. For more details on writing and running tests, see the [section in the NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests). ### Tested compilation of all pkgs that depend on this change using `nixpkgs-review` {#submitting-changes-tested-compilation} diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index f43cd3e29d54..92f7f79e2344 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -492,6 +492,12 @@ fingerprint = "B422 CFB1 C9EF 73F7 E1E2 698D F53E 3233 42F7 A6D3A"; }]; }; + amanjeev = { + email = "aj@amanjeev.com"; + github = "amanjeev"; + githubId = 160476; + name = "Amanjeev Sethi"; + }; amar1729 = { email = "amar.paul16@gmail.com"; github = "amar1729"; diff --git a/nixos/modules/services/misc/jellyfin.nix b/nixos/modules/services/misc/jellyfin.nix index 64b774a220b6..c1b45864041b 100644 --- a/nixos/modules/services/misc/jellyfin.nix +++ b/nixos/modules/services/misc/jellyfin.nix @@ -18,6 +18,7 @@ in package = mkOption { type = types.package; + default = pkgs.jellyfin; example = literalExample "pkgs.jellyfin"; description = '' Jellyfin package to use. @@ -98,11 +99,6 @@ in }; }; - services.jellyfin.package = mkDefault ( - if versionAtLeast config.system.stateVersion "20.09" then pkgs.jellyfin - else pkgs.jellyfin_10_5 - ); - users.users = mkIf (cfg.user == "jellyfin") { jellyfin = { group = cfg.group; diff --git a/nixos/tests/hibernate.nix b/nixos/tests/hibernate.nix index 8251c6e7ef85..ae506c8542fe 100644 --- a/nixos/tests/hibernate.nix +++ b/nixos/tests/hibernate.nix @@ -1,44 +1,120 @@ # Test whether hibernation from partition works. -import ./make-test-python.nix (pkgs: { +{ system ? builtins.currentSystem +, config ? {} +, pkgs ? import ../.. { inherit system config; } +}: + +with import ../lib/testing-python.nix { inherit system pkgs; }; + +let + # System configuration of the installed system, which is used for the actual + # hibernate testing. + installedConfig = with pkgs.lib; { + imports = [ + ../modules/testing/test-instrumentation.nix + ../modules/profiles/qemu-guest.nix + ../modules/profiles/minimal.nix + ]; + + hardware.enableAllFirmware = mkForce false; + documentation.nixos.enable = false; + boot.loader.grub.device = "/dev/vda"; + + systemd.services.backdoor.conflicts = [ "sleep.target" ]; + + powerManagement.resumeCommands = "systemctl --no-block restart backdoor.service"; + + fileSystems = { + "/".device = "/dev/vda2"; + }; + swapDevices = mkOverride 0 [ { device = "/dev/vda1"; } ]; + }; + installedSystem = (import ../lib/eval-config.nix { + inherit system; + modules = [ installedConfig ]; + }).config.system.build.toplevel; +in makeTest { name = "hibernate"; nodes = { + # System configuration used for installing the installedConfig from above. machine = { config, lib, pkgs, ... }: with lib; { - virtualisation.emptyDiskImages = [ config.virtualisation.memorySize ]; + imports = [ + ../modules/profiles/installation-device.nix + ../modules/profiles/base.nix + ]; - systemd.services.backdoor.conflicts = [ "sleep.target" ]; + nix.binaryCaches = mkForce [ ]; + nix.extraOptions = '' + hashed-mirrors = + connect-timeout = 1 + ''; - swapDevices = mkOverride 0 [ { device = "/dev/vdb"; } ]; - - networking.firewall.allowedTCPPorts = [ 4444 ]; - - systemd.services.listener.serviceConfig.ExecStart = "${pkgs.netcat}/bin/nc -l 4444 -k"; - }; - - probe = { pkgs, ...}: { - environment.systemPackages = [ pkgs.netcat ]; + virtualisation.diskSize = 8 * 1024; + virtualisation.emptyDiskImages = [ + # Small root disk for installer + 512 + ]; + virtualisation.bootDevice = "/dev/vdb"; }; }; # 9P doesn't support reconnection to virtio transport after a hibernation. # Therefore, machine just hangs on any Nix store access. - # To work around it we run a daemon which listens to a TCP connection and - # try to connect to it as a test. + # To avoid this, we install NixOS onto a temporary disk with everything we need + # included into the store. testScript = '' + def create_named_machine(name): + return create_machine( + { + "qemuFlags": "-cpu max ${ + if system == "x86_64-linux" then "-m 1024" + else "-m 768 -enable-kvm -machine virt,gic-version=host"}", + "hdaInterface": "virtio", + "hda": "vm-state-machine/machine.qcow2", + "name": name, + } + ) + + + # Install NixOS machine.start() - machine.wait_for_unit("multi-user.target") - machine.succeed("mkswap /dev/vdb") - machine.succeed("swapon -a") - machine.start_job("listener") - machine.wait_for_open_port(4444) - machine.succeed("systemctl hibernate &") - machine.wait_for_shutdown() - probe.wait_for_unit("multi-user.target") - machine.start() - probe.wait_until_succeeds("echo test | nc machine 4444 -N") + machine.succeed( + # Partition /dev/vda + "flock /dev/vda parted --script /dev/vda -- mklabel msdos" + + " mkpart primary linux-swap 1M 1024M" + + " mkpart primary ext2 1024M -1s", + "udevadm settle", + "mkfs.ext3 -L nixos /dev/vda2", + "mount LABEL=nixos /mnt", + "mkswap /dev/vda1 -L swap", + # Install onto /mnt + "nix-store --load-db < ${pkgs.closureInfo {rootPaths = [installedSystem];}}/registration", + "nixos-install --root /mnt --system ${installedSystem} --no-root-passwd", + ) + machine.shutdown() + + # Start up + hibernate = create_named_machine("hibernate") + + # Drop in file that checks if we un-hibernated properly (and not booted fresh) + hibernate.succeed( + "mkdir /run/test", + "mount -t ramfs -o size=1m ramfs /run/test", + "echo not persisted to disk > /run/test/suspended", + ) + + # Hibernate machine + hibernate.succeed("systemctl hibernate &") + hibernate.wait_for_shutdown() + + # Restore machine from hibernation, validate our ramfs file is there. + resume = create_named_machine("resume") + resume.start() + resume.succeed("grep 'not persisted to disk' /run/test/suspended") ''; -}) +} diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index 8b42191bde69..66127980bf67 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -113,6 +113,7 @@ let hydraPlatforms = []; # prefer wrapper over the package priority = (neovim.meta.priority or 0) - 1; + mainProgram = "nvim"; }; }; in diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix index 44f35e503ca0..676efb2aa042 100644 --- a/pkgs/applications/misc/electrum/default.nix +++ b/pkgs/applications/misc/electrum/default.nix @@ -20,7 +20,7 @@ }: let - version = "4.1.1"; + version = "4.1.2"; libsecp256k1_name = if stdenv.isLinux then "libsecp256k1.so.0" @@ -51,7 +51,7 @@ python3.pkgs.buildPythonApplication { src = fetchurl { url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; - sha256 = "0yg6ld92a4xgn7y8i51hmr3kmgmrbrjwniikkmyq9q141h2drb80"; + sha256 = "05m6vbd4sfjk536kwa5wa3kv21jxxqnglx0ddvnmxfhf98371bhk"; }; postUnpack = '' @@ -59,6 +59,11 @@ python3.pkgs.buildPythonApplication { cp -ar ${tests} $sourceRoot/electrum/tests ''; + prePatch = '' + substituteInPlace contrib/requirements/requirements.txt \ + --replace "dnspython>=2.0,<2.1" "dnspython>=2.0" + ''; + nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ]; propagatedBuildInputs = with python3.pkgs; [ diff --git a/pkgs/applications/misc/xplr/default.nix b/pkgs/applications/misc/xplr/default.nix index ddbd837a6dfb..46dfe713de11 100644 --- a/pkgs/applications/misc/xplr/default.nix +++ b/pkgs/applications/misc/xplr/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { name = "xplr"; - version = "0.5.6"; + version = "0.5.7"; src = fetchFromGitHub { owner = "sayanarijit"; repo = name; rev = "v${version}"; - sha256 = "070jyii2p7qk6gij47n5i9a8bal5iijgn8cv79mrija3pgddniaz"; + sha256 = "1j417g0isy3cpxdb2wrvrvypnx99qffi83s4a98791wyi8yqiw6b"; }; - cargoSha256 = "113f0hbgy8c9gxl70b6frr0klfc8rm5klgwls7fgbb643rdh03b9"; + cargoSha256 = "0kpwhk2f4czhilcnfqkw5hw2vxvldxqg491xkkgxjkph3w4qv3ji"; meta = with lib; { description = "A hackable, minimal, fast TUI file explorer"; diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix index 1d02e675f9c4..fadaa94995cb 100644 --- a/pkgs/applications/networking/cluster/fluxctl/default.nix +++ b/pkgs/applications/networking/cluster/fluxctl/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "fluxctl"; - version = "1.22.1"; + version = "1.22.2"; src = fetchFromGitHub { owner = "weaveworks"; repo = "flux"; rev = version; - sha256 = "sha256-SaDO3a50CLhgLafCdgKEfHpuHdIweSy5L/TUgEUv5CM="; + sha256 = "sha256-qYdVplNHyD31m4IbIeL3x3nauZLl1XquslS3WrtUXBk="; }; vendorSha256 = "sha256-4uSw/9lI/rdDqy78jNC9eHYW/v/sMFb+sQvwYG6GZks="; diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix index 3421050d1ede..5d0195b62f88 100644 --- a/pkgs/applications/networking/remote/remmina/default.nix +++ b/pkgs/applications/networking/remote/remmina/default.nix @@ -13,13 +13,13 @@ with lib; stdenv.mkDerivation rec { pname = "remmina"; - version = "1.4.12"; + version = "1.4.13"; src = fetchFromGitLab { owner = "Remmina"; repo = "Remmina"; rev = "v${version}"; - sha256 = "sha256-CjlNEmca4Kob5rdpZa+YfvdOIDDDYfhNsGYqGDxSGKY="; + sha256 = "sha256-R+RfczAnt5R0YmXt5SmH8gOuWOH0LZ/70pOMDAXJgsE="; }; nativeBuildInputs = [ cmake ninja pkg-config wrapGAppsHook ]; @@ -51,7 +51,7 @@ stdenv.mkDerivation rec { ''; meta = { - license = licenses.gpl2; + license = licenses.gpl2Plus; homepage = "https://gitlab.com/Remmina/Remmina"; description = "Remote desktop client written in GTK"; maintainers = with maintainers; [ melsigl ryantm ]; diff --git a/pkgs/development/coq-modules/coqhammer/default.nix b/pkgs/development/coq-modules/coqhammer/default.nix index 89aa8d74e85c..93582745564e 100644 --- a/pkgs/development/coq-modules/coqhammer/default.nix +++ b/pkgs/development/coq-modules/coqhammer/default.nix @@ -5,18 +5,27 @@ with lib; mkCoqDerivation { pname = "coqhammer"; owner = "lukaszcz"; defaultVersion = with versions; switch coq.coq-version [ - { case = "8.12"; out = "1.3-coq8.12"; } - { case = "8.11"; out = "1.3-coq8.11"; } - { case = "8.10"; out = "1.3-coq8.10"; } + { case = "8.13"; out = "1.3.1-coq8.13"; } + { case = "8.12"; out = "1.3.1-coq8.12"; } + { case = "8.11"; out = "1.3.1-coq8.11"; } + { case = "8.10"; out = "1.3.1-coq8.10"; } { case = "8.9"; out = "1.1.1-coq8.9"; } { case = "8.8"; out = "1.1-coq8.8"; } ] null; + release."1.3.1-coq8.13".sha256 = "033j6saw24anb1lqbgsg1zynxi2rnxq7pgqwh11k8r8y3xisz78w"; + release."1.3.1-coq8.12".sha256 = "0xy3vy4rv8w5ydwb9nq8y4dcimd91yr0hak2j4kn02svssg1kv1y"; + release."1.3.1-coq8.11".sha256 = "0i9nlcayq0ac95vc09d1w8sd221gdjs0g215n086qscqjwimnz8j"; + release."1.3.1-coq8.10".sha256 = "0aq9qwqx680lkidhb77fmyq403rvfcdxch849x1pzy6a48rz5yra"; release."1.3-coq8.12".sha256 = "1q1y3cwhd98pkm98g71fsdjz85bfwgcz2xn7s7wwmiraifv5l6z8"; release."1.3-coq8.11".sha256 = "08zf8qfna7b9p2myfaz4g7bas3a1q1156x78n5isqivlnqfrjc1b"; release."1.3-coq8.10".sha256 = "1fj8497ir4m79hyrmmmmrag01001wrby0h24wv6525vz0w5py3cd"; release."1.1.1-coq8.9".sha256 = "1knjmz4hr8vlp103j8n4fyb2lfxysnm512gh3m2kp85n6as6fvb9"; release."1.1-coq8.8".sha256 = "0ms086wp4jmrzyglb8wymchzyflflk01nsfsk4r6qv8rrx81nx9h"; + release."1.3.1-coq8.13".version = "1.3.1"; + release."1.3.1-coq8.12".version = "1.3.1"; + release."1.3.1-coq8.11".version = "1.3.1"; + release."1.3.1-coq8.10".version = "1.3.1"; release."1.3-coq8.12".version = "1.3"; release."1.3-coq8.11".version = "1.3"; release."1.3-coq8.10".version = "1.3"; diff --git a/pkgs/development/libraries/intel-media-driver/default.nix b/pkgs/development/libraries/intel-media-driver/default.nix index c60b00552b57..b983e01aa0ab 100644 --- a/pkgs/development/libraries/intel-media-driver/default.nix +++ b/pkgs/development/libraries/intel-media-driver/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "intel-media-driver"; - version = "21.1.3"; + version = "21.2.0"; src = fetchFromGitHub { owner = "intel"; repo = "media-driver"; rev = "intel-media-${version}"; - sha256 = "1y6y6dia2y3b798f668q26pzwb1xai5d5jpmllpcxs9qikhkkx8p"; + sha256 = "101wbg5j00amdbfz4p6mpg90wi549dl78jd34mac5g6zhcpwqbh9"; }; cmakeFlags = [ diff --git a/pkgs/development/ocaml-modules/dtoa/default.nix b/pkgs/development/ocaml-modules/dtoa/default.nix index da075f5c7982..44bc5d7498bf 100644 --- a/pkgs/development/ocaml-modules/dtoa/default.nix +++ b/pkgs/development/ocaml-modules/dtoa/default.nix @@ -13,7 +13,7 @@ buildDunePackage rec { sha256 = "0zkhn0rdq82g6gamsv6nkx6i44s8104nh6jg5xydazl9jl1704xn"; }; - hardeningDisable = lib.optional stdenv.isDarwin "strictoverflow"; + hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow"; meta = with lib; { homepage = "https://github.com/flowtype/ocaml-dtoa"; diff --git a/pkgs/development/ocaml-modules/letsencrypt/default.nix b/pkgs/development/ocaml-modules/letsencrypt/default.nix new file mode 100644 index 000000000000..b3c0d4f89412 --- /dev/null +++ b/pkgs/development/ocaml-modules/letsencrypt/default.nix @@ -0,0 +1,84 @@ +{ buildDunePackage +, lib +, fetchurl +, astring +, asn1-combinators +, uri +, rresult +, base64 +, cmdliner +, cohttp +, cohttp-lwt +, cohttp-lwt-unix +, zarith +, logs +, fmt +, lwt +, mirage-crypto +, mirage-crypto-pk +, mirage-crypto-rng +, x509 +, yojson +, ounit +, dns +, dns-tsig +, ptime +, bos +, fpath +, randomconv +, domain-name +}: + +buildDunePackage rec { + pname = "letsencrypt"; + version = "0.2.4"; + + src = fetchurl { + url = "https://github.com/mmaker/ocaml-letsencrypt/releases/download/v${version}/letsencrypt-v${version}.tbz"; + sha256 = "91c79828a50243804da29c17563c54d2d528a79207e5b874dce6a3e7fedf7567"; + }; + + minimumOCamlVersion = "4.08"; + useDune2 = true; + + buildInputs = [ + cmdliner + cohttp + cohttp-lwt-unix + zarith + fmt + mirage-crypto-rng + ptime + bos + fpath + randomconv + domain-name + ]; + + propagatedBuildInputs = [ + logs + yojson + lwt + base64 + mirage-crypto + mirage-crypto-pk + asn1-combinators + x509 + uri + dns + dns-tsig + rresult + astring + cohttp-lwt + ]; + + doCheck = true; + checkInputs = [ ounit ]; + + meta = { + description = "ACME implementation in OCaml"; + license = lib.licenses.bsd2; + maintainers = [ lib.maintainers.sternenseemann ]; + homepage = "https://github.com/mmaker/ocaml-letsencrypt"; + }; +} diff --git a/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/pkgs/development/ocaml-modules/mirage-crypto/default.nix index 2eda6d5f55ea..549838db396c 100644 --- a/pkgs/development/ocaml-modules/mirage-crypto/default.nix +++ b/pkgs/development/ocaml-modules/mirage-crypto/default.nix @@ -7,11 +7,11 @@ buildDunePackage rec { minimumOCamlVersion = "4.08"; pname = "mirage-crypto"; - version = "0.10.0"; + version = "0.10.1"; src = fetchurl { url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz"; - sha256 = "20915c53ddb658c53f588c414f13676bc8ad3cd734d9ed909225ea080dd8144d"; + sha256 = "028e2fc1f0a3e9b06603c6a253ecd043100099bc1c12c0567d8bc46d3781499c"; }; useDune2 = true; diff --git a/pkgs/development/ocaml-modules/paf/default.nix b/pkgs/development/ocaml-modules/paf/default.nix new file mode 100644 index 000000000000..0c91051e2433 --- /dev/null +++ b/pkgs/development/ocaml-modules/paf/default.nix @@ -0,0 +1,82 @@ +{ buildDunePackage +, lib +, fetchurl +, fetchpatch +, mirage-stack +, mirage-time +, httpaf +, tls-mirage +, mimic +, cohttp-lwt +, letsencrypt +, emile +, ke +, bigstringaf +, domain-name +, duration +, faraday +, ipaddr +, tls +, x509 +, lwt +, logs +, fmt +, mirage-crypto-rng +, tcpip +, mirage-time-unix +, ptime +, uri +, alcotest-lwt +}: + +buildDunePackage rec { + pname = "paf"; + version = "0.0.1"; + + src = fetchurl { + url = "https://github.com/dinosaure/paf-le-chien/releases/download/${version}/paf-${version}.tbz"; + sha256 = "7a794c21ce458bda302553b0f5ac128c067579fbb3b7b8fba9b410446c43e790"; + }; + + useDune2 = true; + minimumOCamlVersion = "4.08"; + + propagatedBuildInputs = [ + mirage-stack + mirage-time + httpaf + tls-mirage + mimic + cohttp-lwt + letsencrypt + emile + ke + bigstringaf + domain-name + ipaddr + duration + faraday + tls + x509 + ]; + + doCheck = true; + checkInputs = [ + lwt + logs + fmt + mirage-crypto-rng + tcpip + mirage-time-unix + ptime + uri + alcotest-lwt + ]; + + meta = { + description = "HTTP/AF and MirageOS"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.sternenseemann ]; + homepage = "https://github.com/dinosaure/paf-le-chien"; + }; +} diff --git a/pkgs/development/python-modules/karton-mwdb-reporter/default.nix b/pkgs/development/python-modules/karton-mwdb-reporter/default.nix index 9f4c1ee67099..68b28bffe6fa 100644 --- a/pkgs/development/python-modules/karton-mwdb-reporter/default.nix +++ b/pkgs/development/python-modules/karton-mwdb-reporter/default.nix @@ -1,10 +1,8 @@ { lib , buildPythonPackage -, chardet , fetchFromGitHub , karton-core , mwdblib -, python }: buildPythonPackage rec { diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix index d227b7f8c656..c9bad89d93c4 100644 --- a/pkgs/development/python-modules/sagemaker/default.nix +++ b/pkgs/development/python-modules/sagemaker/default.nix @@ -10,16 +10,17 @@ , protobuf3-to-dict , smdebug-rulesconfig , pandas +, pathos , packaging }: buildPythonPackage rec { pname = "sagemaker"; - version = "2.37.0"; + version = "2.38.0"; src = fetchPypi { inherit pname version; - sha256 = "sha256-96RDi32NHfhFvPeVRhG32EDQJTiwOXEwtSmFZGVBVk0="; + sha256 = "sha256-7cIGr49fKI0zQmX4/9v/gW5yB4kfeQJ3H/Vvgl9CKuY="; }; pythonImportsCheck = [ @@ -34,6 +35,7 @@ buildPythonPackage rec { importlib-metadata numpy packaging + pathos protobuf protobuf3-to-dict smdebug-rulesconfig diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix index 00e70c46b2a9..7b9c6bca7e2b 100644 --- a/pkgs/development/tools/build-managers/sbt/default.nix +++ b/pkgs/development/tools/build-managers/sbt/default.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation rec { pname = "sbt"; - version = "1.5.0"; + version = "1.5.1"; src = fetchurl { url = "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"; - sha256 = "1dj241cj3v8kzqnz5s499rijpl7wv4rw171swqnc0xza90513pxa"; + sha256 = "0dsbqipr549awv584fyl227s1gknlpsf5krp990w7w3bbxl3avb7"; }; postPatch = '' diff --git a/pkgs/servers/jellyfin/10.5.x.nix b/pkgs/servers/jellyfin/10.5.x.nix deleted file mode 100644 index 9bece72566f8..000000000000 --- a/pkgs/servers/jellyfin/10.5.x.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ stdenv, lib, fetchurl, unzip, sqlite, makeWrapper, dotnetCorePackages, ffmpeg, - fontconfig, freetype, nixosTests }: - -let - os = if stdenv.isDarwin then "osx" else "linux"; - arch = - with stdenv.hostPlatform; - if isx86_32 then "x86" - else if isx86_64 then "x64" - else if isAarch32 then "arm" - else if isAarch64 then "arm64" - else lib.warn "Unsupported architecture, some image processing features might be unavailable" "unknown"; - musl = lib.optionalString stdenv.hostPlatform.isMusl - (if (arch != "x64") - then lib.warn "Some image processing features might be unavailable for non x86-64 with Musl" "musl-" - else "musl-"); - runtimeDir = "${os}-${musl}${arch}"; - -in stdenv.mkDerivation rec { - pname = "jellyfin"; - version = "10.5.5"; - - # Impossible to build anything offline with dotnet - src = fetchurl { - url = "https://github.com/jellyfin/jellyfin/releases/download/v${version}/jellyfin_${version}_portable.tar.gz"; - sha256 = "1s3hva1j5w74qc9wyqnmr5clk4smzfi7wvx8qrzrwy81mx7r5w27"; - }; - - nativeBuildInputs = [ unzip ]; - buildInputs = [ - makeWrapper - ]; - - propagatedBuildInputs = [ - dotnetCorePackages.aspnetcore_3_1 - sqlite - ]; - - preferLocalBuild = true; - - installPhase = '' - install -dm 755 "$out/opt/jellyfin" - cp -r * "$out/opt/jellyfin" - makeWrapper "${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet" $out/bin/jellyfin \ - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ - sqlite fontconfig freetype stdenv.cc.cc.lib - ]}:$out/opt/jellyfin/runtimes/${runtimeDir}/native/" \ - --add-flags "$out/opt/jellyfin/jellyfin.dll --ffmpeg ${ffmpeg}/bin/ffmpeg" - ''; - - passthru.tests = { - smoke-test = nixosTests.jellyfin; - }; - - meta = with lib; { - description = "The Free Software Media System"; - homepage = "https://jellyfin.org/"; - license = licenses.gpl2; - maintainers = with maintainers; [ nyanloutre minijackson ]; - }; -} diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 7fa7f2305e84..ac62ad30829a 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -203,6 +203,7 @@ let metaTypes = with lib.types; rec { # These keys are documented description = str; + mainProgram = str; longDescription = str; branch = str; homepage = either (listOf str) str; diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index 4fc58238e5e3..f7cddb19c47b 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -89,6 +89,10 @@ in rec { , patches ? [] + , __contentAddressed ? + (! attrs ? outputHash) # Fixed-output drvs can't be content addressed too + && (config.contentAddressedByDefault or false) + , ... } @ attrs: let @@ -253,6 +257,12 @@ in rec { inherit doCheck doInstallCheck; inherit outputs; + } // lib.optionalAttrs (__contentAddressed) { + inherit __contentAddressed; + # Provide default values for outputHashMode and outputHashAlgo because + # most people won't care about these anyways + outputHashAlgo = attrs.outputHashAlgo or "sha256"; + outputHashMode = attrs.outputHashMode or "recursive"; } // lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) { cmakeFlags = (/**/ if lib.isString cmakeFlags then [cmakeFlags] diff --git a/pkgs/tools/misc/semiphemeral/default.nix b/pkgs/tools/misc/semiphemeral/default.nix new file mode 100644 index 000000000000..67f0f62e877f --- /dev/null +++ b/pkgs/tools/misc/semiphemeral/default.nix @@ -0,0 +1,26 @@ +{ lib +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "semiphemeral"; + version = "0.6"; + + src = python3.pkgs.fetchPypi { + inherit pname version; + sha256 = "c90d73b14c826f262b1339d1f5926c5abc6431181090ea87177af821c0866fb7"; + }; + + doCheck = false; # upstream has no tests + + pythonImportsCheck = [ "semiphemeral" ]; + + propagatedBuildInputs = with python3.pkgs; [ click sqlalchemy flask tweepy colorama ]; + + meta = with lib; { + description = "Automatically delete your old tweets, except for the ones you want to keep"; + homepage = "https://github.com/micahflee/semiphemeral"; + license = licenses.mit; + maintainers = with maintainers; [ amanjeev ]; + }; +} diff --git a/pkgs/tools/networking/innernet/default.nix b/pkgs/tools/networking/innernet/default.nix index a195841ab575..abc7aca61a32 100644 --- a/pkgs/tools/networking/innernet/default.nix +++ b/pkgs/tools/networking/innernet/default.nix @@ -2,19 +2,19 @@ rustPlatform.buildRustPackage rec { pname = "innernet"; - version = "1.1.0"; + version = "1.2.0"; src = fetchFromGitHub { owner = "tonarino"; repo = pname; rev = "v${version}"; - sha256 = "sha256-OomCSA02ypFVzkYMcmkFREWB6x7oxgpt7x2zRANIDMw="; + sha256 = "sha256-Z4F5RYPVgFiiDBg6lxILjAh/a/rL7IJBqHIJ/tQyLnE="; }; LIBCLANG_PATH = "${llvmPackages.libclang}/lib"; nativeBuildInputs = with llvmPackages; [ llvm clang ]; buildInputs = [ sqlite ] ++ lib.optionals stdenv.isDarwin [ Security ]; - cargoSha256 = "sha256-GYNk3j8fjKSo3Qk6Qy0l6kNINK3FxlSYoEkJSx7kVpk="; + cargoSha256 = "sha256-WSkN5aXMgfqZJAV1b3elF7kwf2f5OpcntKSf8620YcY="; meta = with lib; { description = "A private network system that uses WireGuard under the hood"; diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix index 60da9b3abcbb..4a44843e947b 100644 --- a/pkgs/tools/networking/zerotierone/default.nix +++ b/pkgs/tools/networking/zerotierone/default.nix @@ -2,22 +2,22 @@ stdenv.mkDerivation rec { pname = "zerotierone"; - version = "1.6.4"; + version = "1.6.5"; src = fetchFromGitHub { owner = "zerotier"; repo = "ZeroTierOne"; rev = version; - sha256 = "06b6k1rzqkd7cdl7n0gz5ky48fs2nhn0q2qxx1rww38vbfc7lpmf"; + sha256 = "0dlnrb59vnxa3pjkgfqd5jil9kl6axh23v0bffi4kx8jwzpdwas8"; }; preConfigure = '' - patchShebangs ./doc/build.sh - substituteInPlace ./doc/build.sh \ - --replace '/usr/bin/ronn' '${buildPackages.ronn}/bin/ronn' \ + patchShebangs ./doc/build.sh + substituteInPlace ./doc/build.sh \ + --replace '/usr/bin/ronn' '${buildPackages.ronn}/bin/ronn' \ - substituteInPlace ./make-linux.mk \ - --replace 'armv5' 'armv6' + substituteInPlace ./make-linux.mk \ + --replace 'armv5' 'armv6' ''; diff --git a/pkgs/tools/virtualization/govc/default.nix b/pkgs/tools/virtualization/govc/default.nix index 3727d1ac1da3..00330f7d1a43 100644 --- a/pkgs/tools/virtualization/govc/default.nix +++ b/pkgs/tools/virtualization/govc/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "govc"; - version = "0.24.1"; + version = "0.25.0"; goPackagePath = "github.com/vmware/govmomi"; @@ -12,7 +12,7 @@ buildGoPackage rec { rev = "v${version}"; owner = "vmware"; repo = "govmomi"; - sha256 = "sha256-D2UrYdjstOxx9EAdBtAC44khp8hRf6W3+6kzytUVnOo="; + sha256 = "sha256-Ri8snbmgcAZmdumKzBl3P6gf/eZgwdgg7V+ijyeZjks="; }; meta = { diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 514dee8e34b7..316624649bc8 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -337,6 +337,7 @@ mapAliases ({ kodiGBM = kodi-gbm; kodiPlain = kodi; kodiPlainWayland = kodi-wayland; + jellyfin_10_5 = throw "Jellyfin 10.5 is no longer supported and contains a security vulnerability. Please upgrade to a newer version."; # added 2021-04-26 julia_07 = throw "julia_07 is deprecated in favor of julia_10 LTS"; # added 2020-09-15 julia_11 = throw "julia_11 is deprecated in favor of latest Julia version"; # added 2020-09-15 kbdKeymaps = throw "kbdKeymaps is not needed anymore since dvp and neo are now part of kbd"; # added 2021-04-11 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7c40ff97eaae..71c18fe2cc66 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2697,8 +2697,6 @@ in jellyfin = callPackage ../servers/jellyfin { }; - jellyfin_10_5 = callPackage ../servers/jellyfin/10.5.x.nix { }; - jellyfin-media-player = libsForQt5.callPackage ../applications/video/jellyfin-media-player { inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa CoreAudio MediaPlayer; }; @@ -25815,6 +25813,8 @@ in secretscanner = callPackage ../tools/security/secretscanner { }; + semiphemeral = callPackage ../tools/misc/semiphemeral { }; + sent = callPackage ../applications/misc/sent { }; seq24 = callPackage ../applications/audio/seq24 { }; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index d2d042d0e04d..a1b1a0998291 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -579,6 +579,8 @@ let lens = callPackage ../development/ocaml-modules/lens { }; + letsencrypt = callPackage ../development/ocaml-modules/letsencrypt { }; + linenoise = callPackage ../development/ocaml-modules/linenoise { }; llvm = callPackage ../development/ocaml-modules/llvm { @@ -941,6 +943,8 @@ let ounit2 = callPackage ../development/ocaml-modules/ounit2 { }; + paf = callPackage ../development/ocaml-modules/paf { }; + parse-argv = callPackage ../development/ocaml-modules/parse-argv { }; path_glob = callPackage ../development/ocaml-modules/path_glob { };