Message ID | 1407332350-27220-3-git-send-email-benoit.thebaudeau@advansee.com |
---|---|
State | Superseded |
Headers | show |
Benoit, All, On 2014-08-06 15:39 +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 install a vcfiled SysV > init script suitable for BuildRoot. I'm not sure I would be happy that the GPU is allowed uncontrolled access to the filesystem. Please, make this an option, defaulting to 'n', so the user can willingly choose to install it or not. Otherwise, see below... > Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> [--SNIP--] > diff --git a/package/rpi-userland/S94vcfiled b/package/rpi-userland/S94vcfiled > new file mode 100755 > index 0000000..25a0fcd > --- /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/$NAME" Are you sure about the path to the PID file? What about: PIDFILE="/var/run/$NAME.pid" Othwerwise, looks good after a casual look. Ditto your previous patches, I'll try to find some time tonight to test it. Regards, Yann E. MORIN. > +# 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..0d29f24 100644 > --- a/package/rpi-userland/rpi-userland.mk > +++ b/package/rpi-userland/rpi-userland.mk > @@ -13,7 +13,15 @@ RPI_USERLAND_CONF_OPT = -DVMCS_INSTALL_PREFIX=/usr > > RPI_USERLAND_PROVIDES = libegl libgles libopenmax libopenvg > > +define RPI_USERLAND_INSTALL_INIT_SYSV > + $(INSTALL) -m 0755 -D package/rpi-userland/S94vcfiled \ > + $(TARGET_DIR)/etc/init.d/S94vcfiled > +endef > + > 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@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
Dear Yann E. MORIN, On Wednesday, August 6, 2014 7:33:51 PM, Yann E. MORIN wrote: > Benoit, All, > > On 2014-08-06 15:39 +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 install a vcfiled > > SysV > > init script suitable for BuildRoot. > > I'm not sure I would be happy that the GPU is allowed uncontrolled > access to the filesystem. > > Please, make this an option, defaulting to 'n', so the user can > willingly choose to install it or not. Will do. > Otherwise, see below... > > > Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> > [--SNIP--] > > diff --git a/package/rpi-userland/S94vcfiled > > b/package/rpi-userland/S94vcfiled > > new file mode 100755 > > index 0000000..25a0fcd > > --- /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/$NAME" > > Are you sure about the path to the PID file? > What about: > PIDFILE="/var/run/$NAME.pid" Yes, sure, this is the path used by vcfiled, which creates its PID file itself rather than relying on start-stop-daemon -m for that. > Othwerwise, looks good after a casual look. Ditto your previous patches, > I'll try to find some time tonight to test it. Thanks. [...] Regards, Benoît
Dear Yann E. MORIN, On Wed, Aug 6, 2014 at 7:40 PM, Benoît Thébaudeau <benoit.thebaudeau@advansee.com> wrote: > Dear Yann E. MORIN, > > On Wednesday, August 6, 2014 7:33:51 PM, Yann E. MORIN wrote: >> Benoit, All, >> >> On 2014-08-06 15:39 +0200, Benoît Thébaudeau spake thusly: [...] >> Otherwise, see below... >> >> > Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> >> [--SNIP--] >> > diff --git a/package/rpi-userland/S94vcfiled >> > b/package/rpi-userland/S94vcfiled >> > new file mode 100755 >> > index 0000000..25a0fcd >> > --- /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/$NAME" >> >> Are you sure about the path to the PID file? >> What about: >> PIDFILE="/var/run/$NAME.pid" > > Yes, sure, this is the path used by vcfiled, which creates its PID file itself > rather than relying on start-stop-daemon -m for that. I have checked the code, and this path can be overridden by defining VCFILED_LOCKFILE, so I can set it to '/var/run/vcfiled.pid' if you really prefer. It's up to you. You tell me. [...] Regards, Benoît
Benoit, All, On 2014-08-06 21:56 +0200, Benoît Thébaudeau spake thusly: > > On Wednesday, August 6, 2014 7:33:51 PM, Yann E. MORIN wrote: > >> On 2014-08-06 15:39 +0200, Benoît Thébaudeau spake thusly: > >> > +PIDFILE="/var/run/$NAME/$NAME" > >> > >> Are you sure about the path to the PID file? > >> What about: > >> PIDFILE="/var/run/$NAME.pid" [--SNIP--] > I have checked the code, and this path can be overridden by defining > VCFILED_LOCKFILE, so I can set it to '/var/run/vcfiled.pid' if you > really prefer. It's up to you. You tell me. Well, I think it would be better, yes. There's no need to create a directory just to put the PID file. Thanks! Regards, Yann E. MORIN.
diff --git a/package/rpi-userland/S94vcfiled b/package/rpi-userland/S94vcfiled new file mode 100755 index 0000000..25a0fcd --- /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/$NAME" + +# 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..0d29f24 100644 --- a/package/rpi-userland/rpi-userland.mk +++ b/package/rpi-userland/rpi-userland.mk @@ -13,7 +13,15 @@ RPI_USERLAND_CONF_OPT = -DVMCS_INSTALL_PREFIX=/usr RPI_USERLAND_PROVIDES = libegl libgles libopenmax libopenvg +define RPI_USERLAND_INSTALL_INIT_SYSV + $(INSTALL) -m 0755 -D package/rpi-userland/S94vcfiled \ + $(TARGET_DIR)/etc/init.d/S94vcfiled +endef + 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
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 install a vcfiled SysV init script suitable for BuildRoot. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> --- 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/S94vcfiled | 47 ++++++++++++++++++++++++++++++++++++ package/rpi-userland/rpi-userland.mk | 8 ++++++ 2 files changed, 55 insertions(+) create mode 100755 package/rpi-userland/S94vcfiled