blob: 25cb8cdab2da610d7a95edec9d000aedd3337fa7 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"https://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link rel=stylesheet type="text/css" href="style.css" title="style">
<title>
Maintaining Linux man-pages
</title>
</head>
<body>
<!--BEGIN-LINKS-->
<form method="get" action="https://www.google.com/search">
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tr>
<td align="left">
<font size="-1">
Linux <em>man-pages</em>: &nbsp;
<a href="./index.html">home</a> |
<a href="./contributing.html">contributing</a> |
<a href="./reporting_bugs.html">bugs</a> |
<a href="./patches.html">patches</a> |
<a href="./download.html">download</a>
&nbsp; || &nbsp;
<a href="https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git">git</a> |
<a href="https://man7.org/linux/man-pages/index.html">online pages</a></font>
</td>
<td align="right">
<input type="text" name="q" size=10 maxlength=255 value="">
<input type="hidden" name="sitesearch" value="man7.org/linux/man-pages">
<input type="submit" name="sa" value="Search online pages">
</td>
</tr>
</table>
</form>
<!--END-LINKS-->
<h1>
Maintaining Linux <em>man-pages</em>
</h1>
<p>
The current <em>man-pages</em> maintainer is (since 2004)
<a href="https://man7.org/mtk/">Michael Kerrisk</a>
(<span class="email">mtk.manpages@gmail.com</span>;
<a href="https://blog.man7.org/">blog</a>);
starting in 2020, Alejandro Colomar
(<span class="email">alx.manpages@gmail.com</span>)
has joined as comaintainer.
</p>
<p>
This page provides
some tips on how to maintain the Linux <em>man-pages</em> project
(also useful for anyone who wants to help with work
on <em>man-pages</em>).
</p>
<h2>Read some man pages</h2>
<p>
Read at least the following:
</p>
<ul>
<li>
<span class="man-page">
<a href="https://man7.org/linux/man-pages/man7/man-pages.7.html">man-pages(7)</a>
</span>
</li>
<li>
<span class="man-page">
<a href="https://man7.org/linux/man-pages/man7/man.7.html">man(7)</a>
</span>
</li>
<li>
<span class="man-page">
<a href="https://man7.org/linux/man-pages/man7/standards.7.html">standards(7)</a>
</span>
</li>
<li>
<span class="man-page">
<a href="https://man7.org/linux/man-pages/man7/feature_test_macros.7.html">feature_test_macros(7)</a>
</span>
</li>
<li>
<span class="man-page">
<a href="https://man7.org/linux/man-pages/man7/groff.7.html">groff(7)</a>
</span>
</li>
<li>
<span class="man-page">
<a href="https://man7.org/linux/man-pages/man7/groff_man.7.html">groff_man(7)</a>
</span>
</li>
<li>
<span class="man-page">
<a href="https://man7.org/linux/man-pages/man7/groff_man_style.7.html">groff_man_style(7)</a>
</span>
</li>
<li>
<span class="man-page">
<a href="https://man7.org/linux/man-pages/man7/groff_char.7.html">groff_char(7)</a>
</span>
</li>
</ul>
<p>
All of these pages are relevant for maintaining <em>man-pages</em>.
Some of them are part of packages other than <em>man-pages</em>.
</p>
<h2>Get the source code</h2>
<p>
History matters.
The <em>man-pages</em> project documents not just the current
state of the Linux kernel and glibc APIs,
but also how they have changed over time.
</p>
<blockquote>
Once upon a time, <em>man-pages</em> also used to document
Linux libc details (libc4, libc5),
but Linux libc started disappearing in the late 1990s
(see
<a href="https://en.wikipedia.org/wiki/GNU_C_Library#Linux_libc">here</a>
and
<a href="https://web.archive.org/web/20040411191201/http://people.redhat.com/~sopwith/old/glibc-vs-libc5.html">here</a>
for some details),
and there is no longer any need to keep documenting its peculiarities.
</blockquote>
<h3>Kernel source code</h3>
<p>
You can find nearly every kernel release ever made at
<a href="https://www.kernel.org/">https://www.kernel.org/</a>.
</p>
<p>
You can get a copy of Linus' Git tree (i.e., the current development tree)
using this command:
<!-- https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ -->
<pre class="shell">$ <strong>git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git</strong></pre>
Thereafter, just update the copy using <span class="func">git pull</span>.
</p>
<p>
For browsing the kernel source code, the
<a href="https://elixir.bootlin.com/linux/latest/source">Elixir Cross Referencer</a>
can be useful.
(Online browsable versions of various free kernels can be found at
<a href="http://fxr.watson.org/">http://fxr.watson.org/</a>.)
</p>
<h3>Glibc source code</h3>
<p>
A lot of glibc tarballs can be found at
<a href="https://ftp.gnu.org/gnu/glibc/">https://ftp.gnu.org/gnu/glibc/</a>.
Many older tarballs can be found at
<a href="https://www.win.tue.nl/~aeb/ftpdocs/linux-local/libc.archive/">https://www.win.tue.nl/~aeb/ftpdocs/linux-local/libc.archive/</a>.
A copy of the latest glibc development tree can be obtained via git:
</p>
<pre class="shell">git clone git://sourceware.org/git/glibc.git </pre>
<h3>Other source code</h3>
<p>
Sometimes it can be useful to grep through random source code
to see what uses a certain API and how.
For example, one could unpack all of the source code of a distribution
and then grep that code.
Download locations for source code: <a href="https://download.fedoraproject.org/pub/fedora/linux/releases/">Fedora</a>;
<a href="https://download.opensuse.org/source/">OpenSUSE</a>.
</p>
<h2>Keeping up</h2>
<p>
One of the biggest challenges is keeping up to date with changes in
the kernel and glibc.
There are a few ways to do this.
This section lists some of the most useful ways.
</p>
<h3>Websites</h3>
<p>
These websites are useful because they in part include attempts
by others to summarize changes to the Linux kernel.
</p>
<ul>
<li>
<a href="https://lwn.net/">https://lwn.net/</a>.
The weekly kernel page is especially useful, since it summarizes
a lot of current and planned changes to the kernel.
There is also a
<a href="https://lwn.net/Kernel/Patches">kernel patch page</a>
where the LWN.net editors attempt to filter some
of the more noteworthy patches.
<br>
<br>
</li>
<li>
<a href="https://wiki.kernelnewbies.org/LinuxChanges">https://wiki.kernelnewbies.org/LinuxChanges</a>.
Summarizes major internal and interface changes for each
kernel release (starting sometime in the 2.6.x series).
<br>
<br>
</li>
</ul>
<h3>Linux API mailing list</h3>
<p>
The <a href="linux-api-ml.html">linux-api mailing list</a>
(<span class="email">linux-api@vger.kernel.org</span>)
discusses
changes that affect the Linux programming interface</a>
(API or ABI).
In theory, all patches that change the interface should be CCed to this list.
To subscribe, send a message containing the
following <em>body</em> to
<span class="email">majordomo@vger.kernel.org</span>:
</p>
<pre> subscribe linux-api </pre>
<p>
An archive of this list can be found on
<a href="https://lore.kernel.org/linux-api/">lore.kernel.org</a>.
</p>
<h2>Keeping up&mdash;some other possibilities</h2>
<p>
Below are some other ways of trying to discover changes in the
kernel and glibc. There's way too much information here to track
(in particular, it's pretty much impossible to track all of
of the mailing lists), but the list below serves as a reminder of
some places where useful information could be found.
</p>
<h3>Looking ahead: <em>linux-next</em></h3>
<p>
The <a href="https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git"><em>linux-next</em> tree</a>
is the holding area for patches aimed at the next kernel merge window.
It can be useful to track what's going on there,
in order to get some idea of upcoming changes to the kernel.
(<a href="linux-next.html">Some notes on working with <em>linux-next</em></a>.)
</p>
<h3>Git</h3>
<p>
If you are looking for a specific kernel commit,
or a commit log message containing a particular string, then searching
<a href="https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git"> Linus' Git tree</a>
can be useful.
</p>
<h3>Mailing lists</h3>
<p>
<strong>Linux Kernel (LKML)</strong>
</p>
<p>
This list
(<span class="email">linux-kernel@vger.kernel.org</span>)
contains patches,
bug reports, and general discussions about the kernel.
To subscribe, send a message containing the
following <em>body</em> to
<span class="email">majordomo@vger.kernel.org</span>:
</p>
<pre> subscribe linux-kernel </pre>
<p>
The problem with this list is that the volume is extremely high,
so keeping close track of it all would require a lot of time.
</p>
<p>
<a href="http://vger.kernel.org/vger-lists.html#linux-kernel">vger.kernel.org/</a>
provides the locations of a few searchable
archives of this mailing list, and of course there is an archive at
<a href="https://lore.kernel.org/lkml/">lore.kernel.org</a>.
</p>
<p>
<strong>Linux Kernel Announce</strong>
</p>
<p>
This low-volume list
(<span class="email">linux-kernel-announce@vger.kernel.org</span>)
announces releases of new versions of various kernel branches,
including release candidates for the mainline kernel and
new <em>-mm</em> kernels.
To subscribe, send a message containing the following <em>body</em> to
<span class="email">majordomo@vger.kernel.org</span>:
</p>
<pre> subscribe linux-kernel-announce </pre>
<p>
<strong>netdev</strong>
</p>
<p>
The netdev list
(<span class="email">netdev@vger.kernel.org</span>)
is the list used by the developers of the Linux networking subsystem.
</p>
<p>
To subscribe, send a message containing the following <em>body</em> to
<span class="email">majordomo@vger.kernel.org</span>:
</p>
<pre> subscribe netdev </pre>
<p>
Archives of this list can be found on
<a href="https://lore.kernel.org/netdev/">lore</a>
and
<a href="https://marc.info/?l=linux-netdev">marc</a>.
</p>
<!--
The linux-net@vger.kernel.org mailing list is for networking
user questions. Subscribe by sending
subscribe linux-net in the message body to majordomo@vger.kernel.org
-->
<p>
<strong>Linux Test Project (LTP)</strong>
</p>
<p>
The
<a href="https://linux-test-project.github.io/">LTP</a>
produces test suites for the Linux kernel.
Subscribe to the discussion list
<a href="https://lists.linux.it/listinfo/ltp">here</a>.
There are list archives
<a href="https://lists.linux.it/pipermail/ltp/">here</a>.
</p>
<p>
<strong>Kernel Newbies</strong>
</p>
<p>
This list
(<span class="email">kernelnewbies@kernelnewbies.org</span>)
be useful for asking questions on aspects of the kernel source that
you don't understand.
</p>
<p>
To subscribe, send a message containing the following <em>body</em> to
<span class="email">listar@nl.linux.org</span>:
</p>
<pre> subscribe kernelnewbies </pre>
<p>
Archives of this list can be found on
<a href="https://lore.kernel.org/kernelnewbies/">lore</a>
and
<a href="https://marc.info/?l=kernelnewbies">marc</a>.
See the
<a href="https://kernelnewbies.org/">kernelnewbies website</a>
for more information.
</p>
<p>
<strong>libc-announce</strong>
</p>
<p>
This list
(<span class="email">libc-announce@sourceware.org</span>)
announces each <em>glibc</em> release.
Subscribe by sending an email to
<span class="email">libc-announce-subscribe@sourceware.org</span>
or visiting <a href="https://sourceware.org/glibc">this page</a>.
There is a list archive
<a href="https://sourceware.org/pipermail/libc-announce/">here</a>.
</p>
<p>
<strong>libc-alpha</strong>
</p>
<p>
This list
(<span class="email">libc-alpha@sourceware.org</span>)
is the development list for glibc.
Subscribe by sending an email to
<span class="email">libc-alpha-subscribe@sourceware.org</span>
or visiting <a href="https://sourceware.org/glibc">this page</a>.
There is a list archive
<a href="https://sources.redhat.com/ml/libc-alpha/">here</a>.
</p>
<p>
<strong>libc-help</strong>
</p>
<p>
This list
(<span class="email">libc-help@sourceware.org</span>)
is for asking general questions and getting help on
<em>glibc</em>.
Subscribe by sending an email to
<span class="email">libc-help-subscribe@sourceware.org</span>
or visiting <a href="https://sourceware.org/glibc">this page</a>.
There is a list archive
<a href="https://sourceware.org/pipermail/libc-help/">here</a>.
</p>
<!--
<h3>Kernel releases</h3>
<p>
When a new kernel release is made, scan the
patch and ChangeLog, to see what important changes there have been.
This is quite a big job, and pretty much impossible to do thoroughly,
unless doing <em>man-pages</em> is your full time job,
but a bit of scripting
can help (e.g., to discard device driver stuff and
architecture-specific stuff other than for (say) x86 and ARM).
</p>
-->
<h3>Glibc releases</h3>
<!--
<p>
Just as for the kernel, when a new glibc release comes out,
scan the Changelog and the differences in the source code tree.
Reading the <span class="email">NEWS</span>
file in the glibc root directory also provides
information about important changes in a glibc release.
</p>
-->
<p>
The following is useful to get a rough idea of what symbols
are new or changed in various glibc releases -- execute it
at the root of a glibc tree:
</p>
<strong>
<pre class="shell">
cat $(find . -name 'Versions' |
egrep -v '/(s390|alpha|sparc|hurd|sh4|bsd|ia64|powerpc|x86_64)') |
sed -n '/GLIBC/,/}/p' | sed 's/#.*//'| tr ';' '\012' |
sed 's/^ *//' | sed 's/ *$//' | sed '/^$/d' |
grep -v '^_' |
awk '{ if ($1 ~ "^GLIBC_2.*") {
tag = $1
} else if ($1 ~ "^[a-z].*") {
printf "%-32s %s\n", $1, tag
}
}' |
sort -u
</pre>
</strong>
<h3>Kernel bugzilla</h3>
<p>
The kernel.org bugzilla can be used to
<a href="reporting_bugs.html">report</a> <em>man-pages</em> bugs.
The list of unresolved bugs in the bugzilla can be seen
<a href="https://bugzilla.kernel.org/buglist.cgi?query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=documentation_man-pages@kernel-bugs.osdl.org">here</a>.
</p>
<p>
Also useful:
<a href="https://korg.wiki.kernel.org/userdoc/bugzilla">How to use
bugzilla.kernel.org</a>.
</p>
<h3>Distribution-specific bug tracking systems</h3>
<h4>Debian</h4>
<p>
<a href="https://www.debian.org/">Debian</a>
makes it easy for upstream maintainers to subscribe to bug
reports for man pages.
To do this, visit
<a href="https://packages.qa.debian.org/">https://packages.qa.debian.org/</a>
and look for the Debian source packages
<em>manpages</em>.
</p>
<p>
A current list of
<a href="https://www.debian.org/">Debian</a>
bug reports for <em>man-pages</em> can be viewed
<a href="https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=manpages">here</a>.
The Debian <em>manpages</em> patch tracker is
<a href="https://tracker.debian.org/pkg/manpages">here</a>.
</p>
<p>
Debian even provides an email interface that allows an upstream
maintainer to manipulate Debian bug reports (using the "tags"
command; see
<a href="https://www.debian.org/Bugs/server-control">https://www.debian.org/Bugs/server-control</a>).
</p>
<p>
The Debian developer/upstream-centric view of manpages can be seen
<a href="https://packages.qa.debian.org/manpages">here</a>.
</p>
<p>
Every now and then it may be worth reviewing the Debian downstream
diff patches applied to <em>man-pages</em>, to see if there's anything they
should have pushed upstream, but didn't.
Have a look at the diff patches that are available by
following the "unstable" release links at
<a href="https://packages.debian.org/manpages">https://packages.debian.org/manpages</a>
and
<a href="https://packages.debian.org/manpages-dev">https://packages.debian.org/manpages-dev</a>,
and downloading the Debian tarballs.
Or look at the web <a href="https://tracker.debian.org/pkg/manpages">patchtracker</a>.
</p>
<p>
The following mail address reaches people with an interest in man pages at Debian:
<span class="email">manpages@packages.debian.org</span>.
</p>
<h4>Ubuntu</h4>
<p>
<a href="https://www.ubuntu.com/">Ubuntu</a> uses Launchpad for
manpages (<a href="https://bugs.launchpad.net/ubuntu/+source/manpages">bugs</a>,
<a href="https://launchpad.net/ubuntu/+source/manpages">package</a>)
and manpages-posix
(<a href="https://bugs.launchpad.net/ubuntu/+source/manpages-posix">bugs</a>,
<a href="https://launchpad.net/ubuntu/+source/manpages-posix">package</a>).
There are links on the "bugs" pages to allow subscribing to bug reports.
</p>
<h4>Red Hat</h4>
<p>
<a href="https://www.redhat.com/">Red Hat</a>
provides a
<a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?component=man-pages&&order=bugs.bug_id"><em>man-pages</em> bugzilla component</a>.
</p>
<p>
URL for Fedora package:
<a href="https://koji.fedoraproject.org/koji/packageinfo?packageID=401">https://koji.fedoraproject.org/koji/packageinfo?packageID=401</a>.
From there, you can reach the RPM files, and unpack them to see the
diffs from upstream, using:
</p>
<pre class="shell"> rpm2cpio foo.rpm | cpio -idmv --no-absolute-filenames </pre>
<p>
Downstream Git repo for Red Hat patches:
</p>
<pre class="shell"> git clone https://src.fedoraproject.org/rpms/man-pages.git</pre>
<h4>Fedora</h4>
<p>
It is possible to subscribe to Fedora man-pages bug reports, as follows:
</p>
<ul>
<li>
Get a Fedora account at <a href="https://admin.fedoraproject.org/accounts">https://admin.fedoraproject.org/accounts</a>.
</li>
<li>
Go to the <em>man-pages</em> package in
<a href="https://admin.fedoraproject.org/pkgdb/acls/name/man-pages">the package database</a>,
log in, and for each branch (Fedora NN to Fedora devel) click
"Add myself to the package" and then check watchbugzilla checkbox.
This has to be done only once,
preferences for new Fedoras are inherited from Fedora devel branch.
Once this is done, you will be in the CC list of
every new bug created for <em>man-pages</em> in Fedora.
</li>
<li>
A list of currently open Fedora <em>man-pages</em> bugs can be found
<a href="https://bugzilla.redhat.com/buglist.cgi?list_id=1102610&query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&component=man-pages&product=Fedora">here</a>.
</li>
</ul>
<h2>Testing new features</h2>
<h3>Test programs</h3>
<p>
Writing test programs (in C) is an essential part of writing man pages.
It verifies the author's understanding of what is being
documented and also finds bugs in the kernel and glibc.
In some cases, example programs are also suitable for inclusion
in the man pages themselves.
</p>
<h3>Testing new kernel features</h3>
<p>
To follow the development curve closely, try building and testing
release candidate ("rc") kernels; the release candidates are tagged in the
<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git">Git repository</a>.
After building and installing the kernel, write programs to test new features.
Since the declarations of new system calls probably
won't yet be in your (g)libc, the use of
<span class="func">syscall(2)</span>
may be required; see the
<span class="man-page">
<a href="https://man7.org/linux/man-pages/man2/syscall.2.html">syscall(2)</a>
</span>
man page.
</p>
<h3>Testing new glibc features</h3>
<p>
For information on building and testing glibc releases, see
<em><a href="https://www.gnu.org/software/libc/manual/html_node/Installation.html">Appendix C Installing the GNU C Library</a></em>
in the glibc manual,
<em><a href="https://sourceware.org/glibc/wiki/FAQ">Frequently Asked Questions about the GNU C Library</a></em>
on the glibc wiki,
and especially Carlos O'Donell's
<em><a href="https://sourceware.org/glibc/wiki/Testing/Builds">Testing a glibc build</a></em>
page on the glibc wiki.
</p>
<h2>All the world is not Linux</h2>
<p>
It is not enough to document what Linux does.
Programmers writing portable applications need to know about places where
Linux differs from other UNIX implementations, and about
places where it doesn't adhere to standards.
</p>
<h3>Test programs</h3>
<p>
If in doubt about portability, write a test program and run it
on a few other systems.
As a starting point, testing say Solaris,
FreeBSD, and HP-UX is likely to reveal most of the range of
differences that occur on other implementations.
Bonus points for testing on other BSDs, on AIX, etc.
</p>
<h3>Standards</h3>
<p>
Join the
<a href="https://www.opengroup.org/austin/">Austin group</a>.
(Membership is free.)
</p>
<p>
Get electronic copies of current and past UNIX standards, especially
the POSIX.1-2008/SUSv4 standard, available in
PDF format to members of the
<a href="https://www.opengroup.org/austin/">Austin group</a>,
and
<a href="https://www.unix.org/version3/online.html">browsable online</a>.
Note also that section 3p
of the man pages includes pages containing the
specifications for all functions in POSIX.1 (e.g., try
<span class="cmd">man 3p stat</span>).
</p>
<p>
Other standards to look out for are SUSv1, SUSv2, and the SVID
(System V Interface Definition), all of which are available in
electronic form.
</p>
<p>
And get the
<a href="http://www.open-std.org/jtc1/sc22/wg14/www/standards">C programming language standards</a>.
</p>
<p>
And have a look at the
<a href="https://www.linux-foundation.org/en/LSB">LSB</a>.
</p>
<h3>Read man pages for other systems</h3>
<p>
It can be useful to check the manual pages from other UNIX
systems to see what differences there are from Linux.
The FreeBSD project website displays manual pages for a
range of UNIX implementations; look
<a href="https://www.freebsd.org/cgi/man.cgi">here</a>.
</p>
<h3>Glibc <em>info</em></h3>
<p>
Sometimes there is useful information to be found in the
<a href="https://xkcd.com/912/"><span class="man-page">info(1)</span></a>
documentation for a particular function
(if the <em>info</em> documentation exists...).
Always worth checking.
</p>
<h3>Header files on other implementations</h3>
<p>
It can be handy to have a set of
<span class="pathname">/usr/include</span>
trees from various other implementations.
Grepping all of these trees can give some clues about interfaces that
are/aren't present on other UNIX implementations.
</p>
<h3>Source code</h3>
<p>
The source code of some other UNIX implementations is available, and
useful to study in order to determine undocumented details of
behaviour on those systems.
</p>
<!--
<p>
Instructions on how to get the source code of Open Solaris can be found
<a href="https://dlc.sun.com/osol/on/downloads/hg-build-snapshots/">here</a>.
You'll need to install Mercurial ("hg").
</p>
-->
<p>
The FreeBSD source code is available via Git mirror at
<a href="https://github.com/freebsd/freebsd">https://github.com/freebsd/freebsd</a>.
</p>
<h2>Get set up on kernel.org infrastructure</h2>
<p>
Look <a href="https://linux-man-pages.blogspot.com/2012/02/reestablishing-kernelorg-access.html">here</a>.
</p>
<h2>Making <em>man-pages</em> releases</h2>
<h3>Uploading files</h3>
<p>
Release tarballs are made available at
<a href="https://www.kernel.org/pub/linux/docs/man-pages/">https://www.kernel.org/pub/linux/docs/man-pages/</a>.
Files are uploaded using <em>kup</em>.
Look <a href="https://linux-man-pages.blogspot.com/2012/02/reestablishing-kernelorg-access.html">here</a>.
</p>
<h4>man-pages website</h4>
<p>
The <em>man-pages</em> website resides at
<a href="https://www.kernel.org/doc/man-pages/">https://www.kernel.org/doc/man-pages/</a>.
</p>
<p>
The Git repository for the website is at
<a href="https://git.kernel.org/pub/scm/docs/man-pages/website.git/">https://git.kernel.org/pub/scm/docs/man-pages/website.git/</a>.
Publication of new versions of the website are done by publishing
an annotated tag and pushing to the repo.
</p>
<!--
Files are uploaded using <em>kup</em>.
Look <a href="https://linux-man-pages.blogspot.com/2012/02/reestablishing-kernelorg-access.html">here</a>.
-->
<h3>Release notifications</h3>
<ul>
<li>
<strong>Contributors, maintainers, translators:</strong>
Send a release message that includes the change
log to all of the contributors to this release.
CC the message to
<span class="email">linux-man@vger.kernel.org</span>,
<span class="email">libc-alpha@sourceware.org</span>,
and to a small group of people
(e.g., maintainers, translators) who like
to get notification of *every* <em>man-pages</em> release.
I (mtk) manually maintain a list of those people.
<br>
<br>
</li>
<li>
<strong>LKML:</strong>
send a release note to
<span class="email">linux-kernel@vger.kernel.org</span>,
noting those changes that are of
special relevance to readers of LKML.
</li>
</ul>
<h2>Reporting kernel and glibc bugs</h2>
<p>
Testing kernel and glibc features while writing man pages will
inevitably uncover bugs, which ideally should be reported.
</p>
<p>
For the kernel, the most effective way to report bugs
(e.g., in a new system call)
is typically to send an email to the developers of the API
with a CC to LKML
(<span class="email">linux-kernel@vger.kernel.org</span>)
or another relevant list.
Alternatively, you can try making a bug report in the
<a href="https://bugzilla.kernel.org/">kernel bugzilla</a>.
</p>
<p>
For information about reporting glibc bugs (including errors
in the glibc
<span class="man-page">info(1)</span> documentation),
see
<a href="https://sourceware.org/glibc/wiki/FilingBugs">https://sourceware.org/glibc/wiki/FilingBugs</a>.
</p>
<h2>Some history</h2>
<p>
The <em>man-pages</em> project was begun in 1993 by
<a href="https://www.cs.unc.edu/~faith/">Rik Faith</a>, who created
releases 1.0 through to 1.5 (February 1995).
</p>
<p>
Rik Faith was succeeded by
<a href="https://www.win.tue.nl/~aeb">Andries Brouwer</a>
(<span class="email">aeb</span>),
who continued in the role for more than nine years,
creating releases 1.6 (June 1995) through to 1.70 (October 2004).
</p>
<p>
The current maintainer, Michael Kerrisk
(<span class="email">mtk</span>),
took over
in November 2004, starting with release 2.00.
</p>
<!--BEGIN-STATCOUNTER-->
<!-- SITETRACKING.linux_man-pages -->
<!-- Start of StatCounter Code -->
<script type="text/javascript">
var sc_project=5618989;
var sc_invisible=1;
var sc_partition=60;
var sc_click_stat=1;
var sc_security="4f8507d7";
</script>
<script type="text/javascript"
src="https://www.statcounter.com/counter/counter.js"></script><noscript><div
class="statcounter"><a title="customisable counter"
href="https://www.statcounter.com/free_hit_counter.html"
target="_blank"><img class="statcounter"
src="https://c.statcounter.com/5618989/0/4f8507d7/1/" alt="customisable
counter" ></a></div></noscript>
<!-- End of StatCounter Code -->
<!--END-STATCOUNTER-->
</body>
</html>