Import from AlmaLinux stable repository

This commit is contained in:
eabdullin 2025-12-04 12:34:55 +00:00
parent 2adf351f2c
commit 6d642e4211
10 changed files with 823 additions and 34 deletions

2
.gitignore vendored
View File

@ -1,3 +1 @@
SOURCES/man-pages-6.04.tar.xz
SOURCES/man-pages-additional-20140218.tar.xz
SOURCES/man-pages-posix-2017-a.tar.xz

View File

@ -1,3 +1 @@
35324d278c7fa756cf51455e8b7f66faefd1e3cb SOURCES/man-pages-6.04.tar.xz
315c9144f71c0edf1af823fb3f7735e93f6f17c3 SOURCES/man-pages-additional-20140218.tar.xz
ee907694a6ac012adb856ce0342103311340fcec SOURCES/man-pages-posix-2017-a.tar.xz

View File

@ -0,0 +1,173 @@
commit e541b219854e6be90b5628f88cd62edb44c9e9f2
Author: Alejandro Colomar <alx@kernel.org>
Date: Fri Aug 23 14:34:00 2024 +0200
ctime.3: Document how to check errors from mktime(3)
-1 is a valid successful time_t, for one second before the Epoch. And
mktime(3) is allowed (like most libc calls) to set errno on success.
This makes it impossible to determine errors from the return value or
errno.
ISO C specifies that tp->tm_wday is unmodified after a failed call, and
puts an example where this is used to determine errors. It is indeed
the only way to check for errors from this call.
Document this detail in the RETURN VALUE section, add a CAVEATS section
that warns about this, and write an example program that shows how to
properly call this function.
Most code I've been able to find in several search engines either
doesn't check for errors after mktime(3), or checks them incorrectly, so
this documentation should help fix those.
This is guaranteed since ISO C23 and POSIX.1-2024. Prior to those
standards, there was no standard way to check for errors. However,
there are no known implementations that do not conform to this.
Link: <https://lore.kernel.org/linux-man/20240823131024.GD2713@cventin.lip.ens-lyon.fr/T/#t>
Link: <https://lore.kernel.org/linux-man/6un6baaq5tez23irtycuvzqtuh7a4sdrf2px7tnyb3y6iqoxmq@2ofln4cd27ep/T/#t>
Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3147.txt>
Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3148.doc>
Link: <https://austingroupbugs.net/view.php?id=1614>
Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf#subsubsection.7.29.2.3>
Reported-by: Paul Eggert <eggert@cs.ucla.edu>
Cc: Vincent Lefevre <vincent@vinc17.net>
Cc: DJ Delorie <dj@redhat.com>
Cc: Carlos O'Donell <carlos@redhat.com>
Cc: Xi Ruoyao <xry111@xry111.site>
Cc: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca>
Cc: "Robert C. Seacord" <rcseacord@gmail.com>
Cc: Jens Gustedt <jens.gustedt@inria.fr>
Cc: Robert Elz <kre@munnari.oz.au>
Cc: Andrew Josey <ajosey@opengroup.org>
Cc: Geoff Clare <gwc@opengroup.org>
Cc: Hans Åberg <haberg-1@telia.com>
Cc: GNU C Library <libc-alpha@sourceware.org>
Cc: Austin Group <austin-group-l@opengroup.org>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Conflicts:
Minor wording differences
diff -Nrup a/man3/ctime.3 b/man3/ctime.3
--- a/man3/ctime.3 2023-04-02 20:27:24.000000000 -0400
+++ b/man3/ctime.3 2025-06-18 09:39:54.782440669 -0400
@@ -247,7 +247,10 @@ expressed as a value of type
On error,
.BR mktime ()
returns the value
-.IR "(time_t)\ \-1" .
+.IR "(time_t)\ \-1" ,
+and leaves the
+.I tm->tm_wday
+member unmodified.
The remaining functions return NULL on error.
On error,
.I errno
@@ -400,6 +403,105 @@ a broken-down time structure and an arra
Execution of any of the functions may overwrite the information returned
in either of these objects by any of the other functions."
This can occur in the glibc implementation.
+.SH CAVEATS
+.SS mktime()
+.I (time_t) \-1
+can represent a valid time
+(one second before the Epoch).
+To determine whether
+.BR mktime ()
+failed,
+one must use the
+.I tm->tm_wday
+field.
+See the example program in EXAMPLES.
+.SH EXAMPLES
+The following shell session shows sample runs of the program:
+.P
+.in +4n
+.EX
+.RB $\~ "TZ=UTC ./a.out 1969 12 31 23 59 59 0" ;
+\-1
+$
+.RB $\~ "export TZ=Europe/Madrid" ;
+$
+.RB $\~ "./a.out 2147483647 2147483647 00 00 00 00 -1" ;
+a.out: mktime: Value too large for defined data type
+$
+.RB $\~ "./a.out 2024 08 23 00 17 53 \-1" ;
+1724365073
+.RB $\~ "./a.out 2024 08 23 00 17 53 0" ;
+1724368673
+.RB $\~ "./a.out 2024 08 23 00 17 53 1" ;
+1724365073
+$
+.RB $\~ "./a.out 2024 02 23 00 17 53 \-1" ;
+1708643873
+.RB $\~ "./a.out 2024 02 23 00 17 53 0" ;
+1708643873
+.RB $\~ "./a.out 2024 02 23 00 17 53 1" ;
+1708640273
+$
+.RB $\~ "./a.out 2023 03 26 02 17 53 \-1" ;
+1679793473
+$
+.RB $\~ "./a.out 2023 10 29 02 17 53 \-1" ;
+1698542273
+.RB $\~ "./a.out 2023 10 29 02 17 53 0" ;
+1698542273
+.RB $\~ "./a.out 2023 10 29 02 17 53 1" ;
+1698538673
+$
+.RB $\~ "./a.out 2023 02 29 12 00 00 \-1" ;
+1677668400
+.EE
+.SS Program source: mktime.c
+\&
+.\" SRC BEGIN (mktime.c)
+.EX
+#include <err.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+\&
+#define is_signed(T) ((T) \-1 < 1)
+\&
+int
+main(int argc, char *argv[])
+{
+ char **p;
+ time_t t;
+ struct tm tm;
+\&
+ if (argc != 8) {
+ fprintf(stderr, "Usage: %s yyyy mm dd HH MM SS isdst\[rs]n", argv[0]);
+ exit(EXIT_FAILURE);
+ }
+\&
+ p = &argv[1];
+ tm.tm_year = atoi(*p++) \- 1900;
+ tm.tm_mon = atoi(*p++) \- 1;
+ tm.tm_mday = atoi(*p++);
+ tm.tm_hour = atoi(*p++);
+ tm.tm_min = atoi(*p++);
+ tm.tm_sec = atoi(*p++);
+ tm.tm_isdst = atoi(*p++);
+\&
+ tm.tm_wday = \-1;
+ t = mktime(&tm);
+ if (tm.tm_wday == \-1)
+ err(EXIT_FAILURE, "mktime");
+\&
+ if (is_signed(time_t))
+ printf("%jd\[rs]n", (intmax_t) t);
+ else
+ printf("%ju\[rs]n", (uintmax_t) t);
+\&
+ exit(EXIT_SUCCESS);
+}
+.EE
+.\" SRC END
.SH SEE ALSO
.BR date (1),
.BR gettimeofday (2),

