diff mbox series

tvheadend: add dependency on udev based rootfs creation

Message ID 20171229130604.9897-1-daggs@gmx.com
State Superseded
Headers show
Series tvheadend: add dependency on udev based rootfs creation | expand

Commit Message

Dagg Stompler Dec. 29, 2017, 1:06 p.m. UTC
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is needed for tvheadend inorder
for the program to see usb based DVB cards.

Signed-off-by: Dagg Stompler <daggs@gmx.com>
---
 package/tvheadend/Config.in | 1 +
 1 file changed, 1 insertion(+)

Comments

Thomas Petazzoni Dec. 29, 2017, 1:40 p.m. UTC | #1
Hello,

On Fri, 29 Dec 2017 15:06:04 +0200, Dagg Stompler wrote:
> BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is needed for tvheadend inorder
> for the program to see usb based DVB cards.
> 
> Signed-off-by: Dagg Stompler <daggs@gmx.com>
> ---
>  package/tvheadend/Config.in | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
> index 44a69a27ba..2a497b481d 100644
> --- a/package/tvheadend/Config.in
> +++ b/package/tvheadend/Config.in
> @@ -9,6 +9,7 @@ config BR2_PACKAGE_TVHEADEND
>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
>  	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
>  	depends on BR2_TOOLCHAIN_HAS_SYNC_4
> +	depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV

You should use BR2_PACKAGE_HAS_UDEV instead. Indeed udev can be
provided by either eudev or systemd.

This change will also require a change in the Config.in comment. See
package/dt-utils/Config.in for an example.

Also, does tvheadend needs to link with libudev ? If so, it should have
udev in its <pkg>_DEPENDENCIES. If it doesn't link with libudev, then
I'm not sure to see how udev helps for tvheadend to detect USB DVB
cards.

Best regards,

Thomas
Yann E. MORIN Dec. 29, 2017, 1:55 p.m. UTC | #2
Dagg, All,

On 2017-12-29 15:06 +0200, Dagg Stompler spake thusly:
> BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is needed for tvheadend inorder
> for the program to see usb based DVB cards.

But is it required for other types of cards, like PCI ones?

And what about systems using mdev instead? I've had a system sithout
udev at all, and tvheadend was working perfectly fine for me.

Basically, I don't think we want to add this dependency at all, because
it is not required in my experience.

Regards,
Yann E. MORIN.

> Signed-off-by: Dagg Stompler <daggs@gmx.com>
> ---
>  package/tvheadend/Config.in | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
> index 44a69a27ba..2a497b481d 100644
> --- a/package/tvheadend/Config.in
> +++ b/package/tvheadend/Config.in
> @@ -9,6 +9,7 @@ config BR2_PACKAGE_TVHEADEND
>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
>  	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
>  	depends on BR2_TOOLCHAIN_HAS_SYNC_4
> +	depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
>  	select BR2_PACKAGE_DTV_SCAN_TABLES
>  	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
>  	select BR2_PACKAGE_OPENSSL
> -- 
> 2.15.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Dagg Stompler Dec. 29, 2017, 1:57 p.m. UTC | #3
Greetings Thomas,

> Sent: Friday, December 29, 2017 at 3:40 PM
> From: "Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>
> To: "Dagg Stompler" <daggs@gmx.com>
> Cc: buildroot@buildroot.org
> Subject: Re: [Buildroot] [PATCH] tvheadend: add dependency on udev based rootfs creation
>
> Hello,
> 
> On Fri, 29 Dec 2017 15:06:04 +0200, Dagg Stompler wrote:
> > BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is needed for tvheadend inorder
> > for the program to see usb based DVB cards.
> > 
> > Signed-off-by: Dagg Stompler <daggs@gmx.com>
> > ---
> >  package/tvheadend/Config.in | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
> > index 44a69a27ba..2a497b481d 100644
> > --- a/package/tvheadend/Config.in
> > +++ b/package/tvheadend/Config.in
> > @@ -9,6 +9,7 @@ config BR2_PACKAGE_TVHEADEND
> >  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> >  	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
> >  	depends on BR2_TOOLCHAIN_HAS_SYNC_4
> > +	depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
> 
> You should use BR2_PACKAGE_HAS_UDEV instead. Indeed udev can be
> provided by either eudev or systemd.
does using BR2_PACKAGE_HAS_UDEV means rootfs dev creation will use udev?

> 
> This change will also require a change in the Config.in comment. See
> package/dt-utils/Config.in for an example.
will look into it.

> 
> Also, does tvheadend needs to link with libudev ? If so, it should have
> udev in its <pkg>_DEPENDENCIES. If it doesn't link with libudev, then
> I'm not sure to see how udev helps for tvheadend to detect USB DVB
> cards.
it doesn't, frankly I don't understand it too, I'm wrestling this for 3 weeks now, without udev, tvheadend didn't listed my adapter in the webui.
on the desktop it did, after some thinking I've decided to try building udev and it worked.
maybe Bernd might have some ideas on the matter. 

Dagg.
Dagg Stompler Dec. 29, 2017, 2:02 p.m. UTC | #4
Greetings Yann.

