[oe] [RFC] remove CONFIG_SYSFS_DEPRECATED from kernels

Stanislav Brabec utx at penguin.cz
Fri May 29 19:31:14 UTC 2009


Hallo.

I would like to propose removal of CONFIG_SYSFS_DEPRECATED* from all
kernel configurations. Only distros with ancient kernels without udev,
distros with proprietary applications depending on the old /sys
structure should stick at the old /sys structure (and old udev).

It would be nice to migrate all updated distros to the new /sys
structure. All major desktop distributions migrated several years ago
and we may expect end of support of the old /sys layout (udev already
did it).

Migration should simplify life of developers of hardware control
utilities.

For the migration see instructions below. It should be easy to migrate.
For example migration of angstrom for spitz required probably just one
line change in the whole distro.

Rationale:

CONFIG_SYSFS_DEPRECATED* forces old /sys file system structure, which
was deprecates sometimes around linux-2.6.15. Major distributions
already left this structure (before 2007).

Sticking with the deprecated /sys structure may bring problems for new
versions of software. For example latest udev does not support
CONFIG_SYSFS_DEPRECATED* any more.

Actually, CONFIG_SYSFS_DEPRECATED* together with udev-141 breaks
touchscreen in the latest oe.dev angstrom builds.
http://projects.linuxtogo.org/pipermail/angstrom-distro-devel/2009-May/003252.html

Instructions:

Use script below to find potential candidates (users of changed parts
of /sys).

Then skip packages that are maintained and packaged for major
distributions. They were already fixed.

Check the rest for following problems:

- Absolute paths into /sys/class. These paths may change.

- Not expecting symlinks in /sys/class. /sys/class will now contain
directories with symlinks instead of directories. (=> commands with -R
will not recurse)

#!/bin/sh
cd tmp/work

grep -rl '/sys/\(class\|devices\)' */*/install 2>/dev/null |
sed 's:^[^/]*/::;s:/.*::' |
uniq >../../sys_accesses.lst

grep -rl '/sys/\(block\|bus\|class\|dev\|devices\|firmware\|fs\|kernel\|module\|power\)' */*/*/configure* 2>/dev/null |
sed 's:^[^/]*/::;s:/.*::' |
uniq >../../sys_host_checks.lst



________________________________________________________________________
Stanislav Brabec
http://www.penguin.cz/~utx/zaurus





More information about the Openembedded-devel mailing list