2026-04-26  Dmitry V. Levin  <ldv@strace.io>

	Prepare for 7.0 release.
	* NEWS: Update for 7.0 release.

	Update copyright headers.
	Headers updated automatically using maint/update_copyright_years.sh
	script.

2026-04-24  Dmitry V. Levin  <ldv@strace.io>
	    Cursor AI  <auto@cursor.ai>

	Implement decoding of rseq_slice_yield syscall.
	This new syscall was introduced by Linux kernel commit
	v7.0-rc1~191^2~27.

	* src/linux/generic/syscallent-common.h [BASE_NR + 471]: Wire up
	rseq_slice_yield.
	* src/syscall_dummy.h (sys_rseq_slice_yield): New entry.
	* tests/rseq_slice_yield.c: New file.
	* tests/gen_tests.in (rseq_slice_yield): New test.
	* tests/pure_executables.list: Add rseq_slice_yield.
	* tests/.gitignore: Likewise.
	* NEWS: Mention this change.

2026-04-23  Dmitry V. Levin  <ldv@strace.io>
	    Cursor AI  <auto@cursor.ai>

	statmount: decode flags argument.
	Implement decoding of STATMOUNT_BY_FD bit in flags argument
	introduced by Linux kernel commit v7.0-rc1~236^2~2^2~1.

	* src/xlat/statmount_flags.in: New file.
	* src/statmount.c: Include "xlat/statmount_flags.h".
	(SYS_FUNC(statmount)): Decode flags argument with statmount_flags
	using printflags.
	* tests/statmount.c: Check it.
	* NEWS: Mention this change.

2026-04-23  Dmitry V. Levin  <ldv@strace.io>
	    Cursor AI  <auto@cursor.ai>

	xlat: update V4L2_* constants.
	* src/xlat/v4l2_control_ids.in (V4L2_CID_FLASH_DURATION): New constant
	introduced by Linux kernel commit v7.0-rc1~149^2~73.
	(V4L2_CID_FLASH_STROBE_OE): New constant introduced by Linux kernel
	commit v7.0-rc1~149^2~72.
	* src/xlat/v4l2_control_types.in (V4L2_CTRL_TYPE_HEVC_EXT_SPS_ST_RPS,
	V4L2_CTRL_TYPE_HEVC_EXT_SPS_LT_RPS): New constants introduced by Linux
	kernel commit v7.0-rc1~149^2~19.
	* src/xlat/v4l2_pix_fmts.in (V4L2_PIX_FMT_AV1): New constant introduced
	by Linux kernel commit v7.0-rc1~149^2~218.
	* NEWS: Mention this change.

	xlat: update PR_* constants.
	* src/xlat/prctl_options.in (PR_RSEQ_SLICE_EXTENSION): New constant
	introduced by Linux kernel commit v7.0-rc1~191^2~28.
	(PR_GET_CFI, PR_SET_CFI): New constants introduced by Linux kernel
	commit v7.0~15^2.
	* tests/prctl-no-args.c (options_unknown): Update.
	* NEWS: Mention this change.

	xlat: update OPEN_TREE_* constants.
	* src/xlat/open_tree_flags.in (OPEN_TREE_NAMESPACE): New constant
	introduced by Linux kernel commit v7.0-rc1~236^2^2~1.
	* tests/open_tree.c (main): Update expected output.
	* tests/open_tree_attr.c (main): Likewise.
	* NEWS: Mention this change.

	xlat: update *_MAGIC constants.
	* src/xlat/fsmagic.in (NULL_FS_MAGIC): New constant introduced
	by Linux kernel commit v7.0-rc1~238^2~1^2~1.
	* NEWS: Mention this change.

	xlat: update KVM_EXIT_* constants.
	* src/xlat/kvm_exit_reason.in (KVM_EXIT_ARM_LDST64B): New constant
	introduced by Linux kernel commit v7.0-rc1~210^2~10^2~7.
	(KVM_EXIT_SNP_REQ_CERTS): New constant introduced by Linux kernel
	commit v7.0-rc1~103^2~6^2~1.
	* NEWS: Mention this change.

	xlat: update KVM_CAP_* constants.
	* src/xlat/kvm_cap.in (KVM_CAP_S390_KEYOP): New constant introduced
	by Linux kernel commit v7.0-rc1~103^2^2~7.
	* NEWS: Mention this change.

	xlat: update IORING_SETUP_* constants.
	* src/xlat/uring_setup_flags.in (IORING_SETUP_SQ_REWIND): New constant
	introduced by Linux kernel commit v7.0-rc1~223^2~10.
	* tests/io_uring_setup.c (main): Update expected output.
	* NEWS: Mention this change.

	xlat: update IORING_REGISTER_* constants.
	* src/xlat/uring_register_opcodes.in (IORING_REGISTER_BPF_FILTER): New
	constant introduced by Linux kernel commit v7.0-rc1~222^2~6.
	* tests/io_uring_register.c (main): Update expected output.
	* NEWS: Mention this change.

	xlat: update KEY_* constants.
	* src/xlat/evdev_keycode.in (KEY_ACTION_ON_SELECTION,
	KEY_CONTEXTUAL_INSERT, KEY_CONTEXTUAL_QUERY): New constants introduced
	by Linux kernel commit v7.0~30^2.
	* NEWS: Mention this change.

	xlat: update FS_XFLAG_* constants.
	* src/xlat/fs_xflags.in (FS_XFLAG_VERITY): New constant introduced
	by Linux kernel commit v7.0-rc1~70^2~4^2~1.
	* tests/test_fs_xflags.h: Update the FS_XFLAGS test macros.
	* NEWS: Mention this change.

	xlat: update NT_* constants.
	* src/xlat/nt_descriptor_types.in (NT_RISCV_USER_CFI): New constant
	introduced by Linux kernel commit v7.0-rc1~107^2~21.
	* NEWS: Mention this change.

2026-04-23  Dmitry V. Levin  <ldv@strace.io>

	xlat: update BTRFS_* constants.
	* src/xlat/btrfs_features_incompat.in
	(BTRFS_FEATURE_INCOMPAT_REMAP_TREE): New constant introduced by Linux
	kernel commit v7.0-rc1~232^2~86.
	* src/xlat/btrfs_key_types.in (BTRFS_IDENTITY_REMAP_KEY,
	BTRFS_REMAP_KEY, BTRFS_REMAP_BACKREF_KEY): New constants
	introduced by Linux kernel commit v7.0-rc1~232^2~86.
	* src/xlat/btrfs_space_info_flags.in (BTRFS_BLOCK_GROUP_RAID1C3): New
	constant introduced by Linux kernel commit v5.5-rc1~195^2~19.
	(BTRFS_BLOCK_GROUP_RAID1C4): New constant introduced by Linux kernel
	commit v5.5-rc1~195^2~18.
	(BTRFS_BLOCK_GROUP_REMAPPED): New constant introduced by Linux kernel
	commit v7.0-rc1~232^2~86.
	(BTRFS_BLOCK_GROUP_METADATA_REMAP): New constant introduced by Linux
	kernel commit v7.0-rc1~232^2~85.
	* src/xlat/btrfs_tree_objectids.in (BTRFS_REMAP_TREE_OBJECTID): New
	constant introduced by Linux kernel commit v7.0-rc1~232^2~86.
	* NEWS: Mention this change.

2026-04-22  Dmitry V. Levin  <ldv@strace.io>
	    Cursor AI  <auto@cursor.ai>

	xlat: update BPF_* constants.
	* src/xlat/bpf_map_lookup_elem_flags.in (BPF_F_CPU, BPF_F_ALL_CPUS):
	New constants introduced by Linux kernel commit v7.0-rc1~196^2~80^2~6.
	* src/xlat/bpf_map_update_elem_flags.in: Likewise.
	* tests/bpf.c: Check it.
	* NEWS: Mention this change.

2026-04-21  Dmitry V. Levin  <ldv@strace.io>

	bpf: Fix decoding of BPF_MAP_*_ELEM flags.
	Make sure that flags are always printed as flags, but the value 0
	is printed as BPF_ANY.

	* src/xlat/bpf_map_lookup_elem_flags.in: Change order so that flag bits
	with higher value go first.
	* src/xlat/bpf_map_update_elem_flags.in: Likewise.
	(#value_indexed): Remove.
	* src/bpf.c (print_bpf_map_xxx_flags): New function.
	(BPF_MAP_LOOKUP_ELEM, BPF_MAP_UPDATE_ELEM): Use it to print attr.flags.
	BPF_MAP_LOOKUP_BATCH, BPF_MAP_UPDATE_BATCH, BPF_MAP_DELETE_BATCH): Use
	it to print attr.elem_flags.
	(BPF_MAP_UPDATE_BATCH): Use bpf_map_update_elem_flags instead of
	bpf_map_lookup_elem_flags to print attr.elem_flags.
	* tests/bpf.c: Check it.

2026-04-21  Dmitry V. Levin  <ldv@strace.io>
	    Cursor AI  <auto@cursor.ai>

	bpf: implement decoding of BPF_TRACE_FSESSION attach type.
	* src/xlat/bpf_attach_type.in (BPF_TRACE_FSESSION): New constant introduced
	by Linux kernel commit v7.0-rc1~196^2~34^2~12.
	* src/bpf.c (BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)): Add BPF_TRACE_FSESSION
	to the tracing case.
	* tests/bpf.c (BPF_PROG_QUERY_checks): Expect unknown attach type 59.
	(special_attach_types): Skip 58 in BPF_LINK_CREATE attach type iteration.
	(BPF_LINK_CREATE_checks): Cover BPF_TRACE_FSESSION; renumber following
	checks.
	* NEWS: Mention this change.

	bpf: implement decoding of BPF_PROG_ASSOC_STRUCT_OPS command.
	* src/xlat/bpf_commands.in (BPF_PROG_ASSOC_STRUCT_OPS): New constant
	introduced by Linux kernel commit v7.0-rc1~196^2~109^2~4.
	* src/bpf_attr.h (bpf_prog_assoc_struct_ops,
	BPF_PROG_ASSOC_STRUCT_OPS_struct): New structures.
	* src/bpf.c (print_prog_assoc_struct_ops): New function.
	(BEGIN_BPF_CMD_DECODER(BPF_PROG_ASSOC_STRUCT_OPS)): Likewise.
	(SYS_FUNC(bpf)) <bpf_cmd_decoders[]>: Use it.
	* tests/bpf.c (union bpf_attr_data): Add
	BPF_ATTR_DATA_FIELD(BPF_PROG_ASSOC_STRUCT_OPS).
	(BPF_PROG_ASSOC_STRUCT_OPS_checks): New checks array.
	(main) <checks>: Add CHK(BPF_PROG_ASSOC_STRUCT_OPS).
	* NEWS: Mention this change.

2026-04-21  Dmitry V. Levin  <ldv@strace.io>

	tests: fix rseq test on big-endian architectures.
	* tests/rseq.c (main): Set struct rseq_cs.flags explicitly.

	Resolves: https://github.com/strace/strace/issues/389

2026-04-16  Dmitry V. Levin  <ldv@strace.io>

	tests: robustify strace--color-tty.test.
	* tests/strace--color-tty.test: Skip the test when `script`
	does not work.

2026-04-16  Barnabás Pőcze  <pobrn@protonmail.com>

	v4l2: implement decoding of VIDIOC_QUERYMENU ioctl command.
	Decode the `VIDIOC_QUERYMENU` ioctl, which is used for both string and
	integer menu controls.  Unfortunately, without querying the type of the
	control it is not possible to know if it is a string or integer, so
	print both.

	Integer menus:

	  ioctl(3, VIDIOC_QUERYMENU, {id=V4L2_CTRL_CLASS_USER+0xf907, index=2} => {name="\2", value=2}) = 0

	String menus:

	  ioctl(3, VIDIOC_QUERYMENU, {id=V4L2_CTRL_CLASS_USER+0xf904, index=1} => {name="Menu Item 1", value=7310548498887107917}) = 0

	* src/v4l2.c (print_v4l2_querymenu): New function.
	(v4l2_ioctl) <VIDIOC_QUERYMENU>: Use it.
	* tests/ioctl_v4l2.c (main): Remove `VIDIOC_QUERYMENU` from the list
	of unsupported ioctls, and add some tests for it.
	* tests/ioctl_v4l2-success.c (main): Add some `VIDIOC_QUERYMENU` tests.
	* NEWS: Mention this change.

