Blame SPECS/man-pages-4.15-aarch64-syscalls.patch

Packit c76492
From 1cb64d264cb92d55cfa2b6d3ea5ebc1adca7444f Mon Sep 17 00:00:00 2001
Packit c76492
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com>
Packit c76492
Date: Fri, 27 Jul 2018 17:27:24 +0200
Packit c76492
Subject: [PATCH 5/5] remove syscalls deprecated on aarch64
Packit c76492
Packit c76492
---
Packit c76492
 man2/_sysctl.2      |   1 -
Packit c76492
 man2/access.2       |   5 +
Packit c76492
 man2/alarm.2        | 105 --------------
Packit c76492
 man2/bdflush.2      | 133 -----------------
Packit c76492
 man2/chmod.2        |   5 +
Packit c76492
 man2/chown.2        |   7 +
Packit c76492
 man2/clone.2        |  21 +++
Packit c76492
 man2/dup.2          |   7 +
Packit c76492
 man2/epoll_create.2 |   5 +
Packit c76492
 man2/epoll_wait.2   |   5 +
Packit c76492
 man2/eventfd.2      |   5 +
Packit c76492
 man2/fork.2         | 337 ------------------------------------------
Packit c76492
 man2/futimesat.2    | 142 ------------------
Packit c76492
 man2/getdents.2     |   7 +
Packit c76492
 man2/inotify_init.2 |   5 +
Packit c76492
 man2/link.2         |   5 +
Packit c76492
 man2/mkdir.2        |   5 +
Packit c76492
 man2/mknod.2        |   5 +
Packit c76492
 man2/open.2         |   7 +
Packit c76492
 man2/pause.2        |  72 ---------
Packit c76492
 man2/pipe.2         |   5 +
Packit c76492
 man2/poll.2         |   5 +
Packit c76492
 man2/readlink.2     |   5 +
Packit c76492
 man2/recv.2         |   7 +
Packit c76492
 man2/rename.2       |   5 +
Packit c76492
 man2/rmdir.2        | 150 -------------------
Packit c76492
 man2/select.2       |   5 +
Packit c76492
 man2/send.2         |   7 +
Packit c76492
 man2/setpgid.2      |   5 +
Packit c76492
 man2/signalfd.2     |   5 +
Packit c76492
 man2/symlink.2      |   5 +
Packit c76492
 man2/sysctl.2       | 190 ------------------------
Packit c76492
 man2/time.2         | 140 ------------------
Packit c76492
 man2/umount.2       |   5 +
Packit c76492
 man2/unlink.2       |   5 +
Packit c76492
 man2/uselib.2       | 138 ------------------
Packit c76492
 man2/ustat.2        | 127 ----------------
Packit c76492
 man2/utime.2        |   9 +-
Packit c76492
 man2/vfork.2        | 346 --------------------------------------------
Packit c76492
 man2/wait4.2        |   7 +
Packit c76492
 40 files changed, 171 insertions(+), 1884 deletions(-)
Packit c76492
 delete mode 100644 man2/_sysctl.2
Packit c76492
 delete mode 100644 man2/alarm.2
Packit c76492
 delete mode 100644 man2/bdflush.2
Packit c76492
 delete mode 100644 man2/fork.2
Packit c76492
 delete mode 100644 man2/futimesat.2
Packit c76492
 delete mode 100644 man2/pause.2
Packit c76492
 delete mode 100644 man2/rmdir.2
Packit c76492
 delete mode 100644 man2/sysctl.2
Packit c76492
 delete mode 100644 man2/time.2
Packit c76492
 delete mode 100644 man2/uselib.2
Packit c76492
 delete mode 100644 man2/ustat.2
Packit c76492
 delete mode 100644 man2/vfork.2
Packit c76492
Packit c76492
diff --git a/man2/_sysctl.2 b/man2/_sysctl.2
Packit c76492
deleted file mode 100644
Packit c76492
index 9e14d4b..0000000
Packit c76492
--- a/man2/_sysctl.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1 +0,0 @@
Packit c76492
-.so man2/sysctl.2
Packit c76492
diff --git a/man2/access.2 b/man2/access.2
Packit c76492
index 2d194b5..9d8f444 100644
Packit c76492
--- a/man2/access.2
Packit c76492
+++ b/man2/access.2
Packit c76492
@@ -76,6 +76,11 @@ _ATFILE_SOURCE
Packit c76492
 .PD
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR access ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR faccessat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR access ()
Packit c76492
 checks whether the calling process can access the file
Packit c76492
 .IR pathname .
Packit c76492
 If
Packit c76492
diff --git a/man2/alarm.2 b/man2/alarm.2
Packit c76492
deleted file mode 100644
Packit c76492
index 43d7664..0000000
Packit c76492
--- a/man2/alarm.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,105 +0,0 @@
Packit c76492
-.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
Packit c76492
-.\"             and Copyright (C) 1993 Michael Haardt, Ian Jackson.
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" Modified Wed Jul 21 19:42:57 1993 by Rik Faith <faith@cs.unc.edu>
Packit c76492
-.\" Modified Sun Jul 21 21:25:26 1996 by Andries Brouwer <aeb@cwi.nl>
Packit c76492
-.\" Modified Wed Nov  6 03:46:05 1996 by Eric S. Raymond <esr@thyrsus.com>
Packit c76492
-.\"
Packit c76492
-.TH ALARM 2 2017-05-03 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-alarm \- set an alarm clock for delivery of a signal
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.nf
Packit c76492
-.B #include <unistd.h>
Packit c76492
-.PP
Packit c76492
-.BI "unsigned int alarm(unsigned int " seconds );
Packit c76492
-.fi
Packit c76492
-.SH DESCRIPTION
Packit c76492
-.BR alarm ()
Packit c76492
-arranges for a
Packit c76492
-.B SIGALRM
Packit c76492
-signal to be delivered to the calling process in
Packit c76492
-.I seconds
Packit c76492
-seconds.
Packit c76492
-.PP
Packit c76492
-If
Packit c76492
-.I seconds
Packit c76492
-is zero, any pending alarm is canceled.
Packit c76492
-.PP
Packit c76492
-In any event any previously set
Packit c76492
-.BR alarm ()
Packit c76492
-is canceled.
Packit c76492
-.SH RETURN VALUE
Packit c76492
-.BR alarm ()
Packit c76492
-returns the number of seconds remaining until any previously scheduled
Packit c76492
-alarm was due to be delivered, or zero if there was no previously
Packit c76492
-scheduled alarm.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
Packit c76492
-.SH NOTES
Packit c76492
-.BR alarm ()
Packit c76492
-and
Packit c76492
-.BR setitimer (2)
Packit c76492
-share the same timer; calls to one will interfere with use of the
Packit c76492
-other.
Packit c76492
-.PP
Packit c76492
-Alarms created by
Packit c76492
-.BR alarm ()
Packit c76492
-are preserved across
Packit c76492
-.BR execve (2)
Packit c76492
-and are not inherited by children created via
Packit c76492
-.BR fork (2).
Packit c76492
-.PP
Packit c76492
-.BR sleep (3)
Packit c76492
-may be implemented using
Packit c76492
-.BR SIGALRM ;
Packit c76492
-mixing calls to
Packit c76492
-.BR alarm ()
Packit c76492
-and
Packit c76492
-.BR sleep (3)
Packit c76492
-is a bad idea.
Packit c76492
-.PP
Packit c76492
-Scheduling delays can, as ever, cause the execution of the process to
Packit c76492
-be delayed by an arbitrary amount of time.
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR gettimeofday (2),
Packit c76492
-.BR pause (2),
Packit c76492
-.BR select (2),
Packit c76492
-.BR setitimer (2),
Packit c76492
-.BR sigaction (2),
Packit c76492
-.BR signal (2),
Packit c76492
-.BR timer_create (2),
Packit c76492
-.BR timerfd_create (2),
Packit c76492
-.BR sleep (3),
Packit c76492
-.BR time (7)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/bdflush.2 b/man2/bdflush.2
Packit c76492
deleted file mode 100644
Packit c76492
index ac0df3e..0000000
Packit c76492
--- a/man2/bdflush.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,133 +0,0 @@
Packit c76492
-.\" Copyright (c) 1995 Michael Chastain (mec@shell.portal.com), 15 April 1995.
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
Packit c76492
-.\" This is free documentation; you can redistribute it and/or
Packit c76492
-.\" modify it under the terms of the GNU General Public License as
Packit c76492
-.\" published by the Free Software Foundation; either version 2 of
Packit c76492
-.\" the License, or (at your option) any later version.
Packit c76492
-.\"
Packit c76492
-.\" The GNU General Public License's references to "object code"
Packit c76492
-.\" and "executables" are to be interpreted as the output of any
Packit c76492
-.\" document formatting or typesetting system, including
Packit c76492
-.\" intermediate and printed output.
Packit c76492
-.\"
Packit c76492
-.\" This manual is distributed in the hope that it will be useful,
Packit c76492
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit c76492
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit c76492
-.\" GNU General Public License for more details.
Packit c76492
-.\"
Packit c76492
-.\" You should have received a copy of the GNU General Public
Packit c76492
-.\" License along with this manual; if not, see
Packit c76492
-.\" <http://www.gnu.org/licenses/>.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
Packit c76492
-.\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
Packit c76492
-.\"
Packit c76492
-.TH BDFLUSH 2 2016-10-08 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-bdflush \- start, flush, or tune buffer-dirty-flush daemon
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.nf
Packit c76492
-.B #include <sys/kdaemon.h>
Packit c76492
-.PP
Packit c76492
-.BI "int bdflush(int "  func ", long *" address );
Packit c76492
-.BI "int bdflush(int "  func ", long " data );
Packit c76492
-.fi
Packit c76492
-.SH DESCRIPTION
Packit c76492
-.IR Note :
Packit c76492
-Since Linux 2.6,
Packit c76492
-.\" As noted in a changes in the 2.5.12 source
Packit c76492
-this system call is deprecated and does nothing.
Packit c76492
-It is likely to disappear altogether in a future kernel release.
Packit c76492
-Nowadays, the task performed by
Packit c76492
-.BR bdflush ()
Packit c76492
-is handled by the kernel
Packit c76492
-.I pdflush
Packit c76492
-thread.
Packit c76492
-.PP
Packit c76492
-.BR bdflush ()
Packit c76492
-starts, flushes, or tunes the buffer-dirty-flush daemon.
Packit c76492
-Only a privileged process (one with the
Packit c76492
-.B CAP_SYS_ADMIN
Packit c76492
-capability) may call
Packit c76492
-.BR bdflush ().
Packit c76492
-.PP
Packit c76492
-If
Packit c76492
-.I func
Packit c76492
-is negative or 0, and no daemon has been started, then
Packit c76492
-.BR bdflush ()
Packit c76492
-enters the daemon code and never returns.
Packit c76492
-.PP
Packit c76492
-If
Packit c76492
-.I func
Packit c76492
-is 1,
Packit c76492
-some dirty buffers are written to disk.
Packit c76492
-.PP
Packit c76492
-If
Packit c76492
-.I func
Packit c76492
-is 2 or more and is even (low bit is 0), then
Packit c76492
-.I address
Packit c76492
-is the address of a long word,
Packit c76492
-and the tuning parameter numbered
Packit c76492
-.RI "(" "func" "\-2)/2"
Packit c76492
-is returned to the caller in that address.
Packit c76492
-.PP
Packit c76492
-If
Packit c76492
-.I func
Packit c76492
-is 3 or more and is odd (low bit is 1), then
Packit c76492
-.I data
Packit c76492
-is a long word,
Packit c76492
-and the kernel sets tuning parameter numbered
Packit c76492
-.RI "(" "func" "\-3)/2"
Packit c76492
-to that value.
Packit c76492
-.PP
Packit c76492
-The set of parameters, their values, and their valid ranges
Packit c76492
-are defined in the Linux kernel source file
Packit c76492
-.IR fs/buffer.c .
Packit c76492
-.SH RETURN VALUE
Packit c76492
-If
Packit c76492
-.I func
Packit c76492
-is negative or 0 and the daemon successfully starts,
Packit c76492
-.BR bdflush ()
Packit c76492
-never returns.
Packit c76492
-Otherwise, the return value is 0 on success and \-1 on failure, with
Packit c76492
-.I errno
Packit c76492
-set to indicate the error.
Packit c76492
-.SH ERRORS
Packit c76492
-.TP
Packit c76492
-.B EBUSY
Packit c76492
-An attempt was made to enter the daemon code after
Packit c76492
-another process has already entered.
Packit c76492
-.TP
Packit c76492
-.B EFAULT
Packit c76492
-.I address
Packit c76492
-points outside your accessible address space.
Packit c76492
-.TP
Packit c76492
-.B EINVAL
Packit c76492
-An attempt was made to read or write an invalid parameter number,
Packit c76492
-or to write an invalid value to a parameter.
Packit c76492
-.TP
Packit c76492
-.B EPERM
Packit c76492
-Caller does not have the
Packit c76492
-.B CAP_SYS_ADMIN
Packit c76492
-capability.
Packit c76492
-.SH VERSIONS
Packit c76492
-Since version 2.23, glibc no longer supports this obsolete system call.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-.BR bdflush ()
Packit c76492
-is Linux-specific and should not be used in programs
Packit c76492
-intended to be portable.
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR sync (1),
Packit c76492
-.BR fsync (2),
Packit c76492
-.BR sync (2)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/chmod.2 b/man2/chmod.2
Packit c76492
index 5c55553..9637954 100644
Packit c76492
--- a/man2/chmod.2
Packit c76492
+++ b/man2/chmod.2
Packit c76492
@@ -91,6 +91,11 @@ _ATFILE_SOURCE
Packit c76492
 .PD
Packit c76492
 .ad
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR chmod ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR fchmodat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
 The
Packit c76492
 .BR chmod ()
Packit c76492
 and
Packit c76492
diff --git a/man2/chown.2 b/man2/chown.2
Packit c76492
index ef358e0..b917e5c 100644
Packit c76492
--- a/man2/chown.2
Packit c76492
+++ b/man2/chown.2
Packit c76492
@@ -83,6 +83,13 @@ _ATFILE_SOURCE
Packit c76492
 .ad
Packit c76492
 .PD
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR chown ()
Packit c76492
+and
Packit c76492
+.BR lchown ()
Packit c76492
+system calls are DEPRECATED, use
Packit c76492
+.BR fchownat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
 These system calls change the owner and group of a file.
Packit c76492
 The
Packit c76492
 .BR chown (),
Packit c76492
diff --git a/man2/clone.2 b/man2/clone.2
Packit c76492
index 20ead6d..62bb4e6 100644
Packit c76492
--- a/man2/clone.2
Packit c76492
+++ b/man2/clone.2
Packit c76492
@@ -1206,6 +1206,27 @@ On i386,
Packit c76492
 .BR clone ()
Packit c76492
 should not be called through vsyscall, but directly through
Packit c76492
 .IR "int $0x80" .
Packit c76492
+
Packit c76492
+.BR clone()
Packit c76492
+replaces
Packit c76492
+.BR fork (2)
Packit c76492
+and
Packit c76492
+.BR vfork (2)
Packit c76492
+system calls.
Packit c76492
+A call to
Packit c76492
+.BR fork (2)
Packit c76492
+is equivalent to a call to
Packit c76492
+.BR clone ()
Packit c76492
+specifying
Packit c76492
+.I flags
Packit c76492
+as just SIGCHLD.
Packit c76492
+A call to
Packit c76492
+.BR vfork (2)
Packit c76492
+is equivalent to calling
Packit c76492
+.BR clone ()
Packit c76492
+with
Packit c76492
+.I flags
Packit c76492
+specified as: CLONE_VM | CLONE_VFORK | SIGCHLD.
Packit c76492
 .SH BUGS
Packit c76492
 GNU C library versions 2.3.4 up to and including 2.24
Packit c76492
 contained a wrapper function for
Packit c76492
diff --git a/man2/dup.2 b/man2/dup.2
Packit c76492
index 1829b5e..6782677 100644
Packit c76492
--- a/man2/dup.2
Packit c76492
+++ b/man2/dup.2
Packit c76492
@@ -51,6 +51,13 @@ dup, dup2, dup3 \- duplicate a file descriptor
Packit c76492
 .BI "int dup3(int " oldfd ", int " newfd ", int " flags );
Packit c76492
 .fi
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR dup2 ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR dup3 ()
Packit c76492
+with
Packit c76492
+.I flags
Packit c76492
+set to 0 instead!!!
Packit c76492
+.PP
Packit c76492
 The
Packit c76492
 .BR dup ()
Packit c76492
 system call creates a copy of the file descriptor
Packit c76492
diff --git a/man2/epoll_create.2 b/man2/epoll_create.2
Packit c76492
index 2bc253d..64143d6 100644
Packit c76492
--- a/man2/epoll_create.2
Packit c76492
+++ b/man2/epoll_create.2
Packit c76492
@@ -33,6 +33,11 @@ epoll_create, epoll_create1 \- open an epoll file descriptor
Packit c76492
 .fi
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR epoll_create ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR epoll_create1 ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR epoll_create ()
Packit c76492
 creates a new
Packit c76492
 .BR epoll (7)
Packit c76492
 instance.
Packit c76492
diff --git a/man2/epoll_wait.2 b/man2/epoll_wait.2
Packit c76492
index 5edf20e..c3793ef 100644
Packit c76492
--- a/man2/epoll_wait.2
Packit c76492
+++ b/man2/epoll_wait.2
Packit c76492
@@ -33,6 +33,11 @@ epoll_wait, epoll_pwait \- wait for an I/O event on an epoll file descriptor
Packit c76492
 .BI "               const sigset_t *" sigmask );
Packit c76492
 .fi
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR epoll_wait ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR epoll_pwait ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
 The
Packit c76492
 .BR epoll_wait ()
Packit c76492
 system call waits for events on the
Packit c76492
diff --git a/man2/eventfd.2 b/man2/eventfd.2
Packit c76492
index de2461f..0d06430 100644
Packit c76492
--- a/man2/eventfd.2
Packit c76492
+++ b/man2/eventfd.2
Packit c76492
@@ -28,6 +28,11 @@ eventfd \- create a file descriptor for event notification
Packit c76492
 .BI "int eventfd(unsigned int " initval ", int " flags );
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR eventfd ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR eventfd2 ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR eventfd ()
Packit c76492
 creates an "eventfd object" that can be used as
Packit c76492
 an event wait/notify mechanism by user-space applications,
Packit c76492
 and by the kernel to notify user-space applications of events.
