rpms/krb5/devel krb5-1.7-largefile.patch, NONE, 1.1 krb5.spec, 1.204, 1.205 krb5-1.3-large-file.patch, 1.1, NONE krb5-1.7-rcp-sendlarge.patch, 1.1, NONE

Nalin Dahyabhai nalin at fedoraproject.org
Wed Jul 1 17:52:46 UTC 2009


Author: nalin

Update of /cvs/extras/rpms/krb5/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32516

Modified Files:
	krb5.spec 
Added Files:
	krb5-1.7-largefile.patch 
Removed Files:
	krb5-1.3-large-file.patch krb5-1.7-rcp-sendlarge.patch 
Log Message:
- try to merge and clean up all the large file support for ftp and rcp


krb5-1.7-largefile.patch:

--- NEW FILE krb5-1.7-largefile.patch ---
Turn on large file support in gssftp and rcp.  The size of off_t might
be more than that of a long, so if we have a "long long" type, assume
that format specifiers for it work correctly and that we need to
represent off_t values as such.

diff -up krb5/src/appl/gssftp/configure.in krb5/src/appl/gssftp/configure.in
--- krb5/src/appl/gssftp/configure.in	2009-06-29 17:49:43.000000000 -0400
+++ krb5/src/appl/gssftp/configure.in	2009-06-29 17:49:36.000000000 -0400
@@ -12,6 +12,9 @@ DECLARE_SYS_ERRLIST
 AC_HEADER_STDARG
 AC_CHECK_HEADER(termios.h,[AC_CHECK_FUNC(cfsetispeed,AC_DEFINE(POSIX_TERMIOS,1,[Define if POSIX termios interface found]))])
 AC_CHECK_HEADERS(unistd.h stdlib.h string.h sys/select.h sys/sockio.h paths.h)
+AC_SYS_LARGEFILE
+AC_FUNC_FSEEKO
+AC_CHECK_TYPES([long long])
 CHECK_UTMP
 DECLARE_SYS_ERRLIST
 AC_REPLACE_FUNCS(getdtablesize)
--- krb5/src/appl/gssftp/ftpd/ftpcmd.y
+++ krb5/src/appl/gssftp/ftpd/ftpcmd.y
@@ -1515,12 +1515,20 @@
 		    (stbuf.st_mode&S_IFMT) != S_IFREG)
 			reply(550, "%s: not a plain file.", filename);
 		else
+#ifdef HAVE_LONG_LONG
+			reply(213, "%llu", (long long) stbuf.st_size);
+#else
 			reply(213, "%lu", (long) stbuf.st_size);
+#endif
 		break;}
 	case TYPE_A: {
 		FILE *fin;
 		register int c;
+#ifdef HAVE_LONG_LONG
+		register long long count;
+#else
 		register long count;
+#endif
 		struct stat stbuf;
 		fin = fopen(filename, "r");
 		if (fin == NULL) {
@@ -1542,7 +1542,11 @@
 		}
 		(void) fclose(fin);
 
+#ifdef HAVE_LONG_LONG
+		reply(213, "%lld", count);
+#else
 		reply(213, "%ld", count);
+#endif
 		break;}
 	default:
 		reply(504, "SIZE not implemented for Type %c.", "?AEIL"[type]);
diff -up krb5/src/appl/bsd/configure.in krb5-1.7/src/appl/bsd/configure.in
--- krb5/src/appl/bsd/configure.in	2009-06-04 14:02:56.000000000 -0400
+++ krb5/src/appl/bsd/configure.in	2009-06-04 14:02:56.000000000 -0400
@@ -53,6 +53,9 @@ AC_FUNC_VFORK
 AC_TYPE_MODE_T
 AC_CHECK_FUNCS(isatty inet_aton getenv gettosbyname killpg initgroups setpriority setreuid setresuid waitpid setsid ptsname setlogin tcgetpgrp tcsetpgrp setpgid strsave utimes rmufile rresvport_af)
 AC_CHECK_HEADERS(unistd.h stdlib.h string.h sys/filio.h sys/sockio.h sys/label.h sys/tty.h ttyent.h lastlog.h sys/select.h sys/ptyvar.h utmp.h sys/time.h sys/ioctl_compat.h paths.h arpa/nameser.h)
+AC_SYS_LARGEFILE
+AC_FUNC_FSEEKO
+AC_CHECK_TYPES([long long])
 AC_HEADER_STDARG
 AC_REPLACE_FUNCS(getdtablesize)
 dnl
