Hello community,

here is the log from the commit of package kmod for openSUSE:Factory checked in 
at 2015-11-18 22:31:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmod (Old)
 and      /work/SRC/openSUSE:Factory/.kmod.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kmod"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kmod/kmod-testsuite.changes      2015-04-27 
22:07:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kmod.new/kmod-testsuite.changes 2015-11-18 
22:31:31.000000000 +0100
@@ -1,0 +2,13 @@
+Sat Nov  7 10:40:29 UTC 2015 - jeng...@inai.de
+
+- Update to new upstream release 21
+* Cache built modules so it is easier to run "make check" on
+  build servers by distro maintainers. If kmod is configured with
+  --disable-test-modules, the modules from cache will be used by
+  "make check". No changes to the tests are needed and all of
+  them can run fine.
+- Specify KDIR explicitly to resolve build failure with `osc build`
+  (because kmod uses `uname -r` and the kernel versions need not
+  match between build env and local host)
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/kmod/kmod.changes        2015-04-27 
22:07:48.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kmod.new/kmod.changes   2015-11-18 
22:31:32.000000000 +0100
@@ -1,0 +2,7 @@
+Sat Nov  7 10:29:54 UTC 2015 - jeng...@inai.de
+
+- Update to new upstream release 21
+* The kmod tool now prints the relevant configuration options it was built
+  with when the "--version" argument is passed.
+
+-------------------------------------------------------------------

Old:
----
  kmod-20.tar.sign
  kmod-20.tar.xz

New:
----
  kmod-21.tar.sign
  kmod-21.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kmod-testsuite.spec ++++++
--- /var/tmp/diff_new_pack.Rnpego/_old  2015-11-18 22:31:33.000000000 +0100
+++ /var/tmp/diff_new_pack.Rnpego/_new  2015-11-18 22:31:33.000000000 +0100
@@ -18,7 +18,7 @@
 
 Name:           kmod-testsuite
 %define lname  libkmod2
-Version:        20
+Version:        21
 Release:        0
 Summary:        Testsuite of the kmod package
 License:        LGPL-2.1+ and GPL-2.0+
@@ -52,6 +52,7 @@
 BuildRequires:  pkgconfig(zlib)
 %endif
 Requires:       suse-module-tools
+%define kdir /usr/src/linux-obj/%_target_cpu/default
 
 %description
 This spec file does not produce any binary RPMs. It just builds kmod and
@@ -76,12 +77,12 @@
        --includedir="%_includedir/kmod" \
        --with-rootlibdir="%_libdir" \
        --bindir="%_bindir"
-make %{?_smp_mflags} V=1
+make %{?_smp_mflags} V=1 KDIR="%kdir"
 
 %install
 # empty
 
 %check
-make check V=1
+make check V=1 KDIR="%kdir"
 
 %changelog

++++++ kmod.spec ++++++
--- /var/tmp/diff_new_pack.Rnpego/_old  2015-11-18 22:31:33.000000000 +0100
+++ /var/tmp/diff_new_pack.Rnpego/_new  2015-11-18 22:31:33.000000000 +0100
@@ -18,7 +18,7 @@
 
 Name:           kmod
 %define lname  libkmod2
-Version:        20
+Version:        21
 Release:        0
 Summary:        Utilities to load modules into the kernel
 License:        LGPL-2.1+ and GPL-2.0+
@@ -152,7 +152,7 @@
 ln -s "%_bindir/kmod" "$b/bin/";
 %if "%_libdir" != "/%_lib"
 ln -s "%_libdir/libkmod.so.2" "$b/%_lib/";
-ln -s "%_libdir/libkmod.so.2.2.10" "$b/%_lib/";
+ln -s "%_libdir/libkmod.so.2.2.11" "$b/%_lib/";
 %endif
 
 %post

++++++ kmod-20.tar.xz -> kmod-21.tar.xz ++++++
++++ 2739 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/Makefile.am new/kmod-21/Makefile.am
--- old/kmod-20/Makefile.am     2015-03-01 17:54:51.000000000 +0100
+++ new/kmod-21/Makefile.am     2015-06-09 07:35:37.000000000 +0200
@@ -7,6 +7,7 @@
 DISTCLEAN_LOCAL_HOOKS =
 EXTRA_DIST =
 CLEANFILES = $(BUILT_FILES)
+DISTCLEANFILES =
 BUILT_FILES =
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 AM_MAKEFLAGS = --no-print-directory
@@ -40,7 +41,7 @@
        $(SED_PROCESS)
 
 LIBKMOD_CURRENT=4
-LIBKMOD_REVISION=10
+LIBKMOD_REVISION=11
 LIBKMOD_AGE=2
 
 noinst_LTLIBRARIES = shared/libshared.la
@@ -127,6 +128,13 @@
        tools/modinfo.c tools/modprobe.c \
        tools/depmod.c tools/log.h tools/log.c \
        tools/static-nodes.c
+
+if BUILD_EXPERIMENTAL
+tools_kmod_SOURCES += \
+       tools/insert.c \
+       tools/remove.c
+endif
+
 tools_kmod_LDADD = \
        shared/libshared.la \
        libkmod/libkmod-internal.la
@@ -216,6 +224,7 @@
 CREATE_ROOTFS = $(AM_V_GEN) ( $(RM) -rf $(ROOTFS) && mkdir -p $(dir $(ROOTFS)) 
&& \
                                cp -r $(ROOTFS_PRISTINE) $(ROOTFS) && \
                                find $(ROOTFS) -type d -exec chmod +w {} \; && \
+                               find $(ROOTFS) -type f -name .gitignore -exec 
rm -f {} \; && \
                                $(top_srcdir)/testsuite/populate-modules.sh \
                                        $(MODULE_PLAYGROUND) $(ROOTFS) ) && \
                                touch testsuite/stamp-rootfs
@@ -226,7 +235,12 @@
                cp -r $(top_srcdir)/$(MODULE_PLAYGROUND) 
$(top_builddir)/$(MODULE_PLAYGROUND) && \
                find $(top_builddir)/$(MODULE_PLAYGROUND) -type d -exec chmod 
+w {} \; ; \
                fi
+if BUILD_MODULES
        $(MAKE) -C $(MODULE_PLAYGROUND)
+else
+       $(MAKE) -C $(MODULE_PLAYGROUND) FAKE_BUILD=1
+endif
+
 
 rootfs: build-module-playground
        $(CREATE_ROOTFS)
@@ -253,6 +267,7 @@
 
 
 EXTRA_DIST += \
+       testsuite/module-playground/cache \
        testsuite/module-playground/dummy.sha1 \
        testsuite/module-playground/dummy.sha256 \
        testsuite/module-playground/Makefile \
@@ -316,6 +331,11 @@
        testsuite/test-dependencies testsuite/test-depmod \
        testsuite/test-list
 
+if BUILD_EXPERIMENTAL
+TESTSUITE += \
+       testsuite/test-tools
+endif
+
 check_PROGRAMS = $(TESTSUITE)
 TESTS = $(TESTSUITE)
 
@@ -355,6 +375,11 @@
 testsuite_test_list_LDADD = $(TESTSUITE_LDADD)
 testsuite_test_list_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
 
+if BUILD_EXPERIMENTAL
+testsuite_test_tools_LDADD = $(TESTSUITE_LDADD)
+testsuite_test_tools_CPPFLAGS = $(TESTSUITE_CPPFLAGS)
+endif
+
 testsuite-distclean:
        $(RM) -r $(ROOTFS)
        $(RM) testsuite/stamp-rootfs
@@ -375,6 +400,8 @@
 buildtest-TESTS:
        $(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) $(check_PROGRAMS)
 
+DISTCLEANFILES += $(DOLT_CLEANFILES)
+
 # 
------------------------------------------------------------------------------
 # coverage
 # 
------------------------------------------------------------------------------
@@ -425,9 +452,9 @@
        cov-build --dir cov-int make -j 4
        tar caf $@ cov-int
 
-coverity-tar: kmod-coverity-$(shell git describe).tar.xz
+coverity-tar: kmod-coverity-$(shell git describe  2>/dev/null).tar.xz
 
-coverity-sync: kmod-coverity-$(shell git describe).tar.xz
+coverity-sync: kmod-coverity-$(shell git describe 2>/dev/null).tar.xz
        @echo "uploading coverity tarball"
        @curl --form token=$(COVERITY_KMOD_TOKEN) \
                --form email=lucas.de.mar...@gmail.com \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/NEWS new/kmod-21/NEWS
--- old/kmod-20/NEWS    2015-03-01 18:39:37.000000000 +0100
+++ new/kmod-21/NEWS    2015-06-09 07:06:36.000000000 +0200
@@ -1,3 +1,24 @@
+kmod 21
+=======
+
+- New features:
+       - kmod tool started to learn the "insert" and "remove" commands that
+         are the simplified versions of the older modprobe tool.  These
+         commands are still work in progress so they are hidden behind a
+         --enable-experimental flag during build.  It should not be enabled
+         unless you know what you're doing.
+       - kmod tool now prints the relevant configuration options it was built
+         with when the "--version" argument is passed. This helps to mitigate
+         problems for example when the user is trying to load a compressed
+         module but kmod was built without support for the compression method.
+
+- Improvements to testsuite:
+       - Cache built modules so it is easier to run "make check" on build
+         servers by distro maintainers. If kmod is configured with
+         --disable-test-modules the modules from cache will be used by
+         "make check". No changes to the tests are needed and all of them
+         can run fine.
+
 kmod 20
 =======
 - Bug fixes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/config.h.in new/kmod-21/config.h.in
--- old/kmod-20/config.h.in     2015-03-01 19:04:14.000000000 +0100
+++ new/kmod-21/config.h.in     2015-06-09 07:36:06.000000000 +0200
@@ -3,6 +3,9 @@
 /* Debug messages. */
 #undef ENABLE_DEBUG
 
+/* Experimental features. */
+#undef ENABLE_EXPERIMENTAL
+
 /* System logging. */
 #undef ENABLE_LOGGING
 
@@ -87,6 +90,9 @@
 /* Define to 1 if you have the `__xstat' function. */
 #undef HAVE___XSTAT
 
+/* Features in this build */
+#undef KMOD_FEATURES
+
 /* Define to the sub-directory where libtool stores uninstalled libraries. */
 #undef LT_OBJDIR
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/configure.ac new/kmod-21/configure.ac
--- old/kmod-20/configure.ac    2015-03-01 17:55:07.000000000 +0100
+++ new/kmod-21/configure.ac    2015-06-09 06:24:19.000000000 +0200
@@ -1,6 +1,6 @@
 AC_PREREQ(2.64)
 AC_INIT([kmod],
-       [20],
+       [21],
        [linux-modu...@vger.kernel.org],
        [kmod],
        [http://git.kernel.org/?p=utils/kernel/kmod/kmod.git])
@@ -17,6 +17,7 @@
 AM_INIT_AUTOMAKE([check-news foreign 1.11 silent-rules tar-pax no-dist-gzip 
dist-xz subdir-objects color-tests parallel-tests])
 AM_SILENT_RULES([yes])
 LT_INIT([disable-static pic-only])
+DOLT
 
 AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not 
supported by kmod])])
 AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile 
is not supported by kmod])])
@@ -91,6 +92,7 @@
 ], [
        AC_MSG_NOTICE([Xz support not requested])
 ])
+CC_FEATURE_APPEND([with_features], [with_xz], [XZ])
 
 AC_ARG_WITH([zlib],
        AS_HELP_STRING([--with-zlib], [handle gzipped modules 
@<:@default=disabled@:>@]),
@@ -101,6 +103,7 @@
 ], [
        AC_MSG_NOTICE([zlib support not requested])
 ])
+CC_FEATURE_APPEND([with_features], [with_zlib], [ZLIB])
 
 AC_ARG_WITH([bashcompletiondir],
        AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions 
directory]),
@@ -116,6 +119,15 @@
 # --enable-
 #####################################################################
 
+AC_ARG_ENABLE([experimental],
+        AS_HELP_STRING([--enable-experimental], [enable experimental tools and 
features. Do not enable it unless you know what you are doing. 
@<:@default=disabled@:>@]),
+        [], enable_experimental=no)
+AM_CONDITIONAL([BUILD_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"])
+AS_IF([test "x$enable_experimental" = "xyes"], [
+       AC_DEFINE(ENABLE_EXPERIMENTAL, [1], [Experimental features.])
+])
+CC_FEATURE_APPEND([with_features], [enable_experimental], [EXPERIMENTAL])
+
 AC_ARG_ENABLE([tools],
         AS_HELP_STRING([--disable-tools], [disable building tools that provide 
same functionality as module-init-tools @<:@default=enabled@:>@]),
        [], enable_tools=yes)
@@ -126,6 +138,11 @@
        [], enable_manpages=yes)
 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" = "xyes"])
 
+AC_ARG_ENABLE([test-modules],
+        AS_HELP_STRING([--disable-test-modules], [disable building test 
modules during make check: cached modules will be used 
@<:@default=enabled@:>@]),
+       [], enable_test_modules=yes)
+AM_CONDITIONAL([BUILD_MODULES], [test "x$enable_test_modules" = "xyes"])
+
 AC_ARG_ENABLE([logging],
        AS_HELP_STRING([--disable-logging], [disable system logging 
@<:@default=enabled@:>@]),
        [], enable_logging=yes)
@@ -242,6 +259,8 @@
                       -Wl,--gc-sections])
 AC_SUBST([OUR_LDFLAGS], $with_ldflags)
 
+AC_DEFINE_UNQUOTED(KMOD_FEATURES, ["$with_features"], [Features in this build])
+
 #####################################################################
 # Generate files from *.in
 #####################################################################
@@ -273,6 +292,7 @@
        cflags:                 ${with_cflags} ${CFLAGS}
        ldflags:                ${with_ldflags} ${LDFLAGS}
 
+       experimental features:  ${enable_experimental}
        tools:                  ${enable_tools}
        python bindings:        ${enable_python}
        logging:                ${enable_logging}
