Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
bea35033cd
!10 [sync] PR-9: 更正changelog
From: @openeuler-sync-bot 
Reviewed-by: @caodongxia 
Signed-off-by: @caodongxia
2024-05-07 02:28:29 +00:00
caodongxia
6fbe401057 Correcting the changelog
(cherry picked from commit 675cb40692e317d4615313a0f9313c360a22a8e6)
2024-05-07 09:50:11 +08:00
openeuler-ci-bot
75f8457df4 !4 remove python2 support
Merge pull request !4 from 桐小哥/master
2020-08-27 11:14:08 +08:00
桐小哥
8da196c0a5 remove python2 support 2020-08-27 10:24:58 +08:00
openeuler-ci-bot
1d48c91492 !3 python-urlgrabber
Merge pull request !3 from wangef/master
2020-05-11 10:46:28 +08:00
wwx913452
2b3c7036e6 added python-urlgrabber.yaml 2020-05-11 10:36:36 +08:00
openeuler-ci-bot
cf4968a4fb !2 update version to 4.0.0
Merge pull request !2 from ultra_planet/new
2020-02-28 14:23:53 +08:00
ultra_planet
8231c5e602 update version to 4.0.0 2020-02-28 14:13:21 +08:00
openeuler-ci-bot
00a80f79c8 !1 package init
Merge pull request !1 from 快乐的一只小青蛙/br_pi
2020-02-14 15:49:25 +08:00
byeX012
a027be9890 Package init 2020-02-14 11:37:00 +08:00
6 changed files with 209 additions and 0 deletions

View File

@ -0,0 +1,48 @@
From e7a01334f653661c657d4c4e6e1ad10aababfb5b Mon Sep 17 00:00:00 2001
From: Pavel Raiskup <praiskup@redhat.com>
Date: Sun, 12 May 2019 08:54:01 +0200
Subject: [PATCH] urlgrabber-ext-down: another python 3 compat
Expect that _readlines() returns array of bytes objects in
Python 3 environments.
Fixes rhbz #1707657 and #1688173
---
scripts/urlgrabber-ext-down | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/scripts/urlgrabber-ext-down b/scripts/urlgrabber-ext-down
index bbaebd5..13d6dc7 100755
--- a/scripts/urlgrabber-ext-down
+++ b/scripts/urlgrabber-ext-down
@@ -19,12 +19,17 @@
# Boston, MA 02111-1307 USA
import time, os, errno, sys
+import six
from urlgrabber.grabber import \
_readlines, URLGrabberOptions, _loads, \
PyCurlFileObject, URLGrabError
def write(fmt, *arg):
- try: os.write(1, fmt % arg)
+ buf = fmt % arg
+ if six.PY3:
+ buf = buf.encode()
+ try:
+ os.write(1, buf)
except OSError as e:
if e.args[0] != errno.EPIPE: raise
sys.exit(1)
@@ -46,6 +51,8 @@ def main():
lines = _readlines(0)
if not lines: break
for line in lines:
+ if not isinstance(line, six.string_types):
+ line = line.decode('utf-8')
cnt += 1
opts = URLGrabberOptions()
opts._id = cnt
--
2.21.0

View File

@ -0,0 +1,40 @@
From 7607b9f408b71b6533ca4f8e8808090a5b930555 Mon Sep 17 00:00:00 2001
From: Michal Domonkos <mdomonko@redhat.com>
Date: Mon, 20 May 2019 15:06:38 +0200
Subject: [PATCH 2/4] Revert "Simplify mirror conversion to utf8"
This reverts commit be8ee10e35319e80200d4ff384434d46fe7783d9.
A list of dicts (as opposed to strings) is valid input as well; see the
module-level doc string for details (section 2 under CUSTOMIZATION). In
fact, the nested estimate() function in MirrorGroup.__init__() accounts
for that, too.
This fixes a traceback in YUM which does pass such a dict list.
Closes #10.
---
urlgrabber/mirror.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/urlgrabber/mirror.py b/urlgrabber/mirror.py
index 75f0bcb..d95863e 100644
--- a/urlgrabber/mirror.py
+++ b/urlgrabber/mirror.py
@@ -297,7 +297,12 @@ class MirrorGroup:
self.default_action = kwargs.get('default_action')
def _parse_mirrors(self, mirrors):
- return [{'mirror':_to_utf8(m)} for m in mirrors]
+ parsed_mirrors = []
+ for m in mirrors:
+ if isinstance(m, string_types):
+ m = {'mirror': _to_utf8(m)}
+ parsed_mirrors.append(m)
+ return parsed_mirrors
def _load_gr(self, gr):
# OVERRIDE IDEAS:
--
2.21.0

View File