> Sent: Friday, December 29, 2017 at 3:55 PM
> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
> To: "Dagg Stompler" <daggs@gmx.com>
> Cc: buildroot@buildroot.org
> Subject: Re: [Buildroot] [PATCH] tvheadend: add dependency on udev based rootfs creation
>
> Dagg, All,
> 
> On 2017-12-29 15:06 +0200, Dagg Stompler spake thusly:
> > BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is needed for tvheadend inorder
> > for the program to see usb based DVB cards.
> 
> But is it required for other types of cards, like PCI ones?
I don't know, I have an usb adapter on hand, not pci one.

> 
> And what about systems using mdev instead? I've had a system sithout
> udev at all, and tvheadend was working perfectly fine for me.
tried mdev, didn't worked.

> 
> Basically, I don't think we want to add this dependency at all, because
> it is not required in my experience.
without that feature, I'm unable to use tvheadend, maybe it is needed only for usb adapters.
maybe it is a new feature, also, I won't be surprised if it is needed but not checked if the devs take into account that all distros use some from of udev.
I've asked at the tvheadend irc channel but no answer yet.

Dagg.
Thomas Petazzoni Dec. 29, 2017, 2:03 p.m. UTC | #5
Hello,

On Fri, 29 Dec 2017 14:57:59 +0100, daggs wrote:

> > You should use BR2_PACKAGE_HAS_UDEV instead. Indeed udev can be
> > provided by either eudev or systemd.  
> does using BR2_PACKAGE_HAS_UDEV means rootfs dev creation will use udev?

config BR2_PACKAGE_EUDEV
        bool "eudev"
        depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
        depends on BR2_USE_MMU # uses fork()
        depends on BR2_USE_WCHAR # needs C99 compiler
        depends on !BR2_STATIC_LIBS # kmod
        select BR2_PACKAGE_HAS_UDEV

So for the eudev case, BR2_PACKAGE_HAS_UDEV is selected when eudev is
enabled, and eudev can only be enabled when
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is enabled.

For the systemd case:

menuconfig BR2_PACKAGE_SYSTEMD
        bool "systemd"
        depends on BR2_INIT_SYSTEMD
        depends on !BR2_STATIC_LIBS # kmod
        depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
        depends on BR2_USE_MMU # dbus
        select BR2_PACKAGE_HAS_UDEV

So BR2_PACKAGE_HAS_UDEV is selected when systemd is enabled, which is
only possible when systemd is the init system.

Bottom line: as soon as systemd is the init system *or* eudev is used
at the dev management method, you are guaranteed that
BR2_PACKAGE_HAS_UDEV=y.

> > Also, does tvheadend needs to link with libudev ? If so, it should have
> > udev in its <pkg>_DEPENDENCIES. If it doesn't link with libudev, then
> > I'm not sure to see how udev helps for tvheadend to detect USB DVB
> > cards.  
> it doesn't, frankly I don't understand it too, I'm wrestling this for 3 weeks now, without udev, tvheadend didn't listed my adapter in the webui.
> on the desktop it did, after some thinking I've decided to try building udev and it worked.
> maybe Bernd might have some ideas on the matter. 

This is a somewhat weak understanding of what's happening here. I think
we need a better understanding of what's going on rather than
more-or-less randomly adding a dependency.

Thomas
Dagg Stompler Dec. 29, 2017, 2:27 p.m. UTC | #6
Greetings Thomas,

> Sent: Friday, December 29, 2017 at 4:03 PM
> From: "Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>
> To: daggs <daggs@gmx.com>
> Cc: buildroot@buildroot.org, "Bernd Kuhls" <bernd.kuhls@t-online.de>
> Subject: Re: [Buildroot] [PATCH] tvheadend: add dependency on udev based rootfs creation
>
> Hello,
> 
> On Fri, 29 Dec 2017 14:57:59 +0100, daggs wrote:
> 
> > > You should use BR2_PACKAGE_HAS_UDEV instead. Indeed udev can be
> > > provided by either eudev or systemd.  
> > does using BR2_PACKAGE_HAS_UDEV means rootfs dev creation will use udev?
> 
> config BR2_PACKAGE_EUDEV
>         bool "eudev"
>         depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
>         depends on BR2_USE_MMU # uses fork()
>         depends on BR2_USE_WCHAR # needs C99 compiler
>         depends on !BR2_STATIC_LIBS # kmod
>         select BR2_PACKAGE_HAS_UDEV
> 
> So for the eudev case, BR2_PACKAGE_HAS_UDEV is selected when eudev is
> enabled, and eudev can only be enabled when
> BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is enabled.
> 
> For the systemd case:
> 
> menuconfig BR2_PACKAGE_SYSTEMD
>         bool "systemd"
>         depends on BR2_INIT_SYSTEMD
>         depends on !BR2_STATIC_LIBS # kmod
>         depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
>         depends on BR2_USE_MMU # dbus
>         select BR2_PACKAGE_HAS_UDEV
> 
> So BR2_PACKAGE_HAS_UDEV is selected when systemd is enabled, which is
> only possible when systemd is the init system.
> 
> Bottom line: as soon as systemd is the init system *or* eudev is used
> at the dev management method, you are guaranteed that
> BR2_PACKAGE_HAS_UDEV=y.
ok, I'll look into it.

