Module Name: src Committed By: wiz Date: Fri Dec 16 12:46:02 UTC 2011
Modified Files: src/distrib/sets/lists/comp: mi src/lib/libc/gen: Makefile.inc Added Files: src/lib/libc/gen: extattr_copy_file.3 extattr_namespace_to_string.3 Removed Files: src/lib/libc/gen: extattr.3 Log Message: Split extattr(3) into two man pages to get rid of ugly duplicate Nd. Work done by Abhinav Upadhyay with minimal cleanup. To generate a diff of this commit: cvs rdiff -u -r1.1716 -r1.1717 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.180 -r1.181 src/lib/libc/gen/Makefile.inc cvs rdiff -u -r1.5 -r0 src/lib/libc/gen/extattr.3 cvs rdiff -u -r0 -r1.1 src/lib/libc/gen/extattr_copy_file.3 \ src/lib/libc/gen/extattr_namespace_to_string.3 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/comp/mi diff -u src/distrib/sets/lists/comp/mi:1.1716 src/distrib/sets/lists/comp/mi:1.1717 --- src/distrib/sets/lists/comp/mi:1.1716 Sun Dec 4 21:08:37 2011 +++ src/distrib/sets/lists/comp/mi Fri Dec 16 12:46:01 2011 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1716 2011/12/04 21:08:37 jym Exp $ +# $NetBSD: mi,v 1.1717 2011/12/16 12:46:01 wiz Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -6402,7 +6402,7 @@ ./usr/share/man/cat3/expf.0 comp-c-catman .cat ./usr/share/man/cat3/expm1.0 comp-c-catman .cat ./usr/share/man/cat3/expm1f.0 comp-c-catman .cat -./usr/share/man/cat3/extattr.0 comp-c-catman .cat +./usr/share/man/cat3/extattr.0 comp-obsolete obsolete ./usr/share/man/cat3/extattr_copy_fd.0 comp-c-catman .cat ./usr/share/man/cat3/extattr_copy_file.0 comp-c-catman .cat ./usr/share/man/cat3/extattr_copy_link.0 comp-c-catman .cat @@ -12652,7 +12652,7 @@ ./usr/share/man/html3/expf.html comp-c-htmlman html ./usr/share/man/html3/expm1.html comp-c-htmlman html ./usr/share/man/html3/expm1f.html comp-c-htmlman html -./usr/share/man/html3/extattr.html comp-c-htmlman html +./usr/share/man/html3/extattr.html comp-obsolete obsolete ./usr/share/man/html3/extattr_copy_fd.html comp-c-htmlman html ./usr/share/man/html3/extattr_copy_file.html comp-c-htmlman html ./usr/share/man/html3/extattr_copy_link.html comp-c-htmlman html @@ -18814,7 +18814,7 @@ ./usr/share/man/man3/expf.3 comp-c-man .man ./usr/share/man/man3/expm1.3 comp-c-man .man ./usr/share/man/man3/expm1f.3 comp-c-man .man -./usr/share/man/man3/extattr.3 comp-c-man .man +./usr/share/man/man3/extattr.3 comp-obsolete obsolete ./usr/share/man/man3/extattr_copy_fd.3 comp-c-man .man ./usr/share/man/man3/extattr_copy_file.3 comp-c-man .man ./usr/share/man/man3/extattr_copy_link.3 comp-c-man .man Index: src/lib/libc/gen/Makefile.inc diff -u src/lib/libc/gen/Makefile.inc:1.180 src/lib/libc/gen/Makefile.inc:1.181 --- src/lib/libc/gen/Makefile.inc:1.180 Thu Aug 25 18:20:22 2011 +++ src/lib/libc/gen/Makefile.inc Fri Dec 16 12:46:00 2011 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.180 2011/08/25 18:20:22 joerg Exp $ +# $NetBSD: Makefile.inc,v 1.181 2011/12/16 12:46:00 wiz Exp $ # from: @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 # gen sources @@ -55,7 +55,7 @@ COPTS.syslog.c = -Wno-format-nonliteral MAN+= alarm.3 arc4random.3 basename.3 bswap.3 clock.3 closefrom.3 \ confstr.3 \ cpuset.3 ctermid.3 ctype.3 daemon.3 devname.3 directory.3 dirname.3 \ - endutxent.3 err.3 exec.3 extattr.3 \ + endutxent.3 err.3 exec.3 extattr_copy_file.3 extattr_namespace_to_string.3 \ fmtcheck.3 fmtmsg.3 fnmatch.3 fpclassify.3 fpgetmask.3 \ ftok.3 fts.3 ftw.3 \ getbsize.3 cgetcap.3 getcwd.3 getdevmajor.3 \ @@ -93,14 +93,12 @@ MLINKS+=err.3 verr.3 err.3 errx.3 err.3 err.3 warnx.3 err.3 vwarnx.3 MLINKS+=exec.3 execl.3 exec.3 execle.3 exec.3 execlp.3 exec.3 execv.3 \ exec.3 execvp.3 exec.3 exect.3 -MLINKS+=extattr.3 extattr_namespace_to_string.3 \ - extattr.3 extattr_string_to_namespace.3 \ - extattr.3 extattr_copy_file.3 \ - extattr.3 extattr_copy_fd.3 \ - extattr.3 extattr_copy_link.3 \ - extattr.3 cpxattr.3 \ - extattr.3 fcpxattr.3 \ - extattr.3 lcpxattr.3 +MLINKS+=extattr_namespace_to_string.3 extattr_string_to_namespace.3 \ + extattr_copy_file.3 extattr_copy_fd.3 \ + extattr_copy_file.3 extattr_copy_link.3 \ + extattr_copy_file.3 cpxattr.3 \ + extattr_copy_file.3 fcpxattr.3 \ + extattr_copy_file.3 lcpxattr.3 MLINKS+=fpgetmask.3 fpgetround.3 fpgetmask.3 fpgetsticky.3 \ fpgetmask.3 fpsetmask.3 fpgetmask.3 fpsetround.3 \ fpgetmask.3 fpsetsticky.3 fpgetmask.3 fpgetprec.3 \ Added files: Index: src/lib/libc/gen/extattr_copy_file.3 diff -u /dev/null src/lib/libc/gen/extattr_copy_file.3:1.1 --- /dev/null Fri Dec 16 12:46:02 2011 +++ src/lib/libc/gen/extattr_copy_file.3 Fri Dec 16 12:46:00 2011 @@ -0,0 +1,110 @@ +.\" $NetBSD: extattr_copy_file.3,v 1.1 2011/12/16 12:46:00 wiz Exp $ +.\" +.\" Copyright (c) 2001 Dima Dorfman <d...@freebsd.org> +.\" Copyright (c) 2011 Emmanuel Dreyfus <m...@netbsd.org> +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" FreeBSD: src/lib/libc/posix1e/extattr.3,v 1.5 2002/12/12 17:25:53 ru Exp +.\" +.Dd December 16, 2011 +.Dt EXTATTR_COPY_FILE 3 +.Os +.Sh NAME +.Nm extattr_copy_file , +.Nm extattr_copy_fd , +.Nm extattr_copy_link , +.Nm cpxattr , +.Nm fcpxattr , +.Nm lcpxattr +.Nd copy extended attributes from a file to another one +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In sys/extattr.h +.Ft int +.Fn extattr_copy_file "const char *from" "const char *to" "int namespace" +.Ft int +.Fn extattr_copy_fd "int from_fd" "int to_fd" "int namespace" +.Ft int +.Fn extattr_copy_link "const char *from" "const char *to" "int namespace" +.Ft int +.Fn cpxattr "const char *from" "const char *to" +.Ft int +.Fn fcpxattr "int from_fd" "int to_fd" +.Ft int +.Fn lcpxattr "const char *from" "const char *to" +.Sh DESCRIPTION +.Fn extattr_copy_file +copies extended attributes of namespace +.Ar namespace +from a file to another one. +.Fn extattr_copy_fd +does the same using open file descriptors, and +.Fn extattr_copy_link +does the same as +.Fn extattr_copy_file +but operates on symbolic links themselves instead of their targets. +.Pp +.Fn cpxattr , +.Fn fcpxattr , +and +.Fn lcpxattr +respectively work the same was as +.Fn extattr_copy_file , +.Fn extattr_copy_fd , +and +.Fn extattr_copy_link , +but will copy extended attributes from all namespaces accessible to the user, +silently skiping unaccessible namespaces. +.Pp +Please note that none of the extended attribute copying functions are atomic. +.Sh RETURN VALUES +If any of the calls are unsuccessful, the value \-1 is returned +and the global variable +.Va errno +is set to indicate the error. +.Sh ERRORS +.Bl -tag -width Er +.It Bq Er EINVAL +The requested namespace could not be identified. +.El +.Pp +Extended attribute copying functions may also raise errors produced by +.Fn extattr_list_file +and +.Fn extattr_get_file . +.Sh SEE ALSO +.Xr getextattr 1 , +.Xr extattr_get_file 2 , +.Xr extattr_namespace_to_string 3 , +.Xr extattr 9 +.Sh HISTORY +Extended attribute support was developed as part of the +.Tn TrustedBSD +Project, and introduced in +.Fx 5.0 +and +.Nx 3.0 . +It was developed to support security extensions requiring additional labels +to be associated with each file or directory. Index: src/lib/libc/gen/extattr_namespace_to_string.3 diff -u /dev/null src/lib/libc/gen/extattr_namespace_to_string.3:1.1 --- /dev/null Fri Dec 16 12:46:02 2011 +++ src/lib/libc/gen/extattr_namespace_to_string.3 Fri Dec 16 12:46:00 2011 @@ -0,0 +1,101 @@ +.\" $NetBSD: extattr_namespace_to_string.3,v 1.1 2011/12/16 12:46:00 wiz Exp $ +.\" +.\" Copyright (c) 2001 Dima Dorfman <d...@freebsd.org> +.\" Copyright (c) 2011 Emmanuel Dreyfus <m...@netbsd.org> +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" FreeBSD: src/lib/libc/posix1e/extattr.3,v 1.5 2002/12/12 17:25:53 ru Exp +.\" +.Dd December 16, 2011 +.Dt EXTATTR_NAMESPACE_TO_STRING 3 +.Os +.Sh NAME +.Nm extattr_namespace_to_string , +.Nm extattr_string_to_namespace +.Nd convert an extended attribute namespace identifier to a string and vice versa +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In sys/extattr.h +.Ft int +.Fn extattr_namespace_to_string "int attrnamespace" "char **string" +.Ft int +.Fn extattr_string_to_namespace "const char *string" "int *attrnamespace" +.Sh DESCRIPTION +The +.Fn extattr_namespace_to_string +function converts a VFS extended attribute identifier to a human-readable +string. +The +.Fn extattr_string_to_namespace +converts a human-readable string representing a namespace to a +namespace identifier. +Although a file system may implement arbitrary namespaces, +these functions only support the +.Dv EXTATTR_NAMESPACE_USER +.Pq Dq user +and +.Dv EXTATTR_NAMESPACE_SYSTEM +.Pq Dq system +namespaces, +which are defined in +.Xr extattr 9 . +.Pp +These functions are meant to be used in error reporting and other +interactive tasks. +For example, +instead of printing the integer identifying an extended attribute in +an error message, +a program might use +.Fn extattr_namespace_to_string +to obtain a human-readable representation. +Likewise, +instead of requiring a user to enter the integer representing a namespace, +an interactive program might ask for a name and use +.Fn extattr_string_to_namespace +to get the desired identifier. +.Sh RETURN VALUES +If any of the calls are unsuccessful, the value \-1 is returned +and the global variable +.Va errno +is set to indicate the error. +.Sh ERRORS +.Bl -tag -width Er +.It Bq Er EINVAL +The requested namespace could not be identified. +.El +.Sh SEE ALSO +.Xr getextattr 1 , +.Xr extattr_get_file 2 , +.Xr extattr_copy_file 3 , +.Xr extattr 9 +.Sh HISTORY +Extended attribute support was developed as part of the +.Tn TrustedBSD +Project, and introduced in +.Fx 5.0 +and +.Nx 3.0 . +It was developed to support security extensions requiring additional labels +to be associated with each file or directory.