Subject: eudev preinst fails to detect availability of requisite kernel features

From: KORN Andras <[email-masked]>
Date: Wed, 11 Mar 2020 18:24:03 +0100

Package: eudev
Version: 3.2.9-7
Severity: normal

Hi,

this code:

  if [ -e /proc/kallsyms ]; then

      local needed_symbols='inotify_init signalfd accept4 open_by_handle_at timerfd_create epoll_create'
      for symbol in $needed_symbols; do
      if ! egrep -q "^[a-fA-F0-9]+ T \.?sys_${symbol}$" /proc/kallsyms; then
          cat <<END
Since release 198, udev requires support for the following features in
the running kernel:

- inotify(2)            (CONFIG_INOTIFY_USER)
- signalfd(2)           (CONFIG_SIGNALFD)
- accept4(2)
- open_by_handle_at(2)  (CONFIG_FHANDLE)
- timerfd_create(2)     (CONFIG_TIMERFD)
- epoll_create(2)       (CONFIG_EPOLL)
END
          exit 1
      fi
      done
  fi

thought that my kernel was missing one of the required features, but in fact I have all of them:

ffffffffab1bd402 T __ia32_sys_inotify_init
ffffffffab1bd402 T __x64_sys_inotify_init
ffffffffab1c1554 T __x64_sys_signalfd
ffffffffab1c1562 T __ia32_sys_signalfd
ffffffffab1c15fb T __ia32_compat_sys_signalfd
ffffffffab1c160d T __x32_compat_sys_signalfd
ffffffffab473fc5 T __sys_accept4
ffffffffab474170 T __x64_sys_accept4
ffffffffab474188 T __ia32_sys_accept4
ffffffffab1d5118 T __ia32_sys_open_by_handle_at
ffffffffab1d512a T __ia32_compat_sys_open_by_handle_at
ffffffffab1d513a T __x32_compat_sys_open_by_handle_at
ffffffffab1d514b T __x64_sys_open_by_handle_at
ffffffffab1c1c84 T __x64_sys_timerfd_create
ffffffffab1c1c91 T __ia32_sys_timerfd_create
ffffffffab1c029d T __ia32_sys_epoll_create
ffffffffab1c02b4 T __x64_sys_epoll_create

The regex is wrong; it should probably be

      if ! egrep -q "^[a-fA-F0-9]+ T .*sys_${symbol}$" /proc/kallsyms; then

This is with a self-built 4.19.23 kernel, fwiw.

-- Package-specific info:

-- System Information:
Init: runit (via /run/runit.stopit)

Best regards,

András

Ps. Please Cc me explicitly if you reply.

-- 
         Some people are like slinkies. Not really good for anything,
     yet you can't help but smile when you see one pushed down the stairs.