[Rpm-maint] rpm plugins
Panu Matilainen
pmatilai at laiskiainen.org
Thu Dec 19 17:34:27 UTC 2013
On 12/19/2013 06:37 PM, Mimi Zohar wrote:
> On Thu, 2013-12-19 at 16:50 +0200, Panu Matilainen wrote:
>> On 12/19/2013 04:26 PM, Mimi Zohar wrote:
>>> On Thu, 2013-12-19 at 15:28 +0200, Panu Matilainen wrote:
>>>> On 12/18/2013 08:55 PM, Mimi Zohar wrote:
>>>>> Hi Panu,
>>>>>
>>>>> I'm interested in using the new plugin architecture for adding
>>>>> 'security.ima'
>>>>> extended attributes. So far, I've cloned the rpm git repo, compiled and
>>>>> installed it, with plugins enabled. For the time being, I've written a
>>>>> test plugin. I would have thought that the test plugin would be called,
>>>>> when installing an rpm, but it doesn't seem to be.
>>>>>
>>>>> I've added prints to rpmpluginsCallFsmFilePre() and
>>>>> rpmpluginsCallFsmFilePost()
>>>>> that revealed plugins->count is 0. How do I register the plugin? Do I
>>>>> need to add something to the spec file? Any help would be much
>>>>> appreciated!
>>>>
>>>> You need to configure and explicitly enable plugins for them to get
>>>> activated. It's a bit of a mess at the moment and the details will
>>>> almost certainly change before becoming part of any official release,
>>>> but at the moment you basically need two bits of macro configuration
>>>> (replace "myplugin" with the name of your plugin):
>>>>
>>>> # Tell rpm where to find myplugin DSO
>>>> %__transaction_myplugin %{__plugindir}/myplugin.so
>>>>
>>>> # Enable the plugin (comma-separated list)
>>>> %__transaction_plugins myplugin
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>
>>> Thanks! Is there any particular place in the spec file, that these
>>> statements belong?
>>
>> These are not spec things, they are rpm system configuration. Ie
>> something to put into /usr/lib/rpm/macros.d, /etc/rpm/* or such.
>
> 'make install' automatically adds the lines
> to /usr/local/lib/rpm/macros.
> As the plugin count is still 0, I must be missing something.
>
> #------------------------------------------------------------------------------
> # Collection specific macros
> %__plugindir %{_libdir}/rpm-plugins
> %__collection_font %{__plugindir}/exec.so /usr/bin/fc-cache
> %__collection_java %{__plugindir}/exec.so /usr/bin/rebuild-gcj-db
> %__collection_sepolicy %{__plugindir}/sepolicy.so
> %__collection_sepolicy_flags 1
>
> # Transaction plugin macros
> %__transaction_systemd_inhibit %{__plugindir}/systemd_inhibit.so
> %__transaction_ima %{__plugindir}/ima.so
> %__transaction_selinux %{__plugindir}/selinux.so
> %__transaction_syslog %{__plugindir}/syslog.so
That's the first part of the required configuration. As explained in the
earlier mail, to actually *enable* any plugins you need to explicitly
enable by listing them in %__transaction_plugins macro. So to enable the
"ima" plugin you'll need to set this someplace:
%__transaction_plugins ima
"make install" does not enable any plugins, at least currently, partly
because of the issues with manipulating the __transaction_plugins list.
- Panu -
More information about the Rpm-maint
mailing list