Packit c76492
diff --git a/man2/fork.2 b/man2/fork.2
Packit c76492
deleted file mode 100644
Packit c76492
index c217a3a..0000000
Packit c76492
--- a/man2/fork.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,337 +0,0 @@
Packit c76492
-.\" Copyright (C) 2006 Michael Kerrisk <mtk.manpages@gmail.com>
Packit c76492
-.\" A few fragments remain from an earlier (1992) page by
Packit c76492
-.\" Drew Eckhardt (drew@cs.colorado.edu),
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" Modified by Michael Haardt (michael@moria.de)
Packit c76492
-.\" Modified Sat Jul 24 13:22:07 1993 by Rik Faith (faith@cs.unc.edu)
Packit c76492
-.\" Modified 21 Aug 1994 by Michael Chastain (mec@shell.portal.com):
Packit c76492
-.\"   Referenced 'clone(2)'.
Packit c76492
-.\" Modified 1995-06-10, 1996-04-18, 1999-11-01, 2000-12-24
Packit c76492
-.\"   by Andries Brouwer (aeb@cwi.nl)
Packit c76492
-.\" Modified, 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
Packit c76492
-.\"     Added notes on capability requirements
Packit c76492
-.\" 2006-09-04, Michael Kerrisk
Packit c76492
-.\"     Greatly expanded, to describe all attributes that differ
Packit c76492
-.\"	parent and child.
Packit c76492
-.\"
Packit c76492
-.TH FORK 2 2017-09-15 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-fork \- create a child process
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.B #include <sys/types.h>
Packit c76492
-.br
Packit c76492
-.B #include <unistd.h>
Packit c76492
-.PP
Packit c76492
-.B pid_t fork(void);
Packit c76492
-.SH DESCRIPTION
Packit c76492
-.BR fork ()
Packit c76492
-creates a new process by duplicating the calling process.
Packit c76492
-The new process is referred to as the
Packit c76492
-.I child
Packit c76492
-process.
Packit c76492
-The calling process is referred to as the
Packit c76492
-.I parent
Packit c76492
-process.
Packit c76492
-.PP
Packit c76492
-The child process and the parent process run in separate memory spaces.
Packit c76492
-At the time of
Packit c76492
-.BR fork ()
Packit c76492
-both memory spaces have the same content.
Packit c76492
-Memory writes, file mappings
Packit c76492
-.RB ( mmap (2)),
Packit c76492
-and unmappings
Packit c76492
-.RB ( munmap (2))
Packit c76492
-performed by one of the processes do not affect the other.
Packit c76492
-.PP
Packit c76492
-The child process is an exact duplicate of the parent
Packit c76492
-process except for the following points:
Packit c76492
-.IP * 3
Packit c76492
-The child has its own unique process ID,
Packit c76492
-and this PID does not match the ID of any existing process group
Packit c76492
-.RB ( setpgid (2))
Packit c76492
-or session.
Packit c76492
-.IP *
Packit c76492
-The child's parent process ID is the same as the parent's process ID.
Packit c76492
-.IP *
Packit c76492
-The child does not inherit its parent's memory locks
Packit c76492
-.RB ( mlock (2),
Packit c76492
-.BR mlockall (2)).
Packit c76492
-.IP *
Packit c76492
-Process resource utilizations
Packit c76492
-.RB ( getrusage (2))
Packit c76492
-and CPU time counters
Packit c76492
-.RB ( times (2))
Packit c76492
-are reset to zero in the child.
Packit c76492
-.IP *
Packit c76492
-The child's set of pending signals is initially empty
Packit c76492
-.RB ( sigpending (2)).
Packit c76492
-.IP *
Packit c76492
-The child does not inherit semaphore adjustments from its parent
Packit c76492
-.RB ( semop (2)).
Packit c76492
-.IP *
Packit c76492
-The child does not inherit process-associated record locks from its parent
Packit c76492
-.RB ( fcntl (2)).
Packit c76492
-(On the other hand, it does inherit
Packit c76492
-.BR fcntl (2)
Packit c76492
-open file description locks and
Packit c76492
-.BR flock (2)
Packit c76492
-locks from its parent.)
Packit c76492
-.IP *
Packit c76492
-The child does not inherit timers from its parent
Packit c76492
-.RB ( setitimer (2),
Packit c76492
-.BR alarm (2),
Packit c76492
-.BR timer_create (2)).
Packit c76492
-.IP *
Packit c76492
-The child does not inherit outstanding asynchronous I/O operations
Packit c76492
-from its parent
Packit c76492
-.RB ( aio_read (3),
Packit c76492
-.BR aio_write (3)),
Packit c76492
-nor does it inherit any asynchronous I/O contexts from its parent (see
Packit c76492
-.BR io_setup (2)).
Packit c76492
-.PP
Packit c76492
-The process attributes in the preceding list are all specified
Packit c76492
-in POSIX.1.
Packit c76492
-The parent and child also differ with respect to the following
Packit c76492
-Linux-specific process attributes:
Packit c76492
-.IP * 3
Packit c76492
-The child does not inherit directory change notifications (dnotify)
Packit c76492
-from its parent
Packit c76492
-(see the description of
Packit c76492
-.B F_NOTIFY
Packit c76492
-in
Packit c76492
-.BR fcntl (2)).
Packit c76492
-.IP *
Packit c76492
-The
Packit c76492
-.BR prctl (2)
Packit c76492
-.B PR_SET_PDEATHSIG
Packit c76492
-setting is reset so that the child does not receive a signal
Packit c76492
-when its parent terminates.
Packit c76492
-.IP *
Packit c76492
-The default timer slack value is set to the parent's
Packit c76492
-current timer slack value.
Packit c76492
-See the description of
Packit c76492
-.BR PR_SET_TIMERSLACK
Packit c76492
-in
Packit c76492
-.BR prctl (2).
Packit c76492
-.IP *
Packit c76492
-Memory mappings that have been marked with the
Packit c76492
-.BR madvise (2)
Packit c76492
-.B MADV_DONTFORK
Packit c76492
-flag are not inherited across a
Packit c76492
-.BR fork ().
Packit c76492
-.IP *
Packit c76492
-Memory in address ranges that have been marked with the
Packit c76492
-.BR madvise (2)
Packit c76492
-.B MADV_WIPEONFORK
Packit c76492
-flag is zeroed in the child after a
Packit c76492
-.BR fork ().
Packit c76492
-(The
Packit c76492
-.B MADV_WIPEONFORK
Packit c76492
-setting remains in place for those address ranges in the child.)
Packit c76492
-.IP *
Packit c76492
-The termination signal of the child is always
Packit c76492
-.B SIGCHLD
Packit c76492
-(see
Packit c76492
-.BR clone (2)).
Packit c76492
-.IP *
Packit c76492
-The port access permission bits set by
Packit c76492
-.BR ioperm (2)
Packit c76492
-are not inherited by the child;
Packit c76492
-the child must turn on any bits that it requires using
Packit c76492
-.BR ioperm (2).
Packit c76492
-.PP
Packit c76492
-Note the following further points:
Packit c76492
-.IP * 3
Packit c76492
-The child process is created with a single thread\(emthe
Packit c76492
-one that called
Packit c76492
-.BR fork ().
Packit c76492
-The entire virtual address space of the parent is replicated in the child,
Packit c76492
-including the states of mutexes, condition variables,
Packit c76492
-and other pthreads objects; the use of
Packit c76492
-.BR pthread_atfork (3)
Packit c76492
-may be helpful for dealing with problems that this can cause.
Packit c76492
-.IP *
Packit c76492
-After a
Packit c76492
-.BR fork ()
Packit c76492
-in a multithreaded program,
Packit c76492
-the child can safely call only async-signal-safe functions (see
Packit c76492
-.BR signal-safety (7))
Packit c76492
-until such time as it calls
Packit c76492
-.BR execve (2).
Packit c76492
-.IP *
Packit c76492
-The child inherits copies of the parent's set of open file descriptors.
Packit c76492
-Each file descriptor in the child refers to the same
Packit c76492
-open file description (see
Packit c76492
-.BR open (2))
Packit c76492
-as the corresponding file descriptor in the parent.
Packit c76492
-This means that the two file descriptors share open file status flags,
Packit c76492
-file offset,
Packit c76492
-and signal-driven I/O attributes (see the description of
Packit c76492
-.B F_SETOWN
Packit c76492
-and
Packit c76492
-.B F_SETSIG
Packit c76492
-in
Packit c76492
-.BR fcntl (2)).
Packit c76492
-.IP *
Packit c76492
-The child inherits copies of the parent's set of open message
Packit c76492
-queue descriptors (see
Packit c76492
-.BR mq_overview (7)).
Packit c76492
-Each file descriptor in the child refers to the same
Packit c76492
-open message queue description
Packit c76492
-as the corresponding file descriptor in the parent.
Packit c76492
-This means that the two file descriptors share the same flags
Packit c76492
-.RI ( mq_flags ).
Packit c76492
-.IP *
Packit c76492
-The child inherits copies of the parent's set of open directory streams (see
Packit c76492
-.BR opendir (3)).
Packit c76492
-POSIX.1 says that the corresponding directory streams
Packit c76492
-in the parent and child
Packit c76492
-.I may
Packit c76492
-share the directory stream positioning;
Packit c76492
-on Linux/glibc they do not.
Packit c76492
-.SH RETURN VALUE
Packit c76492
-On success, the PID of the child process is returned in the parent,
Packit c76492
-and 0 is returned in the child.
Packit c76492
-On failure, \-1 is returned in the parent,
Packit c76492
-no child process is created, and
Packit c76492
-.I errno
Packit c76492
-is set appropriately.
Packit c76492
-.SH ERRORS
Packit c76492
-.TP
Packit c76492
-.B EAGAIN
Packit c76492
-.\" NOTE! The following should match the description in pthread_create(3)
Packit c76492
-A system-imposed limit on the number of threads was encountered.
Packit c76492
-There are a number of limits that may trigger this error:
Packit c76492
-.RS
Packit c76492
-.IP * 3
Packit c76492
-the
Packit c76492
-.BR RLIMIT_NPROC
Packit c76492
-soft resource limit (set via
Packit c76492
-.BR setrlimit (2)),
Packit c76492
-which limits the number of processes and threads for a real user ID,
Packit c76492
-was reached;
Packit c76492
-.IP *
Packit c76492
-the kernel's system-wide limit on the number of processes and threads,
Packit c76492
-.IR /proc/sys/kernel/threads-max ,
Packit c76492
-was reached (see
Packit c76492
-.BR proc (5));
Packit c76492
-.IP *
Packit c76492
-the maximum number of PIDs,
Packit c76492
-.IR /proc/sys/kernel/pid_max ,
Packit c76492
-was reached (see
Packit c76492
-.BR proc (5));
Packit c76492
-or
Packit c76492
-.IP *
Packit c76492
-the PID limit
Packit c76492
-.RI ( pids.max )
Packit c76492
-imposed by the cgroup "process number" (PIDs) controller was reached.
Packit c76492
-.RE
Packit c76492
-.TP
Packit c76492
-.B EAGAIN
Packit c76492
-The caller is operating under the
Packit c76492
-.BR SCHED_DEADLINE
Packit c76492
-scheduling policy and does not have the reset-on-fork flag set.
Packit c76492
-See
Packit c76492
-.BR sched (7).
Packit c76492
-.TP
Packit c76492
-.B ENOMEM
Packit c76492
-.BR fork ()
Packit c76492
-failed to allocate the necessary kernel structures because memory is tight.
Packit c76492
-.TP
Packit c76492
-.B ENOMEM
Packit c76492
-An attempt was made to create a child process in a PID namespace
Packit c76492
-whose "init" process has terminated.
Packit c76492
-See
Packit c76492
-.BR pid_namespaces (7).
Packit c76492
-.TP
Packit c76492
-.B ENOSYS
Packit c76492
-.BR fork ()
Packit c76492
-is not supported on this platform (for example,
Packit c76492
-.\" e.g., arm (optionally), blackfin, c6x, frv, h8300, microblaze, xtensa
Packit c76492
-hardware without a Memory-Management Unit).
Packit c76492
-.TP
Packit c76492
-.BR ERESTARTNOINTR " (since Linux 2.6.17)"
Packit c76492
-.\" commit 4a2c7a7837da1b91468e50426066d988050e4d56
Packit c76492
-System call was interrupted by a signal and will be restarted.
Packit c76492
-(This can be seen only during a trace.)
Packit c76492
-.SH CONFORMING TO
Packit c76492
-POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
Packit c76492
-.SH NOTES
Packit c76492
-.PP
Packit c76492
-Under Linux,
Packit c76492
-.BR fork ()
Packit c76492
-is implemented using copy-on-write pages, so the only penalty that it incurs
Packit c76492
-is the time and memory required to duplicate the parent's page tables,
Packit c76492
-and to create a unique task structure for the child.
Packit c76492
-.SS C library/kernel differences
Packit c76492
-Since version 2.3.3,
Packit c76492
-.\" nptl/sysdeps/unix/sysv/linux/fork.c
Packit c76492
-rather than invoking the kernel's
Packit c76492
-.BR fork ()
Packit c76492
-system call,
Packit c76492
-the glibc
Packit c76492
-.BR fork ()
Packit c76492
-wrapper that is provided as part of the
Packit c76492
-NPTL threading implementation invokes
Packit c76492
-.BR clone (2)
Packit c76492
-with flags that provide the same effect as the traditional system call.
Packit c76492
-(A call to
Packit c76492
-.BR fork ()
Packit c76492
-is equivalent to a call to
Packit c76492
-.BR clone (2)
Packit c76492
-specifying
Packit c76492
-.I flags
Packit c76492
-as just
Packit c76492
-.BR SIGCHLD .)
Packit c76492
-The glibc wrapper invokes any fork handlers that have been
Packit c76492
-established using
Packit c76492
-.BR pthread_atfork (3).
Packit c76492
-.\" and does some magic to ensure that getpid(2) returns the right value.
Packit c76492
-.SH EXAMPLE
Packit c76492
-See
Packit c76492
-.BR pipe (2)
Packit c76492
-and
Packit c76492
-.BR wait (2).
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR clone (2),
Packit c76492
-.BR execve (2),
Packit c76492
-.BR exit (2),
Packit c76492
-.BR setrlimit (2),
Packit c76492
-.BR unshare (2),
Packit c76492
-.BR vfork (2),
Packit c76492
-.BR wait (2),
Packit c76492
-.BR daemon (3),
Packit c76492
-.BR pthread_atfork (3),
Packit c76492
-.BR capabilities (7),
Packit c76492
-.BR credentials (7)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/futimesat.2 b/man2/futimesat.2
Packit c76492
deleted file mode 100644
Packit c76492
index 8991c98..0000000
Packit c76492
--- a/man2/futimesat.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,142 +0,0 @@
Packit c76492
-.\" This manpage is Copyright (C) 2006, Michael Kerrisk
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.TH FUTIMESAT 2 2017-09-15 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-futimesat \- change timestamps of a file relative to a \
Packit c76492
-directory file descriptor
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.nf
Packit c76492
-.B #include <fcntl.h>           /* Definition of AT_* constants */
Packit c76492
-.B #include <sys/time.h>
Packit c76492
-.PP
Packit c76492
-.BI "int futimesat(int " dirfd ", const char *" pathname ,
Packit c76492
-.BI "              const struct timeval " times [2]);
Packit c76492
-.fi
Packit c76492
-.PP
Packit c76492
-.in -4n
Packit c76492
-Feature Test Macro Requirements for glibc (see
Packit c76492
-.BR feature_test_macros (7)):
Packit c76492
-.in
Packit c76492
-.PP
Packit c76492
-.BR futimesat ():
Packit c76492
-_GNU_SOURCE
Packit c76492
-.SH DESCRIPTION
Packit c76492
-This system call is obsolete.
Packit c76492
-Use
Packit c76492
-.BR utimensat (2)
Packit c76492
-instead.
Packit c76492
-.PP
Packit c76492
-The
Packit c76492
-.BR futimesat ()
Packit c76492
-system call operates in exactly the same way as
Packit c76492
-.BR utimes (2),
Packit c76492
-except for the differences described in this manual page.
Packit c76492
-.PP
Packit c76492
-If the pathname given in
Packit c76492
-.I pathname
Packit c76492
-is relative, then it is interpreted relative to the directory
Packit c76492
-referred to by the file descriptor
Packit c76492
-.I dirfd
Packit c76492
-(rather than relative to the current working directory of
Packit c76492
-the calling process, as is done by
Packit c76492
-.BR utimes (2)
Packit c76492
-for a relative pathname).
Packit c76492
-.PP
Packit c76492
-If
Packit c76492
-.I pathname
Packit c76492
-is relative and
Packit c76492
-.I dirfd
Packit c76492
-is the special value
Packit c76492
-.BR AT_FDCWD ,
Packit c76492
-then
Packit c76492
-.I pathname
Packit c76492
-is interpreted relative to the current working
Packit c76492
-directory of the calling process (like
Packit c76492
-.BR utimes (2)).
Packit c76492
-.PP
Packit c76492
-If
Packit c76492
-.I pathname
Packit c76492
-is absolute, then
Packit c76492
-.I dirfd
Packit c76492
-is ignored.
Packit c76492
-.SH RETURN VALUE
Packit c76492
-On success,
Packit c76492
-.BR futimesat ()
Packit c76492
-returns a 0.
Packit c76492
-On error, \-1 is returned and
Packit c76492
-.I errno
Packit c76492
-is set to indicate the error.
Packit c76492
-.SH ERRORS
Packit c76492
-The same errors that occur for
Packit c76492
-.BR utimes (2)
Packit c76492
-can also occur for
Packit c76492
-.BR futimesat ().
Packit c76492
-The following additional errors can occur for
Packit c76492
-.BR futimesat ():
Packit c76492
-.TP
Packit c76492
-.B EBADF
Packit c76492
-.I dirfd
Packit c76492
-is not a valid file descriptor.
Packit c76492
-.TP
Packit c76492
-.B ENOTDIR
Packit c76492
-.I pathname
Packit c76492
-is relative and
Packit c76492
-.I dirfd
Packit c76492
-is a file descriptor referring to a file other than a directory.
Packit c76492
-.SH VERSIONS
Packit c76492
-.BR futimesat ()
Packit c76492
-was added to Linux in kernel 2.6.16;
Packit c76492
-library support was added to glibc in version 2.4.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-This system call is nonstandard.
Packit c76492
-It was implemented from a specification that was proposed for POSIX.1,
Packit c76492
-but that specification was replaced by the one for
Packit c76492
-.BR utimensat (2).
Packit c76492
-.PP
Packit c76492
-A similar system call exists on Solaris.
Packit c76492
-.SH NOTES
Packit c76492
-.SS Glibc notes
Packit c76492
-If
Packit c76492
-.I pathname
Packit c76492
-is NULL, then the glibc
Packit c76492
-.BR futimesat ()
Packit c76492
-wrapper function updates the times for the file referred to by
Packit c76492
-.IR dirfd .
Packit c76492
-.\" The Solaris futimesat() also has this strangeness.
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR stat (2),
Packit c76492
-.BR utimensat (2),
Packit c76492
-.BR utimes (2),
Packit c76492
-.BR futimes (3),
Packit c76492
-.BR path_resolution (7)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/getdents.2 b/man2/getdents.2
Packit c76492
index 73d57cc..0a650fe 100644
Packit c76492
--- a/man2/getdents.2
Packit c76492
+++ b/man2/getdents.2
Packit c76492
@@ -42,6 +42,13 @@ getdents, getdents64 \- get directory entries
Packit c76492
 .IR Note :
