diff --git a/.cvsignore b/.cvsignore index 73a0b84..0831342 100644 --- a/.cvsignore +++ b/.cvsignore @@ -2,3 +2,4 @@ man-pages-extralocale.tar.bz2 man2.tar.gz man2_sys2.1.tar.gz man-pages-2.55.tar.bz2 +man-suid-bins.tar.bz2 diff --git a/man-pages-2.55-clone2.patch b/man-pages-2.55-clone2.patch new file mode 100644 index 0000000..4adb447 --- /dev/null +++ b/man-pages-2.55-clone2.patch @@ -0,0 +1,49 @@ +diff -urpN man-pages-2.55.kasal/man2/clone.2 man-pages-2.55/man2/clone.2 +--- man-pages-2.55.kasal/man2/clone.2 2007-06-19 16:07:34.000000000 +0200 ++++ man-pages-2.55/man2/clone.2 2007-06-19 16:06:10.000000000 +0200 +@@ -34,7 +34,7 @@ + .\" + .TH CLONE 2 2007-06-01 "Linux 2.6" "Linux Programmer's Manual" + .SH NAME +-clone \- create a child process ++clone, __clone2 \- create a child process + .SH SYNOPSIS + .nf + .B #include +@@ -43,6 +43,11 @@ clone \- create a child process + .BI " int " flags ", void *" "arg" ", ... " + .BI " /* pid_t *" pid ", struct user_desc *" tls \ + ", pid_t *" ctid " */ );" ++ ++.BI "int __clone2(int (*" fn ")(void *), void *" child_stack_base , ++.BI " size_t " stack_size ", int " flags ", void *" arg ", ..." ++.BI " /* pid_t *" pid ", struct user_desc *" tls \ ++", pid_t *" ctid " */ );" + .fi + .SH DESCRIPTION + .BR clone () +@@ -661,15 +666,14 @@ should not be called through vsyscall, b + On IA-64, a different system call is used: + .nf + +-.BI "int clone2(int (*" "fn" ")(void *), " +-.BI " void *" child_stack_base ", size_t " stack_size , +-.BI " int " flags ", void *" "arg" ", ... " +-.BI " /* pid_t *" pid ", struct user_desc *" tls \ ++.BI "int __clone2(int (*" fn ")(void *), void *" child_stack_base , ++.BI " size_t " stack_size ", int " flags ", void *" arg ", ..." ++.BI " /* pid_t *" pid ", struct user_desc *" tls \ + ", pid_t *" ctid " */ );" + .fi + .PP + The +-.BR clone2 () ++.BR __clone2 () + system call operates in the same way as + .BR clone (), + except that +diff -urpN man-pages-2.55.kasal/man2/__clone2.2 man-pages-2.55/man2/__clone2.2 +--- man-pages-2.55.kasal/man2/__clone2.2 1970-01-01 01:00:00.000000000 +0100 ++++ man-pages-2.55/man2/__clone2.2 2007-06-19 16:06:10.000000000 +0200 +@@ -0,0 +1 @@ ++.so man2/clone.2 diff --git a/man-pages-2.55-signal.patch b/man-pages-2.55-signal.patch new file mode 100644 index 0000000..0b243d0 --- /dev/null +++ b/man-pages-2.55-signal.patch @@ -0,0 +1,41 @@ +The situation is that though the kernel SIGRTMIN is still 32 on most +platforms, glibs defines SIGRTMIN and SIGRTMAX as functions calls. +Currently, SIGRTMIN is 34, but the man page may not mention it; the +value can change with a new build of glibc (even though the binary of +the caller has not changed). +[Thanks to Jakub Jelinek, for explaining this to me.] + +--- man-pages-2.55/man7/signal.7.sig 2007-05-12 15:12:02.000000000 +0200 ++++ man-pages-2.55/man7/signal.7 2007-06-20 13:21:12.000000000 +0200 +@@ -34,8 +34,10 @@ + .\" 2004-12-03, Modified mtk, added notes on RLIMIT_SIGPENDING + .\" 2006-04-24, mtk, Added text on changing signal dispositions, + .\" signal mask, and pending signals. ++.\" 2007-06-19, Stepan Kasal (skasal@redhat.com), modified ++.\" description of real-time signals + .\" +-.TH SIGNAL 7 2002-06-13 "Linux 2.4.18" "Linux Programmer's Manual" ++.TH SIGNAL 7 2007-06-19 "Linux 2.6" "Linux Programmer's Manual" + .SH NAME + signal \- list of available signals + .SH DESCRIPTION +@@ -226,13 +228,13 @@ + .SS "Real-time Signals" + Linux supports real-time signals as originally defined in the POSIX.1b + real-time extensions (and now included in POSIX.1-2001). +-Linux supports 32 real-time signals, numbered from 32 +-.RB ( SIGRTMIN ) +-to 63 +-.RB ( SIGRTMAX ). +-(Programs should always refer to real-time signals using notation ++Linux supports real-time signals numbered from ++.BR SIGRTMIN " to " SIGRTMAX . ++Programs should always refer to real-time signals using notation + .BR SIGRTMIN +n, +-since the range of real-time signal numbers varies across Unix systems.) ++since the range of real-time signal numbers depends on Linux kernel version ++and on libc build. ++And, of course, it varies across other Unix systems. + .PP + Unlike standard signals, real-time signals have no predefined meanings: + the entire set of real-time signals can be used for application-defined diff --git a/man-pages-2.55-syscalls-2.6.9.patch b/man-pages-2.55-syscalls-2.6.9.patch new file mode 100644 index 0000000..ebdceaf --- /dev/null +++ b/man-pages-2.55-syscalls-2.6.9.patch @@ -0,0 +1,691 @@ +--- man-pages-2.55/man2/socketcall.2.kasal 2006-12-27 04:55:15.000000000 +0100 ++++ man-pages-2.55/man2/socketcall.2 2007-06-14 21:18:48.000000000 +0200 +@@ -23,7 +23,10 @@ + .\" USA. + .\" + .\" Modified Tue Oct 22 22:11:53 1996 by Eric S. Raymond +-.TH SOCKETCALL 2 1995-04-15 "Linux 1.2.4" "Linux Programmer's Manual" ++.\" 2007-06-14, Stepan Kasal ++.\" -- update for 2.6.9 (add recvmsg, sendmsg) ++.\" ++.TH SOCKETCALL 2 2007-06-14 "Linux 2.6.9" "Linux Programmer's Manual" + .SH NAME + socketcall \- socket system calls + .SH SYNOPSIS +@@ -53,7 +56,9 @@ + .BR listen (2), + .BR recv (2), + .BR recvfrom (2), ++.BR recvmsg (2), + .BR send (2), ++.BR sendmsg (2), + .BR sendto (2), + .BR setsockopt (2), + .BR shutdown (2), +--- man-pages-2.55/man2/syscalls.2.kasal 2007-04-13 00:42:49.000000000 +0200 ++++ man-pages-2.55/man2/syscalls.2 2007-06-18 16:25:38.000000000 +0200 +@@ -1,6 +1,7 @@ + .\" Copyright (C) 1998 Andries Brouwer (aeb@cwi.nl) + .\" Modifications for 2.2 and 2.4 Copyright (C) 2002 Ian Redfern + .\" ++.\" Modifications for 2.6.9 Copyright (C) 2007 Red Hat, Inc. + .\" + .\" Permission is granted to make and distribute verbatim copies of this + .\" manual provided the copyright notice and this permission notice are +@@ -22,19 +23,22 @@ + .\" Formatted or processed versions of this manual, if unaccompanied by + .\" the source, must acknowledge the copyright and authors of this work. + .\" +-.TH SYSCALLS 2 2002-01-07 "Linux 2.4" "Linux Programmer's Manual" ++.\" Modified 2007-06-14 by Stepan Kasal ++.\" -- wrote script syscalls.sh ++.\" -- update for 2.6.9 ++.\" ++.TH SYSCALLS 2 2007-06-14 "Linux 2.6" "Linux Programmer's Manual" + .SH NAME + none \- list of all system calls + .SH SYNOPSIS +-Linux 2.4 system calls. ++Linux 2.6 system calls. + .SH DESCRIPTION + The system call is the fundamental interface between an application + and the Linux kernel. +-As of Linux 2.4.17, there are 1100 system calls +-listed in +-.IR /usr/src/linux/include/asm-*/unistd.h . +-This man page lists those that are common to most platforms. ++As of Linux 2.6.9, there are 945 system calls; ++this man page lists those that are common to most platforms. + ++.\" Use syscalls.sh when updating to a newer kernel. + _llseek(2), + _newselect(2), + _sysctl(2), +@@ -42,81 +46,121 @@ + access(2), + acct(2), + adjtimex(2), +-afs_syscall, ++afs\%_syscall(2), + alarm(2), + bdflush(2), + bind(2), +-break, ++break(2), + brk(2), +-cacheflush(2), + capget(2), + capset(2), + chdir(2), + chmod(2), +-chown(2), chown32, ++chown(2), ++chown32(2), + chroot(2), ++clock\%_get\%res(2), ++clock\%_get\%time(2), ++clock\%_nanosleep(2), ++clock\%_set\%time(2), + clone(2), + close(2), + connect(2), + creat(2), +-create_module(2), +-delete_module(2), ++create\%_module(2), ++delete\%_module(2), + dup(2), + dup2(2), ++epoll\%_create(2), ++epoll\%_ctl(2), ++epoll\%_wait(2), + execve(2), + exit(2), ++exit\%_group(2), ++fadvise64(2), ++fadvise64\%_64(2), + fchdir(2), + fchmod(2), +-fchown(2), fchown32, +-fcntl(2), fcntl64, ++fchown(2), ++fchown32(2), ++fcntl(2), ++fcntl64(2), + fdatasync(2), ++fget\%xattr(2), ++flistxattr(2), + flock(2), + fork(2), +-fstat(2), fstat64, ++fremovexattr(2), ++fset\%xattr(2), ++fstat(2), ++fstat64(2), + fstatfs(2), ++fstatfs64(2), + fsync(2), +-ftime, +-ftruncate(2), ftruncate64, ++ftime(2), ++ftruncate(2), ++ftruncate64(2), ++futex(2), + get\%_kernel\%_syms(2), + get\%cwd(2), +-get\%dents(2), get\%dents64, +-get\%egid(2), get\%egid32, +-get\%euid(2), get\%euid32, +-get\%gid(2), get\%gid32, +-get\%groups(2), get\%groups32, ++get\%dents(2), ++get\%dents64(2), ++get\%egid(2), ++get\%egid32(2), ++get\%euid(2), ++get\%euid32(2), ++get\%gid(2), ++get\%gid32(2), ++get\%groups(2), ++get\%groups32(2), + get\%itimer(2), +-get\%pagesize(2), + get\%peername(2), +-get\%pmsg, + get\%pgid(2), + get\%pgrp(2), + get\%pid(2), ++get\%pmsg(2), + get\%ppid(2), + get\%priority(2), +-get\%resgid(2), get\%resgid32, +-get\%resuid(2), get\%resuid32, ++get\%resgid(2), ++get\%resgid32(2), ++get\%resuid(2), ++get\%resuid32(2), + get\%rlimit(2), + get\%rusage(2), + get\%sid(2), + get\%sockname(2), + get\%sockopt(2), +-get\%tid, +-get\%timeofday(2), +-get\%uid(2), get\%uid32, +-gtty, +-idle, +-init_module(2), ++get\%tid(2), ++get\%time\%of\%day(2), ++get\%uid(2), ++get\%uid32(2), ++get\%xattr(2), ++gtty(2), ++idle(2), ++init\%_module(2), ++io\%_cancel(2), ++io\%_destroy(2), ++io\%_get\%events(2), ++io\%_set\%up(2), ++io\%_submit(2), + ioctl(2), +-io\%perm(2), +-iopl(2), ++ioperm(2), + ipc(2), + kill(2), +-lchown(2), lchown32, ++lchown(2), ++lchown32(2), ++lget\%xattr(2), + link(2), + listen(2), +-lock, ++listxattr(2), ++llistxattr(2), ++lock(2), ++lookup\%_dcookie(2), ++lremovexattr(2), + lseek(2), +-lstat(2), lstat64, ++lset\%xattr(2), ++lstat(2), ++lstat64(2), + madvise(2), + mincore(2), + mkdir(2), +@@ -124,11 +168,21 @@ + mlock(2), + mlockall(2), + mmap(2), +-modify_ldt(2), ++mmap2(2), + mount(2), + mprotect(2), +-mpx, ++mpx(2), ++mq\%_get\%setattr(2), ++mq\%_notify(2), ++mq\%_open(2), ++mq\%_timedreceive(2), ++mq\%_timedsend(2), ++mq\%_unlink(2), + mremap(2), ++msgctl(2), ++msgget(2), ++msgrcv(2), ++msgsnd(2), + msync(2), + munlock(2), + munlockall(2), +@@ -136,70 +190,97 @@ + nanosleep(2), + nfsservctl(2), + nice(2), +-oldfstat, oldlstat, oldolduname, oldstat, oldumount, olduname, ++oldlstat(2), + open(2), + pause(2), + personality(2), +-phys, + pipe(2), +-pivot_root(2), ++pivot\%_root(2), + poll(2), + prctl(2), +-pread(2), +-prof, profil, ++pread64(2), ++prof(2), ++profil(2), + ptrace(2), +-putpmsg, +-pwrite(2), +-query_module(2), ++putpmsg(2), ++pwrite64(2), ++query\%_module(2), + quotactl(2), + read(2), +-readahead, ++readahead(2), + readdir(2), + readlink(2), + readv(2), + reboot(2), +-recv(2), recvfrom(2), recvmsg(2), ++recv(2), ++recvfrom(2), ++recvmsg(2), ++remap\%_file\%_pages(2), ++removexattr(2), + rename(2), ++restart\%_syscall(2), + rmdir(2), +-rt_sigaction, +-rt_sigpending, +-rt_sigprocmask, +-rt_sigqueueinfo, +-rt_sigreturn, +-rt_sigsuspend, +-rt_sigtimedwait, +-sched_\%get_\%priority_max(2), +-sched_\%get_\%priority_min(2), +-sched_\%get\%param(2), +-sched_\%get\%scheduler(2), +-sched_\%rr_\%get_\%interval(2), +-sched_\%set\%param(2), +-sched_\%set\%scheduler(2), +-sched_\%yield(2), +-security, ++rt_sig\%action(2), ++rt_sig\%pending(2), ++rt_sig\%procmask(2), ++rt_sig\%queueinfo(2), ++rt_sig\%return(2), ++rt_sig\%suspend(2), ++rt_sig\%timedwait(2), ++sched\%_get\%_priority\%_max(2), ++sched\%_get\%_priority\%_min(2), ++sched\%_get\%affinity(2), ++sched\%_get\%param(2), ++sched\%_get\%scheduler(2), ++sched\%_rr\%_get\%_interval(2), ++sched\%_set\%affinity(2), ++sched\%_set\%param(2), ++sched\%_set\%scheduler(2), ++sched\%_yield(2), + select(2), ++semctl(2), ++semget(2), ++semop(2), ++semtimedop(2), ++send(2), + sendfile(2), +-send(2), sendmsg(2), sendto(2), ++sendfile64(2), ++sendmsg(2), ++sendto(2), ++set\%_tid\%_address(2), + set\%domainname(2), +-set\%fsgid(2), set\%fsgid32, +-set\%fsuid(2), set\%fsuid32, +-set\%gid(2), set\%gid32, +-set\%groups(2), set\%groups32, ++set\%fsgid(2), ++set\%fsgid32(2), ++set\%fsuid(2), ++set\%fsuid32(2), ++set\%gid(2), ++set\%gid32(2), ++set\%groups(2), ++set\%groups32(2), + set\%hostname(2), + set\%itimer(2), + set\%pgid(2), + set\%priority(2), +-set\%regid(2), set\%regid32, +-set\%resgid(2), set\%resgid32, +-set\%resuid(2), set\%resuid32, +-set\%reuid(2), set\%reuid32, ++set\%regid(2), ++set\%regid32(2), ++set\%resgid(2), ++set\%resgid32(2), ++set\%resuid(2), ++set\%resuid32(2), ++set\%reuid(2), ++set\%reuid32(2), + set\%rlimit(2), + set\%sid(2), + set\%sockopt(2), +-set\%timeofday(2), +-set\%uid(2), set\%uid32, +-setup(2), +-sgetmask(2), ++set\%time\%of\%day(2), ++set\%uid(2), ++set\%uid32(2), ++set\%xattr(2), ++sget\%mask(2), ++shmat(2), ++shmctl(2), ++shmdt(2), ++shmget(2), + shutdown(2), + sigaction(2), + sigaltstack(2), +@@ -211,11 +292,13 @@ + socket(2), + socketcall(2), + socketpair(2), +-ssetmask(2), +-stat(2), stat64, ++sset\%mask(2), ++stat(2), ++stat64(2), + statfs(2), ++statfs64(2), + stime(2), +-stty, ++stty(2), + swapoff(2), + swapon(2), + symlink(2), +@@ -223,51 +306,80 @@ + sysfs(2), + sysinfo(2), + syslog(2), ++tgkill(2), + time(2), ++timer\%_create(2), ++timer\%_delete(2), ++timer\%_get\%overrun(2), ++timer\%_get\%time(2), ++timer\%_set\%time(2), + times(2), +-truncate(2), truncate64, +-ulimit, ++tkill(2), ++truncate(2), ++truncate64(2), ++uget\%rlimit(2), ++ulimit(2), + umask(2), + umount(2), ++umount2(2), + uname(2), + unlink(2), + uselib(2), + ustat(2), + utime(2), ++utimes(2), + vfork(2), + vhangup(2), +-vm86(2), +-vm86old, + wait4(2), + waitpid(2), + write(2), + writev(2). + +-Of the above, 9 are obsolete, namely +-getrlimit, oldfstat, oldlstat, oldolduname, oldstat, olduname, +-readdir, select and vm86old +-(see also +-.BR obsolete (2)), +-and 15 are unimplemented in the standard kernel, namely +-afs_syscall, break, ftime, getpmsg, gtty, idle, lock, mpx, phys, +-prof, profil, putpmsg, security, stty and ulimit (see also +-.BR unimplemented (2)). ++Of the above, 5 are not implemented in standard kernel, reserved for future ++or special use, namely ++afs_syscall, ++getpmsg, ++putpmsg, ++kexec_load, ++vserver. ++. ++For example, the getpmsg and putpmsg calls are for kernels patched to support streams, and ++may never be in the standard kernel. ++. ++Another 12 system calls are unimplemented obsolete calls, namely ++break, ++create_module, ++ftime, ++get_kernel_syms, ++gtty, ++lock, ++mpx, ++prof, ++profil, ++stty, ++sys_query_module, ++ulimit. ++. + However, + .BR ftime (3), +-.BR profil (3) ++.BR profil (3), + and + .BR ulimit (3) + exist as library routines. +-The slot for phys is in use since 2.1.116 for umount; ++. ++Another unimplemented obsolete system call was phys; ++but its slot is in use since 2.1.116 for umount, so + phys will never be implemented. +-The getpmsg and putpmsg calls are for +-kernels patched to support streams, and may never be in the standard +-kernel. +-The security call is for future use. ++. ++(See also ++.BR obsolete (2) ++and ++.BR unimplemented (2).) ++ + + Roughly speaking, the code belonging to the system call + with number __NR_xxx defined in +-.I /usr/include/asm/unistd.h ++.I /usr/include/asm-*/unistd.h + can be found in the kernel source in the routine + .IR sys_xxx (). + (The dispatch table for i386 can be found in +@@ -279,16 +391,16 @@ + proprietary OS emulation, such as parisc, sparc, sparc64 and alpha, + there are many additional system calls; mips64 also contains a full + set of 32-bit system calls. +-Below the details for Linux 2.4.17. + + The defines __NR_oldstat and __NR_stat refer to the routines +-sys_stat() and sys_newstat(), and similarly for ++.IR sys_stat "() and " sys_newstat (), ++and likewise for + .I fstat + and + .IR lstat . + Similarly, the defines __NR_oldolduname, __NR_olduname and +-__NR_uname refer to the routines sys_olduname(), sys_uname() +-and sys_newuname(). ++__NR_uname refer to the routines ++.IR sys_olduname "(), " sys_uname "(), and " sys_newuname (). + Thus, __NR_stat and __NR_uname have always referred to the latest + version of the system call, and the older ones are for backward + compatibility. +@@ -316,7 +428,7 @@ + superseded by sys_getdents(). + + On many platforms, including i386, socket calls are all multiplexed +-through socketcall() and System V IPC calls through ipc(). ++through socketcall(2) and System V IPC calls through ipc(2). + + On newer platforms that only have 64-bit file access and 32-bit uids + (e.g. alpha, ia64, s390x) there are no *64 or *32 calls. +@@ -328,3 +440,4 @@ + *32 calls were added for kernel 2.4, as were the new versions of + getrlimit and mmap, and the new calls pivot_root, mincore, madvise, + security, gettid and readahead. ++The security call is no longer present in 2.6 kernels. +--- man-pages-2.55/man2/ipc.2.kasal 2007-05-12 11:06:04.000000000 +0200 ++++ man-pages-2.55/man2/ipc.2 2007-06-14 20:47:47.000000000 +0200 +@@ -23,7 +23,10 @@ + .\" USA. + .\" + .\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond +-.TH IPC 2 1995-04-15 "Linux 1.2.4" "Linux Programmer's Manual" ++.\" 2007-06-14, Stepan Kasal ++.\" -- update for 2.6.9 (add semtimedop) ++.\" ++.TH IPC 2 2007-06-14 "Linux 2.6.9" "Linux Programmer's Manual" + .SH NAME + ipc \- System V IPC system calls + .SH SYNOPSIS +@@ -55,6 +58,7 @@ + .BR semctl (2), + .BR semget (2), + .BR semop (2), ++.BR semtimedop (2), + .BR shmat (2), + .BR shmctl (2), + .BR shmdt (2), +--- man-pages-2.55/scripts/syscalls.sh.kasal 2007-06-18 16:30:54.000000000 +0200 ++++ man-pages-2.55/scripts/syscalls.sh 2007-06-18 16:40:30.000000000 +0200 +@@ -0,0 +1,136 @@ ++#!/bin/sh ++# ++# This script examines Linux source tree and prints a summary about ++# the system calls. ++# ++# Copyright (C) 2007 Red Hat, Inc. ++# ++# Written by Stepan Kasal ++# ++# This script is free software; Red Hat, Inc. gives unlimited ++# permission to copy and/or distribute it, with or without ++# modifications, as long as this notice is preserved. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++# The root of the source tree: ++#src_tree=/usr/src/linux ++src_tree=linux-2.6.9 ++ ++export LC_ALL=C ++ ++awk ' ++BEGIN { ++ # First, remove "#define ": ++ re_define = "^[[:blank:]]*#[[:blank:]]*define[[:blank:]]+" ++ ++ # the remaining definition of a symbol: ++ re_sym1 = "([_[:alnum:]]+)[[:blank:]].*$" ++ ++ # a general symbol: ++ re_symbol = re_define re_sym1 ++ ++ # a socket symbol in include/linux/net.h: ++ re_sys_symbol = re_define "SYS_" re_sym1 ++ ++ # a special variant for syscall number definitions: ++ re_nr = re_define "__NR_" re_sym1 ++ ++ # a special case of the previous, a redefine: ++ # Note: in linux 2.6.9, this matches only the "_exit" alias to "exit". ++ re_nr_redefine = re_define "__NR_([_[:alnum:]]+)[[:blank:]]+__NR_[_[:alnum:]]+.*$" ++} ++ ++# net.h -- socket defines: ++FILENAME ~ /\/net\.h$/ && $0 ~ re_sys_symbol { ++ symbol = gensub(re_sys_symbol, "\\1", 1) ++ socket_syscall[tolower(symbol)] ++} ++ ++# ipc.h defines: ++FILENAME ~ /\/ipc\.h$/ && $0 ~ re_symbol { ++ symbol = gensub(re_symbol, "\\1", 1) ++ ++ # A comment appearing in several include/asm-*/ipc.h files says: ++ # "/* Used by the DIPC package, try and avoid reusing it */" ++ # Thus I guess it is OK to omit it: ++ if (symbol == "DIPC") next ++ ++ ipc_syscall[tolower(symbol)] ++} ++ ++# unistd.h syscall defines: ++FILENAME ~ /\/unistd\.h$/ && ++ $0 ~ re_nr && ++ $0 !~ re_nr_redefine { ++ syscall=gensub(re_nr,"\\1",1) ++ # This is not a syscall: ++ if (syscall == "syscall_max") next ++ arch=gensub(/.*\/asm-(.*)\/unistd\.h/,"\\1",1,FILENAME) ++ if(!(arch in arch_list)) { ++ n_arch++ ++ arch_list[arch] ++ } ++ a[syscall] ++ # beware, the syscall can be named several times in a file: ++ list[syscall] = list[syscall] " "arch ++} ++ ++# The main body: ++END { ++ handle_multi("socketcall", socket_syscall) ++ handle_multi("ipc", ipc_syscall) ++ report() ++} ++ ++function handle_multi(multi_syscall, sys_array, i,n,s) { ++ printf("%s multiplexor, check man2/%s.2:\n\n", ++ multi_syscall, multi_syscall) ++ n = asorti(sys_array) ++ for (i = 1; i <= n; i++) { ++ s = sys_array[i] ++ print ".BR", s, "(2)" (i==n ? "" : ",") ++ multiplexed[s] ++ a[s] ++ } ++ print "" ++ # and make sure that report() lists the multiplexing call, too: ++ multiplexed[multi_syscall] ++} ++ ++function report( n,i) { ++ n = asorti(a) ++ print "Total number of syscalls:", n ++ print "" ++ for (i = 1; i <= n; i++) ++ if (common_to_most_platforms(a[i])) ++ print format(a[i]) "(2)" (i==n ? "." : ",") ++} ++ ++function common_to_most_platforms(syscall, i, arch_list, arch_a, num) { ++ if (syscall in multiplexed) ++ return 1 ++ # These two are x86 specific, yet they are mentioned in many ++ # unistd.h files, apparently for historical reasons: ++ if (syscall == "vm86" || syscall == "iopl") ++ return 0 ++ for (i = split(list[syscall], arch_list); i > 0; i--) ++ arch_a[arch_list[i]] ++ num = asort(arch_a) ++ return num > n_arch/2 ++} ++ ++function format(s) { ++ sub(/timeofday/,"time\\%of\\%day",s) ++ gsub(/(^.?|_)[sg]et/,"&\\%",s) ++ sub(/^rt_sig/,"&\\%",s) || gsub(/_/,"\\%_",s) ++ sub(/^\\%/, "", s) ++ gsub(/\\%(\\%)+/, "\\%", s) ++ return s ++} ++' $src_tree/include/linux/net.h \ ++ $src_tree/include/asm-*/ipc.h \ ++ $src_tree/include/asm-*/unistd.h diff --git a/man-pages.spec b/man-pages.spec index 9b0be0f..46426f8 100644 --- a/man-pages.spec +++ b/man-pages.spec @@ -1,13 +1,15 @@ Summary: Man (manual) pages from the Linux Documentation Project Name: man-pages Version: 2.55 -Release: 1%{?dist} +Release: 2%{?dist} License: distributable Group: Documentation URL: http://www.kernel.org/pub/linux/docs/manpages/ Source0: http://www.kernel.org/pub/linux/docs/manpages/man-pages-%{version}.tar.bz2 Source1: rpcgen.1 Source2: resolver.5 +# from Debian: +Source3: uuname.1 Source6: man-pages-extralocale.tar.bz2 Source9: man2.tar.gz Source10: sln.8 @@ -15,6 +17,8 @@ Source11: man2_sys.tar.gz Source12: gai.conf.5 Source13: nss.5 Source14: man2_sys2.1.tar.gz +# IBM-supplied man pages for suid binaries: +Source15: man-suid-bins.tar.bz2 Patch1: man-pages-1.51-iconv.patch Patch8: man-pages-2.48-fs.patch Patch24: man-pages-2.51-malloc.patch @@ -31,6 +35,11 @@ Patch44: man-pages-2.43-fadvise.patch Patch45: man-pages-2.48-passwd.patch Patch46: man-pages-2.51-nscd-conf.patch Patch47: man-pages-2.51-typos.patch +Patch48: man-pages-2.51-sched_setaffinity.patch +Patch49: man-pages-2.55-syscalls-2.6.9.patch +# Accepted upstream for 2.61: +Patch50: man-pages-2.55-clone2.patch +Patch51: man-pages-2.55-signal.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Autoreq: false @@ -41,16 +50,17 @@ A large collection of man pages (documentation) from the Linux Documentation Project (LDP). %prep -%setup -q -a 9 - -tar jxf %{SOURCE6} -cp -a %{SOURCE1} man1 -cp -a %{SOURCE2} man5 -cp -a %{SOURCE10} man8 -cp -a %{SOURCE12} man5 -cp -a %{SOURCE13} man5 -tar xzf %{SOURCE14} -tar xzf %{SOURCE11} +%setup -q -a 6 -a 9 -a 11 -a 14 -a 15 + +for manpage in \ + %{SOURCE1} \ + %{SOURCE2} \ + %{SOURCE10} \ + %{SOURCE12} \ + %{SOURCE13} +do + cp -p $manpage man${manpage##*.} +done %patch1 -p1 %patch8 -p1 @@ -68,6 +78,10 @@ tar xzf %{SOURCE11} %patch45 -p1 %patch46 -p1 %patch47 -p1 +%patch48 -p1 +%patch49 -p1 +%patch50 -p1 +%patch51 -p1 ### And now remove those we are not going to use: @@ -106,20 +120,16 @@ rm -f man3/infnan.3 rm -fv man5/fstab.5 # Only briefly part of a devel version of glibc -rm -f man3/getipnodebyname.3 -rm -f man3/getipnodebyaddr.3 -rm -f man3/freehostent.3 +rm -f man3/getipnodeby{name,addr}.3 man3/freehostent.3 # Part of libcap -rm -fv man2/capget.2 -rm -fv man2/capset.2 +rm -fv man2/cap{get,set}.2 #Compress/Uncompress man pages -rm -rf man1p/uncompress.1p -rm -rf man1p/compress.1p +rm -f man1p/{,un}compress.1p #Part of util-linux -rm -rf man1p/renice.1p +rm -f man1p/renice.1p # Part of libattr-devel rm -f man2/{,f,l}{get,list,remove,set}xattr.2* @@ -138,6 +148,9 @@ rm -f man2/pciconfig_{write,read,iobase}.2 find . -name "*sudo*" | xargs --no-run-if-empty rm +# We do not have sccs +rm -f man1p/{admin,delta,get,prs,rmdel,sact,sccs,unget,val,what}.1p + %build : Nothing to build. @@ -177,14 +190,24 @@ rm -rf $RPM_BUILD_ROOT %lang(en) %{_mandir}/en/man* %changelog +* Mon Jun 11 2007 Stepan Kasal - 2.55-2 +- Add man-suid-bins.tar.bz2 and uuname.1 to document suid binaries + (submitted through bug #196352). +- Add man-pages-2.51-sched_setaffinity.patch, fixing the prototypes. +- Remove sccs-related man pages. +- Add man-pages-2.55-syscalls-2.6.9.patch, updating syscalls.2 to kernel + version 2.6.9. +- Add man-pages-2.55-clone2.patch; s/clone2/__&/, clone2 is not exported. +- Add man-pages-2.55-signal.patch; SIGRTMIN is not constant. + * Mon Jun 11 2007 Ivana Varekova - 2.55-1 - update to 2.55 * Mon Jun 4 2007 Stepan Kasal - 2.51-4 -- Simplified the build and installed phases; pages are now recoded - during the install. -- Moved the "rm" commands from build to prep. -- Added epoll_pwait.patch to fix a circular link. +- Simplify the build and install phases; pages are now recoded during the + install. +- Move the "rm" commands from build to prep. +- Add man-pages-2.51-epoll_pwait.patch to fix a circular link. * Mon Jun 4 2007 Stepan Kasal - 2.51-3 - Add man-pages-2.51-nscd-conf.patch, fixes #204596 diff --git a/sources b/sources index a757031..b223176 100644 --- a/sources +++ b/sources @@ -2,3 +2,4 @@ af09d031dcee66929510e078d00066f2 man2.tar.gz fbc03fdbc665e24961d30dad3ed8596d man2_sys2.1.tar.gz 33cfe1ef34a60af835457610468086d7 man-pages-2.55.tar.bz2 +a9c6a14e5b34c18c3684a0b68322572f man-suid-bins.tar.bz2 diff --git a/uuname.1 b/uuname.1 new file mode 100644 index 0000000..3a23e94 --- /dev/null +++ b/uuname.1 @@ -0,0 +1,33 @@ +.\" This is under the same license as uuname itself +.TH UUNAME 1 +.SH NAME +uuname \- List the names of the known remote UUCP sites. +.SH SYNOPSIS +.B uuname +[\fI\-a\fR] [\fI\-l\fR] [\fI\-I file\fR] +.SH DESCRIPTION +.I Uuname +is a program that lists the names of the known remote UUCP sites. +.SH OPTIONS +.TP +\fB-a\fR, \fB--aliases\fR +Display aliases. +.TP +\fB-l\fR, \fB--local\fR +Print the local name. +.TP +\fB-I\fR, \fB--config\fR \fIfile\fR +Set the configuration file to use. +.TP +\fB-v\fR, \fB--version\fR +Print the software version and exit. +.TP +\fB--help\fR +Print a help screen and exit. +.SH BUGS +None apparent. +.SH "SEE ALSO" +.BR uucp(1) +.SH AUTHOR +This manual page is a quick write-up for Debian done by Kevin Kreamer +, by making a manpage out of \fBuuname\fR \fI--help\fR.