···11-{ stdenv, closureInfo, xorriso, syslinux, libossp_uuid
11+{ lib, stdenv, callPackage, closureInfo, xorriso, syslinux, libossp_uuid, squashfsTools
2233, # The file name of the resulting ISO image.
44 isoName ? "cd.iso"
···1515 # is a store path whose closure will be copied, and `symlink' is a
1616 # symlink to `object' that will be added to the CD.
1717 storeContents ? []
1818+1919+, # In addition to `contents', the closure of the store paths listed
2020+ # in `squashfsContents' is compressed as squashfs and the result is
2121+ # placed in /nix-store.squashfs on the CD.
2222+ # FIXME: This is a performance optimization to avoid Hydra copying
2323+ # the squashfs between builders and should be removed when Hydra
2424+ # is smarter about scheduling.
2525+ squashfsContents ? []
2626+2727+, # Compression settings for squashfs
2828+ squashfsCompression ? "xz -Xdict-size 100%"
18291930, # Whether this should be an El-Torito bootable CD.
2031 bootable ? false
···4556assert efiBootable -> efiBootImage != "";
4657assert usbBootable -> isohybridMbrImage != "";
47585959+let
6060+ needSquashfs = squashfsContents != [];
6161+ makeSquashfsDrv = callPackage ./make-squashfs.nix {
6262+ storeContents = squashfsContents;
6363+ comp = squashfsCompression;
6464+ };
6565+in
4866stdenv.mkDerivation {
4967 name = isoName;
5068 __structuredAttrs = true;
51695270 buildCommandPath = ./make-iso9660-image.sh;
5353- nativeBuildInputs = [ xorriso syslinux zstd libossp_uuid ];
7171+ nativeBuildInputs = [ xorriso syslinux zstd libossp_uuid ]
7272+ ++ lib.optionals needSquashfs makeSquashfsDrv.nativeBuildInputs;
54735574 inherit isoName bootable bootImage compressImage volumeID efiBootImage efiBootable isohybridMbrImage usbBootable;
5675···59786079 objects = map (x: x.object) storeContents;
6180 symlinks = map (x: x.symlink) storeContents;
8181+8282+ squashfsCommand = lib.optionalString needSquashfs makeSquashfsDrv.buildCommand;
62836384 # For obtaining the closure of `storeContents'.
6485 closureInfo = closureInfo { rootPaths = map (x: x.object) storeContents; };
+5
nixos/lib/make-iso9660-image.sh
···6868 addPath "${i:1}" "$i"
6969done
70707171+# If needed, build a squashfs and add that
7272+if [[ -n "$squashfsCommand" ]]; then
7373+ (out="nix-store.squashfs" eval "$squashfsCommand")
7474+ addPath "nix-store.squashfs" "nix-store.squashfs"
7575+fi
71767277# Also include a manifest of the closures in a format suitable for
7378# nix-store --load-db.
+2-9
nixos/modules/installer/cd-dvd/iso-image.nix
···811811 optional config.isoImage.includeSystemBuildDependencies
812812 config.system.build.toplevel.drvPath;
813813814814- # Create the squashfs image that contains the Nix store.
815815- system.build.squashfsStore = pkgs.callPackage ../../../lib/make-squashfs.nix {
816816- storeContents = config.isoImage.storeContents;
817817- comp = config.isoImage.squashfsCompression;
818818- };
819819-820814 # Individual files to be included on the CD, outside of the Nix
821815 # store on the CD.
822816 isoImage.contents =
···826820 }
827821 { source = config.system.build.initialRamdisk + "/" + config.system.boot.loader.initrdFile;
828822 target = "/boot/" + config.system.boot.loader.initrdFile;
829829- }
830830- { source = config.system.build.squashfsStore;
831831- target = "/nix-store.squashfs";
832823 }
833824 { source = pkgs.writeText "version" config.system.nixos.label;
834825 target = "/version.txt";
···878869 bootable = config.isoImage.makeBiosBootable;
879870 bootImage = "/isolinux/isolinux.bin";
880871 syslinux = if config.isoImage.makeBiosBootable then pkgs.syslinux else null;
872872+ squashfsContents = config.isoImage.storeContents;
873873+ squashfsCompression = config.isoImage.squashfsCompression;
881874 } // optionalAttrs (config.isoImage.makeUsbBootable && config.isoImage.makeBiosBootable) {
882875 usbBootable = true;
883876 isohybridMbrImage = "${pkgs.syslinux}/share/syslinux/isohdpfx.bin";
···10101111rustPlatform.buildRustPackage rec {
1212 pname = "atuin";
1313- version = "18.0.2";
1313+ version = "18.1.0";
14141515 src = fetchFromGitHub {
1616 owner = "atuinsh";
1717 repo = "atuin";
1818 rev = "v${version}";
1919- hash = "sha256-1ZNp6e2ZjVRU0w9m8YDWOHApu8vRYlcg6MJw03ZV49M=";
1919+ hash = "sha256-ddj8vHFTRBzeueSvY9kS1ZIcAID8k3MXrQkUVt04rQg=";
2020 };
21212222 # TODO: unify this to one hash because updater do not support this
2323 cargoHash =
2424 if stdenv.isLinux
2525- then "sha256-1yGv6Tmp7QhxIu3GNyRzK1i9Ghcil30+e8gTvyeKiZs="
2626- else "sha256-+QdtQuXTk7Aw7xwelVDp/0T7FAYOnhDqSjazGemzSLw=";
2525+ then "sha256-LKHBXm9ZThX96JjxJb8d7cRdhWL1t/3aG3Qq1TYBC74="
2626+ else "sha256-RSkC062XB5zy3lmI0OQhJfJ6FqFWXhpMPNIIqbrrlso=";
27272828 # atuin's default features include 'check-updates', which do not make sense
2929 # for distribution builds. List all other default features.
+38
pkgs/by-name/ky/kyverno-chainsaw/package.nix
···11+{ lib, buildGoModule, fetchFromGitHub }:
22+33+buildGoModule rec {
44+ pname = "kyverno-chainsaw";
55+ version = "0.1.7";
66+77+ src = fetchFromGitHub {
88+ owner = "kyverno";
99+ repo = "chainsaw";
1010+ rev = "v${version}";
1111+ hash = "sha256-v71qAJSpnbHd+jkPkR34IVNvwWLhm04TrPzduB6ZOgA=";
1212+ };
1313+1414+ vendorHash = "sha256-lHV5Ik/L/Svn9AvcKZupq778ektEsbxfOkCts4Ocx9g=";
1515+1616+ ldflags = [
1717+ "-s" "-w"
1818+ "-X github.com/kyverno/chainsaw/pkg/version.BuildVersion=v${version}"
1919+ "-X github.com/kyverno/chainsaw/pkg/version.BuildHash=${version}"
2020+ "-X github.com/kyverno/chainsaw/pkg/version.BuildTime=1970-01-01_00:00:00"
2121+ ];
2222+2323+ doCheck = false; # requires running kubernetes
2424+2525+ meta = {
2626+ changelog = "https://github.com/kyverno/chainsaw/releases/tag/v${version}";
2727+ description = "Declarative approach to test Kubernetes operators and controllers";
2828+ homepage = "https://kyverno.github.io/chainsaw/";
2929+ license = lib.licenses.asl20;
3030+ longDescription = ''
3131+ Chainsaw is meant to test Kubernetes operators work as expected by running a sequence of test steps for:
3232+ * Creating resources
3333+ * Asserting operators react (or not) the way they should
3434+ '';
3535+ mainProgram = "chainsaw";
3636+ maintainers = with lib.maintainers; [ Sanskarzz ];
3737+ };
3838+}
···11-{ lowPrio, newScope, pkgs, lib, stdenv, stdenvNoCC, cmake, ninja
22-, gccForLibs, preLibcCrossHeaders
11+{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
22+, preLibcCrossHeaders
33, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
44, buildLlvmTools # tools, but from the previous stage, for cross
55, targetLlvmLibraries # libraries, but from the next stage, for cross
···272272 nixSupport.cc-cflags = [ "-fno-exceptions" ];
273273 });
274274275275+ # Has to be in tools despite mostly being a library,
276276+ # because we use a native helper executable from a
277277+ # non-cross build in cross builds.
278278+ libclc = callPackage ../common/libclc.nix {
279279+ inherit buildLlvmTools;
280280+ };
275281 });
276282277283 libraries = lib.makeExtensible (libraries: let