Skip to content

Conversation

pull[bot]
Copy link

@pull pull bot commented Apr 13, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Apr 13, 2025
Laszlo Ersek and others added 24 commits April 15, 2025 16:35
cmd.connection() in "netcat.go" rejects SOCKET_TYPE_UNIX when
SSLConfig.Enabled or SSLConfig.VerifyTrust is set.

Therefore, checking for (SSLConfig.Enabled or SSLConfig.VerifyTrust) under
SOCKET_TYPE_UNIX in cmd.setupListener() in "listen.go" can only yield
false. Remove this dead check.

Best viewed with "git show -U5".

Signed-off-by: Laszlo Ersek <[email protected]>
…ource

In a subsequent patch, I'll rewrite SSLOptions.GenerateTLSConfiguration().
So that hunks of the old and the new function not be interleaved in that
patch, move the current code verbatim to a new source file, temporarily.

Best viewed with "git show --no-renames --color-moved=zebra".

Signed-off-by: Laszlo Ersek <[email protected]>
GenerateTLSConfiguration() currently works identically in client mode and
server mode. This is wrong for several reasons:

(1) "--ssl-verify" only makes sense in client mode (neither nmap's ncat,
    nor u-root's netcat, support client authentication in server mode).
    Ignore "-ssl-verify" in server mode. (This is also what nmap's ncat
    does.)

(2) "--ssl-trustfile" only makes sense if "--ssl-verify" is in effect;
    ignore "--ssl-trustfile" otherwise.

(3) "--ssl-cert" and "--ssl-key" are indeed required in server mode, but
    they should be possible to omit in client mode; make them optional in
    client mode.

    Note that, if these options are set in client mode, an interfacing
    *netcat* server still does not authenticate the client; however, a
    *different* SSL server could try to authenticate the client.

(4) "--ssl-servername" only makes sense in client mode; ignore it in
    server mode.

Add 39 unit tests for covering every *path* (not just every branch) in
GenerateTLSConfiguration().

Signed-off-by: Laszlo Ersek <[email protected]>
Enable the netcatVM() helper function to take any number of trailing
"uimage.Modifier" arguments. This is a pure refactoring; no observable
change.

Best viewed with "git show -b -W".

Signed-off-by: Laszlo Ersek <[email protected]>
Demonstrate certificate validation and data transfer.

Signed-off-by: Laszlo Ersek <[email protected]>
Remove unimplemented features.

Signed-off-by: Jens Drenhaus <[email protected]>
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.37.0 to 0.38.0.
- [Commits](golang/net@v0.37.0...v0.38.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.38.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
when context will be cancelled cleanup will be executed in a loop, this
probably never happens because context is context.Background(), but I
think its better to exit function anyway.

Signed-off-by: Siarhiej Siemianczuk <[email protected]>
Signed-off-by: Siarhiej Siemianczuk <[email protected]>
Signed-off-by: Siarhiej Siemianczuk <[email protected]>
SMBIOSBase returns base address and size of header. Since SMBIOSBase
might return either base address SMBIOS2 or SMBIO3, we need a way
to distinguish the actual version of SMBIOS.

Introudce a new method to get SMBIO3 header size. This method allows
caller to compare the size of header to figure out the SMBIOS version.

Signed-off-by: Ajan Zhong <[email protected]>
According to EDK2 UPL implementation, SMBIOS3 info can be provided
by device tree info only. Add SMBIOS3 child node in reserved memory
node to provide SMBIOS3 info.

Signed-off-by: Ajan Zhong <[email protected]>
In previous implementation of universalpayload.Load() method, execution
will be handed over to Universal Payload directly. In this case, warning
messages need to be printed inside universalpayload package in case we
succeed to load and boot Universal Payload.

In order to keep universalpayload package without any warning printed,
separate universalpayload.Load() method to Load() and Exec(), then any
warning messages can be retrieved from return value of Load() method,
and print warning messages out of universalpayload package before caller
invokes Exec() method.

Signed-off-by: Ajan Zhong <[email protected]>
Returns any warning message produced during universalpayload package
loading Universal Paylaod binary to kexec, then kexec prints warning
messages.

This logic ensures universalpayload package never prints message when
it succees to load Universal Payload binary.

Signed-off-by: Ajan Zhong <[email protected]>
Add test case to cover constructing SMBIOS3 node in Device Tree.

Signed-off-by: Ajan Zhong <[email protected]>
Signed-off-by: Siarhiej Siemianczuk <[email protected]>
CONFIG_NET_CLS_U32=y is necessary for the upcoming "tc" integration test.

Signed-off-by: Laszlo Ersek <[email protected]>
Start using the kernels with CONFIG_NET_CLS_U32=y, from commit
f0e05c3 (".circleci/images: enable the tc-u32 filter type in kernel
configs", 2025-04-25).

(I visited

  https://ghcr.io/u-root/u-root/test-kernel-amd64
  https://ghcr.io/u-root/u-root/test-kernel-arm
  https://ghcr.io/u-root/u-root/test-kernel-arm64

with my browser, and grabbed the digests of the most recently built images
that were tagged as "main".)

Signed-off-by: Laszlo Ersek <[email protected]>
Non-root qdiscs have classes for parents, which are identified by class
IDs, not by flat integers. Fix the qdisc args parser.

Signed-off-by: Laszlo Ersek <[email protected]>
Deduplicate the fmt.Fprintf call.

Signed-off-by: Laszlo Ersek <[email protected]>
The output changes, for example, from

            TestDev2   htb
            TestDev2   sfq
            TestDev2   sfq
            TestDev2   sfq

to

            TestDev2   qdisc htb 1: root
            TestDev2   qdisc sfq 30: parent 1:30
            TestDev2   qdisc sfq 10: parent 1:10
            TestDev2   qdisc sfq 20: parent 1:20

Signed-off-by: Laszlo Ersek <[email protected]>
The output changes, for example, from

            TestDev2   qdisc htb 1: root

to

            TestDev2   qdisc htb 1: root r2q 10 default 0x30 direct_qlen 1000

Signed-off-by: Laszlo Ersek <[email protected]>
andreynering and others added 30 commits July 25, 2025 14:51
Signed-off-by: Andrey Nering <[email protected]>
Bumps [form-data](https://github.com/form-data/form-data) from 4.0.0 to 4.0.4.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md)
- [Commits](form-data/form-data@v4.0.0...v4.0.4)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
During integration test, we have to specify GOARM=5 to run vmtest
locally [1], GOARM=7 always run into initramfs crash.

This issue is caused by floating point support on different ARM
architectures. ARMv5 supports software floating point only, when
GOARM=5 enabled, go build utilizes software FP solution to build
initramfs. When GOARM=7 is enabled, hardware FP instruction will
be used to build initramfs, in this case, we need to initialize FP
related registers in kernel to ensure hardware FP instruction from
user level initramfs can be invoked with correct environment.

[1]:https://github.com/u-root/u-root/blob/main/.github/workflows/tests.yml#L38

Signed-off-by: Ajan Zhong <[email protected]>
Due to ARM kernel configuration update to support GOARM=7 for hardware
Floating Point support, update ARM kernel image hash.

Signed-off-by: Ajan Zhong <[email protected]>
With commit #8710979 merged, there is no limitation on ARM architecture
verison for QEMU instance now.

Signed-off-by: Ajan Zhong <[email protected]>
The long argument capability was not even being used.

Signed-off-by: Ronald G Minnich <[email protected]>
We had a guiding principle in u-root not to depend on a shell.
The tftp test is a complex shell script, that is basically undebuggable.

Remove this shell script. It sets a bad precedent. I realize there is one
other shell-based test left, the fork bomb test; I will try to remove
the dependency there as well.

Signed-off-by: Ronald G. Minnich <[email protected]>
Signed-off-by: Ronald G Minnich <[email protected]>
With luck, the tests cover all cases. Pflag Normalize is more powerful
than this replacement code, but not enough better to keep using it.

Signed-off-by: Ronald G Minnich <[email protected]>
There may be references to the baseboard table we want to remove. This
allows us to remove all instances in other baseboard tables or group
association tables.

Signed-off-by: Andrew Sun <[email protected]>
kernel modules are allowed to run thier initialization code in parallel,
and for modules that take a long time (e.g. probing hardware, etc.), we
can noticably reduce boot times by loading modules in parallel.

We want to avoid calling loadModule() for the same dep multiple times as
the kernel will return EEXIST for the duplicate module load (plus the
wasted cycles loading a duplicate image).

Adds a concurrent-safe parallelProbeDep() loading implementation, and
updates ProbeOptions() to load dependency modules in parallel.

Probe() and ProbeOptions() themselves remain concurrent-unsafe.

Fixes #3424

Signed-off-by: Khazhismel Kumykov <[email protected]>
Export new Prober type holding known module state (depMap) & probing
options, and new concurrent-safe Prober.Probe method for loading one
module and its dependencies.

Fixes #3424

Signed-off-by: Khazhismel Kumykov <[email protected]>
In many situations the fixed lines at the top of the menu come out somewhat messy
because the end of line does not include a Carriage Return.  Add one.
 In the worst case there will be two if there is another added by the output system.

Signed-off-by: jelischer <[email protected]>
use term for all menu output

All menu contents need to take the same path so as to not get re-ordered.

Signed-off-by: jelischer <[email protected]>
This reverts commit c9a322d.

Signed-off-by: Ajan Zhong <[email protected]>
This reverts commit c3217ac.

Signed-off-by: Ajan Zhong <[email protected]>
System memory information has been provided in DTB, there is no need
to provide system memory info again in handoff blocks.

Remove system memory info in handoff block reduces the foot print of
UPL solution, since in large scale server, there will be plenty of
system memory regions.

Signed-off-by: Ajan Zhong <[email protected]>
This allowed for the Go runtime futexes to work on an Armv7 target, MDM9625.

Without 32bit time compat, the Go runtime crashes and prints:
```
futexwakeup addr=0x547a08 returned -38
SIGSEGV: segmentation violation
PC=0x55e04 m=2 sigcode=1 addr=0x1006

goroutine 0 gp=0x14025a8 m=2 mp=0x142c808 [idle]:
runtime.futexwakeup(0x547a08, 0x1)
        runtime/os_linux.go:100 +0x6c fp=0x1445f94 sp=0x1445f68 pc=0x55e04
...
```
Full message:
https://gist.github.com/orangecms/d7a8a59ec9dc28b74a20da09ff2db3ec

Coming from here:
https://github.com/golang/go/blob/339c903a75c3fe936fb4ed6c355d15e6081d6af3/src/runtime/os_linux.go#L97

Note: -38 means ENOSYS.

32bit time compat is not (yet) mentioned in the Go minimum requirements:
https://go.dev/wiki/MinimumRequirements

From Linux `arch/Kconfig`:

  config COMPAT_32BIT_TIME
          bool "Provide system calls for 32-bit time_t"
          default !64BIT || COMPAT
          help
            This enables 32 bit time_t support in addition to 64 bit
  time_t support.
            This is relevant on all 32-bit architectures, and 64-bit
  architectures
            as part of compat syscall handling.

For reference, in Linux, there is a second `SYSCALL_DEFINE6` under the
32bit time compat condition:
https://github.com/torvalds/linux/blob/8f5ae30d69d7543eee0d70083daf4de8fe15d585/kernel/futex/syscalls.c#L491

Signed-off-by: Daniel Maslowski <[email protected]>
Also, reword variables->options.

Signed-off-by: Daniel Maslowski <[email protected]>
This leads the reader toward the configs that we provide.

Signed-off-by: Daniel Maslowski <[email protected]>
This is very old code, which I guess none of us ever noticed.
/proc/pid/cmdline has embedded NULLs, which need to be
changed to space.

Signed-off-by: Ronald G Minnich <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.