[shadow-utils] home directory on fs with noacl + remove faillog

Peter Vrabec pvrabec at fedoraproject.org
Thu Feb 10 10:24:45 UTC 2011


commit e997448056adfbcbe9c38ddc0f9e50b104ab6743
Author: Peter Vrabec <pvrabec at redhat.com>
Date:   Thu Feb 10 11:23:21 2011 +0100

    home directory on fs with noacl + remove faillog

 shadow-4.1.4.2-acl.patch |   58 ++++++++++++++++++++++++++++++++++-----------
 shadow-utils.spec        |   12 ++++++---
 2 files changed, 52 insertions(+), 18 deletions(-)
---
diff --git a/shadow-4.1.4.2-acl.patch b/shadow-4.1.4.2-acl.patch
index 9af543c..0071c31 100644
--- a/shadow-4.1.4.2-acl.patch
+++ b/shadow-4.1.4.2-acl.patch
@@ -1,6 +1,6 @@
 diff -up shadow-4.1.4.2/libmisc/copydir.c.acl shadow-4.1.4.2/libmisc/copydir.c
---- shadow-4.1.4.2/libmisc/copydir.c.acl	2010-04-29 15:55:26.949959971 +0200
-+++ shadow-4.1.4.2/libmisc/copydir.c	2010-04-29 15:55:26.956960471 +0200
+--- shadow-4.1.4.2/libmisc/copydir.c.acl	2011-02-09 17:35:23.455413575 +0100
++++ shadow-4.1.4.2/libmisc/copydir.c	2011-02-09 17:49:17.606330202 +0100
 @@ -45,6 +45,9 @@
  #ifdef WITH_SELINUX
  #include <selinux/selinux.h>
