[meta-virtualization] [PATCH] diod: add new recipe

Bruce Ashfield bruce.ashfield at gmail.com
Tue Jun 27 10:25:55 PDT 2017


merged.

Bruce

On Mon, Jun 26, 2017 at 8:26 PM, <yi.zhao at windriver.com> wrote:

> From: Yi Zhao <yi.zhao at windriver.com>
>
> diod is a multi-threaded, user space file server that speaks 9P2000.L
> protocol.
>
> Signed-off-by: Yi Zhao <yi.zhao at windriver.com>
> ---
>  recipes-extended/diod/diod_1.0.24.bb               |  32 ++++++
>  ...ow-builds-to-work-with-separate-build-dir.patch | 126
> +++++++++++++++++++++
>  .../files/0002-auto.diod.in-remove-bashisms.patch  |  47 ++++++++
>  recipes-extended/diod/files/diod                   |  75 ++++++++++++
>  recipes-extended/diod/files/diod.conf              |  15 +++
>  5 files changed, 295 insertions(+)
>  create mode 100644 recipes-extended/diod/diod_1.0.24.bb
>  create mode 100644 recipes-extended/diod/files/
> 0001-build-allow-builds-to-work-with-separate-build-dir.patch
>  create mode 100644 recipes-extended/diod/files/0002-auto.diod.in-remove-
> bashisms.patch
>  create mode 100644 recipes-extended/diod/files/diod
>  create mode 100644 recipes-extended/diod/files/diod.conf
>
> diff --git a/recipes-extended/diod/diod_1.0.24.bb b/recipes-extended/diod/
> diod_1.0.24.bb
> new file mode 100644
> index 0000000..a4d159a
> --- /dev/null
> +++ b/recipes-extended/diod/diod_1.0.24.bb
> @@ -0,0 +1,32 @@
> +SUMMARY = "Diod is a user space server for the kernel v9fs client."
> +DESCRIPTION = "\
> +Diod is a user space server for the kernel v9fs client (9p.ko, 9pnet.ko).
> \
> +Although the kernel client supports several 9P variants, diod only
> supports \
> +9P2000.L, and only in its feature-complete form, as it appeared in
> 2.6.38."
> +SECTION = "console/network"
> +
> +LICENSE = "GPLv2"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
> +
> +PV = "1.0.24+git${SRCPV}"
> +SRCREV = "0ea3fe3d829b5085307cd27a512708d99ef48199"
> +SRC_URI = "git://github.com/chaos/diod.git;protocol=git \
> +           file://diod \
> +           file://diod.conf \
> +           file://0001-build-allow-builds-to-work-with-separate-build-dir.patch
> \
> +           file://0002-auto.diod.in-remove-bashisms.patch \
> +          "
> +DEPENDS = "libcap ncurses tcp-wrappers lua"
> +
> +S = "${WORKDIR}/git"
> +
> +inherit autotools systemd
> +
> +do_install_append () {
> +        # install our init based on start-stop-daemon
> +        install -D -m 0755 ${WORKDIR}/diod ${D}${sysconfdir}/init.d/diod
> +        # install a real(not commented) configuration file for diod
> +        install -m 0644 ${WORKDIR}/diod.conf ${D}${sysconfdir}/diod.conf
> +}
> +
> +FILES_${PN} += "${systemd_unitdir}"
> diff --git a/recipes-extended/diod/files/0001-build-allow-builds-to-
> work-with-separate-build-dir.patch b/recipes-extended/diod/files/
> 0001-build-allow-builds-to-work-with-separate-build-dir.patch
> new file mode 100644
> index 0000000..f40e0eb
> --- /dev/null
> +++ b/recipes-extended/diod/files/0001-build-allow-builds-to-
> work-with-separate-build-dir.patch
> @@ -0,0 +1,126 @@
> +From 43403468298ef4167baa5d84de2ee2eaf7f4007a Mon Sep 17 00:00:00 2001
> +From: Mark Asselstine <mark.asselstine at windriver.com>
> +Date: Fri, 9 Jan 2015 18:34:04 +0000
> +Subject: [PATCH 1/2] build: allow builds to work with separate build dir
> +
> +Remove assumptions in include paths that assume the build
> +is happening in the source directories.
> +
> +Upstream-Status: Inappropriate [embedded specific]
> +
> +Signed-off-by: Mark Asselstine <mark.asselstine at windriver.com>
> +---
> + diod/Makefile.am              | 2 +-
> + libdiod/Makefile.am           | 2 +-
> + liblsd/Makefile.am            | 2 +-
> + libnpclient/Makefile.am       | 2 +-
> + scripts/Makefile.am           | 6 +++---
> + tests/kern/dbench/Makefile.am | 4 ++--
> + utils/Makefile.am             | 2 +-
> + 7 files changed, 10 insertions(+), 10 deletions(-)
> +
> +diff --git a/diod/Makefile.am b/diod/Makefile.am
> +index 7644be7..fdaf130 100644
> +--- a/diod/Makefile.am
> ++++ b/diod/Makefile.am
> +@@ -1,7 +1,7 @@
> + AM_CFLAGS = @GCCWARN@
> +
> + AM_CPPFLAGS = \
> +-      -I../libnpfs -I../liblsd -I../libdiod
> ++      -I$(srcdir)/../libnpfs -I$(srcdir)/../liblsd -I$(srcdir)/../libdiod
> +
> + sbin_PROGRAMS = diod
> +
> +diff --git a/libdiod/Makefile.am b/libdiod/Makefile.am
> +index 4810e14..6905cdd 100644
> +--- a/libdiod/Makefile.am
> ++++ b/libdiod/Makefile.am
> +@@ -1,7 +1,7 @@
> + AM_CFLAGS = @GCCWARN@
> +
> + AM_CPPFLAGS = \
> +-      -I../libnpfs -I../libnpclient -I../liblsd
> ++      -I$(srcdir)/../libnpfs -I$(srcdir)/../libnpclient
> -I$(srcdir)/../liblsd
> +
> + noinst_LIBRARIES = libdiod.a
> +
> +diff --git a/liblsd/Makefile.am b/liblsd/Makefile.am
> +index c3e5658..7e18bf8 100644
> +--- a/liblsd/Makefile.am
> ++++ b/liblsd/Makefile.am
> +@@ -1,6 +1,6 @@
> + AM_CFLAGS = @GCCWARN@
> +
> +-AM_CPPFLAGS = -I../libdiod
> ++AM_CPPFLAGS = -I$(srcdir)/../libdiod
> +
> + noinst_LIBRARIES = liblsd.a
> +
> +diff --git a/libnpclient/Makefile.am b/libnpclient/Makefile.am
> +index 5305df9..cbaf266 100644
> +--- a/libnpclient/Makefile.am
> ++++ b/libnpclient/Makefile.am
> +@@ -1,7 +1,7 @@
> + AM_CFLAGS = @GCCWARN@
> +
> + AM_CPPFLAGS = \
> +-      -I../libnpfs
> ++      -I$(srcdir)/../libnpfs
> +
> + noinst_LIBRARIES = libnpclient.a
> +
> +diff --git a/scripts/Makefile.am b/scripts/Makefile.am
> +index 51c24a3..2aba728 100644
> +--- a/scripts/Makefile.am
> ++++ b/scripts/Makefile.am
> +@@ -1,9 +1,9 @@
> +-systemddir=$(sysconfdir)/systemd/system
> ++systemddir=/lib/systemd/system
> +
> + install-data-local:
> +-      $(top_srcdir)/config/install-sh -m 755 $(srcdir)/auto.diod \
> ++      $(top_srcdir)/config/install-sh -m 755 ./auto.diod \
> +               $(DESTDIR)$(sysconfdir)/auto.diod
> +-      $(top_srcdir)/config/install-sh -m 755 $(srcdir)/diod.service \
> ++      $(top_srcdir)/config/install-sh -m 644 ./diod.service \
> +               $(DESTDIR)$(systemddir)/diod.service
> +
> + uninstall-local:
> +diff --git a/tests/kern/dbench/Makefile.am b/tests/kern/dbench/Makefile.
> am
> +index e0cdefa..1704f9f 100644
> +--- a/tests/kern/dbench/Makefile.am
> ++++ b/tests/kern/dbench/Makefile.am
> +@@ -2,7 +2,7 @@ AM_CFLAGS = -w
> +
> + # VERSION=4.00
> +
> +-AM_CPPFLAGS = -DDATADIR=\"$(X_DATADIR)\"
> ++AM_CPPFLAGS = -I. -DDATADIR=\"$(X_DATADIR)\"
> +
> + LDADD = $(LIBPOPT)
> +
> +@@ -25,6 +25,6 @@ BUILT_SOURCES = proto.h
> + CLEANFILES = proto.h
> +
> + proto.h: $(dbench_SOURCES) mkproto.pl
> +-      perl mkproto.pl $(dbench_SOURCES) > proto.h
> ++      $(srcdir)/mkproto.pl $(patsubst %,$(srcdir),$(dbench_SOURCES)) >
> proto.h
> +
> + EXTRA_DIST = mkproto.pl
> +diff --git a/utils/Makefile.am b/utils/Makefile.am
> +index 169b6c4..91d571d 100644
> +--- a/utils/Makefile.am
> ++++ b/utils/Makefile.am
> +@@ -1,7 +1,7 @@
> + AM_CFLAGS = @GCCWARN@
> +
> + AM_CPPFLAGS = \
> +-      -I../libnpfs -I../liblsd -I../libdiod -I../libnpclient
> ++      -I$(srcdir)/../libnpfs -I$(srcdir)/../liblsd
> -I$(srcdir)/../libdiod -I$(srcdir)/../libnpclient
> +
> + sbin_PROGRAMS = diodmount diodcat dtop diodload diodls diodshowmount
> dioddate
> +
> +--
> +2.11.0
> +
> diff --git a/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch
> b/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch
> new file mode 100644
> index 0000000..65d6ff6
> --- /dev/null
> +++ b/recipes-extended/diod/files/0002-auto.diod.in-remove-bashisms.patch
> @@ -0,0 +1,47 @@
> +From 5a9e09dc5de833db11607530351cd87cecbfd17e Mon Sep 17 00:00:00 2001
> +From: Roy Li <rongqing.li at windriver.com>
> +Date: Thu, 22 Jun 2017 06:32:30 +0000
> +Subject: [PATCH 2/2] auto.diod.in: remove bashisms
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Roy Li <rongqing.li at windriver.com>
> +---
> + scripts/auto.diod.in | 14 +++++++-------
> + 1 file changed, 7 insertions(+), 7 deletions(-)
> +
> +diff --git a/scripts/auto.diod.in b/scripts/auto.diod.in
> +index f63e004..4d5fc3a 100755
> +--- a/scripts/auto.diod.in
> ++++ b/scripts/auto.diod.in
> +@@ -1,4 +1,4 @@
> +-#!/bin/bash
> ++#!/bin/sh
> + #
> + # auto.diod - executable automounter map for diod file systems
> + #
> +@@ -41,15 +41,15 @@ dcatopts="${DIOD_TIMEOUT:+-t $DIOD_TIMEOUT}"
> + for server in $DIOD_SERVERS; do
> +     $DIOD_DIODCAT -s $server $dcatopts exports | awk '{print $1}' |\
> +     while read path; do
> +-        if [ "$path" == "/" ]; then
> +-            if [ "$key" == "ROOT" ]; then
> ++        if [ "$path" = "/" ]; then
> ++            if [ "$key" = "ROOT" ]; then
> +                 echo "$prefix $server:$path"
> +                 exit 0
> +             fi
> +-        elif [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//./g')" ] \
> +-          || [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//_/g')" ] \
> +-          || [ "$key" == "$(echo $path|sed -e's/^\///' -e's/\//-/g')" ] \
> +-          || [ "$key" == "$(basename $path)" ]; then
> ++        elif [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//./g')" ] \
> ++          || [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//_/g')" ] \
> ++          || [ "$key" = "$(echo $path|sed -e's/^\///' -e's/\//-/g')" ] \
> ++          || [ "$key" = "$(basename $path)" ]; then
> +             echo "$prefix $server:$path"
> +             exit 0
> +         fi
> +--
> +2.11.0
> +
> diff --git a/recipes-extended/diod/files/diod
> b/recipes-extended/diod/files/diod
> new file mode 100644
> index 0000000..cd0bf98
> --- /dev/null
> +++ b/recipes-extended/diod/files/diod
> @@ -0,0 +1,75 @@
> +#!/bin/sh
> +#
> +# chkconfig: 35 20 80
> +# description: Distributed Input Output Daemon
> +#
> +
> +# Get function from functions library
> +. /etc/init.d/functions
> +
> +BASE=diod
> +PIDFILE=/var/run/$BASE.pid
> +PID=`test -f $PIDFILE && cat $PIDFILE`
> +DIOD_BIN=/usr/sbin/$BASE
> +DIOD_CONF=/etc/$BASE.conf
> +DIOD_OPTS="-c $DIOD_CONF"
> +DIOD="$DIOD_BIN $DIOD_OPTS"
> +RETVAL=0
> +
> +# Start the service $BASE
> +start()
> +{
> +       # Force creation of the log directory even on a tmpfs /var/log.
> +       mkdir -p /var/log/diod
> +
> +       start-stop-daemon --stop --test --quiet --pidfile $PIDFILE
> +       status=$?
> +       if [ $status -eq 0 ]; then
> +           echo "diod service is already running with pid $PID"
> +           exit 1
> +       else
> +           echo -n "Starting $BASE:"
> +           start-stop-daemon --start --pidfile $PIDFILE \
> +            --exec $DIOD_BIN -- $DIOD_OPTS
> +           RETVAL=$?
> +           echo
> +           [ $RETVAL -ne 0 ] && exit $RETVAL
> +       fi
> +}
> +
> +# Stop the service $BASE
> +stop()
> +{
> +    echo -n "Stopping $BASE:"
> +    start-stop-daemon --stop --test --quiet --pidfile $PIDFILE
> +    status=$?
> +    if [ $status -eq 0 ]; then
> +        start-stop-daemon --stop --quiet --pidfile $PIDFILE
> +        [ -w $PIDFILE ] && rm -f $PIDFILE
> +    else
> +       start-stop-daemon --stop --quiet --name $BASE
> +    fi
> +}
> +
> +
> +### service arguments ###
> +case $1 in
> +    start)
> +        start
> +        ;;
> +    stop)
> +        stop
> +        ;;
> +    status)
> +        status $BASE
> +        ;;
> +    restart | force-reload)
> +        $0 stop
> +        $0 start
> +        ;;
> +    *)
> +        echo "Usage: $0 {start|stop|status|restart}."
> +        exit 1
> +esac
> +
> +exit 0
> diff --git a/recipes-extended/diod/files/diod.conf
> b/recipes-extended/diod/files/diod.conf
> new file mode 100644
> index 0000000..e97743a
> --- /dev/null
> +++ b/recipes-extended/diod/files/diod.conf
> @@ -0,0 +1,15 @@
> +--
> +-- /etc/diod.conf - config file for diod distributed I/O daemon
> +--
> +-- NOTE: This config file is a lua script that diod runs, then extracts
> +-- the value of certain globally defined variables.  See diod.conf(5).
> +
> +listen = { "0.0.0.0:564" }
> +nwthreads = 16
> +auth_required = 1
> +logdest = "syslog:daemon:err"
> +
> +exports = { "/g/g0", "/g/g10" }
> +
> +allsquash = 0
> +squashuser = "nobody"
> --
> 2.7.4
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization
>



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-virtualization/attachments/20170627/09206553/attachment-0001.html>


More information about the meta-virtualization mailing list