View File

@ -0,0 +1,76 @@
commit ca69daf45f94fda061f796efcc4f24ca76d8e380
Author: Phil Auld <pauld@redhat.com>
Date: Thu Jan 16 14:37:47 2025 +0000
man/man7/sched.7: Mention autogroup disabled behavior
The autogroup feature can be contolled at runtime when built into the
kernel. Disabling it in this case still creates autogroups and still
shows the autogroup membership for the task in /proc. The scheduler
code will just not use the the autogroup task group. This can be
confusing to users. Add a sentence to this effect to sched.7 to point
this out.
The kernel code shows how this is used. The sched_autogroup_enabled
toggle is only used in one place.
kernel/sched/autogroup.h:
static inline struct task_group *
autogroup_task_group(struct task_struct *p, struct task_group *tg)
{
extern unsigned int sysctl_sched_autogroup_enabled;
int enabled = READ_ONCE(sysctl_sched_autogroup_enabled);
if (enabled && task_wants_autogroup(p, tg))
return p->signal->autogroup->tg;
return tg;
}
task_wants_autogroup() is in kernel/sched/autogroup.c:
bool task_wants_autogroup(struct task_struct *p, struct task_group *tg)
{
if (tg != &root_task_group)
return false;
...
return true;
}
One can see that any group set other than root also bypasses the use of
the autogroup. All of the machinery around the creation of the
autogroup is not effected by the toggle.
From userspace:
0
/autogroup-112 nice 0
Note, systemd based system these days is not really using autogroups at
all anyway because any task in a non-root cgroup bypasses the autogroup
as well.
Cc: Carlos O'Donell <codonell@redhat.com>
Signed-off-by: Phil Auld <pauld@redhat.com>
Message-ID: <20250116143747.2366152-1-pauld@redhat.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Conflicts:
man7/sched.7 - one line .P vs .PP difference
diff -Nrup a/man7/sched.7 b/man7/sched.7
--- a/man7/sched.7 2023-04-02 20:27:35.000000000 -0400
+++ b/man7/sched.7 2025-07-08 14:20:38.627388430 -0400
@@ -724,6 +724,11 @@ in the group terminates.
.PP
When autogrouping is enabled, all of the members of an autogroup
are placed in the same kernel scheduler "task group".
+When disabled,
+the group creation happens as above,
+and autogroup membership is still visible in
+.IR /proc ,
+but the autogroups are not used.
The CFS scheduler employs an algorithm that equalizes the
distribution of CPU cycles across task groups.
The benefits of this for interactive desktop performance

