~spiv/bzr-builddeb/use-dpkg-mergechangelogs

« back to all changes in this revision

Viewing changes to upstream/__init__.py

  • Committer: Jelmer Vernooij
  • Date: 2011-06-28 08:41:44 UTC
  • mfrom: (578.2.9 multi-tarball)
  • Revision ID: jelmer@samba.org-20110628084144-1xbothpqtc1eptlo
Merge part 5 of support for multiple upstream tarballs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
81
81
        """
82
82
        raise NotImplementedError(self.has_version)
83
83
 
84
 
    def fetch_tarball(self, package, version, target_dir):
 
84
    def fetch_tarballs(self, package, version, target_dir):
85
85
        """Fetch the source tarball for a particular version.
86
86
 
87
87
        :param package: Name of the package
89
89
        :param target_dir: Directory in which to store the tarball
90
90
        :return: Paths of the fetched tarballs
91
91
        """
92
 
        raise NotImplementedError(self.fetch_tarball)
 
92
        raise NotImplementedError(self.fetch_tarballs)
93
93
 
94
 
    def _tarball_path(self, package, version, target_dir, format=None):
95
 
        return os.path.join(target_dir, tarball_name(package, version,
 
94
    def _tarball_path(self, package, version, component, target_dir, format=None):
 
95
        return os.path.join(target_dir, tarball_name(package, version, component,
96
96
                    format=format))
97
97
 
98
98
 
99
99
class AptSource(UpstreamSource):
100
100
    """Upstream source that uses apt-source."""
101
101
 
102
 
    def fetch_tarball(self, package, upstream_version, target_dir, 
 
102
    def fetch_tarballs(self, package, upstream_version, target_dir, 
103
103
            _apt_pkg=None):
104
104
        if _apt_pkg is None:
105
105
            import apt_pkg
184
184
        note("get-orig-source did not create file with prefix %s", prefix)
185
185
        return None
186
186
 
187
 
    def fetch_tarball(self, package, version, target_dir):
 
187
    def fetch_tarballs(self, package, version, target_dir):
188
188
        if self.larstiq:
189
189
            rules_name = 'rules'
190
190
        else:
266
266
            os.unlink(tempfilename)
267
267
        return self._xml_report_extract_upstream_version(stdout)
268
268
 
269
 
    def fetch_tarball(self, package, version, target_dir):
 
269
    def fetch_tarballs(self, package, version, target_dir):
270
270
        note("Using uscan to look for the upstream tarball.")
271
271
        try:
272
272
            tempfilename = self._export_watchfile()
285
285
        if r != 0:
286
286
            note("uscan could not find the needed tarball.")
287
287
            raise PackageVersionNotPresent(package, version, self)
288
 
        return [self._tarball_path(package, version, target_dir)]
 
288
        # FIXME: What about the other component tarballs?
 
289
        return [self._tarball_path(package, version, None, target_dir)]
289
290
 
290
291
 
291
292
class SelfSplitSource(UpstreamSource):
308
309
        finally:
309
310
            shutil.rmtree(tmpdir)
310
311
 
311
 
    def fetch_tarball(self, package, version, target_dir):
 
312
    def fetch_tarballs(self, package, version, target_dir):
312
313
        note("Using the current branch without the 'debian' directory "
313
314
                "to create the tarball")
314
 
        tarball_path = self._tarball_path(package, version, target_dir)
 
315
        tarball_path = self._tarball_path(package, version, None, target_dir)
315
316
        self._split(package, version, tarball_path)
316
317
        return [tarball_path]
317
318
 
328
329
    def __repr__(self):
329
330
        return "%s(%r)" % (self.__class__.__name__, self._sources)
330
331
 
331
 
    def fetch_tarball(self, package, version, target_dir):
 
332
    def fetch_tarballs(self, package, version, target_dir):
332
333
        for source in self._sources:
333
334
            try:
334
 
                paths = source.fetch_tarball(package, version, target_dir)
 
335
                paths = source.fetch_tarballs(package, version, target_dir)
335
336
            except PackageVersionNotPresent:
336
337
                pass
337
338
            else:
402
403
            if not os.path.exists(self.store_dir):
403
404
                os.makedirs(self.store_dir)
404
405
            try:
405
 
                paths = self.source.fetch_tarball(self.package,
 
406
                paths = self.source.fetch_tarballs(self.package,
406
407
                    self.version, self.store_dir)
407
408
            except PackageVersionNotPresent:
408
409
                raise MissingUpstreamTarball(self.package, self.version)
477
478
        self.path = path
478
479
        self.version = version
479
480
 
480
 
    def fetch_tarball(self, package, version, target_dir):
 
481
    def fetch_tarballs(self, package, version, target_dir):
481
482
        if version != self.version:
482
483
            raise PackageVersionNotPresent(package, version, self)
483
484
        dest_name = tarball_name(package, version)
522
523
        else:
523
524
            self.project = project
524
525
 
525
 
    def fetch_tarball(self, package, version, target_dir):
 
526
    def fetch_tarballs(self, package, version, target_dir):
526
527
        release = self.project.getRelease(version=version)
527
528
        if release is None:
528
529
            raise PackageVersionNotPresent(package, version, self)