[ovs-dev] [PATCH] rhel: Change depmod configuration
Gregory Rose
gvrose8192 at gmail.com
Fri Jan 26 21:31:28 UTC 2018
On 1/26/2018 10:41 AM, Flavio Leitner wrote:
> On Fri, Jan 26, 2018 at 10:03:53AM -0800, Gregory Rose wrote:
>> On 1/26/2018 5:30 AM, Flavio Leitner wrote:
>>> Regarding to change --add-modules to --add-kernel, well, I don't see
>>> how that is helping. Maybe I am missing something, but every time a
>>> kernel is installed, it will run weak-modules --add-kernel which
>>> should create the weak-updates links accordingly, unless the kernel
>>> is not compatible.
>>>
>>> You can verify what the kernel's post install scripts does with this
>>> command:
>>> # rpm -q kernel --scripts
>>>
>>> You should find this snippet:
>>> if [ -x /sbin/weak-modules ]
>>> then
>>> /sbin/weak-modules --add-kernel 2.6.32-696.18.7.el6.x86_64 || exit $?
>>> fi
>> OK, let me check that again as well but we were definitely seeing situations
>> in which the
>> --add-modules was not working. The kernel modules were simply not
>> installed. At all.
>> But using --add-kernel seemed to fix it. I only found out about the
>> add-kernel option
>> while looking at the weak-modules script and it seemed to fix the situation
>> I was looking at.
>> I'll re-verify using the rpm -q kernel --scripts command. After some
>> further investigation I'll
>> get back with my findings. Maybe not until mid next week though because I
>> have some other
>> duties to attend to as well.
> The --add-module would be executed by kmod to add specific modules
> to all installed and supported kernels while --add-kernel would be
> executed by the kernel package to get all modules symlinks done
> for this kernel.
>
> Also that --add-kernel receives a kernel version as parameter and
> not the module list from stdin. What is happening is that it is
> updating the symlinks for the running kernel only ($1 is empty).
OK, missed that while trying to make sense of that script. :) But, it
did (at least seem)
to fix the cases I mentioned. However, based upon your comments it was
a side effect
of something else I guess.
> I don't know how you're reproducing this, but perhaps you can change
> those %post/%pre sections to capture the system's state before and
> after, or even save outputs with debugging enabled (set -x) to
> temp files.
>
> e.g.: sh -x /sbin/weak-modules &> /tmp/weak-modules.log
Good idea. Thanks for the pointers!
- Greg
>
> HTH,
> fbl
>
>> I really appreciate your feed back Flavio! Thanks!!!
>>
>> - Greg
>>
>>> fbl
>>>
>>>> Cc: Flavio Leitner <fbl at sysclose.org>
>>>> Co-authored-by: Gurucharan Shetty <guru at ovn.org>
>>>> Signed-off-by: Greg Rose <gvrose8192 at gmail.com>
>>>> ---
>>>> rhel/openvswitch-kmod-fedora.spec.in | 12 +++++++-----
>>>> rhel/openvswitch-kmod-rhel6.spec.in | 14 ++++++++------
>>>> rhel/openvswitch-kmod.files | 2 +-
>>>> 3 files changed, 16 insertions(+), 12 deletions(-)
>>>>
>>>> diff --git a/rhel/openvswitch-kmod-fedora.spec.in b/rhel/openvswitch-kmod-fedora.spec.in
>>>> index c0cd298..ae3a4d8 100644
>>>> --- a/rhel/openvswitch-kmod-fedora.spec.in
>>>> +++ b/rhel/openvswitch-kmod-fedora.spec.in
>>>> @@ -43,13 +43,15 @@ make %{_smp_mflags} -C datapath/linux
>>>> rm -rf $RPM_BUILD_ROOT
>>>> make INSTALL_MOD_PATH=$RPM_BUILD_ROOT -C datapath/linux modules_install
>>>> mkdir -p $RPM_BUILD_ROOT/etc/depmod.d
>>>> +
>>>> +echo "search weak-updates updates extra built-in" >> $RPM_BUILD_ROOT/etc/depmod.d/01openvswitch.conf
>>>> for module in $RPM_BUILD_ROOT/lib/modules/%{kernel}/extra/*.ko
>>>> do
>>>> modname="$(basename ${module})"
>>>> echo "override ${modname%.ko} * extra" >> \
>>>> - $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
>>>> + $RPM_BUILD_ROOT/etc/depmod.d/01openvswitch.conf
>>>> echo "override ${modname%.ko} * weak-updates" >> \
>>>> - $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
>>>> + $RPM_BUILD_ROOT/etc/depmod.d/01openvswitch.conf
>>>> done
>>>> %clean
>>>> @@ -64,7 +66,7 @@ if [ -x "/sbin/weak-modules" ]; then
>>>> for m in openvswitch vport-gre vport-stt vport-geneve \
>>>> vport-lisp vport-vxlan; do
>>>> echo "/lib/modules/%{kernel}/extra/$m.ko"
>>>> - done | /sbin/weak-modules --add-modules
>>>> + done | /sbin/weak-modules --add-kernel
>>>> fi
>>>> %postun
>>>> @@ -76,14 +78,14 @@ if [ "$1" = 0 ]; then # Erase, not upgrade
>>>> for m in openvswitch vport-gre vport-stt vport-geneve \
>>>> vport-lisp vport-vxlan; do
>>>> echo "/lib/modules/%{kernel}/extra/$m.ko"
>>>> - done | /sbin/weak-modules --remove-modules
>>>> + done | /sbin/weak-modules --remove-kernel
>>>> fi
>>>> fi
>>>> %files
>>>> %defattr(0644,root,root)
>>>> /lib/modules/%{kernel}/extra/*.ko
>>>> -/etc/depmod.d/kmod-openvswitch.conf
>>>> +/etc/depmod.d/01openvswitch.conf
>>>> %exclude /lib/modules/%{kernel}/modules.*
>>>> %changelog
>>>> diff --git a/rhel/openvswitch-kmod-rhel6.spec.in b/rhel/openvswitch-kmod-rhel6.spec.in
>>>> index c6e6db5..28c7ce1 100644
>>>> --- a/rhel/openvswitch-kmod-rhel6.spec.in
>>>> +++ b/rhel/openvswitch-kmod-rhel6.spec.in
>>>> @@ -62,13 +62,15 @@ for flavor in %flavors_to_build ; do
>>>> find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
>>>> done
>>>> install -d %{buildroot}%{_sysconfdir}/depmod.d/
>>>> +
>>>> +echo "search extra/openvswitch weak-updates/openvswitch updates extra built-in weak-updates" >> 01%{oname}.conf
>>>> for module in %{buildroot}/lib/modules/%{kernel_version}/$INSTALL_MOD_DIR/*.ko;
>>>> do
>>>> modname="$(basename ${module})"
>>>> - echo "override ${modname%.ko} * extra/%{oname}" >> %{oname}.conf
>>>> - echo "override ${modname%.ko} * weak-updates/%{oname}" >> %{oname}.conf
>>>> + echo "override ${modname%.ko} * extra/%{oname}" >> 01%{oname}.conf
>>>> + echo "override ${modname%.ko} * weak-updates/%{oname}" >> 01%{oname}.conf
>>>> done
>>>> -install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
>>>> +install -m 644 01%{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
>>>> %post
>>>> # Ensure that modprobe will find our modules.
>>>> @@ -79,7 +81,7 @@ if [ -x "/sbin/weak-modules" ]; then
>>>> for m in openvswitch vport-gre vport-stt vport-geneve \
>>>> vport-lisp vport-vxlan; do
>>>> echo "/lib/modules/%{kernel}/extra/$m.ko"
>>>> - done | /sbin/weak-modules --add-modules
>>>> + done | /sbin/weak-modules --add-kernel
>>>> fi
>>>> %postun
>>>> @@ -91,13 +93,13 @@ if [ "$1" = 0 ]; then # Erase, not upgrade
>>>> for m in openvswitch vport-gre vport-stt vport-geneve \
>>>> vport-lisp vport-vxlan; do
>>>> echo "/lib/modules/%{kernel}/extra/$m.ko"
>>>> - done | /sbin/weak-modules --remove-modules
>>>> + done | /sbin/weak-modules --remove-kernel
>>>> fi
>>>> fi
>>>> %files
>>>> %defattr(644,root,root)
>>>> -/etc/depmod.d/%{oname}.conf
>>>> +/etc/depmod.d/01%{oname}.conf
>>>> %clean
>>>> rm -rf $RPM_BUILD_ROOT
>>>> diff --git a/rhel/openvswitch-kmod.files b/rhel/openvswitch-kmod.files
>>>> index 357c2e8..49262f3 100644
>>>> --- a/rhel/openvswitch-kmod.files
>>>> +++ b/rhel/openvswitch-kmod.files
>>>> @@ -1,3 +1,3 @@
>>>> %defattr(644,root,root,755)
>>>> /lib/modules/%2-%1
>>>> -/etc/depmod.d/openvswitch.conf
>>>> +/etc/depmod.d/01openvswitch.conf
>>>> --
>>>> 1.8.3.1
>>>>
>>>> _______________________________________________
>>>> dev mailing list
>>>> dev at openvswitch.org
>>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
More information about the dev
mailing list