From Fedora Project Wiki
m (fix typo) |
(fixups per toshio's comments) |
||
Line 3: | Line 3: | ||
# 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 | # 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 | ||
# All plugins are shared libraries, ending in .so. These are to be installed in the | * sblim-sfcb has this already, need to add it to tog-pegasus | ||
# All plugins are shared libraries, ending in .so. These are to be installed in the %{_libdir}/cmpi/ directory. | |||
# Each provider should register in %postin and unregister in %preun to the cim server. | # Each provider should register in %postin and unregister in %preun to the cim server. | ||
<pre> | |||
%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 | |||
</pre> | |||
# 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. | # 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 | # All the registration and mof files go to %{_datadir}/%{name} |
Revision as of 20:00, 3 February 2010
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.
- 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
- All plugins are shared libraries, ending in .so. These are to be installed in the %{_libdir}/cmpi/ directory.
- 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
- 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}