From e4e19d87a071a0ef83c03b3098acb6d5859eef9e Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Fri, 30 Mar 2007 11:16:00 +0200 Subject: * ChangeLog-selinux: Remove file. Move its contents into this file, removing old dates. --- ChangeLog | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++ ChangeLog-selinux | 208 ------------------------------------------------------ 2 files changed, 202 insertions(+), 208 deletions(-) delete mode 100644 ChangeLog-selinux diff --git a/ChangeLog b/ChangeLog index f3549aa80..70bfce781 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,205 @@ +2007-03-30 Jim Meyering + + * ChangeLog-selinux: Remove file. + Move its contents into this file, removing old dates. + + * src/runcon.c (main): Don't reorder arguments. Reported by + Ulrich Drepper in . + * tests/misc/runcon-no-reorder: New file. Test for the above. + * tests/misc/Makefile.am (TESTS): Add runcon-no-reorder. + + * src/runcon.c (main): Remove "." at end of a diagnostic. + + * src/runcon.c: New program. + * src/Makefile.am (bin_PROGRAMS): Add runcon. + (runcon_LDADD): Define. + * README: Add runcon to the list of programs. + * AUTHORS: Add this: runcon: Russell Coker + * tests/help-version: Add runcon as an exception. + * man/Makefile.am (dist_man_MANS): Add runcon.1. + (runcon.1): New dependency. + + mkfifo, mknod: Accept new "-Z, --context=C" option. + * src/mkfifo.c, src/mknod.c: Include . + (main): Honor it. + * src/Makefile.am (mkfifo_LDADD, mknod_LDADD): Use $(LIB_SELINUX). + + mkdir: Accept new "-Z, --context=C" option. + * src/mkdir.c: Include . + (main): Honor it. + * src/Makefile.am (mkdir_LDADD): Use $(LIB_SELINUX). + + * tests/cp/cp-a-selinux: New file. Test for the bug reported in + . + * tests/cp/Makefile.am (TESTS): Add cp-a-selinux. + + * tests/selinux: New file. + * tests/Makefile.am (EXTRA_DIST): Add selinux. + * tests/misc/selinux: Source the new script, rather than open coding it. + + Change how "cp -a" and "cp --preserve=context" work with SELinux. + Now, cp -a attempts to preserve context, but failure to do so does + not change cp's exit status. However "cp --preserve=context" is + similar, but failure *does* cause cp to exit with nonzero status. + * src/copy.h (struct cp_options) [require_preserve_context]: New member. + * src/copy.c (copy_reg, copy_internal): Implement the above. + * src/mv.c (cp_option_init): Initialize the new member. + * src/install.c (cp_option_init): Likewise. + * src/cp.c (cp_option_init): Likewise. + (decode_preserve_arg): Set it or reset it. + + cp, mv, install: add SELinux support, but unlike with the Red Hat + patch, mv and cp do not provide the "-Z context" option. + * src/copy.c: Include . + (restore_default_fscreatecon): New function. + (copy_reg): Make cp --preserve=context work for existing destination. + (copy_internal): Likewise for new destinations. + * src/copy.h (cp_options) [preserve_security_context]: New member. + * src/cp.c: Include . + (selinux_enabled): New global. + (usage): Mention new --preserve=context option. + (PRESERVE_CONTEXT): Define/use. + (decode_preserve_arg): Handle PRESERVE_CONTEXT. + (main): Remove an obsolete comment. + If --preserve=context is specified on a system without SELinux + enabled, give a diagnostic and fail. + * src/mv.c: Include . + Set x->preserve_security_context if SELinux is enabled. + * src/install.c: Accept new "-Z, --context=C" option. + Accept --preserve-context option (but not -P option). + Accept alternate spelling: --preserve_context, for now. + Include and "quotearg.h". + (selinux_enabled, use_default_selinux_context): New globals. + (PRESERVE_CONTEXT_OPTION): Define. + (cp_option_init): Default: do not preserve security context. + (setdefaultfilecon): New function. + (main): Honor new options. + * src/Makefile.am (mv_LDADD, cp_LDADD, ginstall_LDADD): + Add $(LIB_SELINUX). + * src/system.h (GETOPT_SELINUX_CONTEXT_OPTION_DECL): Define. + + * tests/misc/selinux [VERBOSE]: Print version info for each + of the tested tools, not just ls. + + * src/c99-to-c89.diff: Remove the ls.c patch, now that I've + temporarily removed the offending c99'ism. + + * src/chcon.c (usage): Split a string literal that was longer than 509. + + * src/ls.c (gobble_file): Don't call getfilecon unless print_scontext. + Upon failed getfilecon, accept not just ENOTSUP, but also ENODATA. + + * src/c99-to-c89.diff: Adjust offsets. + + * AUTHORS: Add chcon. + + * src/c99-to-c89.diff: Remove trailing blanks. + + * src/chcon.c: Don't include "dirname.h". system.h already includes it. + + * gl/lib/selinux-at.c: Remove a use of HAVE_CONFIG_H. + + * src/c99-to-c89.diff: Handle a new c99'ism in ls.c. + + * src/id.c (main): Tweak id -Z diagnostic. + + id: Add SELinux support: -Z option. + * src/id.c (main): Apply patches from Fedora, with these changes: + Remove #ifdef WITH_SELINUX. + Use error (EXIT_FAILURE, not fprintf+exit(1). + * src/Makefile.am (id_LDADD): Define, so as to add $(LIB_SELINUX). + + stat: Add support for SELinux in the form of a %C format directive. + * src/stat.c (follow_links): Make this variable file-global. + (out_file_context): New function. + (print_statfs): Honor %C. + (print_stat): Honor %C. + (do_stat): Remove follow_links parameter. + (usage): Document the two %C directives. + (main): Accept -Z (though it's a no-op). + * src/Makefile.am (stat_LDADD): Define. + + ls: Add support for SELinux and a slightly modified -Z option. + I started with the patches from Red Hat. + The entries below tell how the code evolved. + + * src/ls.c (print_long_format, print_file_name_and_frills): When + there is no security context (due to getfilecon/lgetfilecon failing + with e.g. ENOTSUP), print it as "?", not "". + * src/ls.c (print_file_name_and_frills): Make -Z work without -l. + (length_of_file_name_and_frills): Likewise. + + * src/ls.c: Remove the --lcontext and --scontext options. + Change the way -Z, --context work so that it no longer implies -l. + Thus, -Z -l will work like -lcontext and -Z without -l will work + like --scontext. + + Adjust tests to reflect new 'ls -l' syntax -- affects only + systems with SELinux when operating on a file with no ACL. + These tests assumed that everything before the first space on + each line is the 10-byte mode string. But there may also be a "+" + in the 11th column, just before the space. However, note that this + is not new. The same thing would have happened even without the + change below, when listing a file with an ACL. + * tests/chmod/equals, tests/cp/cp-parents, tests/cp/fail-perm: + * tests/cp/link-preserve, tests/install/basic-1, tests/misc/mknod: + * tests/mkdir/parents, tests/mkdir/special-1, tests/mv/partition-perm: + + Don't make compilation depend on USE_ACL. An SELinux security + context counts as an "alternate access control method", so ls + must output a "+" for each file with a security context. + * src/ls.c [struct fileinfo] (have_acl): Declare unconditionally. + (FILE_HAS_ACL): Remove macro definition. Use f->have_acl directly. + (gobble_file): Record whether a file has a security context, and + update the condition used to determine whether to print the "+". + (gobble_file): Call getfilecon/lgetfilecon also when + format == long_format, so that we get the "+". + + * src/ls.c (gobble_file): Add a comment explaining why (with a + security context option) ls doesn't exit nonzero due to e.g., + getfilecon failing with errno == ENOTSUP. + + * src/ls.c (gobble_file): Ignore failure of getfilecon if it's due + to ENOTSUP. + + * src/ls.c (gobble_file): Factor out three small blocks using + getfilecon and lgetfilecon. + Don't ignore return value from getfilecon and lgetfilecon. + + * src/ls.c (print_long_format): Don't use ?: (empty 2nd arg with C + ternary operator). + (print_scontext_format): Likewise. + (print_scontext): Declare to be "bool", not int. Adjust uses. + + * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Add $(LIB_SELINUX). + + * tests/misc/chcon: New file. + * tests/misc/chcon-fail: New file. + * tests/Makefile.am (check-root): Run new, root-only misc/chcon test. + * tests/misc/Makefile.am (TESTS): Add chcon and chcon-fail. + + * tests/misc/Makefile.am (TESTS): Add selinux. + * tests/misc/selinux: New file. + * tests/help-version: Skip chcon. + * man/chcon.x: New file. + * man/Makefile.am: Build chcon.1. + + New program: chcon + * gl/modules/selinux-at: New module. Check for libselinux and set + LIB_SELINUX here, unconditionally, rather than depending on + the configure-time --enable-selinux option. + * gl/modules/selinux-h: New module. + * bootstrap.conf (gnulib_modules): Add selinux-at. + * gl/lib/selinux-at.c, gl/lib/selinux-at.h: New files. + * gl/lib/se-selinux_.h: New file. + * gl/lib/se-context_.h: New file. + * gl/m4/selinux-selinux-h.m4: New file. + * gl/m4/selinux-context-h.m4: New file. + * src/Makefile.am (bin_PROGRAMS): Add chcon. + (chcon_LDADD): Define. + * README: Add chcon to the list of programs. + * src/chcon.c: Rewrite the original (Red Hat) chcon to use fts. + 2007-03-29 Jim Meyering * .vg-suppressions: Add libc-getpwuid-leak. diff --git a/ChangeLog-selinux b/ChangeLog-selinux deleted file mode 100644 index 3b6264c38..000000000 --- a/ChangeLog-selinux +++ /dev/null @@ -1,208 +0,0 @@ -2007-03-18 Jim Meyering - - * src/runcon.c (main): Don't reorder arguments. Reported by - Ulrich Drepper in . - * tests/misc/runcon-no-reorder: New file. Test for the above. - * tests/misc/Makefile.am (TESTS): Add runcon-no-reorder. - - * src/runcon.c (main): Remove "." at end of a diagnostic. - -2007-02-02 Jim Meyering - - * src/runcon.c: New program. - * src/Makefile.am (bin_PROGRAMS): Add runcon. - (runcon_LDADD): Define. - * README: Add runcon to the list of programs. - * AUTHORS: Add this: runcon: Russell Coker - * tests/help-version: Add runcon as an exception. - * man/Makefile.am (dist_man_MANS): Add runcon.1. - (runcon.1): New dependency. - -2007-01-31 Jim Meyering - - mkfifo, mknod: Accept new "-Z, --context=C" option. - * src/mkfifo.c, src/mknod.c: Include . - (main): Honor it. - * src/Makefile.am (mkfifo_LDADD, mknod_LDADD): Use $(LIB_SELINUX). - - mkdir: Accept new "-Z, --context=C" option. - * src/mkdir.c: Include . - (main): Honor it. - * src/Makefile.am (mkdir_LDADD): Use $(LIB_SELINUX). - - * tests/cp/cp-a-selinux: New file. Test for the bug reported in - . - * tests/cp/Makefile.am (TESTS): Add cp-a-selinux. - - * tests/selinux: New file. - * tests/Makefile.am (EXTRA_DIST): Add selinux. - * tests/misc/selinux: Source the new script, rather than open coding it. - - Change how "cp -a" and "cp --preserve=context" work with SELinux. - Now, cp -a attempts to preserve context, but failure to do so does - not change cp's exit status. However "cp --preserve=context" is - similar, but failure *does* cause cp to exit with nonzero status. - * src/copy.h (struct cp_options) [require_preserve_context]: New member. - * src/copy.c (copy_reg, copy_internal): Implement the above. - * src/mv.c (cp_option_init): Initialize the new member. - * src/install.c (cp_option_init): Likewise. - * src/cp.c (cp_option_init): Likewise. - (decode_preserve_arg): Set it or reset it. - - FIXME: add an on-writable-NFS-only test - -2007-01-20 Jim Meyering - - cp, mv, install: add SELinux support, but unlike with the Red Hat - patch, mv and cp do not provide the "-Z context" option. - * src/copy.c: Include . - (restore_default_fscreatecon): New function. - (copy_reg): Make cp --preserve=context work for existing destination. - (copy_internal): Likewise for new destinations. - * src/copy.h (cp_options) [preserve_security_context]: New member. - * src/cp.c: Include . - (selinux_enabled): New global. - (usage): Mention new --preserve=context option. - (PRESERVE_CONTEXT): Define/use. - (decode_preserve_arg): Handle PRESERVE_CONTEXT. - (main): Remove an obsolete comment. - If --preserve=context is specified on a system without SELinux - enabled, give a diagnostic and fail. - * src/mv.c: Include . - Set x->preserve_security_context if SELinux is enabled. - * src/install.c: Accept new "-Z, --context=C" option. - Accept --preserve-context option (but not -P option). - Accept alternate spelling: --preserve_context, for now. - Include and "quotearg.h". - (selinux_enabled, use_default_selinux_context): New globals. - (PRESERVE_CONTEXT_OPTION): Define. - (cp_option_init): Default: do not preserve security context. - (setdefaultfilecon): New function. - (main): Honor new options. - * src/Makefile.am (mv_LDADD, cp_LDADD, ginstall_LDADD): - Add $(LIB_SELINUX). - * src/system.h (GETOPT_SELINUX_CONTEXT_OPTION_DECL): Define. - - * tests/misc/selinux [VERBOSE]: Print version info for each - of the tested tools, not just ls. - - * src/c99-to-c89.diff: Remove the ls.c patch, now that I've - temporarily removed the offending c99'ism. - - * src/chcon.c (usage): Split a string literal that was longer than 509. - - * src/ls.c (gobble_file): Don't call getfilecon unless print_scontext. - Upon failed getfilecon, accept not just ENOTSUP, but also ENODATA. - - * src/c99-to-c89.diff: Adjust offsets. - - * AUTHORS: Add chcon. - - * src/c99-to-c89.diff: Remove trailing blanks. - - * src/chcon.c: Don't include "dirname.h". system.h already includes it. - - * gl/lib/selinux-at.c: Remove a use of HAVE_CONFIG_H. - - * src/c99-to-c89.diff: Handle a new c99'ism in ls.c. - - * src/id.c (main): Tweak id -Z diagnostic. - - id: Add SELinux support: -Z option. - * src/id.c (main): Apply patches from Fedora, with these changes: - Remove #ifdef WITH_SELINUX. - Use error (EXIT_FAILURE, not fprintf+exit(1). - * src/Makefile.am (id_LDADD): Define, so as to add $(LIB_SELINUX). - -2007-01-06 Jim Meyering - - stat: Add support for SELinux in the form of a %C format directive. - * src/stat.c (follow_links): Make this variable file-global. - (out_file_context): New function. - (print_statfs): Honor %C. - (print_stat): Honor %C. - (do_stat): Remove follow_links parameter. - (usage): Document the two %C directives. - (main): Accept -Z (though it's a no-op). - * src/Makefile.am (stat_LDADD): Define. - - ls: Add support for SELinux and a slightly modified -Z option. - I started with the patches from Red Hat. - The entries below tell how the code evolved. - - * src/ls.c (print_long_format, print_file_name_and_frills): When - there is no security context (due to getfilecon/lgetfilecon failing - with e.g. ENOTSUP), print it as "?", not "". - * src/ls.c (print_file_name_and_frills): Make -Z work without -l. - (length_of_file_name_and_frills): Likewise. - - * src/ls.c: Remove the --lcontext and --scontext options. - Change the way -Z, --context work so that it no longer implies -l. - Thus, -Z -l will work like -lcontext and -Z without -l will work - like --scontext. - - Adjust tests to reflect new 'ls -l' syntax -- affects only - systems with SELinux when operating on a file with no ACL. - These tests assumed that everything before the first space on - each line is the 10-byte mode string. But there may also be a "+" - in the 11th column, just before the space. However, note that this - is not new. The same thing would have happened even without the - change below, when listing a file with an ACL. - * tests/chmod/equals, tests/cp/cp-parents, tests/cp/fail-perm: - * tests/cp/link-preserve, tests/install/basic-1, tests/misc/mknod: - * tests/mkdir/parents, tests/mkdir/special-1, tests/mv/partition-perm: - - Don't make compilation depend on USE_ACL. An SELinux security - context counts as an "alternate access control method", so ls - must output a "+" for each file with a security context. - * src/ls.c [struct fileinfo] (have_acl): Declare unconditionally. - (FILE_HAS_ACL): Remove macro definition. Use f->have_acl directly. - (gobble_file): Record whether a file has a security context, and - update the condition used to determine whether to print the "+". - (gobble_file): Call getfilecon/lgetfilecon also when - format == long_format, so that we get the "+". - - * src/ls.c (gobble_file): Add a comment explaining why (with a - security context option) ls doesn't exit nonzero due to e.g., - getfilecon failing with errno == ENOTSUP. - - * src/ls.c (gobble_file): Ignore failure of getfilecon if it's due - to ENOTSUP. - - * src/ls.c (gobble_file): Factor out three small blocks using - getfilecon and lgetfilecon. - Don't ignore return value from getfilecon and lgetfilecon. - - * src/ls.c (print_long_format): Don't use ?: (empty 2nd arg with C - ternary operator). - (print_scontext_format): Likewise. - (print_scontext): Declare to be "bool", not int. Adjust uses. - - * src/Makefile.am (dir_LDADD, ls_LDADD, vdir_LDADD): Add $(LIB_SELINUX). - - * tests/misc/chcon: New file. - * tests/misc/chcon-fail: New file. - * tests/Makefile.am (check-root): Run new, root-only misc/chcon test. - * tests/misc/Makefile.am (TESTS): Add chcon and chcon-fail. - - * tests/misc/Makefile.am (TESTS): Add selinux. - * tests/misc/selinux: New file. - * tests/help-version: Skip chcon. - * man/chcon.x: New file. - * man/Makefile.am: Build chcon.1. - - New program: chcon - * gl/modules/selinux-at: New module. Check for libselinux and set - LIB_SELINUX here, unconditionally, rather than depending on - the configure-time --enable-selinux option. - * gl/modules/selinux-h: New module. - * bootstrap.conf (gnulib_modules): Add selinux-at. - * gl/lib/selinux-at.c, gl/lib/selinux-at.h: New files. - * gl/lib/se-selinux_.h: New file. - * gl/lib/se-context_.h: New file. - * gl/m4/selinux-selinux-h.m4: New file. - * gl/m4/selinux-context-h.m4: New file. - * src/Makefile.am (bin_PROGRAMS): Add chcon. - (chcon_LDADD): Define. - * README: Add chcon to the list of programs. - * src/chcon.c: Rewrite the original (Red Hat) chcon to use fts. -- cgit v1.2.3-54-g00ecf