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 <f...@sysclose.org>
Co-authored-by: Gurucharan Shetty <g...@ovn.org>
Signed-off-by: Greg Rose <gvrose8...@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
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to