* [Buildroot] [PATCH 01/15 v6] support/gen-manual-lists.py: rework generating the virtual package list
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 02/15 v6] package/libudev: new virtual package Yann E. MORIN
` (14 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
To get the list of providers of a virtual pacakge, we currently scan
all the symbols to see if they select the virtual package _HAS symbol.
Then, for all such selecting symbols, we iterate through the select
chain, up to the uppermost symbol that has a prompt, to get the actual
user-selectable symbol that ultimately will select the virtual package.
This handles blind symbols that are options to a package.
So far, this is working relatively OK, except we do not account for a
special type of providers: virtual packages. There is nothing that
prevents a virtual package to declare itself as a provider for another
virtual package.
Additionally, another case that is not handled is actual packages that
are actually promptless. So far, we expected symbols with no prompt to
be an option to a package, and we would ultimately (via the backward
select recursion, above) end up finding a package symbol with a prompt.
But we're soon removing the prompts of eudev and systemd [*], so the
previously valid heuristic is no longer valid.
So, we need a brand-new heuristic to build up the list of providers.
Fortunately, instead of _blindly_ looking for selecting symbols, we
can actually extract the providing packages from the list of 'default'
values of the _PROVIDES_XXX symbol. This gives us the list of packages,
but not sub-options.
Then, we can go on hunting for any selecting symbol. Each such symbol
that is not a known package gets treated like an option, as was done
up until now.
What this additional complexity brings, is that prompt-less packages
are automatically found, from the list of 'default' values, and this
includes real prompt-less packages, as well as virtual packages. These
are what we were missing previously.
[*] because they are not directly user-selectable, see the corresponding
following changesets for the rationale.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Samuel Martin <s.martin49@gmail.com>
---
support/scripts/gen-manual-lists.py | 93 +++++++++++++++++++++++++++++++------
1 file changed, 78 insertions(+), 15 deletions(-)
diff --git a/support/scripts/gen-manual-lists.py b/support/scripts/gen-manual-lists.py
index 95c10dc..0f1906d 100644
--- a/support/scripts/gen-manual-lists.py
+++ b/support/scripts/gen-manual-lists.py
@@ -384,28 +384,91 @@ class Buildroot:
return s
return None
- def _get_providers(symbol):
- providers = list()
+ # This functions return a list of all symbols that have a prompt,
+ # and that 'select' the given symbol
+ def _get_selecting_symbols_with_prompt(symbol):
+ syms = list()
for sym in self.config:
if not sym.is_symbol():
continue
- if _symbol_is_legacy(sym):
- continue
selects = sym.get_selected_symbols()
if not selects:
continue
+ # Does this symbol selects us?
for s in selects:
- if s == symbol:
- if sym.prompts:
- l = self._get_symbol_label(sym,False)
- parent_pkg = _get_parent_package(sym)
- if parent_pkg is not None:
- l = self._get_symbol_label(parent_pkg, False) \
- + " (w/ " + l + ")"
- providers.append(l)
- else:
- providers.extend(_get_providers(sym))
- return providers
+ if not s == symbol:
+ continue
+ if sym.prompts:
+ syms.append(sym)
+ else:
+ syms.extend(_get_selecting_symbols_with_prompt(sym))
+ return syms
+
+ # This function returns a list of providers for the specified symbol.
+ # 'symbol' must be a _HAS_XXX symbol.
+ # Each element is a string.
+ # Each element is the name of the providing package, with any
+ # sub-option of that package.
+ # E.g.: "rpi-userland" "mesa3d (w/ OpenGL ES)"
+ #
+ # We consider the provider packages by looking at all the default "foo"
+ # for the corresponding _PROVIDES_XXX symbol, which gives us all the
+ # packages.
+ # Then we look at all the symbols that 'select' the _HAS_XXX symbol.
+ # If a selecting symbol is also a package symbol, this is a cut.
+ # Otherwise, we iterate the 'selected by' chain until we find a symbol
+ # with a prompt, which we consider the enabling sub-option, or we end
+ # up with the providing-package's symbol.
+ def _get_providers(symbol):
+ providers_syms = list()
+ providers_syms_names = list()
+ providers_syms_w_opts = list()
+
+ # Get all providing packages
+ _provides_pkg = re.sub(r"^(BR2_PACKAGE)_HAS_(.+)$",
+ r"\1_PROVIDES_\2",
+ symbol.get_name())
+ _provides_sym = self.config.get_symbol(_provides_pkg)
+ for (pn, _) in _provides_sym.def_exprs:
+ ps = self.config._expr_val_str(pn, get_val_instead_of_eval=True)
+ ps = re.sub(r"-", r"_", ps.strip('"'))
+ ps = self.config.get_symbol("BR2_PACKAGE_" + ps.upper())
+ providers_syms.append(ps)
+ providers_syms_names.append( (ps, pn) )
+
+ # Now, try to get sub-options
+ # Iterate across all symbols, to see if any selects us
+ for sym in _get_selecting_symbols_with_prompt(symbol):
+ if _symbol_is_legacy(sym):
+ continue
+ if sym in providers_syms:
+ # The symbol is a package that provides us, and we already
+ # know of it
+ continue
+ # The symbol is unknown, we suppose it is an option, so find
+ # the package it comes from
+ parent_pkg = _get_parent_package(sym)
+ if parent_pkg is not None:
+ providers_syms_w_opts.append( (parent_pkg, sym) )
+
+ # Now, build a list of providers with option
+ seen = list()
+ providers_str = list()
+ for (p, o) in providers_syms_w_opts:
+ if not p in seen:
+ seen.append(p)
+ l = self._get_symbol_label(p, False) + " (w/ " \
+ + self._get_symbol_label(o, False) + ")"
+ providers_str.append(l)
+
+ # Finally, complete with the list of providers without option
+ for (ps, pn) in providers_syms_names:
+ if ps in seen:
+ continue
+ if not pn in providers_str:
+ providers_str.append(pn)
+
+ return providers_str
if what == "layout":
return ( "100%", "^1,4,4" )
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 02/15 v6] package/libudev: new virtual package
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 01/15 v6] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 03/15 v6] package/eudev: is a provider for libudev Yann E. MORIN
` (13 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
Not all packages that currently depend on udev really need an udev
daemon; most may only require a libudev.so to be available. For
example, libcec, mesa3d...
Currently, we conflate udev and libudev into a single virtual package.
Introduce a new virtual package 'libudev' that packages can select if
they provide libudev.so (obviously, systemd and eudev are such packages)
and which packages can depend on if they just need libudev.so and not an
udev daemon.
Note: only the virtual package is added for now, providers and users
will be converted in followup patches.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
Reviewed-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
package/Config.in | 1 +
package/libudev/Config.in | 6 ++++++
package/libudev/libudev.mk | 7 +++++++
3 files changed, 14 insertions(+)
create mode 100644 package/libudev/Config.in
create mode 100644 package/libudev/libudev.mk
diff --git a/package/Config.in b/package/Config.in
index 8865c1e..83f5a5e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -697,6 +697,7 @@ menu "Hardware handling"
source "package/librtlsdr/Config.in"
source "package/libserial/Config.in"
source "package/libsoc/Config.in"
+ source "package/libudev/Config.in"
source "package/libusb/Config.in"
source "package/libusb-compat/Config.in"
source "package/libv4l/Config.in"
diff --git a/package/libudev/Config.in b/package/libudev/Config.in
new file mode 100644
index 0000000..2745fcc
--- /dev/null
+++ b/package/libudev/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_HAS_LIBUDEV
+ bool
+
+config BR2_PACKAGE_PROVIDES_LIBUDEV
+ depends on BR2_PACKAGE_HAS_LIBUDEV
+ string
diff --git a/package/libudev/libudev.mk b/package/libudev/libudev.mk
new file mode 100644
index 0000000..af1b3dd
--- /dev/null
+++ b/package/libudev/libudev.mk
@@ -0,0 +1,7 @@
+################################################################################
+#
+# libudev
+#
+################################################################################
+
+$(eval $(virtual-package))
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 03/15 v6] package/eudev: is a provider for libudev
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 01/15 v6] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 02/15 v6] package/libudev: new virtual package Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 04/15 v6] package/systemd: " Yann E. MORIN
` (12 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
Reviewed-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[ Compiled for x86 target with glibc 2.18 and Kernel headers 3.15.x ]
Tested-by: Cedric Chedaleux <cedric.chedaleux@orange.com>
---
package/eudev/Config.in | 4 ++++
package/eudev/eudev.mk | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/package/eudev/Config.in b/package/eudev/Config.in
index 6101d6d..fa28a9f 100644
--- a/package/eudev/Config.in
+++ b/package/eudev/Config.in
@@ -6,6 +6,7 @@ config BR2_PACKAGE_EUDEV
depends on BR2_LARGEFILE # util-linux
depends on BR2_USE_WCHAR # util-linux
depends on !BR2_PREFER_STATIC_LIB # kmod
+ select BR2_PACKAGE_HAS_LIBUDEV
select BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
@@ -21,6 +22,9 @@ config BR2_PACKAGE_EUDEV
if BR2_PACKAGE_EUDEV
+config BR2_PACKAGE_PROVIDES_LIBUDEV
+ default "eudev"
+
config BR2_PACKAGE_PROVIDES_UDEV
default "eudev"
diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk
index 3cd22be..3a0d0e4 100644
--- a/package/eudev/eudev.mk
+++ b/package/eudev/eudev.mk
@@ -25,7 +25,7 @@ EUDEV_CONF_OPTS = \
--enable-libkmod
EUDEV_DEPENDENCIES = host-gperf host-pkgconf util-linux kmod
-EUDEV_PROVIDES = udev
+EUDEV_PROVIDES = libudev udev
ifeq ($(BR2_PACKAGE_EUDEV_RULES_GEN),y)
EUDEV_CONF_OPTS += --enable-rule_generator
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 04/15 v6] package/systemd: is a provider for libudev
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (2 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 03/15 v6] package/eudev: is a provider for libudev Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 05/15 v6] package/eudev: bump to 1.10 Yann E. MORIN
` (11 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
---
package/systemd/Config.in | 4 ++++
package/systemd/systemd.mk | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/package/systemd/Config.in b/package/systemd/Config.in
index be28975..de5c39e 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -17,6 +17,7 @@ config BR2_PACKAGE_SYSTEMD
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 # libcap
depends on BR2_USE_MMU # dbus
+ select BR2_PACKAGE_HAS_LIBUDEV
select BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_DBUS # runtime dependency only
select BR2_PACKAGE_LIBCAP
@@ -61,6 +62,9 @@ config BR2_PACKAGE_SYSTEMD
if BR2_PACKAGE_SYSTEMD
+config BR2_PACKAGE_PROVIDES_LIBUDEV
+ default "systemd"
+
config BR2_PACKAGE_PROVIDES_UDEV
default "systemd"
diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
index 75a32f4..ce05f06 100644
--- a/package/systemd/systemd.mk
+++ b/package/systemd/systemd.mk
@@ -17,7 +17,7 @@ SYSTEMD_DEPENDENCIES = \
kmod \
host-gperf
-SYSTEMD_PROVIDES = udev
+SYSTEMD_PROVIDES = libudev udev
SYSTEMD_AUTORECONF = YES
# Make sure that systemd will always be built after busybox so that we have
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 05/15 v6] package/eudev: bump to 1.10
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (3 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 04/15 v6] package/systemd: " Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-29 20:24 ` Bernd Kuhls
2014-10-27 20:46 ` [Buildroot] [PATCH 06/15 v6] package/eudev: split udev/libudev Yann E. MORIN
` (10 subsequent siblings)
15 siblings, 1 reply; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
Now requires Linux kernel headers >= 3.9.
Also point to a better homepage.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
---
package/eudev/Config.in | 14 ++++++++------
package/eudev/eudev.mk | 2 +-
system/Config.in | 6 ++++--
3 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/package/eudev/Config.in b/package/eudev/Config.in
index fa28a9f..a2d804b 100644
--- a/package/eudev/Config.in
+++ b/package/eudev/Config.in
@@ -1,5 +1,6 @@
config BR2_PACKAGE_EUDEV
bool "eudev"
+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
depends on !BR2_avr32 # no epoll_create1
depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
depends on BR2_USE_MMU # uses fork()
@@ -15,10 +16,10 @@ config BR2_PACKAGE_EUDEV
Userspace device daemon. This is a standalone version,
independent of systemd. It is a fork maintained by Gentoo.
- eudev requires a Linux kernel >= 2.6.34: it relies on devtmpfs
+ eudev requires a Linux kernel >= 3.9: it relies on devtmpfs
and inotify.
- http://dev.gentoo.org/~blueness/eudev
+ http://www.gentoo.org/proj/en/eudev/
if BR2_PACKAGE_EUDEV
@@ -33,14 +34,15 @@ config BR2_PACKAGE_EUDEV_RULES_GEN
help
Enable persistent rules generator
-endif
-
comment "eudev needs eudev /dev management"
depends on !BR2_avr32
depends on BR2_USE_MMU
depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
-comment "eudev needs a toolchain w/ largefile, wchar, dynamic library"
+endif # BR2_PACKAGE_EUDEV
+
+comment "eudev needs a toolchain w/ largefile, wchar, dynamic library, headers >= 3.9"
depends on !BR2_avr32
depends on BR2_USE_MMU
- depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB
+ depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB \
+ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk
index 3a0d0e4..1c39faf 100644
--- a/package/eudev/eudev.mk
+++ b/package/eudev/eudev.mk
@@ -4,7 +4,7 @@
#
################################################################################
-EUDEV_VERSION = 1.9
+EUDEV_VERSION = 1.10
EUDEV_SOURCE = eudev-$(EUDEV_VERSION).tar.gz
EUDEV_SITE = http://dev.gentoo.org/~blueness/eudev
EUDEV_LICENSE = GPLv2+ (programs), LGPLv2.1+ (libraries)
diff --git a/system/Config.in b/system/Config.in
index 2465f79..b39ec88 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -124,6 +124,7 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
bool "Dynamic using eudev"
+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 # eudev
depends on !BR2_avr32 # eudev
depends on BR2_LARGEFILE
depends on BR2_USE_WCHAR
@@ -131,10 +132,11 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
depends on BR2_USE_MMU # eudev
select BR2_PACKAGE_EUDEV
-comment "eudev needs a toolchain w/ largefile, wchar, dynamic library"
+comment "eudev needs a toolchain w/ largefile, wchar, dynamic library, headers >= 3.9"
depends on !BR2_avr32 # eudev
depends on BR2_USE_MMU
- depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB
+ depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB \
+ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
endchoice
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 06/15 v6] package/eudev: split udev/libudev
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (4 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 05/15 v6] package/eudev: bump to 1.10 Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 07/15 v6] package/mesa3d: depends on libudev, not udev Yann E. MORIN
` (9 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
Quite a few packages are happy with just libudev, and not a full udev
daemon running.
Split the eudev package so that we can install just libudev if
/dev management is not handled by eudev.
When only the library is installed, behave as a provider for the libudev
virtual package. If /dev management is handled by eudev, then also be a
provider for the udev virtual package.
Adjust comments of dependencies accordingly.
Note:
Most of the .mk splitting of the dependencies and the build/install
rules are from Bernd. Thanks! :-)
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[ Compiled for x86 target with glibc 2.18 and Kernel headers 3.15.x ]
Tested-by: Cedric Chedaleux <cedric.chedaleux@orange.com>
---
Changes v4 -> v5:
- building libudev requires two steps (Bernd)
Changes RFCv2-> v3:
- typo s/system/systemd/
Changes RFCv1 -> RFCv2:
- be a provider for libudev always, since udev is not such a provider
any more (Thomas)
---
package/eudev/Config.in | 32 ++++++++++---
...y-use-pragma-for-ignoring-diagnostics-if-.patch | 8 ++--
package/eudev/eudev.mk | 53 ++++++++++++++++++++--
system/Config.in | 20 ++++++--
4 files changed, 95 insertions(+), 18 deletions(-)
diff --git a/package/eudev/Config.in b/package/eudev/Config.in
index a2d804b..1056ef7 100644
--- a/package/eudev/Config.in
+++ b/package/eudev/Config.in
@@ -1,13 +1,33 @@
config BR2_PACKAGE_EUDEV
bool "eudev"
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
+ depends on !BR2_avr32 # no __NR_name_to_handle_at
+ depends on BR2_USE_WCHAR
+ depends on !BR2_PREFER_STATIC_LIB
+ depends on !BR2_PACKAGE_SYSTEMD
+ select BR2_PACKAGE_HAS_LIBUDEV
+ help
+ eudev is a fork of systemd-udev with the goal of obtaining better
+ compatibility with existing software.
+
+ This installs only the libudev library.
+
+ http://www.gentoo.org/proj/en/eudev/
+
+if BR2_PACKAGE_EUDEV
+
+config BR2_PACKAGE_PROVIDES_LIBUDEV
+ default "eudev"
+
+config BR2_PACKAGE_EUDEV_DAEMON
+ bool "udev daemon"
+ depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
depends on !BR2_avr32 # no epoll_create1
depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
depends on BR2_USE_MMU # uses fork()
depends on BR2_LARGEFILE # util-linux
depends on BR2_USE_WCHAR # util-linux
depends on !BR2_PREFER_STATIC_LIB # kmod
- select BR2_PACKAGE_HAS_LIBUDEV
select BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
@@ -21,10 +41,7 @@ config BR2_PACKAGE_EUDEV
http://www.gentoo.org/proj/en/eudev/
-if BR2_PACKAGE_EUDEV
-
-config BR2_PACKAGE_PROVIDES_LIBUDEV
- default "eudev"
+if BR2_PACKAGE_EUDEV_DAEMON
config BR2_PACKAGE_PROVIDES_UDEV
default "eudev"
@@ -34,7 +51,9 @@ config BR2_PACKAGE_EUDEV_RULES_GEN
help
Enable persistent rules generator
-comment "eudev needs eudev /dev management"
+endif # BR2_PACKAGE_EUDEV_DAEMON
+
+comment "udev daemon needs eudev /dev management"
depends on !BR2_avr32
depends on BR2_USE_MMU
depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
@@ -46,3 +65,4 @@ comment "eudev needs a toolchain w/ largefile, wchar, dynamic library, headers >
depends on BR2_USE_MMU
depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB \
|| !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
+ depends on !BR2_PACKAGE_SYSTEMD
diff --git a/package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch b/package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch
index 8b70fbf..38dba9b 100644
--- a/package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch
+++ b/package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch
@@ -6,14 +6,16 @@ Subject: [PATCH] libudev: Only use #pragma for ignoring diagnostics if GCC
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
+[yann.morin.1998 at free.fr: adapt to 1.10]
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
src/libudev/macro.h | 5 +++++
1 file changed, 5 insertions(+)
-diff --git a/src/libudev/macro.h b/src/libudev/macro.h
+diff --git a/src/shared/macro.h b/src/shared/macro.h
index ac2a23f..fb55983 100644
---- a/src/libudev/macro.h
-+++ b/src/libudev/macro.h
+--- a/src/shared/macro.h
++++ b/src/shared/macro.h
@@ -40,12 +40,17 @@
#define _cleanup_(x) __attribute__((cleanup(x)))
diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk
index 1c39faf..bb01d4a 100644
--- a/package/eudev/eudev.mk
+++ b/package/eudev/eudev.mk
@@ -16,19 +16,28 @@ EUDEV_CONF_ENV += LIBS=-lrt
EUDEV_CONF_OPTS = \
--disable-manpages \
- --sbindir=/sbin \
--with-rootlibdir=/lib \
--libexecdir=/lib \
--with-firmware-path=/lib/firmware \
--disable-introspection \
- --enable-split-usr \
- --enable-libkmod
+ --enable-split-usr
+
+EUDEV_DEPENDENCIES = host-pkgconf
+EUDEV_PROVIDES = libudev
+
+ifeq ($(BR2_PACKAGE_EUDEV_DAEMON),y)
+
+EUDEV_DEPENDENCIES += host-gperf util-linux kmod
+EUDEV_PROVIDES += udev
-EUDEV_DEPENDENCIES = host-gperf host-pkgconf util-linux kmod
-EUDEV_PROVIDES = libudev udev
+EUDEV_CONF_OPTS += \
+ --sbindir=/sbin \
+ --enable-libkmod
ifeq ($(BR2_PACKAGE_EUDEV_RULES_GEN),y)
EUDEV_CONF_OPTS += --enable-rule_generator
+else
+EUDEV_CONF_OPTS += --disable-rule_generator
endif
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
@@ -47,4 +56,38 @@ define EUDEV_USERS
- - input -1 * - - - Input device group
endef
+else # ! daemon
+
+EUDEV_CONF_OPTS += \
+ --disable-keymap \
+ --disable-libkmod \
+ --disable-modules \
+ --disable-selinux \
+ --disable-rule-generator \
+ --disable-gtk-doc \
+ --disable-gudev
+
+# When not installing the daemon, we have to override the build and install
+# commands, to just install the library.
+
+define EUDEV_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src/shared
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src/libudev
+endef
+
+# Symlink udev.pc to libudev.pc for those packages that conflate the two
+# and 'Requires: udev' when they should just 'Requires: libudev'. Do the
+# symlink, to avoid patching each and all of those packages.
+# Note: nothing to install from src/shared, only from src/libudev
+define EUDEV_INSTALL_STAGING_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src/libudev DESTDIR=$(STAGING_DIR) install
+ ln -sf libudev.pc $(STAGING_DIR)/usr/lib/pkgconfig/udev.pc
+endef
+
+define EUDEV_INSTALL_TARGET_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src/libudev DESTDIR=$(TARGET_DIR) install
+endef
+
+endif # ! daemon
+
$(eval $(autotools-package))
diff --git a/system/Config.in b/system/Config.in
index b39ec88..1df84b1 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -126,11 +126,23 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
bool "Dynamic using eudev"
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9 # eudev
depends on !BR2_avr32 # eudev
- depends on BR2_LARGEFILE
- depends on BR2_USE_WCHAR
- depends on !BR2_PREFER_STATIC_LIB
- depends on BR2_USE_MMU # eudev
+ depends on BR2_USE_MMU # eudev (fork)
+ depends on BR2_LARGEFILE # eudev-daemon (util-linux)
+ depends on BR2_USE_WCHAR # eudev (util-linux)
+ depends on !BR2_PREFER_STATIC_LIB # eudev
select BR2_PACKAGE_EUDEV
+ select BR2_PACKAGE_EUDEV_DAEMON
+ help
+ Userspace device daemon. This is a standalone version,
+ independent of systemd. It is a fork maintained by Gentoo.
+
+ eudev requires a Linux kernel >= 2.6.34: it relies on devtmpfs
+ and inotify.
+
+ You can further configure eudev in:
+ Target packages --> Hardware handling --> eudev
+
+ http://dev.gentoo.org/~blueness/eudev
comment "eudev needs a toolchain w/ largefile, wchar, dynamic library, headers >= 3.9"
depends on !BR2_avr32 # eudev
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 07/15 v6] package/mesa3d: depends on libudev, not udev
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (5 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 06/15 v6] package/eudev: split udev/libudev Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 21:15 ` Thomas Petazzoni
2014-10-27 20:46 ` [Buildroot] [PATCH 08/15 v6] package/libcec: needs libudev, not a udev daemon Yann E. MORIN
` (8 subsequent siblings)
15 siblings, 1 reply; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
Changes v5 -> v6:
- tweak comment for when mesa3d is not available (with help from Bernd)
---
package/mesa3d/Config.in | 11 ++++-------
package/mesa3d/mesa3d.mk | 4 ++--
2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index 74ebbed..b55173d 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -9,7 +9,7 @@ menuconfig BR2_PACKAGE_MESA3D
select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XORG7
- depends on BR2_PACKAGE_HAS_UDEV
+ depends on BR2_PACKAGE_HAS_LIBUDEV
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_LARGEFILE
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
@@ -105,12 +105,8 @@ if BR2_PACKAGE_MESA3D_DRIVER
comment "Additional API Support"
-comment "OpenGL EGL needs udev /dev management"
- depends on !BR2_PACKAGE_HAS_UDEV
-
config BR2_PACKAGE_MESA3D_OPENGL_EGL
bool "OpenGL EGL"
- depends on BR2_PACKAGE_HAS_UDEV
select BR2_PACKAGE_HAS_LIBEGL
help
Use the Khronos EGL APIs. EGL is a window manager for OpenGL applications
@@ -133,6 +129,7 @@ config BR2_PACKAGE_PROVIDES_LIBGLES
endif # BR2_PACKAGE_MESA3D
-comment "mesa3d needs udev /dev management and a toolchain w/ C++, largefile, NPTL"
+comment "mesa3d needs a libudev provider and a toolchain w/ C++, largefile, NPTL"
depends on !BR2_LARGEFILE || !BR2_INSTALL_LIBSTDCPP || \
- !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_HAS_UDEV
+ !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
+ !BR2_PACKAGE_HAS_LIBUDEV
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index 6f1f414..8b35c45 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -102,8 +102,8 @@ MESA3D_CONF_OPTS += --enable-opengl
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
MESA3D_PROVIDES += libegl
-# egl depends on gbm, gbm depends on udev
-MESA3D_DEPENDENCIES += udev
+# egl depends on gbm, gbm depends on libudev
+MESA3D_DEPENDENCIES += libudev
MESA3D_EGL_PLATFORMS = drm
ifeq ($(BR2_PACKAGE_WAYLAND),y)
MESA3D_DEPENDENCIES += wayland
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 07/15 v6] package/mesa3d: depends on libudev, not udev
2014-10-27 20:46 ` [Buildroot] [PATCH 07/15 v6] package/mesa3d: depends on libudev, not udev Yann E. MORIN
@ 2014-10-27 21:15 ` Thomas Petazzoni
2014-12-19 18:47 ` Yann E. MORIN
0 siblings, 1 reply; 23+ messages in thread
From: Thomas Petazzoni @ 2014-10-27 21:15 UTC (permalink / raw)
To: buildroot
Dear Yann E. MORIN,
On Mon, 27 Oct 2014 13:46:15 -0700, Yann E. MORIN wrote:
> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> index 74ebbed..b55173d 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -9,7 +9,7 @@ menuconfig BR2_PACKAGE_MESA3D
> select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
> select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XORG7
> select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XORG7
> - depends on BR2_PACKAGE_HAS_UDEV
> + depends on BR2_PACKAGE_HAS_LIBUDEV
I thought the main conclusion from the meeting was that 'select' should
be used instead of 'depends on' for libudev, no?
From the report at http://elinux.org/Buildroot:DeveloperDaysELCE2014:
"We would also like to change the depends on libudev into select
libudev.".
Am I missing something here?
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH 07/15 v6] package/mesa3d: depends on libudev, not udev
2014-10-27 21:15 ` Thomas Petazzoni
@ 2014-12-19 18:47 ` Yann E. MORIN
0 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-12-19 18:47 UTC (permalink / raw)
To: buildroot
Thomas, All,
Reviving an old thread...
TL;DR:
- using a non-virtual package is not trivial;
- I'll stick to using a virtual package.
On 2014-10-27 22:15 +0100, Thomas Petazzoni spake thusly:
> On Mon, 27 Oct 2014 13:46:15 -0700, Yann E. MORIN wrote:
> > diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> > index 74ebbed..b55173d 100644
> > --- a/package/mesa3d/Config.in
> > +++ b/package/mesa3d/Config.in
> > @@ -9,7 +9,7 @@ menuconfig BR2_PACKAGE_MESA3D
> > select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
> > select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XORG7
> > select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XORG7
> > - depends on BR2_PACKAGE_HAS_UDEV
> > + depends on BR2_PACKAGE_HAS_LIBUDEV
>
> I thought the main conclusion from the meeting was that 'select' should
> be used instead of 'depends on' for libudev, no?
>
> From the report at http://elinux.org/Buildroot:DeveloperDaysELCE2014:
> "We would also like to change the depends on libudev into select
> libudev.".
>
> Am I missing something here?
No you're not, and I had completely forgotten about that when I
respinned the series at the time.
However, I've since tried to implement a libudev package.
It's just mind-boggling how difficult it is, in fact... :-(
On the surface, it seems pretty easy, and the bulk of the changes are
pretty trivial:
- split eudev into 'eudev' on one side to just provide libudev, and
a new option to provide the full 'udev daemon' on the other side;
so 'eudev' is now just providing libudev;
- have the new 'udev daemon' option select _HAS_UDEV;
- introduce a dummy 'libudev' package that:
- does nothing if systemd is enabled, except just build-depend on it,
- select eudev if systemd is disabled, and build-depend on eudev;
- change all packages that can be changed, to just select this new
'libudev' dummy package, and propagate the dependencies of libudev
to those packages.
But, not-so-curiously-enough, this causes a hell of recursive
dependencies throughout seemingly unrelated symbols, like for example:
package/xbmc/Config.in:31:error: recursive dependency detected!
package/xbmc/Config.in:31: symbol BR2_PACKAGE_XBMC depends on BR2_PACKAGE_XBMC_EGL_GLES
package/xbmc/Config.in:10: symbol BR2_PACKAGE_XBMC_EGL_GLES depends on BR2_PACKAGE_HAS_LIBEGL
package/opengl/libegl/Config.in:1: symbol BR2_PACKAGE_HAS_LIBEGL is selected by BR2_PACKAGE_RPI_USERLAND
package/rpi-userland/Config.in:1: symbol BR2_PACKAGE_RPI_USERLAND is selected by BR2_PACKAGE_WESTON_RPI
package/weston/Config.in:47: symbol BR2_PACKAGE_WESTON_RPI depends on BR2_PACKAGE_WESTON
package/weston/Config.in:7: symbol BR2_PACKAGE_WESTON depends on BR2_PACKAGE_HAS_UDEV
package/udev/Config.in:1: symbol BR2_PACKAGE_HAS_UDEV is selected by BR2_PACKAGE_EUDEV_DAEMON
package/eudev/Config.in:18: symbol BR2_PACKAGE_EUDEV_DAEMON depends on BR2_PACKAGE_EUDEV
package/eudev/Config.in:1: symbol BR2_PACKAGE_EUDEV is selected by BR2_PACKAGE_LIBUDEV
package/libudev/Config.in:5: symbol BR2_PACKAGE_LIBUDEV is selected by BR2_PACKAGE_XBMC_LIBCEC
package/xbmc/Config.in:156: symbol BR2_PACKAGE_XBMC_LIBCEC depends on BR2_PACKAGE_XBMC
So, of course, we could go to great lengths at fixing those, sicne the
dependency chain is far from trivial to fix. In this case, it is as
simple as not selecting RPI_USERLAND from weston [0], but otherwise, the
dependency chain is totally valid in our case.
I am afraid there are other valid configurations that will also exhibit
recursive dependencies even though the configuration is perfectly valid.
On the other hand, we did introduce virtual packages for a reason: so
that packages that depend on a "feature" can safely and easily depend on
that feature, whatever the provider of that feature.
The virtual packages also help avoid to have to play tricks with conditional
'select', as well as simplify dependency inheritance.
In the end, I stand on my position to use a virtual package for libudev.
So, I'll refresh my patchset on top of master, re-test it with my
XBMC-based testbed, and respin this series, introducing libudev as a
virtual package.
If anyone is really motivated into making it a non-virtual package, he'd
be very welcome to adopt the series. ;-)
Regards,
Yann E. MORIN.
[0] which I think is the right thing to do anyway, since we explicitly
mention in the manual that providers should *not* be selected:
http://nightly.buildroot.org/#_infrastructure_for_virtual_packages
---8<---
If your package really requires a specific provider, then you?ll
have to make your package depends on this provider; you can not select
a provider.
[...] you have to use +depends on BR2_PACKAGE_FOO+, which avoids any
implicit configuration inconsistency.
---8<---
So I'll soon send a separate patch to fix that.
YEM.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH 08/15 v6] package/libcec: needs libudev, not a udev daemon
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (6 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 07/15 v6] package/mesa3d: depends on libudev, not udev Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 09/15 v6] package/libdrm: can also use only libudev Yann E. MORIN
` (7 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
libcec is happy enough with just a libudev, which it uses to
enumerate CEC devices, and does not require a udev daemon.
Propagate the new dependency to XBMC.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
Acked-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
Changes v5 -> v6:
- tweak comment for when libcec is not available (with help from Bernd)
---
package/libcec/Config.in | 5 +++--
package/libcec/libcec.mk | 4 ++--
package/xbmc/Config.in | 6 +++---
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/package/libcec/Config.in b/package/libcec/Config.in
index 8097472..fb9f388 100644
--- a/package/libcec/Config.in
+++ b/package/libcec/Config.in
@@ -11,6 +11,7 @@ config BR2_PACKAGE_LIBCEC
http://libcec.pulse-eight.com
-comment "libcec needs a toolchain w/ C++, wchar, threads, dynamic library"
+comment "libcec needs a libudev provider and a toolchain w/ C++, wchar, threads, dynamic library"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
- !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB
+ !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB || \
+ !BR2_PACKAGE_HAS_LIBUDEV
diff --git a/package/libcec/libcec.mk b/package/libcec/libcec.mk
index 5a889b9..512004c 100644
--- a/package/libcec/libcec.mk
+++ b/package/libcec/libcec.mk
@@ -18,8 +18,8 @@ ifeq ($(BR2_PACKAGE_LOCKDEV),y)
LIBCEC_DEPENDENCIES += lockdev
endif
-ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
-LIBCEC_DEPENDENCIES += udev
+ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y)
+LIBCEC_DEPENDENCIES += libudev
endif
ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
diff --git a/package/xbmc/Config.in b/package/xbmc/Config.in
index a7337d5..ed0b850 100644
--- a/package/xbmc/Config.in
+++ b/package/xbmc/Config.in
@@ -156,14 +156,14 @@ comment "rsxs needs an OpenGL backend"
config BR2_PACKAGE_XBMC_LIBCEC
bool "hdmi cec"
depends on !BR2_PREFER_STATIC_LIB # libcec
- depends on BR2_PACKAGE_HAS_UDEV
+ depends on BR2_PACKAGE_HAS_LIBUDEV # libcec
select BR2_PACKAGE_LIBCEC
help
Enable CEC (Consumer Electronics Control) support.
Select this if you want XBMC to support HDMI CEC.
-comment "hdmi cec support needs udev /dev management and a toolchain w/ dynamic library"
- depends on BR2_PREFER_STATIC_LIB || !BR2_PACKAGE_HAS_UDEV
+comment "hdmi cec support needs a toolchain w/ dynamic library, libudev"
+ depends on BR2_PREFER_STATIC_LIB || !BR2_PACKAGE_HAS_LIBUDEV
config BR2_PACKAGE_XBMC_LIBMICROHTTPD
bool "web server"
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 09/15 v6] package/libdrm: can also use only libudev
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (7 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 08/15 v6] package/libcec: needs libudev, not a udev daemon Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 10/15 v6] package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon Yann E. MORIN
` (6 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
Even if a udev daemon is missing, libdrm can still use just libudev to
enumerate devices.
In case both udev and libudev are enabled, depending on just udev would
be enough to also get libudev (since any udev provider is also a libudev
provider). But it is more logical to have separate conditions for udev
and libudev.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/libdrm/libdrm.mk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/package/libdrm/libdrm.mk b/package/libdrm/libdrm.mk
index 28a801f..17439c9 100644
--- a/package/libdrm/libdrm.mk
+++ b/package/libdrm/libdrm.mk
@@ -62,9 +62,9 @@ else
LIBDRM_CONF_OPTS += --disable-freedreno-experimental-api
endif
-ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y)
LIBDRM_CONF_OPTS += --enable-udev
-LIBDRM_DEPENDENCIES += udev
+LIBDRM_DEPENDENCIES += libudev
else
LIBDRM_CONF_OPTS += --disable-udev
endif
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 10/15 v6] package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (8 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 09/15 v6] package/libdrm: can also use only libudev Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 11/15 v6] [RFC] package/libatasmart: " Yann E. MORIN
` (5 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
Do as the comment says: it's only libudev that is required.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
package/x11r7/xdriver_xf86-input-evdev/Config.in | 5 +----
package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk | 3 ++-
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/package/x11r7/xdriver_xf86-input-evdev/Config.in b/package/x11r7/xdriver_xf86-input-evdev/Config.in
index 6ec14bf..92f0324 100644
--- a/package/x11r7/xdriver_xf86-input-evdev/Config.in
+++ b/package/x11r7/xdriver_xf86-input-evdev/Config.in
@@ -1,11 +1,8 @@
config BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV
bool "xf86-input-evdev"
- depends on BR2_PACKAGE_HAS_UDEV # libudev is configure dependency
+ depends on BR2_PACKAGE_HAS_LIBUDEV
select BR2_PACKAGE_XPROTO_INPUTPROTO
select BR2_PACKAGE_XPROTO_RANDRPROTO
select BR2_PACKAGE_XPROTO_XPROTO
help
Generic Linux input driver
-
-comment "xf86-input-evdev requires udev to be enabled"
- depends on !BR2_PACKAGE_HAS_UDEV
diff --git a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk
index 46e62c7..f2d5aad 100644
--- a/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk
+++ b/package/x11r7/xdriver_xf86-input-evdev/xdriver_xf86-input-evdev.mk
@@ -9,6 +9,7 @@ XDRIVER_XF86_INPUT_EVDEV_SOURCE = xf86-input-evdev-$(XDRIVER_XF86_INPUT_EVDEV_VE
XDRIVER_XF86_INPUT_EVDEV_SITE = http://xorg.freedesktop.org/releases/individual/driver
XDRIVER_XF86_INPUT_EVDEV_LICENSE = MIT
XDRIVER_XF86_INPUT_EVDEV_LICENSE_FILES = COPYING
-XDRIVER_XF86_INPUT_EVDEV_DEPENDENCIES = xproto_inputproto xserver_xorg-server xproto_randrproto xproto_xproto udev
+XDRIVER_XF86_INPUT_EVDEV_DEPENDENCIES = xproto_inputproto xserver_xorg-server \
+ xproto_randrproto xproto_xproto libudev
$(eval $(autotools-package))
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 11/15 v6] [RFC] package/libatasmart: needs libudev, not a udev daemon
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (9 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 10/15 v6] package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 12/15 v6] [RFC] package/libinput: " Yann E. MORIN
` (4 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
Do as the comment says: it's only libudev that is required.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Eric Le Bihan <eric.le.bihan.dev@free.fr>
---
package/libatasmart/Config.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/package/libatasmart/Config.in b/package/libatasmart/Config.in
index 9db3b09..dcfb8c8 100644
--- a/package/libatasmart/Config.in
+++ b/package/libatasmart/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_LIBATASMART
bool "libatasmart"
- depends on BR2_PACKAGE_HAS_UDEV # libudev is configure dependency
+ depends on BR2_PACKAGE_HAS_LIBUDEV
help
The libatasmart package is a disk reporting library.
It only supports a subset of the ATA S.M.A.R.T. functionality.
@@ -8,4 +8,4 @@ config BR2_PACKAGE_LIBATASMART
http://0pointer.de/blog/projects/being-smart.html
comment "libatasmart requires udev to be enabled"
- depends on !BR2_PACKAGE_HAS_UDEV
+ depends on !BR2_PACKAGE_HAS_LIBUDEV
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 12/15 v6] [RFC] package/libinput: needs libudev, not a udev daemon
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (10 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 11/15 v6] [RFC] package/libatasmart: " Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 13/15 v6] [RFC] package/libusb: " Yann E. MORIN
` (3 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
libinput is happy enough with just a libudev, and does
not require a udev daemon.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/libinput/Config.in | 6 +++---
package/libinput/libinput.mk | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/package/libinput/Config.in b/package/libinput/Config.in
index 14e4e70..a958e37 100644
--- a/package/libinput/Config.in
+++ b/package/libinput/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_LIBINPUT
bool "libinput"
- depends on BR2_PACKAGE_HAS_UDEV
+ depends on BR2_PACKAGE_HAS_LIBUDEV
select BR2_PACKAGE_LIBEVDEV
select BR2_PACKAGE_MTDEV
help
@@ -13,5 +13,5 @@ config BR2_PACKAGE_LIBINPUT
http://freedesktop.org/wiki/Software/libinput/
-comment "libinput needs udev /dev management"
- depends on !BR2_PACKAGE_HAS_UDEV
+comment "libinput needs a libudev provider to be selected"
+ depends on !BR2_PACKAGE_HAS_LIBUDEV
diff --git a/package/libinput/libinput.mk b/package/libinput/libinput.mk
index 2ea30ed..ec46c2d 100644
--- a/package/libinput/libinput.mk
+++ b/package/libinput/libinput.mk
@@ -10,7 +10,7 @@ LIBINPUT_SITE = http://www.freedesktop.org/software/libinput
LIBINPUT_LICENSE = MIT
LIBINPUT_LICENSE_FILES = COPYING
-LIBINPUT_DEPENDENCIES = host-pkgconf libevdev mtdev udev
+LIBINPUT_DEPENDENCIES = host-pkgconf libevdev mtdev libudev
LIBINPUT_INSTALL_STAGING = YES
# Tests need fork, so just disable them everywhere.
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 13/15 v6] [RFC] package/libusb: needs libudev, not a udev daemon
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (11 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 12/15 v6] [RFC] package/libinput: " Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 14/15 v6] [RFC] package/vlc: " Yann E. MORIN
` (2 subsequent siblings)
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
libusb is happy enough with just a libudev, and does
not require a udev daemon.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/libusb/libusb.mk | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/package/libusb/libusb.mk b/package/libusb/libusb.mk
index 33a7157..5f05c24 100644
--- a/package/libusb/libusb.mk
+++ b/package/libusb/libusb.mk
@@ -21,8 +21,9 @@ ifeq ($(BR2_avr32),y)
LIBUSB_CONF_OPTS += --disable-timerfd
endif
-ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
-LIBUSB_DEPENDENCIES += udev
+ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y)
+LIBUSB_CONF_OPTS += --enable-udev
+LIBUSB_DEPENDENCIES += libudev
else
LIBUSB_CONF_OPTS += --disable-udev
endif
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 14/15 v6] [RFC] package/vlc: needs libudev, not a udev daemon
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (12 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 13/15 v6] [RFC] package/libusb: " Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 20:46 ` [Buildroot] [PATCH 15/15 v6] [RFC] package/weston: " Yann E. MORIN
2014-10-27 21:41 ` [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Bernd Kuhls
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
vlc is happy enough with just a libudev, and does
not require a udev daemon.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/vlc/vlc.mk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/package/vlc/vlc.mk b/package/vlc/vlc.mk
index 7e81d59..5bcd705 100644
--- a/package/vlc/vlc.mk
+++ b/package/vlc/vlc.mk
@@ -288,9 +288,9 @@ else
VLC_CONF_OPTS += --disable-tremor
endif
-ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y)
VLC_CONF_OPTS += --enable-udev
-VLC_DEPENDENCIES += udev
+VLC_DEPENDENCIES += libudev
else
VLC_CONF_OPTS += --disable-udev
endif
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 15/15 v6] [RFC] package/weston: needs libudev, not a udev daemon
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (13 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 14/15 v6] [RFC] package/vlc: " Yann E. MORIN
@ 2014-10-27 20:46 ` Yann E. MORIN
2014-10-27 21:41 ` [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Bernd Kuhls
15 siblings, 0 replies; 23+ messages in thread
From: Yann E. MORIN @ 2014-10-27 20:46 UTC (permalink / raw)
To: buildroot
weston is happy enough with just a libudev, and does
not require a udev daemon.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/weston/Config.in | 8 ++++----
package/weston/weston.mk | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package/weston/Config.in b/package/weston/Config.in
index fafdf95..0fd0a71 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -1,8 +1,8 @@
-comment "weston needs udev and a toolchain w/ threads, dynamic library, headers >= 3.0"
+comment "weston needs a toolchain w/ threads, dynamic library, headers >= 3.0"
depends on !BR2_avr32
depends on BR2_ARCH_HAS_ATOMICS
- depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS || \
- !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 || !BR2_PREFER_STATIC_LIB
+ depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PREFER_STATIC_LIB \
+ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
config BR2_PACKAGE_WESTON
bool "weston"
@@ -13,7 +13,7 @@ config BR2_PACKAGE_WESTON
select BR2_PACKAGE_LIBPNG
select BR2_PACKAGE_JPEG
select BR2_PACKAGE_MTDEV
- depends on BR2_PACKAGE_HAS_UDEV
+ depends on BR2_PACKAGE_HAS_LIBUDEV
depends on !BR2_avr32 # wayland
depends on !BR2_PREFER_STATIC_LIB # wayland
depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
diff --git a/package/weston/weston.mk b/package/weston/weston.mk
index 9964b90..cfe1eba 100644
--- a/package/weston/weston.mk
+++ b/package/weston/weston.mk
@@ -11,7 +11,7 @@ WESTON_LICENSE = MIT
WESTON_LICENSE_FILES = COPYING
WESTON_DEPENDENCIES = host-pkgconf wayland libxkbcommon pixman libpng \
- jpeg mtdev udev cairo
+ jpeg mtdev libudev cairo
WESTON_CONF_OPTS = \
--with-dtddir=$(STAGING_DIR)/usr/share/wayland \
--
1.9.1
^ permalink raw reply related [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2)
2014-10-27 20:46 [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Yann E. MORIN
` (14 preceding siblings ...)
2014-10-27 20:46 ` [Buildroot] [PATCH 15/15 v6] [RFC] package/weston: " Yann E. MORIN
@ 2014-10-27 21:41 ` Bernd Kuhls
2014-10-28 21:21 ` Arnout Vandecappelle
15 siblings, 1 reply; 23+ messages in thread
From: Bernd Kuhls @ 2014-10-27 21:41 UTC (permalink / raw)
To: buildroot
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in
news:cover.1414442699.git.yann.morin.1998 at free.fr:
> A lot of packages that have a dependency on udev, in fact only require a
> libudev, not a udev daemon. That's the case for e.g. libinput, libcec,
> mesa3d...
Hi,
building this defconfig worked:
BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
BR2_TOOLCHAIN_BUILDROOT_INET_IPV6=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
BR2_GCC_VERSION_4_9_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_XBMC=y
BR2_PACKAGE_XBMC_ALSA_LIB=y
BR2_PACKAGE_XBMC_LIBBLURAY=y
BR2_PACKAGE_XBMC_GOOM=y
BR2_PACKAGE_XBMC_RSXS=y
BR2_PACKAGE_XBMC_LIBCEC=y
BR2_PACKAGE_XBMC_LIBMICROHTTPD=y
BR2_PACKAGE_XBMC_RTMPDUMP=y
BR2_PACKAGE_XBMC_LIBSHAIRPLAY=y
BR2_PACKAGE_XBMC_LIBSMBCLIENT=y
BR2_PACKAGE_XBMC_LIBTHEORA=y
BR2_PACKAGE_XBMC_LIBUSB=y
BR2_PACKAGE_XBMC_LIBVA=y
BR2_PACKAGE_XBMC_WAVPACK=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_DRI_DRIVER_I965=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_EUDEV=y
Regards, Bernd
^ permalink raw reply [flat|nested] 23+ messages in thread* [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2)
2014-10-27 21:41 ` [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2) Bernd Kuhls
@ 2014-10-28 21:21 ` Arnout Vandecappelle
2014-10-29 6:00 ` Bernd Kuhls
0 siblings, 1 reply; 23+ messages in thread
From: Arnout Vandecappelle @ 2014-10-28 21:21 UTC (permalink / raw)
To: buildroot
On 27/10/14 22:41, Bernd Kuhls wrote:
> "Yann E. MORIN" <yann.morin.1998@free.fr> wrote in
> news:cover.1414442699.git.yann.morin.1998 at free.fr:
>
>> A lot of packages that have a dependency on udev, in fact only require a
>> libudev, not a udev daemon. That's the case for e.g. libinput, libcec,
>> mesa3d...
>
> Hi,
>
> building this defconfig worked:
With "worked", you do mean that it works at runtime, right? Because the problem
with this change is to be sure that the packages still function correctly when
the udev daemon is not running.
Regards,
Arnout
>
> BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
> BR2_TOOLCHAIN_BUILDROOT_INET_IPV6=y
> BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
> BR2_GCC_VERSION_4_9_X=y
> BR2_TOOLCHAIN_BUILDROOT_CXX=y
> BR2_PACKAGE_XBMC=y
> BR2_PACKAGE_XBMC_ALSA_LIB=y
> BR2_PACKAGE_XBMC_LIBBLURAY=y
> BR2_PACKAGE_XBMC_GOOM=y
> BR2_PACKAGE_XBMC_RSXS=y
> BR2_PACKAGE_XBMC_LIBCEC=y
> BR2_PACKAGE_XBMC_LIBMICROHTTPD=y
> BR2_PACKAGE_XBMC_RTMPDUMP=y
> BR2_PACKAGE_XBMC_LIBSHAIRPLAY=y
> BR2_PACKAGE_XBMC_LIBSMBCLIENT=y
> BR2_PACKAGE_XBMC_LIBTHEORA=y
> BR2_PACKAGE_XBMC_LIBUSB=y
> BR2_PACKAGE_XBMC_LIBVA=y
> BR2_PACKAGE_XBMC_WAVPACK=y
> BR2_PACKAGE_MESA3D=y
> BR2_PACKAGE_MESA3D_DRI_DRIVER_I965=y
> BR2_PACKAGE_XORG7=y
> BR2_PACKAGE_EUDEV=y
>
> Regards, Bernd
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH 0/15 v6] Introduce libudev (branch yem/libudev2)
2014-10-28 21:21 ` Arnout Vandecappelle
@ 2014-10-29 6:00 ` Bernd Kuhls
0 siblings, 0 replies; 23+ messages in thread
From: Bernd Kuhls @ 2014-10-29 6:00 UTC (permalink / raw)
To: buildroot
Arnout Vandecappelle <arnout@mind.be> wrote in
news:545008BC.90706 at mind.be:
> With "worked", you do mean that it works at runtime, right? Because the
> problem
> with this change is to be sure that the packages still function
> correctly when the udev daemon is not running.
Hi,
yes. I am using xbmc/kodi with mesa3d, libcec and X.org on a system
without the udev daemon but with libudev for several months now without
problems.
Regards, Bernd
^ permalink raw reply [flat|nested] 23+ messages in thread