@ -0,0 +1,56 @@
From c696255c5f50341688d718b3547efb1a9971927b Mon Sep 17 00:00:00 2001
From: Michal Domonkos <mdomonko@redhat.com>
Date: Tue, 21 May 2019 11:12:12 +0200
Subject: [PATCH 3/4] urlgrabber-ext-down: convert url into bytes
We need to convert the parsed url back into bytes before passing it to
the PyCurlFileObject constructor (since _set_opts() expects self.scheme,
constructed from the url, to be a bytes object).
This caused the unit test "bypassing proxy cache on failure" to fail
(together with a bug in the test itself which is also being fixed here).
Closes #14.
---
scripts/urlgrabber-ext-down | 4 ++--
test/test_mirror.py | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/urlgrabber-ext-down b/scripts/urlgrabber-ext-down
index 13d6dc7..40469a7 100755
--- a/scripts/urlgrabber-ext-down
+++ b/scripts/urlgrabber-ext-down
@@ -22,7 +22,7 @@ import time, os, errno, sys
import six
from urlgrabber.grabber import \
_readlines, URLGrabberOptions, _loads, \
- PyCurlFileObject, URLGrabError
+ PyCurlFileObject, URLGrabError, _to_utf8
def write(fmt, *arg):
buf = fmt % arg
@@ -65,7 +65,7 @@ def main():
dlsz = dltm = 0
try:
- fo = PyCurlFileObject(opts.url, opts.filename, opts)
+ fo = PyCurlFileObject(_to_utf8(opts.url), opts.filename, opts)
fo._do_grab()
fo.fo.close()
size = fo._amount_read
diff --git a/test/test_mirror.py b/test/test_mirror.py
index a2daf19..66cafd0 100644
--- a/test/test_mirror.py
+++ b/test/test_mirror.py
@@ -350,7 +350,7 @@ class HttpReplyCode(TestCase):
self.content = b'version1'
def checkfunc_read(obj):
- if obj.data == 'version1':
+ if obj.data == b'version1':
raise URLGrabError(-1, 'Outdated version of foo')
def checkfunc_grab(obj):
--
2.21.0

61
python-urlgrabber.spec Normal file
View File

@ -0,0 +1,61 @@
Name: python-urlgrabber
Version: 4.0.0
Release: 3
Summary: Cross-protocol urlgrabber
License: LGPLv2+
Url: http://urlgrabber.baseurl.org/
Source0: http://urlgrabber.baseurl.org/download/urlgrabber-%{version}.tar.gz
Patch0001: 0001-urlgrabber-ext-down-another-python-3-compat.patch
Patch0002: 0002-Revert-Simplify-mirror-conversion-to-utf8.patch
Patch0003: 0003-urlgrabber-ext-down-convert-url-into-bytes.patch
BuildArch: noarch
%global _description\
It is a urlgrabber.We can use it to fetch data in three ways.Urlgrab copies\
files to the local filesystem,urlopen opens the remote file and returns a\
file object,urlread returns contents of files as string.It is easy to install\
and use this package.
%description %_description
%package -n python3-urlgrabber
Summary: %summary
Provides: urlgrabber = %{version}-%{release}
BuildRequires: python3-devel python3dist(setuptools) python3dist(pycurl) python3dist(six)
%{?python_provide:%python_provide python3-urlgrabber}
%description -n python3-urlgrabber %_description
%prep
%autosetup -n urlgrabber-%{version} -p1
%build
%py3_build
%install
%py3_install
sed -e "s|/usr/bin/python|%{__python3}|" -i $RPM_BUILD_ROOT/%{_libexecdir}/*
rm -rf $RPM_BUILD_ROOT/%{_docdir}/urlgrabber-%{version}
%files -n python3-urlgrabber
%license LICENSE
%doc README ChangeLog TODO
%{_bindir}/urlgrabber
%{_libexecdir}/urlgrabber-ext-down
%{python3_sitelib}/urlgrabber
%{python3_sitelib}/urlgrabber-%{version}-py?.?.egg-info
%changelog
* Mon May 6 2024 caodongxia <caodongxia@h-partners.com> - 4.0.0-3
- Correcting the changelog
* Thu Aug 27 2020 shixuantong <shixuantong@huawei.com> - 4.0.0-2
- remove python2
* Fri Feb 28 2020 lingsheng <lingsheng@huawei.com> - 4.0.0-1
- update version to 4.0.0
* Fri Feb 14 2020 Jiangping Hu <hujp1985@foxmail.com> - 3.10.1-18
- Package init

4
python-urlgrabber.yaml Normal file
View File

@ -0,0 +1,4 @@
version_control: NA
src_repo: NA
tag_prefix: NA
seperator: NA

BIN
urlgrabber-4.0.0.tar.gz Normal file

Binary file not shown.