Description of Problem: Because this package contains unowned directories, they will be created with the current umask. When having restrictive administrator settings (umask 077) ordinary user will not have access to them and can not use the package. Another problem occurs when removing packages. Then orphaned directories are remaining. | $ rpm -qf /usr/lib/pgsql /usr/lib/pgsql/contrib | file /usr/lib/pgsql is not owned by any package | postgresql-contrib-7.2.1-16 Version-Release number of selected component (if applicable): postgresql-contrib-7.2.1-16 postgresql-jdbc-7.2.1-16 postgresql-odbc-7.2.1-16 postgresql-tcl-7.2.1-16 How Reproducible: 100% Steps to Reproduce: 1. umask 077 2. make sure that postgresql-contrib is uninstalled completely (rm -rf /usr/lib/pgsql) 3. rpm -U postgresql-contrib-7.2.1-16.i386.rpm 4. ls -l /usr/lib/pgsql 5. try to use the programs/scripts/libraries/data of the package as non-root user 6. rpm -e postgresql-contrib-7.2.1-16 Actual Results: * at 4: | drwx------ 2 root root 4096 Sep 13 18:44 /usr/lib/pgsql * files can not be found/read at 5 and * /usr/lib/pgsql still exists after 6.
Assigning to me.
This is because /usr/lib/pgsql is not explicitly listed in the %files section for the contrib package. Ben will fix this.
I think this bug is probably out-of-date, if not wrong altogether. Looking at the current postgresql.spec file, %{_libdir}/pgsql is shown as a directory belonging to the postgresql-server package, which is probably reasonable. We can't list it as belonging to the contrib package, I don't think, since the server and pl packages also install libraries there. Is there anything we still ought to change?
Bug is still up-to-date. The postgresl-contrib package can be installed without the -server package and /usr/lib/pgsql would be unowned then (with the told consequences). I do not see a reason why this directory can not be listed in -contrib's %file list also. A better solution would be probably, when it is owned by the base 'postgresql' package. This would solve the problem for some other postgresql-* subpackages (-jdbc, -odbc, -tcl) also.
I've reassigned /usr/lib/pgsql to the base package, as per your last suggestion.