OBS User unknown 2008-01-30 17:04:20 +00:00 committed by Git OBS Bridge
parent 010a6acc4e
commit a2036ab67a
8 changed files with 134 additions and 700 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7f668ec49506ffc968a54fde9404183212bb40b226626e9417d941594e06e57b
size 1721551

3
curl-7.18.0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:300561ef53ee5971b304142d8570a91f879228c2016e74a142fa3421dfcd3672
size 1779421

View File

@ -1,343 +0,0 @@
---
docs/libcurl/curl_easy_setopt.3 | 7 ++++
include/curl/curl.h | 3 +
lib/http.c | 34 +++++++++++----------
lib/url.c | 17 ++++++++++
lib/urldata.h | 2 +
tests/data/test208 | 2 -
tests/data/test549 | 62 ++++++++++++++++++++++++++++++++++++++++
tests/data/test550 | 62 ++++++++++++++++++++++++++++++++++++++++
tests/data/test79 | 2 -
tests/libtest/Makefile.am | 5 ++-
tests/libtest/lib549.c | 48 ++++++++++++++++++++++++++++++
11 files changed, 225 insertions(+), 19 deletions(-)
--- docs/libcurl/curl_easy_setopt.3.orig
+++ docs/libcurl/curl_easy_setopt.3
@@ -1064,6 +1064,13 @@ or similar.
libcurl does not do a complete ASCII conversion when doing ASCII transfers
over FTP. This is a known limitation/flaw that nobody has rectified. libcurl
simply sets the mode to ascii and performs a standard transfer.
+.IP CURLOPT_PROXY_TRANSFER_MODE
+Pass a long. If the value is set to 1 (one), it tells libcurl to set the
+transfer mode (binary or ASCII) for FTP transfers done via an HTTP proxy, by
+appending ;type=a or ;type=i to the URL. Without this setting, or it being
+set to 0 (zero, the default), \fICURLOPT_TRANSFERTEXT\fP has no effect when
+doing FTP via a proxy. Beware that not all proxies support this feature.
+(Added in 7.17.2)
.IP CURLOPT_CRLF
Convert Unix newlines to CRLF newlines on transfers.
.IP CURLOPT_RANGE
--- include/curl/curl.h.orig
+++ include/curl/curl.h
@@ -1159,6 +1159,9 @@ typedef enum {
/* POST volatile input fields. */
CINIT(COPYPOSTFIELDS, OBJECTPOINT, 165),
+ /* set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy */
+ CINIT(PROXY_TRANSFER_MODE, LONG, 166),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
--- lib/http.c.orig
+++ lib/http.c
@@ -2094,22 +2094,24 @@ CURLcode Curl_http(struct connectdata *c
}
}
ppath = data->change.url;
- /* when doing ftp, append ;type=<a|i> if not present */
- if (checkprefix("ftp://", ppath) || checkprefix("ftps://", ppath)) {
- char *p = strstr(ppath, ";type=");
- if (p && p[6] && p[7] == 0) {
- switch (toupper((int)((unsigned char)p[6]))) {
- case 'A':
- case 'D':
- case 'I':
- break;
- default:
- p = NULL;
- }
- }
- if (!p)
- snprintf(ftp_typecode, sizeof(ftp_typecode), ";type=%c",
- data->set.prefer_ascii ? 'a' : 'i');
+ if(data->set.proxy_transfer_mode) {
+ /* when doing ftp, append ;type=<a|i> if not present */
+ if(checkprefix("ftp://", ppath) || checkprefix("ftps://", ppath)) {
+ char *p = strstr(ppath, ";type=");
+ if(p && p[6] && p[7] == 0) {
+ switch (toupper((int)((unsigned char)p[6]))) {
+ case 'A':
+ case 'D':
+ case 'I':
+ break;
+ default:
+ p = NULL;
+ }
+ }
+ if(!p)
+ snprintf(ftp_typecode, sizeof(ftp_typecode), ";type=%c",
+ data->set.prefer_ascii ? 'a' : 'i');
+ }
}
}
if(HTTPREQ_POST_FORM == httpreq) {
--- lib/url.c.orig
+++ lib/url.c
@@ -2037,6 +2037,23 @@ CURLcode Curl_setopt(struct SessionHandl
*/
data->set.new_directory_perms = va_arg(param, long);
break;
+ case CURLOPT_PROXY_TRANSFER_MODE:
+ /*
+ * set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy
+ */
+ switch (va_arg(param, long)) {
+ case 0:
+ data->set.proxy_transfer_mode = FALSE;
+ break;
+ case 1:
+ data->set.proxy_transfer_mode = TRUE;
+ break;
+ default:
+ /* reserve other values for future use */
+ result = CURLE_FAILED_INIT;
+ break;
+ }
+ break;
default:
/* unknown tag and its companion, just ignore: */
--- lib/urldata.h.orig
+++ lib/urldata.h
@@ -1459,6 +1459,8 @@ struct UserDefined {
content-encoded (chunked, compressed) */
long new_file_perms; /* Permissions to use when creating remote files */
long new_directory_perms; /* Permissions to use when creating remote dirs */
+ bool proxy_transfer_mode; /* set transfer mode (;type=<a|i>) when doing FTP
+ via an HTTP proxy */
char *str[STRING_LAST]; /* array of strings, pointing to allocated memory */
};
--- tests/data/test208.orig
+++ tests/data/test208
@@ -44,7 +44,7 @@ the
^User-Agent:.*
</strip>
<protocol>
-PUT ftp://daniel:mysecret@host.com/we/want/208;type=i HTTP/1.1
+PUT ftp://daniel:mysecret@host.com/we/want/208 HTTP/1.1
Authorization: Basic ZGFuaWVsOm15c2VjcmV0
Host: host.com:21
Pragma: no-cache
--- tests/data/test79.orig
+++ tests/data/test79
@@ -45,7 +45,7 @@ ftp://%HOSTIP:%HTTPPORT/we/want/that/pag
^User-Agent:.*
</strip>
<protocol>
-GET ftp://%HOSTIP:%HTTPPORT/we/want/that/page/79;type=i HTTP/1.1
+GET ftp://%HOSTIP:%HTTPPORT/we/want/that/page/79 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Pragma: no-cache
Accept: */*
--- /dev/null
+++ tests/data/test549
@@ -0,0 +1,62 @@
+<testcase>
+<info>
+<keywords>
+FTP
+CURLOPT_PROXY_TRANSFER_MODE
+CURLOPT_PROXY
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="1">
+HTTP/1.1 200 OK swsclose
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
+ETag: "21025-dc7-39462498"
+Accept-Ranges: bytes
+Content-Length: 6
+
+hello
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<tool>
+lib549
+</tool>
+ <name>
+FPT RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE
+ </name>
+# first URL then proxy
+ <command>
+ftp://www.haxx.se/moo/549 http://%HOSTIP:%HTTPPORT
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET ftp://www.haxx.se/moo/549;type=i HTTP/1.1
+Host: www.haxx.se:21
+Pragma: no-cache
+Accept: */*
+Proxy-Connection: Keep-Alive
+
+</protocol>
+<stdout mode="text">
+hello
+</stdout>
+</verify>
+</testcase>
--- /dev/null
+++ tests/data/test550
@@ -0,0 +1,62 @@
+<testcase>
+<info>
+<keywords>
+FTP
+CURLOPT_PROXY_TRANSFER_MODE
+CURLOPT_PROXY
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data nocheck="1">
+HTTP/1.1 200 OK swsclose
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
+ETag: "21025-dc7-39462498"
+Accept-Ranges: bytes
+Content-Length: 6
+
+hello
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+<tool>
+lib549
+</tool>
+ <name>
+FPT RETR over proxy with CURLOPT_PROXY_TRANSFER_MODE and ascii transfer
+ </name>
+# first URL then proxy
+ <command>
+ftp://www.haxx.se/moo/550 http://%HOSTIP:%HTTPPORT ascii
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET ftp://www.haxx.se/moo/550;type=a HTTP/1.1
+Host: www.haxx.se:21
+Pragma: no-cache
+Accept: */*
+Proxy-Connection: Keep-Alive
+
+</protocol>
+<stdout mode="text">
+hello
+</stdout>
+</verify>
+</testcase>
--- tests/libtest/Makefile.am.orig
+++ tests/libtest/Makefile.am
@@ -48,7 +48,7 @@ noinst_PROGRAMS = lib500 lib501 lib502 l
lib507 lib508 lib509 lib510 lib511 lib512 lib513 lib514 lib515 lib516 \
lib517 lib518 lib519 lib520 lib521 lib523 lib524 lib525 lib526 lib527 \
lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 lib543 \
- lib544 lib545
+ lib544 lib545 lib549
# Dependencies (may need to be overriden)
LDADD = $(LIBDIR)/libcurl.la
@@ -138,3 +138,6 @@ lib544_SOURCES = lib544.c $(SUPPORTFILES
lib545_SOURCES = lib544.c $(SUPPORTFILES)
lib545_CFLAGS = -DLIB545
+
+lib549_SOURCES = lib549.c $(SUPPORTFILES)
+
--- /dev/null
+++ tests/libtest/lib549.c
@@ -0,0 +1,48 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id: lib549.c,v 1.1 2007-12-08 22:53:32 bagder Exp $
+ *
+ * argv1 = URL
+ * argv2 = proxy
+ * argv3 = non-zero means ASCII transfer
+ */
+
+#include "test.h"
+
+int test(char *URL)
+{
+ CURLcode res;
+ CURL *curl;
+
+ if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
+ fprintf(stderr, "curl_global_init() failed\n");
+ return TEST_ERR_MAJOR_BAD;
+ }
+
+ if ((curl = curl_easy_init()) == NULL) {
+ fprintf(stderr, "curl_easy_init() failed\n");
+ curl_global_cleanup();
+ return TEST_ERR_MAJOR_BAD;
+ }
+
+ curl_easy_setopt(curl, CURLOPT_PROXY, libtest_arg2);
+ curl_easy_setopt(curl, CURLOPT_URL, URL);
+ curl_easy_setopt(curl, CURLOPT_PROXY_TRANSFER_MODE, 1);
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, TRUE);
+ if(libtest_arg3)
+ /* enable ascii/text mode */
+ curl_easy_setopt(curl, CURLOPT_TRANSFERTEXT, TRUE);
+
+ res = curl_easy_perform(curl);
+
+ curl_easy_cleanup(curl);
+ curl_global_cleanup();
+
+ return (int)res;
+}
+

