All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 01/20 RFC] package/xbmc: remove spurious build-dependency on udev
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-07-11 20:14   ` Bernd Kuhls
  2014-06-13 23:02 ` [Buildroot] [PATCH 02/20 RFC] support/gen-manual-lists.py: remove unneeded arg in private function Yann E. MORIN
                   ` (19 subsequent siblings)
  20 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

CEC support with libcec needs udev, but it is the responsibility
of libcec to have proper build-dependencies, not XBMC.

So, just remove the spurious dependency on udev in XBMC.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/xbmc/xbmc.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
index 1d458d4..45be990 100644
--- a/package/xbmc/xbmc.mk
+++ b/package/xbmc/xbmc.mk
@@ -130,7 +130,7 @@ XBMC_CONF_OPT += --disable-avahi
 endif
 
 ifeq ($(BR2_PACKAGE_XBMC_LIBCEC),y)
-XBMC_DEPENDENCIES += libcec udev
+XBMC_DEPENDENCIES += libcec
 XBMC_CONF_OPT += --enable-libcec
 else
 XBMC_CONF_OPT += --disable-libcec
-- 
1.8.3.2

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

* [Buildroot] [PATCH 02/20 RFC] support/gen-manual-lists.py: remove unneeded arg in private function
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 01/20 RFC] package/xbmc: remove spurious build-dependency on udev Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-15 19:35   ` Samuel Martin
  2014-06-13 23:02 ` [Buildroot] [PATCH 03/20 RFC] support/gen-manual-lists.py: bail out early for legacy symbols Yann E. MORIN
                   ` (18 subsequent siblings)
  20 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

No need to pass as argument to a function, members of the class it's in.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Samuel Martin <s.martin49@gmail.com>
---
 support/scripts/gen-manual-lists.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/support/scripts/gen-manual-lists.py b/support/scripts/gen-manual-lists.py
index 69f4c7e..483b384 100644
--- a/support/scripts/gen-manual-lists.py
+++ b/support/scripts/gen-manual-lists.py
@@ -384,7 +384,7 @@ class Buildroot:
                     return s
             return None
 
-        def _get_providers(config, symbol):
+        def _get_providers(symbol):
             providers = list()
             for sym in self.config:
                 if not sym.is_symbol():
@@ -404,7 +404,7 @@ class Buildroot:
                                   + " (w/ " + l + ")"
                             providers.append(l)
                         else:
-                            providers.extend(_get_providers(config,sym))
+                            providers.extend(_get_providers(sym))
             return providers
 
         if what == "layout":
@@ -415,7 +415,7 @@ class Buildroot:
 
         if what == "symbol":
             pkg = re.sub(r"^BR2_PACKAGE_HAS_(.+)$", r"\1", symbol.get_name())
-            providers = _get_providers(self.config, symbol)
+            providers = _get_providers(symbol)
 
             return "| {0:<20} <| {1:<32} <| {2}\n".format(pkg.lower(),
                                                           '+' + symbol.get_name() + '+',
-- 
1.8.3.2

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

* [Buildroot] [PATCH 03/20 RFC] support/gen-manual-lists.py: bail out early for legacy symbols
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 01/20 RFC] package/xbmc: remove spurious build-dependency on udev Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 02/20 RFC] support/gen-manual-lists.py: remove unneeded arg in private function Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-15 19:38   ` Samuel Martin
  2014-06-13 23:02 ` [Buildroot] [PATCH 04/20 RFC] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
                   ` (17 subsequent siblings)
  20 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

When searching for virtual package providers, there's no need to
handle legacy symbols at all, so just bail out early.
---
 support/scripts/gen-manual-lists.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/support/scripts/gen-manual-lists.py b/support/scripts/gen-manual-lists.py
index 483b384..95c10dc 100644
--- a/support/scripts/gen-manual-lists.py
+++ b/support/scripts/gen-manual-lists.py
@@ -389,13 +389,13 @@ class Buildroot:
             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
                 for s in selects:
                     if s == symbol:
-                        if _symbol_is_legacy(sym):
-                            continue
                         if sym.prompts:
                             l = self._get_symbol_label(sym,False)
                             parent_pkg = _get_parent_package(sym)
-- 
1.8.3.2

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

* [Buildroot] [PATCH 04/20 RFC] support/gen-manual-lists.py: rework generating the virtual package list
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (2 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 03/20 RFC] support/gen-manual-lists.py: bail out early for legacy symbols Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-15 20:18   ` Samuel Martin
  2014-06-13 23:02 ` [Buildroot] [PATCH 05/20 RFC] package/eudev: remove the prompt Yann E. MORIN
                   ` (16 subsequent siblings)
  20 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

Tog et 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 tthrough the select
chain, to the uppermostsymbol 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 prevent a virtual package to declare itself as
a provider for another virtual package.

This will be the case for udev, a virtual package provided by eudev
or systemd, but also a provider of the virtual package libudev.

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
previosuly 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 providign 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 pacakges, as well as virtual packages. This
is 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>
---
 support/scripts/gen-manual-lists.py | 88 +++++++++++++++++++++++++++++++------
 1 file changed, 74 insertions(+), 14 deletions(-)

diff --git a/support/scripts/gen-manual-lists.py b/support/scripts/gen-manual-lists.py
index 95c10dc..837cd66 100644
--- a/support/scripts/gen-manual-lists.py
+++ b/support/scripts/gen-manual-lists.py
@@ -384,28 +384,88 @@ class Buildroot:
                     return s
             return None
 
+        # 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 defaul "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 'sected 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 = list()
+            providers_syms = 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 (p,_) in _provides_sym.def_exprs:
+                _p = self.config._expr_val_str(p, get_val_instead_of_eval=True)
+                _p = re.sub(r"-",r"_",_p.strip('"'))
+                providers_syms.append(self.config.get_symbol("BR2_PACKAGE_"+_p.upper()))
+
+            # 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 p in providers_syms:
+                if p in seen:
+                    continue
+                _p = re.sub(r"^BR2_PACKAGE_(.*)", r"\1", p.get_name()).lower()
+                providers_str.append(_p)
+
+            return providers_str
+
+        # 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
 
         if what == "layout":
             return ( "100%", "^1,4,4" )
-- 
1.8.3.2

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

* [Buildroot] [PATCH 05/20 RFC] package/eudev: remove the prompt
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (3 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 04/20 RFC] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 06/20 RFC] package/systemd: remove prompt Yann E. MORIN
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

The package eudev depends on DEVICE_CREATION_DYNAMIC_EUDEV, and
is also selected by DEVICE_CREATION_DYNAMIC_EUDEV.

This means that:
  - eudev is not visible when DEVICE_CREATION_DYNAMIC_EUDEV is not set
  - eudev is visible but forced when DEVICE_CREATION_DYNAMIC_EUDEV is set

As a consequence, eudev is never user-selectable.

Since the user already made the decision to use eudev in the /dev
management choice, there is no point in showing the eudev package at all
in the menuconfig.

Just remove the prompt.

Also remove the comments, since anyway the user can't do anything about it.

Although not strictly required, we anyway keep the dependencies expressed
in eudev, to explain where they come from (fork, util-linux...), so it is
explicit their duplication in the .dev management choice entry comes from
eudev itself. So, update the comments there.

Also, move the help text to the /dev macnagement choice, so the user has
a chance to look at it! ;-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/eudev/Config.in | 30 +++++++++---------------------
 system/Config.in        | 21 ++++++++++++++++-----
 2 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/package/eudev/Config.in b/package/eudev/Config.in
index 40ff721..b204a90 100644
--- a/package/eudev/Config.in
+++ b/package/eudev/Config.in
@@ -1,7 +1,13 @@
+# Note: being prompt-less, and selected in the /dev management choice,
+# it is not needed to have dependencies on this symbol, since the
+# choice entry already have those dependencies.
+# However, it seems more logical to have the dependencies listed here,
+# so it is easier to uderstand why we have those, and duplicate them in
+# the choice entry.
+
 config BR2_PACKAGE_EUDEV
-	bool "eudev"
+	bool
 	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
@@ -10,14 +16,6 @@ config BR2_PACKAGE_EUDEV
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	select BR2_PACKAGE_KMOD
-	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.
-
-	  http://github.com/gentoo/eudev/
 
 if BR2_PACKAGE_EUDEV
 
@@ -25,18 +23,8 @@ config BR2_PACKAGE_PROVIDES_UDEV
 	default "eudev"
 
 config BR2_PACKAGE_EUDEV_RULES_GEN
-	bool "enable rules generator"
+	bool "eudev rules generator"
 	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"
-	depends on !BR2_avr32
-	depends on BR2_USE_MMU
-	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB
diff --git a/system/Config.in b/system/Config.in
index 1be7e5d..89ae46e 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -124,12 +124,23 @@ 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_PREFER_STATIC_LIB
-	depends on BR2_USE_MMU # eudev
+	depends on !BR2_avr32 # eudev (no epoll_create1)
+	depends on BR2_USE_MMU # eudev (fork)
+	depends on BR2_LARGEFILE # eudev (util-linux)
+	depends on BR2_USE_WCHAR # eudev (util-linux)
+	depends on !BR2_PREFER_STATIC_LIB # eudev
 	select BR2_PACKAGE_EUDEV
+	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 systemd in:
+	    Target packages --> Hardware handling
+
+	  http://github.com/gentoo/eudev/
 
 comment "eudev needs a toolchain w/ largefile, wchar, dynamic library"
 	depends on !BR2_avr32 # eudev
-- 
1.8.3.2

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

* [Buildroot] [PATCH 06/20 RFC] package/systemd: remove prompt
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (4 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 05/20 RFC] package/eudev: remove the prompt Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 07/20 RFC] package/libudev: new virtual package Yann E. MORIN
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

The package systemd depends on BR2_INIT_SYSTEMD, and is also selected
by BR2_INIT_SYSTEMD.

This means that:
  - systemd is not visible when BR2_INIT_SYSTEMD is not set
  - systemd is visible but forced when BR2_INIT_SYSTEMD is set

As a consequence, systemd is never user-selectable.

Since the user already made the decision to use systemd in the init
system choice, there is no point in showing the systemd package at
all in the menuconfig.

Just remove the prompt, and move systemd's sub-option to a sub-menu.

Although not strictly required, we anyway keep the dependencies expressed
in systemd, to explain where they come from (kmod, util-linux...), so it
is explicit their duplication in the init system choice entry comes from
systemd itself. So, update the comments there.

Re-order dependencies, so they are the same in the systemd package and
the init system choice. Add dependencies missing in the package.

Also, move the help text to the init system choice, so the user has a
chance to look at it! ;-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/systemd/Config.in | 53 ++++++++++++++------------------------------
 system/Config.in          | 56 ++++++++++++++++++++++++++++++++++++++---------
 2 files changed, 63 insertions(+), 46 deletions(-)

diff --git a/package/systemd/Config.in b/package/systemd/Config.in
index 58f76a5..7ff36cc 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -7,12 +7,22 @@ config BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
 		BR2_sh4a || BR2_sh4aeb || BR2_sparc || BR2_x86_64 || \
 		BR2_aarch64 || BR2_m68k
 
+# Note: being prompt-less, and selected in the /dev management choice,
+# it is not needed to have dependencies on this symbol, since the
+# choice entry already have those dependencies.
+# However, it seems more logical to have the dependencies listed here,
+# so it is easier to uderstand why we have those, and duplicate them in
+# the choice entry.
+
 config BR2_PACKAGE_SYSTEMD
-	bool "systemd"
-	depends on BR2_INIT_SYSTEMD
+	bool
+	depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	depends on BR2_INET_IPV6
+	depends on BR2_TOOLCHAIN_HAS_SSP
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
 	depends on BR2_LARGEFILE # util-linux
 	depends on BR2_USE_WCHAR # util-linux
-	depends on BR2_INET_IPV6
 	depends on !BR2_PREFER_STATIC_LIB # kmod
 	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
 	depends on BR2_USE_MMU # dbus
@@ -24,42 +34,11 @@ config BR2_PACKAGE_SYSTEMD
 	select BR2_PACKAGE_KMOD
 	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # kmod-tools
 	select BR2_PACKAGE_KMOD_TOOLS
-	help
-	  systemd is a system and service manager for Linux, compatible with
-	  SysV and LSB init scripts. systemd provides aggressive parallelization
-	  capabilities, uses socket and D-Bus activation for starting services,
-	  offers on-demand starting of daemons, keeps track of processes using
-	  Linux cgroups, supports snapshotting and restoring of the system
-	  state, maintains mount and automount points and implements an
-	  elaborate transactional dependency-based service control logic.
-	  It can work as a drop-in replacement for sysvinit.
-
-	  Systemd requires a Linux kernel >= 3.0 with the following options
-	  enabled:
-
-	  - CONFIG_CGROUPS
-	  - CONFIG_INOTIFY_USER
-	  - CONFIG_FHANDLE
-	  - CONFIG_AUTOFS4_FS
-	  - CONFIG_TMPFS_POSIX_ACL
-	  - CONFIG_TMPFS_XATTR
-
-	  These options will be automatically enabled by Buildroot if
-	  it is responsible for building the kernel. Otherwise, if you
-	  are building your kernel outside of Buildroot, make sure
-	  these options are enabled.
-
-	  Systemd also provides udev, the userspace device daemon.
-
-	  The selection of other packages will enable some features:
-
-	  - libglib2 package will add support for gudev.
-	  - acl package will add support for multi-seat.
-
-	  http://freedesktop.org/wiki/Software/systemd
 
 if BR2_PACKAGE_SYSTEMD
 
+menu "systemd"
+
 config BR2_PACKAGE_PROVIDES_UDEV
 	default "systemd"
 
@@ -132,4 +111,6 @@ config BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT
 	  When this feature is enabled, Systemd mounts smackfs and manages
 	  security labels for sockets.
 
+endmenu # "systemd"
+
 endif
diff --git a/system/Config.in b/system/Config.in
index 89ae46e..e711d38 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -87,17 +87,53 @@ config BR2_INIT_SYSV
 
 config BR2_INIT_SYSTEMD
 	bool "systemd"
-	depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
-	depends on BR2_TOOLCHAIN_USES_GLIBC
-	depends on BR2_LARGEFILE
-	depends on BR2_USE_WCHAR
-	depends on BR2_INET_IPV6
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_TOOLCHAIN_HAS_SSP
-	depends on BR2_USE_MMU
-	depends on !BR2_PREFER_STATIC_LIB
-	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
+	depends on BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS # systemd
+	depends on BR2_TOOLCHAIN_USES_GLIBC # systemd
+	depends on BR2_INET_IPV6 # systemd
+	depends on BR2_TOOLCHAIN_HAS_SSP # systemd
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 # systemd
+	depends on BR2_LARGEFILE # systemd (util-linux)
+	depends on BR2_USE_WCHAR # systemd (util-linux)
+	depends on !BR2_PREFER_STATIC_LIB # systemd (kmod)
+	depends on BR2_TOOLCHAIN_HAS_THREADS # systemd (dbus)
+	depends on BR2_USE_MMU # systemd (dbus)
 	select BR2_PACKAGE_SYSTEMD
+        help
+	  systemd is a system and service manager for Linux, compatible with
+	  SysV and LSB init scripts. systemd provides aggressive parallelization
+	  capabilities, uses socket and D-Bus activation for starting services,
+	  offers on-demand starting of daemons, keeps track of processes using
+	  Linux cgroups, supports snapshotting and restoring of the system
+	  state, maintains mount and automount points and implements an
+	  elaborate transactional dependency-based service control logic.
+	  It can work as a drop-in replacement for sysvinit.
+
+	  Systemd requires a Linux kernel >= 3.0 with the following options
+	  enabled:
+
+	  - CONFIG_CGROUPS
+	  - CONFIG_INOTIFY_USER
+	  - CONFIG_FHANDLE
+	  - CONFIG_AUTOFS4_FS
+	  - CONFIG_TMPFS_POSIX_ACL
+	  - CONFIG_TMPFS_XATTR
+
+	  These options will be automatically enabled by Buildroot if
+	  it is responsible for building the kernel. Otherwise, if you
+	  are building your kernel outside of Buildroot, make sure
+	  these options are enabled.
+
+	  Systemd also provides udev, the userspace device daemon.
+
+	  The selection of other packages will enable some features:
+
+	  - libglib2 package will add support for gudev.
+	  - acl package will add support for multi-seat.
+
+	  You can further configure systemd in:
+	    Target packages --> System tools --> systemd
+
+	  http://freedesktop.org/wiki/Software/systemd
 
 comment 'systemd needs an (e)glibc toolchain, headers >= 3.10'
 	depends on !(BR2_TOOLCHAIN_USES_GLIBC \
-- 
1.8.3.2

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

* [Buildroot] [PATCH 07/20 RFC] package/libudev: new virtual package
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (5 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 06/20 RFC] package/systemd: remove prompt Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-07-11 20:15   ` Bernd Kuhls
  2014-06-13 23:02 ` [Buildroot] [PATCH 08/20 RFC] package/eudev: is a provider for libudev Yann E. MORIN
                   ` (13 subsequent siblings)
  20 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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>
---
 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 88705f8..3d02d3d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -637,6 +637,7 @@ menu "Hardware handling"
 	source "package/libraw1394/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.8.3.2

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

* [Buildroot] [PATCH 08/20 RFC] package/eudev: is a provider for libudev
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (6 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 07/20 RFC] package/libudev: new virtual package Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-07-11 20:15   ` Bernd Kuhls
  2014-06-13 23:02 ` [Buildroot] [PATCH 09/20 RFC] package/systemd: " Yann E. MORIN
                   ` (12 subsequent siblings)
  20 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 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 b204a90..db72e95 100644
--- a/package/eudev/Config.in
+++ b/package/eudev/Config.in
@@ -12,6 +12,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
@@ -19,6 +20,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 5f1525c..f837aa4 100644
--- a/package/eudev/eudev.mk
+++ b/package/eudev/eudev.mk
@@ -25,7 +25,7 @@ EUDEV_CONF_OPT =		\
 	--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_OPT += --enable-rule_generator
-- 
1.8.3.2

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

* [Buildroot] [PATCH 09/20 RFC] package/systemd: is a provider for libudev
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (7 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 08/20 RFC] package/eudev: is a provider for libudev Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 10/20 RFC] package/eudev: split udev/libudev Yann E. MORIN
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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 7ff36cc..97de4dc 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -26,6 +26,7 @@ config BR2_PACKAGE_SYSTEMD
 	depends on !BR2_PREFER_STATIC_LIB # 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
@@ -39,6 +40,9 @@ if BR2_PACKAGE_SYSTEMD
 
 menu "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 6de7887..b968d0b 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.8.3.2

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

* [Buildroot] [PATCH 10/20 RFC] package/eudev: split udev/libudev
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (8 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 09/20 RFC] package/systemd: " Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 11/20 RFC] package/libatasmart: needs libudev, not a udev daemon Yann E. MORIN
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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

Of course, libudev conflicts with systemd, but we tell the user that it
is "provided" by systemd when it is selected.

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>

---
Note: although the prompt is changed to 'libusb', we still call the
package 'eudev', to avoid a mess of renaming the variables. If needed,
that can be done in a separate patch.

Changes RFC -> v2:
  - be a provider for libudev always, since udev is not such a provider
    any more  (Thomas)
---
 package/Config.in       |  2 +-
 package/eudev/Config.in | 40 ++++++++++++++++++++++++++++++++++++++--
 package/eudev/eudev.mk  | 47 ++++++++++++++++++++++++++++++++++++++++++-----
 system/Config.in        |  7 ++++---
 4 files changed, 85 insertions(+), 11 deletions(-)

diff --git a/package/Config.in b/package/Config.in
index 3d02d3d..9dcb37e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -289,7 +289,6 @@ endif
 	source "package/dvbsnoop/Config.in"
 	source "package/dtv-scan-tables/Config.in"
 	source "package/eeprog/Config.in"
-	source "package/eudev/Config.in"
 	source "package/evemu/Config.in"
 	source "package/evtest/Config.in"
 	source "package/fan-ctrl/Config.in"
@@ -637,6 +636,7 @@ menu "Hardware handling"
 	source "package/libraw1394/Config.in"
 	source "package/libserial/Config.in"
 	source "package/libsoc/Config.in"
+	source "package/eudev/Config.in" # prompt is 'libudev'
 	source "package/libudev/Config.in"
 	source "package/libusb/Config.in"
 	source "package/libusb-compat/Config.in"
diff --git a/package/eudev/Config.in b/package/eudev/Config.in
index db72e95..01f8c97 100644
--- a/package/eudev/Config.in
+++ b/package/eudev/Config.in
@@ -4,8 +4,29 @@
 # However, it seems more logical to have the dependencies listed here,
 # so it is easier to uderstand why we have those, and duplicate them in
 # the choice entry.
+#
+# Note, although named 'eudev', this package primarily provides libudev,
+# unless the /dev management is selected to be eudev, in which case this
+# package will provide a full udev. That's hy the prompt is 'libudev'.
 
 config BR2_PACKAGE_EUDEV
+	bool "libudev"
+	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 if !BR2_PACKAGE_EUDEV_DAEMON
+	help
+	  eudev is a fork of system-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_EUDEV_DAEMON
 	bool
 	depends on !BR2_avr32 # no epoll_create1
 	depends on BR2_USE_MMU # uses fork()
@@ -18,7 +39,7 @@ config BR2_PACKAGE_EUDEV
 	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
 	select BR2_PACKAGE_KMOD
 
-if BR2_PACKAGE_EUDEV
+if BR2_PACKAGE_EUDEV_DAEMON
 
 config BR2_PACKAGE_PROVIDES_LIBUDEV
 	default "eudev"