Packit c76492
 There are no glibc wrappers for these system calls; see NOTES.
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR getdents ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR getdents64 ()
Packit c76492
+or
Packit c76492
+.BR readdir (3)
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
 These are not the interfaces you are interested in.
Packit c76492
 Look at
Packit c76492
 .BR readdir (3)
Packit c76492
diff --git a/man2/inotify_init.2 b/man2/inotify_init.2
Packit c76492
index cf95d03..b55979e 100644
Packit c76492
--- a/man2/inotify_init.2
Packit c76492
+++ b/man2/inotify_init.2
Packit c76492
@@ -41,6 +41,11 @@ For an overview of the inotify API, see
Packit c76492
 .BR inotify (7).
Packit c76492
 .PP
Packit c76492
 .BR inotify_init ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR inotify_init1 ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR inotify_init ()
Packit c76492
 initializes a new inotify instance and returns a file descriptor associated
Packit c76492
 with a new inotify event queue.
Packit c76492
 .PP
Packit c76492
diff --git a/man2/link.2 b/man2/link.2
Packit c76492
index 0742aed..442115c 100644
Packit c76492
--- a/man2/link.2
Packit c76492
+++ b/man2/link.2
Packit c76492
@@ -65,6 +65,11 @@ _ATFILE_SOURCE
Packit c76492
 .PD
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR link ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR linkat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR link ()
Packit c76492
 creates a new link (also known as a hard link) to an existing file.
Packit c76492
 .PP
Packit c76492
 If
Packit c76492
diff --git a/man2/mkdir.2 b/man2/mkdir.2
Packit c76492
index 28839bd..9a2f151 100644
Packit c76492
--- a/man2/mkdir.2
Packit c76492
+++ b/man2/mkdir.2
Packit c76492
@@ -45,6 +45,11 @@ _ATFILE_SOURCE
Packit c76492
 .PD
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR mkdir ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR mkdirat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR mkdir ()
Packit c76492
 attempts to create a directory named
Packit c76492
 .IR pathname .
Packit c76492
 .PP
Packit c76492
diff --git a/man2/mknod.2 b/man2/mknod.2
Packit c76492
index 82134da..49ef104 100644
Packit c76492
--- a/man2/mknod.2
Packit c76492
+++ b/man2/mknod.2
Packit c76492
@@ -46,6 +46,11 @@ _XOPEN_SOURCE\ >=\ 500
Packit c76492
 .RE
Packit c76492
 .ad
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR mknod ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR mknodat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
 The system call
Packit c76492
 .BR mknod ()
Packit c76492
 creates a filesystem node (file, device special file, or
Packit c76492
diff --git a/man2/open.2 b/man2/open.2
Packit c76492
index 0f9a9e7..2eec9c6 100644
Packit c76492
--- a/man2/open.2
Packit c76492
+++ b/man2/open.2
Packit c76492
@@ -86,6 +86,13 @@ _ATFILE_SOURCE
Packit c76492
 .ad
Packit c76492
 .PD
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR open ()
Packit c76492
+and
Packit c76492
+.BR creat ()
Packit c76492
+system calls are DEPRECATED, use
Packit c76492
+.BR openat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
 The
Packit c76492
 .BR open ()
Packit c76492
 system call opens the file specified by
Packit c76492
diff --git a/man2/pause.2 b/man2/pause.2
Packit c76492
deleted file mode 100644
Packit c76492
index 1a3aa54..0000000
Packit c76492
--- a/man2/pause.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,72 +0,0 @@
Packit c76492
-.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" Modified by Michael Haardt (michael@moria.de)
Packit c76492
-.\" Modified Sat Jul 24 14:48:00 1993 by Rik Faith (faith@cs.unc.edu)
Packit c76492
-.\" Modified 1995 by Mike Battersby (mib@deakin.edu.au)
Packit c76492
-.\" Modified 2000 by aeb, following Michael Kerrisk
Packit c76492
-.\"
Packit c76492
-.TH PAUSE 2 2015-08-08 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-pause \- wait for signal
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.B #include <unistd.h>
Packit c76492
-.PP
Packit c76492
-.B int pause(void);
Packit c76492
-.SH DESCRIPTION
Packit c76492
-.BR pause ()
Packit c76492
-causes the calling process (or thread) to sleep
Packit c76492
-until a signal is delivered that either terminates the process or causes
Packit c76492
-the invocation of a signal-catching function.
Packit c76492
-.SH RETURN VALUE
Packit c76492
-.BR pause ()
Packit c76492
-returns only when a signal was caught and the
Packit c76492
-signal-catching function returned.
Packit c76492
-In this case,
Packit c76492
-.BR pause ()
Packit c76492
-returns \-1, and
Packit c76492
-.I errno
Packit c76492
-is set to
Packit c76492
-.\" .BR ERESTARTNOHAND .
Packit c76492
-.BR EINTR .
Packit c76492
-.SH ERRORS
Packit c76492
-.TP
Packit c76492
-.B EINTR
Packit c76492
-a signal was caught and the signal-catching function returned.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR kill (2),
Packit c76492
-.BR select (2),
Packit c76492
-.BR signal (2),
Packit c76492
-.BR sigsuspend (2)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/pipe.2 b/man2/pipe.2
Packit c76492
index 1f2e565..baffbee 100644
Packit c76492
--- a/man2/pipe.2
Packit c76492
+++ b/man2/pipe.2
Packit c76492
@@ -50,6 +50,11 @@ pipe, pipe2 \- create pipe
Packit c76492
 .fi
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR pipe ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR pipe2 ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR pipe ()
Packit c76492
 creates a pipe, a unidirectional data channel that
Packit c76492
 can be used for interprocess communication.
Packit c76492
 The array
Packit c76492
diff --git a/man2/poll.2 b/man2/poll.2
Packit c76492
index ea4fed9..8c7fb37 100644
Packit c76492
--- a/man2/poll.2
Packit c76492
+++ b/man2/poll.2
Packit c76492
@@ -46,6 +46,11 @@ poll, ppoll \- wait for some event on a file descriptor
Packit c76492
 .fi
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR poll ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR ppoll ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR poll ()
Packit c76492
 performs a similar task to
Packit c76492
 .BR select (2):
Packit c76492
 it waits for one of a set of file descriptors to become ready
Packit c76492
diff --git a/man2/readlink.2 b/man2/readlink.2
Packit c76492
index 8a72a37..9b00999 100644
Packit c76492
--- a/man2/readlink.2
Packit c76492
+++ b/man2/readlink.2
Packit c76492
@@ -86,6 +86,11 @@ _ATFILE_SOURCE
Packit c76492
 .PD
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR readlink ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR readlinkat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR readlink ()
Packit c76492
 places the contents of the symbolic link
Packit c76492
 .I pathname
Packit c76492
 in the buffer
Packit c76492
diff --git a/man2/recv.2 b/man2/recv.2
Packit c76492
index c6d4c86..3400ea7 100644
Packit c76492
--- a/man2/recv.2
Packit c76492
+++ b/man2/recv.2
Packit c76492
@@ -57,6 +57,13 @@ recv, recvfrom, recvmsg \- receive a message from a socket
Packit c76492
 .BI "ssize_t recvmsg(int " sockfd ", struct msghdr *" msg ", int " flags );
Packit c76492
 .fi
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR recv ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR recvfrom ()
Packit c76492
+with a NULL
Packit c76492
+.I src_addr
Packit c76492
+argument!
Packit c76492
+.PP
Packit c76492
 The
Packit c76492
 .BR recv (),
Packit c76492
 .BR recvfrom (),
Packit c76492
diff --git a/man2/rename.2 b/man2/rename.2
Packit c76492
index f8b4991..457e081 100644
Packit c76492
--- a/man2/rename.2
Packit c76492
+++ b/man2/rename.2
Packit c76492
@@ -76,6 +76,11 @@ _ATFILE_SOURCE
Packit c76492
 .PD
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR rename ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR renameat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR rename ()
Packit c76492
 renames a file, moving it between directories if required.
Packit c76492
 Any other hard links to the file (as created using
Packit c76492
 .BR link (2))