View File

@ -0,0 +1,32 @@
commit 6a7f1461b0e5474d50ef1920558dec103c0c058f
Author: Alejandro Colomar <alx@kernel.org>
Date: Sat Aug 24 00:20:49 2024 +0200
ctime.3: Move NOTES to a subsection within CAVEATS
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Conflicts:
Minor wording differences
diff -Nrup a/man3/ctime.3 b/man3/ctime.3
--- a/man3/ctime.3 2025-06-18 16:14:51.847871469 -0400
+++ b/man3/ctime.3 2025-06-18 16:25:22.406139771 -0400
@@ -374,7 +374,8 @@ POSIX.1-2001.
POSIX.1-2001.
Marked obsolete in POSIX.1-2008 (recommending
.BR strftime (3)).
-.SH NOTES
+.SH CAVEATS
+.SS Thread safety
The four functions
.BR asctime (),
.BR ctime (),
@@ -403,7 +404,6 @@ a broken-down time structure and an arra
Execution of any of the functions may overwrite the information returned
in either of these objects by any of the other functions."
This can occur in the glibc implementation.
-.SH CAVEATS
.SS mktime()
.I (time_t) \-1
can represent a valid time

View File

@ -0,0 +1,44 @@
From f1016b60769174da8e396e30fd25f58bb58d4232 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Wed, 28 Aug 2024 13:01:56 +0200
Subject: [PATCH] dlinfo.3: Document the RTLD_DI_PHDR request
First added in glibc 2.36, backported upstream to glibc 2.34,
so mention 2.34.1 for the first version.
Signed-off-by: Florian Weimer <fweimer@redhat.com>
Message-ID: <87o75chpwb.fsf@oldenburg.str.redhat.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
---
man/man3/dlinfo.3 | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/man3/dlinfo.3 b/man3/dlinfo.3
index bc331dc..a77e514 100644
--- a/man3/dlinfo.3
+++ b/man3/dlinfo.3
@@ -194,10 +194,23 @@ If this object does not define a PT_TLS segment,
or if the calling thread has not allocated a block for it,
NULL is placed in
.IR *info .
+.TP
+.BR RTLD_DI_PHDR " (\fIconst ElfW(Phdr *)\fP, since glibc 2.34.1)"
+.\" glibc commit d056c212130280c0a54d9a4f72170ec621b70ce5 (2.36)
+.\" glibc commit 28ea43f8d64f0dd1f2de75525157730e1532e600 (2.35.1)
+.\" glibc commit 91c2e6c3db44297bf4cb3a2e3c40236c5b6a0b23 (2.34.1)
+Obtain the address of this shared object's program header and place it
+in
+.IR *info .
+This
+.B dlinfo
+call returns the number of program headers in the shared object.
.SH RETURN VALUE
On success,
.BR dlinfo ()
-returns 0.
+returns 0
+(if not specified explicitly),
+or a positive value corresponding to the request.
On failure, it returns \-1; the cause of the error can be diagnosed using
.BR dlerror (3).
.SH ATTRIBUTES

View File