@@ -281,4 +301,7 @@
        coverage:               ${enable_coverage}
        doc:                    ${enable_gtk_doc}
        man:                    ${enable_manpages}
+       test-modules:           ${enable_test_modules}
+
+       features:               ${with_features}
 ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/libkmod/docs/gtk-doc.make new/kmod-21/libkmod/docs/gtk-doc.make
--- old/kmod-20/libkmod/docs/gtk-doc.make       2014-09-08 11:49:01.000000000 
+0200
+++ new/kmod-21/libkmod/docs/gtk-doc.make       2015-05-29 22:00:12.000000000 
+0200
@@ -25,6 +25,7 @@
 
 SETUP_FILES = \
        $(content_files)                \
+       $(expand_content_files)         \
        $(DOC_MAIN_SGML_FILE)           \
        $(DOC_MODULE)-sections.txt      \
        $(DOC_MODULE)-overrides.txt
@@ -86,7 +87,7 @@
 
 setup-build.stamp:
        -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           files=`echo $(SETUP_FILES) $(expand_content_files) 
$(DOC_MODULE).types`; \
+           files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
            if test "x$$files" != "x" ; then \
                for file in $$files ; do \
                    destdir=`dirname $(abs_builddir)/$$file`; \
@@ -118,7 +119,7 @@
        $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > 
/dev/null 2>&1 ; then \
            scanobj_options=""; \
            gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-           if test "$(?)" = "0"; then \
+           if test "$$?" = "0"; then \
                if test "x$(V)" = "x1"; then \
                    scanobj_options="--verbose"; \
                fi; \
@@ -162,17 +163,17 @@
 GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
 GTK_DOC_V_XREF_0=@echo "  DOC   Fixing cross-references";
 
-html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) 
$(expand_content_files)
        $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
        mkhtml_options=""; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          if test "x$(V)" = "x1"; then \
            mkhtml_options="$$mkhtml_options --verbose"; \
          fi; \
        fi; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
        fi; \
        cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) 
$(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
@@ -194,11 +195,11 @@
 GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
 GTK_DOC_V_PDF_0=@echo "  DOC   Building PDF";
 
-pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) 
$(expand_content_files)
        $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
        mkpdf_options=""; \
        gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-       if test "$(?)" = "0"; then \
+       if test "$$?" = "0"; then \
          if test "x$(V)" = "x1"; then \
            mkpdf_options="$$mkpdf_options --verbose"; \
          fi; \
@@ -223,12 +224,15 @@
        @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
          rm -f $(DOC_MODULE).types; \
        fi
+       @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \
+         rm -f $(DOC_MODULE)-sections.txt; \
+       fi
 
 distclean-local:
        @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
            $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
        @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
+           rm -f $(SETUP_FILES) $(DOC_MODULE).types; \
        fi
 
 maintainer-clean-local:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/libkmod/python/kmod/version.py 
new/kmod-21/libkmod/python/kmod/version.py
--- old/kmod-20/libkmod/python/kmod/version.py  2015-03-01 19:04:37.000000000 
+0100
+++ new/kmod-21/libkmod/python/kmod/version.py  2015-06-09 07:36:22.000000000 
+0200
@@ -14,4 +14,4 @@
 # You should have received a copy of the GNU Lesser General Public License
 # along with python-kmod.  If not, see <http://www.gnu.org/licenses/>.
 
