diff --git a/audit-rl-patch b/audit-rl-patch new file mode 100644 index 00000000..259a55e6 --- /dev/null +++ b/audit-rl-patch @@ -0,0 +1,99 @@ +--- readline-6.2/config.h.in ++++ readline-6.2/config.h.in 2013-01-09 09:31:06.833952652 +0000 +@@ -251,6 +251,9 @@ + + #undef CTYPE_NON_ASCII + ++/* Define if you have and it defines AUDIT_USER_TTY */ ++#undef HAVE_DECL_AUDIT_USER_TTY ++ + /* modify settings or make new ones based on what autoconf tells us. */ + + /* Ultrix botches type-ahead when switching from canonical to +--- readline-6.2/configure.in ++++ readline-6.2/configure.in 2013-01-09 09:33:09.125452625 +0000 +@@ -159,6 +159,8 @@ AC_CHECK_HEADERS(sys/ptem.h,,, + + AC_SYS_LARGEFILE + ++AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include ]]) ++ + BASH_SYS_SIGNAL_VINTAGE + BASH_SYS_REINSTALL_SIGHANDLERS + +--- readline-6.2/readline.c ++++ readline-6.2/readline.c 2009-01-21 16:40:12.000000000 +0000 +@@ -55,6 +55,12 @@ + extern int errno; + #endif /* !errno */ + ++#if defined (HAVE_DECL_AUDIT_USER_TTY) ++# include ++# include ++# include ++#endif ++ + /* System-specific feature definitions and include files. */ + #include "rldefs.h" + #include "rlmbutil.h" +@@ -297,7 +303,47 @@ rl_set_prompt (prompt) + rl_visible_prompt_length = rl_expand_prompt (rl_prompt); + return 0; + } +- ++ ++#if defined (HAVE_DECL_AUDIT_USER_TTY) ++/* Report STRING to the audit system. */ ++static void ++audit_tty (char *string) ++{ ++ struct sockaddr_nl addr; ++ struct msghdr msg; ++ struct nlmsghdr nlm; ++ struct iovec iov[2]; ++ size_t size; ++ int fd; ++ ++ size = strlen (string) + 1; ++ fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_AUDIT); ++ if (fd < 0) ++ return; ++ nlm.nlmsg_len = NLMSG_LENGTH (size); ++ nlm.nlmsg_type = AUDIT_USER_TTY; ++ nlm.nlmsg_flags = NLM_F_REQUEST; ++ nlm.nlmsg_seq = 0; ++ nlm.nlmsg_pid = 0; ++ iov[0].iov_base = &nlm; ++ iov[0].iov_len = sizeof (nlm); ++ iov[1].iov_base = string; ++ iov[1].iov_len = size; ++ addr.nl_family = AF_NETLINK; ++ addr.nl_pid = 0; ++ addr.nl_groups = 0; ++ msg.msg_name = &addr; ++ msg.msg_namelen = sizeof (addr); ++ msg.msg_iov = iov; ++ msg.msg_iovlen = 2; ++ msg.msg_control = NULL; ++ msg.msg_controllen = 0; ++ msg.msg_flags = 0; ++ (void)sendmsg (fd, &msg, 0); ++ close (fd); ++} ++#endif ++ + /* Read a line of input. Prompt with PROMPT. An empty PROMPT means + none. A return value of NULL means that EOF was encountered. */ + char * +@@ -348,6 +394,11 @@ readline (prompt) + RL_SETSTATE (RL_STATE_CALLBACK); + #endif + ++#if defined (HAVE_DECL_AUDIT_USER_TTY) ++ if (value != NULL) ++ audit_tty (value); ++#endif ++ + return (value); + } + diff --git a/bash.changes b/bash.changes index 92702388..8b19cecb 100644 --- a/bash.changes +++ b/bash.changes @@ -2,6 +2,10 @@ Wed Jan 9 08:55:09 UTC 2013 - werner@suse.de - Avoid autoconf on older products +- Apply audit patch variant to readline as well as we use a shared + libreadline +- Avoid bash-devel on older products as older GNU make do not have + a realpath builtin ------------------------------------------------------------------- Tue Jan 8 17:43:01 UTC 2013 - werner@suse.de diff --git a/bash.spec b/bash.spec index 1e7d1623..ddd01a40 100644 --- a/bash.spec +++ b/bash.spec @@ -88,6 +88,7 @@ Patch27: readline-6.2-xmalloc.dif Patch30: readline-6.2-destdir.patch Patch40: bash-4.1-bash.bashrc.dif Patch42: audit-patch +Patch43: audit-rl-patch Patch46: man2html-no-timestamp.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc @@ -132,6 +133,7 @@ Requires: bash = %{version} Provides translations to the package bash %endif +%if 0%suse_version >= 1100 %package -n bash-devel Summary: Include Files mandatory for Development of bash loadable builtins Group: Development/Languages/C and C++ @@ -142,6 +144,7 @@ Release: 0 This package contains the C header files for writing loadable new builtins for the interpreter Bash. Use -I /usr/include/bash/ on the compilers command line. +%endif %package -n bash-loadables Summary: Loadable bash builtins @@ -209,7 +212,7 @@ Group: System/Libraries Provides: bash:/%{_lib}/libreadline.so.%{rl_major} Version: 6.2 Release: 0 -%if %suse_version > 1020 +%if 0%suse_version > 1020 Recommends: readline-doc = %{version} %endif # bug437293 @@ -233,7 +236,7 @@ Version: 6.2 Release: 0 Requires: libreadline6 = %{version} Requires: ncurses-devel -%if %suse_version > 1020 +%if 0%suse_version > 1020 Recommends: readline-doc = %{version} %endif # bug437293 @@ -253,7 +256,7 @@ Provides: readline:%{_infodir}/readline.info.gz PreReq: %install_info_prereq Version: 6.2 Release: 0 -%if %suse_version > 1120 +%if 0%suse_version > 1120 BuildArch: noarch %endif @@ -295,7 +298,9 @@ unset p #%patch25 -p0 -b .endpw %patch26 -p0 -b .msgdy %patch40 -p0 -b .bashrc +%if 0%suse_version >= 1100 %patch42 -p1 -b .audit +%endif %patch46 -p0 -b .notimestamp %patch0 -p0 -b .0 pushd ../readline-%{rl_vers}%{extend} @@ -312,6 +317,9 @@ done %patch26 -p2 -b .msgdy %patch27 -p0 -b .xm %patch30 -p0 -b .destdir +%if 0%suse_version >= 1100 +%patch43 -p1 -b .audit +%endif %patch20 -p0 -b .0 %build @@ -627,6 +635,7 @@ ldd -u -r %{buildroot}/%{_lib}/libreadline.so.* || true %doc %{_mandir}/man1/rbash.1.gz %doc %{_defaultdocdir}/bash/ +%if 0%suse_version >= 1100 %files -n bash-devel %defattr(-,root,root) %dir /%{_includedir}/bash/ @@ -634,6 +643,7 @@ ldd -u -r %{buildroot}/%{_lib}/libreadline.so.* || true %dir /%{_includedir}/bash/%{bash_vers}/builtins/ /%{_incdir}/bash/%{bash_vers}/*.h /%{_incdir}/bash/%{bash_vers}/builtins/*.h +%endif %files -n bash-loadables %defattr(-,root,root)