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 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 # This file and all modifications and additions to the pristine
# package are under the same license as the package itself. # 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 BuildRequires: libidn-devel openldap2-devel openssl-devel zlib-devel
# used by the testsuite # used by the testsuite
BuildRequires: stunnel BuildRequires: stunnel
Version: 7.17.1 Version: 7.18.0
Release: 11 Release: 1
AutoReqProv: on AutoReqProv: on
License: BSD 3-Clause; X11/MIT License: BSD 3-Clause; X11/MIT
Group: Productivity/Networking/Web/Utilities Group: Productivity/Networking/Web/Utilities
Summary: A Tool for Transferring Data from URLs Summary: A Tool for Transferring Data from URLs
Url: http://curl.haxx.se/ Url: http://curl.haxx.se/
Source: curl-%{version}.tar.bz2 Source: curl-%{version}.tar.bz2
Patch1: curl-testsuite-safely-skip-http-ipv6.patch Patch1: curl-test553.patch
Patch2: curl-testsuite-remember-broken-servers.patch
Patch3: curl-CURLOPT_PROXY_TRANSFER_MODE.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description %description
@ -69,7 +67,7 @@ Authors:
%package -n libcurl-devel %package -n libcurl-devel
Summary: A Tool for Transferring Data from URLs Summary: A Tool for Transferring Data from URLs
Group: Development/Libraries/C and C++ 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 # curl-devel (v 7.15.5) was last used in 10.2
Provides: curl-devel <= 7.15.5 Provides: curl-devel <= 7.15.5
Obsoletes: curl-devel < 7.16.2 Obsoletes: curl-devel < 7.16.2
@ -89,16 +87,14 @@ Authors:
%prep %prep
%setup -q %setup -q
%patch1 %patch1
%patch2
%patch3
%build %build
autoreconf -fi 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" export CFLAGS="$RPM_OPT_FLAGS"
%else
export CFLAGS="$RPM_OPT_FLAGS -fstack-protector"
%endif
./configure \ ./configure \
--prefix=%{_prefix} \ --prefix=%{_prefix} \
--enable-ipv6 \ --enable-ipv6 \
@ -106,6 +102,8 @@ export CFLAGS="$RPM_OPT_FLAGS -fstack-protector"
--libdir=%{_libdir} \ --libdir=%{_libdir} \
--enable-hidden-symbols \ --enable-hidden-symbols \
--disable-static --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 # enable-hidden-symbols needs gcc4 and causes that curl exports only its API
make %{?jobs:-j%jobs} make %{?jobs:-j%jobs}
cd tests cd tests
@ -160,14 +158,30 @@ rm -rf $RPM_BUILD_ROOT
%doc %{_mandir}/man3/* %doc %{_mandir}/man3/*
%changelog %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] - 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] - fixed the testsuite on hosts that have no IPv6 support [#341994]
curl-testsuite-safely-skip-http-ipv6.patch curl-testsuite-safely-skip-http-ipv6.patch
curl-testsuite-remember-broken-servers.patch curl-testsuite-remember-broken-servers.patch
- added stunnel to BuildRequires to enable SSL tests - 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 - updated to 7.17.1
* automatically append ";type=<a|i>" when using HTTP proxies for * automatically append ";type=<a|i>" when using HTTP proxies for
FTP urls [#306272] FTP urls [#306272]
@ -183,9 +197,9 @@ rm -rf $RPM_BUILD_ROOT
* added CURLOPT_COPYPOSTFIELDS * added CURLOPT_COPYPOSTFIELDS
* added --static-libs to curl-config * added --static-libs to curl-config
* many bugfixes, inc. fix for bug #332917 * 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 - 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 - updated to 7.17.0
* curl_easy_setopt() now allocates strings passed to it * curl_easy_setopt() now allocates strings passed to it
* LDAP libraries are now linked "regularly" and not with dlopen * 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) * some bugfixes (see /usr/share/doc/packages/curl/RELEASE-NOTES)
- added fixes for some post-7.17 bugs - added fixes for some post-7.17 bugs
- removed some less useful %%doc files - 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 - set transfer mode (binary/ascii) when retrieving ftp:// urls via
an http proxy (curl-ftp-httpproxy.patch) [#306272] 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] - 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 - updated to 7.16.4
* added CURLOPT_NEW_FILE_PERMS and CURLOPT_NEW_DIRECTORY_PERMS * added CURLOPT_NEW_FILE_PERMS and CURLOPT_NEW_DIRECTORY_PERMS
* improved hashing of sockets for the multi_socket API * improved hashing of sockets for the multi_socket API
* ftp kerberos5 support added * ftp kerberos5 support added
* some bugfixes (see /usr/share/doc/packages/curl/RELEASE-NOTES) * some bugfixes (see /usr/share/doc/packages/curl/RELEASE-NOTES)
- fixed libcurl-devel Provides: [#293401] - fixed libcurl-devel Provides: [#293401]
* Mon Jul 09 2007 - mmarek@suse.cz * Mon Jul 09 2007 mmarek@suse.cz
- updated to 7.16.3 - updated to 7.16.3
* many bugfixes * many bugfixes
* support for running multiple testsuites in paralell * support for running multiple testsuites in paralell
- removed lfs patch leftover - removed lfs patch leftover
* Mon Jun 04 2007 - mmarek@suse.cz * Mon Jun 04 2007 mmarek@suse.cz
- install libcurl.m4 [#275462] - install libcurl.m4 [#275462]
* Fri Jun 01 2007 - dmueller@suse.de * Fri Jun 01 2007 dmueller@suse.de
- fix obsoletes for alpha3 update - fix obsoletes for alpha3 update
- fix ldconfig call - 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) - 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 - also avoid non-versioned obsoletes
* Mon Apr 16 2007 - mmarek@suse.de * Mon Apr 16 2007 mmarek@suse.de
- avoid non-versioned provides - avoid non-versioned provides
- removed old curl_ssl provides/obsoletes from 7.1 times - 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 - split off libcurl4 and curl-ca-bundle packages, rename curl-devel
to libcurl-devel to libcurl-devel
* Sat Mar 31 2007 - rguenther@suse.de * Sat Mar 31 2007 rguenther@suse.de
- add zlib-devel BuildRequires - add zlib-devel BuildRequires
* Fri Feb 16 2007 - mmarek@suse.cz * Fri Feb 16 2007 mmarek@suse.cz
- better patch for #246179 - 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 - fix CURLOPT_RANGE reset for ftp transfers
[#246179] (ftp_range.patch) [#246179] (ftp_range.patch)
- updated to 7.16.1 (other bugfixes) - 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 - remove libcurl.a and libcurl.la (rationale: there are security
updates of curl from time to time, so statically linking it is updates of curl from time to time, so statically linking it is
not acceptable) not acceptable)
* Thu Jan 25 2007 - mmarek@suse.cz * Thu Jan 25 2007 mmarek@suse.cz
- fixed strict aliasing warnings - fixed strict aliasing warnings
* Tue Dec 19 2006 - mmarek@suse.cz * Tue Dec 19 2006 mmarek@suse.cz
- updated to 7.16.0 - updated to 7.16.0
* removed CURLOPT_SOURCE_* options and --3p* command line option * removed CURLOPT_SOURCE_* options and --3p* command line option
(breaks python-curl atm) (breaks python-curl atm)
* for a complete list of changes, see * for a complete list of changes, see
/usr/share/doc/packages/curl/RELEASE-NOTES /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 - configure with --enable-hidden-symbols to compile libcurl with
-fvisibility=hidden, exporting only symbols from the API -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 - updated to version 7.15.5
* added --ftp-ssl-reqd * added --ftp-ssl-reqd
* modified the prototype for the socket callback set with * 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 * Made -K on a file that couldn't be read cause a warning to be displayed
* some bugfixes * some bugfixes
- dropped epsv-firewall.patch which was intergrated in 7.15.2 - 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: - update to version 7.15.4, changes & fixes for this version:
* NTLM2 session response support * NTLM2 session response support
* CURLOPT_COOKIELIST set to "SESS" clears all session cookies * CURLOPT_COOKIELIST set to "SESS" clears all session cookies
@ -303,9 +317,9 @@ rm -rf $RPM_BUILD_ROOT
* treat FTP AUTH failures properly * treat FTP AUTH failures properly
* TFTP transfers could trash data * TFTP transfers could trash data
* -d + -G combo crash * -d + -G combo crash
* Wed Jun 14 2006 - mmarek@suse.cz * Wed Jun 14 2006 mmarek@suse.cz
- fixed syntax error in configure - 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: - update to version 7.15.3, changes & fixes for this version:
* added docs for --ftp-method and CURLOPT_FTP_FILEMETHOD * added docs for --ftp-method and CURLOPT_FTP_FILEMETHOD
* TFTP Packet Buffer Overflow Vulnerability (CVE-2006-1061) * 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 * the HTTP_ONLY define disables the TFTP support
- removed curl-7.15.1-CVE-2006-1061.patch, included upstream - removed curl-7.15.1-CVE-2006-1061.patch, included upstream
- removed curl-7.15.1-aliasing.patch - 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 - fix buffer overflow in TFTP code
[#157874] (CVE-2006-1061.patch) [#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 - 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 - build with libidn support
[#150313] [#150313]
* Fri Jan 27 2006 - mls@suse.de * Fri Jan 27 2006 mls@suse.de
- converted neededforbuild to BuildRequires - 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 - fallback to PASV if some firewall doesn't let an EPSV connection
trough trough
* Thu Jan 12 2006 - mmarek@suse.cz * Thu Jan 12 2006 mmarek@suse.cz
- build with -fstack-protector - build with -fstack-protector
- add dependency on curl = %%{version} to curl-devel - 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 - remove non-existent path /usr/ssl, which caused -L/usr/ssl/lib to
appeared in curl-config output appeared in curl-config output
- use make -j - 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 - 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] - 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 to 7.14.1
- updated curl-7.14.1-aliasing.patch - 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 - update to 7.14.0
- remove obsolete patch curl-ntlm.patch - 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) - 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. - 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) - 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 - update to 7.13.0
* Wed Aug 11 2004 - tcrhak@suse.cz * Wed Aug 11 2004 tcrhak@suse.cz
- update to 7.12.0 - update to 7.12.0
* Wed Apr 28 2004 - tcrhak@suse.cz * Wed Apr 28 2004 tcrhak@suse.cz
- strict aliasing fix - 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) - 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 - ignore leading slashes of url-path in URLs like
ftp://user@name//url-path, i.e don't change to the ftp://user@name//url-path, i.e don't change to the
root directory (RFC 1738, bug #34471) 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 - 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 - 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] - 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] - 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) - 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 - 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 - 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 - update to version 7.10.2
- moved curl-config.1.gz to the devel subpackage [bug #21966] - 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 - update to version 7.9.8
- added automake - added automake
* Fri Jan 18 2002 - tcrhak@suse.cz * Fri Jan 18 2002 tcrhak@suse.cz
- used macros %%{_lib} and %%{_libdir} - used macros %%{_lib} and %%{_libdir}
- update to 7.9.2 - 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 - 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 - update to version 7.9
* Fri Sep 21 2001 - adostal@suse.cz * Fri Sep 21 2001 adostal@suse.cz
- fix manual in man.patch - 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 - update to version 7.8.1
* Wed Jul 18 2001 - adostal@suse.cz * Wed Jul 18 2001 adostal@suse.cz
- files devel fixed - files devel fixed
* Mon Jul 02 2001 - adostal@suse.cz * Mon Jul 02 2001 adostal@suse.cz
- update to version 7.8 - 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 - 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 - 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 - 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 - fixed Provides and Obsoletes also for curl-devel
* Tue Dec 19 2000 - cihlar@suse.cz * Tue Dec 19 2000 cihlar@suse.cz
- fixed name - fixed name
- added Obsoletes: curl_ssl - added Obsoletes: curl_ssl
* Mon Dec 18 2000 - cihlar@suse.cz * Mon Dec 18 2000 cihlar@suse.cz
- changed to ssl support - changed to ssl support
* Thu Nov 16 2000 - cihlar@suse.cz * Thu Nov 16 2000 cihlar@suse.cz
- renamed curldev -> curl-devel - renamed curldev -> curl-devel
- update to version 7.4.2 - 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 - 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 - package created