2026-04-15  Dmitry V. Levin  <ldv@strace.io>
	    Cursor AI  <cursor@cursor.com>

	tests: check decoding of rseq syscall.
	* tests/rseq.c: New file.
	* tests/gen_tests.in (rseq): New test.
	* tests/pure_executables.list: Add rseq.
	* tests/.gitignore: Likewise.

2026-04-15  Jiri Slaby  <jirislaby@gmail.com>
	    Dmitry V. Levin  <ldv@strace.io>
	    Cursor AI  <cursor@cursor.com>

	Implement decoding of rseq syscall.
	Decode all arguments of the Linux rseq(2) syscall.

	* src/rseq.c: New file.
	* src/Makefile.am (libstrace_a_SOURCES): Add rseq.c.
	* src/syscall_dummy.h (sys_rseq): Remove.
	* src/xlat/rseq_flags.in: New file.
	* src/xlat/rseq_cs_flags.in: Likewise.
	* NEWS: Mention this change.

2026-04-14  Dmitry V. Levin  <ldv@strace.io>

	bundled: add uapi/linux/rseq.h.
	* bundled/linux/include/uapi/linux/rseq.h: New file, imported from
	headers_install'ed Linux kernel v7.0.
	* bundled/Makefile.am (EXTRA_DIST): Add linux/include/uapi/linux/rseq.h.

2026-04-13  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	Update ioctl entries from linux v7.0 and fix affected test.
	* src/linux/32/ioctls_inc_align16.h: Update from linux v7.0 using
	ioctls_gen.sh.
	* src/linux/32/ioctls_inc_align32.h: Likewise.
	* src/linux/32/ioctls_inc_align64.h: Likewise.
	* src/linux/64/ioctls_inc.h: Likewise.
	* src/linux/x32/ioctls_inc0.h: Likewise.
	* src/linux/s390/ioctls_arch0.h: Likewise.
	* src/linux/s390x/ioctls_arch0.h: Likewise.
	* NEWS: Mention this change.
	* tests/ioctl_kd.c: Update unknown ioctl numbers to skip now known
	AMDKFD_IOC_CREATE_PROCESS.

	maint: update for linux v7.0.
	* maint/ioctls_sym.sh (process_file): Add a workaround definition
	of __force.

2026-04-13  Dmitry V. Levin  <ldv@strace.io>

	bundled: update linux UAPI headers to v7.0.
	* bundled/linux/include/uapi/linux/input-event-codes.h: Update to
	headers_install'ed Linux kernel v7.0.
	* bundled/linux/include/uapi/linux/prctl.h: Likewise.

2026-04-12  Weixie Cui  <cuiweixie@gmail.com>

	socketutils: remove redundant check.
	* src/socketutils.c (get_sockaddr_by_inode_cached): `e` is always not NULL
	because `cache` is static.

2026-04-07  Dmitry V. Levin  <ldv@strace.io>

	tests: pass $prog_args to run_prog() in run_strace_match_diff()
	QUIRK:PROG-ARGS extends the program argv; the silent baseline run must
	use the same arguments as run_strace(), otherwise there is a risk that
	match_diff() compares inconsistent runs.

	* tests/init-once.sh (run_strace_match_diff): Pass prog_args to run_prog.

2026-04-06  Dmitry V. Levin  <ldv@strace.io>

	tests: generalize errno2name()
	errno2name() used to read the global errno, so callers had to assign
	errno before calling it.  Take the error number as an argument so errno
	names can be printed without changing errno.

	* tests/errno2name.c (errno2name): Take errnum argument instead of
	global errno.
	* tests/tests.h (errno2name): Update prototype.
	* tests/modify_ldt.c (printrc): Call errno2name(err).
	* tests/qual_fault.c (main): Likewise.
	* tests/move_pages.c (print_status_array): Call errno2name(-status[i]).
	* tests/sprintrc.c: Include <errno.h>.
	(sprintrc_ex): Call errno2name(errno).

2026-04-05  Jonas Jelten  <jj@sft.lol>
	    Dmitry V. Levin  <ldv@strace.io>

	Implement optional colorized trace output.
	When the trace output stream is a terminal (stderr by default, or the
	file passed to -o), trace lines can use ANSI colors for syscall names,
	field names and values, punctuation, return values, errors, and decoded
	constants.  Auto mode follows NO_COLOR, skips coloring when using -ff,
	for non-tty output and for terminals that support less than 8 colors.
	STRACE_COLORS customizes roles with SGR parameter lists restricted to
	digits and semicolons.

	* configure.ac: Check for termcap.h and tgetnum, define HAVE_TGETNUM
	and set termcap_LIBS when available.
	* src/color.c: New file.
	* src/color.h: Likewise.
	* src/Makefile.am (libstrace_a_SOURCES): Add color.c and color.h.
	(strace_LDADD): Link with $(termcap_LIBS).
	* src/defs.h (tprints_string_uncol): New prototype.
	* src/print_fields.h: Emit color sequences around structured printing
	and field names when coloring is enabled.
	* src/strace.c (tprints_string_uncol): New function.
	(tprints_string): Call it and update curcol on success.
	(init): Parse --color=auto|always|never.  Call color_init after the log
	stream is configured.
	* src/syscall.c (syscall_entering_trace): Emit reset after printing
	syscall arguments.
	* src/xlat.c (printflags_ex, print_xlat_ex, printxvals_ex): Color
	symbolic names outside verbose comments.
	* doc/strace.1.in: Document --color, NO_COLOR, and STRACE_COLORS
	* tests/options-syntax.test: Check invalid --color syntax.
	* tests/strace--color-no-tty.test: New test.
	* tests/strace--color-tty.test: Likewise.
	* tests/Makefile.am (MISC_TESTS): Add strace--color-no-tty.test
	and strace--color-tty.test.
	* NEWS: Mention this change.

	Resolves: https://github.com/strace/strace/issues/39

2026-04-05  Dmitry V. Levin  <ldv@strace.io>

	strace: use tprint_arg_end and tprint_space instead of open-coding them.
	* src/strace.c (print_event_exit): Use tprint_arg_end and tprint_space.

2026-04-02  Dmitry V. Levin  <ldv@strace.io>

	xlat: optimize XLAT_STYLE_VERBOSE handling in printflags_ex.
	* src/xlat.c (printflags_ex): Cache the result in const need_comment,
	merge it with the non-zero flags guard before print_xlat_val, and drop
	redundant xlat_verbose comparisons.

2026-04-01  dependabot[bot]  <49699333+dependabot[bot]@users.noreply.github.com>

	build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0.
	Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6.0.0 to 7.0.0.
	- [Release notes](https://github.com/actions/upload-artifact/releases)
	- [Commits](https://github.com/actions/upload-artifact/compare/b7c566a772e6b6bfb58ed0dc250532a479d7789f...bbbca2ddaa5d8feaa63e36b76fdaad77386f024f)

	---
	updated-dependencies:
	- dependency-name: actions/upload-artifact
	  dependency-version: 7.0.0
	  dependency-type: direct:production
	  update-type: version-update:semver-major
	...

2026-03-23  Barnabás Pőcze  <pobrn@protonmail.com>

	tests: check decoding of UDMABUF_* ioctl commands.
	* tests/ioctl_udmabuf.c: New file.
	* tests/gen_tests.in (ioctl_udmabuf): New test.
	* tests/pure_executables.list: Add ioctl_udmabuf.
	* tests/.gitignore: Likewise.

2026-03-23  Barnabás Pőcze  <pobrn@protonmail.com>

	ioctl: implement decoding of UDMABUF_* ioctls.
	Decode the two currently supported udmabuf ioctls introduced by Linux kernel
	commit v4.20-rc1~81^2~30^2~33: UDMABUF_CREATE and UDMABUF_CREATE_LIST.

	* src/defs.h (DECL_IOCTL(udmabuf)): New declaration.
	* src/ioctl.c (ioctl_decode) <case 'u'>: Call udmabuf_ioctl.
	* src/udmabuf.c: New file.
	* src/xlat/udmabuf_flags.in: Likewise.
	* src/Makefile.am (libstrace_a_SOURCES): Add udmabuf.c.
	* NEWS: Mention this change.

2026-03-23  Dmitry V. Levin  <ldv@strace.io>

	bundled: add uapi/linux/udmabuf.h.
	* bundled/linux/include/uapi/linux/udmabuf.h: New file, imported from
	headers_install'ed Linux kernel v7.0-rc4.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/udmabuf.h.

2026-03-12  Dmitry V. Levin  <ldv@strace.io>

	.github/workflows/ci.yml: switch coverage job from ubuntu-24.04 to ubuntu-latest
	Since this job uses default gcc version, let's use default ubuntu
	version as well.  Even though ubuntu-latest is currently ubuntu-24.04,
	this is going to change in the future.

2026-03-11  Weixie Cui  <cuiweixie@gmail.com>

	count: use uint64_t for tmp variables to match struct call_counts types.

2026-03-11  Jonas Jelten  <jj@sft.lol>

	tests: fix missing vdso explicit syscall filtering.
	The fix in b2f55b6a137855ce399cdcf8b362cdfb6efb13ad was not enough,
	we need to apply it to more test helper functions, but more importantly,
	we have to change the regex to allow matching for:

	  clock_gettime64(CLOCK_MONOTONIC, {tv_sec=1330, tv_nsec=507731034}) = 0

	which contains a =, so we can't match for [^=].

	Complements: v6.19~54 "tests: workaround issues with recent glibc on platforms lacking vDSO"

2026-03-11  Dmitry V. Levin  <ldv@strace.io>

	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.

2026-03-10  Dmitry V. Levin  <ldv@strace.io>

	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.

2026-03-09  Dmitry V. Levin  <ldv@strace.io>

	bundled: update linux UAPI headers to v7.0-rc3.
	The update of linux/io_uring.h is delayed because the change in
	struct io_uring_zcrx_ifq_reg requires a synchronous update of
	the header, the parser and the test.

	The update of linux/io_uring/query.h is delayed because the change in
	struct io_uring_query_zcrx requires a synchronous update of the header,
	the parser and the test.

	* bundled/linux/include/uapi/linux/typelimits.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/typelimits.h.
	* bundled/linux/include/uapi/linux/blkzoned.h: Update to
	headers_install'ed Linux kernel v7.0-rc3.
	* bundled/linux/include/uapi/linux/btrfs.h: Likewise.
	* bundled/linux/include/uapi/linux/btrfs_tree.h: Likewise.
	* bundled/linux/include/uapi/linux/ethtool.h: Likewise.
	* bundled/linux/include/uapi/linux/fs.h: Likewise.
	* bundled/linux/include/uapi/linux/if_alg.h: Likewise.
	* bundled/linux/include/uapi/linux/if_link.h: Likewise.
	* bundled/linux/include/uapi/linux/landlock.h: Likewise.
	* bundled/linux/include/uapi/linux/mount.h: Likewise.
	* bundled/linux/include/uapi/linux/mptcp_pm.h: Likewise.
	* bundled/linux/include/uapi/linux/nl80211.h: Likewise.
	* bundled/linux/include/uapi/linux/perf_event.h: Likewise.
	* bundled/linux/include/uapi/linux/pkt_sched.h: Likewise.
	* bundled/linux/include/uapi/linux/prctl.h: Likewise.
	* bundled/linux/include/uapi/linux/taskstats.h: Likewise.
	* bundled/linux/include/uapi/linux/tcp.h: Likewise.
	* bundled/linux/include/uapi/linux/v4l2-controls.h: Likewise.
	* bundled/linux/include/uapi/linux/version.h: Likewise.
	* bundled/linux/include/uapi/linux/videodev2.h: Likewise.

2026-03-05  Dmitry V. Levin  <ldv@strace.io>

	Assume linux/if_alg.h is bundled.
	* configure.ac (AC_CHECK_HEADERS): Remove linux/if_alg.h.
	(AC_CHECK_TYPES): Remove struct sockaddr_alg_new.
	* tests/sockaddr_xlat.c: Include <linux/if_alg.h> unconditionally.
	[!HAVE_LINUX_IF_ALG_H, !HAVE_STRUCT_SOCKADDR_ALG_NEW]: Remove.

	Complements: v5.15~55 "sockaddr: implement decoding of AF_ALG socket addresses"

2026-03-04  Dmitry V. Levin  <ldv@strace.io>

	Assume linux/nfc.h is bundled.
	* configure.ac (AC_CHECK_HEADERS): Remove linux/if_nfc.h.
	* tests/sockaddr_xlat.c: Include <linux/nfc.h> unconditionally.
	(struct sockaddr_nfc): Remove fallback definition.

	Complements: v5.15~56 "sockaddr: implement decoding of AF_NFC socket addresses"

2026-03-03  Dmitry V. Levin  <ldv@strace.io>

	Assume linux/if_alg.h is bundled.
	* configure.ac (AC_CHECK_HEADERS): Remove linux/vm_sockets.h
	(AC_CHECK_MEMBERS): Remove struct sockaddr_vm.svm_flags.
	* tests/sockaddr_xlat.c: Include <linux/vm_sockets.h> unconditionally.
	[!HAVE_STRUCT_SOCKADDR_VM, !HAVE_STRUCT_SOCKADDR_VM_SVM_FLAGS]: Remove.

	Complements: v5.15~57 "sockaddr: implement decoding of AF_VSOCK socket addresses"

2026-03-02  Dmitry V. Levin  <ldv@strace.io>

	Assume linux/qrtr.h is bundled.
	* configure.ac (AC_CHECK_HEADERS): Remove linux/qrtr.h.
	* tests/sockaddr_xlat.c: Include <linux/qrtr.h> unconditionally.
	[!HAVE_LINUX_QRTR_H]: Remove.

	Complements: v5.15~58 "sockaddr: implement decoding of AF_QIPCRTR socket addresses"

2026-03-01  Dmitry V. Levin  <ldv@strace.io>

	Assume linux/if_xdp.h is bundled.
	* configure.ac (AC_CHECK_HEADERS): Remove linux/if_xdp.h.
	(AC_CHECK_TYPES): Remove struct sockaddr_xdp.
	* tests/sockaddr_xlat.c: Include <linux/if_xdp.h> unconditionally.
	[!HAVE_STRUCT_SOCKADDR_XDP]: Remove.

	Complements: v5.15~59 "sockaddr: implement decoding of AF_XDP socket addresses"

2026-02-19  Eugene Syromyatnikov  <evgsyr@gmail.com>

	sched: switch to using bundled Linux sched.h.
	* src/sched.c: Change <sched.h> include to <linux/sched.h>.
	(print_sched_param) <param>: Change the type to struct
	strace_sched_param, provide a type definition.

	tests/sched_getscheduler-success: include fallback schedulers definitions from xlat
	* tests/sched_getscheduler-success.c: Include "xlat/schedulers.h" under
	XLAT_MACROS_ONLY.
	(main): Remove ifdefs.

2026-02-19  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests/sched_xetscheduler: add a guard check for schedulers.
	Add a guard check for the first undefined scheduler value, so the test
	is to be updated and reviewed upon addition of a new value.

	* tests/sched_xetscheduler.c [!SCHED_EXT] (SCHED_EXT): Provide a
	fallback definition.
	(scheduler_str): Remove SCHED_EXT guard around the relevant switch case.
	(main): Change the invalid memory check to use the last defined
	scheduler, add a check for the first undefined one.

2026-02-19  Eugene Syromyatnikov  <evgsyr@gmail.com>

	xlat/schedulers: add fallback values.
	Provide fallback values to the scheduler policy macro constants,
	especially to SCHED_OTHER and SCHED_ISO, as those are defined
	in glibc headers, but not in Linux UAPI ones.

	* src/xlat/schedulers.in: Provide fallback definitions, add comments
	for SCHED_OTHER and SCHED_ISO.

2026-02-17  Dmitry V. Levin  <ldv@strace.io>

	.github/workflows/ci.yml: use one-line syntax for the matrix strategy.

2026-02-15  Eugene Syromyatnikov  <evgsyr@gmail.com>

	sched: print param argument as a structure.
	While de-facto being identical to a pointer to an integer, it is defined
	in POSIX as a structure containing a sing int field, and is handled
	in the kernel as such, so it only makes sense to print it accordingly,
	which also improves readability a bit, albeit at the cost of being less
	laconic.

	* src/sched.c (print_sched_param): New function.
	(sched_setscheduler, sched_getparam, sched_setparam): Use it to print
	param argument.
	* tests/sched_xetparam.c: Update expected output.
	* tests/sched_xetscheduler.c: Likewise.

2026-02-15  Eugene Syromyatnikov  <evgsyr@gmail.com>

	sched: print return value of sched_getscheduler as hexadecimal.
	All currently expected values are within 0..9 range, so it should not
	decrease readability in these cases, and it increases readability
	when SCHED_RESET_ON_FORK flag is set.

	* src/sched.c (sched_getscheduler): Return RVAL_HEX in addition
	to RVAL_STR on exiting.
	* tests/sched_getscheduler-success.c: Update expected output.
	* tests/sched_xetscheduler.c: Likewise.

2026-02-15  Eugene Syromyatnikov  <evgsyr@gmail.com>

	bootstrap: avoid simlinking object and archive files into mpers tests dirs
	Otherwise it symlinks them if the build is in-tree and is dirty.
	It probably should rely on "git ls-files" to determine which files
	should actually be linked, but that might as well be an unnecessary
	complication.

	* bootstrap: Skip *.[oa] files during tests files processing.

2026-02-15  Eugene Syromyatnikov  <evgsyr@gmail.com>

	sched: implement decoding of SCHED_RESET_ON_FORK for sched_[gs]etscheduler
	* src/sched.c (sprint_policy, print_policy): New functions.
	(sched_getscheduler): Use sprint_policy to generate auxstr.
	(sched_setscheduler): Use print_policy to print policy argument.
	* tests/Makefile.am (check_PROGRAMS): Add sched_getscheduler-success,
	sched_xetscheduler--pidns-translation-Xabbrev,
	sched_xetscheduler--pidns-translation-Xraw,
	and sched_xetscheduler--pidns-translation-Xverbose.
	* tests/gen_tests.in (sched_getscheduler-success,
	sched_xetscheduler-Xabbrev, sched_xetscheduler-Xraw,
	sched_xetscheduler-Xverbose,
	sched_xetscheduler--pidns-translation-Xabbrev,
	sched_xetscheduler--pidns-translation-Xraw,
	sched_xetscheduler--pidns-translation-Xverbose): New tests.
	* tests/pure_executables.list: Add sched_xetscheduler-Xabbrev,
	sched_xetscheduler-Xraw, and sched_xetscheduler-Xverbose.
	* tests/sched.in: Likewise.
	* tests/sched_getscheduler-success.c: New file.
	* tests/sched_xetscheduler--pidns-translation-Xabbrev.c: Likewise.
	* tests/sched_xetscheduler--pidns-translation-Xraw.c: Likewise.
	* tests/sched_xetscheduler--pidns-translation-Xverbose.c: Likewise.
	* tests/sched_xetscheduler-Xabbrev.c: Likewise.
	* tests/sched_xetscheduler-Xraw.c: Likewise.
	* tests/sched_xetscheduler-Xverbose.c: Likewise.
	* tests/sched_xetscheduler.c: Update expected output, add new checks.
	* tests/.gitignore: Add sched_getscheduler-success,
	sched_xetscheduler-Xabbrev, sched_xetscheduler-Xraw,
	sched_xetscheduler-Xverbose.
	sched_xetscheduler--pidns-translation-Xabbrev,
	sched_xetscheduler--pidns-translation-Xraw, and
	sched_xetscheduler--pidns-translation-Xverbose.

	Resolves: https://github.com/strace/strace/issues/376

2026-02-15  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: add syscall-success.sh.
	Add a simple wrapper for injecting a set of values, similarly
	to prctl-success.sh, but for an arbitrary syscall.

	* tests/syscall-success.sh: New file.
	* tests/Makeile.am (check_SCRIPTS): Add it.

2026-02-12  Dmitry V. Levin  <ldv@strace.io>

	.github/dependabot.yml: set open pull requests limit to 2.

2026-02-11  Dmitry V. Levin  <ldv@strace.io>

	.github/workflows/ci.yml: add clang-19 jobs to the build matrix.

2026-02-11  Dmitry V. Levin  <ldv@strace.io>

	.github/dependabot.yml: set cooldown period.
	Set Dependabot cooldown period to 7 days.

	Link: https://docs.zizmor.sh/audits/#dependabot-cooldown

2026-02-11  Dmitry V. Levin  <ldv@strace.io>

	.github/workflows: pin latest versions by their commit hash.
	Pin latest versions of actions/checkout, actions/upload-artifact,
	codecov/codecov-action, and
	redhat-plumbers-in-action/differential-shellcheck by their commit hash.

	Link: https://docs.zizmor.sh/audits/#unpinned-uses

2026-02-11  Dmitry V. Levin  <ldv@strace.io>

	.github/workflows: disable persisting credentials for actions/checkout.
	Set `persist-credentials: false` for actions/checkout.

	Link: https://docs.zizmor.sh/audits/#artipacked

2026-02-11  Dmitry V. Levin  <ldv@strace.io>

	.github/workflows: add job names.
	Link: https://docs.zizmor.sh/audits/#anonymous-definition

2026-02-11  Dmitry V. Levin  <ldv@strace.io>

	.github/workflows: set concurrency limits.
	When a new CI run is started, any in-progress CI runs for the same PR,
	branch, or tag are canceled:

	Link: https://docs.zizmor.sh/audits/#concurrency-limits

2026-02-11  Dmitry V. Levin  <ldv@strace.io>

	.github/workflows/ci.yml: remove excessive permissions.
	Set `permissions: {}` at the workflow level to prevent unnecessarily
	granting overly broad default permissions to jobs.

	Link: https://docs.zizmor.sh/audits/#excessive-permissions

2026-02-11  Dmitry V. Levin  <ldv@strace.io>

	.github/workflows/ci.yml: use matrix strategy to avoid code duplication.

	Post-release administrivia.
	* NEWS: Add a header line for the next release.
	* debian/changelog.in: Add a changelog entry for 6.19-1.
	* strace.spec.in: Likewise.

2026-02-10  Dmitry V. Levin  <ldv@strace.io>

	Prepare for 6.19 release.
	* NEWS: Update for 6.19 release.

	Update copyright headers.
	Headers updated automatically using maint/update_copyright_years.sh
	script.

	Update copyright year number range.
	* COPYING: Update copyright year number range.
	* tests/COPYING: Likewise.
	* debian/copyright: Likewise.

2026-02-10  Dmitry V. Levin  <ldv@strace.io>

	Fix preprocessor indentation.
	Indent the C preprocessor directives to reflect their nesting
	using the following script:

	$ cppi -l $(git grep -El '^[[:space:]]*#[[:space:]]*(if|ifdef|ifndef|elif|else|endif|define|pragma)[[:space:]]' src tests |grep -Ev '\.(md|sh|test)$') |while read f; do
		cppi < "$f" > "$f".cppi; mv "$f".cppi "$f"
	done

2026-02-09  Dmitry V. Levin  <ldv@strace.io>

	tests: fix printing of btf_log_true_size field of BPF_BTF_LOAD command.
	When printing expected value of btf_log_true_size, do not assume it
	remains unchanged after initialization, print the actual value instead.

	* tests/bpf.c (print_BPF_BTF_LOAD_attr2): New function.
	(BPF_BTF_LOAD_checks[]): Use it.

	Fixes: v6.18~12 "bpf: decode btf_log_true_size field of BPF_BTF_LOAD command"
	Resolves: https://github.com/strace/strace/issues/370

2026-02-09  Dmitry V. Levin  <ldv@strace.io>

	tests: workaround glibc 2.43+ failures on aarch64.
	Starting with glibc 2.43, support for 2MB transparent huge pages
	has been enabled by default in malloc on aarch64.

	Disable it to avoid unexpected madvise() and close() invocations
	that break tests.

	* tests/init-once.sh (GLIBC_TUNABLES): Set glibc.malloc.hugetlb=0.

2026-02-08  Dmitry V. Levin  <ldv@strace.io>

	tests: workaround --secontext=mismatch failures on F44+
	Starting with F44, linkat--secontext_mismatch and
	linkat--secontext_full_mismatch tests fail with the following
	diagnostics:

	  FAIL: linkat--secontext_mismatch.gen
	  linkat.c:200: Context mismatch not detected: [default_t]

	  FAIL: linkat--secontext_full_mismatch.gen
	  linkat.c:200: Context mismatch not detected: [system_u:object_r:default_t:s0]

	Workaround this issue by resetting secontext on the current working
	directory.

	* tests/linkat.c (main): Call reset_secontext_file() on the current
	working directory before calling mangle_secontext_field() on it.

	Resolves: https://github.com/strace/strace/issues/354
	Resolves: https://bugzilla.redhat.com/2435125

2026-02-08  Dmitry V. Levin  <ldv@strace.io>

	tests: fix secontext mismatch diagnostics.
	* tests/linkat.c (main): Use error_msg_and_fail() instead of
	perror_msg_and_fail() to print context mismatch diagnostics.

2026-02-03  Andrea Bolognani  <abologna@redhat.com>

	tests: Skip legacy_syscall_info on riscv64 with kernel 6.6.49+ too.
	Back in late 2024, strace commit ba41bc0da4b841d9 made it so that
	this test is skipped when running on kernel 6.11+, which is the
	first release containing kernel commit 61119394631f219e ("riscv:
	entry: always initialize regs->a0 to -ENOSYS"), the one that
	broke the legacy API on riscv64.

	What I failed to realize at the time is that the change had also
	been backported to the 6.6 tree as kernel commit 84557cd61182edf7,
	part of 6.6.49 stable kernel release. So we need to update our
	check to take that into account too, otherwise machines running
	an up-to-date LTS kernel will be unable to successfully build
	strace.

	This theoretically makes us lose coverage for the 6.7 - 6.10
	kernel range, but in reality 99% of riscv64 machines are running
	either the latest upstream kernel or a vendor kernel based on 6.6,
	so nothing really changes in practice.

2026-01-29  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	ptp: add support for PTP_SYS_OFFSET_{PRECISE, EXTENDED}_CYCLES commands.
	* src/ptp.c (ptp_ioctl): Handle PTP_SYS_OFFSET_PRECISE_CYCLES and
	PTP_SYS_OFFSET_EXTENDED_CYCLES.
	* tests/ioctl_ptp.c (test_no_device): Add PTP_SYS_OFFSET_PRECISE_CYCLES
	and PTP_SYS_OFFSET_EXTENDED_CYCLES to expected ioctl tables.

	Update ioctl entries from linux v6.19.
	* src/linux/32/ioctls_inc_align16.h: Update from linux v6.19-rc7 using
	ioctls_gen.sh.
	* src/linux/32/ioctls_inc_align32.h: Likewise.
	* src/linux/32/ioctls_inc_align64.h: Likewise.
	* src/linux/64/ioctls_inc.h: Likewise.
	* src/linux/x32/ioctls_inc0.h: Likewise.
	* NEWS: Mention this change.

	maint: update for linux v6.19-rc7.
	* maint/ioctls_sym.sh (process_file): Add a workaround for the
	linux/gpib_ioctl.h header.

	Update ioctl entries from linux v6.18 and fix affected tests.
	* src/linux/32/ioctls_inc_align16.h: Update from linux v6.18 using
	ioctls_gen.sh.
	* src/linux/32/ioctls_inc_align32.h: Likewise.
	* src/linux/32/ioctls_inc_align64.h: Likewise.
	* src/linux/64/ioctls_inc.h: Likewise.
	* src/linux/x32/ioctls_inc0.h: Likewise.
	* src/linux/powerpc/ioctls_arch0.h: Likewise.
	* tests/ioctl_tee.c (main): Print TEE_IOC_SHM_REGISTER_FD instead of
	raw _IOC value in expected output.
	* tests/ioctl_ptp.c (test_no_device): Update unknown ioctl numbers.

	maint: update for linux v6.18.
	* maint/ioctls_sym.sh (process_file): Bypass asm/cpufeature-macros.h
	on riscv architectures.

2026-01-20  Dmitry V. Levin  <ldv@strace.io>
	    auto@cursor.ai

	io_uring_register: decode SOCKET_URING_OP_* for socket descriptors.
	Implement decoding of socket operations introduced by Linux kernel
	commit v6.6-rc1~152^2~38.

	* src/xlat/uring_socket_ops.in: New file.
	* src/io_uring.c: Include "xlat/uring_socket_ops.h".
	(is_op_cmd_sqe, print_io_uring_sqe_off): New functions.
	(print_io_uring_sqe): Use them to decode "off" field as a socket
	operation.
	* tests/io_uring_register.c (test_IORING_REGISTER_SEND_MSG_RING): Check
	it.
	* NEWS: Mention this change.

2026-01-20  Dmitry V. Levin  <ldv@strace.io>
	    auto@cursor.ai

	io_uring_register: implement 128-byte SQE support.
	Implement decoding of 128-byte SQEs introduced by Linux kernel commit
	v5.19-rc1~247^2~21.  The decoder detects 128-byte SQEs based on opcode
	(IORING_OP_NOP128, IORING_OP_URING_CMD128) and decodes the additional
	cmd[] array.

	* src/io_uring.c (is_128_byte_sqe): New helper function to detect
	128-byte SQEs based on opcode.
	(print_io_uring_sqe): Use it to decode cmd[] array for 128-byte SQEs.
	* tests/io_uring_register.c (test_IORING_REGISTER_SEND_MSG_RING):
	Check decoding of IORING_OP_NOP128 and IORING_OP_URING_CMD128 opcodes
	with cmd[] array data.
	* NEWS: Mention this change.

2026-01-20  Dmitry V. Levin  <ldv@strace.io>
	    auto@cursor.ai

	io_uring_register: decode ioprio as flags for send/recv opcodes.
	Extend print_io_uring_sqe_ioprio to decode ioprio as flags
	introduced by Linux kernel commit v5.19-rc1~251^2~39 for
	send and recv opcodes.

	* src/xlat/uring_recvsend_flags.in: New file.
	* src/io_uring.c: Include "xlat/uring_recvsend_flags.h".
	(print_io_uring_sqe_ioprio): Handle send/recv opcodes.
	* tests/io_uring_register.c (test_IORING_REGISTER_SEND_MSG_RING):
	Add tests for SEND and RECV with flags in ioprio.

2026-01-20  Dmitry V. Levin  <ldv@strace.io>
	    auto@cursor.ai

	io_uring_register: decode ioprio as flags for ACCEPT opcode.
	Extend print_io_uring_sqe_ioprio to decode ioprio as flags introduced
	by Linux kernel commit v5.19-rc1~251^2~14 for IORING_OP_ACCEPT opcode.

	* src/xlat/uring_accept_flags.in: New file.
	* src/io_uring.c: Include "xlat/uring_accept_flags.h".
	(print_io_uring_sqe_ioprio): Handle IORING_OP_ACCEPT.
	* tests/io_uring_register.c (test_IORING_REGISTER_SEND_MSG_RING):
	Add test for ACCEPT with flags in ioprio.
	* NEWS: Mention this change.

2026-01-20  Dmitry V. Levin  <ldv@strace.io>
	    auto@cursor.ai

	io_uring_register: introduce print_io_uring_sqe_ioprio helper.
	Refactor ioprio field printing in print_io_uring_sqe into a separate
	helper function to prepare for opcode-specific ioprio decoding.

	* src/io_uring.c (print_io_uring_sqe_ioprio): New function.
	(print_io_uring_sqe): Use it to print ioprio field of
	struct io_uring_sqe.

2026-01-20  Dmitry V. Levin  <ldv@strace.io>
	    auto@cursor.ai

	io_uring_register: decode install_fd_flags for IORING_OP_FIXED_FD_INSTALL opcode
	Extend print_io_uring_sqe_flags_union to decode install_fd_flags
	introduced by Linux kernel commit v6.8-rc1~120^2~6 for
	IORING_OP_FIXED_FD_INSTALL opcode.  Also add PIPE opcode to the switch
	statement with ATTRIBUTE_FALLTHROUGH to default since no flags are
	currently defined for it.

	* src/xlat/uring_fixed_fd_flags.in: New file.
	* src/io_uring.c: Include "xlat/uring_fixed_fd_flags.h".
	(print_io_uring_sqe_flags_union): Handle IORING_OP_FIXED_FD_INSTALL,
	add IORING_OP_PIPE with ATTRIBUTE_FALLTHROUGH to default.
	* tests/io_uring_register.c (test_IORING_REGISTER_SEND_MSG_RING):
	Add test for FIXED_FD_INSTALL with flags.

2026-01-20  Dmitry V. Levin  <ldv@strace.io>
	    auto@cursor.ai

	io_uring_register: decode nop_flags for IORING_OP_NOP* opcodes.
	Extend print_io_uring_sqe_flags_union to decode nop_flags introduced
	by Linux kernel commit v6.10-rc1~220^2 for IORING_OP_NOP and
	IORING_OP_NOP128 opcodes.

	* src/xlat/uring_nop_flags.in: New file.
	* src/io_uring.c: Include "xlat/uring_nop_flags.h".
	(print_io_uring_sqe_flags_union): Handle IORING_OP_NOP and
	IORING_OP_NOP128.
	* tests/io_uring_register.c (test_IORING_REGISTER_SEND_MSG_RING):
	Update existing NOP test to expect nop_flags decoding, add new test
	for NOP with flags.
	* NEWS: Mention this change.

2026-01-20  Dmitry V. Levin  <ldv@strace.io>
	    auto@cursor.ai

	io_uring_register: introduce print_io_uring_sqe_flags_union helper.
	Refactor flags union decoding in print_io_uring_sqe into a separate
	helper function to prepare for opcode-specific flag decoding.

	* src/io_uring.c (print_io_uring_sqe_flags_union): New function.
	(print_io_uring_sqe): Use it to decode flags union of
	struct io_uring_sqe.

2026-01-15  Dmitry V. Levin  <ldv@strace.io>
	    auto@cursor.ai

	io_uring_register: implement decoding of attr_ptr and attr_type_mask.
	The io_uring_sqe structure contains a union that starting with linux
	kernel commit v6.14-rc1~201^2~32 can also be interpreted as attr_ptr and
	attr_type_mask.  When IORING_RW_ATTR_FLAG_PI is set in attr_type_mask,
	the attr_ptr field points to an io_uring_attr_pi structure that should
	be decoded for RW operations (read/write/send/recv) that actually use
	__io_prep_rw.

	* src/xlat/uring_rw_attr_flags.in: New file.
	* src/io_uring.c: Include "xlat/uring_rw_attr_flags.h".
	(print_io_uring_attr_pi, print_io_uring_attr_ptr): New functions.
	(print_io_uring_sqe): Use them to conditionally decode attr_ptr and
	attr_type_mask.
	* tests/io_uring_register.c (test_IORING_REGISTER_SEND_MSG_RING): Check
	it.
	* NEWS: Mention this change.

2026-01-14  Dmitry V. Levin  <ldv@strace.io>

	tests/prctl-sched-core: remove unused definition.
	* tests/prctl-sched-core.c (struct op_str): Remove.

	tests/syslog: use struct strval32 instead of open-coding it.
	* tests/syslog.c (main): Define no_args[], two_args[], and levels[]
	as arrays of struct strval32.

2026-01-13  Dmitry V. Levin  <ldv@strace.io>

	tests/fcntl-common: use struct strval64 instead of open-coding it.
