Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [pull request v3] Pull request for branch yem-root-passwd
From: Yann E. MORIN @ 2012-12-28 21:20 UTC (permalink / raw)
  To: buildroot

Hello All!

This is iteration #3 for setting the root password from the configuration
menu:
  - first patch adds the basic functionality:
    - plain text password in menuconfig
    - MD5-encrypted in /etc/shadow
  - second patch adds additional encryption methods

There has been previous review of this series by Arnout, who suggested
dropping patch #2, and only use an MD5-encrypted password. Since MD5 is now
considered to be a weak hash, stronger alternatives may be usefull for the
security-conscious lurking among us. That's why I kept (resurrected) that
second patch.

Arnout also objected to having the root password in clear in the .config,
and recommended that the user enters the already-encrypted password. That
has, IMHO, a few drawbacks, in that it requires the user actually _reads_
the help text, switch to an alternate terminal, generates a password, and
copy-pastes it back in the initial terminal with the menuconfig. OTOH, if
the user forgets his/her password, he/she can recover it by looking at the
.config file. That's why I still advocates for entering a clear-text
password in the menuconfig.

Any more comments are welcome!

The following changes since commit 4848386446b937d4d0d9d3e9489932ca3fcb1003:

  libffi: fix mips build failures (2012-12-28 16:55:09 +0100)

are available in the git repository at:
  git://gitorious.org/buildroot/buildroot.git yem-root-passwd

Yann E. MORIN (2):
      target: add option to set the root password
      target: add different methods to encode the root password

 support/dependencies/dependencies.sh |    9 +++++
 system/Config.in                     |   67 ++++++++++++++++++++++++++++++++++
 system/system.mk                     |   15 ++++++++
 3 files changed, 91 insertions(+), 0 deletions(-)

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

* [Buildroot] [PATCH 1/2] target: add option to set the root password
From: Yann E. MORIN @ 2012-12-28 21:20 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <cover.1356728899.git.yann.morin.1998@free.fr>

Add an option in the menuconfig to specify a root password.

If set to empty, no root password is created; otherwise, the password is
encrypted using MD5 (MD5 is not the default for crypt(3), DES-56 is, but
MD5 is widely available, not-so-strong, but not-so-weak either).

Add a check for 'mkpasswd' as a new dependency.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
---
Switched to using MD5 as per Arnout's suggestion:
    http://lists.busybox.net/pipermail/buildroot/2012-September/058712.html
---
 support/dependencies/dependencies.sh |    9 +++++++++
 system/Config.in                     |   21 +++++++++++++++++++++
 system/system.mk                     |   14 ++++++++++++++
 3 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
index 7a02512..c86a5d0 100755
--- a/support/dependencies/dependencies.sh
+++ b/support/dependencies/dependencies.sh
@@ -158,6 +158,7 @@ if grep ^BR2_TOOLCHAIN_BUILDROOT=y $CONFIG_FILE > /dev/null && \
        exit 1 ;
    fi
 fi
+
 if grep -q ^BR2_PACKAGE_CLASSPATH=y $CONFIG_FILE ; then
     for prog in javac jar; do
 	if ! which $prog > /dev/null ; then
@@ -166,3 +167,11 @@ if grep -q ^BR2_PACKAGE_CLASSPATH=y $CONFIG_FILE ; then
 	fi
     done
 fi
+
+if grep -E '^TARGET_GENERIC_ROOT_PASSWD=".+"$' $CONFIG_FILE > /dev/null 2>&1; then
+    if ! which mkpasswd > /dev/null 2>&1; then
+        /bin/echo -e "\nYou need the 'mkpasswd' utility to set the root password\n"
+        exit 1
+    fi
+
+fi
diff --git a/system/Config.in b/system/Config.in
index a557ea0..deead86 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -12,6 +12,27 @@ config BR2_TARGET_GENERIC_ISSUE
        help
          Select system banner (/etc/issue) to be displayed at login.
 
+config BR2_TARGET_GENERIC_ROOT_PASSWD
+	string "root password"
+	default ""
+	help
+	  Set the initial root password (in clear). It will be md5-encrypted.
+	  
+	  If set to empty (the default), then no root password will be set,
+	  and root will need no password to log in.
+	  
+	  WARNING! WARNING!
+	  Although pretty strong, MD5 is now an old hash function, and
+	  suffers from som weaknesses, which makes it susceptible to attacks.
+	  It is showing its age, so this root password should not be trusted
+	  to properly secure any product that can be shipped to the wide,
+	  hostile world.
+	  
+	  WARNING! WARNING!
+	  The password appears in clear in the .config file, and may appear
+	  in the build log! Avoid using a valuable password if either the
+	  .config file or the build log may be distributed!
+
 choice
 	prompt "/dev management"
 	default BR2_ROOTFS_DEVICE_CREATION_STATIC
diff --git a/system/system.mk b/system/system.mk
index 353d0ba..a23feef 100644
--- a/system/system.mk
+++ b/system/system.mk
@@ -1,5 +1,6 @@
 TARGET_GENERIC_HOSTNAME:=$(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME))
 TARGET_GENERIC_ISSUE:=$(call qstrip,$(BR2_TARGET_GENERIC_ISSUE))
+TARGET_GENERIC_ROOT_PASSWD:=$(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD))
 TARGET_GENERIC_GETTY:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT))
 TARGET_GENERIC_GETTY_BAUDRATE:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE))
 TARGET_GENERIC_GETTY_TERM:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM))
@@ -14,6 +15,13 @@ target-generic-issue:
 	mkdir -p $(TARGET_DIR)/etc
 	echo "$(TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue
 
+target-no-root-passwd:
+	$(SED) "s/^root:[^:]*:/root::/" $(TARGET_DIR)/etc/shadow
+
+target-root-passwd:
+	root_passwd="$$( mkpasswd -m md5 "$(TARGET_GENERIC_ROOT_PASSWD)" )"; \
+	$(SED) "s,^root::,root:$${root_passwd}:," $(TARGET_DIR)/etc/shadow
+
 target-generic-getty-busybox:
 	$(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \
 		$(TARGET_DIR)/etc/inittab
@@ -40,6 +48,12 @@ ifneq ($(TARGET_GENERIC_ISSUE),)
 TARGETS += target-generic-issue
 endif
 
+ifneq ($(TARGET_GENERIC_ROOT_PASSWD),)
+TARGETS += target-root-passwd
+else
+TARGETS += target-no-root-passwd
+endif
+
 ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y)
 ifeq ($(BR2_PACKAGE_SYSVINIT),y)
 TARGETS += target-generic-getty-sysvinit
-- 
1.7.2.5

^ permalink raw reply related

* [Buildroot] [PATCH 2/2] target: add different methods to encode the root password
From: Yann E. MORIN @ 2012-12-28 21:20 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <cover.1356728899.git.yann.morin.1998@free.fr>

The password can be encoded in different ways (from the weakest
to the strongest): des, md5, sha-256, sha-512

Add a choice entry to select the method, defaulting to 'md5'.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 system/Config.in |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 system/system.mk |    3 ++-
 2 files changed, 48 insertions(+), 1 deletions(-)

diff --git a/system/Config.in b/system/Config.in
index deead86..2c90e8a 100644
--- a/system/Config.in
+++ b/system/Config.in
@@ -34,6 +34,52 @@ config BR2_TARGET_GENERIC_ROOT_PASSWD
 	  .config file or the build log may be distributed!
 
 choice
+	bool "root password encoding"
+	depends on BR2_TARGET_GENERIC_ROOT_PASSWD != ""
+	default BR2_TARGET_GENERIC_ROOT_PASSWD_MD5
+
+config BR2_TARGET_GENERIC_ROOT_PASSWD_DES
+	bool "des"
+	help
+	  Use standard 56-bit DES-based crypt(3).
+	  
+	  Old, wildly available, but also the weakest.
+
+config BR2_TARGET_GENERIC_ROOT_PASSWD_MD5
+	bool "md5"
+	help
+	  Use MD5 to encode the password.
+	  
+	  The default, wildly available, and pretty good.
+
+config BR2_TARGET_GENERIC_ROOT_PASSWD_SHA256
+	bool "sha-256"
+	help
+	  Use SHA256 to encode the password.
+	  
+	  Very strong, but not ubiquitous, although available in glibc
+	  for some time now. Choose only if you are sure your C library
+	  understands SHA256 passwords.
+
+config BR2_TARGET_GENERIC_ROOT_PASSWD_SHA512
+	bool "sha-512"
+	help
+	  Use SHA512 to encode the password.
+	  
+	  Extremely strong, but not ubiquitous, although available in glibc
+	  for some time now. Choose only if you are sure your C library
+	  understands SHA512 passwords.
+
+endchoice # root passwd encoding
+
+config BR2_TARGET_GENERIC_ROOT_PASSWD_METHOD
+	string
+	default "des"       if BR2_TARGET_GENERIC_ROOT_PASSWD_DES
+	default "md5"       if BR2_TARGET_GENERIC_ROOT_PASSWD_MD5
+	default "sha-256"   if BR2_TARGET_GENERIC_ROOT_PASSWD_SHA256
+	default "sha-512"   if BR2_TARGET_GENERIC_ROOT_PASSWD_SHA512
+
+choice
 	prompt "/dev management"
 	default BR2_ROOTFS_DEVICE_CREATION_STATIC
 
diff --git a/system/system.mk b/system/system.mk
index a23feef..f5a8310 100644
--- a/system/system.mk
+++ b/system/system.mk
@@ -1,6 +1,7 @@
 TARGET_GENERIC_HOSTNAME:=$(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME))
 TARGET_GENERIC_ISSUE:=$(call qstrip,$(BR2_TARGET_GENERIC_ISSUE))
 TARGET_GENERIC_ROOT_PASSWD:=$(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD))
+TARGET_GENERIC_ROOT_PASSWD_METHOD:=$(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD_METHOD))
 TARGET_GENERIC_GETTY:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT))
 TARGET_GENERIC_GETTY_BAUDRATE:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE))
 TARGET_GENERIC_GETTY_TERM:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM))
@@ -19,7 +20,7 @@ target-no-root-passwd:
 	$(SED) "s/^root:[^:]*:/root::/" $(TARGET_DIR)/etc/shadow
 
 target-root-passwd:
-	root_passwd="$$( mkpasswd -m md5 "$(TARGET_GENERIC_ROOT_PASSWD)" )"; \
+	root_passwd="$$( mkpasswd -m "$(TARGET_GENERIC_ROOT_PASSWD_METHOD)" "$(TARGET_GENERIC_ROOT_PASSWD)" )"; \
 	$(SED) "s,^root::,root:$${root_passwd}:," $(TARGET_DIR)/etc/shadow
 
 target-generic-getty-busybox:
-- 
1.7.2.5

^ permalink raw reply related

* [Buildroot] [pull request] Pull request for branch yem-tvheadend
From: Yann E. MORIN @ 2012-12-28 21:26 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <cover.1356719913.git.yann.morin.1998@free.fr>

Hello All!

On Friday 28 December 2012 Yann E. MORIN wrote:
> Here's a short series to add TVHeadend.

After Thomas' review, I've pushed an updated series, to be pulled from
the same location.

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

* [Buildroot] [git commit] network-manager: needs libgcrypt
From: Peter Korsgaard @ 2012-12-28 21:26 UTC (permalink / raw)
  To: buildroot

commit: http://git.buildroot.net/buildroot/commit/?id=ecb73fbe0ced07034dc637eff4653f732e7487b3
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Since we moved to gnutls 3.x series which doesn't use libgcrypt we need
to pull it in as a dependency to avoid build breakage.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 package/network-manager/Config.in          |    1 +
 package/network-manager/network-manager.mk |    3 ++-
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/package/network-manager/Config.in b/package/network-manager/Config.in
index f2544da..9b84083 100644
--- a/package/network-manager/Config.in
+++ b/package/network-manager/Config.in
@@ -11,6 +11,7 @@ config BR2_PACKAGE_NETWORK_MANAGER
 	select BR2_PACKAGE_UDEV
 	select BR2_PACKAGE_UDEV_ALL_EXTRAS
 	select BR2_PACKAGE_GNUTLS
+	select BR2_PACKAGE_LIBGCRYPT
 	select BR2_PACKAGE_LIBNL
 	select BR2_PACKAGE_UTIL_LINUX
 	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
diff --git a/package/network-manager/network-manager.mk b/package/network-manager/network-manager.mk
index d14c98d..2a68c96 100644
--- a/package/network-manager/network-manager.mk
+++ b/package/network-manager/network-manager.mk
@@ -7,7 +7,8 @@ NETWORK_MANAGER_VERSION = 0.9.2.0
 NETWORK_MANAGER_SOURCE = NetworkManager-$(NETWORK_MANAGER_VERSION).tar.bz2
 NETWORK_MANAGER_SITE = http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/0.9/
 NETWORK_MANAGER_INSTALL_STAGING = YES
-NETWORK_MANAGER_DEPENDENCIES = host-pkgconf udev dbus-glib libnl wireless_tools gnutls util-linux
+NETWORK_MANAGER_DEPENDENCIES = host-pkgconf udev dbus-glib libnl gnutls \
+	libgcrypt wireless_tools util-linux
 
 NETWORK_MANAGER_CONF_ENV = \
 	ac_cv_path_LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config

^ permalink raw reply related

* [Buildroot] [PATCH 1/2] target: add option to set the root password
From: Thomas Petazzoni @ 2012-12-28 21:26 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <751d161336cd6e35187e2faa67f456335908222c.1356728899.git.yann.morin.1998@free.fr>

Dear Yann E. MORIN,

On Fri, 28 Dec 2012 22:20:53 +0100, Yann E. MORIN wrote:
> Add an option in the menuconfig to specify a root password.
> 
> If set to empty, no root password is created; otherwise, the password is
> encrypted using MD5 (MD5 is not the default for crypt(3), DES-56 is, but
> MD5 is widely available, not-so-strong, but not-so-weak either).
> 
> Add a check for 'mkpasswd' as a new dependency.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> ---
> Switched to using MD5 as per Arnout's suggestion:
>     http://lists.busybox.net/pipermail/buildroot/2012-September/058712.html
> ---
>  support/dependencies/dependencies.sh |    9 +++++++++
>  system/Config.in                     |   21 +++++++++++++++++++++
>  system/system.mk                     |   14 ++++++++++++++
>  3 files changed, 44 insertions(+), 0 deletions(-)
> 
> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> index 7a02512..c86a5d0 100755
> --- a/support/dependencies/dependencies.sh
> +++ b/support/dependencies/dependencies.sh
> @@ -158,6 +158,7 @@ if grep ^BR2_TOOLCHAIN_BUILDROOT=y $CONFIG_FILE > /dev/null && \
>         exit 1 ;
>     fi
>  fi
> +
>  if grep -q ^BR2_PACKAGE_CLASSPATH=y $CONFIG_FILE ; then
>      for prog in javac jar; do
>  	if ! which $prog > /dev/null ; then
> @@ -166,3 +167,11 @@ if grep -q ^BR2_PACKAGE_CLASSPATH=y $CONFIG_FILE ; then
>  	fi
>      done
>  fi
> +
> +if grep -E '^TARGET_GENERIC_ROOT_PASSWD=".+"$' $CONFIG_FILE > /dev/null 2>&1; then

