openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2008
- 1 participants
- 875 discussions
Hello community,
here is the log from the commit of package sshfs
checked in at Fri Jul 25 17:04:18 CEST 2008.
--------
--- sshfs/sshfs.changes 2007-12-17 16:48:41.000000000 +0100
+++ /mounts/work_src_done/STABLE/sshfs/sshfs.changes 2008-07-25 12:49:14.000431000 +0200
@@ -1,0 +2,13 @@
+Fri Jul 25 12:32:05 CEST 2008 - mszeredi(a)suse.de
+
+- updated to version 2.1
+ * Support password authentication with pam_mount
+ * Support atomic renames if server is OpenSSH 4.9 or later
+ * Support getting disk usage if server is OpenSSH 5.1 or later
+ * Add man page
+ * Improved ssh option support
+ * Improved support for specifying a special ssh command
+ * Fix bug that could cause corruption with append mode writes
+ * Allow specifying an ssh config file
+
+-------------------------------------------------------------------
Old:
----
sshfs-fuse-1.9.tar.bz2
New:
----
sshfs-fuse-2.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sshfs.spec ++++++
--- /var/tmp/diff_new_pack.h16345/_old 2008-07-25 17:04:01.000000000 +0200
+++ /var/tmp/diff_new_pack.h16345/_new 2008-07-25 17:04:01.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package sshfs (Version 1.9)
+# spec file for package sshfs (Version 2.1)
#
-# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
@@ -10,11 +10,12 @@
# norootforbuild
+
Name: sshfs
BuildRequires: fuse-devel glib2-devel licenses
Requires: fuse licenses
Summary: Filesystem client based on SSH file transfer protocol
-Version: 1.9
+Version: 2.1
Release: 1
License: GPL v2 or later
Group: System/Filesystems
@@ -54,18 +55,29 @@
%files
%defattr(-,root,root)
%doc AUTHORS COPYING* ChangeLog NEWS README*
+%doc %{_mandir}/*/*
%{_bindir}/*
%changelog
-* Mon Dec 17 2007 - mszeredi(a)suse.de
+* Fri Jul 25 2008 mszeredi(a)suse.de
+- updated to version 2.1
+ * Support password authentication with pam_mount
+ * Support atomic renames if server is OpenSSH 4.9 or later
+ * Support getting disk usage if server is OpenSSH 5.1 or later
+ * Add man page
+ * Improved ssh option support
+ * Improved support for specifying a special ssh command
+ * Fix bug that could cause corruption with append mode writes
+ * Allow specifying an ssh config file
+* Mon Dec 17 2007 mszeredi(a)suse.de
- updated to version 1.9
* Fix crash when writing large files on SMP
* Fill in st_ctime attribute
* Add mount subtype support
* Small optimizations
-* Fri Aug 10 2007 - bk(a)suse.de
+* Fri Aug 10 2007 bk(a)suse.de
- Add "Requires: fuse" to ensure that fuse is present (285101#c29)
-* Thu May 17 2007 - mszeredi(a)suse.de
+* Thu May 17 2007 mszeredi(a)suse.de
- updated to version 1.8
* Fix rare crashes due to uninitialized threading in glib
* Fix memory leak in open
@@ -77,21 +89,21 @@
* Fix bug in follow_symlinks option
- Don't build sshnodelay.so, which is not needed any more with
current ssh clients
-* Thu Oct 12 2006 - tiwai(a)suse.de
+* Thu Oct 12 2006 tiwai(a)suse.de
- update to version 1.7:
* Add option 'follow_symlinks' to resolve symlinks on the server
* Fix for sftp with login shell printing a banner
* Check remote directory for existence before mounting
-* Wed May 17 2006 - schwab(a)suse.de
+* Wed May 17 2006 schwab(a)suse.de
- Don't strip binaries.
-* Tue May 16 2006 - tiwai(a)suse.de
+* Tue May 16 2006 tiwai(a)suse.de
- updated to version 1.6
* Fix segfault if remote host is down and reconnection is
enabled
* Fix bug in symlink transformation
* Add workaround for broken truncate on old sftp servers
* Memory copy optimizations
-* Mon Feb 20 2006 - cthiel(a)suse.de
+* Mon Feb 20 2006 cthiel(a)suse.de
- update to version 1.5
* Add workaround (enabled by default) for ssh clients not setting
TCP_NODELAY on the network connection. Currently this is all known
@@ -99,13 +111,13 @@
circumstances
* Use TCP_NODELAY socket option for direct connection. This may improve
download speed in some circumstances
-* Wed Jan 25 2006 - mls(a)suse.de
+* Wed Jan 25 2006 mls(a)suse.de
- converted neededforbuild to BuildRequires
-* Sun Jan 15 2006 - cthiel(a)suse.de
+* Sun Jan 15 2006 cthiel(a)suse.de
- update to version 1.4
-* Tue Nov 22 2005 - msvec(a)suse.cz
+* Tue Nov 22 2005 msvec(a)suse.cz
- update to version 1.3
-* Tue Sep 20 2005 - cthiel(a)suse.de
+* Tue Sep 20 2005 cthiel(a)suse.de
- update to version 1.2
-* Wed May 25 2005 - tiwai(a)suse.de
+* Wed May 25 2005 tiwai(a)suse.de
- initial version: 1.1
++++++ sshfs-fuse-1.9.tar.bz2 -> sshfs-fuse-2.1.tar.bz2 ++++++
++++ 1680 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sshfs-fuse-1.9/cache.c new/sshfs-fuse-2.1/cache.c
--- old/sshfs-fuse-1.9/cache.c 2007-12-11 23:23:24.000000000 +0100
+++ new/sshfs-fuse-2.1/cache.c 2008-07-11 13:00:33.000000000 +0200
@@ -28,6 +28,7 @@
GHashTable *table;
pthread_mutex_t lock;
time_t last_cleaned;
+ uint64_t write_ctr;
};
static struct cache cache;
@@ -47,6 +48,7 @@
fuse_dirh_t h;
fuse_dirfil_t filler;
GPtrArray *dir;
+ uint64_t wrctr;
};
static void free_node(gpointer node_)
@@ -108,6 +110,14 @@
pthread_mutex_unlock(&cache.lock);
}
+void cache_invalidate_write(const char *path)
+{
+ pthread_mutex_lock(&cache.lock);
+ cache_purge(path);
+ cache.write_ctr++;
+ pthread_mutex_unlock(&cache.lock);
+}
+
static void cache_invalidate_dir(const char *path)
{
pthread_mutex_lock(&cache.lock);
@@ -148,19 +158,21 @@
return node;
}
-void cache_add_attr(const char *path, const struct stat *stbuf)
+void cache_add_attr(const char *path, const struct stat *stbuf, uint64_t wrctr)
{
struct node *node;
time_t now;
pthread_mutex_lock(&cache.lock);
- node = cache_get(path);
- now = time(NULL);
- node->stat = *stbuf;
- node->stat_valid = time(NULL) + cache.stat_timeout;
- if (node->stat_valid > node->valid)
- node->valid = node->stat_valid;
- cache_clean();
+ if (wrctr == cache.write_ctr) {
+ node = cache_get(path);
+ now = time(NULL);
+ node->stat = *stbuf;
+ node->stat_valid = time(NULL) + cache.stat_timeout;
+ if (node->stat_valid > node->valid)
+ node->valid = node->stat_valid;
+ cache_clean();
+ }
pthread_mutex_unlock(&cache.lock);
}
@@ -222,13 +234,25 @@
return err;
}
+uint64_t cache_get_write_ctr(void)
+{
+ uint64_t res;
+
+ pthread_mutex_lock(&cache.lock);
+ res = cache.write_ctr;
+ pthread_mutex_unlock(&cache.lock);
+
+ return res;
+}
+
static int cache_getattr(const char *path, struct stat *stbuf)
{
int err = cache_get_attr(path, stbuf);
if (err) {
+ uint64_t wrctr = cache_get_write_ctr();
err = cache.next_oper->oper.getattr(path, stbuf);
if (!err)
- cache_add_attr(path, stbuf);
+ cache_add_attr(path, stbuf, wrctr);
}
return err;
}
@@ -268,7 +292,7 @@
const char *basepath = !ch->path[1] ? "" : ch->path;
fullpath = g_strdup_printf("%s/%s", basepath, name);
- cache_add_attr(fullpath, stbuf);
+ cache_add_attr(fullpath, stbuf, ch->wrctr);
g_free(fullpath);
}
}
@@ -299,6 +323,7 @@
ch.h = h;
ch.filler = filler;
ch.dir = g_ptr_array_new();
+ ch.wrctr = cache_get_write_ctr();
err = cache.next_oper->cache_getdir(path, &ch, cache_dirfill);
g_ptr_array_add(ch.dir, NULL);
dir = (char **) ch.dir->pdata;
@@ -421,7 +446,7 @@
{
int res = cache.next_oper->oper.write(path, buf, size, offset, fi);
if (res >= 0)
- cache_invalidate(path);
+ cache_invalidate_write(path);
return res;
}
@@ -449,9 +474,10 @@
{
int err = cache_get_attr(path, stbuf);
if (err) {
+ uint64_t wrctr = cache_get_write_ctr();
err = cache.next_oper->oper.fgetattr(path, stbuf, fi);
if (!err)
- cache_add_attr(path, stbuf);
+ cache_add_attr(path, stbuf, wrctr);
}
return err;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sshfs-fuse-1.9/cache.h new/sshfs-fuse-2.1/cache.h
--- old/sshfs-fuse-1.9/cache.h 2006-02-20 12:43:23.000000000 +0100
+++ new/sshfs-fuse-2.1/cache.h 2008-07-11 13:00:33.000000000 +0200
@@ -24,5 +24,6 @@
struct fuse_operations *cache_init(struct fuse_cache_operations *oper);
int cache_parse_options(struct fuse_args *args);
-void cache_add_attr(const char *path, const struct stat *stbuf);
+void cache_add_attr(const char *path, const struct stat *stbuf, uint64_t wrctr);
void cache_invalidate(const char *path);
+uint64_t cache_get_write_ctr(void);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sshfs-fuse-1.9/ChangeLog new/sshfs-fuse-2.1/ChangeLog
--- old/sshfs-fuse-1.9/ChangeLog 2007-12-17 15:41:58.000000000 +0100
+++ new/sshfs-fuse-2.1/ChangeLog 2008-07-11 13:00:33.000000000 +0200
@@ -1,3 +1,85 @@
+2008-07-11 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Released 2.1
+
+2008-07-11 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Fix statvfs extension to match the current protocol in
+ opensshfs
+
+ * Check version numbers of extensions, so such changes wouldn't
+ cause stupid behavior
+
+2008-06-24 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Add '-F' option to specify the ssh config file. Patch by Pat
+ Pascal.
+
+2008-05-06 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Fix bug in caching which could cause file corruption for append
+ mode writes. Reported by Jose Alonso
+
+2008-05-05 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Fix compile on OS X. Original patch from Michael G Schwern
+
+ * Fix compile on Solaris. Reported by Jean-Jacques Sarton
+
+2008-04-23 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Released 2.0
+
+2008-04-23 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Add manual page. Written by Bartosz Fenski
+
+2008-04-22 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Add missing ssh options: ControlMaster, ControlPath,
+ KbdInteractiveAuthentication, KbdInteractiveDevices, LocalCommand,
+ RekeyLimit (Debian bug #430225).
+
+ * Allow the '-ossh_command=CMD' command to contain parameters.
+ Escape charater is backslash.
+
+ * Limit write requests to 64kB.
+
+ * Support "statvfs(a)openssh.com" extension, which will be available
+ in OpenSSH 5.1.
+
+2008-04-21 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Fix incorrect disk usage reported by 'du' for files of size 4GB
+ or above. Reported by Christian Boltz.
+
+2008-04-16 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * If debugging is enabled, print some statistics at exit about the
+ number of bytes transferred, etc..
+
+2008-03-31 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Support "posix-rename(a)openssh.com" extension available in
+ OpenSSH 4.9. This allows rename to be atomic even when target
+ file or directory exists. If available, the extension will be
+ used instead of the rename operation in the original protocol and
+ the "-oworkaround=rename" option will be ignored.
+
+2008-03-28 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Add support for password authentication with pam_mount.
+ Original patch and help with testing: John S. Skogtvedt
+
+2008-03-03 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Fix ssh debug only appearing if "-d" is used. Reported by
+ Michael Gorbach
+
+2008-01-03 Miklos Szeredi <miklos(a)szeredi.hu>
+
+ * Fix condition for building of sshnodelay.so
+
2007-12-17 Miklos Szeredi <miklos(a)szeredi.hu>
* Released 1.9
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sshfs-fuse-1.9/configure.ac new/sshfs-fuse-2.1/configure.ac
--- old/sshfs-fuse-1.9/configure.ac 2007-12-17 15:41:58.000000000 +0100
+++ new/sshfs-fuse-2.1/configure.ac 2008-07-11 13:00:33.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(sshfs-fuse, 1.9)
+AC_INIT(sshfs-fuse, 2.1)
AM_INIT_AUTOMAKE
AM_CONFIG_HEADER(config.h)
@@ -30,11 +30,11 @@
fi
fi
-if test "$enable_sshnodelay" != "no"; then
+if test "$enable_sshnodelay" = "yes"; then
AC_DEFINE(SSH_NODELAY_WORKAROUND, 1, [Compile ssh NODELAY workaround])
fi
-AM_CONDITIONAL(SSH_NODELAY_SO, test "$enable_sshnodelay" != "no")
+AM_CONDITIONAL(SSH_NODELAY_SO, test "$enable_sshnodelay" = "yes")
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
PKG_CHECK_MODULES(SSHFS, [fuse >= 2.2 glib-2.0 gthread-2.0])
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sshfs-fuse-1.9/Makefile.am new/sshfs-fuse-2.1/Makefile.am
--- old/sshfs-fuse-1.9/Makefile.am 2007-04-18 11:41:46.000000000 +0200
+++ new/sshfs-fuse-2.1/Makefile.am 2008-04-23 14:17:57.000000000 +0200
@@ -14,6 +14,8 @@
EXTRA_DIST = sshnodelay.c FAQ.txt
CLEANFILES = sshnodelay.so
+dist_man_MANS = sshfs.1
+
if SSH_NODELAY_SO
all-local: sshnodelay.so
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sshfs-fuse-1.9/NEWS new/sshfs-fuse-2.1/NEWS
--- old/sshfs-fuse-1.9/NEWS 2007-12-11 23:23:23.000000000 +0100
+++ new/sshfs-fuse-2.1/NEWS 2008-04-22 18:02:41.000000000 +0200
@@ -1,3 +1,14 @@
+What is new in 2.0
+------------------
+
+* Support password authentication with pam_mount
+
+* Support atomic renames if server is OpenSSH 4.9 or later
+
+* Support getting disk usage if server is OpenSSH 5.1 or later
+
+* Small enhancements and bug fixes
+
What is new in 1.9
------------------
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sshfs-fuse-1.9/sshfs.1 new/sshfs-fuse-2.1/sshfs.1
--- old/sshfs-fuse-1.9/sshfs.1 1970-01-01 01:00:00.000000000 +0100
+++ new/sshfs-fuse-2.1/sshfs.1 2008-07-11 13:00:33.000000000 +0200
@@ -0,0 +1,246 @@
+.TH SSHFS "1" "April 2008" "SSHFS version 2.0" "User Commands"
+.SH NAME
+SSHFS \- filesystem client based on ssh
+.SH SYNOPSIS
+.SS mounting
+.TP
+\fBsshfs\fP [\fIuser\fP@]\fBhost\fP:[\fIdir\fP] \fBmountpoint\fP [\fIoptions\fP]
+.SS unmounting
+.TP
+\fBfusermount -u mountpoint\fP
+.SH DESCRIPTION
+SSHFS (Secure SHell FileSystem) is a file system for Linux (and other
+operating systems with a FUSE implementation, such as Mac OS X or FreeBSD)
+capable of operating on files on a remote computer using just a secure
+shell login on the remote computer. On the local computer where the SSHFS
+is mounted, the implementation makes use of the FUSE (Filesystem in
+Userspace) kernel module. The practical effect of this is that the end user
+can seamlessly interact with remote files being securely served over SSH
+just as if they were local files on his/her computer. On the remote
+computer the SFTP subsystem of SSH is used.
+.SH OPTIONS
+.SS "general options:"
+.TP
+\fB\-o\fR opt,[opt...]
+mount options
+.TP
+\fB\-h\fR \fB\-\-help\fR
+print help
+.TP
+\fB\-V\fR \fB\-\-version\fR
+print version
+.SS "SSHFS options:"
+.TP
+\fB\-p\fR PORT
+equivalent to '\-o port=PORT'
+.TP
+\fB\-C\fR
+equivalent to '\-o compression=yes'
+.TP
+\fB\-F\fR ssh_configfile
+specifies alternative ssh configuration file
+.TP
+\fB\-1\fR
+equivalent to '\-o ssh_protocol=1'
+.TP
+\fB\-o\fR reconnect
+reconnect to server
+.TP
+\fB\-o\fR sshfs_sync
+synchronous writes
+.TP
+\fB\-o\fR no_readahead
+synchronous reads (no speculative readahead)
+.TP
+\fB\-o\fR sshfs_debug
+print some debugging information
+.TP
+\fB\-o\fR cache=YESNO
+enable caching {yes,no} (default: yes)
+.TP
+\fB\-o\fR cache_timeout=N
+sets timeout for caches in seconds (default: 20)
+.TP
+\fB\-o\fR cache_X_timeout=N
+sets timeout for {stat,dir,link} cache
+.TP
+\fB\-o\fR workaround=LIST
+colon separated list of workarounds
+.RS 8
+.TP
+none
+no workarounds enabled
+.TP
+all
+all workarounds enabled
+.TP
+[no]rename
+fix renaming to existing file (default: off)
+.TP
+[no]nodelaysrv
+set nodelay tcp flag in ssh (default: off)
+.TP
+[no]truncate
+fix truncate for old servers (default: off)
+.TP
+[no]buflimit
+fix buffer fillup bug in server (default: on)
+.RE
+.TP
+\fB\-o\fR idmap=TYPE
+user/group ID mapping, possible types are:
+.RS 8
+.TP
+none
+no translation of the ID space (default)
+.TP
+user
+only translate UID of connecting user
+.RE
+.TP
+\fB\-o\fR ssh_command=CMD
+execute CMD instead of 'ssh'
+.TP
+\fB\-o\fR ssh_protocol=N
+ssh protocol to use (default: 2)
+.TP
+\fB\-o\fR sftp_server=SERV
+path to sftp server or subsystem (default: sftp)
+.TP
+\fB\-o\fR directport=PORT
+directly connect to PORT bypassing ssh
+.TP
+\fB\-o\fR transform_symlinks
+transform absolute symlinks to relative
+.TP
+\fB\-o\fR follow_symlinks
+follow symlinks on the server
+.TP
+\fB\-o\fR no_check_root
+don't check for existence of 'dir' on server
+.TP
+\fB\-o\fR password_stdin
+read password from stdin (only for pam_mount!)
+.TP
+\fB\-o\fR SSHOPT=VAL
+ssh options (see man ssh_config)
+.SS "FUSE options:"
+.TP
+\fB\-d\fR \fB\-o\fR debug
+enable debug output (implies \fB\-f\fR)
+.TP
+\fB\-f\fR
+foreground operation
+.TP
+\fB\-s\fR
+disable multi\-threaded operation
+.TP
+\fB\-o\fR allow_other
+allow access to other users
+.TP
+\fB\-o\fR allow_root
+allow access to root
+.TP
+\fB\-o\fR nonempty
+allow mounts over non\-empty file/dir
+.HP
+\fB\-o\fR default_permissions
+enable permission checking by kernel
+.TP
+\fB\-o\fR fsname=NAME
+set filesystem name
+.TP
+\fB\-o\fR subtype=NAME
+set filesystem type
+.TP
+\fB\-o\fR large_read
+issue large read requests (2.4 only)
+.TP
+\fB\-o\fR max_read=N
+set maximum size of read requests
+.TP
+\fB\-o\fR hard_remove
+immediate removal (don't hide files)
+.TP
+\fB\-o\fR use_ino
+let filesystem set inode numbers
+.TP
+\fB\-o\fR readdir_ino
+try to fill in d_ino in readdir
+.TP
+\fB\-o\fR direct_io
+use direct I/O
+.TP
+\fB\-o\fR kernel_cache
+cache files in kernel
+.TP
+\fB\-o\fR [no]auto_cache
+enable caching based on modification times
+.TP
+\fB\-o\fR umask=M
+set file permissions (octal)
+.TP
+\fB\-o\fR uid=N
+set file owner
+.TP
+\fB\-o\fR gid=N
+set file group
+.TP
+\fB\-o\fR entry_timeout=T
+cache timeout for names (1.0s)
+.TP
+\fB\-o\fR negative_timeout=T
+cache timeout for deleted names (0.0s)
+.TP
+\fB\-o\fR attr_timeout=T
+cache timeout for attributes (1.0s)
+.TP
+\fB\-o\fR ac_attr_timeout=T
+auto cache timeout for attributes (attr_timeout)
+.TP
+\fB\-o\fR intr
+allow requests to be interrupted
+.TP
+\fB\-o\fR intr_signal=NUM
+signal to send on interrupt (10)
+.TP
+\fB\-o\fR modules=M1[:M2...]
+names of modules to push onto filesystem stack
+.TP
+\fB\-o\fR max_write=N
+set maximum size of write requests
+.TP
+\fB\-o\fR max_readahead=N
+set maximum readahead
+.TP
+\fB\-o\fR async_read
+perform reads asynchronously (default)
+.TP
+\fB\-o\fR sync_read
+perform reads synchronously
+.SS "Module options:"
+.TP
+[subdir]
+.TP
+\fB\-o\fR subdir=DIR
+prepend this directory to all paths (mandatory)
+.TP
+\fB\-o\fR [no]rellinksa
+transform absolute symlinks to relative
+.TP
+[iconv]
+.TP
+\fB\-o\fR from_code=CHARSET
+original encoding of file names (default: UTF-8)
+.TP
+\fB\-o\fR to_code=CHARSET
+new encoding of the file names (default: ISO-8859-2)
+.PD
+.SH "AUTHORS"
+.LP
+SSHFS has been written by Miklos Seredi <miklos(a)szeredi.hu>.
+.LP
+This man page was written by Bartosz Fenski <fenio(a)debian.org> for the
+Debian GNU/Linux distribution (but it may be used by others).
+
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/sshfs-fuse-1.9/sshfs.c new/sshfs-fuse-2.1/sshfs.c
--- old/sshfs-fuse-1.9/sshfs.c 2007-12-11 23:23:29.000000000 +0100
+++ new/sshfs-fuse-2.1/sshfs.c 2008-07-11 13:00:33.000000000 +0200
@@ -6,6 +6,7 @@
See the file COPYING.
*/
+#define _GNU_SOURCE /* avoid implicit declaration of *pt* functions */
#include "config.h"
#include <fuse.h>
@@ -23,16 +24,28 @@
#include <netdb.h>
#include <signal.h>
#include <sys/uio.h>
+#include <sys/types.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <sys/socket.h>
#include <sys/utsname.h>
+#include <sys/mman.h>
+#include <sys/poll.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <glib.h>
#include "cache.h"
+#ifndef MAP_LOCKED
+#define MAP_LOCKED 0
+#endif
+
+#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)
+#define MAP_ANONYMOUS MAP_ANON
+#endif
+
+
#if FUSE_VERSION >= 23
#define SSHFS_USE_INIT
#endif
@@ -88,6 +101,13 @@
#define SSH_FXF_TRUNC 0x00000010
#define SSH_FXF_EXCL 0x00000020
+/* statvfs(a)openssh.com f_flag flags */
+#define SSH2_FXE_STATVFS_ST_RDONLY 0x00000001
+#define SSH2_FXE_STATVFS_ST_NOSUID 0x00000002
+
+#define SFTP_EXT_POSIX_RENAME "posix-rename(a)openssh.com"
+#define SFTP_EXT_STATVFS "statvfs(a)openssh.com"
+
#define PROTO_VERSION 3
#define MY_EOF 1
@@ -167,10 +187,12 @@
int no_check_root;
int detect_uid;
unsigned max_read;
+ unsigned max_write;
unsigned ssh_ver;
int sync_write;
int sync_read;
int debug;
+ int foreground;
int reconnect;
char *host;
char *base_path;
@@ -180,6 +202,8 @@
int processing_thread_started;
unsigned int randseed;
int fd;
+ int ptyfd;
+ int ptyslavefd;
int connver;
int server_version;
unsigned remote_uid;
@@ -191,6 +215,20 @@
unsigned outstanding_len;
unsigned max_outstanding_len;
pthread_cond_t outstanding_cond;
+ int password_stdin;
+ char *password;
+ int ext_posix_rename;
+ int ext_statvfs;
+
+ /* statistics */
+ uint64_t bytes_sent;
+ uint64_t bytes_received;
+ uint64_t num_sent;
+ uint64_t num_received;
+ unsigned int min_rtt;
+ unsigned int max_rtt;
+ uint64_t total_rtt;
+ unsigned int num_connect;
};
static struct sshfs sshfs;
@@ -207,6 +245,8 @@
"CompressionLevel",
"ConnectionAttempts",
"ConnectTimeout",
+ "ControlMaster",
+ "ControlPath",
"GlobalKnownHostsFile",
"GSSAPIAuthentication",
"GSSAPIDelegateCredentials",
@@ -214,8 +254,11 @@
"HostKeyAlgorithms",
"HostKeyAlias",
"HostName",
- "IdentityFile",
"IdentitiesOnly",
+ "IdentityFile",
+ "KbdInteractiveAuthentication",
+ "KbdInteractiveDevices",
+ "LocalCommand",
"LogLevel",
"MACs",
"NoHostAuthenticationForLocalhost",
@@ -225,10 +268,11 @@
"PreferredAuthentications",
"ProxyCommand",
"PubkeyAuthentication",
+ "RekeyLimit",
"RhostsRSAAuthentication",
"RSAAuthentication",
- "ServerAliveInterval",
"ServerAliveCountMax",
+ "ServerAliveInterval",
"SmartcardDevice",
"StrictHostKeyChecking",
"TCPKeepAlive",
@@ -243,6 +287,8 @@
KEY_COMPRESS,
KEY_HELP,
KEY_VERSION,
+ KEY_FOREGROUND,
+ KEY_CONFIGFILE,
};
#define SSHFS_OPT(t, p, v) { t, offsetof(struct sshfs, p), v }
@@ -252,6 +298,7 @@
SSHFS_OPT("ssh_command=%s", ssh_command, 0),
SSHFS_OPT("sftp_server=%s", sftp_server, 0),
SSHFS_OPT("max_read=%u", max_read, 0),
+ SSHFS_OPT("max_write=%u", max_write, 0),
SSHFS_OPT("ssh_protocol=%u", ssh_ver, 0),
SSHFS_OPT("-1", ssh_ver, 1),
SSHFS_OPT("workaround=%s", workarounds, 0),
@@ -264,6 +311,7 @@
SSHFS_OPT("transform_symlinks", transform_symlinks, 1),
SSHFS_OPT("follow_symlinks", follow_symlinks, 1),
SSHFS_OPT("no_check_root", no_check_root, 1),
+ SSHFS_OPT("password_stdin", password_stdin, 1),
FUSE_OPT_KEY("-p ", KEY_PORT),
FUSE_OPT_KEY("-C", KEY_COMPRESS),
@@ -271,6 +319,10 @@
FUSE_OPT_KEY("--version", KEY_VERSION),
FUSE_OPT_KEY("-h", KEY_HELP),
FUSE_OPT_KEY("--help", KEY_HELP),
+ FUSE_OPT_KEY("debug", KEY_FOREGROUND),
+ FUSE_OPT_KEY("-d", KEY_FOREGROUND),
+ FUSE_OPT_KEY("-f", KEY_FOREGROUND),
+ FUSE_OPT_KEY("-F ", KEY_CONFIGFILE),
FUSE_OPT_END
};
@@ -599,7 +651,7 @@
if (sshfs.blksize) {
stbuf->st_blksize = sshfs.blksize;
stbuf->st_blocks = ((size + sshfs.blksize - 1) &
- ~(sshfs.blksize - 1)) >> 9;
+ ~((unsigned long long) sshfs.blksize - 1)) >> 9;
}
stbuf->st_uid = uid;
stbuf->st_gid = gid;
@@ -608,6 +660,48 @@
return 0;
}
+static int buf_get_statvfs(struct buffer *buf, struct statvfs *stbuf)
+{
+ uint64_t bsize;
+ uint64_t frsize;
+ uint64_t blocks;
+ uint64_t bfree;
+ uint64_t bavail;
+ uint64_t files;
+ uint64_t ffree;
+ uint64_t favail;
+ uint64_t fsid;
+ uint64_t flag;
+ uint64_t namemax;
+
+ if (buf_get_uint64(buf, &bsize) == -1 ||
+ buf_get_uint64(buf, &frsize) == -1 ||
+ buf_get_uint64(buf, &blocks) == -1 ||
+ buf_get_uint64(buf, &bfree) == -1 ||
+ buf_get_uint64(buf, &bavail) == -1 ||
+ buf_get_uint64(buf, &files) == -1 ||
+ buf_get_uint64(buf, &ffree) == -1 ||
+ buf_get_uint64(buf, &favail) == -1 ||
+ buf_get_uint64(buf, &fsid) == -1 ||
+ buf_get_uint64(buf, &flag) == -1 ||
+ buf_get_uint64(buf, &namemax) == -1) {
+ return -1;
+ }
+
+ memset(stbuf, 0, sizeof(struct statvfs));
+ stbuf->f_bsize = bsize;
+ stbuf->f_frsize = frsize;
+ stbuf->f_blocks = blocks;
+ stbuf->f_bfree = bfree;
+ stbuf->f_bavail = bavail;
+ stbuf->f_files = files;
+ stbuf->f_ffree = ffree;
+ stbuf->f_favail = favail;
+ stbuf->f_namemax = namemax;
+
+ return 0;
+}
+
static int buf_get_entries(struct buffer *buf, fuse_cache_dirh_t h,
fuse_cache_dirfil_t filler)
{
@@ -695,11 +789,123 @@
}
#endif
+static int pty_expect_loop(void)
+{
+ int res;
+ char buf[256];
+ const char *passwd_str = "assword:";
+ int timeout = 60 * 1000; /* 1min timeout for the prompt to appear */
+ int passwd_len = strlen(passwd_str);
+ int len = 0;
+ char c;
+
+ while (1) {
+ struct pollfd fds[2];
+
+ fds[0].fd = sshfs.fd;
+ fds[0].events = POLLIN;
+ fds[1].fd = sshfs.ptyfd;
+ fds[1].events = POLLIN;
+ res = poll(fds, 2, timeout);
+ if (res == -1) {
+ perror("poll");
+ return -1;
+ }
+ if (res == 0) {
+ fprintf(stderr, "Timeout waiting for prompt\n");
+ return -1;
+ }
+ if (fds[0].revents) {
+ /*
+ * Something happened on stdout of ssh, this
+ * either means, that we are connected, or
+ * that we are disconnected. In any case the
+ * password doesn't matter any more.
+ */
+ break;
+ }
+
+ res = read(sshfs.ptyfd, &c, 1);
+ if (res == -1) {
+ perror("read");
+ return -1;
+ }
+ if (res == 0) {
+ fprintf(stderr, "EOF while waiting for prompt\n");
+ return -1;
+ }
+ buf[len] = c;
+ len++;
+ if (len == passwd_len) {
+ if (memcmp(buf, passwd_str, passwd_len) == 0) {
+ write(sshfs.ptyfd, sshfs.password,
+ strlen(sshfs.password));
+ }
+ memmove(buf, buf + 1, passwd_len - 1);
+ len--;
+ }
+ }
+
+ if (!sshfs.reconnect) {
+ size_t size = getpagesize();
+
+ memset(sshfs.password, 0, size);
+ munmap(sshfs.password, size);
+ sshfs.password = NULL;
+ }
+
+ return 0;
+}
+
+static int pty_master(char **name)
+{
+ int mfd;
+
+ mfd = open("/dev/ptmx", O_RDWR | O_NOCTTY);
+ if (mfd == -1) {
+ perror("failed to open pty");
+ return -1;
+ }
+ if (grantpt(mfd) != 0) {
+ perror("grantpt");
+ return -1;
+ }
+ if (unlockpt(mfd) != 0) {
+ perror("unlockpt");
+ return -1;
+ }
+ *name = ptsname(mfd);
+
+ return mfd;
+}
+
+static void replace_arg(char **argp, const char *newarg)
+{
+ free(*argp);
+ *argp = strdup(newarg);
+ if (*argp == NULL) {
+ fprintf(stderr, "sshfs: memory allocation failed\n");
+ abort();
+ }
+}
+
static int start_ssh(void)
{
+ char *ptyname = NULL;
int sockpair[2];
int pid;
+ if (sshfs.password_stdin) {
+
+ sshfs.ptyfd = pty_master(&ptyname);
+ if (sshfs.ptyfd == -1)
+ return -1;
+
+ sshfs.ptyslavefd = open(ptyname, O_RDWR | O_NOCTTY);
+ if (sshfs.ptyslavefd == -1)
+ return -1;
+ }
+
if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockpair) == -1) {
perror("failed to create socket pair");
return -1;
@@ -709,6 +915,7 @@
pid = fork();
if (pid == -1) {
perror("failed to fork");
+ close(sockpair[1]);
return -1;
} else if (pid == 0) {
int devnull;
@@ -722,11 +929,18 @@
#endif
if (sshfs.nodelaysrv_workaround) {
+ int i;
/*
* Hack to work around missing TCP_NODELAY
* setting in sshd
*/
- sshfs.ssh_args.argv[1] = "-X";
+ for (i = 1; i < sshfs.ssh_args.argc; i++) {
+ if (strcmp(sshfs.ssh_args.argv[i], "-x") == 0) {
+ replace_arg(&sshfs.ssh_args.argv[i],
+ "-X");
+ break;
+ }
+ }
}
devnull = open("/dev/null", O_WRONLY);
@@ -735,7 +949,7 @@
perror("failed to redirect input/output");
_exit(1);
}
- if (!sshfs.debug && devnull != -1)
+ if (!sshfs.foreground && devnull != -1)
dup2(devnull, 2);
close(devnull);
@@ -753,8 +967,33 @@
}
chdir("/");
+ if (sshfs.password_stdin) {
+ int sfd;
+
+ setsid();
+ sfd = open(ptyname, O_RDWR);
+ if (sfd == -1) {
+ perror(ptyname);
+ _exit(1);
+ }
+ close(sfd);
+ close(sshfs.ptyslavefd);
+ close(sshfs.ptyfd);
+ }
+
+ if (sshfs.debug) {
+ int i;
+
+ fprintf(stderr, "executing");
+ for (i = 0; i < sshfs.ssh_args.argc; i++)
+ fprintf(stderr, " <%s>",
+ sshfs.ssh_args.argv[i]);
+ fprintf(stderr, "\n");
+ }
+
execvp(sshfs.ssh_args.argv[0], sshfs.ssh_args.argv);
- perror("execvp");
+ fprintf(stderr, "failed to execute '%s': %s\n",
+ sshfs.ssh_args.argv[0], strerror(errno));
_exit(1);
}
waitpid(pid, NULL, 0);
@@ -999,12 +1238,21 @@
if (sshfs.debug) {
struct timeval now;
unsigned int difftime;
+ unsigned msgsize = buf.size + 5;
+
gettimeofday(&now, NULL);
difftime = (now.tv_sec - req->start.tv_sec) * 1000;
difftime += (now.tv_usec - req->start.tv_usec) / 1000;
DEBUG(" [%05i] %14s %8ubytes (%ims)\n", id,
- type_name(type),
- (unsigned) buf.size + 5, difftime);
+ type_name(type), msgsize, difftime);
+
+ if (difftime < sshfs.min_rtt || !sshfs.num_received)
+ sshfs.min_rtt = difftime;
+ if (difftime > sshfs.max_rtt)
+ sshfs.max_rtt = difftime;
+ sshfs.total_rtt += difftime;
+ sshfs.num_received++;
+ sshfs.bytes_received += msgsize;
}
req->reply = buf;
req->reply_type = type;
@@ -1025,6 +1273,20 @@
return 0;
}
+static void close_conn(void)
+{
+ close(sshfs.fd);
+ sshfs.fd = -1;
+ if (sshfs.ptyfd != -1) {
+ close(sshfs.ptyfd);
+ sshfs.ptyfd = -1;
+ }
+ if (sshfs.ptyslavefd != -1) {
+ close(sshfs.ptyslavefd);
+ sshfs.ptyslavefd = -1;
+ }
+}
+
static void *process_requests(void *data_)
{
(void) data_;
@@ -1040,8 +1302,7 @@
} else {
pthread_mutex_lock(&sshfs.lock);
sshfs.processing_thread_started = 0;
- close(sshfs.fd);
- sshfs.fd = -1;
+ close_conn();
g_hash_table_foreach_remove(sshfs.reqtab, (GHRFunc) clean_req,
NULL);
sshfs.connver ++;
@@ -1070,10 +1331,34 @@
if (buf_get_uint32(buf, version) == -1)
return -1;
+ DEBUG("Server version: %u\n", *version);
+
if (len > 5) {
struct buffer buf2;
+
buf_init(&buf2, len - 5);
- return do_read(&buf2);
+ if (do_read(&buf2) == -1)
+ return -1;
+
+ do {
+ char *ext;
+ char *extdata;
+
+ if (buf_get_string(&buf2, &ext) == -1 ||
+ buf_get_string(&buf2, &extdata) == -1)
+ return -1;
+
+ DEBUG("Extension: %s <%s>\n", ext, extdata);
+
+ if (strcmp(ext, SFTP_EXT_POSIX_RENAME) == 0 &&
+ strcmp(extdata, "1") == 0) {
+ sshfs.ext_posix_rename = 1;
+ sshfs.rename_workaround = 0;
+ }
+ if (strcmp(ext, SFTP_EXT_STATVFS) == 0 &&
+ strcmp(extdata, "2") == 0)
+ sshfs.ext_statvfs = 1;
+ } while (buf2.len < buf2.size);
}
return 0;
}
@@ -1112,11 +1397,14 @@
buf_init(&buf, 0);
if (sftp_send_iov(SSH_FXP_INIT, PROTO_VERSION, NULL, 0) == -1)
goto out;
+
+ if (sshfs.password_stdin && pty_expect_loop() == -1)
+ goto out;
+
if (sftp_find_init_reply(&version) == -1)
goto out;
sshfs.server_version = version;
- DEBUG("Server version: %i\n", sshfs.server_version);
if (version > PROTO_VERSION) {
fprintf(stderr,
"Warning: server uses version: %i, we support: %i\n",
@@ -1268,6 +1556,11 @@
if (!err)
err = sftp_init();
+ if (err)
+ close_conn();
+ else
+ sshfs.num_connect++;
+
return err;
}
@@ -1413,8 +1706,11 @@
pthread_cond_wait(&sshfs.outstanding_cond, &sshfs.lock);
g_hash_table_insert(sshfs.reqtab, GUINT_TO_POINTER(id), req);
- if (sshfs.debug)
+ if (sshfs.debug) {
gettimeofday(&req->start, NULL);
+ sshfs.num_sent++;
+ sshfs.bytes_sent += req->len;
+ }
DEBUG("[%05i] %s\n", id, type_name(type));
pthread_mutex_unlock(&sshfs.lock);
@@ -1706,6 +2002,19 @@
return err;
}
+static int sshfs_ext_posix_rename(const char *from, const char *to)
+{
+ int err;
+ struct buffer buf;
+ buf_init(&buf, 0);
+ buf_add_string(&buf, SFTP_EXT_POSIX_RENAME);
+ buf_add_path(&buf, from);
+ buf_add_path(&buf, to);
+ err = sftp_request(SSH_FXP_EXTENDED, &buf, SSH_FXP_STATUS, NULL);
+ buf_free(&buf);
+ return err;
+}
+
static void random_string(char *str, int length)
{
int i;
@@ -1717,7 +2026,10 @@
static int sshfs_rename(const char *from, const char *to)
{
int err;
- err = sshfs_do_rename(from, to);
+ if (sshfs.ext_posix_rename)
+ err = sshfs_ext_posix_rename(from, to);
+ else
+ err = sshfs_do_rename(from, to);
if (err == -EPERM && sshfs.rename_workaround) {
size_t tolen = strlen(to);
if (tolen + RENAME_TEMP_CHARS < PATH_MAX) {
@@ -1818,6 +2130,7 @@
uint32_t pflags = 0;
struct iovec iov;
uint8_t type;
+ uint64_t wrctr = cache_get_write_ctr();
if ((fi->flags & O_ACCMODE) == O_RDONLY)
pflags = SSH_FXF_READ;
@@ -1873,7 +2186,7 @@
}
if (!err) {
- cache_add_attr(path, &stbuf);
+ cache_add_attr(path, &stbuf, wrctr);
buf_finish(&sf->handle);
fi->fh = (unsigned long) sf;
} else {
@@ -2216,10 +2529,31 @@
return err ? err : (int) size;
}
+static int sshfs_ext_statvfs(const char *path, struct statvfs *stbuf)
+{
+ int err;
+ struct buffer buf;
+ struct buffer outbuf;
+ buf_init(&buf, 0);
+ buf_add_string(&buf, SFTP_EXT_STATVFS);
+ buf_add_path(&buf, path);
+ err = sftp_request(SSH_FXP_EXTENDED, &buf, SSH_FXP_EXTENDED_REPLY,
+ &outbuf);
+ if (!err) {
+ if (buf_get_statvfs(&outbuf, stbuf) == -1)
+ err = -EIO;
+ buf_free(&outbuf);
+ }
+ buf_free(&buf);
+ return err;
+}
+
+
#if FUSE_VERSION >= 25
static int sshfs_statfs(const char *path, struct statvfs *buf)
{
- (void) path;
+ if (sshfs.ext_statvfs)
+ return sshfs_ext_statvfs(path, buf);
buf->f_namemax = 255;
buf->f_bsize = sshfs.blksize;
@@ -2236,7 +2570,22 @@
#else
static int sshfs_statfs(const char *path, struct statfs *buf)
{
- (void) path;
+ if (sshfs.ext_statvfs) {
+ int err;
+ struct statvfs vbuf;
+
+ err = sshfs_ext_statvfs(path, &vbuf);
+ if (!err) {
+ buf->f_bsize = vbuf.f_bsize;
+ buf->f_blocks = vbuf.f_blocks;
+ buf->f_bfree = vbuf.f_bfree;
+ buf->f_bavail = vbuf.f_bavail;
+ buf->f_files = vbuf.f_files;
+ buf->f_ffree = vbuf.f_ffree;
+ buf->f_namelen = vbuf.f_namemax;
+ }
+ return err;
+ }
buf->f_namelen = 255;
buf->f_bsize = sshfs.blksize;
@@ -2430,6 +2779,8 @@
static int processing_init(void)
{
+ signal(SIGPIPE, SIG_IGN);
+
pthread_mutex_init(&sshfs.lock, NULL);
pthread_mutex_init(&sshfs.lock_write, NULL);
pthread_cond_init(&sshfs.outstanding_cond, NULL);
@@ -2487,6 +2838,7 @@
"SSHFS options:\n"
" -p PORT equivalent to '-o port=PORT'\n"
" -C equivalent to '-o compression=yes'\n"
+" -F ssh_configfile specifies alternative ssh configuration file\n"
" -1 equivalent to '-o ssh_protocol=1'\n"
" -o reconnect reconnect to server\n"
" -o sshfs_sync synchronous writes\n"
@@ -2515,6 +2867,7 @@
" -o transform_symlinks transform absolute symlinks to relative\n"
" -o follow_symlinks follow symlinks on the server\n"
" -o no_check_root don't check for existence of 'dir' on server\n"
+" -o password_stdin read password from stdin (only for pam_mount!)\n"
" -o SSHOPT=VAL ssh options (see man ssh_config)\n"
"\n", progname);
}
@@ -2576,6 +2929,12 @@
ssh_add_arg("-oCompression=yes");
return 0;
+ case KEY_CONFIGFILE:
+ tmp = g_strdup_printf("-F%s", arg + 2);
+ ssh_add_arg(tmp);
+ g_free(tmp);
+ return 0;
+
case KEY_HELP:
usage(outargs->argv[0]);
fuse_opt_add_arg(outargs, "-ho");
@@ -2590,6 +2949,10 @@
#endif
exit(0);
+ case KEY_FOREGROUND:
+ sshfs.foreground = 1;
+ return 1;
+
default:
fprintf(stderr, "internal error\n");
abort();
@@ -2641,7 +3004,7 @@
}
#endif
-void check_large_read(struct fuse_args *args)
+static void check_large_read(struct fuse_args *args)
{
struct utsname buf;
int err = uname(&buf);
@@ -2650,6 +3013,84 @@
fuse_opt_insert_arg(args, 1, "-olarge_read");
}
+static int read_password(void)
+{
+ int size = getpagesize();
+ int max_password = 64;
+ int n;
+
+ sshfs.password = mmap(NULL, size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_LOCKED,
+ -1, 0);
+ if (sshfs.password == MAP_FAILED) {
+ perror("Failed to allocate locked page for password");
+ return -1;
+ }
+
+ /* Don't use fgets() because password might stay in memory */
+ for (n = 0; n < max_password; n++) {
+ int res;
+
+ res = read(0, &sshfs.password[n], 1);
+ if (res == -1) {
+ perror("Reading password");
+ return -1;
+ }
+ if (res == 0) {
+ sshfs.password[n] = '\n';
+ break;
+ }
+ if (sshfs.password[n] == '\n')
+ break;
+ }
+ if (n == max_password) {
+ fprintf(stderr, "Password too long\n");
+ return -1;
+ }
+ sshfs.password[n+1] = '\0';
+ ssh_add_arg("-oNumberOfPasswordPrompts=1");
+ ssh_add_arg("-oPreferredAuthentications=password,keyboard-interactive");
+
+ return 0;
+}
+
+static void set_ssh_command(void)
+{
+ char *s;
+ char *d;
+ int i = 0;
+ int end = 0;
+
+ d = sshfs.ssh_command;
+ s = sshfs.ssh_command;
+ while (!end) {
+ switch (*s) {
+ case '\0':
+ end = 1;
+ case ' ':
+ *d = '\0';
+ if (i == 0) {
+ replace_arg(&sshfs.ssh_args.argv[0],
+ sshfs.ssh_command);
+ } else {
+ if (fuse_opt_insert_arg(&sshfs.ssh_args, i,
+ sshfs.ssh_command) == -1)
+ _exit(1);
+ }
+ i++;
+ d = sshfs.ssh_command;
+ break;
+
+ case '\\':
+ if (s[1])
+ s++;
+ default:
+ *d++ = *s;
+ }
+ s++;
+ }
+}
+
int main(int argc, char *argv[])
{
int res;
@@ -2664,6 +3105,7 @@
sshfs.blksize = 4096;
sshfs.max_read = 65536;
+ sshfs.max_write = 65536;
sshfs.nodelay_workaround = 1;
sshfs.nodelaysrv_workaround = 0;
sshfs.rename_workaround = 0;
@@ -2671,6 +3113,9 @@
sshfs.buflimit_workaround = 1;
sshfs.ssh_ver = 2;
sshfs.progname = argv[0];
+ sshfs.fd = -1;
+ sshfs.ptyfd = -1;
+ sshfs.ptyslavefd = -1;
ssh_add_arg("ssh");
ssh_add_arg("-x");
ssh_add_arg("-a");
@@ -2680,6 +3125,14 @@
parse_workarounds() == -1)
exit(1);
+ DEBUG("SSHFS version %s\n", PACKAGE_VERSION);
+
+ if (sshfs.password_stdin) {
+ res = read_password();
+ if (res == -1)
+ exit(1);
+ }
+
if (sshfs.buflimit_workaround)
/* Work around buggy sftp-server in OpenSSH. Without this on
a slow server a 10Mbyte buffer would fill up and the server
@@ -2702,10 +3155,8 @@
else
sshfs.base_path = g_strdup(base_path);
- if (sshfs.ssh_command) {
- free(sshfs.ssh_args.argv[0]);
- sshfs.ssh_args.argv[0] = sshfs.ssh_command;
- }
+ if (sshfs.ssh_command)
+ set_ssh_command();
tmp = g_strdup_printf("-%i", sshfs.ssh_ver);
ssh_add_arg(tmp);
@@ -2747,11 +3198,15 @@
if (sshfs.max_read > 65536)
sshfs.max_read = 65536;
+ if (sshfs.max_write > 65536)
+ sshfs.max_write = 65536;
if (fuse_is_lib_option("ac_attr_timeout="))
fuse_opt_insert_arg(&args, 1, "-oauto_cache,ac_attr_timeout=0");
tmp = g_strdup_printf("-omax_read=%u", sshfs.max_read);
fuse_opt_insert_arg(&args, 1, tmp);
+ tmp = g_strdup_printf("-omax_write=%u", sshfs.max_write);
+ fuse_opt_insert_arg(&args, 1, tmp);
g_free(tmp);
#if FUSE_VERSION >= 27
libver = fuse_version();
@@ -2765,6 +3220,26 @@
g_free(fsname);
check_large_read(&args);
res = sshfs_fuse_main(&args);
+
+ if (sshfs.debug) {
+ unsigned int avg_rtt = 0;
+
+ if (sshfs.num_sent)
+ avg_rtt = sshfs.total_rtt / sshfs.num_sent;
+
+ DEBUG("\n"
+ "sent: %llu messages, %llu bytes\n"
+ "received: %llu messages, %llu bytes\n"
+ "rtt min/max/avg: %ums/%ums/%ums\n"
+ "num connect: %u\n",
+ (unsigned long long) sshfs.num_sent,
+ (unsigned long long) sshfs.bytes_sent,
+ (unsigned long long) sshfs.num_received,
+ (unsigned long long) sshfs.bytes_received,
+ sshfs.min_rtt, sshfs.max_rtt, avg_rtt,
+ sshfs.num_connect);
+ }
+
fuse_opt_free_args(&args);
fuse_opt_free_args(&sshfs.ssh_args);
free(sshfs.directport);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package samba
checked in at Fri Jul 25 17:04:17 CEST 2008.
--------
--- samba/samba.changes 2008-07-03 14:31:51.000000000 +0200
+++ /mounts/work_src_done/STABLE/samba/samba.changes 2008-07-25 09:22:38.000000000 +0200
@@ -1,0 +2,88 @@
+Fri Jul 25 09:22:13 CEST 2008 - anschneider(a)suse.de
+
+- Remove trailing withespace from wbinfo -m which breaks gdm auth.
+
+-------------------------------------------------------------------
+Thu Jul 24 15:13:15 CEST 2008 - anschneider(a)suse.de
+
+- Add a recommendation to the samba and samba-winbind package to install
+ logrotate for openSUSE 11.0 and later.
+
+-------------------------------------------------------------------
+Wed Jul 23 16:27:57 CEST 2008 - hare(a)suse.de
+
+- Include mkinitrd scriptlets.
+
+-------------------------------------------------------------------
+Mon Jul 21 08:37:01 CEST 2008 - boyang(a)suse.de
+
+- Allow %u parameters for print job username - use advanced sub; (bnc#374389).
+
+-------------------------------------------------------------------
+Thu Jul 17 18:10:03 CEST 2008 - lmuelle(a)suse.de
+
+- Update to 3.0.31.
+ + BUG 5504: Fix SIGTERM handling in Winbind children so that they do not
+ remove the unix domain socket used to field client requests.
+ + Split the winbindd_passdb backend into a 'builtin' and a 'sam' backend.
+ + When allocating client buffers for large read/write - make sure we take
+ account of the large read/write SMB headers as well as the buffer space.
+ + Memory leak fixes in DC location code.
+ + BUG 5533: Winbindd fails to cope correctly with a workgroup name
+ containing a '.'
+ + BUG 5555: Don't return NT_STATUS_PASSWORD_MUST_CHANGE error on machine
+ account logon.
+ + BUG 5551: smbd recursing back into winbindd from a winbindd call.
+ + Fix usage message for "net rpc trustdom add".
+ + Ensure consistent use of pdb_get_nt_passwd instead of pdb_get_lanman_passwd.
+ + BUG 5578: Bad (non-Samba) use of strlcat gives error.
+ + Canonicalize servername in the printer functions to remove leading '\\'
+ characters.
+ + Documentation build fixes.
+ + [DOCS] Fix use of smbconfoption in samba.entities.
+ + Return NULL in sitename_fetch() if gencache_init() fails.
+ + Use machine account and machine password from our domain when contacting
+ trusted domains.
+ + SPNEGO SPN fix when contacting trusted domains.
+ + BUG 5285: Fix libcap header mismatch.
+ + Fix joining NT4 domains.
+ + Don't let winbind getgroups crash when we have no gids in the token.
+ + Fallback to level 24 pwd set while joining.
+ + Fix joining w2k domains in "security = ads".
+ + Fix pam_sm_chauthtok for storing modified cached creds.
+ + BUG 5202: Re-activate "acl group control" parameter and make it only apply
+ to owning group.
+ + BUG 5531: Fix conversion of ns units when converting from nttime to
+ timespec.
+ + BUG 4974: Map NT_STATUS_OBJECT_PATH_NOT_FOUND to ENOENT in libsmbclient.
+ + Fix a segfault in base64_encode_data_blob.
+ + AIX build fixes.
+ + ENODATA is not defined in freeBSD 4.6.2.
+ + Don't reset password last set time just because the expired flag is set to
+ 0.
+ + Fix usage message for 'net idmap dump'.
+ + Miscellaneous man page fixes.
+ + BUG 4203: Samba3-HOWTO: Add improvements/fixes submitted by Pete Boyd.
+ + Fixes to man pages.
+ + Add tdb file documentation.
+ + Ensure that winbindd trusted domain children keep primary domain online
+ status up to date.
+ + Update cached creds during password change.
+ + Ensure that Winbind always uses set_domain_offline() to mark a domain
+ offline.
+ + Allow authentication and memory credential refresh after password change
+ from gdm/xdm.
+ + Memory leak fixes.
+
+-------------------------------------------------------------------
+Tue Jul 8 08:14:38 CEST 2008 - boyang(a)suse.de
+
+- Allow authentication and memory credential refresh after password change
+ from gdm/xdm. Patch from boyang <boyang(a)novell.com>. Jeremy; [bnc#395578].
+
+-------------------------------------------------------------------
+Fri Jul 4 16:22:17 CEST 2008 - lmuelle(a)suse.de
+
+- Add SMB_VFS_OP_RECVFILE to vfs_op_names to get it in sync with vfs.h.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ samba-doc.spec ++++++
--- /var/tmp/diff_new_pack.n10772/_old 2008-07-25 17:01:32.000000000 +0200
+++ /var/tmp/diff_new_pack.n10772/_new 2008-07-25 17:01:32.000000000 +0200
@@ -19,7 +19,7 @@
License: GPL v3 or later
Url: http://www.samba.org/
Version: 3.2.0
-Release: 25
+Release: 33
Summary: Samba Documentation
Group: Documentation/Other
AutoReqProv: on
@@ -299,7 +299,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%changelog
++++++ samba.spec ++++++
--- /var/tmp/diff_new_pack.n10772/_old 2008-07-25 17:01:32.000000000 +0200
+++ /var/tmp/diff_new_pack.n10772/_new 2008-07-25 17:01:32.000000000 +0200
@@ -44,10 +44,10 @@
Url: http://www.samba.org/
AutoReqProv: on
Version: 3.2.0
-Release: 25
+Release: 32
Requires: samba-client >= %{version}
%if 0%{?suse_version} > 1030
-Recommends: cron
+Recommends: cron logrotate
%endif
PreReq: /bin/cp /bin/mkdir /bin/mv /bin/rm /bin/touch /usr/bin/dirname /usr/bin/grep /usr/sbin/groupadd /usr/bin/tr
Summary: A SMB/CIFS File, Print, and Authentication Server
@@ -111,7 +111,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%package client
@@ -148,7 +148,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1020
@@ -169,7 +169,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%endif
@@ -199,7 +199,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%endif
@@ -225,7 +225,7 @@
--------
Jeremy Allison <jra at samba dot org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%if %{make_utils}
@@ -258,7 +258,7 @@
Obsoletes: samba3-winbind
Requires: samba-client >= %{version}
%if 0%{?suse_version} > 1030
-Recommends: cron
+Recommends: cron logrotate
%endif
PreReq: /bin/ln /sbin/ldconfig /sbin/insserv /bin/rm
@@ -271,7 +271,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%if 0%{?suse_version} && 0%{?suse_version} < 1031
@@ -306,7 +306,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%else
@@ -320,7 +320,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%endif
@@ -354,7 +354,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%package -n libnetapi0
@@ -373,7 +373,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%package -n libnetapi-devel
@@ -393,7 +393,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%if 0%{?suse_version} && 0%{?suse_version} < 1031
@@ -420,7 +420,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%else
@@ -434,7 +434,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%endif
@@ -465,7 +465,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%if %{make_ldapsmb}
@@ -486,7 +486,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%package -n libtalloc-devel
@@ -506,7 +506,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%package -n libtdb1
@@ -525,7 +525,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%package -n libtdb-devel
@@ -545,7 +545,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%package -n libwbclient0
@@ -564,7 +564,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%package -n libwbclient-devel
@@ -584,7 +584,7 @@
--------
The Samba Team <samba(a)samba.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%package -n ldapsmb
@@ -593,7 +593,7 @@
Group: Productivity/Networking/Samba
AutoReqProv: on
Version: 1.34b
-Release: 198
+Release: 205
Requires: perl-ldap
%description -n ldapsmb
@@ -606,7 +606,7 @@
--------
Guenther Deschner <guenther at deschner dot de>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%endif
@@ -628,7 +628,7 @@
--------
Steve French <sfrench at Samba dot org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%endif
@@ -658,7 +658,7 @@
--------
Rainer Link <rainer(a)openantivirus.org>
-Source Timestamp: 1842
+Source Timestamp: 1861
Branch : trunk
%endif
@@ -955,6 +955,12 @@
echo "%config(noreplace) %{_sysconfdir}/logrotate.d/${file}" >>${RPM_BUILD_DIR}/samba-%{samba_ver_full}/filelist-${file}
done
cp -p docu/README.vendor ${RPM_BUILD_ROOT}/%{DOCDIR}/README.%{VENDOR}
+# Install mkinitrd scripts for boot process
+%if 0%{?suse_version} > 1100
+%__install -d %{buildroot}/lib/mkinitrd/scripts
+%__install -m 755 mkinitrd/mkinitrd-boot.sh %{buildroot}/lib/mkinitrd/scripts/boot-cifs.sh
+%__install -m 755 mkinitrd/mkinitrd-setup.sh %{buildroot}/lib/mkinitrd/scripts/setup-cifs.sh
+%endif
# SuSEhelp files
cp -p docu/Samba.desktop ${RPM_BUILD_ROOT}/%{_datadir}/susehelp/meta/Administration/System
cp -p docu/manpages.html ../docs/htmldocs
@@ -1606,9 +1612,82 @@
/sbin/umount.cifs
%doc %{_mandir}/man8/mount.cifs.8.*
%doc %{_mandir}/man8/umount.cifs.8.*
+%if 0%{?suse_version} > 1100
+%dir /lib/mkinitrd
+%dir /lib/mkinitrd/scripts
+/lib/mkinitrd/scripts/setup-cifs.sh
+/lib/mkinitrd/scripts/boot-cifs.sh
+%endif
%endif
%changelog
+* Fri Jul 25 2008 anschneider(a)suse.de
+- Remove trailing withespace from wbinfo -m which breaks gdm auth.
+* Thu Jul 24 2008 anschneider(a)suse.de
+- Add a recommendation to the samba and samba-winbind package to install
+ logrotate for openSUSE 11.0 and later.
+* Wed Jul 23 2008 hare(a)suse.de
+- Include mkinitrd scriptlets.
+* Mon Jul 21 2008 boyang(a)suse.de
+- Allow %%u parameters for print job username - use advanced sub; (bnc#374389).
+* Thu Jul 17 2008 lmuelle(a)suse.de
+- Update to 3.0.31.
+ + BUG 5504: Fix SIGTERM handling in Winbind children so that they do not
+ remove the unix domain socket used to field client requests.
+ + Split the winbindd_passdb backend into a 'builtin' and a 'sam' backend.
+ + When allocating client buffers for large read/write - make sure we take
+ account of the large read/write SMB headers as well as the buffer space.
+ + Memory leak fixes in DC location code.
+ + BUG 5533: Winbindd fails to cope correctly with a workgroup name
+ containing a '.'
+ + BUG 5555: Don't return NT_STATUS_PASSWORD_MUST_CHANGE error on machine
+ account logon.
+ + BUG 5551: smbd recursing back into winbindd from a winbindd call.
+ + Fix usage message for "net rpc trustdom add".
+ + Ensure consistent use of pdb_get_nt_passwd instead of pdb_get_lanman_passwd.
+ + BUG 5578: Bad (non-Samba) use of strlcat gives error.
+ + Canonicalize servername in the printer functions to remove leading '\\'
+ characters.
+ + Documentation build fixes.
+ + [DOCS] Fix use of smbconfoption in samba.entities.
+ + Return NULL in sitename_fetch() if gencache_init() fails.
+ + Use machine account and machine password from our domain when contacting
+ trusted domains.
+ + SPNEGO SPN fix when contacting trusted domains.
+ + BUG 5285: Fix libcap header mismatch.
+ + Fix joining NT4 domains.
+ + Don't let winbind getgroups crash when we have no gids in the token.
+ + Fallback to level 24 pwd set while joining.
+ + Fix joining w2k domains in "security = ads".
+ + Fix pam_sm_chauthtok for storing modified cached creds.
+ + BUG 5202: Re-activate "acl group control" parameter and make it only apply
+ to owning group.
+ + BUG 5531: Fix conversion of ns units when converting from nttime to
+ timespec.
+ + BUG 4974: Map NT_STATUS_OBJECT_PATH_NOT_FOUND to ENOENT in libsmbclient.
+ + Fix a segfault in base64_encode_data_blob.
+ + AIX build fixes.
+ + ENODATA is not defined in freeBSD 4.6.2.
+ + Don't reset password last set time just because the expired flag is set to
+ 0.
+ + Fix usage message for 'net idmap dump'.
+ + Miscellaneous man page fixes.
+ + BUG 4203: Samba3-HOWTO: Add improvements/fixes submitted by Pete Boyd.
+ + Fixes to man pages.
+ + Add tdb file documentation.
+ + Ensure that winbindd trusted domain children keep primary domain online
+ status up to date.
+ + Update cached creds during password change.
+ + Ensure that Winbind always uses set_domain_offline() to mark a domain
+ offline.
+ + Allow authentication and memory credential refresh after password change
+ from gdm/xdm.
+ + Memory leak fixes.
+* Tue Jul 08 2008 boyang(a)suse.de
+- Allow authentication and memory credential refresh after password change
+ from gdm/xdm. Patch from boyang <boyang(a)novell.com>. Jeremy; [bnc#395578].
+* Fri Jul 04 2008 lmuelle(a)suse.de
+- Add SMB_VFS_OP_RECVFILE to vfs_op_names to get it in sync with vfs.h.
* Wed Jul 02 2008 lmuelle(a)suse.de
- Call the libsmbclient testsuite from the %%check instead of the %%build
script.
++++++ build-source-timestamp ++++++
--- samba/build-source-timestamp 2008-07-03 14:36:38.000000000 +0200
+++ /mounts/work_src_done/STABLE/samba/build-source-timestamp 2008-07-25 12:27:47.000000000 +0200
@@ -1,2 +1,2 @@
-1842
+1861
Branch : trunk
++++++ patches.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches/samba.org/11a8f5161184914bec031c741c57bbce19998d2c new/patches/samba.org/11a8f5161184914bec031c741c57bbce19998d2c
--- old/patches/samba.org/11a8f5161184914bec031c741c57bbce19998d2c 1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/11a8f5161184914bec031c741c57bbce19998d2c 2008-07-21 11:25:55.000000000 +0200
@@ -0,0 +1,23 @@
+commit 11a8f5161184914bec031c741c57bbce19998d2c
+Author: Bo Yang <boyang(a)novell.com>
+Date: Wed Jul 16 11:11:55 2008 -0400
+
+ Allow %u parameters for print job username - use advanced sub
+
+Index: source/printing/printing.c
+===================================================================
+--- source/printing/printing.c.orig
++++ source/printing/printing.c
+@@ -2438,8 +2438,10 @@ uint32 print_job_start(struct current_us
+
+ if ((vuser = get_valid_user_struct(user->vuid)) != NULL) {
+ fstrcpy(pjob.user, lp_printjob_username(snum));
+- standard_sub_basic(vuser->user.smb_name, vuser->user.domain,
+- pjob.user, sizeof(pjob.user)-1);
++ standard_sub_advanced(sharename, vuser->user.smb_name, path,
++ vuser->gid, vuser->user.smb_name,
++ vuser->user.domain, pjob.user,
++ sizeof(pjob.user) - 1);
+ /* ensure NULL termination */
+ pjob.user[sizeof(pjob.user)-1] = '\0';
+ } else {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches/samba.org/567c6def08d91716c687ed43de0938e1556f26e2 new/patches/samba.org/567c6def08d91716c687ed43de0938e1556f26e2
--- old/patches/samba.org/567c6def08d91716c687ed43de0938e1556f26e2 1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/567c6def08d91716c687ed43de0938e1556f26e2 2008-07-10 11:02:59.000000000 +0200
@@ -0,0 +1,21 @@
+commit 567c6def08d91716c687ed43de0938e1556f26e2
+Author: Lars Mueller <lars(a)samba.org>
+Date: Fri Jul 4 14:51:01 2008 +0200
+
+ Add SMB_VFS_OP_RECVFILE to get it in sync with vfs.h
+
+ Fix "vfs_full_audit.c: name table not in sync with vfs.h" panic reported
+ by Franz Sirl.
+
+diff --git source/modules/vfs_full_audit.c b/source/modules/vfs_full_audit.c
+index db933f7..4a66fb4 100644
+--- source/modules/vfs_full_audit.c
++++ source/modules/vfs_full_audit.c
+@@ -571,6 +571,7 @@ static struct {
+ { SMB_VFS_OP_PWRITE, "pwrite" },
+ { SMB_VFS_OP_LSEEK, "lseek" },
+ { SMB_VFS_OP_SENDFILE, "sendfile" },
++ { SMB_VFS_OP_RECVFILE, "recvfile" },
+ { SMB_VFS_OP_RENAME, "rename" },
+ { SMB_VFS_OP_FSYNC, "fsync" },
+ { SMB_VFS_OP_STAT, "stat" },
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches/samba.org/63316efeeb330d2cb7fa0906824c97da2c7b0074 new/patches/samba.org/63316efeeb330d2cb7fa0906824c97da2c7b0074
--- old/patches/samba.org/63316efeeb330d2cb7fa0906824c97da2c7b0074 1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/63316efeeb330d2cb7fa0906824c97da2c7b0074 2008-07-10 11:02:59.000000000 +0200
@@ -0,0 +1,102 @@
+commit 63316efeeb330d2cb7fa0906824c97da2c7b0074
+Author: Jeremy Allison <jra(a)samba.org>
+Date: Mon Jul 7 11:25:57 2008 -0700
+
+ Allow authentication and memory credential refresh after password change from gdm/xdm. Patch from boyang <boyang(a)novell.com>.
+ Jeremy.
+
+Index: source/nsswitch/pam_winbind.c
+===================================================================
+--- source/nsswitch/pam_winbind.c.orig
++++ source/nsswitch/pam_winbind.c
+@@ -2384,15 +2384,17 @@ static bool _pam_require_krb5_auth_after
+ /* Make sure that we only do this if a) the chauthtok got initiated
+ * during a logon attempt (authenticate->acct_mgmt->chauthtok) b) any
+ * later password change via the "passwd" command if done by the user
+- * itself */
++ * itself
++ * NB. If we login from gdm or xdm and the password expires,
++ * we change the password, but there is no memory cache.
++ * Thus, even for passthrough login, we should do the
++ * authentication again to update memory cache.
++ * --- BoYang
++ * */
+
+ char *new_authtok_reqd_during_auth = NULL;
+ struct passwd *pwd = NULL;
+
+- if (!(ctx->ctrl & WINBIND_KRB5_AUTH)) {
+- return false;
+- }
+-
+ _pam_get_data(ctx->pamh, PAM_WINBIND_NEW_AUTHTOK_REQD_DURING_AUTH,
+ &new_authtok_reqd_during_auth);
+ pam_set_data(ctx->pamh, PAM_WINBIND_NEW_AUTHTOK_REQD_DURING_AUTH,
+@@ -2630,8 +2632,13 @@ int pam_sm_chauthtok(pam_handle_t * pamh
+ cctype = get_krb5_cc_type_from_config(ctx);
+ warn_pwd_expire = get_warn_pwd_expire_from_config(ctx);
+
+- /* clearing offline bit for auth */
+- ctx->ctrl &= ~WINBIND_CACHED_LOGIN;
++ /* Keep WINBIND_CACHED_LOGIN bit for
++ * authentication after changing the password.
++ * This will update the cached credentials in case
++ * that winbindd_dual_pam_chauthtok() fails
++ * to update them.
++ * --- BoYang
++ * */
+
+ ret = winbind_auth_request(ctx, user, pass_new,
+ member, cctype, 0, &response,
+Index: source/winbindd/winbindd_pam.c
+===================================================================
+--- source/winbindd/winbindd_pam.c.orig
++++ source/winbindd/winbindd_pam.c
+@@ -2114,11 +2114,21 @@ enum winbindd_result winbindd_dual_pam_c
+ done:
+
+ if (NT_STATUS_IS_OK(result) && (state->request.flags & WBFLAG_PAM_CACHED_LOGIN)) {
+-
++
+ /* Update the single sign-on memory creds. */
+ result = winbindd_replace_memory_creds(state->request.data.chauthtok.user,
+ newpass);
+
++ /* When we login from gdm or xdm and password expires,
++ * we change password, but there are no memory crendentials
++ * So, winbindd_replace_memory_creds() returns
++ * NT_STATUS_OBJECT_NAME_NOT_FOUND. This is not a failure.
++ * --- BoYang
++ * */
++ if (NT_STATUS_EQUAL(result, NT_STATUS_OBJECT_NAME_NOT_FOUND)) {
++ result = NT_STATUS_OK;
++ }
++
+ if (!NT_STATUS_IS_OK(result)) {
+ DEBUG(10,("Failed to replace memory creds: %s\n", nt_errstr(result)));
+ goto process_result;
+@@ -2128,12 +2138,23 @@ done:
+ result = winbindd_update_creds_by_name(contact_domain,
+ state->mem_ctx, user,
+ newpass);
++ /* Again, this happens when we login from gdm or xdm
++ * and the password expires, *BUT* cached crendentials
++ * doesn't exist. winbindd_update_creds_by_name()
++ * returns NT_STATUS_NO_SUCH_USER.
++ * This is not a failure.
++ * --- BoYang
++ * */
++ if (NT_STATUS_EQUAL(result, NT_STATUS_NO_SUCH_USER)) {
++ result = NT_STATUS_OK;
++ }
++
+ if (!NT_STATUS_IS_OK(result)) {
+ DEBUG(10,("Failed to store creds: %s\n", nt_errstr(result)));
+ goto process_result;
+ }
+ }
+- }
++ }
+
+ if (!NT_STATUS_IS_OK(result) && !got_info && contact_domain) {
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches/samba.org/cdf10e6ee9faff42693bb39ede535cc6611a8fc9 new/patches/samba.org/cdf10e6ee9faff42693bb39ede535cc6611a8fc9
--- old/patches/samba.org/cdf10e6ee9faff42693bb39ede535cc6611a8fc9 1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/cdf10e6ee9faff42693bb39ede535cc6611a8fc9 2008-07-25 09:21:10.000000000 +0200
@@ -0,0 +1,28 @@
+commit cdf10e6ee9faff42693bb39ede535cc6611a8fc9
+Author: Andreas Schneider <anschneider(a)suse.de>
+Date: Mon Jul 21 11:52:10 2008 +0200
+
+ Remove trailing withespace from wbinfo -m which breaks gdm auth.
+
+ Signed-off-by: Andreas Schneider <anschneider(a)suse.de>
+
+Index: source/nsswitch/wbinfo.c
+===================================================================
+--- source/nsswitch/wbinfo.c.orig
++++ source/nsswitch/wbinfo.c
+@@ -359,10 +359,11 @@ static bool wbinfo_list_domains(bool lis
+ }
+
+ for (i=0; i<num_domains; i++) {
+- d_printf("%-16s", domain_list[i].short_name);
+-
+- if (!print_all) {
+- d_printf("\n");
++ if (print_all) {
++ d_printf("%-16s", domain_list[i].short_name);
++ } else {
++ d_printf("%s", domain_list[i].short_name);
++ d_printf("\n");
+ continue;
+ }
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches/series new/patches/series
--- old/patches/series 2008-07-03 12:55:19.000000000 +0200
+++ new/patches/series 2008-07-25 09:21:07.000000000 +0200
@@ -5,7 +5,10 @@
# allows quilt to work in the usual way (= outside of our RPM spec file).
# Samba patches from upstream, svnanon.Samba.org
-
+samba.org/567c6def08d91716c687ed43de0938e1556f26e2 -p0
+samba.org/63316efeeb330d2cb7fa0906824c97da2c7b0074 -p0 # bnc 395578
+samba.org/11a8f5161184914bec031c741c57bbce19998d2c -p0 # bnc 374389
+samba.org/cdf10e6ee9faff42693bb39ede535cc6611a8fc9 -p0
# SuSE specific changes
# disabled -> WIP lmuelle
++++++ vendor-files.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vendor-files/mkinitrd/mkinitrd-boot.sh new/vendor-files/mkinitrd/mkinitrd-boot.sh
--- old/vendor-files/mkinitrd/mkinitrd-boot.sh 1970-01-01 01:00:00.000000000 +0100
+++ new/vendor-files/mkinitrd/mkinitrd-boot.sh 2008-07-23 16:22:15.000000000 +0200
@@ -0,0 +1,50 @@
+#!/bin/bash
+#%stage: block
+#%modules: cifs
+#%programs: /sbin/mount.cifs
+#%if: "$rootfstype" = "cifs"
+#
+##### CIFS support
+##
+## This is where CIFS gets mounted.
+##
+## Command line parameters
+## -----------------------
+##
+## root=cifs://[user:pass@]<server>/<folder> the cifs root path
+## cifsuser=<username> (only used if not defined in root=)
+## cifspass=<password> (only used if not defined in root=)
+##
+
+if [ "$rootfstype" = "cifs" ]; then
+ # load the cifs module before using it
+ load_modules
+
+ if [ "${rootdev%%://*}" = "cifs" ]; then # URL parsing
+ rootdev=${rootdev##cifs://}
+ username=${rootdev%@*}
+ password=${username#*:}
+ if [ "$password" ]; then
+ cifspass=$password
+ username=${username%:*}
+ fi
+ cifsuser=$username
+ if [ "$username" ]; then
+ rootdev="${rootdev#*@}"
+ fi
+ rootdev="//$rootdev"
+ fi
+
+ rootfsmod=
+ if [ ! "$cifsuser" -o ! "$cifspass" ]; then
+ echo "For CIFS support you need to specify a username and password either in the cifsuser and cifspass commandline parameters or in the root= CIFS URL."
+ fi
+ if [ "$rootflags" ] ; then
+ rootflags="${rootflags},user=$cifsuser"
+ else
+ rootflags="user=$cifsuser"
+ fi
+ rootflags="$rootflags,pass=$cifspass"
+else
+ dont_load_modules
+fi
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vendor-files/mkinitrd/mkinitrd-setup.sh new/vendor-files/mkinitrd/mkinitrd-setup.sh
--- old/vendor-files/mkinitrd/mkinitrd-setup.sh 1970-01-01 01:00:00.000000000 +0100
+++ new/vendor-files/mkinitrd/mkinitrd-setup.sh 2008-07-23 16:22:24.000000000 +0200
@@ -0,0 +1,9 @@
+#!/bin/bash
+#
+#%stage: device
+#
+
+if [ "$rootfstype" = "cifs" ]; then
+ interface=default
+ save_var rootfstype
+fi
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vendor-files/tools/package-data new/vendor-files/tools/package-data
--- old/vendor-files/tools/package-data 2008-07-03 14:36:38.000000000 +0200
+++ new/vendor-files/tools/package-data 2008-07-25 12:27:46.000000000 +0200
@@ -1,2 +1,2 @@
# This is an autogenrated file.
-SAMBA_PACKAGE_SVN_VERSION="1842"
+SAMBA_PACKAGE_SVN_VERSION="1861"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-XML-Bare
checked in at Fri Jul 25 17:01:01 CEST 2008.
--------
--- perl-XML-Bare/perl-XML-Bare.changes 2008-06-30 19:06:01.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-XML-Bare/perl-XML-Bare.changes 2008-07-25 15:50:11.000000000 +0200
@@ -1,0 +2,14 @@
+Fri Jul 25 15:11:11 CEST 2008 - anicka(a)suse.cz
+
+- update to 0.30
+ * Add new parsing mode, simple, which simulates XML::Simple.
+ * New function add_node_after
+ * Fixed node ordering such that node order is preserved
+ * Altered xml output so that it cleans extraneous input spacing
+ and indents mixed values properly.
+ * Added prereqs to Makefile.pl
+ * Added Test::POD and Test::POD::Coverage tests
+ * Fixed incorrect pointer type cast in parser.c
+ * Rewrote benchmark system to use templated benchmarking
+
+-------------------------------------------------------------------
Old:
----
XML-Bare-0.27.tar.bz2
New:
----
XML-Bare-0.30.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-XML-Bare.spec ++++++
--- /var/tmp/diff_new_pack.hd6133/_old 2008-07-25 17:00:54.000000000 +0200
+++ /var/tmp/diff_new_pack.hd6133/_new 2008-07-25 17:00:54.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-XML-Bare (Version 0.27)
+# spec file for package perl-XML-Bare (Version 0.30)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -13,8 +13,8 @@
Name: perl-XML-Bare
BuildRequires: perl
-Version: 0.27
-Release: 32
+Version: 0.30
+Release: 1
Requires: expat perl-XML-Parser
Requires: perl = %{perl_version}
AutoReqProv: on
@@ -62,6 +62,17 @@
/var/adm/perl-modules/%{name}
%changelog
+* Fri Jul 25 2008 anicka(a)suse.cz
+- update to 0.30
+ * Add new parsing mode, simple, which simulates XML::Simple.
+ * New function add_node_after
+ * Fixed node ordering such that node order is preserved
+ * Altered xml output so that it cleans extraneous input spacing
+ and indents mixed values properly.
+ * Added prereqs to Makefile.pl
+ * Added Test::POD and Test::POD::Coverage tests
+ * Fixed incorrect pointer type cast in parser.c
+ * Rewrote benchmark system to use templated benchmarking
* Thu Jun 26 2008 anicka(a)suse.cz
- fix permissions (bnc#403978)
* Thu Dec 13 2007 anicka(a)suse.cz
++++++ XML-Bare-0.27.tar.bz2 -> XML-Bare-0.30.tar.bz2 ++++++
++++ 2677 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Set-Object
checked in at Fri Jul 25 17:00:45 CEST 2008.
--------
--- perl-Set-Object/perl-Set-Object.changes 2007-10-08 09:56:57.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-Set-Object/perl-Set-Object.changes 2008-07-25 15:41:55.000000000 +0200
@@ -1,0 +2,11 @@
+Fri Jul 25 15:19:27 CEST 2008 - anicka(a)suse.cz
+
+- update to 1.25
+ * Portability: support Perls before 5.7.3, and make this dependency
+ explicit in the F<Makefile.PL>
+ * Remove threads test which had inadvertantly slipped into the
+ MANIFEST from source control, and add comprehensive documentation
+ on the state of thread support in this module.
+ * Make behaviour when dealing with items which were C<undef> defined.
+
+-------------------------------------------------------------------
Old:
----
perl-Set-Object-1.22-return_value.diff
Set-Object-1.22.tar.bz2
New:
----
perl-Set-Object-1.25-return_value.diff
Set-Object-1.25.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Set-Object.spec ++++++
--- /var/tmp/diff_new_pack.iu4407/_old 2008-07-25 17:00:31.000000000 +0200
+++ /var/tmp/diff_new_pack.iu4407/_new 2008-07-25 17:00:31.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package perl-Set-Object (Version 1.22)
+# spec file for package perl-Set-Object (Version 1.25)
#
-# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
@@ -10,8 +10,9 @@
# norootforbuild
+
Name: perl-Set-Object
-Version: 1.22
+Version: 1.25
Release: 1
Requires: perl = %{perl_version}
AutoReqProv: on
@@ -56,17 +57,26 @@
%{perl_vendorarch}/Set
%{perl_vendorarch}/auto/Set
/var/adm/perl-modules/%{name}
+
%changelog
-* Mon Oct 08 2007 - anicka(a)suse.cz
+* Fri Jul 25 2008 anicka(a)suse.cz
+- update to 1.25
+ * Portability: support Perls before 5.7.3, and make this dependency
+ explicit in the F<Makefile.PL>
+ * Remove threads test which had inadvertantly slipped into the
+ MANIFEST from source control, and add comprehensive documentation
+ on the state of thread support in this module.
+ * Make behaviour when dealing with items which were C<undef> defined.
+* Mon Oct 08 2007 anicka(a)suse.cz
- update to 1.22
* Sub-classing interface added; it is now much easier to make
L<Set::Object> subclasses that return objects other than more
L<Set::Object>s when subclassing.
-* Mon Feb 19 2007 - anicka(a)suse.cz
+* Mon Feb 19 2007 anicka(a)suse.cz
- update to 1.21
- remove last patch (fixed in upstream, the only change in this
release)
-* Fri Feb 16 2007 - anicka(a)suse.cz
+* Fri Feb 16 2007 anicka(a)suse.cz
- update to 1.20
* The C<-E<gt>compare> function was returning "disjoint" for empty
sets.
@@ -75,53 +85,53 @@
arguments to C<Set::Object::Weak-E<gt>new()>, which was very
broken.
- fix misc/pod_coverage.t
-* Thu Jan 25 2007 - anicka(a)suse.cz
+* Thu Jan 25 2007 anicka(a)suse.cz
- update to 1.19
* New class C<Set::Object::Weak>, which all weak sets should get
re-blessed into when you call C<-E<gt>weaken>. Also added
alternative methods of constructing weak sets.
* Fix a memory leak with scalar members (the internal hash used
to store the items was never being freed).
-* Tue Sep 19 2006 - anicka(a)suse.cz
+* Tue Sep 19 2006 anicka(a)suse.cz
- update to 1.18
* Add note to man page on compatibility of C<Storable>
serializations of C<Set::Object>s between revisions.
* fix build for non-gcc compilers
-* Thu Sep 14 2006 - anicka(a)suse.cz
+* Thu Sep 14 2006 anicka(a)suse.cz
- update to 1.17
* fix compile problem affecting some platforms
-* Tue Jul 18 2006 - anicka(a)suse.cz
+* Tue Jul 18 2006 anicka(a)suse.cz
- update to 1.16
* weak reference support
- fix random return value
-* Tue Jul 11 2006 - anicka(a)suse.cz
+* Tue Jul 11 2006 anicka(a)suse.cz
- update to 1.15
- minor release
-* Wed Jan 25 2006 - mls(a)suse.de
+* Wed Jan 25 2006 mls(a)suse.de
- converted neededforbuild to BuildRequires
-* Wed Jan 04 2006 - anicka(a)suse.cz
+* Wed Jan 04 2006 anicka(a)suse.cz
- update to 1.14
-* Mon Aug 01 2005 - mjancar(a)suse.cz
+* Mon Aug 01 2005 mjancar(a)suse.cz
- update to 1.11
-* Thu Aug 19 2004 - mjancar(a)suse.cz
+* Thu Aug 19 2004 mjancar(a)suse.cz
- update to 1.06
-* Thu Feb 26 2004 - mjancar(a)suse.cz
+* Thu Feb 26 2004 mjancar(a)suse.cz
- update to 1.05
-* Fri Aug 22 2003 - mjancar(a)suse.cz
+* Fri Aug 22 2003 mjancar(a)suse.cz
- require the perl version we build with
-* Thu Jul 24 2003 - mjancar(a)suse.cz
+* Thu Jul 24 2003 mjancar(a)suse.cz
- update to 1.03a
-* Tue Jul 15 2003 - mjancar(a)suse.cz
+* Tue Jul 15 2003 mjancar(a)suse.cz
- adapt to perl-5.8.1
- use %%perl_process_packlist
-* Wed Jun 18 2003 - coolo(a)suse.de
+* Wed Jun 18 2003 coolo(a)suse.de
- package directories
-* Thu May 22 2003 - mjancar(a)suse.cz
+* Thu May 22 2003 mjancar(a)suse.cz
- use $RPM_OPT_FLAGS
- fix filelist
-* Tue May 20 2003 - mjancar(a)suse.cz
+* Tue May 20 2003 mjancar(a)suse.cz
- remove unpackaged files
-* Tue Jul 02 2002 - mls(a)suse.de
+* Tue Jul 02 2002 mls(a)suse.de
- remove race in .packlist generation
-* Thu Aug 02 2001 - rvasice(a)suse.cz
+* Thu Aug 02 2001 rvasice(a)suse.cz
- initial package release (version 1.02)
++++++ perl-Set-Object-1.22-return_value.diff -> perl-Set-Object-1.25-return_value.diff ++++++
++++++ Set-Object-1.22.tar.bz2 -> Set-Object-1.25.tar.bz2 ++++++
++++ 4682 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-MIME-tools
checked in at Fri Jul 25 17:00:35 CEST 2008.
--------
--- perl-MIME-tools/perl-MIME-tools.changes 2008-03-24 16:58:16.000000000 +0100
+++ /mounts/work_src_done/STABLE/perl-MIME-tools/perl-MIME-tools.changes 2008-07-25 15:45:36.000000000 +0200
@@ -1,0 +2,14 @@
+Fri Jul 25 15:16:33 CEST 2008 - anicka(a)suse.cz
+
+- update to 5.427
+ * (bugfix) fix remove_sig() on invalid multipart message
+ * (bugfix) make_singlepart() no longer creates bizzare
+ Content-Type: headers
+ * (bugfix) process_part() no longer sets incorrect charset on empty
+ parts
+ * (bugfix) fix runtime warnings caused by incorrect pack() string
+ * (docs) add "SEE ALSO" sections to POD docs
+ * (docs) fix documentation of MIME::Head::get()
+ * (packaging) Depend on IO::File 1.1.3, for its binmode() support
+
+-------------------------------------------------------------------
Old:
----
MIME-tools-5.426.tar.bz2
New:
----
MIME-tools-5.427.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-MIME-tools.spec ++++++
--- /var/tmp/diff_new_pack.qT2273/_old 2008-07-25 17:00:08.000000000 +0200
+++ /var/tmp/diff_new_pack.qT2273/_new 2008-07-25 17:00:08.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-MIME-tools (Version 5.426)
+# spec file for package perl-MIME-tools (Version 5.427)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -22,7 +22,7 @@
Requires: perl = %{perl_version}
AutoReqProv: on
Summary: modules for parsing (and creating!) MIME entities
-Version: 5.426
+Version: 5.427
Release: 1
Source: MIME-tools-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -60,6 +60,17 @@
%doc ChangeLog COPYING examples INSTALLING MANIFEST README*
%changelog
+* Fri Jul 25 2008 anicka(a)suse.cz
+- update to 5.427
+ * (bugfix) fix remove_sig() on invalid multipart message
+ * (bugfix) make_singlepart() no longer creates bizzare
+ Content-Type: headers
+ * (bugfix) process_part() no longer sets incorrect charset on empty
+ parts
+ * (bugfix) fix runtime warnings caused by incorrect pack() string
+ * (docs) add "SEE ALSO" sections to POD docs
+ * (docs) fix documentation of MIME::Head::get()
+ * (packaging) Depend on IO::File 1.1.3, for its binmode() support
* Mon Mar 24 2008 anicka(a)suse.cz
- update to 5.426
* (bugfix) require File::Temp 0.18 or newer, as we need seek()
++++++ MIME-tools-5.426.tar.bz2 -> MIME-tools-5.427.tar.bz2 ++++++
++++ 4545 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-libwww-perl
checked in at Fri Jul 25 17:00:09 CEST 2008.
--------
--- perl-libwww-perl/perl-libwww-perl.changes 2008-06-19 17:05:09.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-libwww-perl/perl-libwww-perl.changes 2008-07-25 15:44:29.000000000 +0200
@@ -1,0 +2,20 @@
+Fri Jul 25 15:17:53 CEST 2008 - anicka(a)suse.cz
+
+- update to 5.814
+ * Typo fix.
+ * Add HTTP::Message::decodable()
+ * Use decoded_content in the synposis
+ * Avoid adding an empty first part in $mess->add_part()
+ * Get rid of all the manual dependency tests.
+ * Simplify the Makefile.PL (no interactivity)
+ * Provide DELETE method in HTTP::Request::Common
+ * Checkbox picks up nearby text in description of alternates
+ * HTML::Form::possible_values() should not returned disabled values
+ * File::Listing documentation claimed only 'unix' format was supported
+ * File::Listing only support English locales
+ * Make common-req.t use Test.pm
+ * Typo; CAN_TALK_TO_OUTSELF
+ * Fix up File::Listings fallback to dosftp
+ * File::Listing parse failure on BSD Linux based systems
+
+-------------------------------------------------------------------
Old:
----
libwww-perl-5.813.tar.bz2
New:
----
libwww-perl-5.814.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-libwww-perl.spec ++++++
--- /var/tmp/diff_new_pack.wrH822/_old 2008-07-25 16:59:53.000000000 +0200
+++ /var/tmp/diff_new_pack.wrH822/_new 2008-07-25 16:59:53.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-libwww-perl (Version 5.813)
+# spec file for package perl-libwww-perl (Version 5.814)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -13,7 +13,7 @@
Name: perl-libwww-perl
BuildRequires: perl-Compress-Zlib perl-HTML-Parser perl-URI
-Version: 5.813
+Version: 5.814
Release: 1
Provides: libwww-perl
Provides: perl_lw3
@@ -82,6 +82,23 @@
/var/adm/perl-modules/%{name}
%changelog
+* Fri Jul 25 2008 anicka(a)suse.cz
+- update to 5.814
+ * Typo fix.
+ * Add HTTP::Message::decodable()
+ * Use decoded_content in the synposis
+ * Avoid adding an empty first part in $mess->add_part()
+ * Get rid of all the manual dependency tests.
+ * Simplify the Makefile.PL (no interactivity)
+ * Provide DELETE method in HTTP::Request::Common
+ * Checkbox picks up nearby text in description of alternates
+ * HTML::Form::possible_values() should not returned disabled values
+ * File::Listing documentation claimed only 'unix' format was supported
+ * File::Listing only support English locales
+ * Make common-req.t use Test.pm
+ * Typo; CAN_TALK_TO_OUTSELF
+ * Fix up File::Listings fallback to dosftp
+ * File::Listing parse failure on BSD Linux based systems
* Thu Jun 19 2008 anicka(a)suse.cz
- update to 5.813
* RobotUA constructor ignores delay, use_sleep
++++++ libwww-perl-5.813.tar.bz2 -> libwww-perl-5.814.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/Changes new/libwww-perl-5.814/Changes
--- old/libwww-perl-5.813/Changes 2008-06-17 22:29:42.000000000 +0200
+++ new/libwww-perl-5.814/Changes 2008-07-25 11:02:16.000000000 +0200
@@ -1,3 +1,30 @@
+2008-07-25 Gisle Aas <gisle(a)ActiveState.com>
+
+ Release 5.814
+
+ Gisle Aas (13):
+ Typo fix.
+ Add HTTP::Message::decodable()
+ Use decoded_content in the synposis
+ Avoid adding an empty first part in $mess->add_part()
+ Get rid of all the manual dependency tests.
+ Simplify the Makefile.PL (no interactivity)
+ Provide DELETE method in HTTP::Request::Common [RT#37481]
+ Checkbox picks up nearby text in description of alternates [RT#36771]
+ HTML::Form::possible_values() should not returned disabled values [RT#35248]
+ File::Listing documentation claimed only 'unix' format was supported [RT#22021]
+ File::Listing only support English locales [RT#28879]
+ Make common-req.t use Test.pm
+ Typo; CAN_TALK_TO_OUTSELF
+
+ Bill Mann (1):
+ Fix up File::Listings fallback to dosftp [RT#23540]
+
+ Hans-H. Froehlich (1):
+ File::Listing parse failure on BSD Linux based systems [RT#26724]
+
+
+
2008-06-17 Gisle Aas <gisle(a)ActiveState.com>
Release 5.813
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/File/Listing.pm new/libwww-perl-5.814/lib/File/Listing.pm
--- old/libwww-perl-5.813/lib/File/Listing.pm 2008-04-07 14:57:56.000000000 +0200
+++ new/libwww-perl-5.814/lib/File/Listing.pm 2008-07-25 10:58:04.000000000 +0200
@@ -1,7 +1,7 @@
package File::Listing;
sub Version { $VERSION; }
-$VERSION = "5.810";
+$VERSION = "5.814";
require Exporter;
@ISA = qw(Exporter);
@@ -114,8 +114,7 @@
use HTTP::Date qw(str2time);
# A place to remember current directory from last line parsed.
-use vars qw($curdir);
-no strict qw(vars);
+use vars qw($curdir @ISA);
@ISA = qw(File::Listing);
@@ -142,7 +141,7 @@
.* # Graps
\D(\d+) # File size
\s+ # Some space
- (\w{3}\s+\d+\s+(?:\d{1,2}:\d{2}|\d{4})) # Date
+ (\w{3}\s+\d+\s+(?:\d{1,2}:\d{2}|\d{4})|\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}) # Date
\s+ # Some more space
(.*)$ # File name
/x )
@@ -197,6 +196,7 @@
}
else {
# parse failed, check if the dosftp parse understands it
+ File::Listing::dosftp->init();
return(File::Listing::dosftp->line($_,$tz,$error));
}
@@ -209,8 +209,7 @@
use HTTP::Date qw(str2time);
# A place to remember current directory from last line parsed.
-use vars qw($curdir);
-no strict qw(vars);
+use vars qw($curdir @ISA);
@ISA = qw(File::Listing);
@@ -230,11 +229,11 @@
s/\015//g;
- my ($kind, $size, $date, $name);
+ my ($date, $size_or_dir, $name, $size);
# 02-05-96 10:48AM 1415 src.slf
# 09-10-96 09:18AM <DIR> sl_util
- if (($date,$size_or_dir,$name) =
+ if (($date, $size_or_dir, $name) =
/^(\d\d-\d\d-\d\d\s+\d\d:\d\d\wM) # Date and time info
\s+ # Some space
(<\w{3}>|\d+) # Dir or Size
@@ -253,9 +252,7 @@
$type = 'f';
$size = $size_or_dir;
}
- return [$name, $type, $size, str2time($date, $tz),
- File::Listing::file_mode($kind)];
-
+ return [$name, $type, $size, str2time($date, $tz), undef];
}
else {
return () unless defined $error;
@@ -278,6 +275,8 @@
package File::Listing::apache;
+use vars qw(@ISA);
+
@ISA = qw(File::Listing);
@@ -356,6 +355,7 @@
=head1 SYNOPSIS
use File::Listing qw(parse_dir);
+ $ENV{LANG} = "C"; # dates in non-English locales not supported
for (parse_dir(`ls -l`)) {
($name, $type, $size, $mtime, $mode) = @$_;
next if $type ne 'f'; # plain file
@@ -369,10 +369,7 @@
=head1 DESCRIPTION
This module exports a single function called parse_dir(), which can be
-used to parse directory listings. Currently it only understand Unix
-C<'ls -l'> and C<'ls -lR'> format. It should eventually be able to
-most things you might get back from a ftp server file listing (LIST
-command), i.e. VMS listings, NT listings, DOS listings,...
+used to parse directory listings.
The first parameter to parse_dir() is the directory listing to parse.
It can be a scalar, a reference to an array of directory lines or a
@@ -382,10 +379,10 @@
in the listing. If this value is undefined, then the local time zone is
assumed.
-The third parameter is the type of listing to assume. The values will
-be strings like 'unix', 'vms', 'dos'. Currently only 'unix' is
-implemented and this is also the default value. Ideally, the listing
-type should be determined automatically.
+The third parameter is the type of listing to assume. Currently
+supported formats are 'unix', 'apache' and 'dosftp'. The default
+value 'unix'. Ideally, the listing type should be determined
+automatically.
The fourth parameter specifies how unparseable lines should be treated.
Values can be 'ignore', 'warn' or a code reference. Warn means that
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/HTML/Form.pm new/libwww-perl-5.814/lib/HTML/Form.pm
--- old/libwww-perl-5.813/lib/HTML/Form.pm 2008-06-17 22:26:18.000000000 +0200
+++ new/libwww-perl-5.814/lib/HTML/Form.pm 2008-07-25 10:58:18.000000000 +0200
@@ -5,7 +5,7 @@
use Carp ();
use vars qw($VERSION);
-$VERSION = "5.813";
+$VERSION = "5.814";
my %form_tags = map {$_ => 1} qw(input textarea button select option);
@@ -114,10 +114,6 @@
require HTML::TokeParser;
my $p = HTML::TokeParser->new(ref($html) ? $html->decoded_content(ref => 1) : \$html);
die "Failed to create HTML::TokeParser object" unless $p;
- eval {
- # optimization
- $p->report_tags(qw(form input textarea select optgroup option keygen label button));
- };
my $base_uri = delete $opt{base};
my $verbose = delete $opt{verbose};
@@ -1190,13 +1186,13 @@
sub possible_values
{
my $self = shift;
- map $_->{value}, @{$self->{menu}};
+ map $_->{value}, grep !$_->{disabled}, @{$self->{menu}};
}
sub other_possible_values
{
my $self = shift;
- map $_->{value}, grep !$_->{seen}, @{$self->{menu}};
+ map $_->{value}, grep !$_->{seen} && !$_->{disabled}, @{$self->{menu}};
}
sub value_names {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/HTTP/Message.pm new/libwww-perl-5.814/lib/HTTP/Message.pm
--- old/libwww-perl-5.813/lib/HTTP/Message.pm 2008-04-16 12:01:16.000000000 +0200
+++ new/libwww-perl-5.814/lib/HTTP/Message.pm 2008-07-25 10:58:30.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use vars qw($VERSION $AUTOLOAD);
-$VERSION = "5.812";
+$VERSION = "5.814";
require HTTP::Headers;
require Carp;
@@ -301,6 +301,26 @@
}
+sub decodable
+{
+ # should match the Content-Encoding values that decoded_content can deal with
+ my $self = shift;
+ my @enc;
+ # XXX preferably we should deterine if the modules are available without loading
+ # them here
+ eval {
+ require Compress::Zlib;
+ push(@enc, "gzip", "x-gzip", "deflate");
+ };
+ eval {
+ require Compess::Bzip2;
+ push(@enc, "x-bzip2");
+ };
+ # we don't care about announcing the 'base64' and 'quoted-printable' stuff
+ return wantarray ? @enc : join(", ", @enc);
+}
+
+
sub as_string
{
my($self, $eol) = @_;
@@ -353,7 +373,10 @@
my $p = HTTP::Message->new($self->remove_content_headers,
$self->content(""));
$self->content_type("multipart/mixed");
- $self->{_parts} = [$p];
+ $self->{_parts} = [];
+ if ($p->headers->header_field_names || $p->content ne "") {
+ push(@{$self->{_parts}}, $p);
+ }
}
elsif (!exists $self->{_parts} || ref($self->{_content}) eq "SCALAR") {
$self->_parts;
@@ -642,6 +665,17 @@
=back
+=item $mess->decodeable
+
+=item HTTP::Message::decodeable()
+
+This returns the encoding identifiers that decoded_content() can
+process. In scalar context returns a comma separated string of
+identifiers.
+
+This value is suitable for initializing the C<Accept-Encoding> request
+header field.
+
=item $mess->parts
=item $mess->parts( @parts )
@@ -656,7 +690,7 @@
If the content type of $msg is not C<multipart/*> or C<message/*> then
this will return the empty list. In scalar context only the first
object is returned. The returned message parts should be regarded as
-are read only (future versions of this library might make it possible
+read-only (future versions of this library might make it possible
to modify the parent by modifying the parts).
If the content type of $msg is C<message/*> then there will only be
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/HTTP/Request/Common.pm new/libwww-perl-5.814/lib/HTTP/Request/Common.pm
--- old/libwww-perl-5.813/lib/HTTP/Request/Common.pm 2008-04-14 10:11:42.000000000 +0200
+++ new/libwww-perl-5.814/lib/HTTP/Request/Common.pm 2008-07-25 10:58:55.000000000 +0200
@@ -8,18 +8,19 @@
require Exporter;
*import = \&Exporter::import;
@EXPORT =qw(GET HEAD PUT POST);
-@EXPORT_OK = qw($DYNAMIC_FILE_UPLOAD);
+@EXPORT_OK = qw($DYNAMIC_FILE_UPLOAD DELETE);
require HTTP::Request;
use Carp();
-$VERSION = "5.811";
+$VERSION = "5.814";
my $CRLF = "\015\012"; # "\r\n" is not portable
sub GET { _simple_req('GET', @_); }
sub HEAD { _simple_req('HEAD', @_); }
sub PUT { _simple_req('PUT' , @_); }
+sub DELETE { _simple_req('DELETE', @_); }
sub POST
{
@@ -352,6 +353,13 @@
"Content". If you really need this you must update the request
returned in a separate statement.
+=item DELETE $url
+
+=item DELETE $url, Header => Value,...
+
+Like GET() but the method in the request is "DELETE". This funciton
+is not exported by default.
+
=item POST $url
=item POST $url, Header => Value,...
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/HTTP/Request.pm new/libwww-perl-5.814/lib/HTTP/Request.pm
--- old/libwww-perl-5.813/lib/HTTP/Request.pm 2008-04-14 10:11:18.000000000 +0200
+++ new/libwww-perl-5.814/lib/HTTP/Request.pm 2008-07-25 10:58:39.000000000 +0200
@@ -2,7 +2,7 @@
require HTTP::Message;
@ISA = qw(HTTP::Message);
-$VERSION = "5.811";
+$VERSION = "5.814";
use strict;
@@ -87,6 +87,12 @@
*url = \&uri; # legacy
+sub accept_decodable
+{
+ my $self = shift;
+ $self->header("Accept-Encoding", scalar($self->decodable));
+}
+
sub as_string
{
my $self = shift;
@@ -176,6 +182,11 @@
details and other similar methods that can be used to access the
headers.
+=item $r->accept_decodable
+
+This will set the C<Accept-Encoding> header to the list of encodings
+that decoded_content() can decode.
+
=item $r->content
=item $r->content( $bytes )
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/LWP/UserAgent.pm new/libwww-perl-5.814/lib/LWP/UserAgent.pm
--- old/libwww-perl-5.813/lib/LWP/UserAgent.pm 2008-06-17 22:27:05.000000000 +0200
+++ new/libwww-perl-5.814/lib/LWP/UserAgent.pm 2008-07-25 10:59:07.000000000 +0200
@@ -5,7 +5,7 @@
require LWP::MemberMixin;
@ISA = qw(LWP::MemberMixin);
-$VERSION = "5.813";
+$VERSION = "5.814";
use HTTP::Request ();
use HTTP::Response ();
@@ -864,7 +864,7 @@
my $response = $ua->get('http://search.cpan.org/');
if ($response->is_success) {
- print $response->content; # or whatever
+ print $response->decoded_content; # or whatever
}
else {
die $response->status_line;
@@ -1018,9 +1018,7 @@
Get/set the headers object that will provide default header values for
any requests sent. By default this will be an empty C<HTTP::Headers>
-object. Example:
-
- $ua->default_headers->push_header('Accept-Language' => "no, en");
+object.
=item $ua->default_header( $field )
@@ -1029,6 +1027,7 @@
This is just a short-cut for $ua->default_headers->header( $field =>
$value ). Example:
+ $ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable());
$ua->default_header('Accept-Language' => "no, en");
=item $ua->conn_cache
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/lib/LWP.pm new/libwww-perl-5.814/lib/LWP.pm
--- old/libwww-perl-5.813/lib/LWP.pm 2008-06-17 22:26:07.000000000 +0200
+++ new/libwww-perl-5.814/lib/LWP.pm 2008-07-25 10:57:45.000000000 +0200
@@ -1,6 +1,6 @@
package LWP;
-$VERSION = "5.813";
+$VERSION = "5.814";
sub Version { $VERSION; }
require 5.005;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/Makefile.PL new/libwww-perl-5.814/Makefile.PL
--- old/libwww-perl-5.813/Makefile.PL 2008-04-16 12:20:16.000000000 +0200
+++ new/libwww-perl-5.814/Makefile.PL 2008-07-24 00:52:00.000000000 +0200
@@ -1,291 +1,55 @@
-# This -*- perl -*- script writes the Makefile for libwww-perl
+#!perl -w
-require 5.005;
+require 5.006;
use strict;
-use ExtUtils::MakeMaker qw(WriteMakefile prompt);
-use Config qw(%Config);
+use ExtUtils::MakeMaker qw(WriteMakefile);
+use Getopt::Long qw(GetOptions);
-#--- Configuration section ---
-
-my @programs_to_install = qw(lwp-request lwp-mirror lwp-rget lwp-download);
-my @request_aliases = qw(GET HEAD POST);
-
-#--- End Configuration - You should not have to change anything below this line
-
-
-# Allow us to suppress all program installation with the -n (library only)
-# option. This is for those that don't want to mess with the configuration
-# section of this file.
-use Getopt::Std;
-use vars qw($opt_n);
-unless (getopts("n")) {
- die "Usage: $0 [-n]\n";
-}
-@programs_to_install = () if $opt_n || grep /^LIB=/, @ARGV;
-
-# Check if we should try to run tests that talk to ourself
-system(qq("$^X" talk-to-ourself));
-if ($?) {
- print <<EOT;
-
-You appear to have a misconfigured system, so I will disable tests
-that try to talk HTTP to a local server.
-EOT
- unlink("t/CAN_TALK_TO_OURSELF");
-}
-else {
- open(CAN_TALK_TO_OURSELF, ">t/CAN_TALK_TO_OURSELF") || die "Can't create CAN_TALK_TO_OURSELF: $!";
- close(CAN_TALK_TO_OURSELF);
-}
-
-# Check if we should try to run the live tests
-open(CHANGES, "Changes") || die "Can't open Changes: $!";
-my $release_date;
-while (<CHANGES>) {
- if (/^(\d{4}-\d{2}-\d{2})\D/) {
- $release_date = $1;
- last;
- }
-}
-close(CHANGES);
-die "Can't figure out release date" unless $release_date;
-#print "Release date: $release_date\n";
-
-my $some_time_ago = sprintf "%04d-%02d-%02d",
- sub { ($_[5]+1900, $_[4]+1, $_[3])}->(localtime(time - 45 * 24*60*60));
-if ($some_time_ago lt $release_date) {
- # Check if we have internet connection
- require IO::Socket;
- my $s = IO::Socket::INET->new(PeerAddr => "www.google.com:80",
- Timeout => 10,
- );
- if ($s) {
- # XXX could try to send a GET to it???
- close($s);
-
- print <<EOT;
-
-You appear to be directly connected to the Internet. I have some tests
-that tries to access some sites on the net to verify that the new HTTP/1.1
-support works as it should.
-
-EOT
-
- if (prompt("Do you want to enable these tests?", "y") =~ /^y/i) {
- open(ENABLED, ">t/live/ENABLED") || die "Can't enable: $!";
- close(ENABLED);
-
- # Figure out if the compress lib works and signal that with
- # a file for the test suite to find. We don't want the
- # test script to do this 'require' itself because we want
- # to test that the module loads it on demand as it should.
- eval {
- require Compress::Zlib;
- Compress::Zlib->VERSION(1.10);
- open(ZLIB_OK, ">t/live/ZLIB_OK") || die "Can't create ZLIB_OK: $!";
- print ZLIB_OK "$Compress::Zlib::VERSION\n";
- close(ZLIB_OK);
- };
- if ($@) {
- #warn $@;
- unlink("t/live/ZLIB_OK");
- }
- }
- else {
- unlink("t/live/ENABLED");
- }
- }
-}
-
-if (@programs_to_install) {
- print <<EOT;
-
-This package comes with some sample programs that I can try
-to install in $Config{installscript}.
-
- Note that you can avoid these questions by passing
- the '-n' option to 'Makefile.PL'.
-
-EOT
- my @tmp;
- for (@programs_to_install) {
- if (prompt("Do you want to install $_?", "y") =~ /^y/) {
- push(@tmp, $_);
- }
- }
- @programs_to_install = @tmp;
-}
-
-if (grep($_ eq 'lwp-request', @programs_to_install) && @request_aliases) {
- print <<EOT;
-
-The lwp-request program will use the name it is invoked with to
-determine what HTTP method to use. I can set up alias for the most
-common HTTP methods. These alias are also installed in
-$Config{installscript}.
-
-EOT
- my @tmp;
- for my $alias (@request_aliases) {
- my $default = "n";
- if (prompt("Do you want to install the $alias alias?", $default) =~ /^y/) {
- push(@tmp, $alias);
- }
- }
- @request_aliases = @tmp;
-}
-else {
- @request_aliases = ();
-}
-
-# Check for non-standard modules that are used by this library.
-$| = 1;
-my $missing_modules = 0;
-
-print "\nChecking for URI...........";
-eval {
- require URI;
- URI->VERSION(1.10);
-};
-if ($@) {
- print " failed\n";
- $missing_modules++;
- print <<EOT;
-$@
-The URI module must be installed. WWW without URIs would not
-be that great :-)
-
-EOT
- sleep(2); # Don't hurry too much
-}
-else {
- print " ok\n";
-}
-print "Checking for HTML::Parser..";
-eval {
- require HTML::HeadParser;
- HTML::Parser->VERSION(3.33);
+GetOptions(\my %opt,
+ 'aliases',
+ 'no-programs|n',
+ 'live-tests',
+) or do {
+ die "Usage: $0 [--aliases] [--no-programs] [--live-tests]\n";
};
-if ($@) {
- print " failed\n";
- $missing_modules++;
- print <<EOT;
-$@
-The HTML::Parser is needed to extract correct base URI information from
-HTML so that we can resolve relative links correctly. The HTML::Form
-module also needs HTML::TokeParser to work.
-EOT
- sleep(2); # Don't hurry too much
-}
-else {
- print " ok\n";
-}
-
-print "Checking for MIME::Base64..";
-eval {
- require MIME::Base64;
- #MIME::Base64->VERSION('2.00');
-};
-if ($@) {
- print " failed\n";
- $missing_modules++;
- print <<EOT;
-$@
-The Base64 encoding is used in authentication headers in HTTP.
+my @prog;
+push(@prog, qw(lwp-request lwp-mirror lwp-rget lwp-download))
+ unless $opt{'no-programs'} || grep /^LIB=/, @ARGV;
-EOT
- sleep(2); # Don't hurry too much
-}
-else {
- print " ok\n";
-}
-
-print "Checking for Net::FTP......";
-eval {
- require Net::FTP;
- Net::FTP->VERSION('2.58');
-};
-if ($@) {
- print " failed\n";
- $missing_modules++;
- print <<EOT;
-$@
-The libwww-perl library normally use the Net::FTP module when
-accessing ftp servers. You would have to install this package or
-configure your application to use a proxy server for making ftp
-requests work. Net::FTP is part of the 'libnet' distribution.
-
-EOT
- sleep(2); # Don't hurry too much
-}
-else {
- print " ok\n";
-}
-
-print "Checking for Digest::MD5 ..";
-eval {
- require Digest::MD5;
-};
-if ($@) {
- print " failed\n";
- $missing_modules++;
- print <<EOT;
-$@
-The Digest::MD5 library is needed if you want to be able use the
-experimental "Digest Access Authentication" scheme. Since very few
-servers implement this authentication scheme, you should normally not
-worry too much about this.
-
-EOT
-}
-else {
- print " ok\n";
-}
-
-print <<EOT if $missing_modules;
-The missing modules can be obtained from CPAN. Visit
-<URL:http://www.perl.com/CPAN/> to find a CPAN site near you.
-
-EOT
-
-print "\n";
-
-if (@request_aliases) {
+if ($opt{'aliases'} && grep(/lwp-request/, @prog)) {
require File::Copy;
- for (@request_aliases) {
+ for (qw(GET HEAD POST)) {
File::Copy::copy("bin/lwp-request", "bin/$_") || die "Can't copy bin/$_";
- chmod(0755, "bin/$_");
- push(@programs_to_install, $_);
+ chmod(0755, "bin/$_");
+ push(@prog, $_);
}
}
-
-# Ok, now it is time to really generate the Makefile
+system($^X, "talk-to-ourself");
+flag_file("t/CAN_TALK_TO_OURSELF", $? == 0);
+flag_file("t/live/ENABLED", $opt{'live-tests'});
WriteMakefile(
- NAME => 'LWP',
- DISTNAME => 'libwww-perl',
- VERSION_FROM => 'lib/LWP.pm',
- EXE_FILES => [ map "bin/$_", @programs_to_install ],
- PREREQ_PM => { 'URI' => "1.10",
- 'MIME::Base64' => "2.1",
- 'Net::FTP' => "2.58",
- 'HTML::Tagset' => 0,
- 'HTML::Parser' => "3.33",
- 'Digest::MD5' => 0,
- 'Compress::Zlib' => "1.10",
- },
- 'clean' => { FILES => join(" ", map "bin/$_", @request_aliases) },
- 'dist' => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+ NAME => 'LWP',
+ DISTNAME => 'libwww-perl',
+ VERSION_FROM => 'lib/LWP.pm',
+ EXE_FILES => [ map "bin/$_", @prog ],
+ PREREQ_PM => {
+ 'URI' => "1.10",
+ 'MIME::Base64' => "2.1",
+ 'Net::FTP' => "2.58",
+ 'HTML::Tagset' => 0,
+ 'HTML::Parser' => "3.33",
+ 'Digest::MD5' => 0,
+ 'Compress::Zlib' => "1.10",
+ },
+ clean => { FILES => join(" ", map "bin/$_", grep /^[A-Z]+$/, @prog) },
);
+exit;
-
-package MY;
-
-# What happens when we say 'make test'
-sub test
+sub MY::test
{
q(
TEST_VERBOSE=0
@@ -297,22 +61,12 @@
}
-# Determine things that should *not* be installed
-sub libscan
-{
- my($self, $path) = @_;
- return '' if $path =~ m/\.(pl|dtd|sgml)$/;
- return '' if $path =~ m:\bCVS/:;
- return '' if $path =~ m/~$/;
- $path;
-}
-
-# Pass libwww-perl version number to pod2man
-sub manifypods
-{
- my $self = shift;
- my $ver = $self->{VERSION} || "";
- local($_) = $self->SUPER::manifypods(@_);
- s/pod2man\s*$/pod2man --release libwww-perl-$ver/m;
- $_;
+sub flag_file {
+ my($file, $create) = @_;
+ if ($create) {
+ open(my $fh, ">", $file) || die "Can't create $file: $!";
+ }
+ else {
+ unlink($file);
+ }
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/MANIFEST new/libwww-perl-5.814/MANIFEST
--- old/libwww-perl-5.813/MANIFEST 2008-06-17 22:34:49.000000000 +0200
+++ new/libwww-perl-5.814/MANIFEST 2008-07-25 11:06:43.000000000 +0200
@@ -80,6 +80,7 @@
t/base/message-parts.t Test HTTP::Message parts method
t/base/negotiate.t Test HTTP::Negotiation module
t/base/protocols.t Test protocol methods of LWP::UserAgent
+t/base/request.t Test additional HTTP::Request methods
t/base/response.t Test additional HTTP::Response methods
t/base/status.t Test HTTP::Status module
t/base/ua.t Basic LWP::UserAgent tests
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/META.yml new/libwww-perl-5.814/META.yml
--- old/libwww-perl-5.813/META.yml 2008-06-17 22:34:49.000000000 +0200
+++ new/libwww-perl-5.814/META.yml 2008-07-25 11:06:43.000000000 +0200
@@ -1,6 +1,6 @@
--- #YAML:1.0
name: libwww-perl
-version: 5.813
+version: 5.814
abstract: ~
license: ~
author: ~
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/README new/libwww-perl-5.814/README
--- old/libwww-perl-5.813/README 2008-04-16 12:20:48.000000000 +0200
+++ new/libwww-perl-5.814/README 2008-07-23 17:05:06.000000000 +0200
@@ -10,44 +10,28 @@
contain modules that are of more general use and even classes that
help you implement simple HTTP servers.
-There are actually two versions of libwww-perl: one for Perl4, and one
-for Perl5. Both have a similar architecture, loosely based on the CERN
-Library of Common Code (nowadays known as 'w3c-libwww').
-
-The Perl4 version was maintained by Roy Fielding, and was the
-basis for tools such as MOMSpider. The perl4 version of libwww-perl
-and much more information about its libraries can still be found at:
-http://www.ics.uci.edu/pub/websoft/libwww-perl/
-
-The Perl5 version (this package) is a complete rewrite for Perl5: the
-code is organized in Modules, provides an Object Oriented API, and
-offers lots of extended functionality.
-
-
PREREQUISITES
In order to install and use this package you will need Perl version
-5.005 or better. Some modules within this package depend on other
+5.6 or better. Some modules within this package depend on other
packages that are distributed separately from Perl. We recommend that
you have the following packages installed before you install
libwww-perl:
URI
MIME-Base64
+ HTML-Tagset
HTML-Parser
libnet
Digest-MD5
Compress-Zlib
-These packages should be available on CPAN (see below).
-
If you want to access sites using the https protocol, then you need to
install the Crypt::SSLeay or the IO::Socket::SSL module. The
README.SSL file will tell you more about how libwww-perl supports SSL.
-
INSTALLATION
You install libwww-perl using the normal perl module distribution drill:
@@ -57,29 +41,16 @@
make test
make install
-You can edit the configuration section of Makefile.PL to select which
-programs to install in addition to the library itself. If you don't
-want to install any programs (only the library files) and don't want
-to mess with the Makefile.PL then pass the '-n' option to Makefile.PL:
-
- perl Makefile.PL -n
-
-If you want to install a private copy of libwww-perl in your home
-directory, then you should try to produce the initial Makefile with
-something like this command:
-
- perl Makefile.PL LIB=~/perl
-
-The Makefile.PL program will start out by checking your perl
-installation for a few packages that are recommended to be installed
-together with libwww-perl.
+If you don't want to install any programs (only the library files) then
+pass the '--no-programs' option to Makefile.PL:
+ perl Makefile.PL --no-programs
DOCUMENTATION
-See ./lib/LWP.pm for an overview of the library. See ./ChangeLog for
-recent changes.
+See the lib/LWP.pm file for an overview of the library. See the
+Changes file for recent changes.
POD style documentation is included in all modules and scripts. These
are normally converted to manual pages and installed as part of the
@@ -88,18 +59,11 @@
directly.
-
SUPPORT
-Questions about how to use this library should be directed to the
-comp.lang.perl.modules USENET Newsgroup. Bug reports and suggestions
-for improvements can be sent to the <libwww(a)perl.org> mailing
-list. This mailing list is also the place for general discussions and
-development of the libwww-perl package.
-
-You can join the mailing list by sending a message to
-<libwww-subscribe(a)perl.org>.
- ^^^^^^^^^^
+Bug reports and suggestions for improvements can be sent to the
+<libwww(a)perl.org> mailing list. This mailing list is also the place
+for general discussions and development of the libwww-perl package.
AVAILABILITY
@@ -118,7 +82,6 @@
http://gitorious.org/projects/libwww-perl
-
COPYRIGHT
� 1995-2008 Gisle Aas. All rights reserved.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/base/common-req.t new/libwww-perl-5.814/t/base/common-req.t
--- old/libwww-perl-5.813/t/base/common-req.t 2008-04-09 11:10:01.000000000 +0200
+++ new/libwww-perl-5.814/t/base/common-req.t 2008-07-24 00:42:37.000000000 +0200
@@ -1,37 +1,39 @@
-print "1..22\n";
+#perl -w
+
+use Test;
+plan tests => 51;
use HTTP::Request::Common;
$r = GET 'http://www.sn.no/';
print $r->as_string;
-print "not " unless $r->method eq "GET" and $r->url eq "http://www.sn.no/";
-print "ok 1\n";
+ok($r->method, "GET");
+ok($r->url, "http://www.sn.no/");
$r = HEAD "http://www.sn.no/",
If_Match => 'abc',
From => 'aas(a)sn.no';
print $r->as_string;
-print "not " unless $r->method eq "HEAD" and $r->url->eq("http://www.sn.no");
-print "ok 2\n";
+ok($r->method, "HEAD");
+ok($r->url->eq("http://www.sn.no"));
-print "not " unless $r->header('If-Match') eq "abc" and $r->header("from") eq "aas\(a)sn.no";
-print "ok 3\n";
+ok($r->header('If-Match'), "abc");
+ok($r->header("from"), "aas\(a)sn.no");
$r = PUT "http://www.sn.no",
Content => 'foo';
print $r->as_string, "\n";
-print "not " unless $r->method eq "PUT" and $r->uri->host eq "www.sn.no";
-print "ok 4\n";
+ok($r->method, "PUT");
+ok($r->uri->host, "www.sn.no");
-print "not " if defined($r->header("Content"));
-print "ok 5\n";
+ok(!defined($r->header("Content")));
-print "not " unless ${$r->content_ref} eq "foo" and
- $r->content eq "foo" and $r->content_length == 3;
-print "ok 6\n";
+ok(${$r->content_ref}, "foo");
+ok($r->content, "foo");
+ok($r->content_length, 3);
#--- Test POST requests ---
@@ -43,26 +45,22 @@
bar => 'foo';
print $r->as_string, "\n";
-print "not " unless $r->method eq "POST" and
- $r->content_type eq "application/x-www-form-urlencoded" and
- $r->content_length == 58 and
- $r->header("bar") eq "foo";
-print "ok 7\n";
-
-print "not " unless $r->content eq "foo=bar%3Bbaz&baz=a&baz=b&baz=c&foo=zoo%3D%26&space+=+%2B+";
-print "ok 8\n";
+ok($r->method, "POST");
+ok($r->content_type, "application/x-www-form-urlencoded");
+ok($r->content_length, 58);
+ok($r->header("bar"), "foo");
+ok($r->content, "foo=bar%3Bbaz&baz=a&baz=b&baz=c&foo=zoo%3D%26&space+=+%2B+");
$r = POST "mailto:gisle\@aas.no",
Subject => "Heisan",
Content_Type => "text/plain",
Content => "Howdy\n";
-print $r->as_string;
+#print $r->as_string;
-print "not " unless $r->method eq "POST" and
- $r->header("Subject") eq "Heisan" and
- $r->content eq "Howdy\n" and
- $r->content_type eq "text/plain";
-print "ok 9\n";
+ok($r->method, "POST");
+ok($r->header("Subject"), "Heisan");
+ok($r->content, "Howdy\n");
+ok($r->content_type, "text/plain");
#
# POST for File upload
@@ -80,15 +78,14 @@
born => '1964',
file => [$file],
];
-print $r->as_string;
+#print $r->as_string;
unlink($file) or warn "Can't unlink $file: $!";
-print "not " unless $r->method eq "POST" and
- $r->url->path eq "/survey.cgi" and
- $r->content_type eq "multipart/form-data" and
- $r->header(Content_type) =~ /boundary="?([^"]+)"?/;
-print "ok 10\n";
+ok($r->method, "POST");
+ok($r->url->path, "/survey.cgi");
+ok($r->content_type, "multipart/form-data");
+ok($r->header(Content_type) =~ /boundary="?([^"]+)"?/);
$boundary = $1;
$c = $r->content;
@@ -96,54 +93,40 @@
@c = split(/--\Q$boundary/, $c);
print "$c[5]\n";
-print "not " unless @c == 7 and $c[6] =~ /^--\n/; # 5 parts + header & trailer
-print "ok 11\n";
+ok(@c == 7 and $c[6] =~ /^--\n/); # 5 parts + header & trailer
+
+ok($c[2] =~ /^Content-Disposition:\s*form-data;\s*name="email"/m);
+ok($c[2] =~ /^gisle\(a)aas.no$/m)
-print "not " unless $c[2] =~ /^Content-Disposition:\s*form-data;\s*name="email"/m and
- $c[2] =~ /^gisle\(a)aas.no$/m;
-print "ok 12\n";
-
-print "not " unless $c[5] =~ /^Content-Disposition:\s*form-data;\s*name="file";\s*filename="$file"/m and
- $c[5] =~ /^Content-Type:\s*text\/plain$/m and
- $c[5] =~ /^foo\nbar\nbaz/m;
-print "ok 13\n";
+ok($c[5] =~ /^Content-Disposition:\s*form-data;\s*name="file";\s*filename="$file"/m);
+ok($c[5] =~ /^Content-Type:\s*text\/plain$/m);
+ok($c[5] =~ /^foo\nbar\nbaz/m);
$r = POST 'http://www.perl.org/survey.cgi',
[ file => [ undef, "xxy\"", Content_type => "text/html", Content => "<h1>Hello, world!</h1>" ]],
Content_type => 'multipart/form-data';
print $r->as_string;
-if($^O eq "MacOS") {
- print "not " unless $r->content =~ /^--\S+\015\012Content-Disposition:\s*form-data;\s*name="file";\s*filename="xxy\\"/m and
- $r->content =~ /^\012Content-Type: text\/html/m and
- $r->content =~ /^\012<h1>Hello, world/m;
-}
-else {
- print "not " unless $r->content =~ /^--\S+\015\012Content-Disposition:\s*form-data;\s*name="file";\s*filename="xxy\\"/m and
- $r->content =~ /^Content-Type: text\/html/m and
- $r->content =~ /^<h1>Hello, world/m;
-}
-print "ok 14\n";
-
+ok($r->content =~ /^--\S+\015\012Content-Disposition:\s*form-data;\s*name="file";\s*filename="xxy\\"/m);
+ok($r->content =~ /^Content-Type: text\/html/m);
+ok($r->content =~ /^<h1>Hello, world/m);
$r = POST 'http://www.perl.org/survey.cgi',
Content_type => 'multipart/form-data',
Content => [ file => [ undef, undef, Content => "foo"]];
-print $r->as_string;
+#print $r->as_string;
-print "not " if $r->content =~ /filename=/;
-print "ok 15\n";
+ok($r->content !~ /filename=/);
# The POST routine can now also take a hash reference.
my %hash = (foo => 42, bar => 24);
$r = POST 'http://www.perl.org/survey.cgi', \%hash;
-print $r->as_string, "\n";
-print "not " unless $r->content =~ /foo=42/ &&
- $r->content =~ /bar=24/ &&
- $r->content_type eq "application/x-www-form-urlencoded" &&
- $r->content_length == 13;
-print "ok 16\n";
+#print $r->as_string, "\n";
+ok($r->content =~ /foo=42/);
+ok($r->content =~ /bar=24/);
+ok($r->content_type, "application/x-www-form-urlencoded");
+ok($r->content_length, 13);
#
@@ -169,16 +152,14 @@
];
print $r->as_string, "\n";
-print "not " unless $r->method eq "POST" and
- $r->url->path eq "/survey.cgi" and
- $r->content_type eq "multipart/form-data" and
- $r->header(Content_type) =~ /boundary="?([^"]+)"?/ and
- ref($r->content) eq "CODE";
-print "ok 17\n";
+ok($r->method, "POST");
+ok($r->url->path, "/survey.cgi");
+ok($r->content_type, "multipart/form-data");
+ok($r->header(Content_type) =~ /boundary="?([^"]+)"?/);
$boundary = $1;
+ok(ref($r->content), "CODE");
-print "not " unless length($boundary) > 10;
-print "ok 18\n";
+ok(length($boundary) > 10);
$code = $r->content;
my $chunk;
@@ -194,12 +175,11 @@
print int(@chunks), " chunks, total size is ", length($_), " bytes\n";
# should be close to expected size and number of chunks
-print "not " unless abs(@chunks - 15 < 3) and
- abs(length($_) - 26589) < 20;
-print "ok 19\n";
+ok(abs(@chunks - 15 < 3));
+ok(abs(length($_) - 26589) < 20);
$r = POST 'http://www.example.com';
-print "not " unless $r->as_string eq <<EOT; print "ok 20\n";
+ok($r->as_string, <<EOT);
POST http://www.example.com
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
@@ -207,7 +187,7 @@
EOT
$r = POST 'http://www.example.com', Content_Type => 'form-data', Content => [];
-print "not " unless $r->as_string eq <<EOT; print "ok 21\n";
+ok($r->as_string, <<EOT);
POST http://www.example.com
Content-Length: 0
Content-Type: multipart/form-data; boundary=none
@@ -216,10 +196,12 @@
$r = POST 'http://www.example.com', Content_Type => 'form-data';
#print $r->as_string;
-print "not " unless $r->as_string eq <<EOT; print "ok 22\n";
+ok($r->as_string, <<EOT);
POST http://www.example.com
Content-Length: 0
Content-Type: multipart/form-data
EOT
+$r = HTTP::Request::Common::DELETE 'http://www.example.com';
+ok($r->method, "DELETE");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/base/listing.t new/libwww-perl-5.814/t/base/listing.t
--- old/libwww-perl-5.813/t/base/listing.t 2008-04-07 14:57:58.000000000 +0200
+++ new/libwww-perl-5.814/t/base/listing.t 2008-07-23 21:12:46.000000000 +0200
@@ -1,4 +1,4 @@
-print "1..6\n";
+print "1..10\n";
use File::Listing;
@@ -84,3 +84,21 @@
$mode == 0100644 || print "not ";
print "ok 6\n";
+
+@dir = parse_dir(<<'EOT');
+drwxr-xr-x 21 root root 704 2007-03-22 21:48 dir
+EOT
+
+print "not " unless @dir == 1;
+print "ok 7\n";
+
+print "not " unless $dir[0][0] eq "dir";
+print "ok 8\n";
+
+print "not " unless $dir[0][1] eq "d";
+print "ok 9\n";
+
+$timestring = scalar(localtime($dir[0][3]));
+print "# $timestring\n";
+print "not " unless $timestring =~ /^Thu Mar 22 21:48/;
+print "ok 10\n";
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/base/message.t new/libwww-perl-5.814/t/base/message.t
--- old/libwww-perl-5.813/t/base/message.t 2008-04-16 12:12:41.000000000 +0200
+++ new/libwww-perl-5.814/t/base/message.t 2008-07-16 12:58:13.000000000 +0200
@@ -3,7 +3,7 @@
use strict;
use Test qw(plan ok skip);
-plan tests => 102;
+plan tests => 104;
require HTTP::Message;
use Config qw(%Config);
@@ -281,6 +281,22 @@
EOT
$m = HTTP::Message->new;
+$m->add_part(HTTP::Message->new([a=>[1..3]], "a"));
+$str = $m->as_string;
+$str =~ s/\r/<CR>/g;
+ok($str, <<EOT);
+Content-Type: multipart/mixed; boundary=xYzZY
+
+--xYzZY<CR>
+A: 1<CR>
+A: 2<CR>
+A: 3<CR>
+<CR>
+a<CR>
+--xYzZY--<CR>
+EOT
+
+$m = HTTP::Message->new;
$m->content_ref(\my $foo);
ok($m->content_ref, \$foo);
$foo = "foo";
@@ -346,6 +362,8 @@
ok($@ || "", "");
ok($m->content, "H4sICFWAq0ECA3h4eAB7v3u/R6ZCSUZqUarCoxm7uAAZKHXiEAAAAA==\n");
+ok(grep { $_ eq "gzip" } $m->decodable);
+
my $tmp = MIME::Base64::decode($m->content);
$m->content($tmp);
$m->header("Content-Encoding", "gzip");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/base/request.t new/libwww-perl-5.814/t/base/request.t
--- old/libwww-perl-5.813/t/base/request.t 1970-01-01 01:00:00.000000000 +0100
+++ new/libwww-perl-5.814/t/base/request.t 2008-07-15 12:24:15.000000000 +0200
@@ -0,0 +1,26 @@
+# Test extra HTTP::Request methods. Basic operation is tested in the
+# message.t test suite.
+
+use strict;
+
+use Test;
+plan tests => 7;
+
+use HTTP::Request;
+
+my $req = HTTP::Request->new(GET => "http://www.example.com");
+$req->accept_decodable;
+
+ok($req->method, "GET");
+ok($req->uri, "http://www.example.com");
+ok($req->header("Accept-Encoding") =~ /\bgzip\b/); # assuming Compress::Zlib is there
+
+($_ = $req->as_string) =~ s/^/# /gm;
+print;
+
+ok($req->method("DELETE"), "GET");
+ok($req->method, "DELETE");
+
+ok($req->uri("http:"), "http://www.example.com");
+ok($req->uri, "http:");
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/html/form.t new/libwww-perl-5.814/t/html/form.t
--- old/libwww-perl-5.813/t/html/form.t 2008-04-09 10:23:49.000000000 +0200
+++ new/libwww-perl-5.814/t/html/form.t 2008-07-23 20:32:09.000000000 +0200
@@ -3,7 +3,7 @@
use strict;
use Test qw(plan ok);
-plan tests => 124;
+plan tests => 127;
use HTML::Form;
@@ -535,3 +535,48 @@
ok(join(":", $f->find_input("r2")->value_names), "two");
ok(join(":", $f->find_input("r3")->value_names), "nested");
ok(join(":", $f->find_input("r4")->value_names), "before and after");
+
+$f = HTML::Form->parse(<<EOT, "http://www.example.com");
+<form>
+ <table>
+ <TR>
+ <TD align="left" colspan="2">
+ Keep me informed on the progress of this election
+ <INPUT type="checkbox" id="keep_informed" name="keep_informed" value="yes" checked>
+ </TD>
+ </TR>
+ <TR>
+ <TD align=left colspan=2>
+ <BR><B>The place you are registered to vote:</B>
+ </TD>
+ </TR>
+ <TR>
+ <TD valign="middle" height="2" align="right">
+ <A name="Note1back">County or Parish</A>
+ </TD>
+ <TD align="left">
+ <INPUT type="text" id="reg_county" size="40" name="reg_county" value="">
+ </TD>
+ <TD align="left" width="10">
+ <A href="#Note2" class="c2" tabindex="-1">Note 2</A>
+ </TD>
+ </TR>
+ </table>
+</form>
+EOT
+ok(join(":", $f->find_input("keep_informed")->value_names), "off:");
+
+$f = HTML::Form->parse(<<EOT, "http://www.example.com");
+<form action="test" method="post">
+<select name="test">
+<option value="1">One</option>
+<option value="2">Two</option>
+<option disabled="disabled" value="3">Three</option>
+</select>
+<input type="submit" name="submit" value="Go">
+</form>
+</body>
+</html>
+EOT
+ok(join(":", $f->find_input("test")->possible_values), "1:2");
+ok(join(":", $f->find_input("test")->other_possible_values), "2");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/libwww-perl-5.813/t/live/jigsaw-te.t new/libwww-perl-5.814/t/live/jigsaw-te.t
--- old/libwww-perl-5.813/t/live/jigsaw-te.t 2008-04-07 14:57:58.000000000 +0200
+++ new/libwww-perl-5.814/t/live/jigsaw-te.t 2008-07-23 14:40:41.000000000 +0200
@@ -1,20 +1,5 @@
#!perl -w
-my $zlib_ok;
-for (("", "live/", "t/live/")) {
- if (-f $_ . "ZLIB_OK") {
- $zlib_ok++;
- last;
- }
-}
-
-unless ($zlib_ok) {
- print "1..0\n";
- print "Apparently no working ZLIB installed\n";
- exit;
-}
-
-
print "1..4\n";
use strict;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-IO-Socket-SSL
checked in at Fri Jul 25 16:59:58 CEST 2008.
--------
--- perl-IO-Socket-SSL/perl-IO-Socket-SSL.changes 2008-01-28 15:32:24.000000000 +0100
+++ /mounts/work_src_done/STABLE/perl-IO-Socket-SSL/perl-IO-Socket-SSL.changes 2008-07-25 16:01:40.000000000 +0200
@@ -1,0 +2,15 @@
+Fri Jul 25 15:59:47 CEST 2008 - anicka(a)suse.cz
+
+- update to 1.14
+ * added support for verification of hostname from certificate
+ including subjectAltNames, support for IDN etc
+ * automatic verification of hostnames with SSL_verifycn_scheme and
+ SSL_verifycn_name
+ * global setting of default context options like SSL_verifycn_scheme,
+ SSL_verify_mode with set_ctx_defaults
+ * fix import of inet4,inet6 which got broken within 1.13_X.
+ * clarified and enhanced debugging supppport
+ * put information into README regarding the supported
+ and recommanded version of Net::SSLeay
+
+-------------------------------------------------------------------
Old:
----
IO-Socket-SSL-1.13-store_set_flags.diff
IO-Socket-SSL-1.13.tar.bz2
New:
----
IO-Socket-SSL-1.14-store_set_flags.diff
IO-Socket-SSL-1.14.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-IO-Socket-SSL.spec ++++++
--- /var/tmp/diff_new_pack.u32627/_old 2008-07-25 16:59:41.000000000 +0200
+++ /var/tmp/diff_new_pack.u32627/_new 2008-07-25 16:59:41.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-IO-Socket-SSL (Version 1.13)
+# spec file for package perl-IO-Socket-SSL (Version 1.14)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -10,9 +10,10 @@
# norootforbuild
+
Name: perl-IO-Socket-SSL
BuildRequires: perl-Net_SSLeay perl-libwww-perl
-Version: 1.13
+Version: 1.14
Release: 1
Provides: p_iossl
Obsoletes: p_iossl
@@ -66,6 +67,18 @@
/var/adm/perl-modules/%{name}
%changelog
+* Fri Jul 25 2008 anicka(a)suse.cz
+- update to 1.14
+ * added support for verification of hostname from certificate
+ including subjectAltNames, support for IDN etc
+ * automatic verification of hostnames with SSL_verifycn_scheme and
+ SSL_verifycn_name
+ * global setting of default context options like SSL_verifycn_scheme,
+ SSL_verify_mode with set_ctx_defaults
+ * fix import of inet4,inet6 which got broken within 1.13_X.
+ * clarified and enhanced debugging supppport
+ * put information into README regarding the supported
+ and recommanded version of Net::SSLeay
* Mon Jan 28 2008 anicka(a)suse.cz
- update to 1.13
* removed CLONE_SKIP which was added in 1.03 because this breaks
++++++ IO-Socket-SSL-1.13-store_set_flags.diff -> IO-Socket-SSL-1.14-store_set_flags.diff ++++++
--- perl-IO-Socket-SSL/IO-Socket-SSL-1.13-store_set_flags.diff 2007-10-08 09:48:22.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-IO-Socket-SSL/IO-Socket-SSL-1.14-store_set_flags.diff 2008-07-25 15:54:13.000000000 +0200
@@ -1,11 +1,11 @@
--- SSL.pm
+++ SSL.pm
-@@ -938,7 +938,7 @@
- if ($arg_hash->{'SSL_check_crl'}) {
- if (Net::SSLeay::OPENSSL_VERSION_NUMBER() >= 0x0090702f)
- {
-- Net::SSLeay::X509_STORE_CTX_set_flags
-+ Net::SSLeay::X509_STORE_set_flags
- (Net::SSLeay::CTX_get_cert_store($ctx),
- Net::SSLeay::X509_V_FLAG_CRL_CHECK());
- } else {
+@@ -1303,7 +1303,7 @@
+
+ if ($arg_hash->{'SSL_check_crl'}) {
+ if (Net::SSLeay::OPENSSL_VERSION_NUMBER() >= 0x0090702f) {
+- Net::SSLeay::X509_STORE_CTX_set_flags(
++ Net::SSLeay::X509_STORE_set_flags(
+ Net::SSLeay::CTX_get_cert_store($ctx),
+ Net::SSLeay::X509_V_FLAG_CRL_CHECK()
+ );
++++++ IO-Socket-SSL-1.13.tar.bz2 -> IO-Socket-SSL-1.14.tar.bz2 ++++++
++++ 3619 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-FileHandle-Unget
checked in at Fri Jul 25 16:59:45 CEST 2008.
--------
--- perl-FileHandle-Unget/perl-FileHandle-Unget.changes 2006-01-25 21:39:41.000000000 +0100
+++ /mounts/work_src_done/STABLE/perl-FileHandle-Unget/perl-FileHandle-Unget.changes 2008-07-25 16:39:33.000000000 +0200
@@ -1,0 +2,9 @@
+Fri Jul 25 16:38:51 CEST 2008 - anicka(a)suse.cz
+
+- update to 0.1622
+ * Updated to the latest version of Module::Install
+ * Removed auto-install for better compatibility with CPAN
+ and others
+ * Moved hosting to Google Code
+
+-------------------------------------------------------------------
Old:
----
FileHandle-Unget-0.1621.tar.bz2
New:
----
FileHandle-Unget-0.1622.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-FileHandle-Unget.spec ++++++
--- /var/tmp/diff_new_pack.X32168/_old 2008-07-25 16:59:32.000000000 +0200
+++ /var/tmp/diff_new_pack.X32168/_new 2008-07-25 16:59:32.000000000 +0200
@@ -1,25 +1,26 @@
#
-# spec file for package perl-FileHandle-Unget (Version 0.1621)
+# spec file for package perl-FileHandle-Unget (Version 0.1622)
#
-# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
-# Please submit bugfixes or comments via http://bugs.opensuse.org
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
+
Name: perl-FileHandle-Unget
BuildRequires: perl-Weakref
-Version: 0.1621
+Version: 0.1622
Release: 1
Summary: Perl module for creating a FileHandle which supports ungetting of multiple bytes
-License: GPL
-URL: http://sourceforge.net/projects/fh-unget/
+License: GPL v2 or later
+Url: http://sourceforge.net/projects/fh-unget/
Group: Development/Libraries/Perl
Requires: perl-Weakref
-Autoreqprov: on
+AutoReqProv: on
Source: FileHandle-Unget-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -58,10 +59,16 @@
%{perl_vendorarch}/auto/FileHandle
/var/adm/perl-modules/%{name}
-%changelog -n perl-FileHandle-Unget
-* Wed Jan 25 2006 - mls(a)suse.de
+%changelog
+* Fri Jul 25 2008 anicka(a)suse.cz
+- update to 0.1622
+ * Updated to the latest version of Module::Install
+ * Removed auto-install for better compatibility with CPAN
+ and others
+ * Moved hosting to Google Code
+* Wed Jan 25 2006 mls(a)suse.de
- converted neededforbuild to BuildRequires
-* Wed Jan 04 2006 - anicka(a)suse.cz
+* Wed Jan 04 2006 anicka(a)suse.cz
- update to 0.1621
-* Tue Jun 22 2004 - rommel(a)suse.de
+* Tue Jun 22 2004 rommel(a)suse.de
- initial checkin
++++++ FileHandle-Unget-0.1621.tar.bz2 -> FileHandle-Unget-0.1622.tar.bz2 ++++++
++++ 4618 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-Authen-SASL
checked in at Fri Jul 25 16:59:31 CEST 2008.
--------
--- perl-Authen-SASL/perl-Authen-SASL.changes 2008-06-19 16:53:44.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-Authen-SASL/perl-Authen-SASL.changes 2008-07-25 15:39:55.000000000 +0200
@@ -1,0 +2,8 @@
+Fri Jul 25 15:20:03 CEST 2008 - anicka(a)suse.cz
+
+- update to 2.12
+ * GSSAPI implement protocol according to RFC, but by default,
+ remain compatible with cyrus sasl lib
+ * DIGEST-MD5 implement channel encryption layer
+
+-------------------------------------------------------------------
Old:
----
Authen-SASL-2.11.tar.bz2
New:
----
Authen-SASL-2.12.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Authen-SASL.spec ++++++
--- /var/tmp/diff_new_pack.B31342/_old 2008-07-25 16:59:11.000000000 +0200
+++ /var/tmp/diff_new_pack.B31342/_new 2008-07-25 16:59:11.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-Authen-SASL (Version 2.11)
+# spec file for package perl-Authen-SASL (Version 2.12)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -13,7 +13,7 @@
Name: perl-Authen-SASL
BuildRequires: perl-Digest-HMAC
-Version: 2.11
+Version: 2.12
Release: 1
Requires: perl = %{perl_version}
AutoReqProv: on
@@ -62,6 +62,11 @@
/var/adm/perl-modules/%{name}
%changelog
+* Fri Jul 25 2008 anicka(a)suse.cz
+- update to 2.12
+ * GSSAPI implement protocol according to RFC, but by default,
+ remain compatible with cyrus sasl lib
+ * DIGEST-MD5 implement channel encryption layer
* Thu Jun 19 2008 anicka(a)suse.cz
- update to 2.11
* implement securesocket() in the ::Perl set of plugins
++++++ Authen-SASL-2.11.tar.bz2 -> Authen-SASL-2.12.tar.bz2 ++++++
++++ 2190 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-DBI
checked in at Fri Jul 25 16:59:23 CEST 2008.
--------
--- perl-DBI/perl-DBI.changes 2008-06-27 16:39:25.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-DBI/perl-DBI.changes 2008-07-25 15:49:33.000000000 +0200
@@ -1,0 +2,9 @@
+Fri Jul 25 15:12:59 CEST 2008 - anicka(a)suse.cz
+
+- update to 1.607
+ * NOTE: Perl 5.8.1 is now the minimum supported version.
+ * Fixed missing import of carp in DBI::Gofer::Execute.
+ * Added note to docs about effect of execute(@empty_array).
+ * Clarified docs for ReadOnly thanks to Martin Evans.
+
+-------------------------------------------------------------------
Old:
----
DBI-1.605.tar.bz2
New:
----
DBI-1.607.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-DBI.spec ++++++
--- /var/tmp/diff_new_pack.A31224/_old 2008-07-25 16:59:08.000000000 +0200
+++ /var/tmp/diff_new_pack.A31224/_new 2008-07-25 16:59:08.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-DBI (Version 1.605)
+# spec file for package perl-DBI (Version 1.607)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -13,7 +13,7 @@
Name: perl-DBI
BuildRequires: perl-Curses
-Version: 1.605
+Version: 1.607
Release: 1
Requires: perl = %{perl_version}
Requires: perl-PlRPC
@@ -71,6 +71,12 @@
/var/adm/perl-modules/%{name}
%changelog
+* Fri Jul 25 2008 anicka(a)suse.cz
+- update to 1.607
+ * NOTE: Perl 5.8.1 is now the minimum supported version.
+ * Fixed missing import of carp in DBI::Gofer::Execute.
+ * Added note to docs about effect of execute(@empty_array).
+ * Clarified docs for ReadOnly thanks to Martin Evans.
* Fri Jun 27 2008 anicka(a)suse.cz
- update to 1.605
* Fixed broken DBIS macro with threads on big-endian machines
++++++ DBI-1.605.tar.bz2 -> DBI-1.607.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/Changes new/DBI-1.607/Changes
--- old/DBI-1.605/Changes 2008-06-16 20:59:58.000000000 +0200
+++ new/DBI-1.607/Changes 2008-07-22 23:45:46.000000000 +0200
@@ -2,7 +2,7 @@
DBI::Changes - List of significant changes to the DBI
-(As of $Date: 2008-06-16 19:59:57 +0100 (Mon, 16 Jun 2008) $ $Revision: 11430 $)
+(As of $Date: 2008-07-22 14:45:45 -0700 (Tue, 22 Jul 2008) $ $Revision: 11571 $)
=cut
@@ -54,15 +54,17 @@
Add high-res time for windows - via Time::HiRes glob replace dbi_time().
-=head2 Changes in DBI 1.605 XXX
+=head2 Changes in DBI 1.607 (svn r11571) 22nd July 2008
-Make trace level 2 show method entry but not fetched rows, leave that for trace level 3.
-So trace level 2 can be used to aid debugging without being flooded by data
+ NOTE: Perl 5.8.1 is now the minimum supported version.
+ If you need support for earlier versions send me a patch.
-1 = return from top level only, no rows
-2 = +entry to top level, no rows
-3 = +return from nested, no rows
-4 = +entry to nested, with rows
+ Fixed missing import of carp in DBI::Gofer::Execute.
+
+ Added note to docs about effect of execute(@empty_array).
+ Clarified docs for ReadOnly thanks to Martin Evans.
+
+=head2 Changes in DBI 1.605 (svn r11434) 16th June 2008
Fixed broken DBIS macro with threads on big-endian machines
with 64bit ints but 32bit pointers. Ticket #32309.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/DBI.pm new/DBI-1.607/DBI.pm
--- old/DBI-1.605/DBI.pm 2008-06-16 20:59:58.000000000 +0200
+++ new/DBI-1.607/DBI.pm 2008-07-22 23:45:17.000000000 +0200
@@ -1,4 +1,4 @@
-# $Id: DBI.pm 11430 2008-06-16 18:59:57Z timbo $
+# $Id: DBI.pm 11570 2008-07-22 21:45:16Z timbo $
# vim: ts=8:sw=4:noet
#
# Copyright (c) 1994-2008 Tim Bunce Ireland
@@ -9,7 +9,7 @@
require 5.006_00;
BEGIN {
-$DBI::VERSION = "1.605"; # ==> ALSO update the version in the pod text below!
+$DBI::VERSION = "1.607"; # ==> ALSO update the version in the pod text below!
}
=head1 NAME
@@ -121,8 +121,8 @@
=head2 NOTES
-This is the DBI specification that corresponds to the DBI version 1.605
-($Revision: 11430 $).
+This is the DBI specification that corresponds to the DBI version 1.607
+($Revision: 11570 $).
The DBI is evolving at a steady pace, so it's good to check that
you have the latest copy.
@@ -3844,8 +3844,9 @@
Note that the exact definition of 'read only' is rather fuzzy.
For more details see the documentation for the driver you're using.
-If the driver can make the handle truly read-only (by issuing a statement like
-"C<set transaction read only>" as needed, for example) then it should.
+If the driver can make the handle truly read-only then it should
+(unless doing so would have unpleasant side effect, like changing the
+consistency level from per-statement to per-session).
Otherwise the attribute is simply advisory.
A driver can set the C<ReadOnly> attribute itself to indicate that the data it
@@ -5191,8 +5192,9 @@
$sql = sprintf "SELECT foo FROM bar WHERE baz = %s",
$dbh->quote("Don't");
-For most database types, quote would return C<'Don''t'> (including the
-outer quotation marks).
+For most database types, at least those that conform to SQL standards, quote
+would return C<'Don''t'> (including the outer quotation marks). For others it
+may return something like C<'Don\'t'>
An undefined C<$value> value will be returned as the string C<NULL> (without
single quotation marks) to match how NULLs are represented in SQL.
@@ -5605,6 +5607,10 @@
C<bind_param> (or C<bind_param_inout>) has already been used to
specify the type.
+Note that passing C<execute> an empty array is the same as passing no arguments
+at all, which will execute the statement with previously bound values.
+That's probably not what you want.
+
If execute() is called on a statement handle that's still active
($sth->{Active} is true) then it should effectively call finish()
to tidy up the previous execution results before starting this new
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/DBI.xs new/DBI-1.607/DBI.xs
--- old/DBI-1.605/DBI.xs 2008-06-16 20:59:58.000000000 +0200
+++ new/DBI-1.607/DBI.xs 2008-07-22 22:47:32.000000000 +0200
@@ -1,6 +1,6 @@
/* vim: ts=8:sw=4
*
- * $Id: DBI.xs 11430 2008-06-16 18:59:57Z timbo $
+ * $Id: DBI.xs 11544 2008-07-20 06:43:16Z timbo $
*
* Copyright (c) 1994-2003 Tim Bunce Ireland.
*
@@ -2712,6 +2712,7 @@
dTHX;
AV *d_av, *i_av;
SV *tmp;
+ SV *tmp2;
NV i_nv;
int i_is_earlier;
@@ -2747,8 +2748,12 @@
croak("dbi_profile_merge_nodes: increment %s not an array or hash ref", neatsvpv(increment,0));
i_av = (AV*)SvRV(increment);
- tmp = *av_fetch(d_av, DBIprof_COUNT, 1);
- sv_setiv( tmp, SvIV(tmp) + SvIV( *av_fetch(i_av, DBIprof_COUNT, 1)) );
+ tmp = *av_fetch(d_av, DBIprof_COUNT, 1);
+ tmp2 = *av_fetch(i_av, DBIprof_COUNT, 1);
+ if (SvIOK(tmp) && SvIOK(tmp2))
+ sv_setiv( tmp, SvIV(tmp) + SvIV(tmp2) );
+ else
+ sv_setnv( tmp, SvNV(tmp) + SvNV(tmp2) );
tmp = *av_fetch(d_av, DBIprof_TOTAL_TIME, 1);
sv_setnv( tmp, SvNV(tmp) + SvNV( *av_fetch(i_av, DBIprof_TOTAL_TIME, 1)) );
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/lib/DBD/Gofer.pm new/DBI-1.607/lib/DBD/Gofer.pm
--- old/DBI-1.605/lib/DBD/Gofer.pm 2008-06-16 18:07:34.000000000 +0200
+++ new/DBI-1.607/lib/DBD/Gofer.pm 2008-07-22 22:17:34.000000000 +0200
@@ -8,9 +8,9 @@
require DBI::Gofer::Response;
require Carp;
- our $VERSION = sprintf("0.%06d", q$Revision: 11377 $ =~ /(\d+)/o);
+ our $VERSION = sprintf("0.%06d", q$Revision: 11565 $ =~ /(\d+)/o);
-# $Id: Gofer.pm 11377 2008-06-03 22:18:04Z timbo $
+# $Id: Gofer.pm 11565 2008-07-22 20:17:33Z timbo $
#
# Copyright (c) 2007, Tim Bunce, Ireland
#
@@ -91,11 +91,12 @@
sub set_err_from_response { # set error/warn/info and propagate warnings
- my ($h, $response) = @_;
+ my $h = shift;
+ my $response = shift;
if (my $warnings = $response->warnings) {
warn $_ for @$warnings;
}
- return $h->set_err($response->err, $response->errstr, $response->state);
+ return $h->set_err($response->err_errstr_state);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/lib/DBI/Gofer/Execute.pm new/DBI-1.607/lib/DBI/Gofer/Execute.pm
--- old/DBI-1.605/lib/DBI/Gofer/Execute.pm 2008-06-16 21:01:12.000000000 +0200
+++ new/DBI-1.607/lib/DBI/Gofer/Execute.pm 2008-07-20 08:43:18.000000000 +0200
@@ -1,6 +1,6 @@
package DBI::Gofer::Execute;
-# $Id: Execute.pm 11431 2008-06-16 19:01:11Z timbo $
+# $Id: Execute.pm 11544 2008-07-20 06:43:16Z timbo $
#
# Copyright (c) 2007, Tim Bunce, Ireland
#
@@ -10,13 +10,15 @@
use strict;
use warnings;
+use Carp;
+
use DBI qw(dbi_time);
use DBI::Gofer::Request;
use DBI::Gofer::Response;
use base qw(DBI::Util::_accessor);
-our $VERSION = sprintf("0.%06d", q$Revision: 11431 $ =~ /(\d+)/o);
+our $VERSION = sprintf("0.%06d", q$Revision: 11544 $ =~ /(\d+)/o);
our @all_dbh_methods = sort map { keys %$_ } $DBI::DBI_methods{db}, $DBI::DBI_methods{common};
our %all_dbh_methods = map { $_ => (DBD::_::db->can($_)||undef) } @all_dbh_methods;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/lib/DBI/Gofer/Response.pm new/DBI-1.607/lib/DBI/Gofer/Response.pm
--- old/DBI-1.605/lib/DBI/Gofer/Response.pm 2008-06-16 18:07:35.000000000 +0200
+++ new/DBI-1.607/lib/DBI/Gofer/Response.pm 2008-07-22 22:17:34.000000000 +0200
@@ -1,6 +1,6 @@
package DBI::Gofer::Response;
-# $Id: Response.pm 11424 2008-06-16 14:52:03Z timbo $
+# $Id: Response.pm 11565 2008-07-22 20:17:33Z timbo $
#
# Copyright (c) 2007, Tim Bunce, Ireland
#
@@ -14,7 +14,7 @@
use base qw(DBI::Util::_accessor Exporter);
-our $VERSION = sprintf("0.%06d", q$Revision: 11424 $ =~ /(\d+)/o);
+our $VERSION = sprintf("0.%06d", q$Revision: 11565 $ =~ /(\d+)/o);
use constant GOf_RESPONSE_EXECUTED => 0x0001;
@@ -46,6 +46,10 @@
}
+sub err_errstr_state {
+ my $self = shift;
+ return @{$self}{qw(err errstr state)};
+}
sub executed_flag_set {
my $flags = shift->flags
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/Makefile.PL new/DBI-1.607/Makefile.PL
--- old/DBI-1.605/Makefile.PL 2008-04-21 16:32:29.000000000 +0200
+++ new/DBI-1.607/Makefile.PL 2008-07-22 23:45:17.000000000 +0200
@@ -1,13 +1,13 @@
# -*- perl -*-
#
-# $Id: Makefile.PL 11128 2008-04-21 14:32:27Z timbo $
+# $Id: Makefile.PL 11570 2008-07-22 21:45:16Z timbo $
#
-# Copyright (c) 1994-2006 Tim Bunce Ireland
+# Copyright (c) 1994-2008 Tim Bunce Ireland
#
# See COPYRIGHT section in DBI.pm for usage and distribution rights.
BEGIN {
- require 5.006_00;
+ require 5.008_001;
unshift @INC, "lib";
}
@@ -38,17 +38,6 @@
$::opt_g &&= '-g'; # convert to actual string
-if ($] < 5.008000) {
- warn qq{
-**************************************************************************
- Perl versions below 5.6.1 are no longer supported by the DBI.
- Perl versions 5.6.x may fail during installation with a complaint
- about the use of =head3 in the pod documentation.
-**************************************************************************
-};
- prompt("Press return to continue...");
-}
-
if (($ENV{LANG}||'') =~ m/utf-?8/i) {
print "\n";
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/META.yml new/DBI-1.607/META.yml
--- old/DBI-1.605/META.yml 2008-06-16 21:18:27.000000000 +0200
+++ new/DBI-1.607/META.yml 2008-07-22 23:48:27.000000000 +0200
@@ -1,6 +1,6 @@
--- #YAML:1.0
name: DBI
-version: 1.605
+version: 1.607
abstract: Database independent interface for Perl
license: perl
author:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/t/40profile.t new/DBI-1.607/t/40profile.t
--- old/DBI-1.605/t/40profile.t 2008-03-13 16:08:29.000000000 +0100
+++ new/DBI-1.607/t/40profile.t 2008-07-20 08:39:20.000000000 +0200
@@ -296,7 +296,7 @@
# if actual "!Time" recorded is 'close enough' then we'll pass
# the test - it's not worth failing just because a system is slow
-$t1 = (keys %$tmp)[0] if (abs($t1 - (keys %$tmp)[0]) <= 2);
+$t1 = (keys %$tmp)[0] if (abs($t1 - (keys %$tmp)[0]) <= 5);
is_deeply $tmp, {
$t1 => { $t2 => { prepare => [ 1, 0, 0, 0, 0, 0, 0 ] }}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/DBI-1.605/test.pl new/DBI-1.607/test.pl
--- old/DBI-1.605/test.pl 2007-04-25 17:57:17.000000000 +0200
+++ new/DBI-1.607/test.pl 2008-07-22 22:54:37.000000000 +0200
@@ -1,6 +1,6 @@
#!/usr/local/bin/perl -w
-# $Id: test.pl 9451 2007-04-25 15:57:06Z timbo $
+# $Id: test.pl 11566 2008-07-22 20:54:36Z timbo $
#
# Copyright (c) 1994-1998 Tim Bunce
#
@@ -14,7 +14,7 @@
BEGIN {
print "$0 @ARGV\n";
- print q{DBI test application $Revision: 9451 $}."\n";
+ print q{DBI test application $Revision: 11566 $}."\n";
$| = 1;
}
@@ -77,7 +77,7 @@
if ($::opt_m) {
#$dbh->trace(9);
my $level = $::opt_m;
- my $cnt = 10000;
+ my $cnt = $::opt_n || 10000;
print "Using $driver, same dbh...\n";
for (my $i=0; $i<$cnt; ++$i) { mem_test($dbh, undef, $level, undef, undef, undef) }
print "Using NullP, reconnecting each time...\n";
@@ -141,7 +141,7 @@
my $cursor_a;
my ($dl_count, $dl_handle);
- if ($$r_develleak++) {
+ if ($has_devel_leak && $$r_develleak++) {
$dbh->trace(2);
$dl_count = Devel::Leak::NoteSV($dl_handle);
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0