> 
> > > Also, does tvheadend needs to link with libudev ? If so, it should have
> > > udev in its <pkg>_DEPENDENCIES. If it doesn't link with libudev, then
> > > I'm not sure to see how udev helps for tvheadend to detect USB DVB
> > > cards.  
> > it doesn't, frankly I don't understand it too, I'm wrestling this for 3 weeks now, without udev, tvheadend didn't listed my adapter in the webui.
> > on the desktop it did, after some thinking I've decided to try building udev and it worked.
> > maybe Bernd might have some ideas on the matter. 
> 
> This is a somewhat weak understanding of what's happening here. I think
> we need a better understanding of what's going on rather than
> more-or-less randomly adding a dependency.
for that I need either time to look into the code or an answer from the devs, time I don't have unfortunately, devs aren't responding yet.
I encountered the issue and was able to get it to work, I assume that others might have seen it and didn't had time to look into it.
also as said, maybe Bernd knows what is the issue here and can propose a better fix.

Dagg.
Dagg Stompler Dec. 30, 2017, 6:48 a.m. UTC | #7
Greetings Thomas,

>
> Greetings Thomas,
> 
> > Sent: Friday, December 29, 2017 at 4:03 PM
> > From: "Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>
> > To: daggs <daggs@gmx.com>
> > Cc: buildroot@buildroot.org, "Bernd Kuhls" <bernd.kuhls@t-online.de>
> > Subject: Re: [Buildroot] [PATCH] tvheadend: add dependency on udev based rootfs creation
> >
> > Hello,
> > 
> > On Fri, 29 Dec 2017 14:57:59 +0100, daggs wrote:
> > 
> > > > You should use BR2_PACKAGE_HAS_UDEV instead. Indeed udev can be
> > > > provided by either eudev or systemd.  
> > > does using BR2_PACKAGE_HAS_UDEV means rootfs dev creation will use udev?
> > 
> > config BR2_PACKAGE_EUDEV
> >         bool "eudev"
> >         depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
> >         depends on BR2_USE_MMU # uses fork()
> >         depends on BR2_USE_WCHAR # needs C99 compiler
> >         depends on !BR2_STATIC_LIBS # kmod
> >         select BR2_PACKAGE_HAS_UDEV
> > 
> > So for the eudev case, BR2_PACKAGE_HAS_UDEV is selected when eudev is
> > enabled, and eudev can only be enabled when
> > BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is enabled.
> > 
> > For the systemd case:
> > 
> > menuconfig BR2_PACKAGE_SYSTEMD
> >         bool "systemd"
> >         depends on BR2_INIT_SYSTEMD
> >         depends on !BR2_STATIC_LIBS # kmod
> >         depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
> >         depends on BR2_USE_MMU # dbus
> >         select BR2_PACKAGE_HAS_UDEV
> > 
> > So BR2_PACKAGE_HAS_UDEV is selected when systemd is enabled, which is
> > only possible when systemd is the init system.
> > 
> > Bottom line: as soon as systemd is the init system *or* eudev is used
> > at the dev management method, you are guaranteed that
> > BR2_PACKAGE_HAS_UDEV=y.
> ok, I'll look into it.
> 
> > 
> > > > Also, does tvheadend needs to link with libudev ? If so, it should have
> > > > udev in its <pkg>_DEPENDENCIES. If it doesn't link with libudev, then
> > > > I'm not sure to see how udev helps for tvheadend to detect USB DVB
> > > > cards.  
> > > it doesn't, frankly I don't understand it too, I'm wrestling this for 3 weeks now, without udev, tvheadend didn't listed my adapter in the webui.
> > > on the desktop it did, after some thinking I've decided to try building udev and it worked.
> > > maybe Bernd might have some ideas on the matter. 
> > 
> > This is a somewhat weak understanding of what's happening here. I think
> > we need a better understanding of what's going on rather than
> > more-or-less randomly adding a dependency.
> for that I need either time to look into the code or an answer from the devs, time I don't have unfortunately, devs aren't responding yet.
> I encountered the issue and was able to get it to work, I assume that others might have seen it and didn't had time to look into it.
> also as said, maybe Bernd knows what is the issue here and can propose a better fix.
> 
I did a quick search on the tvheadend repo for udev, one hit poped up: https://github.com/tvheadend/tvheadend/blob/master/debian/tvheadend.init
it seems that they do depend on udev when the boot system isn't systemd, am I correct?

Dagg.
diff mbox series

Patch

diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
index 44a69a27ba..2a497b481d 100644
--- a/package/tvheadend/Config.in
+++ b/package/tvheadend/Config.in
@@ -9,6 +9,7 @@  config BR2_PACKAGE_TVHEADEND
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
+	depends on BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV
 	select BR2_PACKAGE_DTV_SCAN_TABLES
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_OPENSSL