On Fri, May 12, 2017 at 03:09:01PM +0800, jackie.huang@windriver.com wrote: > From: Jackie Huang > > freeDiameter is an open source Diameter protocol > implementation. It provides an extensible platform > for deploying a Diameter network for your Authentication, > Authorization and Accounting needs. lksctp-tools is blacklisted for builds with gold causing: ERROR: Nothing PROVIDES 'lksctp-tools' (but /home/jenkins/oe/world/shr-core/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb DEPENDS on or otherwise requires it) ERROR: lksctp-tools was skipped: Recipe is blacklisted: BROKEN: fails to link against sctp_connectx symbol ERROR: Nothing RPROVIDES 'freediameter' (but /home/jenkins/oe/world/shr-core/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb RDEPENDS on or otherwise requires it) ERROR: No eligible RPROVIDERs exist for 'freediameter' NOTE: Runtime target 'freediameter' is unbuildable, removing... Missing or unbuildable dependency chain was: ['freediameter'] ERROR: Nothing RPROVIDES 'freediameter-dev' (but /home/jenkins/oe/world/shr-core/meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb RDEPENDS on or otherwise requires it) ERROR: No eligible RPROVIDERs exist for 'freediameter-dev' NOTE: Runtime target 'freediameter-dev' is unbuildable, removing... Missing or unbuildable dependency chain was: ['freediameter-dev'] > > Signed-off-by: Jackie Huang > --- > ...murhash-algorithm-with-Robert-Jenkin-s-ha.patch | 223 +++++++++++++++++++++ > .../freediameter/files/freediameter.init | 72 +++++++ > .../freediameter/files/freediameter.service | 11 + > .../freediameter/files/install_test.patch | 22 ++ > .../freediameter/files/pass-ptest-env.patch | 72 +++++++ > .../recipes-protocols/freediameter/files/run-ptest | 11 + > .../freediameter/freediameter.inc | 98 +++++++++ > .../freediameter/freediameter_1.2.1.bb | 7 + > 8 files changed, 516 insertions(+) > create mode 100644 meta-networking/recipes-protocols/freediameter/files/Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch > create mode 100755 meta-networking/recipes-protocols/freediameter/files/freediameter.init > create mode 100644 meta-networking/recipes-protocols/freediameter/files/freediameter.service > create mode 100644 meta-networking/recipes-protocols/freediameter/files/install_test.patch > create mode 100644 meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch > create mode 100644 meta-networking/recipes-protocols/freediameter/files/run-ptest > create mode 100644 meta-networking/recipes-protocols/freediameter/freediameter.inc > create mode 100644 meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb > > diff --git a/meta-networking/recipes-protocols/freediameter/files/Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch b/meta-networking/recipes-protocols/freediameter/files/Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch > new file mode 100644 > index 000000000..71a5a1ae4 > --- /dev/null > +++ b/meta-networking/recipes-protocols/freediameter/files/Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch > @@ -0,0 +1,223 @@ > +Replace murmurhash algorithm with Robert Jenkin's hash algorithm > + > +Upstream-Status: Pending > + > +From test result, murmurhash algorithm does not work in big endian > +processor, so replace it with Robert Jenkin's hash which has worked > +in linux kernel for many years and has more adaptability. > + > +Signed-off-by: Roy.Li > +--- > + libfdproto/ostr.c | 192 +++++++++++++++++++++-------------------------------- > + 1 file changed, 74 insertions(+), 118 deletions(-) > + > +diff --git a/libfdproto/ostr.c b/libfdproto/ostr.c > +index 8f29b48..ce1f4dd 100644 > +--- a/libfdproto/ostr.c > ++++ b/libfdproto/ostr.c > +@@ -430,128 +430,84 @@ after_proto: > + > + > + /********************************************************************************************************/ > +-/* Hash function -- credits to Austin Appleby, thank you ^^ */ > +-/* See http://murmurhash.googlepages.com for more information on this function */ > +- > +-/* the strings are NOT always aligned properly (ex: received in RADIUS message), so we use the aligned MurmurHash2 function as needed */ > +-#define _HASH_MIX(h,k,m) { k *= m; k ^= k >> r; k *= m; h *= m; h ^= k; } > +-uint32_t fd_os_hash ( uint8_t * string, size_t len ) > ++/* > ++ * Robert Jenkin's hash function. > ++ * http://burtleburtle.net/bob/hash/evahash.html > ++ * This is in the public domain. > ++ */ > ++#define mix(a, b, c) \ > ++ do { \ > ++ a = a - b; a = a - c; a = a ^ (c >> 13); \ > ++ b = b - c; b = b - a; b = b ^ (a << 8); \ > ++ c = c - a; c = c - b; c = c ^ (b >> 13); \ > ++ a = a - b; a = a - c; a = a ^ (c >> 12); \ > ++ b = b - c; b = b - a; b = b ^ (a << 16); \ > ++ c = c - a; c = c - b; c = c ^ (b >> 5); \ > ++ a = a - b; a = a - c; a = a ^ (c >> 3); \ > ++ b = b - c; b = b - a; b = b ^ (a << 10); \ > ++ c = c - a; c = c - b; c = c ^ (b >> 15); \ > ++ } while (0) > ++ > ++unsigned hash_rjenkins(const char *str, unsigned length) > + { > +- uint32_t hash = len; > +- uint8_t * data = string; > +- > +- const unsigned int m = 0x5bd1e995; > +- const int r = 24; > +- int align = (long)string & 3; > +- > +- if (!align || (len < 4)) { > +- /* In case data is aligned, MurmurHash2 function */ > +- while(len >= 4) > +- { > +- /* Mix 4 bytes at a time into the hash */ > +- uint32_t k = *(uint32_t *)data; /* We don't care about the byte order */ > +- > +- _HASH_MIX(hash, k, m); > +- > +- data += 4; > +- len -= 4; > +- } > +- > +- /* Handle the last few bytes of the input */ > +- switch(len) { > +- case 3: hash ^= data[2] << 16; > +- case 2: hash ^= data[1] << 8; > +- case 1: hash ^= data[0]; > +- hash *= m; > +- } > +- > +- } else { > +- /* Unaligned data, use alignment-safe slower version */ > +- > +- /* Pre-load the temp registers */ > +- uint32_t t = 0, d = 0; > +- switch(align) > +- { > +- case 1: t |= data[2] << 16; > +- case 2: t |= data[1] << 8; > +- case 3: t |= data[0]; > +- } > +- t <<= (8 * align); > +- > +- data += 4-align; > +- len -= 4-align; > +- > +- /* From this point, "data" can be read by chunks of 4 bytes */ > +- > +- int sl = 8 * (4-align); > +- int sr = 8 * align; > +- > +- /* Mix */ > +- while(len >= 4) > +- { > +- uint32_t k; > +- > +- d = *(unsigned int *)data; > +- k = (t >> sr) | (d << sl); > +- > +- _HASH_MIX(hash, k, m); > +- > +- t = d; > +- > +- data += 4; > +- len -= 4; > +- } > +- > +- /* Handle leftover data in temp registers */ > +- d = 0; > +- if(len >= align) > +- { > +- uint32_t k; > +- > +- switch(align) > +- { > +- case 3: d |= data[2] << 16; > +- case 2: d |= data[1] << 8; > +- case 1: d |= data[0]; > +- } > +- > +- k = (t >> sr) | (d << sl); > +- _HASH_MIX(hash, k, m); > +- > +- data += align; > +- len -= align; > +- > +- /* Handle tail bytes */ > +- > +- switch(len) > +- { > +- case 3: hash ^= data[2] << 16; > +- case 2: hash ^= data[1] << 8; > +- case 1: hash ^= data[0]; > +- hash *= m; > +- }; > +- } > +- else > +- { > +- switch(len) > +- { > +- case 3: d |= data[2] << 16; > +- case 2: d |= data[1] << 8; > +- case 1: d |= data[0]; > +- case 0: hash ^= (t >> sr) | (d << sl); > +- hash *= m; > +- } > +- } > +- > ++ const unsigned char *k = (const unsigned char *)str; > ++ uint32_t a, b, c; /* the internal state */ > ++ uint32_t len; /* how many key bytes still need mixing */ > ++ > ++ /* Set up the internal state */ > ++ len = length; > ++ a = 0x9e3779b9; /* the golden ratio; an arbitrary value */ > ++ b = a; > ++ c = 0; /* variable initialization of internal state */ > ++ > ++ /* handle most of the key */ > ++ while (len >= 12) { > ++ a = a + (k[0] + ((uint32_t)k[1] << 8) + ((uint32_t)k[2] << 16) + > ++ ((uint32_t)k[3] << 24)); > ++ b = b + (k[4] + ((uint32_t)k[5] << 8) + ((uint32_t)k[6] << 16) + > ++ ((uint32_t)k[7] << 24)); > ++ c = c + (k[8] + ((uint32_t)k[9] << 8) + ((uint32_t)k[10] << 16) + > ++ ((uint32_t)k[11] << 24)); > ++ mix(a, b, c); > ++ k = k + 12; > ++ len = len - 12; > ++ } > + > ++ /* handle the last 11 bytes */ > ++ c = c + length; > ++ switch (len) { /* all the case statements fall through */ > ++ case 11: > ++ c = c + ((uint32_t)k[10] << 24); > ++ case 10: > ++ c = c + ((uint32_t)k[9] << 16); > ++ case 9: > ++ c = c + ((uint32_t)k[8] << 8); > ++ /* the first byte of c is reserved for the length */ > ++ case 8: > ++ b = b + ((uint32_t)k[7] << 24); > ++ case 7: > ++ b = b + ((uint32_t)k[6] << 16); > ++ case 6: > ++ b = b + ((uint32_t)k[5] << 8); > ++ case 5: > ++ b = b + k[4]; > ++ case 4: > ++ a = a + ((uint32_t)k[3] << 24); > ++ case 3: > ++ a = a + ((uint32_t)k[2] << 16); > ++ case 2: > ++ a = a + ((uint32_t)k[1] << 8); > ++ case 1: > ++ a = a + k[0]; > ++ /* case 0: nothing left to add */ > + } > ++ mix(a, b, c); > + > +- /* Do a few final mixes of the hash to ensure the last few > +- bytes are well-incorporated. */ > +- hash ^= hash >> 13; > +- hash *= m; > +- hash ^= hash >> 15; > ++ return c; > ++} > + > +- return hash; > ++uint32_t fd_os_hash ( uint8_t * string, size_t len ) > ++{ > ++ return hash_rjenkins(string, len); > + } > + > +-- > +1.7.10.4 > + > diff --git a/meta-networking/recipes-protocols/freediameter/files/freediameter.init b/meta-networking/recipes-protocols/freediameter/files/freediameter.init > new file mode 100755 > index 000000000..e63a42a7c > --- /dev/null > +++ b/meta-networking/recipes-protocols/freediameter/files/freediameter.init > @@ -0,0 +1,72 @@ > +#!/bin/sh > +# > +### BEGIN INIT INFO > +# Provides: freediameter > +# Default-Start: 2 3 4 5 > +# Default-Stop: 0 1 6 > +# Required-Start: $remote_fs $syslog > +# Required-Stop: $remote_fs $syslog > +# Short-Description: Start freeDiameter daemon at boot time > +# Description: Start the freeDiameter daemon at boot time. > +# freeDiameter is an extensible implementation of the Diameter protocol, > +# designed for Authentication, Authorization and Accounting. Diameter is > +# an evolution of the RADIUS protocol. > +### END INIT INFO# > +DAEMON=/usr/bin/freeDiameterd > +CONF=/etc/freeDiameter/freeDiameter.conf > +NAME=freediameter > +DESC="freeDiameter daemon" > + > +. /etc/init.d/functions > +start() { > + [ -x $DAEMON ] || exit 5 > + echo -n $"Starting $DAEMON: " > + start-stop-daemon -S -b -x ${DAEMON} && success || failure > + retval=$? > + echo "" > + return $retval > +} > + > +stop() { > + echo -n $"Stopping $prog: " > + start-stop-daemon -K -x $DAEMON > + retval=$? > + echo "" > + return $retval > +} > + > +restart() { > + stop > + sleep 3 > + start > +} > + > +rh_status() { > + status $DAEMON > +} > + > +rh_status_q() { > + rh_status > /dev/null 2>&1 > +} > + > +case "$1" in > + start) > + rh_status_q && exit 0 > + start > + ;; > + stop) > + rh_status_q || exit 0 > + stop > + ;; > + restart) > + restart > + ;; > + status) > + rh_status > + ;; > + *) > + echo $"Usage: $prog {start|stop|status|restart}" > + exit 2 > +esac > + > +exit $? > diff --git a/meta-networking/recipes-protocols/freediameter/files/freediameter.service b/meta-networking/recipes-protocols/freediameter/files/freediameter.service > new file mode 100644 > index 000000000..514481b43 > --- /dev/null > +++ b/meta-networking/recipes-protocols/freediameter/files/freediameter.service > @@ -0,0 +1,11 @@ > +[Unit] > +Description=freediameter daemon > +After=network.target > + > +[Service] > +Type=simple > +PIDFile=/var/run/freediameter.pid > +ExecStart=@BINDIR@/freeDiameterd > + > +[Install] > +WantedBy=multi-user.target > diff --git a/meta-networking/recipes-protocols/freediameter/files/install_test.patch b/meta-networking/recipes-protocols/freediameter/files/install_test.patch > new file mode 100644 > index 000000000..151037d69 > --- /dev/null > +++ b/meta-networking/recipes-protocols/freediameter/files/install_test.patch > @@ -0,0 +1,22 @@ > +CMakeLists: add an option to install tests > + > +Upstream-Status: Inappropriate [OE ptest specific] > + > +Original author: Yao Zhao > +Signed-off-by: Jackie Huang > + > +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt > +index da8da1b..de04059 100644 > +--- a/tests/CMakeLists.txt > ++++ b/tests/CMakeLists.txt > +@@ -113,4 +113,9 @@ ENDFOREACH( TEST ) > + #### > + ## INSTALL section ## > + > +-# we do not install the tests > ++# install the tests > ++SET(INSTALL_TEST_SUFFIX /opt/${FD_PROJECT_NAME}-tests CACHE PATH "Directory where the test binary is installed.") > ++ > ++INSTALL(TARGETS ${TEST_LIST} > ++ RUNTIME DESTINATION ${INSTALL_TEST_SUFFIX} > ++ COMPONENT freeDiameter-common) > diff --git a/meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch b/meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch > new file mode 100644 > index 000000000..ea857af7d > --- /dev/null > +++ b/meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch > @@ -0,0 +1,72 @@ > +freediameter ptest cases testmesg_stress.c and testloadext.c need load > +extensions both build time and runtime. Then they search extensions with > +build directory that causes runtime failures. > + > +Pass an environment variable to define runtime extension path. > + > +Upstream-Status: Inappropriate [OE ptest specific] > + > +Signed-off-by: Kai Kang > +Signed-off-by: Jackie Huang > + > +diff -Nur freeDiameter-1.2.0.orig/tests/testloadext.c freeDiameter-1.2.0/tests/testloadext.c > +--- freeDiameter-1.2.0.orig/tests/testloadext.c 2014-02-19 17:33:24.785405032 +0800 > ++++ freeDiameter-1.2.0/tests/testloadext.c 2014-02-19 20:08:03.871403924 +0800 > +@@ -49,7 +49,7 @@ > + { > + DIR *dir; > + struct dirent *dp; > +- char fullname[512]; > ++ char fullname[1024]; > + int pathlen; > + > + /* First, initialize the daemon modules */ > +@@ -57,11 +57,16 @@ > + CHECK( 0, fd_queues_init() ); > + CHECK( 0, fd_msg_init() ); > + CHECK( 0, fd_rtdisp_init() ); > +- > ++ > ++ char *ext_dir = getenv("EXTENSIONS_DIR"); > ++ if (ext_dir) > ++ pathlen = snprintf(fullname, sizeof(fullname), "%s", ext_dir); > ++ else > ++ pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/"); > ++ > + /* Find all extensions which have been compiled along the test */ > +- TRACE_DEBUG(INFO, "Loading from: '%s'", BUILD_DIR "/extensions"); > +- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 ); > +- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/"); > ++ TRACE_DEBUG(INFO, "Loading from: '%s'", fullname); > ++ CHECK( 0, (dir = opendir (fullname)) == NULL ? 1 : 0 ); > + > + while ((dp = readdir (dir)) != NULL) { > + char * dot = strrchr(dp->d_name, '.'); > +diff -Nur freeDiameter-1.2.0.orig/tests/testmesg_stress.c freeDiameter-1.2.0/tests/testmesg_stress.c > +--- freeDiameter-1.2.0.orig/tests/testmesg_stress.c 2014-02-19 17:33:24.785405032 +0800 > ++++ freeDiameter-1.2.0/tests/testmesg_stress.c 2014-02-19 20:08:03.928403924 +0800 > +@@ -67,15 +67,20 @@ > + { > + DIR *dir; > + struct dirent *dp; > +- char fullname[512]; > ++ char fullname[1024]; > + int pathlen; > + struct fd_list all_extensions = FD_LIST_INITIALIZER(all_extensions); > + struct fd_list ext_with_depends = FD_LIST_INITIALIZER(ext_with_depends); > + > ++ char *ext_dir = getenv("EXTENSIONS_DIR"); > ++ if (ext_dir) > ++ pathlen = snprintf(fullname, sizeof(fullname), "%s", ext_dir); > ++ else > ++ pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/"); > ++ > + /* Find all extensions which have been compiled along the test */ > +- LOG_D("Loading %s*.fdx from: '%s'", BUILD_DIR "/extensions", prefix ?: ""); > +- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 ); > +- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/"); > ++ TRACE_DEBUG(INFO, "Loading from: '%s'", fullname); > ++ CHECK( 0, (dir = opendir (fullname)) == NULL ? 1 : 0 ); > + > + while ((dp = readdir (dir)) != NULL) { > + char * dot = strrchr(dp->d_name, '.'); > diff --git a/meta-networking/recipes-protocols/freediameter/files/run-ptest b/meta-networking/recipes-protocols/freediameter/files/run-ptest > new file mode 100644 > index 000000000..d0ca8d962 > --- /dev/null > +++ b/meta-networking/recipes-protocols/freediameter/files/run-ptest > @@ -0,0 +1,11 @@ > +#!/bin/sh > + > +if ! lsmod | grep -q sctp && ! modprobe sctp 2>/dev/null; then > + echo "Couldn't load kernel module sctp." > + echo "Test cases testsctp and testcnx will fail." > + echo > +fi > + > +export EXTENSIONS_DIR=$EXTENSIONS_DIR > +cmake -E cmake_echo_color --cyan "Running tests..." > +ctest --force-new-ctest-process > diff --git a/meta-networking/recipes-protocols/freediameter/freediameter.inc b/meta-networking/recipes-protocols/freediameter/freediameter.inc > new file mode 100644 > index 000000000..6880d26f2 > --- /dev/null > +++ b/meta-networking/recipes-protocols/freediameter/freediameter.inc > @@ -0,0 +1,98 @@ > +SUMMARY = "An open source implementation of the diameter protocol" > +DESCRIPTION = "\ > +freeDiameter is an open source Diameter protocol implementation. It \ > +provides an extensible platform for deploying a Diameter network for \ > +your Authentication, Authorization and Accounting needs." > + > +HOMEPAGE = "http://www.freediameter.net" > + > +DEPENDS = "flex bison cmake-native libgcrypt gnutls libidn lksctp-tools" > + > +pkgname = "freeDiameter" > + > +SRC_URI = "http://www.freediameter.net/hg/${pkgname}/archive/${PV}.tar.gz;downloadfilename=${pkgname}-${PV}.tar.gz \ > + file://Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch \ > + file://freediameter.service \ > + file://freediameter.init \ > + \ > + ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', \ > + 'file://install_test.patch \ > + file://run-ptest \ > + file://pass-ptest-env.patch', '', d)} \ > + " > + > +S = "${WORKDIR}/${pkgname}-${PV}" > + > +PTEST_PATH = "${libdir}/${pkgname}/ptest" > + > +inherit cmake update-rc.d ptest systemd > + > +EXTRA_OECMAKE = " \ > + -DDEFAULT_CONF_PATH:PATH=${sysconfdir}/${pkgname} \ > + -DBUILD_DBG_MONITOR:BOOL=ON \ > + -DBUILD_TEST_APP:BOOL=ON \ > + -DBUILD_TESTING:BOOL=ON \ > + -DBUILD_APP_RADGW:BOOL=ON \ > + -DBUILD_APP_REDIRECT:BOOL=ON \ > + -DBUILD_TEST_ACCT:BOOL=ON \ > + -DBUILD_TEST_NETEMUL:BOOL=ON \ > + -DBUILD_TEST_RT_ANY:BOOL=ON \ > + -DINSTALL_LIBRARY_SUFFIX:PATH=${baselib} \ > + -DINSTALL_EXTENSIONS_SUFFIX:PATH=${baselib}/${pkgname} \ > + -DINSTALL_TEST_SUFFIX:PATH=${PTEST_PATH}-tests \ > + -DCMAKE_SKIP_RPATH:BOOL=ON \ > +" > +# INSTALL_LIBRARY_SUFFIX is relative to CMAKE_INSTALL_PREFIX > +# specify it on cmd line will fix the SET bug in CMakeList.txt > + > +# -DBUILD_APP_ACCT:BOOL=ON This needs POSTGRESQL support > + > +# -DBUILD_APP_DIAMEAP:BOOL=ON -DBUILD_APP_SIP:BOOL=ON -DBUILD_TEST_SIP:BOOL=ON > +# These need MySQL support > + > +# -DBUILD_DBG_INTERACTIVE:BOOL=ON This needs SWIG support > + > +# -DALL_EXTENSIONS=ON will enable all > + > +do_install_append() { > + # install the sample configuration file > + install -d -m 0755 ${D}${sysconfdir}/${pkgname} > + for i in ${S}/doc/*.conf.sample; do > + install -m 0644 $i ${D}${sysconfdir}/${pkgname}/ > + done > + mv ${D}${sysconfdir}/${pkgname}/freediameter.conf.sample \ > + ${D}${sysconfdir}/${pkgname}/freeDiameter.conf.sample > + > + # install daemon init related files > + install -d -m 0755 ${D}${sysconfdir}/default > + install -d -m 0755 ${D}${sysconfdir}/init.d > + install -m 0644 ${S}/contrib/debian/freediameter-daemon.default \ > + ${D}${sysconfdir}/default/${BPN} > + install -m 0755 ${WORKDIR}/freediameter.init ${D}${sysconfdir}/init.d/${BPN} > + > + # install for systemd > + install -d ${D}${systemd_system_unitdir} > + install -m 0644 ${WORKDIR}/freediameter.service ${D}${systemd_system_unitdir} > + sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/*.service > +} > + > +do_install_ptest() { > + sed -i "s#\(EXTENSIONS_DIR=\).*\$#\1${libdir}/${pkgname}/#" ${D}${PTEST_PATH}/run-ptest > + mv ${D}${PTEST_PATH}-tests/* ${D}${PTEST_PATH}/ > + rmdir ${D}${PTEST_PATH}-tests > + install -m 0644 ${B}/tests/CTestTestfile.cmake ${D}${PTEST_PATH}/ > +} > + > +FILES_${PN}-dbg += "${libdir}/${pkgname}/.debug/*" > + > +# include the extensions in main package > +FILES_${PN} += "${libdir}/${pkgname}/*" > + > +RDEPENDS_${PN} = "glib-2.0 gnutls libidn" > +RDEPENDS_${PN}-ptest = "cmake" > + > +INITSCRIPT_NAME = "${BPN}" > +INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ." > + > +SYSTEMD_SERVICE_${PN} = "freediameter.service" > +SYSTEMD_AUTO_ENABLE = "disable" > diff --git a/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb b/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb > new file mode 100644 > index 000000000..3fb929aa0 > --- /dev/null > +++ b/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb > @@ -0,0 +1,7 @@ > +include freediameter.inc > + > +LICENSE = "BSD" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=892b2ed6ae815488a08416ff7ee74a35" > + > +SRC_URI[md5sum] = "61b1062aa144b5f12eed514611e6d697" > +SRC_URI[sha256sum] = "bd7f105542e9903e776aa006c6931c1f5d3d477cb59af33a9162422efa477097" > -- > 2.11.0 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel -- Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com