diff -up krb5/src/appl/bsd/krcp.c krb5-1.7/src/appl/bsd/krcp.c
--- krb5/src/appl/bsd/krcp.c	2008-12-15 15:29:01.000000000 -0500
+++ krb5/src/appl/bsd/krcp.c	2009-06-04 14:02:56.000000000 -0400
@@ -764,8 +764,13 @@ void source(argc, argv)
 		continue;
 	    }
 	}
+#ifdef HAVE_LONG_LONG
+	(void) snprintf(buf, sizeof(buf), "C%04o %lld %s\n",
+			(int) stb.st_mode&07777, (long long) stb.st_size, last);
+#else
 	(void) snprintf(buf, sizeof(buf), "C%04o %ld %s\n",
 			(int) stb.st_mode&07777, (long ) stb.st_size, last);
+#endif
 	(void) rcmd_stream_write(rem, buf, strlen(buf), 0);
 	if (response() < 0) {
 	    (void) close(f);
diff -up krb5/src/appl/gssftp/ftp/ftp_var.h krb5/src/appl/gssftp/ftp/ftp_var.h
--- krb5/src/appl/gssftp/ftp/ftp_var.h	2009-06-29 18:01:55.000000000 -0400
+++ krb5/src/appl/gssftp/ftp/ftp_var.h	2009-06-29 18:03:05.000000000 -0400
@@ -46,12 +46,18 @@ FILE* fdopen_socket(SOCKET s, char* mode
 #define FDOPEN_SOCKET(s, mode) fdopen_socket(s, mode)
 #define SOCKETNO(fd) _get_osfhandle(fd)
 #define PERROR_SOCKET(str) do { errno = SOCKET_ERRNO; perror(str); } while(0)
+#define FSEEK(fd, offset, whence) fseek(fd, (long) offset, whence)
 #else
 #define FCLOSE_SOCKET(f) fclose(f)
 FILE* fdopen_socket(int *s, char* mode);
 #define FDOPEN_SOCKET(s, mode) fdopen_socket(&s, mode)
 #define SOCKETNO(fd) (fd)
 #define PERROR_SOCKET(str) perror(str)
+#ifdef HAVE_FSEEKO
+#define FSEEK(fd, offset, whence) fseeko(fd, (off_t) offset, whence)
+#else
+#define FSEEK(fd, offset, whence) fseek(fd, (long) offset, whence)
+#endif
 #endif
 
 #ifdef _WIN32
--- krb5/src/appl/gssftp/ftp/ftp.c	2009-06-29 18:05:08.000000000 -0400
+++ krb5/src/appl/gssftp/ftp/ftp.c	2009-06-29 18:05:04.000000000 -0400
@@ -150,7 +150,11 @@
 
 static void proxtrans (char *, char *, char *);
 static int initconn (void);
+#ifdef HAVE_LONG_LONG
+static void ptransfer (char *, long long, struct timeval *, struct timeval *);
+#else
 static void ptransfer (char *, long, struct timeval *, struct timeval *);
+#endif
 static void abort_remote (FILE *);
 static void tvsub (struct timeval *, struct timeval *, struct timeval *);
 static char *gunique (char *);
@@ -780,7 +784,11 @@
 	FILE *volatile fin, *volatile dout = 0;
 	int (*volatile closefunc)();
 	volatile sig_t oldintr, oldintp;
+#ifdef HAVE_LONG_LONG
+	volatile long long bytes = 0, hashbytes = HASHBYTES;
+#else
 	volatile long bytes = 0, hashbytes = HASHBYTES;
+#endif
 	char *volatile lmode;
 	unsigned char buf[FTP_BUFSIZ], *bufp;
 
@@ -877,7 +885,7 @@
 
 	if (restart_point &&
 	    (strcmp(cmd, "STOR") == 0 || strcmp(cmd, "APPE") == 0)) {
-		if (fseek(fin, (long) restart_point, 0) < 0) {
+		if (FSEEK(fin, restart_point, 0) < 0) {
 			fprintf(stderr, "local: %s: %s\n", local,
 				strerror(errno));
 			restart_point = 0;
@@ -1272,7 +1280,7 @@
 		if (restart_point) {
 			register int i, n, ch;
 
-			if (fseek(fout, 0L, L_SET) < 0)
+			if (FSEEK(fout, 0L, L_SET) < 0)
 				goto done;
 			n = restart_point;
 			for (i = 0; i++ < n;) {
@@ -1281,7 +1289,7 @@
 				if (ch == '\n')
 					i++;
 			}
-			if (fseek(fout, 0L, L_INCR) < 0) {
+			if (FSEEK(fout, 0L, L_INCR) < 0) {
 done:
 				fprintf(stderr, "local: %s: %s\n", local,
 					strerror(errno));
@@ -1546,8 +1554,13 @@
 	return (FDOPEN_SOCKET(data, lmode));
 }
 
+#ifdef HAVE_LONG_LONG
+static void ptransfer(char *direction, long long bytes,
+		      struct timeval *t0, struct timeval *t1)
+#else
 static void ptransfer(char *direction, long bytes,
 		      struct timeval *t0, struct timeval *t1)
+#endif
 {
 	struct timeval td;
 	float s, kbs;
@@ -1570,8 +1570,13 @@
 		s = td.tv_sec + (td.tv_usec / 1000000.);
 #define	nz(x)	((x) == 0 ? 1 : (x))
 		kbs = (bytes / nz(s))/1024.0;
+#ifdef HAVE_LONG_LONG
+		printf("%lld bytes %s in %.2g seconds (%.2g Kbytes/s)\n",
+		    bytes, direction, s, kbs);
+#else
 		printf("%ld bytes %s in %.2g seconds (%.2g Kbytes/s)\n",
 		    bytes, direction, s, kbs);
+#endif
 	}
 }
 
--- krb5/src/appl/gssftp/ftpd/ftpd.c	2009-06-29 18:07:16.000000000 -0400
+++ krb5/src/appl/gssftp/ftpd/ftpd.c	2009-06-29 18:07:57.000000000 -0400
@@ -1253,7 +1253,7 @@
 			 * because we are changing from reading to
 			 * writing.
 			 */
-			if (fseek(fout, 0L, L_INCR) < 0) {
+			if (FSEEK(fout, 0L, L_INCR) < 0) {
 				perror_reply(550, name);
 				goto done;
 			}
@@ -1340,8 +1340,13 @@
 	byte_count = 0;
 	if (size != (off_t) -1)
 		/* cast size to long in case sizeof(off_t) > sizeof(long) */
+#ifdef HAVE_LONG_LONG
+		(void) snprintf (sizebuf, sizeof(sizebuf), " (%lld bytes)",
+				 (long long)size);
+#else
 		(void) snprintf (sizebuf, sizeof(sizebuf), " (%ld bytes)",
 				 (long)size);
+#endif
 	else
 		sizebuf[0] = '\0';
 	if (pdata >= 0) {
@@ -2057,6 +2062,15 @@
 		siglongjmp(urgcatch, 1);
 	}
 	if (strcmp(cp, "STAT") == 0) {
+#ifdef HAVE_LONG_LONG
+		if (file_size != (off_t) -1)
+			reply(213, "Status: %llu of %llu bytes transferred",
+			      (unsigned long long) byte_count, 
+			      (unsigned long long) file_size);
+		else
+			reply(213, "Status: %llu bytes transferred", 
+			      (unsigned long long) byte_count);
+#else
 		if (file_size != (off_t) -1)
 			reply(213, "Status: %lu of %lu bytes transferred",
 			      (unsigned long) byte_count, 
@@ -2064,6 +2078,7 @@
 		else
 			reply(213, "Status: %lu bytes transferred", 
 			      (unsigned long) byte_count);
+#endif
 	}
 }
 
--- krb5/src/appl/gssftp/ftpd/ftpd_var.h	2009-06-29 18:19:02.000000000 -0400
+++ krb5/src/appl/gssftp/ftpd/ftpd_var.h	2009-06-29 18:19:44.000000000 -0400
@@ -41,6 +41,12 @@
 char *radix_error (int);
 int radix_encode (unsigned char *, unsigned char *, int *, int);
 
+#ifdef HAVE_FSEEKO
+#define FSEEK(fd, offset, whence) fseeko(fd, (off_t) offset, whence)
+#else
+#define FSEEK(fd, offset, whence) fseek(fd, (long) offset, whence)
+#endif
+
 /* ftpd.c */
 void ack(char *);
 int auth_data(char *);


Index: krb5.spec
===================================================================
RCS file: /cvs/extras/rpms/krb5/devel/krb5.spec,v
retrieving revision 1.204
retrieving revision 1.205
diff -u -p -r1.204 -r1.205
--- krb5.spec	29 Jun 2009 19:28:01 -0000	1.204
+++ krb5.spec	1 Jul 2009 17:52:16 -0000	1.205
@@ -10,7 +10,7 @@
 Summary: The Kerberos network authentication system
 Name: krb5
 Version: 1.7
-Release: 3%{?dist}
+Release: 4%{?dist}
 # Maybe we should explode from the now-available-to-everybody tarball instead?
 # http://web.mit.edu/kerberos/dist/krb5/1.7/krb5-1.7-signed.tar
 Source0: krb5-%{version}.tar.gz
@@ -49,12 +49,10 @@ Patch5: krb5-1.3-ksu-access.patch
 Patch6: krb5-1.5-ksu-path.patch
 Patch11: krb5-1.2.1-passive.patch
 Patch12: krb5-1.7-ktany.patch
-Patch13: krb5-1.3-large-file.patch
 Patch14: krb5-1.3-ftp-glob.patch
 Patch16: krb5-1.7-buildconf.patch
 Patch23: krb5-1.3.1-dns.patch
 Patch26: krb5-1.3.2-efence.patch
-Patch27: krb5-1.7-rcp-sendlarge.patch
 Patch29: krb5-1.7-kprop-mktemp.patch
 Patch30: krb5-1.3.4-send-pr-tempfile.patch
 Patch33: krb5-1.7-io.patch
@@ -79,6 +77,7 @@ Patch79: krb5-trunk-ftp_mget_case.patch
 Patch86: krb5-1.7-time_t_size.patch
 Patch87: krb5-1.7-errs.patch
 Patch88: krb5-1.7-sizeof.patch
+Patch89: krb5-1.7-largefile.patch
 
 License: MIT
 URL: http://web.mit.edu/kerberos/www/
@@ -208,6 +207,14 @@ to obtain initial credentials from a KDC
 certificate.
 
 %changelog
+* Tue Jun 30 2009 Nalin Dahyabhai <nalin at redhat.com> 1.7-4
+- try to merge and clean up all the large file support for ftp and rcp
+  - ftpd no longer prints a negative length when sending a large file
+    from a 32-bit host
+
+* Tue Jun 30 2009 Nalin Dahyabhai <nalin at redhat.com>
+- pam_rhosts_auth.so's been gone, use pam_rhosts.so instead
+
 * Mon Jun 29 2009 Nalin Dahyabhai <nalin at redhat.com> 1.7-3
 - switch buildrequires: and requires: on e2fsprogs-devel into
   buildrequires: and requires: on libss-devel, libcom_err-devel, per
@@ -1410,13 +1417,11 @@ popd
 %patch6  -p1 -b .ksu-path
 %patch11 -p1 -b .passive
 %patch12 -p1 -b .ktany
-%patch13 -p1 -b .large-file
 %patch14 -p1 -b .ftp-glob
 %patch16 -p1 -b .buildconf
 %patch23 -p1 -b .dns
 # Removes a malloc(0) case, nothing more.
 # %patch26 -p1 -b .efence
-%patch27 -p1 -b .rcp-sendlarge
 %patch29 -p1 -b .kprop-mktemp
 %patch30 -p1 -b .send-pr-tempfile
 %patch33 -p1 -b .io
@@ -1438,6 +1443,7 @@ popd
 %patch86 -p1 -b .time_t_size
 %patch87 -p1 -b .errs
 %patch88 -p1 -b .sizeof
+%patch89 -p1 -b .largefile
 gzip doc/*.ps
 
 sed -i -e '1s!\[twoside\]!!;s!%\(\\usepackage{hyperref}\)!\1!' doc/api/library.tex
@@ -1490,11 +1496,6 @@ done
 %build
 cd src
 INCLUDES=-I%{_includedir}/et
-# Get LFS support on systems that need it which aren't already 64-bit.
-%ifarch %{ix86} s390 ppc sparcv9
-DEFINES="-D_FILE_OFFSET_BITS=64" ; export DEFINES
-%endif
-
 # Work out the CFLAGS and CPPFLAGS which we intend to use.
 CFLAGS="`echo $RPM_OPT_FLAGS $DEFINES $INCLUDES -fPIC -fno-strict-aliasing`"
 CPPFLAGS="`echo $DEFINES $INCLUDES`"


--- krb5-1.3-large-file.patch DELETED ---


--- krb5-1.7-rcp-sendlarge.patch DELETED ---




More information about the fedora-extras-commits mailing list