1SUMMARY = "An open source implementation of the diameter protocol" 2DESCRIPTION = "\ 3freeDiameter is an open source Diameter protocol implementation \ 4(RFC3588). It provides an extensible platform for deploying a \ 5Diameter network for your Authentication, Authorization and \ 6Accounting needs." 7 8HOMEPAGE = "http://www.freediameter.net" 9 10DEPENDS = "flex bison cmake-native libgcrypt gnutls libidn lksctp-tools virtual/kernel bison-native" 11 12PACKAGE_ARCH = "${MACHINE_ARCH}" 13 14fd_pkgname = "freeDiameter" 15 16SRC_URI = "\ 17 http://www.freediameter.net/hg/${fd_pkgname}/archive/${PV}.tar.gz;downloadfilename=${fd_pkgname}-${PV}.tar.gz \ 18 file://Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch \ 19 file://freediameter.service \ 20 file://freediameter.init \ 21 ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://install_test.patch file://run-ptest file://pass-ptest-env.patch', '', d)} \ 22 file://freeDiameter.conf \ 23 file://0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch \ 24 " 25 26SRC_URI[sha256sum] = "7a537401bd110c606594b7c6be71b993f0ccc73ae151ad68040979286ba4e50e" 27 28S = "${WORKDIR}/${fd_pkgname}-${PV}" 29 30LICENSE = "BSD-3-Clause" 31LIC_FILES_CHKSUM = "file://LICENSE;md5=69bdc1d97648a2d35914563fcbbb361a" 32 33PTEST_PATH = "${libdir}/${fd_pkgname}/ptest" 34 35inherit cmake pkgconfig update-rc.d ptest systemd 36 37EXTRA_OECMAKE = " \ 38 -DDEFAULT_CONF_PATH:PATH=${sysconfdir}/${fd_pkgname} \ 39 -DBUILD_DBG_MONITOR:BOOL=ON \ 40 -DBUILD_TEST_APP:BOOL=ON \ 41 -DBUILD_TESTING:BOOL=ON \ 42 -DBUILD_APP_RADGW:BOOL=ON \ 43 -DBUILD_APP_REDIRECT:BOOL=ON \ 44 -DBUILD_TEST_ACCT:BOOL=ON \ 45 -DBUILD_TEST_NETEMUL:BOOL=ON \ 46 -DBUILD_TEST_RT_ANY:BOOL=ON \ 47 -DINSTALL_LIBRARY_SUFFIX:PATH=${baselib} \ 48 -DINSTALL_EXTENSIONS_SUFFIX:PATH=${baselib}/${fd_pkgname} \ 49 -DINSTALL_TEST_SUFFIX:PATH=${PTEST_PATH}-tests \ 50 -DCMAKE_SKIP_RPATH:BOOL=ON \ 51" 52# INSTALL_LIBRARY_SUFFIX is relative to CMAKE_INSTALL_PREFIX 53# specify it on cmd line will fix the SET bug in CMakeList.txt 54 55# -DBUILD_APP_ACCT:BOOL=ON This needs POSTGRESQL support 56 57# -DBUILD_APP_DIAMEAP:BOOL=ON -DBUILD_APP_SIP:BOOL=ON -DBUILD_TEST_SIP:BOOL=ON 58# These need MySQL support 59 60# -DBUILD_DBG_INTERACTIVE:BOOL=ON This needs SWIG support 61 62# -DALL_EXTENSIONS=ON will enable all 63 64FD_KEY ?="${BPN}.key" 65FD_PEM ?= "${BPN}.pem" 66FD_CA ?= "${BPN}.pem" 67FD_DH_PEM ?= "${BPN}-dh.pem" 68FD_HOSTNAME ?= "${MACHINE}" 69FD_REALM ?= "openembedded.org" 70 71do_install:append() { 72 # install the sample configuration files 73 install -d -m 0755 ${D}${sysconfdir}/${fd_pkgname} 74 for i in ${S}/doc/*.conf.sample; do 75 install -m 0644 $i ${D}${sysconfdir}/${fd_pkgname}/ 76 done 77 mv ${D}${sysconfdir}/${fd_pkgname}/freediameter.conf.sample \ 78 ${D}${sysconfdir}/${fd_pkgname}/freeDiameter.conf.sample 79 install -d ${D}${sysconfdir}/freeDiameter 80 install ${WORKDIR}/freeDiameter.conf ${D}${sysconfdir}/${fd_pkgname}/freeDiameter.conf 81 82 # install daemon init related files 83 install -d -m 0755 ${D}${sysconfdir}/default 84 install -d -m 0755 ${D}${sysconfdir}/init.d 85 install -m 0644 ${S}/contrib/debian/freediameter-daemon.default \ 86 ${D}${sysconfdir}/default/${BPN} 87 install -m 0755 ${WORKDIR}/freediameter.init ${D}${sysconfdir}/init.d/${BPN} 88 89 # install for systemd 90 install -d ${D}${systemd_system_unitdir} 91 install -m 0644 ${WORKDIR}/freediameter.service ${D}${systemd_system_unitdir} 92 sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/*.service 93 94 cat >> ${D}${sysconfdir}/freeDiameter/freeDiameter.conf <<EOF 95## OE specific ## 96#Identity="${FD_HOSTNAME}"; 97Identity = "${FD_HOSTNAME}.${FD_REALM}"; 98Realm = "${FD_REALM}"; 99Port = 30868; 100SecPort = 30869; 101TLS_Cred = "/etc/freeDiameter/${FD_PEM}" , "/etc/freeDiameter/${FD_KEY}"; 102TLS_CA = "/etc/freeDiameter/${FD_CA}"; 103TLS_DH_File = "/etc/freeDiameter/${FD_DH_PEM}"; 104EOF 105 106 # create self cert 107 openssl req -x509 -config ${STAGING_DIR_NATIVE}/etc/ssl/openssl.cnf -newkey rsa:4096 -sha256 -nodes -out ${D}${sysconfdir}/freeDiameter/${FD_PEM} -keyout ${D}${sysconfdir}/freeDiameter/${FD_KEY} -days 3650 -subj '/CN=${FD_HOSTNAME}.${FD_REALM}' 108 openssl dhparam -out ${D}${sysconfdir}/freeDiameter/${FD_DH_PEM} 1024 109 110} 111 112do_install_ptest() { 113 sed -i "s#\(EXTENSIONS_DIR=\).*\$#\1${libdir}/${fd_pkgname}/#" ${D}${PTEST_PATH}/run-ptest 114 mv ${D}${PTEST_PATH}-tests/* ${D}${PTEST_PATH}/ 115 rmdir ${D}${PTEST_PATH}-tests 116 install -m 0644 ${B}/tests/CTestTestfile.cmake ${D}${PTEST_PATH}/ 117} 118 119FILES:${PN}-dbg += "${libdir}/${fd_pkgname}/.debug/*" 120 121# include the extensions in main package 122FILES:${PN} += "${libdir}/${fd_pkgname}/*" 123 124RDEPENDS:${PN} = "glib-2.0 gnutls libidn" 125RDEPENDS:${PN} += "openssl openssl-conf openssl-engines" 126RRECOMMENDS:${PN} += "kernel-module-tipc kernel-module-sctp" 127RRECOMMENDS:${PN} += "kernel-module-udp-tunnel kernel-module-ipip" 128RDEPENDS:${PN}-ptest = "cmake" 129 130INITSCRIPT_PACKAGES = "${PN}" 131INITSCRIPT_NAME:${PN} = "${BPN}" 132INITSCRIPT_PARAMS$_${PN} = "start 30 . stop 70 0 1 2 3 4 5 6 ." 133 134SYSTEMD_SERVICE:${PN} = "freediameter.service" 135SYSTEMD_AUTO_ENABLE = "disable" 136 137CONFFILES:${PN} = "${sysconfdir}/freediameter.conf" 138 139