Packit c76492
diff --git a/man2/rmdir.2 b/man2/rmdir.2
Packit c76492
deleted file mode 100644
Packit c76492
index 1eff7cd..0000000
Packit c76492
--- a/man2/rmdir.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,150 +0,0 @@
Packit c76492
-.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
Packit c76492
-.\"             and Copyright (C) 1993 Michael Haardt, Ian Jackson.
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
Packit c76492
-.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
Packit c76492
-.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
Packit c76492
-.\"
Packit c76492
-.TH RMDIR 2 2015-08-08 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-rmdir \- delete a directory
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.B #include <unistd.h>
Packit c76492
-.PP
Packit c76492
-.BI "int rmdir(const char *" pathname );
Packit c76492
-.SH DESCRIPTION
Packit c76492
-.BR rmdir ()
Packit c76492
-deletes a directory, which must be empty.
Packit c76492
-.SH RETURN VALUE
Packit c76492
-On success, zero is returned.
Packit c76492
-On error, \-1 is returned, and
Packit c76492
-.I errno
Packit c76492
-is set appropriately.
Packit c76492
-.SH ERRORS
Packit c76492
-.TP
Packit c76492
-.B EACCES
Packit c76492
-Write access to the directory containing
Packit c76492
-.I pathname
Packit c76492
-was not allowed, or one of the directories in the path prefix of
Packit c76492
-.I pathname
Packit c76492
-did not allow search permission.
Packit c76492
-(See also
Packit c76492
-.BR path_resolution (7).
Packit c76492
-.TP
Packit c76492
-.B EBUSY
Packit c76492
-.I pathname
Packit c76492
-is currently in use by the system or some process that prevents its
Packit c76492
-removal.
Packit c76492
-On Linux, this means
Packit c76492
-.I pathname
Packit c76492
-is currently used as a mount point
Packit c76492
-or is the root directory of the calling process.
Packit c76492
-.TP
Packit c76492
-.B EFAULT
Packit c76492
-.IR pathname " points outside your accessible address space."
Packit c76492
-.TP
Packit c76492
-.B EINVAL
Packit c76492
-.I pathname
Packit c76492
-has
Packit c76492
-.I .
Packit c76492
-as last component.
Packit c76492
-.TP
Packit c76492
-.B ELOOP
Packit c76492
-Too many symbolic links were encountered in resolving
Packit c76492
-.IR pathname .
Packit c76492
-.TP
Packit c76492
-.B ENAMETOOLONG
Packit c76492
-.IR pathname " was too long."
Packit c76492
-.TP
Packit c76492
-.B ENOENT
Packit c76492
-A directory component in
Packit c76492
-.I pathname
Packit c76492
-does not exist or is a dangling symbolic link.
Packit c76492
-.TP
Packit c76492
-.B ENOMEM
Packit c76492
-Insufficient kernel memory was available.
Packit c76492
-.TP
Packit c76492
-.B ENOTDIR
Packit c76492
-.IR pathname ,
Packit c76492
-or a component used as a directory in
Packit c76492
-.IR pathname ,
Packit c76492
-is not, in fact, a directory.
Packit c76492
-.TP
Packit c76492
-.B ENOTEMPTY
Packit c76492
-.I pathname
Packit c76492
-contains entries other than
Packit c76492
-.IR . " and " .. " ;"
Packit c76492
-or,
Packit c76492
-.I pathname
Packit c76492
-has
Packit c76492
-.I ..
Packit c76492
-as its final component.
Packit c76492
-POSIX.1 also allows
Packit c76492
-.\" POSIX.1-2001, POSIX.1-2008
Packit c76492
-.B EEXIST
Packit c76492
-for this condition.
Packit c76492
-.TP
Packit c76492
-.B EPERM
Packit c76492
-The directory containing
Packit c76492
-.I pathname
Packit c76492
-has the sticky bit
Packit c76492
-.RB ( S_ISVTX )
Packit c76492
-set and the process's effective user ID is neither the user ID
Packit c76492
-of the file to be deleted nor that of the directory containing it,
Packit c76492
-and the process is not privileged (Linux: does not have the
Packit c76492
-.B CAP_FOWNER
Packit c76492
-capability).
Packit c76492
-.TP
Packit c76492
-.B EPERM
Packit c76492
-The filesystem containing
Packit c76492
-.I pathname
Packit c76492
-does not support the removal of directories.
Packit c76492
-.TP
Packit c76492
-.B EROFS
Packit c76492
-.I pathname
Packit c76492
-refers to a directory on a read-only filesystem.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
Packit c76492
-.SH BUGS
Packit c76492
-Infelicities in the protocol underlying NFS can cause the unexpected
Packit c76492
-disappearance of directories which are still being used.
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR rm (1),
Packit c76492
-.BR rmdir (1),
Packit c76492
-.BR chdir (2),
Packit c76492
-.BR chmod (2),
Packit c76492
-.BR mkdir (2),
Packit c76492
-.BR rename (2),
Packit c76492
-.BR unlink (2),
Packit c76492
-.BR unlinkat (2)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/select.2 b/man2/select.2
Packit c76492
index c0a3a47..9fce598 100644
Packit c76492
--- a/man2/select.2
Packit c76492
+++ b/man2/select.2
Packit c76492
@@ -73,6 +73,11 @@ Feature Test Macro Requirements for glibc (see
Packit c76492
 _POSIX_C_SOURCE\ >=\ 200112L
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR select ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR pselect ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR select ()
Packit c76492
 and
Packit c76492
 .BR pselect ()
Packit c76492
 allow a program to monitor multiple file descriptors,
Packit c76492
diff --git a/man2/send.2 b/man2/send.2
Packit c76492
index e0bea6d..e5b4082 100644
Packit c76492
--- a/man2/send.2
Packit c76492
+++ b/man2/send.2
Packit c76492
@@ -56,6 +56,13 @@ send, sendto, sendmsg \- send a message on a socket
Packit c76492
 ", int " flags );
Packit c76492
 .fi
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR send ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR sendto ()
Packit c76492
+with a NULL
Packit c76492
+.I dest_addr
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
 The system calls
Packit c76492
 .BR send (),
Packit c76492
 .BR sendto (),
Packit c76492
diff --git a/man2/setpgid.2 b/man2/setpgid.2
Packit c76492
index 6f6b337..3574aed 100644
Packit c76492
--- a/man2/setpgid.2
Packit c76492
+++ b/man2/setpgid.2
Packit c76492
@@ -99,6 +99,11 @@ _XOPEN_SOURCE\ >=\ 500
Packit c76492
 .fi
Packit c76492
 .ad
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR getpgrp ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR getpgid ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
 All of these interfaces are available on Linux,
Packit c76492
 and are used for getting and setting the
Packit c76492
 process group ID (PGID) of a process.
Packit c76492
diff --git a/man2/signalfd.2 b/man2/signalfd.2
Packit c76492
index 90e81ef..10ac204 100644
Packit c76492
--- a/man2/signalfd.2
Packit c76492
+++ b/man2/signalfd.2
Packit c76492
@@ -26,6 +26,11 @@ signalfd \- create a file descriptor for accepting signals
Packit c76492
 .BI "int signalfd(int " fd ", const sigset_t *" mask ", int " flags );
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR signalfd ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR signalfd4 ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR signalfd ()
Packit c76492
 creates a file descriptor that can be used to accept signals
Packit c76492
 targeted at the caller.
Packit c76492
 This provides an alternative to the use of a signal handler or
Packit c76492
diff --git a/man2/symlink.2 b/man2/symlink.2
Packit c76492
index ce0cbe7..78ad595 100644
Packit c76492
--- a/man2/symlink.2
Packit c76492
+++ b/man2/symlink.2
Packit c76492
@@ -74,6 +74,11 @@ _ATFILE_SOURCE
Packit c76492
 .PD
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR symlink ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR symlinkat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR symlink ()
Packit c76492
 creates a symbolic link named
Packit c76492
 .I linkpath
Packit c76492
 which contains the string
