* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-31 21:06 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-31 21:06 UTC (permalink / raw
To: gentoo-commits
commit: e921b30273c374cdbb44cf053ff22b32dfaa6458
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue May 31 20:54:00 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue May 31 20:54:00 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=e921b302
Add --oneshot to Portage options.
---
PMSTestSuite/pm/portagepm.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index e1ad442..da50bc2 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -14,7 +14,7 @@ class PortagePM(PackageManager):
emerge_path = '/usr/bin/emerge'
repoman_path = '/usr/bin/repoman'
- common_emerge_opts = ['--ask', 'n', '--keep-going']
+ common_emerge_opts = ['--ask', 'n', '--keep-going', '--oneshot']
repo_paths = []
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: pmstestsuite/pm/
@ 2011-08-08 21:31 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-08-08 21:31 UTC (permalink / raw
To: gentoo-commits
commit: 206ec57adac178bb304a577077d3bc1bbcce1142
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 8 21:32:39 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Aug 8 21:32:39 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=206ec57a
Portage: disable unmerge delays.
---
pmstestsuite/pm/portagepm.py | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/pmstestsuite/pm/portagepm.py b/pmstestsuite/pm/portagepm.py
index 30b62ca..1c00749 100644
--- a/pmstestsuite/pm/portagepm.py
+++ b/pmstestsuite/pm/portagepm.py
@@ -37,6 +37,7 @@ class PortagePM(_PortagePM, PackageManager):
def spawn_emerge(self, cpvs, opts = []):
env = copy.copy(os.environ)
env['FEATURES'] = '-buildpkg -strict'
+ env['CLEAN_DELAY'] = '0'
if self.repo_paths:
env['PORTDIR_OVERLAY'] = ' '.join(self.repo_paths)
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: pmstestsuite/pm/
@ 2011-08-05 19:54 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-08-05 19:54 UTC (permalink / raw
To: gentoo-commits
commit: ac4b52af268673f22177d177b86777154ecccec8
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 5 17:27:40 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug 5 17:27:40 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=ac4b52af
Portage: quieter unmerge, always remove build dir.
---
pmstestsuite/pm/portagepm.py | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/pmstestsuite/pm/portagepm.py b/pmstestsuite/pm/portagepm.py
index d2139b0..30b62ca 100644
--- a/pmstestsuite/pm/portagepm.py
+++ b/pmstestsuite/pm/portagepm.py
@@ -17,7 +17,8 @@ class PortagePM(_PortagePM, PackageManager):
""" A class implementing the interfaces to the Portage PM. """
name = 'portage'
- common_emerge_opts = ['--ask', 'n', '--keep-going', '--oneshot']
+ common_emerge_opts = ['--ask', 'n', '--keep-going', '--oneshot',
+ '--quiet-unmerge-warn', '--fail-clean', 'y']
requires_manifests = False
repo_paths = []
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: pmstestsuite/pm/
@ 2011-08-05 17:09 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-08-05 17:09 UTC (permalink / raw
To: gentoo-commits
commit: e471c2514859d9d630d831267b5f68f99d74c75c
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 5 15:42:27 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug 5 15:42:27 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=e471c251
Store whether PM requires Manifests.
---
pmstestsuite/pm/__init__.py | 9 +++++++++
pmstestsuite/pm/paludispm.py | 1 +
pmstestsuite/pm/pkgcorepm.py | 3 ++-
pmstestsuite/pm/portagepm.py | 1 +
4 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/pmstestsuite/pm/__init__.py b/pmstestsuite/pm/__init__.py
index e268f7f..4da1fba 100644
--- a/pmstestsuite/pm/__init__.py
+++ b/pmstestsuite/pm/__init__.py
@@ -41,6 +41,15 @@ class PackageManager(ABCObject):
"""
pass
+ @abstractproperty
+ def requires_manifests(self):
+ """
+ Whether the PM requires Manifests.
+
+ @type: bool
+ """
+ pass
+
@classmethod
def is_available(cls):
"""
diff --git a/pmstestsuite/pm/paludispm.py b/pmstestsuite/pm/paludispm.py
index be7cc84..df1a686 100644
--- a/pmstestsuite/pm/paludispm.py
+++ b/pmstestsuite/pm/paludispm.py
@@ -23,6 +23,7 @@ class PaludisPM(_PaludisPM, PackageManager):
cave_path = '/usr/bin/cave'
common_cave_opts = ['--lazy', '--preserve-world', '--execute']
+ requires_manifests = True
def _spawn_cave(self, cpvs, action, opts = []):
return subprocess.Popen(['cave', '--log-level', 'warning', action]
diff --git a/pmstestsuite/pm/pkgcorepm.py b/pmstestsuite/pm/pkgcorepm.py
index 875ecf6..b430b2d 100644
--- a/pmstestsuite/pm/pkgcorepm.py
+++ b/pmstestsuite/pm/pkgcorepm.py
@@ -20,6 +20,7 @@ class PkgCorePM(_PkgCorePM, PackageManager):
name = 'pkgcore'
common_pmerge_opts = ['--oneshot']
+ requires_manifests = False
@property
def package_limit(self):
@@ -51,4 +52,4 @@ class PkgCorePM(_PkgCorePM, PackageManager):
# pkgcore can't do Manifests
def remanifest(self, *args):
- pass
+ raise NotImplementedError()
diff --git a/pmstestsuite/pm/portagepm.py b/pmstestsuite/pm/portagepm.py
index a33f24e..b5479b8 100644
--- a/pmstestsuite/pm/portagepm.py
+++ b/pmstestsuite/pm/portagepm.py
@@ -18,6 +18,7 @@ class PortagePM(_PortagePM, PackageManager):
name = 'portage'
common_emerge_opts = ['--ask', 'n', '--keep-going', '--oneshot']
+ requires_manifests = False
repo_paths = []
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: pmstestsuite/pm/
@ 2011-08-05 17:09 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-08-05 17:09 UTC (permalink / raw
To: gentoo-commits
commit: bbbd7a62321e919b0d3d5dc62075e0146fd8560c
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 5 16:14:35 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug 5 16:14:35 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=bbbd7a62
Keep PM lists separate.
---
pmstestsuite/pm/__init__.py | 6 ++++--
pmstestsuite/pm/paludispm.py | 4 ++++
pmstestsuite/pm/pkgcorepm.py | 4 ++++
pmstestsuite/pm/portagepm.py | 4 ++++
4 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/pmstestsuite/pm/__init__.py b/pmstestsuite/pm/__init__.py
index 4da1fba..4667fab 100644
--- a/pmstestsuite/pm/__init__.py
+++ b/pmstestsuite/pm/__init__.py
@@ -26,12 +26,14 @@ class PackageManager(ABCObject):
"""
pm_options = []
- repo_paths = []
- pkg_queue = []
package_limit = None
_current_op = None
+ def __init__(self):
+ self.repo_paths = []
+ self.pkg_queue = []
+
@abstractproperty
def name(self):
"""
diff --git a/pmstestsuite/pm/paludispm.py b/pmstestsuite/pm/paludispm.py
index df1a686..bb65a13 100644
--- a/pmstestsuite/pm/paludispm.py
+++ b/pmstestsuite/pm/paludispm.py
@@ -25,6 +25,10 @@ class PaludisPM(_PaludisPM, PackageManager):
common_cave_opts = ['--lazy', '--preserve-world', '--execute']
requires_manifests = True
+ def __init__(self, *args, **kwargs):
+ PackageManager.__init__(self)
+ _PaludisPM.__init__(self, *args, **kwargs)
+
def _spawn_cave(self, cpvs, action, opts = []):
return subprocess.Popen(['cave', '--log-level', 'warning', action]
+ self.common_cave_opts + opts + self.pm_options
diff --git a/pmstestsuite/pm/pkgcorepm.py b/pmstestsuite/pm/pkgcorepm.py
index b430b2d..f543ec9 100644
--- a/pmstestsuite/pm/pkgcorepm.py
+++ b/pmstestsuite/pm/pkgcorepm.py
@@ -22,6 +22,10 @@ class PkgCorePM(_PkgCorePM, PackageManager):
common_pmerge_opts = ['--oneshot']
requires_manifests = False
+ def __init__(self, *args, **kwargs):
+ PackageManager.__init__(self)
+ _PkgCorePM.__init__(self, *args, **kwargs)
+
@property
def package_limit(self):
return 1
diff --git a/pmstestsuite/pm/portagepm.py b/pmstestsuite/pm/portagepm.py
index b5479b8..d2139b0 100644
--- a/pmstestsuite/pm/portagepm.py
+++ b/pmstestsuite/pm/portagepm.py
@@ -22,6 +22,10 @@ class PortagePM(_PortagePM, PackageManager):
repo_paths = []
+ def __init__(self, *args, **kwargs):
+ PackageManager.__init__(self)
+ _PortagePM.__init__(self, *args, **kwargs)
+
def remanifest(self, paths):
startdir = os.getcwd()
for path in paths:
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: pmstestsuite/pm/
@ 2011-08-03 20:17 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-08-03 20:17 UTC (permalink / raw
To: gentoo-commits
commit: b59d05b79a64c2362327e8982e979335b5ee57ce
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 3 19:24:30 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Aug 3 19:24:30 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=b59d05b7
Whitespace.
---
pmstestsuite/pm/__init__.py | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/pmstestsuite/pm/__init__.py b/pmstestsuite/pm/__init__.py
index 3db7772..e268f7f 100644
--- a/pmstestsuite/pm/__init__.py
+++ b/pmstestsuite/pm/__init__.py
@@ -36,7 +36,7 @@ class PackageManager(ABCObject):
def name(self):
"""
Human-readable, short PM name (used in option values).
-
+
@type: string
"""
pass
@@ -55,7 +55,7 @@ class PackageManager(ABCObject):
def remanifest(self, paths):
"""
Regenerate Manifests in paths.
-
+
@param paths: directory names to regenerate manifests in
@type paths: iterable(string)
"""
@@ -148,7 +148,7 @@ class PackageManager(ABCObject):
def _spawn_unmerge(self, pkgs):
"""
Spawn PM to perform unmerge of packages.
-
+
@param pkgs: packages to merge
@type pkgs: iterable(string)
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: pmstestsuite/pm/
@ 2011-08-03 20:17 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-08-03 20:17 UTC (permalink / raw
To: gentoo-commits
commit: e3206725c0f79c4e456227f1edbd7fd67a756b48
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 3 19:22:12 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Aug 3 19:22:12 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=e3206725
Force config reload after merges in all PMs.
---
pmstestsuite/pm/__init__.py | 2 ++
pmstestsuite/pm/pkgcorepm.py | 5 -----
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/pmstestsuite/pm/__init__.py b/pmstestsuite/pm/__init__.py
index 1e1d50e..3db7772 100644
--- a/pmstestsuite/pm/__init__.py
+++ b/pmstestsuite/pm/__init__.py
@@ -166,6 +166,8 @@ class PackageManager(ABCObject):
return
del self.op
+ # need to reload the config to see updated vardb
+ self.reload_config()
callback()
@property
diff --git a/pmstestsuite/pm/pkgcorepm.py b/pmstestsuite/pm/pkgcorepm.py
index e0f840f..875ecf6 100644
--- a/pmstestsuite/pm/pkgcorepm.py
+++ b/pmstestsuite/pm/pkgcorepm.py
@@ -40,11 +40,6 @@ class PkgCorePM(_PkgCorePM, PackageManager):
def _spawn_unmerge(self, cpvs):
return self.spawn_pmerge(cpvs, ['--unmerge'])
- def commit(self, *args, **kwargs):
- PackageManager.commit(self, *args, **kwargs)
- # need to reload the config to update vdb
- self.reload_config()
-
def append_repository(self, repo):
raise NotImplementedError('PkgCorePM does not support adding repositories yet.')
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: pmstestsuite/pm/
@ 2011-07-31 15:10 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-07-31 15:10 UTC (permalink / raw
To: gentoo-commits
commit: 2a3810b78b20f11b4e2e2f6aa0a5f7142ac68525
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 31 15:11:05 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 31 15:11:05 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=2a3810b7
Fix/reintroduce disabling Manifest checks for pkgcore.
---
pmstestsuite/pm/pkgcorepm.py | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/pmstestsuite/pm/pkgcorepm.py b/pmstestsuite/pm/pkgcorepm.py
index 16da52e..e0f840f 100644
--- a/pmstestsuite/pm/pkgcorepm.py
+++ b/pmstestsuite/pm/pkgcorepm.py
@@ -48,6 +48,12 @@ class PkgCorePM(_PkgCorePM, PackageManager):
def append_repository(self, repo):
raise NotImplementedError('PkgCorePM does not support adding repositories yet.')
+ def get_repository(self, repo):
+ r = PackageManager.get_repository(self, repo)
+ self.common_pmerge_opts.extend(['--add-config',
+ r.path, 'allow_missing_manifests', 'True'])
+ return r
+
# pkgcore can't do Manifests
def remanifest(self, *args):
pass
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-23 9:51 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-23 9:51 UTC (permalink / raw
To: gentoo-commits
commit: 4297bba31e092efd470562c9897420ac7b15b587
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 23 09:27:11 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 23 09:27:11 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=4297bba3
portage: support metadata lookups in vardb.
---
PMSTestSuite/pm/portagepm.py | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index 2765def..2ed2536 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -24,6 +24,10 @@ class PortagePM(PackageManager):
repo_paths = []
class VDB(PackageManager.VDB):
+ class VDBPackage(PackageManager.VDB.VDBPackage):
+ def __getattr__(self, name):
+ return self._vdb._vardb.aux_get(self._cpv, [name])[0]
+
def __contains__(self, cpv):
return bool(self._vardb.cpv_exists(cpv))
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-23 9:51 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-23 9:51 UTC (permalink / raw
To: gentoo-commits
commit: 58264d1e8b875fc00796c2055e40209247ec2e43
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 23 09:41:40 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 23 09:41:40 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=58264d1e
pkgcore: support grabbing metadata of vardb.
---
PMSTestSuite/pm/pkgcorepm.py | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/pkgcorepm.py b/PMSTestSuite/pm/pkgcorepm.py
index eece213..e4e680a 100644
--- a/PMSTestSuite/pm/pkgcorepm.py
+++ b/PMSTestSuite/pm/pkgcorepm.py
@@ -24,6 +24,13 @@ class PkgCorePM(PackageManager):
common_pmerge_opts = ['--oneshot']
class VDB(PackageManager.VDB):
+ class VDBPackage(PackageManager.VDB.VDBPackage):
+ def __getattr__(self, name):
+ return self._pkg.data[name]
+
+ def __init__(self, pkg):
+ self._pkg = pkg
+
_config = None
_vardb = None
def _load_config(self):
@@ -37,6 +44,13 @@ class PkgCorePM(PackageManager):
return True
return False
+ def __getitem__(self, key):
+ for p in self._vardb:
+ if p.cpvstr == key:
+ return self.VDBPackage(p)
+ else:
+ raise KeyError('Package not in VDB: %s' % key)
+
def __init__(self):
self._load_config()
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-23 9:51 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-23 9:51 UTC (permalink / raw
To: gentoo-commits
commit: c60522911a50d34cafaf0b87e7813aa103bdecb8
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 23 09:51:35 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 23 09:51:35 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=c6052291
Paludis: support grabbing metadata off vardb.
---
PMSTestSuite/pm/paludispm.py | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/paludispm.py b/PMSTestSuite/pm/paludispm.py
index 3b9effa..58c93cc 100644
--- a/PMSTestSuite/pm/paludispm.py
+++ b/PMSTestSuite/pm/paludispm.py
@@ -26,6 +26,14 @@ class PaludisPM(PackageManager):
common_cave_opts = ['--lazy', '--preserve-world', '--execute']
class VDB(PackageManager.VDB):
+ class VDBPackage(PackageManager.VDB.VDBPackage):
+ def __getattr__(self, name):
+ p = subprocess.Popen(['cave', '--log-level', 'silent',
+ 'print-id-metadata', '--raw-name', name,
+ '--format', '%v', '=%s::installed' % self._cpv],
+ stdout = subprocess.PIPE)
+ return p.communicate()[0]
+
def __contains__(self, cpv):
p = subprocess.Popen(['cave', '--log-level', 'silent',
'has-version', '=%s' % cpv])
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-23 9:51 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-23 9:51 UTC (permalink / raw
To: gentoo-commits
commit: 07463256dde88133c98b42eb619a9875323936bb
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 23 09:26:53 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 23 09:26:53 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=07463256
Introduce an abstract API for metadata lookups.
---
PMSTestSuite/pm/__init__.py | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index b6066de..fa5adf0 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -37,6 +37,28 @@ class PackageManager(object):
"""
__metaclass__ = ABCMeta
+ class VDBPackage(object):
+ """
+ A single package (ebuild) in VDB.
+
+ Private attrs:
+ - _cpv - requested CPV,
+ - _vdb - parent VDB instance.
+ """
+ __metaclass__ = ABCMeta
+
+ @abstractmethod
+ def __getattr__(self, name):
+ """
+ Get the metadata key for a package.
+ """
+ pass
+
+ def __init__(self, vdb, cpv):
+ """ Instantiate the VDBPackage. """
+ self._vdb = vdb
+ self._cpv = cpv
+
@abstractmethod
def __contains__(self, pkg):
"""
@@ -45,6 +67,14 @@ class PackageManager(object):
"""
pass
+ def __getitem__(self, key):
+ """
+ Get a package by CPV.
+ """
+ if key not in self:
+ raise KeyError('Package not in VDB: %s' % key)
+ return self.VDBPackage(self, key)
+
def __init__(self):
self.vdb = self.VDB()
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 21:25 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 21:25 UTC (permalink / raw
To: gentoo-commits
commit: 43bcfab6ae873b61ead55cdcc7b66c2a9ba3c665
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 21:25:25 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 21:25:25 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=43bcfab6
Fix initializing PkgCorePM.VDB.
---
PMSTestSuite/pm/pkgcorepm.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/pkgcorepm.py b/PMSTestSuite/pm/pkgcorepm.py
index 9d11046..eece213 100644
--- a/PMSTestSuite/pm/pkgcorepm.py
+++ b/PMSTestSuite/pm/pkgcorepm.py
@@ -37,7 +37,7 @@ class PkgCorePM(PackageManager):
return True
return False
- def __init__(self, pm):
+ def __init__(self):
self._load_config()
@classmethod
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 20:58 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 20:58 UTC (permalink / raw
To: gentoo-commits
commit: e9255155ee573434f8419de6121237daf641312e
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 20:54:14 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 20:54:14 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=e9255155
paludis: use cave to generate Manifests.
---
PMSTestSuite/pm/paludispm.py | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/PMSTestSuite/pm/paludispm.py b/PMSTestSuite/pm/paludispm.py
index 7e71f15..834a150 100644
--- a/PMSTestSuite/pm/paludispm.py
+++ b/PMSTestSuite/pm/paludispm.py
@@ -12,9 +12,8 @@ import os, os.path, subprocess
from PMSTestSuite.repository import EbuildRepository
from PMSTestSuite.pm import PackageManager
-from PMSTestSuite.pm.portagepm import PortagePM
-class PaludisPM(PortagePM):
+class PaludisPM(PackageManager):
"""
A class implementing the interfaces to the Paludis PM.
@@ -54,6 +53,7 @@ class PaludisPM(PortagePM):
def append_repository(self, repo):
raise NotImplementedError('PaludisPM does not support adding repositories yet.')
+ _repo_mappings = {}
def get_repository(self, name):
s = subprocess.Popen(['cave', '--log-level', 'silent',
'print-repository-metadata', name,
@@ -62,4 +62,14 @@ class PaludisPM(PortagePM):
r = s.communicate()[0]
if not r or s.returncode != 0:
raise KeyError('Repository %s not found.' % name)
+ self._repo_mappings[r] = name
return EbuildRepository(r)
+
+ def remanifest(self, paths):
+ for path in paths:
+ tmp, pn = os.path.split(path)
+ repo_path, cat = os.path.split(tmp)
+ repo_name = self._repo_mappings[repo_path]
+
+ subprocess.check_call(['cave', '--log-level', 'silent',
+ 'digest', '%s/%s' % (cat, pn), repo_name])
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 20:58 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 20:58 UTC (permalink / raw
To: gentoo-commits
commit: b455311d85e4062d5af7396f6211d66b60726017
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 20:29:33 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 20:29:33 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=b455311d
paludis: get repository path using cave.
---
PMSTestSuite/pm/paludispm.py | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/paludispm.py b/PMSTestSuite/pm/paludispm.py
index 619e77b..7e71f15 100644
--- a/PMSTestSuite/pm/paludispm.py
+++ b/PMSTestSuite/pm/paludispm.py
@@ -11,6 +11,7 @@
import os, os.path, subprocess
from PMSTestSuite.repository import EbuildRepository
+from PMSTestSuite.pm import PackageManager
from PMSTestSuite.pm.portagepm import PortagePM
class PaludisPM(PortagePM):
@@ -25,7 +26,7 @@ class PaludisPM(PortagePM):
cave_path = '/usr/bin/cave'
common_cave_opts = ['--lazy', '--preserve-world', '--execute']
- class VDB(PortagePM.VDB):
+ class VDB(PackageManager.VDB):
def __contains__(self, cpv):
p = subprocess.Popen(['cave', '--log-level', 'silent',
'has-version', '=%s' % cpv])
@@ -52,3 +53,13 @@ class PaludisPM(PortagePM):
def append_repository(self, repo):
raise NotImplementedError('PaludisPM does not support adding repositories yet.')
+
+ def get_repository(self, name):
+ s = subprocess.Popen(['cave', '--log-level', 'silent',
+ 'print-repository-metadata', name,
+ '--raw-name', 'location',
+ '--format', '%v'], stdout=subprocess.PIPE)
+ r = s.communicate()[0]
+ if not r or s.returncode != 0:
+ raise KeyError('Repository %s not found.' % name)
+ return EbuildRepository(r)
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 20:58 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 20:58 UTC (permalink / raw
To: gentoo-commits
commit: 2e34cb44425163dc3e0724652671f9e1c98cebe9
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 20:13:22 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 20:13:22 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=2e34cb44
paludis: support vdb lookups using cave.
---
PMSTestSuite/pm/paludispm.py | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/paludispm.py b/PMSTestSuite/pm/paludispm.py
index 4fec9d7..619e77b 100644
--- a/PMSTestSuite/pm/paludispm.py
+++ b/PMSTestSuite/pm/paludispm.py
@@ -25,6 +25,12 @@ class PaludisPM(PortagePM):
cave_path = '/usr/bin/cave'
common_cave_opts = ['--lazy', '--preserve-world', '--execute']
+ class VDB(PortagePM.VDB):
+ def __contains__(self, cpv):
+ p = subprocess.Popen(['cave', '--log-level', 'silent',
+ 'has-version', '=%s' % cpv])
+ return p.wait() == 0
+
@classmethod
def is_available(cls):
try:
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 20:58 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 20:58 UTC (permalink / raw
To: gentoo-commits
commit: e8ce0f0dc51f8d83f268335b0552ed4d10409d13
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 20:27:27 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 20:27:27 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=e8ce0f0d
Don't pass PM instance to VDB, and don't require __init__.
---
PMSTestSuite/pm/__init__.py | 10 +---------
PMSTestSuite/pm/portagepm.py | 2 +-
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index 7c3ef4d..b6066de 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -38,14 +38,6 @@ class PackageManager(object):
__metaclass__ = ABCMeta
@abstractmethod
- def __init__(self, pm):
- """
- Instantiate the VDB interface. Passed parent PackageManager
- instance.
- """
- pass
-
- @abstractmethod
def __contains__(self, pkg):
"""
Check whether a particular package (CPV) was merged (and thus exists
@@ -54,7 +46,7 @@ class PackageManager(object):
pass
def __init__(self):
- self.vdb = self.VDB(self)
+ self.vdb = self.VDB()
@abstractproperty
def name(self):
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index fee2c07..2765def 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -27,7 +27,7 @@ class PortagePM(PackageManager):
def __contains__(self, cpv):
return bool(self._vardb.cpv_exists(cpv))
- def __init__(self, pm):
+ def __init__(self):
from portage import create_trees
trees = create_trees(
config_root = os.environ.get('PORTAGE_CONFIGROOT'),
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 20:58 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 20:58 UTC (permalink / raw
To: gentoo-commits
commit: 37601edef85f1c32c6641089bd74dea886e86306
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 20:58:27 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 20:58:27 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=37601ede
paludis: don't require python bindings.
---
PMSTestSuite/pm/paludispm.py | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/PMSTestSuite/pm/paludispm.py b/PMSTestSuite/pm/paludispm.py
index 834a150..3b9effa 100644
--- a/PMSTestSuite/pm/paludispm.py
+++ b/PMSTestSuite/pm/paludispm.py
@@ -20,7 +20,7 @@ class PaludisPM(PackageManager):
Requires Paludis with USE=python.
"""
name = 'paludis'
- pkg = 'sys-apps/paludis[python]'
+ pkg = 'sys-apps/paludis'
cave_path = '/usr/bin/cave'
common_cave_opts = ['--lazy', '--preserve-world', '--execute']
@@ -33,11 +33,10 @@ class PaludisPM(PackageManager):
@classmethod
def is_available(cls):
- try:
- import paludis
- except ImportError:
- return False
- return True
+ p = subprocess.Popen(['cave', '--version'],
+ stdout = subprocess.PIPE, stderr = subprocess.PIPE)
+ p.communicate()
+ return p.wait() == 0
def _spawn_cave(self, cpvs, action, opts = []):
return subprocess.Popen(['cave', '--log-level', 'warning', action]
@@ -60,7 +59,7 @@ class PaludisPM(PackageManager):
'--raw-name', 'location',
'--format', '%v'], stdout=subprocess.PIPE)
r = s.communicate()[0]
- if not r or s.returncode != 0:
+ if not r or s.wait() != 0:
raise KeyError('Repository %s not found.' % name)
self._repo_mappings[r] = name
return EbuildRepository(r)
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 17:58 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 17:58 UTC (permalink / raw
To: gentoo-commits
commit: cc3e0412c59dd7b1c91bce7414c432ba2f157e24
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 17:58:42 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 17:58:42 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=cc3e0412
Remove get_userpriv_group() function.
We no longer care about that. We just make the repo world-readable.
---
PMSTestSuite/pm/__init__.py | 10 ----------
PMSTestSuite/pm/pkgcorepm.py | 3 ---
PMSTestSuite/pm/portagepm.py | 7 -------
3 files changed, 0 insertions(+), 20 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index a4d14b7..7fe7698 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -193,16 +193,6 @@ class PackageManager(object):
"""
pass
- @abstractmethod
- def get_userpriv_group(self):
- """
- Get the group name which needs to own ebuild files for userpriv to work.
-
- If userpriv is not in effect, returns None (no need for ownership
- changes).
- """
- pass
-
def get_package_managers():
""" Return the list of supported Package Managers. """
diff --git a/PMSTestSuite/pm/pkgcorepm.py b/PMSTestSuite/pm/pkgcorepm.py
index 1e99bac..64aaffd 100644
--- a/PMSTestSuite/pm/pkgcorepm.py
+++ b/PMSTestSuite/pm/pkgcorepm.py
@@ -90,6 +90,3 @@ class PkgCorePM(PackageManager):
# pkgcore can't do Manifests
def remanifest(self, *args):
pass
-
- def get_userpriv_group(self):
- return None
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index dc59cb2..0846b63 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -83,13 +83,6 @@ class PortagePM(PackageManager):
installed_cpvs &= set(cpvs)
return installed_cpvs
- def get_userpriv_group(self):
- if 'userpriv' in self.portdb.settings.features:
- from portage.data import userpriv_groups
- return userpriv_groups[0]
- else:
- return None
-
def get_repository(self, name):
r = self.portdb.getRepositoryPath(name)
if not r:
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 17:54 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 17:54 UTC (permalink / raw
To: gentoo-commits
commit: 01f2d5d64b2e585f5277436e81cc7be13cf5ff56
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 17:11:21 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 17:11:21 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=01f2d5d6
portage: support ignoring Manifests (non-strict mode).
Don't build binpkgs too.
---
PMSTestSuite/pm/portagepm.py | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index b681ce9..dc59cb2 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -39,16 +39,15 @@ class PortagePM(PackageManager):
os.chdir(startdir)
def spawn_emerge(self, cpvs, opts = []):
- kwargs = {}
+ env = copy.copy(os.environ)
+ env['FEATURES'] = '-buildpkg -strict'
if self.repo_paths:
- env = copy.copy(os.environ)
env['PORTDIR_OVERLAY'] = ' '.join(self.repo_paths)
- kwargs['env'] = env
return subprocess.Popen(['emerge']
+ self.common_emerge_opts + opts + self.pm_options
+ ['=%s' % cpv for cpv in cpvs],
- **kwargs)
+ env = env)
def _spawn_merge(self, cpvs):
return self.spawn_emerge(cpvs)
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 17:54 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 17:54 UTC (permalink / raw
To: gentoo-commits
commit: 4733db7f432eb0f1c0c4b84ad16f488380aaa461
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 16:52:22 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 16:52:22 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=4733db7f
pkgcore: don't do manifests any more.
This removes the portage/repoman dependency, and userpriv needs.
---
PMSTestSuite/pm/pkgcorepm.py | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/PMSTestSuite/pm/pkgcorepm.py b/PMSTestSuite/pm/pkgcorepm.py
index 0e32814..1e99bac 100644
--- a/PMSTestSuite/pm/pkgcorepm.py
+++ b/PMSTestSuite/pm/pkgcorepm.py
@@ -11,14 +11,11 @@
import subprocess
from PMSTestSuite.repository import EbuildRepository
-from PMSTestSuite.pm.portagepm import PortagePM
+from PMSTestSuite.pm import PackageManager
-class PkgCorePM(PortagePM):
+class PkgCorePM(PackageManager):
"""
A class implementing the interfaces to the pkgcore PM.
-
- Right now it subclasses PortagePM because it needs repoman to do
- the Manifests.
"""
name = 'pkgcore'
pkg = 'sys-apps/pkgcore'
@@ -90,4 +87,9 @@ class PkgCorePM(PortagePM):
installed_cpvs &= set(cpvs)
return installed_cpvs
- # portage's get_userpriv_group() required by repoman
+ # pkgcore can't do Manifests
+ def remanifest(self, *args):
+ pass
+
+ def get_userpriv_group(self):
+ return None
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 17:54 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 17:54 UTC (permalink / raw
To: gentoo-commits
commit: be7052df64c69d09ce63518f231a2e4352bd3225
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 16:48:49 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 16:48:49 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=be7052df
pkgcore: support running without Manifests.
---
PMSTestSuite/pm/pkgcorepm.py | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/pkgcorepm.py b/PMSTestSuite/pm/pkgcorepm.py
index 3497823..0e32814 100644
--- a/PMSTestSuite/pm/pkgcorepm.py
+++ b/PMSTestSuite/pm/pkgcorepm.py
@@ -78,6 +78,9 @@ class PkgCorePM(PortagePM):
def get_repository(self, name):
for r in self.config.repo.values():
if hasattr(r, 'repo_id') and r.repo_id == name:
+ # add config override for it as well
+ self.common_pmerge_opts = self.common_pmerge_opts \
+ + ['--add-config', r.location, 'allow_missing_manifests', 'True']
return EbuildRepository(r.location)
else:
raise KeyError('Repository %s not found.' % name)
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 17:54 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 17:54 UTC (permalink / raw
To: gentoo-commits
commit: 97bed400de26be25caa177a922c914e8339cbcb7
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 16:29:09 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 16:29:09 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=97bed400
Decrease paludis verbosity.
---
PMSTestSuite/pm/paludispm.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/paludispm.py b/PMSTestSuite/pm/paludispm.py
index 01fdb96..4fec9d7 100644
--- a/PMSTestSuite/pm/paludispm.py
+++ b/PMSTestSuite/pm/paludispm.py
@@ -34,7 +34,7 @@ class PaludisPM(PortagePM):
return True
def _spawn_cave(self, cpvs, action, opts = []):
- return subprocess.Popen(['cave', action]
+ return subprocess.Popen(['cave', '--log-level', 'warning', action]
+ self.common_cave_opts + opts + self.pm_options
+ ['=%s' % cpv for cpv in cpvs])
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 15:26 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 15:26 UTC (permalink / raw
To: gentoo-commits
commit: 15bdcdd91a6a8a9cf0f94494c0e57ec0b3b7357f
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 15:26:46 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 15:26:46 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=15bdcdd9
Remove stupid +x checks and don't rely on abs paths to PMs.
---
PMSTestSuite/pm/pkgcorepm.py | 12 +++---------
PMSTestSuite/pm/portagepm.py | 15 ++++-----------
2 files changed, 7 insertions(+), 20 deletions(-)
diff --git a/PMSTestSuite/pm/pkgcorepm.py b/PMSTestSuite/pm/pkgcorepm.py
index ba1b1a0..3497823 100644
--- a/PMSTestSuite/pm/pkgcorepm.py
+++ b/PMSTestSuite/pm/pkgcorepm.py
@@ -8,7 +8,7 @@
<PMSTestSuite.repository.EbuildRepository object at ...>
"""
-import os, os.path, subprocess
+import subprocess
from PMSTestSuite.repository import EbuildRepository
from PMSTestSuite.pm.portagepm import PortagePM
@@ -24,8 +24,6 @@ class PkgCorePM(PortagePM):
pkg = 'sys-apps/pkgcore'
failure_nonfatal = False
- pmerge_path = '/usr/bin/pmerge'
-
common_pmerge_opts = ['--oneshot']
@classmethod
@@ -34,11 +32,7 @@ class PkgCorePM(PortagePM):
import pkgcore
except ImportError:
return False
-
- ret = True
- for prog in (cls.pmerge_path, cls.repoman_path):
- ret &= os.access(prog, os.X_OK)
- return ret
+ return True
@property
def package_limit(self):
@@ -49,7 +43,7 @@ class PkgCorePM(PortagePM):
pass
def spawn_pmerge(self, cpvs, opts = []):
- return subprocess.Popen([self.pmerge_path]
+ return subprocess.Popen(['pmerge']
+ self.common_pmerge_opts + opts + self.pm_options
+ ['=%s' % cpv for cpv in cpvs])
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index 7d6c6a5..b681ce9 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -8,7 +8,7 @@
<PMSTestSuite.repository.EbuildRepository object at ...>
"""
-import copy, os, os.path, subprocess
+import copy, os, subprocess
from PMSTestSuite.repository import EbuildRepository
from PMSTestSuite.pm import PackageManager
@@ -19,9 +19,6 @@ class PortagePM(PackageManager):
pkg = 'sys-apps/portage'
failure_nonfatal = True
- emerge_path = '/usr/bin/emerge'
- repoman_path = '/usr/bin/repoman'
-
common_emerge_opts = ['--ask', 'n', '--keep-going', '--oneshot']
repo_paths = []
@@ -32,17 +29,13 @@ class PortagePM(PackageManager):
import portage
except ImportError:
return False
-
- ret = True
- for prog in (cls.emerge_path, cls.repoman_path):
- ret &= os.access(prog, os.X_OK)
- return ret
+ return True
def remanifest(self, paths):
startdir = os.getcwd()
for path in paths:
os.chdir(path)
- subprocess.check_call([self.repoman_path, 'manifest'])
+ subprocess.check_call(['repoman', 'manifest'])
os.chdir(startdir)
def spawn_emerge(self, cpvs, opts = []):
@@ -52,7 +45,7 @@ class PortagePM(PackageManager):
env['PORTDIR_OVERLAY'] = ' '.join(self.repo_paths)
kwargs['env'] = env
- return subprocess.Popen([self.emerge_path]
+ return subprocess.Popen(['emerge']
+ self.common_emerge_opts + opts + self.pm_options
+ ['=%s' % cpv for cpv in cpvs],
**kwargs)
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-21 15:26 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-21 15:26 UTC (permalink / raw
To: gentoo-commits
commit: 0a452f9d9419fe82d5aee84cd27fd6dc488e4538
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 21 15:22:14 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 21 15:22:14 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=0a452f9d
Add a minimal Paludis support.
---
PMSTestSuite/pm/__init__.py | 3 +-
PMSTestSuite/pm/paludispm.py | 48 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index c804558..a4d14b7 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -208,6 +208,7 @@ def get_package_managers():
from PMSTestSuite.pm.portagepm import PortagePM
from PMSTestSuite.pm.pkgcorepm import PkgCorePM
+ from PMSTestSuite.pm.paludispm import PaludisPM
class PMWrapper(object):
""" A wrapper class which stringifies into a name of particular PM. """
@@ -233,4 +234,4 @@ def get_package_managers():
% self._pmclass.pkg)
return self._pmclass()
- return [PMWrapper(x) for x in (PortagePM, PkgCorePM)]
+ return [PMWrapper(x) for x in (PortagePM, PkgCorePM, PaludisPM)]
diff --git a/PMSTestSuite/pm/paludispm.py b/PMSTestSuite/pm/paludispm.py
new file mode 100644
index 0000000..01fdb96
--- /dev/null
+++ b/PMSTestSuite/pm/paludispm.py
@@ -0,0 +1,48 @@
+# vim:fileencoding=utf-8
+# (c) 2011 Michał Górny <mgorny@gentoo.org>
+# Released under the terms of the 2-clause BSD license.
+
+"""
+>>> pm = PaludisPM()
+>>> pm.get_repository('gentoo') # doctest: +ELLIPSIS
+<PMSTestSuite.repository.EbuildRepository object at ...>
+"""
+
+import os, os.path, subprocess
+
+from PMSTestSuite.repository import EbuildRepository
+from PMSTestSuite.pm.portagepm import PortagePM
+
+class PaludisPM(PortagePM):
+ """
+ A class implementing the interfaces to the Paludis PM.
+
+ Requires Paludis with USE=python.
+ """
+ name = 'paludis'
+ pkg = 'sys-apps/paludis[python]'
+
+ cave_path = '/usr/bin/cave'
+ common_cave_opts = ['--lazy', '--preserve-world', '--execute']
+
+ @classmethod
+ def is_available(cls):
+ try:
+ import paludis
+ except ImportError:
+ return False
+ return True
+
+ def _spawn_cave(self, cpvs, action, opts = []):
+ return subprocess.Popen(['cave', action]
+ + self.common_cave_opts + opts + self.pm_options
+ + ['=%s' % cpv for cpv in cpvs])
+
+ def _spawn_merge(self, cpvs):
+ return self._spawn_cave(cpvs, 'resolve', ['--continue-on-failure', 'if-satisfied'])
+
+ def _spawn_unmerge(self, cpvs):
+ return self._spawn_cave(cpvs, 'uninstall')
+
+ def append_repository(self, repo):
+ raise NotImplementedError('PaludisPM does not support adding repositories yet.')
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-20 19:20 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-20 19:20 UTC (permalink / raw
To: gentoo-commits
commit: fa71df60e5ee36cd09bd2329510133ef7bf5c52e
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 20 19:20:25 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jun 20 19:20:25 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=fa71df60
Remove old async_ method from abstract PackageManager.
---
PMSTestSuite/pm/__init__.py | 10 ----------
1 files changed, 0 insertions(+), 10 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index 65e6d97..22b4d3d 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -185,16 +185,6 @@ class PackageManager(object):
"""
raise NotImplementedError('Please override the lookup_vardb() method.')
- # async methods which are supposed to run in background and return pids
- def merge_async(self, cpvs):
- """
- Run PM asynchronically to merge <cpvs>.
-
- Returns the PID of spawned process, or raises an exception if spawning
- one fails.
- """
- raise NotImplementedError('Please override the merge_async() method.')
-
def get_userpriv_group(self):
"""
Get the group name which needs to own ebuild files for userpriv to work.
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-16 19:49 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-16 19:49 UTC (permalink / raw
To: gentoo-commits
commit: 3294050e25c59040554d7152f1c7c6a930585867
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 16 19:13:17 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 16 19:13:17 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=3294050e
Support passing a single CPV to PackageManager.merge()/unmerge().
---
PMSTestSuite/pm/__init__.py | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index 02e9016..1f88ea6 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -96,19 +96,25 @@ class PackageManager(object):
self._current_op = None
self.pkg_queue = []
+ def _append_cpvs(self, cpvs):
+ if isinstance(cpvs, basestring):
+ self.pkg_queue.append(cpvs)
+ else:
+ self.pkg_queue.extend(cpvs)
+
def merge(self, cpvs):
"""
Queue merging <cpvs> (either a list or a string).
"""
self.op = PackageManagerOps.merge
- self.pkg_queue.extend(cpvs)
+ self._append_cpvs(cpvs)
def unmerge(self, cpvs):
"""
Queue unmerging <cpvs> (either a list or a string).
"""
self.op = PackageManagerOps.unmerge
- self.pkg_queue.extend(cpvs)
+ self._append_cpvs(cpvs)
def _spawn_merge(self, pkgs):
"""
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-16 19:49 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-16 19:49 UTC (permalink / raw
To: gentoo-commits
commit: 611b93540ad69f6172bc01cea114865abd425b60
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 16 19:24:29 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 16 19:24:29 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=611b9354
Introduce pending action check for PM.
---
PMSTestSuite/pm/__init__.py | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index 1f88ea6..65e6d97 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -139,12 +139,26 @@ class PackageManager(object):
del self.op
callback()
+ @property
+ def has_pending_actions(self):
+ """
+ Return whether PM has any pending actions (i.e. packages
+ to merge/unmerge).
+ """
+ return bool(self.pkg_queue)
+
def commit(self, callback):
"""
Perform queued operations in the background (using glib), starting PM
multiple times if necessary. Call <callback> when done.
+
+ If PM has no pending actions, the callback will be called immediately.
"""
+ if not self.has_pending_actions:
+ callback()
+ return
+
if self.op == PackageManagerOps.merge:
if self.package_limit:
pkgs = self.pkg_queue[:self.package_limit]
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-14 12:35 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-14 12:35 UTC (permalink / raw
To: gentoo-commits
commit: 3f0b3321fb69d8b3159a7ab991882943a51c8324
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 14 12:25:39 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 14 12:25:39 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=3f0b3321
Fix overriding the whole process env for portage.
---
PMSTestSuite/pm/portagepm.py | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index 19f3f8a..66310f4 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -8,7 +8,7 @@
<PMSTestSuite.repository.EbuildRepository object at ...>
"""
-import os, os.path, subprocess
+import copy, os, os.path, subprocess
from PMSTestSuite.repository import EbuildRepository
from PMSTestSuite.pm import PackageManager
@@ -46,10 +46,16 @@ class PortagePM(PackageManager):
os.chdir(startdir)
def spawn_emerge(self, cpvs, opts = []):
+ kwargs = {}
+ if self.repo_paths:
+ env = copy.copy(os.environ)
+ env['PORTDIR_OVERLAY'] = ' '.join(self.repo_paths)
+ kwargs['env'] = env
+
return subprocess.Popen([self.emerge_path]
+ self.common_emerge_opts + opts + self.pm_options
+ ['=%s' % cpv for cpv in cpvs],
- env = {'PORTDIR_OVERLAY': ' '.join(self.repo_paths)})
+ **kwargs)
def call_emerge(self, *args, **kwargs):
p = self.spawn_emerge(*args, **kwargs)
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-07 17:16 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-07 17:16 UTC (permalink / raw
To: gentoo-commits
commit: 421452d0ae6375db6539147e9e292ec52064617f
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 7 17:16:43 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 7 17:16:43 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=421452d0
pkgcore: support vardb lookups.
---
PMSTestSuite/pm/pkgcorepm.py | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/PMSTestSuite/pm/pkgcorepm.py b/PMSTestSuite/pm/pkgcorepm.py
index 738c49b..0d64cd7 100644
--- a/PMSTestSuite/pm/pkgcorepm.py
+++ b/PMSTestSuite/pm/pkgcorepm.py
@@ -63,13 +63,24 @@ class PkgCorePM(PortagePM):
raise NotImplementedError('PkgCorePM does not support adding repositories yet.')
_config = None
+ _vardb = None
+ def _load_config(self):
+ from pkgcore.config import load_config
+ self._config = load_config()
+ self._vardb = self._config.repo['vdb']
+
@property
def config(self):
if self._config is None:
- from pkgcore.config import load_config
- self._config = load_config()
+ self._load_config()
return self._config
+ @property
+ def vardb(self):
+ # reload required to refresh vardb
+ self._load_config()
+ return self._vardb
+
def get_repository(self, name):
for r in self.config.repo.values():
if hasattr(r, 'repo_id') and r.repo_id == name:
@@ -77,5 +88,9 @@ class PkgCorePM(PortagePM):
else:
raise KeyError('Repository %s not found.' % name)
- # XXX: vardb and stuff
+ def lookup_vardb(self, cpvs):
+ installed_cpvs = set([p.cpvstr for p in self.vardb])
+ installed_cpvs &= set(cpvs)
+ return installed_cpvs
+
# portage's get_userpriv_group() required by repoman
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-07 17:16 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-07 17:16 UTC (permalink / raw
To: gentoo-commits
commit: 2d310251cf9c7d506ab74524c5271e24236ea285
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 7 16:54:47 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 7 16:54:47 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=2d310251
Portage: use portdb to get settings instead of vardb.
This will simplify implementation of pkgcore support.
---
PMSTestSuite/pm/portagepm.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index b3f437d..bfc7fbf 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -94,7 +94,7 @@ class PortagePM(PackageManager):
return installed_cpvs
def get_userpriv_group(self):
- if 'userpriv' in self.vardb.settings.features:
+ if 'userpriv' in self.portdb.settings.features:
from portage.data import userpriv_groups
return userpriv_groups[0]
else:
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-07 15:20 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-07 15:20 UTC (permalink / raw
To: gentoo-commits
commit: 533f19177aec9eb4782ed9f0c2864643262f4c54
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 7 15:13:29 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 7 15:13:29 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=533f1917
Portage: support grabbing portdb as well.
---
PMSTestSuite/pm/portagepm.py | 24 +++++++++++++++++-------
1 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index b831731..23f2cf8 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -59,18 +59,28 @@ class PortagePM(PackageManager):
return self.spawn_emerge(cpvs).pid
_vardb = None
+ _portdb = None
+ def _create_trees(self):
+ from portage import create_trees
+ trees = create_trees(
+ config_root = os.environ.get('PORTAGE_CONFIGROOT'),
+ target_root = os.environ.get('ROOT'))
+ tree = trees[max(trees)]
+ self._vardb = tree['vartree'].dbapi
+ self._portdb = tree['porttree'].dbapi
+
@property
def vardb(self):
if not self._vardb:
- from portage import create_trees
- trees = create_trees(
- config_root = os.environ.get('PORTAGE_CONFIGROOT'),
- target_root = os.environ.get('ROOT'))
- tree = trees[max(trees)]
- self._vardb = tree['vartree'].dbapi
-
+ self._create_trees()
return self._vardb
+ @property
+ def portdb(self):
+ if not self._portdb:
+ self._create_trees()
+ return self._portdb
+
def lookup_vardb(self, cpvs):
installed_cpvs = set(self.vardb.cpv_all())
installed_cpvs &= set(cpvs)
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-07 14:54 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-07 14:54 UTC (permalink / raw
To: gentoo-commits
commit: a1b14f1a741d3e83f16a68db4f19fc45be1abab6
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 7 14:45:58 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 7 14:45:58 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=a1b14f1a
Add some initial code for pkgcore support.
---
PMSTestSuite/pm/__init__.py | 3 +-
PMSTestSuite/pm/pkgcorepm.py | 59 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index 54204da..7731d74 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -104,6 +104,7 @@ def get_package_managers():
""" Return the list of supported Package Managers. """
from PMSTestSuite.pm.portagepm import PortagePM
+ from PMSTestSuite.pm.pkgcorepm import PkgCorePM
class PMWrapper(object):
""" A wrapper class which stringifies into a name of particular PM. """
@@ -129,4 +130,4 @@ def get_package_managers():
% self._pmclass.pkg)
return self._pmclass()
- return [PMWrapper(x) for x in (PortagePM,)]
+ return [PMWrapper(x) for x in (PortagePM, PkgCorePM)]
diff --git a/PMSTestSuite/pm/pkgcorepm.py b/PMSTestSuite/pm/pkgcorepm.py
new file mode 100644
index 0000000..4e5a525
--- /dev/null
+++ b/PMSTestSuite/pm/pkgcorepm.py
@@ -0,0 +1,59 @@
+# vim:fileencoding=utf-8
+# (c) 2011 Michał Górny <mgorny@gentoo.org>
+# Released under the terms of the 2-clause BSD license.
+
+import os, os.path, subprocess
+
+from PMSTestSuite.pm.portagepm import PortagePM
+
+class PkgCorePM(PortagePM):
+ """
+ A class implementing the interfaces to the pkgcore PM.
+
+ Right now it subclasses PortagePM because it needs repoman to do
+ the Manifests.
+ """
+ name = 'pkgcore'
+ pkg = 'sys-apps/pkgcore'
+
+ pmerge_path = '/usr/bin/pmerge'
+
+ common_pmerge_opts = ['--oneshot']
+
+ @classmethod
+ def is_available(cls):
+ try:
+ import pkgcore
+ except ImportError:
+ return False
+
+ ret = True
+ for prog in (cls.pmerge_path, cls.repoman_path):
+ ret &= os.access(prog, os.X_OK)
+ return ret
+
+ def spawn_pmerge(self, cpvs, opts = []):
+ return subprocess.Popen([self.pmerge_path]
+ + self.common_pmerge_opts + opts + self.pm_options
+ + ['=%s' % cpv for cpv in cpvs])
+
+ def call_pmerge(self, *args, **kwargs):
+ p = self.spawn_pmerge(*args, **kwargs)
+ return p.wait()
+
+ def merge(self, cpvs):
+ ret = self.call_pmerge(cpvs)
+ return ret == 0
+
+ def unmerge(self, cpvs):
+ ret = self.call_pmerge(cpvs, ['--unmerge'])
+ return ret == 0
+
+ def merge_async(self, cpvs):
+ return self.spawn_pmerge(cpvs).pid
+
+ def append_repository(self, repo):
+ raise NotImplementedError('PkgCorePM does not support adding repositories yet.')
+
+ # XXX: vardb and stuff
+ # portage's get_userpriv_group() required by repoman
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-06-06 7:36 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-06-06 7:36 UTC (permalink / raw
To: gentoo-commits
commit: 25666338888be996c8ca496dc4fd8be11f91069f
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 6 07:36:31 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jun 6 07:36:31 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=25666338
Check whether portage has userpriv actually enabled.
---
PMSTestSuite/pm/portagepm.py | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index 8a980bb..b831731 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -77,6 +77,8 @@ class PortagePM(PackageManager):
return installed_cpvs
def get_userpriv_group(self):
- # XXX: check for FEATURES=userpriv
- from portage.data import userpriv_groups
- return userpriv_groups[0]
+ if 'userpriv' in self.vardb.settings.features:
+ from portage.data import userpriv_groups
+ return userpriv_groups[0]
+ else:
+ return None
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-31 19:18 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-31 19:18 UTC (permalink / raw
To: gentoo-commits
commit: 420241209ece14404946645b9675c953322c29d8
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue May 31 19:15:34 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue May 31 19:15:34 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=42024120
Add a few defaults options to emerge.
---
PMSTestSuite/pm/portagepm.py | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index 768ff23..e1ad442 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -14,6 +14,8 @@ class PortagePM(PackageManager):
emerge_path = '/usr/bin/emerge'
repoman_path = '/usr/bin/repoman'
+ common_emerge_opts = ['--ask', 'n', '--keep-going']
+
repo_paths = []
@classmethod
@@ -36,7 +38,8 @@ class PortagePM(PackageManager):
os.chdir(startdir)
def spawn_emerge(self, cpvs, opts = []):
- return subprocess.Popen([self.emerge_path] + opts + self.pm_options
+ return subprocess.Popen([self.emerge_path]
+ + self.common_emerge_opts + opts + self.pm_options
+ ['=%s' % cpv for cpv in cpvs],
env = {'PORTDIR_OVERLAY': ' '.join(self.repo_paths)})
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-31 19:18 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-31 19:18 UTC (permalink / raw
To: gentoo-commits
commit: ff8ceaa0d7f2b2ea2bde774d980ace0c141b7241
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue May 31 19:13:35 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue May 31 19:13:35 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=ff8ceaa0
Commonize emerge spawning code.
---
PMSTestSuite/pm/portagepm.py | 16 +++++++---------
1 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index 4b1e751..768ff23 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -35,11 +35,15 @@ class PortagePM(PackageManager):
subprocess.check_call([self.repoman_path, 'manifest'])
os.chdir(startdir)
- def call_emerge(self, cpvs, opts = []):
- return subprocess.call([self.emerge_path] + opts + self.pm_options
+ def spawn_emerge(self, cpvs, opts = []):
+ return subprocess.Popen([self.emerge_path] + opts + self.pm_options
+ ['=%s' % cpv for cpv in cpvs],
env = {'PORTDIR_OVERLAY': ' '.join(self.repo_paths)})
+ def call_emerge(self, *args, **kwargs):
+ p = self.spawn_emerge(*args, **kwargs)
+ return p.wait()
+
def merge(self, cpvs):
ret = self.call_emerge(cpvs)
return ret == 0
@@ -48,14 +52,8 @@ class PortagePM(PackageManager):
ret = self.call_emerge(cpvs, ['--unmerge'])
return ret == 0
- def spawn_emerge(self, cpvs, opts = []):
- p = subprocess.Popen([self.emerge_path] + opts + self.pm_options
- + ['=%s' % cpv for cpv in cpvs],
- env = {'PORTDIR_OVERLAY': ' '.join(self.repo_paths)})
- return p.pid
-
def merge_async(self, cpvs):
- return self.spawn_emerge(cpvs)
+ return self.spawn_emerge(cpvs).pid
_vardb = None
@property
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-31 12:14 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-31 12:14 UTC (permalink / raw
To: gentoo-commits
commit: 2b9753789b6c7bd44347cec9721c7ce39c8f8515
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue May 31 11:31:41 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue May 31 11:31:41 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=2b975378
PMSTestSuite.pm.portage -> portagepm to avoid namespace collision.
---
PMSTestSuite/pm/__init__.py | 2 +-
PMSTestSuite/pm/{portage.py => portagepm.py} | 0
2 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index 9a2d5ed..d3bd434 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -74,7 +74,7 @@ class PackageManager(object):
def get_package_managers():
""" Return the list of supported Package Managers. """
- from PMSTestSuite.pm.portage import PortagePM
+ from PMSTestSuite.pm.portagepm import PortagePM
class PMWrapper(object):
""" A wrapper class which stringifies into a name of particular PM. """
diff --git a/PMSTestSuite/pm/portage.py b/PMSTestSuite/pm/portagepm.py
similarity index 100%
rename from PMSTestSuite/pm/portage.py
rename to PMSTestSuite/pm/portagepm.py
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-31 12:14 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-31 12:14 UTC (permalink / raw
To: gentoo-commits
commit: 5a7d32196d0045b90835ef80a2fecb78125d3c39
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue May 31 11:40:05 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue May 31 11:40:05 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=5a7d3219
Support vdb lookups.
---
PMSTestSuite/pm/__init__.py | 10 ++++++++++
PMSTestSuite/pm/portagepm.py | 18 ++++++++++++++++++
2 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index d3bd434..9838822 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -71,6 +71,16 @@ class PackageManager(object):
"""
raise NotImplementedError('Please override the unmerge() method.')
+ def lookup_vardb(self, cpvs):
+ """
+ Lookup the vardb checking whether the packages listed in <cpvs>
+ are installed. The elements of iterable passed as <cpvs> shall be in CPV
+ form, i.e. category/pn-pv.
+
+ Returns an iterable of packages actually merged (a subset of <cpvs>).
+ """
+ raise NotImplementedError('Please override the lookup_vardb() method.')
+
def get_package_managers():
""" Return the list of supported Package Managers. """
diff --git a/PMSTestSuite/pm/portagepm.py b/PMSTestSuite/pm/portagepm.py
index 71672c0..9d5fa0b 100644
--- a/PMSTestSuite/pm/portagepm.py
+++ b/PMSTestSuite/pm/portagepm.py
@@ -44,3 +44,21 @@ class PortagePM(PackageManager):
ret = subprocess.call([self.emerge_path, '--unmerge'] + self.pm_options + atoms,
env = {'PORTDIR_OVERLAY': ' '.join(self.repo_paths)})
return ret == 0
+
+ _vardb = None
+ @property
+ def vardb(self):
+ if not self._vardb:
+ from portage import create_trees
+ trees = create_trees(
+ config_root = os.environ.get('PORTAGE_CONFIGROOT'),
+ target_root = os.environ.get('ROOT'))
+ tree = trees[max(trees)]
+ self._vardb = tree['vartree'].dbapi
+
+ return self._vardb
+
+ def lookup_vardb(self, cpvs):
+ installed_cpvs = set(self.vardb.cpv_all())
+ installed_cpvs &= set(cpvs)
+ return installed_cpvs
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-29 18:57 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-29 18:57 UTC (permalink / raw
To: gentoo-commits
commit: a7a0ed61a9b96b62a9d428e693bbf1c12c901fb4
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun May 29 18:52:17 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun May 29 18:52:17 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=a7a0ed61
Return to start directory after creating Manifests.
---
PMSTestSuite/pm/portage.py | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/portage.py b/PMSTestSuite/pm/portage.py
index 8a7763f..d31bd44 100644
--- a/PMSTestSuite/pm/portage.py
+++ b/PMSTestSuite/pm/portage.py
@@ -29,9 +29,11 @@ class PortagePM(PackageManager):
return ret
def remanifest(self, paths):
+ startdir = os.getcwd()
for path in paths:
os.chdir(path)
subprocess.check_call([self.repoman_path, 'manifest'])
+ os.chdir(startdir)
def merge(self, atoms):
ret = subprocess.call([self.emerge_path] + atoms,
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-29 18:57 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-29 18:57 UTC (permalink / raw
To: gentoo-commits
commit: eb3225fbda2b972f372bcdef63a83777f25d081e
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun May 29 18:42:05 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun May 29 18:42:05 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=eb3225fb
Implement minimal PortagePM.merge().
---
PMSTestSuite/pm/portage.py | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/PMSTestSuite/pm/portage.py b/PMSTestSuite/pm/portage.py
index c63fd49..8326856 100644
--- a/PMSTestSuite/pm/portage.py
+++ b/PMSTestSuite/pm/portage.py
@@ -30,3 +30,7 @@ class PortagePM(PackageManager):
for path in paths:
os.chdir(path)
subprocess.check_call([self.repoman_path, 'manifest'])
+
+ def merge(self, atoms):
+ ret = subprocess.call([self.emerge_path] + atoms)
+ return ret == 0
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-26 9:45 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-26 9:45 UTC (permalink / raw
To: gentoo-commits
commit: 7db2f02288ebcad988119a2ea50169052c450e6e
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu May 26 09:43:12 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu May 26 09:43:12 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=7db2f022
Add a more extensive test for PM availability.
---
PMSTestSuite/pm/portage.py | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/PMSTestSuite/pm/portage.py b/PMSTestSuite/pm/portage.py
index 51770b1..c63fd49 100644
--- a/PMSTestSuite/pm/portage.py
+++ b/PMSTestSuite/pm/portage.py
@@ -16,7 +16,15 @@ class PortagePM(PackageManager):
@classmethod
def is_available(cls):
- return os.access(cls.emerge_path, os.X_OK)
+ try:
+ import portage
+ except ImportError:
+ return False
+
+ ret = True
+ for prog in (cls.emerge_path, cls.repoman_path):
+ ret &= os.access(prog, os.X_OK)
+ return ret
def remanifest(self, paths):
for path in paths:
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-25 16:24 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-25 16:24 UTC (permalink / raw
To: gentoo-commits
commit: 273dd4357b25ff9996ce02808395e5e0a2e903b4
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 25 15:59:13 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 25 15:59:13 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=273dd435
Doc PMSTestSuite.pm better.
---
PMSTestSuite/pm/__init__.py | 27 ++++++++++++++++++++-------
PMSTestSuite/pm/portage.py | 1 +
2 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index 6a3cc38..9980659 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -11,26 +11,39 @@ True
class PackageManager(object):
"""
Base class for various package managers support.
-
- Package manager subclasses should define the following attrs:
- - name - human-readable PM name (for option values),
- - pkg - the full name (category/pn) of the package installing a particular
- Package Manager (for help messages),
- - ...
"""
+ @property
+ def name(self):
+ """ Human-readable, short PM name (used in option values). """
+ raise NotImplementedError('Please override the name property.')
+
+ @property
+ def pkg(self):
+ """
+ The full package name (in a format suitable for passing to a Package
+ Manager, e.g. category/pn) for the package installing a particular
+ Package Manager.
+ """
+ raise NotImplementedError('Please override the pkg property.')
+
@classmethod
- def is_available(cls):
+ def is_available(self):
pass
def get_package_managers():
+ """ Return the list of supported Package Managers. """
+
from PMSTestSuite.pm.portage import PortagePM
class PMWrapper(object):
+ """ A wrapper class which stringifies into a name of particular PM. """
def __init__(self, pmclass):
+ """ Instantiate the wrapper for PM class <pmclass>. """
self._pmclass = pmclass
def __str__(self):
+ """ Return the name of associated PM. """
return self._pmclass.name
return [PMWrapper(x) for x in (PortagePM,)]
diff --git a/PMSTestSuite/pm/portage.py b/PMSTestSuite/pm/portage.py
index e3174d4..5c8abd8 100644
--- a/PMSTestSuite/pm/portage.py
+++ b/PMSTestSuite/pm/portage.py
@@ -5,5 +5,6 @@
from PMSTestSuite.pm import PackageManager
class PortagePM(PackageManager):
+ """ A class implementing the interfaces to the Portage PM. """
name = 'portage'
pkg = 'sys-apps/portage'
^ permalink raw reply related [flat|nested] 43+ messages in thread
* [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/
@ 2011-05-25 16:24 Michał Górny
0 siblings, 0 replies; 43+ messages in thread
From: Michał Górny @ 2011-05-25 16:24 UTC (permalink / raw
To: gentoo-commits
commit: 1a379e673441e5f4b9e6a7c6fe133fdbda59ae01
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 25 16:24:37 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 25 16:24:37 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/pms-test-suite.git;a=commit;h=1a379e67
Distinguish between installed and non-installed PMs.
---
PMSTestSuite/pm/__init__.py | 22 ++++++++++++++++++----
PMSTestSuite/pm/portage.py | 6 ++++++
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/PMSTestSuite/pm/__init__.py b/PMSTestSuite/pm/__init__.py
index 9980659..27df2fa 100644
--- a/PMSTestSuite/pm/__init__.py
+++ b/PMSTestSuite/pm/__init__.py
@@ -4,8 +4,10 @@
"""
>>> pms = get_package_managers()
->>> 'portage' in [str(x) for x in pms]
+>>> 'portage' in [x.name for x in pms]
True
+>>> str(pms[0]) # doctest: +ELLIPSIS
+'...'
"""
class PackageManager(object):
@@ -28,8 +30,13 @@ class PackageManager(object):
raise NotImplementedError('Please override the pkg property.')
@classmethod
- def is_available(self):
- pass
+ def is_available(cls):
+ """
+ Check whether a particular PM is installed and executable.
+
+ Returns True if the PM is available, False otherwise.
+ """
+ raise NotImplementedError('Please override the is_available class method.')
def get_package_managers():
""" Return the list of supported Package Managers. """
@@ -42,8 +49,15 @@ def get_package_managers():
""" Instantiate the wrapper for PM class <pmclass>. """
self._pmclass = pmclass
+ @property
+ def name(self):
+ """ The name of associated PM. """
+ return self._pmclass.name
+
def __str__(self):
- """ Return the name of associated PM. """
+ """ Return the human-readable name of associated PM. """
+ if not self._pmclass.is_available():
+ return '(%s)' % self._pmclass.name
return self._pmclass.name
return [PMWrapper(x) for x in (PortagePM,)]
diff --git a/PMSTestSuite/pm/portage.py b/PMSTestSuite/pm/portage.py
index 5c8abd8..7a21593 100644
--- a/PMSTestSuite/pm/portage.py
+++ b/PMSTestSuite/pm/portage.py
@@ -2,9 +2,15 @@
# (c) 2011 Michał Górny <mgorny@gentoo.org>
# Released under the terms of the 2-clause BSD license.
+import os
+
from PMSTestSuite.pm import PackageManager
class PortagePM(PackageManager):
""" A class implementing the interfaces to the Portage PM. """
name = 'portage'
pkg = 'sys-apps/portage'
+
+ @classmethod
+ def is_available(cls):
+ return os.access('/usr/bin/emerge', os.X_OK)
^ permalink raw reply related [flat|nested] 43+ messages in thread
end of thread, other threads:[~2011-08-08 21:31 UTC | newest]
Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-31 21:06 [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/ Michał Górny
-- strict thread matches above, loose matches on Subject: below --
2011-08-08 21:31 [gentoo-commits] proj/pms-test-suite:master commit in: pmstestsuite/pm/ Michał Górny
2011-08-05 19:54 Michał Górny
2011-08-05 17:09 Michał Górny
2011-08-05 17:09 Michał Górny
2011-08-03 20:17 Michał Górny
2011-08-03 20:17 Michał Górny
2011-07-31 15:10 Michał Górny
2011-06-23 9:51 [gentoo-commits] proj/pms-test-suite:master commit in: PMSTestSuite/pm/ Michał Górny
2011-06-23 9:51 Michał Górny
2011-06-23 9:51 Michał Górny
2011-06-23 9:51 Michał Górny
2011-06-21 21:25 Michał Górny
2011-06-21 20:58 Michał Górny
2011-06-21 20:58 Michał Górny
2011-06-21 20:58 Michał Górny
2011-06-21 20:58 Michał Górny
2011-06-21 20:58 Michał Górny
2011-06-21 17:58 Michał Górny
2011-06-21 17:54 Michał Górny
2011-06-21 17:54 Michał Górny
2011-06-21 17:54 Michał Górny
2011-06-21 17:54 Michał Górny
2011-06-21 15:26 Michał Górny
2011-06-21 15:26 Michał Górny
2011-06-20 19:20 Michał Górny
2011-06-16 19:49 Michał Górny
2011-06-16 19:49 Michał Górny
2011-06-14 12:35 Michał Górny
2011-06-07 17:16 Michał Górny
2011-06-07 17:16 Michał Górny
2011-06-07 15:20 Michał Górny
2011-06-07 14:54 Michał Górny
2011-06-06 7:36 Michał Górny
2011-05-31 19:18 Michał Górny
2011-05-31 19:18 Michał Górny
2011-05-31 12:14 Michał Górny
2011-05-31 12:14 Michał Górny
2011-05-29 18:57 Michał Górny
2011-05-29 18:57 Michał Górny
2011-05-26 9:45 Michał Górny
2011-05-25 16:24 Michał Górny
2011-05-25 16:24 Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox