[Buildroot] [PATCH v4 1/1] rpi-userland: Fix vcfiled startup

Yann E. MORIN yann.morin.1998 at free.fr
Thu Aug 7 20:46:19 UTC 2014


Benoit, All,

On 2014-08-07 17:24 +0200, Benoît Thébaudeau spake thusly:
> The VideoCore file server daemon startup script installed from this package is
> not compatible with BuildRoot (because of its naming and other Debian
> dependencies), which prevented vcfiled from starting. Hence, prevent this
> package from installing its vcfiled startup script, and add a configuration
> option to install a vcfiled SysV init script suitable for BuildRoot.
> 
> Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau at advansee.com>

A small comment, below.

> ---
> 
> Changes in v4:
>  - Use /var/run/vcfiled.pid instead of /var/run/vcfiled/vcfiled for vcfiled's
>    PID file path.
> 
> Changes in v3:
>  - Add a config option to start this daemon.
> 
> Changes in v2:
>  - Indent .mk rules with tabs.
>  - Simplify the new vcfiled startup script.
>  - Rename S97vcfiled to S94vcfiled for a better integration with existing init
>    scripts.
> ---
>  package/rpi-userland/Config.in       |  7 ++++++
>  package/rpi-userland/S94vcfiled      | 47 ++++++++++++++++++++++++++++++++++++
>  package/rpi-userland/rpi-userland.mk | 13 +++++++++-
>  3 files changed, 66 insertions(+), 1 deletion(-)
>  create mode 100755 package/rpi-userland/S94vcfiled
> 
> diff --git a/package/rpi-userland/Config.in b/package/rpi-userland/Config.in
> index aeee5e1..89e99e0 100644
> --- a/package/rpi-userland/Config.in
> +++ b/package/rpi-userland/Config.in
> @@ -31,6 +31,13 @@ config BR2_PACKAGE_PROVIDES_LIBOPENVG
>  config BR2_PACKAGE_PROVIDES_LIBOPENMAX
>  	default "rpi-userland"
>  
> +config BR2_PACKAGE_RPI_USERLAND_START_VCFILED
> +	bool "Start vcfiled"
> +	depends on BR2_INIT_SYSV || BR2_INIT_BUSYBOX
> +	help
> +	  vcfiled is a daemon serving files to VideoCore from the host filing
> +	  system.

s/filing system/filesystem/  but that can be done by whoever applies the
patch, no need to resend just for that.

Otherwise:
Acked-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>

Thank you for your persistence! :-)

Regards,
Yann E. MORIN.

> +
>  endif
>  
>  comment "rpi-userland needs a toolchain w/ C++, largefile, threads"
> diff --git a/package/rpi-userland/S94vcfiled b/package/rpi-userland/S94vcfiled
> new file mode 100755
> index 0000000..9a3e523
> --- /dev/null
> +++ b/package/rpi-userland/S94vcfiled
> @@ -0,0 +1,47 @@
> +#!/bin/sh
> +
> +NAME=vcfiled
> +DESC="VideoCore file server daemon $NAME"
> +DAEMON="/usr/sbin/$NAME"
> +DAEMON_ARGS=""
> +CFGFILE="/etc/default/$NAME"
> +PIDFILE="/var/run/$NAME.pid"
> +
> +# Read configuration variable file if it is present
> +[ -r "$CFGFILE" ] && . "$CFGFILE"
> +
> +do_start()
> +{
> +	echo -n "Starting $DESC: "
> +	start-stop-daemon -S -q -p "$PIDFILE" -x "$DAEMON" -- $DAEMON_ARGS &&
> +			echo "done" || echo "failed"
> +}
> +
> +do_stop()
> +{
> +	echo -n "Stopping $DESC: "
> +	if start-stop-daemon -K -q -R TERM/30/KILL/5 -p "$PIDFILE" -n "$NAME"; then
> +		# This daemon does not remove its PID file when it exits.
> +		rm -f "$PIDFILE"
> +		echo "done"
> +	else
> +		echo "failed"
> +	fi
> +}
> +
> +case "$1" in
> +	start)
> +		do_start
> +		;;
> +	stop)
> +		do_stop
> +		;;
> +	restart|reload)
> +		do_stop
> +		do_start
> +		;;
> +	*)
> +		echo "Usage: $0 {start|stop|restart|reload}" >&2
> +		exit 1
> +		;;
> +esac
> diff --git a/package/rpi-userland/rpi-userland.mk b/package/rpi-userland/rpi-userland.mk
> index 81ed95c..74a0056 100644
> --- a/package/rpi-userland/rpi-userland.mk
> +++ b/package/rpi-userland/rpi-userland.mk
> @@ -9,11 +9,22 @@ RPI_USERLAND_SITE = $(call github,raspberrypi,userland,$(RPI_USERLAND_VERSION))
>  RPI_USERLAND_LICENSE = BSD-3c
>  RPI_USERLAND_LICENSE_FILES = LICENCE
>  RPI_USERLAND_INSTALL_STAGING = YES
> -RPI_USERLAND_CONF_OPT = -DVMCS_INSTALL_PREFIX=/usr
> +RPI_USERLAND_CONF_OPT = -DVMCS_INSTALL_PREFIX=/usr \
> +	-DCMAKE_C_FLAGS="-DVCFILED_LOCKFILE=\\\"/var/run/vcfiled.pid\\\""
>  
>  RPI_USERLAND_PROVIDES = libegl libgles libopenmax libopenvg
>  
> +ifeq ($(BR2_PACKAGE_RPI_USERLAND_START_VCFILED),y)
> +define RPI_USERLAND_INSTALL_INIT_SYSV
> +	$(INSTALL) -m 0755 -D package/rpi-userland/S94vcfiled \
> +			$(TARGET_DIR)/etc/init.d/S94vcfiled
> +endef
> +endif
> +
>  define RPI_USERLAND_POST_TARGET_CLEANUP
> +	rm -f $(TARGET_DIR)/etc/init.d/vcfiled
> +	rm -f $(TARGET_DIR)/usr/share/install/vcfiled
> +	rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/share/install
>  	rm -Rf $(TARGET_DIR)/usr/src
>  endef
>  RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
> -- 
> 1.9.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

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


More information about the buildroot mailing list