-__version__ = '20'
+__version__ = '21'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/m4/dolt.m4 new/kmod-21/m4/dolt.m4
--- old/kmod-20/m4/dolt.m4      1970-01-01 01:00:00.000000000 +0100
+++ new/kmod-21/m4/dolt.m4      2015-03-10 19:05:39.000000000 +0100
@@ -0,0 +1,181 @@
+dnl dolt, a replacement for libtool
+dnl Copyright © 2007-2010 Josh Triplett <j...@joshtriplett.org>
+dnl Copying and distribution of this file, with or without modification,
+dnl are permitted in any medium without royalty provided the copyright
+dnl notice and this notice are preserved.
+dnl
+dnl To use dolt, invoke the DOLT macro immediately after the libtool macros.
+dnl Optionally, copy this file into acinclude.m4, to avoid the need to have it
+dnl installed when running autoconf on your project.
+
+AC_DEFUN([DOLT], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+# dolt, a replacement for libtool
+# Josh Triplett <j...@freedesktop.org>
+AC_PATH_PROG([DOLT_BASH], [bash])
+AC_MSG_CHECKING([if dolt supports this host])
+dolt_supported=yes
+AS_IF([test x$DOLT_BASH = x], [dolt_supported=no])
+AS_IF([test x$GCC != xyes], [dolt_supported=no])
+
+AS_CASE([$host],
+    [*-*-linux*|*-*-freebsd*], [pic_options='-fPIC'],
+    [*-apple-darwin*],         [pic_options='-fno-common'],
+    [*mingw*|*nacl*],          [pic_options='']
+    [*],                       [dolt_supported=no]
+)
+AS_IF([test x$dolt_supported = xno], [
+    AC_MSG_RESULT([no, falling back to libtool])
+    LTCOMPILE='$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) 
$(LIBTOOLFLAGS) --mode=compile $(COMPILE)'
+    LTCXXCOMPILE='$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) 
$(LIBTOOLFLAGS) --mode=compile $(CXXCOMPILE)'
+    m4_pattern_allow([AM_V_lt])
+], [
+    AC_MSG_RESULT([yes, replacing libtool])
+
+dnl Start writing out doltcompile.
+    cat <<__DOLTCOMPILE__EOF__ >doltcompile
+#!$DOLT_BASH
+__DOLTCOMPILE__EOF__
+    cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+args=("$[]@")
+for ((arg=0; arg<${#args@<:@@@:>@}; arg++)) ; do
+    if test x"${args@<:@$arg@:>@}" = x-o ; then
+        objarg=$((arg+1))
+        break
+    fi
+done
+if test x$objarg = x ; then
+    echo 'Error: no -o on compiler command line' 1>&2
+    exit 1
+fi
+lo="${args@<:@$objarg@:>@}"
+obj="${lo%.lo}"
+if test x"$lo" = x"$obj" ; then
+    echo "Error: libtool object file name \"$lo\" does not end in .lo" 1>&2
+    exit 1
+fi
+objbase="${obj##*/}"
+__DOLTCOMPILE__EOF__
+
+dnl Write out shared compilation code.
+    if test x$enable_shared = xyes; then
+        cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+libobjdir="${obj%$objbase}.libs"
+if test ! -d "$libobjdir" ; then
+    mkdir_out="$(mkdir "$libobjdir" 2>&1)"
+    mkdir_ret=$?
+    if test "$mkdir_ret" -ne 0 && test ! -d "$libobjdir" ; then
+       echo "$mkdir_out" 1>&2
+        exit $mkdir_ret
+    fi
+fi
+pic_object="$libobjdir/$objbase.o"
+args@<:@$objarg@:>@="$pic_object"
+__DOLTCOMPILE__EOF__
+    cat <<__DOLTCOMPILE__EOF__ >>doltcompile
+    pic_options="$pic_options"
+    if test x\$passthrough = xtrue; then
+        pic_options=""
+    fi
+__DOLTCOMPILE__EOF__
+    cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+"${args@<:@@@:>@}" $pic_options -DPIC || exit $?
+__DOLTCOMPILE__EOF__
+    fi
+
+dnl Write out static compilation code.
+dnl Avoid duplicate compiler output if also building shared objects.
+    if test x$enable_static = xyes; then
+        cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+non_pic_object="$obj.o"
+args@<:@$objarg@:>@="$non_pic_object"
+__DOLTCOMPILE__EOF__
+        if test x$enable_shared = xyes; then
+            cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+"${args@<:@@@:>@}" >/dev/null 2>&1 || exit $?
+__DOLTCOMPILE__EOF__
+        else
+            cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+"${args@<:@@@:>@}" || exit $?
+__DOLTCOMPILE__EOF__
+        fi
+    fi
+
+dnl Write out the code to write the .lo file.
+dnl The second line of the .lo file must match "^# Generated by .*libtool"
+    cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+{
+echo "# $lo - a libtool object file"
+echo "# Generated by doltcompile, not libtool"
+__DOLTCOMPILE__EOF__
+
+    if test x$enable_shared = xyes; then
+        cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+echo "pic_object='.libs/${objbase}.o'"
+__DOLTCOMPILE__EOF__
+    else
+        cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+echo pic_object=none
+__DOLTCOMPILE__EOF__
+    fi
+
+    if test x$enable_static = xyes; then
+        cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+echo "non_pic_object='${objbase}.o'"
+__DOLTCOMPILE__EOF__
+    else
+        cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+echo non_pic_object=none
+__DOLTCOMPILE__EOF__
+    fi
+
+    cat <<'__DOLTCOMPILE__EOF__' >>doltcompile
+} > "$lo"
+__DOLTCOMPILE__EOF__
+
+dnl Done writing out doltcompile; substitute it for libtool compilation.
+    chmod +x doltcompile
+    LTCOMPILE='$(top_builddir)/doltcompile $(COMPILE)'
+    LTCXXCOMPILE='$(top_builddir)/doltcompile $(CXXCOMPILE)'
+
+dnl automake ignores LTCOMPILE and LTCXXCOMPILE when it has separate CFLAGS for
+dnl a target, so write out a libtool wrapper to handle that case.
+dnl Note that doltlibtool does not handle inferred tags or option arguments
+dnl without '=', because automake does not use them.
+    cat <<__DOLTLIBTOOL__EOF__ > doltlibtool
+#!$DOLT_BASH
+__DOLTLIBTOOL__EOF__
+    cat <<'__DOLTLIBTOOL__EOF__' >>doltlibtool
+top_builddir_slash="${0%%doltlibtool}"
+: ${top_builddir_slash:=./}
+args=()
+modeok=false
+tagok=false
+for arg in "$[]@"; do
+    case "$arg" in
+        --mode=compile) modeok=true ;;
+        --tag=CC|--tag=CXX) tagok=true ;;
+        --tag=disable-static) tagok=true ;;
+        --tag=ASM|--tag=YASM) tagok=true; passthrough=true;;
+        --silent|--quiet) ;;
+        *) args@<:@${#args[@]}@:>@="$arg" ;;
+    esac
+done
+if $modeok && $tagok ; then
+    . ${top_builddir_slash}doltcompile "${args@<:@@@:>@}"
+else
+    exec ${top_builddir_slash}libtool "$[]@"
+fi
+__DOLTLIBTOOL__EOF__
+
+dnl Done writing out doltlibtool; substitute it for libtool.
+    chmod +x doltlibtool
+    LIBTOOL='$(top_builddir)/doltlibtool'
+
+DOLT_CLEANFILES="doltlibtool doltcompile"
+AC_SUBST(DOLT_CLEANFILES)
+])
+AC_SUBST(LTCOMPILE)
+AC_SUBST(LTCXXCOMPILE)
+# end dolt
+])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/m4/features.m4 new/kmod-21/m4/features.m4
--- old/kmod-20/m4/features.m4  1970-01-01 01:00:00.000000000 +0100
+++ new/kmod-21/m4/features.m4  2015-06-09 03:37:10.000000000 +0200
@@ -0,0 +1,48 @@
+#  Copyright (c) 2015 Lucas De Marchi <lucas.de.mar...@gmail.com>
+#
+#  This program is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by the
+#  Free Software Foundation, either version 2 of the License, or (at your
+#  option) any later version.
+#
+#  This program is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#  Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License along
+#  with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#  As a special exception, the respective Autoconf Macro's copyright owner
+#  gives unlimited permission to copy, distribute and modify the configure
+#  scripts that are the output of Autoconf when processing the Macro. You
+#  need not follow the terms of the GNU General Public License when using
+#  or distributing such scripts, even though portions of the text of the
+#  Macro appear in them. The GNU General Public License (GPL) does govern
+#  all other use of the material that constitutes the Autoconf Macro.
+#
+#  This special exception to the GPL applies to versions of the Autoconf
+#  Macro released by the Autoconf Archive. When you make and distribute a
+#  modified version of the Autoconf Macro, you may extend this special
+#  exception to the GPL to apply to your modified version as well.
+#
+# CC_FEATURE_APPEND([FLAGS], [ENV-TO-CHECK], [FLAG-NAME])
+AC_DEFUN([CC_FEATURE_APPEND], [
+  AS_VAR_PUSHDEF([FLAGS], [$1])dnl
+  AS_VAR_PUSHDEF([ENV_CHECK], [$2])dnl
+  AS_VAR_PUSHDEF([FLAG_NAME], [$3])dnl
+
+  AS_CASE([" AS_VAR_GET(FLAGS) " ],
+          [*" FLAG_NAME "*], [AC_RUN_LOG([: FLAGS already contains 
FLAG_NAME])],
+          [
+           AS_IF([test "x$FLAGS" != "x"], [AS_VAR_APPEND(FLAGS, " ")])
+            AS_IF([test "x$ENV_CHECK" = "xyes"],
+                  [AS_VAR_APPEND(FLAGS, "+FLAG_NAME")],
+                  [AS_VAR_APPEND(FLAGS, "-FLAG_NAME")])
+          ]
+  )
+
+  AS_VAR_POPDEF([FLAG_NAME])dnl
+  AS_VAR_POPDEF([ENV_CHECK])dnl
+  AS_VAR_POPDEF([FLAGS])dnl
+])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/m4/libtool.m4 new/kmod-21/m4/libtool.m4
--- old/kmod-20/m4/libtool.m4   2015-01-24 04:44:49.000000000 +0100
+++ new/kmod-21/m4/libtool.m4   2015-04-24 00:45:43.000000000 +0200
@@ -738,7 +738,7 @@
 _LT_LIBTOOL_TAGS
 
 # Configured defaults for sys_lib_dlsearch_path munging.
-: \${LT_SYS_LIBRARY_PATH="$LT_SYS_LIBRARY_PATH"}
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
 
 # ### BEGIN LIBTOOL CONFIG
 _LT_LIBTOOL_CONFIG_VARS
@@ -748,13 +748,14 @@
 _LT_EOF
 
     cat <<'_LT_EOF' >> "$cfgfile"
-## -------------------------------------- ##
-## Shell functions shared with configure. ##
-## -------------------------------------- ##
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
 
 _LT_PREPARE_MUNGE_PATH_LIST
 _LT_PREPARE_CC_BASENAME
 
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
 _LT_EOF
 
   case $host_os in
@@ -2256,7 +2257,7 @@
     x)
         ;;
     *:)
-        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \$@S|@1\"
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
         ;;
     x:*)
         eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
@@ -3100,13 +3101,15 @@
   sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
 fi
 
-# lt_cv_sys_lib... is unaugmented for libtool script decls...
-lt_cv_sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
+# remember unaugmented sys_lib_dlsearch_path content for libtool script 
decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
 
-# ..but sys_lib_... needs LT_SYS_LIBRARY_PATH munging for
-# LT_SYS_DLSEARCH_PATH macro in ltdl.m4 to work with the correct paths:
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
 func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
 
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
 _LT_DECL([], [variables_saved_for_relink], [1],
     [Variables whose values should be saved in libtool wrapper scripts and
     restored at link time])
@@ -3139,8 +3142,10 @@
     [Whether we should hardcode library paths into libraries])
 _LT_DECL([], [sys_lib_search_path_spec], [2],
     [Compile-time system search path for libraries])
