All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 01/11 v7] support/gen-manual-lists.py: rework generating the virtual package list
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 02/11 v7] package/libudev: new virtual package Yann E. MORIN
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 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] 14+ messages in thread

* [Buildroot] [PATCH 02/11 v7] package/libudev: new virtual package
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 01/11 v7] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 03/11 v7] package/eudev: is a provider for libudev Yann E. MORIN
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 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 fe3d3d0..8234478 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -759,6 +759,7 @@ menu "Hardware handling"
 	source "package/libsigrok/Config.in"
 	source "package/libsigrokdecode/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] 14+ messages in thread

* [Buildroot] [PATCH 03/11 v7] package/eudev: is a provider for libudev
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 01/11 v7] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 02/11 v7] package/libudev: new virtual package Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 04/11 v7] package/systemd: " Yann E. MORIN
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 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 7916fd0..a822b9e 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_STATIC_LIBS # 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 2221966..11eee68 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] 14+ messages in thread

* [Buildroot] [PATCH 04/11 v7] package/systemd: is a provider for libudev
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
                   ` (2 preceding siblings ...)
  2015-02-07 13:53 ` [Buildroot] [PATCH 03/11 v7] package/eudev: is a provider for libudev Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 05/11 v7] package/eudev: align comments to the ones in eudev /dev management Yann E. MORIN
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 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 ed59c8d..fd5d41b 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -16,6 +16,7 @@ config BR2_PACKAGE_SYSTEMD
 	depends on !BR2_STATIC_LIBS # kmod
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
 	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 92f99c2..ca68f2c 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] 14+ messages in thread

* [Buildroot] [PATCH 05/11 v7] package/eudev: align comments to the ones in eudev /dev management
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
                   ` (3 preceding siblings ...)
  2015-02-07 13:53 ` [Buildroot] [PATCH 04/11 v7] package/systemd: " Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-02-11 20:39   ` Ryan Barnett
  2015-02-07 13:53 ` [Buildroot] [PATCH 06/11 v7] package/eudev: split udev/libudev Yann E. MORIN
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 UTC (permalink / raw)
  To: buildroot

eudev will soon be selectable even when it does not handle /dev
management, to provide just libudev.

As such, we must reproduce the same dependencies and comment as we have
in the /dev management entry.

Also, point to a better home.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/eudev/Config.in | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/package/eudev/Config.in b/package/eudev/Config.in
index a822b9e..7915f4b 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
 
@@ -40,7 +41,8 @@ comment "eudev needs eudev /dev management"
 	depends on BR2_USE_MMU
 	depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_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
 	depends on BR2_USE_MMU
-	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_STATIC_LIBS
+	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_STATIC_LIBS \
+		|| !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3)
@ 2015-02-07 13:53 Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 01/11 v7] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
                   ` (10 more replies)
  0 siblings, 11 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 UTC (permalink / raw)
  To: buildroot

Hello All!

This series introduces the possibility to just build and install libudev,
without requiring that the /dev management be handled by eudev or systemd.

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...

During the last two developers days, it was suggested that libudev was
to be made a virtual package that could be selected (like jpeg is). I
tried doing so, but I did not like the outcome of this. See my comments
on my previous attempt:
    http://lists.busybox.net/pipermail/buildroot/2014-December/115455.html

Since I am not really interested in libudev all by itself (and I was
taking care of it just to get something clean), and am not either
motivated to maintain this series forever, it was decided at the last
developers days that I should respin the series and that Peter would take
over to conclude this work.

So be it. ;-)

The series contains:

  - a patch to fix generating the list of virtual packages for the manual

  - three patches to introduce the libudev virtual package, and its
    providers: eudev and systemd

  - a patch to make eudev only build libudev if /dev management is
    handled by neither eudev nor systemd

  - four patches to convert packages to depend on libusb instead of a
    udev daemon; those packages have been confirmed by Bernd to indeed
    only need libudev and not a udev daemon

  - five RFC patches to convert packages we are not sure whether they
    would be happy with only a libudev, and which would need run-time
    testing to check

Not all packages that reference udev have been switched over to depend
on libudev, though, since it is unclear to me whether they require a
udev daemon, or would be happy with just libudev.


Changes v6 -> v7:
  - rebase ontop latest master

Changes v5 -> v6:
  - rebase ontop latest master
  - fix misc comments  (Peter, Bernd)

Changes v4 -> v5:
  - bump to eudev 1.10  (Bernd)

Changes v3 -> v4:
  - do not remove the prompts for eudev and systemd  (Thomas P.)
  - patch to convert xserver_xorg-server dropped  (Bernd)

Changes RFCv2 -> v3:
  - some typoes  (Samuel)
  - misc fixes in gen-manual-lists.py  (Samuel)

Changes RFCv1 -> RFCv2:
  - have eudev and systemd be providers for libudev, instead of having
    udev be the provider  (Thomas, on IRC)
  - fix the manual lists after bugs were uncovered with the removal of
    the eudev and systemd prompts
  - convert some packages


Regards,
Yann E. MORIN.


The following changes since commit b49e4cf3ec7eab7505957c704a0d9727edcdbcca:

  dropbear: add extra build customization options (2015-02-07 12:52:25 +0100)

are available in the git repository at:

  git://git.busybox.net/~ymorin/git/buildroot yem/libudev3

for you to fetch changes up to a6926397cba17b322a97a6e5fbf44f7f164aa0db:

  package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon (2015-02-07 14:41:05 +0100)

----------------------------------------------------------------
Yann E. MORIN (11):
      support/gen-manual-lists.py: rework generating the virtual package list
      package/libudev: new virtual package
      package/eudev: is a provider for libudev
      package/systemd: is a provider for libudev
      package/eudev: align comments to the ones in eudev /dev management
      package/eudev: split udev/libudev
      package/mesa3d: remove suprefluous dependency on udev
      package/mesa3d: depends on libudev, not udev
      package/libcec: needs libudev, not a udev daemon
      package/libdrm: can also use only libudev
      package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon

 package/Config.in                                  |  1 +
 package/eudev/Config.in                            | 40 ++++++++--
 package/eudev/eudev.mk                             | 53 ++++++++++--
 package/kodi/Config.in                             |  6 +-
 package/libcec/Config.in                           |  5 +-
 package/libcec/libcec.mk                           |  4 +-
 package/libdrm/libdrm.mk                           |  4 +-
 package/libudev/Config.in                          |  6 ++
 package/libudev/libudev.mk                         |  7 ++
 package/mesa3d/Config.in                           | 10 +--
 package/mesa3d/mesa3d.mk                           |  4 +-
 package/systemd/Config.in                          |  4 +
 package/systemd/systemd.mk                         |  2 +-
 package/x11r7/xdriver_xf86-input-evdev/Config.in   |  5 +-
 .../xdriver_xf86-input-evdev.mk                    |  3 +-
 support/scripts/gen-manual-lists.py                | 93 ++++++++++++++++++----
 system/Config.in                                   | 22 +++--
 17 files changed, 213 insertions(+), 56 deletions(-)
 create mode 100644 package/libudev/Config.in
 create mode 100644 package/libudev/libudev.mk

-- 
.-----------------.--------------------.------------------.--------------------.
|  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] 14+ messages in thread

* [Buildroot] [PATCH 06/11 v7] package/eudev: split udev/libudev
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
                   ` (4 preceding siblings ...)
  2015-02-07 13:53 ` [Buildroot] [PATCH 05/11 v7] package/eudev: align comments to the ones in eudev /dev management Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-04-11 19:56   ` Bernd Kuhls
  2015-02-07 13:53 ` [Buildroot] [PATCH 07/11 v7] package/mesa3d: remove suprefluous dependency on udev Yann E. MORIN
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 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 | 34 ++++++++++++++++++++++++-------
 package/eudev/eudev.mk  | 53 ++++++++++++++++++++++++++++++++++++++++++++-----
 system/Config.in        | 22 +++++++++++++++-----
 3 files changed, 92 insertions(+), 17 deletions(-)

diff --git a/package/eudev/Config.in b/package/eudev/Config.in
index 7915f4b..77abffc 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_STATIC_LIBS
+	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_STATIC_LIBS # 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,15 +51,18 @@ config BR2_PACKAGE_EUDEV_RULES_GEN
 	help
 	  Enable persistent rules generator
 
-endif
+endif # BR2_PACKAGE_EUDEV_DAEMON
 
-comment "eudev needs eudev /dev management"
+comment "udev daemon needs eudev /dev management"
 	depends on !BR2_avr32
 	depends on BR2_USE_MMU
 	depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
 
+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_STATIC_LIBS \
 		|| !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
+	depends on !BR2_PACKAGE_SYSTEMD
diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk
index 11eee68..121434c 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 95e10ab..68a124f 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -125,12 +125,24 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
 config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
 	bool "Dynamic using eudev"
 	depends on !BR2_avr32 # eudev
-	depends on BR2_LARGEFILE
-	depends on BR2_USE_WCHAR
-	depends on !BR2_STATIC_LIBS
-	depends on BR2_USE_MMU # eudev
-	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
+	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_TOOLCHAIN_HEADERS_AT_LEAST_3_9 # eudev
+	depends on !BR2_STATIC_LIBS # 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 >= 3.9: 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] 14+ messages in thread

