From 121e2f7e1554794e7392427cf77e94ab9887871e Mon Sep 17 00:00:00 2001 From: wucke13 Date: Sun, 19 Dec 2021 13:39:42 +0100 Subject: [PATCH 01/53] honor sdImage.compressImage in intermediate build steps --- nixos/lib/make-ext4-fs.nix | 9 +++++++++ nixos/modules/installer/sd-card/sd-image.nix | 15 ++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/nixos/lib/make-ext4-fs.nix b/nixos/lib/make-ext4-fs.nix index 416beeb32f2f..b8e1b8d24c48 100644 --- a/nixos/lib/make-ext4-fs.nix +++ b/nixos/lib/make-ext4-fs.nix @@ -78,6 +78,15 @@ pkgs.stdenv.mkDerivation { # get rid of the unnecessary slack here--but see # https://github.com/NixOS/nixpkgs/issues/125121 for caveats. + # shrink to fit + resize2fs -M $img + + # Add 16 MebiByte to the current_size + new_size=$(dumpe2fs -h $img | awk -F: \ + '/Block count/{count=$2} /Block size/{size=$2} END{print (count*size+16*2**20)/size}') + + resize2fs $img $new_size + if [ ${builtins.toString compressImage} ]; then echo "Compressing image" zstd -v --no-progress ./$img -o $out diff --git a/nixos/modules/installer/sd-card/sd-image.nix b/nixos/modules/installer/sd-card/sd-image.nix index a964cf2d6f85..1fd2db39fc56 100644 --- a/nixos/modules/installer/sd-card/sd-image.nix +++ b/nixos/modules/installer/sd-card/sd-image.nix @@ -18,7 +18,7 @@ with lib; let rootfsImage = pkgs.callPackage ../../../lib/make-ext4-fs.nix ({ inherit (config.sdImage) storePaths; - compressImage = true; + compressImage = config.sdImage.compressImage; populateImageCommands = config.sdImage.populateRootCommands; volumeLabel = "NIXOS_SD"; } // optionalAttrs (config.sdImage.rootPartitionUUID != null) { @@ -174,7 +174,8 @@ in mtools, libfaketime, util-linux, zstd }: stdenv.mkDerivation { name = config.sdImage.imageName; - nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime util-linux zstd ]; + nativeBuildInputs = [ dosfstools e2fsprogs libfaketime mtools util-linux ] + ++ lib.optional config.sdImage.compressImage zstd; inherit (config.sdImage) compressImage; @@ -189,14 +190,18 @@ in echo "file sd-image $img" >> $out/nix-support/hydra-build-products fi + root_fs=${rootfsImage} + ${lib.optionalString config.sdImage.compressImage '' + root_fs=./root-fs.img echo "Decompressing rootfs image" - zstd -d --no-progress "${rootfsImage}" -o ./root-fs.img + zstd -d --no-progress "${rootfsImage}" -o $root_fs + ''} # Gap in front of the first partition, in MiB gap=${toString config.sdImage.firmwarePartitionOffset} # Create the image file sized to fit /boot/firmware and /, plus slack for the gap. - rootSizeBlocks=$(du -B 512 --apparent-size ./root-fs.img | awk '{ print $1 }') + rootSizeBlocks=$(du -B 512 --apparent-size $root_fs | awk '{ print $1 }') firmwareSizeBlocks=$((${toString config.sdImage.firmwareSize} * 1024 * 1024 / 512)) imageSize=$((rootSizeBlocks * 512 + firmwareSizeBlocks * 512 + gap * 1024 * 1024)) truncate -s $imageSize $img @@ -214,7 +219,7 @@ in # Copy the rootfs into the SD image eval $(partx $img -o START,SECTORS --nr 2 --pairs) - dd conv=notrunc if=./root-fs.img of=$img seek=$START count=$SECTORS + dd conv=notrunc if=$root_fs of=$img seek=$START count=$SECTORS # Create a FAT32 /boot/firmware partition of suitable size into firmware_part.img eval $(partx $img -o START,SECTORS --nr 1 --pairs) From 83602a5aba89105ba5b8d6cbf30c88e497d1e482 Mon Sep 17 00:00:00 2001 From: FliegendeWurst <2012gdwu+github@posteo.de> Date: Sun, 22 May 2022 17:54:13 +0200 Subject: [PATCH 02/53] htmldoc: 1.9.15 -> 1.9.16 --- pkgs/tools/typesetting/htmldoc/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/typesetting/htmldoc/default.nix b/pkgs/tools/typesetting/htmldoc/default.nix index 9ce2de02d302..06c660625ae5 100644 --- a/pkgs/tools/typesetting/htmldoc/default.nix +++ b/pkgs/tools/typesetting/htmldoc/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "htmldoc"; - version = "1.9.15"; + version = "1.9.16"; src = fetchFromGitHub { owner = "michaelrsweet"; repo = "htmldoc"; rev = "v${version}"; - sha256 = "sha256-WNsYJacZBYoZ8Bxj+InQ9ePvelqhU5y9nY7aikUNxEk="; + sha256 = "117cj5sfzl18gan53ld8lxb0wycizcp9jcakcs3nsvnss99rw3a6"; }; nativeBuildInputs = [ pkg-config ]; From fa22eab4c1313eeb57a8c77b4bf6b01bd3f05e6e Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sun, 22 May 2022 18:20:49 +0200 Subject: [PATCH 03/53] metabase: 0.42.1 -> 0.43.1 Fixes CVE-2022-24853, CVE-2022-24854 and CVE-2022-24855 https://github.com/metabase/metabase/releases/tag/v0.43.1 https://github.com/metabase/metabase/releases/tag/v0.43.0 --- pkgs/servers/metabase/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix index 814626fec125..f31b2547f52c 100644 --- a/pkgs/servers/metabase/default.nix +++ b/pkgs/servers/metabase/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "metabase"; - version = "0.42.1"; + version = "0.43.1"; src = fetchurl { url = "https://downloads.metabase.com/v${version}/metabase.jar"; - hash = "sha256-PmcVVAS/5mDhmOSoFvkZeYkbvFD/KOcgVYuScwD4Olg="; + hash = "sha256-WGbIsmCWsSxgE7Ktr539qTt/o5cJrYi0yu3ZkfbxOV0="; }; nativeBuildInputs = [ makeWrapper ]; From c3182eace3fe93b30e4e245254bd0503c6bd183f Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sun, 22 May 2022 18:45:16 +0200 Subject: [PATCH 04/53] panotools: 2.9.20 -> 2.9.21 Fixes CVE-2021-33293 https://sourceforge.net/projects/panotools/files/libpano13/libpano13-2.9.21/ --- pkgs/applications/graphics/panotools/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/graphics/panotools/default.nix b/pkgs/applications/graphics/panotools/default.nix index 52351fab4ce5..dbc5b973fe9c 100644 --- a/pkgs/applications/graphics/panotools/default.nix +++ b/pkgs/applications/graphics/panotools/default.nix @@ -1,15 +1,16 @@ -{ fetchurl, lib, stdenv, libjpeg, libpng, libtiff, perl }: +{ fetchurl, lib, stdenv, libjpeg, libpng, libtiff, perl, cmake }: stdenv.mkDerivation rec { pname = "libpano13"; - version = "2.9.20"; + version = "2.9.21"; src = fetchurl { url = "mirror://sourceforge/panotools/${pname}-${version}.tar.gz"; - sha256 = "12cv4886l1czfjwy7k6ipgf3zjksgwhdjzr2s9fdg33vqcv2hlrv"; + sha256 = "sha256-eeWhRSGZMF4pYUYnIO9ZQRUnecEnxblvw0DSSS5jNZA="; }; buildInputs = [ perl libjpeg libpng libtiff ]; + nativeBuildInputs = [ cmake ]; # one of the tests succeeds on my machine but fails on Hydra (no idea why) #doCheck = true; From 116832edbf8da93dedaca69384083e57b7c9f9a0 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Fri, 3 Dec 2021 12:23:23 +0000 Subject: [PATCH 05/53] dockerTools: Add example of using NixOS' etc (cherry picked from commit 9b2af8673be82d48ce76c8c152de85ad921d26ba) --- nixos/tests/docker-tools.nix | 5 ++++ pkgs/build-support/docker/examples.nix | 41 ++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index 80859ac7a96e..99a968f17af2 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -419,5 +419,10 @@ import ./make-test-python.nix ({ pkgs, ... }: { "docker rmi layered-image-with-path", ) + with subtest("etc"): + docker.succeed("${examples.etc} | docker load") + docker.succeed("docker run --rm etc | grep localhost") + docker.succeed("docker image rm etc:latest") + ''; }) diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix index 9b9a21a1469c..a1be3a111fb3 100644 --- a/pkgs/build-support/docker/examples.nix +++ b/pkgs/build-support/docker/examples.nix @@ -9,6 +9,16 @@ { pkgs, buildImage, buildLayeredImage, fakeNss, pullImage, shadowSetup, buildImageWithNixDb, pkgsCross }: +let + nixosLib = import ../../../nixos/lib { + # Experimental features need testing too, but there's no point in warning + # about it, so we enable the feature flag. + featureFlags.minimalModules = {}; + }; + evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; }; + +in + rec { # 1. basic example bash = buildImage { @@ -582,6 +592,37 @@ rec { includeStorePaths = false; }; + etc = + let + inherit (pkgs) lib; + nixosCore = (evalMinimalConfig ({ config, ... }: { + imports = [ + pkgs.pkgsModule + ../../../nixos/modules/system/etc/etc.nix + ]; + environment.etc."hosts" = { + text = '' + 127.0.0.1 localhost + ::1 localhost + ''; + # For executables: + # mode = "0755"; + }; + })); + in pkgs.dockerTools.streamLayeredImage { + name = "etc"; + tag = "latest"; + enableFakechroot = true; + fakeRootCommands = '' + mkdir -p /etc + ${nixosCore.config.system.build.etcActivationCommands} + ''; + config.Cmd = pkgs.writeScript "etc-cmd" '' + #!${pkgs.busybox}/bin/sh + ${pkgs.busybox}/bin/cat /etc/hosts + ''; + }; + # Example export of the bash image exportBash = pkgs.dockerTools.exportImage { fromImage = bash; }; From 44522c1d5996ac1a16a2f7672b7306d557bd5a26 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Mon, 30 May 2022 14:32:14 +0200 Subject: [PATCH 06/53] dockerTools.examples.etc: Make it a reliable test /etc/hosts is generally also provided by the container runtime. --- pkgs/build-support/docker/examples.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix index a1be3a111fb3..f0535f59dfcc 100644 --- a/pkgs/build-support/docker/examples.nix +++ b/pkgs/build-support/docker/examples.nix @@ -600,7 +600,7 @@ rec { pkgs.pkgsModule ../../../nixos/modules/system/etc/etc.nix ]; - environment.etc."hosts" = { + environment.etc."some-config-file" = { text = '' 127.0.0.1 localhost ::1 localhost @@ -619,7 +619,7 @@ rec { ''; config.Cmd = pkgs.writeScript "etc-cmd" '' #!${pkgs.busybox}/bin/sh - ${pkgs.busybox}/bin/cat /etc/hosts + ${pkgs.busybox}/bin/cat /etc/some-config-file ''; }; From 95052027078143e62c65869474d33bb2023ab184 Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Tue, 7 Jun 2022 23:44:08 +0300 Subject: [PATCH 07/53] =?UTF-8?q?gpxsee:=2011.0=20=E2=86=92=2011.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/applications/misc/gpxsee/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix index fa85ad367ec2..7ce85dc6f767 100644 --- a/pkgs/applications/misc/gpxsee/default.nix +++ b/pkgs/applications/misc/gpxsee/default.nix @@ -1,14 +1,14 @@ -{ lib, stdenv, fetchFromGitHub, qmake, qttools, qttranslations, qtlocation, wrapQtAppsHook, substituteAll }: +{ lib, stdenv, fetchFromGitHub, qmake, qttools, qttranslations, qtlocation, qtpbfimageplugin, wrapQtAppsHook, substituteAll }: stdenv.mkDerivation rec { pname = "gpxsee"; - version = "11.0"; + version = "11.1"; src = fetchFromGitHub { owner = "tumic0"; repo = "GPXSee"; rev = version; - sha256 = "sha256-UT3Q7pirEXvwQmqHHiSivX/VNZPVLwRJ/aiP7wpkhqQ="; + sha256 = "sha256-0n1XPrJ+gssIP/7k9CI8AWXs9ddKOg3Lo3DfrXGUl84="; }; patches = (substituteAll { @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { inherit qttranslations; }); - buildInputs = [ qtlocation ]; + buildInputs = [ qtlocation qtpbfimageplugin ]; nativeBuildInputs = [ qmake qttools wrapQtAppsHook ]; From a12e52541099e5239d645018daf26a02cc60dd5d Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 9 Jun 2022 21:05:16 +0200 Subject: [PATCH 08/53] nixos/bitlbee: allow writing to configDir --- nixos/modules/services/networking/bitlbee.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/networking/bitlbee.nix b/nixos/modules/services/networking/bitlbee.nix index 8bf04e3a1a23..f76cffc79bfa 100644 --- a/nixos/modules/services/networking/bitlbee.nix +++ b/nixos/modules/services/networking/bitlbee.nix @@ -174,6 +174,7 @@ in serviceConfig = { DynamicUser = true; StateDirectory = "bitlbee"; + ReadWritePaths = [ cfg.configDir ]; ExecStart = "${bitlbeePkg}/sbin/bitlbee -F -n -c ${bitlbeeConfig}"; }; }; From f6281356b46526e11c47ed3240ed733fdac81e59 Mon Sep 17 00:00:00 2001 From: Azat Bahawi Date: Sun, 12 Jun 2022 02:55:48 +0300 Subject: [PATCH 09/53] elfinfo: use buildGoModule --- pkgs/development/tools/misc/elfinfo/default.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkgs/development/tools/misc/elfinfo/default.nix b/pkgs/development/tools/misc/elfinfo/default.nix index e3ee51c58fdc..b9a6dc0c39b4 100644 --- a/pkgs/development/tools/misc/elfinfo/default.nix +++ b/pkgs/development/tools/misc/elfinfo/default.nix @@ -1,20 +1,25 @@ -{ lib, buildGoPackage, fetchFromGitHub }: +{ lib +, buildGoModule +, fetchFromGitHub +}: -buildGoPackage rec { +buildGoModule rec { pname = "elfinfo"; version = "1.1.0"; - goPackagePath = "github.com/xyproto/elfinfo"; src = fetchFromGitHub { - rev = version; owner = "xyproto"; repo = "elfinfo"; + rev = version; sha256 = "1n8bg0rcq9fqa6rdnk6x9ngvm59hcayblkpjv9j5myn2vmm6fv8m"; }; + vendorSha256 = null; + meta = with lib; { description = "Small utility for showing information about ELF files"; homepage = "https://elfinfo.roboticoverlords.org/"; + changelog = "https://github.com/xyproto/elfinfo/releases/tag/${version}"; license = licenses.mit; maintainers = with maintainers; [ dtzWill ]; }; From cee66a8cd5288493c001376e9bf22825777d5326 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Wed, 25 May 2022 11:49:17 +0200 Subject: [PATCH 10/53] make-options-doc: Support Nix-provided declaration links Previously, the location logic was hardcoded, supporting only Nixpkgs and NixOps properly, leaving other uses of the module system without good location support. --- .../lib/make-options-doc/options-to-docbook.xsl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/nixos/lib/make-options-doc/options-to-docbook.xsl b/nixos/lib/make-options-doc/options-to-docbook.xsl index 03e14365cda9..07d69649523f 100644 --- a/nixos/lib/make-options-doc/options-to-docbook.xsl +++ b/nixos/lib/make-options-doc/options-to-docbook.xsl @@ -213,6 +213,23 @@ + + + + + + + + + + +