Bug 474614

Summary: qpidc : Unowned directories
Product: [Fedora] Fedora Reporter: Michael Schwendt <bugs.michael>
Component: qpidcAssignee: Nuno Santos <nsantos>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhideCC: aconway, aortega, jose.p.oliveira.oss, nsantos
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-02-21 14:59:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michael Schwendt 2008-12-04 16:58:59 UTC
One or more directories are not included within this
package and/or its sub-packages:

=> qpidc-0.3.705289-1.fc10.i386 (rawhide-development-i386)
/etc/qpid

=> qpidc-devel-0.3.705289-1.fc10.i386 (rawhide-development-i386)
/usr/include/qpid

=> qpidc-rdma-0.3.705289-1.fc10.i386 (rawhide-development-i386)
/usr/lib/qpid
/usr/lib/qpid/client
/etc/qpid

=> qpidc-0.3.705289-1.fc10.src.rpm
/usr/lib/qpid
/usr/lib/qpid/daemon

=> qpidd-cluster-0.3.705289-1.fc10.i386 (rawhide-development-i386)
/usr/lib/qpid
/usr/lib/qpid/daemon

=> qpidd-devel-0.3.705289-1.fc10.i386 (rawhide-development-i386)
/usr/include/qpid

=> qpidd-rdma-0.3.705289-1.fc10.i386 (rawhide-development-i386)
/usr/lib/qpid
/usr/lib/qpid/daemon

[...]

Further information:

https://fedoraproject.org/wiki/Packaging/ReviewGuidelines

MUST: A package must own all directories that it creates. If it does not
create a directory that it uses, then it should require a package which
does create that directory.

https://fedoraproject.org/wiki/Packaging/Guidelines#FileAndDirectoryOwnership
https://fedoraproject.org/wiki/Packaging/UnownedDirectories

Comment 1 Jose Pedro Oliveira 2009-01-08 22:35:17 UTC
Related bug: #474613 (with a solution for the qpidd-* and rhm directory ownership)

Comment 2 Jose Pedro Oliveira 2009-01-16 00:26:20 UTC
Directory ownership problems:

 * the qpidd package owns the directory  %{_libdir}/qpidd  but this directory
   appears to be unused: the qpidd-{xml,acl,...} and the rhm rpms install their
   libraries in the directory %{_libdir}/qpid/daemon 

 * the qpidc-{ssl,rdma} rpms install libraries in the  %{_libdir}/qpid/client 
   directory which no package owns

A possible solution could be:

 * directory %{_libdir}/qpid/daemon --> should be owned by the qpidd rpm

 * directories %{_libdir}/qpid and %{_libdir}/qpid/client --> should be 
   owned by the qpidc rpm

 * directory %{_sysconfdir}/qpid  -->  should be owned by the qpidc rpm

 * directory %{_includedir}/qpid  -->  should be owned by the qpidc-devel rpm

/jpo

Comment 3 Fedora Update System 2009-01-21 16:54:25 UTC
qpidc-0.4.734452-2.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/qpidc-0.4.734452-2.fc10

Comment 4 Fedora Update System 2009-01-21 16:54:33 UTC
qpidc-0.4.734452-2.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/qpidc-0.4.734452-2.fc9

Comment 5 Jose Pedro Oliveira 2009-01-21 19:18:48 UTC
Nuno,

There is a problem with your solution: the qpidc and qpidd rpms are now shipping with the extensions libraries.

qpidc rpm listing
-----------------
--- qpidc-0.4.734452-1.txt      2009-01-21 19:04:52.000000000 +0000
+++ qpidc-0.4.734452-2.txt      2009-01-21 19:04:48.000000000 +0000
@@ -1,8 +1,12 @@
+/etc/qpid
 /etc/qpid/qpidc.conf
 /usr/lib64/libqpidclient.so.0
 /usr/lib64/libqpidclient.so.0.1.0
 /usr/lib64/libqpidcommon.so.0
 /usr/lib64/libqpidcommon.so.0.1.0
+/usr/lib64/qpid/client
+/usr/lib64/qpid/client/rdmaconnector.so
+/usr/lib64/qpid/client/sslconnector.so
 /usr/share/doc/qpidc-0.4.734452
 /usr/share/doc/qpidc-0.4.734452/DESIGN
 /usr/share/doc/qpidc-0.4.734452/INSTALL


Note: same thing happened with the qpidd rpms.

When you add a line like

  %_libdir/qpid/client

in the specfile, it pulls in everything installed under that location (files and subdirectories). As you only want to include the directory you need to prefix them with "%dir ".

Comment 6 Jose Pedro Oliveira 2009-01-21 19:21:53 UTC
Examples:

--- qpidc.spec.2        2009-01-21 15:49:47.000000000 +0000
+++ qpidc.spec  2009-01-21 18:57:04.000000000 +0000
@@ -238,8 +238,8 @@
 %_libdir/libqpidcommon.so.0.1.0
 %_libdir/libqpidclient.so.0
 %_libdir/libqpidclient.so.0.1.0
-%_libdir/qpid/client
-%_sysconfdir/qpid
+%dir %_libdir/qpid/client
+%dir %_sysconfdir/qpid
 %config(noreplace) %_sysconfdir/qpid/qpidc.conf
 
 %files devel
@@ -268,7 +268,7 @@
 %config(noreplace) %_sysconfdir/qpidd.conf
 %config(noreplace) %_sysconfdir/sasl2/qpidd.conf
 %{_initrddir}/qpidd