-_LT_DECL([sys_lib_dlsearch_path_spec], [lt_cv_sys_lib_dlsearch_path_spec], [2],
-    [Run-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+    [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+    [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
 ])# _LT_SYS_DYNAMIC_LINKER
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/m4/ltversion.m4 new/kmod-21/m4/ltversion.m4
--- old/kmod-20/m4/ltversion.m4 2015-01-24 04:44:49.000000000 +0100
+++ new/kmod-21/m4/ltversion.m4 2015-04-24 00:45:44.000000000 +0200
@@ -9,15 +9,15 @@
 
 # @configure_input@
 
-# serial 4171 ltversion.m4
+# serial 4179 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4.5])
-m4_define([LT_PACKAGE_REVISION], [2.4.5])
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.5'
-macro_revision='2.4.5'
+[macro_version='2.4.6'
+macro_revision='2.4.6'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/depmod.8 new/kmod-21/man/depmod.8
--- old/kmod-20/man/depmod.8    2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/depmod.8    2015-06-09 07:36:24.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: depmod
 .\"    Author: Jon Masters <j...@jonmasters.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: depmod
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "DEPMOD" "8" "03/01/2015" "kmod" "depmod"
+.TH "DEPMOD" "8" "06/09/2015" "kmod" "depmod"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/depmod.d.5 new/kmod-21/man/depmod.d.5
--- old/kmod-20/man/depmod.d.5  2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/depmod.d.5  2015-06-09 07:36:23.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: depmod.d
 .\"    Author: Jon Masters <j...@jonmasters.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: depmod.d
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "DEPMOD\&.D" "5" "03/01/2015" "kmod" "depmod.d"
+.TH "DEPMOD\&.D" "5" "06/09/2015" "kmod" "depmod.d"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/insmod.8 new/kmod-21/man/insmod.8
--- old/kmod-20/man/insmod.8    2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/insmod.8    2015-06-09 07:36:24.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: insmod
 .\"    Author: Jon Masters <j...@jonmasters.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: insmod
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "INSMOD" "8" "03/01/2015" "kmod" "insmod"
+.TH "INSMOD" "8" "06/09/2015" "kmod" "insmod"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/kmod.8 new/kmod-21/man/kmod.8
--- old/kmod-20/man/kmod.8      2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/kmod.8      2015-06-09 07:36:24.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: kmod
 .\"    Author: Lucas De Marchi <lucas.de.mar...@gmail.com>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: kmod
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "KMOD" "8" "03/01/2015" "kmod" "kmod"
+.TH "KMOD" "8" "06/09/2015" "kmod" "kmod"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/lsmod.8 new/kmod-21/man/lsmod.8
--- old/kmod-20/man/lsmod.8     2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/lsmod.8     2015-06-09 07:36:25.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: lsmod
 .\"    Author: Jon Masters <j...@jonmasters.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: lsmod
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "LSMOD" "8" "03/01/2015" "kmod" "lsmod"
+.TH "LSMOD" "8" "06/09/2015" "kmod" "lsmod"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/modinfo.8 new/kmod-21/man/modinfo.8
--- old/kmod-20/man/modinfo.8   2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/modinfo.8   2015-06-09 07:36:25.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: modinfo
 .\"    Author: Jon Masters <j...@jonmasters.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: modinfo
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "MODINFO" "8" "03/01/2015" "kmod" "modinfo"
+.TH "MODINFO" "8" "06/09/2015" "kmod" "modinfo"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/modprobe.8 new/kmod-21/man/modprobe.8
--- old/kmod-20/man/modprobe.8  2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/modprobe.8  2015-06-09 07:36:25.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: modprobe
 .\"    Author: Jon Masters <j...@jonmasters.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: modprobe
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "MODPROBE" "8" "03/01/2015" "kmod" "modprobe"
+.TH "MODPROBE" "8" "06/09/2015" "kmod" "modprobe"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/modprobe.d.5 new/kmod-21/man/modprobe.d.5
--- old/kmod-20/man/modprobe.d.5        2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/modprobe.d.5        2015-06-09 07:36:24.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: modprobe.d
 .\"    Author: Jon Masters <j...@jonmasters.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: modprobe.d
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "MODPROBE\&.D" "5" "03/01/2015" "kmod" "modprobe.d"
+.TH "MODPROBE\&.D" "5" "06/09/2015" "kmod" "modprobe.d"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/modules.dep.5 new/kmod-21/man/modules.dep.5
--- old/kmod-20/man/modules.dep.5       2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/modules.dep.5       2015-06-09 07:36:24.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: modules.dep
 .\"    Author: Jon Masters <j...@jonmasters.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: modules.dep
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "MODULES\&.DEP" "5" "03/01/2015" "kmod" "modules.dep"
+.TH "MODULES\&.DEP" "5" "06/09/2015" "kmod" "modules.dep"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/rmmod.8 new/kmod-21/man/rmmod.8
--- old/kmod-20/man/rmmod.8     2015-03-01 19:04:33.000000000 +0100
+++ new/kmod-21/man/rmmod.8     2015-06-09 07:36:25.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: rmmod
 .\"    Author: Jon Masters <j...@jonmasters.org>
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/01/2015
+.\"      Date: 06/09/2015
 .\"    Manual: rmmod
 .\"    Source: kmod
 .\"  Language: English
 .\"
-.TH "RMMOD" "8" "03/01/2015" "kmod" "rmmod"
+.TH "RMMOD" "8" "06/09/2015" "kmod" "rmmod"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -71,7 +71,8 @@
 .PP
 \fBmodprobe\fR(8),
 \fBinsmod\fR(8),
-\fBlsmod\fR(8)\fBmodinfo\fR(8)
+\fBlsmod\fR(8),
+\fBmodinfo\fR(8)
 .SH "AUTHORS"
 .PP
 \fBJon Masters\fR <\&jcm@jonmasters\&.org\&>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/man/rmmod.xml new/kmod-21/man/rmmod.xml
--- old/kmod-20/man/rmmod.xml   2014-03-19 11:54:39.000000000 +0100
+++ new/kmod-21/man/rmmod.xml   2015-06-09 03:46:06.000000000 +0200
@@ -135,7 +135,7 @@
       </citerefentry>,
       <citerefentry>
         <refentrytitle>lsmod</refentrytitle><manvolnum>8</manvolnum>
-      </citerefentry>
+      </citerefentry>,
       <citerefentry>
         <refentrytitle>modinfo</refentrytitle><manvolnum>8</manvolnum>
       </citerefentry>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/shared/util.h new/kmod-21/shared/util.h
--- old/kmod-20/shared/util.h   2015-02-10 13:24:54.000000000 +0100
+++ new/kmod-21/shared/util.h   2015-03-24 03:46:53.000000000 +0100
@@ -86,5 +86,5 @@
 #endif
 #endif
        *res = a + b;
-       return ULLONG_MAX - a < b;
+       return UINT64_MAX - a < b;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/module-playground/Makefile 
new/kmod-21/testsuite/module-playground/Makefile
--- old/kmod-20/testsuite/module-playground/Makefile    2015-02-26 
18:49:31.000000000 +0100
+++ new/kmod-21/testsuite/module-playground/Makefile    2015-06-07 
04:06:23.000000000 +0200
@@ -38,6 +38,9 @@
 # normal makefile
 KDIR ?= /lib/modules/`uname -r`/build
 KVER ?= `uname -r`
+ifeq ($(FAKE_BUILD),)
+    FAKE_BUILD=0
+endif
 
 ARCH_SPECIFIC_MODULES := mod-simple-x86_64.ko mod-simple-i386.ko 
mod-simple-sparc64.ko
 MY_MODULES := $(filter-out $(ARCH_SPECIFIC_MODULES),$(wildcard *.ko))
@@ -48,8 +51,14 @@
        $(eval arch=$(patsubst mod-simple-%.ko,%,$@))
        $(MAKE) KDIR=$(KDIR_$(arch)) ARCH=$(arch) 
CROSS_COMPILE=$(CROSS_COMPILE_$(arch)) -f Makefile.arch
 
+ifeq ($(FAKE_BUILD),0)
 modules:
        $(MAKE) -C $(KDIR) M=$$PWD
+else
+modules:
+       @echo "  CP       cache/*.ko"
+       @cp cache/*.ko .
+endif
 
 arch-modules: $(ARCH_SPECIFIC_MODULES)
 
Files old/kmod-20/testsuite/module-playground/cache/mod-fake-cciss.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-fake-cciss.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-fake-hpsa.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-fake-hpsa.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-fake-scsi-mod.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-fake-scsi-mod.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-foo-a.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-foo-a.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-foo-b.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-foo-b.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-foo-c.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-foo-c.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-foo.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-foo.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-loop-a.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-loop-a.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-loop-b.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-loop-b.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-loop-c.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-loop-c.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-loop-d.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-loop-d.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-loop-e.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-loop-e.ko differ
Files old/kmod-20/testsuite/module-playground/cache/mod-simple.ko and 
new/kmod-21/testsuite/module-playground/cache/mod-simple.ko differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/populate-modules.sh 
new/kmod-21/testsuite/populate-modules.sh
--- old/kmod-20/testsuite/populate-modules.sh   2015-02-21 18:36:20.000000000 
+0100
+++ new/kmod-21/testsuite/populate-modules.sh   2015-03-07 16:09:51.000000000 
+0100
@@ -42,6 +42,8 @@
     ["test-modinfo/mod-simple-sparc64.ko"]="mod-simple-sparc64.ko"
     ["test-modinfo/mod-simple-sha1.ko"]="mod-simple.ko"
     ["test-modinfo/mod-simple-sha256.ko"]="mod-simple.ko"
+    ["test-tools/insert/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
+    ["test-tools/remove/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
 )
 
 gzip_array=(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.alias
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.alias
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.alias
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.alias
     2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+# Aliases extracted from modules themselves.
Files 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.alias.bin
 and 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.alias.bin
 differ
Files 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.builtin.bin
 and 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.builtin.bin
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.dep
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.dep
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.dep
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.dep
       2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+kernel/mod-simple.ko:
Files 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.dep.bin
 and 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.dep.bin
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.devname
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.devname
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.devname
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.devname
   2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+# Device nodes to trigger on-demand module loading.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.softdep
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.softdep
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.softdep
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.softdep
   2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+# Soft dependencies extracted from modules themselves.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.symbols
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.symbols
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.symbols
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.symbols
   2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+# Aliases for symbols, used by symbol_request().
Files 
old/kmod-20/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.symbols.bin
 and 
new/kmod-21/testsuite/rootfs-pristine/test-tools/insert/lib/modules/4.4.4/modules.symbols.bin
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.alias
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.alias
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.alias
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.alias
     2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+# Aliases extracted from modules themselves.
Files 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.alias.bin
 and 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.alias.bin
 differ
Files 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.builtin.bin
 and 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.builtin.bin
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.dep
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.dep
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.dep
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.dep
       2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+kernel/mod-simple.ko:
Files 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.dep.bin
 and 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.dep.bin
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.devname
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.devname
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.devname
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.devname
   2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+# Device nodes to trigger on-demand module loading.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.softdep
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.softdep
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.softdep
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.softdep
   2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+# Soft dependencies extracted from modules themselves.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.symbols
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.symbols
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.symbols
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.symbols
   2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+# Aliases for symbols, used by symbol_request().
Files 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.symbols.bin
 and 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/lib/modules/4.4.4/modules.symbols.bin
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/sys/module/mod_simple/initstate
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/sys/module/mod_simple/initstate
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/sys/module/mod_simple/initstate
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/sys/module/mod_simple/initstate
     2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+live
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/sys/module/mod_simple/refcnt
 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/sys/module/mod_simple/refcnt
--- 
old/kmod-20/testsuite/rootfs-pristine/test-tools/remove/sys/module/mod_simple/refcnt
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/kmod-21/testsuite/rootfs-pristine/test-tools/remove/sys/module/mod_simple/refcnt
        2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1 @@
+0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/testsuite/test-tools.c new/kmod-21/testsuite/test-tools.c
--- old/kmod-20/testsuite/test-tools.c  1970-01-01 01:00:00.000000000 +0100
+++ new/kmod-21/testsuite/test-tools.c  2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2015 Intel Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <errno.h>
+#include <inttypes.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "testsuite.h"
+
+static noreturn int kmod_tool_insert(const struct test *t)
+{
+       const char *progname = ABS_TOP_BUILDDIR "/tools/kmod";
+       const char *const args[] = {
+               progname,
+               "insert", "mod-simple",
+               NULL,
+       };
+
+       test_spawn_prog(progname, args);
+       exit(EXIT_FAILURE);
+}
+DEFINE_TEST(kmod_tool_insert,
+       .description = "check kmod insert",
+       .config = {
+               [TC_UNAME_R] = "4.4.4",
+               [TC_ROOTFS] = TESTSUITE_ROOTFS "test-tools/insert",
+               [TC_INIT_MODULE_RETCODES] = "",
+       },
+       .modules_loaded = "mod-simple",
+       );
+
+static noreturn int kmod_tool_remove(const struct test *t)
+{
+       const char *progname = ABS_TOP_BUILDDIR "/tools/kmod";
+       const char *const args[] = {
+               progname,
+               "remove", "mod-simple",
+               NULL,
+       };
+
+       test_spawn_prog(progname, args);
+       exit(EXIT_FAILURE);
+}
+DEFINE_TEST(kmod_tool_remove,
+       .description = "check kmod remove",
+       .config = {
+               [TC_UNAME_R] = "4.4.4",
+               [TC_ROOTFS] = TESTSUITE_ROOTFS "test-tools/remove",
+               [TC_DELETE_MODULE_RETCODES] = "",
+       },
+       );
+
+TESTSUITE_MAIN();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/depmod.c new/kmod-21/tools/depmod.c
--- old/kmod-20/tools/depmod.c  2015-02-28 18:56:13.000000000 +0100
+++ new/kmod-21/tools/depmod.c  2015-06-09 03:38:02.000000000 +0200
@@ -2466,6 +2466,7 @@
                        return EXIT_SUCCESS;
                case 'V':
                        puts(PACKAGE " version " VERSION);
+                       puts(KMOD_FEATURES);
                        return EXIT_SUCCESS;
                case '?':
                        goto cmdline_failed;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/insert.c new/kmod-21/tools/insert.c
--- old/kmod-20/tools/insert.c  1970-01-01 01:00:00.000000000 +0100
+++ new/kmod-21/tools/insert.c  2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1,128 @@
+/*
+ * kmod-insert - insert a module into the kernel.
+ *
+ * Copyright (C) 2015 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2013  ProFUSION embedded systems
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <errno.h>
+#include <getopt.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <libkmod/libkmod.h>
+
+#include "kmod.h"
+
+static const char cmdopts_s[] = "h";
+static const struct option cmdopts[] = {
+       {"help", no_argument, 0, 'h'},
+       { }
+};
+
+static void help(void)
+{
+       printf("Usage:\n"
+              "\t%s insert [options] module\n"
+              "Options:\n"
+              "\t-h, --help        show this help\n",
+              program_invocation_short_name);
+}
+
+static const char *mod_strerror(int err)
+{
+       switch (err) {
+       case KMOD_PROBE_APPLY_BLACKLIST:
+               return "Module is blacklisted";
+       case -EEXIST:
+               return "Module already in kernel";
+       case -ENOENT:
+               return "Unknown symbol in module or unknown parameter (see 
dmesg)";
+       default:
+               return strerror(-err);
+       }
+}
+
+static int do_insert(int argc, char *argv[])
+{
+       struct kmod_ctx *ctx;
+       struct kmod_list *list = NULL, *l;
+       const char *name;
+       int err, r = EXIT_SUCCESS;
+
+       for (;;) {
+               int c, idx = 0;
+               c = getopt_long(argc, argv, cmdopts_s, cmdopts, &idx);
+               if (c == -1)
+                       break;
+               switch (c) {
+               case 'h':
+                       help();
+                       return EXIT_SUCCESS;
+               default:
+                       ERR("Unexpected getopt_long() value '%c'.\n", c);
+                       return EXIT_FAILURE;
+               }
+       }
+
+       if (optind >= argc) {
+               ERR("Missing module name\n");
+               return EXIT_FAILURE;
+       }
+
+       ctx = kmod_new(NULL, NULL);
+       if (!ctx) {
+               ERR("kmod_new() failed!\n");
+               return EXIT_FAILURE;
+       }
+
+       name = argv[optind];
+       err = kmod_module_new_from_lookup(ctx, name, &list);
+       if (err < 0) {
+               ERR("Could not lookup module matching '%s': %s\n", name, 
strerror(-err));
+               r = EXIT_FAILURE;
+               goto end;
+       }
+
+       if (list == NULL) {
+               ERR("No module matches '%s'\n", name);
+               r = EXIT_FAILURE;
+               goto end;
+       }
+
+       kmod_list_foreach(l, list) {
+               struct kmod_module *mod = kmod_module_get_module(l);
+
+               err = kmod_module_probe_insert_module(mod, 
KMOD_PROBE_APPLY_BLACKLIST, NULL, NULL, NULL, NULL);
+               if (err != 0) {
+                       r = EXIT_FAILURE;
+                       ERR("Could not insert '%s': %s\n", 
kmod_module_get_name(mod), mod_strerror(err));
+               }
+
+               kmod_module_unref(mod);
+       }
+
+       kmod_module_unref_list(list);
+end:
+       kmod_unref(ctx);
+       return r;
+}
+
+const struct kmod_cmd kmod_cmd_insert = {
+       .name = "insert",
+       .cmd = do_insert,
+       .help = "insert a module into the kernel",
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/insmod.c new/kmod-21/tools/insmod.c
--- old/kmod-20/tools/insmod.c  2015-01-14 17:32:09.000000000 +0100
+++ new/kmod-21/tools/insmod.c  2015-06-09 03:38:02.000000000 +0200
@@ -88,6 +88,7 @@
                        return EXIT_SUCCESS;
                case 'V':
                        puts(PACKAGE " version " VERSION);
+                       puts(KMOD_FEATURES);
                        return EXIT_SUCCESS;
                case '?':
                        return EXIT_FAILURE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/kmod.c new/kmod-21/tools/kmod.c
--- old/kmod-20/tools/kmod.c    2015-01-14 15:35:04.000000000 +0100
+++ new/kmod-21/tools/kmod.c    2015-06-09 03:38:02.000000000 +0200
@@ -42,6 +42,11 @@
        &kmod_cmd_help,
        &kmod_cmd_list,
        &kmod_cmd_static_nodes,
+
+#ifdef ENABLE_EXPERIMENTAL
+       &kmod_cmd_insert,
+       &kmod_cmd_remove,
+#endif
 };
 
 static const struct kmod_cmd *kmod_compat_cmds[] = {
@@ -108,7 +113,8 @@
                        kmod_help(argc, argv);
                        return EXIT_SUCCESS;
                case 'V':
-                       puts("kmod version " VERSION);
+                       puts(PACKAGE " version " VERSION);
+                       puts(KMOD_FEATURES);
                        return EXIT_SUCCESS;
                case '?':
                        return EXIT_FAILURE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/kmod.h new/kmod-21/tools/kmod.h
--- old/kmod-20/tools/kmod.h    2014-12-26 02:28:51.000000000 +0100
+++ new/kmod-21/tools/kmod.h    2015-03-07 16:09:51.000000000 +0100
@@ -34,7 +34,9 @@
 extern const struct kmod_cmd kmod_cmd_compat_modprobe;
 extern const struct kmod_cmd kmod_cmd_compat_depmod;
 
+extern const struct kmod_cmd kmod_cmd_insert;
 extern const struct kmod_cmd kmod_cmd_list;
 extern const struct kmod_cmd kmod_cmd_static_nodes;
+extern const struct kmod_cmd kmod_cmd_remove;
 
 #include "log.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/lsmod.c new/kmod-21/tools/lsmod.c
--- old/kmod-20/tools/lsmod.c   2015-01-02 15:37:39.000000000 +0100
+++ new/kmod-21/tools/lsmod.c   2015-04-16 13:46:11.000000000 +0200
@@ -64,15 +64,17 @@
                struct kmod_list *holders, *hitr;
                int first = 1;
 
-               printf("%-19s %8ld  %d ", name, size, use_count);
+               printf("%-19s %8ld  %d", name, size, use_count);
                holders = kmod_module_get_holders(mod);
                kmod_list_foreach(hitr, holders) {
                        struct kmod_module *hm = kmod_module_get_module(hitr);
 
-                       if (!first)
+                       if (!first) {
                                putchar(',');
-                       else
+                       } else {
+                               putchar(' ');
                                first = 0;
+                       }
 
                        fputs(kmod_module_get_name(hm), stdout);
                        kmod_module_unref(hm);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/modinfo.c new/kmod-21/tools/modinfo.c
--- old/kmod-20/tools/modinfo.c 2015-01-14 17:32:09.000000000 +0100
+++ new/kmod-21/tools/modinfo.c 2015-06-09 03:38:02.000000000 +0200
@@ -405,6 +405,7 @@
                        return EXIT_SUCCESS;
                case 'V':
                        puts(PACKAGE " version " VERSION);
+                       puts(KMOD_FEATURES);
                        return EXIT_SUCCESS;
                case '?':
                        return EXIT_FAILURE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/modprobe.c new/kmod-21/tools/modprobe.c
--- old/kmod-20/tools/modprobe.c        2015-02-28 18:18:54.000000000 +0100
+++ new/kmod-21/tools/modprobe.c        2015-06-09 03:38:02.000000000 +0200
@@ -824,6 +824,7 @@
                        break;
                case 'V':
                        puts(PACKAGE " version " VERSION);
+                       puts(KMOD_FEATURES);
                        err = 0;
                        goto done;
                case 'h':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/remove.c new/kmod-21/tools/remove.c
--- old/kmod-20/tools/remove.c  1970-01-01 01:00:00.000000000 +0100
+++ new/kmod-21/tools/remove.c  2015-03-07 16:09:51.000000000 +0100
@@ -0,0 +1,150 @@
+/*
+ * kmod-remove - remove modules from the kernel.
+ *
+ * Copyright (C) 2015 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2013  ProFUSION embedded systems
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <errno.h>
+#include <getopt.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <libkmod/libkmod.h>
+
+#include "kmod.h"
+
+static const char cmdopts_s[] = "h";
+static const struct option cmdopts[] = {
+       {"help", no_argument, 0, 'h'},
+       { }
+};
+
+static void help(void)
+{
+       printf("Usage:\n"
+              "\t%s remove [options] module\n"
+              "Options:\n"
+              "\t-h, --help        show this help\n",
+              program_invocation_short_name);
+}
+
+static int check_module_inuse(struct kmod_module *mod) {
+       struct kmod_list *holders;
+       int state;
+
+       state = kmod_module_get_initstate(mod);
+
+       if (state == KMOD_MODULE_BUILTIN) {
+               ERR("Module %s is builtin.\n", kmod_module_get_name(mod));
+               return -ENOENT;
+       } else if (state < 0) {
+               ERR("Module %s is not currently loaded\n",
+                               kmod_module_get_name(mod));
+               return -ENOENT;
+       }
+
+       holders = kmod_module_get_holders(mod);
+       if (holders != NULL) {
+               struct kmod_list *itr;
+
+               ERR("Module %s is in use by:", kmod_module_get_name(mod));
+
+               kmod_list_foreach(itr, holders) {
+                       struct kmod_module *hm = kmod_module_get_module(itr);
+                       fprintf(stderr, " %s", kmod_module_get_name(hm));
+                       kmod_module_unref(hm);
+               }
+               fputc('\n', stderr);
+
+               kmod_module_unref_list(holders);
+               return -EBUSY;
+       }
+
+       if (kmod_module_get_refcnt(mod) != 0) {
+               ERR("Module %s is in use\n", kmod_module_get_name(mod));
+               return -EBUSY;
+       }
+
+       return 0;
+}
+
+static int do_remove(int argc, char *argv[])
+{
+       struct kmod_ctx *ctx;
+       struct kmod_module *mod;
+       const char *name;
+       int err, r = EXIT_SUCCESS;
+
+       for (;;) {
+               int c, idx =0;
+               c = getopt_long(argc, argv, cmdopts_s, cmdopts, &idx);
+               if (c == -1)
+                       break;
+               switch (c) {
+               case 'h':
+                       help();
+                       return EXIT_SUCCESS;
+
+               default:
+                       ERR("Unexpected getopt_long() value '%c'.\n", c);
+                       return EXIT_FAILURE;
+               }
+       }
+
+       if (optind >= argc) {
+               ERR("Missing module name\n");
+               return EXIT_FAILURE;
+       }
+
+       ctx = kmod_new(NULL, NULL);
+       if (!ctx) {
+               ERR("kmod_new() failed!\n");
+               return EXIT_FAILURE;
+       }
+
+       name = argv[optind];
+       err = kmod_module_new_from_name(ctx, name, &mod);
+       if (err < 0) {
+               ERR("Could not remove module %s: %s\n", name, strerror(-err));
+               goto end;
+       }
+
+       err = check_module_inuse(mod);
+       if (err < 0)
+               goto unref;
+
+       err = kmod_module_remove_module(mod, 0);
+       if (err < 0)
+               goto unref;
+
+unref:
+       kmod_module_unref(mod);
+
+end:
+       kmod_unref(ctx);
+       if (err < 0) {
+               r = EXIT_FAILURE;
+               ERR("Could not remove module %s: %s\n", name, strerror(-err));
+       }
+       return r;
+}
+
+const struct kmod_cmd kmod_cmd_remove = {
+       .name = "remove",
+       .cmd = do_remove,
+       .help = "remove module from kernel",
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/kmod-20/tools/rmmod.c new/kmod-21/tools/rmmod.c
--- old/kmod-20/tools/rmmod.c   2015-01-02 15:37:39.000000000 +0100
+++ new/kmod-21/tools/rmmod.c   2015-06-09 03:38:02.000000000 +0200
@@ -128,6 +128,7 @@
                        return EXIT_SUCCESS;
                case 'V':
                        puts(PACKAGE " version " VERSION);
+                       puts(KMOD_FEATURES);
                        return EXIT_SUCCESS;
                case '?':
                        return EXIT_FAILURE;


Reply via email to