11
curl-test553.patch Normal file
View File

@ -0,0 +1,11 @@
---
tests/data/test553 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- tests/data/test553.orig
+++ tests/data/test553
@@ -50,3 +50,3 @@ http://%HOSTIP:%HTTPPORT/path/553
POST /path/553 HTTP/1.1
-Host: 127.0.0.1:8990
+Host: %HOSTIP:%HTTPPORT
Accept: */*

View File

@ -1,252 +0,0 @@
Remember which servers failed to start and don't try to run them again.
This is mainly useful when the ipv6 servers don't work.
---
tests/runtests.pl | 70 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 61 insertions(+), 9 deletions(-)
--- tests/runtests.pl.orig
+++ tests/runtests.pl
@@ -186,7 +186,8 @@ my $keepoutfiles; # keep stdout and stde
my $listonly; # only list the tests
my $postmortem; # display detailed info about failed tests
-my %run; # running server
+my %run; # running server
+my %doesntrun; # servers that don't work, identified by pidfile
# torture test variables
my $torture;
@@ -708,6 +709,11 @@ sub runhttpserver {
$nameext="-ipv6";
}
+ # don't retry if the server doesn't work
+ if ($doesntrun{$pidfile}) {
+ return (0,0);
+ }
+
$pid = checkserver($pidfile);
if($pid > 0) {
@@ -727,6 +733,7 @@ sub runhttpserver {
if($httppid <= 0 || !kill(0, $httppid)) {
# it is NOT alive
logmsg "RUN: failed to start the HTTP$nameext server\n";
+ $doesntrun{$pidfile} = 1;
return (0,0);
}
@@ -735,6 +742,7 @@ sub runhttpserver {
logmsg "RUN: HTTP$nameext server failed verification\n";
# failed to talk to it properly. Kill the server and return failure
stopserver("$httppid $pid2");
+ $doesntrun{$pidfile} = 1;
return (0,0);
}
@@ -755,6 +763,7 @@ sub runhttpsserver {
my $STATUS;
my $RUNNING;
my $ip = $HOSTIP;
+ my $pidfile = $HTTPSPIDFILE;
if(!$stunnel) {
return 0;
@@ -765,7 +774,12 @@ sub runhttpsserver {
$ip = $HOST6IP;
}
- my $pid=checkserver($HTTPSPIDFILE);
+ # don't retry if the server doesn't work
+ if ($doesntrun{$pidfile}) {
+ return (0,0);
+ }
+
+ my $pid=checkserver($pidfile);
if($pid > 0) {
# kill previous stunnel!
@@ -775,12 +789,13 @@ sub runhttpsserver {
my $flag=$debugprotocol?"-v ":"";
my $cmd="$perl $srcdir/httpsserver.pl $flag -p https -s \"$stunnel\" -d $srcdir -r $HTTPPORT $HTTPSPORT";
- my ($httpspid, $pid2) = startnew($cmd, $HTTPSPIDFILE,0);
+ my ($httpspid, $pid2) = startnew($cmd, $pidfile,0);
if($httpspid <= 0 || !kill(0, $httpspid)) {
# it is NOT alive
logmsg "RUN: failed to start the HTTPS server\n";
stopservers($verbose);
+ $doesntrun{$pidfile} = 1;
return(0,0);
}
@@ -789,6 +804,7 @@ sub runhttpsserver {
logmsg "RUN: HTTPS server failed verification\n";
# failed to talk to it properly. Kill the server and return failure
stopserver("$httpspid $pid2");
+ $doesntrun{$pidfile} = 1;
return (0,0);
}
@@ -823,6 +839,11 @@ sub runftpserver {
$nameext="-ipv6";
}
+ # don't retry if the server doesn't work
+ if ($doesntrun{$pidfile}) {
+ return (0,0);
+ }
+
my $pid = checkserver($pidfile);
if($pid >= 0) {
stopserver($pid);
@@ -850,7 +871,8 @@ sub runftpserver {
if($ftppid <= 0 || !kill(0, $ftppid)) {
# it is NOT alive
logmsg "RUN: failed to start the FTP$id$nameext server\n";
- return -1;
+ $doesntrun{$pidfile} = 1;
+ return (0,0);
}
# Server is up. Verify that we can speak to it.
@@ -858,6 +880,7 @@ sub runftpserver {
logmsg "RUN: FTP$id$nameext server failed verification\n";
# failed to talk to it properly. Kill the server and return failure
stopserver("$ftppid $pid2");
+ $doesntrun{$pidfile} = 1;
return (0,0);
}
@@ -878,6 +901,7 @@ sub runftpsserver {
my $STATUS;
my $RUNNING;
my $ip = $HOSTIP;
+ my $pidfile = $FTPSPIDFILE;
if(!$stunnel) {
return 0;
@@ -888,7 +912,12 @@ sub runftpsserver {
$ip = $HOST6IP;
}
- my $pid=checkserver($FTPSPIDFILE);
+ # don't retry if the server doesn't work
+ if ($doesntrun{$pidfile}) {
+ return (0,0);
+ }
+
+ my $pid=checkserver($pidfile);
if($pid > 0) {
# kill previous stunnel!
@@ -898,12 +927,13 @@ sub runftpsserver {
my $flag=$debugprotocol?"-v ":"";
my $cmd="$perl $srcdir/httpsserver.pl $flag -p ftps -s \"$stunnel\" -d $srcdir -r $FTPPORT $FTPSPORT";
- my ($ftpspid, $pid2) = startnew($cmd, $FTPSPIDFILE,0);
+ my ($ftpspid, $pid2) = startnew($cmd, $pidfile,0);
if($ftpspid <= 0 || !kill(0, $ftpspid)) {
# it is NOT alive
logmsg "RUN: failed to start the FTPS server\n";
stopservers($verbose);
+ $doesntrun{$pidfile} = 1;
return(0,0);
}
@@ -912,6 +942,7 @@ sub runftpsserver {
logmsg "RUN: FTPS server failed verification\n";
# failed to talk to it properly. Kill the server and return failure
stopserver("$ftpspid $pid2");
+ $doesntrun{$pidfile} = 1;
return (0,0);
}
@@ -946,6 +977,11 @@ sub runtftpserver {
$nameext="-ipv6";
}
+ # don't retry if the server doesn't work
+ if ($doesntrun{$pidfile}) {
+ return (0,0);
+ }
+
my $pid = checkserver($pidfile);
if($pid >= 0) {
stopserver($pid);
@@ -968,8 +1004,9 @@ sub runtftpserver {
if($tftppid <= 0 || !kill(0, $tftppid)) {
# it is NOT alive
- logmsg "RUN: failed to start the FTP$id$nameext server\n";
- return -1;
+ logmsg "RUN: failed to start the TFTP$id$nameext server\n";
+ $doesntrun{$pidfile} = 1;
+ return (0,0);
}
# Server is up. Verify that we can speak to it.
@@ -977,6 +1014,7 @@ sub runtftpserver {
logmsg "RUN: TFTP$id$nameext server failed verification\n";
# failed to talk to it properly. Kill the server and return failure
stopserver("$tftppid $pid2");
+ $doesntrun{$pidfile} = 1;
return (0,0);
}
@@ -999,6 +1037,11 @@ sub runsshserver {
my $port = $SSHPORT;
my $pidfile = $SSHPIDFILE;
+ # don't retry if the server doesn't work
+ if ($doesntrun{$pidfile}) {
+ return (0,0);
+ }
+
my $pid = checkserver($pidfile);
if($pid > 0) {
stopserver($pid);
@@ -1014,11 +1057,13 @@ sub runsshserver {
logmsg "RUN: failed to start the SSH server\n";
# failed to talk to it properly. Kill the server and return failure
stopserver("$sshpid $pid2");
- return -1;
+ $doesntrun{$pidfile} = 1;
+ return (0,0);
}
if (!verifyserver('ssh',$ip,$port)) {
logmsg "RUN: SSH server failed verification\n";
+ $doesntrun{$pidfile} = 1;
return (0,0);
}
if($verbose) {
@@ -1037,6 +1082,11 @@ sub runsocksserver {
my $port = $SOCKSPORT;
my $pidfile = $SOCKSPIDFILE;
+ # don't retry if the server doesn't work
+ if ($doesntrun{$pidfile}) {
+ return (0,0);
+ }
+
my $flag=$debugprotocol?"-v ":"";
my $cmd="ssh -D ${HOSTIP}:$SOCKSPORT -N -F curl_ssh_config ${USER}\@${HOSTIP} -p ${SSHPORT} -vv >log/ssh.log 2>&1";
my ($sshpid, $pid2) =
@@ -1047,12 +1097,14 @@ sub runsocksserver {
logmsg "RUN: failed to start the SOCKS server\n";
# failed to talk to it properly. Kill the server and return failure
stopserver("$sshpid $pid2");
+ $doesntrun{$pidfile} = 1;
return (0,0);
}
# Ugly hack but ssh doesn't support pid files
if (!verifyserver('socks',$ip,$port)) {
logmsg "RUN: SOCKS server failed verification\n";
+ $doesntrun{$pidfile} = 1;
return (0,0);
}
if($verbose) {

View File

@ -1,18 +0,0 @@
If starting the http-ipv6 server fails, just skip that test like runftpserver()
does. Also fix the log message in that case.
---
tests/runtests.pl | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
--- tests/runtests.pl.orig
+++ tests/runtests.pl
@@ -726,8 +726,7 @@ sub runhttpserver {
if($httppid <= 0 || !kill(0, $httppid)) {
# it is NOT alive
- logmsg "RUN: failed to start the HTTP server\n";
- stopservers($verbose);
+ logmsg "RUN: failed to start the HTTP$nameext server\n";
return (0,0);
}

View File

@ -1,3 +1,25 @@
-------------------------------------------------------------------
Tue Jan 29 10:01:27 CET 2008 - mmarek@suse.cz
- updated to 7.18.0
* --data-urlencode
* CURLOPT_PROXY_TRANSFER_MODE
* --no-keepalive - now curl does connections with keep-alive
enabled by default
* --socks4a added (proxy type CURLPROXY_SOCKS4A for libcurl)
* --socks5-hostname added (CURLPROXY_SOCKS5_HOSTNAME for libcurl)
* curl_easy_pause()
* CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA
* --keepalive-time
* curl --help output was re-ordered
* bugfixes
- fixed test553 to work with different port number
-------------------------------------------------------------------
Thu Jan 10 16:21:34 CET 2008 - mmarek@suse.cz
- only print -lcurl in curl-config to reduce dependencies
-------------------------------------------------------------------
Tue Dec 11 17:59:57 CET 2007 - mmarek@suse.cz

182
curl.spec
View File

@ -1,7 +1,7 @@
#
# spec file for package curl (Version 7.17.1)
# spec file for package curl (Version 7.18.0)
#
# 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.
#
@ -14,17 +14,15 @@ Name: curl
BuildRequires: libidn-devel openldap2-devel openssl-devel zlib-devel
# used by the testsuite
BuildRequires: stunnel
Version: 7.17.1
Release: 11
Version: 7.18.0
Release: 1
AutoReqProv: on
License: BSD 3-Clause; X11/MIT
Group: Productivity/Networking/Web/Utilities
Summary: A Tool for Transferring Data from URLs
Url: http://curl.haxx.se/
Source: curl-%{version}.tar.bz2
Patch1: curl-testsuite-safely-skip-http-ipv6.patch
Patch2: curl-testsuite-remember-broken-servers.patch
Patch3: curl-CURLOPT_PROXY_TRANSFER_MODE.patch
Patch1: curl-test553.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -69,7 +67,7 @@ Authors:
%package -n libcurl-devel
Summary: A Tool for Transferring Data from URLs
Group: Development/Libraries/C and C++
Requires: libcurl4 = %{version} zlib-devel libopenssl-devel libidn-devel openldap2-devel
Requires: libcurl4 = %{version} glibc-devel
# curl-devel (v 7.15.5) was last used in 10.2
Provides: curl-devel <= 7.15.5
Obsoletes: curl-devel < 7.16.2
@ -89,16 +87,14 @@ Authors:
%prep
%setup -q
%patch1
%patch2
%patch3
%build
autoreconf -fi
%if %{suse_version} < 1010
# local hack to make curl-config --libs stop printing libraries it depends on
# (currently, libtool sets link_all_deplibs=(yes|unknown) everywhere,
# will hopefully change in the future)
sed -i 's/link_all_deplibs=unknown/link_all_deplibs=no/' configure
export CFLAGS="$RPM_OPT_FLAGS"
%else
export CFLAGS="$RPM_OPT_FLAGS -fstack-protector"
%endif
./configure \
--prefix=%{_prefix} \
--enable-ipv6 \
@ -106,6 +102,8 @@ export CFLAGS="$RPM_OPT_FLAGS -fstack-protector"
--libdir=%{_libdir} \
--enable-hidden-symbols \
--disable-static
: if this fails, the above sed hack did not work
./libtool --config | grep -q link_all_deplibs=no
# enable-hidden-symbols needs gcc4 and causes that curl exports only its API
make %{?jobs:-j%jobs}
cd tests
@ -160,14 +158,30 @@ rm -rf $RPM_BUILD_ROOT
%doc %{_mandir}/man3/*
%changelog
* Tue Dec 11 2007 - mmarek@suse.cz
* Tue Jan 29 2008 mmarek@suse.cz
- updated to 7.18.0
* --data-urlencode
* CURLOPT_PROXY_TRANSFER_MODE
* --no-keepalive - now curl does connections with keep-alive
enabled by default
* --socks4a added (proxy type CURLPROXY_SOCKS4A for libcurl)
* --socks5-hostname added (CURLPROXY_SOCKS5_HOSTNAME for libcurl)
* curl_easy_pause()
* CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA
* --keepalive-time
* curl --help output was re-ordered
* bugfixes
- fixed test553 to work with different port number
* Thu Jan 10 2008 mmarek@suse.cz
- only print -lcurl in curl-config to reduce dependencies
* Tue Dec 11 2007 mmarek@suse.cz
- backported the CURLOPT_PROXY_TRANSFER_MODE patch [#306272#c26]
* Fri Nov 16 2007 - mmarek@suse.cz
* Fri Nov 16 2007 mmarek@suse.cz
- fixed the testsuite on hosts that have no IPv6 support [#341994]
curl-testsuite-safely-skip-http-ipv6.patch
curl-testsuite-remember-broken-servers.patch
- added stunnel to BuildRequires to enable SSL tests
* Tue Oct 30 2007 - mmarek@suse.cz
* Tue Oct 30 2007 mmarek@suse.cz
- updated to 7.17.1
* automatically append ";type=<a|i>" when using HTTP proxies for
FTP urls [#306272]
@ -183,9 +197,9 @@ rm -rf $RPM_BUILD_ROOT
* added CURLOPT_COPYPOSTFIELDS
* added --static-libs to curl-config
* many bugfixes, inc. fix for bug #332917
* Thu Oct 11 2007 - mszeredi@suse.de
* Thu Oct 11 2007 mszeredi@suse.de
- Add missing dependency (openldap2-devel) for libcurl-devel
* Mon Oct 08 2007 - mmarek@suse.cz
* Mon Oct 08 2007 mmarek@suse.cz
- updated to 7.17.0
* curl_easy_setopt() now allocates strings passed to it
* LDAP libraries are now linked "regularly" and not with dlopen
@ -198,62 +212,62 @@ rm -rf $RPM_BUILD_ROOT
* some bugfixes (see /usr/share/doc/packages/curl/RELEASE-NOTES)
- added fixes for some post-7.17 bugs
- removed some less useful %%doc files
* Fri Sep 14 2007 - mmarek@suse.cz
* Fri Sep 14 2007 mmarek@suse.cz
- set transfer mode (binary/ascii) when retrieving ftp:// urls via
an http proxy (curl-ftp-httpproxy.patch) [#306272]
* Wed Aug 29 2007 - mmarek@suse.cz
* Wed Aug 29 2007 mmarek@suse.cz
- s/openssl-devel/libopenssl-devel/ [#305815]
* Fri Aug 03 2007 - mmarek@suse.cz
* Fri Aug 03 2007 mmarek@suse.cz
- updated to 7.16.4
* added CURLOPT_NEW_FILE_PERMS and CURLOPT_NEW_DIRECTORY_PERMS
* improved hashing of sockets for the multi_socket API
* ftp kerberos5 support added
* some bugfixes (see /usr/share/doc/packages/curl/RELEASE-NOTES)
- fixed libcurl-devel Provides: [#293401]
* Mon Jul 09 2007 - mmarek@suse.cz
* Mon Jul 09 2007 mmarek@suse.cz
- updated to 7.16.3
* many bugfixes
* support for running multiple testsuites in paralell
- removed lfs patch leftover
* Mon Jun 04 2007 - mmarek@suse.cz
* Mon Jun 04 2007 mmarek@suse.cz
- install libcurl.m4 [#275462]
* Fri Jun 01 2007 - dmueller@suse.de
* Fri Jun 01 2007 dmueller@suse.de
- fix obsoletes for alpha3 update
- fix ldconfig call
* Wed May 23 2007 - bk@suse.de
* Wed May 23 2007 bk@suse.de
- updated to 7.16.2 (lots of fixes, fixes a segfault in git-http)
* Fri May 04 2007 - mmarek@suse.cz
* Fri May 04 2007 mmarek@suse.cz
- also avoid non-versioned obsoletes
* Mon Apr 16 2007 - mmarek@suse.de
* Mon Apr 16 2007 mmarek@suse.de
- avoid non-versioned provides
- removed old curl_ssl provides/obsoletes from 7.1 times
* Mon Apr 02 2007 - rguenther@suse.de
* Mon Apr 02 2007 rguenther@suse.de
- split off libcurl4 and curl-ca-bundle packages, rename curl-devel
to libcurl-devel
* Sat Mar 31 2007 - rguenther@suse.de
* Sat Mar 31 2007 rguenther@suse.de
- add zlib-devel BuildRequires
* Fri Feb 16 2007 - mmarek@suse.cz
* Fri Feb 16 2007 mmarek@suse.cz
- better patch for #246179
* Fri Feb 16 2007 - mmarek@suse.cz
* Fri Feb 16 2007 mmarek@suse.cz
- fix CURLOPT_RANGE reset for ftp transfers
[#246179] (ftp_range.patch)
- updated to 7.16.1 (other bugfixes)
* Fri Jan 26 2007 - mmarek@suse.cz
* Fri Jan 26 2007 mmarek@suse.cz
- remove libcurl.a and libcurl.la (rationale: there are security
updates of curl from time to time, so statically linking it is
not acceptable)
* Thu Jan 25 2007 - mmarek@suse.cz
* Thu Jan 25 2007 mmarek@suse.cz
- fixed strict aliasing warnings
* Tue Dec 19 2006 - mmarek@suse.cz
* Tue Dec 19 2006 mmarek@suse.cz
- updated to 7.16.0
* removed CURLOPT_SOURCE_* options and --3p* command line option
(breaks python-curl atm)
* for a complete list of changes, see
/usr/share/doc/packages/curl/RELEASE-NOTES
* Tue Aug 15 2006 - mmarek@suse.cz
* Tue Aug 15 2006 mmarek@suse.cz
- configure with --enable-hidden-symbols to compile libcurl with
-fvisibility=hidden, exporting only symbols from the API
* Tue Aug 15 2006 - mmarek@suse.cz
* Tue Aug 15 2006 mmarek@suse.cz
- updated to version 7.15.5
* added --ftp-ssl-reqd
* modified the prototype for the socket callback set with
@ -266,7 +280,7 @@ rm -rf $RPM_BUILD_ROOT
* Made -K on a file that couldn't be read cause a warning to be displayed
* some bugfixes
- dropped epsv-firewall.patch which was intergrated in 7.15.2
* Sat Jul 01 2006 - cthiel@suse.de
* Sat Jul 01 2006 cthiel@suse.de
- update to version 7.15.4, changes & fixes for this version:
* NTLM2 session response support
* CURLOPT_COOKIELIST set to "SESS" clears all session cookies
@ -303,9 +317,9 @@ rm -rf $RPM_BUILD_ROOT
* treat FTP AUTH failures properly
* TFTP transfers could trash data
* -d + -G combo crash
* Wed Jun 14 2006 - mmarek@suse.cz
* Wed Jun 14 2006 mmarek@suse.cz
- fixed syntax error in configure
* Sun May 28 2006 - cthiel@suse.de
* Sun May 28 2006 cthiel@suse.de
- update to version 7.15.3, changes & fixes for this version:
* added docs for --ftp-method and CURLOPT_FTP_FILEMETHOD
* TFTP Packet Buffer Overflow Vulnerability (CVE-2006-1061)
@ -355,106 +369,106 @@ rm -rf $RPM_BUILD_ROOT
* the HTTP_ONLY define disables the TFTP support
- removed curl-7.15.1-CVE-2006-1061.patch, included upstream
- removed curl-7.15.1-aliasing.patch
* Tue Mar 14 2006 - mmarek@suse.cz
* Tue Mar 14 2006 mmarek@suse.cz
- fix buffer overflow in TFTP code
[#157874] (CVE-2006-1061.patch)
* Wed Feb 15 2006 - ro@suse.de
* Wed Feb 15 2006 ro@suse.de
- added libidn-devel to requires of devel package
* Mon Feb 13 2006 - mmarek@suse.cz
* Mon Feb 13 2006 mmarek@suse.cz
- build with libidn support
[#150313]
* Fri Jan 27 2006 - mls@suse.de
* Fri Jan 27 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Mon Jan 23 2006 - mmarek@suse.cz
* Mon Jan 23 2006 mmarek@suse.cz
- fallback to PASV if some firewall doesn't let an EPSV connection
trough
* Thu Jan 12 2006 - mmarek@suse.cz
* Thu Jan 12 2006 mmarek@suse.cz
- build with -fstack-protector
- add dependency on curl = %%{version} to curl-devel
* Tue Jan 10 2006 - mmarek@suse.cz
* Tue Jan 10 2006 mmarek@suse.cz
- remove non-existent path /usr/ssl, which caused -L/usr/ssl/lib to
appeared in curl-config output
- use make -j
* Tue Dec 13 2005 - mmarek@suse.cz
* Tue Dec 13 2005 mmarek@suse.cz
- updated to 7.15.1, fixing previous vulnerabilities
* Thu Oct 13 2005 - mmarek@suse.cz
* Thu Oct 13 2005 mmarek@suse.cz
- fix stack buffer overflow in lib/http_ntlm.c [#128065]
* Mon Oct 10 2005 - mmarek@suse.cz
* Mon Oct 10 2005 mmarek@suse.cz
- updated to 7.14.1
- updated curl-7.14.1-aliasing.patch
* Mon Jun 20 2005 - anicka@suse.cz
* Mon Jun 20 2005 anicka@suse.cz
- update to 7.14.0
- remove obsolete patch curl-ntlm.patch
* Tue Apr 12 2005 - tcrhak@suse.cz
* Tue Apr 12 2005 tcrhak@suse.cz
- packaged curl-ca-bundle.crt (bug #64301)
* Thu Feb 24 2005 - meissner@suse.de
* Thu Feb 24 2005 meissner@suse.de
- enable make test. fixed test 241 to use ::1 directly.
* Tue Feb 22 2005 - mcihar@suse.cz
* Tue Feb 22 2005 mcihar@suse.cz
- fix buffer overflow in NTLM (bug #65752)
* Tue Feb 08 2005 - mcihar@suse.cz
* Tue Feb 08 2005 mcihar@suse.cz
- update to 7.13.0
* Wed Aug 11 2004 - tcrhak@suse.cz
* Wed Aug 11 2004 tcrhak@suse.cz
- update to 7.12.0
* Wed Apr 28 2004 - tcrhak@suse.cz
* Wed Apr 28 2004 tcrhak@suse.cz
- strict aliasing fix
* Tue Mar 16 2004 - tcrhak@suse.cz
* Tue Mar 16 2004 tcrhak@suse.cz
- fix for lfs for in transfer.c (bug #36040)
* Wed Feb 25 2004 - tcrhak@suse.cz
* Wed Feb 25 2004 tcrhak@suse.cz
- ignore leading slashes of url-path in URLs like
ftp://user@name//url-path, i.e don't change to the
root directory (RFC 1738, bug #34471)
* Tue Feb 10 2004 - tcrhak@suse.cz
* Tue Feb 10 2004 tcrhak@suse.cz
- update to version 7.11.0
* Sat Jan 10 2004 - adrian@suse.de
* Sat Jan 10 2004 adrian@suse.de
- add %%defattr and %%run_ldconfig
* Wed Nov 05 2003 - tcrhak@suse.cz
* Wed Nov 05 2003 tcrhak@suse.cz
- added large file support, patch lfs [bug #32411]
* Thu Sep 04 2003 - tcrhak@suse.cz
* Thu Sep 04 2003 tcrhak@suse.cz
- require zlib-devel, openssl-devel and glibc-devel in curl-devel [bug #29881]
* Fri Aug 08 2003 - tcrhak@suse.cz
* Fri Aug 08 2003 tcrhak@suse.cz
- terminate array of directory components by NULL (bug #28351, patch dirs)
* Wed Jul 23 2003 - tcrhak@suse.cz
* Wed Jul 23 2003 tcrhak@suse.cz
- update to version 7.10.5
* Tue Jun 03 2003 - ro@suse.de
* Tue Jun 03 2003 ro@suse.de
- remove unpackaged files from buildroot
* Wed Nov 27 2002 - tcrhak@suse.cz
* Wed Nov 27 2002 tcrhak@suse.cz
- update to version 7.10.2
- moved curl-config.1.gz to the devel subpackage [bug #21966]
* Sat Jul 13 2002 - tcrhak@suse.cz
* Sat Jul 13 2002 tcrhak@suse.cz
- update to version 7.9.8
- added automake
* Fri Jan 18 2002 - tcrhak@suse.cz
* Fri Jan 18 2002 tcrhak@suse.cz
- used macros %%{_lib} and %%{_libdir}
- update to 7.9.2
* Fri Oct 19 2001 - ro@suse.de
* Fri Oct 19 2001 ro@suse.de
- do not pack shared library into both, main and devel package
* Mon Oct 08 2001 - tcrhak@suse.cz
* Mon Oct 08 2001 tcrhak@suse.cz
- update to version 7.9
* Fri Sep 21 2001 - adostal@suse.cz
* Fri Sep 21 2001 adostal@suse.cz
- fix manual in man.patch
* Tue Aug 21 2001 - adostal@suse.cz
* Tue Aug 21 2001 adostal@suse.cz
- update to version 7.8.1
* Wed Jul 18 2001 - adostal@suse.cz
* Wed Jul 18 2001 adostal@suse.cz
- files devel fixed
* Mon Jul 02 2001 - adostal@suse.cz
* Mon Jul 02 2001 adostal@suse.cz
- update to version 7.8
* Wed Jun 13 2001 - ro@suse.de
* Wed Jun 13 2001 ro@suse.de
- fixed to compile with new autoconf
* Mon Apr 09 2001 - cihlar@suse.cz
* Mon Apr 09 2001 cihlar@suse.cz
- update to version 7.7.1
* Tue Mar 06 2001 - cihlar@suse.cz
* Tue Mar 06 2001 cihlar@suse.cz
- update to version 7.6.1
* Wed Jan 03 2001 - cihlar@suse.cz
* Wed Jan 03 2001 cihlar@suse.cz
- fixed Provides and Obsoletes also for curl-devel
* Tue Dec 19 2000 - cihlar@suse.cz
* Tue Dec 19 2000 cihlar@suse.cz
- fixed name
- added Obsoletes: curl_ssl
* Mon Dec 18 2000 - cihlar@suse.cz
* Mon Dec 18 2000 cihlar@suse.cz
- changed to ssl support
* Thu Nov 16 2000 - cihlar@suse.cz
* Thu Nov 16 2000 cihlar@suse.cz
- renamed curldev -> curl-devel
- update to version 7.4.2
* Tue Oct 17 2000 - cihlar@suse.cz
* Tue Oct 17 2000 cihlar@suse.cz
- update to version 7.4.1 - security bug fixed
* Wed Aug 30 2000 - cihlar@suse.cz
* Wed Aug 30 2000 cihlar@suse.cz
- package created