@ -0,0 +1,76 @@
From 9fdca71e4aba3605caa88b0c9eff3dc2c3f6fcfe Mon Sep 17 00:00:00 2001
From: DJ Delorie <dj@redhat.com>
Date: Thu, 29 Aug 2024 21:10:32 -0400
Subject: [PATCH] ctime.3: CAVEATS: Add note about tm_isdst handling in
mktime(3)
Handling of "invalid" values for tm_isdst is not clearly specified
in any standard, and implementations vary as to how they react when you
(for example) pass tm_isdst=1 at a time when DST is not in effect.
Add a note about this, and a suggestion for a workaround.
I go into further detail about this in the link below.
Link: <https://www.redhat.com/en/blog/brief-history-mktime>
Cc: Paul Eggert <eggert@cs.ucla.edu>
Cc: Carlos O'Donell <carlos@redhat.com>
Signed-off-by: DJ Delorie <dj@redhat.com>
Message-ID: <xncylqiznb.fsf@greed.delorie.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
---
man/man3/ctime.3 | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/man/man3/ctime.3 b/man/man3/ctime.3
index 0ad2b530f..53abab6d9 100644
--- a/man3/ctime.3
+++ b/man3/ctime.3
@@ -427,6 +427,45 @@ one must use the
.I tm->tm_wday
field.
See the example program in EXAMPLES.
+.P
+The handling of a non-negative
+.I tm_isdst
+in
+.BR mktime ()
+is poorly specified,
+and passing a value that is incorrect for the time specified
+yields unspecified results.
+Since
+.BR mktime ()
+is one of the few functions that knows when DST is in effect,
+providing a correct value may be difficult.
+One workaround for this is to call
+.BR mktime ()
+twice,
+once with
+.I tm_isdst
+set to zero,
+and once with
+.I tm_isdst
+set to a positive value,
+and discarding the results from the call that changes it.
+If neither call changes
+.I tm_isdst
+then the time specified probably happens during a fall-back period
+where DST begins or ends,
+and both results are valid
+but represent two different times.
+If both calls change it, that could indicate a fall-forward transition,
+or some other reason why the time specified does not exist.
+.P
+The specification of time zones and daylight saving time
+are up to regional governments, change often,
+and may include discontinuities beyond
+.IR mktime 's
+ability to document a result.
+For example, a change in the timezone definition
+may cause a clock time to be repeated or skipped
+without a corresponding DST change.
.SH EXAMPLES
The following shell session shows sample runs of the program:
.P
--
2.46.1

View File

