From Fedora Project Wiki
(forgot to add postun)
(Few clairifications)
Line 1: Line 1:
These are guidelines for packaging CMPI plugins, used by the tog-pegasus or sblim-sfcb CIMOMs.  Such plugins are called "CIM providers", and each uses the CMPI interface to the CIMOM.
In Fedora 12  and above These are guidelines for packaging CMPI plugins, used by the tog-pegasus or sblim-sfcb CIMOMs.  Such plugins are called "CIM providers", and each uses the CMPI interface to the CIMOM.


 
<ol>
# Make sure each provider Requires: tog-pegasus (or sblim-sfcb). Each provider should "Require" either cim server for now. This is going to change in future, to Requires: cim-server.  sblim-sfcb has this already, need to add it to tog-pegasus
<li>Make sure each provider <code>Requires: cim server</code>. This is a virtual provide that each CIMOM has.   
# All plugins are shared libraries, ending in .so.  These are to be installed in the %{_libdir}/cmpi/ directory.
{{admon/warn||sblim-sfcb has this already, need to add it to tog-pegasus}}</li>
# Each provider should register in %postin and unregister in %preun to the cim server.
<li>
All plugins are shared libraries, ending in .so.  These are to be installed in the %{_libdir}/cmpi/ directory.
</li><li>
Some of the providers may have hard-coded shared object names, which are dlopen()ed at runtime.  rpmlint will throw warnings to move *.so files to a -devel package, but this would be incorrect for these packages.  Such warnings may be ignored.
</li><li>
All the .registration and .mof files go to %{_datadir}/%{name}
</li><li>
Each provider should register in %postin and unregister in %preun to the cim server.
<pre>
<pre>
%pre
%pre
Line 39: Line 46:
%postun -p /sbin/ldconfig
%postun -p /sbin/ldconfig
</pre>
</pre>
 
</li></ol>
# Some of the providers may have hard-coded shared object names, which are dlopen()ed at runtime.  rpmlint will throw warnings to move *.so files to a -devel package, but this would be incorrect for these packages.  Such warnings may be ignored.
# All the registration and mof files go to %{_datadir}/%{name}

Revision as of 16:34, 4 February 2010

In Fedora 12 and above These are guidelines for packaging CMPI plugins, used by the tog-pegasus or sblim-sfcb CIMOMs. Such plugins are called "CIM providers", and each uses the CMPI interface to the CIMOM.

  1. Make sure each provider Requires: cim server. This is a virtual provide that each CIMOM has. Template:Admon/warn
  2. All plugins are shared libraries, ending in .so. These are to be installed in the %{_libdir}/cmpi/ directory.
  3. Some of the providers may have hard-coded shared object names, which are dlopen()ed at runtime. rpmlint will throw warnings to move *.so files to a -devel package, but this would be incorrect for these packages. Such warnings may be ignored.
  4. All the .registration and .mof files go to %{_datadir}/%{name}
  5. Each provider should register in %postin and unregister in %preun to the cim server.
    %pre
    if [ "$1" -gt 1 ]; then
    # If upgrading, deregister old version
        %{_datadir}/%{name}/provider-register.sh \
            -d -t pegasus \
            -m %{_datadir}/%{name}/Linux_Network.mof \
            -r %{_datadir}/%{name}/Linux_Network.registration \
            > /dev/null 2>&1 || :;
    fi
    
    %post
    /sbin/ldconfig
    if [ "$1" -ge 1 ]; then
    # Register Schema and Provider
        %{_datadir}/%{name}/provider-register.sh \
            -t pegasus \
            -m %{_datadir}/%{name}/Linux_Network.mof \
            -r %{_datadir}/%{name}/Linux_Network.registration \
            > /dev/null 2>&1 || :;
    fi
    
    %preun
    if [ "$1" -eq 0 ]; then
    # Deregister only if not upgrading
        %{_datadir}/%{name}/provider-register.sh \
            -d -t pegasus \
            -m %{_datadir}/%{name}/Linux_Network.mof \
            -r %{_datadir}/%{name}/Linux_Network.registration \
            > /dev/null 2>&1 || :;
    fi
    
    %postun -p /sbin/ldconfig