* [Buildroot] [PATCH 07/11 v7] package/mesa3d: remove suprefluous dependency on udev
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
                   ` (5 preceding siblings ...)
  2015-02-07 13:53 ` [Buildroot] [PATCH 06/11 v7] package/eudev: split udev/libudev Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 08/11 v7] package/mesa3d: depends on libudev, not udev Yann E. MORIN
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 UTC (permalink / raw)
  To: buildroot

mesa3d itself depends on udev, so there is not need to repeat that
dependency for its sub-options.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/mesa3d/Config.in | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index c407ece..fa04579 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -119,12 +119,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
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH 08/11 v7] package/mesa3d: depends on libudev, not udev
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
                   ` (6 preceding siblings ...)
  2015-02-07 13:53 ` [Buildroot] [PATCH 07/11 v7] package/mesa3d: remove suprefluous dependency on udev Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 09/11 v7] package/libcec: needs libudev, not a udev daemon Yann E. MORIN
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 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 | 6 +++---
 package/mesa3d/mesa3d.mk | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index fa04579..2004471 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
@@ -143,6 +143,6 @@ 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 8a84de3..b51c8d7 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -103,8 +103,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] 14+ messages in thread

* [Buildroot] [PATCH 09/11 v7] package/libcec: needs libudev, not a udev daemon
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
                   ` (7 preceding siblings ...)
  2015-02-07 13:53 ` [Buildroot] [PATCH 08/11 v7] package/mesa3d: depends on libudev, not udev Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 10/11 v7] package/libdrm: can also use only libudev Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 11/11 v7] package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon Yann E. MORIN
  10 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 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/kodi/Config.in   | 6 +++---
 package/libcec/Config.in | 5 +++--
 package/libcec/libcec.mk | 4 ++--
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/package/kodi/Config.in b/package/kodi/Config.in
index 5141629..7d4c483 100644
--- a/package/kodi/Config.in
+++ b/package/kodi/Config.in
@@ -160,14 +160,14 @@ comment "rsxs needs an OpenGL backend"
 config BR2_PACKAGE_KODI_LIBCEC
 	bool "hdmi cec"
 	depends on !BR2_STATIC_LIBS # 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 Kodi to support HDMI CEC.
 
-comment "hdmi cec support needs udev /dev management and a toolchain w/ dynamic library"
-	depends on BR2_STATIC_LIBS || !BR2_PACKAGE_HAS_UDEV
+comment "hdmi cec support needs a toolchain w/ dynamic library, libudev"
+	depends on BR2_STATIC_LIBS || !BR2_PACKAGE_HAS_LIBUDEV
 
 config BR2_PACKAGE_KODI_LIBMICROHTTPD
 	bool "web server"
diff --git a/package/libcec/Config.in b/package/libcec/Config.in
index e5fa9c8..69e66c0 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_STATIC_LIBS
+		!BR2_USE_WCHAR || BR2_STATIC_LIBS || \
+		!BR2_PACKAGE_HAS_LIBUDEV
diff --git a/package/libcec/libcec.mk b/package/libcec/libcec.mk
index 8bdc9ea..f31f534 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)
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH 10/11 v7] package/libdrm: can also use only libudev
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
                   ` (8 preceding siblings ...)
  2015-02-07 13:53 ` [Buildroot] [PATCH 09/11 v7] package/libcec: needs libudev, not a udev daemon Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  2015-02-07 13:53 ` [Buildroot] [PATCH 11/11 v7] package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon Yann E. MORIN
  10 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 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 737a33b..168f64c 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] 14+ messages in thread

* [Buildroot] [PATCH 11/11 v7] package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon
  2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
                   ` (9 preceding siblings ...)
  2015-02-07 13:53 ` [Buildroot] [PATCH 10/11 v7] package/libdrm: can also use only libudev Yann E. MORIN
@ 2015-02-07 13:53 ` Yann E. MORIN
  10 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2015-02-07 13:53 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] 14+ messages in thread

* [Buildroot] [PATCH 05/11 v7] package/eudev: align comments to the ones in eudev /dev management
  2015-02-07 13:53 ` [Buildroot] [PATCH 05/11 v7] package/eudev: align comments to the ones in eudev /dev management Yann E. MORIN
@ 2015-02-11 20:39   ` Ryan Barnett
  0 siblings, 0 replies; 14+ messages in thread
From: Ryan Barnett @ 2015-02-11 20:39 UTC (permalink / raw)
  To: buildroot