@ -0,0 +1,162 @@
commit bd576aaf5fce40100133c1d48c02eacbf25594c8
Author: Alejandro Colomar <alx@kernel.org>
Date: Sat Aug 24 00:51:55 2024 +0200
ctime.3: EXAMPLES: Document how to detect invalid or ambiguous times
This example documents how to detect some corner cases of mktime(3),
such as DST transitions and other jumps in the calendar.
Link: <https://www.redhat.com/en/blog/brief-history-mktime>
Cc: DJ Delorie <dj@redhat.com>
Cc: Carlos O'Donell <carlos@redhat.com>
Cc: Paul Eggert <eggert@cs.ucla.edu>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
diff --git a/man3/ctime.3 b/man/man3/ctime.3
index 53abab6d9..acd6f1565 100644
--- a/man3/ctime.3
+++ b/man3/ctime.3
@@ -467,6 +467,14 @@ For example, a change in the timezone definition
may cause a clock time to be repeated or skipped
without a corresponding DST change.
.SH EXAMPLES
+The program below defines a wrapper that
+allows detecting invalid and ambiguous times,
+with
+.B EINVAL
+and
+.BR ENOTUNIQ ,
+respectively.
+.P
The following shell session shows sample runs of the program:
.P
.in +4n
@@ -482,6 +490,7 @@ $
.RB $\~ "./a.out 2024 08 23 00 17 53 \-1" ;
1724365073
.RB $\~ "./a.out 2024 08 23 00 17 53 0" ;
+a.out: my_mktime: Invalid argument
1724368673
.RB $\~ "./a.out 2024 08 23 00 17 53 1" ;
1724365073
@@ -491,12 +500,15 @@ $
.RB $\~ "./a.out 2024 02 23 00 17 53 0" ;
1708643873
.RB $\~ "./a.out 2024 02 23 00 17 53 1" ;
+a.out: my_mktime: Invalid argument
1708640273
$
.RB $\~ "./a.out 2023 03 26 02 17 53 \-1" ;
+a.out: my_mktime: Invalid argument
1679793473
$
.RB $\~ "./a.out 2023 10 29 02 17 53 \-1" ;
+a.out: my_mktime: Name not unique on network
1698542273
.RB $\~ "./a.out 2023 10 29 02 17 53 0" ;
1698542273
@@ -504,6 +516,7 @@ $
1698538673
$
.RB $\~ "./a.out 2023 02 29 12 00 00 \-1" ;
+a.out: my_mktime: Invalid argument
1677668400
.EE
.SS Program source: mktime.c
@@ -511,13 +524,17 @@ $
.\" SRC BEGIN (mktime.c)
.EX
#include <err.h>
+#include <errno.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <time.h>
\&
#define is_signed(T) ((T) \-1 < 1)
\&
+time_t my_mktime(struct tm *tp);
+\&
int
main(int argc, char *argv[])
{
@@ -539,10 +556,13 @@ main(int argc, char *argv[])
tm.tm_sec = atoi(*p++);
tm.tm_isdst = atoi(*p++);
\&
+ errno = 0;
tm.tm_wday = \-1;
- t = mktime(&tm);
+ t = my_mktime(&tm);
if (tm.tm_wday == \-1)
err(EXIT_FAILURE, "mktime");
+ if (errno == EINVAL || errno == ENOTUNIQ)
+ warn("my_mktime");
\&
if (is_signed(time_t))
printf("%jd\[rs]n", (intmax_t) t);
@@ -551,6 +571,62 @@ main(int argc, char *argv[])
\&
exit(EXIT_SUCCESS);
}
+\&
+time_t
+my_mktime(struct tm *tp)
+{
+ int e, isdst;
+ time_t t;
+ struct tm tm;
+ unsigned char wday[sizeof(tp\->tm_wday)];
+\&
+ e = errno;
+\&
+ tm = *tp;
+ isdst = tp\->tm_isdst;
+\&
+ memcpy(wday, &tp\->tm_wday, sizeof(wday));
+ tp\->tm_wday = \-1;
+ t = mktime(tp);
+ if (tp\->tm_wday == \-1) {
+ memcpy(&tp\->tm_wday, wday, sizeof(wday));
+ return \-1;
+ }
+\&
+ if (isdst == \-1)
+ tm.tm_isdst = tp\->tm_isdst;
+\&
+ if ( tm.tm_sec != tp\->tm_sec
+ || tm.tm_min != tp\->tm_min
+ || tm.tm_hour != tp\->tm_hour
+ || tm.tm_mday != tp\->tm_mday
+ || tm.tm_mon != tp\->tm_mon
+ || tm.tm_year != tp\->tm_year
+ || tm.tm_isdst != tp\->tm_isdst)
+ {
+ errno = EINVAL;
+ return t;
+ }
+\&
+ if (isdst != \-1)
+ goto out;
+\&
+ tm = *tp;
+ tm.tm_isdst = !tm.tm_isdst;
+\&
+ tm.tm_wday = \-1;
+ mktime(&tm);
+ if (tm.tm_wday == \-1)
+ goto out;
+\&
+ if (tm.tm_isdst != tp\->tm_isdst) {
+ errno = ENOTUNIQ;
+ return t;
+ }
+out:
+ errno = e;
+ return t;
+}
.EE
.\" SRC END
.SH SEE ALSO

View File