I guess it should be BR2_TARGET_GENERIC_ROOT_PASSWD since you have a ^
at the beginning of the regexp.

> +    if ! which mkpasswd > /dev/null 2>&1; then
> +        /bin/echo -e "\nYou need the 'mkpasswd' utility to set the root password\n"

Also mention that mkpasswd is typically bundled within the whois
package in distros (at least in Debian/Ubuntu), because it may not be
very obvious.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply

* [Buildroot] [git commit] connman: bump to version 1.10
From: Peter Korsgaard @ 2012-12-28 21:26 UTC (permalink / raw)
  To: buildroot

commit: http://git.buildroot.net/buildroot/commit/?id=6fcb68511e317650b028a911b8fcd7bd241fd89b
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 package/connman/connman.mk |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/package/connman/connman.mk b/package/connman/connman.mk
index 2c376c9..73ea70d 100644
--- a/package/connman/connman.mk
+++ b/package/connman/connman.mk
@@ -4,10 +4,12 @@
 #
 #######################################################
 
-CONNMAN_VERSION = 1.9
+CONNMAN_VERSION = 1.10
 CONNMAN_SITE = $(BR2_KERNEL_MIRROR)/linux/network/connman/
 CONNMAN_DEPENDENCIES = libglib2 dbus iptables gnutls
 CONNMAN_INSTALL_STAGING = YES
+CONNMAN_LICENSE = GPLv2
+CONNMAN_LICENSE_FILES = COPYING
 CONNMAN_CONF_OPT += --localstatedir=/var \
 	$(if $(BR2_PACKAGE_CONNMAN_THREADS),--enable-threads,--disable-threads)		\
 	$(if $(BR2_PACKAGE_CONNMAN_DEBUG),--enable-debug,--disable-debug)		\

^ permalink raw reply related

* [Buildroot] [PATCH 1/7] gnutls: bump to version 3.1.5
From: Peter Korsgaard @ 2012-12-28 21:27 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <1356724043-8879-1-git-send-email-gustavo@zacarias.com.ar>

>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:

 Gustavo> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>

Committed series, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply

* [Buildroot] [git commit] nettle: add license info
From: Peter Korsgaard @ 2012-12-28 21:28 UTC (permalink / raw)
  To: buildroot

commit: http://git.buildroot.net/buildroot/commit/?id=761ae9c3e13da753318851c4c71ab7fc8aa5a9db
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 package/nettle/nettle.mk |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/package/nettle/nettle.mk b/package/nettle/nettle.mk
index ef7640a..ae09ecc 100644
--- a/package/nettle/nettle.mk
+++ b/package/nettle/nettle.mk
@@ -2,6 +2,8 @@ NETTLE_VERSION = 2.5
 NETTLE_SITE = http://www.lysator.liu.se/~nisse/archive
 NETTLE_DEPENDENCIES = gmp
 NETTLE_INSTALL_STAGING = YES
+NETTLE_LICENSE = LGPLv2.1+
+NETTLE_LICENSE_FILES = COPYING.LIB
 
 define NETTLE_DITCH_DEBUGGING_CFLAGS
 	$(SED) '/CFLAGS/ s/ -ggdb3//' $(@D)/configure

^ permalink raw reply related

* [Buildroot] [PATCH] nettle: add license info
From: Peter Korsgaard @ 2012-12-28 21:28 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <1356727193-9272-1-git-send-email-gustavo@zacarias.com.ar>

>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:

 Gustavo> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply

* [Buildroot] [pull request] Pull request for branch yem-tvheadend
From: Peter Korsgaard @ 2012-12-28 21:34 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <201212282226.18134.yann.morin.1998@free.fr>

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

 Yann> Hello All!
 Yann> On Friday 28 December 2012 Yann E. MORIN wrote:
 >> Here's a short series to add TVHeadend.

 Yann> After Thomas' review, I've pushed an updated series, to be pulled from
 Yann> the same location.

It's a short series, could you please resend it (easier for review).

-- 
Bye, Peter Korsgaard

^ permalink raw reply

* [Buildroot] [git commit] xserver_xorg-server: fix build on AArch64
From: Peter Korsgaard @ 2012-12-28 21:45 UTC (permalink / raw)
  To: buildroot

commit: http://git.buildroot.net/buildroot/commit/?id=695edcbabe5919fe52b593553c409e7ad9a4af83
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Fixes the following build issue:

Making all in fb
  CC     libfb_la-fb24_32.lo
In file included from fb24_32.c:30:0:
fb.h:98:2: error: #error "GLYPHPADBYTES must be 4"

See:

 http://autobuild.buildroot.org/results/9135238abcde29918f8cb61002f1fb9279884a47/build-end.log

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 .../xserver_xorg-server-aarch64-support.patch      |   23 ++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/package/x11r7/xserver_xorg-server/xserver_xorg-server-aarch64-support.patch b/package/x11r7/xserver_xorg-server/xserver_xorg-server-aarch64-support.patch
new file mode 100644
index 0000000..ec497c8
--- /dev/null
+++ b/package/x11r7/xserver_xorg-server/xserver_xorg-server-aarch64-support.patch
@@ -0,0 +1,23 @@
+Add necessary definitions for AArch64
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: xserver_xorg-server-1.9.4/include/servermd.h
+===================================================================
+--- xserver_xorg-server-1.9.4.orig/include/servermd.h	2009-11-04 20:31:46.000000000 +0100
++++ xserver_xorg-server-1.9.4/include/servermd.h	2012-12-28 18:16:55.000000000 +0100
+@@ -68,6 +68,14 @@
+  * GLYPHPADBYTES is used.
+  */
+ 
++#ifdef __aarch64__
++
++# define IMAGE_BYTE_ORDER	LSBFirst
++# define BITMAP_BIT_ORDER       LSBFirst
++# define GLYPHPADBYTES		4
++
++#endif
++
+ #ifdef __avr32__
+ 
+ #define IMAGE_BYTE_ORDER        MSBFirst

^ permalink raw reply related

* [Buildroot] [PATCH 1/2] xserver_xorg-server: fix build on AArch64
From: Peter Korsgaard @ 2012-12-28 21:46 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <1356727276-13075-1-git-send-email-thomas.petazzoni@free-electrons.com>

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Fixes the following build issue:
 Thomas> Making all in fb
 Thomas>   CC     libfb_la-fb24_32.lo
 Thomas> In file included from fb24_32.c:30:0:
 Thomas> fb.h:98:2: error: #error "GLYPHPADBYTES must be 4"

Committed, thanks.

Don't forget to send patch upstream.

-- 
Bye, Peter Korsgaard

^ permalink raw reply

* [Buildroot] [git commit] diffutils: fix build with recent glibc
From: Peter Korsgaard @ 2012-12-28 21:47 UTC (permalink / raw)
  To: buildroot

commit: http://git.buildroot.net/buildroot/commit/?id=653d64c5094d34ade03d0c30ead151ac9223edbd
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Fixes the following build problem with recent toolchains:

In file included from exclude.c:31:0:
./stdio.h:1012:1: error: 'gets' undeclared here (not in a function)
  CC       hard-locale.o
make[4]: *** [exclude.o] Error 1
make[4]: *** Waiting for unfinished jobs....
In file included from stdio-safer.h:20:0,
                 from freopen-safer.c:22:
