diff --git a/bin/rip.in b/bin/rip.in index 6bf16ed..5342e75 100755 --- a/bin/rip.in +++ b/bin/rip.in @@ -31,10 +31,15 @@ and assure it doesn't raise an exception. # now load the main function try: + from morituri.common import deps + from morituri.extern.deps import deps as edeps + h = deps.DepsHandler() + h.validate() from morituri.rip import main sys.exit(main.main(sys.argv[1:])) except ImportError, e: - from morituri.common import deps - h = deps.DepsHandler() h.handleImportError(e) sys.exit(1) +except edeps.DependencyError: + sys.stderr.write('rip: please fix the dependency and try again.\n') + sys.exit(1) diff --git a/morituri/common/deps.py b/morituri/common/deps.py index ec1062e..e99aa53 100644 --- a/morituri/common/deps.py +++ b/morituri/common/deps.py @@ -15,6 +15,7 @@ class DepsHandler(deps.DepsHandler): self.add(GStPython()) self.add(CDDB()) self.add(SetupTools()) + self.add(PyCDIO()) def report(self, summary): reporter = os.environ.get('EMAIL_ADDRESS', None) @@ -55,3 +56,20 @@ class SetupTools(deps.Dependency): def Fedora_install(self, distro): return self.Fedora_yum('python-setuptools') + + +class PyCDIO(deps.Dependency): + + module = 'pycdio' + name = "pycdio" + homepage = "http://www.gnu.org/software/libcdio/" + egg = 'pycdio' + + def Fedora_install(self, distro): + return self.Fedora_yum('pycdio') + + def validate(self): + version = self.version() + if version == '0.18': + return '''pycdio 0.18 does not work. +See http://savannah.gnu.org/bugs/?38185''' diff --git a/morituri/extern/python-deps b/morituri/extern/python-deps index c0888d4..11d0afd 160000 --- a/morituri/extern/python-deps +++ b/morituri/extern/python-deps @@ -1 +1 @@ -Subproject commit c0888d4ffc74c8cf341a5f048ce965036a43cc43 +Subproject commit 11d0afd7390d7a05a9335ac829a34d4f967b99a6 diff --git a/morituri/rip/main.py b/morituri/rip/main.py index 09ace6b..e27b69b 100644 --- a/morituri/rip/main.py +++ b/morituri/rip/main.py @@ -30,6 +30,7 @@ def main(argv): from morituri.common import deps h = deps.DepsHandler() + h.validate() c = Rip() try: