Description of problem: 4Suite-1.0.3 has a missing dependency on the postgresql-python package. Version-Release number of selected component (if applicable): 1.0.3 How reproducible: Always Steps to Reproduce: $ python Python 2.3.4 (#1, Feb 2 2005, 12:11:53) [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import Ft.Server.Server.Drivers.Postgres Actual results: Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib/python2.3/site-packages/Ft/Server/Server/Drivers/Postgres/__init__.py", line 3, in ? from Ft.Rdf.Drivers import Postgres File "/usr/lib/python2.3/site-packages/Ft/Rdf/Drivers/Postgres.py", line 17, in ? import _pg ImportError: No module named _pg Expected results: The module gets imported. Additional info: There's an "import _pg" statement in /usr/lib/python2.3/site-packages/Ft/Server/Server/Drivers/Postgres/__init__.py but _pgmodule.so is actually installed by the postgresql-python RPM Installing the postgresql-python RPM allows the "import" statement to succeed (well, not really, but this is going to be another bug). Therefore, either: 1. 4Suite should declare an explicit dependency on postgresql-python, or: 2. Create a 4Suite-postgres subpackage, and move the entire Drivers/Postgres directory into the subpackage, and have the subpackage declare a dependency on the postgresql-python RPM
Thanks for your report. 1. Considering that most users probably don't use 4Suite with postgresql, lettin 4Suite depend on postgresql would cause unnecessary installation of postgresql-python and postgresql-libs. 2. Looking at the exception output in rawhide: >>> from Ft.Server.Server.Drivers import LoadDriverModule >>> LoadDriverModule('Postgres') Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib/python2.4/site-packages/Ft/Server/Server/Drivers/__init__.py", line 53, in LoadDriverModule reason=str(error)) Ft.Server.Server.FtServerServerException: Driver 'Postgres' is unavailable. No module named _pg >>> LoadDriverModule('DoesntExist') Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib/python2.4/site-packages/Ft/Server/Server/Drivers/__init__.py", line 43, in LoadDriverModule driver=driverName) Ft.Server.Server.FtServerServerException: Driver type 'DoesntExist' is unknown. The output when postgresql-python is not installed is actually more informative than the output when the hypothetical 4Suite-postgresql is not installed.
It is not possible to cleanly split the package and to assure that both subpackages are installed on upgrades. Taken together with the error message differences described above, I think it is best to keep a single package without the postgresql-python dependency.