Yann,

On Sat, Feb 7, 2015 at 7:53 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> eudev will soon be selectable even when it does not handle /dev
> management, to provide just libudev.
>
> As such, we must reproduce the same dependencies and comment as we have
> in the /dev management entry.
>
> Also, point to a better home.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/eudev/Config.in | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/package/eudev/Config.in b/package/eudev/Config.in
> index a822b9e..7915f4b 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.

According to Peter K's commit:

http://git.buildroot.net/buildroot/commit/system/Config.in?id=14af550d5eb50222196ece3042d2f1e2a9466cf6

It appears that the reason it needs the 3.9 kernel is because of btrfs
dependency. Should update the requirement comment accordingly.

> -         http://dev.gentoo.org/~blueness/eudev
> +         http://www.gentoo.org/proj/en/eudev/
>
>  if BR2_PACKAGE_EUDEV
>
> @@ -40,7 +41,8 @@ comment "eudev needs eudev /dev management"
>         depends on BR2_USE_MMU
>         depends on !BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_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
>         depends on BR2_USE_MMU
> -       depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_STATIC_LIBS
> +       depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_STATIC_LIBS \
> +               || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
> --

Otherwise you add this:

Reviewed-by: Ryan Barnett <ryan.barnett@rockwellcollins.com>

Thanks,
-Ryan

-- 
Ryan Barnett / Sr Software Engineer
Airborne Information Systems / Security Systems and Software
MS 131-100, C Ave NE, Cedar Rapids, IA, 52498, USA
ryan.barnett at rockwellcollins.com
www.rockwellcollins.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Buildroot] [PATCH 06/11 v7] package/eudev: split udev/libudev
  2015-02-07 13:53 ` [Buildroot] [PATCH 06/11 v7] package/eudev: split udev/libudev Yann E. MORIN
@ 2015-04-11 19:56   ` Bernd Kuhls
  0 siblings, 0 replies; 14+ messages in thread
From: Bernd Kuhls @ 2015-04-11 19:56 UTC (permalink / raw)
  To: buildroot

"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in 
news:1173e1bc3a763340a6e65f43d2ba8b8e71da23b4.1423317174.git.yann.morin.1998
@free.fr:

> +EUDEV_DEPENDENCIES = host-pkgconf
> +EUDEV_PROVIDES = libudev
> +
> +ifeq ($(BR2_PACKAGE_EUDEV_DAEMON),y)
> +
> +EUDEV_DEPENDENCIES += host-gperf util-linux kmod
> +EUDEV_PROVIDES += udev

Hi Yann,

eudev always depends on host-gperf, not only with enabled udev daemon, 
otherwise:

checking for i586-buildroot-linux-uclibc-gperf... no
checking for gperf... no
configure: error: *** gperf not found

Regards, Bernd

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2015-04-11 19:56 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-07 13:53 [Buildroot] [PATCH 0/11 v7] Introduce libudev (branch yem/libudev3) Yann E. MORIN
2015-02-07 13:53 ` [Buildroot] [PATCH 01/11 v7] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
2015-02-07 13:53 ` [Buildroot] [PATCH 02/11 v7] package/libudev: new virtual package Yann E. MORIN
2015-02-07 13:53 ` [Buildroot] [PATCH 03/11 v7] package/eudev: is a provider for libudev Yann E. MORIN
2015-02-07 13:53 ` [Buildroot] [PATCH 04/11 v7] package/systemd: " Yann E. MORIN
2015-02-07 13:53 ` [Buildroot] [PATCH 05/11 v7] package/eudev: align comments to the ones in eudev /dev management Yann E. MORIN
2015-02-11 20:39   ` Ryan Barnett
2015-02-07 13:53 ` [Buildroot] [PATCH 06/11 v7] package/eudev: split udev/libudev Yann E. MORIN
2015-04-11 19:56   ` Bernd Kuhls
2015-02-07 13:53 ` [Buildroot] [PATCH 07/11 v7] package/mesa3d: remove suprefluous dependency on udev Yann E. MORIN
2015-02-07 13:53 ` [Buildroot] [PATCH 08/11 v7] package/mesa3d: depends on libudev, not udev Yann E. MORIN
2015-02-07 13:53 ` [Buildroot] [PATCH 09/11 v7] package/libcec: needs libudev, not a udev daemon Yann E. MORIN
2015-02-07 13:53 ` [Buildroot] [PATCH 10/11 v7] package/libdrm: can also use only libudev Yann E. MORIN
2015-02-07 13:53 ` [Buildroot] [PATCH 11/11 v7] package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon Yann E. MORIN

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.