summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaúl Porcel <armin76@gentoo.org>2008-01-21 20:18:50 +0000
committerRaúl Porcel <armin76@gentoo.org>2008-01-21 20:18:50 +0000
commit0519cc320e5d68ea466ea3f2d61623277de183a6 (patch)
tree758de5418cf583653210bd5080437c99100f5df7 /net-ftp/lftp
parentStable for HPPA (bug #206904). Fixed quoting issues too. (diff)
downloadgentoo-2-0519cc320e5d68ea466ea3f2d61623277de183a6.tar.gz
gentoo-2-0519cc320e5d68ea466ea3f2d61623277de183a6.tar.bz2
gentoo-2-0519cc320e5d68ea466ea3f2d61623277de183a6.zip
Add patches from upstream to fix #203570, #203729
(Portage version: 2.1.4)
Diffstat (limited to 'net-ftp/lftp')
-rw-r--r--net-ftp/lftp/ChangeLog11
-rw-r--r--net-ftp/lftp/files/3.6.1-segfault.patch11
-rw-r--r--net-ftp/lftp/files/3.6.1-specialchars.patch67
-rw-r--r--net-ftp/lftp/files/digest-lftp-3.6.1-r13
-rw-r--r--net-ftp/lftp/lftp-3.6.1-r1.ebuild66
5 files changed, 156 insertions, 2 deletions
diff --git a/net-ftp/lftp/ChangeLog b/net-ftp/lftp/ChangeLog
index 7df9e3522e53..06a97f24aacc 100644
--- a/net-ftp/lftp/ChangeLog
+++ b/net-ftp/lftp/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for net-ftp/lftp
-# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-ftp/lftp/ChangeLog,v 1.145 2007/12/07 16:59:41 dertobi123 Exp $
+# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-ftp/lftp/ChangeLog,v 1.146 2008/01/21 20:18:50 armin76 Exp $
+
+*lftp-3.6.1-r1 (21 Jan 2008)
+
+ 21 Jan 2008; Raúl Porcel <armin76@gentoo.org>
+ +files/3.6.1-segfault.patch, +files/3.6.1-specialchars.patch,
+ +lftp-3.6.1-r1.ebuild:
+ Add patches from upstream to fix #203570, #203729
07 Dec 2007; Tobias Scherbaum <dertobi123@gentoo.org> lftp-3.5.14.ebuild:
ppc stable, bug #198843
diff --git a/net-ftp/lftp/files/3.6.1-segfault.patch b/net-ftp/lftp/files/3.6.1-segfault.patch
new file mode 100644
index 000000000000..52755e351ba0
--- /dev/null
+++ b/net-ftp/lftp/files/3.6.1-segfault.patch
@@ -0,0 +1,11 @@
+--- src/buffer.cc 10 Sep 2007 11:45:27 -0000 1.66
++++ src/buffer.cc 3 Jan 2008 09:07:43 -0000
+@@ -155,7 +155,7 @@ void Buffer::vFormat(const char *f, va_l
+ {
+ va_list tmp;
+ VA_COPY(tmp,v);
+- int res=vsnprintf(GetSpace(size), size, f, v);
++ int res=vsnprintf(GetSpace(size), size, f, tmp);
+ va_end(tmp);
+ if(res>=0 && res<size)
+ {
diff --git a/net-ftp/lftp/files/3.6.1-specialchars.patch b/net-ftp/lftp/files/3.6.1-specialchars.patch
new file mode 100644
index 000000000000..5057d2dedbf6
--- /dev/null
+++ b/net-ftp/lftp/files/3.6.1-specialchars.patch
@@ -0,0 +1,67 @@
+--- src/GetJob.cc 23 Apr 2007 07:11:45 -0000 1.28
++++ src/GetJob.cc 28 Dec 2007 11:12:35 -0000
+@@ -99,33 +99,44 @@ bool GetJob::IsRemoteNonURL(const Parsed
+ // store & put || !store & get
+ return (!url.proto && (mode==FA::STORE ^ !reverse));
+ }
++bool GetJob::IsLocalNonURL(const ParsedURL &url,FA::open_mode mode)
++{
++ // store & get || !store & put
++ return (!url.proto && (mode==FA::STORE ^ reverse));
++}
+ bool GetJob::IsLocal(const ParsedURL &url)
+ {
+ return !url.proto || !strcasecmp(url.proto,"file");
+ }
++// create copy peer from a cloned session
+ FileCopyPeer *GetJob::CreateCopyPeer(FileAccess *session,const char *path,FA::open_mode mode)
+ {
+ ParsedURL url(path,true);
+ if(IsRemoteNonURL(url,mode))
+ return new FileCopyPeerFA(session,path,mode);
+ Delete(session); // delete cloned session.
+- return CreateCopyPeer(url,mode);
++ return CreateCopyPeer(url,path,mode);
+ }
++// create copy peer using a session reference
+ FileCopyPeer *GetJob::CreateCopyPeer(const FileAccessRef& session,const char *path,FA::open_mode mode)
+ {
+ ParsedURL url(path,true);
+ if(IsRemoteNonURL(url,mode))
+ return new FileCopyPeerFA(session,path,mode);
+- return CreateCopyPeer(url,mode);
++ return CreateCopyPeer(url,path,mode);
+ }
+-FileCopyPeer *GetJob::CreateCopyPeer(const ParsedURL &url,FA::open_mode mode)
++FileCopyPeer *GetJob::CreateCopyPeer(const ParsedURL &url,const char *path,FA::open_mode mode)
+ {
++ if(IsLocalNonURL(url,mode))
++ return CreateCopyPeer(path,mode);
+ if(IsLocal(url))
+- return (mode==FA::STORE)
+- ? DstLocal(url.path)
+- : SrcLocal(url.path);
++ return CreateCopyPeer(url.path,mode);
+ return new FileCopyPeerFA(&url,mode);
+ }
++FileCopyPeer *GetJob::CreateCopyPeer(const char *path,FA::open_mode mode)
++{
++ return mode==FA::STORE ? DstLocal(path) : SrcLocal(path);
++}
+
+ void GetJob::NextFile()
+ {
+--- src/GetJob.h 23 Apr 2007 07:11:46 -0000 1.15
++++ src/GetJob.h 28 Dec 2007 11:10:07 -0000
+@@ -29,8 +29,10 @@ class GetJob : public CopyJobEnv
+ {
+ FileCopyPeer *SrcLocal(const char *src);
+ FileCopyPeer *DstLocal(const char *dst);
+- FileCopyPeer *CreateCopyPeer(const ParsedURL &url,FA::open_mode mode);
++ FileCopyPeer *CreateCopyPeer(const ParsedURL &url,const char *path,FA::open_mode mode);
++ FileCopyPeer *CreateCopyPeer(const char *path,FA::open_mode mode);
+ bool IsRemoteNonURL(const ParsedURL &url,FA::open_mode mode);
++ bool IsLocalNonURL(const ParsedURL &url,FA::open_mode mode);
+ static bool IsLocal(const ParsedURL &url);
+
+ protected:
diff --git a/net-ftp/lftp/files/digest-lftp-3.6.1-r1 b/net-ftp/lftp/files/digest-lftp-3.6.1-r1
new file mode 100644
index 000000000000..11423e6140f5
--- /dev/null
+++ b/net-ftp/lftp/files/digest-lftp-3.6.1-r1
@@ -0,0 +1,3 @@
+MD5 29e9e44474aa381029d6ae0fb79b2f2b lftp-3.6.1.tar.bz2 1332560
+RMD160 9b92c1cf1af6b14295641e2703fe44b39f9a4aa3 lftp-3.6.1.tar.bz2 1332560
+SHA256 8e65e1602c08b44c955eda228876046f3f74519200db0cb54d1102a02a50b032 lftp-3.6.1.tar.bz2 1332560
diff --git a/net-ftp/lftp/lftp-3.6.1-r1.ebuild b/net-ftp/lftp/lftp-3.6.1-r1.ebuild
new file mode 100644
index 000000000000..ab82d3c3255f
--- /dev/null
+++ b/net-ftp/lftp/lftp-3.6.1-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-ftp/lftp/lftp-3.6.1-r1.ebuild,v 1.1 2008/01/21 20:18:50 armin76 Exp $
+
+inherit eutils
+
+DESCRIPTION="A sophisticated ftp/sftp/http/https client and file transfer program"
+HOMEPAGE="http://lftp.yar.ru/"
+SRC_URI="http://ftp.yars.free.net/pub/source/lftp/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
+IUSE="ssl gnutls socks5 nls"
+
+RDEPEND=">=sys-libs/ncurses-5.1
+ socks5? (
+ >=net-proxy/dante-1.1.12
+ virtual/pam )
+ ssl? (
+ gnutls? ( >=net-libs/gnutls-1.2.3 )
+ !gnutls? ( >=dev-libs/openssl-0.9.6 )
+ )
+ virtual/libc
+ >=sys-libs/readline-5.1"
+
+DEPEND="${RDEPEND}
+ nls? ( sys-devel/gettext )
+ dev-lang/perl"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${PV}-segfault.patch
+ epatch "${FILESDIR}"/${PV}-specialchars.patch
+}
+
+src_compile() {
+ local myconf="$(use_enable nls) --enable-packager-mode"
+
+ if use ssl && use gnutls ; then
+ myconf="${myconf} --without-openssl"
+ elif use ssl && ! use gnutls ; then
+ myconf="${myconf} --without-gnutls --with-openssl=/usr"
+ else
+ myconf="${myconf} --without-gnutls --without-openssl"
+ fi
+
+ use socks5 && myconf="${myconf} --with-socksdante=/usr" \
+ || myconf="${myconf} --without-socksdante"
+
+ econf \
+ --sysconfdir=/etc/lftp \
+ --with-modules \
+ ${myconf} || die "econf failed"
+
+ emake || die "compile problem"
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ dodoc BUGS ChangeLog FAQ FEATURES MIRRORS \
+ NEWS README* THANKS TODO
+}