-%_libdir/qpid/daemon
+%dir %_libdir/qpid/daemon
 %attr(755, qpidd, qpidd) %_localstatedir/lib/qpidd
 %attr(755, qpidd, qpidd) %_libdir/qpidd
 %attr(755, qpidd, qpidd) /var/run/qpidd

Comment 7 Nuno Santos 2009-01-22 02:07:47 UTC
Yes, you're absolutely right, it was an oversight from my side. 

The most recent builds (qpidc-0.4.734452-4.fc10/.fc9 and qpidc-0.4.734452-3 on rawhide) fix that issue, they should be in updates soon.

Thanks,
Nuno

Comment 8 Jose Pedro Oliveira 2009-01-23 03:16:51 UTC
*** Bug 474613 has been marked as a duplicate of this bug. ***

Comment 9 Jose Pedro Oliveira 2009-01-23 03:46:11 UTC
Nuno,

We are still missing one directory ownership in qpidc-0.4.734452-4:

Problem:

  $ rpm -qf /usr/lib/qpid
  file /usr/lib/qpid is not owned by any package

Solution:

  The qpidc rpm should own "%_libdir/qpid".  Missing line in the specfile:

            %dir %_libdir/qpid


Other problems (minor) detected:

 * Ownership of /usr/include/qpid/broker

   # rpm -qf /usr/include/qpid/broker
   qpidc-devel-0.4.734452-4.el5
   qpidd-devel-0.4.734452-4.el5

   It should belong only to qpidd-devel.

 * The qpidd rpm owns the directory /usr/lib/qpidd but it appears to be
   unused.  Specfile line:
     %attr(755, qpidd, qpidd) %_libdir/qpidd


Possible patch (only for the first 2 problems):
----------
$ diff -u qpidc.spec.4 qpidc.spec
--- qpidc.spec.4        2009-01-22 00:58:20.000000000 +0000
+++ qpidc.spec  2009-01-23 03:16:58.000000000 +0000
@@ -238,12 +238,14 @@
 %_libdir/libqpidcommon.so.0.1.0
 %_libdir/libqpidclient.so.0
 %_libdir/libqpidclient.so.0.1.0
+%dir %_libdir/qpid
 %dir %_libdir/qpid/client
 %dir %_sysconfdir/qpid
 %config(noreplace) %_sysconfdir/qpid/qpidc.conf
 
 %files devel
 %defattr(-,root,root,-)
+%dir %_includedir/qpid
 %_includedir/qpid/*.h
 %_includedir/qpid/amqp_0_10
 %_includedir/qpid/client
@@ -253,7 +255,6 @@
 %_includedir/qpid/log
 %_includedir/qpid/management
 %_includedir/qpid/agent
-%_includedir/qpid
 %_includedir/qmf
 %_libdir/libqpidcommon.so
 %_libdir/libqpidclient.so
----------

Comment 10 Fedora Update System 2009-01-24 02:33:31 UTC
qpidc-0.4.734452-4.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 11 Fedora Update System 2009-01-24 02:41:52 UTC
qpidc-0.4.734452-4.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 12 Jose Pedro Oliveira 2009-01-24 03:45:46 UTC
Re-opening...

As explained in the 5th comment the qpidc-0.4.734452-4 update didn't fixed all the problems.

Comment 13 Jose Pedro Oliveira 2009-01-29 21:45:34 UTC
(In reply to comment #12)
> Re-opening...
> 
> As explained in the 5th comment the qpidc-0.4.734452-4 update didn't fixed all
> the problems.

Oops! It should have been the 9th comment...

Ticket still requires attention.

Comment 14 Jose Pedro Oliveira 2009-01-30 00:16:25 UTC
Source:
https://www.redhat.com/archives/fedora-extras-commits/2009-January/msg09770.html

Note:
The ownership of  %_libdir/qpid  by the qpidc rpm is still missing.

Comment 15 Jose Pedro Oliveira 2009-01-30 20:08:02 UTC
Everything appears to be fine now:

  * The %_libdir/qpid is owned by the qpidc rpm
  * No dual packaging of the broker include files

Tests:
  $ rpm -qf /usr/include/qpid/broker/Timer.h
  qpidd-devel-0.4.738618-3

  $ rpm -qf /usr/include/qpid/broker/
  qpidd-devel-0.4.738618-3

  $ rpm -qf /usr/include/qpid/
  qpidc-devel-0.4.738618-3

  $ rpm -qf /usr/lib/qpid/
  qpidc-0.4.738618-3.el5

Comment 16 Jose Pedro Oliveira 2009-01-30 20:14:25 UTC
Nuno,

You also need to rebuild rhm against the new qpidc as its requirements are hardcoded to the qpidc svn revision number:

  rhm specfile
  ----------
  #
  # Spec file for Red Hat Messaging package rhm.
  #

  %define svnrev 3045
  # built against qpidc svn rev: 
  %define svnrev_qpid 734452
  ...
  Requires: qpidd = 0.4.%{svnrev_qpid}
  ...
  ----------

Comment 17 Nuno Santos 2009-01-30 23:38:01 UTC
Yes, I'm aware of that -- I'm waiting for the rpms to be moved into the buildroots so that I can build rhm. I'll then push the whole set as an update to F10 (and F9 too).

Nuno

Comment 18 Jose Pedro Oliveira 2009-02-21 14:59:06 UTC
Closing.