Packit c76492
diff --git a/man2/sysctl.2 b/man2/sysctl.2
Packit c76492
deleted file mode 100644
Packit c76492
index 849f1b5..0000000
Packit c76492
--- a/man2/sysctl.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,190 +0,0 @@
Packit c76492
-.\" Copyright (C) 1996 Andries Brouwer (aeb@cwi.nl)
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" Written 11 April 1996 by Andries Brouwer <aeb@cwi.nl>
Packit c76492
-.\" 960412: Added comments from Stephen Tweedie
Packit c76492
-.\" Modified Tue Oct 22 22:28:41 1996 by Eric S. Raymond <esr@thyrsus.com>
Packit c76492
-.\" Modified Mon Jan  5 20:31:04 1998 by aeb.
Packit c76492
-.\"
Packit c76492
-.TH SYSCTL 2 2017-09-15 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-sysctl \- read/write system parameters
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.nf
Packit c76492
-.B #include <unistd.h>
Packit c76492
-.B #include <linux/sysctl.h>
Packit c76492
-.PP
Packit c76492
-.BI "int _sysctl(struct __sysctl_args *" args );
Packit c76492
-.fi
Packit c76492
-.PP
Packit c76492
-.IR Note :
Packit c76492
-There is no glibc wrapper for this system call; see NOTES.
Packit c76492
-.SH DESCRIPTION
Packit c76492
-.B Do not use this system call!
Packit c76492
-See NOTES.
Packit c76492
-.PP
Packit c76492
-The
Packit c76492
-.BR _sysctl ()
Packit c76492
-call reads and/or writes kernel parameters.
Packit c76492
-For example, the hostname,
Packit c76492
-or the maximum number of open files.
Packit c76492
-The argument has the form
Packit c76492
-.PP
Packit c76492
-.in +4n
Packit c76492
-.EX
Packit c76492
-struct __sysctl_args {
Packit c76492
-    int    *name;    /* integer vector describing variable */
Packit c76492
-    int     nlen;    /* length of this vector */
Packit c76492
-    void   *oldval;  /* 0 or address where to store old value */
Packit c76492
-    size_t *oldlenp; /* available room for old value,
Packit c76492
-                        overwritten by actual size of old value */
Packit c76492
-    void   *newval;  /* 0 or address of new value */
Packit c76492
-    size_t  newlen;  /* size of new value */
Packit c76492
-};
Packit c76492
-.EE
Packit c76492
-.in
Packit c76492
-.PP
Packit c76492
-This call does a search in a tree structure, possibly resembling
Packit c76492
-a directory tree under
Packit c76492
-.IR /proc/sys ,
Packit c76492
-and if the requested item is found calls some appropriate routine
Packit c76492
-to read or modify the value.
Packit c76492
-.SH RETURN VALUE
Packit c76492
-Upon successful completion,
Packit c76492
-.BR _sysctl ()
Packit c76492
-returns 0.
Packit c76492
-Otherwise, a value of \-1 is returned and
Packit c76492
-.I errno
Packit c76492
-is set to indicate the error.
Packit c76492
-.SH ERRORS
Packit c76492
-.TP
Packit c76492
-.BR EACCES ", " EPERM
Packit c76492
-No search permission for one of the encountered "directories",
Packit c76492
-or no read permission where
Packit c76492
-.I oldval
Packit c76492
-was nonzero, or no write permission where
Packit c76492
-.I newval
Packit c76492
-was nonzero.
Packit c76492
-.TP
Packit c76492
-.B EFAULT
Packit c76492
-The invocation asked for the previous value by setting
Packit c76492
-.I oldval
Packit c76492
-non-NULL, but allowed zero room in
Packit c76492
-.IR oldlenp .
Packit c76492
-.TP
Packit c76492
-.B ENOTDIR
Packit c76492
-.I name
Packit c76492
-was not found.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-This call is Linux-specific, and should not be used in programs
Packit c76492
-intended to be portable.
Packit c76492
-A
Packit c76492
-.BR sysctl ()
Packit c76492
-call has been present in Linux since version 1.3.57.
Packit c76492
-It originated in
Packit c76492
-4.4BSD.
Packit c76492
-Only Linux has the
Packit c76492
-.I /proc/sys
Packit c76492
-mirror, and the object naming schemes differ between Linux and 4.4BSD,
Packit c76492
-but the declaration of the
Packit c76492
-.BR sysctl ()
Packit c76492
-function is the same in both.
Packit c76492
-.SH NOTES
Packit c76492
-Glibc does not provide a wrapper for this system call; call it using
Packit c76492
-.BR syscall (2).
Packit c76492
-Or rather...
Packit c76492
-.I don't
Packit c76492
-call it:
Packit c76492
-use of this system call has long been discouraged,
Packit c76492
-and it is so unloved that
Packit c76492
-\fBit is likely to disappear in a future kernel version\fP.
Packit c76492
-.\" See http://lwn.net/Articles/247243/
Packit c76492
-Since Linux 2.6.24,
Packit c76492
-uses of this system call result in warnings in the kernel log.
Packit c76492
-.\" Though comments in suggest that it is needed by old glibc binaries,
Packit c76492
-.\" so maybe it's not going away.
Packit c76492
-Remove it from your programs now; use the
Packit c76492
-.I /proc/sys
Packit c76492
-interface instead.
Packit c76492
-.PP
Packit c76492
-This system call is available only if the kernel was configured with the
Packit c76492
-.B CONFIG_SYSCTL_SYSCALL
Packit c76492
-option.
Packit c76492
-.SH BUGS
Packit c76492
-The object names vary between kernel versions,
Packit c76492
-making this system call worthless for applications.
Packit c76492
-.PP
Packit c76492
-Not all available objects are properly documented.
Packit c76492
-.PP
Packit c76492
-It is not yet possible to change operating system by writing to
Packit c76492
-.IR /proc/sys/kernel/ostype .
Packit c76492
-.SH EXAMPLE
Packit c76492
-.EX
Packit c76492
-#define _GNU_SOURCE
Packit c76492
-#include <unistd.h>
Packit c76492
-#include <sys/syscall.h>
Packit c76492
-#include <string.h>
Packit c76492
-#include <stdio.h>
Packit c76492
-#include <stdlib.h>
Packit c76492
-#include <linux/sysctl.h>
Packit c76492
-
Packit c76492
-int _sysctl(struct __sysctl_args *args );
Packit c76492
-
Packit c76492
-#define OSNAMESZ 100
Packit c76492
-
Packit c76492
-int
Packit c76492
-main(void)
Packit c76492
-{
Packit c76492
-    struct __sysctl_args args;
Packit c76492
-    char osname[OSNAMESZ];
Packit c76492
-    size_t osnamelth;
Packit c76492
-    int name[] = { CTL_KERN, KERN_OSTYPE };
Packit c76492
-
Packit c76492
-    memset(&args, 0, sizeof(struct __sysctl_args));
Packit c76492
-    args.name = name;
Packit c76492
-    args.nlen = sizeof(name)/sizeof(name[0]);
Packit c76492
-    args.oldval = osname;
Packit c76492
-    args.oldlenp = &osnamelth;
Packit c76492
-
Packit c76492
-    osnamelth = sizeof(osname);
Packit c76492
-
Packit c76492
-    if (syscall(SYS__sysctl, &args) == \-1) {
Packit c76492
-        perror("_sysctl");
Packit c76492
-        exit(EXIT_FAILURE);
Packit c76492
-    }
Packit c76492
-    printf("This machine is running %*s\\n", osnamelth, osname);
Packit c76492
-    exit(EXIT_SUCCESS);
Packit c76492
-}
Packit c76492
-.EE
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR proc (5)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/time.2 b/man2/time.2
Packit c76492
deleted file mode 100644
Packit c76492
index 00a9b4d..0000000
Packit c76492
--- a/man2/time.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,140 +0,0 @@
Packit c76492
-.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" Modified by Michael Haardt <michael@moria.de>
Packit c76492
-.\" Modified Sat Jul 24 14:13:40 1993 by Rik Faith <faith@cs.unc.edu>
Packit c76492
-.\" Additions by Joseph S. Myers <jsm28@cam.ac.uk>, 970909
Packit c76492
-.\"
Packit c76492
-.TH TIME 2 2017-09-15 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-time \- get time in seconds
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.B #include <time.h>
Packit c76492
-.PP
Packit c76492
-.BI "time_t time(time_t *" tloc );
Packit c76492
-.SH DESCRIPTION
Packit c76492
-.BR time ()
Packit c76492
-returns the time as the number of seconds since the
Packit c76492
-Epoch, 1970-01-01 00:00:00 +0000 (UTC).
Packit c76492
-.PP
Packit c76492
-If
Packit c76492
-.I tloc
Packit c76492
-is non-NULL,
Packit c76492
-the return value is also stored in the memory pointed to by
Packit c76492
-.IR tloc .
Packit c76492
-.SH RETURN VALUE
Packit c76492
-On success, the value of time in seconds since the Epoch is returned.
Packit c76492
-On error, \fI((time_t)\ \-1)\fP is returned, and \fIerrno\fP is set
Packit c76492
-appropriately.
Packit c76492
-.SH ERRORS
Packit c76492
-.TP
Packit c76492
-.B EFAULT
Packit c76492
-.I tloc
Packit c76492
-points outside your accessible address space (but see BUGS).
Packit c76492
-.IP
Packit c76492
-On systems where the C library
Packit c76492
-.BR time ()
Packit c76492
-wrapper function invokes an implementation provided by the
Packit c76492
-.BR vdso (7)
Packit c76492
-(so that there is no trap into the kernel),
Packit c76492
-an invalid address may instead trigger a
Packit c76492
-.B SIGSEGV
Packit c76492
-signal.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
Packit c76492
-.\" Under 4.3BSD, this call is obsoleted by
Packit c76492
-.\" .BR gettimeofday (2).
Packit c76492
-POSIX does not specify any error conditions.
Packit c76492
-.SH NOTES
Packit c76492
-POSIX.1 defines
Packit c76492
-.I seconds since the Epoch
Packit c76492
-using a formula that approximates the number of seconds between a
Packit c76492
-specified time and the Epoch.
Packit c76492
-This formula takes account of the facts that
Packit c76492
-all years that are evenly divisible by 4 are leap years,
Packit c76492
-but years that are evenly divisible by 100 are not leap years
Packit c76492
-unless they are also evenly divisible by 400,
Packit c76492
-in which case they are leap years.
Packit c76492
-This value is not the same as the actual number of seconds between the time
Packit c76492
-and the Epoch, because of leap seconds and because system clocks are not
Packit c76492
-required to be synchronized to a standard reference.
Packit c76492
-The intention is that the interpretation of seconds since the Epoch values be
Packit c76492
-consistent; see POSIX.1-2008 Rationale A.4.15 for further rationale.
Packit c76492
-.PP
Packit c76492
-On Linux, a call to
Packit c76492
-.BR time ()
Packit c76492
-with
Packit c76492
-.I tloc
Packit c76492
-specified as NULL cannot fail with the error
Packit c76492
-.BR EOVERFLOW ,
Packit c76492
-even on ABIs where
Packit c76492
-.I time_t
Packit c76492
-is a signed 32-bit integer and the clock ticks past the time 2**31
Packit c76492
-(2038-01-19 03:14:08 UTC, ignoring leap seconds).
Packit c76492
-(POSIX.1 permits, but does not require, the
Packit c76492
-.B EOVERFLOW
Packit c76492
-error in the case where the seconds since the Epoch will not fit in
Packit c76492
-.IR time_t .)
Packit c76492
-Instead, the behavior on Linux is undefined when the system time is out of the
Packit c76492
-.I time_t
Packit c76492
-range.
Packit c76492
-Applications intended to run after 2038 should use ABIs with
Packit c76492
-.I time_t
Packit c76492
-wider than 32 bits.
Packit c76492
-.SH BUGS
Packit c76492
-Error returns from this system call are indistinguishable from
Packit c76492
-successful reports that the time is a few seconds
Packit c76492
-.I before
Packit c76492
-the Epoch, so the C library wrapper function never sets
Packit c76492
-.I errno
Packit c76492
-as a result of this call.
Packit c76492
-.PP
Packit c76492
-The
Packit c76492
-.I tloc
Packit c76492
-argument is obsolescent and should always be NULL in new code.
Packit c76492
-When
Packit c76492
-.I tloc
Packit c76492
-is NULL, the call cannot fail.
Packit c76492
-.\"
Packit c76492
-.SS C library/kernel differences
Packit c76492
-On some architectures, an implementation of
Packit c76492
-.BR time ()
Packit c76492
-is provided in the
Packit c76492
-.BR vdso (7).
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR date (1),
Packit c76492
-.BR gettimeofday (2),
Packit c76492
-.BR ctime (3),
Packit c76492
-.BR ftime (3),
Packit c76492
-.BR time (7),
Packit c76492
-.BR vdso (7)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/umount.2 b/man2/umount.2
Packit c76492
index 292076c..b43443a 100644
Packit c76492
--- a/man2/umount.2
Packit c76492
+++ b/man2/umount.2
Packit c76492
@@ -40,6 +40,11 @@ umount, umount2 \- unmount filesystem
Packit c76492
 .fi
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR umount ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR umount2 ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR umount ()
Packit c76492
 and
Packit c76492
 .BR umount2 ()
Packit c76492
 remove the attachment of the (topmost) filesystem mounted on
Packit c76492
diff --git a/man2/unlink.2 b/man2/unlink.2
Packit c76492
index b25b153..93bdb63 100644
Packit c76492
--- a/man2/unlink.2
Packit c76492
+++ b/man2/unlink.2
Packit c76492
@@ -65,6 +65,11 @@ _ATFILE_SOURCE
Packit c76492
 .PD
Packit c76492
 .SH DESCRIPTION
Packit c76492
 .BR unlink ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR unlinkat ()
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
+.BR unlink ()
Packit c76492
 deletes a name from the filesystem.
Packit c76492
 If that name was the
Packit c76492
 last link to a file and no processes have the file open, the file is
