u-root{,-cmds}: init at 0.14.0-unstable-2024-09-26

Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
This commit is contained in:
Paul Meyer
2024-10-17 09:28:29 +02:00
parent c9f9be3512
commit cfbfcdf185
2 changed files with 254 additions and 0 deletions
+204
View File
@@ -0,0 +1,204 @@
{
lib,
u-root,
which,
}:
u-root.overrideAttrs (prevAttrs: {
subPackages = [
"cmds/boot/boot"
"cmds/boot/fitboot"
"cmds/boot/pxeboot"
"cmds/cluster/nodestats"
"cmds/contrib/fbptcat"
"cmds/core/backoff"
"cmds/core/base64"
"cmds/core/basename"
"cmds/core/blkid"
"cmds/core/brctl"
"cmds/core/cat"
"cmds/core/chmod"
"cmds/core/chroot"
"cmds/core/cmp"
"cmds/core/comm"
"cmds/core/cp"
"cmds/core/cpio"
"cmds/core/date"
"cmds/core/dd"
"cmds/core/df"
"cmds/core/dhclient"
"cmds/core/dirname"
"cmds/core/dmesg"
"cmds/core/du"
"cmds/core/echo"
"cmds/core/false"
"cmds/core/find"
"cmds/core/free"
"cmds/core/fusermount"
"cmds/core/gosh"
"cmds/core/gpgv"
"cmds/core/gpt"
"cmds/core/grep"
"cmds/core/gzip"
"cmds/core/head"
"cmds/core/hexdump"
"cmds/core/hostname"
"cmds/core/hwclock"
"cmds/core/id"
"cmds/core/init"
"cmds/core/insmod"
"cmds/core/io"
"cmds/core/ip"
"cmds/core/kexec"
"cmds/core/kill"
"cmds/core/lddfiles"
"cmds/core/ln"
"cmds/core/lockmsrs"
"cmds/core/losetup"
"cmds/core/ls"
"cmds/core/lsdrivers"
"cmds/core/lsmod"
"cmds/core/man"
"cmds/core/md5sum"
"cmds/core/mkdir"
"cmds/core/mkfifo"
"cmds/core/mknod"
"cmds/core/mktemp"
"cmds/core/more"
"cmds/core/mount"
"cmds/core/msr"
"cmds/core/mv"
"cmds/core/netcat"
"cmds/core/netstat"
"cmds/core/nohup"
"cmds/core/ntpdate"
"cmds/core/pci"
"cmds/core/ping"
"cmds/core/poweroff"
"cmds/core/printenv"
"cmds/core/ps"
"cmds/core/pwd"
"cmds/core/readlink"
"cmds/core/realpath"
"cmds/core/rm"
"cmds/core/rmmod"
"cmds/core/rsdp"
"cmds/core/scp"
"cmds/core/seq"
"cmds/core/shasum"
"cmds/core/shutdown"
"cmds/core/sleep"
"cmds/core/sluinit"
"cmds/core/sort"
"cmds/core/sshd"
"cmds/core/strace"
"cmds/core/strings"
"cmds/core/stty"
"cmds/core/switch_root"
"cmds/core/sync"
"cmds/core/tail"
"cmds/core/tar"
"cmds/core/tee"
"cmds/core/time"
"cmds/core/timeout"
"cmds/core/touch"
"cmds/core/tr"
"cmds/core/true"
"cmds/core/truncate"
"cmds/core/ts"
"cmds/core/tty"
"cmds/core/umount"
"cmds/core/uname"
"cmds/core/uniq"
"cmds/core/unmount"
"cmds/core/unshare"
"cmds/core/uptime"
"cmds/core/watchdog"
"cmds/core/watchdogd"
"cmds/core/wc"
"cmds/core/wget"
"cmds/core/which"
"cmds/core/xargs"
"cmds/core/yes"
"cmds/exp/acpicat"
"cmds/exp/acpigrep"
"cmds/exp/ansi"
"cmds/exp/bootvars"
"cmds/exp/bzimage"
"cmds/exp/cbmem"
"cmds/exp/console"
"cmds/exp/crc"
"cmds/exp/disk_unlock"
"cmds/exp/dmidecode"
"cmds/exp/dumpebda"
"cmds/exp/dumpmemmap"
"cmds/exp/ectool"
"cmds/exp/ed"
"cmds/exp/efivarfs"
"cmds/exp/esxiboot"
"cmds/exp/fbnetboot"
"cmds/exp/fbsplash"
"cmds/exp/fdtdump"
"cmds/exp/field"
"cmds/exp/fixrsdp"
"cmds/exp/forth"
"cmds/exp/freq"
"cmds/exp/getty"
"cmds/exp/hdparm"
"cmds/exp/ipmidump"
"cmds/exp/kconf"
"cmds/exp/localboot"
"cmds/exp/lsfabric"
"cmds/exp/madeye"
"cmds/exp/modprobe"
"cmds/exp/netbootxyz"
"cmds/exp/newsshd"
"cmds/exp/nvme_unlock"
"cmds/exp/page"
"cmds/exp/partprobe"
"cmds/exp/pflask"
"cmds/exp/pox"
"cmds/exp/pxeserver"
"cmds/exp/readelf"
"cmds/exp/readpe"
"cmds/exp/run"
"cmds/exp/rush"
"cmds/exp/smbios_transfer"
"cmds/exp/smn"
"cmds/exp/srvfiles"
"cmds/exp/ssh"
"cmds/exp/syscallfilter"
"cmds/exp/systemboot"
"cmds/exp/tac"
"cmds/exp/tc"
"cmds/exp/tcpdump"
"cmds/exp/tcz"
"cmds/exp/tftp"
"cmds/exp/traceroute"
"cmds/exp/uefiboot"
"cmds/exp/vboot"
"cmds/exp/vmboot"
"cmds/exp/watch"
"cmds/exp/zbi"
"cmds/exp/zimage"
"cmds/extra/tsort"
"cmds/fwtools/flash"
"cmds/fwtools/spidev"
];
allowGoReference = false;
nativeCheckInputs = [ which ];
preCheck = ''
rm cmds/core/brctl/*_test.go # Error: open /sys/class/net: no such file or directory
rm cmds/core/du/*_test.go # Error: expected 0 got 8
rm cmds/core/mkdir/*_test.go # Error: Mode = 'drwxr-xr-x', want: 'dgrwxrwxrwx'
rm cmds/core/netcat/*_test.go # Error: parseRemoteAddr(tcp, ::1) = [::1 localhost], want a subset of [::1 ip6-localhost]
rm cmds/exp/bzimage/*_test.go # Error: compressed KernelCode too big: was 611116, now 611124
'';
meta = (lib.removeAttrs prevAttrs.meta [ "mainProgram" ]) // {
longDescription = "All u-root commands compiles as standalone binaries";
};
})
+50
View File
@@ -0,0 +1,50 @@
{
lib,
buildGoModule,
fetchFromGitHub,
coreutils,
bash,
}:
buildGoModule rec {
pname = "u-root";
version = "0.14.0-unstable-2024-09-26";
src = fetchFromGitHub {
owner = "u-root";
repo = "u-root";
rev = "a620c4fc0eeeaa71ea68c27d6ef96352ed814829";
hash = "sha256-8B2H3AwGo9friveBk4bijOph9bSSNR7PPKJYEuywgm4=";
};
vendorHash = null;
subPackages = [ "." ];
CGO_ENABLED = "0";
ldflags = [ "-s" ];
allowGoReference = true;
# The tests want to copy /bin/bash and /bin/ls, but we don't have those.
# As these are interesting e2e tests to check if things work, we substitute
# them with the actual paths instead of just skipping the tests.
preCheck = ''
substituteInPlace ./uroot_test.go \
--replace-fail '-files=/bin/bash"' '-files=${bash}/bin/bash:bin/bash"' \
--replace-fail '-files=/bin/ls"' '-files=${coreutils}/bin/ls:bin/ls"' \
--replace-fail '-files=/bin/bash' '-files=${bash}/bin/bash'
'';
meta = {
description = "A fully Go userland with Linux bootloaders";
longDescription = "u-root can create a one-binary root file system (initramfs) containing a busybox-like set of tools written in Go";
homepage = "https://github.com/u-root/u-root";
changelog = "https://github.com/u-root/u-root/blob/${src.rev}/RELEASES";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ katexochen ];
mainProgram = "u-root";
platforms = lib.platforms.linux;
};
}