From 604e5c5daac8997065ea30f42a679de41b7e28c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Metin?= Date: Sun, 31 Jul 2005 21:02:14 +0000 Subject: [PATCH] =?UTF-8?q?Az=20=C3=B6nce=20=C3=A7ekirdek=20listesinde=20b?= =?UTF-8?q?ahsetti=C4=9Fim,=20uzak=20depodan=20paket=20kurmak=20i=C3=A7in.?= =?UTF-8?q?=20Bunun=20=C3=BCzerinde=20sonra=20konu=C5=9Furuz=20tekrar.=20A?= =?UTF-8?q?ma=20=C5=9Fu=20anki=20hali=20ile=20=C3=A7al=C4=B1=C5=9F=C4=B1yo?= =?UTF-8?q?r.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit baris@kompiter ~/svn/internal/trunk/pisi $ ./pisi-cli list-repo baris@kompiter ~/svn/internal/trunk/pisi $ ./pisi-cli add-repo cekirdek http://cekirdek.uludag.org.tr/pisi/pisi-index.xml baris@kompiter ~/svn/internal/trunk/pisi $ ./pisi-cli list-repo cekirdek http://cekirdek.uludag.org.tr/pisi/pisi-index.xml baris@kompiter ~/svn/internal/trunk/pisi $ ./pisi-cli update-repo cekirdek * Updating repository: cekirdek pisi-index.xml 100% 0.00 B/s * Package db updated. baris@kompiter ~/svn/internal/trunk/pisi $ ./pisi-cli install net-tools ['net-tools'] Name: net-tools Summary: Standard Linux networking tools Description: Standard Linux networking tools digraph G { net-tools[ net-tools(1.60,1) ]; } ['net-tools'] Package URI: http://cekirdek.uludag.org.tr/pisi/net-tools-1.60-1.pisi net-tools-1.60-1.pisi 100% 26.43 KB/s Extracting files Storing files.xml Storing metadata.xml Storing comar/interface.py Registering COMAR script interface.py baris@kompiter ~/svn/internal/trunk/pisi $ --- pisi/index.py | 8 +++++--- pisi/operations.py | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/pisi/index.py b/pisi/index.py index 41e5c1ad..22b8e52a 100644 --- a/pisi/index.py +++ b/pisi/index.py @@ -58,7 +58,7 @@ class Index(XmlFile): for fn in files: if fn.endswith(const.package_prefix): ui.info('Adding ' + fn + ' to package index\n') - self.add_package(os.path.join(root, fn)) + self.add_package(os.path.join(root, fn), repo_uri) def update_db(self, repo): pkgdb = packagedb.get_db(repo) @@ -66,7 +66,7 @@ class Index(XmlFile): for pkg in self.packages: pkgdb.add_package(pkg) - def add_package(self, path): + def add_package(self, path, repo_uri): package = Package(path, 'r') # extract control files util.clean_dir(config.install_dir()) @@ -75,7 +75,9 @@ class Index(XmlFile): md = metadata.MetaData() md.read(os.path.join(config.install_dir(), const.metadata_xml)) # TODO: in the future we'll do all of this with purl/pfile/&helpers - md.package.packageURI = path + # After that, we'll remove the ugly repo_uri parameter from this + # function. + md.package.packageURI = util.removepathprefix(repo_uri, path) # check package semantics if md.verify(): self.packages.append(md.package) diff --git a/pisi/operations.py b/pisi/operations.py index 2f8d73a8..1feb0bf2 100644 --- a/pisi/operations.py +++ b/pisi/operations.py @@ -57,10 +57,22 @@ def install_single_name(name): # find package in repository repo = packagedb.which_repo(name) if repo: + # TODO: Allright this is ugly, but works. Eventually, we'll + # change this... + from repodb import repodb + repo = repodb.get_repo(repo) pkg = packagedb.get_package(name) - ui.info("Installing %s from repository %s\n" %(name, repo)) - ui.debug("Package URI: %s\n" % pkg.packageURI) - install_single_file(pkg.packageURI) + + if repo.indexuri.isLocalFile(): + pkg_path = pkg.packageURI + else: + pkg_path = os.path.join(os.path.dirname(repo.indexuri.getUri()), + pkg.packageURI) + + ui.debug("Package URI: %s\n" % pkg_path) + + # Package will handle remote file for us! + install_single_file(pkg_path) else: ui.error("Package %s not found in the repository file.\n" % pkg)