Merge lp:~jelmer/bzr-builddeb/multiple-upstream-tarballs-pt5 into lp:bzr-builddeb
- multiple-upstream-tarballs-pt5
- Merge into trunk
Proposed by
Jelmer Vernooij
Status: | Merged |
---|---|
Approved by: | James Westby |
Approved revision: | 587 |
Merged at revision: | 581 |
Proposed branch: | lp:~jelmer/bzr-builddeb/multiple-upstream-tarballs-pt5 |
Merge into: | lp:bzr-builddeb |
Diff against target: |
922 lines (+198/-180) 11 files modified
cmds.py (+2/-2) dh_make.py (+1/-1) import_dsc.py (+48/-60) tests/test_import_dsc.py (+12/-12) tests/test_merge_package.py (+4/-4) tests/test_upstream.py (+35/-30) tests/test_util.py (+8/-6) upstream/__init__.py (+16/-15) upstream/branch.py (+2/-2) upstream/pristinetar.py (+64/-45) util.py (+6/-3) |
To merge this branch: | bzr merge lp:~jelmer/bzr-builddeb/multiple-upstream-tarballs-pt5 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
James Westby | Approve | ||
Review via email: mp+65955@code.launchpad.net |
Commit message
Description of the change
More work on support for multiple upstream tarballs.
Rename fetch_tarball -> fetch_tarballs as it can fetch multiple tarballs.
Some refactoring in import_dsc:
* Remove has_upstream_
* Pull some duplicate code into can_pull_
Pass component further down in some more places, including tarball_filename.
To post a comment you must log in.
Revision history for this message
James Westby (james-w) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'cmds.py' | |||
2 | --- cmds.py 2011-06-24 10:51:46 +0000 | |||
3 | +++ cmds.py 2011-06-27 10:36:00 +0000 | |||
4 | @@ -577,7 +577,7 @@ | |||
5 | 577 | if v3: | 577 | if v3: |
6 | 578 | if location.endswith(".tar.bz2") or location.endswith(".tbz2"): | 578 | if location.endswith(".tar.bz2") or location.endswith(".tbz2"): |
7 | 579 | format = "bz2" | 579 | format = "bz2" |
9 | 580 | dest_name = tarball_name(package, version, format=format) | 580 | dest_name = tarball_name(package, version, None, format=format) |
10 | 581 | tarball_filename = os.path.join(orig_dir, dest_name) | 581 | tarball_filename = os.path.join(orig_dir, dest_name) |
11 | 582 | try: | 582 | try: |
12 | 583 | repack_tarball(location, dest_name, target_dir=orig_dir, | 583 | repack_tarball(location, dest_name, target_dir=orig_dir, |
13 | @@ -745,7 +745,7 @@ | |||
14 | 745 | (version, upstream_branch_source)) | 745 | (version, upstream_branch_source)) |
15 | 746 | if need_upstream_tarball: | 746 | if need_upstream_tarball: |
16 | 747 | target_dir = tempfile.mkdtemp() # FIXME: Cleanup? | 747 | target_dir = tempfile.mkdtemp() # FIXME: Cleanup? |
18 | 748 | locations = primary_upstream_source.fetch_tarball( | 748 | locations = primary_upstream_source.fetch_tarballs( |
19 | 749 | package, version, target_dir) | 749 | package, version, target_dir) |
20 | 750 | source_format = get_source_format(tree) | 750 | source_format = get_source_format(tree) |
21 | 751 | v3 = (source_format in [ | 751 | v3 = (source_format in [ |
22 | 752 | 752 | ||
23 | === modified file 'dh_make.py' | |||
24 | --- dh_make.py 2011-06-23 10:29:54 +0000 | |||
25 | +++ dh_make.py 2011-06-27 10:36:00 +0000 | |||
26 | @@ -62,7 +62,7 @@ | |||
27 | 62 | if use_v3: | 62 | if use_v3: |
28 | 63 | if tarball.endswith(".tar.bz2") or tarball.endswith(".tbz2"): | 63 | if tarball.endswith(".tar.bz2") or tarball.endswith(".tbz2"): |
29 | 64 | format = "bz2" | 64 | format = "bz2" |
31 | 65 | dest_name = util.tarball_name(package_name, version, format=format) | 65 | dest_name = util.tarball_name(package_name, version, None, format=format) |
32 | 66 | trace.note("Fetching tarball") | 66 | trace.note("Fetching tarball") |
33 | 67 | repack_tarball(tarball, dest_name, target_dir=orig_dir, | 67 | repack_tarball(tarball, dest_name, target_dir=orig_dir, |
34 | 68 | force_gz=not use_v3) | 68 | force_gz=not use_v3) |
35 | 69 | 69 | ||
36 | === modified file 'import_dsc.py' | |||
37 | --- import_dsc.py 2011-06-23 21:34:52 +0000 | |||
38 | +++ import_dsc.py 2011-06-27 10:36:00 +0000 | |||
39 | @@ -60,6 +60,7 @@ | |||
40 | 60 | 60 | ||
41 | 61 | from bzrlib.plugins.builddeb.bzrtools_import import import_dir | 61 | from bzrlib.plugins.builddeb.bzrtools_import import import_dir |
42 | 62 | from bzrlib.plugins.builddeb.errors import ( | 62 | from bzrlib.plugins.builddeb.errors import ( |
43 | 63 | PackageVersionNotPresent, | ||
44 | 63 | UpstreamAlreadyImported, | 64 | UpstreamAlreadyImported, |
45 | 64 | UpstreamBranchAlreadyMerged, | 65 | UpstreamBranchAlreadyMerged, |
46 | 65 | ) | 66 | ) |
47 | @@ -321,23 +322,6 @@ | |||
48 | 321 | return True | 322 | return True |
49 | 322 | return False | 323 | return False |
50 | 323 | 324 | ||
51 | 324 | def has_upstream_version(self, package, version, tarballs=None): | ||
52 | 325 | """Whether this branch contains the upstream version specified. | ||
53 | 326 | |||
54 | 327 | The version must be judged present by having the appropriate tag | ||
55 | 328 | in the upstream branch. If the md5 argument is not None then the | ||
56 | 329 | string passed must the the md5sum that is associated with the | ||
57 | 330 | revision pointed to by the tag. | ||
58 | 331 | |||
59 | 332 | :param version: a upstream version number to look for in the upstream | ||
60 | 333 | branch. | ||
61 | 334 | :param tarballs: list of upstream tarballs that should be present, | ||
62 | 335 | tuples of filename and md5sum | ||
63 | 336 | :return: True if the upstream branch contains the specified upstream | ||
64 | 337 | version of the package. False otherwise. | ||
65 | 338 | """ | ||
66 | 339 | return self.pristine_upstream_source.has_version(package, version, tarballs) | ||
67 | 340 | |||
68 | 341 | def contained_versions(self, versions): | 325 | def contained_versions(self, versions): |
69 | 342 | """Splits a list of versions depending on presence in the branch. | 326 | """Splits a list of versions depending on presence in the branch. |
70 | 343 | 327 | ||
71 | @@ -574,6 +558,35 @@ | |||
72 | 574 | finally: | 558 | finally: |
73 | 575 | self.branch.unlock() | 559 | self.branch.unlock() |
74 | 576 | 560 | ||
75 | 561 | def can_pull_upstream_from_branch(self, branch, package, version, | ||
76 | 562 | upstream_tarballs=None): | ||
77 | 563 | """Check if a version can be pulled from another branch into this one. | ||
78 | 564 | |||
79 | 565 | :param branch: Branch with upstream version | ||
80 | 566 | :param package: Package name | ||
81 | 567 | :param version: Package version | ||
82 | 568 | :param upstream_tarballs: Required upstream tarballs (optional) | ||
83 | 569 | """ | ||
84 | 570 | if not branch.pristine_upstream_source.has_version(package, version, | ||
85 | 571 | tarballs=upstream_tarballs): | ||
86 | 572 | return False | ||
87 | 573 | |||
88 | 574 | up_branch = self.pristine_upstream_branch | ||
89 | 575 | up_branch.lock_read() | ||
90 | 576 | try: | ||
91 | 577 | # Check that they haven't diverged | ||
92 | 578 | other_up_branch = branch.pristine_upstream_branch | ||
93 | 579 | other_up_branch.lock_read() | ||
94 | 580 | try: | ||
95 | 581 | graph = other_up_branch.repository.get_graph( | ||
96 | 582 | up_branch.repository) | ||
97 | 583 | return graph.is_ancestor(up_branch.last_revision(), | ||
98 | 584 | branch.revid_of_upstream_version(package, version)) | ||
99 | 585 | finally: | ||
100 | 586 | other_up_branch.unlock() | ||
101 | 587 | finally: | ||
102 | 588 | up_branch.unlock() | ||
103 | 589 | |||
104 | 577 | def branch_to_pull_upstream_from(self, package, version, upstream_tarballs): | 590 | def branch_to_pull_upstream_from(self, package, version, upstream_tarballs): |
105 | 578 | """Checks whether this upstream is a pull from a lesser branch. | 591 | """Checks whether this upstream is a pull from a lesser branch. |
106 | 579 | 592 | ||
107 | @@ -591,40 +604,15 @@ | |||
108 | 591 | if that is what should be done, otherwise None. | 604 | if that is what should be done, otherwise None. |
109 | 592 | """ | 605 | """ |
110 | 593 | assert isinstance(version, str) | 606 | assert isinstance(version, str) |
145 | 594 | up_branch = self.pristine_upstream_branch | 607 | for branch in reversed(self.get_lesser_branches()): |
146 | 595 | up_branch.lock_read() | 608 | if self.can_pull_upstream_from_branch(branch, package, version, |
147 | 596 | try: | 609 | upstream_tarballs): |
148 | 597 | for branch in reversed(self.get_lesser_branches()): | 610 | return branch |
149 | 598 | if branch.has_upstream_version(package, version, | 611 | for branch in self.get_greater_branches(): |
150 | 599 | tarballs=upstream_tarballs): | 612 | if self.can_pull_upstream_from_branch(branch, package, version, |
151 | 600 | # Check that they haven't diverged | 613 | upstream_tarballs): |
152 | 601 | other_up_branch = branch.pristine_upstream_branch | 614 | return branch |
153 | 602 | other_up_branch.lock_read() | 615 | return None |
120 | 603 | try: | ||
121 | 604 | graph = other_up_branch.repository.get_graph( | ||
122 | 605 | up_branch.repository) | ||
123 | 606 | if graph.is_ancestor(up_branch.last_revision(), | ||
124 | 607 | branch.revid_of_upstream_version(package, version)): | ||
125 | 608 | return branch | ||
126 | 609 | finally: | ||
127 | 610 | other_up_branch.unlock() | ||
128 | 611 | for branch in self.get_greater_branches(): | ||
129 | 612 | if branch.has_upstream_version(package, version, | ||
130 | 613 | tarballs=upstream_tarballs): | ||
131 | 614 | # Check that they haven't diverged | ||
132 | 615 | other_up_branch = branch.pristine_upstream_branch | ||
133 | 616 | other_up_branch.lock_read() | ||
134 | 617 | try: | ||
135 | 618 | graph = other_up_branch.repository.get_graph( | ||
136 | 619 | up_branch.repository) | ||
137 | 620 | if graph.is_ancestor(up_branch.last_revision(), | ||
138 | 621 | branch.revid_of_upstream_version(package, version)): | ||
139 | 622 | return branch | ||
140 | 623 | finally: | ||
141 | 624 | other_up_branch.unlock() | ||
142 | 625 | return None | ||
143 | 626 | finally: | ||
144 | 627 | up_branch.unlock() | ||
154 | 628 | 616 | ||
155 | 629 | def get_parents(self, versions): | 617 | def get_parents(self, versions): |
156 | 630 | """Return the list of parents for a specific version. | 618 | """Return the list of parents for a specific version. |
157 | @@ -710,10 +698,9 @@ | |||
158 | 710 | pull_revision = pull_branch.revid_of_upstream_version(package, version) | 698 | pull_revision = pull_branch.revid_of_upstream_version(package, version) |
159 | 711 | mutter("Pulling upstream part of %s from revision %s" % \ | 699 | mutter("Pulling upstream part of %s from revision %s" % \ |
160 | 712 | (version, pull_revision)) | 700 | (version, pull_revision)) |
161 | 713 | up_pull_branch = pull_branch.pristine_upstream_branch | ||
162 | 714 | assert self.pristine_upstream_tree is not None, \ | 701 | assert self.pristine_upstream_tree is not None, \ |
163 | 715 | "Can't pull upstream with no tree" | 702 | "Can't pull upstream with no tree" |
165 | 716 | self.pristine_upstream_tree.pull(up_pull_branch, | 703 | self.pristine_upstream_tree.pull(pull_branch.pristine_upstream_branch, |
166 | 717 | stop_revision=pull_revision) | 704 | stop_revision=pull_revision) |
167 | 718 | self.pristine_upstream_source.tag_version(version, pull_revision) | 705 | self.pristine_upstream_source.tag_version(version, pull_revision) |
168 | 719 | self.branch.fetch(self.pristine_upstream_branch, last_revision=pull_revision) | 706 | self.branch.fetch(self.pristine_upstream_branch, last_revision=pull_revision) |
169 | @@ -746,8 +733,8 @@ | |||
170 | 746 | assert self.tree is not None, "Can't pull branch with no tree" | 733 | assert self.tree is not None, "Can't pull branch with no tree" |
171 | 747 | self.tree.pull(pull_branch.branch, stop_revision=pull_revision) | 734 | self.tree.pull(pull_branch.branch, stop_revision=pull_revision) |
172 | 748 | self.tag_version(version, revid=pull_revision) | 735 | self.tag_version(version, revid=pull_revision) |
175 | 749 | if not native and not self.has_upstream_version(package, version.upstream_version): | 736 | if not native and not self.pristine_upstream_source.has_version(package, version.upstream_version): |
176 | 750 | if pull_branch.has_upstream_version(package, version.upstream_version): | 737 | if pull_branch.pristine_upstream_source.has_version(package, version.upstream_version): |
177 | 751 | self.pull_upstream_from_branch(pull_branch, | 738 | self.pull_upstream_from_branch(pull_branch, |
178 | 752 | package, version.upstream_version) | 739 | package, version.upstream_version) |
179 | 753 | else: | 740 | else: |
180 | @@ -1066,7 +1053,7 @@ | |||
181 | 1066 | # upstream as a non-native version (i.e. it wasn't a mistaken | 1053 | # upstream as a non-native version (i.e. it wasn't a mistaken |
182 | 1067 | # native -2 version), then we want to add an extra parent. | 1054 | # native -2 version), then we want to add an extra parent. |
183 | 1068 | if (self.is_version_native(last_contained_version) | 1055 | if (self.is_version_native(last_contained_version) |
185 | 1069 | and not self.has_upstream_version(package, | 1056 | and not self.pristine_upstream_source.has_version(package, |
186 | 1070 | last_contained_version.upstream_version)): | 1057 | last_contained_version.upstream_version)): |
187 | 1071 | revid = self.revid_of_version(last_contained_version) | 1058 | revid = self.revid_of_version(last_contained_version) |
188 | 1072 | parents.append(revid) | 1059 | parents.append(revid) |
189 | @@ -1131,7 +1118,8 @@ | |||
190 | 1131 | # We need to import at least the diff, possibly upstream. | 1118 | # We need to import at least the diff, possibly upstream. |
191 | 1132 | # Work out if we need the upstream part first. | 1119 | # Work out if we need the upstream part first. |
192 | 1133 | imported_upstream = False | 1120 | imported_upstream = False |
194 | 1134 | if not self.pristine_upstream_source.has_version(package, version.upstream_version): | 1121 | if not self.pristine_upstream_source.has_version(package, |
195 | 1122 | version.upstream_version): | ||
196 | 1135 | up_pull_branch = \ | 1123 | up_pull_branch = \ |
197 | 1136 | self.branch_to_pull_upstream_from(package, version.upstream_version, | 1124 | self.branch_to_pull_upstream_from(package, version.upstream_version, |
198 | 1137 | upstream_tarballs) | 1125 | upstream_tarballs) |
199 | @@ -1342,16 +1330,16 @@ | |||
200 | 1342 | def _export_previous_upstream_tree(self, package, previous_version, tempdir): | 1330 | def _export_previous_upstream_tree(self, package, previous_version, tempdir): |
201 | 1343 | assert isinstance(previous_version, str), \ | 1331 | assert isinstance(previous_version, str), \ |
202 | 1344 | "Should pass upstream version as str, not Version." | 1332 | "Should pass upstream version as str, not Version." |
204 | 1345 | if self.pristine_upstream_source.has_version(package, previous_version): | 1333 | try: |
205 | 1346 | upstream_tip = self.pristine_upstream_source.version_as_revision( | 1334 | upstream_tip = self.pristine_upstream_source.version_as_revision( |
206 | 1347 | package, previous_version) | 1335 | package, previous_version) |
209 | 1348 | self.extract_upstream_tree(upstream_tip, tempdir) | 1336 | except PackageVersionNotPresent: |
208 | 1349 | else: | ||
210 | 1350 | raise BzrCommandError("Unable to find the tag for the " | 1337 | raise BzrCommandError("Unable to find the tag for the " |
211 | 1351 | "previous upstream version, %s, in the branch: " | 1338 | "previous upstream version, %s, in the branch: " |
212 | 1352 | "%s" % ( | 1339 | "%s" % ( |
213 | 1353 | previous_version, | 1340 | previous_version, |
214 | 1354 | self.pristine_upstream_source.tag_name(previous_version))) | 1341 | self.pristine_upstream_source.tag_name(previous_version))) |
215 | 1342 | self.extract_upstream_tree(upstream_tip, tempdir) | ||
216 | 1355 | 1343 | ||
217 | 1356 | def merge_upstream(self, tarball_filenames, package, version, previous_version, | 1344 | def merge_upstream(self, tarball_filenames, package, version, previous_version, |
218 | 1357 | upstream_branch=None, upstream_revision=None, merge_type=None, | 1345 | upstream_branch=None, upstream_revision=None, merge_type=None, |
219 | 1358 | 1346 | ||
220 | === modified file 'tests/test_import_dsc.py' | |||
221 | --- tests/test_import_dsc.py 2011-06-23 15:33:44 +0000 | |||
222 | +++ tests/test_import_dsc.py 2011-06-27 10:36:00 +0000 | |||
223 | @@ -168,30 +168,30 @@ | |||
224 | 168 | self.assertFalse(db.has_version(version, self.fake_md5_1)) | 168 | self.assertFalse(db.has_version(version, self.fake_md5_1)) |
225 | 169 | self.assertFalse(db.has_version(version, self.fake_md5_2)) | 169 | self.assertFalse(db.has_version(version, self.fake_md5_2)) |
226 | 170 | 170 | ||
228 | 171 | def test_has_upstream_version(self): | 171 | def test_pristine_upstream_source_has_version(self): |
229 | 172 | db = self.db1 | 172 | db = self.db1 |
230 | 173 | version = "0.1" | 173 | version = "0.1" |
233 | 174 | self.assertFalse(db.has_upstream_version("package", version)) | 174 | self.assertFalse(db.pristine_upstream_source.has_version("package", version)) |
234 | 175 | self.assertFalse(db.has_upstream_version("package", version, | 175 | self.assertFalse(db.pristine_upstream_source.has_version("package", version, |
235 | 176 | [("foo.tar.gz", None, self.fake_md5_1)])) | 176 | [("foo.tar.gz", None, self.fake_md5_1)])) |
236 | 177 | self.do_commit_with_md5(self.up_tree1, "one", self.fake_md5_1) | 177 | self.do_commit_with_md5(self.up_tree1, "one", self.fake_md5_1) |
237 | 178 | db.tag_upstream_version(version) | 178 | db.tag_upstream_version(version) |
240 | 179 | self.assertTrue(db.has_upstream_version("package", version)) | 179 | self.assertTrue(db.pristine_upstream_source.has_version("package", version)) |
241 | 180 | self.assertTrue(db.has_upstream_version("package", | 180 | self.assertTrue(db.pristine_upstream_source.has_version("package", |
242 | 181 | version, [("foo.tar.gz", None, self.fake_md5_1)])) | 181 | version, [("foo.tar.gz", None, self.fake_md5_1)])) |
244 | 182 | self.assertFalse(db.has_upstream_version("package", version, | 182 | self.assertFalse(db.pristine_upstream_source.has_version("package", version, |
245 | 183 | [("foo.tar.gz", None, self.fake_md5_2)])) | 183 | [("foo.tar.gz", None, self.fake_md5_2)])) |
246 | 184 | version = "0.1" | 184 | version = "0.1" |
249 | 185 | self.assertTrue(db.has_upstream_version("package", version)) | 185 | self.assertTrue(db.pristine_upstream_source.has_version("package", version)) |
250 | 186 | self.assertTrue(db.has_upstream_version("package", version, | 186 | self.assertTrue(db.pristine_upstream_source.has_version("package", version, |
251 | 187 | [("foo.tar.gz", None, self.fake_md5_1)])) | 187 | [("foo.tar.gz", None, self.fake_md5_1)])) |
253 | 188 | self.assertFalse(db.has_upstream_version("package", version, | 188 | self.assertFalse(db.pristine_upstream_source.has_version("package", version, |
254 | 189 | [("foo.tar.gz", None, self.fake_md5_2)])) | 189 | [("foo.tar.gz", None, self.fake_md5_2)])) |
255 | 190 | version = "0.2" | 190 | version = "0.2" |
258 | 191 | self.assertFalse(db.has_upstream_version("package", version)) | 191 | self.assertFalse(db.pristine_upstream_source.has_version("package", version)) |
259 | 192 | self.assertFalse(db.has_upstream_version("package", version, | 192 | self.assertFalse(db.pristine_upstream_source.has_version("package", version, |
260 | 193 | [("foo.tar.gz", None, self.fake_md5_1)])) | 193 | [("foo.tar.gz", None, self.fake_md5_1)])) |
262 | 194 | self.assertFalse(db.has_upstream_version("package", version, | 194 | self.assertFalse(db.pristine_upstream_source.has_version("package", version, |
263 | 195 | [("foo.tar.gz", None, self.fake_md5_2)])) | 195 | [("foo.tar.gz", None, self.fake_md5_2)])) |
264 | 196 | 196 | ||
265 | 197 | def test_revid_of_version(self): | 197 | def test_revid_of_version(self): |
266 | 198 | 198 | ||
267 | === modified file 'tests/test_merge_package.py' | |||
268 | --- tests/test_merge_package.py 2011-06-15 10:03:47 +0000 | |||
269 | +++ tests/test_merge_package.py 2011-06-27 10:36:00 +0000 | |||
270 | @@ -120,10 +120,10 @@ | |||
271 | 120 | v3 = "1.2" | 120 | v3 = "1.2" |
272 | 121 | v4 = "1.10" | 121 | v4 = "1.10" |
273 | 122 | db1 = DistributionBranch(ubup.branch, ubup.branch) | 122 | db1 = DistributionBranch(ubup.branch, ubup.branch) |
275 | 123 | self.assertEqual(db1.has_upstream_version("package", v3), True) | 123 | self.assertEqual(db1.pristine_upstream_source.has_version("package", v3), True) |
276 | 124 | # This version is in the diverged debian upstream tree and will | 124 | # This version is in the diverged debian upstream tree and will |
277 | 125 | # hence not be present in the target ubuntu packaging branch. | 125 | # hence not be present in the target ubuntu packaging branch. |
279 | 126 | self.assertEqual(db1.has_upstream_version("package", v4), False) | 126 | self.assertEqual(db1.pristine_upstream_source.has_version("package", v4), False) |
280 | 127 | 127 | ||
281 | 128 | # The ubuntu upstream branch tip. | 128 | # The ubuntu upstream branch tip. |
282 | 129 | ubuu_tip = ubuu.branch.revision_history()[-1] | 129 | ubuu_tip = ubuu.branch.revision_history()[-1] |
283 | @@ -143,11 +143,11 @@ | |||
284 | 143 | 143 | ||
285 | 144 | # Check the versions present in the tree with the fixed ancestry. | 144 | # Check the versions present in the tree with the fixed ancestry. |
286 | 145 | db2 = DistributionBranch(ubup.branch, ubup.branch) | 145 | db2 = DistributionBranch(ubup.branch, ubup.branch) |
288 | 146 | self.assertEqual(db2.has_upstream_version("package", v3), True) | 146 | self.assertEqual(db2.pristine_upstream_source.has_version("package", v3), True) |
289 | 147 | # The ancestry has been fixed and the missing debian upstream | 147 | # The ancestry has been fixed and the missing debian upstream |
290 | 148 | # version should now be present in the target ubuntu packaging | 148 | # version should now be present in the target ubuntu packaging |
291 | 149 | # branch. | 149 | # branch. |
293 | 150 | self.assertEqual(db2.has_upstream_version("package", v4), True) | 150 | self.assertEqual(db2.pristine_upstream_source.has_version("package", v4), True) |
294 | 151 | 151 | ||
295 | 152 | # Now let's take a look at the fixed ubuntu packaging branch. | 152 | # Now let's take a look at the fixed ubuntu packaging branch. |
296 | 153 | ubup_tip_post_fix = ubup.branch.revision_history()[-1] | 153 | ubup_tip_post_fix = ubup.branch.revision_history()[-1] |
297 | 154 | 154 | ||
298 | === modified file 'tests/test_upstream.py' | |||
299 | --- tests/test_upstream.py 2011-06-15 18:44:09 +0000 | |||
300 | +++ tests/test_upstream.py 2011-06-27 10:36:00 +0000 | |||
301 | @@ -164,7 +164,7 @@ | |||
302 | 164 | apt_pkg = MockAptPkg(sources) | 164 | apt_pkg = MockAptPkg(sources) |
303 | 165 | src = AptSource() | 165 | src = AptSource() |
304 | 166 | src._run_apt_source = caller.call | 166 | src._run_apt_source = caller.call |
306 | 167 | self.assertRaises(PackageVersionNotPresent, src.fetch_tarball, | 167 | self.assertRaises(PackageVersionNotPresent, src.fetch_tarballs, |
307 | 168 | "apackage", "0.2", "target", _apt_pkg=apt_pkg) | 168 | "apackage", "0.2", "target", _apt_pkg=apt_pkg) |
308 | 169 | self.assertEqual(1, apt_pkg.init_called_times) | 169 | self.assertEqual(1, apt_pkg.init_called_times) |
309 | 170 | self.assertEqual(1, apt_pkg.get_pkg_source_records_called_times) | 170 | self.assertEqual(1, apt_pkg.get_pkg_source_records_called_times) |
310 | @@ -180,7 +180,7 @@ | |||
311 | 180 | apt_pkg = MockAptPkg(sources) | 180 | apt_pkg = MockAptPkg(sources) |
312 | 181 | src = AptSource() | 181 | src = AptSource() |
313 | 182 | src._run_apt_source = caller.call | 182 | src._run_apt_source = caller.call |
315 | 183 | self.assertRaises(PackageVersionNotPresent, src.fetch_tarball, | 183 | self.assertRaises(PackageVersionNotPresent, src.fetch_tarballs, |
316 | 184 | "apackage", "0.2", "target", _apt_pkg=apt_pkg) | 184 | "apackage", "0.2", "target", _apt_pkg=apt_pkg) |
317 | 185 | self.assertEqual(1, apt_pkg.init_called_times) | 185 | self.assertEqual(1, apt_pkg.init_called_times) |
318 | 186 | self.assertEqual(1, apt_pkg.get_pkg_source_records_called_times) | 186 | self.assertEqual(1, apt_pkg.get_pkg_source_records_called_times) |
319 | @@ -198,7 +198,7 @@ | |||
320 | 198 | apt_pkg = MockAptPkg(sources) | 198 | apt_pkg = MockAptPkg(sources) |
321 | 199 | src = AptSource() | 199 | src = AptSource() |
322 | 200 | src._run_apt_source = caller.call | 200 | src._run_apt_source = caller.call |
324 | 201 | paths = src.fetch_tarball("apackage", "0.2", "target", | 201 | paths = src.fetch_tarballs("apackage", "0.2", "target", |
325 | 202 | _apt_pkg=apt_pkg) | 202 | _apt_pkg=apt_pkg) |
326 | 203 | self.assertEquals(paths, [ | 203 | self.assertEquals(paths, [ |
327 | 204 | "target/apackage_0.2.orig.tar.bz2", | 204 | "target/apackage_0.2.orig.tar.bz2", |
328 | @@ -212,7 +212,7 @@ | |||
329 | 212 | apt_pkg = MockAptPkg(sources) | 212 | apt_pkg = MockAptPkg(sources) |
330 | 213 | src = AptSource() | 213 | src = AptSource() |
331 | 214 | src._run_apt_source = caller.call | 214 | src._run_apt_source = caller.call |
333 | 215 | paths = src.fetch_tarball("apackage", "0.2", "target", | 215 | paths = src.fetch_tarballs("apackage", "0.2", "target", |
334 | 216 | _apt_pkg=apt_pkg) | 216 | _apt_pkg=apt_pkg) |
335 | 217 | self.assertEquals(paths, ["target/apackage_0.2.orig.tar.bz2"]) | 217 | self.assertEquals(paths, ["target/apackage_0.2.orig.tar.bz2"]) |
336 | 218 | 218 | ||
337 | @@ -224,7 +224,7 @@ | |||
338 | 224 | apt_pkg = MockAptPkg(sources) | 224 | apt_pkg = MockAptPkg(sources) |
339 | 225 | src = AptSource() | 225 | src = AptSource() |
340 | 226 | src._run_apt_source = caller.call | 226 | src._run_apt_source = caller.call |
342 | 227 | paths = src.fetch_tarball("apackage", "0.2", "target", | 227 | paths = src.fetch_tarballs("apackage", "0.2", "target", |
343 | 228 | _apt_pkg=apt_pkg) | 228 | _apt_pkg=apt_pkg) |
344 | 229 | self.assertEquals(paths, ["target/apackage_0.2.orig.tar.gz"]) | 229 | self.assertEquals(paths, ["target/apackage_0.2.orig.tar.gz"]) |
345 | 230 | self.assertEqual(1, apt_pkg.init_called_times) | 230 | self.assertEqual(1, apt_pkg.init_called_times) |
346 | @@ -246,7 +246,7 @@ | |||
347 | 246 | apt_pkg = MockAptPkg(sources) | 246 | apt_pkg = MockAptPkg(sources) |
348 | 247 | src = AptSource() | 247 | src = AptSource() |
349 | 248 | src._run_apt_source = caller.call | 248 | src._run_apt_source = caller.call |
351 | 249 | self.assertRaises(PackageVersionNotPresent, src.fetch_tarball, | 249 | self.assertRaises(PackageVersionNotPresent, src.fetch_tarballs, |
352 | 250 | "apackage", "0.2", "target", | 250 | "apackage", "0.2", "target", |
353 | 251 | _apt_pkg=apt_pkg) | 251 | _apt_pkg=apt_pkg) |
354 | 252 | self.assertEqual(1, apt_pkg.init_called_times) | 252 | self.assertEqual(1, apt_pkg.init_called_times) |
355 | @@ -268,7 +268,7 @@ | |||
356 | 268 | apt_pkg = MockAptPkg(sources) | 268 | apt_pkg = MockAptPkg(sources) |
357 | 269 | src = AptSource() | 269 | src = AptSource() |
358 | 270 | src._run_apt_source = caller.call | 270 | src._run_apt_source = caller.call |
360 | 271 | self.assertRaises(PackageVersionNotPresent, src.fetch_tarball, | 271 | self.assertRaises(PackageVersionNotPresent, src.fetch_tarballs, |
361 | 272 | "apackage", "0.2", "target", _apt_pkg=apt_pkg) | 272 | "apackage", "0.2", "target", _apt_pkg=apt_pkg) |
362 | 273 | self.assertEqual(1, apt_pkg.init_called_times) | 273 | self.assertEqual(1, apt_pkg.init_called_times) |
363 | 274 | self.assertEqual(1, apt_pkg.get_pkg_source_records_called_times) | 274 | self.assertEqual(1, apt_pkg.get_pkg_source_records_called_times) |
364 | @@ -288,11 +288,11 @@ | |||
365 | 288 | def get_latest_version(self, package, current_version): | 288 | def get_latest_version(self, package, current_version): |
366 | 289 | return self._latest | 289 | return self._latest |
367 | 290 | 290 | ||
369 | 291 | def fetch_tarball(self, package, version, target_dir): | 291 | def fetch_tarballs(self, package, version, target_dir): |
370 | 292 | self._specific_versions.append((package, version, target_dir)) | 292 | self._specific_versions.append((package, version, target_dir)) |
371 | 293 | if not self._succeed: | 293 | if not self._succeed: |
372 | 294 | raise PackageVersionNotPresent(package, version, self) | 294 | raise PackageVersionNotPresent(package, version, self) |
374 | 295 | return [self._tarball_path(package, version, target_dir)] | 295 | return [self._tarball_path(package, version, None, target_dir)] |
375 | 296 | 296 | ||
376 | 297 | def __repr__(self): | 297 | def __repr__(self): |
377 | 298 | return "%s()" % self.__class__.__name__ | 298 | return "%s()" % self.__class__.__name__ |
378 | @@ -300,12 +300,12 @@ | |||
379 | 300 | 300 | ||
380 | 301 | class StackedUpstreamSourceTests(TestCase): | 301 | class StackedUpstreamSourceTests(TestCase): |
381 | 302 | 302 | ||
383 | 303 | def test_fetch_tarball_first_wins(self): | 303 | def test_fetch_tarballs_first_wins(self): |
384 | 304 | a = RecordingSource(False) | 304 | a = RecordingSource(False) |
385 | 305 | b = RecordingSource(True) | 305 | b = RecordingSource(True) |
386 | 306 | c = RecordingSource(False) | 306 | c = RecordingSource(False) |
387 | 307 | stack = StackedUpstreamSource([a, b, c]) | 307 | stack = StackedUpstreamSource([a, b, c]) |
389 | 308 | stack.fetch_tarball("mypkg", "1.0", "bla") | 308 | stack.fetch_tarballs("mypkg", "1.0", "bla") |
390 | 309 | self.assertEquals([("mypkg", "1.0", "bla")], b._specific_versions) | 309 | self.assertEquals([("mypkg", "1.0", "bla")], b._specific_versions) |
391 | 310 | self.assertEquals([("mypkg", "1.0", "bla")], a._specific_versions) | 310 | self.assertEquals([("mypkg", "1.0", "bla")], a._specific_versions) |
392 | 311 | self.assertEquals([], c._specific_versions) | 311 | self.assertEquals([], c._specific_versions) |
393 | @@ -327,7 +327,7 @@ | |||
394 | 327 | b = RecordingSource(False) | 327 | b = RecordingSource(False) |
395 | 328 | stack = StackedUpstreamSource([a, b]) | 328 | stack = StackedUpstreamSource([a, b]) |
396 | 329 | self.assertRaises(PackageVersionNotPresent, | 329 | self.assertRaises(PackageVersionNotPresent, |
398 | 330 | stack.fetch_tarball, "pkg", "1.0", "bla") | 330 | stack.fetch_tarballs, "pkg", "1.0", "bla") |
399 | 331 | self.assertEquals([("pkg", "1.0", "bla")], b._specific_versions) | 331 | self.assertEquals([("pkg", "1.0", "bla")], b._specific_versions) |
400 | 332 | self.assertEquals([("pkg", "1.0", "bla")], a._specific_versions) | 332 | self.assertEquals([("pkg", "1.0", "bla")], a._specific_versions) |
401 | 333 | 333 | ||
402 | @@ -387,21 +387,21 @@ | |||
403 | 387 | super(UpstreamBranchSourceTests, self).setUp() | 387 | super(UpstreamBranchSourceTests, self).setUp() |
404 | 388 | self.tree = self.make_branch_and_tree('.') | 388 | self.tree = self.make_branch_and_tree('.') |
405 | 389 | 389 | ||
407 | 390 | def test_fetch_tarball(self): | 390 | def test_fetch_tarballs(self): |
408 | 391 | self.tree.commit("msg") | 391 | self.tree.commit("msg") |
409 | 392 | self.tree.branch.tags.set_tag("1.0", self.tree.branch.last_revision()) | 392 | self.tree.branch.tags.set_tag("1.0", self.tree.branch.last_revision()) |
410 | 393 | source = UpstreamBranchSource(self.tree.branch, | 393 | source = UpstreamBranchSource(self.tree.branch, |
411 | 394 | {"1.0": self.tree.branch.last_revision()}) | 394 | {"1.0": self.tree.branch.last_revision()}) |
412 | 395 | os.mkdir("mydir") | 395 | os.mkdir("mydir") |
413 | 396 | self.assertEquals(["mydir/foo_1.0.orig.tar.gz"], | 396 | self.assertEquals(["mydir/foo_1.0.orig.tar.gz"], |
415 | 397 | source.fetch_tarball("foo", "1.0", "mydir")) | 397 | source.fetch_tarballs("foo", "1.0", "mydir")) |
416 | 398 | self.assertPathExists("mydir/foo_1.0.orig.tar.gz") | 398 | self.assertPathExists("mydir/foo_1.0.orig.tar.gz") |
417 | 399 | 399 | ||
419 | 400 | def test_fetch_tarball_not_found(self): | 400 | def test_fetch_tarballs_not_found(self): |
420 | 401 | source = UpstreamBranchSource(self.tree.branch) | 401 | source = UpstreamBranchSource(self.tree.branch) |
421 | 402 | self.tree.commit("msg") | 402 | self.tree.commit("msg") |
422 | 403 | self.assertRaises(PackageVersionNotPresent, | 403 | self.assertRaises(PackageVersionNotPresent, |
424 | 404 | source.fetch_tarball, "foo", "1.0", "mydir") | 404 | source.fetch_tarballs, "foo", "1.0", "mydir") |
425 | 405 | 405 | ||
426 | 406 | def test_get_latest_version(self): | 406 | def test_get_latest_version(self): |
427 | 407 | self.tree.commit("msg") | 407 | self.tree.commit("msg") |
428 | @@ -452,7 +452,7 @@ | |||
429 | 452 | super(LazyUpstreamBranchSourceTests, self).setUp() | 452 | super(LazyUpstreamBranchSourceTests, self).setUp() |
430 | 453 | self.tree = self.make_branch_and_tree('.') | 453 | self.tree = self.make_branch_and_tree('.') |
431 | 454 | 454 | ||
433 | 455 | def test_fetch_tarball(self): | 455 | def test_fetch_tarballs(self): |
434 | 456 | self.tree.commit("msg") | 456 | self.tree.commit("msg") |
435 | 457 | self.tree.branch.tags.set_tag("1.0", self.tree.branch.last_revision()) | 457 | self.tree.branch.tags.set_tag("1.0", self.tree.branch.last_revision()) |
436 | 458 | source = LazyUpstreamBranchSource(self.tree.branch.base, | 458 | source = LazyUpstreamBranchSource(self.tree.branch.base, |
437 | @@ -460,16 +460,16 @@ | |||
438 | 460 | self.assertIs(None, source._upstream_branch) | 460 | self.assertIs(None, source._upstream_branch) |
439 | 461 | os.mkdir("mydir") | 461 | os.mkdir("mydir") |
440 | 462 | self.assertEquals(["mydir/foo_1.0.orig.tar.gz"], | 462 | self.assertEquals(["mydir/foo_1.0.orig.tar.gz"], |
442 | 463 | source.fetch_tarball("foo", "1.0", "mydir")) | 463 | source.fetch_tarballs("foo", "1.0", "mydir")) |
443 | 464 | self.assertPathExists("mydir/foo_1.0.orig.tar.gz") | 464 | self.assertPathExists("mydir/foo_1.0.orig.tar.gz") |
444 | 465 | self.assertIsNot(None, source._upstream_branch) | 465 | self.assertIsNot(None, source._upstream_branch) |
445 | 466 | 466 | ||
447 | 467 | def test_fetch_tarball_not_found(self): | 467 | def test_fetch_tarballs_not_found(self): |
448 | 468 | source = LazyUpstreamBranchSource(self.tree.branch.base) | 468 | source = LazyUpstreamBranchSource(self.tree.branch.base) |
449 | 469 | self.assertIs(None, source._upstream_branch) | 469 | self.assertIs(None, source._upstream_branch) |
450 | 470 | self.tree.commit("msg") | 470 | self.tree.commit("msg") |
451 | 471 | self.assertRaises(PackageVersionNotPresent, | 471 | self.assertRaises(PackageVersionNotPresent, |
453 | 472 | source.fetch_tarball, "foo", "1.0", "mydir") | 472 | source.fetch_tarballs, "foo", "1.0", "mydir") |
454 | 473 | self.assertIsNot(None, source._upstream_branch) | 473 | self.assertIsNot(None, source._upstream_branch) |
455 | 474 | 474 | ||
456 | 475 | def test_get_latest_version(self): | 475 | def test_get_latest_version(self): |
457 | @@ -675,13 +675,18 @@ | |||
458 | 675 | "upstream-" + upstream_v_no) | 675 | "upstream-" + upstream_v_no) |
459 | 676 | 676 | ||
460 | 677 | def test_tag_name_distro(self): | 677 | def test_tag_name_distro(self): |
462 | 678 | self.assertEquals(self.source.tag_name("0.3", "ubuntu"), | 678 | self.assertEquals(self.source.tag_name("0.3", distro="ubuntu"), |
463 | 679 | "upstream-ubuntu-0.3") | 679 | "upstream-ubuntu-0.3") |
464 | 680 | 680 | ||
465 | 681 | def test_version(self): | 681 | def test_version(self): |
466 | 682 | self.assertEquals(['upstream-3.3', 'upstream-debian-3.3', | 682 | self.assertEquals(['upstream-3.3', 'upstream-debian-3.3', |
467 | 683 | 'upstream-ubuntu-3.3', 'upstream/3.3'], | 683 | 'upstream-ubuntu-3.3', 'upstream/3.3'], |
469 | 684 | self.source.possible_tag_names("3.3")) | 684 | self.source.possible_tag_names("3.3", component=None)) |
470 | 685 | |||
471 | 686 | def test_version_component(self): | ||
472 | 687 | self.assertEquals(['upstream-3.3/extlib', 'upstream-debian-3.3/extlib', | ||
473 | 688 | 'upstream-ubuntu-3.3/extlib'], | ||
474 | 689 | self.source.possible_tag_names("3.3", component="extlib")) | ||
475 | 685 | 690 | ||
476 | 686 | def test_pristine_tar_format_gz(self): | 691 | def test_pristine_tar_format_gz(self): |
477 | 687 | rev = Revision("myrevid") | 692 | rev = Revision("myrevid") |
478 | @@ -734,30 +739,30 @@ | |||
479 | 734 | source = TarfileSource("foo-1.0.tar.gz") | 739 | source = TarfileSource("foo-1.0.tar.gz") |
480 | 735 | self.assertEquals("1.0", source.get_latest_version("foo", "0.9")) | 740 | self.assertEquals("1.0", source.get_latest_version("foo", "0.9")) |
481 | 736 | 741 | ||
483 | 737 | def test_fetch_tarball(self): | 742 | def test_fetch_tarballs(self): |
484 | 738 | source = TarfileSource("foo-1.0.tar.gz", "1.0") | 743 | source = TarfileSource("foo-1.0.tar.gz", "1.0") |
485 | 739 | os.mkdir("bar") | 744 | os.mkdir("bar") |
486 | 740 | self.assertEquals(["bar/foo_1.0.orig.tar.gz"], | 745 | self.assertEquals(["bar/foo_1.0.orig.tar.gz"], |
488 | 741 | source.fetch_tarball("foo", "1.0", "bar")) | 746 | source.fetch_tarballs("foo", "1.0", "bar")) |
489 | 742 | self.assertPathExists("bar/foo_1.0.orig.tar.gz") | 747 | self.assertPathExists("bar/foo_1.0.orig.tar.gz") |
490 | 743 | 748 | ||
492 | 744 | def test_fetch_tarball_repack(self): | 749 | def test_fetch_tarballs_repack(self): |
493 | 745 | zf = zipfile.ZipFile("bla-2.0.zip", "w") | 750 | zf = zipfile.ZipFile("bla-2.0.zip", "w") |
494 | 746 | zf.writestr('avoid', 'empty zip to make the repacker happy\n') | 751 | zf.writestr('avoid', 'empty zip to make the repacker happy\n') |
495 | 747 | zf.close() | 752 | zf.close() |
496 | 748 | source = TarfileSource("bla-2.0.zip", "2.0") | 753 | source = TarfileSource("bla-2.0.zip", "2.0") |
497 | 749 | os.mkdir("bar") | 754 | os.mkdir("bar") |
498 | 750 | self.assertEquals(["bar/foo_2.0.orig.tar.gz"], | 755 | self.assertEquals(["bar/foo_2.0.orig.tar.gz"], |
500 | 751 | source.fetch_tarball("foo", "2.0", "bar")) | 756 | source.fetch_tarballs("foo", "2.0", "bar")) |
501 | 752 | self.assertPathExists("bar/foo_2.0.orig.tar.gz") | 757 | self.assertPathExists("bar/foo_2.0.orig.tar.gz") |
502 | 753 | 758 | ||
504 | 754 | def test_fetch_tarball_not_present(self): | 759 | def test_fetch_tarballs_not_present(self): |
505 | 755 | source = TarfileSource("foo-1.0.tar.gz", "1.0") | 760 | source = TarfileSource("foo-1.0.tar.gz", "1.0") |
506 | 756 | os.mkdir("bar") | 761 | os.mkdir("bar") |
507 | 757 | self.assertRaises(PackageVersionNotPresent, | 762 | self.assertRaises(PackageVersionNotPresent, |
509 | 758 | source.fetch_tarball, "foo", "0.9", "bar") | 763 | source.fetch_tarballs, "foo", "0.9", "bar") |
510 | 759 | 764 | ||
512 | 760 | def test_fetch_tarball_bz2(self): | 765 | def test_fetch_tarballs_bz2(self): |
513 | 761 | tar = tarfile.open("foo-1.0.tar.bz2", "w:bz2") | 766 | tar = tarfile.open("foo-1.0.tar.bz2", "w:bz2") |
514 | 762 | tar.close() | 767 | tar.close() |
515 | 763 | # verify this is a bzip2 file | 768 | # verify this is a bzip2 file |
516 | @@ -765,7 +770,7 @@ | |||
517 | 765 | source = TarfileSource("foo-1.0.tar.bz2", "1.0") | 770 | source = TarfileSource("foo-1.0.tar.bz2", "1.0") |
518 | 766 | os.mkdir("bar") | 771 | os.mkdir("bar") |
519 | 767 | self.assertEquals(["bar/foo_1.0.orig.tar.gz"], | 772 | self.assertEquals(["bar/foo_1.0.orig.tar.gz"], |
521 | 768 | source.fetch_tarball("foo", "1.0", "bar")) | 773 | source.fetch_tarballs("foo", "1.0", "bar")) |
522 | 769 | self.assertPathExists("bar/foo_1.0.orig.tar.gz") | 774 | self.assertPathExists("bar/foo_1.0.orig.tar.gz") |
523 | 770 | gzip.open("bar/foo_1.0.orig.tar.gz").close() | 775 | gzip.open("bar/foo_1.0.orig.tar.gz").close() |
524 | 771 | 776 | ||
525 | 772 | 777 | ||
526 | === modified file 'tests/test_util.py' | |||
527 | --- tests/test_util.py 2011-06-16 11:11:36 +0000 | |||
528 | +++ tests/test_util.py 2011-06-27 10:36:00 +0000 | |||
529 | @@ -271,14 +271,16 @@ | |||
530 | 271 | class TarballNameTests(TestCase): | 271 | class TarballNameTests(TestCase): |
531 | 272 | 272 | ||
532 | 273 | def test_tarball_name(self): | 273 | def test_tarball_name(self): |
538 | 274 | self.assertEqual(tarball_name("package", "0.1"), | 274 | self.assertEqual(tarball_name("package", "0.1", None), |
539 | 275 | "package_0.1.orig.tar.gz") | 275 | "package_0.1.orig.tar.gz") |
540 | 276 | self.assertEqual(tarball_name("package", Version("0.1")), | 276 | self.assertEqual(tarball_name("package", Version("0.1"), None), |
541 | 277 | "package_0.1.orig.tar.gz") | 277 | "package_0.1.orig.tar.gz") |
542 | 278 | self.assertEqual(tarball_name("package", Version("0.1"), | 278 | self.assertEqual(tarball_name("package", Version("0.1"), None, |
543 | 279 | format='bz2'), "package_0.1.orig.tar.bz2") | 279 | format='bz2'), "package_0.1.orig.tar.bz2") |
545 | 280 | self.assertEqual(tarball_name("package", Version("0.1"), | 280 | self.assertEqual(tarball_name("package", Version("0.1"), None, |
546 | 281 | format='lzma'), "package_0.1.orig.tar.lzma") | 281 | format='lzma'), "package_0.1.orig.tar.lzma") |
547 | 282 | self.assertEqual(tarball_name("package", Version("0.1"), "la", | ||
548 | 283 | format='lzma'), "package_0.1.orig-la.tar.lzma") | ||
549 | 282 | 284 | ||
550 | 283 | 285 | ||
551 | 284 | class SuiteToDistributionTests(TestCase): | 286 | class SuiteToDistributionTests(TestCase): |
552 | 285 | 287 | ||
553 | === modified file 'upstream/__init__.py' | |||
554 | --- upstream/__init__.py 2011-06-17 01:37:55 +0000 | |||
555 | +++ upstream/__init__.py 2011-06-27 10:36:00 +0000 | |||
556 | @@ -81,7 +81,7 @@ | |||
557 | 81 | """ | 81 | """ |
558 | 82 | raise NotImplementedError(self.has_version) | 82 | raise NotImplementedError(self.has_version) |
559 | 83 | 83 | ||
561 | 84 | def fetch_tarball(self, package, version, target_dir): | 84 | def fetch_tarballs(self, package, version, target_dir): |
562 | 85 | """Fetch the source tarball for a particular version. | 85 | """Fetch the source tarball for a particular version. |
563 | 86 | 86 | ||
564 | 87 | :param package: Name of the package | 87 | :param package: Name of the package |
565 | @@ -89,17 +89,17 @@ | |||
566 | 89 | :param target_dir: Directory in which to store the tarball | 89 | :param target_dir: Directory in which to store the tarball |
567 | 90 | :return: Paths of the fetched tarballs | 90 | :return: Paths of the fetched tarballs |
568 | 91 | """ | 91 | """ |
570 | 92 | raise NotImplementedError(self.fetch_tarball) | 92 | raise NotImplementedError(self.fetch_tarballs) |
571 | 93 | 93 | ||
574 | 94 | def _tarball_path(self, package, version, target_dir, format=None): | 94 | def _tarball_path(self, package, version, component, target_dir, format=None): |
575 | 95 | return os.path.join(target_dir, tarball_name(package, version, | 95 | return os.path.join(target_dir, tarball_name(package, version, component, |
576 | 96 | format=format)) | 96 | format=format)) |
577 | 97 | 97 | ||
578 | 98 | 98 | ||
579 | 99 | class AptSource(UpstreamSource): | 99 | class AptSource(UpstreamSource): |
580 | 100 | """Upstream source that uses apt-source.""" | 100 | """Upstream source that uses apt-source.""" |
581 | 101 | 101 | ||
583 | 102 | def fetch_tarball(self, package, upstream_version, target_dir, | 102 | def fetch_tarballs(self, package, upstream_version, target_dir, |
584 | 103 | _apt_pkg=None): | 103 | _apt_pkg=None): |
585 | 104 | if _apt_pkg is None: | 104 | if _apt_pkg is None: |
586 | 105 | import apt_pkg | 105 | import apt_pkg |
587 | @@ -184,7 +184,7 @@ | |||
588 | 184 | note("get-orig-source did not create file with prefix %s", prefix) | 184 | note("get-orig-source did not create file with prefix %s", prefix) |
589 | 185 | return None | 185 | return None |
590 | 186 | 186 | ||
592 | 187 | def fetch_tarball(self, package, version, target_dir): | 187 | def fetch_tarballs(self, package, version, target_dir): |
593 | 188 | if self.larstiq: | 188 | if self.larstiq: |
594 | 189 | rules_name = 'rules' | 189 | rules_name = 'rules' |
595 | 190 | else: | 190 | else: |
596 | @@ -266,7 +266,7 @@ | |||
597 | 266 | os.unlink(tempfilename) | 266 | os.unlink(tempfilename) |
598 | 267 | return self._xml_report_extract_upstream_version(stdout) | 267 | return self._xml_report_extract_upstream_version(stdout) |
599 | 268 | 268 | ||
601 | 269 | def fetch_tarball(self, package, version, target_dir): | 269 | def fetch_tarballs(self, package, version, target_dir): |
602 | 270 | note("Using uscan to look for the upstream tarball.") | 270 | note("Using uscan to look for the upstream tarball.") |
603 | 271 | try: | 271 | try: |
604 | 272 | tempfilename = self._export_watchfile() | 272 | tempfilename = self._export_watchfile() |
605 | @@ -285,7 +285,8 @@ | |||
606 | 285 | if r != 0: | 285 | if r != 0: |
607 | 286 | note("uscan could not find the needed tarball.") | 286 | note("uscan could not find the needed tarball.") |
608 | 287 | raise PackageVersionNotPresent(package, version, self) | 287 | raise PackageVersionNotPresent(package, version, self) |
610 | 288 | return [self._tarball_path(package, version, target_dir)] | 288 | # FIXME: What about the other component tarballs? |
611 | 289 | return [self._tarball_path(package, version, None, target_dir)] | ||
612 | 289 | 290 | ||
613 | 290 | 291 | ||
614 | 291 | class SelfSplitSource(UpstreamSource): | 292 | class SelfSplitSource(UpstreamSource): |
615 | @@ -308,10 +309,10 @@ | |||
616 | 308 | finally: | 309 | finally: |
617 | 309 | shutil.rmtree(tmpdir) | 310 | shutil.rmtree(tmpdir) |
618 | 310 | 311 | ||
620 | 311 | def fetch_tarball(self, package, version, target_dir): | 312 | def fetch_tarballs(self, package, version, target_dir): |
621 | 312 | note("Using the current branch without the 'debian' directory " | 313 | note("Using the current branch without the 'debian' directory " |
622 | 313 | "to create the tarball") | 314 | "to create the tarball") |
624 | 314 | tarball_path = self._tarball_path(package, version, target_dir) | 315 | tarball_path = self._tarball_path(package, version, None, target_dir) |
625 | 315 | self._split(package, version, tarball_path) | 316 | self._split(package, version, tarball_path) |
626 | 316 | return [tarball_path] | 317 | return [tarball_path] |
627 | 317 | 318 | ||
628 | @@ -328,10 +329,10 @@ | |||
629 | 328 | def __repr__(self): | 329 | def __repr__(self): |
630 | 329 | return "%s(%r)" % (self.__class__.__name__, self._sources) | 330 | return "%s(%r)" % (self.__class__.__name__, self._sources) |
631 | 330 | 331 | ||
633 | 331 | def fetch_tarball(self, package, version, target_dir): | 332 | def fetch_tarballs(self, package, version, target_dir): |
634 | 332 | for source in self._sources: | 333 | for source in self._sources: |
635 | 333 | try: | 334 | try: |
637 | 334 | paths = source.fetch_tarball(package, version, target_dir) | 335 | paths = source.fetch_tarballs(package, version, target_dir) |
638 | 335 | except PackageVersionNotPresent: | 336 | except PackageVersionNotPresent: |
639 | 336 | pass | 337 | pass |
640 | 337 | else: | 338 | else: |
641 | @@ -402,7 +403,7 @@ | |||
642 | 402 | if not os.path.exists(self.store_dir): | 403 | if not os.path.exists(self.store_dir): |
643 | 403 | os.makedirs(self.store_dir) | 404 | os.makedirs(self.store_dir) |
644 | 404 | try: | 405 | try: |
646 | 405 | paths = self.source.fetch_tarball(self.package, | 406 | paths = self.source.fetch_tarballs(self.package, |
647 | 406 | self.version, self.store_dir) | 407 | self.version, self.store_dir) |
648 | 407 | except PackageVersionNotPresent: | 408 | except PackageVersionNotPresent: |
649 | 408 | raise MissingUpstreamTarball(self.package, self.version) | 409 | raise MissingUpstreamTarball(self.package, self.version) |
650 | @@ -476,7 +477,7 @@ | |||
651 | 476 | self.path = path | 477 | self.path = path |
652 | 477 | self.version = version | 478 | self.version = version |
653 | 478 | 479 | ||
655 | 479 | def fetch_tarball(self, package, version, target_dir): | 480 | def fetch_tarballs(self, package, version, target_dir): |
656 | 480 | if version != self.version: | 481 | if version != self.version: |
657 | 481 | raise PackageVersionNotPresent(package, version, self) | 482 | raise PackageVersionNotPresent(package, version, self) |
658 | 482 | dest_name = tarball_name(package, version) | 483 | dest_name = tarball_name(package, version) |
659 | @@ -521,7 +522,7 @@ | |||
660 | 521 | else: | 522 | else: |
661 | 522 | self.project = project | 523 | self.project = project |
662 | 523 | 524 | ||
664 | 524 | def fetch_tarball(self, package, version, target_dir): | 525 | def fetch_tarballs(self, package, version, target_dir): |
665 | 525 | release = self.project.getRelease(version=version) | 526 | release = self.project.getRelease(version=version) |
666 | 526 | if release is None: | 527 | if release is None: |
667 | 527 | raise PackageVersionNotPresent(package, version, self) | 528 | raise PackageVersionNotPresent(package, version, self) |
668 | 528 | 529 | ||
669 | === modified file 'upstream/branch.py' | |||
670 | --- upstream/branch.py 2011-06-14 12:26:21 +0000 | |||
671 | +++ upstream/branch.py 2011-06-27 10:36:00 +0000 | |||
672 | @@ -254,7 +254,7 @@ | |||
673 | 254 | finally: | 254 | finally: |
674 | 255 | self.upstream_branch.unlock() | 255 | self.upstream_branch.unlock() |
675 | 256 | 256 | ||
677 | 257 | def fetch_tarball(self, package, version, target_dir): | 257 | def fetch_tarballs(self, package, version, target_dir): |
678 | 258 | self.upstream_branch.lock_read() | 258 | self.upstream_branch.lock_read() |
679 | 259 | try: | 259 | try: |
680 | 260 | revid = self.version_as_revision(package, version) | 260 | revid = self.version_as_revision(package, version) |
681 | @@ -262,7 +262,7 @@ | |||
682 | 262 | raise PackageVersionNotPresent(package, version, self) | 262 | raise PackageVersionNotPresent(package, version, self) |
683 | 263 | note("Exporting upstream branch revision %s to create the tarball", | 263 | note("Exporting upstream branch revision %s to create the tarball", |
684 | 264 | revid) | 264 | revid) |
686 | 265 | target_filename = self._tarball_path(package, version, target_dir) | 265 | target_filename = self._tarball_path(package, version, None, target_dir) |
687 | 266 | tarball_base = "%s-%s" % (package, version) | 266 | tarball_base = "%s-%s" % (package, version) |
688 | 267 | rev_tree = self.upstream_branch.repository.revision_tree(revid) | 267 | rev_tree = self.upstream_branch.repository.revision_tree(revid) |
689 | 268 | export(rev_tree, target_filename, 'tgz', tarball_base) | 268 | export(rev_tree, target_filename, 'tgz', tarball_base) |
690 | 269 | 269 | ||
691 | === modified file 'upstream/pristinetar.py' | |||
692 | --- upstream/pristinetar.py 2011-06-23 21:41:36 +0000 | |||
693 | +++ upstream/pristinetar.py 2011-06-27 10:36:00 +0000 | |||
694 | @@ -118,19 +118,25 @@ | |||
695 | 118 | def __repr__(self): | 118 | def __repr__(self): |
696 | 119 | return "<%s at %s>" % (self.__class__.__name__, self.branch.base) | 119 | return "<%s at %s>" % (self.__class__.__name__, self.branch.base) |
697 | 120 | 120 | ||
699 | 121 | def tag_name(self, version, distro=None): | 121 | def tag_name(self, version, component=None, distro=None): |
700 | 122 | """Gets the tag name for the upstream part of version. | 122 | """Gets the tag name for the upstream part of version. |
701 | 123 | 123 | ||
702 | 124 | :param version: the Version object to extract the upstream | 124 | :param version: the Version object to extract the upstream |
703 | 125 | part of the version number from. | 125 | part of the version number from. |
704 | 126 | :param component: Name of the component (None for base) | ||
705 | 127 | :param distro: Optional distribution name | ||
706 | 126 | :return: a String with the name of the tag. | 128 | :return: a String with the name of the tag. |
707 | 127 | """ | 129 | """ |
708 | 128 | assert isinstance(version, str) | 130 | assert isinstance(version, str) |
709 | 129 | if distro is None: | 131 | if distro is None: |
712 | 130 | return "upstream-" + version | 132 | name = "upstream-" + version |
713 | 131 | return "upstream-%s-%s" % (distro, version) | 133 | else: |
714 | 134 | name = "upstream-%s-%s" % (distro, version) | ||
715 | 135 | if component is not None: | ||
716 | 136 | name += "/%s" % component | ||
717 | 137 | return name | ||
718 | 132 | 138 | ||
720 | 133 | def tag_version(self, version, revid): | 139 | def tag_version(self, version, revid, component=None): |
721 | 134 | """Tags the upstream branch's last revision with an upstream version. | 140 | """Tags the upstream branch's last revision with an upstream version. |
722 | 135 | 141 | ||
723 | 136 | Sets a tag on the last revision of the upstream branch and on the main | 142 | Sets a tag on the last revision of the upstream branch and on the main |
724 | @@ -139,12 +145,14 @@ | |||
725 | 139 | 145 | ||
726 | 140 | :param version: the upstream part of the version number to derive the | 146 | :param version: the upstream part of the version number to derive the |
727 | 141 | tag name from. | 147 | tag name from. |
728 | 148 | :param component: name of the component that is being imported | ||
729 | 149 | (None for base) | ||
730 | 142 | :param revid: the revid to associate the tag with, or None for the | 150 | :param revid: the revid to associate the tag with, or None for the |
731 | 143 | tip of self.pristine_upstream_branch. | 151 | tip of self.pristine_upstream_branch. |
732 | 144 | :return The tag name, revid of the added tag. | 152 | :return The tag name, revid of the added tag. |
733 | 145 | """ | 153 | """ |
734 | 146 | assert isinstance(version, str) | 154 | assert isinstance(version, str) |
736 | 147 | tag_name = self.tag_name(version) | 155 | tag_name = self.tag_name(version, component=component) |
737 | 148 | self.branch.tags.set_tag(tag_name, revid) | 156 | self.branch.tags.set_tag(tag_name, revid) |
738 | 149 | return tag_name, revid | 157 | return tag_name, revid |
739 | 150 | 158 | ||
740 | @@ -163,21 +171,28 @@ | |||
741 | 163 | revprops = {} | 171 | revprops = {} |
742 | 164 | if md5 is not None: | 172 | if md5 is not None: |
743 | 165 | revprops["deb-md5"] = md5 | 173 | revprops["deb-md5"] = md5 |
746 | 166 | delta_revprops = self.create_delta_revprops(tree, tarball) | 174 | delta = self.make_pristine_tar_delta(tree, tarball) |
747 | 167 | revprops.update(delta_revprops) | 175 | uuencoded = standard_b64encode(delta) |
748 | 176 | if tarball.endswith(".tar.bz2"): | ||
749 | 177 | revprops["deb-pristine-delta-bz2"] = uuencoded | ||
750 | 178 | else: | ||
751 | 179 | revprops["deb-pristine-delta"] = uuencoded | ||
752 | 168 | if author is not None: | 180 | if author is not None: |
753 | 169 | revprops['authors'] = author | 181 | revprops['authors'] = author |
754 | 170 | timezone = None | 182 | timezone = None |
755 | 171 | if timestamp is not None: | 183 | if timestamp is not None: |
756 | 172 | timezone = timestamp[1] | 184 | timezone = timestamp[1] |
757 | 173 | timestamp = timestamp[0] | 185 | timestamp = timestamp[0] |
760 | 174 | revid = tree.commit("Import upstream version %s" % (version,), | 186 | message = "Import upstream version %s" % (version,) |
761 | 175 | revprops=revprops, timestamp=timestamp, timezone=timezone) | 187 | if component is not None: |
762 | 188 | message += ", component %s" % component | ||
763 | 189 | revid = tree.commit(message, revprops=revprops, timestamp=timestamp, | ||
764 | 190 | timezone=timezone) | ||
765 | 176 | tag_name, _ = self.tag_version(version, revid=revid) | 191 | tag_name, _ = self.tag_version(version, revid=revid) |
766 | 177 | return tag_name, revid | 192 | return tag_name, revid |
767 | 178 | 193 | ||
770 | 179 | def fetch_tarball(self, package, version, target_dir): | 194 | def fetch_component_tarball(self, package, version, component, target_dir): |
771 | 180 | revid = self.version_as_revision(package, version) | 195 | revid = self.version_component_as_revision(package, version, component) |
772 | 181 | try: | 196 | try: |
773 | 182 | rev = self.branch.repository.get_revision(revid) | 197 | rev = self.branch.repository.get_revision(revid) |
774 | 183 | except NoSuchRevision: | 198 | except NoSuchRevision: |
775 | @@ -187,7 +202,7 @@ | |||
776 | 187 | format = self.pristine_tar_format(rev) | 202 | format = self.pristine_tar_format(rev) |
777 | 188 | else: | 203 | else: |
778 | 189 | format = 'gz' | 204 | format = 'gz' |
780 | 190 | target_filename = self._tarball_path(package, version, | 205 | target_filename = self._tarball_path(package, version, component, |
781 | 191 | target_dir, format=format) | 206 | target_dir, format=format) |
782 | 192 | try: | 207 | try: |
783 | 193 | self.reconstruct_pristine_tar(revid, package, version, target_filename) | 208 | self.reconstruct_pristine_tar(revid, package, version, target_filename) |
784 | @@ -195,9 +210,12 @@ | |||
785 | 195 | raise PackageVersionNotPresent(package, version, self) | 210 | raise PackageVersionNotPresent(package, version, self) |
786 | 196 | except PerFileTimestampsNotSupported: | 211 | except PerFileTimestampsNotSupported: |
787 | 197 | raise PackageVersionNotPresent(package, version, self) | 212 | raise PackageVersionNotPresent(package, version, self) |
791 | 198 | return [target_filename] | 213 | return target_filename |
792 | 199 | 214 | ||
793 | 200 | def _has_version(self, tag_name, tarballs=None): | 215 | def fetch_tarballs(self, package, version, target_dir): |
794 | 216 | return [self.fetch_component_tarball(package, version, None, target_dir)] | ||
795 | 217 | |||
796 | 218 | def _has_version_component(self, tag_name, md5=None): | ||
797 | 201 | if not self.branch.tags.has_tag(tag_name): | 219 | if not self.branch.tags.has_tag(tag_name): |
798 | 202 | return False | 220 | return False |
799 | 203 | revid = self.branch.tags.lookup_tag(tag_name) | 221 | revid = self.branch.tags.lookup_tag(tag_name) |
800 | @@ -208,11 +226,8 @@ | |||
801 | 208 | return False | 226 | return False |
802 | 209 | finally: | 227 | finally: |
803 | 210 | self.branch.unlock() | 228 | self.branch.unlock() |
805 | 211 | if tarballs is None: | 229 | if md5 is None: |
806 | 212 | return True | 230 | return True |
807 | 213 | if len(tarballs) != 1: | ||
808 | 214 | raise MultipleUpstreamTarballsNotSupported() | ||
809 | 215 | (filename, component, md5) = tarballs[0] | ||
810 | 216 | rev = self.branch.repository.get_revision(revid) | 231 | rev = self.branch.repository.get_revision(revid) |
811 | 217 | try: | 232 | try: |
812 | 218 | return rev.properties['deb-md5'] == md5 | 233 | return rev.properties['deb-md5'] == md5 |
813 | @@ -222,29 +237,49 @@ | |||
814 | 222 | return True | 237 | return True |
815 | 223 | 238 | ||
816 | 224 | def version_as_revision(self, package, version, tarballs=None): | 239 | def version_as_revision(self, package, version, tarballs=None): |
817 | 240 | if tarballs is None: | ||
818 | 241 | return self.version_component_as_revision(package, version, component=None) | ||
819 | 242 | elif len(tarballs) > 1: | ||
820 | 243 | raise MultipleUpstreamTarballsNotSupported() | ||
821 | 244 | else: | ||
822 | 245 | return self.version_component_as_revision(package, version, tarballs[0][1]) | ||
823 | 246 | |||
824 | 247 | def version_component_as_revision(self, package, version, component, tarballs=None): | ||
825 | 225 | assert isinstance(version, str) | 248 | assert isinstance(version, str) |
828 | 226 | for tag_name in self.possible_tag_names(version): | 249 | for tag_name in self.possible_tag_names(version, component=component): |
829 | 227 | if self._has_version(tag_name, tarballs): | 250 | if self._has_version_component(tag_name, tarballs): |
830 | 228 | return self.branch.tags.lookup_tag(tag_name) | 251 | return self.branch.tags.lookup_tag(tag_name) |
832 | 229 | tag_name = self.tag_name(version) | 252 | tag_name = self.tag_name(version, component=component) |
833 | 230 | try: | 253 | try: |
834 | 231 | return self.branch.tags.lookup_tag(tag_name) | 254 | return self.branch.tags.lookup_tag(tag_name) |
835 | 232 | except NoSuchTag: | 255 | except NoSuchTag: |
836 | 233 | raise PackageVersionNotPresent(package, version, self) | 256 | raise PackageVersionNotPresent(package, version, self) |
837 | 234 | 257 | ||
838 | 235 | def has_version(self, package, version, tarballs=None): | 258 | def has_version(self, package, version, tarballs=None): |
839 | 259 | if tarballs is None: | ||
840 | 260 | return self.has_version_component(package, version, component=None) | ||
841 | 261 | elif len(tarballs) > 1: | ||
842 | 262 | raise MultipleUpstreamTarballsNotSupported() | ||
843 | 263 | else: | ||
844 | 264 | return self.has_version_component(package, version, tarballs[0][1], | ||
845 | 265 | tarballs[0][2]) | ||
846 | 266 | |||
847 | 267 | def has_version_component(self, package, version, component, md5=None): | ||
848 | 236 | assert isinstance(version, str), str(type(version)) | 268 | assert isinstance(version, str), str(type(version)) |
851 | 237 | for tag_name in self.possible_tag_names(version): | 269 | for tag_name in self.possible_tag_names(version, component=component): |
852 | 238 | if self._has_version(tag_name, tarballs=tarballs): | 270 | if self._has_version_component(tag_name, md5=md5): |
853 | 239 | return True | 271 | return True |
854 | 240 | return False | 272 | return False |
855 | 241 | 273 | ||
857 | 242 | def possible_tag_names(self, version): | 274 | def possible_tag_names(self, version, component): |
858 | 243 | assert isinstance(version, str) | 275 | assert isinstance(version, str) |
863 | 244 | tags = [self.tag_name(version), | 276 | tags = [self.tag_name(version, component=component), |
864 | 245 | self.tag_name(version, distro="debian"), | 277 | self.tag_name(version, component=component, distro="debian"), |
865 | 246 | self.tag_name(version, distro="ubuntu"), | 278 | self.tag_name(version, component=component, distro="ubuntu"), |
866 | 247 | "upstream/%s" % version] | 279 | ] |
867 | 280 | if component is None: | ||
868 | 281 | # compatibility with git-buildpackage | ||
869 | 282 | tags += ["upstream/%s" % version] | ||
870 | 248 | return tags | 283 | return tags |
871 | 249 | 284 | ||
872 | 250 | def has_pristine_tar_delta(self, rev): | 285 | def has_pristine_tar_delta(self, rev): |
873 | @@ -302,19 +337,3 @@ | |||
874 | 302 | return make_pristine_tar_delta(dest, tarball_path) | 337 | return make_pristine_tar_delta(dest, tarball_path) |
875 | 303 | finally: | 338 | finally: |
876 | 304 | shutil.rmtree(tmpdir) | 339 | shutil.rmtree(tmpdir) |
877 | 305 | |||
878 | 306 | def create_delta_revprops(self, tree, tarball): | ||
879 | 307 | """Create the revision properties with the pristine tar delta. | ||
880 | 308 | |||
881 | 309 | :param tree: Bazaar Tree to diff against | ||
882 | 310 | :param tarball: The pristine tarball | ||
883 | 311 | :return: Dictionary with extra revision properties | ||
884 | 312 | """ | ||
885 | 313 | ret = {} | ||
886 | 314 | delta = self.make_pristine_tar_delta(tree, tarball) | ||
887 | 315 | uuencoded = standard_b64encode(delta) | ||
888 | 316 | if tarball.endswith(".tar.bz2"): | ||
889 | 317 | ret["deb-pristine-delta-bz2"] = uuencoded | ||
890 | 318 | else: | ||
891 | 319 | ret["deb-pristine-delta"] = uuencoded | ||
892 | 320 | return ret | ||
893 | 321 | 340 | ||
894 | === modified file 'util.py' | |||
895 | --- util.py 2011-06-15 19:09:24 +0000 | |||
896 | +++ util.py 2011-06-27 10:36:00 +0000 | |||
897 | @@ -209,19 +209,22 @@ | |||
898 | 209 | return changes | 209 | return changes |
899 | 210 | 210 | ||
900 | 211 | 211 | ||
902 | 212 | def tarball_name(package, version, format=None): | 212 | def tarball_name(package, version, component=None, format=None): |
903 | 213 | """Return the name of the .orig.tar.gz for the given package and version. | 213 | """Return the name of the .orig.tar.gz for the given package and version. |
904 | 214 | 214 | ||
905 | 215 | :param package: the name of the source package. | 215 | :param package: the name of the source package. |
906 | 216 | :param version: the upstream version of the package. | 216 | :param version: the upstream version of the package. |
907 | 217 | :param component: Component name (None for base) | ||
908 | 217 | :param format: the format for the tarball. If None then 'gz' will be | 218 | :param format: the format for the tarball. If None then 'gz' will be |
909 | 218 | used. You probably want on of 'gz', 'bz2', or 'lzma'. | 219 | used. You probably want on of 'gz', 'bz2', or 'lzma'. |
910 | 219 | :return: a string that is the name of the upstream tarball to use. | 220 | :return: a string that is the name of the upstream tarball to use. |
911 | 220 | """ | 221 | """ |
912 | 221 | if format is None: | 222 | if format is None: |
913 | 222 | format = 'gz' | 223 | format = 'gz' |
916 | 223 | return "%s_%s.orig.tar.%s" % (package, str(version), format) | 224 | name = "%s_%s.orig" % (package, str(version)) |
917 | 224 | 225 | if component is not None: | |
918 | 226 | name += "-" + component | ||
919 | 227 | return "%s.tar.%s" % (name, format) | ||
920 | 225 | 228 | ||
921 | 226 | 229 | ||
922 | 227 | def suite_to_distribution(suite): | 230 | def suite_to_distribution(suite): |