@@ -20,7 +20,7 @@ diff -up shadow-4.1.4.2/libmisc/copydir.c.acl shadow-4.1.4.2/libmisc/copydir.c
                           const struct stat *statp, const struct timeval mt[],
                           long int uid, long int gid);
  static int copy_file (const char *src, const char *dst,
-@@ -78,6 +81,24 @@ static int copy_file (const char *src, c
+@@ -78,6 +81,28 @@ static int copy_file (const char *src, c
                        long int uid, long int gid);
  
  #ifdef WITH_SELINUX
@@ -28,6 +28,10 @@ diff -up shadow-4.1.4.2/libmisc/copydir.c.acl shadow-4.1.4.2/libmisc/copydir.c
 +void error (struct error_context *ctx, const char *fmt, ...)
 +{
 +        va_list ap;
++
++        /* ignore the case when destination does not support ACLs */
++        if(errno==EOPNOTSUPP)
++                return;
 + 
 +        va_start (ap, fmt);
 +        (void) fprintf (stderr, _("%s: "), Prog);
@@ -45,7 +49,7 @@ diff -up shadow-4.1.4.2/libmisc/copydir.c.acl shadow-4.1.4.2/libmisc/copydir.c
  /*
   * selinux_file_context - Set the security context before any file or
   *                        directory creation.
-@@ -369,7 +390,7 @@ static int copy_entry (const char *src, 
+@@ -369,7 +394,7 @@ static int copy_entry (const char *src, 
  		 */
  
  		else if (!S_ISREG (sb.st_mode)) {
@@ -54,15 +58,30 @@ diff -up shadow-4.1.4.2/libmisc/copydir.c.acl shadow-4.1.4.2/libmisc/copydir.c
  		}
  
  		/*
-@@ -413,6 +434,7 @@ static int copy_dir (const char *src, co
+@@ -413,8 +438,20 @@ static int copy_dir (const char *src, co
  	    || (chown (dst,
  	               (uid == - 1) ? statp->st_uid : (uid_t) uid,
  	               (gid == - 1) ? statp->st_gid : (gid_t) gid) != 0)
-+	    || (perm_copy_file (src, dst, &ctx) != 0)
- 	    || (chmod (dst, statp->st_mode) != 0)
- 	    || (copy_tree (src, dst, uid, gid) != 0)
+-	    || (chmod (dst, statp->st_mode) != 0)
+-	    || (copy_tree (src, dst, uid, gid) != 0)
++	    || (chmod (dst, statp->st_mode) != 0)) {
++		err = -1;
++		return err;
++	}
++
++	/* ignore the case when destination does not support ACLs */
++	if (perm_copy_file (src, dst, &ctx) != 0) {
++		if (errno!=EOPNOTSUPP) {
++			err = -1;
++			return err;
++		}
++	}
++
++	if ((copy_tree (src, dst, uid, gid) != 0)
  	    || (utimes (dst, mt) != 0)) {
-@@ -514,6 +536,13 @@ static int copy_symlink (const char *src
+ 		err = -1;
+ 	}
+@@ -514,6 +551,13 @@ static int copy_symlink (const char *src
  	    || (lchown (dst,
  	                (uid == -1) ? statp->st_uid : (uid_t) uid,
  	                (gid == -1) ? statp->st_gid : (gid_t) gid) != 0)) {
@@ -76,7 +95,7 @@ diff -up shadow-4.1.4.2/libmisc/copydir.c.acl shadow-4.1.4.2/libmisc/copydir.c
  		free (oldlink);
  		return -1;
  	}
-@@ -542,7 +571,7 @@ static int copy_symlink (const char *src
+@@ -542,7 +586,7 @@ static int copy_symlink (const char *src
  static int copy_hardlink (const char *src, const char *dst,
                            struct link_name *lp)
  {
@@ -85,7 +104,7 @@ diff -up shadow-4.1.4.2/libmisc/copydir.c.acl shadow-4.1.4.2/libmisc/copydir.c
  
  	if (link (lp->ln_name, dst) != 0) {
  		return -1;
-@@ -574,7 +603,7 @@ static int copy_hardlink (const char *sr
+@@ -574,7 +618,7 @@ static int copy_hardlink (const char *sr
   *
   *	Return 0 on success, -1 on error.
   */
@@ -94,18 +113,29 @@ diff -up shadow-4.1.4.2/libmisc/copydir.c.acl shadow-4.1.4.2/libmisc/copydir.c
                           const struct stat *statp, const struct timeval mt[],
                           long int uid, long int gid)
  {
-@@ -628,7 +657,7 @@ static int copy_file (const char *src, c
+@@ -628,11 +672,18 @@ static int copy_file (const char *src, c
  	    || (fchown (ofd,
  	                (uid == -1) ? statp->st_uid : (uid_t) uid,
  	                (gid == -1) ? statp->st_gid : (gid_t) gid) != 0)
 -	    || (fchmod (ofd, statp->st_mode & 07777) != 0)) {
-+	    || (perm_copy_fd (src, ifd, dst, ofd, &ctx) != 0) ) {
++	    || (fchmod (ofd, statp->st_mode & 07777) != 0))  {
  		(void) close (ifd);
  		return -1;
  	}
+ 
++	if (perm_copy_fd (src, ifd, dst, ofd, &ctx) != 0)  {
++                if (errno!=EOPNOTSUPP) {
++               		(void) close (ifd);
++			return -1;
++                }
++	}
++
+ 	while ((cnt = read (ifd, buf, sizeof buf)) > 0) {
+ 		if (write (ofd, buf, (size_t)cnt) != cnt) {
+ 			return -1;
 diff -up shadow-4.1.4.2/src/Makefile.in.acl shadow-4.1.4.2/src/Makefile.in
 --- shadow-4.1.4.2/src/Makefile.in.acl	2009-07-24 03:16:00.000000000 +0200
-+++ shadow-4.1.4.2/src/Makefile.in	2010-04-29 16:08:34.347960372 +0200
++++ shadow-4.1.4.2/src/Makefile.in	2011-02-09 17:35:23.470411800 +0100
 @@ -430,9 +430,9 @@ su_SOURCES = \
  
  su_LDADD = $(LDADD) $(LIBPAM) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD)
diff --git a/shadow-utils.spec b/shadow-utils.spec
index 17f1aed..a797592 100644
--- a/shadow-utils.spec
+++ b/shadow-utils.spec
@@ -98,6 +98,7 @@ rm $RPM_BUILD_ROOT/%{_bindir}/groups
 rm $RPM_BUILD_ROOT/%{_bindir}/login
 rm $RPM_BUILD_ROOT/%{_bindir}/passwd
 rm $RPM_BUILD_ROOT/%{_bindir}/su
+rm $RPM_BUILD_ROOT/%{_bindir}/faillog
 rm $RPM_BUILD_ROOT/%{_sysconfdir}/login.access
 rm $RPM_BUILD_ROOT/%{_sysconfdir}/limits
 rm $RPM_BUILD_ROOT/%{_sbindir}/logoutd
@@ -135,6 +136,10 @@ rm $RPM_BUILD_ROOT/%{_mandir}/man8/chgpasswd.*
 rm $RPM_BUILD_ROOT/%{_mandir}/*/man8/chgpasswd.*
 rm $RPM_BUILD_ROOT/%{_mandir}/man3/getspnam.*
 rm $RPM_BUILD_ROOT/%{_mandir}/*/man3/getspnam.*
+rm $RPM_BUILD_ROOT/%{_mandir}/man5/faillog.*
+rm $RPM_BUILD_ROOT/%{_mandir}/*/man5/faillog.*
+rm $RPM_BUILD_ROOT/%{_mandir}/man8/faillog.*
+rm $RPM_BUILD_ROOT/%{_mandir}/*/man8/faillog.*
 
 find $RPM_BUILD_ROOT%{_mandir} -depth -type d -empty -delete
 %find_lang shadow
@@ -157,7 +162,6 @@ rm -rf $RPM_BUILD_ROOT
 %attr(0600,root,root)   %config(noreplace) %{_sysconfdir}/default/useradd
 %{_bindir}/sg
 %{_bindir}/chage
-%{_bindir}/faillog
 %{_bindir}/gpasswd
 %{_bindir}/lastlog
 %{_bindir}/newgrp
@@ -179,7 +183,6 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man5/shadow.5*
 %{_mandir}/man5/login.defs.5*
 %{_mandir}/man5/gshadow.5*
-%{_mandir}/man5/faillog.5*
 %{_mandir}/man8/adduser.8*
 %{_mandir}/man8/group*.8*
 %{_mandir}/man8/user*.8*
@@ -189,14 +192,15 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man8/newusers.8*
 %{_mandir}/man8/*conv.8*
 %{_mandir}/man8/lastlog.8*
-%{_mandir}/man8/faillog.8*
 %{_mandir}/man8/vipw.8*
 %{_mandir}/man8/vigr.8*
 
 %changelog
 * Wed Feb 09 2011 Peter Vrabec <pvrabec at redhat.com> - 2:4.1.4.2-11
 - useradd man page (-m option) 
-  Resolves: #523265
+- create home directory on fs with noacl
+- remove faillog app (pam_tally.so is no longer shipped)
+  Resolves: #523265, #622320
 
 * Tue Feb 01 2011 Peter Vrabec <pvrabec at redhat.com> - 2:4.1.4.2-10
 - do not use  gshadow functions from glibc, there is a bug


More information about the scm-commits mailing list