base-system-2: promover 7 tier-2 a canónicas + repo firmado
shadow (useradd/passwd), kbd (loadkeys/setfont), procps-ng (ps/top/free), pciutils (lspci), lsof, strace, mandoc (man) → recipes/ canónicas + índice firmado. usbutils (falta libusb) y gnupg (falta libassuan/libksba/npth) quedan staged/bloqueados; foot diferido (Wayland). Segunda tanda del userland foundational: usuarios + teclado + proceso + hardware + docs + debug.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
Fixes for busybox
|
||||
|
||||
--- a/tests/status-detached.expected
|
||||
+++ b/tests/status-detached.expected
|
||||
@@ -1 +1 @@
|
||||
-nanosleep\({tv_sec=2, tv_nsec=0} <detached \.\.\.>
|
||||
+nanosleep\(\{tv_sec=2, tv_nsec=0\}, <detached \.\.\.>
|
||||
--- a/tests/strace--tips.test
|
||||
+++ b/tests/strace--tips.test
|
||||
@@ -13,7 +13,7 @@ tips_fmt_opt=""
|
||||
|
||||
grep_ere_escape()
|
||||
{
|
||||
- printf "%s" "$*" | sed 's/[].*&^$()|[\/]/\\&/g'
|
||||
+ printf "%s" "$*" | sed 's/[].*&^$(){}|[\\/]/\\&/g'
|
||||
}
|
||||
|
||||
# Check that simple "strace --tips=0" works as expected
|
||||
--- a/tests/strace-k.test
|
||||
+++ b/tests/strace-k.test
|
||||
@@ -26,10 +26,9 @@ check_prog sed
|
||||
check_prog tr
|
||||
|
||||
path_to_sed="$(command -v sed)"
|
||||
-if [ -x "$path_to_sed" ] &&
|
||||
- path_to_sed="$(readlink -ev -- "$path_to_sed")"; then
|
||||
+if [ -x "$path_to_sed" ]; then
|
||||
"$path_to_sed" -n 's/^[^/]\+[[:space:]]\(\/.*\)$/\1/p' /proc/self/maps |
|
||||
- grep -F -x -e "$path_to_sed" > /dev/null || {
|
||||
+ grep -F -x -e "$(readlink -fv -- "$path_to_sed")" > /dev/null || {
|
||||
cat >&2 /proc/self/maps
|
||||
framework_skip_ '/proc/self/maps is invalid'
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
--- a/Makefile.am 2025-11-25 18:32:31.829279209 +0000
|
||||
+++ b/Makefile.am 2025-11-25 18:33:52.519524988 +0000
|
||||
@@ -411,7 +411,6 @@
|
||||
# Test programs not used by dejagnu but run directly
|
||||
TESTS = \
|
||||
library/tests/test_escape \
|
||||
- library/tests/test_pids \
|
||||
library/tests/test_uptime \
|
||||
library/tests/test_sysinfo \
|
||||
library/tests/test_version \
|
||||
@@ -0,0 +1,131 @@
|
||||
BusyBox less doesn't support tag files (-T option), hence we previously
|
||||
disabled tag file support in mandoc at compile-time (HAVE_LESS_T).
|
||||
However, on Alpine it is entirely possible to replace BusyBox less with
|
||||
an implementation that supports tag files (e.g. main/less). In order to
|
||||
support tag files when such an implementation is installed, we need to
|
||||
detect at runtime whether -T is supported.
|
||||
|
||||
This patch achieves this by invoking the pager once with -T beforehand
|
||||
and checking if it terminates with a non-zero exit status.
|
||||
|
||||
diff -upr mandoc-1.14.6.orig/configure mandoc-1.14.6/configure
|
||||
--- mandoc-1.14.6.orig/configure 2023-07-02 19:38:31.011639507 +0200
|
||||
+++ mandoc-1.14.6/configure 2023-07-02 19:38:41.794998501 +0200
|
||||
@@ -67,7 +67,6 @@ HAVE_FTS_COMPARE_CONST=
|
||||
HAVE_GETLINE=
|
||||
HAVE_GETSUBOPT=
|
||||
HAVE_ISBLANK=
|
||||
-HAVE_LESS_T=
|
||||
HAVE_MKDTEMP=
|
||||
HAVE_MKSTEMPS=
|
||||
HAVE_NANOSLEEP=
|
||||
@@ -363,21 +362,6 @@ fi
|
||||
echo "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&2
|
||||
echo "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&3
|
||||
|
||||
-# --- tagging support in the pager ---
|
||||
-if ismanual "${BINM_PAGER} -T" LESS_T ${HAVE_LESS_T}; then
|
||||
- :
|
||||
-elif ${BINM_PAGER} -T /dev/null test-noop.c 1>/dev/null 2>&3; then
|
||||
- HAVE_LESS_T=1
|
||||
- echo "tested ${BINM_PAGER} -T: yes" 1>&2
|
||||
- echo "tested ${BINM_PAGER} -T: yes" 1>&3
|
||||
- echo 1>&3
|
||||
-else
|
||||
- HAVE_LESS_T=0
|
||||
- echo "tested ${BINM_PAGER} -T: no" 1>&2
|
||||
- echo "tested ${BINM_PAGER} -T: no" 1>&3
|
||||
- echo 1>&3
|
||||
-fi
|
||||
-
|
||||
# --- wide character and locale support ---
|
||||
if get_locale; then
|
||||
runtest wchar WCHAR "-DUTF8_LOCALE=\"${UTF8_LOCALE}\"" \
|
||||
@@ -484,7 +468,6 @@ cat << __HEREDOC__
|
||||
#define HAVE_GETLINE ${HAVE_GETLINE}
|
||||
#define HAVE_GETSUBOPT ${HAVE_GETSUBOPT}
|
||||
#define HAVE_ISBLANK ${HAVE_ISBLANK}
|
||||
-#define HAVE_LESS_T ${HAVE_LESS_T}
|
||||
#define HAVE_MKDTEMP ${HAVE_MKDTEMP}
|
||||
#define HAVE_MKSTEMPS ${HAVE_MKSTEMPS}
|
||||
#define HAVE_NTOHL ${HAVE_NTOHL}
|
||||
diff -upr mandoc-1.14.6.orig/main.c mandoc-1.14.6/main.c
|
||||
--- mandoc-1.14.6.orig/main.c 2023-07-02 19:38:31.011639507 +0200
|
||||
+++ mandoc-1.14.6/main.c 2023-07-02 19:38:50.635019538 +0200
|
||||
@@ -1271,6 +1271,44 @@ run_pager(struct outstate *outst, char *
|
||||
}
|
||||
}
|
||||
|
||||
+static int
|
||||
+supports_tags(const char *pager, char *tagfile)
|
||||
+{
|
||||
+ int fd;
|
||||
+ pid_t pid;
|
||||
+ int wstatus;
|
||||
+
|
||||
+ if (strcmp(pager, "less") != 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ pid = fork();
|
||||
+ switch (pid) {
|
||||
+ case -1:
|
||||
+ err(1, "fork");
|
||||
+ case 0:
|
||||
+ close(STDIN_FILENO);
|
||||
+ fd = open("/dev/null", O_RDWR);
|
||||
+ if (fd == -1)
|
||||
+ err(1, "open");
|
||||
+ assert(fd == STDIN_FILENO);
|
||||
+
|
||||
+ close(STDOUT_FILENO);
|
||||
+ dup2(fd, STDOUT_FILENO);
|
||||
+ close(STDERR_FILENO);
|
||||
+ dup2(fd, STDERR_FILENO);
|
||||
+
|
||||
+ /* If the pager doesn't support -T we expect a non-zero exit code */
|
||||
+ execlp(pager, pager, "-T", tagfile, "-", (char *)NULL);
|
||||
+ exit(EXIT_FAILURE);
|
||||
+ default:
|
||||
+ if (waitpid(pid, &wstatus, 0) == -1)
|
||||
+ err(1, "waitpid");
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return wstatus == EXIT_SUCCESS;
|
||||
+}
|
||||
+
|
||||
static pid_t
|
||||
spawn_pager(struct outstate *outst, char *tag_target)
|
||||
{
|
||||
@@ -1279,9 +1317,7 @@ spawn_pager(struct outstate *outst, char
|
||||
char *argv[MAX_PAGER_ARGS];
|
||||
const char *pager;
|
||||
char *cp;
|
||||
-#if HAVE_LESS_T
|
||||
size_t cmdlen;
|
||||
-#endif
|
||||
int argc, use_ofn;
|
||||
pid_t pager_pid;
|
||||
|
||||
@@ -1316,11 +1352,10 @@ spawn_pager(struct outstate *outst, char
|
||||
/* For less(1), use the tag file. */
|
||||
|
||||
use_ofn = 1;
|
||||
-#if HAVE_LESS_T
|
||||
if (*outst->tag_files->tfn != '\0' &&
|
||||
(cmdlen = strlen(argv[0])) >= 4) {
|
||||
cp = argv[0] + cmdlen - 4;
|
||||
- if (strcmp(cp, "less") == 0) {
|
||||
+ if (supports_tags(pager, outst->tag_files->tfn)) {
|
||||
argv[argc++] = mandoc_strdup("-T");
|
||||
argv[argc++] = outst->tag_files->tfn;
|
||||
if (tag_target != NULL) {
|
||||
@@ -1330,7 +1365,7 @@ spawn_pager(struct outstate *outst, char
|
||||
}
|
||||
}
|
||||
}
|
||||
-#endif
|
||||
+
|
||||
if (use_ofn) {
|
||||
if (outst->outtype == OUTT_HTML && tag_target != NULL)
|
||||
mandoc_asprintf(&argv[argc], "file://%s#%s",
|
||||
@@ -0,0 +1,47 @@
|
||||
Patch-Source: https://marc.info/?l=mandoc-discuss&m=175200050325256&w=2
|
||||
|
||||
--- a/man_validate.c
|
||||
+++ b/man_validate.c
|
||||
@@ -481,7 +481,7 @@ post_TH(CHKARGS)
|
||||
/* ->TITLE<- MSEC DATE OS VOL */
|
||||
|
||||
n = n->child;
|
||||
- if (n != NULL && n->string != NULL) {
|
||||
+ if (n != NULL && n->string != NULL && *n->string != '\0') {
|
||||
for (p = n->string; *p != '\0'; p++) {
|
||||
/* Only warn about this once... */
|
||||
if (isalpha((unsigned char)*p) &&
|
||||
@@ -494,8 +494,8 @@ post_TH(CHKARGS)
|
||||
}
|
||||
man->meta.title = mandoc_strdup(n->string);
|
||||
} else {
|
||||
- man->meta.title = mandoc_strdup("");
|
||||
- mandoc_msg(MANDOCERR_TH_NOTITLE, nb->line, nb->pos, "TH");
|
||||
+ man->meta.title = mandoc_strdup("UNTITLED");
|
||||
+ mandoc_msg(MANDOCERR_DT_NOTITLE, nb->line, nb->pos, "TH");
|
||||
}
|
||||
|
||||
/* TITLE ->MSEC<- DATE OS VOL */
|
||||
--- a/regress/man/TH/noarg.out_ascii
|
||||
+++ b/regress/man/TH/noarg.out_ascii
|
||||
@@ -1,4 +1,4 @@
|
||||
-() ()
|
||||
+UNTITLED() UNTITLED()
|
||||
|
||||
NNAAMMEE
|
||||
TH-noarg - no arguments to the TH macro
|
||||
@@ -6,4 +6,4 @@ NNAAMMEE
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
some text
|
||||
|
||||
-OpenBSD ()
|
||||
+OpenBSD UNTITLED()
|
||||
--- a/regress/man/TH/noarg.out_lint
|
||||
+++ b/regress/man/TH/noarg.out_lint
|
||||
@@ -1,3 +1,3 @@
|
||||
-mandoc: noarg.in:2:2: WARNING: missing manual title, using "": TH
|
||||
-mandoc: noarg.in:2:2: WARNING: missing manual section, using "": TH
|
||||
+mandoc: noarg.in:2:2: WARNING: missing manual title, using UNTITLED: TH
|
||||
+mandoc: noarg.in:2:2: WARNING: missing manual section, using "": TH UNTITLED
|
||||
mandoc: noarg.in:2:2: WARNING: missing date, using "": TH
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
Patch-Source: https://cvsweb.bsd.lv/mandoc/tag.c.diff?r1=1.36&r2=1.37
|
||||
---
|
||||
===================================================================
|
||||
RCS file: /cvs/mandoc/tag.c,v
|
||||
retrieving revision 1.36
|
||||
retrieving revision 1.37
|
||||
diff -u -p -r1.36 -r1.37
|
||||
--- mandoc/tag.c 2020/04/19 16:36:16 1.36
|
||||
+++ mandoc/tag.c 2022/04/26 11:38:38 1.37
|
||||
@@ -1,6 +1,7 @@
|
||||
-/* $Id: tag.c,v 1.36 2020/04/19 16:36:16 schwarze Exp $ */
|
||||
+/* $Id: tag.c,v 1.37 2022/04/26 11:38:38 schwarze Exp $ */
|
||||
/*
|
||||
- * Copyright (c) 2015,2016,2018,2019,2020 Ingo Schwarze <schwarze@openbsd.org>
|
||||
+ * Copyright (c) 2015, 2016, 2018, 2019, 2020, 2022
|
||||
+ * Ingo Schwarze <schwarze@openbsd.org>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -80,7 +81,7 @@ tag_free(void)
|
||||
|
||||
/*
|
||||
* Set a node where a term is defined,
|
||||
- * unless it is already defined at a lower priority.
|
||||
+ * unless the term is already defined at a lower priority.
|
||||
*/
|
||||
void
|
||||
tag_put(const char *s, int prio, struct roff_node *n)
|
||||
@@ -93,6 +94,18 @@ tag_put(const char *s, int prio, struct roff_node *n)
|
||||
|
||||
assert(prio <= TAG_FALLBACK);
|
||||
|
||||
+ /*
|
||||
+ * If the node is already tagged, the existing tag is
|
||||
+ * explicit and we are now about to add an implicit tag.
|
||||
+ * Don't do that; just skip implicit tagging if the author
|
||||
+ * specified an explicit tag.
|
||||
+ */
|
||||
+
|
||||
+ if (n->flags & NODE_ID)
|
||||
+ return;
|
||||
+
|
||||
+ /* Determine the implicit tag. */
|
||||
+
|
||||
if (s == NULL) {
|
||||
if (n->child == NULL || n->child->type != ROFFT_TEXT)
|
||||
return;
|
||||
@@ -150,7 +163,7 @@ tag_put(const char *s, int prio, struct roff_node *n)
|
||||
*/
|
||||
|
||||
else if (entry->prio < prio)
|
||||
- return;
|
||||
+ return;
|
||||
|
||||
/*
|
||||
* If the existing entry is worse, clear it.
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/lib/dialects/linux/machine.h
|
||||
+++ b/lib/dialects/linux/machine.h
|
||||
@@ -390,7 +390,7 @@
|
||||
* (the one that its user logged on with) of the lsof process.
|
||||
*/
|
||||
|
||||
-/* #define HASSECURITY 1 */
|
||||
+#define HASSECURITY 1
|
||||
|
||||
/*
|
||||
* If HASSECURITY is defined, define HASNOSOCKSECURITY to allow users
|
||||
@@ -0,0 +1,15 @@
|
||||
Lexer is never run so don't bother
|
||||
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -7131,10 +7131,6 @@
|
||||
rm -f conftest.l $LEX_OUTPUT_ROOT.c
|
||||
|
||||
fi
|
||||
-if test "x$LEX" != xflex
|
||||
-then :
|
||||
- as_fn_error $? "kbd depends on flex features, but found '$LEX'." "$LINENO" 5
|
||||
-fi
|
||||
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -std=gnu11" >&5
|
||||
printf %s "checking whether C compiler accepts -std=gnu11... " >&6; }
|
||||
@@ -0,0 +1,274 @@
|
||||
From 619b1e60da171d573481d2fbfea7645c8a80d1ae Mon Sep 17 00:00:00 2001
|
||||
From: "Dmitry V. Levin" <ldv@strace.io>
|
||||
Date: Tue, 10 Mar 2026 08:00:00 +0000
|
||||
Subject: [PATCH] bundled: update linux/io_uring.h to v7.0-rc3
|
||||
|
||||
* bundled/linux/include/uapi/linux/io_uring.h: Update to
|
||||
headers_install'ed Linux kernel v7.0-rc3.
|
||||
* src/io_uring.c (print_io_uring_zcrx_ifq_reg): Follow the rename
|
||||
of __resv2 field of struct io_uring_zcrx_ifq_reg to rx_buf_len.
|
||||
* tests/io_uring_register.c (test_IORING_REGISTER_ZCRX_IFQ): Update
|
||||
expected output.
|
||||
---
|
||||
bundled/linux/include/uapi/linux/io_uring.h | 35 +++++++++++++++++++--
|
||||
src/io_uring.c | 7 ++---
|
||||
tests/io_uring_register.c | 8 ++---
|
||||
3 files changed, 39 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/bundled/linux/include/uapi/linux/io_uring.h b/bundled/linux/include/uapi/linux/io_uring.h
|
||||
index b5b23c0d52..1ff16141c8 100644
|
||||
--- a/bundled/linux/include/uapi/linux/io_uring.h
|
||||
+++ b/bundled/linux/include/uapi/linux/io_uring.h
|
||||
@@ -188,7 +188,8 @@ enum io_uring_sqe_flags_bit {
|
||||
/*
|
||||
* If COOP_TASKRUN is set, get notified if task work is available for
|
||||
* running and a kernel transition would be needed to run it. This sets
|
||||
- * IORING_SQ_TASKRUN in the sq ring flags. Not valid with COOP_TASKRUN.
|
||||
+ * IORING_SQ_TASKRUN in the sq ring flags. Not valid without COOP_TASKRUN
|
||||
+ * or DEFER_TASKRUN.
|
||||
*/
|
||||
#define IORING_SETUP_TASKRUN_FLAG (1U << 9)
|
||||
#define IORING_SETUP_SQE128 (1U << 10) /* SQEs are 128 byte */
|
||||
@@ -237,6 +238,18 @@ enum io_uring_sqe_flags_bit {
|
||||
*/
|
||||
#define IORING_SETUP_SQE_MIXED (1U << 19)
|
||||
|
||||
+/*
|
||||
+ * When set, io_uring ignores SQ head and tail and fetches SQEs to submit
|
||||
+ * starting from index 0 instead from the index stored in the head pointer.
|
||||
+ * IOW, the user should place all SQE at the beginning of the SQ memory
|
||||
+ * before issuing a submission syscall.
|
||||
+ *
|
||||
+ * It requires IORING_SETUP_NO_SQARRAY and is incompatible with
|
||||
+ * IORING_SETUP_SQPOLL. The user must also never change the SQ head and tail
|
||||
+ * values and keep it set to 0. Any other value is undefined behaviour.
|
||||
+ */
|
||||
+#define IORING_SETUP_SQ_REWIND (1U << 20)
|
||||
+
|
||||
enum io_uring_op {
|
||||
IORING_OP_NOP,
|
||||
IORING_OP_READV,
|
||||
@@ -700,6 +713,9 @@ enum io_uring_register_op {
|
||||
/* auxiliary zcrx configuration, see enum zcrx_ctrl_op */
|
||||
IORING_REGISTER_ZCRX_CTRL = 36,
|
||||
|
||||
+ /* register bpf filtering programs */
|
||||
+ IORING_REGISTER_BPF_FILTER = 37,
|
||||
+
|
||||
/* this goes last */
|
||||
IORING_REGISTER_LAST,
|
||||
|
||||
@@ -805,6 +821,13 @@ struct io_uring_restriction {
|
||||
__u32 resv2[3];
|
||||
};
|
||||
|
||||
+struct io_uring_task_restriction {
|
||||
+ __u16 flags;
|
||||
+ __u16 nr_res;
|
||||
+ __u32 resv[3];
|
||||
+ __DECLARE_FLEX_ARRAY(struct io_uring_restriction, restrictions);
|
||||
+};
|
||||
+
|
||||
struct io_uring_clock_register {
|
||||
__u32 clockid;
|
||||
__u32 __resv[3];
|
||||
@@ -1068,6 +1091,14 @@ enum zcrx_reg_flags {
|
||||
ZCRX_REG_IMPORT = 1,
|
||||
};
|
||||
|
||||
+enum zcrx_features {
|
||||
+ /*
|
||||
+ * The user can ask for the desired rx page size by passing the
|
||||
+ * value in struct io_uring_zcrx_ifq_reg::rx_buf_len.
|
||||
+ */
|
||||
+ ZCRX_FEATURE_RX_PAGE_SIZE = 1 << 0,
|
||||
+};
|
||||
+
|
||||
/*
|
||||
* Argument for IORING_REGISTER_ZCRX_IFQ
|
||||
*/
|
||||
@@ -1082,7 +1113,7 @@ struct io_uring_zcrx_ifq_reg {
|
||||
|
||||
struct io_uring_zcrx_offsets offsets;
|
||||
__u32 zcrx_id;
|
||||
- __u32 __resv2;
|
||||
+ __u32 rx_buf_len;
|
||||
__u64 __resv[3];
|
||||
};
|
||||
|
||||
diff --git a/src/io_uring.c b/src/io_uring.c
|
||||
index a479c9570a..04de316513 100644
|
||||
--- a/src/io_uring.c
|
||||
+++ b/src/io_uring.c
|
||||
@@ -1254,11 +1254,8 @@ print_io_uring_zcrx_ifq_reg(struct tcb *tcp, const kernel_ulong_t addr)
|
||||
print_io_uring_zcrx_offsets(tcp, &arg.offsets);
|
||||
tprint_struct_next();
|
||||
PRINT_FIELD_U(arg, zcrx_id);
|
||||
-
|
||||
- if (arg.__resv2) {
|
||||
- tprint_struct_next();
|
||||
- PRINT_FIELD_X(arg, __resv2);
|
||||
- }
|
||||
+ tprint_struct_next();
|
||||
+ PRINT_FIELD_U(arg, rx_buf_len);
|
||||
|
||||
if (!IS_ARRAY_ZERO(arg.__resv)) {
|
||||
tprint_struct_next();
|
||||
diff --git a/tests/io_uring_register.c b/tests/io_uring_register.c
|
||||
index cfaa93d208..9952f0370e 100644
|
||||
--- a/tests/io_uring_register.c
|
||||
+++ b/tests/io_uring_register.c
|
||||
@@ -2058,7 +2058,7 @@ test_IORING_REGISTER_ZCRX_IFQ(int fd_null)
|
||||
", flags=" XLAT_FMT
|
||||
", area_ptr=%#llx, region_ptr=%#llx"
|
||||
", offsets={head=%u, tail=%u, rqes=%u}"
|
||||
- ", zcrx_id=%u}, 1) = %s\n",
|
||||
+ ", zcrx_id=%u, rx_buf_len=0}, 1) = %s\n",
|
||||
fd_null, path_null,
|
||||
XLAT_SEL(zcrx_ifq_ops.val, zcrx_ifq_ops.str),
|
||||
zcrx_ifq->if_idx, zcrx_ifq->if_rxq, zcrx_ifq->rq_entries,
|
||||
@@ -2073,9 +2073,9 @@ test_IORING_REGISTER_ZCRX_IFQ(int fd_null)
|
||||
memset(zcrx_ifq, 0, sizeof(*zcrx_ifq));
|
||||
zcrx_ifq->if_idx = 0xaaaa;
|
||||
zcrx_ifq->offsets.__resv2 = 0xbbbb;
|
||||
- zcrx_ifq->__resv2 = 0xcccc;
|
||||
zcrx_ifq->offsets.__resv[0] = 0xddddddddddddddddULL;
|
||||
zcrx_ifq->offsets.__resv[1] = 0xeeeeeeeeeeeeeeeeULL;
|
||||
+ zcrx_ifq->rx_buf_len = 0xcccc;
|
||||
zcrx_ifq->__resv[0] = 0x1111111111111111ULL;
|
||||
zcrx_ifq->__resv[1] = 0x2222222222222222ULL;
|
||||
zcrx_ifq->__resv[2] = 0x3333333333333333ULL;
|
||||
@@ -2086,7 +2086,7 @@ test_IORING_REGISTER_ZCRX_IFQ(int fd_null)
|
||||
", area_ptr=NULL, region_ptr=NULL"
|
||||
", offsets={head=0, tail=0, rqes=0, __resv2=%#x"
|
||||
", __resv=[%#llx, %#llx]}"
|
||||
- ", zcrx_id=0, __resv2=%#x"
|
||||
+ ", zcrx_id=0, rx_buf_len=%u"
|
||||
", __resv=[%#llx, %#llx, %#llx]}, 1) = %s\n",
|
||||
fd_null, path_null,
|
||||
XLAT_SEL(zcrx_ifq_ops.val, zcrx_ifq_ops.str),
|
||||
@@ -2094,7 +2094,7 @@ test_IORING_REGISTER_ZCRX_IFQ(int fd_null)
|
||||
zcrx_ifq->offsets.__resv2,
|
||||
(unsigned long long) zcrx_ifq->offsets.__resv[0],
|
||||
(unsigned long long) zcrx_ifq->offsets.__resv[1],
|
||||
- zcrx_ifq->__resv2,
|
||||
+ zcrx_ifq->rx_buf_len,
|
||||
(unsigned long long) zcrx_ifq->__resv[0],
|
||||
(unsigned long long) zcrx_ifq->__resv[1],
|
||||
(unsigned long long) zcrx_ifq->__resv[2],
|
||||
From 81fb4e6cd8b22acc51b8f7226a60a75825087d7b Mon Sep 17 00:00:00 2001
|
||||
From: "Dmitry V. Levin" <ldv@strace.io>
|
||||
Date: Wed, 11 Mar 2026 08:00:00 +0000
|
||||
Subject: [PATCH] bundled: update linux/io_uring/query.h to v7.0-rc3
|
||||
|
||||
* bundled/linux/include/uapi/linux/io_uring/query.h: Update to
|
||||
headers_install'ed Linux kernel v7.0-rc3.
|
||||
* src/io_uring.c (print_io_uring_query_zcrx): Follow the rename
|
||||
of "__resv1" field of struct io_uring_query_zcrx to "features".
|
||||
* tests/io_uring_register.c (test_IORING_REGISTER_QUERY): Update
|
||||
expected output.
|
||||
---
|
||||
.../linux/include/uapi/linux/io_uring/query.h | 6 +++++-
|
||||
src/io_uring.c | 7 ++-----
|
||||
tests/io_uring_register.c | 16 ++++++++--------
|
||||
3 files changed, 15 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/bundled/linux/include/uapi/linux/io_uring/query.h b/bundled/linux/include/uapi/linux/io_uring/query.h
|
||||
index 2456e6c5e..95500759c 100644
|
||||
--- a/bundled/linux/include/uapi/linux/io_uring/query.h
|
||||
+++ b/bundled/linux/include/uapi/linux/io_uring/query.h
|
||||
@@ -1,6 +1,9 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */
|
||||
/*
|
||||
* Header file for the io_uring query interface.
|
||||
+ *
|
||||
+ * Copyright (C) 2026 Pavel Begunkov <asml.silence@gmail.com>
|
||||
+ * Copyright (C) Meta Platforms, Inc.
|
||||
*/
|
||||
#ifndef LINUX_IO_URING_QUERY_H
|
||||
#define LINUX_IO_URING_QUERY_H
|
||||
@@ -50,7 +53,8 @@ struct io_uring_query_zcrx {
|
||||
__u64 area_flags;
|
||||
/* The number of supported ZCRX_CTRL_* opcodes */
|
||||
__u32 nr_ctrl_opcodes;
|
||||
- __u32 __resv1;
|
||||
+ /* Bitmask of ZCRX_FEATURE_* indicating which features are available */
|
||||
+ __u32 features;
|
||||
/* The refill ring header size */
|
||||
__u32 rq_hdr_size;
|
||||
/* The alignment for the header */
|
||||
diff --git a/src/io_uring.c b/src/io_uring.c
|
||||
index 04de31651..d6eb63ffe 100644
|
||||
--- a/src/io_uring.c
|
||||
+++ b/src/io_uring.c
|
||||
@@ -1538,15 +1538,12 @@ print_io_uring_query_zcrx(struct tcb *tcp, const kernel_ulong_t addr)
|
||||
tprint_struct_next();
|
||||
PRINT_FIELD_U(zcrx, nr_ctrl_opcodes);
|
||||
tprint_struct_next();
|
||||
+ PRINT_FIELD_X(zcrx, features);
|
||||
+ tprint_struct_next();
|
||||
PRINT_FIELD_U(zcrx, rq_hdr_size);
|
||||
tprint_struct_next();
|
||||
PRINT_FIELD_U(zcrx, rq_hdr_alignment);
|
||||
|
||||
- if (zcrx.__resv1) {
|
||||
- tprint_struct_next();
|
||||
- PRINT_FIELD_X(zcrx, __resv1);
|
||||
- }
|
||||
-
|
||||
if (zcrx.__resv2) {
|
||||
tprint_struct_next();
|
||||
PRINT_FIELD_X(zcrx, __resv2);
|
||||
diff --git a/tests/io_uring_register.c b/tests/io_uring_register.c
|
||||
index 9952f0370..158c714a0 100644
|
||||
--- a/tests/io_uring_register.c
|
||||
+++ b/tests/io_uring_register.c
|
||||
@@ -2373,8 +2373,8 @@ test_IORING_REGISTER_QUERY(int fd_null)
|
||||
printf("io_uring_register(%u<%s>, " XLAT_FMT
|
||||
", {query_data=%p, query_op=" XLAT_FMT ", size=%u, result=0"
|
||||
", query_data={register_flags=" XLAT_FMT ", area_flags=" XLAT_FMT
|
||||
- ", nr_ctrl_opcodes=%u, rq_hdr_size=%u, rq_hdr_alignment=%u}"
|
||||
- ", next_entry=NULL}, 0) = %s\n",
|
||||
+ ", nr_ctrl_opcodes=%u, features=0, rq_hdr_size=%u"
|
||||
+ ", rq_hdr_alignment=%u}, next_entry=NULL}, 0) = %s\n",
|
||||
fd_null, path_null,
|
||||
XLAT_SEL(query_ops.val, query_ops.str),
|
||||
zcrx_data,
|
||||
@@ -2490,8 +2490,8 @@ test_IORING_REGISTER_QUERY(int fd_null)
|
||||
", sqe_flags=0, nr_query_opcodes=0}, next_entry="
|
||||
"{query_data=%p, query_op=" XLAT_FMT ", size=%u, result=0"
|
||||
", query_data={register_flags=0, area_flags=0"
|
||||
- ", nr_ctrl_opcodes=%u, rq_hdr_size=0, rq_hdr_alignment=0}"
|
||||
- ", next_entry=NULL}}, 0) = %s\n",
|
||||
+ ", nr_ctrl_opcodes=%u, features=0, rq_hdr_size=0"
|
||||
+ ", rq_hdr_alignment=0}, next_entry=NULL}}, 0) = %s\n",
|
||||
fd_null, path_null,
|
||||
XLAT_SEL(query_ops.val, query_ops.str),
|
||||
opcode_data2,
|
||||
@@ -2570,22 +2570,22 @@ test_IORING_REGISTER_QUERY(int fd_null)
|
||||
hdr->result = 0;
|
||||
|
||||
memset(zcrx_data, 0, sizeof(*zcrx_data));
|
||||
- zcrx_data->__resv1 = 0xdeadbeef;
|
||||
+ zcrx_data->features = 0xdeadbeef;
|
||||
zcrx_data->__resv2 = 0xcafebabe12345678ULL;
|
||||
|
||||
sys_io_uring_register(fd_null, query_ops.val, hdr, 0);
|
||||
printf("io_uring_register(%u<%s>, " XLAT_FMT
|
||||
", {query_data=%p, query_op=" XLAT_FMT ", size=%u, result=0"
|
||||
", query_data={register_flags=0, area_flags=0"
|
||||
- ", nr_ctrl_opcodes=0, rq_hdr_size=0"
|
||||
- ", rq_hdr_alignment=0, __resv1=%#x, __resv2=%#llx}"
|
||||
+ ", nr_ctrl_opcodes=0, features=%#x, rq_hdr_size=0"
|
||||
+ ", rq_hdr_alignment=0, __resv2=%#llx}"
|
||||
", next_entry=NULL}, 0) = %s\n",
|
||||
fd_null, path_null,
|
||||
XLAT_SEL(query_ops.val, query_ops.str),
|
||||
zcrx_data,
|
||||
XLAT_ARGS(IO_URING_QUERY_ZCRX),
|
||||
(unsigned int) sizeof(*zcrx_data),
|
||||
- zcrx_data->__resv1,
|
||||
+ zcrx_data->features,
|
||||
(unsigned long long) zcrx_data->__resv2,
|
||||
errstr);
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
--- strace-4.18/tests/nlattr.c.old 2017-07-05 07:08:09.000000000 +0000
|
||||
+++ strace-4.18/tests/nlattr.c 2017-08-17 00:25:26.734218699 +0000
|
||||
@@ -61,7 +61,7 @@
|
||||
};
|
||||
struct msg *msg;
|
||||
struct nlattr *nla;
|
||||
- unsigned int msg_len;
|
||||
+ uint32_t msg_len;
|
||||
long rc;
|
||||
|
||||
/* fetch fail: len < sizeof(struct nlattr) */
|
||||
@@ -259,7 +259,7 @@
|
||||
};
|
||||
struct msg *msg;
|
||||
struct nlattr *nla;
|
||||
- unsigned int msg_len;
|
||||
+ uint32_t msg_len;
|
||||
long rc;
|
||||
|
||||
msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
off_t is always 64-bit with musl
|
||||
|
||||
--- a/tests/readahead.c
|
||||
+++ b/tests/readahead.c
|
||||
@@ -42,7 +42,7 @@ static const int fds[] = {
|
||||
0x7fffffff,
|
||||
};
|
||||
|
||||
-static const off64_t offsets[] = {
|
||||
+static const off_t offsets[] = {
|
||||
-0x8000000000000000LL,
|
||||
-0x5060708090a0b0c0LL,
|
||||
-1LL,
|
||||
--- a/tests/sync_file_range.c
|
||||
+++ b/tests/sync_file_range.c
|
||||
@@ -20,8 +20,8 @@ int
|
||||
main(void)
|
||||
{
|
||||
const int fd = -1;
|
||||
- const off64_t offset = 0xdeadbeefbadc0dedULL;
|
||||
- const off64_t nbytes = 0xfacefeedcafef00dULL;
|
||||
+ const off_t offset = 0xdeadbeefbadc0dedULL;
|
||||
+ const off_t nbytes = 0xfacefeedcafef00dULL;
|
||||
const unsigned int flags = -1;
|
||||
|
||||
int rc = sync_file_range(fd, offset, nbytes, flags);
|
||||
--- a/tests/sync_file_range2.c
|
||||
+++ b/tests/sync_file_range2.c
|
||||
@@ -20,8 +20,8 @@ int
|
||||
main(void)
|
||||
{
|
||||
const int fd = -1;
|
||||
- const off64_t offset = 0xdeadbeefbadc0ded;
|
||||
- const off64_t nbytes = 0xfacefeedcafef00d;
|
||||
+ const off_t offset = 0xdeadbeefbadc0ded;
|
||||
+ const off_t nbytes = 0xfacefeedcafef00d;
|
||||
const unsigned int flags = -1;
|
||||
|
||||
int rc = sync_file_range(fd, offset, nbytes, flags);
|
||||
@@ -0,0 +1,17 @@
|
||||
On Alpine, apropos(1) is available in a separate subpackages and not
|
||||
installed by default. For this reason, having this warning enabled by
|
||||
default does not make much sense since we don't use mandoc.db by
|
||||
default.
|
||||
|
||||
diff -upr a/main.c b/main.c
|
||||
--- a/main.c 2021-09-19 18:21:40.000000000 +0200
|
||||
+++ b/main.c 2021-09-19 19:40:28.711594083 +0200
|
||||
@@ -822,8 +822,6 @@ fs_lookup(const struct manpaths *paths,
|
||||
return globres;
|
||||
|
||||
found:
|
||||
- warnx("outdated mandoc.db lacks %s(%s) entry, run %s %s",
|
||||
- name, sec, BINM_MAKEWHATIS, paths->paths[ipath]);
|
||||
if (res == NULL)
|
||||
free(file);
|
||||
else if (file == NULL)
|
||||
@@ -0,0 +1,46 @@
|
||||
Fix types on 32-bit
|
||||
|
||||
--- a/tests/futimesat.c
|
||||
+++ b/tests/futimesat.c
|
||||
@@ -100,7 +100,7 @@ main(void)
|
||||
tv[0].tv_sec = 0xdeadbeefU;
|
||||
tv[0].tv_usec = 0xfacefeedU;
|
||||
tv[1].tv_sec = (typeof(tv[1].tv_sec)) 0xcafef00ddeadbeefLL;
|
||||
- tv[1].tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL;
|
||||
+ tv[1].tv_usec = (typeof(tv[1].tv_usec)) 0xbadc0dedfacefeedLL;
|
||||
|
||||
k_futimesat(kfdcwd, kfname, (uintptr_t) tv);
|
||||
printf("futimesat(AT_FDCWD, %s, [", qname);
|
||||
--- a/tests/xettimeofday.c
|
||||
+++ b/tests/xettimeofday.c
|
||||
@@ -58,7 +58,7 @@ main(void)
|
||||
tz->tz_minuteswest, tz->tz_dsttime, sprintrc(-1));
|
||||
|
||||
tv->tv_sec = (typeof(tv->tv_sec)) 0xcafef00ddeadbeefLL;
|
||||
- tv->tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL;
|
||||
+ tv->tv_usec = (typeof(tv->tv_usec)) 0xbadc0dedfacefeedLL;
|
||||
assert(syscall(__NR_settimeofday, tv, tz) == -1);
|
||||
printf("settimeofday({tv_sec=%lld, tv_usec=%llu}"
|
||||
", {tz_minuteswest=%d, tz_dsttime=%d}) = %s\n",
|
||||
--- a/tests/xselect.c
|
||||
+++ b/tests/xselect.c
|
||||
@@ -214,7 +214,7 @@ main(void)
|
||||
*/
|
||||
*l_rs = (1UL << fds[0]) | (1UL << fds[1]);
|
||||
tv_in.tv_sec = (typeof(tv_in.tv_sec)) 0xcafef00ddeadbeefLL;
|
||||
- tv_in.tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL;
|
||||
+ tv_in.tv_usec = (typeof(tv_in.tv_usec)) 0xbadc0dedfacefeedLL;
|
||||
memcpy(tv, &tv_in, sizeof(tv_in));
|
||||
rc = xselect(nfds, a_rs, a_rs, a_rs, a_tv);
|
||||
if (rc < 0) {
|
||||
--- a/tests/xutimes.c
|
||||
+++ b/tests/xutimes.c
|
||||
@@ -87,7 +87,7 @@ main(void)
|
||||
tv[0].tv_sec = 0xdeadbeefU;
|
||||
tv[0].tv_usec = 0xfacefeedU;
|
||||
tv[1].tv_sec = (typeof(tv[1].tv_sec)) 0xcafef00ddeadbeefLL;
|
||||
- tv[1].tv_usec = (suseconds_t) 0xbadc0dedfacefeedLL;
|
||||
+ tv[1].tv_usec = (typeof(tv[1].tv_usec)) 0xbadc0dedfacefeedLL;
|
||||
|
||||
k_utimes(kfname, (uintptr_t) tv);
|
||||
printf("%s(%s, [", TEST_SYSCALL_STR, qname);
|
||||
@@ -0,0 +1,24 @@
|
||||
From: Jakub Jirutka <jakub@jirutka.cz>
|
||||
Date: Sun, 19 Dec 2021 21:50:00 +0100
|
||||
Subject: [PATCH] Change some useradd defaults
|
||||
|
||||
--- a/src/useradd.c
|
||||
+++ b/src/useradd.c
|
||||
@@ -87,14 +87,14 @@
|
||||
/*
|
||||
* These defaults are used if there is no defaults file.
|
||||
*/
|
||||
-static gid_t def_group = 1000;
|
||||
+static gid_t def_group = 100;
|
||||
static const char *def_groups = "";
|
||||
static const char *def_gname = "other";
|
||||
static const char *def_home = "/home";
|
||||
-static const char *def_shell = "/bin/bash";
|
||||
+static const char *def_shell = "/bin/ash";
|
||||
static const char *def_template = SKEL_DIR;
|
||||
static const char *def_usrtemplate = USRSKELDIR;
|
||||
-static const char *def_create_mail_spool = "yes";
|
||||
+static const char *def_create_mail_spool = "no";
|
||||
static const char *def_log_init = "yes";
|
||||
|
||||
static long def_inactive = -1;
|
||||
@@ -0,0 +1,10 @@
|
||||
# base-system-2 — tier 2 del userland foundational (2026-07-10). Mismo patrón de de-Alpinización.
|
||||
shadow
|
||||
kbd
|
||||
procps-ng
|
||||
gnupg
|
||||
pciutils
|
||||
usbutils
|
||||
lsof
|
||||
strace
|
||||
mandoc
|
||||
Reference in New Issue
Block a user