1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
From e87972d4ae499d7049338ddb0d5009b6527a93dc Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Mon, 8 Feb 2021 22:24:33 -0500
Subject: [PATCH] Disable apt_pkg support
---
lib/debian/deb822.py | 4 +--
lib/debian/tests/test_deb822.py | 58 ---------------------------------
2 files changed, 2 insertions(+), 60 deletions(-)
diff --git a/lib/debian/deb822.py b/lib/debian/deb822.py
index 46cf81a..158033f 100644
--- a/lib/debian/deb822.py
+++ b/lib/debian/deb822.py
@@ -2286,7 +2286,7 @@ class Sources(Dsc, _PkgRelationMixin):
def iter_paragraphs(cls,
sequence, # type: InputDataType
fields=None, # type: Optional[List[str]]
- use_apt_pkg=True, # type: bool
+ use_apt_pkg=False, # type: bool
shared_storage=False, # type: bool
encoding="utf-8", # type: str
strict=None, # type: Optional[Dict[str, bool]]
@@ -2328,7 +2328,7 @@ class Packages(Deb822, _PkgRelationMixin, _VersionAccessorMixin):
def iter_paragraphs(cls,
sequence, # type: InputDataType
fields=None, # type: Optional[List[str]]
- use_apt_pkg=True, # type: bool
+ use_apt_pkg=False, # type: bool
shared_storage=False, # type: bool
encoding="utf-8", # type: str
strict=None, # type: Optional[Dict[str, bool]]
diff --git a/lib/debian/tests/test_deb822.py b/lib/debian/tests/test_deb822.py
index f386391..7fb11fa 100755
--- a/lib/debian/tests/test_deb822.py
+++ b/lib/debian/tests/test_deb822.py
@@ -42,8 +42,6 @@ else:
from StringIO import StringIO
BytesIO = StringIO
-import apt_pkg
-
from debian import deb822
from debian.debian_support import Version
@@ -541,11 +539,6 @@ with open("test_deb822.pickle", "wb") as fh:
for d in deb822.Deb822.iter_paragraphs(text, use_apt_pkg=False):
self.assertWellParsed(d, PARSED_PACKAGE)
- with self.assertWarns(UserWarning):
- # The StringIO is not a real file so this will raise a warning
- for d in deb822.Deb822.iter_paragraphs(text, use_apt_pkg=True):
- self.assertWellParsed(d, PARSED_PACKAGE)
-
def test_iter_paragraphs_file(self):
# type: () -> None
text = StringIO()
@@ -564,10 +557,6 @@ with open("test_deb822.pickle", "wb") as fh:
for d in deb822.Deb822.iter_paragraphs(fh, use_apt_pkg=False):
self.assertWellParsed(d, PARSED_PACKAGE)
- fh.seek(0)
- for d in deb822.Deb822.iter_paragraphs(fh, use_apt_pkg=True):
- self.assertWellParsed(d, PARSED_PACKAGE)
-
def test_iter_paragraphs_with_gpg(self):
# type: () -> None
@@ -640,12 +629,7 @@ with open("test_deb822.pickle", "wb") as fh:
test_count(deb822.Deb822.iter_paragraphs, 2)
test_count(deb822.Deb822.iter_paragraphs, 2, use_apt_pkg=False)
- # apt_pkg used, should not split
- test_count(deb822.Deb822.iter_paragraphs, 1, use_apt_pkg=True)
-
# Specialised iter_paragraphs force use of apt_pkg and don't split
- test_count(deb822.Packages.iter_paragraphs, 1, use_apt_pkg=True)
- test_count(deb822.Sources.iter_paragraphs, 1, use_apt_pkg=True)
test_count(deb822.Packages.iter_paragraphs, 1, use_apt_pkg=False)
test_count(deb822.Sources.iter_paragraphs, 1, use_apt_pkg=False)
@@ -692,32 +676,12 @@ with open("test_deb822.pickle", "wb") as fh:
s.write(b"\n")
self.assertEqual(s.getvalue(), packages_content)
- def test_iter_paragraphs_apt_shared_storage_packages(self):
- # type: () -> None
- self._test_iter_paragraphs(find_test_file("test_Packages"),
- deb822.Packages,
- use_apt_pkg=True, shared_storage=True)
- def test_iter_paragraphs_apt_no_shared_storage_packages(self):
- # type: () -> None
- self._test_iter_paragraphs(find_test_file("test_Packages"),
- deb822.Packages,
- use_apt_pkg=True, shared_storage=False)
def test_iter_paragraphs_no_apt_no_shared_storage_packages(self):
# type: () -> None
self._test_iter_paragraphs(find_test_file("test_Packages"),
deb822.Packages,
use_apt_pkg=False, shared_storage=False)
- def test_iter_paragraphs_apt_shared_storage_sources(self):
- # type: () -> None
- self._test_iter_paragraphs(find_test_file("test_Sources"),
- deb822.Sources,
- use_apt_pkg=True, shared_storage=True)
- def test_iter_paragraphs_apt_no_shared_storage_sources(self):
- # type: () -> None
- self._test_iter_paragraphs(find_test_file("test_Sources"),
- deb822.Sources,
- use_apt_pkg=True, shared_storage=False)
def test_iter_paragraphs_no_apt_no_shared_storage_sources(self):
# type: () -> None
self._test_iter_paragraphs(find_test_file("test_Sources"),
@@ -1091,28 +1055,6 @@ Description: python modules to work with Debian-related data formats
self.assertWellParsed(paragraphs[i],
PARSED_PARAGRAPHS_WITH_COMMENTS[i])
- def test_iter_paragraphs_comments_use_apt_pkg(self):
- # type: () -> None
- """ apt_pkg does not support comments within multiline fields
-
- This test checks that a file with comments inside multiline fields
- generates an error from the apt_pkg parser.
-
- See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=750247#35
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=807351
- """
- try:
- fd, filename = tempfile.mkstemp()
- fp = os.fdopen(fd, 'wb')
- fp.write(UNPARSED_PARAGRAPHS_WITH_COMMENTS.encode('utf-8'))
- fp.close()
-
- with open_utf8(filename) as fh:
- with self.assertRaises(apt_pkg.Error):
- list(deb822.Deb822.iter_paragraphs(fh, use_apt_pkg=True))
- finally:
- os.remove(filename)
-
def test_iter_paragraphs_comments_native(self):
# type: () -> None
paragraphs = list(deb822.Deb822.iter_paragraphs(
--
2.30.0
|