@@ -31,4 +52,19 @@ config BR2_PACKAGE_EUDEV_RULES_GEN
 	help
 	  Enable persistent rules generator
 
-endif
+endif # BR2_PACKAGE_EUDEV_DAEMON
+
+# If the daemon is selected, it means we have a full udev, which is
+# responsible for providing libudev. So only provide libudev if the
+# daemon is not selected.
+config BR2_PACKAGE_PROVIDES_LIBUDEV
+	default "eudev" if !BR2_PACKAGE_EUDEV_DAEMON
+
+endif # BR2_PACKAGE_EUDEV
+
+comment "libudev needs a toolchain w/ wchar, dynamic library"
+	depends on !BR2_USE_WCHAR || BR2_PREFER_STATIC_LIB
+	depends on !BR2_PACKAGE_SYSTEMD
+
+comment "libudev provided by systemd"
+	depends on BR2_PACKAGE_SYSTEMD
diff --git a/package/eudev/eudev.mk b/package/eudev/eudev.mk
index f837aa4..5428649 100644
--- a/package/eudev/eudev.mk
+++ b/package/eudev/eudev.mk
@@ -16,19 +16,28 @@ EUDEV_CONF_ENV += LIBS=-lrt
 
 EUDEV_CONF_OPT =		\
 	--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_OPT += \
+	--sbindir=/sbin \
+	--enable-libkmod
 
 ifeq ($(BR2_PACKAGE_EUDEV_RULES_GEN),y)
 EUDEV_CONF_OPT += --enable-rule_generator
+else
+EUDEV_CONF_OPT += --disable-rule_generator
 endif
 
 ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
@@ -42,4 +51,32 @@ define EUDEV_INSTALL_INIT_SYSV
 	$(INSTALL) -m 0755 package/eudev/S10udev $(TARGET_DIR)/etc/init.d/S10udev
 endef
 
+else # ! daemon
+
+EUDEV_CONF_OPT += \
+	--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/libudev
+endef
+
+define EUDEV_INSTALL_STAGING_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src/libudev DESTDIR=$(STAGING_DIR) install
+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 e711d38..856b854 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -160,12 +160,13 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV
 
 config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
 	bool "Dynamic using eudev"
-	depends on !BR2_avr32 # eudev (no epoll_create1)
+	depends on !BR2_avr32 # eudev
 	depends on BR2_USE_MMU # eudev (fork)
-	depends on BR2_LARGEFILE # eudev (util-linux)
+	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.
@@ -174,7 +175,7 @@ config BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
 	  and inotify.
 
 	  You can further configure systemd in:
-	    Target packages --> Hardware handling
+	    Target packages --> Libraries --> Hardware handling --> libudev
 
 	  http://github.com/gentoo/eudev/
 
-- 
1.8.3.2

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

* [Buildroot] [PATCH 11/20 RFC] package/libatasmart: needs libudev, not a udev daemon
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (9 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 10/20 RFC] package/eudev: split udev/libudev Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 12/20 RFC] package/libcec: " Yann E. MORIN
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/libatasmart/Config.in b/package/libatasmart/Config.in
index 534e7c1..22d4141 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.
-- 
1.8.3.2

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

* [Buildroot] [PATCH 12/20 RFC] package/libcec: needs libudev, not a udev daemon
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (10 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 11/20 RFC] package/libatasmart: needs libudev, not a udev daemon Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-07-11 20:20   ` Bernd Kuhls
  2014-06-13 23:02 ` [Buildroot] [PATCH 13/20 RFC] package/libdrm: can also use only libudev Yann E. MORIN
                   ` (8 subsequent siblings)
  20 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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>
---
 package/libcec/libcec.mk | 4 ++--
 package/xbmc/Config.in   | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/package/libcec/libcec.mk b/package/libcec/libcec.mk
index ad919fc..49e4dbd 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 592fdc1..db888ac 100644
--- a/package/xbmc/Config.in
+++ b/package/xbmc/Config.in
@@ -99,14 +99,14 @@ comment "libbluray support needs a toolchain w/ dynamic library"
 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"
+	depends on BR2_PREFER_STATIC_LIB
 
 config BR2_PACKAGE_XBMC_LIBMICROHTTPD
 	bool "web server"
-- 
1.8.3.2

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

* [Buildroot] [PATCH 13/20 RFC] package/libdrm: can also use only libudev
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (11 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 12/20 RFC] package/libcec: " Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 14/20 RFC] package/libinput: needs libudev, not a udev daemon Yann E. MORIN
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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, 4 insertions(+)

diff --git a/package/libdrm/libdrm.mk b/package/libdrm/libdrm.mk
index b3e4d7a..10d38e4 100644
--- a/package/libdrm/libdrm.mk
+++ b/package/libdrm/libdrm.mk
@@ -69,4 +69,8 @@ else
 LIBDRM_CONF_OPT += --disable-udev
 endif
 
+ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y)
+LIBDRM_DEPENDENCIES += libudev
+endif
+
 $(eval $(autotools-package))
-- 
1.8.3.2

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

* [Buildroot] [PATCH 14/20 RFC] package/libinput: needs libudev, not a udev daemon
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (12 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 13/20 RFC] package/libdrm: can also use only libudev Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 15/20 RFC] package/libusb: " Yann E. MORIN
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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   | 5 +----
 package/libinput/libinput.mk | 2 +-
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/package/libinput/Config.in b/package/libinput/Config.in
index 14e4e70..4445ade 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
@@ -12,6 +12,3 @@ config BR2_PACKAGE_LIBINPUT
 	  set of functionality that users expect.
 
 	  http://freedesktop.org/wiki/Software/libinput/
-
-comment "libinput needs udev /dev management"
-	depends on !BR2_PACKAGE_HAS_UDEV
diff --git a/package/libinput/libinput.mk b/package/libinput/libinput.mk
index b52101a..3f225cc 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.8.3.2

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

* [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev)
@ 2014-06-13 23:02 Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 01/20 RFC] package/xbmc: remove spurious build-dependency on udev Yann E. MORIN
                   ` (20 more replies)
  0 siblings, 21 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

Hello All!

Big fat warning: this is only an RFC for now!

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 anudev daemon. That's the case for e.g. libinput, libcec,
mesa3d...

The series contains:

  - a patch to remove a spurious dependency on udev for XBMC

  - three patches to fix generating the list of virtual packages for
    the manual

  - two patches to remove the prompts of eudev and systemd, since
    they are never user-selectable; a bit of cleanup is done in the
    dependencies as well

  - a patch to intrduce the libudev virtual package

  - two patches to add libudev providers: eudev and systemd

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

  - ten patches to convert packages to depend on libusb instead of a
    udev daemon

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.

Also, the converted packages have not been tested, not even build-tested;
this is just an RFC to validate the overal solution for now.

On your keyboards, get set, ready... Comment! :-)

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 712414ce2dc6f40ed98a3d8007e7d7ec382f79d4:

  gcc: drop redundant explicit version handling for aarch64 (2014-06-13 23:01:16 +0200)

are available in the git repository at:

  git://gitorious.org/buildroot/buildroot.git yem/libudev

for you to fetch changes up to bc3939ee063e015da15063492b6ef0d0b1b7a6de:

  package/xserver_xorg-server: needs libudev, not a udev daemon (2014-06-14 00:47:52 +0200)