./stdio.h:1012:1: error: 'gets' undeclared here (not in a function)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 ...tils-gets-no-longer-exists-in-eglibc-2.16.patch |   26 ++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/package/diffutils/diffutils-gets-no-longer-exists-in-eglibc-2.16.patch b/package/diffutils/diffutils-gets-no-longer-exists-in-eglibc-2.16.patch
new file mode 100644
index 0000000..4785718
--- /dev/null
+++ b/package/diffutils/diffutils-gets-no-longer-exists-in-eglibc-2.16.patch
@@ -0,0 +1,26 @@
+Handle the fact that gets() no longer exists in glibc >= 2.16
+
+The problem has been fixed upstream, but no release containing the fix
+has been made so far.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/lib/stdio.in.h
+===================================================================
+--- a/lib/stdio.in.h
++++ b/lib/stdio.in.h
+@@ -693,12 +693,14 @@
+ _GL_CXXALIAS_SYS (gets, char *, (char *s));
+ #  undef gets
+ # endif
++# if defined gets
+ _GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+ #endif
++#endif
+ 
+ 
+ #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@

^ permalink raw reply related

* [Buildroot] [PATCH 2/2] diffutils: fix build with recent glibc
From: Peter Korsgaard @ 2012-12-28 21:47 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <1356727282-13118-1-git-send-email-thomas.petazzoni@free-electrons.com>

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Fixes the following build problem with recent toolchains:
 Thomas> In file included from exclude.c:31:0:
 Thomas> ./stdio.h:1012:1: error: 'gets' undeclared here (not in a function)
 Thomas>   CC       hard-locale.o
 Thomas> make[4]: *** [exclude.o] Error 1
 Thomas> make[4]: *** Waiting for unfinished jobs....
 Thomas> In file included from stdio-safer.h:20:0,
 Thomas>                  from freopen-safer.c:22:
 Thomas> ./stdio.h:1012:1: error: 'gets' undeclared here (not in a function)

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply

* [Buildroot] [pull request] Pull request for branch yem-tvheadend
From: Yann E. MORIN @ 2012-12-28 21:48 UTC (permalink / raw)
  To: buildroot

Hello All!

Here's a short series to add TVHeadend.

TVHeadend implements a PVR/DVR solution, which can record either from
a broadcast tunner (DVB-{T,S,C}, or ATSC), or IPTV multicast streams.

TVHeadend can be used as a backend by media centers, such as XBMC, or
it can be used stand-alone.

Changes v2 -> v3:
  - fixed copy-paste and indentation (Thomas)
  - added desc to tvheadend patch (Thomas)
Changes v1 -> v2:
  - got rid of tvheadend user (Peter)
  - added dvb-apps package, get rid of cutom download (Thomas)

The following changes since commit 4848386446b937d4d0d9d3e9489932ca3fcb1003:

  libffi: fix mips build failures (2012-12-28 16:55:09 +0100)

are available in the git repository at:
  git://gitorious.org/buildroot/buildroot.git yem-tvheadend

Yann E. MORIN (2):
      package/dvb-apps: new package
      package/tvheadend: new package

 package/Config.in                                  |    1 +
 package/dvb-apps/dvb-apps.mk                       |   32 ++++++++++
 package/tvheadend/Config.in                        |   19 ++++++
 package/tvheadend/S99tvheadend                     |   54 ++++++++++++++++++
 package/tvheadend/accesscontrol.1                  |   13 ++++
 package/tvheadend/etc.default.tvheadend            |    7 ++
 .../tvheadend-no-auto-download-dvbscans.patch      |   60 ++++++++++++++++++++
 package/tvheadend/tvheadend.mk                     |   43 ++++++++++++++
 8 files changed, 229 insertions(+), 0 deletions(-)
 create mode 100644 package/dvb-apps/dvb-apps.mk
 create mode 100644 package/tvheadend/Config.in
 create mode 100644 package/tvheadend/S99tvheadend
 create mode 100644 package/tvheadend/accesscontrol.1
 create mode 100644 package/tvheadend/etc.default.tvheadend
 create mode 100644 package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
 create mode 100644 package/tvheadend/tvheadend.mk

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

* [Buildroot] [PATCH 1/2] package/dvb-apps: new package
From: Yann E. MORIN @ 2012-12-28 21:48 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <cover.1356731295.git.yann.morin.1998@free.fr>

We just need the transponders data, so we just install those.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/dvb-apps/dvb-apps.mk |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)
 create mode 100644 package/dvb-apps/dvb-apps.mk

diff --git a/package/dvb-apps/dvb-apps.mk b/package/dvb-apps/dvb-apps.mk
new file mode 100644
index 0000000..1109d94
--- /dev/null
+++ b/package/dvb-apps/dvb-apps.mk
@@ -0,0 +1,32 @@
+#############################################################
+#
+# dvb-apps
+#
+#############################################################
+
+DVB_APPS_VERSION        = 3fc7dfa68484
+DVB_APPS_SOURCE         = dvb-apps-$(DVB_APPS_VERSION).tar.bz2
+DVB_APPS_SITE           = http://linuxtv.org/hg/dvb-apps/archive/
+
+# We just install the transponders data. As this is not a 'work' as per
+# traditional copyright, but just a collection of 'facts', there's probably
+# no license to apply to these data files.
+# To be noted however, is that the dvb-apps package bundles a copy of the
+# GPLv2 and a copy of the LGPLv2.1, and that some of the source files refer
+# to either the GPLv2+ or the LGPLv2.1+.
+# But since we do not use any of those source files, their license do not
+# apply to us.
+DVB_APPS_LICENSE        = unknown (probably public domain)
+
+define DVB_APPS_INSTALL_TARGET_CMDS
+	mkdir -p $(TARGET_DIR)/usr/share/dvb-apps/scan/atsc
+	mkdir -p $(TARGET_DIR)/usr/share/dvb-apps/scan/dvb-c
+	mkdir -p $(TARGET_DIR)/usr/share/dvb-apps/scan/dvb-s
+	mkdir -p $(TARGET_DIR)/usr/share/dvb-apps/scan/dvb-t
+	$(INSTALL) -D $(@D)/util/scan/atsc/* $(TARGET_DIR)/usr/share/dvb-apps/scan/atsc
+	$(INSTALL) -D $(@D)/util/scan/dvb-c/* $(TARGET_DIR)/usr/share/dvb-apps/scan/dvb-c
+	$(INSTALL) -D $(@D)/util/scan/dvb-s/* $(TARGET_DIR)/usr/share/dvb-apps/scan/dvb-s
+	$(INSTALL) -D $(@D)/util/scan/dvb-t/* $(TARGET_DIR)/usr/share/dvb-apps/scan/dvb-t
+endef
+
+$(eval $(generic-package))
-- 
1.7.2.5

^ permalink raw reply related

* [Buildroot] [PATCH 2/2] package/tvheadend: new package
From: Yann E. MORIN @ 2012-12-28 21:48 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <cover.1356731295.git.yann.morin.1998@free.fr>

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in                                  |    1 +
 package/tvheadend/Config.in                        |   19 ++++++
 package/tvheadend/S99tvheadend                     |   54 ++++++++++++++++++
 package/tvheadend/accesscontrol.1                  |   13 ++++
 package/tvheadend/etc.default.tvheadend            |    7 ++
 .../tvheadend-no-auto-download-dvbscans.patch      |   60 ++++++++++++++++++++
 package/tvheadend/tvheadend.mk                     |   43 ++++++++++++++
 7 files changed, 197 insertions(+), 0 deletions(-)
 create mode 100644 package/tvheadend/Config.in
 create mode 100644 package/tvheadend/S99tvheadend
 create mode 100644 package/tvheadend/accesscontrol.1
 create mode 100644 package/tvheadend/etc.default.tvheadend
 create mode 100644 package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
 create mode 100644 package/tvheadend/tvheadend.mk

diff --git a/package/Config.in b/package/Config.in
index 3d556b2..bcf0009 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -682,6 +682,7 @@ source "package/tinyhttpd/Config.in"
 source "package/tn5250/Config.in"
 source "package/transmission/Config.in"
 source "package/ttcp/Config.in"
+source "package/tvheadend/Config.in"
 source "package/udpcast/Config.in"
 source "package/ulogd/Config.in"
 source "package/ushare/Config.in"
diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
new file mode 100644
index 0000000..944e31e
--- /dev/null
+++ b/package/tvheadend/Config.in
@@ -0,0 +1,19 @@
+comment "tvheadend requires a toolchain with LARGEFILE support"
+    depends on !BR2_LARGEFILE
+
+config BR2_PACKAGE_TVHEADEND
+	bool "tvheadend"
+	depends on BR2_LARGEFILE
+	select BR2_PACKAGE_OPENSSL
+	help
+	  Tvheadend is a TV streaming server for Linux supporting DVB-S,
+	  DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as
+	  input sources.
+	  
+	  https://www.lonelycoder.com/redmine/projects/tvheadend/
+	  
+	  Note:
+	    - a default user has been created to log in the web configuration
+	      GUI: admin/admin; you can change it at your discretion at runtime.
+	    - if you want Avahi support, you'll need to enable:
+	          Avahi, D-Bus, libdaemon
diff --git a/package/tvheadend/S99tvheadend b/package/tvheadend/S99tvheadend
new file mode 100644
index 0000000..407b873
--- /dev/null
+++ b/package/tvheadend/S99tvheadend
@@ -0,0 +1,54 @@
+#! /bin/sh
+# tvheadend startup script inspired by the Debian one in the package
+
+# Author: Yann E. MORIN <yann.morin.1998@free.fr>
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+NAME=tvheadend
+DAEMON=/usr/bin/$NAME
+PIDFILE=/var/run/$NAME.pid
+
+[ -f "${DAEMON}" -a -x "${DAEMON}" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r "/etc/default/${NAME}" ] && . "/etc/default/${NAME}"
+
+ARGS="-f"
+[ -z "${TVH_USER}"      ] || ARGS="${ARGS} -u ${TVH_USER}"
+[ -z "${TVH_GROUP}"     ] || ARGS="${ARGS} -g ${TVH_GROUP}"
+[ -z "${TVH_ADAPTERS}"  ] || ARGS="${ARGS} -a ${TVH_ADAPTERS}"
+[ -z "${TVH_HTTP_PORT}" ] || ARGS="${ARGS} -w ${TVH_HTTP_PORT}"
+[ -z "${TVH_HTSP_PORT}" ] || ARGS="${ARGS} -e ${TVH_HTSP_PORT}"
+[ "${TVH_DEBUG}" = "1"  ] && ARGS="${ARGS} -s"
+
+case "$1" in
+    start)
+        printf "Starting TVHeadend daemon: "
+        if start-stop-daemon -S -q -p ${PIDFILE} -m --exec "${DAEMON}" -- ${ARGS}; then
+            printf "OK\n"
+        else
+            printf "failed\n"
+        fi
+        ;;
+    stop)
+        printf "Stoping TVHeadend daemon: "
+        start-stop-daemon -K -q -p ${PIDFILE} -s TERM
+        sleep 2
+        if start-stop-daemon -K -q -p ${PIDFILE} -t; then
+            printf "failed, killing: "
+            start-stop-daemon -K -q -p ${PIDFILE} -s KILL -o
+        fi
+        printf "OK\n"
+        ;;
+    restart|force-reload)
+        "${0}" stop
+        sleep 2
+        "${0}" stop
+        ;;
+    *)
+        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+        exit 1
+        ;;
+esac
+
+:
diff --git a/package/tvheadend/accesscontrol.1 b/package/tvheadend/accesscontrol.1
new file mode 100644
index 0000000..b920943
--- /dev/null
+++ b/package/tvheadend/accesscontrol.1
@@ -0,0 +1,13 @@
+{
+        "enabled": 1,
+        "username": "admin",
+        "password": "admin",
+        "comment": "TVHeadend admin user",
+        "prefix": "0.0.0.0/0",
+        "streaming": 1,
+        "dvr": 1,
+        "dvrallcfg": 1,
+        "webui": 1,
+        "admin": 1,
+        "id": "1"
+}
diff --git a/package/tvheadend/etc.default.tvheadend b/package/tvheadend/etc.default.tvheadend
new file mode 100644
index 0000000..c769055
--- /dev/null
+++ b/package/tvheadend/etc.default.tvheadend
@@ -0,0 +1,7 @@
+# Once we have a real user, we'll use it
+TVH_USER=root
+TVH_GROUP=root
+#TVH_ADAPTERS=
+#TVH_HTTP_PORT=9981
+#TVH_HTSP_PORT=9982
+#TVH_DEBUG=1
diff --git a/package/tvheadend/tvheadend-no-auto-download-dvbscans.patch b/package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
new file mode 100644
index 0000000..879cc03
--- /dev/null
+++ b/package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
@@ -0,0 +1,60 @@
+Do not download transponder data as part of the build
+
+Id dvb-scan is enabled, tvheadend will download the transponders data
+form the dvb-apps package. This does not play well with buildroot.
+
+Instead, we rely on the dvb-apps package to install those files, so
+it is no longer needed to install those as part of tvheadend.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN tvheadend-v3.3.orig//configure tvheadend-v3.3/configure
+--- tvheadend-v3.3.orig//configure	2012-09-25 15:32:31.000000000 +0200
++++ tvheadend-v3.3/configure	2012-12-28 17:17:23.580253413 +0100
+@@ -96,13 +96,14 @@
+ #
+ # DVB scan
+ #
+-if enabled linuxdvb && enabled dvbscan; then
+-  if [ ! -d ${ROOTDIR}/data/dvb-scan ]; then
+-    echo -n "Fetching dvb-scan files... "
+-    ${ROOTDIR}/support/getmuxlist &> /dev/null || die "Failed to fetch dvb-scan files (use --disable-dvbscan to skip)"
+-    echo "done"
+-  fi
+-fi
++# For buildroot, we already installed those files via the dvb-apps package
++#if enabled linuxdvb && enabled dvbscan; then
++#  if [ ! -d ${ROOTDIR}/data/dvb-scan ]; then
++#    echo -n "Fetching dvb-scan files... "
++#    ${ROOTDIR}/support/getmuxlist &> /dev/null || die "Failed to fetch dvb-scan files (use --disable-dvbscan to skip)"
++#    echo "done"
++#  fi
++#fi
+ 
+ # ###########################################################################
+ # Write config
+diff -durN tvheadend-v3.3.orig//Makefile tvheadend-v3.3/Makefile
+--- tvheadend-v3.3.orig//Makefile	2012-09-25 15:32:31.000000000 +0200
++++ tvheadend-v3.3/Makefile	2012-12-28 17:17:47.573497346 +0100
+@@ -180,7 +180,7 @@
+ SRCS-${CONFIG_BUNDLE}     += bundle.c
+ BUNDLES-yes               += docs/html docs/docresources src/webui/static
+ BUNDLES-yes               += data/conf
+-BUNDLES-${CONFIG_DVBSCAN} += data/dvb-scan
++#BUNDLES-${CONFIG_DVBSCAN} += data/dvb-scan
+ BUNDLES                    = $(BUNDLES-yes)
+ 
+ #
+diff -durN tvheadend-v3.3.orig//support/posix.mk tvheadend-v3.3/support/posix.mk
+--- tvheadend-v3.3.orig//support/posix.mk	2012-09-25 15:32:31.000000000 +0200
++++ tvheadend-v3.3/support/posix.mk	2012-12-28 17:19:28.903121722 +0100
+@@ -12,7 +12,8 @@
+ 		mkdir -p ${DESTDIR}${datadir}/tvheadend/$$bundle ;\
+ 		cp -r $$bundle/*  ${DESTDIR}${datadir}/tvheadend/$$bundle ;\
+ 	done
+-
++	mkdir -p ${DESTDIR}${datadir}/tvheadend/data
++	ln -s /usr/share/dvb-apps/scan ${DESTDIR}${datadir}/tvheadend/data/dvb-scan
+ 
+ uninstall:
+ 	rm -f ${DESTDIR}${bindir)/tvheadend
diff --git a/package/tvheadend/tvheadend.mk b/package/tvheadend/tvheadend.mk
new file mode 100644
index 0000000..5100781
--- /dev/null
+++ b/package/tvheadend/tvheadend.mk
@@ -0,0 +1,43 @@
+#############################################################
+#
+# tvheadend
+#
+##############################################################
+
+TVHEADEND_VERSION           = v3.3
+TVHEADEND_SITE              = http://github.com/tvheadend/tvheadend/tarball/$(TVHEADEND_VERSION)
+TVHEADEND_LICENSE           = GPLv3+
+TVHEADEND_LICENSE_FILES     = LICENSE
+TVHEADEND_DEPENDENCIES      = host-pkgconf host-python openssl
+
+ifeq ($(BR2_PACKAGE_AVAHI),y)
+TVHEADEND_DEPENDENCIES     += avahi
+endif
+
+#----------------------------------------------------------------------------
+# tvheadend is a little smuggler and thief! ;-)
+# During the ./configure, it downloads some files from the dvb-apps
+# package, so it has a list of pre-scanned tunner configurations.
+# For buildroot, we add a patch that avoids doing that, but uses the
+# scan files installed by the dvb-apps package
+TVHEADEND_DEPENDENCIES     += dvb-apps
+
+#----------------------------------------------------------------------------
+# To run tvheadend, we need:
+#  - a startup script, and its config file
+#  - a default DB with a tvheadend admin
+define TVHEADEND_INSTALL_DB
+	$(INSTALL) -D package/tvheadend/accesscontrol.1     \
+	              $(TARGET_DIR)/root/.hts/tvheadend/accesscontrol/1
+endef
+TVHEADEND_POST_INSTALL_TARGET_HOOKS  = TVHEADEND_INSTALL_DB
+
+define TVHEADEND_INSTALL_INIT_SYSV
+	$(INSTALL) -D package/tvheadend/etc.default.tvheadend $(TARGET_DIR)/etc/default/tvheadend
+	$(INSTALL) -D package/tvheadend/S99tvheadend          $(TARGET_DIR)/etc/init.d/S99tvheadend
+endef
+
+#----------------------------------------------------------------------------
+# tvheadend is not an autotools-based package, but it is possible to
+# call its ./configure script as if it were an autotools one.
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related

* [Buildroot] [PATCH] libplayer: propagate 'depends on' from mplayer
From: Thomas Petazzoni @ 2012-12-28 22:17 UTC (permalink / raw)
  To: buildroot

BR2_PACKAGE_LIBPLAYER_MPLAYER should not select BR2_PACKAGE_MPLAYER
without having the 'depends on' that BR2_PACKAGE_MPLAYER has.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/libplayer/Config.in |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/libplayer/Config.in b/package/libplayer/Config.in
index fe851ac..5391b8b 100644
--- a/package/libplayer/Config.in
+++ b/package/libplayer/Config.in
@@ -11,6 +11,10 @@ config BR2_PACKAGE_LIBPLAYER
 if BR2_PACKAGE_LIBPLAYER
 config BR2_PACKAGE_LIBPLAYER_MPLAYER
 	bool "mplayer backend"
+	# mplayer
+	depends on !BR2_sh4a && !BR2_sh4aeb && !BR2_microblaze && !BR2_aarch64
+	# mplayer
+	depends on BR2_LARGEFILE
 	select BR2_PACKAGE_MPLAYER
 
 config BR2_PACKAGE_LIBPLAYER_GSTREAMER
-- 
1.7.9.5

^ permalink raw reply related

* [Buildroot] [git commit] package/dvb-apps: new package
From: Peter Korsgaard @ 2012-12-28 22:27 UTC (permalink / raw)
  To: buildroot

commit: http://git.buildroot.net/buildroot/commit/?id=5e0b900c72bce75a3f86306d0aae79e9655a4753
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

We just need the transponders data, so we just install those.

[Peter: rework install step]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 package/dvb-apps/dvb-apps.mk |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/package/dvb-apps/dvb-apps.mk b/package/dvb-apps/dvb-apps.mk
new file mode 100644
index 0000000..721fbf0
--- /dev/null
+++ b/package/dvb-apps/dvb-apps.mk
@@ -0,0 +1,28 @@
+#############################################################
+#
+# dvb-apps
+#
+#############################################################
+
+DVB_APPS_VERSION        = 3fc7dfa68484
+DVB_APPS_SOURCE         = dvb-apps-$(DVB_APPS_VERSION).tar.bz2
+DVB_APPS_SITE           = http://linuxtv.org/hg/dvb-apps/archive/
+
+# We just install the transponders data. As this is not a 'work' as per
+# traditional copyright, but just a collection of 'facts', there's probably
+# no license to apply to these data files.
+# To be noted however, is that the dvb-apps package bundles a copy of the
+# GPLv2 and a copy of the LGPLv2.1, and that some of the source files refer
+# to either the GPLv2+ or the LGPLv2.1+.
+# But since we do not use any of those source files, their license do not
+# apply to us.
+DVB_APPS_LICENSE        = unknown (probably public domain)
+
+define DVB_APPS_INSTALL_TARGET_CMDS
+	for i in atsc dvb-c dvb-s dvb-t; do \
+		mkdir -p $(TARGET_DIR)/usr/share/dvb-apps/scan/$$i; \
+		$(INSTALL) $(@D)/util/scan/$$i/* $(TARGET_DIR)/usr/share/dvb-apps/scan/$$i; \
+	done
+endef
+
+$(eval $(generic-package))

^ permalink raw reply related

* [Buildroot] [PATCH 1/2] package/dvb-apps: new package
From: Peter Korsgaard @ 2012-12-28 22:30 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <d4ede3beb81857dfef0587def373e943f2a6100d.1356731295.git.yann.morin.1998@free.fr>

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

 Yann> We just need the transponders data, so we just install those.

Long term I think it would be good to make this a user visible package,
and have sub options for what kind of transponder data you want to
install, as it's fairly big (~3.4MB).

 Yann> +define DVB_APPS_INSTALL_TARGET_CMDS
 Yann> +	mkdir -p $(TARGET_DIR)/usr/share/dvb-apps/scan/atsc
 Yann> +	mkdir -p $(TARGET_DIR)/usr/share/dvb-apps/scan/dvb-c
 Yann> +	mkdir -p $(TARGET_DIR)/usr/share/dvb-apps/scan/dvb-s
 Yann> +	mkdir -p $(TARGET_DIR)/usr/share/dvb-apps/scan/dvb-t
 Yann> +	$(INSTALL) -D $(@D)/util/scan/atsc/* $(TARGET_DIR)/usr/share/dvb-apps/scan/atsc

install -D expects you to name the destination file name, which doesn't
make sense here, so I rewrote the install step to use a shell loop and
not use the -D option.

Committed with that change, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply

* [Buildroot] [git commit] libplayer: propagate 'depends on' from mplayer
From: Peter Korsgaard @ 2012-12-28 22:35 UTC (permalink / raw)
  To: buildroot

commit: http://git.buildroot.net/buildroot/commit/?id=6904b0ea954c22f3efb9619dc4a7b793fe985547
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

BR2_PACKAGE_LIBPLAYER_MPLAYER should not select BR2_PACKAGE_MPLAYER
without having the 'depends on' that BR2_PACKAGE_MPLAYER has.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 package/libplayer/Config.in |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/package/libplayer/Config.in b/package/libplayer/Config.in
index fe851ac..5391b8b 100644
--- a/package/libplayer/Config.in
+++ b/package/libplayer/Config.in
@@ -11,6 +11,10 @@ config BR2_PACKAGE_LIBPLAYER
 if BR2_PACKAGE_LIBPLAYER
 config BR2_PACKAGE_LIBPLAYER_MPLAYER
 	bool "mplayer backend"
+	# mplayer
+	depends on !BR2_sh4a && !BR2_sh4aeb && !BR2_microblaze && !BR2_aarch64
+	# mplayer
+	depends on BR2_LARGEFILE
 	select BR2_PACKAGE_MPLAYER
 
 config BR2_PACKAGE_LIBPLAYER_GSTREAMER

^ permalink raw reply related

* [Buildroot] [PATCH] libplayer: propagate 'depends on' from mplayer
From: Peter Korsgaard @ 2012-12-28 22:35 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <1356733021-15222-1-git-send-email-thomas.petazzoni@free-electrons.com>

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> BR2_PACKAGE_LIBPLAYER_MPLAYER should not select BR2_PACKAGE_MPLAYER
 Thomas> without having the 'depends on' that BR2_PACKAGE_MPLAYER has.

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply

* [Buildroot] [pull request v4] Pull request for branch yem-tvheadend
From: Yann E. MORIN @ 2012-12-28 22:37 UTC (permalink / raw)
  To: buildroot

Hello All!

Here's a one-patch series to add TVHeadend.

TVHeadend implements a PVR/DVR solution, which can record either from
a broadcast tunner (DVB-{T,S,C}, or ATSC), or IPTV multicast streams.

TVHeadend can be used as a backend by media centers, such as XBMC, or
it can be used stand-alone.

Changes v3 -> v4:
  - drop upstream-applied dvb-apps (Peter)
  - fix typos in tvheadend patch
Changes v2 -> v3:
  - fixed copy-paste and indentation (Thomas)
  - added desc to tvheadend patch (Thomas)
Changes v1 -> v2:
  - got rid of tvheadend user (Peter)
  - added dvb-apps package, get rid of cutom download (Thomas)

The following changes since commit 5e0b900c72bce75a3f86306d0aae79e9655a4753:

  package/dvb-apps: new package (2012-12-28 23:27:12 +0100)

are available in the git repository at:
  git://gitorious.org/buildroot/buildroot.git yem-tvheadend

Yann E. MORIN (1):
      package/tvheadend: new package

 package/Config.in                                  |    1 +
 package/tvheadend/Config.in                        |   19 ++++++
 package/tvheadend/S99tvheadend                     |   54 ++++++++++++++++++
 package/tvheadend/accesscontrol.1                  |   13 ++++
 package/tvheadend/etc.default.tvheadend            |    7 ++
 .../tvheadend-no-auto-download-dvbscans.patch      |   60 ++++++++++++++++++++
 package/tvheadend/tvheadend.mk                     |   43 ++++++++++++++
 7 files changed, 197 insertions(+), 0 deletions(-)
 create mode 100644 package/tvheadend/Config.in
 create mode 100644 package/tvheadend/S99tvheadend
 create mode 100644 package/tvheadend/accesscontrol.1
 create mode 100644 package/tvheadend/etc.default.tvheadend
 create mode 100644 package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
 create mode 100644 package/tvheadend/tvheadend.mk

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

* [Buildroot] [PATCH 1/1] package/tvheadend: new package
From: Yann E. MORIN @ 2012-12-28 22:37 UTC (permalink / raw)
  To: buildroot
In-Reply-To: <cover.1356734184.git.yann.morin.1998@free.fr>

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in                                  |    1 +
 package/tvheadend/Config.in                        |   19 ++++++
 package/tvheadend/S99tvheadend                     |   54 ++++++++++++++++++
 package/tvheadend/accesscontrol.1                  |   13 ++++
 package/tvheadend/etc.default.tvheadend            |    7 ++
 .../tvheadend-no-auto-download-dvbscans.patch      |   60 ++++++++++++++++++++
 package/tvheadend/tvheadend.mk                     |   43 ++++++++++++++
 7 files changed, 197 insertions(+), 0 deletions(-)
 create mode 100644 package/tvheadend/Config.in
 create mode 100644 package/tvheadend/S99tvheadend
 create mode 100644 package/tvheadend/accesscontrol.1
 create mode 100644 package/tvheadend/etc.default.tvheadend
 create mode 100644 package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
 create mode 100644 package/tvheadend/tvheadend.mk

diff --git a/package/Config.in b/package/Config.in
index 6c82bab..8cec873 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -683,6 +683,7 @@ source "package/tinyhttpd/Config.in"
 source "package/tn5250/Config.in"
 source "package/transmission/Config.in"
 source "package/ttcp/Config.in"
+source "package/tvheadend/Config.in"
 source "package/udpcast/Config.in"
 source "package/ulogd/Config.in"
 source "package/ushare/Config.in"
diff --git a/package/tvheadend/Config.in b/package/tvheadend/Config.in
new file mode 100644
index 0000000..944e31e
--- /dev/null
+++ b/package/tvheadend/Config.in
@@ -0,0 +1,19 @@
+comment "tvheadend requires a toolchain with LARGEFILE support"
+    depends on !BR2_LARGEFILE
+
+config BR2_PACKAGE_TVHEADEND
+	bool "tvheadend"
+	depends on BR2_LARGEFILE
+	select BR2_PACKAGE_OPENSSL
+	help
+	  Tvheadend is a TV streaming server for Linux supporting DVB-S,
+	  DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as
+	  input sources.
+	  
+	  https://www.lonelycoder.com/redmine/projects/tvheadend/
+	  
+	  Note:
+	    - a default user has been created to log in the web configuration
+	      GUI: admin/admin; you can change it at your discretion at runtime.
+	    - if you want Avahi support, you'll need to enable:
+	          Avahi, D-Bus, libdaemon
diff --git a/package/tvheadend/S99tvheadend b/package/tvheadend/S99tvheadend
new file mode 100644
index 0000000..407b873
--- /dev/null
+++ b/package/tvheadend/S99tvheadend
@@ -0,0 +1,54 @@
+#! /bin/sh
+# tvheadend startup script inspired by the Debian one in the package
+
+# Author: Yann E. MORIN <yann.morin.1998@free.fr>
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+NAME=tvheadend
+DAEMON=/usr/bin/$NAME
+PIDFILE=/var/run/$NAME.pid
+
+[ -f "${DAEMON}" -a -x "${DAEMON}" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r "/etc/default/${NAME}" ] && . "/etc/default/${NAME}"
+
+ARGS="-f"
+[ -z "${TVH_USER}"      ] || ARGS="${ARGS} -u ${TVH_USER}"
+[ -z "${TVH_GROUP}"     ] || ARGS="${ARGS} -g ${TVH_GROUP}"
+[ -z "${TVH_ADAPTERS}"  ] || ARGS="${ARGS} -a ${TVH_ADAPTERS}"
+[ -z "${TVH_HTTP_PORT}" ] || ARGS="${ARGS} -w ${TVH_HTTP_PORT}"
+[ -z "${TVH_HTSP_PORT}" ] || ARGS="${ARGS} -e ${TVH_HTSP_PORT}"
+[ "${TVH_DEBUG}" = "1"  ] && ARGS="${ARGS} -s"
+
+case "$1" in
+    start)
+        printf "Starting TVHeadend daemon: "
+        if start-stop-daemon -S -q -p ${PIDFILE} -m --exec "${DAEMON}" -- ${ARGS}; then
+            printf "OK\n"
+        else
+            printf "failed\n"
+        fi
+        ;;
+    stop)
+        printf "Stoping TVHeadend daemon: "
+        start-stop-daemon -K -q -p ${PIDFILE} -s TERM
+        sleep 2
+        if start-stop-daemon -K -q -p ${PIDFILE} -t; then
+            printf "failed, killing: "
+            start-stop-daemon -K -q -p ${PIDFILE} -s KILL -o
+        fi
+        printf "OK\n"
+        ;;
+    restart|force-reload)
+        "${0}" stop
+        sleep 2
+        "${0}" stop
+        ;;
+    *)
+        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+        exit 1
+        ;;
+esac
+
+:
diff --git a/package/tvheadend/accesscontrol.1 b/package/tvheadend/accesscontrol.1
new file mode 100644
index 0000000..b920943
--- /dev/null
+++ b/package/tvheadend/accesscontrol.1
@@ -0,0 +1,13 @@
+{
+        "enabled": 1,
+        "username": "admin",
+        "password": "admin",
+        "comment": "TVHeadend admin user",
+        "prefix": "0.0.0.0/0",
+        "streaming": 1,
+        "dvr": 1,
+        "dvrallcfg": 1,
+        "webui": 1,
+        "admin": 1,
+        "id": "1"
+}
diff --git a/package/tvheadend/etc.default.tvheadend b/package/tvheadend/etc.default.tvheadend
new file mode 100644
index 0000000..c769055
--- /dev/null
+++ b/package/tvheadend/etc.default.tvheadend
@@ -0,0 +1,7 @@
+# Once we have a real user, we'll use it
+TVH_USER=root
+TVH_GROUP=root
+#TVH_ADAPTERS=
+#TVH_HTTP_PORT=9981
+#TVH_HTSP_PORT=9982
+#TVH_DEBUG=1
diff --git a/package/tvheadend/tvheadend-no-auto-download-dvbscans.patch b/package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
new file mode 100644
index 0000000..50bc4b6
--- /dev/null
+++ b/package/tvheadend/tvheadend-no-auto-download-dvbscans.patch
@@ -0,0 +1,60 @@
+Do not download transponder data as part of the build
+
+If dvb-scan is enabled, tvheadend will download the transponders data
+from the dvb-apps package. This does not play well with buildroot.
+
+Instead, we rely on the dvb-apps package to install those files, so
+it is no longer needed to install those as part of tvheadend.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff -durN tvheadend-v3.3.orig//configure tvheadend-v3.3/configure
+--- tvheadend-v3.3.orig//configure	2012-09-25 15:32:31.000000000 +0200
++++ tvheadend-v3.3/configure	2012-12-28 17:17:23.580253413 +0100
+@@ -96,13 +96,14 @@
+ #
+ # DVB scan
+ #
+-if enabled linuxdvb && enabled dvbscan; then
+-  if [ ! -d ${ROOTDIR}/data/dvb-scan ]; then
+-    echo -n "Fetching dvb-scan files... "
+-    ${ROOTDIR}/support/getmuxlist &> /dev/null || die "Failed to fetch dvb-scan files (use --disable-dvbscan to skip)"
+-    echo "done"
+-  fi
+-fi
++# For buildroot, we already installed those files via the dvb-apps package
++#if enabled linuxdvb && enabled dvbscan; then
++#  if [ ! -d ${ROOTDIR}/data/dvb-scan ]; then
++#    echo -n "Fetching dvb-scan files... "
++#    ${ROOTDIR}/support/getmuxlist &> /dev/null || die "Failed to fetch dvb-scan files (use --disable-dvbscan to skip)"
++#    echo "done"
++#  fi
++#fi
+ 
+ # ###########################################################################
+ # Write config
+diff -durN tvheadend-v3.3.orig//Makefile tvheadend-v3.3/Makefile
+--- tvheadend-v3.3.orig//Makefile	2012-09-25 15:32:31.000000000 +0200
++++ tvheadend-v3.3/Makefile	2012-12-28 17:17:47.573497346 +0100
+@@ -180,7 +180,7 @@
+ SRCS-${CONFIG_BUNDLE}     += bundle.c
+ BUNDLES-yes               += docs/html docs/docresources src/webui/static
+ BUNDLES-yes               += data/conf
+-BUNDLES-${CONFIG_DVBSCAN} += data/dvb-scan
++#BUNDLES-${CONFIG_DVBSCAN} += data/dvb-scan
+ BUNDLES                    = $(BUNDLES-yes)
+ 
+ #
+diff -durN tvheadend-v3.3.orig//support/posix.mk tvheadend-v3.3/support/posix.mk
+--- tvheadend-v3.3.orig//support/posix.mk	2012-09-25 15:32:31.000000000 +0200
++++ tvheadend-v3.3/support/posix.mk	2012-12-28 17:19:28.903121722 +0100
+@@ -12,7 +12,8 @@
+ 		mkdir -p ${DESTDIR}${datadir}/tvheadend/$$bundle ;\
+ 		cp -r $$bundle/*  ${DESTDIR}${datadir}/tvheadend/$$bundle ;\
+ 	done
+-
++	mkdir -p ${DESTDIR}${datadir}/tvheadend/data
++	ln -s /usr/share/dvb-apps/scan ${DESTDIR}${datadir}/tvheadend/data/dvb-scan
+ 
+ uninstall:
+ 	rm -f ${DESTDIR}${bindir)/tvheadend
diff --git a/package/tvheadend/tvheadend.mk b/package/tvheadend/tvheadend.mk
new file mode 100644
index 0000000..5100781
--- /dev/null
+++ b/package/tvheadend/tvheadend.mk
@@ -0,0 +1,43 @@
+#############################################################
+#
+# tvheadend
+#
+##############################################################
+
+TVHEADEND_VERSION           = v3.3
+TVHEADEND_SITE              = http://github.com/tvheadend/tvheadend/tarball/$(TVHEADEND_VERSION)
+TVHEADEND_LICENSE           = GPLv3+
+TVHEADEND_LICENSE_FILES     = LICENSE
+TVHEADEND_DEPENDENCIES      = host-pkgconf host-python openssl
+
+ifeq ($(BR2_PACKAGE_AVAHI),y)
+TVHEADEND_DEPENDENCIES     += avahi
+endif
+
+#----------------------------------------------------------------------------
+# tvheadend is a little smuggler and thief! ;-)
+# During the ./configure, it downloads some files from the dvb-apps
+# package, so it has a list of pre-scanned tunner configurations.
+# For buildroot, we add a patch that avoids doing that, but uses the
+# scan files installed by the dvb-apps package
+TVHEADEND_DEPENDENCIES     += dvb-apps
+
+#----------------------------------------------------------------------------
+# To run tvheadend, we need:
+#  - a startup script, and its config file
+#  - a default DB with a tvheadend admin
+define TVHEADEND_INSTALL_DB
+	$(INSTALL) -D package/tvheadend/accesscontrol.1     \
+	              $(TARGET_DIR)/root/.hts/tvheadend/accesscontrol/1
+endef
+TVHEADEND_POST_INSTALL_TARGET_HOOKS  = TVHEADEND_INSTALL_DB
+
+define TVHEADEND_INSTALL_INIT_SYSV
+	$(INSTALL) -D package/tvheadend/etc.default.tvheadend $(TARGET_DIR)/etc/default/tvheadend
+	$(INSTALL) -D package/tvheadend/S99tvheadend          $(TARGET_DIR)/etc/init.d/S99tvheadend
+endef
+
+#----------------------------------------------------------------------------
+# tvheadend is not an autotools-based package, but it is possible to
+# call its ./configure script as if it were an autotools one.
+$(eval $(autotools-package))
-- 
1.7.2.5

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox