Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DKMS install throws warning: Building without libdevmapper. When library is present at build time. #5312

Closed
WoefulDerelict opened this issue Oct 20, 2016 · 11 comments
Labels
Type: Building Indicates an issue related to building binaries

Comments

@WoefulDerelict
Copy link

After 6078881 the DKMS install throws the following warning: configure: WARNING: Building without libdevmapper. Auto-replace, auto-online, and statechange-led.sh may not work correctly with device mapper vdevs.

The library is present on the system and detected by configure during when packaging ZoL using the zfs-dkms-git recipe from the AUR. The error is thrown during the DKMS install run by pacman as part of the process of updating the package.

System in question is an up to date Arch Linux system on the standard repos using the spl-dkms-git and zfs-dkms-git packages found in the AUR.

@behlendorf
Copy link
Contributor

@tonyhutter @WoefulDerelict can you post your config.log from the build so we can determine what happened.

The libdevmapper-devel package needs to be available at build time and the library itself at run time. This is new functionality so the warning is safe to ignore. You just won't yet be able to take advantage of this new functionality.

@behlendorf behlendorf added the Type: Building Indicates an issue related to building binaries label Oct 20, 2016
@WoefulDerelict
Copy link
Author

Inside Arch Linux the package is just device-mapper (https://www.archlinux.org/packages/core/x86_64/device-mapper/) as they don't tend to package headers separately in -dev packages.

As one said, the header is found by configure when packaging ZoL using makepkg and it is only after installing the package when DKMS tries to build the kernel modules that the warning appears. I will try to find the relevant config.log for that process.

@WoefulDerelict
Copy link
Author

Here is the config.log from package build: https://gist.github.com/WoefulDerelict/60de2726019beba5f5f97672ff9bb37f. Still tracking down the logs from configure during DKMS install.

@tonyhutter
Copy link
Contributor

Sounds like DKMS could be building in an environment that doesn't have the libdevmapper headers. I'd be curious to see the DKMS logs once you dig them up.

@WoefulDerelict
Copy link
Author

@tonyhutter That is my suspicion as well. Unfortunately I'm not familiar with all the nitty gritty details of the DKMS deployment on Arch Linux so I haven't found the relevant data yet.

@WoefulDerelict
Copy link
Author

Here is the config.log and make.log generated when DKMS attempts to build and install the module as well as a snippit from the pacman.log showing the update process and the error: https://gist.github.com/WoefulDerelict/16ba96c1d3ee52c47481ad7e210451f6

The recipe used to generate the package can be viewed here: https://aur.archlinux.org/packages/zfs-dkms-git The previous config.log is from a package build process driven by that script.

@tonyhutter
Copy link
Contributor

From the logs:
/var/lib/dkms/zfs/0.7.0/build/configure --prefix=/usr --with-config=kernel --with-linux=/usr/lib/modules/4.8.2-1-ARCH/build --with-linux-obj=/usr/lib/modules/4.8.2-1-ARCH/build --with-spl=/usr/src/spl-0.7.0 --with-spl-obj=/var/lib/dkms/spl/0.7.0/4.8.2-1-ARCH/x86_64 --with-spl-timeout=300

I'm thinking the issue may be that we're printing that libdevmapper warning on all builds, rather than just userspace builds. libdevmapper isn't used in the kernel code. Let me see if I can suppress the warning on non-userspace builds.

@WoefulDerelict
Copy link
Author

That makes sense and seems a reasonable solution. The userspace build during packaging went off decently well. It was only during this phase that I noticed a new warning.

@tonyhutter
Copy link
Contributor

I have a working fix that I'm rolling into a PR. Fix is:

diff --git a/configure.ac b/configure.ac
index e9f50f7..6647dc3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -304,6 +304,6 @@ AC_CONFIG_FILES([

 AC_OUTPUT

-AS_IF([test "x$user_libdevmapper" != xyes ], [
+AS_IF([test "x$user_libdevmapper" != xyes && test "$ZFS_CONFIG" != kernel ], [
     AC_MSG_WARN([Building without libdevmapper.  Auto-replace, auto-online, and statechange-led.sh may not work correctly with device mapper vdevs.])
 ])

@behlendorf
Copy link
Contributor

@tonyhutter can you line wrap this as well to mind the 80 character limit.

@tonyhutter
Copy link
Contributor

Yep, fixed it in my PR (#5331)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Building Indicates an issue related to building binaries
Projects
None yet
Development

No branches or pull requests

3 participants