def fetch(packages=[], path=os.path.curdir): """ Fetches the given packages from the repository without installing, just downloads the packages. @param packages: list of package names -> list_of_strings @param path: path to where the packages will be downloaded. If not given, packages will be downloaded to the current working directory. """ packagedb = pisi.db.packagedb.PackageDB() repodb = pisi.db.repodb.RepoDB() for name in packages: package, repo = packagedb.get_package_repo(name) ctx.ui.info( _("%s package found in %s repository") % (package.name, repo)) uri = pisi.uri.URI(package.packageURI) output = os.path.join(path, uri.path()) if os.path.exists( output) and package.packageHash == pisi.util.sha1_file(output): ctx.ui.warning(_("%s package already fetched") % uri.path()) continue if uri.is_absolute_path(): url = str(pkg_uri) else: url = os.path.join(os.path.dirname(repodb.get_repo_url(repo)), str(uri.path())) fetcher.fetch_url(url, path, ctx.ui.Progress)
def from_name(name, ignore_dep=None): packagedb = pisi.db.packagedb.PackageDB() # download package and return an installer object # find package in repository repo = packagedb.which_repo(name) if repo: repodb = pisi.db.repodb.RepoDB() ctx.ui.info(_("Package %s found in repository %s") % (name, repo)) repo = repodb.get_repo(repo) pkg = packagedb.get_package(name) delta = None installdb = pisi.db.installdb.InstallDB() # Package is installed. This is an upgrade. Check delta. if installdb.has_package(pkg.name): (version, release, build, distro, distro_release) = installdb.get_version_and_distro_release( pkg.name) # pisi distro upgrade should not use delta support if distro == pkg.distribution and distro_release == pkg.distributionRelease: delta = pkg.get_delta(buildFrom=build) ignore_delta = ctx.config.values.general.ignore_delta # If delta exists than use the delta uri. if delta and not ignore_delta: pkg_uri = delta.packageURI pkg_hash = delta.packageHash else: pkg_uri = pkg.packageURI pkg_hash = pkg.packageHash uri = pisi.uri.URI(pkg_uri) if uri.is_absolute_path(): pkg_path = str(pkg_uri) else: pkg_path = os.path.join( os.path.dirname(repo.indexuri.get_uri()), str(uri.path())) ctx.ui.info(_("Package URI: %s") % pkg_path, verbose=True) # Bug 4113 cached_file = pisi.package.Package.is_cached(pkg_path) if cached_file and util.sha1_file(cached_file) != pkg_hash: os.unlink(cached_file) install_op = Install(pkg_path, ignore_dep) # Bug 4113 downloaded_file = install_op.package.filepath if pisi.util.sha1_file(downloaded_file) != pkg_hash: raise pisi.Error( _("Download Error: Package does not match the repository package." )) return install_op else: raise Error( _("Package %s not found in any active repository.") % name)
def from_name(name, ignore_dep = None): packagedb = pisi.db.packagedb.PackageDB() # download package and return an installer object # find package in repository repo = packagedb.which_repo(name) if repo: repodb = pisi.db.repodb.RepoDB() ctx.ui.info(_("Package %s found in repository %s") % (name, repo)) repo = repodb.get_repo(repo) pkg = packagedb.get_package(name) delta = None installdb = pisi.db.installdb.InstallDB() # Package is installed. This is an upgrade. Check delta. if installdb.has_package(pkg.name): (version, release, build, distro, distro_release) = installdb.get_version_and_distro_release(pkg.name) # pisi distro upgrade should not use delta support if distro == pkg.distribution and distro_release == pkg.distributionRelease: delta = pkg.get_delta(release) ignore_delta = ctx.config.values.general.ignore_delta # If delta exists than use the delta uri. if delta and not ignore_delta: pkg_uri = delta.packageURI pkg_hash = delta.packageHash else: pkg_uri = pkg.packageURI pkg_hash = pkg.packageHash uri = pisi.uri.URI(pkg_uri) if uri.is_absolute_path(): pkg_path = str(pkg_uri) else: pkg_path = os.path.join(os.path.dirname(repo.indexuri.get_uri()), str(uri.path())) ctx.ui.info(_("Package URI: %s") % pkg_path, verbose=True) # Bug 4113 cached_file = pisi.package.Package.is_cached(pkg_path) if cached_file and util.sha1_file(cached_file) != pkg_hash: os.unlink(cached_file) cached_file = None install_op = Install(pkg_path, ignore_dep) # Bug 4113 if not cached_file: downloaded_file = install_op.package.filepath if pisi.util.sha1_file(downloaded_file) != pkg_hash: raise pisi.Error(_("Download Error: Package does not match the repository package.")) return install_op else: raise Error(_("Package %s not found in any active repository.") % name)
def fetch(packages=[], path=os.path.curdir): """ Fetches the given packages from the repository without installing, just downloads the packages. @param packages: list of package names -> list_of_strings @param path: path to where the packages will be downloaded. If not given, packages will be downloaded to the current working directory. """ packagedb = pisi.db.packagedb.PackageDB() repodb = pisi.db.repodb.RepoDB() for name in packages: package, repo = packagedb.get_package_repo(name) ctx.ui.info(_("%s package found in %s repository") % (package.name, repo)) uri = pisi.uri.URI(package.packageURI) output = os.path.join(path, uri.path()) if os.path.exists(output) and package.packageHash == pisi.util.sha1_file(output): ctx.ui.warning(_("%s package already fetched") % uri.path()) continue if uri.is_absolute_path(): url = str(pkg_uri) else: url = os.path.join(os.path.dirname(repodb.get_repo_url(repo)), str(uri.path())) fetcher.fetch_url(url, path, ctx.ui.Progress)
def fetch(packages=[], path=os.path.curdir): """ Fetches the given packages from the repository without installing, just downloads the packages. @param packages: list of package names -> list_of_strings @param path: path to where the packages will be downloaded. If not given, packages will be downloaded to the current working directory. """ packagedb = pisi.db.packagedb.PackageDB() repodb = pisi.db.repodb.RepoDB() for name in packages: package, repo = packagedb.get_package_repo(name) uri = pisi.uri.URI(package.packageURI) if uri.is_absolute_path(): url = str(pkg_uri) else: url = os.path.join(os.path.dirname(repodb.get_repo_url(repo)), str(uri.path())) fetcher.fetch_url(url, path, ctx.ui.Progress)
def from_name(name, ignore_dep=None): packagedb = pisi.db.packagedb.PackageDB() # download package and return an installer object # find package in repository repo = packagedb.which_repo(name) if repo: repodb = pisi.db.repodb.RepoDB() ctx.ui.info(_("Package %s found in repository %s") % (name, repo)) repo = repodb.get_repo(repo) pkg = packagedb.get_package(name) delta = None installdb = pisi.db.installdb.InstallDB() # Package is installed. This is an upgrade. Check delta. if installdb.has_package(pkg.name): (version, release, build) = installdb.get_version(pkg.name) delta = pkg.get_delta(buildFrom=build) # If delta exists than use the delta uri. if delta: pkg_uri = delta.packageURI else: pkg_uri = pkg.packageURI uri = pisi.uri.URI(pkg_uri) if uri.is_absolute_path(): pkg_path = str(pkg_uri) else: pkg_path = os.path.join( os.path.dirname(repo.indexuri.get_uri()), str(uri.path())) ctx.ui.info(_("Package URI: %s") % pkg_path, verbose=True) return Install(pkg_path, ignore_dep) else: raise Error( _("Package %s not found in any active repository.") % name)
def from_name(name, ignore_dep = None): packagedb = pisi.db.packagedb.PackageDB() # download package and return an installer object # find package in repository repo = packagedb.which_repo(name) if repo: repodb = pisi.db.repodb.RepoDB() ctx.ui.info(_("Package %s found in repository %s") % (name, repo)) repo = repodb.get_repo(repo) pkg = packagedb.get_package(name) delta = None installdb = pisi.db.installdb.InstallDB() # Package is installed. This is an upgrade. Check delta. if installdb.has_package(pkg.name): (version, release, build) = installdb.get_version(pkg.name) delta = pkg.get_delta(buildFrom=build) # If delta exists than use the delta uri. if delta: pkg_uri = delta.packageURI else: pkg_uri = pkg.packageURI uri = pisi.uri.URI(pkg_uri) if uri.is_absolute_path(): pkg_path = str(pkg_uri) else: pkg_path = os.path.join(os.path.dirname(repo.indexuri.get_uri()), str(uri.path())) ctx.ui.info(_("Package URI: %s") % pkg_path, verbose=True) return Install(pkg_path, ignore_dep) else: raise Error(_("Package %s not found in any active repository.") % name)