Packit c76492
diff --git a/man2/uselib.2 b/man2/uselib.2
Packit c76492
deleted file mode 100644
Packit c76492
index df7bad5..0000000
Packit c76492
--- a/man2/uselib.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,138 +0,0 @@
Packit c76492
-.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" Modified by Michael Haardt <michael@moria.de>
Packit c76492
-.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
Packit c76492
-.\" Modified 1996-10-22 by Eric S. Raymond <esr@thyrsus.com>
Packit c76492
-.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
Packit c76492
-.\" Modified 2005-01-09 by aeb
Packit c76492
-.\"
Packit c76492
-.TH USELIB 2 2017-09-15 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-uselib \- load shared library
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.B #include <unistd.h>
Packit c76492
-.PP
Packit c76492
-.BI "int uselib(const char *" library );
Packit c76492
-.PP
Packit c76492
-.IR Note :
Packit c76492
-No declaration of this system call is provided in glibc headers; see NOTES.
Packit c76492
-.SH DESCRIPTION
Packit c76492
-The system call
Packit c76492
-.BR uselib ()
Packit c76492
-serves to load
Packit c76492
-a shared library to be used by the calling process.
Packit c76492
-It is given a pathname.
Packit c76492
-The address where to load is found
Packit c76492
-in the library itself.
Packit c76492
-The library can have any recognized
Packit c76492
-binary format.
Packit c76492
-.SH RETURN VALUE
Packit c76492
-On success, zero is returned.
Packit c76492
-On error, \-1 is returned, and
Packit c76492
-.I errno
Packit c76492
-is set appropriately.
Packit c76492
-.SH ERRORS
Packit c76492
-In addition to all of the error codes returned by
Packit c76492
-.BR open (2)
Packit c76492
-and
Packit c76492
-.BR mmap (2),
Packit c76492
-the following may also be returned:
Packit c76492
-.TP
Packit c76492
-.B EACCES
Packit c76492
-The library specified by
Packit c76492
-.I library
Packit c76492
-does not have read or execute permission, or the caller does not have
Packit c76492
-search permission for one of the directories in the path prefix.
Packit c76492
-(See also
Packit c76492
-.BR path_resolution (7).)
Packit c76492
-.TP
Packit c76492
-.B ENFILE
Packit c76492
-The system-wide limit on the total number of open files has been reached.
Packit c76492
-.TP
Packit c76492
-.B ENOEXEC
Packit c76492
-The file specified by
Packit c76492
-.I library
Packit c76492
-is not an executable of a known type;
Packit c76492
-for example, it does not have the correct magic numbers.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-.BR uselib ()
Packit c76492
-is Linux-specific, and should not be used in programs
Packit c76492
-intended to be portable.
Packit c76492
-.SH NOTES
Packit c76492
-This obsolete system call is not supported by glibc.
Packit c76492
-No declaration is provided in glibc headers, but, through a quirk of history,
Packit c76492
-glibc versions before 2.23 did export an ABI for this system call.
Packit c76492
-Therefore, in order to employ this system call,
Packit c76492
-it was sufficient to manually declare the interface in your code;
Packit c76492
-alternatively, you could invoke the system call using
Packit c76492
-.BR syscall (2).
Packit c76492
-.PP
Packit c76492
-In ancient libc versions,
Packit c76492
-.BR uselib ()
Packit c76492
-was used to load
Packit c76492
-the shared libraries with names found in an array of names
Packit c76492
-in the binary.
Packit c76492
-.PP
Packit c76492
-.\" libc 4.3.1f - changelog 1993-03-02
Packit c76492
-Since libc 4.3.2, startup code tries to prefix these names
Packit c76492
-with "/usr/lib", "/lib" and "" before giving up.
Packit c76492
-.\" libc 4.3.4 - changelog 1993-04-21
Packit c76492
-In libc 4.3.4 and later these names are looked for in the directories
Packit c76492
-found in
Packit c76492
-.BR LD_LIBRARY_PATH ,
Packit c76492
-and if not found there,
Packit c76492
-prefixes "/usr/lib", "/lib" and "/" are tried.
Packit c76492
-.PP
Packit c76492
-From libc 4.4.4 on only the library "/lib/ld.so" is loaded,
Packit c76492
-so that this dynamic library can load the remaining libraries needed
Packit c76492
-(again using this call).
Packit c76492
-This is also the state of affairs in libc5.
Packit c76492
-.PP
Packit c76492
-glibc2 does not use this call.
Packit c76492
-.PP
Packit c76492
-Since Linux 3.15,
Packit c76492
-.\" commit 69369a7003735d0d8ef22097e27a55a8bad9557a
Packit c76492
-this system call is available only when the kernel is configured with the
Packit c76492
-.B CONFIG_USELIB
Packit c76492
-option.
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR ar (1),
Packit c76492
-.BR gcc (1),
Packit c76492
-.BR ld (1),
Packit c76492
-.BR ldd (1),
Packit c76492
-.BR mmap (2),
Packit c76492
-.BR open (2),
Packit c76492
-.BR dlopen (3),
Packit c76492
-.BR capabilities (7),
Packit c76492
-.BR ld.so (8)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/ustat.2 b/man2/ustat.2
Packit c76492
deleted file mode 100644
Packit c76492
index 41e9a88..0000000
Packit c76492
--- a/man2/ustat.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,127 +0,0 @@
Packit c76492
-.\" Copyright (C) 1995, Thomas K. Dyas <tdyas@eden.rutgers.edu>
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" Created  1995-08-09 Thomas K. Dyas <tdyas@eden.rutgers.edu>
Packit c76492
-.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
Packit c76492
-.\" Modified 2001-03-22 by aeb
Packit c76492
-.\" Modified 2003-08-04 by aeb
Packit c76492
-.\"
Packit c76492
-.TH USTAT 2 2017-09-15 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-ustat \- get filesystem statistics
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.nf
Packit c76492
-.B #include <sys/types.h>
Packit c76492
-.BR "#include <unistd.h>" "    /* libc[45] */"
Packit c76492
-.BR "#include <ustat.h>" "     /* glibc2 */"
Packit c76492
-.PP
Packit c76492
-.BI "int ustat(dev_t " dev ", struct ustat *" ubuf );
Packit c76492
-.fi
Packit c76492
-.SH DESCRIPTION
Packit c76492
-.BR ustat ()
Packit c76492
-returns information about a mounted filesystem.
Packit c76492
-.I dev
Packit c76492
-is a device number identifying a device containing
Packit c76492
-a mounted filesystem.
Packit c76492
-.I ubuf
Packit c76492
-is a pointer to a
Packit c76492
-.I ustat
Packit c76492
-structure that contains the following
Packit c76492
-members:
Packit c76492
-.PP
Packit c76492
-.in +4n
Packit c76492
-.EX
Packit c76492
-daddr_t f_tfree;      /* Total free blocks */
Packit c76492
-ino_t   f_tinode;     /* Number of free inodes */
Packit c76492
-char    f_fname[6];   /* Filsys name */
Packit c76492
-char    f_fpack[6];   /* Filsys pack name */
Packit c76492
-.EE
Packit c76492
-.in
Packit c76492
-.PP
Packit c76492
-The last two fields,
Packit c76492
-.I f_fname
Packit c76492
-and
Packit c76492
-.IR f_fpack ,
Packit c76492
-are not implemented and will
Packit c76492
-always be filled with null bytes (\(aq\\0\(aq).
Packit c76492
-.SH RETURN VALUE
Packit c76492
-On success, zero is returned and the
Packit c76492
-.I ustat
Packit c76492
-structure pointed to by
Packit c76492
-.I ubuf
Packit c76492
-will be filled in.
Packit c76492
-On error, \-1 is returned, and
Packit c76492
-.I errno
Packit c76492
-is set appropriately.
Packit c76492
-.SH ERRORS
Packit c76492
-.TP
Packit c76492
-.B EFAULT
Packit c76492
-.I ubuf
Packit c76492
-points outside of your accessible address space.
Packit c76492
-.TP
Packit c76492
-.B EINVAL
Packit c76492
-.I dev
Packit c76492
-does not refer to a device containing a mounted filesystem.
Packit c76492
-.TP
Packit c76492
-.B ENOSYS
Packit c76492
-The mounted filesystem referenced by
Packit c76492
-.I dev
Packit c76492
-does not support this operation, or any version of Linux before
Packit c76492
-1.3.16.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-SVr4.
Packit c76492
-.\" SVr4 documents additional error conditions ENOLINK, ECOMM, and EINTR
Packit c76492
-.\" but has no ENOSYS condition.
Packit c76492
-.SH NOTES
Packit c76492
-.BR ustat ()
Packit c76492
-is deprecated and has been provided only for compatibility.
Packit c76492
-All new programs should use
Packit c76492
-.BR statfs (2)
Packit c76492
-instead.
Packit c76492
-.SS HP-UX notes
Packit c76492
-The HP-UX version of the
Packit c76492
-.I ustat
Packit c76492
-structure has an additional field,
Packit c76492
-.IR f_blksize ,
Packit c76492
-that is unknown elsewhere.
Packit c76492
-HP-UX warns:
Packit c76492
-For some filesystems, the number of free inodes does not change.
Packit c76492
-Such filesystems will return \-1 in the field
Packit c76492
-.IR f_tinode .
Packit c76492
-.\" Some software tries to use this in order to test whether the
Packit c76492
-.\" underlying filesystem is NFS.
Packit c76492
-For some filesystems, inodes are dynamically allocated.
Packit c76492
-Such filesystems will return the current number of free inodes.
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR stat (2),
Packit c76492
-.BR statfs (2)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/utime.2 b/man2/utime.2
Packit c76492
index 6c848e8..6393289 100644
Packit c76492
--- a/man2/utime.2
Packit c76492
+++ b/man2/utime.2
Packit c76492
@@ -43,9 +43,12 @@ utime, utimes \- change file last access and modification times
Packit c76492
 .BI "int utimes(const char *" filename ", const struct timeval " times [2]);
Packit c76492
 .fi
Packit c76492
 .SH DESCRIPTION
Packit c76492
-.B Note:
Packit c76492
-modern applications may prefer to use the interfaces described in
Packit c76492
-.BR utimensat (2).
Packit c76492
+.BR utime ()
Packit c76492
+and
Packit c76492
+.BR utimes ()
Packit c76492
+system calls are DEPRECATED, use
Packit c76492
+.BR utimensat (2)
Packit c76492
+instead!!!
Packit c76492
 .PP
Packit c76492
 The
Packit c76492
 .BR utime ()
Packit c76492
diff --git a/man2/vfork.2 b/man2/vfork.2
Packit c76492
deleted file mode 100644
Packit c76492
index 32d6042..0000000
Packit c76492
--- a/man2/vfork.2
Packit c76492
+++ /dev/null
Packit c76492
@@ -1,346 +0,0 @@
Packit c76492
-.\" Copyright (c) 1999 Andries Brouwer (aeb@cwi.nl), 1 Nov 1999
Packit c76492
-.\" and Copyright 2006, 2012, 2017 Michael Kerrisk <mtk.manpages@gmail.com>
Packit c76492
-.\"
Packit c76492
-.\" %%%LICENSE_START(VERBATIM)
Packit c76492
-.\" Permission is granted to make and distribute verbatim copies of this
Packit c76492
-.\" manual provided the copyright notice and this permission notice are
Packit c76492
-.\" preserved on all copies.
Packit c76492
-.\"
Packit c76492
-.\" Permission is granted to copy and distribute modified versions of this
Packit c76492
-.\" manual under the conditions for verbatim copying, provided that the
Packit c76492
-.\" entire resulting derived work is distributed under the terms of a
Packit c76492
-.\" permission notice identical to this one.
Packit c76492
-.\"
Packit c76492
-.\" Since the Linux kernel and libraries are constantly changing, this
Packit c76492
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
Packit c76492
-.\" responsibility for errors or omissions, or for damages resulting from
Packit c76492
-.\" the use of the information contained herein.  The author(s) may not
Packit c76492
-.\" have taken the same level of care in the production of this manual,
Packit c76492
-.\" which is licensed free of charge, as they might when working
Packit c76492
-.\" professionally.
Packit c76492
-.\"
Packit c76492
-.\" Formatted or processed versions of this manual, if unaccompanied by
Packit c76492
-.\" the source, must acknowledge the copyright and authors of this work.
Packit c76492
-.\" %%%LICENSE_END
Packit c76492
-.\"
Packit c76492
-.\" 1999-11-10: Merged text taken from the page contributed by
Packit c76492
-.\" Reed H. Petty (rhp@draper.net)
Packit c76492
-.\"
Packit c76492
-.TH VFORK 2 2017-09-15 "Linux" "Linux Programmer's Manual"
Packit c76492
-.SH NAME
Packit c76492
-vfork \- create a child process and block parent
Packit c76492
-.SH SYNOPSIS
Packit c76492
-.B #include <sys/types.h>
Packit c76492
-.br
Packit c76492
-.B #include <unistd.h>
Packit c76492
-.PP
Packit c76492
-.B pid_t vfork(void);
Packit c76492
-.PP
Packit c76492
-.in -4n
Packit c76492
-Feature Test Macro Requirements for glibc (see
Packit c76492
-.BR feature_test_macros (7)):
Packit c76492
-.in
Packit c76492
-.PP
Packit c76492
-.BR vfork ():
Packit c76492
-.ad l
Packit c76492
-.RS 4
Packit c76492
-.PD 0
Packit c76492
-.TP 4
Packit c76492
-Since glibc 2.12:
Packit c76492
-.nf
Packit c76492
-(_XOPEN_SOURCE\ >=\ 500) && ! (_POSIX_C_SOURCE\ >=\ 200809L)
Packit c76492
-    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
Packit c76492
-    || /* Glibc versions <= 2.19: */ _BSD_SOURCE
Packit c76492
-.TP 4
Packit c76492
-.fi
Packit c76492
-Before glibc 2.12:
Packit c76492
-_BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500
Packit c76492
-.\"     || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
Packit c76492
-.PD
Packit c76492
-.RE
Packit c76492
-.ad b
Packit c76492
-.SH DESCRIPTION
Packit c76492
-.SS Standard description
Packit c76492
-(From POSIX.1)
Packit c76492
-The
Packit c76492
-.BR vfork ()
Packit c76492
-function has the same effect as
Packit c76492
-.BR fork (2),
Packit c76492
-except that the behavior is undefined if the process created by
Packit c76492
-.BR vfork ()
Packit c76492
-either modifies any data other than a variable of type
Packit c76492
-.I pid_t
Packit c76492
-used to store the return value from
Packit c76492
-.BR vfork (),
Packit c76492
-or returns from the function in which
Packit c76492
-.BR vfork ()
Packit c76492
-was called, or calls any other function before successfully calling
Packit c76492
-.BR _exit (2)
Packit c76492
-or one of the
Packit c76492
-.BR exec (3)
Packit c76492
-family of functions.
Packit c76492
-.SS Linux description
Packit c76492
-.BR vfork (),
Packit c76492
-just like
Packit c76492
-.BR fork (2),
Packit c76492
-creates a child process of the calling process.
Packit c76492
-For details and return value and errors, see
Packit c76492
-.BR fork (2).
Packit c76492
-.PP
Packit c76492
-.BR vfork ()
Packit c76492
-is a special case of
Packit c76492
-.BR clone (2).
Packit c76492
-It is used to create new processes without copying the page tables of
Packit c76492
-the parent process.
Packit c76492
-It may be useful in performance-sensitive applications
Packit c76492
-where a child is created which then immediately issues an
Packit c76492
-.BR execve (2).
Packit c76492
-.PP
Packit c76492
-.BR vfork ()
Packit c76492
-differs from
Packit c76492
-.BR fork (2)
Packit c76492
-in that the calling thread is suspended until the child terminates
Packit c76492
-(either normally,
Packit c76492
-by calling
Packit c76492
-.BR _exit (2),
Packit c76492
-or abnormally, after delivery of a fatal signal),
Packit c76492
-or it makes a call to
Packit c76492
-.BR execve (2).
Packit c76492
-Until that point, the child shares all memory with its parent,
Packit c76492
-including the stack.
Packit c76492
-The child must not return from the current function or call
Packit c76492
-.BR exit (3)
Packit c76492
-(which would have the effect of calling exit handlers
Packit c76492
-established by the parent process and flushing the parent's
Packit c76492
-.BR stdio (3)
Packit c76492
-buffers), but may call
Packit c76492
-.BR _exit (2).
Packit c76492
-.PP
Packit c76492
-As with
Packit c76492
-.BR fork (2),
Packit c76492
-the child process created by
Packit c76492
-.BR vfork ()
Packit c76492
-inherits copies of various of the caller's process attributes
Packit c76492
-(e.g., file descriptors, signal dispositions, and current working directory);
Packit c76492
-the
Packit c76492
-.BR vfork ()
Packit c76492
-call differs only in the treatment of the virtual address space,
Packit c76492
-as described above.
Packit c76492
-.PP
Packit c76492
-Signals sent to the parent
Packit c76492
-arrive after the child releases the parent's memory
Packit c76492
-(i.e., after the child terminates
Packit c76492
-or calls
Packit c76492
-.BR execve (2)).
Packit c76492
-.SS Historic description
Packit c76492
-Under Linux,
Packit c76492
-.BR fork (2)
Packit c76492
-is implemented using copy-on-write pages, so the only penalty incurred by
Packit c76492
-.BR fork (2)
Packit c76492
-is the time and memory required to duplicate the parent's page tables,
Packit c76492
-and to create a unique task structure for the child.
Packit c76492
-However, in the bad old days a
Packit c76492
-.BR fork (2)
Packit c76492
-would require making a complete copy of the caller's data space,
Packit c76492
-often needlessly, since usually immediately afterward an
Packit c76492
-.BR exec (3)
Packit c76492
-is done.
Packit c76492
-Thus, for greater efficiency, BSD introduced the
Packit c76492
-.BR vfork ()
Packit c76492
-system call, which did not fully copy the address space of
Packit c76492
-the parent process, but borrowed the parent's memory and thread
Packit c76492
-of control until a call to
Packit c76492
-.BR execve (2)
Packit c76492
-or an exit occurred.
Packit c76492
-The parent process was suspended while the
Packit c76492
-child was using its resources.
Packit c76492
-The use of
Packit c76492
-.BR vfork ()
Packit c76492
-was tricky: for example, not modifying data
Packit c76492
-in the parent process depended on knowing which variables were
Packit c76492
-held in a register.
Packit c76492
-.SH CONFORMING TO
Packit c76492
-4.3BSD; POSIX.1-2001 (but marked OBSOLETE).
Packit c76492
-POSIX.1-2008 removes the specification of
Packit c76492
-.BR vfork ().
Packit c76492
-.PP
Packit c76492
-The requirements put on
Packit c76492
-.BR vfork ()
Packit c76492
-by the standards are weaker than those put on
Packit c76492
-.BR fork (2),
Packit c76492
-so an implementation where the two are synonymous is compliant.
Packit c76492
-In particular, the programmer cannot rely on the parent
Packit c76492
-remaining blocked until the child either terminates or calls
Packit c76492
-.BR execve (2),
Packit c76492
-and cannot rely on any specific behavior with respect to shared memory.
Packit c76492
-.\" In AIXv3.1 vfork is equivalent to fork.
Packit c76492
-.SH NOTES
Packit c76492
-.PP
Packit c76492
-Some consider the semantics of
Packit c76492
-.BR vfork ()
Packit c76492
-to be an architectural blemish, and the 4.2BSD man page stated:
Packit c76492
-"This system call will be eliminated when proper system sharing mechanisms
Packit c76492
-are implemented.
Packit c76492
-Users should not depend on the memory sharing semantics of
Packit c76492
-.BR vfork ()
Packit c76492
-as it will, in that case, be made synonymous to
Packit c76492
-.BR fork (2).\c
Packit c76492
-"
Packit c76492
-However, even though modern memory management hardware
Packit c76492
-has decreased the performance difference between
Packit c76492
-.BR fork (2)
Packit c76492
-and
Packit c76492
-.BR vfork (),
Packit c76492
-there are various reasons why Linux and other systems have retained
Packit c76492
-.BR vfork ():
Packit c76492
-.IP * 3
Packit c76492
-Some performance-critical applications require the small performance
Packit c76492
-advantage conferred by
Packit c76492
-.BR vfork ().
Packit c76492
-.IP *
Packit c76492
-.BR vfork ()
Packit c76492
-can be implemented on systems that lack a memory-management unit (MMU), but
Packit c76492
-.BR fork (2)
Packit c76492
-can't be implemented on such systems.
Packit c76492
-(POSIX.1-2008 removed
Packit c76492
-.BR vfork ()
Packit c76492
-from the standard; the POSIX rationale for the
Packit c76492
-.BR posix_spawn (3)
Packit c76492
-function notes that that function,
Packit c76492
-which provides functionality equivalent to
Packit c76492
-.BR fork (2)+ exec (3),
Packit c76492
-is designed to be implementable on systems that lack an MMU.)
Packit c76492
-.\" http://stackoverflow.com/questions/4259629/what-is-the-difference-between-fork-and-vfork
Packit c76492
-.\" http://developers.sun.com/solaris/articles/subprocess/subprocess.html
Packit c76492
-.\" http://mailman.uclinux.org/pipermail/uclinux-dev/2009-April/000684.html
Packit c76492
-.\"
Packit c76492
-.IP *
Packit c76492
-On systems where memory is constrained,
Packit c76492
-.BR vfork ()
Packit c76492
-avoids the need to temporarily commit memory (see the description of
Packit c76492
-.IR /proc/sys/vm/overcommit_memory
Packit c76492
-in
Packit c76492
-.BR proc (5))
Packit c76492
-in order to execute a new program.
Packit c76492
-(This can be especially beneficial where a large parent process wishes
Packit c76492
-to execute a small helper program in a child process.)
Packit c76492
-By contrast, using
Packit c76492
-.BR fork (2)
Packit c76492
-in this scenario requires either committing an amount of memory equal
Packit c76492
-to the size of the parent process (if strict overcommitting is in force)
Packit c76492
-or overcommitting memory with the risk that a process is terminated
Packit c76492
-by the out-of-memory (OOM) killer.
Packit c76492
-.\"
Packit c76492
-.SS Caveats
Packit c76492
-The child process should take care not to modify the memory in unintended ways,
Packit c76492
-since such changes will be seen by the parent process once
Packit c76492
-the child terminates or executes another program.
Packit c76492
-In this regard, signal handlers can be especially problematic:
Packit c76492
-if a signal handler that is invoked in the child of
Packit c76492
-.BR vfork ()
Packit c76492
-changes memory, those changes may result in an inconsistent process state
Packit c76492
-from the perspective of the parent process
Packit c76492
-(e.g., memory changes would be visible in the parent,
Packit c76492
-but changes to the state of open file descriptors would not be visible).
Packit c76492
-.PP
Packit c76492
-When
Packit c76492
-.BR vfork ()
Packit c76492
-is called in a multithreaded process,
Packit c76492
-only the calling thread is suspended until the child terminates
Packit c76492
-or executes a new program.
Packit c76492
-This means that the child is sharing an address space with other running code.
Packit c76492
-This can be dangerous if another thread in the parent process
Packit c76492
-changes credentials (using
Packit c76492
-.BR setuid (2)
Packit c76492
-or similar),
Packit c76492
-since there are now two processes with different privilege levels
Packit c76492
-running in the same address space.
Packit c76492
-As an example of the dangers,
Packit c76492
-suppose that a multithreaded program running as root creates a child using
Packit c76492
-.BR vfork ().
Packit c76492
-After the
Packit c76492
-.BR vfork (),
Packit c76492
-a thread in the parent process drops the process to an unprivileged user
Packit c76492
-in order to run some untrusted code
Packit c76492
-(e.g., perhaps via plug-in opened with
Packit c76492
-.BR dlopen (3)).
Packit c76492
-In this case, attacks are possible where the parent process uses
Packit c76492
-.BR mmap (2)
Packit c76492
-to map in code that will be executed by the privileged child process.
Packit c76492
-.\"
Packit c76492
-.SS Linux notes
Packit c76492
-Fork handlers established using
Packit c76492
-.BR pthread_atfork (3)
Packit c76492
-are not called when a multithreaded program employing
Packit c76492
-the NPTL threading library calls
Packit c76492
-.BR vfork ().
Packit c76492
-Fork handlers are called in this case in a program using the
Packit c76492
-LinuxThreads threading library.
Packit c76492
-(See
Packit c76492
-.BR pthreads (7)
Packit c76492
-for a description of Linux threading libraries.)
Packit c76492
-.PP
Packit c76492
-A call to
Packit c76492
-.BR vfork ()
Packit c76492
-is equivalent to calling
Packit c76492
-.BR clone (2)
Packit c76492
-with
Packit c76492
-.I flags
Packit c76492
-specified as:
Packit c76492
-.PP
Packit c76492
-     CLONE_VM | CLONE_VFORK | SIGCHLD
Packit c76492
-.SS History
Packit c76492
-The
Packit c76492
-.BR vfork ()
Packit c76492
-system call appeared in 3.0BSD.
Packit c76492
-.\" In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still
Packit c76492
-.\" present, but definitely on its way out'.
Packit c76492
-In 4.4BSD it was made synonymous to
Packit c76492
-.BR fork (2)
Packit c76492
-but NetBSD introduced it again;
Packit c76492
-see
Packit c76492
-.UR http://www.netbsd.org\:/Documentation\:/kernel\:/vfork.html
Packit c76492
-.UE .
Packit c76492
-In Linux, it has been equivalent to
Packit c76492
-.BR fork (2)
Packit c76492
-until 2.2.0-pre6 or so.
Packit c76492
-Since 2.2.0-pre9 (on i386, somewhat later on
Packit c76492
-other architectures) it is an independent system call.
Packit c76492
-Support was added in glibc 2.0.112.
Packit c76492
-.SH BUGS
Packit c76492
-.PP
Packit c76492
-Details of the signal handling are obscure and differ between systems.
Packit c76492
-The BSD man page states:
Packit c76492
-"To avoid a possible deadlock situation, processes that are children
Packit c76492
-in the middle of a
Packit c76492
-.BR vfork ()
Packit c76492
-are never sent
Packit c76492
-.B SIGTTOU
Packit c76492
-or
Packit c76492
-.B SIGTTIN
Packit c76492
-signals; rather, output or
Packit c76492
-.IR ioctl s
Packit c76492
-are allowed and input attempts result in an end-of-file indication."
Packit c76492
-.\"
Packit c76492
-.\" As far as I can tell, the following is not true in 2.6.19:
Packit c76492
-.\" Currently (Linux 2.3.25),
Packit c76492
-.\" .BR strace (1)
Packit c76492
-.\" cannot follow
Packit c76492
-.\" .BR vfork ()
Packit c76492
-.\" and requires a kernel patch.
Packit c76492
-.SH SEE ALSO
Packit c76492
-.BR clone (2),
Packit c76492
-.BR execve (2),
Packit c76492
-.BR _exit (2),
Packit c76492
-.BR fork (2),
Packit c76492
-.BR unshare (2),
Packit c76492
-.BR wait (2)
Packit c76492
-.SH COLOPHON
Packit c76492
-This page is part of release 4.15 of the Linux
Packit c76492
-.I man-pages
Packit c76492
-project.
Packit c76492
-A description of the project,
Packit c76492
-information about reporting bugs,
Packit c76492
-and the latest version of this page,
Packit c76492
-can be found at
Packit c76492
-\%https://www.kernel.org/doc/man\-pages/.
Packit c76492
diff --git a/man2/wait4.2 b/man2/wait4.2
Packit c76492
index be31213..4fe7214 100644
Packit c76492
--- a/man2/wait4.2
Packit c76492
+++ b/man2/wait4.2
Packit c76492
@@ -67,6 +67,13 @@ Feature Test Macro Requirements for glibc (see
Packit c76492
         _BSD_SOURCE
Packit c76492
 .ad
Packit c76492
 .SH DESCRIPTION
Packit c76492
+.BR wait4 ()
Packit c76492
+system call is DEPRECATED, use
Packit c76492
+.BR waitpid (2)
Packit c76492
+or
Packit c76492
+.BR waitid (2)
Packit c76492
+instead!!!
Packit c76492
+.PP
Packit c76492
 These functions are obsolete; use
Packit c76492
 .BR waitpid (2)
Packit c76492
 or
Packit c76492
-- 
Packit c76492
2.17.1
Packit c76492