@ -0,0 +1,190 @@
Sources for rtas.2 and swapcontext.2 come from this Fedora man-pages commit:
commit e7ba749ed5143c2cbe8b65ecfb55cf4dda6424cc (HEAD, tag: man-pages-3_00-1_fc10)
Author: Ivana Varekova <varekova@fedoraproject.org>
Date: Wed Jun 18 10:26:46 2008 +0000
- update to 3.00
- source files changes
Source for con.saver.8 comes from this Fedora man-pages commit:
commit e12ffa774d7fae2e6800eb8cbbad584984451661 (HEAD, tag: man-pages-2_55-2_fc8)
Author: Štěpán Kasal <kasal@fedoraproject.org>
Date: Wed Jun 20 13:33:55 2007 +0000
- Add man-suid-bins.tar.bz2 and uuname.1 to document suid binaries
(submitted through bug #196352).
- Add man-pages-2.51-sched_setaffinity.patch, fixing the prototypes.
- Remove sccs-related man pages.
- Add man-pages-2.55-syscalls-2.6.9.patch, updating syscalls.2 to kernel
version 2.6.9.
- Add man-pages-2.55-clone2.patch; s/clone2/__&/, clone2 is not exported.
- Add man-pages-2.55-signal.patch; SIGRTMIN is not constant.
diff -Nrup a/man2/rtas.2 b/man2/rtas.2
--- a/man2/rtas.2 1969-12-31 19:00:00.000000000 -0500
+++ b/man2/rtas.2 2025-08-07 13:39:08.050815165 -0400
@@ -0,0 +1,61 @@
+.\" Copyright (C) 2004 IBM Corporation
+.\" This file is distributed according to the GNU General Public License.
+.\" See the file COPYING in the top level source directory for details.
+.\"
+.\" This page documents the differences between the low-level kernel system call interface .\" and that made available to applications by glibc. Portable applications should always .\" use the official library interface.
+.\"
+.de Sh \" Subsection
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Ip \" List item
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.TH "RTAS" 2
+.SH NAME
+rtas \- Allows userspace to call RTAS (Run Time Abstraction Services)
+.SH "SYNOPSIS"
+.ad l
+.hy 0
+.HP 17
+int\ \fBppc_rtas\fR\ (struct rtas_args\ \fI*uargs\fR);
+.ad
+.hy
+
+.SH "DESCRIPTION"
+\fBppc_rtas\fR enables userspace manipulation of the RunTime Abstraction Services (RTAS). RTAS provides for a portable method of access and setting system information. For example, you could gather information on various system sensors and set poweron values. RTAS is accessed via the /proc entry called "rtas". Manipulations on RTAS are implemented via command line arguments on /proc/rtas.
+The values for \fIuargs\fR vary greatly.
+For more information, see the \fIview/arch/ppcKconfig\fR file.
+
+.SH "RETURN VALUE"
+
+.PP
+\fBrtas\fR returns 0 on success; otherwise it returns one of the errors listed in the "Errors" section.
+
+.SH "ERRORS"
+
+.TP
+-EPERM
+User does not have CAP_SYS_ADMIN capabilities.
+
+.TP
+-EFAULT
+Problem copying \fIuargs\fR values to/from user space.
+
+.TP
+-EINVAL
+Either number of \fIuargs\fR passed in too large or size of \fIuargs\fR array too large.
+
+.SH AUTHOR
+Niki Rahimi.
diff -Nrup a/man2/swapcontext.2 b/man2/swapcontext.2
--- a/man2/swapcontext.2 1969-12-31 19:00:00.000000000 -0500
+++ b/man2/swapcontext.2 2025-08-07 13:39:08.050995683 -0400
@@ -0,0 +1,63 @@
+.\" Copyright (C) 2004 IBM Corporation
+.\" This file is distributed according to the GNU General Public License.
+.\" See the file COPYING in the top level source directory for details.
+.\"
+
+.de Sh \" Subsection
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Ip \" List item
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.TH "SWAPCONTEXT" 2 "2004-March-12" "Linux 2.6" "Linux 2.6 Programmer's Guide"
+.SH NAME
+swapcontext \- Swap out old context with new context
+.SH "SYNOPSIS"
+.ad l
+.hy 0
+.HP 21
+int\ \fBsys_swapcontext\fR\ (struct\ ucontext\ \fI*old_ctx\fR, struct\ ucontext\ \fI*new_ctx\fR, int\ \fIr5\fR, int\ \fIr6\fR, int\ \fIr7\fR, int\ \fIr8\fR, struct\ pt_regs\ \fI*regs\fR);
+.ad
+.hy
+
+.SH "DESCRIPTION"
+
+.PP
+\fBswapcontext\fR swaps out context \fIold_ctx\fR with new context \fInew_ctx\fR. The \fIint r#\fR values have no place in the system call functionality. The \fIregs\fR value indicates the current user register values from the user stack.
+
+.SH "RETURN VALUE"
+
+.PP
+\fBswapcontext\fR returns 0 on success; otherwise, \fBswapcontext\fR returns one of the errors listed in the "Errors" section.
+
+.SH "ERRORS"
+
+.TP
+-EFAULT
+\fIswapcontext\fR could not verify that the memory area pointed to by \fIold_ctx\fR or \fInew_ctx\fR was accessible for the operation.
+
+.TP
+-SIGSEGV
+A fault occurred when the context was being copied into the kernel's image of the user's registers. The should only occur in an out-of-memory situation.
+
+.SH "SEE ALSO"
+.BR getcontext(2),
+.BR sigaction(2),
+.BR sigaltstack(2),
+.BR sigprocmask(2)
+\fB\fR
+
+.SH AUTHOR
+Niki Rahimi
diff -Nrup a/man8/cons.saver.8 b/man8/cons.saver.8
--- a/man8/cons.saver.8 1969-12-31 19:00:00.000000000 -0500
+++ b/man8/cons.saver.8 2025-08-07 13:39:22.408790338 -0400
@@ -0,0 +1,32 @@
+.\" This file is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+.\" the GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this file; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+.\" MA 02111-1307 USA
+.\"
+.\" HISTORY:
+.\" 2006-05-16, created by Rodrigo Rubira Branco <rrbranco@br.ibm.com>
+.TH cons.saver 8 "May 16, 2006" Linux "User Manuals"
+.SH NAME
+cons.saver \- general-purpose Linux console screen save and restore server
+.SH SYNOPSIS
+.nf
+.fam C
+cons.saver \fITTY\fP
+.fam T
+.fi
+.SH DESCRIPTION
+.TP
+Invoke this helper program with the Ctrl-o key combination to save and restore the user session on the screen.
+.SH OPTIONS
+cons.saver takes only one argument, the \fITTY\fP \fINAME\fP from which the system will save and restore.
+.SH SECURITY
+Cons.saver does not need to be invoked by root. It only needs read and write access to /dev/vcsa*, which is a priviledged operation. You should create an unprivileged user, make cons.saver setuid to that user, and assure that all the vcsa* are owned by that user too.
+.SH AUTHOR
+Manpage written by Rodrigo Rubira Branco <rrbranco@br.ibm.com>
+.SH SEE ALSO
+\fBmc\fP(1), \fBmcserv\fP(8)

View File

@ -1,21 +1,26 @@
%global posix_version 2017
%global posix_release a
%global posix_name man-pages-posix-%{posix_version}
%global posix_name_rel %{posix_name}-%{posix_release}
%global additional_version 20140218
%global additional_name man-pages-additional-%{additional_version}
Summary: Linux kernel and C library user-space interface documentation
Name: man-pages
Version: 6.04
Release: 1%{?dist}
License: GPL+ and GPLv2+ and BSD and MIT and Copyright only and IEEE
Release: 7%{?dist}
# List of licenses with examples of man-pages using them
# BSD-2-Clause: man-pages/man5/elf.5
# BSD-3-Clause: man-pages/man3/list.3
# BSD-4.3TAHOE: man-pages/man5/resolv.conf.5
# BSD-4-Clause-UC: man-pages/man2/accept.2
# GPL-1.0-or-later: man-pages/man1/ldd.1
# GPL-2.0-only: man-pages/man2/fallocate.2
# GPL-2.0-or-later: man-pages/man1/getent.1
# LicenseRef-Fedora-Public-Domain: man-pages/man2/nfsservctl.2
# LicenseRef-Fedora-UltraPermissive: man-pages/man2/futex.2
# Linux-man-pages-1-para: man-pages/man2/getcpu.2
# Linux-man-pages-copyleft: man-pages/man2/chdir.2
# Linux-man-pages-copyleft-2-para: man-pages/man2/move_pages.2
# Linux-man-pages-copyleft-var: man-pages/man2/get_mempolicy.2
# MIT: man-pages/man3/program_invocation_name.3
# Spencer-94: man-pages/man7/regex.7
License: BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-Fedora-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
URL: http://www.kernel.org/doc/man-pages/
Source: http://www.kernel.org/pub/linux/docs/man-pages/man-pages-%{version}.tar.xz
# POSIX man pages
Source1: http://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix/%{posix_name_rel}.tar.xz
# additional man-pages, the source tarball is fedora/rhel only
Source2: %{additional_name}.tar.xz
BuildRequires: make
Requires(post): %{_sbindir}/update-alternatives
@ -35,23 +40,42 @@ BuildArch: noarch
## Patches ##
# POSIX man pages
# Regular man pages
# resolves: #650985
# https://bugzilla.kernel.org/show_bug.cgi?id=53781
Patch21: man-pages-3.42-close.patch
# Upstream commit: https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/commit/?id=f1016b60769174da8e396e30fd25f58bb58d4232
# Resolves: RHEL-53953
Patch22: 0001-dlinfo.3-Document-the-RTLD_DI_PHDR-request.patch
# Upstream patches to provide more info on mktime().
# Resolves: RHEL-58342
Patch23: 0000-ctime.3-Document-how-to-check-errors-from-mktime.patch
Patch24: 0001-ctime.3-Move-NOTES-to-a-subsection-within-CAVEATS.patch
Patch25: 0002-ctime.3-CAVEATS-Add-note-about-tm_isdst-handling-in-.patch
Patch26: 0003-ctime.3-EXAMPLES-Document-how-to-detect-invalid-or-ambiguous-times.patch
# Upstream patch providing sched(7) corrections/clarifications
Patch27: 0000-sched.7-Clarifications-corrections.patch
# Add rtas.2, swapcontext.2 and cons.saver.8 man pages
Patch28: additional-man-pages.patch
%description
A large collection of manual pages from the Linux Documentation Project (LDP).
%prep
%setup -q -a 1 -a 2
%setup -q
%patch21 -p1
# rename posix README so we don't have conflict
mv %{posix_name}/README %{posix_name}/%{posix_name_rel}.README
%patch -p1 -P 21
%patch -p1 -P 22
%patch -p1 -P 23
%patch -p1 -P 24
%patch -p1 -P 25
%patch -p1 -P 26
%patch -p1 -P 27
%patch -p1 -P 28
## Remove man pages we are not going to use ##
@ -64,9 +88,6 @@ rm man3/{db,btree,dbopen,hash,mpool,recno}.3
# we are not using SystemV anymore
rm man7/boot.7
# we do not have sccs (#203302)
rm %{posix_name}/man1p/{admin,delta,get,prs,rmdel,sact,sccs,unget,val,what}.1p
# remove man pages deprecated by libxcrypt (#1610307)
rm man3/crypt{,_r}.3
@ -75,12 +96,6 @@ rm man3/crypt{,_r}.3
%install
make install prefix=/usr DESTDIR=$RPM_BUILD_ROOT
pushd %{posix_name}
make install prefix=/usr DESTDIR=$RPM_BUILD_ROOT
popd
pushd %{additional_name}
make install prefix=/usr DESTDIR=$RPM_BUILD_ROOT
popd
# rename files for alternative usage
mv %{buildroot}%{_mandir}/man7/man.7 %{buildroot}%{_mandir}/man7/man.%{name}.7
@ -109,11 +124,36 @@ fi
%files
%doc README Changes
%doc %{posix_name}/POSIX-COPYRIGHT %{posix_name}/%{posix_name_rel}.{README,Announce}
%ghost %{_mandir}/man7/man.7*
%{_mandir}/man*/*
%changelog
* Mon Aug 18 2025 Patsy Griffin <patsy@redhat.com> - 6.04-7
- Break up man-pages-additional-20140218.tar.xz
- Add rtas.2, swapcontext.2 and cons.saver.8 man pages as a patch.
Resolves: RHEL-101596
* Fri Jul 25 2025 Patsy Griffin <patsy@redhat.com> - 6.04-6
- Remove POSIX man-pages to comply with licensing guidelines.
Resolves: RHEL-101595
* Fri Jul 11 2025 Patsy Griffin <patsy@redhat.com> - 6.04-5
- sched(7): Mention autogroup disabled behavior.
Resolves: RHEL-67690
* Wed Jun 18 2025 Patsy Griffin <patsy@redhat.com> - 6.04-4
- Activate previously added patch to improve mktime documentation and
add 3 related upstream patches including an example.
Related: RHEL-58342
* Tue Oct 01 2024 Lukas Javorsky <ljavorsk@redhat.com> - 6.04-3
- Add note about tm_isdst handling in mktime(3)
- Resolves: RHEL-58342
* Fri Sep 13 2024 Lukas Javorsky <ljavorsk@redhat.com> - 6.04-2
- Add RTLD_DI_PHDR to dlinfo(3)
- Resolves: RHEL-53953
* Thu Jul 13 2023 Lukas Javorsky <ljavorsk@redhat.com> - 6.04-1
- Rebase to 6.04 version per request from RHIVOS team
- Resolves: RHEL-683