Date: Friday, May 24, 2019 @ 07:53:01 Author: eworm Revision: 469544 upgpkg: libcurl-compat 7.65.0-2
backport fix Added: libcurl-compat/trunk/0001-Revert-progress-CURL_DISABLE_PROGRESS_METER.patch Modified: libcurl-compat/trunk/PKGBUILD --------------------------------------------------------+ 0001-Revert-progress-CURL_DISABLE_PROGRESS_METER.patch | 200 +++++++++++++++ PKGBUILD | 16 - 2 files changed, 212 insertions(+), 4 deletions(-) Added: 0001-Revert-progress-CURL_DISABLE_PROGRESS_METER.patch =================================================================== --- 0001-Revert-progress-CURL_DISABLE_PROGRESS_METER.patch (rev 0) +++ 0001-Revert-progress-CURL_DISABLE_PROGRESS_METER.patch 2019-05-24 07:53:01 UTC (rev 469544) @@ -0,0 +1,200 @@ +From c6b58137237a89081b4efc33ae0ecf7282e40132 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <dan...@haxx.se> +Date: Wed, 22 May 2019 23:15:34 +0200 +Subject: [PATCH] Revert "progress: CURL_DISABLE_PROGRESS_METER" + +This reverts commit 3b06e68b7734cb10a555f9d7e804dd5d808236a4. + +Clearly this change wasn't good enough as it broke CURLOPT_LOW_SPEED_LIMIT + +CURLOPT_LOW_SPEED_TIME + +Reported-by: Dave Reisner + +Fixes #3927 +Closes #3928 +--- + lib/progress.c | 110 ++++++++++++++++++++++--------------------------- + 1 file changed, 49 insertions(+), 61 deletions(-) + +diff --git a/lib/progress.c b/lib/progress.c +index f586d59b4..fe9929bb9 100644 +--- a/lib/progress.c ++++ b/lib/progress.c +@@ -5,7 +5,7 @@ + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * +- * Copyright (C) 1998 - 2019, Daniel Stenberg, <dan...@haxx.se>, et al. ++ * Copyright (C) 1998 - 2018, Daniel Stenberg, <dan...@haxx.se>, et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms +@@ -31,7 +31,6 @@ + /* check rate limits within this many recent milliseconds, at minimum. */ + #define MIN_RATE_LIMIT_PERIOD 3000 + +-#ifndef CURL_DISABLE_PROGRESS_METER + /* Provide a string that is 2 + 1 + 2 + 1 + 2 = 8 letters long (plus the zero + byte) */ + static void time2str(char *r, curl_off_t seconds) +@@ -120,7 +119,6 @@ static char *max5data(curl_off_t bytes, char *max5) + + return max5; + } +-#endif + + /* + +@@ -364,13 +362,17 @@ void Curl_pgrsSetUploadSize(struct Curl_easy *data, curl_off_t size) + } + } + +-#ifndef CURL_DISABLE_PROGRESS_METER +-static void progress_meter(struct connectdata *conn) ++/* ++ * Curl_pgrsUpdate() returns 0 for success or the value returned by the ++ * progress callback! ++ */ ++int Curl_pgrsUpdate(struct connectdata *conn) + { + struct curltime now; + curl_off_t timespent; + curl_off_t timespent_ms; /* milliseconds */ + struct Curl_easy *data = conn->data; ++ int nowindex = data->progress.speeder_c% CURR_TIME; + bool shownow = FALSE; + curl_off_t dl = data->progress.downloaded; + curl_off_t ul = data->progress.uploaded; +@@ -397,9 +399,7 @@ static void progress_meter(struct connectdata *conn) + /* Calculations done at most once a second, unless end is reached */ + if(data->progress.lastshow != now.tv_sec) { + int countindex; /* amount of seconds stored in the speeder array */ +- int nowindex = data->progress.speeder_c% CURR_TIME; +- if(!(data->progress.flags & PGRS_HIDE)) +- shownow = TRUE; ++ shownow = TRUE; + + data->progress.lastshow = now.tv_sec; + +@@ -461,12 +461,8 @@ static void progress_meter(struct connectdata *conn) + data->progress.ulspeed + data->progress.dlspeed; + + } /* Calculations end */ +- if(!shownow) +- /* only show the internal progress meter once per second */ +- return; +- else { +- /* If there's no external callback set, use internal code to show +- progress */ ++ ++ if(!(data->progress.flags & PGRS_HIDE)) { + /* progress meter has not been shut off */ + char max5[6][10]; + curl_off_t dlpercen = 0; +@@ -481,6 +477,42 @@ static void progress_meter(struct connectdata *conn) + curl_off_t dlestimate = 0; + curl_off_t total_estimate; + ++ if(data->set.fxferinfo) { ++ int result; ++ /* There's a callback set, call that */ ++ Curl_set_in_callback(data, true); ++ result = data->set.fxferinfo(data->set.progress_client, ++ data->progress.size_dl, ++ data->progress.downloaded, ++ data->progress.size_ul, ++ data->progress.uploaded); ++ Curl_set_in_callback(data, false); ++ if(result) ++ failf(data, "Callback aborted"); ++ return result; ++ } ++ if(data->set.fprogress) { ++ int result; ++ /* The older deprecated callback is set, call that */ ++ Curl_set_in_callback(data, true); ++ result = data->set.fprogress(data->set.progress_client, ++ (double)data->progress.size_dl, ++ (double)data->progress.downloaded, ++ (double)data->progress.size_ul, ++ (double)data->progress.uploaded); ++ Curl_set_in_callback(data, false); ++ if(result) ++ failf(data, "Callback aborted"); ++ return result; ++ } ++ ++ if(!shownow) ++ /* only show the internal progress meter once per second */ ++ return 0; ++ ++ /* If there's no external callback set, use internal code to show ++ progress */ ++ + if(!(data->progress.flags & PGRS_HEADERS_OUT)) { + if(data->state.resume_from) { + fprintf(data->set.err, +@@ -563,57 +595,13 @@ static void progress_meter(struct connectdata *conn) + time_total, /* 8 letters */ /* total time */ + time_spent, /* 8 letters */ /* time spent */ + time_left, /* 8 letters */ /* time left */ +- max5data(data->progress.current_speed, max5[5]) +- ); ++ max5data(data->progress.current_speed, max5[5]) /* current speed */ ++ ); + + /* we flush the output stream to make it appear as soon as possible */ + fflush(data->set.err); +- } /* don't show now */ +-} +-#else +- /* progress bar disabled */ +-#define progress_meter(x) +-#endif +- + +-/* +- * Curl_pgrsUpdate() returns 0 for success or the value returned by the +- * progress callback! +- */ +-int Curl_pgrsUpdate(struct connectdata *conn) +-{ +- struct Curl_easy *data = conn->data; +- if(!(data->progress.flags & PGRS_HIDE)) { +- if(data->set.fxferinfo) { +- int result; +- /* There's a callback set, call that */ +- Curl_set_in_callback(data, true); +- result = data->set.fxferinfo(data->set.progress_client, +- data->progress.size_dl, +- data->progress.downloaded, +- data->progress.size_ul, +- data->progress.uploaded); +- Curl_set_in_callback(data, false); +- if(result) +- failf(data, "Callback aborted"); +- return result; +- } +- if(data->set.fprogress) { +- int result; +- /* The older deprecated callback is set, call that */ +- Curl_set_in_callback(data, true); +- result = data->set.fprogress(data->set.progress_client, +- (double)data->progress.size_dl, +- (double)data->progress.downloaded, +- (double)data->progress.size_ul, +- (double)data->progress.uploaded); +- Curl_set_in_callback(data, false); +- if(result) +- failf(data, "Callback aborted"); +- return result; +- } +- } +- progress_meter(conn); ++ } /* !(data->progress.flags & PGRS_HIDE) */ + + return 0; + } +-- +2.21.0 + Modified: PKGBUILD =================================================================== --- PKGBUILD 2019-05-24 07:49:56 UTC (rev 469543) +++ PKGBUILD 2019-05-24 07:53:01 UTC (rev 469544) @@ -3,7 +3,7 @@ pkgname=libcurl-compat pkgver=7.65.0 -pkgrel=1 +pkgrel=2 pkgdesc='An URL retrieval library (without versioned symbols)' arch=('x86_64') url='https://curl.haxx.se' @@ -11,11 +11,19 @@ depends=('curl' 'glibc' 'krb5' 'openssl' 'libpsl' 'zlib' 'libssh2.so') options=('strip') -source=("https://curl.haxx.se/download/curl-${pkgver}.tar.gz"{,.asc}) +source=("https://curl.haxx.se/download/curl-${pkgver}.tar.gz"{,.asc} + '0001-Revert-progress-CURL_DISABLE_PROGRESS_METER.patch') +sha512sums=('8b4a61e1ed5e4417f8162ca91ec5f5b89305c290298e1d5d2e8222fdeec766f02704788a9206784ebfd9b6198fc9a288ca25f5957b57382bffeeff28c3db8556' + 'SKIP' + '50573335ee83dbb5e10947bf957ffa60c17244c480d55b761eb749b4d53403f52d58b86bbefbbc5905657922ec274122ec96cbde5cd48d3559b866ad9fbc2de7') validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg -sha512sums=('8b4a61e1ed5e4417f8162ca91ec5f5b89305c290298e1d5d2e8222fdeec766f02704788a9206784ebfd9b6198fc9a288ca25f5957b57382bffeeff28c3db8556' - 'SKIP') +prepare() { + cd curl-${pkgver} + + patch -Np1 < ../0001-Revert-progress-CURL_DISABLE_PROGRESS_METER.patch +} + build() { cd curl-${pkgver}