----------------------------------------------------------------
Yann E. MORIN (20):
      package/xbmc: remove spurious build-dependency on udev
      support/gen-manual-lists.py: remove unneeded arg in private function
      support/gen-manual-lists.py: bail out early for legacy symbols
      support/gen-manual-lists.py: rework generating the virtual package list
      package/eudev: remove the prompt
      package/systemd: remove prompt
      package/libudev: new virtual package
      package/eudev: is a provider for libudev
      package/systemd: is a provider for libudev
      package/eudev: split udev/libudev
      package/libatasmart: needs libudev, not a udev daemon
      package/libcec: needs libudev, not a udev daemon
      package/libdrm: can also use only libudev
      package/libinput: needs libudev, not a udev daemon
      package/libusb: needs libudev, not a udev daemon
      package/mesa3d: depends on libudev, not udev
      package/vlc: needs libudev, not a udev daemon
      package/weston: needs libudev, not a udev daemon
      package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon
      package/xserver_xorg-server: needs libudev, not a udev daemon

 package/Config.in                                  |  3 +-
 package/eudev/Config.in                            | 68 +++++++++++-----
 package/eudev/eudev.mk                             | 47 +++++++++--
 package/libatasmart/Config.in                      |  2 +-
 package/libcec/libcec.mk                           |  4 +-
 package/libdrm/libdrm.mk                           |  4 +
 package/libinput/Config.in                         |  5 +-
 package/libinput/libinput.mk                       |  2 +-
 package/libudev/Config.in                          |  6 ++
 package/libudev/libudev.mk                         |  7 ++
 package/libusb/libusb.mk                           |  5 +-
 package/mesa3d/Config.in                           |  2 +-
 package/mesa3d/mesa3d.mk                           |  4 +-
 package/systemd/Config.in                          | 55 +++++--------
 package/systemd/systemd.mk                         |  2 +-
 package/vlc/vlc.mk                                 |  4 +-
 package/weston/Config.in                           |  6 +-
 package/weston/weston.mk                           |  2 +-
 package/x11r7/xdriver_xf86-input-evdev/Config.in   |  5 +-
 .../xdriver_xf86-input-evdev.mk                    |  3 +-
 .../xserver_xorg-server/xserver_xorg-server.mk     |  4 +-
 package/xbmc/Config.in                             |  6 +-
 package/xbmc/xbmc.mk                               |  2 +-
 support/scripts/gen-manual-lists.py                | 92 ++++++++++++++++++----
 system/Config.in                                   | 76 ++++++++++++++----
 25 files changed, 294 insertions(+), 122 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] 34+ messages in thread

* [Buildroot] [PATCH 15/20 RFC] package/libusb: needs libudev, not a udev daemon
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (13 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 14/20 RFC] package/libinput: needs libudev, not a udev daemon Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 16/20 RFC] package/mesa3d: depends on libudev, not udev Yann E. MORIN
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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 417b2ce..6e1c6a5 100644
--- a/package/libusb/libusb.mk
+++ b/package/libusb/libusb.mk
@@ -21,8 +21,9 @@ ifeq ($(BR2_avr32),y)
 LIBUSB_CONF_OPT += --disable-timerfd
 endif
 
-ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
-LIBUSB_DEPENDENCIES += udev
+ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y)
+LIBUSB_CONF_OPT += --enable-udev
+LIBUSB_DEPENDENCIES += libudev
 else
 LIBUSB_CONF_OPT += --disable-udev
 endif
-- 
1.8.3.2

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

* [Buildroot] [PATCH 16/20 RFC] package/mesa3d: depends on libudev, not udev
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (14 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 15/20 RFC] package/libusb: " Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-07-11 20:13   ` Bernd Kuhls
  2014-06-13 23:02 ` [Buildroot] [PATCH 17/20 RFC] package/vlc: needs libudev, not a udev daemon Yann E. MORIN
                   ` (4 subsequent siblings)
  20 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/mesa3d/Config.in | 2 +-
 package/mesa3d/mesa3d.mk | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index e698b3e..d912db5 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -10,7 +10,7 @@ menuconfig BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XSERVER_XORG_SERVER
 	select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XSERVER_XORG_SERVER
 	select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XSERVER_XORG_SERVER
-	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
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index 1a61af8..ca35eb9 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -93,8 +93,8 @@ MESA3D_CONF_OPT += --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.8.3.2

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

* [Buildroot] [PATCH 17/20 RFC] package/vlc: needs libudev, not a udev daemon
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (15 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 16/20 RFC] package/mesa3d: depends on libudev, not udev Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 18/20 RFC] package/weston: " Yann E. MORIN
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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 6eb7eea..cc06818 100644
--- a/package/vlc/vlc.mk
+++ b/package/vlc/vlc.mk
@@ -284,9 +284,9 @@ else
 VLC_CONF_OPT += --disable-tremor
 endif
 
-ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y)
 VLC_CONF_OPT += --enable-udev
-VLC_DEPENDENCIES += udev
+VLC_DEPENDENCIES += libudev
 else
 VLC_CONF_OPT += --disable-udev
 endif
-- 
1.8.3.2

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

* [Buildroot] [PATCH 18/20 RFC] package/weston: needs libudev, not a udev daemon
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (16 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 17/20 RFC] package/vlc: needs libudev, not a udev daemon Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 19/20 RFC] package/xdriver_xf86-input-evdev: " Yann E. MORIN
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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 | 6 +++---
 package/weston/weston.mk | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package/weston/Config.in b/package/weston/Config.in
index aaef405..8e387ca 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -1,6 +1,6 @@
-comment "weston needs udev and a toolchain w/ threads, headers >= 3.0"
+comment "weston needs a toolchain w/ threads, headers >= 3.0"
 	depends on !BR2_avr32
-	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
 
 config BR2_PACKAGE_WESTON
 	bool "weston"
@@ -11,7 +11,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_TOOLCHAIN_HAS_THREADS # wayland
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
diff --git a/package/weston/weston.mk b/package/weston/weston.mk
index ed0707b..c1d023a 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_OPT = \
 	--with-dtddir=$(STAGING_DIR)/usr/share/wayland \
-- 
1.8.3.2

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

