[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <aYy41v6tYda2Qc_1@devuan>
Date: Wed, 11 Feb 2026 18:57:02 +0100
From: Alejandro Colomar <alx@...nel.org>
To: linux-man@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, libc-alpha@...rceware.org
Subject: man-pages-6.17 released
Gidday!
I'm proud to announce:
man-pages-6.17 - manual pages for GNU+Linux
Tarball download:
<https://www.kernel.org/pub/linux/docs/man-pages/>
Git repository:
<https://git.kernel.org/cgit/docs/man-pages/man-pages.git/>
Online PDF book:
<https://www.kernel.org/pub/linux/docs/man-pages/book/>
Thanks to all the contributors to this release (in BCC)!
And thanks to our sponsors!
$ cat SPONSORS;
Google <https://opensource.google/>
Hudson River Trading <https://www.hudsonrivertrading.com/>
Meta <https://www.meta.com/>
Regarding sponsorship, please read
<https://lore.kernel.org/linux-man/aYprOnLo5WSP8Ljh@devuan/T/#u>.
Maintenance is guaranteed until 2026-10-31, but we need more money to
continue past that date. And that's only counting one maintainer, but
I really would like to have a couple of co-maintainers. The bus factor
of this project is quite worrying, given the importance of our
documentation.
You are receiving this message either because:
a) (BCC) You contributed to this release.
b) You are subscribed to <linux-man@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, or
<libc-alpha@...rceware.org>.
c) (BCC) I have information (possibly inaccurate) that you are
the maintainer of a translation of the manual pages, or are
the maintainer of the manual pages set in a particular
distribution, or have expressed interest in helping with
man-pages maintenance, or have otherwise expressed interest
in being notified about man-pages releases.
If you don't want to receive such messages from me, or you
know of some other translator or maintainer who may want to
receive such notifications, send me a message.
If you want to be added to this list (which I store
encrypted), send me a message.
Special shout out to Seth McDonald, who authored a large part (1/5) of
the commits in this release!
$ git shortlog -s man-pages-6.16..HEAD | sort | tail -n3
4 Mark Harris
125 Seth McDonald
474 Alejandro Colomar
He's been updating the HISTORY and STANDARDS sections of manual pages,
to document with precision conformance to new standards, and also the
history of APIs in old standards and historic systems. These sections
are now much more useful thanks to his contributions. And we have only
started with these improvements.
==================== NEWS =========================================
This release adds several new programs. We recommend that distributions
package all of our src/bin/ scripts in a separate binary package, called
something like manpages-utils (this happens to be the name I'd suggest
specifically for Debian, for consistency with manpages and
manpages-dev).
- src/bin/grepc
- src/bin/grepc_c
- src/bin/grepc_mk
- src/bin/mansectf
The grepc(1) program is something that originated in this project, as it
helped me find code quickly in glibc and the Linux kernel. However,
I've found it incredibly useful outside of this project. I'll take some
space to announce it, as it's much more than just a tool for writing
manual pages, and I expect it to be useful to most --if not all--
C programmers.
It is a command-line tool that finds C source code (for example,
a function definition) in arbitrary projects. It doesn't use any
indexing mechanism (unlike ctags and similar tools). This means that it
can be used right after cloning some repository, without having to
first generate an index.
Moreover, it works as a Unix filter: it reads stdin (or files, if
specified) and prints to stdout. This means it can be combined with
arbitrary tools.
Here's an example of use that I'm using quite regularly, and which
I find very useful. The following command diffs the implementation of
creat(2) between two arbitrary version of the Linux kernel (I chose to
compare v5.0 with git HEAD):
$ diff -U10 \
<(git show v5.0:fs/open.c | grepc -h -tfld creat) \
<(grepc -h -tfld creat fs/open.c);
--- /dev/fd/63 2026-02-11 18:35:33.069409927 +0100
+++ /dev/fd/62 2026-02-11 18:35:33.073409962 +0100
@@ -1,4 +1,8 @@
SYSCALL_DEFINE2(creat, const char __user *, pathname, umode_t, mode)
{
- return ksys_open(pathname, O_CREAT | O_WRONLY | O_TRUNC, mode);
+ int flags = O_CREAT | O_WRONLY | O_TRUNC;
+
+ if (force_o_largefile())
+ flags |= O_LARGEFILE;
+ return do_sys_open(AT_FDCWD, pathname, flags, mode);
}
And the command is quite fast. Within the Linux kernel, it takes just
a few seconds to find anything (in this example, the creat(2) function):
$ time grepc -tf creat .
./include/linux/syscalls.h:asmlinkage long sys_creat(const char __user *pathname, umode_t mode);
./fs/open.c:SYSCALL_DEFINE2(creat, const char __user *, pathname, umode_t, mode)
{
int flags = O_CREAT | O_WRONLY | O_TRUNC;
if (force_o_largefile())
flags |= O_LARGEFILE;
return do_sys_open(AT_FDCWD, pathname, flags, mode);
}
real 0m10.549s
user 0m11.126s
sys 0m0.454s
But most projects are much smaller, so it usually takes under a second
to search stuff in not-so-huge projects. It's PCRE2-based, so in the
end, just a dandified grep(1) --actually, pcre2grep(1)--.
==================== Linux Software Map ===========================
Begin4
Title: Linux man-pages
Version: 6.17
Entered-date: 2026-02-11
Description: Manual pages for GNU+Linux. This package contains
manual pages for sections 2, 3, 4, 5, and 7, and
subsections of those. Only a few pages are provided in
sections 1, 6, and 8, and none in 9.
Keywords: man pages
Maintained-by: Alejandro Colomar <alx@...nel.org>
Primary-site: http://www.kernel.org/pub/linux/docs/man-pages
2.7M man-pages-6.17.tar.gz
Copying-policy: several; the pages are all freely distributable as long as
nroff source is provided
End
==================== Changes in man-pages-6.17 ====================
Released: 2026-02-11, Aldaya
New and rewritten pages
-----------------------
man1/
grepc.1
grepc_c.1
mansectf.1
man2const/
F_GETDELEG.2const
IPPROTO_IP.2const (previously, ip(7))
IPPROTO_IPV6.2const (previously, ipv6(7))
IPV6_ADDRFORM.2const (previously, ipv6(7))
IPV6_ADD_MEMBERSHIP.2const (previously, ipv6(7))
IPV6_MTU.2const (previously, ipv6(7))
IPV6_MTU_DISCOVER.2const (previously, ipv6(7))
IPV6_MULTICAST_HOPS.2const (previously, ipv6(7))
IPV6_MULTICAST_IF.2const (previously, ipv6(7))
IPV6_MULTICAST_LOOP.2const (previously, ipv6(7))
IPV6_RECVERR.2const (previously, ipv6(7))
IPV6_RECVPKTINFO.2const (previously, ipv6(7))
IPV6_ROUTER_ALERT.2const (previously, ipv6(7))
IPV6_RTHDR.2const (previously, ipv6(7))
IPV6_UNICAST_HOPS.2const (previously, ipv6(7))
IPV6_V6ONLY.2const (previously, ipv6(7))
IP_ADD_MEMBERSHIP.2constA (previously, ip(7))
IP_ADD_SOURCE_MEMBERSHIP.2const (previously, ip(7))
IP_BIND_ADDRESS_NO_PORT.2const (previously, ip(7))
IP_BLOCK_SOURCE.2const (previously, ip(7))
IP_DROP_MEMBERSHIP.2const (previously, ip(7))
IP_DROP_SOURCE_MEMBERSHIP.2const (previously, ip(7))
IP_FREEBIND.2const (previously, ip(7))
IP_HDRINCL.2const (previously, ip(7))
IP_LOCAL_PORT_RANGE.2const (previously, ip(7))
IP_MSFILTER.2const (previously, ip(7))
IP_MTU.2const (previously, ip(7))
IP_MTU_DISCOVER.2const (previously, ip(7))
IP_MULTICAST_ALL.2const (previously, ip(7))
IP_MULTICAST_IF.2const (previously, ip(7))
IP_MULTICAST_LOOP.2const (previously, ip(7))
IP_MULTICAST_TTL.2const (previously, ip(7))
IP_NODEFRAG.2const (previously, ip(7))
IP_OPTIONS.2const (previously, ip(7))
IP_PASSSEC.2const (previously, ip(7))
IP_PKTINFO.2const (previously, ip(7))
IP_RECVERR.2const (previously, ip(7))
IP_RECVOPTS.2const (previously, ip(7))
IP_RECVORIGDSTADDR.2const (previously, ip(7))
IP_RECVTOS.2const (previously, ip(7))
IP_RECVTTL.2const (previously, ip(7))
IP_RETOPTS.2const (previously, ip(7))
IP_ROUTER_ALERT.2const (previously, ip(7))
IP_TOS.2const (previously, ip(7))
IP_TRANSPARENT.2const (previously, ip(7))
IP_TTL.2const (previously, ip(7))
IP_UNBLOCK_SOURCE.2const (previously, ip(7))
SO_PEERSEC.2const (previously, ip(7))
in_pktinfo.2type (previously, ip(7))
ip_mreq_source.2type (previously, ip(7))
ip_mreqn.2type (previously, ip(7))
man3/
_Maxof.3
aligned_alloc.3 (previously, posix_memalign(3))
memalign.3 (previously, posix_memalign(3))
getopt.3 (split into many pages)
getopt_long.3 (previously, getopt(3))
getopt_long_only.3 (previously, getopt(3))
snprintf.3 (previously, printf(3))
sprintf.3 (previously, printf(3))
posix_memalign.3 (split into many pages)
printf.3 (split into many pages)
pvalloc.3 (previously, posix_memalign(3))
valloc.3 (previously, posix_memalign(3))
man3attr/
gnu::warning.3attr
man5/
proc_sys_net_ipv4.5 (previously, ip(7))
man7/
ip.7 (split into many pages)
ipv6.7 (split into many pages)
Newly documented interfaces in existing pages
---------------------------------------------
man2/
clone.2
E2BIG
madvise.2
PR_THP_DISABLE_EXCEPT_ADVISED
mount.2
ENOSPC
ptrace.2
PTRACE_SET_SYSCALL_INFO
struct ptrace_syscall_info::reserved
struct ptrace_syscall_info::flags
man2const/
PR_GET_THP_DISABLE.2const
PR_SET_THP_DISABLE.2const
PR_THP_DISABLE_EXCEPT_ADVISED
man3/
timespec_get.3
TIME_MONOTONIC
TIME_ACTIVE
TIME_THREAD_ACTIVE
man7/
feature_test_macros.7
_ISOC23_SOURCE
_ISOC2X_SOURCE
operator.7
_Maxof(3)
_Minof(3)
rtnetlink.7
.ifi_change
standards.7
K&R
Unix/TS 4
C94, C95, C96, C17, C23
POSIX.1-2004, POSIX.1-2013, POSIX.1-2024
SUSv5
New and changed links
---------------------
man2const/
F_SETDELEG.2const (F_GETDELEG(2const))
IPV6_AUTHHDR.2const (IPV6_RTHDR(2const))
IPV6_DROP_MEMBERSHIP.2const (IPV6_ADD_MEMBERSHIP(2const))
IPV6_DSTOPTS.2const (IPV6_RTHDR(2const))
IPV6_FLOWINFO.2const (IPV6_RTHDR(2const))
IPV6_HOPLIMIT.2const (IPV6_RTHDR(2const))
IPV6_HOPOPTS.2const (IPV6_RTHDR(2const))
man2type/
ip_mreq.2type (ip_mreqn(2type))
man3/
_Countof.3 (countof(3))
_Minof.3 (_Maxof(3))
vsnprintf.3 (snprintf(3))
vsprintf.3 (sprintf(3))
Global changes
--------------
- CONSTRIBUTING.d/
- Add guidelines banning AI for contributing.
- Document guidelines about In-Reply-To: header field.
- Document guidelines about Fixes: trailed field.
- README.d/
- Document dependencies of the project.
- share/mk/
- Add help-list-* targets.
- man/
- HISTORY, STANDARDS
- Document new and old standards with precision.
- src/bin/
- grepc, grepc_c, grepc_mk
Add new scripts to inspect C source code.
- */
- Restore some old copyright notices.
Changes to individual files
---------------------------
The manual pages and other files in the repository have been improved
beyond what this changelog covers. To learn more about changes applied
to individual pages, or the authors of changes, use git(1).
--
<https://www.alejandro-colomar.es>
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists