[devel] udev-185 и статические устройства, tmpfiles

Alexey Shabalin a.shabalin на gmail.com
Ср Июн 13 16:43:59 MSK 2012


День добрый.
В новом udev убрали возможность копирования устройств из /lib/udev/devices.
Для SysV я добавил в init-скрипт
create_static_inodes()
{
           [ -d /lib/udev/devices -a -n "`ls -A /lib/udev/devices`" ] && \
                       cp -a /lib/udev/devices/* "$udev_root/"
}

А вот для systemd я не стал делать ничего подобного и предлагаю
воспользоваться методом, предлагаемым апстримом.
А именно возможностью tmpfiles.d
Кое-что уже можно взять из федоры, что-то придётся сделать самим.
Например, в cups можно добавить файл (как и в федора):

cat > ${RPM_BUILD_ROOT}%{_prefix}/lib/tmpfiles.d/cups-lp.conf <<EOF
# This file is part of cups.
#
# Legacy parallel port character device nodes, to trigger the
# auto-loading of the kernel module on access.
#
# See tmpfiles.d(5) for details

c /dev/lp0 0660 root lp - 6:0
c /dev/lp1 0660 root lp - 6:1
c /dev/lp2 0660 root lp - 6:2
c /dev/lp3 0660 root lp - 6:3
EOF

Количесто пакетов, которые надо починить не велико:
grep /lib/udev/devices contents_index | awk '{print($2)}' | uniq
udev
fuse
losetup
cups
ppp
brltty

Следующее пожелание - упаковывайте tmpfiles не в /etc/tmpfiles.d а в
/lib/tmpfiles.d

Ещё затрону следующую проблему, т.к. она тоже связана с tmpfiles.
На системах с systemd /var/lock тоже расположена на tmpfs.
Соответстенно вложенные директории тоже надо создавать с помощью tmpfiles.
Вот список таких пакетов:
grep /var/lock contents_index | awk '{print($2)}' | uniq
filesystem
cvs
mod_dav
ejabberd
grass
apache2-common
lvm2
mailman
man
leafnode
nginx
libploop
libsane

Их тоже надо "чинить".


-- 
Alexey Shabalin


Подробная информация о списке рассылки Devel