* [Buildroot] [PATCH 19/20 RFC] package/xdriver_xf86-input-evdev: needs libudev, not a udev daemon
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (17 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 18/20 RFC] package/weston: " Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-13 23:02 ` [Buildroot] [PATCH 20/20 RFC] package/xserver_xorg-server: " Yann E. MORIN
  2014-06-14  8:01 ` [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Thomas Petazzoni
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

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

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

* [Buildroot] [PATCH 20/20 RFC] package/xserver_xorg-server: needs libudev, not a udev daemon
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (18 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 19/20 RFC] package/xdriver_xf86-input-evdev: " Yann E. MORIN
@ 2014-06-13 23:02 ` Yann E. MORIN
  2014-06-14  8:01 ` [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Thomas Petazzoni
  20 siblings, 0 replies; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-13 23:02 UTC (permalink / raw)
  To: buildroot

From: "Yann E. MORIN" <yann.morin.1998@free.fr>

xserver_xorg-server 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/x11r7/xserver_xorg-server/xserver_xorg-server.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
index cae3ba0..9726921 100644
--- a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
+++ b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
@@ -124,8 +124,8 @@ XSERVER_XORG_SERVER_DEPENDENCIES += tslib
 XSERVER_XORG_SERVER_CONF_OPT += --enable-tslib LDFLAGS="-lts"
 endif
 
-ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
-XSERVER_XORG_SERVER_DEPENDENCIES += udev
+ifeq ($(BR2_PACKAGE_HAS_LIBUDEV),y)
+XSERVER_XORG_SERVER_DEPENDENCIES += libudev
 XSERVER_XORG_SERVER_CONF_OPT += --enable-config-udev
 # udev kms support depends on libdrm
 ifeq ($(BR2_PACKAGE_LIBDRM),y)
-- 
1.8.3.2

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

* [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev)
  2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
                   ` (19 preceding siblings ...)
  2014-06-13 23:02 ` [Buildroot] [PATCH 20/20 RFC] package/xserver_xorg-server: " Yann E. MORIN
@ 2014-06-14  8:01 ` Thomas Petazzoni
  2014-06-14 10:05   ` Yann E. MORIN
  20 siblings, 1 reply; 34+ messages in thread
From: Thomas Petazzoni @ 2014-06-14  8:01 UTC (permalink / raw)
  To: buildroot

Yann, Bernd,

On Sat, 14 Jun 2014 01:02:39 +0200, Yann E. MORIN wrote:

> Big fat warning: this is only an RFC for now!
> 
> 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 anudev daemon. That's the case for e.g. libinput, libcec,
> mesa3d...

To be honest, I am far from being a udev expert, but I have a question
about the rationale behind a libudev-only configuration.

I thought that udev was a daemon running in the background, receiving
events from the kernel through a netlink socket when devices
appear/disappear, and then keeping a sort of "database" of available
devices. On top of that, libudev was a client library that allows
application to talk to the udev daemon to query which devices are
available/not available and their characteristics. With this picture in
mind, I fail to see how libudev can be useful with the udev daemon. So
surely, my picture of how udev works is broken, but I'd be interested
in hearing more on how libudev without the udev daemon can be useful.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev)
  2014-06-14  8:01 ` [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Thomas Petazzoni
@ 2014-06-14 10:05   ` Yann E. MORIN
  2014-06-14 10:08     ` Thomas Petazzoni
  0 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-14 10:05 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2014-06-14 10:01 +0200, Thomas Petazzoni spake thusly:
> On Sat, 14 Jun 2014 01:02:39 +0200, Yann E. MORIN wrote:
> 
> > Big fat warning: this is only an RFC for now!
> > 
> > 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 anudev daemon. That's the case for e.g. libinput, libcec,
> > mesa3d...
> 
> To be honest, I am far from being a udev expert, but I have a question
> about the rationale behind a libudev-only configuration.

It is my understanding that libudev is not used to talk to a udev
daemon, but is used to present a view of sysfs, instead of leaving
all application reinvent their own walking of /sys, and libudev also
provides monitoring of devices:
    http://www.signal11.us/oss/udev/

Now, how libudev and a udev daemon play together, I have no idea. ;-)

Regards,
Yann E. MORIN.

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

* [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev)
  2014-06-14 10:05   ` Yann E. MORIN
@ 2014-06-14 10:08     ` Thomas Petazzoni
  0 siblings, 0 replies; 34+ messages in thread
From: Thomas Petazzoni @ 2014-06-14 10:08 UTC (permalink / raw)
  To: buildroot

Dear Yann E. MORIN,

On Sat, 14 Jun 2014 12:05:21 +0200, Yann E. MORIN wrote:

> > To be honest, I am far from being a udev expert, but I have a question
> > about the rationale behind a libudev-only configuration.
> 
> It is my understanding that libudev is not used to talk to a udev
> daemon, but is used to present a view of sysfs, instead of leaving
> all application reinvent their own walking of /sys, and libudev also
> provides monitoring of devices:
>     http://www.signal11.us/oss/udev/

Hum, ok, makes sense. It just uses sysfs and that's it. Thanks for the
explanation!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 02/20 RFC] support/gen-manual-lists.py: remove unneeded arg in private function
  2014-06-13 23:02 ` [Buildroot] [PATCH 02/20 RFC] support/gen-manual-lists.py: remove unneeded arg in private function Yann E. MORIN
@ 2014-06-15 19:35   ` Samuel Martin
  0 siblings, 0 replies; 34+ messages in thread
From: Samuel Martin @ 2014-06-15 19:35 UTC (permalink / raw)
  To: buildroot

On Sat, Jun 14, 2014 at 1:02 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
>
> No need to pass as argument to a function, members of the class it's in.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Samuel Martin <s.martin49@gmail.com>

Acked-by: Samuel Martin <s.martin49@gmail.com>

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

* [Buildroot] [PATCH 03/20 RFC] support/gen-manual-lists.py: bail out early for legacy symbols
  2014-06-13 23:02 ` [Buildroot] [PATCH 03/20 RFC] support/gen-manual-lists.py: bail out early for legacy symbols Yann E. MORIN
@ 2014-06-15 19:38   ` Samuel Martin
  0 siblings, 0 replies; 34+ messages in thread
From: Samuel Martin @ 2014-06-15 19:38 UTC (permalink / raw)
  To: buildroot

Yann,

On Sat, Jun 14, 2014 at 1:02 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
>
> When searching for virtual package providers, there's no need to
> handle legacy symbols at all, so just bail out early.

Do forget your SoB line ;-) and you can add my ack too :)

Acked-by: Samuel Martin <s.martin49@gmail.com>

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

* [Buildroot] [PATCH 04/20 RFC] support/gen-manual-lists.py: rework generating the virtual package list
  2014-06-13 23:02 ` [Buildroot] [PATCH 04/20 RFC] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
@ 2014-06-15 20:18   ` Samuel Martin
  2014-06-15 21:06     ` Yann E. MORIN
  0 siblings, 1 reply; 34+ messages in thread
From: Samuel Martin @ 2014-06-15 20:18 UTC (permalink / raw)
  To: buildroot

Yann,

On Sat, Jun 14, 2014 at 1:02 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
>
> Tog et the list of providers of a virtual pacakge, we currently scan
s/Tog et/To get/
s/pacakge/package/

> all the symbols to see if they select the virtual package _HAS symbol.
>
> Then, for all such selecting symbols, we iterate tthrough the select
s/tthrough/through/

> chain, to the uppermostsymbol that has a prompt, to get the actual
s/to the/to find the/
s/uppermostsymbol/uppermost symbol/

> 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 prevent a virtual package to declare itself as
> a provider for another virtual package.
>
> This will be the case for udev, a virtual package provided by eudev
> or systemd, but also a provider of the virtual package libudev.
>
> 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
> previosuly valid heuristic is no longer valid.
s/previosuly/previously/

>
> 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 providign packages from the list of 'default'
s/providign/providing/

> 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 pacakges, as well as virtual packages. This
s/pacakges/packages/

> is 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>
> ---
>  support/scripts/gen-manual-lists.py | 88 +++++++++++++++++++++++++++++++------
>  1 file changed, 74 insertions(+), 14 deletions(-)
>
> diff --git a/support/scripts/gen-manual-lists.py b/support/scripts/gen-manual-lists.py
> index 95c10dc..837cd66 100644
> --- a/support/scripts/gen-manual-lists.py
> +++ b/support/scripts/gen-manual-lists.py
> @@ -384,28 +384,88 @@ class Buildroot:
>                      return s
>              return None
>
> +        # 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 defaul "foo"
s/defaul/default/

> +        # 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 'sected by' chain until we find a symbol
s/sected by/selected by/

> +        # 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 = list()
> +            providers_syms = 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 (p,_) in _provides_sym.def_exprs:
1 space after ','

> +                _p = self.config._expr_val_str(p, get_val_instead_of_eval=True)
> +                _p = re.sub(r"-",r"_",_p.strip('"'))
ditto

> +                providers_syms.append(self.config.get_symbol("BR2_PACKAGE_"+_p.upper()))
1 space before and after '+'

> +
> +            # 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) )
space after ','
> +
> +            # Now, build a list of providers with option
> +            seen = list()
> +            providers_str = list()
> +            for (p,o) in providers_syms_w_opts:
ditto

> +                if not p in seen:
> +                    seen.append(p)
> +                l = self._get_symbol_label(p,False) + " (w/ " \
ditto

> +                  + self._get_symbol_label(o,False) + ")"
ditto

> +                providers_str.append(l)
> +
> +            # Finally, complete with the list of providers without option
> +            for p in providers_syms:
> +                if p in seen:
> +                    continue
> +                _p = re.sub(r"^BR2_PACKAGE_(.*)", r"\1", p.get_name()).lower()
> +                providers_str.append(_p)
hum... here, you _p is the low-case symbol name (without the
BR2_PACKAGE_ prefix), not exactly the package name (e.g. for
rpi-userland, you get "rpi_userland",= instead of "rpi-userland"). Or
am I missing something?

> +
> +            return providers_str
> +
> +        # 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):
It's a bit weird to have the definition of this function after you use
it  (in the previous on), but python allows this ;-)

> +            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
>
>          if what == "layout":
>              return ( "100%", "^1,4,4" )
> --
> 1.8.3.2
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

Regards,

-- 
Samuel

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

* [Buildroot] [PATCH 04/20 RFC] support/gen-manual-lists.py: rework generating the virtual package list
  2014-06-15 20:18   ` Samuel Martin
@ 2014-06-15 21:06     ` Yann E. MORIN
  2014-06-15 21:28       ` Samuel Martin
  0 siblings, 1 reply; 34+ messages in thread
From: Yann E. MORIN @ 2014-06-15 21:06 UTC (permalink / raw)
  To: buildroot

Samuel, All,

On 2014-06-15 22:18 +0200, Samuel Martin spake thusly:
> On Sat, Jun 14, 2014 at 1:02 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > From: "Yann E. MORIN" <yann.morin.1998@free.fr>
[--SNIP a lot of typoes--]

OK, will fix all of those.

> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > ---
> >  support/scripts/gen-manual-lists.py | 88 +++++++++++++++++++++++++++++++------
> >  1 file changed, 74 insertions(+), 14 deletions(-)
> >
> > diff --git a/support/scripts/gen-manual-lists.py b/support/scripts/gen-manual-lists.py
> > index 95c10dc..837cd66 100644
> > --- a/support/scripts/gen-manual-lists.py
> > +++ b/support/scripts/gen-manual-lists.py
[--SNIP yet another bunch of typoes--]

OK, will fix.

> > +                if parent_pkg is not None:
> > +                    providers_syms_w_opts.append( (parent_pkg,sym) )
> space after ','

I was wondering what was the coding rule when an argument is a tuple.
Usually, we do not have a space after anopening brace, or before a
closing brace. But it looks strange when the (only) arg is a tuple.

Should I write:
    .append( (parent_pkg, sym) )
or:
    .append((parent_pkg, sym))
?

> > +            # Finally, complete with the list of providers without option
> > +            for p in providers_syms:
> > +                if p in seen:
> > +                    continue
> > +                _p = re.sub(r"^BR2_PACKAGE_(.*)", r"\1", p.get_name()).lower()
> > +                providers_str.append(_p)
> hum... here, you _p is the low-case symbol name (without the
> BR2_PACKAGE_ prefix), not exactly the package name (e.g. for
> rpi-userland, you get "rpi_userland",= instead of "rpi-userland"). Or
> am I missing something?

Doh. That's right... Good catch. I'll (try to) fix that.

> > +
> > +            return providers_str
> > +
> > +        # 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):
> It's a bit weird to have the definition of this function after you use
> it  (in the previous on), but python allows this ;-)

Well, do we want all functions to be defined before (code-wise) we call
them, or do we prefer to have the important functions come first?

I usually tend to the latter. But I'll move the functions.

Thank you for the reviews! :-)

Regards,
Yann E. MORIN.

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

* [Buildroot] [PATCH 04/20 RFC] support/gen-manual-lists.py: rework generating the virtual package list
  2014-06-15 21:06     ` Yann E. MORIN
@ 2014-06-15 21:28       ` Samuel Martin
  0 siblings, 0 replies; 34+ messages in thread
From: Samuel Martin @ 2014-06-15 21:28 UTC (permalink / raw)
  To: buildroot

On Sun, Jun 15, 2014 at 11:06 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Samuel, All,
>
> On 2014-06-15 22:18 +0200, Samuel Martin spake thusly:
>> On Sat, Jun 14, 2014 at 1:02 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>> > From: "Yann E. MORIN" <yann.morin.1998@free.fr>
> [--SNIP a lot of typoes--]
>
> OK, will fix all of those.
>
>> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
>> > ---
>> >  support/scripts/gen-manual-lists.py | 88 +++++++++++++++++++++++++++++++------
>> >  1 file changed, 74 insertions(+), 14 deletions(-)
>> >
>> > diff --git a/support/scripts/gen-manual-lists.py b/support/scripts/gen-manual-lists.py
>> > index 95c10dc..837cd66 100644
>> > --- a/support/scripts/gen-manual-lists.py
>> > +++ b/support/scripts/gen-manual-lists.py
> [--SNIP yet another bunch of typoes--]
>
> OK, will fix.
>
>> > +                if parent_pkg is not None:
>> > +                    providers_syms_w_opts.append( (parent_pkg,sym) )
>> space after ','
>
> I was wondering what was the coding rule when an argument is a tuple.
> Usually, we do not have a space after anopening brace, or before a
> closing brace. But it looks strange when the (only) arg is a tuple.
>
> Should I write:
>     .append( (parent_pkg, sym) )
> or:
>     .append((parent_pkg, sym))
> ?

Usually there is no space between the function's brackets and the
tuple's ones, though I'm ok with space since it may improve
readability.

>
>> > +            # Finally, complete with the list of providers without option
>> > +            for p in providers_syms:
>> > +                if p in seen:
>> > +                    continue
>> > +                _p = re.sub(r"^BR2_PACKAGE_(.*)", r"\1", p.get_name()).lower()
>> > +                providers_str.append(_p)
>> hum... here, you _p is the low-case symbol name (without the
>> BR2_PACKAGE_ prefix), not exactly the package name (e.g. for
>> rpi-userland, you get "rpi_userland",= instead of "rpi-userland"). Or
>> am I missing something?
>
> Doh. That's right... Good catch. I'll (try to) fix that.
>
>> > +
>> > +            return providers_str
>> > +
>> > +        # 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):
>> It's a bit weird to have the definition of this function after you use
>> it  (in the previous on), but python allows this ;-)
>
> Well, do we want all functions to be defined before (code-wise) we call
> them, or do we prefer to have the important functions come first?

Well, your call ;-)

