Exemple #1
0
    def build(self):
        os.system('mkdir -p ' + self.installerdir)
        install_manager = gup.DependencyManager(self.installer_root,
                                                dbdir=self.installer_db,
                                                clean=True)

        install_manager.include_build_deps = False
        install_manager.read_package_headers(self.settings.packages,
                                             self.branch_dict)
        install_manager.read_package_headers(self.settings.cross_packages,
                                             self.branch_dict)

        self.package_manager = install_manager

        def get_dep(x):
            return install_manager.dependencies(x)

        package_names = gup.topologically_sorted(self.arguments, {}, get_dep,
                                                 None)
        self.checksum_matches = False
        checksum_file = self.installer_checksum_file
        self.checksum = self.calculate_checksum(package_names)
        if os.path.exists(checksum_file) and open(
                checksum_file).read() == self.checksum:
            raise ChecksumShortCircuit(checksum_file)

        for a in package_names:
            install_manager.install_package(a)

        version = install_manager.package_dict(self.name)['version']
        version_tup = misc.string_to_version(version)
        buildnumber = '%d' % self.version_db.get_next_build_number(version_tup)

        self.installer_version = version
        self.installer_build = buildnumber
Exemple #2
0
    def load_packages(self):
        from gub import gup
        p = gup.DependencyManager(self.settings.system_root)
        #        arch = settings.platform
        #        if settings.platform == 'debian':
        #            arch = 'i386'
        arch = self.settings.package_arch
        branch = self.settings.debian_branch
        packages_path = '/dists/%(branch)s/main/binary-%(arch)s/Packages.gz' \
                        % locals ()
        url = mirror + packages_path
        dir = self.settings.downloads + '/Debian'
        os.system('mkdir -p %(dir)s' % locals())
        base = dir + '/Packages'
        file = '.'.join((base, arch, branch))

        # FIXME: download/offline update
        if not os.path.exists(file):
            misc.download_url(
                url,
                dir,
                local=['file://' + self.settings.downloads + '/Debian'],
            )
            os.system('gunzip  %(base)s.gz' % locals())
            os.system('mv %(base)s %(file)s' % locals())
        self.grok_packages_file(file)
Exemple #3
0
 def manager(self, platform):
     if platform not in self.managers:
         info = gub_log.default_logger.harmless
         info.write('MANAGER for platform: ' + platform + '\n')
         settings = gub.settings.Settings(platform)
         self.managers[platform] = gup.DependencyManager(
             settings.system_root)
     return self.managers[platform]