>
> I usually tend to the latter. But I'll move the functions.
>
> Thank you for the reviews! :-)
>
> Regards,
> Yann E. MORIN.
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'



-- 
Samuel

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

* [Buildroot] [PATCH 16/20 RFC] package/mesa3d: depends on libudev, not udev
  2014-06-13 23:02 ` [Buildroot] [PATCH 16/20 RFC] package/mesa3d: depends on libudev, not udev Yann E. MORIN
@ 2014-07-11 20:13   ` Bernd Kuhls
  0 siblings, 0 replies; 34+ messages in thread
From: Bernd Kuhls @ 2014-07-11 20:13 UTC (permalink / raw)
  To: buildroot

"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in
news:e623bd3fd72faf81d9f1bace6f97ad7c75dd39ed.1402699915.git.yann.morin.199
8 at free.fr: 

> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
> 
> Signed-off-by: "Yann E. MORIN"
> <yann.morin.1998@free.fr> Cc: Bernd Kuhls
> <bernd.kuhls@t-online.de> ---

Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de>

Compile tested using this defconfig

BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y
BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST=y
BR2_PACKAGE_MESA3D_DRI_DRIVER_I965=y
BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON=y
BR2_PACKAGE_MESA3D_OPENGL_EGL=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_EUDEV=y

Regards, Bernd

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

* [Buildroot] [PATCH 01/20 RFC] package/xbmc: remove spurious build-dependency on udev
  2014-06-13 23:02 ` [Buildroot] [PATCH 01/20 RFC] package/xbmc: remove spurious build-dependency on udev Yann E. MORIN
@ 2014-07-11 20:14   ` Bernd Kuhls
  0 siblings, 0 replies; 34+ messages in thread
From: Bernd Kuhls @ 2014-07-11 20:14 UTC (permalink / raw)
  To: buildroot

"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in
news:b7f903149e4e4674f34460828cf953b728fb17db.1402699915.git.yann.morin.199
8 at free.fr: 

> From: "Yann E. MORIN" <yann.morin.1998@free.fr>

Acked-by: Bernd Kuhls <bernd.kuhls@t-online.de>

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

* [Buildroot] [PATCH 07/20 RFC] package/libudev: new virtual package
  2014-06-13 23:02 ` [Buildroot] [PATCH 07/20 RFC] package/libudev: new virtual package Yann E. MORIN
@ 2014-07-11 20:15   ` Bernd Kuhls
  0 siblings, 0 replies; 34+ messages in thread
From: Bernd Kuhls @ 2014-07-11 20:15 UTC (permalink / raw)
  To: buildroot

"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in
news:7b678cb3eaedcd5da126fd95ad84dbdecb3466e2.1402699915.git.yann.morin.199
8 at free.fr: 

> From: "Yann E. MORIN" <yann.morin.1998@free.fr>

Reviewed-by: Bernd Kuhls <bernd.kuhls@t-online.de>

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

* [Buildroot] [PATCH 08/20 RFC] package/eudev: is a provider for libudev
  2014-06-13 23:02 ` [Buildroot] [PATCH 08/20 RFC] package/eudev: is a provider for libudev Yann E. MORIN
@ 2014-07-11 20:15   ` Bernd Kuhls
  0 siblings, 0 replies; 34+ messages in thread
From: Bernd Kuhls @ 2014-07-11 20:15 UTC (permalink / raw)
  To: buildroot

"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in
news:fa599b60a512154e33b26a3ac3dccfa12f0c4518.1402699915.git.yann.morin.199
8 at free.fr: 

> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
> 
> 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>

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

* [Buildroot] [PATCH 12/20 RFC] package/libcec: needs libudev, not a udev daemon
  2014-06-13 23:02 ` [Buildroot] [PATCH 12/20 RFC] package/libcec: " Yann E. MORIN
@ 2014-07-11 20:20   ` Bernd Kuhls
  0 siblings, 0 replies; 34+ messages in thread
From: Bernd Kuhls @ 2014-07-11 20:20 UTC (permalink / raw)
  To: buildroot

Hi,

"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in news:d063b08a5cb278d84fcdd031906cd9f2faf3ac8f.1402699915.git.yann.morin.1998 at free.fr:

> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
> 
> 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>
> ---

[...]

> -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"
> +     depends on BR2_PREFER_STATIC_LIB

I would like to keep a comment to inform users that an udev provider is
needed to have cec support in xbmc.

Besides that:
Acked-by: Bernd Kuhls <bernd.kuhls@t-online.de>

Regards, Bernd

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

end of thread, other threads:[~2014-07-11 20:20 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-13 23:02 [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 01/20 RFC] package/xbmc: remove spurious build-dependency on udev Yann E. MORIN
2014-07-11 20:14   ` Bernd Kuhls
2014-06-13 23:02 ` [Buildroot] [PATCH 02/20 RFC] support/gen-manual-lists.py: remove unneeded arg in private function Yann E. MORIN
2014-06-15 19:35   ` Samuel Martin
2014-06-13 23:02 ` [Buildroot] [PATCH 03/20 RFC] support/gen-manual-lists.py: bail out early for legacy symbols Yann E. MORIN
2014-06-15 19:38   ` Samuel Martin
2014-06-13 23:02 ` [Buildroot] [PATCH 04/20 RFC] support/gen-manual-lists.py: rework generating the virtual package list Yann E. MORIN
2014-06-15 20:18   ` Samuel Martin
2014-06-15 21:06     ` Yann E. MORIN
2014-06-15 21:28       ` Samuel Martin
2014-06-13 23:02 ` [Buildroot] [PATCH 05/20 RFC] package/eudev: remove the prompt Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 06/20 RFC] package/systemd: remove prompt Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 07/20 RFC] package/libudev: new virtual package Yann E. MORIN
2014-07-11 20:15   ` Bernd Kuhls
2014-06-13 23:02 ` [Buildroot] [PATCH 08/20 RFC] package/eudev: is a provider for libudev Yann E. MORIN
2014-07-11 20:15   ` Bernd Kuhls
2014-06-13 23:02 ` [Buildroot] [PATCH 09/20 RFC] package/systemd: " Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 10/20 RFC] package/eudev: split udev/libudev Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 11/20 RFC] package/libatasmart: needs libudev, not a udev daemon Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 12/20 RFC] package/libcec: " Yann E. MORIN
2014-07-11 20:20   ` Bernd Kuhls
2014-06-13 23:02 ` [Buildroot] [PATCH 13/20 RFC] package/libdrm: can also use only libudev Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 14/20 RFC] package/libinput: needs libudev, not a udev daemon Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 15/20 RFC] package/libusb: " Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 16/20 RFC] package/mesa3d: depends on libudev, not udev Yann E. MORIN
2014-07-11 20:13   ` Bernd Kuhls
2014-06-13 23:02 ` [Buildroot] [PATCH 17/20 RFC] package/vlc: needs libudev, not a udev daemon Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 18/20 RFC] package/weston: " Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 19/20 RFC] package/xdriver_xf86-input-evdev: " Yann E. MORIN
2014-06-13 23:02 ` [Buildroot] [PATCH 20/20 RFC] package/xserver_xorg-server: " Yann E. MORIN
2014-06-14  8:01 ` [Buildroot] [PATCH 0/20 v2 RFC] Introduce libudev (branch yem/libudev) Thomas Petazzoni
2014-06-14 10:05   ` Yann E. MORIN
2014-06-14 10:08     ` Thomas Petazzoni

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.