diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-02-01 18:27:11 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-03-13 05:51:39 +0300 |
commit | 6e60e8b2b2bab889379b380a28a167a0edd9d1d3 (patch) | |
tree | f12f54d5ba8e74e67e5fad3651a1e125bb8f4191 /import-layers/meta-openembedded/meta-networking | |
parent | 509842add85b53e13164c1569a1fd43d5b8d91c5 (diff) | |
download | openbmc-6e60e8b2b2bab889379b380a28a167a0edd9d1d3.tar.xz |
Yocto 2.3
Move OpenBMC to Yocto 2.3(pyro).
Tested: Built and verified Witherspoon and Palmetto images
Change-Id: I50744030e771f4850afc2a93a10d3507e76d36bc
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Resolves: openbmc/openbmc#2461
Diffstat (limited to 'import-layers/meta-openembedded/meta-networking')
298 files changed, 14133 insertions, 2157 deletions
diff --git a/import-layers/meta-openembedded/meta-networking/MAINTAINERS b/import-layers/meta-openembedded/meta-networking/MAINTAINERS index 53593ae035..8e6e3a0f9f 100644 --- a/import-layers/meta-openembedded/meta-networking/MAINTAINERS +++ b/import-layers/meta-openembedded/meta-networking/MAINTAINERS @@ -2,19 +2,19 @@ This file contains a list of maintainers for the meta-networking layer. Please submit any patches against meta-networking to the OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org) with -'[meta-networking]' in the subject. +'[meta-networking][pyro]' in the subject. When sending single patches, please use something like: git send-email -1 -M \ --to openembedded-devel@lists.openembedded.org \ - --subject-prefix=meta-networking][morty][PATCH + --subject-prefix=meta-networking][pyro][PATCH -You may also contact the maintainers directly. - -morty branch maintainer(s): +pyro Branch Maintainer: Armin Kuster <akuster808@gmail.com> +You may also contact the maintainers directly. + Descriptions of section entries: M: Mail patches to: FullName <address@domain> diff --git a/import-layers/meta-openembedded/meta-networking/README b/import-layers/meta-openembedded/meta-networking/README index 329db4fd8e..e1ba27d83b 100644 --- a/import-layers/meta-openembedded/meta-networking/README +++ b/import-layers/meta-openembedded/meta-networking/README @@ -18,19 +18,19 @@ Dependencies This layer depends on: URI: git://github.com/openembedded/openembedded-core.git -branch: morty +branch: master revision: HEAD For some recipes, the meta-oe layer is required: URI: git://github.com/openembedded/meta-openembedded.git subdirectory: meta-oe -branch: morty +branch: master revision: HEAD URI: git://github.com/openembedded/meta-openembedded.git subdirectory: meta-python -branch: morty +branch: master revision: HEAD Maintenance diff --git a/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass b/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass index af4c7d0bee..e490176241 100644 --- a/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass +++ b/import-layers/meta-openembedded/meta-networking/classes/waf-samba.bbclass @@ -1,7 +1,7 @@ # waf is a build system which is used by samba related project. # Obtain details from https://wiki.samba.org/index.php/Waf # -inherit qemu pythonnative +inherit qemu pythonnative waf DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python" @@ -45,6 +45,7 @@ CROSS_METHOD ?= "answer" do_configure() { # Prepare the cross-answers file + WAF_CROSS_ANSWERS_PATH="${THISDIR}/../../files/waf-cross-answers" CROSS_ANSWERS="${B}/cross-answers-${TARGET_ARCH}.txt" if [ -e ${CROSS_ANSWERS} ]; then rm -f ${CROSS_ANSWERS} @@ -86,7 +87,7 @@ do_configure() { } do_compile () { - python ./buildtools/bin/waf ${PARALLEL_MAKE} + python ./buildtools/bin/waf ${@get_waf_parallel_make(d)} } do_install() { diff --git a/import-layers/meta-openembedded/meta-networking/conf/layer.conf b/import-layers/meta-openembedded/meta-networking/conf/layer.conf index c09ba4a478..b5aa1599b6 100644 --- a/import-layers/meta-openembedded/meta-networking/conf/layer.conf +++ b/import-layers/meta-openembedded/meta-networking/conf/layer.conf @@ -19,8 +19,9 @@ LAYERDEPENDS_networking-layer += "meta-python" LICENSE_PATH += "${LAYERDIR}/licenses" -# used by waf-samba.bbclass -WAF_CROSS_ANSWERS_PATH = "${LAYERDIR}/files/waf-cross-answers" - # Override security flags require conf/distro/include/meta_networking_security_flags.inc + +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ + wireguard-tools->wireguard-module \ +" diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt index bbf7f16203..1023f6aff3 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt @@ -36,3 +36,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt index e926fcd3ce..a5cd9981a3 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-arm.txt @@ -37,3 +37,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt index e926fcd3ce..a5cd9981a3 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i586.txt @@ -37,3 +37,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt index e926fcd3ce..a5cd9981a3 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-i686.txt @@ -37,3 +37,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt index 18bfa0203b..3e239e727f 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips.txt @@ -37,3 +37,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt index 8fa015ab90..82e694fdaf 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt @@ -36,3 +36,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt index 18bfa0203b..3e239e727f 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt @@ -37,3 +37,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt index fb93b56fc3..27b9378a42 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt @@ -37,3 +37,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt index fd585f0d5b..7fd3092cb9 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt @@ -37,3 +37,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt index bbf7f16203..1023f6aff3 100644 --- a/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt +++ b/import-layers/meta-openembedded/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt @@ -36,3 +36,4 @@ getcwd takes a NULL argument: OK Checking for small off_t: NO Checking whether blkcnt_t is 32 bit: NO Checking whether blkcnt_t is 64 bit: OK +Checking whether fcntl lock supports open file description locks: OK diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb index dbddd55cba..82a297b33e 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/crda/crda_3.18.bb @@ -4,7 +4,7 @@ SECTION = "net" LICENSE = "copyleft-next-0.3.0" LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe" -DEPENDS = "python-m2crypto-native python-native libgcrypt libnl openssl" +DEPENDS = "python-m2crypto-native python-typing-native python-native libgcrypt libnl openssl" SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \ file://do-not-run-ldconfig-if-destdir-is-set.patch \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb index 3ed3aab985..47cb163e6f 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb @@ -9,7 +9,9 @@ PARALLEL_MAKE = "" DEPENDS = "libpcap libpcre libdnet" SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \ - file://disable-run-test-program-while-cross-compiling.patch " + file://disable-run-test-program-while-cross-compiling.patch \ + file://0001-correct-the-location-of-unistd.h.patch \ + " # these 2 create undeclared dependency on libdnet and libnetfilter-queue from meta-networking # this error from test-dependencies script: @@ -20,7 +22,7 @@ SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \ EXTRA_OECONF = "--disable-nfq-module --disable-ipq-module --includedir=${includedir} \ --with-libpcap-includes=${STAGING_INCDIR} --with-dnet-includes=${STAGING_LIBDIR}" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," SRC_URI[md5sum] = "2cd6da422a72c129c685fc4bb848c24c" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch new file mode 100644 index 0000000000..4798a77f55 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch @@ -0,0 +1,29 @@ +From 10e7d4e4bfcb70344d18f0d4ce36068475747f25 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 29 Mar 2017 15:59:43 -0700 +Subject: [PATCH] correct the location of unistd.h + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + os-daq-modules/daq_ipfw.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/os-daq-modules/daq_ipfw.c b/os-daq-modules/daq_ipfw.c +index 016beb0..c2a4175 100644 +--- a/os-daq-modules/daq_ipfw.c ++++ b/os-daq-modules/daq_ipfw.c +@@ -23,10 +23,10 @@ + #include <stdlib.h> + #include <string.h> + #include <stdio.h> ++#include <unistd.h> + + #include <sys/types.h> + #include <sys/time.h> +-#include <sys/unistd.h> + + #include <netinet/in.h> + #include <sys/socket.h> +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb index 197dfb1a4e..cb3b5c22f5 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.3.bb @@ -14,7 +14,7 @@ SRC_URI[sha256sum] = "5abd12c4df2947d608f60a35227f9bf8ae8ab9de06ce975cdab1144d8f inherit autotools-brokensep -PACKAGECONFIG ?= "udev ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}" +PACKAGECONFIG ?= "udev ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev,udev" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch new file mode 100644 index 0000000000..42d2627a1a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch @@ -0,0 +1,48 @@ +Index: git/ClntMessages/ClntMsgRequest.cpp +=================================================================== +--- git.orig/ClntMessages/ClntMsgRequest.cpp ++++ git/ClntMessages/ClntMsgRequest.cpp +@@ -142,7 +142,10 @@ TClntMsgRequest::TClntMsgRequest(List(TA + IsDone=false; + SPtr<TOpt> ptr; + ptr = new TOptDUID(OPTION_CLIENTID, ClntCfgMgr().getDUID(), this ); +- Options.push_back( ptr ); ++ ++ if ( ptr ) { ++ Options.push_back( ptr ); ++ } + + if (!srvDUID) { + Log(Error) << "Unable to send REQUEST: ServerId not specified.\n" << LogEnd; +@@ -153,7 +156,9 @@ TClntMsgRequest::TClntMsgRequest(List(TA + ptr = new TOptDUID(OPTION_SERVERID, srvDUID,this); + // all IAs provided by checkSolicit + SPtr<TAddrIA> ClntAddrIA; +- Options.push_back( ptr ); ++ if ( ptr ) { ++ Options.push_back( ptr ); ++ } + + IAs.first(); + while (ClntAddrIA = IAs.get()) +Index: git/Messages/Msg.cpp +=================================================================== +--- git.orig/Messages/Msg.cpp ++++ git/Messages/Msg.cpp +@@ -69,10 +69,15 @@ int TMsg::getSize() + { + int pktsize=0; + TOptList::iterator opt; ++ int optionCount = 0; + for (opt = Options.begin(); opt!=Options.end(); ++opt) + { +- pktsize += (*opt)->getSize(); ++ Log(Info) << "### CPE Debug - Option with index " << optionCount++ << LogEnd ; ++ Log(Info) << "### CPE Debug - Option with type " << (*opt)->getOptType() << LogEnd ; ++ pktsize += (*opt)->getSize(); + } ++ Log(Info) << "### CPE Debug - Packet size of option (Add 4) " << pktsize << LogEnd ; ++ + return pktsize + 4; + } + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb new file mode 100644 index 0000000000..8890e14318 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb @@ -0,0 +1,37 @@ +SUMMARY = "Dibbler DHCPv6 client" +DESCRIPTION = "Dibbler is a portable DHCPv6 implementation. It supports stateful as well as stateless autoconfiguration for IPv6." +HOMEPAGE = "http://klub.com.pl/dhcpv6" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7236695bb6d4461c105d685a8b61c4e3" + +SRCREV = "c4b0ed52e751da7823dd9a36e91f93a6310e5525" + +SRC_URI = "git://github.com/tomaszmrugalski/dibbler \ + file://dibbler_fix_getSize_crash.patch \ + " +PV = "1.0.1+1.0.2RC1+git${SRCREV}" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "debug bind-reuse resolvconf dns-update" + +PACKAGECONFIG[debug] = "--enable-debug,,," +PACKAGECONFIG[efence] = "--enable-efence,,," +PACKAGECONFIG[bind-reuse] = "--enable-bind-reuse,,," +PACKAGECONFIG[dst-addr-filter] = "--enable-dst-addr-check,,," +PACKAGECONFIG[resolvconf] = "--enable-resolvconf,,," +PACKAGECONFIG[dns-update] = "--enable-dns-update,,," +PACKAGECONFIG[auth] = "--enable-auth,,," +PACKAGECONFIG[gtest] = "--enable-gtest-static,,," + +inherit autotools + +DEPENDS += "flex-native" + +PACKAGES =+ "${PN}-requestor ${PN}-client ${PN}-relay ${PN}-server" + +FILES_${PN}-client = "${sbindir}/${PN}-client" +FILES_${PN}-relay = "${sbindir}/${PN}-relay" +FILES_${PN}-requestor = "${sbindir}/${PN}-requestor" +FILES_${PN}-server = "${sbindir}/${PN}-server" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb new file mode 100644 index 0000000000..51e220c9e7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb @@ -0,0 +1,16 @@ +SUMMARY = "daemon that sends updates when your IP changes" +HOMEPAGE = "http://sourceforge.net/projects/ez-ipupdate/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=7783169b4be06b54e86730eb01bc3a31" + +SRC_URI = "http://sourceforge.net/projects/ez-ipupdate/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://Makefile.am.patch \ + file://cache_file.c.patch \ + file://conf_file.c.patch \ + file://wformat.patch \ + " +SRC_URI[md5sum] = "525be4550b4461fdf105aed8e753b020" +SRC_URI[sha256sum] = "a15ec0dc0b78ec7578360987c68e43a67bc8d3591cbf528a323588830ae22c20" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch new file mode 100644 index 0000000000..d80ed3e29d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch @@ -0,0 +1,14 @@ +Remove EXTRASRC and EXTRAOBJ from obj list + +--- ez-ipupdate-3.0.11b7/Makefile.am.orig 2014-07-02 13:47:50.758034983 -0600 ++++ ez-ipupdate-3.0.11b7/Makefile.am 2014-07-02 13:48:38.406034650 -0600 +@@ -1,7 +1,7 @@ + + bin_PROGRAMS = ez-ipupdate +-ez_ipupdate_SOURCES = ez-ipupdate.c conf_file.c conf_file.h md5.c md5.h cache_file.c cache_file.h error.h pid_file.c pid_file.h dprintf.h @EXTRASRC@ +-ez_ipupdate_LDADD = @EXTRAOBJ@ ++ez_ipupdate_SOURCES = ez-ipupdate.c conf_file.c conf_file.h md5.c md5.h cache_file.c cache_file.h error.h pid_file.c pid_file.h dprintf.h ++ez_ipupdate_LDADD = + + EXTRA_DIST = getpass.c ez-ipupdate.lsm example.conf example-pgpow.conf example-dhs.conf example-dyndns.conf example-ods.conf example-tzo.conf example-gnudip.conf example-easydns.conf example-justlinux.conf example-dyns.conf CHANGELOG mkbinary example-heipv6tb.conf + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch new file mode 100644 index 0000000000..de5eb3a6d1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch @@ -0,0 +1,32 @@ +Dont assume errno type + +--- ez-ipupdate-3.0.11b7/cache_file.c.orig 2014-07-02 14:01:07.126029412 -0600 ++++ ez-ipupdate-3.0.11b7/cache_file.c 2014-07-02 14:08:27.422026332 -0600 +@@ -43,11 +43,11 @@ + #include <cache_file.h> + + #if HAVE_STRERROR +-extern int errno; ++# include <errno.h> + # define error_string strerror(errno) + #elif HAVE_SYS_ERRLIST + extern const char *const sys_errlist[]; +-extern int errno; ++# include <errno.h> + # define error_string (sys_errlist[errno]) + #else + # define error_string "error message not found" +@@ -63,11 +63,11 @@ + # define dprintf(x) + #endif + #if HAVE_STRERROR +-extern int errno; ++# include <errno.h> + # define error_string strerror(errno) + #elif HAVE_SYS_ERRLIST + extern const char *const sys_errlist[]; +-extern int errno; ++# include <errno.h> + # define error_string (sys_errlist[errno]) + #else + # define error_string "error message not found" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch new file mode 100644 index 0000000000..02218a39ea --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch @@ -0,0 +1,18 @@ +Dont assume errno type + +--- ez-ipupdate-3.0.11b7/conf_file.c.orig 2014-07-02 14:01:19.174029328 -0600 ++++ ez-ipupdate-3.0.11b7/conf_file.c 2014-07-02 14:08:42.982026223 -0600 +@@ -38,11 +38,11 @@ + #include <conf_file.h> + + #if HAVE_STRERROR +-extern int errno; ++# include <errno.h> + # define error_string strerror(errno) + #elif HAVE_SYS_ERRLIST + extern const char *const sys_errlist[]; +-extern int errno; ++# include <errno.h> + # define error_string (sys_errlist[errno]) + #else + # define error_string "error message not found" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch new file mode 100644 index 0000000000..1de267f083 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch @@ -0,0 +1,13 @@ +Index: ez-ipupdate-3.0.11b7/ez-ipupdate.c +=================================================================== +--- ez-ipupdate-3.0.11b7.orig/ez-ipupdate.c ++++ ez-ipupdate-3.0.11b7/ez-ipupdate.c +@@ -798,7 +798,7 @@ void show_message(char *fmt, ...) + sprintf(buf, "message incomplete because your OS sucks: %s\n", fmt); + #endif + +- syslog(LOG_NOTICE, buf); ++ syslog(LOG_NOTICE, "%s", buf); + } + else + { diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb index a8c40254ba..4655bc5777 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb @@ -34,7 +34,7 @@ acpaths = "-I ./m4" SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '', 'file://fix-disable-ipv6.patch', d)}" PACKAGECONFIG ??= "ftp uucpd \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6 ping6', '', d)} \ " PACKAGECONFIG[ftp] = "--enable-ftp,--disable-ftp,readline" @@ -58,14 +58,16 @@ do_configure_prepend () { } do_install_append () { - install -m 0755 -d ${D}${base_bindir} install -m 0755 -d ${D}${base_sbindir} install -m 0755 -d ${D}${sbindir} install -m 0755 -d ${D}${sysconfdir}/xinetd.d - mv ${D}${bindir}/ping* ${D}${base_bindir}/ + if [ "${base_bindir}" != "${bindir}" ] ; then + install -m 0755 -d ${D}${base_bindir} + mv ${D}${bindir}/ping* ${D}${base_bindir}/ + mv ${D}${bindir}/hostname ${D}${base_bindir}/ + fi mv ${D}${bindir}/ifconfig ${D}${base_sbindir}/ mv ${D}${libexecdir}/syslogd ${D}${base_sbindir}/ - mv ${D}${bindir}/hostname ${D}${base_bindir}/ mv ${D}${libexecdir}/tftpd ${D}${sbindir}/in.tftpd mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd @@ -104,9 +106,10 @@ ${PN}-rsh ${PN}-rshd" # provided by netkit, so add the corresponding -dbg packages # for them to avoid the confliction between the dbg package # of inetutils and netkit. -PACKAGES += "${PN}-tftpd-dbg ${PN}-telnetd-dbg ${PN}-rshd-dbg" +PACKAGES =+ "${PN}-tftpd-dbg ${PN}-telnetd-dbg ${PN}-rshd-dbg" +NOAUTOPACKAGEDEBUG = "1" -ALTERNATIVE_PRIORITY = "80" +ALTERNATIVE_PRIORITY = "79" ALTERNATIVE_${PN} = "talk whois" ALTERNATIVE_LINK_NAME[talkd] = "${sbindir}/in.talkd" ALTERNATIVE_LINK_NAME[uucpd] = "${sbindir}/in.uucpd" @@ -143,16 +146,23 @@ ALTERNATIVE_${PN}-traceroute = "traceroute" ALTERNATIVE_${PN}-hostname = "hostname" ALTERNATIVE_LINK_NAME[hostname] = "${base_bindir}/hostname" +ALTERNATIVE_${PN}-doc = "hostname.1 dnsdomainname.1 logger.1 syslogd.8" +ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1" +ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1" +ALTERNATIVE_LINK_NAME[logger.1] = "${mandir}/man1/logger.1" +ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8" + ALTERNATIVE_${PN}-ifconfig = "ifconfig" ALTERNATIVE_LINK_NAME[ifconfig] = "${base_sbindir}/ifconfig" ALTERNATIVE_${PN}-ping = "ping" ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping" -ALTERNATIVE_${PN}-ping6 = "${@bb.utils.contains('PACKAGECONFIG', 'ping6', 'ping6', '', d)}" +ALTERNATIVE_${PN}-ping6 = "${@bb.utils.filter('PACKAGECONFIG', 'ping6', d)}" ALTERNATIVE_LINK_NAME[ping6] = "${base_bindir}/ping6" +FILES_${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug" FILES_${PN}-ping = "${base_bindir}/ping.${BPN}" FILES_${PN}-ping6 = "${base_bindir}/ping6.${BPN}" FILES_${PN}-hostname = "${base_bindir}/hostname.${BPN}" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb index 287821194c..b6b65da736 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.3.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb @@ -6,11 +6,11 @@ SECTION = "console/network" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SRC_URI = "http://fossies.org/linux/misc/lftp-${PV}.tar.gz \ +SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2 \ file://fix-gcc-6-conflicts-signbit.patch \ " -SRC_URI[md5sum] = "8eb1fe5f113126b60f172643c7f6c2e6" -SRC_URI[sha256sum] = "ce6519831603c19c2cf2e3c10b41d6ddc87a16049b99383e7b9b77fbc7707214" +SRC_URI[md5sum] = "3701e7675baa5619c92622eb141c8301" +SRC_URI[sha256sum] = "fe441f20a9a317cfb99a8b8e628ba0457df472b6d93964d17374d5b5ebdf9280" inherit autotools gettext pkgconfig @@ -26,5 +26,9 @@ PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls" PACKAGECONFIG[readline] = "--with-readline=${STAGING_INCDIR}/.. --with-readline-inc=${STAGING_INCDIR} --with-readline-lib=-lreadline, --with-readline=no, readline" PACKAGECONFIG[expat] = "--with-expat=${STAGING_INCDIR}/.. --with-expat-inc=${STAGING_INCDIR} --with-expat-lib=-lexpat, , expat" +do_install_append() { + rm -rf ${D}${libdir}/charset.alias +} + FILES_${PN}-dbg += "${libdir}/lftp/${PV}/.debug" RDEPENDS_${PN} = "perl bash readline" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb index daa3c9f088..f48b6553b0 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb @@ -4,10 +4,10 @@ SECTION = "libs" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9" -SRC_URI = "${GENTOO_MIRROR}/${BP}.tgz" +SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1" +SRCREV = "12fca29a6d4e99d1b923d6820887fe7b24226904" -SRC_URI[md5sum] = "9253ef6de1b5e28e9c9a62b882e44cc9" -SRC_URI[sha256sum] = "83b33039787cf99990e977cef7f18a5d5e7aaffc4505548a83d31bd3515eb026" +S = "${WORKDIR}/git" inherit autotools diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb index 60e7e6e496..3a1f0f30f0 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb @@ -2,7 +2,7 @@ SUMMARY = "Open client for Cisco AnyConnect VPN" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad" -DEPENDS = "vpnc libxml2 krb5" +DEPENDS = "vpnc libxml2 krb5 gettext-native" PACKAGECONFIG ??= "gnutls lz4 libproxy" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb index aab2ab5f0c..50297f38d4 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/relayd/relayd_git.bb @@ -8,6 +8,7 @@ DEPENDS = "libubox" SRC_URI = "git://nbd.name/relayd.git" SRCREV = "2970ff60bac6b70ecb682779d5c776dc559dc0b9" +PV = "0.0.1+git${SRCPV}" S = "${WORKDIR}/git" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/10-use-only-libsystemd.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/10-use-only-libsystemd.patch deleted file mode 100644 index 0ddc9410cd..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/10-use-only-libsystemd.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -ur samba-4.4.2/lib/util/debug.c samba-4.4.2/lib/util/debug.c ---- samba-4.4.2/lib/util/debug.c 2016-05-08 18:33:24.000000000 +0200 -+++ samba-4.4.2/lib/util/debug.c 2016-05-08 18:27:09.341481492 +0200 -@@ -102,7 +102,7 @@ - .fd = 2 /* stderr by default */ - }; - --#if defined(WITH_SYSLOG) || defined(HAVE_LIBSYSTEMD_JOURNAL) -+#if defined(WITH_SYSLOG) || defined(HAVE_LIBSYSTEMD) - static int debug_level_to_priority(int level) - { - /* -@@ -179,7 +179,7 @@ - } - #endif /* WITH_SYSLOG */ - --#ifdef HAVE_LIBSYSTEMD_JOURNAL -+#ifdef HAVE_LIBSYSTEMD - #include <systemd/sd-journal.h> - static void debug_systemd_log(int msg_level, - const char *msg, const char *msg_no_nl) -@@ -251,7 +251,7 @@ - }, - #endif - --#ifdef HAVE_LIBSYSTEMD_JOURNAL -+#ifdef HAVE_LIBSYSTEMD - { - .name = "systemd", - .log = debug_systemd_log, diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/00-fix-typos-in-man-pages.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/00-fix-typos-in-man-pages.patch index c94bc31857..c94bc31857 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/00-fix-typos-in-man-pages.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/00-fix-typos-in-man-pages.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch index 0ab3436fc5..0ab3436fc5 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/0006-avoid-using-colon-in-the-checking-msg.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch index cdf7a38c18..cdf7a38c18 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/0006-avoid-using-colon-in-the-checking-msg.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/16-do-not-check-xsltproc-manpages.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/16-do-not-check-xsltproc-manpages.patch index c37cfcde44..c37cfcde44 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/16-do-not-check-xsltproc-manpages.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/16-do-not-check-xsltproc-manpages.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/20-do-not-import-target-module-while-cross-compile.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch index e112b3b40b..e112b3b40b 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/20-do-not-import-target-module-while-cross-compile.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/21-add-config-option-without-valgrind.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch index 025ac2775f..025ac2775f 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/21-add-config-option-without-valgrind.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch new file mode 100644 index 0000000000..894bc8bb2c --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch @@ -0,0 +1,15 @@ +Index: samba-4.6.2/ctdb/tests/src/test_mutex_raw.c +=================================================================== +--- samba-4.6.2.orig/ctdb/tests/src/test_mutex_raw.c ++++ samba-4.6.2/ctdb/tests/src/test_mutex_raw.c +@@ -166,8 +166,10 @@ int main(int argc, const char **argv) + if (ret == 0) { + pthread_mutex_unlock(mutex); + } ++#ifdef __GLIBC__ + } else if (ret == EBUSY) { + printf("pid=%u\n", mutex->__data.__owner); ++#endif + } else if (ret == 0) { + pthread_mutex_unlock(mutex); + } diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch new file mode 100644 index 0000000000..eb06866f46 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch @@ -0,0 +1,19 @@ +Index: samba-4.6.2/nsswitch/wins.c +=================================================================== +--- samba-4.6.2.orig/nsswitch/wins.c ++++ samba-4.6.2/nsswitch/wins.c +@@ -39,6 +39,14 @@ static pthread_mutex_t wins_nss_mutex = + #define INADDRSZ 4 + #endif + ++#ifndef NETDB_INTERNAL ++#define NETDB_INTERNAL (-1) ++#endif ++ ++#ifndef NETDB_SUCCESS ++#define NETDB_SUCCESS 0 ++#endif ++ + NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname, + struct hostent *he, + char *buffer, diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/samba-4.2.7-pam.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.2.7-pam.patch index 6b9ade920e..6b9ade920e 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/samba-4.2.7-pam.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.2.7-pam.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/samba-4.3.9-remove-getpwent_r.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch index 71db99c5d2..71db99c5d2 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/samba-4.3.9-remove-getpwent_r.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/volatiles.03_samba b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/volatiles.03_samba index 4bdfa7d2c9..4bdfa7d2c9 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba-4.4.5/volatiles.03_samba +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba/volatiles.03_samba diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.4.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.4.5.bb deleted file mode 100644 index c564f73bea..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.4.5.bb +++ /dev/null @@ -1,344 +0,0 @@ -SECTION = "console/network" - -LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ - file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " - -SAMBA_MIRROR = "http://samba.org/samba/ftp" -MIRRORS += "\ -${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \ -${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \ -" - -SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ - file://00-fix-typos-in-man-pages.patch \ - file://10-use-only-libsystemd.patch \ - file://16-do-not-check-xsltproc-manpages.patch \ - file://20-do-not-import-target-module-while-cross-compile.patch \ - file://21-add-config-option-without-valgrind.patch \ - file://0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch \ - file://0006-avoid-using-colon-in-the-checking-msg.patch \ - file://volatiles.03_samba \ - " -SRC_URI_append_libc-musl = " \ - file://samba-4.2.7-pam.patch \ - file://samba-4.3.9-remove-getpwent_r.patch \ - " - -SRC_URI[md5sum] = "6950c5e9f7bdeb8a610c2ca957a15be4" -SRC_URI[sha256sum] = "b876ef2e63f66265490e80a122e66ef2d7616112b839df68f56ac2e1ce17a7bd" - -inherit systemd waf-samba cpan-base perlnative update-rc.d -# remove default added RDEPENDS on perl -RDEPENDS_${PN}_remove = "perl" - -DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb krb5 libbsd libaio libpam" -DEPENDS_append_libc-musl = " libtirpc" -CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" -LDFLAGS_append_libc-musl = " -ltirpc" - -SYSVINITTYPE_linuxstdbase = "lsb" -SYSVINITTYPE = "sysv" - -INITSCRIPT_NAME = "samba.sh" -INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ." - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '${SYSVINITTYPE}', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'zeroconf', '', d)} \ - acl cups ldap \ -" - -RDEPENDS_${PN}-base += "${@bb.utils.contains('PACKAGECONFIG', 'lsb', 'lsb', '', d)}" -RDEPENDS_${PN}-ctdb-tests += "bash util-linux-getopt" - -PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl" -PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin" -PACKAGECONFIG[lsb] = ",,lsb" -PACKAGECONFIG[sysv] = ",,sysvinit" -PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups" -PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" -PACKAGECONFIG[sasl] = ",,cyrus-sasl" -PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd" -PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi" -PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi" -PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind," -PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust" -PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive" - - -SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2" -SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4" -SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4" -SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}" - -SAMBA4_LIBS="heimdal,!zlib,!popt,!talloc,!pytalloc,!pytalloc-util,!tevent,!pytevent,!tdb,!pytdb,!ldb,!pyldb" - -EXTRA_OECONF += "--enable-fhs \ - --with-piddir=/run \ - --with-sockets-dir=/run/samba \ - --with-modulesdir=${libdir}/samba \ - --with-lockdir=${localstatedir}/lib/samba \ - --with-cachedir=${localstatedir}/lib/samba \ - --disable-gnutls \ - --disable-rpath-install \ - --with-shared-modules=${SAMBA4_MODULES} \ - --bundled-libraries=${SAMBA4_LIBS} \ - --with-system-mitkrb5 \ - --without-ad-dc \ - ${@base_conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \ - --with-cluster-support \ - --with-profiling-data \ - --with-libiconv=${STAGING_DIR_HOST}${prefix} \ - --with-pam --with-pammodulesdir=${base_libdir}/security \ - " -DISABLE_STATIC = "" - -LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" - -do_install_append() { - if ${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_unitdir}/system - for i in nmb smb winbind; do - install -m 0644 packaging/systemd/$i.service ${D}${systemd_unitdir}/system - done - sed -i 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' ${D}${systemd_unitdir}/system/*.service - - install -d ${D}${sysconfdir}/tmpfiles.d - install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf - echo "d ${localstatedir}/log/samba 0755 root root -" \ - >> ${D}${sysconfdir}/tmpfiles.d/samba.conf - elif ${@bb.utils.contains('PACKAGECONFIG', 'lsb', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/init.d - install -m 0755 packaging/LSB/samba.sh ${D}${sysconfdir}/init.d - elif ${@bb.utils.contains('PACKAGECONFIG', 'sysv', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/init.d - install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba.sh - sed -e 's,/opt/samba/bin,${sbindir},g' \ - -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \ - -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \ - -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba.sh,g' \ - -e 's,/usr/bin,${base_bindir},g' \ - -i ${D}${sysconfdir}/init.d/samba.sh - fi - - install -d ${D}${sysconfdir}/samba - echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts - install -m644 packaging/LSB/smb.conf ${D}${sysconfdir}/samba/smb.conf - install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba - - install -d ${D}${sysconfdir}/sysconfig/ - install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/sysconfig/samba - - # install ctdb config file and test cases - install -D -m 0644 ${S}/ctdb/tests/onnode/nodes ${D}${sysconfdir}/ctdb/nodes - # the items are from ctdb/tests/run_tests.sh - for d in onnode takeover tool eventscripts cunit simple complex; do - testdir=${D}${datadir}/ctdb-tests/$d - install -d $testdir - cp ${S}/ctdb/tests/$d/*.sh $testdir - cp -r ${S}/ctdb/tests/$d/scripts ${S}/ctdb/tests/$d/stubs $testdir || true - done - - # fix file-rdeps qa warning - if [ -f ${D}${bindir}/onnode ]; then - sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode - fi - - rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log -} - -PACKAGES =+ "${PN}-python ${PN}-python-dbg ${PN}-pidl libwinbind libwinbind-dbg libwinbind-krb5-locator" -PACKAGES =+ "libwbclient libnss-winbind winbind winbind-dbg libnetapi libsmbsharemodes \ - libsmbclient libsmbclient-dev lib${BPN}-base ${PN}-base ${PN}-ctdb-tests" - -RDEPENDS_${PN} += "${PN}-base" - -FILES_${PN}-base = "${sbindir}/nmbd \ - ${sbindir}/smbd \ - ${sysconfdir}/init.d \ - ${localstatedir}/lib/samba \ - ${localstatedir}/nmbd \ - ${localstatedir}/spool/samba \ -" - -FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \ - ${bindir}/ctdb_run_cluster_tests \ - ${sysconfdir}/ctdb/nodes \ - ${libdir}/ctdb-tests \ - ${datadir}/ctdb-tests \ - /run/ctdb \ - " - -# figured out by -# FILES="tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/sbin/smbd tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/sbin/nmbd" -# -# while [ "${FILES}" != "${OLDFILES}" ] -# do -# OLDFILES="${FILES}" -# NEEDED=`tmp/sysroots/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi.gcc-cross-initial-arm/gcc/arm-poky-linux-gnueabi/5.2.0/objdump -x ${FILES} | grep NEEDED | egrep -E 'so(.[0-9]|$)' | sort -u | perl -MData::Dumper -le 'while (<>) {chomp; push @lib, (split)[1]}; print "(", join("|", @lib), ")"'` -# NF=`find tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/lib -type f | egrep "${NEEDED}" | sort -u` -# -# FILES=`perl -le 'foreach (@ARGV) { $f{$_}++ }; print join(" ", sort keys %f)' ${FILES} ${NF}` -# done -# -# LIBS=`echo ${FILES} | sed -e 's,tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/lib,${libdir},g' -e 's,.so.[0-9]+.*$,.so.*,g'` -# for l in ${LIBS} -# do -# echo $l -# done - -FILES_lib${BPN}-base = "\ - ${sysconfdir}/default \ - ${sysconfdir}/samba \ - ${libdir}/libdcerpc-binding.so.* \ - ${libdir}/libgensec.so.* \ - ${libdir}/libndr-krb5pac.so.* \ - ${libdir}/libndr-nbt.so.* \ - ${libdir}/libndr-standard.so.* \ - ${libdir}/libndr.so.* \ - ${libdir}/libnetapi.so.* \ - ${libdir}/libpdb.so.* \ - ${libdir}/libsamba-credentials.so.* \ - ${libdir}/libsamba-hostconfig.so.* \ - ${libdir}/libsamba-util.so.* \ - ${libdir}/libsamdb.so.* \ - ${libdir}/libsmbconf.so.* \ - ${libdir}/libtevent-util.so.* \ - ${libdir}/samba/libCHARSET3.so \ - ${libdir}/samba/libaddns.so \ - ${libdir}/samba/libads.so \ - ${libdir}/samba/libasn1util.so \ - ${libdir}/samba/libauth.so \ - ${libdir}/samba/libauth_sam_reply.so \ - ${libdir}/samba/libauthkrb5.so \ - ${libdir}/samba/libccan.so \ - ${libdir}/samba/libcli-ldap-common.so \ - ${libdir}/samba/libcli-nbt.so \ - ${libdir}/samba/libcli_cldap.so \ - ${libdir}/samba/libcli_smb_common.so \ - ${libdir}/samba/libcli_spoolss.so \ - ${libdir}/samba/libcliauth.so \ - ${libdir}/samba/libdbwrap.so \ - ${libdir}/samba/libdcerpc-samba.so \ - ${libdir}/samba/liberrors.so \ - ${libdir}/samba/libflag_mapping.so \ - ${libdir}/samba/libgse.so \ - ${libdir}/samba/libinterfaces.so \ - ${libdir}/samba/libkrb5samba.so \ - ${libdir}/samba/libldbsamba.so \ - ${libdir}/samba/liblibcli_lsa3.so \ - ${libdir}/samba/liblibcli_netlogon3.so \ - ${libdir}/samba/liblibsmb.so \ - ${libdir}/samba/libmsrpc3.so \ - ${libdir}/samba/libndr-samba.so \ - ${libdir}/samba/libndr-samba4.so \ - ${libdir}/samba/libnpa_tstream.so \ - ${libdir}/samba/libntdb.so.* \ - ${libdir}/samba/libpopt_samba3.so \ - ${libdir}/samba/libprinting_migrate.so \ - ${libdir}/samba/libsamba-modules.so \ - ${libdir}/samba/libsamba-security.so \ - ${libdir}/samba/libsamba-sockets.so \ - ${libdir}/samba/libsamba3-util.so \ - ${libdir}/samba/libsamdb-common.so \ - ${libdir}/samba/libsecrets3.so \ - ${libdir}/samba/libserver-role.so \ - ${libdir}/samba/libsmb_transport.so \ - ${libdir}/samba/libsmbd_base.so \ - ${libdir}/samba/libsmbd_conn.so \ - ${libdir}/samba/libsmbd_shim.so \ - ${libdir}/samba/libsmbregistry.so \ - ${libdir}/samba/libtdb-wrap.so \ - ${libdir}/samba/libutil_cmdline.so \ - ${libdir}/samba/libutil_ntdb.so \ - ${libdir}/samba/libutil_reg.so \ - ${libdir}/samba/libutil_setid.so \ - ${libdir}/samba/libutil_tdb.so \ - ${libdir}/samba/pdb/smbpasswd.so \ - ${libdir}/samba/pdb/tdbsam.so \ - ${libdir}/samba/pdb/wbc_sam.so \ -" - -FILES_winbind-dbg = "${libdir}/idmap/.debug/*.so \ - ${libdir}/security/.debug/pam_winbind.so \ -" - -FILES_${PN} += "${libdir}/vfs/*.so \ - ${libdir}/charset/*.so \ - ${libdir}/*.dat \ - ${libdir}/auth/*.so \ - ${libdir}/security/pam_smbpass.so \ -" - -FILES_${PN}-dbg += "${libdir}/vfs/.debug/*.so \ - ${libdir}/charset/.debug/*.so \ - ${libdir}/auth/.debug/*.so \ - ${libdir}/security/.debug/pam_smbpass.so \ -" - -FILES_libwbclient = "${libdir}/libwbclient.so.* ${libdir}/samba/libwinbind-client.so" -FILES_libnetapi = "${libdir}/libnetapi.so.*" -FILES_libsmbsharemodes = "${libdir}/libsmbsharemodes.so.*" -FILES_libsmbclient = "${libdir}/libsmbclient.so.*" -FILES_libsmbclient-dev = "${libdir}/libsmbclient.so ${includedir}" -FILES_winbind = "${sbindir}/winbindd \ - ${bindir}/wbinfo \ - ${bindir}/ntlm_auth \ - ${sysconfdir}/init.d/winbind \ - ${systemd_unitdir}/system/winbind.service \ -" - -FILES_libnss-winbind = "${libdir}/libnss_*${SOLIBS} \ - ${libdir}/nss_info \ -" - -FILES_${PN} += "${base_libdir}/security/pam_smbpass.so \ -" - -SMB_SERVICE="${systemd_unitdir}/system/nmb.service ${systemd_unitdir}/system/smb.service" -SMB_SYSV="${sysconfdir}/init.d ${sysconfdir}/rc?.d" -FILES_${PN}-base +="${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${SMB_SERVICE}', '', d)}" -FILES_${PN}-base +="${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '${SMB_SYSV}', '', d)}" - -FILES_${PN}-dbg += "${libdir}/samba/idmap/.debug/* \ - ${libdir}/samba/pdb/.debug/* \ - ${libdir}/samba/auth/.debug/* \ - ${libdir}/samba/nss_info/.debug/* \ - ${libdir}/samba/ldb/.debug/* \ - ${libdir}/samba/vfs/.debug/* \ - ${base_libdir}/security/.debug/pam_smbpass.so \ -" - -FILES_libwinbind = "${base_libdir}/security/pam_winbind.so" -FILES_libwinbind += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/winbind.service', '', d)}" -FILES_libwinbind-dbg = "${base_libdir}/security/.debug/pam_winbind.so" -FILES_libwinbind-krb5-locator = "${libdir}/winbind_krb5_locator.so" - -FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.so \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/_ldb_text.py \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/*.py \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/*.so \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/dcerpc/*.so \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/dcerpc/*.py \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/external/* \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/kcc/* \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/netcmd/*.py \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/provision/*.py \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/samba3/*.py \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/samba3/*.so \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/subunit/* \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/tests/* \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/third_party/* \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/web_server/* \ -" - -FILES_${PN}-python-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug/* \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/.debug/* \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/samba3/.debug/* \ - ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/dcerpc/.debug/* \ -" - -RDEPENDS_${PN}-pidl_append = " perl" -FILES_${PN}-pidl = "${bindir}/pidl ${datadir}/perl5/Parse" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.6.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.6.2.bb new file mode 100644 index 0000000000..7574aefb4d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.6.2.bb @@ -0,0 +1,254 @@ +SECTION = "console/network" + +LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ + file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \ + file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 " + +SAMBA_MIRROR = "http://samba.org/samba/ftp" +MIRRORS += "\ +${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \ +${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \ +" + +SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \ + file://00-fix-typos-in-man-pages.patch \ + file://16-do-not-check-xsltproc-manpages.patch \ + file://20-do-not-import-target-module-while-cross-compile.patch \ + file://21-add-config-option-without-valgrind.patch \ + file://0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch \ + file://0006-avoid-using-colon-in-the-checking-msg.patch \ + file://netdb_defines.patch \ + file://glibc_only.patch \ + file://volatiles.03_samba \ + " +SRC_URI_append_libc-musl = " \ + file://samba-4.2.7-pam.patch \ + file://samba-4.3.9-remove-getpwent_r.patch \ + " +SRC_URI[md5sum] = "461def8190ffc651fd8458b24ca2a622" +SRC_URI[sha256sum] = "927afcc16e444718985e3952de92d34e7b776b9ca0238179d866da18a6441c35" + +inherit systemd waf-samba cpan-base perlnative update-rc.d +# remove default added RDEPENDS on perl +RDEPENDS_${PN}_remove = "perl" + +DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb krb5 libbsd libaio libpam" +DEPENDS_append_libc-musl = " libtirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + +LSB = "" +LSB_linuxstdbase = "lsb" + +INITSCRIPT_NAME = "samba" +INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ." + +SYSTEMD_PACKAGES = "${PN}-base winbind" +SYSTEMD_SERVICE_${PN}-base = "nmb.service smb.service" +SYSTEMD_SERVICE_winbind = "winbind.service" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \ + acl cups ldap \ +" + +RDEPENDS_${PN}-base += "${LSB}" +RDEPENDS_${PN}-ctdb-tests += "bash util-linux-getopt" + +PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl" +PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin" +PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups" +PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" +PACKAGECONFIG[sasl] = ",,cyrus-sasl" +PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd" +PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi" +PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi" +PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind," +PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust" +PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive" + + +SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2" +SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4" +SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4" +SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}" + +SAMBA4_LIBS="heimdal,!zlib,!popt,!talloc,!pytalloc,!pytalloc-util,!tevent,!pytevent,!tdb,!pytdb,!ldb,!pyldb" + +EXTRA_OECONF += "--enable-fhs \ + --with-piddir=/run \ + --with-sockets-dir=/run/samba \ + --with-modulesdir=${libdir}/samba \ + --with-lockdir=${localstatedir}/lib/samba \ + --with-cachedir=${localstatedir}/lib/samba \ + --disable-gnutls \ + --disable-rpath-install \ + --with-shared-modules=${SAMBA4_MODULES} \ + --bundled-libraries=${SAMBA4_LIBS} \ + --with-system-mitkrb5 \ + --without-ad-dc \ + ${@base_conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \ + --with-cluster-support \ + --with-profiling-data \ + --with-libiconv=${STAGING_DIR_HOST}${prefix} \ + --with-pam --with-pammodulesdir=${base_libdir}/security \ + " + +LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + +do_install_append() { + for section in 1 5 7; do + install -d ${D}${mandir}/man$section + install -m 0644 ctdb/doc/*.$section ${D}${mandir}/man$section + done + for section in 1 5 7 8; do + install -d ${D}${mandir}/man$section + install -m 0644 docs/manpages/*.$section ${D}${mandir}/man$section + done + + install -d ${D}${systemd_system_unitdir} + install -m 0644 packaging/systemd/*.service ${D}${systemd_system_unitdir} + sed -e 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' \ + -e 's,/etc/sysconfig/samba,${sysconfdir}/default/samba,' \ + -i ${D}${systemd_system_unitdir}/*.service + + install -d ${D}${sysconfdir}/tmpfiles.d + install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf + echo "d ${localstatedir}/log/samba 0755 root root -" \ + >> ${D}${sysconfdir}/tmpfiles.d/samba.conf + if [ "${LSB}" = "lsb" ]; then + install -d ${D}${sysconfdir}/init.d + install -m 0755 packaging/LSB/samba.sh ${D}${sysconfdir}/init.d/samba + else + install -d ${D}${sysconfdir}/init.d + install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba + sed -e 's,/opt/samba/bin,${sbindir},g' \ + -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \ + -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \ + -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \ + -e 's,/usr/bin,${base_bindir},g' \ + -i ${D}${sysconfdir}/init.d/samba + fi + + install -d ${D}${sysconfdir}/samba + echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts + install -m644 packaging/LSB/smb.conf ${D}${sysconfdir}/samba/smb.conf + install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba + + install -d ${D}${sysconfdir}/default + install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba + + # install ctdb config file and test cases + install -D -m 0644 ${S}/ctdb/tests/onnode/nodes ${D}${sysconfdir}/ctdb/nodes + # the items are from ctdb/tests/run_tests.sh + for d in onnode takeover tool eventscripts cunit simple complex; do + testdir=${D}${datadir}/ctdb-tests/$d + install -d $testdir + cp ${S}/ctdb/tests/$d/*.sh $testdir + cp -r ${S}/ctdb/tests/$d/scripts ${S}/ctdb/tests/$d/stubs $testdir || true + done + + # fix file-rdeps qa warning + if [ -f ${D}${bindir}/onnode ]; then + sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode + fi + + chmod 0750 ${D}${sysconfdir}/sudoers.d + rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log +} + +PACKAGES =+ "${PN}-python ${PN}-pidl \ + ${PN}-dsdb-modules ${PN}-testsuite registry-tools \ + winbind \ + ${PN}-common ${PN}-base ${PN}-ctdb-tests \ + smbclient" + +python samba_populate_packages() { + def module_hook(file, pkg, pattern, format, basename): + pn = d.getVar('PN', True) + d.appendVar('RRECOMMENDS_%s-base' % pn, ' %s' % pkg) + + mlprefix = d.getVar('MLPREFIX', True) or '' + pam_libdir = d.expand('${base_libdir}/security') + pam_pkgname = mlprefix + 'pam-plugin%s' + do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True) + + libdir = d.getVar('libdir', True) + do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True) + pkglibdir = '%s/samba' % libdir + do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True) + moduledir = '%s/samba/auth' % libdir + do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True) + moduledir = '%s/samba/pdb' % libdir + do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True) +} + +PACKAGESPLITFUNCS_prepend = "samba_populate_packages " + +RDEPENDS_${PN} += "${PN}-base" + +FILES_${PN}-base = "${sbindir}/nmbd \ + ${sbindir}/smbd \ + ${sysconfdir}/init.d \ + ${localstatedir}/lib/samba \ + ${localstatedir}/nmbd \ + ${localstatedir}/spool/samba \ + ${systemd_system_unitdir}/nmb.service \ + ${systemd_system_unitdir}/samba.service \ + ${systemd_system_unitdir}/smb.service" + +FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \ + ${bindir}/ctdb_run_cluster_tests \ + ${sysconfdir}/ctdb/nodes \ + ${datadir}/ctdb-tests \ + ${datadir}/ctdb/tests \ + " + +FILES_${BPN}-common = "${sysconfdir}/default \ + ${sysconfdir}/samba \ + ${sysconfdir}/tmpfiles.d \ +" + +FILES_${PN} += "${libdir}/vfs/*.so \ + ${libdir}/charset/*.so \ + ${libdir}/*.dat \ + ${libdir}/auth/*.so \ +" + +FILES_${PN}-dsdb-modules = "${libdir}/samba/ldb" + +FILES_${PN}-testsuite = "${bindir}/gentest \ + ${bindir}/locktest \ + ${bindir}/masktest \ + ${bindir}/ndrdump \ + ${bindir}/smbtorture" + +FILES_registry-tools = "${bindir}/regdiff \ + ${bindir}/regpatch \ + ${bindir}/regshell \ + ${bindir}/regtree" + +FILES_winbind = "${sbindir}/winbindd \ + ${bindir}/wbinfo \ + ${bindir}/ntlm_auth \ + ${libdir}/samba/idmap \ + ${libdir}/samba/nss_info \ + ${libdir}/winbind_krb5_locator.so \ + ${sysconfdir}/init.d/winbind \ + ${systemd_system_unitdir}/winbind.service" + +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" + +FILES_smbclient = "${bindir}/cifsdd \ + ${bindir}/rpcclient \ + ${bindir}/smbcacls \ + ${bindir}/smbclient \ + ${bindir}/smbcquotas \ + ${bindir}/smbget \ + ${bindir}/smbspool \ + ${bindir}/smbtar \ + ${bindir}/smbtree \ + ${libdir}/samba/smbspool_krb5_wrapper" + +RDEPENDS_${PN}-pidl_append = " perl" +FILES_${PN}-pidl = "${bindir}/pidl ${datadir}/perl5/Parse" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb index c62a8d360e..dfd6ba9710 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb @@ -5,6 +5,7 @@ LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5" DEPENDS = "xz libpcap libpcre daq libdnet util-linux" +DEPENDS_append_libc-musl = " libtirpc" SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \ file://snort.init \ @@ -46,6 +47,9 @@ PACKAGECONFIG ?= "openssl lzma" PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl," PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz," +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + do_install_append() { install -d ${D}${sysconfdir}/snort/rules install -d ${D}${sysconfdir}/snort/preproc_rules @@ -53,6 +57,17 @@ do_install_append() { for i in map config conf dtd; do cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/ done + + # fix the hardcoded path and lib name + # comment out the rules that are not provided + sed -i -e 's#/usr/local/lib#${libdir}#' \ + -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \ + -e 's#\(libsf_engine.so\)#\1.0#' \ + -e 's/^\(include $RULE_PATH\)/#\1/' \ + -e 's/^\(dynamicdetection\)/#\1/' \ + -e '/preprocessor reputation/,/blacklist/ s/^/#/' \ + ${D}${sysconfdir}/snort/snort.conf + cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/ install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort mkdir -p ${D}${localstatedir}/log/snort diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan-1.9/0001-Add-printf-format-and-silence-format-security-warnin.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan-1.9/0001-Add-printf-format-and-silence-format-security-warnin.patch new file mode 100644 index 0000000000..ebcfc7c2ff --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan-1.9/0001-Add-printf-format-and-silence-format-security-warnin.patch @@ -0,0 +1,34 @@ +From 400b8f235377f677a7a760f1e3a1cd26d95140bc Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 16 Jun 2017 22:58:18 -0700 +Subject: [PATCH] Add printf format and silence format-security warnings + +Fix + +vconfig.c:66:4: error: format not a string literal and no format arguments [-Werror=format-security] + fprintf(stdout,usage); + ^~~~~~~ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + vconfig.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/vconfig.c b/vconfig.c +index 5057cfd..83137ba 100644 +--- a/vconfig.c ++++ b/vconfig.c +@@ -63,7 +63,7 @@ static char* usage = + " is OFF.\n"; + + void show_usage() { +- fprintf(stdout,usage); ++ fprintf(stdout, "%s", usage); + } + + int hex_to_bytes(char* bytes, int bytes_length, char* hex_str) { +-- +2.13.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb index 09c4007ef8..3f688b3600 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb @@ -1,10 +1,12 @@ SUMMARY = "VLAN provides vconfig utility" SECTION = "misc" LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://vconfig.c;md5=293ef69c4e88434d37a5ee577a5288cb" +LIC_FILES_CHKSUM = "file://vconfig.c;beginline=1;endline=19;md5=094ca47de36c20c598b15b32c270ce0a" SRC_URI = "http://${BPN}.sourcearchive.com/downloads/${PV}-3ubuntu9/${BPN}_${PV}.orig.tar.gz \ - file://no-HOME-includes.patch" + file://no-HOME-includes.patch \ + file://0001-Add-printf-format-and-silence-format-security-warnin.patch \ +" SRC_URI[md5sum] = "5f0c6060b33956fb16e11a15467dd394" SRC_URI[sha256sum] = "3b8f0a1bf0d3642764e5f646e1f3bbc8b1eeec474a77392d9aeb4868842b4cca" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch new file mode 100644 index 0000000000..184c7943b5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch @@ -0,0 +1,26 @@ +From 48e16e9ae7d8e4c42282bd82cbbd9a6d346a5c00 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Sun, 2 Dec 2012 02:16:54 +0100 +Subject: [PATCH 1/8] search for log-help in build dir + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + makeman.pl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/makeman.pl b/makeman.pl +index cf241a1..2d73432 100755 +--- a/makeman.pl ++++ b/makeman.pl +@@ -30,7 +30,7 @@ my $vpnc = './vpnc'; + # indenting lists (those originally starting with an asterisk). I hope + # this pays off when converting the manpage to HTML or such. + +-open my $LONGHELP, '-|', "$vpnc --long-help"; ++open my $LONGHELP, '-|', "cat ./long-help"; + my $vpnc_options = ''; + my $relative_indent = 0; + my $indent_needed = 0; +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/vpnc-install.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch index 3de65ec35e..6f00d3b894 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/vpnc-install.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch @@ -1,6 +1,17 @@ ---- a/Makefile~ 2009-01-20 18:44:30.000000000 +0100 -+++ b/Makefile 2009-01-20 18:44:30.000000000 +0100 -@@ -119,21 +119,21 @@ +From d565b4a5e0045f1e40e0e462920ed5b8faca9eec Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Sun, 2 Dec 2012 02:16:54 +0100 +Subject: [PATCH 2/8] Fix vpnc install for cross compile + +--- + Makefile | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/Makefile b/Makefile +index 69f5aca..a15782e 100644 +--- a/Makefile ++++ b/Makefile +@@ -133,21 +133,21 @@ install-common: all else \ install vpnc-script $(DESTDIR)$(ETCDIR); \ fi @@ -33,3 +44,6 @@ uninstall : rm -f $(DESTDIR)$(SBINDIR)/vpnc \ +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch new file mode 100644 index 0000000000..bb7730647b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch @@ -0,0 +1,30 @@ +From 6b49020893f999df56392b49b1a289cb96a113a1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 29 Mar 2017 22:08:17 -0700 +Subject: [PATCH 3/8] error.h is specific to glibc on linux + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + sysdep.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/sysdep.h b/sysdep.h +index 137bf6d..6a323f0 100644 +--- a/sysdep.h ++++ b/sysdep.h +@@ -37,9 +37,10 @@ int tun_read(int fd, unsigned char *buf, int len); + int tun_get_hwaddr(int fd, char *dev, uint8_t *hwaddr); + + /***************************************************************************/ +-#if defined(__linux__) || defined(__GLIBC__) ++#if defined(__linux__) ++#if defined(__GLIBC__) + #include <error.h> +- ++#endif + #define HAVE_VASPRINTF 1 + #define HAVE_ASPRINTF 1 + #define HAVE_ERROR 1 +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch new file mode 100644 index 0000000000..f70a13898f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch @@ -0,0 +1,30 @@ +From 4d1dd61c04f52a7c796debbdea5fc9139ffa271d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 29 Mar 2017 22:45:05 -0700 +Subject: [PATCH 4/8] Use pkgconfig instead of libgcrypt-config + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index a15782e..b537046 100644 +--- a/Makefile ++++ b/Makefile +@@ -63,10 +63,10 @@ RELEASE_VERSION := $(shell cat VERSION) + CC ?= gcc + CFLAGS ?= -O3 -g + CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings +-CFLAGS += $(shell libgcrypt-config --cflags) $(CRYPTO_CFLAGS) ++CFLAGS += $(shell pkg-config libgcrypt --cflags) $(CRYPTO_CFLAGS) + CPPFLAGS += -DVERSION=\"$(VERSION)\" + LDFLAGS ?= -g +-LIBS += $(shell libgcrypt-config --libs) $(CRYPTO_LDADD) ++LIBS += $(shell pkg-config libgcrypt --libs) $(CRYPTO_LDADD) + + ifeq ($(shell uname -s), SunOS) + LIBS += -lnsl -lresolv -lsocket +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch new file mode 100644 index 0000000000..01783f45b7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch @@ -0,0 +1,30 @@ +From 1947ea776dc38c3377702dd89bd229670f4d948d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 29 Mar 2017 23:06:52 -0700 +Subject: [PATCH 5/8] include sys/ttydefaults.h for CEOT definition + +Fixes + +config.c:146:25: error: use of undeclared identifier 'CEOT' + if (llen == 0 && c == CEOT) + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + config.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/config.c b/config.c +index 804faa7..1883d12 100644 +--- a/config.c ++++ b/config.c +@@ -31,6 +31,7 @@ + #include <sys/types.h> + #include <sys/utsname.h> + #include <sys/wait.h> ++#include <sys/ttydefaults.h> + + #include <gcrypt.h> + +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch new file mode 100644 index 0000000000..fa89df2796 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch @@ -0,0 +1,40 @@ +From 56768fc0c2cbd6abcf28c9805ab516db8a0548d4 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 29 Mar 2017 23:09:47 -0700 +Subject: [PATCH 6/8] sysdep: Add header include sequence to adjust for musl + +--- + sysdep.h | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/sysdep.h b/sysdep.h +index 6a323f0..0122b95 100644 +--- a/sysdep.h ++++ b/sysdep.h +@@ -17,16 +17,20 @@ + * __SKYOS__ + * + */ ++/* hack to make sure kernel headers understand that libc (musl) ++ * does define IFF_LOWER_UP et al. ++ */ ++#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0 + + #include <sys/types.h> + #include <sys/socket.h> +-#include <netinet/in.h> + + #if !defined(__CYGWIN__) +-#include <net/if.h> +-#include <net/if_arp.h> ++//#include <linux/if.h> ++//#include <net/if_arp.h> + #include <netinet/if_ether.h> + #endif ++#include <netinet/in.h> + + #include "config.h" + +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch new file mode 100644 index 0000000000..de67b47a43 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch @@ -0,0 +1,66 @@ +From b6a027fe4da6f66552b533f1314e5005b16c5455 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 29 Mar 2017 23:52:36 -0700 +Subject: [PATCH 7/8] add error() API when error.h is not on platform + +sign-off-by: Khem Raj <raj.khem@gmail.com> +--- + sysdep.c | 24 ++++++++++++++++++++++++ + sysdep.h | 2 ++ + 2 files changed, 26 insertions(+) + +diff --git a/sysdep.c b/sysdep.c +index d8f181d..2518ec1 100644 +--- a/sysdep.c ++++ b/sysdep.c +@@ -17,6 +17,7 @@ + GNU General Public License for more details. + */ + ++#define _GNU_SOURCE + #include <unistd.h> + #include <fcntl.h> + #include <stdlib.h> +@@ -794,3 +795,26 @@ int setenv(const char *name, const char *value, int overwrite) + return ret; + } + #endif ++ ++#ifndef _ERROR_H_ ++#define _ERROR_H_ ++#include <stdarg.h> ++#include <stdio.h> ++#include <errno.h> ++ ++void error(int status, int errnum, const char* format, ...) ++{ ++ va_list ap; ++ ++ fflush(stdout); ++ fprintf(stderr, "%s: ", program_invocation_name); ++ va_start(ap, format); ++ vfprintf(stderr, format, ap); ++ va_end(ap); ++ if (errnum) ++ fprintf(stderr, ":%d", errnum); ++ if (status) ++ exit(status); ++} ++#endif /* _ERROR_H_ */ ++ +diff --git a/sysdep.h b/sysdep.h +index 0122b95..4e60064 100644 +--- a/sysdep.h ++++ b/sysdep.h +@@ -44,6 +44,8 @@ int tun_get_hwaddr(int fd, char *dev, uint8_t *hwaddr); + #if defined(__linux__) + #if defined(__GLIBC__) + #include <error.h> ++#else ++void error(int status, int errnum, const char* format, ...); + #endif + #define HAVE_VASPRINTF 1 + #define HAVE_ASPRINTF 1 +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch new file mode 100644 index 0000000000..62ffdb7c9f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch @@ -0,0 +1,36 @@ +From 7f01847d14a1a3af50f49499743b0551ddef1311 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 29 Mar 2017 23:54:01 -0700 +Subject: [PATCH 8/8] include sysdep.h before net/if_tun.h + +Fixes duplicate defines in header errors + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + sysdep.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sysdep.c b/sysdep.c +index 2518ec1..5624ef1 100644 +--- a/sysdep.c ++++ b/sysdep.c +@@ -57,6 +57,8 @@ + #include <sys/cygwin.h> + #endif + ++#include "sysdep.h" ++ + #if defined(__DragonFly__) + #include <net/tun/if_tun.h> + #elif defined(__linux__) +@@ -69,7 +71,6 @@ + #include <net/if_tun.h> + #endif + +-#include "sysdep.h" + + #if !defined(HAVE_VASPRINTF) || !defined(HAVE_ASPRINTF) || !defined(HAVE_ERROR) + #include <stdarg.h> +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch deleted file mode 100644 index f394e6abdd..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc/makeman.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- vpnc-0.5.1/makeman.pl.old 2008-03-16 02:17:59.000000000 -0500 -+++ vpnc-0.5.1/makeman.pl 2008-03-16 02:29:34.000000000 -0500 -@@ -29,7 +29,7 @@ my $vpnc = './vpnc'; - # indenting lists (those originally starting with an asterisk). I hope - # this pays off when converting the manpage to HTML or such. - --open my $LONGHELP, '-|', "$vpnc --long-help"; -+open my $LONGHELP, '-|', "cat ../long-help"; - my $vpnc_options = ''; - my $relative_indent = 0; - my $indent_needed = 0; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb index 1aff0458d3..6f92acd06c 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb @@ -4,17 +4,39 @@ AUTHOR = "Maurice Massar vpnc@unix-ag.uni-kl.de" SECTION = "net" LICENSE = "GPL-2.0+" LIC_FILES_CHKSUM = "file://COPYING;md5=173b74cb8ac640a9992c03f3bce22a33" -DEPENDS = "libgcrypt" -inherit perlnative +DEPENDS += "libgcrypt" -EXTRA_OEMAKE = "-e MAKEFLAGS=" -CFLAGS_append = ' -DVERSION=\\"${PV}\\"' -LDFLAGS_append = " -lgcrypt -lgpg-error" +PV .= "r550-2jnpr1" +SRCREV = "b1243d29e0c00312ead038b04a2cf5e2fa31d740" +SRC_URI = "git://github.com/ndpgroup/vpnc \ + file://long-help \ + file://default.conf \ + file://0001-search-for-log-help-in-build-dir.patch \ + file://0002-Fix-vpnc-install-for-cross-compile.patch \ + file://0003-error.h-is-specific-to-glibc-on-linux.patch \ + file://0004-Use-pkgconfig-instead-of-libgcrypt-config.patch \ + file://0005-include-sys-ttydefaults.h-for-CEOT-definition.patch \ + file://0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch \ + file://0007-add-error-API-when-error.h-is-not-on-platform.patch \ + file://0008-include-sysdep.h-before-net-if_tun.h.patch \ + " + +PACKAGECONFIG ?= "gnutls" + +PACKAGECONFIG[gnutls] = ",,gnutls" +PACKAGECONFIG[openssl] = ",,openssl" + +S = "${WORKDIR}/git" + +inherit perlnative pkgconfig + +#EXTRA_OEMAKE = "-e MAKEFLAGS=" do_configure_append () { # Make sure we use our nativeperl wrapper sed -i "1s:#!.*:#!/usr/bin/env nativeperl:" ${S}/*.pl + cp ${WORKDIR}/long-help ${S} } do_install () { @@ -34,12 +56,3 @@ vpnc_sysroot_preprocess () { CONFFILES_${PN} = "${sysconfdir}/vpnc/default.conf" RDEPENDS_${PN} = "perl-module-io-file" RRECOMMENDS_${PN} = "kernel-module-tun" - -SRC_URI = "http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-${PV}.tar.gz \ - file://makeman.patch \ - file://vpnc-install.patch \ - file://long-help \ - file://default.conf" - -SRC_URI[md5sum] = "4378f9551d5b077e1770bbe09995afb3" -SRC_URI[sha256sum] = "46cea3bd02f207c62c7c6f2f22133382602baeda1dc320747809e94881414884" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb index a9119eabc5..64e9401e7a 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb @@ -12,7 +12,9 @@ inherit bin_package do_install() { install -d -m0755 ${D}${libdir}/crda + install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys install -m 0644 regulatory.bin ${D}${libdir}/crda/regulatory.bin + install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem } RSUGGESTS_${PN} = "crda" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb index 0040f677bf..afae3c863a 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.9.0.bb @@ -19,5 +19,5 @@ SRC_URI[sha256sum] = "98f50244f7b43f8683bd0cf5c599849d330e75e6cf077e96f14e83bda8 inherit autotools -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch new file mode 100644 index 0000000000..075af5707b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch @@ -0,0 +1,50 @@ +From 933e065cf8aecfa0cce5f8f92abbed5baaaf3f77 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 31 Mar 2017 19:10:57 -0700 +Subject: [PATCH 1/2] Define __SWORD_TYPE and _PATH_NSSWITCH_CONF + +if they are not defined as is in musl then define +them here + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + include/automount.h | 8 ++++++++ + include/nsswitch.h | 3 +++ + 2 files changed, 11 insertions(+) + +diff --git a/include/automount.h b/include/automount.h +index 219b07d..b12c22a 100644 +--- a/include/automount.h ++++ b/include/automount.h +@@ -42,6 +42,14 @@ + + #define ENABLE_CORES 1 + ++#ifndef __SWORD_TYPE ++# if __WORDSIZE == 32 /* System word size */ ++# define __SWORD_TYPE int ++# else /* __WORDSIZE == 64 */ ++# define __SWORD_TYPE long int ++# endif ++#endif ++ + /* We MUST have the paths to mount(8) and umount(8) */ + #ifndef HAVE_MOUNT + #error Failed to locate mount(8)! +diff --git a/include/nsswitch.h b/include/nsswitch.h +index 2b445a9..3db77b2 100644 +--- a/include/nsswitch.h ++++ b/include/nsswitch.h +@@ -24,6 +24,9 @@ + #include <netdb.h> + #include "list.h" + ++#ifndef _PATH_NSSWITCH_CONF ++#define _PATH_NSSWITCH_CONF "/etc/nsswitch.conf" ++#endif + #define NSSWITCH_FILE _PATH_NSSWITCH_CONF + + enum nsswitch_status { +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch deleted file mode 100644 index 742f25de19..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0001-systemd-allow-with-systemd-to-take-a-path-arg.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 40971911d653bf53de295d7462c643e4073916b9 Mon Sep 17 00:00:00 2001 -From: Joe MacDonald <joe@deserted.net> -Date: Fri, 1 Nov 2013 12:47:18 -0400 -Subject: [PATCH] systemd: allow --with-systemd to take a path arg - -If building for a cross-compile environment with systemd it is convenient -to be able to specify a systemd path for the target that may not be the -same as that on the host. - -Upstream-status: Submitted [http://www.spinics.net/lists/autofs/msg00740.html] - -Signed-off-by: Joe MacDonald <joe@deserted.net> ---- - aclocal.m4 | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/aclocal.m4 b/aclocal.m4 -index 3e6f223..105e3e9 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -229,8 +229,10 @@ dnl Check the location of the systemd unit files directory - dnl -------------------------------------------------------------------------- - AC_DEFUN([AF_WITH_SYSTEMD], - [AC_ARG_WITH(systemd, --[ --with-systemd install systemd unit file if systemd unit directory -- is found on system], -+[ --with-systemd@<:@=systemddir@:>@ install systemd unit file. If 'yes' -+ probe the system for unit directory. -+ If a path is specified, assume that -+ is a valid install path.], - [if test "$withval" = yes; then - if test -z "$systemddir"; then - AC_MSG_CHECKING([location of the systemd unit files directory]) -@@ -247,6 +249,10 @@ AC_DEFUN([AF_WITH_SYSTEMD], - else - AC_MSG_RESULT(not found) - fi -+else -+ if test "$withval" != no; then -+ systemddir=$withval -+ fi - fi]) - ]) - --- -1.7.10.4 - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch new file mode 100644 index 0000000000..6b6ba6d855 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch @@ -0,0 +1,51 @@ +From 8fd74ddb3369572c594b22b396346131af00faee Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 31 Mar 2017 19:12:10 -0700 +Subject: [PATCH 2/2] Replace __S_IEXEC with S_IEXEC + +S_IEXEC is portable + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + daemon/lookup.c | 4 ++-- + modules/lookup_multi.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/daemon/lookup.c b/daemon/lookup.c +index 62071df..1bec97f 100644 +--- a/daemon/lookup.c ++++ b/daemon/lookup.c +@@ -400,7 +400,7 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source + if (!S_ISREG(st.st_mode)) + return NSS_STATUS_NOTFOUND; + +- if (st.st_mode & __S_IEXEC) ++ if (st.st_mode & S_IEXEC) + type = src_prog; + else + type = src_file; +@@ -890,7 +890,7 @@ static int lookup_name_file_source_instance(struct autofs_point *ap, struct map_ + if (!S_ISREG(st.st_mode)) + return NSS_STATUS_NOTFOUND; + +- if (st.st_mode & __S_IEXEC) ++ if (st.st_mode & S_IEXEC) + type = src_prog; + else + type = src_file; +diff --git a/modules/lookup_multi.c b/modules/lookup_multi.c +index 6ec8434..88d081f 100644 +--- a/modules/lookup_multi.c ++++ b/modules/lookup_multi.c +@@ -104,7 +104,7 @@ static struct lookup_mod *nss_open_lookup(const char *format, int argc, const ch + continue; + } + +- if (st.st_mode & __S_IEXEC) ++ if (st.st_mode & S_IEXEC) + type = src_prog; + else + type = src_file; +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/Makefile.rules-cross.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/Makefile.rules-cross.patch deleted file mode 100644 index 7dc7096c2e..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/Makefile.rules-cross.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: autofs-5.0.7/Makefile.rules -=================================================================== ---- autofs-5.0.7.orig/Makefile.rules 2012-07-24 23:05:26.000000000 -0700 -+++ autofs-5.0.7/Makefile.rules 2012-10-26 09:23:40.270204270 -0700 -@@ -34,14 +34,14 @@ - else - CFLAGS ?= -O2 -Wall - LDFLAGS = -s --STRIP = strip --strip-debug -+STRIP = ${TARGET_PREFIX}strip --strip-debug - endif - endif - --CC = gcc --CXX = g++ -+CC ?= ${TARGET_PREFIX}gcc -+CXX ?= ${TARGET_PREFIX}g++ - CXXFLAGS = $(CFLAGS) --LD = ld -+LD ?= ${TARGET_PREFIX}ld - SOLDFLAGS = -shared - - CFLAGS += -D_REENTRANT -D_FILE_OFFSET_BITS=64 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch new file mode 100644 index 0000000000..cbf2bf8047 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch @@ -0,0 +1,30 @@ +Make configure compatible with -Wl,--as-needed following +https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Failure_in_..2Fconfigure + +2016-07-05 Martin von Gagern + +Index: autofs-5.1.2/aclocal.m4 +=================================================================== +--- autofs-5.1.2.orig/aclocal.m4 ++++ autofs-5.1.2/aclocal.m4 +@@ -415,9 +415,9 @@ AC_DEFUN([AF_CHECK_LIBTIRPC], + [ + # save current flags + af_check_libtirpc_save_cflags="$CFLAGS" +-af_check_libtirpc_save_ldflags="$LDFLAGS" ++af_check_libtirpc_save_libs="$LIBS" + CFLAGS="$CFLAGS -I=/usr/include/tirpc" +-LDFLAGS="$LDFLAGS -ltirpc" ++LIBS="$LIBS -ltirpc" + + AC_TRY_LINK( + [ #include <rpc/rpc.h> ], +@@ -440,7 +440,7 @@ AC_CHECK_FUNCS([getrpcbyname getservbyna + + # restore flags + CFLAGS="$af_check_libtirpc_save_cflags" +-LDFLAGS="$af_check_libtirpc_save_ldflags" ++LIBS="$af_check_libtirpc_save_libs" + ]) + + AC_DEFUN([AF_WITH_LIBTIRPC], diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-additional-distros.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-additional-distros.patch deleted file mode 100644 index 6a35843cea..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/autofs-additional-distros.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- autofs-4.1.4/samples/rc.autofs.in~ 2005-04-11 06:30:54.000000000 -0500 -+++ autofs-4.1.4/samples/rc.autofs.in 2007-04-07 13:18:44.000000000 -0500 -@@ -43,6 +43,9 @@ - system=debian - elif [ -f /etc/redhat-release ]; then - system=redhat -+elif [ -f /etc/issue ] && grep -q "^SlugOS\|Yocto" /etc/issue ; then -+ # SlugOS and Yocto behave like Debian, at least for autofs purposes. -+ system=debian - else - echo "$0: Unknown system, please port and contact autofs@linux.kernel.org" 1>&2 - exit 1 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch index 31c8510a69..94750b257c 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/fix_disable_ldap.patch @@ -15,8 +15,10 @@ Signed-off-by: Amy Fong <amy.fong@windriver.com> include/lookup_ldap.h | 4 ++++ 1 file changed, 4 insertions(+) ---- a/include/lookup_ldap.h -+++ b/include/lookup_ldap.h +Index: autofs-5.1.2/include/lookup_ldap.h +=================================================================== +--- autofs-5.1.2.orig/include/lookup_ldap.h ++++ autofs-5.1.2/include/lookup_ldap.h @@ -1,7 +1,9 @@ #ifndef LOOKUP_LDAP_H #define LOOKUP_LDAP_H @@ -27,14 +29,14 @@ Signed-off-by: Amy Fong <amy.fong@windriver.com> #ifdef WITH_SASL #include <openssl/ssl.h> -@@ -109,10 +111,12 @@ +@@ -117,10 +119,12 @@ struct lookup_context { #define LDAP_AUTH_USESIMPLE 0x0008 +#ifdef WITH_LDAP /* lookup_ldap.c */ LDAP *init_ldap_connection(unsigned logopt, const char *uri, struct lookup_context *ctxt); - int unbind_ldap_connection(unsigned logopt, LDAP *ldap, struct lookup_context *ctxt); + int unbind_ldap_connection(unsigned logopt, struct ldap_conn *conn, struct lookup_context *ctxt); int authtype_requires_creds(const char *authtype); +#endif diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc-name-clash-backout.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc-name-clash-backout.patch deleted file mode 100644 index e93021d567..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/libtirpc-name-clash-backout.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- - lib/rpc_subs.c | 10 ---------- - 1 file changed, 10 deletions(-) - -diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c -index 5d6ead0..c7177f2 100644 ---- a/lib/rpc_subs.c -+++ b/lib/rpc_subs.c -@@ -34,16 +34,6 @@ - #include <poll.h> - - #ifdef WITH_LIBTIRPC --#undef auth_destroy --#define auth_destroy(auth) \ -- do { \ -- int refs; \ -- if ((refs = auth_put((auth))) == 0) \ -- ((*((auth)->ah_ops->ah_destroy))(auth));\ -- } while (0) --#endif -- --#ifdef WITH_LIBTIRPC - const rpcprog_t rpcb_prog = RPCBPROG; - const rpcvers_t rpcb_version = RPCBVERS; - #else --- -1.7.10.4 - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch new file mode 100644 index 0000000000..bf2c964a0e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch @@ -0,0 +1,19 @@ +Use pkg-config first to look for external libnsl which is now +split out from glibc, if it does not exist then see if its provided +by glibc itself. + +-Khem + +Index: autofs-5.1.2/configure.in +=================================================================== +--- autofs-5.1.2.orig/configure.in ++++ autofs-5.1.2/configure.in +@@ -186,7 +186,7 @@ fi + # + # glibc/libc 6 new libraries + # +-AC_CHECK_LIB(nsl, yp_match, LIBNSL="-lnsl") ++PKG_CHECK_MODULES([NSL], [libnsl], [], [AC_CHECK_LIB([nsl],[yp_match],[LIBNSL="-lnsl"],[LIBNSL=""])]) + AC_SUBST(LIBNSL) + + AC_CHECK_LIB(resolv, res_query, LIBRESOLV="-lresolv") diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb index 4a888c84fd..eea7c4b835 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.1.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb @@ -3,16 +3,17 @@ SECTION = "utils" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" -DEPENDS += "libtirpc flex-native bison-native" +DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl" -inherit autotools-brokensep systemd +CFLAGS += "-I${STAGING_INCDIR}/tirpc" + +inherit autotools-brokensep systemd update-rc.d pkgconfig SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \ file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \ file://no-bash.patch \ file://cross.patch \ file://libtirpc.patch \ - file://libtirpc-name-clash-backout.patch \ file://autofs-5.0.7-do-not-check-for-modprobe.patch \ file://fix_disable_ldap.patch \ file://autofs-5.0.7-fix-lib-deps.patch \ @@ -21,27 +22,28 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \ file://force-STRIP-to-emtpy.patch \ file://remove-bashism.patch \ file://fix-the-YACC-rule-to-fix-a-building-failure.patch \ -" - -SRC_URI[md5sum] = "e143df66b614b8cdb1ff533735f8e12d" -SRC_URI[sha256sum] = "795419383b120d15699ab3b89ea0f3d029f6fb28405a83982d305c4b7b61130f" - -inherit update-rc.d pkgconfig + file://0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch \ + file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \ + file://autofs-5.1.2-libtirpc-as-need.patch \ + file://pkgconfig-libnsl.patch \ + " +SRC_URI[md5sum] = "28cf88f99eff553a8500659ba5d45a76" +SRC_URI[sha256sum] = "0d57e4138c2ec8058ca92164d035546f68ce4af93acb893369993d67c7056a10" INITSCRIPT_NAME = "autofs" INITSCRIPT_PARAMS = "defaults" # FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS -CFLAGS += "${LDFLAGS}" +#CFLAGS += "${LDFLAGS}" PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd" -PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" EXTRA_OEMAKE = "DONTSTRIP=1" EXTRA_OECONF += "--disable-mount-locking \ --enable-ignore-busy --with-openldap=no \ - --with-sasl=no --with-libtirpc=yes \ + --with-sasl=no --with-libtirpc \ --with-path=${STAGING_BINDIR_NATIVE} \ " CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \ @@ -49,9 +51,9 @@ CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \ " do_configure_prepend () { - sed -e "s:filagdir:flagdir:" -i configure.in - if [ ! -e acinclude.m4 ]; then - cp aclocal.m4 acinclude.m4 + sed -e "s:filagdir:flagdir:" -i ${S}/configure.in + if [ ! -e ${S}/acinclude.m4 ]; then + cp ${S}/aclocal.m4 ${S}/acinclude.m4 fi } @@ -63,6 +65,7 @@ do_install_append () { rmdir ${D}${localstatedir}/run fi } +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" INSANE_SKIP_${PN} = "dev-so" @@ -70,3 +73,4 @@ RPROVIDES_${PN} += "${PN}-systemd" RREPLACES_${PN} += "${PN}-systemd" RCONFLICTS_${PN} += "${PN}-systemd" SYSTEMD_SERVICE_${PN} = "autofs.service" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb index 69df274fe0..61b7ad47d0 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb @@ -24,10 +24,8 @@ EXTRA_OECONF += "--with-dblib=berkeley \ andrew_cv_runpath_switch=none" PACKAGECONFIG ??= "ntlm \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'ldap', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ - " + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 ldap pam', d)} \ +" PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5," PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam," PACKAGECONFIG[opie] = "--with-opie,--without-opie,opie," diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb index b5851a9599..2da29d9cb4 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb @@ -16,13 +16,13 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ SRC_URI[md5sum] = "41c9b070aae8ed403fc8c2aac7ab157c" SRC_URI[sha256sum] = "aa46e7f8736b88c1d752cf606b3990041221ce91d014e955c6b02eb2167db015" -PNBLACKLIST[dnrd] ?= "BROKEN: dnrd-2.20.3-r0 do_package: QA Issue: dnrd: Files/directories were installed but not shipped in any package:" +PNBLACKLIST[dnrd] ?= "BROKEN: dnrd-2.20.3-r0 do_package: QA Issue: dnrd: Files/directories were installed but not shipped in any package: - the recipe will be removed on 2017-09-01 unless the issue is fixed" SYSTEMD_SERVICE_${PN} = "dnrd.service" SYSTEMD_AUTO_ENABLE = "disable" inherit autotools -inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)} +inherit ${@bb.utils.filter('VIRTUAL-RUNTIME_init_manager', 'systemd', d)} do_install() { oe_runmake install DESTDIR=${D} INSTALL="install -p" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb new file mode 100644 index 0000000000..c3d2f1afaa --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb @@ -0,0 +1,13 @@ +SUMMARY = "simple dynamic multicast routing daemon that only uses IGMP signalling" +HOMEPAGE = "http://sourceforge.net/projects/igmpproxy/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e995e2799bb0d27d63069b97f805420" + +SRC_URI = "http://sourceforge.net/projects/igmpproxy/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + " + +SRC_URI[md5sum] = "c56f41ec195bc1fe016369bf74efc5a1" +SRC_URI[sha256sum] = "ee18ff3d8c3ae3a29dccb7e5eedf332337330020168bd95a11cece8d7d7ee6ae" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-Do-not-clean-kernel-source.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-Do-not-clean-kernel-source.patch new file mode 100644 index 0000000000..2c466119cd --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-Do-not-clean-kernel-source.patch @@ -0,0 +1,44 @@ +From 4ebab8add4a549c16ab8b124137546c0a7b46a9b Mon Sep 17 00:00:00 2001 +From: Joe MacDonald <joe_macdonald@mentor.com> +Date: Tue, 15 Nov 2016 11:11:30 -0500 +Subject: [PATCH] Do not clean kernel source + +The default behaviour should not be to attempt to clean the kernel source +tree when building userspace. When not cross-compiling, however, this action is +harmless, but when attempting to build within the sysroot and since this package +is purely userspace, the clean step will fail. + +Removing the clean step eliminates an unnecessary dependency on the kernel build +infrastructure. + +Upstream-status: Inappropriate (embedded specific) + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> +--- + Makefile | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index c8cd00e..9576bba 100644 +--- a/Makefile ++++ b/Makefile +@@ -37,7 +37,7 @@ endif + + all: user + +-user: iscsiuio/Makefile ++user: + $(MAKE) -C utils/sysdeps + $(MAKE) -C utils/fwparam_ibft + $(MAKE) -C usr +@@ -75,7 +75,6 @@ clean: + $(MAKE) -C utils/fwparam_ibft clean + $(MAKE) -C utils clean + $(MAKE) -C usr clean +- $(MAKE) -C kernel clean + [ ! -f iscsiuio/Makefile ] || $(MAKE) -C iscsiuio clean + [ ! -f iscsiuio/Makefile ] || $(MAKE) -C iscsiuio distclean + +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch deleted file mode 100644 index ce48e2bb39..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-dont-use-static.patch +++ /dev/null @@ -1,21 +0,0 @@ -iscsi-initiator-utils not to use static - -Upstream-status: Backport -This patch is from fedora17. - -Signed-off-by: Yao Zhao <yao.zhao@windriver.com> -Signed-off-by: Vu Tran <vu.tran@windriver.com> - -diff --git a/usr/Makefile b/usr/Makefile -index 673b7f1..fd14a10 100644 ---- a/usr/Makefile -+++ b/usr/Makefile -@@ -61,7 +61,7 @@ iscsiadm: $(ISCSI_LIB_SRCS) $(DISCOVERY_SRCS) iscsiadm.o session_mgmt.o - - iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \ - iscsistart.o statics.o -- $(CC) $(CFLAGS) -static $^ -o $@ -+ $(CC) $(CFLAGS) $^ -o $@ - clean: - rm -f *.o $(PROGRAMS) .depend $(LIBSYS) - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-fw_context-add-include-for-NI_MAXHOST-definiton.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-fw_context-add-include-for-NI_MAXHOST-definiton.patch new file mode 100644 index 0000000000..37d695f49d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-fw_context-add-include-for-NI_MAXHOST-definiton.patch @@ -0,0 +1,35 @@ +From 79bea58a554205dd185509fbc4e76b5fc40f9038 Mon Sep 17 00:00:00 2001 +From: Joe MacDonald <joe_macdonald@mentor.com> +Date: Tue, 15 Nov 2016 12:36:45 -0500 +Subject: [PATCH] fw_context: add include for NI_MAXHOST definiton + +This appears to build successfully with gcc 4.x but fails on gcc 5+, though it's +not immediately clear why NI_MAXHOST isn't being defined from the include +chain. Currently engaging with the upstream devs to determine the best course +of action, but this is an adequate workaround. + +Upstream-status: Pending + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> +--- + include/fw_context.h | 4 + + 1 file changed, 1 insertion(+) + +diff --git a/include/fw_context.h b/include/fw_context.h +index 44053d8..0b05cea 100644 +--- a/include/fw_context.h ++++ b/include/fw_context.h +@@ -21,6 +21,10 @@ + #ifndef FWPARAM_CONTEXT_H_ + #define FWPARAM_CONTEXT_H_ + ++#include <sys/socket.h> ++#ifndef NI_MAXHOST ++#define NI_MAXHOST 1025 ++#endif + #include <netdb.h> + #include <net/if.h> + +-- +2.1.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch deleted file mode 100644 index 50227a7748..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/files/iscsi-initiator-utils-use-var-for-config.patch +++ /dev/null @@ -1,240 +0,0 @@ -iscsi-initiator-utils to use var for config - -Upstream-status: Backport -This patch is from fedora. - -Use /var/lib/iscsi/ instead of /etc/iscsi/ for holding -state files. - -Signed-off-by: Yao Zhao <yao.zhao@windriver.com> -Signed-off-by: Vu Tran <vu.tran@windriver.com> - -diff --git a/README b/README -index 7364b2d..5e8bff8 100644 ---- a/README -+++ b/README -@@ -164,10 +164,10 @@ available on all Linux installations. - - The database contains two tables: - --- Discovery table (/etc/iscsi/send_targets); --- Node table (/etc/iscsi/nodes). -+- Discovery table (/var/lib/iscsi/send_targets); -+- Node table (/var/lib/iscsi/nodes). - --The regular place for iSCSI database files: /etc/iscsi/nodes -+The regular place for iSCSI database files: /var/lib/iscsi/nodes - - The iscsiadm utility is a command-line tool to manage (update, delete, - insert, query) the persistent database. -@@ -444,7 +444,7 @@ a scsi_host per HBA port). - To manage both types of initiator stacks, iscsiadm uses the interface (iface) - structure. For each HBA port or for software iscsi for each network - device (ethX) or NIC, that you wish to bind sessions to you must create --a iface config /etc/iscsi/ifaces. -+a iface config /var/lib/iscsi/ifaces. - - Prep: - -@@ -478,29 +478,29 @@ Running: - iface0 qla4xxx,00:c0:dd:08:63:e8,20.15.0.7,default,iqn.2005-06.com.redhat:madmax - iface1 qla4xxx,00:c0:dd:08:63:ea,20.15.0.9,default,iqn.2005-06.com.redhat:madmax - --Will report iface configurations that are setup in /etc/iscsi/ifaces. -+Will report iface configurations that are setup in /var/lib/iscsi/ifaces. - The format is: - - iface_name transport_name,hwaddress,ipaddress,net_ifacename,initiatorname - - For software iscsi, you can create the iface configs by hand, but it is - reccomended that you use iscsiadm's iface mode. There is a iface.example in --/etc/iscsi/ifaces which can be used as a template for the daring. -+/var/lib/iscsi/ifaces which can be used as a template for the daring. - - For each network object you wish to bind a session to you must create --a seperate iface config in /etc/iscsi/ifaces and each iface config file -+a seperate iface config in /var/lib/iscsi/ifaces and each iface config file - must have a unique name which is less than or equal to 64 characters. - - Example: - - If you have NIC1 with MAC address 00:0F:1F:92:6B:BF and NIC2 with - MAC address 00:C0:DD:08:63:E7 and you wanted to do software iscsi over --TCP/IP. Then in /etc/iscsi/ifaces/iface0 you would enter: -+TCP/IP. Then in /var/lib/iscsi/ifaces/iface0 you would enter: - - iface.transport_name = tcp - iface.hwaddress = 00:0F:1F:92:6B:BF - --and in /etc/iscsi/ifaces/iface1 you would enter: -+and in /var/lib/iscsi/ifaces/iface1 you would enter: - - iface.transport_name = tcp - iface.hwaddress = 00:C0:DD:08:63:E7 -@@ -550,7 +550,7 @@ cxgb3i.00:07:43:05:97:07 cxgb3i,00:07:43:05:97:07,<empty>,<empty>,<empty> - qla4xxx.00:0e:1e:04:8b:2e qla4xxx,00:0e:1e:04:8b:2e,<empty>,<empty>,<empty> - - --Will report iface configurations that are setup in /etc/iscsi/ifaces. -+Will report iface configurations that are setup in /var/lib/iscsi/ifaces. - The format is: - - iface_name transport_name,hwaddress,ipaddress,net_ifacename,initiatorname -@@ -636,7 +636,7 @@ need a seperate network connection to the target for discovery purposes. - *This will be fixed in the next version of open-iscsi* - - For compatibility reasons, when you run iscsiadm to do discovery, it --will check for interfaces in /etc/iscsi/iscsi/ifaces that are using -+will check for interfaces in /var/lib/iscsi/iscsi/ifaces that are using - tcp for the iface.transport and it will bind the portals that are discovered - so that they will be logged in through those ifaces. This behavior can also - be overriden by passing in the interfaces you want to use. For the case -@@ -654,7 +654,7 @@ we do not bind a session to a iface, then you can use the special iface - - iscsiadm -m discoverydb -t st -p ip:port -I default --discover -P 1 - --And if you did not define any interfaces in /etc/iscsi/ifaces and do -+And if you did not define any interfaces in /var/lib/iscsi/ifaces and do - not pass anything into iscsiadm, running iscsiadm will do the default - behavior, where we allow the network subsystem to decide which - device to use. -@@ -696,7 +696,7 @@ To now log into targets it is the same as with sofware iscsi. See section - - ./iscsiadm -m discoverydb -t st -p 192.168.1.1:3260 --discover - -- This will search /etc/iscsi/send_targets for a record with the -+ This will search /var/lib/iscsi/send_targets for a record with the - ID [portal = 192.168.1.1:3260 and type = sendtargets. If found it - will perform discovery using the settings stored in the record. - If a record does not exist, it will be created using the iscsid.conf -@@ -705,7 +705,7 @@ To now log into targets it is the same as with sofware iscsi. See section - The argument to -p may also be a hostname instead of an address. - ./iscsiadm -m discoverydb -t st -p smoehost --discover - -- For the ifaces, iscsiadm will first search /etc/iscsi/ifaces for -+ For the ifaces, iscsiadm will first search /var/lib/iscsi/ifaces for - interfaces using software iscsi. If any are found then nodes found - during discovery will be setup so that they can logged in through - those interfaces. To specify a specific iface, pass the -@@ -761,7 +761,7 @@ To now log into targets it is the same as with sofware iscsi. See section - This command will perform discovery, but not manipulate the node DB. - - - SendTargets iSCSI Discovery with a specific interface. If you -- wish to only use a subset of the interfaces in /etc/iscsi/ifaces -+ wish to only use a subset of the interfaces in /var/lib/iscsi/ifaces - then you can pass them in during discovery: - - ./iscsiadm -m discoverydb -t sendtargets -p 192.168.1.1:3260 \ -@@ -1072,8 +1072,8 @@ where targetname is the name of the target and ip_address:port is the address - and port of the portal. tpgt, is the portal group tag of - the portal, and is not used in iscsiadm commands except for static - record creation. And iface name is the name of the iscsi interface --defined in /etc/iscsi/ifaces. If no interface was defined in --/etc/iscsi/ifaces or passed in, the default behavior is used. -+defined in /var/lib/iscsi/ifaces. If no interface was defined in -+/var/lib/iscsi/ifaces or passed in, the default behavior is used. - Default here is iscsi_tcp/tcp to be used over which ever NIC the - network layer decides is best. - -@@ -1188,7 +1188,7 @@ If set, iscsid will perform discovery to the address every - discovery.isns.discoveryd_poll_inval or - discovery.sendtargets.discoveryd_poll_inval seconds, - and it will log into any portals found from the discovery source using --the ifaces in /etc/iscsi/ifaces. -+the ifaces in /var/lib/iscsi/ifaces. - - Note that for iSNS the poll_interval does not have to be set. If not set, - iscsid will only perform rediscovery when it gets a SCN from the server. -diff --git a/doc/iscsiadm.8 b/doc/iscsiadm.8 -index 7c209f6..e94cca0 100644 ---- a/doc/iscsiadm.8 -+++ b/doc/iscsiadm.8 -@@ -89,7 +89,7 @@ This option is only valid for ping submode. - .TP - \fB\-I\fR, \fB\-\-interface=\fI[iface]\fR - The interface argument specifies the iSCSI interface to use for the operation. --iSCSI interfaces (iface) are defined in /etc/iscsi/ifaces. For hardware -+iSCSI interfaces (iface) are defined in /var/lib/iscsi/ifaces. For hardware - iSCSI (qla4xxx) the iface config must have the hardware address - (iface.hwaddress = port's MAC address) - and the driver/transport_name (iface.transport_name). The iface's name is -@@ -166,7 +166,7 @@ If no other options are specified: for \fIdiscoverydb\fR and \fInode\fR, all - of their respective records are displayed; for \fIsession\fR, all active - sessions and connections are displayed; for \fIfw\fR, all boot firmware - values are displayed; for \fIhost\fR, all iSCSI hosts are displayed; and --for \fIiface\fR, all ifaces setup in /etc/iscsi/ifaces are displayed. -+for \fIiface\fR, all ifaces setup in /var/lib/iscsi/ifaces are displayed. - - .TP - \fB\-n\fR, \fB\-\-name=\fIname\fR -@@ -535,10 +535,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup. - The file containing the iSCSI InitiatorName and InitiatorAlias read by - \fBiscsid\fR and \fBiscsiadm\fR on startup. - .TP --/etc/iscsi/nodes/ -+/var/lib/iscsi/nodes/ - This directory contains the nodes with their targets. - .TP --/etc/iscsi/send_targets -+/var/lib/iscsi/send_targets - This directory contains the portals. - - .SH "SEE ALSO" -diff --git a/usr/idbm.c b/usr/idbm.c -index 4d30aa9..316e54f 100644 ---- a/usr/idbm.c -+++ b/usr/idbm.c -@@ -2468,9 +2468,9 @@ free_info: - int idbm_init(idbm_get_config_file_fn *fn) - { - /* make sure root db dir is there */ -- if (access(ISCSI_CONFIG_ROOT, F_OK) != 0) { -- if (mkdir(ISCSI_CONFIG_ROOT, 0660) != 0) { -- log_error("Could not make %s %d\n", ISCSI_CONFIG_ROOT, -+ if (access(ISCSIVAR, F_OK) != 0) { -+ if (mkdir(ISCSIVAR, 0660) != 0) { -+ log_error("Could not make %s %d\n", ISCSIVAR, - errno); - return errno; - } -diff --git a/usr/idbm.h b/usr/idbm.h -index 245f046..f45e86e 100644 ---- a/usr/idbm.h -+++ b/usr/idbm.h -@@ -28,12 +28,16 @@ - #include "config.h" - #include "list.h" - --#define NODE_CONFIG_DIR ISCSI_CONFIG_ROOT"nodes" --#define SLP_CONFIG_DIR ISCSI_CONFIG_ROOT"slp" --#define ISNS_CONFIG_DIR ISCSI_CONFIG_ROOT"isns" --#define STATIC_CONFIG_DIR ISCSI_CONFIG_ROOT"static" --#define FW_CONFIG_DIR ISCSI_CONFIG_ROOT"fw" --#define ST_CONFIG_DIR ISCSI_CONFIG_ROOT"send_targets" -+#define ISCSIVAR "/var/lib/iscsi/" -+ -+#define NODE_CONFIG_DIR ISCSIVAR"nodes" -+#define SLP_CONFIG_DIR ISCSIVAR"slp" -+#define ISNS_CONFIG_DIR ISCSIVAR"isns" -+#define STATIC_CONFIG_DIR ISCSIVAR"static" -+#define FW_CONFIG_DIR ISCSIVAR"fw" -+#define ST_CONFIG_DIR ISCSIVAR"send_targets" -+ -+ - #define ST_CONFIG_NAME "st_config" - #define ISNS_CONFIG_NAME "isns_config" - -diff --git a/usr/iface.h b/usr/iface.h -index 01f7074..2c6ef72 100644 ---- a/usr/iface.h -+++ b/usr/iface.h -@@ -20,7 +20,8 @@ - #ifndef ISCSI_IFACE_H - #define ISCSI_IFACE_H - --#define IFACE_CONFIG_DIR ISCSI_CONFIG_ROOT"ifaces" -+#include "idbm.h" -+#define IFACE_CONFIG_DIR ISCSIVAR"ifaces" - - struct iface_rec; - struct list_head; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.874.bb index 4b13155cd2..16ac199926 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.874.bb @@ -4,52 +4,66 @@ independent, multi-platform implementation of RFC3720. The iscsi package \ provides the server daemon for the iSCSI protocol, as well as the utility \ programs used to manage it. iSCSI is a protocol for distributed \ disk access using SCSI commands sent over Internet Protocol networks." -HOMEPAGE = "http://www.open-iscsi.org/" +HOMEPAGE = "http://www.open-iscsi.com/" LICENSE = "GPLv2 & LGPLv2.1" SECTION = "net" -DEPENDS = "openssl flex-native bison-native" - -LIC_FILES_CHKSUM = \ - "file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ - file://utils/open-isns/COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -SRC_URI = "http://www.open-iscsi.org/bits/open-iscsi-${PV}.tar.gz \ - file://iscsi-initiator-utils-use-var-for-config.patch \ - file://iscsi-initiator-utils-dont-use-static.patch \ - file://initd.debian \ - file://99_iscsi-initiator-utils \ - file://iscsi-initiator \ - file://iscsi-initiator.service \ - file://iscsi-initiator-targets.service \ - file://set_initiatorname \ +DEPENDS = "openssl flex-native bison-native open-isns util-linux" + +LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" + +SRCREV ?= "8db9717e73d32d2c5131da4f9ad86dfd9065f74b" + +SRC_URI = "git://github.com/open-iscsi/open-iscsi \ + file://iscsi-initiator-utils-Do-not-clean-kernel-source.patch \ + file://iscsi-initiator-utils-fw_context-add-include-for-NI_MAXHOST-definiton.patch \ + file://initd.debian \ + file://99_iscsi-initiator-utils \ + file://iscsi-initiator \ + file://iscsi-initiator.service \ + file://iscsi-initiator-targets.service \ + file://set_initiatorname \ " -SRC_URI[md5sum] = "8b8316d7c9469149a6cc6234478347f7" -SRC_URI[sha256sum] = "7dd9f2f97da417560349a8da44ea4fcfe98bfd5ef284240a2cc4ff8e88ac7cd9" -S = "${WORKDIR}/open-iscsi-${PV}" +S = "${WORKDIR}/git" +B = "${WORKDIR}/build" -inherit update-rc.d systemd +inherit update-rc.d systemd autotools distro_features_check +# open-isns depends on systemd +REQUIRED_DISTRO_FEATURES = "systemd" + +EXTRA_OECONF = " \ + --target=${TARGET_SYS} \ + --host=${BUILD_SYS} \ + --prefix=${prefix} \ + --libdir=${libdir} \ +" + +EXTRA_OEMAKE = ' \ + CC="${CC}" \ + AR="${AR}" \ + RANLIB="${RANLIB}" \ + CFLAGS="${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE -I. -I../include -I../../include -I../usr -I../../usr" \ + LDFLAGS="${LDFLAGS}" \ + LD="${LD}" \ + OS="${TARGET_SYS}" \ + TARGET="${TARGET_OS}" \ + BASE="${prefix}" \ + MANDIR="${mandir}" \ +' TARGET_CC_ARCH += "${LDFLAGS}" + do_configure () { - #need to support cross-compiling in open-isns only - (cd utils/open-isns; gnu-configize; \ - ./configure --host=${TARGET_SYS} --build=${BUILD_SYS} --with-security=no ) + cd ${S}/iscsiuio ; autoreconf --install; ./configure ${EXTRA_OECONF} } do_compile () { - #make iscsistart one of PROGRAMS if install_user in do_install - #sed -i -e '/^PROGRAMS = /s;$; usr/iscsistart;' Makefile - - #fix the ar used in open-isns - sed -i -e 's:ar cr :$(AR) cr :' ${S}/utils/open-isns/Makefile - oe_runmake user + # Make sure we DO NOT regenerate prom_lex.c. + mv ${S}/utils/fwparam_ibft/prom_lex.l ${S}/utils/fwparam_ibft/prom_lex.l.unused + oe_runmake -C ${S} ${EXTRA_OEMAKE} user } do_install () { - #completely override the install_user as bugs in Makefile - #oe_runmake DESTDIR="${D}" install_user - #install necessary directories install -d ${D}${sbindir} \ ${D}${sysconfdir}/init.d \ @@ -83,8 +97,8 @@ do_install () { install -m 0644 ${WORKDIR}/iscsi-initiator.service \ ${WORKDIR}/iscsi-initiator-targets.service \ ${D}${systemd_unitdir}/system/ - install -d ${D}${nonarch_libdir}/iscsi - install -m 0755 ${WORKDIR}/set_initiatorname ${D}${nonarch_libdir}/iscsi + install -d ${D}${nonarch_libdir}/iscsi + install -m 0755 ${WORKDIR}/set_initiatorname ${D}${nonarch_libdir}/iscsi else install -d ${D}/etc/default/volatiles install -m 0644 ${WORKDIR}/99_iscsi-initiator-utils ${D}/etc/default/volatiles @@ -93,11 +107,11 @@ do_install () { pkg_postinst_${PN}() { if [ "x$D" = "x" ]; then - if [ -e /etc/init.d/populate-volatile.sh ]; then + if [ -e /etc/init.d/populate-volatile.sh ]; then /etc/init.d/populate-volatile.sh update - elif command -v systemd-tmpfiles >/dev/null; then + elif command -v systemd-tmpfiles >/dev/null; then systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/iscsi.conf - fi + fi fi } diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.6.bb index 77ed09f542..0cd0637201 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.2.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/lldpd/lldpd_0.9.6.bb @@ -11,8 +11,8 @@ SRC_URI = "\ file://lldpd.default \ " -SRC_URI[md5sum] = "b809887bc927fb558fd5dd64b6c0a494" -SRC_URI[sha256sum] = "6054f29d41faf32186a22331853a299c87f4419b4332df4a564f76a139305a32" +SRC_URI[md5sum] = "0dcdee7c1b3c62362d73f6508c11edae" +SRC_URI[sha256sum] = "e74e2dd7e2a233ca1ff385c925ddae2a916d302819d1433741407d2f8fb0ddd8" inherit autotools update-rc.d useradd systemd pkgconfig bash-completion diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch new file mode 100644 index 0000000000..4644910b76 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-add-libnetsnmp-when-link.patch @@ -0,0 +1,25 @@ +[PATCH] add libnetsnmp when link + +Upstream-Status: Pending + +Signed-off-by: Roy Li <rongqing.li@windriver.com> +--- + plugins/snmp_bc/t/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/snmp_bc/t/Makefile.am b/plugins/snmp_bc/t/Makefile.am +index 57e77ac..9894620 100644 +--- a/plugins/snmp_bc/t/Makefile.am ++++ b/plugins/snmp_bc/t/Makefile.am +@@ -74,7 +74,7 @@ nodist_libsnmp_bc_la_SOURCES = $(GENERATED_EVENT_CODE) $(REMOTE_SIM_SOURCES) + # libopenhpi_la_LIBADD = $(top_builddir)/utils/libopenhpiutils.la + # libopenhpi_la_LDFLAGS = -L$(top_builddir)/utils -version-info @HPI_LIB_VERSION@ -export-symbols $(top_srcdir)/src/hpi.sym + +-libsnmp_bc_la_LIBADD = -luuid @SNMPLIBS@ $(top_builddir)/utils/libopenhpiutils.la ++libsnmp_bc_la_LIBADD = -luuid @SNMPLIBS@ $(top_builddir)/utils/libopenhpiutils.la -lnetsnmp + libsnmp_bc_la_LDFLAGS = -L$(top_builddir)/utils -module -version-info @HPI_LIB_VERSION@ + # libsnmp_bc_la_LDFLAGS = -version 0:0:0 + +-- +1.7.10.4 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch new file mode 100644 index 0000000000..077e26cbff --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-alignment-issue.patch @@ -0,0 +1,23 @@ +Fix alignment issue in ipmi_inventory.c + +Upstream-Status: Pending + +Signed-of-by: Aws Ismail <aws.ismail@windriver.com> + +diff --git a/plugins/ipmi/ipmi_inventory.c b/plugins/ipmi/ipmi_inventory.c +index 5382186..01655c6 100644 +--- a/plugins/ipmi/ipmi_inventory.c ++++ b/plugins/ipmi/ipmi_inventory.c +@@ -2546,8 +2546,11 @@ static SaErrorT modify_inventory(SaHpiIdrFieldT *field, + if (tb->DataLength == 0) { + rv = ipmi_fru_set_board_info_mfg_time(fru, 0); + } else { ++ time_t the_time; ++ /* tb->Data is not aligned -- copy to temp */ ++ memcpy(&the_time, tb->Data, sizeof(the_time)); + rv = ipmi_fru_set_board_info_mfg_time(fru, +- *(time_t *)tb->Data); ++ the_time); + } + break; + case SAHPI_IDR_FIELDTYPE_MANUFACTURER: diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch new file mode 100644 index 0000000000..029b857bc1 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-host-gcc.patch @@ -0,0 +1,24 @@ +fix host gcc warnings + +Remove gcc warnings when gcc is v3.2 + +Upstream-Status: Pending + +Signed-of-by: Aws Ismail <aws.ismail@windriver.com> + +diff --git a/configure.ac b/configure.ac +index f5a5b74..4a20154 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -605,11 +605,6 @@ AC_ARG_ENABLE([werror], + fi], + []) + +-if test -n "`gcc --version | grep ' 3.2'`" ; then +- CC_WARNINGS=`echo $CC_WARNINGS | sed -e 's/-Wno-strict-aliasing//g'` +- CXX_WARNINGS=`echo $CC_WARNINGS | sed -e 's/-Wno-strict-aliasing//g'` +-fi +- + case $host_os in + solaris*) + CC_WARNINGS=`echo $CC_WARNINGS | sed -e 's/-Wcast-qual//g'` diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch new file mode 100644 index 0000000000..205696e651 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch @@ -0,0 +1,31 @@ +Fix for saftest failures. + +Upstream-Status: Pending + +Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com> + +diff -urpN a/openhpid/safhpi.c b/openhpid/safhpi.c +--- a/openhpid/safhpi.c ++++ b/openhpid/safhpi.c +@@ -1976,7 +1976,7 @@ SaErrorT SAHPI_API saHpiSensorThresholds + oh_release_domain(d); /* Unlock domain */ + + OH_CALL_ABI(h, set_sensor_thresholds, SA_ERR_HPI_INVALID_CMD, rv, +- ResourceId, SensorNum, SensorThresholds); ++ ResourceId, SensorNum, &tmp); + oh_release_handler(h); + + return rv; +diff -urpN a/utils/sahpi_struct_utils.c b/utils/sahpi_struct_utils.c +--- a/utils/sahpi_struct_utils.c ++++ b/utils/sahpi_struct_utils.c +@@ -3855,6 +3855,9 @@ SaHpiBoolT oh_valid_textbuffer(SaHpiText + /* found a unpaired surrogate */ + return SAHPI_FALSE; + } ++ } else { ++ /*the first 2 bytes wrong*/ ++ return SAHPI_FALSE; + } + } + break; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch new file mode 100644 index 0000000000..1627c97972 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-glib-cross-compile.patch @@ -0,0 +1,33 @@ +Fix glib cross compile + +Uses proper PKG_CONFIG_PATH when cross-compiling + +Upstream-Status: Pending + +Signed-of-by: Aws Ismail <aws.ismail@windriver.com> + +diff --git a/configure.ac b/configure.ac +index b5f5aad..f5a5b74 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -110,13 +110,13 @@ else + *** GLIB is always available from ftp://ftp.gtk.org/.]) + fi + +-exact_version=`pkg-config --modversion $GLIB`; +-GLIB_CFLAGS=`pkg-config --cflags $GLIB $GTHREAD` +-GLIB_LIBS=`pkg-config --libs $GLIB $GTHREAD` +-GLIB_ONLY_CFLAGS=`pkg-config --cflags $GLIB` +-GLIB_ONLY_LIBS=`pkg-config --libs $GLIB` +-GMODULE_ONLY_CFLAGS=`pkg-config --cflags $GMODULE` +-GMODULE_ONLY_LIBS=`pkg-config --libs $GMODULE` ++exact_version=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --modversion $GLIB`; ++GLIB_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --cflags $GLIB $GTHREAD` ++GLIB_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --libs $GLIB $GTHREAD` ++GLIB_ONLY_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --cflags $GLIB` ++GLIB_ONLY_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --libs $GLIB` ++GMODULE_ONLY_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --cflags $GMODULE` ++GMODULE_ONLY_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH pkg-config --libs $GMODULE` + + # On some versions of Solaris the pkg-config file for gthread-2.0 contains a + # compiler option, '-mt', that is incompatible with gcc diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch new file mode 100644 index 0000000000..7dac453189 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch @@ -0,0 +1,29 @@ +commit e9f9a73c9dba8dd59f3d6c3acd9988ec8361d55a +Author: Aws Ismail <aws.ismail@windriver.com> +Date: Mon Dec 17 16:23:45 2012 -0500 + + Correct dangling g_thread_exit in session.c + + hpi_shell's session.c has its progress_bar + thread created using pthread_create but + exited using g_thread_exit. Use pthread_exit + instead to avoid unpredictable GLIB thread + errors. + + Upstream-Status: Pending + + Signed-off-by: Aws Ismail <aws.ismail@windriver.com> + +diff --git a/hpi_shell/session.c b/hpi_shell/session.c +index 85c31bf..187da4c 100644 +--- a/hpi_shell/session.c ++++ b/hpi_shell/session.c +@@ -66,7 +66,7 @@ static void* progress_bar(void *unused) + if (i < (PROGRESS_BUF_SIZE - mes_len - 1)) i++; + t++; + }; +- g_thread_exit(0); ++ pthread_exit(0); + return (void *)1; + } + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch new file mode 100644 index 0000000000..d03c97e186 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-invalide-session.patch @@ -0,0 +1,21 @@ +Upstream-Status: Submitted + +Package saftest run a test case to pass invalid session id to function +saHpiResourceIdGet that expect return SA_ERR_HPI_INVALID_SESSION. But the check +for SA_ERR_HPI_INVALID_SESSION is missed somehow in function saHpiResourceIdGet. + +Add check for SA_ERR_HPI_INVALID_SESSION. + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +----- +--- openhpi-3.4.0/baselib/safhpi.cpp.orig 2014-02-25 10:45:20.911734868 +0800 ++++ openhpi-3.4.0/baselib/safhpi.cpp 2014-02-25 10:46:05.366925389 +0800 +@@ -477,6 +477,8 @@ + &rpt_update_count ); + if ( rv == SA_ERR_HPI_NOT_PRESENT ) { + return SA_ERR_HPI_NOT_PRESENT; ++ } else if ( rv == SA_ERR_HPI_INVALID_SESSION) { ++ return SA_ERR_HPI_INVALID_SESSION; + } else if ( rv != SA_OK ) { + return SA_ERR_HPI_UNKNOWN; + } diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch new file mode 100644 index 0000000000..6d3b6648a8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch @@ -0,0 +1,21 @@ +Fix libxml2 for cross-compiling + +Use proper XML2_INCLUDE path when cross-compiling + +Upstream-Status: Pending + +Signed-of-by: Aws Ismail <aws.ismail@windriver.com> + +diff --git a/configure.ac b/configure.ac +index 30a792c..b5f5aad 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -175,7 +175,7 @@ AC_CHECK_HEADERS([openssl/md2.h openssl/md5.h openssl/bio.h openssl/ssl.h openss + + dnl xml is used for XML-based communication in ilo2_ribcl and oa_soap + AC_CHECK_LIB([xml2],[xmlParseMemory],[XML2_LIB=-lxml2],[XML2_LIB=]) +-AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="-I/usr/include/libxml2"],[XML2_INCLUDE]) ++AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="$XML2_INCLUDE"],[XML2_INCLUDE]) + AC_SUBST(XML2_LIB) + AC_SUBST(XML2_INCLUDE) + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch new file mode 100644 index 0000000000..3222f5d13d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-linkfix.patch @@ -0,0 +1,33 @@ +Fix ipmi plugin's test dir compilation + +The ipmi plugin's test dir is not included +in compilation since it does not compile +properly with SSL + +Signed-of-by: Aws Ismail <aws.ismail@windriver.com> + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> +--- + plugins/ipmi/Makefile.in | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/plugins/ipmi/Makefile.in b/plugins/ipmi/Makefile.in +index 7c6b0a4..6204dbe 100644 +--- a/plugins/ipmi/Makefile.in ++++ b/plugins/ipmi/Makefile.in +@@ -448,7 +448,9 @@ top_srcdir = @top_srcdir@ + MAINTAINERCLEANFILES = Makefile.in + AM_CPPFLAGS = -DG_LOG_DOMAIN=\"ipmi\" @OPENHPI_INCLUDES@ + EXTRA_DIST = ipmi.sym ekeyfru.h +-SUBDIRS = t ++#SUBDIRS = t ++#Tests don't compile wih SSL properly so comment them out ++SUBDIRS = + AM_CFLAGS = @OPENIPMI_CFLAGS@ + pkglib_LTLIBRARIES = libipmi.la + libipmi_la_SOURCES = ipmi.c \ +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch new file mode 100644 index 0000000000..95b0abc913 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch @@ -0,0 +1,48 @@ +Fix net-snmp when cross-compiling + +Remove irrelevant references to net-snmp libs and flags +when cross-compiling net-snmp + +Signed-of-by: Aws Ismail <aws.ismail@windriver.com> + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> +--- + acinclude.m4 | 4 ++-- + configure | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index 82c33f6..727e461 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -160,8 +160,8 @@ AC_DEFUN([OH_CHECK_NETSNMP], + ], + [ + have_netsnmp=yes +- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'` +- SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs` ++ SNMPFLAGS="" ++ SNMPLIBS="" + AC_MSG_RESULT(yes) + ], + [AC_MSG_RESULT(no. No SNMP based plugins can be built!)]) +diff --git a/configure b/configure +index 00067bc..36b913c 100755 +--- a/configure ++++ b/configure +@@ -15949,8 +15949,8 @@ _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + + have_netsnmp=yes +- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'` +- SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs` ++ SNMPFLAGS="" ++ SNMPLIBS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch new file mode 100644 index 0000000000..38d9a67424 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-sysfs-cross-compile.patch @@ -0,0 +1,23 @@ +Fix sysfs when cross-compiling + +Use proper paths for sysfs plugins when cross-compiling + +Signed-of-by: Aws Ismail <aws.ismail@windriver.com> + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> + +diff --git a/plugins/sysfs/sysfs2hpi.c b/plugins/sysfs/sysfs2hpi.c +index a745214..3685598 100644 +--- a/plugins/sysfs/sysfs2hpi.c ++++ b/plugins/sysfs/sysfs2hpi.c +@@ -18,7 +18,7 @@ + + #include <stdlib.h> + #include <string.h> +-#include <libsysfs.h> ++#include <sysfs/libsysfs.h> + + #include <SaHpi.h> + #include <oh_utils.h> diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch new file mode 100644 index 0000000000..51537ef128 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch @@ -0,0 +1,31 @@ +From 36fbaa27e7299f63c1324b0ad22b970e9365d6a7 Mon Sep 17 00:00:00 2001 +From: Jackie Huang <jackie.huang@windriver.com> +Date: Wed, 24 Dec 2014 10:54:59 +0800 +Subject: [PATCH] openhpi: use serial-tests config needed by ptest + +ptest needs buildtest-TESTS and runtest-TESTS targets. +serial-tests is required to generate those targets. + +Upstream-Status: Inappropriate [default automake behavior incompatible with ptest] + +Signed-off-by: Jackie Huang <jackie.huang@windriver.com> +--- + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 4b51971..16136b3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -7,7 +7,7 @@ dnl various hacks by Sean Dague <http://dague.net/sean> 4/23/03 + AC_PREREQ(2.57) + AC_INIT(openhpi, 3.5.0) + AC_CONFIG_SRCDIR(openhpi.spec.in) +-AM_INIT_AUTOMAKE([1.8]) ++AM_INIT_AUTOMAKE([1.8 serial-tests]) + + AM_CONFIG_HEADER(config.h) + AH_TOP([#ifndef __OPENHPI_CONFIG_H +-- +1.7.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi.init b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi.init new file mode 100755 index 0000000000..3a5f4a06ac --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi.init @@ -0,0 +1,230 @@ +#! /bin/sh +# +### BEGIN INIT INFO +# Provides: openhpid +# Required-Start: $network $remote_fs $syslog +# Required-Stop: $network $remote_fs $syslog +# Should-Start: $named +# Should-Stop: $named +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start OpenHPI daemon at boot time +# Description: Enable OpenHPI service which is provided by openhpid. +### END INIT INFO +# +# openhpid.sh Start/Stop the openhpi daemon. +# +# description: openhpid is standard UNIX program which uses the OpenHPI \ +# APIs and provides a standard internet server to access those \ +# APIs for client programs. +# processname: openhpid +# config: the standard openhpi conf file specified on the command line or the env. +# pidfile: /var/run/openhpid.pid +# +# Author(s): +# W. David Ashley <dashley@us.ibm.com> +# Daniel de Araujo <ddearauj@us.ibm.com> + +# Source function library. +PATH=/sbin:/bin:/usr/sbin:/usr/bin +prog="OpenHPI" + +# If the openhpid executable is not available, we can't do any of this +test -f /usr/sbin/openhpid || exit 0 + +# Determine whether the lsb package is installed +# If it is, determine which lsb is installed: +# redhat, suse, or standard lsb + +if test -f /etc/init.d/functions +then + lsbtype="rh" + . /etc/init.d/functions +elif test -f /etc/rc.status +then + lsbtype="suse" + . /etc/rc.status +elif test -f /lib/lsb/init-functions +then + lsbtype="lsb" + . /lib/lsb/init-functions +elif test -f /etc/gentoo-release +then + lsbtype="gentoo" + . /sbin/functions.sh +else + lsbtype="nolsb" +fi + +print_outcome() +{ + + case "${lsbtype}" in + + suse) + rc_status -v + ;; + + lsb) + if test "$?" -eq 0 + then + log_success_msg "success" + else + log_failure_msg "failed" + fi + ;; + + gentoo) + eend $? + ;; + + nolsb | rh) + if test "$?" -eq 0 + then + echo " ... success" + fi + if test "$?" -ne 0 + then + echo " ... failed" + fi + ;; + esac +} + +start() { + case "${lsbtype}" in + + suse) + echo -n "Starting $prog: " + startproc /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf + RETVAL=$? + ;; + lsb) + echo -n "Starting $prog: " + start_daemon /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf + RETVAL=$? + ;; + gentoo | rh) + echo "Starting $prog: " + start-stop-daemon --start --quiet --exec /usr/sbin/openhpid -- -c /etc/openhpi/openhpi.conf + RETVAL=$? + ;; + nolsb) + echo -n "Starting $prog: " + /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf + RETVAL=$? + ;; + + esac + + print_outcome + +} + +stop() { + case "${lsbtype}" in + + lsb | suse) + echo -n "Stopping $prog: " + killproc /usr/sbin/openhpid + RETVAL=$? + ;; + + gentoo) + echo "Stopping $prog: " + start-stop-daemon --stop --quiet --exec /usr/sbin/openhpid + RETVAL=$? + ;; + + nolsb | rh) + echo -n "Stopping $prog: " + if test -f /var/run/openhpid.pid && test "`cat /var/run/openhpid.pid`" != "" + then + kill "`cat /var/run/openhpid.pid`" + RETVAL=$? + else + RETVAL=0 + fi + ;; + + esac + + print_outcome + + if test "$RETVAL" -eq 0 && test -f /var/run/openhpid.pid + then + rm -f /var/lock/openhpid + rm -f /var/run/openhpid.pid + fi + +} + +dstatus() { + echo "Checking for $prog daemon: " + + case "${lsbtype}" in + + suse) + checkproc /usr/sbin/openhpid + rc_status -v + ;; + lsb) + pid="`pidofproc /usr/sbin/openhpid`" + if test "${pid}" != "" + then + log_success_msg "$prog is running" + else + log_success_msg "$prog is not running" + fi + ;; + gentoo | nolsb | rh) + if test -f /var/run/openhpid.pid && + test "`cat /var/run/openhpid.pid`" != "" && + kill -s 0 "`cat /var/run/openhpid.pid`" + then + echo "$prog is running" + else + echo "$prog is not running" + fi + + ;; + + esac + + + +} + +restart() { + stop + start +} + +force_reload() { + # We don't currently support a reload, but can do a restart + stop + start +} + +# See how we were called. + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + restart + ;; + status) + dstatus + ;; + force-reload) + force_reload + ;; + *) + echo "Usage: $0 {start|stop|restart|status|force-reload}" + exit 1 +esac diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpid.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpid.service new file mode 100644 index 0000000000..cd4168f8e5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpid.service @@ -0,0 +1,11 @@ +[Unit] +Description=Daemon providing access to the SAF Hardware Platform Interface +After=syslog.target + +[Service] +Type=forking +PIDFile=/var/run/openhpid.pid +ExecStart=@SBINDIR@/openhpid -c @SYSCONFDIR@/openhpi/openhpi.conf + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/run-ptest b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/run-ptest new file mode 100755 index 0000000000..5b187d9086 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/run-ptest @@ -0,0 +1,5 @@ +#!/bin/sh +for x in `find ./ -name Makefile`; +do + make -C `dirname ${x}` -k runtest-TESTS +done diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb new file mode 100644 index 0000000000..b9b0437b27 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb @@ -0,0 +1,109 @@ +SUMMARY = "Hardware Platform Interface Library and Tools" + +DESCRIPTION = "\ +OpenHPI is an open source project created with the intent of providing an \ +implementation of the SA Forum's Hardware Platform Interface (HPI). HPI \ +provides an abstracted interface to managing computer hardware, typically for \ +chassis and rack based servers. HPI includes resource modeling; access to and \ +control over sensor, control, watchdog, and inventory data associated with \ +resources; abstracted System Event Log interfaces; hardware events and alerts; \ +and a managed hotswap interface. \ +\ +OpenHPI provides a modular mechanism for adding new hardware and device support \ +easily. Many plugins exist in the OpenHPI source tree to provide access to \ +various types of hardware. This includes, but is not limited to, IPMI based \ +servers, Blade Center, and machines which export data via sysfs. \ +" + +HOMEPAGE = "http://openhpi.sourceforge.net/Home" +SECTION = "net" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4" + +DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ + file://openhpi-netsnmp-cross-compile.patch \ + file://openhpi-sysfs-cross-compile.patch \ + file://openhpi-libxml2-cross-compile.patch \ + file://openhpi-glib-cross-compile.patch \ + file://openhpi-linkfix.patch \ + file://openhpi-fix-host-gcc.patch \ + file://openhpi-hpi-shell-thread-fix.patch \ + file://openhpi-fix-testfail-errors.patch \ + file://openhpi-add-libnetsnmp-when-link.patch \ + file://openhpi-invalide-session.patch \ + file://openhpi-use-serial-tests-config-needed-by-ptest.patch \ + file://openhpi-fix-alignment-issue.patch \ + \ + file://openhpi.init \ + file://openhpid.service \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "4718b16e0f749b5ad214a9b04f45dd23" +SRC_URI[sha256sum] = "e0a810cb401c4bdcfc9551f2e6afd5a8ca4b411f5ee3bc60c19f82fd6e84a3dc" + +inherit autotools pkgconfig ptest update-rc.d systemd + +PACKAGES =+ "${PN}-libs" + +FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so" + +INSANE_SKIP_${PN}-libs = "dev-so" +RDEPENDS_${PN} += "${PN}-libs" + +PACKAGECONFIG ??= "libgcrypt" +PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils," +PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt," + +do_install_append () { + install -m 0755 -d ${D}${sysconfdir}/${BPN} + install -m 0755 ${S}/openhpiclient.conf.example ${D}${sysconfdir}/${BPN}/openhpiclient.conf + install -m 0700 ${S}/openhpi.conf.example ${D}${sysconfdir}/${BPN}/openhpi.conf + install -m 0755 ${S}/simulation.data.example ${D}${sysconfdir}/${BPN}/simulation.data + install -m 0755 ${S}/test_agent.data.example ${D}${sysconfdir}/${BPN}/test_agent.data + install -m 0755 ${WORKDIR}/openhpi.init ${D}${sysconfdir}/init.d/openhpid + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/openhpid.service ${D}${systemd_unitdir}/system + sed -i -e "s,@SBINDIR@,${sbindir},g" -e "s,@SYSCONFDIR@,${sysconfdir},g" \ + ${D}${systemd_unitdir}/system/openhpid.service +} + +do_compile_ptest () { + for x in `find ${B} -name Makefile -exec grep -l buildtest-TESTS {} \;`; do + dir=`dirname ${x}` + upper=`dirname ${dir}` + if [ `basename ${upper}` != "cpp" ]; then + oe_runmake -C ${dir} buildtest-TESTS + fi + done +} + +do_install_ptest () { + cp -rf ${B}/openhpid/t/ohpi/.libs/* ${B}/openhpid/t/ohpi/ + TESTS="utils marshal openhpid" + for subtest in ${TESTS}; do + mkdir -p ${D}${PTEST_PATH}/${subtest}/t + cp -rf ${B}/${subtest}/t/* ${D}${PTEST_PATH}/${subtest}/t + done + + for x in `find ${D}${PTEST_PATH} -name Makefile`; do + sed -i "s:${S}:${PTEST_PATH}/:g" ${x}; + sed -i "s/^Makefile:/MM:/g" ${x}; + done; + + mkdir -p ${D}${PTEST_PATH}/plugins/watchdog/ + cp -L ${D}/${libdir}/${BPN}/libwatchdog.so ${D}${PTEST_PATH}/plugins/watchdog/ + cp -L ${D}/${libdir}/${BPN}/libsimulator.so ${D}${PTEST_PATH}/plugins/watchdog/ + find ${D}${PTEST_PATH}/ -name "*.c" -exec rm {} \; + find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \; + find ${D}${PTEST_PATH}/ -name "*.h" -exec rm {} \; +} + +INITSCRIPT_NAME = "openhpid" +INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ." + +SYSTEMD_SERVICE_${PN} = "openhpid.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Remove-unused-variables.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Remove-unused-variables.patch new file mode 100644 index 0000000000..1c88b81cd6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-Remove-unused-variables.patch @@ -0,0 +1,43 @@ +From a441a75fbb8451268a8a57616c7158cddc1823aa Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 22 Apr 2017 12:40:19 -0700 +Subject: [PATCH] Remove unused variables + +Fixes build errors with gcc7 e.g. + +../opensaf-5.2.0/src/amf/amfd/imm.cc: In member function 'bool ImmObjCreate::immobj_update_required()': +../opensaf-5.2.0/src/amf/amfd/imm.cc:2174:28: error: unused variable 'pos' [-Werror=unused-variable] + std::string::size_type pos; + ^~~ +../opensaf-5.2.0/src/amf/amfd/imm.cc:2215:28: error: unused variable 'pos' [-Werror=unused-variable] + std::string::size_type pos; + ^~~ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/amf/amfd/imm.cc | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/amf/amfd/imm.cc b/src/amf/amfd/imm.cc +index 7932364..4f47b65 100644 +--- a/src/amf/amfd/imm.cc ++++ b/src/amf/amfd/imm.cc +@@ -2171,7 +2171,6 @@ bool ImmObjCreate::immobj_update_required() { + if (class_type == AVSV_SA_AMF_SI_ASSIGNMENT) { + std::string su_name; + std::string sisu_name; +- std::string::size_type pos; + while ((attribute = attrValues_[i++]) != nullptr) { + if (!strcmp(attribute->attrName, "safSISU")) { + sisu_name = Amf::to_string( +@@ -2212,7 +2211,6 @@ bool ImmObjCreate::immobj_update_required() { + } else if (class_type == AVSV_SA_AMF_CSI_ASSIGNMENT) { + std::string comp_name; + std::string csicomp_name; +- std::string::size_type pos; + AVD_CSI *csi = nullptr; + AVD_COMP *comp = nullptr; + AVD_COMP_CSI_REL *compcsi = nullptr; +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch new file mode 100644 index 0000000000..512e246c56 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch @@ -0,0 +1,127 @@ +From ab00d6f5793b2d850f975bcb6d5d0aa6d7a9eaa4 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 22 Apr 2017 12:34:37 -0700 +Subject: [PATCH] configure: Disable format-overflow if supported by gcc + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile.am | 6 ++-- + configure.ac | 2 ++ + m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 79 insertions(+), 3 deletions(-) + create mode 100644 m4/ax_check_compile_flag.m4 + +diff --git a/Makefile.am b/Makefile.am +index d63fbbb..1012a2c 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -52,10 +52,10 @@ AM_CPPFLAGS = \ + -pthread \ + -D_GNU_SOURCE -DINTERNAL_VERSION_ID='"@INTERNAL_VERSION_ID@"' \ + $(CORE_INCLUDES) \ +- $(all_includes) ++ $(all_includes) @NOWARNINGS@ + +-AM_CFLAGS = -pipe -std=gnu11 @OSAF_HARDEN_FLAGS@ -Wall -Wformat=2 -Werror +-AM_CXXFLAGS = -pipe -std=gnu++11 @OSAF_HARDEN_FLAGS@ -Wall -Wformat=2 -Werror ++AM_CFLAGS = -pipe -std=gnu11 @OSAF_HARDEN_FLAGS@ -Wall -Wformat=2 -Werror @NOWARNINGS@ ++AM_CXXFLAGS = -pipe -std=gnu++11 @OSAF_HARDEN_FLAGS@ -Wall -Wformat=2 -Werror @NOWARNINGS@ + AM_LDFLAGS = @OSAF_HARDEN_FLAGS@ -Wl,--as-needed -ldl -lrt -pthread -rdynamic + ACLOCAL_AMFLAGS = -I m4 + OSAF_LIB_FLAGS = +diff --git a/configure.ac b/configure.ac +index 02771c6..b76b0fe 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -557,6 +557,8 @@ if test -z "$OSAF_HARDEN_FLAGS"; then + fi + AC_SUBST(OSAF_HARDEN_FLAGS) + ++AX_CHECK_COMPILE_FLAG([-Werror=format-overflow],[NOWARNINGS=-Wno-error=format-overflow]) ++AC_SUBST(NOWARNINGS) + ############################################# + # List the output Makefiles + ############################################# +diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 +new file mode 100644 +index 0000000..dcabb92 +--- /dev/null ++++ b/m4/ax_check_compile_flag.m4 +@@ -0,0 +1,74 @@ ++# =========================================================================== ++# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) ++# ++# DESCRIPTION ++# ++# Check whether the given FLAG works with the current language's compiler ++# or gives an error. (Warnings, however, are ignored) ++# ++# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on ++# success/failure. ++# ++# If EXTRA-FLAGS is defined, it is added to the current language's default ++# flags (e.g. CFLAGS) when the check is done. The check is thus made with ++# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to ++# force the compiler to issue an error when a bad flag is given. ++# ++# INPUT gives an alternative input source to AC_COMPILE_IFELSE. ++# ++# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this ++# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de> ++# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com> ++# ++# This program is free software: you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation, either version 3 of the License, or (at your ++# option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++# Public License for more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with this program. If not, see <https://www.gnu.org/licenses/>. ++# ++# As a special exception, the respective Autoconf Macro's copyright owner ++# gives unlimited permission to copy, distribute and modify the configure ++# scripts that are the output of Autoconf when processing the Macro. You ++# need not follow the terms of the GNU General Public License when using ++# or distributing such scripts, even though portions of the text of the ++# Macro appear in them. The GNU General Public License (GPL) does govern ++# all other use of the material that constitutes the Autoconf Macro. ++# ++# This special exception to the GPL applies to versions of the Autoconf ++# Macro released by the Autoconf Archive. When you make and distribute a ++# modified version of the Autoconf Macro, you may extend this special ++# exception to the GPL to apply to your modified version as well. ++ ++#serial 5 ++ ++AC_DEFUN([AX_CHECK_COMPILE_FLAG], ++[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF ++AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl ++AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ ++ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS ++ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" ++ AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], ++ [AS_VAR_SET(CACHEVAR,[yes])], ++ [AS_VAR_SET(CACHEVAR,[no])]) ++ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) ++AS_VAR_IF(CACHEVAR,yes, ++ [m4_default([$2], :)], ++ [m4_default([$3], :)]) ++AS_VAR_POPDEF([CACHEVAR])dnl ++])dnl AX_CHECK_COMPILE_FLAGS +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch new file mode 100644 index 0000000000..5756a027b4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch @@ -0,0 +1,29 @@ +From 6248b717b4861d16b80235fd8e57d64e4f636428 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Apr 2017 17:39:07 -0700 +Subject: [PATCH] configure: Pass linker specific options with -Wl + +This helps make it pass the options to linker correctly +and we can use non-gcc compilers + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index df4fc58..02771c6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -553,7 +553,7 @@ if test -z "$OSAF_HARDEN_FLAGS"; then + if echo "${CFLAGS} ${CXXFLAGS}" | grep -q -- -O0; then + OSAF_HARDEN_FLAGS="" + fi +- OSAF_HARDEN_FLAGS="${OSAF_HARDEN_FLAGS} -fstack-protector --param ssp-buffer-size=4 -fPIE -pie -zrelro -znow" ++ OSAF_HARDEN_FLAGS="${OSAF_HARDEN_FLAGS} -fstack-protector --param ssp-buffer-size=4 -fPIE -pie -Wl,-z,relro,-z,now" + fi + AC_SUBST(OSAF_HARDEN_FLAGS) + +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-plmcd-error-fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-plmcd-error-fix.patch deleted file mode 100644 index 624cd2d7b0..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/0001-plmcd-error-fix.patch +++ /dev/null @@ -1,43 +0,0 @@ -From f1813af4c154fb1d3950abbdf678c3a5a67222fc Mon Sep 17 00:00:00 2001 -From: Li xin <lixin.fnst@cn.fujitsu.com> -Date: Thu, 25 Jun 2015 11:44:27 +0900 -Subject: [PATCH] plmcd: error fix - -ld: cannot find -lsystemd-daemon -collect2: error: ld returned 1 exit status - -Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> ---- - contrib/plmc/plmcd/Makefile.am | 2 +- - contrib/plmc/plmcd/Makefile.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/contrib/plmc/plmcd/Makefile.am b/contrib/plmc/plmcd/Makefile.am -index 8d847f2..dd7913a 100644 ---- a/contrib/plmc/plmcd/Makefile.am -+++ b/contrib/plmc/plmcd/Makefile.am -@@ -32,7 +32,7 @@ plmcd_SOURCES = \ - plmcd_LDFLAGS = -lpthread - - if ENABLE_SYSTEMD --plmcd_LDFLAGS += -lsystemd-daemon -+plmcd_LDFLAGS += -lsystemd - endif - - plmcd_LDADD = \ -diff --git a/contrib/plmc/plmcd/Makefile.in b/contrib/plmc/plmcd/Makefile.in -index 0185dc4..e40513a 100644 ---- a/contrib/plmc/plmcd/Makefile.in -+++ b/contrib/plmc/plmcd/Makefile.in -@@ -106,7 +106,7 @@ build_triplet = @build@ - host_triplet = @host@ - target_triplet = @target@ - sbin_PROGRAMS = plmcd$(EXEEXT) --@ENABLE_SYSTEMD_TRUE@am__append_1 = -lsystemd-daemon -+@ENABLE_SYSTEMD_TRUE@am__append_1 = -lsystemd - subdir = plmcd - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - am__aclocal_m4_deps = $(top_srcdir)/configure.ac --- -1.8.4.2 - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch deleted file mode 100644 index 016b64f2e9..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- opensaf-4.5.0.orig/Makefile.am 2014-12-31 14:45:54.088797989 +0800 -+++ opensaf-4.5.0/Makefile.am 2014-12-31 14:45:08.328796688 +0800 -@@ -219,7 +219,7 @@ install-data-local: - $(mkinstalldirs) $(DESTDIR)$(pkgpiddir) - $(mkinstalldirs) $(DESTDIR)$(lockdir) - $(mkinstalldirs) $(DESTDIR)$(pkglocalstatedir) -- cp -R samples/ $(DESTDIR)$(pkgdatadir) -+ cp -R $(srcdir)/samples/ $(DESTDIR)$(pkgdatadir) - - install-data-hook: - @for i in $$(grep -lr -e 'xxLIBDIRxx' -e 'xxLOGDIRxx' -e 'xxCLCCLIDIRxx' $(DESTDIR)$(pkgimmxml_svcdir)/*.xml) ; do \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.0.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.2.0.bb index da9c105207..be79ba8cb0 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.0.0.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/opensaf/opensaf_5.2.0.bb @@ -15,14 +15,17 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7" DEPENDS = "libxml2 python" +TOOLCHAIN = "gcc" -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \ - file://install-samples-from-srcdir.patch \ - file://0001-plmcd-error-fix.patch \ - " +SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" -SRC_URI[md5sum] = "94cd1a4c0406e6a45bb04c003f8690e7" -SRC_URI[sha256sum] = "4b4188a0f3d0ed1ed0e3d77de27c45e2c96b437401de08e7df2ed9ecd54bb999" +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \ + file://0001-configure-Pass-linker-specific-options-with-Wl.patch \ + file://0001-configure-Disable-format-overflow-if-supported-by-gc.patch \ + file://0001-Remove-unused-variables.patch \ +" +SRC_URI[md5sum] = "08991fd467ae9dcea3c8747be8e3981e" +SRC_URI[sha256sum] = "903478244afe37e329be93050f1d48fa18c84ea17862134c4217b920e267a04a" inherit autotools useradd systemd pkgconfig @@ -30,44 +33,34 @@ USERADD_PACKAGES = "${PN}" GROUPADD_PARAM_${PN} = "-f -r opensaf" USERADD_PARAM_${PN} = "-r -g opensaf -d ${datadir}/opensaf/ -s ${sbindir}/nologin -c \"OpenSAF\" opensaf" -SYSTEMD_SERVICE_${PN} += "opensafd.service plmcboot.service plmcd.service" +SYSTEMD_SERVICE_${PN} += "opensafd.service" SYSTEMD_AUTO_ENABLE = "disable" -PACKAGECONFIG[systemd] = "--enable-systemd-daemon" +PACKAGECONFIG[systemd] = ",,systemd" PACKAGECONFIG[openhpi] = "--with-hpi-interface=B03 --enable-ais-plm,,openhpi" -EXTRA_OECONF += " --libdir=${libdir}/opensaf " -EXTRA_OEMAKE += " -Wl,-rpath,${libdir}/opensaf " +PACKAGECONFIG_append = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}" -PKGLIBDIR="${libdir}/opensaf/opensaf" +PKGLIBDIR="${libdir}" -do_configure_prepend () { - ( cd ${S}; autoreconf -f -i -s ) -} +LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed" do_install_append() { + cp -av --no-preserve=ownership ${B}/lib/.libs/*.so* ${D}${libdir} rm -fr "${D}${localstatedir}/lock" rm -fr "${D}${localstatedir}/run" rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${B}/osaf/services/infrastructure/nid/config/opensafd.service \ - ${D}${systemd_unitdir}/system - install -m 0644 ${B}/contrib/plmc/config/*.service ${D}/${systemd_unitdir}/system + rmdir --ignore-fail-on-non-empty "${D}${datadir}/java" + if [ ! -d "${D}${sysconfdir}/init.d" ]; then + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${B}/osaf/services/infrastructure/nid/scripts/opensafd ${D}${sysconfdir}/init.d/ + fi } -FILES_${PN} += "${localstatedir}/run ${systemd_unitdir}/system/*.service" +FILES_${PN} += "${systemd_unitdir}/system/*.service" FILES_${PN}-staticdev += "${PKGLIBDIR}/*.a" INSANE_SKIP_${PN} = "dev-so" RDEPENDS_${PN} += "bash python" -do_sysvinit_install() { - if [ ! -d "${D}${sysconfdir}/init.d" ]; then - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${B}/osaf/services/infrastructure/nid/scripts/opensafd ${D}${sysconfdir}/init.d/ - fi -} - -addtask sysvinit_install after do_install before do_package - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc index 03b79850ba..4c794ffd68 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc @@ -164,8 +164,6 @@ do_install () { install -m 770 -d ${D}${localstatedir}/spool/postfix chown postfix:postfix ${D}${localstatedir}/spool/postfix - install -m 2755 -d ${D}${localstatedir}/spool/mail - chown postfix:nogroup ${D}${localstatedir}/spool/mail install -m 0755 -d ${D}${localstatedir}/lib/postfix chown postfix:nogroup ${D}${localstatedir}/lib/postfix install -m 0755 -d ${D}${localstatedir}/spool/postfix @@ -214,7 +212,7 @@ do_install_append_class-native() { do_install_append_class-target() { # Remove references to buildmachine paths in target makedefs.out - sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' ${D}/etc/postfix/makedefs.out + sed -i 's:-fdebug-prefix-map[^ ]*::g; s:--sysroot=${STAGING_DIR_TARGET}::g' ${D}/etc/postfix/makedefs.out } NATIVE_INSTALL_WORKS = "1" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5b.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5b.bb index c27a1cc9b3..73efac2fb1 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5b.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5b.bb @@ -20,8 +20,7 @@ SRC_URI[sha256sum] = "afc1789f2478acf88dfdc7d70da90a4fa2786d628218e9574273295d04 inherit autotools-brokensep useradd update-rc.d systemd PACKAGECONFIG ??= "shadow \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \ " PACKAGECONFIG[curses] = "--enable-curses --enable-ncurses, --disable-curses --disable-ncurses, ncurses" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb index f6aaee0eb6..e136193205 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb @@ -10,12 +10,12 @@ LIC_FILES_CHKSUM = "file://README;md5=0733e1b3788ab2ebbc63bf33a020da1d" DEPENDS = "libpcap" -inherit autotools systemd +inherit autotools pkgconfig systemd # return something like '1.2.3' or '1.2.3/rc1' # def get_sub(d): - parts = d.getVar('PV',True).split('-') + parts = d.getVar('PV').split('-') try: return parts[0] + '/' + parts[1] except: diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch new file mode 100644 index 0000000000..48674c3c57 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch @@ -0,0 +1,48 @@ +From f9150a0dc092ab2cbd47ee428436b747dce323a9 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 23 Apr 2017 10:28:28 -0700 +Subject: [PATCH] SquidNew: use noexcept instead of throw for C++11 compilers + +Fixes errors with gcc7 which is more pedantic about c++11 +conformance regarding deprecated features + +include/SquidNew.h:21:51: error: dynamic exception specifications are deprecated in C++11 +_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc) + ^~~~~ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + include/SquidNew.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/include/SquidNew.h b/include/SquidNew.h +index 39fcee0..c960347 100644 +--- a/include/SquidNew.h ++++ b/include/SquidNew.h +@@ -18,19 +18,19 @@ + */ + #include <new> + +-_SQUID_EXTERNNEW_ void *operator new(size_t size) throw (std::bad_alloc) ++_SQUID_EXTERNNEW_ void *operator new(size_t size) noexcept(false) + { + return xmalloc(size); + } +-_SQUID_EXTERNNEW_ void operator delete (void *address) throw() ++_SQUID_EXTERNNEW_ void operator delete (void *address) noexcept(true) + { + xfree(address); + } +-_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc) ++_SQUID_EXTERNNEW_ void *operator new[] (size_t size) noexcept(false) + { + return xmalloc(size); + } +-_SQUID_EXTERNNEW_ void operator delete[] (void *address) throw() ++_SQUID_EXTERNNEW_ void operator delete[] (void *address) noexcept(true) + { + xfree(address); + } +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch deleted file mode 100644 index 5f845bb4cd..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch +++ /dev/null @@ -1,31 +0,0 @@ -From faa212a4e0aaf442ff58fca50770a8fadc1038e3 Mon Sep 17 00:00:00 2001 -Message-Id: <faa212a4e0aaf442ff58fca50770a8fadc1038e3.1382041123.git.Jim.Somerville@windriver.com> -From: Jim Somerville <Jim.Somerville@windriver.com> -Date: Thu, 17 Oct 2013 16:17:48 -0400 -Subject: [PATCH 1/1] Add default entry for cross compile - -Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com> ---- - acinclude/krb5.m4 | 6 +++++- - 1 files changed, 5 insertions(+), 1 deletions(-) - -diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4 -index 5d9ac36..7a072a2 100644 ---- a/acinclude/krb5.m4 -+++ b/acinclude/krb5.m4 -@@ -82,7 +82,11 @@ main(void) - - return 0; - } --]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ]) -+]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ], -+[ -+ dnl Can't test in cross compiled env - so assume good -+ squid_cv_broken_heimdal_krb5_h=no -+]) - ], - [ - dnl Can't test in cross compiled env - so assume good --- -1.7.4.1 - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.20.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.25.bb index fc7f7689be..5116383b87 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.20.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/squid/squid_3.5.25.bb @@ -21,14 +21,14 @@ SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${P file://volatiles.03_squid \ file://set_sysroot_patch.patch \ file://squid-don-t-do-squid-conf-tests-at-build-time.patch \ -" + file://0001-SquidNew-use-noexcept-instead-of-throw-for-C-11-comp.patch \ + " +SRC_URI[md5sum] = "c34b228129a755f363367c45c46287ba" +SRC_URI[sha256sum] = "0bfd6182154b7f29574d71c659f1cfd1b7d9be9356895dac70dc0f3696a0639b" LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \ - file://errors/COPYRIGHT;md5=0d98c4448c368d146f31a970bb0ced21 \ + file://errors/COPYRIGHT;md5=8861130fae91400bcf99b66f133172b3 \ " -SRC_URI[md5sum] = "6a29d7dfc544205001f7a75c6996dc60" -SRC_URI[sha256sum] = "5a114f8f7f44b5ae3c9b77d7b81aef13fe69e7f530855213d551f48b157cb5f1" - DEPENDS = "libtool krb5 openldap db cyrus-sasl" inherit autotools useradd ptest @@ -39,13 +39,15 @@ USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --she PACKAGECONFIG ??= "${@bb.utils.contains('TARGET_ARCH', 'powerpc', 'noatomics', '', d)} \ ${@bb.utils.contains('TARGET_ARCH', 'mips', 'noatomics', '', d)} \ ${@bb.utils.contains('TARGET_ARCH', 'mipsel', 'noatomics', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ " PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack" PACKAGECONFIG[noatomics] = "squid_cv_gnu_atomics=no,squid_cv_gnu_atomics=yes,," PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -BASIC_AUTH = "DB SASL LDAP NIS" +BASIC_AUTH = "DB SASL LDAP" +BASIC_AUTH_append_libc-glibc = " NIS" + DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" BASIC_AUTH += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'PAM', '', d)}" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb index 5932f85cad..7f567133bf 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb @@ -37,7 +37,7 @@ export AR = "${HOST_PREFIX}ar cq" EXTRA_OECONF += "--disable-option-checking" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," # configure.in has errors diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch new file mode 100644 index 0000000000..c3919e1174 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch @@ -0,0 +1,28 @@ +From e55135c2a4ea7eae3cb1f4dccf69ca477ea095bf Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Mar 2017 20:09:12 -0700 +Subject: [PATCH] sysdeputil.c: Fix with musl which does not have utmpx + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + sysdeputil.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/sysdeputil.c b/sysdeputil.c +index 06f01f4..a8cff3b 100644 +--- a/sysdeputil.c ++++ b/sysdeputil.c +@@ -58,7 +58,9 @@ + #define VSF_SYSDEP_HAVE_SHADOW + #define VSF_SYSDEP_HAVE_USERSHELL + #define VSF_SYSDEP_HAVE_LIBCAP +-#define VSF_SYSDEP_HAVE_UTMPX ++#if defined(__GLIBC__) ++ #define VSF_SYSDEP_HAVE_UTMPX ++#endif + + #define __USE_GNU + #include <utmpx.h> +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb index 3eaaa30b62..e524614464 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb @@ -19,7 +19,10 @@ SRC_URI = "https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \ file://vsftpd.service \ file://vsftpd-2.1.0-filter.patch \ file://0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch \ -" + ${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)} \ + file://0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch \ + " LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \ file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \ @@ -30,13 +33,11 @@ SRC_URI[sha256sum] = "9d4d2bf6e6e2884852ba4e69e157a2cecd68c5a7635d66a3a8cf8d898c PACKAGECONFIG ??= "tcp-wrappers" PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers" -SRC_URI +="${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)}" DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}" PAMLIB = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '-L${STAGING_BASELIBDIR} -lpam', '', d)}" NOPAM_SRC ="${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://nopam-with-tcp_wrappers.patch', 'file://nopam.patch', d)}" -SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)}" inherit update-rc.d useradd systemd diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch index 0e8b792af8..bce38baee5 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch @@ -1,75 +1,108 @@ -1. test_bit was used to return true boolean value, if - BIO_UPTODATE bit of bio->bi_flags is set. But the same - job can be done by checking bio->bi_error, implemented in - linux kernel 4.3 and above. If bio->bi_error is set, then - it denotes error. +Description: Fix source to compile with 4.3+ kernels + commit 4246a0b63bd8f56a1469b12eafeb875b1041a451 + block: add a bi_error field to struct bio + -> Removes BIO_UPTODATE and error argument to bio_endio. + commit b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c + block: remove bio_get_nr_vecs() + -> Removed that call (always use BIO_MAX_PAGES) + commit 676d23690fb62b5d51ba5d659935e9f7d9da9f8e + net: Fix use after free by removing length arg from sk_data_ready callbacks. + -> Removes len argument from sk_data_ready() callback. +Author: Stefan Bader <stefan.bader@canonical.com> -Ref: https://github.com/torvalds/linux/commit/4246a0b63bd8f56a1469b12eafeb875b1041a451 +The original patch is at http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz, +those changes were taken using #ifs to allow compilation of iscsitarget +package with kernel versions < 4.3. -It solves below build error: --- snip -- -iscsitarget-1.4.20.3+svn502/kernel/block-io.c:40:19: error: 'BIO_UPTODATE' undeclared (first use in this function) - error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO; --- CUT -- - -2. bio can always be filled to a maximum value of BIO_MAX_PAGES, - so no need to check for min value for linux kernel 4.3 and above. - -Ref: https://github.com/torvalds/linux/commit/b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c - -It solves below build error: --- snip -- -iscsitarget-1.4.20.3+svn502/kernel/block-io.c:80:15: error: implicit declaration of function 'bio_get_nr_vecs' [-Werror=implicit-function-declaration] - max_pages = bio_get_nr_vecs(bio_data->bdev); --- CUT -- - -Upstream-Status: Pending +Upstream-Status: Submitted [http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz] Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2016-04-01 09:07:12.891810059 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2016-04-01 09:15:59.076469313 +0530 -@@ -33,7 +33,11 @@ static void blockio_bio_endio(struct bio +--- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 00:46:28.263951115 -0800 +@@ -29,14 +29,23 @@ struct tio_work { + struct completion tio_complete; + }; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++static void blockio_bio_endio(struct bio *bio) ++#else + static void blockio_bio_endio(struct bio *bio, int error) ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ { struct tio_work *tio_work = bio->bi_private; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ error = bio->bi_error ? -EIO : error; ++ if (bio->bi_error) ++ atomic_set(&tio_work->error, bio->bi_error); +#else error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ if (error) atomic_set(&tio_work->error, error); -@@ -61,6 +65,10 @@ blockio_make_request(struct iet_volume * ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + + /* If last bio signal completion */ + if (atomic_dec_and_test(&tio_work->bios_remaining)) +@@ -61,14 +70,20 @@ blockio_make_request(struct iet_volume * u32 size = tio->size; u32 tio_index = 0; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ int err = 0; -+ loff_t ppos = tio->offset; -+#else ++ int max_pages = bdev_q ? BIO_MAX_PAGES : 1; ++#else int max_pages = 1; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ int err = 0; -@@ -69,6 +77,7 @@ blockio_make_request(struct iet_volume * + loff_t ppos = tio->offset; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) /* Calculate max_pages for bio_alloc (memory saver) */ if (bdev_q) max_pages = bio_get_nr_vecs(bio_data->bdev); -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) */ tio_work = kzalloc(sizeof (*tio_work), GFP_KERNEL); if (!tio_work) -@@ -80,7 +89,11 @@ blockio_make_request(struct iet_volume * +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 00:39:09.737117778 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 00:52:30.037223901 -0800 +@@ -89,13 +89,21 @@ static void iet_state_change(struct sock + target->nthread_info.old_state_change(sk); + } - /* Main processing loop, allocate and fill all bios */ - while (size && tio_index < tio->pg_cnt) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ bio = bio_alloc(GFP_KERNEL, BIO_MAX_PAGES); -+#else - bio = bio_alloc(GFP_KERNEL, min(max_pages, BIO_MAX_PAGES)); -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ - if (!bio) { - err = -ENOMEM; - goto out; ++static void iet_data_ready(struct sock *sk) ++#else + static void iet_data_ready(struct sock *sk, int len) ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + { + struct iscsi_conn *conn = sk->sk_user_data; + struct iscsi_target *target = conn->session->target; + + nthread_wakeup(target); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ target->nthread_info.old_data_ready(sk); ++#else + target->nthread_info.old_data_ready(sk, len); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + } + + /* +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h +--- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 00:48:02.102837260 -0800 +@@ -81,7 +81,11 @@ struct network_thread_info { + spinlock_t nthread_lock; + + void (*old_state_change)(struct sock *); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) ++ void (*old_data_ready)(struct sock *); ++#else + void (*old_data_ready)(struct sock *, int); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */ + void (*old_write_space)(struct sock *); + }; + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch index e55c407a41..e508a5e6cd 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch @@ -90,25 +90,9 @@ Upstream-Status: Pending Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2016-09-25 19:45:01.814641016 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2016-09-25 19:47:59.666474094 +0530 -@@ -57,7 +57,6 @@ static int - blockio_make_request(struct iet_volume *volume, struct tio *tio, int rw) - { - struct blockio_data *bio_data = volume->private; -- struct request_queue *bdev_q = bdev_get_queue(bio_data->bdev); - struct tio_work *tio_work; - struct bio *tio_bio = NULL, *bio = NULL, *biotail = NULL; - struct blk_plug plug; -@@ -69,6 +68,7 @@ blockio_make_request(struct iet_volume * - int err = 0; - loff_t ppos = tio->offset; - #else -+ struct request_queue *bdev_q = bdev_get_queue(bio_data->bdev); - int max_pages = 1; - int err = 0; - -@@ -102,7 +102,11 @@ blockio_make_request(struct iet_volume * +--- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2017-01-19 20:19:27.400507354 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 20:32:22.977988593 -0800 +@@ -104,7 +104,11 @@ blockio_make_request(struct iet_volume * /* bi_sector is ALWAYS in units of 512 bytes */ bio->bi_iter.bi_sector = ppos >> 9; bio->bi_bdev = bio_data->bdev; @@ -120,7 +104,7 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20 bio->bi_private = tio_work; if (tio_bio) -@@ -137,7 +141,12 @@ blockio_make_request(struct iet_volume * +@@ -139,7 +143,12 @@ blockio_make_request(struct iet_volume * tio_bio = tio_bio->bi_next; bio->bi_next = NULL; @@ -134,36 +118,14 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20 blk_finish_plug(&plug); diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2016-09-25 19:45:01.774641057 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2016-09-25 19:47:59.666474094 +0530 -@@ -89,13 +89,21 @@ static void iet_state_change(struct sock - target->nthread_info.old_state_change(sk); - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+static void iet_data_ready(struct sock *sk) -+#else - static void iet_data_ready(struct sock *sk, int len) -+#endif - { - struct iscsi_conn *conn = sk->sk_user_data; - struct iscsi_target *target = conn->session->target; - - nthread_wakeup(target); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ target->nthread_info.old_data_ready(sk); -+#else - target->nthread_info.old_data_ready(sk, len); -+#endif - } - - /* -@@ -140,8 +148,14 @@ static void iet_socket_bind(struct iscsi +--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 20:19:27.400507354 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 20:32:22.978988614 -0800 +@@ -148,8 +148,14 @@ static void iet_socket_bind(struct iscsi target->nthread_info.old_state_change = conn->sock->sk->sk_state_change; conn->sock->sk->sk_state_change = iet_state_change; -+#if 0//LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) -+ target->nthread_info.old_data_ready = (void (*) (struct sock *, int )) \ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) ++ target->nthread_info.old_data_ready = (void (*) (struct sock *)) \ + conn->sock->sk->sk_data_ready; + conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) iet_data_ready; +#else @@ -174,8 +136,8 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+s target->nthread_info.old_write_space = conn->sock->sk->sk_write_space; conn->sock->sk->sk_write_space = iet_write_space; diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/digest.c iscsitarget-1.4.20.3+svn502/kernel/digest.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/digest.c 2014-05-07 02:29:55.000000000 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/digest.c 2016-09-25 19:47:59.666474094 +0530 +--- iscsitarget-1.4.20.3+svn502_org/kernel/digest.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/digest.c 2017-01-19 20:32:22.978988614 -0800 @@ -30,6 +30,9 @@ void digest_alg_available(unsigned int * int digest_init(struct iscsi_conn *conn) { @@ -374,8 +336,8 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/digest.c iscsitarget-1.4.20.3 +#endif } diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h ---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2016-09-25 19:45:01.734641099 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2016-09-25 19:47:59.666474094 +0530 +--- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2017-01-19 20:19:27.400507354 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 20:32:22.979988634 -0800 @@ -14,6 +14,7 @@ #include <linux/pagemap.h> #include <linux/seq_file.h> @@ -384,19 +346,7 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+ #include <linux/crypto.h> #include <linux/scatterlist.h> #include <net/sock.h> -@@ -81,7 +82,11 @@ struct network_thread_info { - spinlock_t nthread_lock; - - void (*old_state_change)(struct sock *); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) -+ void (*old_data_ready)(struct sock *); -+#else - void (*old_data_ready)(struct sock *, int); -+#endif - void (*old_write_space)(struct sock *); - }; - -@@ -275,8 +280,13 @@ struct iscsi_conn { +@@ -275,8 +276,13 @@ struct iscsi_conn { u32 write_offset; int write_state; @@ -410,7 +360,7 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+ struct scatterlist hash_sg[ISCSI_CONN_IOV_MAX]; }; -@@ -552,4 +562,10 @@ enum cmnd_flags { +@@ -552,4 +558,10 @@ enum cmnd_flags { #define PRODUCT_ID "VIRTUAL-DISK" #define PRODUCT_REV "0" @@ -422,9 +372,9 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+ + #endif /* __ISCSI_H__ */ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2016-09-25 19:45:01.734641099 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2016-09-25 19:47:59.666474094 +0530 -@@ -126,7 +126,12 @@ static int do_recv(struct iscsi_conn *co +--- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2017-01-19 20:19:27.276504928 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-19 20:32:22.979988634 -0800 +@@ -155,7 +155,12 @@ static int do_recv(struct iscsi_conn *co oldfs = get_fs(); set_fs(get_ds()); @@ -437,7 +387,7 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20. set_fs(oldfs); if (res <= 0) { -@@ -347,7 +352,11 @@ static int write_data(struct iscsi_conn +@@ -376,7 +381,11 @@ static int write_data(struct iscsi_conn ; oldfs = get_fs(); set_fs(KERNEL_DS); @@ -449,7 +399,7 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20. set_fs(oldfs); dprintk(D_DATA, "%#Lx:%u: %d(%ld)\n", (unsigned long long) conn->session->sid, conn->cid, -@@ -478,7 +487,11 @@ static int tx_ddigest(struct iscsi_cmnd +@@ -503,7 +512,11 @@ static int tx_ddigest(struct iscsi_cmnd iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest); iov.iov_len = rest; @@ -461,7 +411,7 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20. if (res > 0) { cmnd->conn->write_size -= res; -@@ -677,7 +690,12 @@ static void close_conn(struct iscsi_conn +@@ -702,7 +715,12 @@ static void close_conn(struct iscsi_conn write_lock_bh(&conn->sock->sk->sk_callback_lock); conn->sock->sk->sk_state_change = target->nthread_info.old_state_change; @@ -475,8 +425,8 @@ diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20. write_unlock_bh(&conn->sock->sk->sk_callback_lock); diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c ---- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2016-09-25 19:45:01.734641099 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2016-09-25 19:47:59.666474094 +0530 +--- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2017-01-19 20:19:27.276504928 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-19 20:32:22.979988634 -0800 @@ -84,12 +84,25 @@ static int set_scsisn(struct iet_volume /* Generate a MD5 hash of the target IQN and LUN number */ static void gen_scsiid(struct iet_volume *volume) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch new file mode 100644 index 0000000000..c99683478b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch @@ -0,0 +1,85 @@ +The previous build_with_updated_interfaces_of_linux_v4.8_and_above.patch +does not alloc struct ahash_request before using it. This will cause the +kernel call trace below when calling gen_scsiid on kernel 4.8 or later +version. + +This patch normalizes the calling of ahash API according to the example +in kernel doc Documentation/crypto/api-intro.txt. + +BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 +IP: [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt] +PGD dd77067 PUD dd7c067 PMD 0 +Oops: 0000 [#1] PREEMPT SMP +Modules linked in: iscsi_trgt(O) +CPU: 0 PID: 350 Comm: ietd Tainted: G O 4.8.12-yocto-standard #1 +Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 +task: ffff88000dfe2c00 task.stack: ffff88000de88000 +RIP: 0010:[<ffffffffa0008d45>] [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt] +RSP: 0018:ffff88000de8bd90 EFLAGS: 00000206 +RAX: 000000000000ddfa RBX: ffff88000ddd1d78 RCX: ffffea0000000000 +RDX: 0000000000000600 RSI: 0000000000000000 RDI: ffff88000ddd1c14 +RBP: ffff88000de8be38 R08: ffff88000de44180 R09: ffff88000de8bdd0 +R10: 000000000000002c R11: 0000000000000000 R12: ffff88000ddfa600 +R13: 0000000000000000 R14: 0000000000000000 R15: ffff88000de92200 +FS: 00007f767548b700(0000) GS:ffff88000fc00000(0000) knlGS:0000000000000000 +CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +CR2: 0000000000000020 CR3: 000000000dd2d000 CR4: 00000000000006f0 +Stack: + ffff88000de8bdd0 ffff88000dc1b3d0 ffff88000ddfa650 ffff88000ddfa660 + ffff88000df8f000 ffff88000ddd1c00 ffff88000de44180 0000000000000000 + ffffea0000377440 0000000f00000c14 0000000000000000 0000000000000000 +Call Trace: + [<ffffffffa0006547>] ioctl+0x217/0x390 [iscsi_trgt] + [<ffffffff81192574>] do_vfs_ioctl+0x94/0x5c0 + [<ffffffff8117ff73>] ? vfs_read+0xf3/0x120 + [<ffffffff81192b19>] SyS_ioctl+0x79/0x90 + [<ffffffff8191a45b>] entry_SYSCALL_64_fastpath+0x13/0x8f +Code: 4c 01 e0 0f 82 a2 01 00 00 48 b9 00 00 00 80 ff 77 00 00 48 01 +c8 45 31 f6 48 b9 00 00 00 00 00 ea ff ff 89 54 24 68 48 c1 e8 0c <49> +8b 56 20 4c 89 44 24 20 4c 89 f7 48 c1 e0 06 c7 44 24 6c 04 +RIP [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt] + RSP <ffff88000de8bd90> +CR2: 0000000000000020 +end trace cd2016297df21635 ] +ietd_response_recv 200 0 -5 +Input/output error. + +Upstream-Status: Pending [This patch is based on the previous one which +has not been merged upstream.] + +Signed-off-by: Zhe He <zhe.he@windriver.com> + +--- iscsitarget-1.4.20.3+svn502_orig/kernel/volume.c 2017-01-18 08:57:56.752187402 +0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 09:02:44.164195234 +0800 +@@ -93,13 +93,14 @@ static void gen_scsiid(struct iet_volume + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) + tfm = crypto_alloc_ahash("md5", 0, CRYPTO_ALG_ASYNC); ++ hash = ahash_request_alloc(tfm, GFP_ATOMIC); + #else + hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC); + hash.flags = 0; + #endif + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) +- if (!IS_ERR(tfm)) { ++ if (tfm && !IS_ERR(tfm)) { + #else + if (!IS_ERR(hash.tfm)) { + #endif +@@ -116,10 +117,13 @@ static void gen_scsiid(struct iet_volume + nbytes += sizeof(volume->lun); + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0) +- crypto_ahash_init(hash); ++ ahash_request_set_callback(hash, 0, NULL, NULL); + ahash_request_set_crypt(hash, sg, volume->scsi_id, nbytes); +- crypto_ahash_update(hash); + crypto_ahash_digest(hash); ++ crypto_ahash_init(hash); ++ crypto_ahash_update(hash); ++ crypto_ahash_final(hash); ++ ahash_request_free(hash); + crypto_free_ahash(tfm); + #else + crypto_hash_init(&hash); diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch index 6878ca2d06..1e6a1d6d3f 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch @@ -1,57 +1,80 @@ -Fix build errors with linux kernel v3.19 and above +Description: Fix source to compile on 3.19 kernels +Author: Stefan Bader <stefan.bader@canonical.com> +Forward: no -Below errors came up while building iscsitarget for -qemux86-64 (and others) because, -1. 'struct user_msghdr' is being used for userland-side msghdr instead -of 'struct msghdr', which is used for kernel-side msghdr in linux v3.19 -and above. +Fixes below inconsistent crash when trying to login to iSCSI target +server, observed with linux kernel v4.1. -error snippet: -- snip -- -| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/iscsi.c: In function 'cmnd_skip_pdu': -| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/iscsi.c:492:16: error: 'struct msghdr' has no member named 'msg_iov' -| conn->read_msg.msg_iov = conn->read_iov; --- CUT -- - -Reference: -https://github.com/torvalds/linux/commit/666547ff591cebdedc4679bf6b1b3f3383a8dea3 - -2. 'SERVICE_ACTION_IN' has been renamed to SERVICE_ACTION_IN_16 in linux v3.19 -and above. - -error snippet: --- snip -- -| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/iscsi.c: In function 'scsi_cmnd_start': -| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/iscsi.c:989:7: error: 'SERVICE_ACTION_IN' undeclared (first use in this function) -| case SERVICE_ACTION_IN: --- CUT -- - -Reference: -https://github.com/torvalds/linux/commit/eb846d9f147455e4e5e1863bfb5e31974bb69b7c - -3. In linux v3.19 and above, f_dentry member has been removed from -'struct file' structure. - -error snippet: +CPU: 1 PID: 29883 Comm: istd1 Tainted: G O 4.1.35-rt40-yocto-standard #1 +Hardware name: To be filled by O.E.M. To be filled by O.E.M./Larne CRB, BIOS 4.6.5.4 09/18/2014 +task: ffff88020f1f30c0 ti: ffff8800d7f3c000 task.ti: ffff8800d7f3c000 +RIP: 0010:[<ffffffff8140d1ae>] [<ffffffff8140d1ae>] copy_to_iter+0x3e/0x280 +RSP: 0018:ffff8800d7f3f728 EFLAGS: 00010246 +RAX: 00000000d7f3f928 RBX: 0000000000000030 RCX: 0000000000000030 +RDX: ffff8800d7f3f900 RSI: 0000000000000030 RDI: ffff8800d1501e82 +RBP: ffff8800d7f3f768 R08: 00000000c127d467 R09: 0000000000000000 +R10: ffff88020f29e118 R11: 0000000000000004 R12: ffff8800d7f3f900 +R13: 0000000000000030 R14: 0000000000000001 R15: 0000000000000246 +FS: 00007f86f9c4c700(0000) GS:ffff88021ec80000(0000) knlGS:00000000f7733700 +CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +CR2: 000000000000024e CR3: 00000000d38b0000 CR4: 00000000000406e0 +Stack: +ffff880214f14ec0 ffff8800d1501e82 ffff8800d7f3f748 0000000000000030 +ffff88020f122500 0000000000000030 0000000000000000 0000000000000030 +ffff8800d7f3f7c8 ffffffff81806981 ffff8800d7f3f798 ffffffff8105d72a +Call Trace: +[<ffffffff81806981>] skb_copy_datagram_iter+0x71/0x2b0 +[<ffffffff8105d72a>] ? __local_bh_enable_ip+0x4a/0xb0 +[<ffffffff8186c9c0>] tcp_recvmsg+0x5e0/0xbb0 +[<ffffffff81898ded>] inet_recvmsg+0x8d/0xb0 +[<ffffffff817f49f3>] sock_recvmsg+0x13/0x20 +[<ffffffffa01655c3>] do_recv+0xe3/0x1f0 [iscsi_trgt] +[<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0 +[<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20 +[<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0 +[<ffffffff8140fed5>] ? find_next_bit+0x15/0x30 +[<ffffffff813fa8e0>] ? cpumask_next_and+0x30/0x50 +[<ffffffff8113f785>] ? __alloc_pages_nodemask+0x165/0x980 +[<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0 +[<ffffffff8195da8b>] ? _raw_spin_lock+0x1b/0x60 +[<ffffffff8109cfa8>] ? cpuacct_charge+0x58/0x70 +[<ffffffff81089039>] ? update_curr+0xb9/0x190 +[<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20 +[<ffffffff8112b43f>] ? __perf_event_task_sched_in+0x4f/0x90 +[<ffffffff8195dbbd>] ? _raw_spin_unlock_irq+0x1d/0x40 +[<ffffffff8107e223>] ? finish_task_switch+0x63/0xe0 +[<ffffffff81959e3b>] ? __schedule+0x38b/0x980 +[<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0 +[<ffffffffa0165c65>] istd+0x4d5/0x1390 [iscsi_trgt] +[<ffffffff81959e3b>] ? __schedule+0x38b/0x980 +[<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt] +[<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt] +[<ffffffff8107748b>] kthread+0xbb/0xe0 +[<ffffffff81950000>] ? wireless_dev_seq_show+0x100/0x180 +[<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170 +[<ffffffff8195e7a2>] ret_from_fork+0x42/0x70 +[<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170 +Code: 5a 10 48 89 7d c8 48 39 f3 48 0f 47 de 48 85 db 0f 84 6f 01 00 00 8b 02 49 89 +d4 4c 8b 72 08 4c 8b 7a 18 a8 04 0f 85 a2 00 00 00 <4d> 8b 6f 08 4d 29 f5 49 39 dd 4c 0f 47 eb a8 02 0f 85 5c 01 00 +RSP <ffff8800d7f3f728> +CR2: 000000000000024e +------------[ cut here ]------------ -- snip -- -| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c: In function 'iet_socket_bind': -| /CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work/qemux86_64-poky-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:130:34: error: 'struct file' has no member named 'f_dentry' -| conn->sock = SOCKET_I(conn->file->f_dentry->d_inode); --- CUT -- - -new helper function file_inode(file) should be used instead. -References: -1. https://github.com/torvalds/linux/commit/78d28e651f97866d608d9b41f8ad291e65d47dd5 -2. https://github.com/torvalds/linux/commit/496ad9aa8ef448058e36ca7a787c61f2e63f0f54 +The original patch is at +http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz, +those changes were taken using #ifs, inorder to allow compilation of +iscsitarget package with linux kernels < 3.19. -Upstream-Status: Pending +Upstream-Status: Submitted [http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz] Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> ---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2015-08-24 16:13:26.481924679 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2015-08-24 17:27:06.897653698 +0530 -@@ -127,7 +127,11 @@ static void iet_socket_bind(struct iscsi +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-18 22:27:02.713167436 -0800 ++++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-18 23:13:11.909214379 -0800 +@@ -129,7 +129,11 @@ static void iet_socket_bind(struct iscsi dprintk(D_GENERIC, "%llu\n", (unsigned long long) session->sid); @@ -63,8 +86,9 @@ Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> conn->sock->sk->sk_user_data = conn; write_lock_bh(&conn->sock->sk->sk_callback_lock); ---- iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c 2015-08-24 16:13:26.481924679 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/file-io.c 2015-08-24 17:30:54.390131100 +0530 +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c iscsitarget-1.4.20.3+svn502/kernel/file-io.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/file-io.c 2017-01-18 23:54:38.505717079 -0800 @@ -69,7 +69,11 @@ static int fileio_make_request(struct ie static int fileio_sync(struct iet_volume *lu, struct tio *tio) { @@ -89,9 +113,81 @@ Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> if (S_ISREG(inode->i_mode)) ; ---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c 2015-08-24 16:13:26.481924679 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.c 2015-08-24 17:33:50.950490156 +0530 -@@ -986,7 +986,11 @@ static void scsi_cmnd_start(struct iscsi +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c iscsitarget-1.4.20.3+svn502/kernel/iscsi.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.c 2017-01-18 23:37:36.462970326 -0800 +@@ -489,8 +489,12 @@ static void cmnd_skip_pdu(struct iscsi_c + } + conn->read_iov[i].iov_base = addr; + conn->read_iov[i].iov_len = size; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size); ++#else + conn->read_msg.msg_iov = conn->read_iov; + conn->read_msg.msg_iovlen = ++i; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + } + + static void iscsi_cmnd_reject(struct iscsi_cmnd *req, int reason) +@@ -718,7 +722,9 @@ static int cmnd_recv_pdu(struct iscsi_co + idx = offset >> PAGE_CACHE_SHIFT; + offset &= ~PAGE_CACHE_MASK; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) + conn->read_msg.msg_iov = conn->read_iov; ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ + conn->read_size = size = (size + 3) & -4; + conn->read_overflow = 0; + +@@ -730,16 +736,25 @@ static int cmnd_recv_pdu(struct iscsi_co + conn->read_iov[i].iov_base = addr + offset; + if (offset + size <= PAGE_CACHE_SIZE) { + conn->read_iov[i].iov_len = size; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size); ++#else + conn->read_msg.msg_iovlen = ++i; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + break; + } + conn->read_iov[i].iov_len = PAGE_CACHE_SIZE - offset; + size -= conn->read_iov[i].iov_len; + offset = 0; + if (++i >= ISCSI_CONN_IOV_MAX) { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) + conn->read_msg.msg_iovlen = i; ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ + conn->read_overflow = size; + conn->read_size -= size; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size); ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + break; + } + +@@ -918,7 +933,9 @@ static int nop_out_start(struct iscsi_co + + if ((size = cmnd->pdu.datasize)) { + size = (size + 3) & -4; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) + conn->read_msg.msg_iov = conn->read_iov; ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ + if (cmnd->pdu.bhs.itt != cpu_to_be32(ISCSI_RESERVED_TAG)) { + struct tio *tio; + int pg_cnt = get_pgcnt(size); +@@ -946,7 +963,11 @@ static int nop_out_start(struct iscsi_co + } + assert(!size); + conn->read_overflow = size; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size); ++#else + conn->read_msg.msg_iovlen = i; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + } + + out: +@@ -986,7 +1007,11 @@ static void scsi_cmnd_start(struct iscsi set_cmnd_lunit(req); switch (req_hdr->scb[0]) { @@ -103,61 +199,93 @@ Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> if ((req_hdr->scb[1] & 0x1f) != 0x10) goto error; case INQUIRY: ---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2015-08-24 16:13:26.481924679 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2015-08-24 17:35:31.354690051 +0530 -@@ -257,7 +257,11 @@ struct iscsi_conn { - struct timer_list nop_timer; - - struct iscsi_cmnd *read_cmnd; +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-18 23:45:03.291033881 -0800 +@@ -42,9 +42,14 @@ static inline void iscsi_conn_init_read( + len = (len + 3) & -4; // XXX ??? + conn->read_iov[0].iov_base = data; + conn->read_iov[0].iov_len = len; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) + conn->read_msg.msg_iov = conn->read_iov; + conn->read_msg.msg_iovlen = 1; ++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */ + conn->read_size = (len + 3) & -4; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ struct user_msghdr read_msg; -+#else - struct msghdr read_msg; ++ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, 1, conn->read_size); +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - struct iovec read_iov[ISCSI_CONN_IOV_MAX]; - u32 read_size; - u32 read_overflow; ---- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2015-08-24 16:13:26.481924679 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2015-08-24 17:41:56.187428925 +0530 -@@ -80,8 +80,11 @@ static int is_data_available(struct iscs - set_fs(oldfs); - return (res >= 0) ? avail : res; } -- -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+static void forward_iov(struct user_msghdr *msg, int len) -+#else + + static void iscsi_conn_read_ahs(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd) +@@ -83,14 +88,31 @@ static int is_data_available(struct iscs + static void forward_iov(struct msghdr *msg, int len) -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ struct iovec *iov; ++ ++ while (msg->msg_iter.iov->iov_len <= len) { ++ len -= msg->msg_iter.iov->iov_len; ++ msg->msg_iter.iov++; ++ msg->msg_iter.nr_segs--; ++ } ++#else while (msg->msg_iov->iov_len <= len) { len -= msg->msg_iov->iov_len; -@@ -96,7 +99,11 @@ static void forward_iov(struct msghdr *m - static int do_recv(struct iscsi_conn *conn, int state) - { - mm_segment_t oldfs; + msg->msg_iov++; + msg->msg_iovlen--; + } ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ struct user_msghdr msg; ++ /* XXX: discards const ... */ ++ iov = msg->msg_iter.iov; ++ iov->iov_base = (char *) msg->msg_iter.iov->iov_base + len; ++ iov->iov_len -= len; +#else + msg->msg_iov->iov_base = (char *) msg->msg_iov->iov_base + len; + msg->msg_iov->iov_len -= len; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ + } + + static int do_recv(struct iscsi_conn *conn, int state) +@@ -98,6 +120,9 @@ static int do_recv(struct iscsi_conn *co + mm_segment_t oldfs; struct msghdr msg; -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ struct iovec iov[ISCSI_CONN_IOV_MAX]; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++ size_t iovlen = ISCSI_CONN_IOV_MAX; ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ int i, len, res; -@@ -461,7 +468,11 @@ static void exit_tx(struct iscsi_conn *c - static int tx_ddigest(struct iscsi_cmnd *cmnd, int state) - { - int res, rest = cmnd->conn->write_size; + if (!test_bit(CONN_ACTIVE, &conn->state)) { +@@ -110,12 +135,23 @@ static int do_recv(struct iscsi_conn *co + goto out; + } + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) -+ struct user_msghdr msg = {.msg_flags = MSG_NOSIGNAL | MSG_DONTWAIT}; ++ if (conn->read_msg.msg_iter.nr_segs < iovlen) ++ iovlen = conn->read_msg.msg_iter.nr_segs; ++ ++ for (i = 0, len = 0; i < iovlen; i++) { ++ iov[i] = conn->read_msg.msg_iter.iov[i]; ++ len += iov[i].iov_len; ++ } ++ iov_iter_init(&msg.msg_iter, READ, iov, iovlen, len); +#else - struct msghdr msg = {.msg_flags = MSG_NOSIGNAL | MSG_DONTWAIT}; + msg.msg_iov = iov; + msg.msg_iovlen = min_t(size_t, conn->read_msg.msg_iovlen, ISCSI_CONN_IOV_MAX); + for (i = 0, len = 0; i < msg.msg_iovlen; i++) { + iov[i] = conn->read_msg.msg_iov[i]; + len += iov[i].iov_len; + } +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ - struct kvec iov; - iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest); ---- iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c 2015-08-24 16:13:26.481924679 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/target_disk.c 2015-08-24 17:43:42.167625159 +0530 + oldfs = get_fs(); + set_fs(get_ds()); +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c iscsitarget-1.4.20.3+svn502/kernel/target_disk.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/target_disk.c 2017-01-18 23:45:51.451010417 -0800 @@ -606,7 +606,11 @@ static int disk_execute_cmnd(struct iscs case REQUEST_SENSE: send_data_rsp(cmnd, build_request_sense_response); @@ -166,17 +294,18 @@ Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> + case SERVICE_ACTION_IN_16: +#else case SERVICE_ACTION_IN: -+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ ++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */ send_data_rsp(cmnd, build_service_action_in_response); break; case READ_6: ---- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2015-08-24 16:13:26.477924674 +0530 -+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2015-08-24 18:28:15.697074780 +0530 +diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c +--- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2014-05-06 13:59:55.000000000 -0700 ++++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 23:47:07.957561600 -0800 @@ -398,7 +398,11 @@ int is_volume_reserved(struct iet_volume case READ_CAPACITY: /* allowed commands when reserved */ break; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) + case SERVICE_ACTION_IN_16: +#else case SERVICE_ACTION_IN: diff --git a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb index 7279bc6378..5c1e38e172 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb @@ -13,7 +13,8 @@ SRC_URI = "http://ftp.heanet.ie/mirrors/ubuntu/pool/universe/i/${BPN}/${BPN}_${P file://fix-errors-observed-with-linux-3.19-and-greater.patch \ file://access-sk_v6_daddr-iff-IPV6-defined.patch \ file://build_with_updated_bio_struct_of_linux_v4.3_and_above.patch \ - file://build_with_updated_interfaces_of_linux_v4.8_and_above.patch" + file://build_with_updated_interfaces_of_linux_v4.8_and_above.patch \ + file://fix-call-trace-of-ahash-API-calling.patch" SRC_URI[md5sum] = "ef9bc823bbabd3c772208c00d5f2d089" SRC_URI[sha256sum] = "d3196ccb78a43266dce28587bfe30d8ab4db7566d7bce96057dfbb84100babb5" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb new file mode 100644 index 0000000000..6fd0affdf6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb @@ -0,0 +1,35 @@ +SUMMARY = "IPTables based firewall scripts" +HOMEPAGE = "http://rocky.eld.leidenuniv.nl/joomla/index.php?option=com_content&view=article&id=45&Itemid=63" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://gpl_license.txt;md5=11c7b65c4a4acb9d5175f7e9bf99c403" + +SRC_URI = "http://rocky.eld.leidenuniv.nl/arno-iptables-firewall/${BPN}_${PV}.tar.gz \ + " +SRC_URI[md5sum] = "77eba7f148bf2840a3e35a6f50c9c353" +SRC_URI[sha256sum] = "0bafd85ddc235752250eaec0c7fdb21e530912483f6807a97f86158ed2d301f7" + +S = "${WORKDIR}/${BPN}_${PV}" + +inherit systemd + +do_install() { + install -d ${D}${sysconfdir} ${D}${sbindir} ${D}${bindir} ${D}${systemd_unitdir}/system ${D}${sysconfdir}/init.d + install -d ${D}${datadir}/arno-iptables-firewall ${D}${sysconfdir}/arno-iptables-firewall + cp -r ${S}${sysconfdir}/arno-iptables-firewall ${D}${sysconfdir}/ + install -m 0755 ${S}${sysconfdir}/init.d/arno-iptables-firewall ${D}${bindir} + install -m 0755 ${S}/bin/arno-iptables-firewall ${D}${sbindir} + install -m 0755 ${S}/bin/arno-fwfilter ${D}${bindir} + cp -r ${S}/share/arno-iptables-firewall/* ${D}${datadir}/arno-iptables-firewall + cp -r ${S}/etc/arno-iptables-firewall/* ${D}${sysconfdir}/arno-iptables-firewall + install -m 0644 ${S}/${systemd_unitdir}/system/arno-iptables-firewall.service ${D}${systemd_unitdir}/system + sed -i -e 's%/usr/local/sbin%${bindir}%g' ${D}${systemd_unitdir}/system/arno-iptables-firewall.service + sed -i -e 's%/usr/local/sbin%${sbindir}%g' ${D}${bindir}/arno-iptables-firewall + sed -i -e 's%/usr/local%${exec_prefix}%g' ${D}${sysconfdir}/arno-iptables-firewall/firewall.conf + sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${bindir}/arno-fwfilter + sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${datadir}/arno-iptables-firewall/plugins/traffic-accounting-helper + sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${datadir}/arno-iptables-firewall/plugins/dyndns-host-open-helper +} + +SYSTEMD_SERVICE_${PN} = "arno-iptables-firewall.service" +FILES_${PN} += "${systemd_unitdir}/system/arno-iptables-firewall.service" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb index 7b11d206cc..8b3490d7c2 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.2.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb @@ -2,26 +2,29 @@ SUMMARY = "Connection tracking userspace tools for Linux" SECTION = "net" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" + DEPENDS = "libnfnetlink libnetfilter-conntrack libnetfilter-cttimeout \ libnetfilter-cthelper libnetfilter-queue bison-native" -SRC_URI = " \ - http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.bz2;name=tar \ +DEPENDS_append_libc-musl = " libtirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + +SRC_URI = "http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.bz2;name=tar \ file://conntrack-failover \ file://init \ - file://0001-conntrackd-build-fix-crash-when-optional-kernel-modu.patch \ " -SRC_URI[tar.md5sum] = "b1f9d006e7bf000a77395ff7cd3fac16" -SRC_URI[tar.sha256sum] = "e5c423dc077f9ca8767eaa6cf40446943905711c6a8fe27f9cc1977d4d6aa11e" +SRC_URI[tar.md5sum] = "acd9e0b27cf16ae3092ba900e4d7560e" +SRC_URI[tar.sha256sum] = "b7caf4fcc4c03575df57d25e5216584d597fd916c891f191dac616ce68bdba6c" -inherit autotools-brokensep update-rc.d pkgconfig +inherit autotools update-rc.d pkgconfig INITSCRIPT_NAME = "conntrackd" do_install_append() { install -d ${D}/${sysconfdir}/conntrackd install -d ${D}/${sysconfdir}/init.d - install -m 0644 doc/sync/ftfw/conntrackd.conf ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample + install -m 0644 ${S}/doc/sync/ftfw/conntrackd.conf ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample install -m 0755 ${WORKDIR}/conntrack-failover ${D}/${sysconfdir}/init.d/conntrack-failover install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/conntrackd diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/0001-conntrackd-build-fix-crash-when-optional-kernel-modu.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/0001-conntrackd-build-fix-crash-when-optional-kernel-modu.patch deleted file mode 100644 index a7ab6d687c..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/0001-conntrackd-build-fix-crash-when-optional-kernel-modu.patch +++ /dev/null @@ -1,85 +0,0 @@ -From c392c159605956c7bd4a264ab4490e2b2704c0cd Mon Sep 17 00:00:00 2001 -From: Pablo Neira Ayuso <pablo@netfilter.org> -Date: Fri, 13 Jun 2014 12:53:17 +0200 -Subject: [PATCH] conntrackd: build: fix crash when optional kernel modules are - not loaded - -Upstream-Status: Backport - -Fix a possible crash if conntrackd sees DCCP, SCTP and ICMPv6 traffic -and the corresponding kernel modules that track this traffic are not -available. - -Fixes: http://bugzilla.netfilter.org/show_bug.cgi?id=910 -Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> ---- - src/build.c | 22 +++++++++++++--------- - 1 file changed, 13 insertions(+), 9 deletions(-) - -diff --git a/src/build.c b/src/build.c -index 5799b51..9ba8b57 100644 ---- a/src/build.c -+++ b/src/build.c -@@ -105,14 +105,14 @@ static enum nf_conntrack_attr nat_type[] = - ATTR_ORIG_NAT_SEQ_OFFSET_AFTER, ATTR_REPL_NAT_SEQ_CORRECTION_POS, - ATTR_REPL_NAT_SEQ_OFFSET_BEFORE, ATTR_REPL_NAT_SEQ_OFFSET_AFTER }; - -+/* ICMP, UDP and TCP are always loaded with nf_conntrack_ipv4 */ - static void build_l4proto_tcp(const struct nf_conntrack *ct, struct nethdr *n) - { -- ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, -- sizeof(struct nfct_attr_grp_port)); -- - if (!nfct_attr_is_set(ct, ATTR_TCP_STATE)) - return; - -+ ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, -+ sizeof(struct nfct_attr_grp_port)); - ct_build_u8(ct, ATTR_TCP_STATE, n, NTA_TCP_STATE); - if (CONFIG(sync).tcp_window_tracking) { - ct_build_u8(ct, ATTR_TCP_WSCALE_ORIG, n, NTA_TCP_WSCALE_ORIG); -@@ -122,12 +122,12 @@ static void build_l4proto_tcp(const struct nf_conntrack *ct, struct nethdr *n) - - static void build_l4proto_sctp(const struct nf_conntrack *ct, struct nethdr *n) - { -- ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, -- sizeof(struct nfct_attr_grp_port)); -- -+ /* SCTP is optional, make sure nf_conntrack_sctp is loaded */ - if (!nfct_attr_is_set(ct, ATTR_SCTP_STATE)) - return; - -+ ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, -+ sizeof(struct nfct_attr_grp_port)); - ct_build_u8(ct, ATTR_SCTP_STATE, n, NTA_SCTP_STATE); - ct_build_u32(ct, ATTR_SCTP_VTAG_ORIG, n, NTA_SCTP_VTAG_ORIG); - ct_build_u32(ct, ATTR_SCTP_VTAG_REPL, n, NTA_SCTP_VTAG_REPL); -@@ -135,18 +135,22 @@ static void build_l4proto_sctp(const struct nf_conntrack *ct, struct nethdr *n) - - static void build_l4proto_dccp(const struct nf_conntrack *ct, struct nethdr *n) - { -- ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, -- sizeof(struct nfct_attr_grp_port)); -- -+ /* DCCP is optional, make sure nf_conntrack_dccp is loaded */ - if (!nfct_attr_is_set(ct, ATTR_DCCP_STATE)) - return; - -+ ct_build_group(ct, ATTR_GRP_ORIG_PORT, n, NTA_PORT, -+ sizeof(struct nfct_attr_grp_port)); - ct_build_u8(ct, ATTR_DCCP_STATE, n, NTA_DCCP_STATE); - ct_build_u8(ct, ATTR_DCCP_ROLE, n, NTA_DCCP_ROLE); - } - - static void build_l4proto_icmp(const struct nf_conntrack *ct, struct nethdr *n) - { -+ /* This is also used by ICMPv6 and nf_conntrack_ipv6 is optional */ -+ if (!nfct_attr_is_set(ct, ATTR_ICMP_TYPE)) -+ return; -+ - ct_build_u8(ct, ATTR_ICMP_TYPE, n, NTA_ICMP_TYPE); - ct_build_u8(ct, ATTR_ICMP_CODE, n, NTA_ICMP_CODE); - ct_build_u16(ct, ATTR_ICMP_ID, n, NTA_ICMP_ID); --- -1.9.1 - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch new file mode 100644 index 0000000000..90b69792b8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch @@ -0,0 +1,45 @@ +From dd35afc9ce1004128a754d5eeb8c5c2cb32ae420 Mon Sep 17 00:00:00 2001 +From: Bart De Schuymer <bdschuym@pandora.be> +Date: Tue, 3 Jul 2012 18:47:32 +0000 +Subject: [PATCH 01/10] add RARP and update iana url + +--- + ethertypes | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/ethertypes b/ethertypes +index 5e700f6..813177b 100644 +--- a/ethertypes ++++ b/ethertypes +@@ -5,6 +5,7 @@ + # + # This list could be found on: + # http://www.iana.org/assignments/ethernet-numbers ++# http://www.iana.org/assignments/ieee-802-numbers + # + # <name> <hexnumber> <alias1>...<alias35> #Comment + # +@@ -21,15 +22,16 @@ LAT 6004 # DEC LAT + DIAG 6005 # DEC Diagnostics + CUST 6006 # DEC Customer use + SCA 6007 # DEC Systems Comms Arch +-TEB 6558 # Trans Ether Bridging [RFC1701] +-RAW_FR 6559 # Raw Frame Relay [RFC1701] ++TEB 6558 # Trans Ether Bridging [RFC1701] ++RAW_FR 6559 # Raw Frame Relay [RFC1701] ++RARP 8035 # Reverse ARP [RFC903] + AARP 80F3 # Appletalk AARP +-ATALK 809B # Appletalk ++ATALK 809B # Appletalk + 802_1Q 8100 8021q 1q 802.1q dot1q # 802.1Q Virtual LAN tagged frame + IPX 8137 # Novell IPX + NetBEUI 8191 # NetBEUI + IPv6 86DD ip6 # IP version 6 +-PPP 880B # PPP ++PPP 880B # PPP + ATMMPOA 884C # MultiProtocol over ATM + PPP_DISC 8863 # PPPoE discovery messages + PPP_SES 8864 # PPPoE session messages +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch new file mode 100644 index 0000000000..87b0e9b877 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch @@ -0,0 +1,25 @@ +From 2a5333fc8b4825251adfb717d980d89cefde38d6 Mon Sep 17 00:00:00 2001 +From: Petri Gynther <petri.gynther@gmail.com> +Date: Sun, 24 Feb 2013 10:56:59 +0100 +Subject: [PATCH 02/10] fix compilation warning + +--- + communication.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/communication.c b/communication.c +index 62ed667..ba058c0 100644 +--- a/communication.c ++++ b/communication.c +@@ -282,7 +282,7 @@ static int store_counters_in_file(char *filename, struct ebt_u_replace *repl) + } + close_file: + fclose(file); +- return 0; ++ return ret; + } + + /* Gets executed after ebt_deliver_table. Delivers the counters to the kernel +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch new file mode 100644 index 0000000000..c8573a464f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch @@ -0,0 +1,25 @@ +From a6faf3b50d6af4768b7b853cb536944fb18e1450 Mon Sep 17 00:00:00 2001 +From: Bart De Schuymer <bdschuym@pandora.be> +Date: Wed, 3 Jul 2013 22:12:47 +0200 +Subject: [PATCH 03/10] add info about -Wl,-no-as-needed + +--- + INSTALL | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/INSTALL b/INSTALL +index 4a05c67..e90d5c1 100644 +--- a/INSTALL ++++ b/INSTALL +@@ -39,6 +39,8 @@ That's all + You can also use a base directory different from the root directory (/), + using the DESTDIR option. See the Makefile for more details. + ++You might need to set LDFLAGS=-Wl,-no-as-needed to build ebtables correctly ++on your system. + + ADDITIONAL PROGRAMS: + ---------------------- +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch new file mode 100644 index 0000000000..d8f2795bca --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch @@ -0,0 +1,28 @@ +From b0617af37b8b1aafb43e8019135bea44c2d94c28 Mon Sep 17 00:00:00 2001 +From: Luis Fernando <tdthp@terra.com.br> +Date: Wed, 3 Jul 2013 22:19:55 +0200 +Subject: [PATCH 04/10] workaround for kernel regression bug: IPv6 + source/destination addresses are potentially not matched correctly + +--- + extensions/ebt_ip6.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c +index 0465e77..bbdc4ae 100644 +--- a/extensions/ebt_ip6.c ++++ b/extensions/ebt_ip6.c +@@ -312,6 +312,10 @@ static void init(struct ebt_entry_match *match) + + ipinfo->invflags = 0; + ipinfo->bitmask = 0; ++ memset(ipinfo->saddr.s6_addr, 0, sizeof(ipinfo->saddr.s6_addr)); ++ memset(ipinfo->smsk.s6_addr, 0, sizeof(ipinfo->smsk.s6_addr)); ++ memset(ipinfo->daddr.s6_addr, 0, sizeof(ipinfo->daddr.s6_addr)); ++ memset(ipinfo->dmsk.s6_addr, 0, sizeof(ipinfo->dmsk.s6_addr)); + } + + #define OPT_SOURCE 0x01 +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch new file mode 100644 index 0000000000..9585fd20e3 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch @@ -0,0 +1,75 @@ +From 15d3ab8a4a167dc44396b003d2ec01841949972f Mon Sep 17 00:00:00 2001 +From: Sanket Shah <sanket.shah@cyberoam.com> +Date: Wed, 31 Jul 2013 21:40:08 +0200 +Subject: [PATCH 05/10] Add --noflush command line support for ebtables-restore + +--- + ebtables-restore.c | 29 +++++++++++++++++++++++++---- + 1 file changed, 25 insertions(+), 4 deletions(-) + +diff --git a/ebtables-restore.c b/ebtables-restore.c +index ea02960..bb4d0cf 100644 +--- a/ebtables-restore.c ++++ b/ebtables-restore.c +@@ -22,13 +22,25 @@ + #include <string.h> + #include <errno.h> + #include <unistd.h> ++#include <getopt.h> + #include "include/ebtables_u.h" + ++static const struct option options[] = { ++ {.name = "noflush", .has_arg = 0, .val = 'n'}, ++ { 0 } ++}; ++ + static struct ebt_u_replace replace[3]; + void ebt_early_init_once(); + + #define OPT_KERNELDATA 0x800 /* Also defined in ebtables.c */ + ++static void print_usage() ++{ ++ fprintf(stderr, "Usage: ebtables-restore [ --noflush ]\n"); ++ exit(1); ++} ++ + static void copy_table_names() + { + strcpy(replace[0].name, "filter"); +@@ -41,11 +53,20 @@ static void copy_table_names() + int main(int argc_, char *argv_[]) + { + char *argv[EBTD_ARGC_MAX], cmdline[EBTD_CMDLINE_MAXLN]; +- int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace; ++ int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace, c, flush = 1; + char ebtables_str[] = "ebtables"; + +- if (argc_ != 1) +- ebtrest_print_error("options are not supported"); ++ while ((c = getopt_long(argc_, argv_, "n", options, NULL)) != -1) { ++ switch(c) { ++ case 'n': ++ flush = 0; ++ break; ++ default: ++ print_usage(); ++ break; ++ } ++ } ++ + ebt_silent = 0; + copy_table_names(); + ebt_early_init_once(); +@@ -68,7 +89,7 @@ int main(int argc_, char *argv_[]) + ebtrest_print_error("table '%s' was not recognized", cmdline+1); + table_nr = i; + replace[table_nr].command = 11; +- ebt_get_kernel_table(&replace[table_nr], 1); ++ ebt_get_kernel_table(&replace[table_nr], flush); + replace[table_nr].command = 0; + replace[table_nr].flags = OPT_KERNELDATA; /* Prevent do_command from initialising replace */ + continue; +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch new file mode 100644 index 0000000000..21f8e588d4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch @@ -0,0 +1,69 @@ +From 85a0f6d77a9d5c0e7ef7948395f0f6b1612dc987 Mon Sep 17 00:00:00 2001 +From: Bart De Schuymer <bdschuym@pandora.be> +Date: Mon, 14 Apr 2014 22:04:55 +0200 +Subject: [PATCH 06/10] don't print IPv6 mask if it's all ones (based on patch + by Mariusz Mazur <mmazur at axeos.com>) + +--- + extensions/ebt_ip6.c | 4 ++-- + include/ebtables_u.h | 1 + + useful_functions.c | 13 +++++++++++++ + 3 files changed, 16 insertions(+), 2 deletions(-) + +diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c +index bbdc4ae..e3e0956 100644 +--- a/extensions/ebt_ip6.c ++++ b/extensions/ebt_ip6.c +@@ -449,14 +449,14 @@ static void print(const struct ebt_u_entry *entry, + if (ipinfo->invflags & EBT_IP6_SOURCE) + printf("! "); + printf("%s", ebt_ip6_to_numeric(&ipinfo->saddr)); +- printf("/%s ", ebt_ip6_to_numeric(&ipinfo->smsk)); ++ printf("%s ", ebt_ip6_mask_to_string(&ipinfo->smsk)); + } + if (ipinfo->bitmask & EBT_IP6_DEST) { + printf("--ip6-dst "); + if (ipinfo->invflags & EBT_IP6_DEST) + printf("! "); + printf("%s", ebt_ip6_to_numeric(&ipinfo->daddr)); +- printf("/%s ", ebt_ip6_to_numeric(&ipinfo->dmsk)); ++ printf("%s ", ebt_ip6_mask_to_string(&ipinfo->dmsk)); + } + if (ipinfo->bitmask & EBT_IP6_TCLASS) { + printf("--ip6-tclass "); +diff --git a/include/ebtables_u.h b/include/ebtables_u.h +index ab615c1..35a5bcc 100644 +--- a/include/ebtables_u.h ++++ b/include/ebtables_u.h +@@ -303,6 +303,7 @@ char *ebt_mask_to_dotted(uint32_t mask); + void ebt_parse_ip6_address(char *address, struct in6_addr *addr, + struct in6_addr *msk); + char *ebt_ip6_to_numeric(const struct in6_addr *addrp); ++char *ebt_ip6_mask_to_string(const struct in6_addr *msk); + + + int do_command(int argc, char *argv[], int exec_style, +diff --git a/useful_functions.c b/useful_functions.c +index d20b68e..d14cbe9 100644 +--- a/useful_functions.c ++++ b/useful_functions.c +@@ -411,3 +411,16 @@ char *ebt_ip6_to_numeric(const struct in6_addr *addrp) + static char buf[50+1]; + return (char *)inet_ntop(AF_INET6, addrp, buf, sizeof(buf)); + } ++ ++char *ebt_ip6_mask_to_string(const struct in6_addr *msk) ++{ ++ /* /0000:0000:0000:0000:0000:000.000.000.000 ++ * /0000:0000:0000:0000:0000:0000:0000:0000 */ ++ static char buf[51+1]; ++ if (msk->s6_addr32[0] == 0xFFFFFFFFL && msk->s6_addr32[1] == 0xFFFFFFFFL && ++ msk->s6_addr32[2] == 0xFFFFFFFFL && msk->s6_addr32[3] == 0xFFFFFFFFL) ++ *buf = '\0'; ++ else ++ sprintf(buf, "/%s", ebt_ip6_to_numeric(msk)); ++ return buf; ++} +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch new file mode 100644 index 0000000000..6fbe7df4ca --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch @@ -0,0 +1,67 @@ +From a60c7d4a6d05387aceb8ae9c38390d0f9bae84a2 Mon Sep 17 00:00:00 2001 +From: Felix Janda <felix.janda@posteo.de> +Date: Sat, 16 May 2015 12:22:39 +0200 +Subject: [PATCH 07/10] extensions: Use stdint types + +Signed-off-by: Felix Janda <felix.janda@posteo.de> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- + extensions/ebt_ip6.c | 4 ++-- + extensions/ebt_limit.c | 10 +++++----- + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c +index e3e0956..dd48547 100644 +--- a/extensions/ebt_ip6.c ++++ b/extensions/ebt_ip6.c +@@ -53,8 +53,8 @@ static const struct option opts[] = + + struct icmpv6_names { + const char *name; +- u_int8_t type; +- u_int8_t code_min, code_max; ++ uint8_t type; ++ uint8_t code_min, code_max; + }; + + static const struct icmpv6_names icmpv6_codes[] = { +diff --git a/extensions/ebt_limit.c b/extensions/ebt_limit.c +index ee40e5c..d189a09 100644 +--- a/extensions/ebt_limit.c ++++ b/extensions/ebt_limit.c +@@ -59,11 +59,11 @@ static void print_help(void) + " default %u\n", EBT_LIMIT_BURST); + } + +-static int parse_rate(const char *rate, u_int32_t *val) ++static int parse_rate(const char *rate, uint32_t *val) + { + const char *delim; +- u_int32_t r; +- u_int32_t mult = 1; /* Seconds by default. */ ++ uint32_t r; ++ uint32_t mult = 1; /* Seconds by default. */ + + delim = strchr(rate, '/'); + if (delim) { +@@ -151,7 +151,7 @@ static void final_check(const struct ebt_u_entry *entry, + struct rates + { + const char *name; +- u_int32_t mult; ++ uint32_t mult; + }; + + static struct rates g_rates[] = +@@ -162,7 +162,7 @@ static struct rates g_rates[] = + { "sec", EBT_LIMIT_SCALE } + }; + +-static void print_rate(u_int32_t period) ++static void print_rate(uint32_t period) + { + unsigned int i; + +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch new file mode 100644 index 0000000000..df3f521437 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch @@ -0,0 +1,48 @@ +From 6ed23c8c2bc5efc3956e7bb6155afc8f45e6ae1a Mon Sep 17 00:00:00 2001 +From: Felix Janda <felix.janda@posteo.de> +Date: Sat, 16 May 2015 12:31:58 +0200 +Subject: [PATCH 08/10] ethernetdb.h: Remove C++ specific compiler hint macro + _THROW + +Fixes compilation with musl libc + +Signed-off-by: Felix Janda <felix.janda@posteo.de> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- + include/ethernetdb.h | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/include/ethernetdb.h b/include/ethernetdb.h +index 46d8bfd..1683abe 100644 +--- a/include/ethernetdb.h ++++ b/include/ethernetdb.h +@@ -38,21 +38,20 @@ struct ethertypeent { + + /* Open ethertype data base files and mark them as staying open even + after a later search if STAY_OPEN is non-zero. */ +-extern void setethertypeent(int __stay_open) __THROW; ++extern void setethertypeent(int __stay_open); + + /* Close ethertype data base files and clear `stay open' flag. */ +-extern void endethertypeent(void) __THROW; ++extern void endethertypeent(void); + + /* Get next entry from ethertype data base file. Open data base if + necessary. */ +-extern struct ethertypeent *getethertypeent(void) __THROW; ++extern struct ethertypeent *getethertypeent(void); + + /* Return entry from ethertype data base for network with NAME. */ +-extern struct ethertypeent *getethertypebyname(__const char *__name) +- __THROW; ++extern struct ethertypeent *getethertypebyname(__const char *__name); + + /* Return entry from ethertype data base which number is PROTO. */ +-extern struct ethertypeent *getethertypebynumber(int __ethertype) __THROW; ++extern struct ethertypeent *getethertypebynumber(int __ethertype); + + + #endif /* ethernetdb.h */ +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch new file mode 100644 index 0000000000..248582c188 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch @@ -0,0 +1,48 @@ +From e6b367c0c2668341c47242d099f4d2048ae575ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alin=20N=C4=83stac?= <alin.nastac@gmail.com> +Date: Thu, 22 Oct 2015 16:41:03 +0200 +Subject: [PATCH 09/10] ebtables: Allow RETURN target rules in user defined + chains + +During loop checking ebtables marks entries with '1 << NF_BR_NUMHOOKS' if +they're called from a base chain rather than a user defined chain. + +This can be used by ebtables targets that can encode a special return +value to bail out if e.g. RETURN is used from a base chain. + +Unfortunately, this is broken, since the '1 << NF_BR_NUMHOOKS' is also +copied to called user-defined-chains (i.e., a user defined chain can no +longer be distinguished from a base chain): + +root@OpenWrt:~# ebtables -N foo +root@OpenWrt:~# ebtables -A OUTPUT -j foo +root@OpenWrt:~# ebtables -A foo -j mark --mark-or 3 --mark-target RETURN +--mark-target RETURN not allowed on base chain. + +This works if -A OUTPUT -j foo is omitted, but will still appear +if we try to call foo from OUTPUT afterwards. + +After this patch we still reject +'-A OUTPUT -j mark .. --mark-target RETURN'. + +Signed-off-by: Florian Westphal <fw@strlen.de> +--- + libebtc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libebtc.c b/libebtc.c +index 17ba8f2..74830ec 100644 +--- a/libebtc.c ++++ b/libebtc.c +@@ -1102,7 +1102,7 @@ void ebt_check_for_loops(struct ebt_u_replace *replace) + /* check if we've dealt with this chain already */ + if (entries2->hook_mask & (1<<i)) + goto letscontinue; +- entries2->hook_mask |= entries->hook_mask; ++ entries2->hook_mask |= entries->hook_mask & ~(1 << NF_BR_NUMHOOKS); + /* Jump to the chain, make sure we know how to get back */ + stack[sp].chain_nr = chain_nr; + stack[sp].n = j; +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch new file mode 100644 index 0000000000..a6ef9cd099 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch @@ -0,0 +1,216 @@ +From b7cee37734007fced7a4d5ed586c3a9e5ad92878 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 26 Mar 2017 13:12:21 -0700 +Subject: [PATCH 10/10] Adjust header include sequence + +This fixes the build with musl + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + extensions/ebt_among.c | 2 +- + extensions/ebt_arpreply.c | 2 +- + extensions/ebt_nat.c | 2 +- + include/linux/if_ether.h | 126 ---------------------------------------------- + useful_functions.c | 4 +- + 5 files changed, 5 insertions(+), 131 deletions(-) + delete mode 100644 include/linux/if_ether.h + +diff --git a/extensions/ebt_among.c b/extensions/ebt_among.c +index f97d07e..b096847 100644 +--- a/extensions/ebt_among.c ++++ b/extensions/ebt_among.c +@@ -12,8 +12,8 @@ + #include <getopt.h> + #include <ctype.h> + #include <unistd.h> +-#include "../include/ebtables_u.h" + #include <netinet/ether.h> ++#include "../include/ebtables_u.h" + #include "../include/ethernetdb.h" + #include <linux/if_ether.h> + #include <linux/netfilter_bridge/ebt_among.h> +diff --git a/extensions/ebt_arpreply.c b/extensions/ebt_arpreply.c +index c3757f3..c5102a4 100644 +--- a/extensions/ebt_arpreply.c ++++ b/extensions/ebt_arpreply.c +@@ -11,8 +11,8 @@ + #include <stdlib.h> + #include <string.h> + #include <getopt.h> +-#include "../include/ebtables_u.h" + #include <netinet/ether.h> ++#include "../include/ebtables_u.h" + #include <linux/netfilter_bridge/ebt_arpreply.h> + + static int mac_supplied; +diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c +index e6afbf8..8d318d1 100644 +--- a/extensions/ebt_nat.c ++++ b/extensions/ebt_nat.c +@@ -10,8 +10,8 @@ + #include <stdlib.h> + #include <string.h> + #include <getopt.h> +-#include "../include/ebtables_u.h" + #include <netinet/ether.h> ++#include "../include/ebtables_u.h" + #include <linux/netfilter_bridge/ebt_nat.h> + + static int to_source_supplied, to_dest_supplied; +diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h +deleted file mode 100644 +index 28a15ff..0000000 +--- a/include/linux/if_ether.h ++++ /dev/null +@@ -1,126 +0,0 @@ +-/* +- * INET An implementation of the TCP/IP protocol suite for the LINUX +- * operating system. INET is implemented using the BSD Socket +- * interface as the means of communication with the user level. +- * +- * Global definitions for the Ethernet IEEE 802.3 interface. +- * +- * Version: @(#)if_ether.h 1.0.1a 02/08/94 +- * +- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> +- * Donald Becker, <becker@super.org> +- * Alan Cox, <alan@lxorguk.ukuu.org.uk> +- * Steve Whitehouse, <gw7rrm@eeshack3.swan.ac.uk> +- * +- * This program is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License +- * as published by the Free Software Foundation; either version +- * 2 of the License, or (at your option) any later version. +- */ +- +-#ifndef _LINUX_IF_ETHER_H +-#define _LINUX_IF_ETHER_H +- +-#include <linux/types.h> +- +-/* +- * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble +- * and FCS/CRC (frame check sequence). +- */ +- +-#define ETH_ALEN 6 /* Octets in one ethernet addr */ +-#define ETH_HLEN 14 /* Total octets in header. */ +-#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */ +-#define ETH_DATA_LEN 1500 /* Max. octets in payload */ +-#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */ +-#define ETH_FCS_LEN 4 /* Octets in the FCS */ +- +-/* +- * These are the defined Ethernet Protocol ID's. +- */ +- +-#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */ +-#define ETH_P_PUP 0x0200 /* Xerox PUP packet */ +-#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */ +-#define ETH_P_IP 0x0800 /* Internet Protocol packet */ +-#define ETH_P_X25 0x0805 /* CCITT X.25 */ +-#define ETH_P_ARP 0x0806 /* Address Resolution packet */ +-#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ +-#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ +-#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ +-#define ETH_P_DEC 0x6000 /* DEC Assigned proto */ +-#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ +-#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ +-#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */ +-#define ETH_P_LAT 0x6004 /* DEC LAT */ +-#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */ +-#define ETH_P_CUST 0x6006 /* DEC Customer use */ +-#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */ +-#define ETH_P_TEB 0x6558 /* Trans Ether Bridging */ +-#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */ +-#define ETH_P_ATALK 0x809B /* Appletalk DDP */ +-#define ETH_P_AARP 0x80F3 /* Appletalk AARP */ +-#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ +-#define ETH_P_IPX 0x8137 /* IPX over DIX */ +-#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ +-#define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */ +-#define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */ +-#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol +- * defined in draft-wilson-wrec-wccp-v2-00.txt */ +-#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */ +-#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */ +-#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */ +-#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */ +-#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */ +-#define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */ +-#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport +- * over Ethernet +- */ +-#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */ +-#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */ +-#define ETH_P_TIPC 0x88CA /* TIPC */ +-#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */ +-#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ +-#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ +-#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ +- +-/* +- * Non DIX types. Won't clash for 1500 types. +- */ +- +-#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */ +-#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */ +-#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */ +-#define ETH_P_802_2 0x0004 /* 802.2 frames */ +-#define ETH_P_SNAP 0x0005 /* Internal only */ +-#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */ +-#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/ +-#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */ +-#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ +-#define ETH_P_CAN 0x000C /* Controller Area Network */ +-#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ +-#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ +-#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ +-#define ETH_P_CONTROL 0x0016 /* Card specific control frames */ +-#define ETH_P_IRDA 0x0017 /* Linux-IrDA */ +-#define ETH_P_ECONET 0x0018 /* Acorn Econet */ +-#define ETH_P_HDLC 0x0019 /* HDLC frames */ +-#define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */ +-#define ETH_P_DSA 0x001B /* Distributed Switch Arch. */ +-#define ETH_P_TRAILER 0x001C /* Trailer switch tagging */ +-#define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */ +-#define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */ +-#define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */ +- +-/* +- * This is an Ethernet frame header. +- */ +- +-struct ethhdr { +- unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ +- unsigned char h_source[ETH_ALEN]; /* source ether addr */ +- __be16 h_proto; /* packet type ID field */ +-} __attribute__((packed)); +- +- +-#endif /* _LINUX_IF_ETHER_H */ +diff --git a/useful_functions.c b/useful_functions.c +index d14cbe9..c304f4d 100644 +--- a/useful_functions.c ++++ b/useful_functions.c +@@ -22,8 +22,6 @@ + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +-#include "include/ebtables_u.h" +-#include "include/ethernetdb.h" + #include <stdio.h> + #include <netinet/ether.h> + #include <string.h> +@@ -33,6 +31,8 @@ + #include <sys/types.h> + #include <sys/socket.h> + #include <arpa/inet.h> ++#include "include/ebtables_u.h" ++#include "include/ethernetdb.h" + + const unsigned char mac_type_unicast[ETH_ALEN] = {0,0,0,0,0,0}; + const unsigned char msk_type_unicast[ETH_ALEN] = {1,0,0,0,0,0}; +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb index e9b726c5fb..375423d5d7 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb @@ -18,7 +18,17 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/ebtables/ebtables-v${PV}.tar.gz \ file://ebtables.common \ file://ebtables.service \ file://no-as-needed.patch \ -" + file://0001-add-RARP-and-update-iana-url.patch \ + file://0002-fix-compilation-warning.patch \ + file://0003-add-info-about-Wl-no-as-needed.patch \ + file://0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch \ + file://0005-Add-noflush-command-line-support-for-ebtables-restor.patch \ + file://0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch \ + file://0007-extensions-Use-stdint-types.patch \ + file://0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch \ + file://0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch \ + file://0010-Adjust-header-include-sequence.patch \ + " SRC_URI[md5sum] = "506742a3d44b9925955425a659c1a8d0" SRC_URI[sha256sum] = "dc6f7b484f207dc712bfca81645f45120cb6aee3380e77a1771e9c34a9a4455d" @@ -30,8 +40,8 @@ inherit update-rc.d systemd python __anonymous () { import re - karch = d.getVar('KARCH', True) - multilib = d.getVar('MLPREFIX', True) + karch = d.getVar('KARCH') + multilib = d.getVar('MLPREFIX') if multilib and karch == 'powerpc64': searchstr = "lib.?32" @@ -70,8 +80,10 @@ do_install () { # The script ebtables-save refernces perl in exec_prefix, so # move it to sbindir to avoid QA issue - install -d ${D}/${sbindir} - mv ${D}/${base_sbindir}/ebtables-save ${D}/${sbindir} + if ${base_sbindir} != ${sbindir} ; then + install -d ${D}/${sbindir} + mv ${D}/${base_sbindir}/ebtables-save ${D}/${sbindir} + fi # Install systemd service files install -d ${D}${systemd_unitdir}/system diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch new file mode 100644 index 0000000000..76d2d5d287 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch @@ -0,0 +1,26 @@ +From 32af64e1811c74292891dc4dc8455736f7d33ccf Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 30 Mar 2017 13:26:56 -0700 +Subject: [PATCH] Correct typo in the location of internal.h in #include + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libnetfilter_queue.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c +index 211a8ba..065d618 100644 +--- a/src/libnetfilter_queue.c ++++ b/src/libnetfilter_queue.c +@@ -32,7 +32,7 @@ + + #include <libnfnetlink/libnfnetlink.h> + #include <libnetfilter_queue/libnetfilter_queue.h> +-#include "src/internal.h" ++#include "internal.h" + + /** + * \mainpage +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch new file mode 100644 index 0000000000..9e0b420e0a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch @@ -0,0 +1,255 @@ +From f3e3e8fa703e88b76b22c5486277dfca3c85a24b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 10 Apr 2017 14:56:18 -0700 +Subject: [PATCH] Declare the define visivility attribute together + +clang ignores the visibility attribute if its not +defined before the definition. As a result these +symbols become hidden and consumers of this library +fail to link due to these missing symbols + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + doxygen.cfg.in | 2 +- + src/internal.h | 5 ++--- + src/libnetfilter_acct.c | 41 ++++++++++++++--------------------------- + 3 files changed, 17 insertions(+), 31 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index 7f4bd04..fe64d48 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = */.git/* .*.d +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL nfacct ++EXCLUDE_SYMBOLS = nfacct + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/src/internal.h b/src/internal.h +index f0cc2e1..e5c5ffd 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -3,10 +3,9 @@ + + #include "config.h" + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible ++# define __EXPORT __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORT + #endif + + #include <endian.h> +diff --git a/src/libnetfilter_acct.c b/src/libnetfilter_acct.c +index b0bcf67..0220d14 100644 +--- a/src/libnetfilter_acct.c ++++ b/src/libnetfilter_acct.c +@@ -76,21 +76,19 @@ struct nfacct { + * In case of success, this function returns a valid pointer, otherwise NULL + * s returned and errno is appropriately set. + */ +-struct nfacct *nfacct_alloc(void) ++struct nfacct __EXPORT *nfacct_alloc(void) + { + return calloc(1, sizeof(struct nfacct)); + } +-EXPORT_SYMBOL(nfacct_alloc); + + /** + * nfacct_free - release one accounting object + * \param nfacct pointer to the accounting object + */ +-void nfacct_free(struct nfacct *nfacct) ++void __EXPORT nfacct_free(struct nfacct *nfacct) + { + free(nfacct); + } +-EXPORT_SYMBOL(nfacct_free); + + /** + * nfacct_attr_set - set one attribute of the accounting object +@@ -98,7 +96,7 @@ EXPORT_SYMBOL(nfacct_free); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-void ++void __EXPORT + nfacct_attr_set(struct nfacct *nfacct, enum nfacct_attr_type type, + const void *data) + { +@@ -126,7 +124,6 @@ nfacct_attr_set(struct nfacct *nfacct, enum nfacct_attr_type type, + break; + } + } +-EXPORT_SYMBOL(nfacct_attr_set); + + /** + * nfacct_attr_set_str - set one attribute the accounting object +@@ -134,13 +131,12 @@ EXPORT_SYMBOL(nfacct_attr_set); + * \param type attribute type you want to set + * \param name string that will be used to set this attribute + */ +-void ++void __EXPORT + nfacct_attr_set_str(struct nfacct *nfacct, enum nfacct_attr_type type, + const char *name) + { + nfacct_attr_set(nfacct, type, name); + } +-EXPORT_SYMBOL(nfacct_attr_set_str); + + /** + * nfacct_attr_set_u64 - set one attribute the accounting object +@@ -148,20 +144,19 @@ EXPORT_SYMBOL(nfacct_attr_set_str); + * \param type attribute type you want to set + * \param value unsigned 64-bits integer + */ +-void ++void __EXPORT + nfacct_attr_set_u64(struct nfacct *nfacct, enum nfacct_attr_type type, + uint64_t value) + { + nfacct_attr_set(nfacct, type, &value); + } +-EXPORT_SYMBOL(nfacct_attr_set_u64); + + /** + * nfacct_attr_unset - unset one attribute the accounting object + * \param nfacct pointer to the accounting object + * \param type attribute type you want to set + */ +-void ++void __EXPORT + nfacct_attr_unset(struct nfacct *nfacct, enum nfacct_attr_type type) + { + switch(type) { +@@ -182,7 +177,6 @@ nfacct_attr_unset(struct nfacct *nfacct, enum nfacct_attr_type type) + break; + } + } +-EXPORT_SYMBOL(nfacct_attr_unset); + + /** + * nfacct_attr_get - get one attribute the accounting object +@@ -192,7 +186,7 @@ EXPORT_SYMBOL(nfacct_attr_unset); + * This function returns a valid pointer to the attribute data. If a + * unsupported attribute is used, this returns NULL. + */ +-const void *nfacct_attr_get(struct nfacct *nfacct, enum nfacct_attr_type type) ++const void __EXPORT *nfacct_attr_get(struct nfacct *nfacct, enum nfacct_attr_type type) + { + const void *ret = NULL; + +@@ -220,7 +214,6 @@ const void *nfacct_attr_get(struct nfacct *nfacct, enum nfacct_attr_type type) + } + return ret; + } +-EXPORT_SYMBOL(nfacct_attr_get); + + /** + * nfacct_attr_get_str - get one attribute the accounting object +@@ -230,12 +223,11 @@ EXPORT_SYMBOL(nfacct_attr_get); + * This function returns a valid pointer to the beginning of the string. + * If the attribute is unsupported, this returns NULL. + */ +-const char * ++const char __EXPORT * + nfacct_attr_get_str(struct nfacct *nfacct, enum nfacct_attr_type type) + { + return nfacct_attr_get(nfacct, type); + } +-EXPORT_SYMBOL(nfacct_attr_get_str); + + /** + * nfacct_attr_get_u64 - get one attribute the accounting object +@@ -245,12 +237,11 @@ EXPORT_SYMBOL(nfacct_attr_get_str); + * This function returns a unsigned 64-bits integer. If the attribute is + * unsupported, this returns NULL. + */ +-uint64_t nfacct_attr_get_u64(struct nfacct *nfacct, enum nfacct_attr_type type) ++uint64_t __EXPORT nfacct_attr_get_u64(struct nfacct *nfacct, enum nfacct_attr_type type) + { + const void *ret = nfacct_attr_get(nfacct, type); + return ret ? *((uint64_t *)ret) : 0; + } +-EXPORT_SYMBOL(nfacct_attr_get_u64); + + static int + nfacct_snprintf_plain(char *buf, size_t rem, struct nfacct *nfacct, +@@ -424,8 +415,8 @@ err: + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int nfacct_snprintf(char *buf, size_t size, struct nfacct *nfacct, +- uint16_t type, uint16_t flags) ++int __EXPORT nfacct_snprintf(char *buf, size_t size, struct nfacct *nfacct, ++ uint16_t type, uint16_t flags) + { + int ret = 0; + +@@ -445,7 +436,6 @@ int nfacct_snprintf(char *buf, size_t size, struct nfacct *nfacct, + } + return ret; + } +-EXPORT_SYMBOL(nfacct_snprintf); + + /** + * @} +@@ -484,7 +474,7 @@ EXPORT_SYMBOL(nfacct_snprintf); + * - Command NFNL_MSG_ACCT_DEL, to delete one specific nfacct object (if + * unused, otherwise you hit EBUSY). + */ +-struct nlmsghdr * ++struct nlmsghdr __EXPORT * + nfacct_nlmsg_build_hdr(char *buf, uint8_t cmd, uint16_t flags, uint32_t seq) + { + struct nlmsghdr *nlh; +@@ -502,14 +492,13 @@ nfacct_nlmsg_build_hdr(char *buf, uint8_t cmd, uint16_t flags, uint32_t seq) + + return nlh; + } +-EXPORT_SYMBOL(nfacct_nlmsg_build_hdr); + + /** + * nfacct_nlmsg_build_payload - build payload from accounting object + * \param nlh: netlink message that you want to use to add the payload. + * \param nfacct: pointer to a accounting object + */ +-void nfacct_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfacct *nfacct) ++void __EXPORT nfacct_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfacct *nfacct) + { + if (nfacct->bitset & (1 << NFACCT_ATTR_NAME)) + mnl_attr_put_strz(nlh, NFACCT_NAME, nfacct->name); +@@ -526,7 +515,6 @@ void nfacct_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfacct *nfacct) + if (nfacct->bitset & (1 << NFACCT_ATTR_QUOTA)) + mnl_attr_put_u64(nlh, NFACCT_QUOTA, htobe64(nfacct->quota)); + } +-EXPORT_SYMBOL(nfacct_nlmsg_build_payload); + + static int nfacct_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -563,7 +551,7 @@ static int nfacct_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data) + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int ++int __EXPORT + nfacct_nlmsg_parse_payload(const struct nlmsghdr *nlh, struct nfacct *nfacct) + { + struct nlattr *tb[NFACCT_MAX+1] = {}; +@@ -589,7 +577,6 @@ nfacct_nlmsg_parse_payload(const struct nlmsghdr *nlh, struct nfacct *nfacct) + + return 0; + } +-EXPORT_SYMBOL(nfacct_nlmsg_parse_payload); + + /** + * @} +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch new file mode 100644 index 0000000000..946f1b71d7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch @@ -0,0 +1,1229 @@ +From 06562244ac4a1a61e1a2c6b219a517658f7349bf Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 10 Apr 2017 12:09:41 -0700 +Subject: [PATCH] Declare the define visivility attribute together + +clang ignores the visibility attribute if its not +defined before the definition. As a result these +symbols become hidden and consumers of this library +fail to link due to these missing symbols + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + doxygen.cfg.in | 2 +- + src/extra/ipv4.c | 15 +++---- + src/extra/ipv6.c | 9 ++-- + src/extra/pktbuff.c | 42 ++++++------------ + src/extra/tcp.c | 21 +++------ + src/extra/udp.c | 21 +++------ + src/internal.h | 5 +-- + src/libnetfilter_queue.c | 108 ++++++++++++++++------------------------------- + src/nlmsg.c | 21 +++------ + 9 files changed, 82 insertions(+), 162 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index a7378ca..659abee 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL ++EXCLUDE_SYMBOLS = + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/src/extra/ipv4.c b/src/extra/ipv4.c +index a93d113..56d5dc7 100644 +--- a/src/extra/ipv4.c ++++ b/src/extra/ipv4.c +@@ -32,7 +32,7 @@ + * This funcion returns NULL if the IPv4 is malformed or the protocol version + * is not 4. On success, it returns a valid pointer to the IPv4 header. + */ +-struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb) ++struct iphdr __EXPORTED *nfq_ip_get_hdr(struct pkt_buff *pktb) + { + struct iphdr *iph; + unsigned int pktlen = pktb->tail - pktb->network_header; +@@ -53,14 +53,13 @@ struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb) + + return iph; + } +-EXPORT_SYMBOL(nfq_ip_get_hdr); + + /** + * nfq_ip_set_transport_header - set transport header + * \param pktb: pointer to network packet buffer + * \param iph: pointer to the IPv4 header + */ +-int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph) ++int __EXPORTED nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph) + { + int doff = iph->ihl * 4; + +@@ -71,7 +70,6 @@ int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph) + pktb->transport_header = pktb->network_header + doff; + return 0; + } +-EXPORT_SYMBOL(nfq_ip_set_transport_header); + + /** + * nfq_ip_set_checksum - set IPv4 checksum +@@ -80,14 +78,13 @@ EXPORT_SYMBOL(nfq_ip_set_transport_header); + * \note Call to this function if you modified the IPv4 header to update the + * checksum. + */ +-void nfq_ip_set_checksum(struct iphdr *iph) ++void __EXPORTED nfq_ip_set_checksum(struct iphdr *iph) + { + uint32_t iph_len = iph->ihl * 4; + + iph->check = 0; + iph->check = nfq_checksum(0, (uint16_t *)iph, iph_len); + } +-EXPORT_SYMBOL(nfq_ip_set_checksum); + + /** + * nfq_ip_mangle - mangle IPv4 packet buffer +@@ -100,7 +97,7 @@ EXPORT_SYMBOL(nfq_ip_set_checksum); + * + * \note This function recalculates the IPv4 checksum (if needed). + */ +-int nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, ++int __EXPORTED nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, + unsigned int match_offset, unsigned int match_len, + const char *rep_buffer, unsigned int rep_len) + { +@@ -116,7 +113,6 @@ int nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff, + + return 1; + } +-EXPORT_SYMBOL(nfq_ip_mangle); + + /** + * nfq_pkt_snprintf_ip - print IPv4 header into buffer in iptables LOG format +@@ -128,7 +124,7 @@ EXPORT_SYMBOL(nfq_ip_mangle); + * case that there is enough room in the buffer. Read snprintf manpage for more + * information to know more about this strange behaviour. + */ +-int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph) ++int __EXPORTED nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph) + { + int ret; + struct in_addr src = { iph->saddr }; +@@ -147,7 +143,6 @@ int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph) + + return ret; + } +-EXPORT_SYMBOL(nfq_ip_snprintf); + + /** + * @} +diff --git a/src/extra/ipv6.c b/src/extra/ipv6.c +index 7c5dc9b..6641c6b 100644 +--- a/src/extra/ipv6.c ++++ b/src/extra/ipv6.c +@@ -33,7 +33,7 @@ + * This funcion returns NULL if an invalid header is found. On sucess, it + * returns a valid pointer to the header. + */ +-struct ip6_hdr *nfq_ip6_get_hdr(struct pkt_buff *pktb) ++struct ip6_hdr __EXPORTED *nfq_ip6_get_hdr(struct pkt_buff *pktb) + { + struct ip6_hdr *ip6h; + unsigned int pktlen = pktb->tail - pktb->network_header; +@@ -50,7 +50,6 @@ struct ip6_hdr *nfq_ip6_get_hdr(struct pkt_buff *pktb) + + return ip6h; + } +-EXPORT_SYMBOL(nfq_ip6_get_hdr); + + /** + * nfq_ip6_set_transport_header - set transport header pointer for IPv6 packet +@@ -61,7 +60,7 @@ EXPORT_SYMBOL(nfq_ip6_get_hdr); + * This function returns 1 if the protocol has been found and the transport + * header has been set. Otherwise, it returns 0. + */ +-int nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h, ++int __EXPORTED nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h, + uint8_t target) + { + uint8_t nexthdr = ip6h->ip6_nxt; +@@ -115,7 +114,6 @@ int nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h, + pktb->transport_header = cur; + return cur ? 1 : 0; + } +-EXPORT_SYMBOL(nfq_ip6_set_transport_header); + + /** + * nfq_ip6_snprintf - print IPv6 header into one buffer in iptables LOG format +@@ -124,7 +122,7 @@ EXPORT_SYMBOL(nfq_ip6_set_transport_header); + * \param ip6_hdr: pointer to a valid IPv6 header. + * + */ +-int nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h) ++int __EXPORTED nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h) + { + int ret; + char src[INET6_ADDRSTRLEN]; +@@ -143,7 +141,6 @@ int nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h) + + return ret; + } +-EXPORT_SYMBOL(nfq_ip6_snprintf); + + /** + * @} +diff --git a/src/extra/pktbuff.c b/src/extra/pktbuff.c +index 1c15a00..54d8244 100644 +--- a/src/extra/pktbuff.c ++++ b/src/extra/pktbuff.c +@@ -40,7 +40,7 @@ + * + * \return a pointer to a new queue handle or NULL on failure. + */ +-struct pkt_buff * ++struct pkt_buff __EXPORTED * + pktb_alloc(int family, void *data, size_t len, size_t extra) + { + struct pkt_buff *pktb; +@@ -84,120 +84,108 @@ pktb_alloc(int family, void *data, size_t len, size_t extra) + } + return pktb; + } +-EXPORT_SYMBOL(pktb_alloc); + + /** + * pktb_data - return pointer to the beginning of the packet buffer + * \param pktb Pointer to packet buffer + */ +-uint8_t *pktb_data(struct pkt_buff *pktb) ++uint8_t __EXPORTED *pktb_data(struct pkt_buff *pktb) + { + return pktb->data; + } +-EXPORT_SYMBOL(pktb_data); + + /** + * pktb_len - return length of the packet buffer + * \param pktb Pointer to packet buffer + */ +-uint32_t pktb_len(struct pkt_buff *pktb) ++uint32_t __EXPORTED pktb_len(struct pkt_buff *pktb) + { + return pktb->len; + } +-EXPORT_SYMBOL(pktb_len); + + /** + * pktb_free - release packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_free(struct pkt_buff *pktb) ++void __EXPORTED pktb_free(struct pkt_buff *pktb) + { + free(pktb); + } +-EXPORT_SYMBOL(pktb_free); + + /** + * pktb_push - update pointer to the beginning of the packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_push(struct pkt_buff *pktb, unsigned int len) ++void __EXPORTED pktb_push(struct pkt_buff *pktb, unsigned int len) + { + pktb->data -= len; + pktb->len += len; + } +-EXPORT_SYMBOL(pktb_push); + + /** + * pktb_pull - update pointer to the beginning of the packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_pull(struct pkt_buff *pktb, unsigned int len) ++void __EXPORTED pktb_pull(struct pkt_buff *pktb, unsigned int len) + { + pktb->data += len; + pktb->len -= len; + } +-EXPORT_SYMBOL(pktb_pull); + + /** + * pktb_put - add extra bytes to the tail of the packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_put(struct pkt_buff *pktb, unsigned int len) ++void __EXPORTED pktb_put(struct pkt_buff *pktb, unsigned int len) + { + pktb->tail += len; + pktb->len += len; + } +-EXPORT_SYMBOL(pktb_put); + + /** + * pktb_trim - set new length for this packet buffer + * \param pktb Pointer to packet buffer + */ +-void pktb_trim(struct pkt_buff *pktb, unsigned int len) ++void __EXPORTED pktb_trim(struct pkt_buff *pktb, unsigned int len) + { + pktb->len = len; + } +-EXPORT_SYMBOL(pktb_trim); + + /** + * pktb_tailroom - get room in bytes in the tail of the packet buffer + * \param pktb Pointer to packet buffer + */ +-unsigned int pktb_tailroom(struct pkt_buff *pktb) ++unsigned int __EXPORTED pktb_tailroom(struct pkt_buff *pktb) + { + return pktb->data_len - pktb->len; + } +-EXPORT_SYMBOL(pktb_tailroom); + + /** + * pktb_mac_header - return pointer to layer 2 header (if any) + * \param pktb Pointer to packet buffer + */ +-uint8_t *pktb_mac_header(struct pkt_buff *pktb) ++uint8_t __EXPORTED *pktb_mac_header(struct pkt_buff *pktb) + { + return pktb->mac_header; + } +-EXPORT_SYMBOL(pktb_mac_header); + + /** + * pktb_network_header - return pointer to layer 3 header + * \param pktb Pointer to packet buffer + */ +-uint8_t *pktb_network_header(struct pkt_buff *pktb) ++uint8_t __EXPORTED *pktb_network_header(struct pkt_buff *pktb) + { + return pktb->network_header; + } +-EXPORT_SYMBOL(pktb_network_header); + + /** + * pktb_transport_header - return pointer to layer 4 header (if any) + * \param pktb Pointer to packet buffer + */ +-uint8_t *pktb_transport_header(struct pkt_buff *pktb) ++uint8_t __EXPORTED *pktb_transport_header(struct pkt_buff *pktb) + { + return pktb->transport_header; + } +-EXPORT_SYMBOL(pktb_transport_header); + + static int pktb_expand_tail(struct pkt_buff *pkt, int extra) + { +@@ -224,7 +212,7 @@ static int enlarge_pkt(struct pkt_buff *pkt, unsigned int extra) + return 1; + } + +-int pktb_mangle(struct pkt_buff *pkt, ++int __EXPORTED pktb_mangle(struct pkt_buff *pkt, + unsigned int dataoff, + unsigned int match_offset, + unsigned int match_len, +@@ -258,17 +246,15 @@ int pktb_mangle(struct pkt_buff *pkt, + pkt->mangled = true; + return 1; + } +-EXPORT_SYMBOL(pktb_mangle); + + /** + * pktb_mangled - return true if packet has been mangled + * \param pktb Pointer to packet buffer + */ +-bool pktb_mangled(const struct pkt_buff *pkt) ++bool __EXPORTED pktb_mangled(const struct pkt_buff *pkt) + { + return pkt->mangled; + } +-EXPORT_SYMBOL(pktb_mangled); + + /** + * @} +diff --git a/src/extra/tcp.c b/src/extra/tcp.c +index d1cd79d..8038ce5 100644 +--- a/src/extra/tcp.c ++++ b/src/extra/tcp.c +@@ -40,7 +40,7 @@ + * \note You have to call nfq_ip_set_transport_header or + * nfq_ip6_set_transport_header first to access the TCP header. + */ +-struct tcphdr *nfq_tcp_get_hdr(struct pkt_buff *pktb) ++struct tcphdr __EXPORTED *nfq_tcp_get_hdr(struct pkt_buff *pktb) + { + if (pktb->transport_header == NULL) + return NULL; +@@ -51,14 +51,13 @@ struct tcphdr *nfq_tcp_get_hdr(struct pkt_buff *pktb) + + return (struct tcphdr *)pktb->transport_header; + } +-EXPORT_SYMBOL(nfq_tcp_get_hdr); + + /** + * nfq_tcp_get_payload - get the TCP packet payload + * \param tcph: pointer to the TCP header + * \param pktb: pointer to user-space network packet buffer + */ +-void *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb) ++void __EXPORTED *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb) + { + unsigned int len = tcph->doff * 4; + +@@ -72,47 +71,43 @@ void *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb) + + return pktb->transport_header + len; + } +-EXPORT_SYMBOL(nfq_tcp_get_payload); + + /** + * nfq_tcp_get_payload_len - get the tcp packet payload + * \param tcph: pointer to the TCP header + * \param pktb: pointer to user-space network packet buffer + */ +-unsigned int ++unsigned int __EXPORTED + nfq_tcp_get_payload_len(struct tcphdr *tcph, struct pkt_buff *pktb) + { + return pktb->tail - pktb->transport_header; + } +-EXPORT_SYMBOL(nfq_tcp_get_payload_len); + + /** + * nfq_tcp_set_checksum_ipv4 - computes IPv4/TCP packet checksum + * \param tcph: pointer to the TCP header + * \param iph: pointer to the IPv4 header + */ +-void ++void __EXPORTED + nfq_tcp_compute_checksum_ipv4(struct tcphdr *tcph, struct iphdr *iph) + { + /* checksum field in header needs to be zero for calculation. */ + tcph->check = 0; + tcph->check = nfq_checksum_tcpudp_ipv4(iph); + } +-EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv4); + + /** + * nfq_tcp_set_checksum_ipv6 - computes IPv6/TCP packet checksum + * \param tcph: pointer to the TCP header + * \param iph: pointer to the IPv6 header + */ +-void ++void __EXPORTED + nfq_tcp_compute_checksum_ipv6(struct tcphdr *tcph, struct ip6_hdr *ip6h) + { + /* checksum field in header needs to be zero for calculation. */ + tcph->check = 0; + tcph->check = nfq_checksum_tcpudp_ipv6(ip6h, tcph); + } +-EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv6); + + /* + * The union cast uses a gcc extension to avoid aliasing problems +@@ -134,7 +129,7 @@ union tcp_word_hdr { + * \param tcp: pointer to a valid tcp header. + * + */ +-int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph) ++int __EXPORTED nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph) + { + int ret, len = 0; + +@@ -177,7 +172,6 @@ int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph) + + return ret; + } +-EXPORT_SYMBOL(nfq_tcp_snprintf); + + /** + * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer +@@ -189,7 +183,7 @@ EXPORT_SYMBOL(nfq_tcp_snprintf); + * + * \note This function recalculates the IPv4 and TCP checksums for you. + */ +-int ++int __EXPORTED + nfq_tcp_mangle_ipv4(struct pkt_buff *pkt, + unsigned int match_offset, unsigned int match_len, + const char *rep_buffer, unsigned int rep_len) +@@ -208,7 +202,6 @@ nfq_tcp_mangle_ipv4(struct pkt_buff *pkt, + + return 1; + } +-EXPORT_SYMBOL(nfq_tcp_mangle_ipv4); + + /** + * @} +diff --git a/src/extra/udp.c b/src/extra/udp.c +index 8c44a66..99c8faa 100644 +--- a/src/extra/udp.c ++++ b/src/extra/udp.c +@@ -37,7 +37,7 @@ + * This function returns NULL if invalid UDP header is found. On success, + * it returns the UDP header. + */ +-struct udphdr *nfq_udp_get_hdr(struct pkt_buff *pktb) ++struct udphdr __EXPORTED *nfq_udp_get_hdr(struct pkt_buff *pktb) + { + if (pktb->transport_header == NULL) + return NULL; +@@ -48,14 +48,13 @@ struct udphdr *nfq_udp_get_hdr(struct pkt_buff *pktb) + + return (struct udphdr *)pktb->transport_header; + } +-EXPORT_SYMBOL(nfq_udp_get_hdr); + + /** + * nfq_udp_get_payload - get the UDP packet payload. + * \param udph: the pointer to the UDP header. + * \param tail: pointer to the tail of the packet + */ +-void *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb) ++void __EXPORTED *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb) + { + uint16_t len = ntohs(udph->len); + +@@ -69,17 +68,15 @@ void *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb) + + return pktb->transport_header + sizeof(struct udphdr); + } +-EXPORT_SYMBOL(nfq_udp_get_payload); + + /** + * nfq_udp_get_payload_len - get the udp packet payload. + * \param udp: the pointer to the udp header. + */ +-unsigned int nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb) ++unsigned int __EXPORTED nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb) + { + return pktb->tail - pktb->transport_header; + } +-EXPORT_SYMBOL(nfq_udp_get_payload_len); + + /** + * nfq_udp_set_checksum_ipv4 - computes a IPv4/TCP packet's segment +@@ -91,14 +88,13 @@ EXPORT_SYMBOL(nfq_udp_get_payload_len); + * \see nfq_pkt_compute_ip_checksum + * \see nfq_pkt_compute_udp_checksum + */ +-void ++void __EXPORTED + nfq_udp_compute_checksum_ipv4(struct udphdr *udph, struct iphdr *iph) + { + /* checksum field in header needs to be zero for calculation. */ + udph->check = 0; + udph->check = nfq_checksum_tcpudp_ipv4(iph); + } +-EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv4); + + /** + * nfq_udp_set_checksum_ipv6 - computes a IPv6/TCP packet's segment +@@ -110,14 +106,13 @@ EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv4); + * \see nfq_pkt_compute_ip_checksum + * \see nfq_pkt_compute_udp_checksum + */ +-void ++void __EXPORTED + nfq_udp_compute_checksum_ipv6(struct udphdr *udph, struct ip6_hdr *ip6h) + { + /* checksum field in header needs to be zero for calculation. */ + udph->check = 0; + udph->check = nfq_checksum_tcpudp_ipv6(ip6h, udph); + } +-EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv6); + + /** + * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer +@@ -129,7 +124,7 @@ EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv6); + * + * \note This function recalculates the IPv4 and TCP checksums for you. + */ +-int ++int __EXPORTED + nfq_udp_mangle_ipv4(struct pkt_buff *pkt, + unsigned int match_offset, unsigned int match_len, + const char *rep_buffer, unsigned int rep_len) +@@ -148,7 +143,6 @@ nfq_udp_mangle_ipv4(struct pkt_buff *pkt, + + return 1; + } +-EXPORT_SYMBOL(nfq_udp_mangle_ipv4); + + /** + * nfq_pkt_snprintf_udp_hdr - print udp header into one buffer in a humnan +@@ -158,12 +152,11 @@ EXPORT_SYMBOL(nfq_udp_mangle_ipv4); + * \param udp: pointer to a valid udp header. + * + */ +-int nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph) ++int __EXPORTED nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph) + { + return snprintf(buf, size, "SPT=%u DPT=%u ", + htons(udph->source), htons(udph->dest)); + } +-EXPORT_SYMBOL(nfq_udp_snprintf); + + /** + * @} +diff --git a/src/internal.h b/src/internal.h +index 558d267..79b0752 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -5,10 +5,9 @@ + #include <stdint.h> + #include <stdbool.h> + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible ++# define __EXPORTED __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORTED + #endif + + struct iphdr; +diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c +index 065d618..ab0b66b 100644 +--- a/src/libnetfilter_queue.c ++++ b/src/libnetfilter_queue.c +@@ -133,8 +133,7 @@ struct nfq_data { + struct nfattr **data; + }; + +-int nfq_errno; +-EXPORT_SYMBOL(nfq_errno); ++int __EXPORTED nfq_errno; + + /*********************************************************************** + * low level stuff +@@ -218,11 +217,10 @@ static int __nfq_rcv_pkt(struct nlmsghdr *nlh, struct nfattr *nfa[], + + /* public interface */ + +-struct nfnl_handle *nfq_nfnlh(struct nfq_handle *h) ++struct nfnl_handle __EXPORTED *nfq_nfnlh(struct nfq_handle *h) + { + return h->nfnlh; + } +-EXPORT_SYMBOL(nfq_nfnlh); + + /** + * +@@ -294,11 +292,10 @@ EXPORT_SYMBOL(nfq_nfnlh); + * over the netlink connection associated with the given queue connection + * handle. + */ +-int nfq_fd(struct nfq_handle *h) ++int __EXPORTED nfq_fd(struct nfq_handle *h) + { + return nfnl_fd(nfq_nfnlh(h)); + } +-EXPORT_SYMBOL(nfq_fd); + /** + * @} + */ +@@ -349,7 +346,7 @@ EXPORT_SYMBOL(nfq_fd); + * + * \return a pointer to a new queue handle or NULL on failure. + */ +-struct nfq_handle *nfq_open(void) ++struct nfq_handle __EXPORTED *nfq_open(void) + { + struct nfnl_handle *nfnlh = nfnl_open(); + struct nfq_handle *qh; +@@ -366,7 +363,6 @@ struct nfq_handle *nfq_open(void) + + return qh; + } +-EXPORT_SYMBOL(nfq_open); + + /** + * @} +@@ -382,7 +378,7 @@ EXPORT_SYMBOL(nfq_open); + * + * \return a pointer to a new queue handle or NULL on failure. + */ +-struct nfq_handle *nfq_open_nfnl(struct nfnl_handle *nfnlh) ++struct nfq_handle __EXPORTED *nfq_open_nfnl(struct nfnl_handle *nfnlh) + { + struct nfnl_callback pkt_cb = { + .call = __nfq_rcv_pkt, +@@ -419,7 +415,6 @@ out_free: + free(h); + return NULL; + } +-EXPORT_SYMBOL(nfq_open_nfnl); + + /** + * \addtogroup LibrarySetup +@@ -438,7 +433,7 @@ EXPORT_SYMBOL(nfq_open_nfnl); + * + * \return 0 on success, non-zero on failure. + */ +-int nfq_close(struct nfq_handle *h) ++int __EXPORTED nfq_close(struct nfq_handle *h) + { + int ret; + +@@ -447,7 +442,6 @@ int nfq_close(struct nfq_handle *h) + free(h); + return ret; + } +-EXPORT_SYMBOL(nfq_close); + + /** + * nfq_bind_pf - bind a nfqueue handler to a given protocol family +@@ -460,11 +454,10 @@ EXPORT_SYMBOL(nfq_close); + * + * \return integer inferior to 0 in case of failure + */ +-int nfq_bind_pf(struct nfq_handle *h, uint16_t pf) ++int __EXPORTED nfq_bind_pf(struct nfq_handle *h, uint16_t pf) + { + return __build_send_cfg_msg(h, NFQNL_CFG_CMD_PF_BIND, 0, pf); + } +-EXPORT_SYMBOL(nfq_bind_pf); + + /** + * nfq_unbind_pf - unbind nfqueue handler from a protocol family +@@ -476,11 +469,10 @@ EXPORT_SYMBOL(nfq_bind_pf); + * + * This call is obsolete, Linux kernels from 3.8 onwards ignore it. + */ +-int nfq_unbind_pf(struct nfq_handle *h, uint16_t pf) ++int __EXPORTED nfq_unbind_pf(struct nfq_handle *h, uint16_t pf) + { + return __build_send_cfg_msg(h, NFQNL_CFG_CMD_PF_UNBIND, 0, pf); + } +-EXPORT_SYMBOL(nfq_unbind_pf); + + + /** +@@ -524,7 +516,7 @@ typedef int nfq_callback(struct nfq_q_handle *qh, + * The callback should return < 0 to stop processing. + */ + +-struct nfq_q_handle *nfq_create_queue(struct nfq_handle *h, ++struct nfq_q_handle __EXPORTED *nfq_create_queue(struct nfq_handle *h, + uint16_t num, + nfq_callback *cb, + void *data) +@@ -555,7 +547,6 @@ struct nfq_q_handle *nfq_create_queue(struct nfq_handle *h, + add_qh(qh); + return qh; + } +-EXPORT_SYMBOL(nfq_create_queue); + + /** + * @} +@@ -573,7 +564,7 @@ EXPORT_SYMBOL(nfq_create_queue); + * Removes the binding for the specified queue handle. This call also unbind + * from the nfqueue handler, so you don't have to call nfq_unbind_pf. + */ +-int nfq_destroy_queue(struct nfq_q_handle *qh) ++int __EXPORTED nfq_destroy_queue(struct nfq_q_handle *qh) + { + int ret = __build_send_cfg_msg(qh->h, NFQNL_CFG_CMD_UNBIND, qh->id, 0); + if (ret == 0) { +@@ -583,7 +574,6 @@ int nfq_destroy_queue(struct nfq_q_handle *qh) + + return ret; + } +-EXPORT_SYMBOL(nfq_destroy_queue); + + /** + * nfq_handle_packet - handle a packet received from the nfqueue subsystem +@@ -597,11 +587,10 @@ EXPORT_SYMBOL(nfq_destroy_queue); + * + * \return 0 on success, non-zero on failure. + */ +-int nfq_handle_packet(struct nfq_handle *h, char *buf, int len) ++int __EXPORTED nfq_handle_packet(struct nfq_handle *h, char *buf, int len) + { + return nfnl_handle_packet(h->nfnlh, buf, len); + } +-EXPORT_SYMBOL(nfq_handle_packet); + + /** + * nfq_set_mode - set the amount of packet data that nfqueue copies to userspace +@@ -618,7 +607,7 @@ EXPORT_SYMBOL(nfq_handle_packet); + * + * \return -1 on error; >=0 otherwise. + */ +-int nfq_set_mode(struct nfq_q_handle *qh, ++int __EXPORTED nfq_set_mode(struct nfq_q_handle *qh, + uint8_t mode, uint32_t range) + { + union { +@@ -638,7 +627,6 @@ int nfq_set_mode(struct nfq_q_handle *qh, + + return nfnl_query(qh->h->nfnlh, &u.nmh); + } +-EXPORT_SYMBOL(nfq_set_mode); + + /** + * nfq_set_queue_flags - set flags (options) for the kernel queue +@@ -690,7 +678,7 @@ EXPORT_SYMBOL(nfq_set_mode); + * + * \return -1 on error with errno set appropriately; =0 otherwise. + */ +-int nfq_set_queue_flags(struct nfq_q_handle *qh, ++int __EXPORTED nfq_set_queue_flags(struct nfq_q_handle *qh, + uint32_t mask, uint32_t flags) + { + union { +@@ -711,7 +699,6 @@ int nfq_set_queue_flags(struct nfq_q_handle *qh, + + return nfnl_query(qh->h->nfnlh, &u.nmh); + } +-EXPORT_SYMBOL(nfq_set_queue_flags); + + /** + * nfq_set_queue_maxlen - Set kernel queue maximum length parameter +@@ -724,7 +711,7 @@ EXPORT_SYMBOL(nfq_set_queue_flags); + * + * \return -1 on error; >=0 otherwise. + */ +-int nfq_set_queue_maxlen(struct nfq_q_handle *qh, ++int __EXPORTED nfq_set_queue_maxlen(struct nfq_q_handle *qh, + uint32_t queuelen) + { + union { +@@ -742,7 +729,6 @@ int nfq_set_queue_maxlen(struct nfq_q_handle *qh, + + return nfnl_query(qh->h->nfnlh, &u.nmh); + } +-EXPORT_SYMBOL(nfq_set_queue_maxlen); + + /** + * @} +@@ -829,14 +815,13 @@ static int __set_verdict(struct nfq_q_handle *qh, uint32_t id, + * + * \return -1 on error; >= 0 otherwise. + */ +-int nfq_set_verdict(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict, uint32_t data_len, + const unsigned char *buf) + { + return __set_verdict(qh, id, verdict, 0, 0, data_len, buf, + NFQNL_MSG_VERDICT); + } +-EXPORT_SYMBOL(nfq_set_verdict); + + /** + * nfq_set_verdict2 - like nfq_set_verdict, but you can set the mark. +@@ -847,14 +832,13 @@ EXPORT_SYMBOL(nfq_set_verdict); + * \param data_len number of bytes of data pointed to by #buf + * \param buf the buffer that contains the packet data + */ +-int nfq_set_verdict2(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict2(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict, uint32_t mark, + uint32_t data_len, const unsigned char *buf) + { + return __set_verdict(qh, id, verdict, htonl(mark), 1, data_len, + buf, NFQNL_MSG_VERDICT); + } +-EXPORT_SYMBOL(nfq_set_verdict2); + + /** + * nfq_set_verdict_batch - issue verdicts on several packets at once +@@ -868,13 +852,12 @@ EXPORT_SYMBOL(nfq_set_verdict2); + * batch support was added in Linux 3.1. + * These functions will fail silently on older kernels. + */ +-int nfq_set_verdict_batch(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict_batch(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict) + { + return __set_verdict(qh, id, verdict, 0, 0, 0, NULL, + NFQNL_MSG_VERDICT_BATCH); + } +-EXPORT_SYMBOL(nfq_set_verdict_batch); + + /** + * nfq_set_verdict_batch2 - like nfq_set_verdict_batch, but you can set a mark. +@@ -883,13 +866,12 @@ EXPORT_SYMBOL(nfq_set_verdict_batch); + * \param verdict verdict to return to netfilter (NF_ACCEPT, NF_DROP) + * \param mark mark to put on packet + */ +-int nfq_set_verdict_batch2(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict_batch2(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict, uint32_t mark) + { + return __set_verdict(qh, id, verdict, htonl(mark), 1, 0, + NULL, NFQNL_MSG_VERDICT_BATCH); + } +-EXPORT_SYMBOL(nfq_set_verdict_batch2); + + /** + * nfq_set_verdict_mark - like nfq_set_verdict, but you can set the mark. +@@ -905,14 +887,13 @@ EXPORT_SYMBOL(nfq_set_verdict_batch2); + * This function is deprecated since it is broken, its use is highly + * discouraged. Please, use nfq_set_verdict2 instead. + */ +-int nfq_set_verdict_mark(struct nfq_q_handle *qh, uint32_t id, ++int __EXPORTED nfq_set_verdict_mark(struct nfq_q_handle *qh, uint32_t id, + uint32_t verdict, uint32_t mark, + uint32_t data_len, const unsigned char *buf) + { + return __set_verdict(qh, id, verdict, mark, 1, data_len, buf, + NFQNL_MSG_VERDICT); + } +-EXPORT_SYMBOL(nfq_set_verdict_mark); + + /** + * @} +@@ -947,12 +928,11 @@ EXPORT_SYMBOL(nfq_set_verdict_mark); + } __attribute__ ((packed)); + \endverbatim + */ +-struct nfqnl_msg_packet_hdr *nfq_get_msg_packet_hdr(struct nfq_data *nfad) ++struct nfqnl_msg_packet_hdr __EXPORTED *nfq_get_msg_packet_hdr(struct nfq_data *nfad) + { + return nfnl_get_pointer_to_data(nfad->data, NFQA_PACKET_HDR, + struct nfqnl_msg_packet_hdr); + } +-EXPORT_SYMBOL(nfq_get_msg_packet_hdr); + + /** + * nfq_get_nfmark - get the packet mark +@@ -960,11 +940,10 @@ EXPORT_SYMBOL(nfq_get_msg_packet_hdr); + * + * \return the netfilter mark currently assigned to the given queued packet. + */ +-uint32_t nfq_get_nfmark(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_nfmark(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_MARK, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_nfmark); + + /** + * nfq_get_timestamp - get the packet timestamp +@@ -975,7 +954,7 @@ EXPORT_SYMBOL(nfq_get_nfmark); + * + * \return 0 on success, non-zero on failure. + */ +-int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv) ++int __EXPORTED nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv) + { + struct nfqnl_msg_packet_timestamp *qpt; + qpt = nfnl_get_pointer_to_data(nfad->data, NFQA_TIMESTAMP, +@@ -988,7 +967,6 @@ int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv) + + return 0; + } +-EXPORT_SYMBOL(nfq_get_timestamp); + + /** + * nfq_get_indev - get the interface that the packet was received through +@@ -1001,11 +979,10 @@ EXPORT_SYMBOL(nfq_get_timestamp); + * \warning all nfq_get_dev() functions return 0 if not set, since linux + * only allows ifindex >= 1, see net/core/dev.c:2600 (in 2.6.13.1) + */ +-uint32_t nfq_get_indev(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_indev(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_INDEV, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_indev); + + /** + * nfq_get_physindev - get the physical interface that the packet was received +@@ -1015,11 +992,10 @@ EXPORT_SYMBOL(nfq_get_indev); + * If the returned index is 0, the packet was locally generated or the + * physical input interface is no longer known (ie. POSTROUTING?). + */ +-uint32_t nfq_get_physindev(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_physindev(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_PHYSINDEV, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_physindev); + + /** + * nfq_get_outdev - gets the interface that the packet will be routed out +@@ -1029,11 +1005,10 @@ EXPORT_SYMBOL(nfq_get_physindev); + * returned index is 0, the packet is destined for localhost or the output + * interface is not yet known (ie. PREROUTING?). + */ +-uint32_t nfq_get_outdev(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_outdev(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_OUTDEV, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_outdev); + + /** + * nfq_get_physoutdev - get the physical interface that the packet output +@@ -1045,11 +1020,10 @@ EXPORT_SYMBOL(nfq_get_outdev); + * + * \return The index of physical interface that the packet output will be routed out. + */ +-uint32_t nfq_get_physoutdev(struct nfq_data *nfad) ++uint32_t __EXPORTED nfq_get_physoutdev(struct nfq_data *nfad) + { + return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_PHYSOUTDEV, uint32_t)); + } +-EXPORT_SYMBOL(nfq_get_physoutdev); + + /** + * nfq_get_indev_name - get the name of the interface the packet +@@ -1089,13 +1063,12 @@ EXPORT_SYMBOL(nfq_get_physoutdev); + \endverbatim + * + */ +-int nfq_get_indev_name(struct nlif_handle *nlif_handle, ++int __EXPORTED nfq_get_indev_name(struct nlif_handle *nlif_handle, + struct nfq_data *nfad, char *name) + { + uint32_t ifindex = nfq_get_indev(nfad); + return nlif_index2name(nlif_handle, ifindex, name); + } +-EXPORT_SYMBOL(nfq_get_indev_name); + + /** + * nfq_get_physindev_name - get the name of the physical interface the +@@ -1109,13 +1082,12 @@ EXPORT_SYMBOL(nfq_get_indev_name); + * + * \return -1 in case of error, > 0 if it succeed. + */ +-int nfq_get_physindev_name(struct nlif_handle *nlif_handle, ++int __EXPORTED nfq_get_physindev_name(struct nlif_handle *nlif_handle, + struct nfq_data *nfad, char *name) + { + uint32_t ifindex = nfq_get_physindev(nfad); + return nlif_index2name(nlif_handle, ifindex, name); + } +-EXPORT_SYMBOL(nfq_get_physindev_name); + + /** + * nfq_get_outdev_name - get the name of the physical interface the +@@ -1129,13 +1101,12 @@ EXPORT_SYMBOL(nfq_get_physindev_name); + * + * \return -1 in case of error, > 0 if it succeed. + */ +-int nfq_get_outdev_name(struct nlif_handle *nlif_handle, ++int __EXPORTED nfq_get_outdev_name(struct nlif_handle *nlif_handle, + struct nfq_data *nfad, char *name) + { + uint32_t ifindex = nfq_get_outdev(nfad); + return nlif_index2name(nlif_handle, ifindex, name); + } +-EXPORT_SYMBOL(nfq_get_outdev_name); + + /** + * nfq_get_physoutdev_name - get the name of the interface the +@@ -1150,13 +1121,12 @@ EXPORT_SYMBOL(nfq_get_outdev_name); + * \return -1 in case of error, > 0 if it succeed. + */ + +-int nfq_get_physoutdev_name(struct nlif_handle *nlif_handle, ++int __EXPORTED nfq_get_physoutdev_name(struct nlif_handle *nlif_handle, + struct nfq_data *nfad, char *name) + { + uint32_t ifindex = nfq_get_physoutdev(nfad); + return nlif_index2name(nlif_handle, ifindex, name); + } +-EXPORT_SYMBOL(nfq_get_physoutdev_name); + + /** + * nfq_get_packet_hw +@@ -1180,12 +1150,11 @@ EXPORT_SYMBOL(nfq_get_physoutdev_name); + } __attribute__ ((packed)); + \endverbatim + */ +-struct nfqnl_msg_packet_hw *nfq_get_packet_hw(struct nfq_data *nfad) ++struct nfqnl_msg_packet_hw __EXPORTED *nfq_get_packet_hw(struct nfq_data *nfad) + { + return nfnl_get_pointer_to_data(nfad->data, NFQA_HWADDR, + struct nfqnl_msg_packet_hw); + } +-EXPORT_SYMBOL(nfq_get_packet_hw); + + /** + * nfq_get_uid - get the UID of the user the packet belongs to +@@ -1193,7 +1162,7 @@ EXPORT_SYMBOL(nfq_get_packet_hw); + * + * \return 1 if there is a UID available, 0 otherwise. + */ +-int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid) ++int __EXPORTED nfq_get_uid(struct nfq_data *nfad, uint32_t *uid) + { + if (!nfnl_attr_present(nfad->data, NFQA_UID)) + return 0; +@@ -1201,7 +1170,6 @@ int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid) + *uid = ntohl(nfnl_get_data(nfad->data, NFQA_UID, uint32_t)); + return 1; + } +-EXPORT_SYMBOL(nfq_get_uid); + + /** + * nfq_get_gid - get the GID of the user the packet belongs to +@@ -1209,7 +1177,7 @@ EXPORT_SYMBOL(nfq_get_uid); + * + * \return 1 if there is a GID available, 0 otherwise. + */ +-int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid) ++int __EXPORTED nfq_get_gid(struct nfq_data *nfad, uint32_t *gid) + { + if (!nfnl_attr_present(nfad->data, NFQA_GID)) + return 0; +@@ -1217,7 +1185,6 @@ int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid) + *gid = ntohl(nfnl_get_data(nfad->data, NFQA_GID, uint32_t)); + return 1; + } +-EXPORT_SYMBOL(nfq_get_gid); + + + /** +@@ -1227,7 +1194,7 @@ EXPORT_SYMBOL(nfq_get_gid); + * + * \return -1 on error, otherwise > 0 + */ +-int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata) ++int __EXPORTED nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata) + { + if (!nfnl_attr_present(nfad->data, NFQA_SECCTX)) + return -1; +@@ -1240,7 +1207,6 @@ int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata) + + return 0; + } +-EXPORT_SYMBOL(nfq_get_secctx); + + /** + * nfq_get_payload - get payload +@@ -1253,7 +1219,7 @@ EXPORT_SYMBOL(nfq_get_secctx); + * + * \return -1 on error, otherwise > 0. + */ +-int nfq_get_payload(struct nfq_data *nfad, unsigned char **data) ++int __EXPORTED nfq_get_payload(struct nfq_data *nfad, unsigned char **data) + { + *data = (unsigned char *) + nfnl_get_pointer_to_data(nfad->data, NFQA_PAYLOAD, char); +@@ -1262,7 +1228,6 @@ int nfq_get_payload(struct nfq_data *nfad, unsigned char **data) + + return -1; + } +-EXPORT_SYMBOL(nfq_get_payload); + + /** + * @} +@@ -1307,7 +1272,7 @@ do { \ + * would have been printed into the buffer (in case that there is enough + * room in it). See snprintf() return value for more information. + */ +-int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags) ++int __EXPORTED nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags) + { + struct nfqnl_msg_packet_hdr *ph; + struct nfqnl_msg_packet_hw *hwph; +@@ -1460,7 +1425,6 @@ int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags) + + return len; + } +-EXPORT_SYMBOL(nfq_snprintf_xml); + + /** + * @} +diff --git a/src/nlmsg.c b/src/nlmsg.c +index ba28c77..5582407 100644 +--- a/src/nlmsg.c ++++ b/src/nlmsg.c +@@ -30,7 +30,7 @@ + * @{ + */ + +-void nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict) ++void __EXPORTED nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict) + { + struct nfqnl_msg_verdict_hdr vh = { + .verdict = htonl(verdict), +@@ -38,20 +38,17 @@ void nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict) + }; + mnl_attr_put(nlh, NFQA_VERDICT_HDR, sizeof(vh), &vh); + } +-EXPORT_SYMBOL(nfq_nlmsg_verdict_put); + +-void nfq_nlmsg_verdict_put_mark(struct nlmsghdr *nlh, uint32_t mark) ++void __EXPORTED nfq_nlmsg_verdict_put_mark(struct nlmsghdr *nlh, uint32_t mark) + { + mnl_attr_put_u32(nlh, NFQA_MARK, htonl(mark)); + } +-EXPORT_SYMBOL(nfq_nlmsg_verdict_put_mark); + +-void ++void __EXPORTED + nfq_nlmsg_verdict_put_pkt(struct nlmsghdr *nlh, const void *pkt, uint32_t plen) + { + mnl_attr_put(nlh, NFQA_PAYLOAD, plen, pkt); + } +-EXPORT_SYMBOL(nfq_nlmsg_verdict_put_pkt); + + /** + * @} +@@ -85,7 +82,7 @@ EXPORT_SYMBOL(nfq_nlmsg_verdict_put_pkt); + * given protocol family. Both commands are ignored by Linux kernel 3.8 and + * later versions. + */ +-void nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd) ++void __EXPORTED nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd) + { + struct nfqnl_msg_config_cmd command = { + .command = cmd, +@@ -93,9 +90,8 @@ void nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd) + }; + mnl_attr_put(nlh, NFQA_CFG_CMD, sizeof(command), &command); + } +-EXPORT_SYMBOL(nfq_nlmsg_cfg_put_cmd); + +-void nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range) ++void __EXPORTED nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range) + { + struct nfqnl_msg_config_params params = { + .copy_range = htonl(range), +@@ -103,13 +99,11 @@ void nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range) + }; + mnl_attr_put(nlh, NFQA_CFG_PARAMS, sizeof(params), ¶ms); + } +-EXPORT_SYMBOL(nfq_nlmsg_cfg_put_params); + +-void nfq_nlmsg_cfg_put_qmaxlen(struct nlmsghdr *nlh, uint32_t queue_maxlen) ++void __EXPORTED nfq_nlmsg_cfg_put_qmaxlen(struct nlmsghdr *nlh, uint32_t queue_maxlen) + { + mnl_attr_put_u32(nlh, NFQA_CFG_QUEUE_MAXLEN, htonl(queue_maxlen)); + } +-EXPORT_SYMBOL(nfq_nlmsg_cfg_put_qmaxlen); + + /** + * @} +@@ -179,12 +173,11 @@ static int nfq_pkt_parse_attr_cb(const struct nlattr *attr, void *data) + * This function returns MNL_CB_ERROR if any error occurs, or MNL_CB_OK on + * success. + */ +-int nfq_nlmsg_parse(const struct nlmsghdr *nlh, struct nlattr **attr) ++int __EXPORTED nfq_nlmsg_parse(const struct nlmsghdr *nlh, struct nlattr **attr) + { + return mnl_attr_parse(nlh, sizeof(struct nfgenmsg), + nfq_pkt_parse_attr_cb, attr); + } +-EXPORT_SYMBOL(nfq_nlmsg_parse); + + /** + * @} +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch new file mode 100644 index 0000000000..9377f57cb0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch @@ -0,0 +1,385 @@ +From f58c5b09fb59baf07c942d373fc4d522b27e73c6 Mon Sep 17 00:00:00 2001 +From: Kevin Cernekee <cernekee@chromium.org> +Date: Wed, 4 Jan 2017 14:30:26 -0800 +Subject: Use __EXPORTED rather than EXPORT_SYMBOL + +clang is sensitive to the ordering of +__attribute__((visibility("default"))) relative to the function +body. gcc is not. So if we try to re-declare an existing function +with default visibility, clang prints a warning and generates +a broken .so file in which nfct_helper_* are not exported to library +callers. + +Move the attribute up into the function definition to make clang happy. + +Signed-off-by: Kevin Cernekee <cernekee@chromium.org> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- + doxygen.cfg.in | 2 +- + src/internal.h | 5 ++- + src/libnetfilter_cthelper.c | 83 ++++++++++++++++++--------------------------- + 3 files changed, 36 insertions(+), 54 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index cac9b05..190b7cd 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = */.git/* .*.d +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL ++EXCLUDE_SYMBOLS = + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/src/internal.h b/src/internal.h +index 3a88d1a..5d78171 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -3,10 +3,9 @@ + + #include "config.h" + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible ++# define __EXPORTED __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORTED + #endif + + #endif +diff --git a/src/libnetfilter_cthelper.c b/src/libnetfilter_cthelper.c +index f8f58e6..af543a1 100644 +--- a/src/libnetfilter_cthelper.c ++++ b/src/libnetfilter_cthelper.c +@@ -99,17 +99,16 @@ struct nfct_helper { + * In case of success, this function returns a valid pointer, otherwise NULL + * s returned and errno is appropriately set. + */ +-struct nfct_helper *nfct_helper_alloc(void) ++struct nfct_helper __EXPORTED *nfct_helper_alloc(void) + { + return calloc(1, sizeof(struct nfct_helper)); + } +-EXPORT_SYMBOL(nfct_helper_alloc); + + /** + * nfct_helper_free - release one helper object + * \param nfct_helper pointer to the helper object + */ +-void nfct_helper_free(struct nfct_helper *h) ++void __EXPORTED nfct_helper_free(struct nfct_helper *h) + { + int i; + +@@ -119,7 +118,6 @@ void nfct_helper_free(struct nfct_helper *h) + } + free(h); + } +-EXPORT_SYMBOL(nfct_helper_free); + + /** + * nfct_helper_policy_alloc - allocate a new helper policy object +@@ -127,21 +125,19 @@ EXPORT_SYMBOL(nfct_helper_free); + * In case of success, this function returns a valid pointer, otherwise NULL + * s returned and errno is appropriately set. + */ +-struct nfct_helper_policy *nfct_helper_policy_alloc(void) ++struct nfct_helper_policy __EXPORTED *nfct_helper_policy_alloc(void) + { + return calloc(1, sizeof(struct nfct_helper_policy)); + } +-EXPORT_SYMBOL(nfct_helper_policy_alloc); + + /** + * nfct_helper_free - release one helper policy object + * \param nfct_helper pointer to the helper object + */ +-void nfct_helper_policy_free(struct nfct_helper_policy *p) ++void __EXPORTED nfct_helper_policy_free(struct nfct_helper_policy *p) + { + free(p); + } +-EXPORT_SYMBOL(nfct_helper_policy_free); + + /** + * nfct_helper_policy_attr_set - set one attribute of the helper object +@@ -149,7 +145,7 @@ EXPORT_SYMBOL(nfct_helper_policy_free); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-void ++void __EXPORTED + nfct_helper_policy_attr_set(struct nfct_helper_policy *p, + enum nfct_helper_policy_attr_type type, + const void *data) +@@ -170,7 +166,6 @@ nfct_helper_policy_attr_set(struct nfct_helper_policy *p, + break; + } + } +-EXPORT_SYMBOL(nfct_helper_policy_attr_set); + + /** + * nfct_helper_attr_set_str - set one attribute the helper object +@@ -178,23 +173,21 @@ EXPORT_SYMBOL(nfct_helper_policy_attr_set); + * \param type attribute type you want to set + * \param name string that will be used to set this attribute + */ +-void ++void __EXPORTED + nfct_helper_policy_attr_set_str(struct nfct_helper_policy *p, + enum nfct_helper_policy_attr_type type, + const char *name) + { + nfct_helper_policy_attr_set(p, type, name); + } +-EXPORT_SYMBOL(nfct_helper_policy_attr_set_str); + +-void ++void __EXPORTED + nfct_helper_policy_attr_set_u32(struct nfct_helper_policy *p, + enum nfct_helper_policy_attr_type type, + uint32_t value) + { + nfct_helper_policy_attr_set(p, type, &value); + } +-EXPORT_SYMBOL(nfct_helper_policy_attr_set_u32); + + /** + * nfct_helper_attr_set - set one attribute of the helper object +@@ -202,7 +195,7 @@ EXPORT_SYMBOL(nfct_helper_policy_attr_set_u32); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-void ++void __EXPORTED + nfct_helper_attr_set(struct nfct_helper *h, + enum nfct_helper_attr_type type, const void *data) + { +@@ -250,7 +243,6 @@ nfct_helper_attr_set(struct nfct_helper *h, + break; + } + } +-EXPORT_SYMBOL(nfct_helper_attr_set); + + /** + * nfct_helper_attr_set_str - set one attribute the helper object +@@ -258,44 +250,40 @@ EXPORT_SYMBOL(nfct_helper_attr_set); + * \param type attribute type you want to set + * \param name string that will be used to set this attribute + */ +-void ++void __EXPORTED + nfct_helper_attr_set_str(struct nfct_helper *nfct_helper, enum nfct_helper_attr_type type, + const char *name) + { + nfct_helper_attr_set(nfct_helper, type, name); + } +-EXPORT_SYMBOL(nfct_helper_attr_set_str); + +-void ++void __EXPORTED + nfct_helper_attr_set_u8(struct nfct_helper *nfct_helper, + enum nfct_helper_attr_type type, uint8_t value) + { + nfct_helper_attr_set(nfct_helper, type, &value); + } +-EXPORT_SYMBOL(nfct_helper_attr_set_u8); + +-void ++void __EXPORTED + nfct_helper_attr_set_u16(struct nfct_helper *nfct_helper, + enum nfct_helper_attr_type type, uint16_t value) + { + nfct_helper_attr_set(nfct_helper, type, &value); + } +-EXPORT_SYMBOL(nfct_helper_attr_set_u16); + +-void ++void __EXPORTED + nfct_helper_attr_set_u32(struct nfct_helper *nfct_helper, + enum nfct_helper_attr_type type, uint32_t value) + { + nfct_helper_attr_set(nfct_helper, type, &value); + } +-EXPORT_SYMBOL(nfct_helper_attr_set_u32); + + /** + * nfct_helper_attr_unset - unset one attribute the helper object + * \param nfct_helper pointer to the helper object + * \param type attribute type you want to set + */ +-void ++void __EXPORTED + nfct_helper_attr_unset(struct nfct_helper *nfct_helper, enum nfct_helper_attr_type type) + { + switch(type) { +@@ -307,7 +295,6 @@ nfct_helper_attr_unset(struct nfct_helper *nfct_helper, enum nfct_helper_attr_ty + break; + } + } +-EXPORT_SYMBOL(nfct_helper_attr_unset); + + /** + * nfct_helper_attr_get - get one attribute the helper object +@@ -317,8 +304,9 @@ EXPORT_SYMBOL(nfct_helper_attr_unset); + * This function returns a valid pointer to the attribute data. If a + * unsupported attribute is used, this returns NULL. + */ +-const void *nfct_helper_attr_get(struct nfct_helper *helper, +- enum nfct_helper_attr_type type) ++const void __EXPORTED * ++nfct_helper_attr_get(struct nfct_helper *helper, ++ enum nfct_helper_attr_type type) + { + const void *ret = NULL; + +@@ -358,7 +346,6 @@ const void *nfct_helper_attr_get(struct nfct_helper *helper, + } + return ret; + } +-EXPORT_SYMBOL(nfct_helper_attr_get); + + /** + * nfct_helper_attr_get_str - get one attribute the helper object +@@ -368,13 +355,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get); + * This function returns a valid pointer to the beginning of the string. + * If the attribute is unsupported, this returns NULL. + */ +-const char * ++const char __EXPORTED * + nfct_helper_attr_get_str(struct nfct_helper *nfct_helper, + enum nfct_helper_attr_type type) + { + return (const char *)nfct_helper_attr_get(nfct_helper, type); + } +-EXPORT_SYMBOL(nfct_helper_attr_get_str); + + /** + * nfct_helper_attr_get_u8 - get one attribute the helper object +@@ -384,12 +370,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get_str); + * This function returns a unsigned 8-bits integer. If the attribute is + * unsupported, this returns NULL. + */ +-uint8_t nfct_helper_attr_get_u8(struct nfct_helper *nfct_helper, +- enum nfct_helper_attr_type type) ++uint8_t __EXPORTED ++nfct_helper_attr_get_u8(struct nfct_helper *nfct_helper, ++ enum nfct_helper_attr_type type) + { + return *((uint8_t *)nfct_helper_attr_get(nfct_helper, type)); + } +-EXPORT_SYMBOL(nfct_helper_attr_get_u8); + + /** + * nfct_helper_attr_get_u16 - get one attribute the helper object +@@ -399,12 +385,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get_u8); + * This function returns a unsigned 16-bits integer. If the attribute is + * unsupported, this returns NULL. + */ +-uint16_t nfct_helper_attr_get_u16(struct nfct_helper *nfct_helper, +- enum nfct_helper_attr_type type) ++uint16_t __EXPORTED ++nfct_helper_attr_get_u16(struct nfct_helper *nfct_helper, ++ enum nfct_helper_attr_type type) + { + return *((uint16_t *)nfct_helper_attr_get(nfct_helper, type)); + } +-EXPORT_SYMBOL(nfct_helper_attr_get_u16); + + /** + * nfct_helper_attr_get_u32 - get one attribute the helper object +@@ -414,12 +400,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get_u16); + * This function returns a unsigned 32-bits integer. If the attribute is + * unsupported, this returns NULL. + */ +-uint32_t nfct_helper_attr_get_u32(struct nfct_helper *nfct_helper, +- enum nfct_helper_attr_type type) ++uint32_t __EXPORTED ++nfct_helper_attr_get_u32(struct nfct_helper *nfct_helper, ++ enum nfct_helper_attr_type type) + { + return *((uint32_t *)nfct_helper_attr_get(nfct_helper, type)); + } +-EXPORT_SYMBOL(nfct_helper_attr_get_u32); + + /** + * nfct_helper_snprintf - print helper object into one buffer +@@ -431,9 +417,10 @@ EXPORT_SYMBOL(nfct_helper_attr_get_u32); + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int nfct_helper_snprintf(char *buf, size_t size, +- struct nfct_helper *helper, +- unsigned int type, unsigned int flags) ++int __EXPORTED ++nfct_helper_snprintf(char *buf, size_t size, ++ struct nfct_helper *helper, ++ unsigned int type, unsigned int flags) + { + int ret; + +@@ -454,7 +441,6 @@ int nfct_helper_snprintf(char *buf, size_t size, + + return ret; + } +-EXPORT_SYMBOL(nfct_helper_snprintf); + + /** + * @} +@@ -490,7 +476,7 @@ EXPORT_SYMBOL(nfct_helper_snprintf); + * - Command NFNL_MSG_ACCT_DEL, to delete one specific nfct_helper object (if + * unused, otherwise you hit EBUSY). + */ +-struct nlmsghdr * ++struct nlmsghdr __EXPORTED * + nfct_helper_nlmsg_build_hdr(char *buf, uint8_t cmd, + uint16_t flags, uint32_t seq) + { +@@ -509,7 +495,6 @@ nfct_helper_nlmsg_build_hdr(char *buf, uint8_t cmd, + + return nlh; + } +-EXPORT_SYMBOL(nfct_helper_nlmsg_build_hdr); + + static void + nfct_helper_nlmsg_build_policy(struct nlmsghdr *nlh, +@@ -530,7 +515,7 @@ nfct_helper_nlmsg_build_policy(struct nlmsghdr *nlh, + * \param nlh: netlink message that you want to use to add the payload. + * \param nfct_helper: pointer to a helper object + */ +-void ++void __EXPORTED + nfct_helper_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfct_helper *h) + { + struct nlattr *nest; +@@ -593,7 +578,6 @@ nfct_helper_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfct_helper *h) + if (h->bitset & (1 << NFCTH_ATTR_STATUS)) + mnl_attr_put_u32(nlh, NFCTH_STATUS, ntohl(h->status)); + } +-EXPORT_SYMBOL(nfct_helper_nlmsg_build_payload); + + static int + nfct_helper_nlmsg_parse_tuple_cb(const struct nlattr *attr, void *data) +@@ -795,7 +779,7 @@ nfct_helper_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data) + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int ++int __EXPORTED + nfct_helper_nlmsg_parse_payload(const struct nlmsghdr *nlh, + struct nfct_helper *h) + { +@@ -832,7 +816,6 @@ nfct_helper_nlmsg_parse_payload(const struct nlmsghdr *nlh, + } + return 0; + } +-EXPORT_SYMBOL(nfct_helper_nlmsg_parse_payload); + + /** + * @} +-- +cgit v1.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch new file mode 100644 index 0000000000..2c606c832d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch @@ -0,0 +1,264 @@ +From d0c4e39d12f903e06db262656cff2e24d267bed7 Mon Sep 17 00:00:00 2001 +From: Kevin Cernekee <cernekee@chromium.org> +Date: Wed, 4 Jan 2017 14:30:25 -0800 +Subject: Use __EXPORTED rather than EXPORT_SYMBOL + +clang is sensitive to the ordering of +__attribute__((visibility("default"))) relative to the function +body. gcc is not. So if we try to re-declare an existing function +with default visibility, clang prints a warning and generates +a broken .so file in which nfct_timeout_* are not exported to library +callers. + +Move the attribute up into the function definition to make clang happy. + +Signed-off-by: Kevin Cernekee <cernekee@chromium.org> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- + doxygen.cfg.in | 2 +- + src/internal.h | 5 ++--- + src/libnetfilter_cttimeout.c | 44 +++++++++++++++++--------------------------- + 3 files changed, 20 insertions(+), 31 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index 8e5d449..09c3ce0 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = */.git/* .*.d +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL nfct_timeout _container_policy_cb ++EXCLUDE_SYMBOLS = nfct_timeout _container_policy_cb + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/src/internal.h b/src/internal.h +index 3a88d1a..5d78171 100644 +--- a/src/internal.h ++++ b/src/internal.h +@@ -3,10 +3,9 @@ + + #include "config.h" + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible ++# define __EXPORTED __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORTED + #endif + + #endif +diff --git a/src/libnetfilter_cttimeout.c b/src/libnetfilter_cttimeout.c +index 7844a1f..a0a7185 100644 +--- a/src/libnetfilter_cttimeout.c ++++ b/src/libnetfilter_cttimeout.c +@@ -187,7 +187,7 @@ struct nfct_timeout { + * In case of success, this function returns a valid pointer, otherwise NULL + * s returned and errno is appropriately set. + */ +-struct nfct_timeout *nfct_timeout_alloc(void) ++struct nfct_timeout __EXPORTED *nfct_timeout_alloc(void) + { + struct nfct_timeout *t; + +@@ -197,19 +197,17 @@ struct nfct_timeout *nfct_timeout_alloc(void) + + return t; + } +-EXPORT_SYMBOL(nfct_timeout_alloc); + + /** + * nfct_timeout_free - release one conntrack timeout object + * \param t pointer to the conntrack timeout object + */ +-void nfct_timeout_free(struct nfct_timeout *t) ++void __EXPORTED nfct_timeout_free(struct nfct_timeout *t) + { + if (t->timeout) + free(t->timeout); + free(t); + } +-EXPORT_SYMBOL(nfct_timeout_free); + + /** + * nfct_timeout_attr_set - set one attribute of the conntrack timeout object +@@ -217,7 +215,7 @@ EXPORT_SYMBOL(nfct_timeout_free); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-int ++int __EXPORTED + nfct_timeout_attr_set(struct nfct_timeout *t, uint32_t type, const void *data) + { + switch(type) { +@@ -236,7 +234,6 @@ nfct_timeout_attr_set(struct nfct_timeout *t, uint32_t type, const void *data) + t->attrset |= (1 << type); + return 0; + } +-EXPORT_SYMBOL(nfct_timeout_attr_set); + + /** + * nfct_timeout_attr_set_u8 - set one attribute of the conntrack timeout object +@@ -244,12 +241,11 @@ EXPORT_SYMBOL(nfct_timeout_attr_set); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-int ++int __EXPORTED + nfct_timeout_attr_set_u8(struct nfct_timeout *t, uint32_t type, uint8_t data) + { + return nfct_timeout_attr_set(t, type, &data); + } +-EXPORT_SYMBOL(nfct_timeout_attr_set_u8); + + /** + * nfct_timeout_attr_set_u16 - set one attribute of the conntrack timeout object +@@ -257,23 +253,21 @@ EXPORT_SYMBOL(nfct_timeout_attr_set_u8); + * \param type attribute type you want to set + * \param data pointer to data that will be used to set this attribute + */ +-int ++int __EXPORTED + nfct_timeout_attr_set_u16(struct nfct_timeout *t, uint32_t type, uint16_t data) + { + return nfct_timeout_attr_set(t, type, &data); + } +-EXPORT_SYMBOL(nfct_timeout_attr_set_u16); + + /** + * nfct_timeout_attr_unset - unset one attribute of the conntrack timeout object + * \param t pointer to the conntrack timeout object + * \param type attribute type you want to set + */ +-void nfct_timeout_attr_unset(struct nfct_timeout *t, uint32_t type) ++void __EXPORTED nfct_timeout_attr_unset(struct nfct_timeout *t, uint32_t type) + { + t->attrset &= ~(1 << type); + } +-EXPORT_SYMBOL(nfct_timeout_attr_unset); + + /** + * nfct_timeout_policy_attr_set_u32 - set one attribute of the policy +@@ -281,7 +275,7 @@ EXPORT_SYMBOL(nfct_timeout_attr_unset); + * \param type attribute type you want to set + * \param data data that will be used to set this attribute + */ +-int ++int __EXPORTED + nfct_timeout_policy_attr_set_u32(struct nfct_timeout *t, + uint32_t type, uint32_t data) + { +@@ -319,18 +313,17 @@ nfct_timeout_policy_attr_set_u32(struct nfct_timeout *t, + + return 0; + } +-EXPORT_SYMBOL(nfct_timeout_policy_attr_set_u32); + + /** + * nfct_timeout_policy_attr_unset - unset one attribute of the policy + * \param t pointer to the conntrack timeout object + * \param type attribute type you want to set + */ +-void nfct_timeout_policy_attr_unset(struct nfct_timeout *t, uint32_t type) ++void __EXPORTED ++nfct_timeout_policy_attr_unset(struct nfct_timeout *t, uint32_t type) + { + t->attrset &= ~(1 << type); + } +-EXPORT_SYMBOL(nfct_timeout_policy_attr_unset); + + /** + * nfct_timeout_policy_attr_to_name - get state name from protocol state number +@@ -340,7 +333,8 @@ EXPORT_SYMBOL(nfct_timeout_policy_attr_unset); + * This function returns NULL if unsupported protocol or state number is passed. + * Otherwise, a pointer to valid string is returned. + */ +-const char *nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state) ++const char __EXPORTED * ++nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state) + { + if (timeout_protocol[l4proto].state_to_name == NULL) { + printf("no array state name\n"); +@@ -354,7 +348,6 @@ const char *nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state) + + return timeout_protocol[l4proto].state_to_name[state]; + } +-EXPORT_SYMBOL(nfct_timeout_policy_attr_to_name); + + /** + * @} +@@ -438,8 +431,9 @@ nfct_timeout_snprintf_default(char *buf, size_t size, + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t, +- unsigned int type, unsigned int flags) ++int __EXPORTED ++nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t, ++ unsigned int type, unsigned int flags) + { + int ret = 0; + +@@ -454,7 +448,6 @@ int nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t, + + return ret; + } +-EXPORT_SYMBOL(nfct_timeout_snprintf); + + /** + * @} +@@ -477,7 +470,7 @@ EXPORT_SYMBOL(nfct_timeout_snprintf); + * - CTNL_MSG_TIMEOUT_GET: get conntrack timeout object. + * - CTNL_MSG_TIMEOUT_DEL: delete conntrack timeout object. + */ +-struct nlmsghdr * ++struct nlmsghdr __EXPORTED * + nfct_timeout_nlmsg_build_hdr(char *buf, uint8_t cmd, + uint16_t flags, uint32_t seq) + { +@@ -496,14 +489,13 @@ nfct_timeout_nlmsg_build_hdr(char *buf, uint8_t cmd, + + return nlh; + } +-EXPORT_SYMBOL(nfct_timeout_nlmsg_build_hdr); + + /** + * nfct_timeout_nlmsg_build_payload - build payload from ct timeout object + * \param nlh: netlink message that you want to use to add the payload. + * \param t: pointer to a conntrack timeout object + */ +-void ++void __EXPORTED + nfct_timeout_nlmsg_build_payload(struct nlmsghdr *nlh, + const struct nfct_timeout *t) + { +@@ -532,7 +524,6 @@ nfct_timeout_nlmsg_build_payload(struct nlmsghdr *nlh, + } + + } +-EXPORT_SYMBOL(nfct_timeout_nlmsg_build_payload); + + static int + timeout_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data) +@@ -629,7 +620,7 @@ timeout_parse_attr_data(struct nfct_timeout *t, const struct nlattr *nest) + * This function returns -1 in case that some mandatory attributes are + * missing. On sucess, it returns 0. + */ +-int ++int __EXPORTED + nfct_timeout_nlmsg_parse_payload(const struct nlmsghdr *nlh, + struct nfct_timeout *t) + { +@@ -654,7 +645,6 @@ nfct_timeout_nlmsg_parse_payload(const struct nlmsghdr *nlh, + } + return 0; + } +-EXPORT_SYMBOL(nfct_timeout_nlmsg_parse_payload); + + /** + * @} +-- +cgit v1.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/replace-VLAs-in-union.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/replace-VLAs-in-union.patch deleted file mode 100644 index 16e4af405d..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/files/replace-VLAs-in-union.patch +++ /dev/null @@ -1,89 +0,0 @@ -VLAs in structs and unions (non-PODs) is unsupported in non-gcc compilers -therefore convert it to not use VLAs instead use fixed arrays - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Pending -Index: libnetfilter_conntrack-1.0.4/src/conntrack/api.c -=================================================================== ---- libnetfilter_conntrack-1.0.4.orig/src/conntrack/api.c -+++ libnetfilter_conntrack-1.0.4/src/conntrack/api.c -@@ -954,16 +954,15 @@ int nfct_query(struct nfct_handle *h, - const enum nf_conntrack_query qt, - const void *data) - { -- size_t size = 4096; /* enough for now */ - union { -- char buffer[size]; -+ char buffer[4096]; - struct nfnlhdr req; - } u; - - assert(h != NULL); - assert(data != NULL); - -- if (__build_query_ct(h->nfnlssh_ct, qt, data, &u.req, size) == -1) -+ if (__build_query_ct(h->nfnlssh_ct, qt, data, &u.req, 4096) == -1) - return -1; - - return nfnl_query(h->nfnlh, &u.req.nlh); -@@ -986,16 +985,15 @@ int nfct_send(struct nfct_handle *h, - const enum nf_conntrack_query qt, - const void *data) - { -- size_t size = 4096; /* enough for now */ - union { -- char buffer[size]; -+ char buffer[4096]; - struct nfnlhdr req; - } u; - - assert(h != NULL); - assert(data != NULL); - -- if (__build_query_ct(h->nfnlssh_ct, qt, data, &u.req, size) == -1) -+ if (__build_query_ct(h->nfnlssh_ct, qt, data, &u.req, 4096) == -1) - return -1; - - return nfnl_send(h->nfnlh, &u.req.nlh); -Index: libnetfilter_conntrack-1.0.4/src/expect/api.c -=================================================================== ---- libnetfilter_conntrack-1.0.4.orig/src/expect/api.c -+++ libnetfilter_conntrack-1.0.4/src/expect/api.c -@@ -669,16 +669,15 @@ int nfexp_query(struct nfct_handle *h, - const enum nf_conntrack_query qt, - const void *data) - { -- size_t size = 4096; /* enough for now */ - union { -- char buffer[size]; -+ char buffer[4096]; - struct nfnlhdr req; - } u; - - assert(h != NULL); - assert(data != NULL); - -- if (__build_query_exp(h->nfnlssh_exp, qt, data, &u.req, size) == -1) -+ if (__build_query_exp(h->nfnlssh_exp, qt, data, &u.req, 4096) == -1) - return -1; - - return nfnl_query(h->nfnlh, &u.req.nlh); -@@ -701,16 +700,15 @@ int nfexp_send(struct nfct_handle *h, - const enum nf_conntrack_query qt, - const void *data) - { -- size_t size = 4096; /* enough for now */ - union { -- char buffer[size]; -+ char buffer[4096]; - struct nfnlhdr req; - } u; - - assert(h != NULL); - assert(data != NULL); - -- if (__build_query_exp(h->nfnlssh_exp, qt, data, &u.req, size) == -1) -+ if (__build_query_exp(h->nfnlssh_exp, qt, data, &u.req, 4096) == -1) - return -1; - - return nfnl_send(h->nfnlh, &u.req.nlh); diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb index 0d713033c1..974035ccc7 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb @@ -6,7 +6,9 @@ LICENSE = "LGPL-2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" DEPENDS = "libnfnetlink libmnl" -SRC_URI = "http://ftp.netfilter.org/pub/libnetfilter_acct/libnetfilter_acct-1.0.3.tar.bz2" +SRC_URI = "http://ftp.netfilter.org/pub/libnetfilter_acct/libnetfilter_acct-1.0.3.tar.bz2 \ + file://0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch \ +" SRC_URI[md5sum] = "814b2972b2f5c740ff87510bc109168b" SRC_URI[sha256sum] = "4250ceef3efe2034f4ac05906c3ee427db31b9b0a2df41b2744f4bf79a959a1a" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb index ecbc86ba71..e4e186bdbb 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.4.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb @@ -7,10 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" DEPENDS = "libnfnetlink libmnl" SRC_URI = "http://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-${PV}.tar.bz2;name=tar \ - file://replace-VLAs-in-union.patch \ " -SRC_URI[tar.md5sum] = "18cf80c4b339a3285e78822dbd4f08d7" -SRC_URI[tar.sha256sum] = "d9ec4a3caf49417f2b0a2d8d44249133e8c3ec78c757b7eb8c273f1cb6929c7d" +SRC_URI[tar.md5sum] = "7139c5f408dd9606ffecfd5dcda8175b" +SRC_URI[tar.sha256sum] = "efcc08021284e75f4d96d3581c5155a11f08fd63316b1938cbcb269c87f37feb" S = "${WORKDIR}/libnetfilter_conntrack-${PV}" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb index 3d37997266..92cb23d6e9 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb @@ -6,7 +6,9 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" DEPENDS = "libmnl" -SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cthelper/files/libnetfilter_cthelper-${PV}.tar.bz2;name=tar" +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cthelper/files/libnetfilter_cthelper-${PV}.tar.bz2;name=tar \ + file://libnetfilter-cthelper-visibility-hidden.patch \ +" SRC_URI[tar.md5sum] = "b2efab1a3a198a5add448960ba011acd" SRC_URI[tar.sha256sum] = "07618e71c4d9a6b6b3dc1986540486ee310a9838ba754926c7d14a17d8fccf3d" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb index dcf7485629..ff32f3409d 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb @@ -5,7 +5,9 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" DEPENDS = "libmnl" -SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cttimeout/files/libnetfilter_cttimeout-${PV}.tar.bz2;name=tar" +SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cttimeout/files/libnetfilter_cttimeout-${PV}.tar.bz2;name=tar \ + file://libnetfilter-cttimeout-visibility-hidden.patch \ +" SRC_URI[tar.md5sum] = "7697437fc9ebb6f6b83df56a633db7f9" SRC_URI[tar.sha256sum] = "aeab12754f557cba3ce2950a2029963d817490df7edb49880008b34d7ff8feba" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb index 30c9ae6bc4..2f627d458e 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb @@ -4,12 +4,12 @@ HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_log/index.html" SECTION = "libs" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -DEPENDS = "libnfnetlink" +DEPENDS = "libnfnetlink libmnl" +SRCREV = "ba196a97e810746e5660fe3f57c87c0ed0f2b324" +PV .= "+git${SRCPV}" -SRC_URI = "http://www.netfilter.org/projects/libnetfilter_log/files/libnetfilter_log-${PV}.tar.bz2;name=tar" -SRC_URI[tar.md5sum] = "2a4bb0654ae675a52d2e8d1c06090b94" -SRC_URI[tar.sha256sum] = "74e0fe75753dba3ac114531b5e73240452c789a3f3adccf5c51217da1d933b21" +SRC_URI = "git://git.netfilter.org/libnetfilter_log" -S = "${WORKDIR}/libnetfilter_log-${PV}" +S = "${WORKDIR}/git" inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb index ddf2aa5c48..754e11d999 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb @@ -6,10 +6,14 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" DEPENDS = "libnfnetlink libmnl" -SRC_URI = "http://www.netfilter.org/projects/libnetfilter_queue/files/libnetfilter_queue-${PV}.tar.bz2;name=tar" -SRC_URI[tar.md5sum] = "df09befac35cb215865b39a36c96a3fa" -SRC_URI[tar.sha256sum] = "838490eb5dbe358f9669823704982f5313a8d397111562373200203f93ac1a32" +PV .= "+git${SRCREV}" +SRCREV = "981025e103d887fb6a9c9bb49c74ec323108d098" -S = "${WORKDIR}/libnetfilter_queue-${PV}" +SRC_URI = "git://git.netfilter.org/libnetfilter_queue \ + file://0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch \ + file://0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch \ + " + +S = "${WORKDIR}/git" inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch new file mode 100644 index 0000000000..00d95cd79e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch @@ -0,0 +1,28 @@ +From 2e5f2b81fb8cbe0d1cd33e58caa19ac308e1f847 Mon Sep 17 00:00:00 2001 +From: Jan Engelhardt <jengelh@inai.de> +Date: Tue, 9 Oct 2012 15:59:48 +0200 +Subject: [PATCH 1/6] build: resolve automake-1.12 warnings + +am/ltlibrary.am: warning: 'libnfnetlink.la': linking libtool libraries +using a non-POSIX archiver requires 'AM_PROG_AR' in 'configure.ac' + +Signed-off-by: Jan Engelhardt <jengelh@inai.de> +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index ed549df..0926a1c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -7,6 +7,7 @@ AC_CANONICAL_HOST + + AM_INIT_AUTOMAKE([-Wall foreign subdir-objects + tar-pax no-dist-gzip dist-bzip2 1.6]) ++m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) + + dnl kernel style compile messages + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch new file mode 100644 index 0000000000..c2fb5e05a7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch @@ -0,0 +1,49 @@ +From 5e6b6e23a8b04475c5a9de7eddb4c18103932fe5 Mon Sep 17 00:00:00 2001 +From: Pablo Neira Ayuso <pablo@netfilter.org> +Date: Wed, 7 Aug 2013 20:53:57 +0200 +Subject: [PATCH 2/6] src: get source code license header in sync with current + licensing terms + +Since (3956761 license: upgrade to GPLv2+), we upgraded to GPLv2+, +propagate that changes to src/iftable.c and src/rtnl.c + +Reported-by: Thomas Woerner <twoerner@redhat.com> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- + src/iftable.c | 2 +- + src/rtnl.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/iftable.c b/src/iftable.c +index 0325335..5976ed8 100644 +--- a/src/iftable.c ++++ b/src/iftable.c +@@ -3,7 +3,7 @@ + * (C) 2004 by Astaro AG, written by Harald Welte <hwelte@astaro.com> + * (C) 2008 by Pablo Neira Ayuso <pablo@netfilter.org> + * +- * This software is Free Software and licensed under GNU GPLv2. ++ * This software is Free Software and licensed under GNU GPLv2+. + */ + + /* IFINDEX handling */ +diff --git a/src/rtnl.c b/src/rtnl.c +index 5ccb272..7b4ac7d 100644 +--- a/src/rtnl.c ++++ b/src/rtnl.c +@@ -1,10 +1,10 @@ + /* rtnl - rtnetlink utility functions + * + * (C) 2004 by Astaro AG, written by Harald Welte <hwelte@astaro.com> +- * ++ * + * Adapted to nfnetlink by Eric Leblond <eric@inl.fr> + * +- * This software is free software and licensed under GNU GPLv2. ++ * This software is free software and licensed under GNU GPLv2+. + * + */ + +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch new file mode 100644 index 0000000000..6cb7ed6fa9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch @@ -0,0 +1,27 @@ +From b259fe13826414c1bd5328a25c8d6d60e20e65f2 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias <gustavo@zacarias.com.ar> +Date: Tue, 10 Sep 2013 16:23:29 -0300 +Subject: [PATCH 3/6] configure: uclinux is also linux + +Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 0926a1c..b979772 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -18,7 +18,7 @@ AC_DISABLE_STATIC + AM_PROG_LIBTOOL + + case "$host" in +-*-*-linux*) ;; ++*-*-linux* | *-*-uclinux*) ;; + *) AC_MSG_ERROR([Linux only, dude!]);; + esac + +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch new file mode 100644 index 0000000000..cf3a841356 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch @@ -0,0 +1,39 @@ +From b142da8d2c9e2e2dfbe4e89e680dd124f6064ac8 Mon Sep 17 00:00:00 2001 +From: Pablo Neira Ayuso <pablo@netfilter.org> +Date: Mon, 3 Feb 2014 12:09:29 +0100 +Subject: [PATCH 4/6] libnfnetlink: initialize attribute padding to resolve + valgrind warnings + +==12195== Syscall param socketcall.sendto(msg) points to uninitialised byte(s) +==12195== at 0x51209C3: __sendto_nocancel (syscall-template.S:81) +==12195== by 0x53E4D12: nfnl_send (libnfnetlink.c:391) +==12195== by 0x53E6952: nfnl_query (libnfnetlink.c:1569) +==12195== by 0x4E344AF: __build_send_cfg_msg.isra.1 (libnetfilter_log.c:143) +==12195== by 0x4E34710: nflog_bind_group (libnetfilter_log.c:413) +==12195== by 0x400CB1: main (nfulnl_test.c:77) +==12195== Address 0x7fefff3e9 is on thread 1's stack + +This patch sets to zero the padding that is included to align the +attribute payload. + +Reported-by: Ivan Homoliak <xhomol11@gmail.com> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- + src/libnfnetlink.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/libnfnetlink.c b/src/libnfnetlink.c +index 4b2bcd0..398b7d7 100644 +--- a/src/libnfnetlink.c ++++ b/src/libnfnetlink.c +@@ -809,6 +809,7 @@ int nfnl_addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data, + nfa->nfa_type = type; + nfa->nfa_len = len; + memcpy(NFA_DATA(nfa), data, alen); ++ memset((uint8_t *)nfa + nfa->nfa_len, 0, NFA_ALIGN(alen) - alen); + n->nlmsg_len = (NLMSG_ALIGN(n->nlmsg_len) + NFA_ALIGN(len)); + return 0; + } +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch new file mode 100644 index 0000000000..383f0e8b3d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch @@ -0,0 +1,110 @@ +From b10c90a61a5fc46f2be5aeecb9c96e84178f7717 Mon Sep 17 00:00:00 2001 +From: Felix Janda <felix.janda@posteo.de> +Date: Sat, 16 May 2015 14:49:07 +0200 +Subject: [PATCH 5/6] include: Sync with kernel headers + +Signed-off-by: Felix Janda <felix.janda@posteo.de> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- + include/libnfnetlink/linux_nfnetlink.h | 44 ++++----------------------- + include/libnfnetlink/linux_nfnetlink_compat.h | 12 ++++---- + 2 files changed, 12 insertions(+), 44 deletions(-) + +diff --git a/include/libnfnetlink/linux_nfnetlink.h b/include/libnfnetlink/linux_nfnetlink.h +index 76a8550..44a38d6 100644 +--- a/include/libnfnetlink/linux_nfnetlink.h ++++ b/include/libnfnetlink/linux_nfnetlink.h +@@ -25,9 +25,9 @@ enum nfnetlink_groups { + /* General form of address family dependent message. + */ + struct nfgenmsg { +- u_int8_t nfgen_family; /* AF_xxx */ +- u_int8_t version; /* nfnetlink version */ +- u_int16_t res_id; /* resource id */ ++ __u8 nfgen_family; /* AF_xxx */ ++ __u8 version; /* nfnetlink version */ ++ __be16 res_id; /* resource id */ + }; + + #define NFNETLINK_V0 0 +@@ -46,40 +46,8 @@ struct nfgenmsg { + #define NFNL_SUBSYS_CTNETLINK_EXP 2 + #define NFNL_SUBSYS_QUEUE 3 + #define NFNL_SUBSYS_ULOG 4 +-#define NFNL_SUBSYS_COUNT 5 ++#define NFNL_SUBSYS_OSF 5 ++#define NFNL_SUBSYS_IPSET 6 ++#define NFNL_SUBSYS_COUNT 7 + +-#ifdef __KERNEL__ +- +-#include <linux/netlink.h> +-#include <linux/capability.h> +-#include <net/netlink.h> +- +-struct nfnl_callback +-{ +- int (*call)(struct sock *nl, struct sk_buff *skb, +- struct nlmsghdr *nlh, struct nlattr *cda[]); +- const struct nla_policy *policy; /* netlink attribute policy */ +- const u_int16_t attr_count; /* number of nlattr's */ +-}; +- +-struct nfnetlink_subsystem +-{ +- const char *name; +- __u8 subsys_id; /* nfnetlink subsystem ID */ +- __u8 cb_count; /* number of callbacks */ +- const struct nfnl_callback *cb; /* callback for individual types */ +-}; +- +-extern int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n); +-extern int nfnetlink_subsys_unregister(const struct nfnetlink_subsystem *n); +- +-extern int nfnetlink_has_listeners(unsigned int group); +-extern int nfnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, +- int echo); +-extern int nfnetlink_unicast(struct sk_buff *skb, u_int32_t pid, int flags); +- +-#define MODULE_ALIAS_NFNL_SUBSYS(subsys) \ +- MODULE_ALIAS("nfnetlink-subsys-" __stringify(subsys)) +- +-#endif /* __KERNEL__ */ + #endif /* _NFNETLINK_H */ +diff --git a/include/libnfnetlink/linux_nfnetlink_compat.h b/include/libnfnetlink/linux_nfnetlink_compat.h +index e145176..74b9e55 100644 +--- a/include/libnfnetlink/linux_nfnetlink_compat.h ++++ b/include/libnfnetlink/linux_nfnetlink_compat.h +@@ -1,6 +1,8 @@ + #ifndef _NFNETLINK_COMPAT_H + #define _NFNETLINK_COMPAT_H +-#ifndef __KERNEL__ ++ ++#include <linux/types.h> ++ + /* Old nfnetlink macros for userspace */ + + /* nfnetlink groups: Up to 32 maximum */ +@@ -18,10 +20,9 @@ + * ! nfnetlink use the same attributes methods. - J. Schulist. + */ + +-struct nfattr +-{ +- u_int16_t nfa_len; +- u_int16_t nfa_type; /* we use 15 bits for the type, and the highest ++struct nfattr { ++ __u16 nfa_len; ++ __u16 nfa_type; /* we use 15 bits for the type, and the highest + * bit to indicate whether the payload is nested */ + }; + +@@ -57,5 +58,4 @@ struct nfattr + + NLMSG_ALIGN(sizeof(struct nfgenmsg)))) + #define NFM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct nfgenmsg)) + +-#endif /* ! __KERNEL__ */ + #endif /* _NFNETLINK_COMPAT_H */ +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch new file mode 100644 index 0000000000..72c9987d1e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch @@ -0,0 +1,403 @@ +From 5cb589e246c91331ee6b3926b15f5e6cfc8ad95e Mon Sep 17 00:00:00 2001 +From: Felix Janda <felix.janda@posteo.de> +Date: Sat, 16 May 2015 14:59:57 +0200 +Subject: [PATCH 6/6] src: Use stdint types everywhere + +Signed-off-by: Felix Janda <felix.janda@posteo.de> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- + include/libnfnetlink/libnfnetlink.h | 25 ++++++------- + src/iftable.c | 8 ++--- + src/iftable.h | 4 +-- + src/libnfnetlink.c | 72 ++++++++++++++++++------------------- + src/rtnl.c | 4 +-- + src/rtnl.h | 2 +- + 6 files changed, 58 insertions(+), 57 deletions(-) + +diff --git a/include/libnfnetlink/libnfnetlink.h b/include/libnfnetlink/libnfnetlink.h +index 1d8c49d..cd0be3d 100644 +--- a/include/libnfnetlink/libnfnetlink.h ++++ b/include/libnfnetlink/libnfnetlink.h +@@ -15,6 +15,7 @@ + #define aligned_u64 unsigned long long __attribute__((aligned(8))) + #endif + ++#include <stdint.h> + #include <sys/socket.h> /* for sa_family_t */ + #include <linux/netlink.h> + #include <libnfnetlink/linux_nfnetlink.h> +@@ -55,7 +56,7 @@ struct nfnlhdr { + struct nfnl_callback { + int (*call)(struct nlmsghdr *nlh, struct nfattr *nfa[], void *data); + void *data; +- u_int16_t attr_count; ++ uint16_t attr_count; + }; + + struct nfnl_handle; +@@ -69,7 +70,7 @@ extern struct nfnl_handle *nfnl_open(void); + extern int nfnl_close(struct nfnl_handle *); + + extern struct nfnl_subsys_handle *nfnl_subsys_open(struct nfnl_handle *, +- u_int8_t, u_int8_t, ++ uint8_t, uint8_t, + unsigned int); + extern void nfnl_subsys_close(struct nfnl_subsys_handle *); + +@@ -88,8 +89,8 @@ extern int nfnl_sendiov(const struct nfnl_handle *nfnlh, + const struct iovec *iov, unsigned int num, + unsigned int flags); + extern void nfnl_fill_hdr(struct nfnl_subsys_handle *, struct nlmsghdr *, +- unsigned int, u_int8_t, u_int16_t, u_int16_t, +- u_int16_t); ++ unsigned int, uint8_t, uint16_t, uint16_t, ++ uint16_t); + extern __attribute__((deprecated)) int + nfnl_talk(struct nfnl_handle *, struct nlmsghdr *, pid_t, + unsigned, struct nlmsghdr *, +@@ -103,8 +104,8 @@ nfnl_listen(struct nfnl_handle *, + /* receiving */ + extern ssize_t nfnl_recv(const struct nfnl_handle *h, unsigned char *buf, size_t len); + extern int nfnl_callback_register(struct nfnl_subsys_handle *, +- u_int8_t type, struct nfnl_callback *cb); +-extern int nfnl_callback_unregister(struct nfnl_subsys_handle *, u_int8_t type); ++ uint8_t type, struct nfnl_callback *cb); ++extern int nfnl_callback_unregister(struct nfnl_subsys_handle *, uint8_t type); + extern int nfnl_handle_packet(struct nfnl_handle *, char *buf, int len); + + /* parsing */ +@@ -180,12 +181,12 @@ extern int nfnl_query(struct nfnl_handle *h, struct nlmsghdr *nlh); + + /* nfnl attribute handling functions */ + extern int nfnl_addattr_l(struct nlmsghdr *, int, int, const void *, int); +-extern int nfnl_addattr8(struct nlmsghdr *, int, int, u_int8_t); +-extern int nfnl_addattr16(struct nlmsghdr *, int, int, u_int16_t); +-extern int nfnl_addattr32(struct nlmsghdr *, int, int, u_int32_t); ++extern int nfnl_addattr8(struct nlmsghdr *, int, int, uint8_t); ++extern int nfnl_addattr16(struct nlmsghdr *, int, int, uint16_t); ++extern int nfnl_addattr32(struct nlmsghdr *, int, int, uint32_t); + extern int nfnl_nfa_addattr_l(struct nfattr *, int, int, const void *, int); +-extern int nfnl_nfa_addattr16(struct nfattr *, int, int, u_int16_t); +-extern int nfnl_nfa_addattr32(struct nfattr *, int, int, u_int32_t); ++extern int nfnl_nfa_addattr16(struct nfattr *, int, int, uint16_t); ++extern int nfnl_nfa_addattr32(struct nfattr *, int, int, uint32_t); + extern int nfnl_parse_attr(struct nfattr **, int, struct nfattr *, int); + #define nfnl_parse_nested(tb, max, nfa) \ + nfnl_parse_attr((tb), (max), NFA_DATA((nfa)), NFA_PAYLOAD((nfa))) +@@ -197,7 +198,7 @@ extern int nfnl_parse_attr(struct nfattr **, int, struct nfattr *, int); + ({ (tail)->nfa_len = (void *) NLMSG_TAIL(nlh) - (void *) tail; }) + + extern void nfnl_build_nfa_iovec(struct iovec *iov, struct nfattr *nfa, +- u_int16_t type, u_int32_t len, ++ uint16_t type, uint32_t len, + unsigned char *val); + extern unsigned int nfnl_rcvbufsiz(const struct nfnl_handle *h, + unsigned int size); +diff --git a/src/iftable.c b/src/iftable.c +index 5976ed8..157f97b 100644 +--- a/src/iftable.c ++++ b/src/iftable.c +@@ -27,10 +27,10 @@ + struct ifindex_node { + struct list_head head; + +- u_int32_t index; +- u_int32_t type; +- u_int32_t alen; +- u_int32_t flags; ++ uint32_t index; ++ uint32_t type; ++ uint32_t alen; ++ uint32_t flags; + char addr[8]; + char name[16]; + }; +diff --git a/src/iftable.h b/src/iftable.h +index 8df7f24..655df6b 100644 +--- a/src/iftable.h ++++ b/src/iftable.h +@@ -1,8 +1,8 @@ + #ifndef _IFTABLE_H + #define _IFTABLE_H + +-int iftable_delete(u_int32_t dst, u_int32_t mask, u_int32_t gw, u_int32_t oif); +-int iftable_insert(u_int32_t dst, u_int32_t mask, u_int32_t gw, u_int32_t oif); ++int iftable_delete(uint32_t dst, uint32_t mask, uint32_t gw, uint32_t oif); ++int iftable_insert(uint32_t dst, uint32_t mask, uint32_t gw, uint32_t oif); + + int iftable_init(void); + void iftable_fini(void); +diff --git a/src/libnfnetlink.c b/src/libnfnetlink.c +index 398b7d7..df57533 100644 +--- a/src/libnfnetlink.c ++++ b/src/libnfnetlink.c +@@ -72,9 +72,9 @@ + + struct nfnl_subsys_handle { + struct nfnl_handle *nfnlh; +- u_int32_t subscriptions; +- u_int8_t subsys_id; +- u_int8_t cb_count; ++ uint32_t subscriptions; ++ uint8_t subsys_id; ++ uint8_t cb_count; + struct nfnl_callback *cb; /* array of callbacks */ + }; + +@@ -86,11 +86,11 @@ struct nfnl_handle { + int fd; + struct sockaddr_nl local; + struct sockaddr_nl peer; +- u_int32_t subscriptions; +- u_int32_t seq; +- u_int32_t dump; +- u_int32_t rcv_buffer_size; /* for nfnl_catch */ +- u_int32_t flags; ++ uint32_t subscriptions; ++ uint32_t seq; ++ uint32_t dump; ++ uint32_t rcv_buffer_size; /* for nfnl_catch */ ++ uint32_t flags; + struct nlmsghdr *last_nlhdr; + struct nfnl_subsys_handle subsys[NFNL_MAX_SUBSYS+1]; + }; +@@ -145,7 +145,7 @@ unsigned int nfnl_portid(const struct nfnl_handle *h) + static int recalc_rebind_subscriptions(struct nfnl_handle *nfnlh) + { + int i, err; +- u_int32_t new_subscriptions = nfnlh->subscriptions; ++ uint32_t new_subscriptions = nfnlh->subscriptions; + + for (i = 0; i < NFNL_MAX_SUBSYS; i++) + new_subscriptions |= nfnlh->subsys[i].subscriptions; +@@ -273,8 +273,8 @@ void nfnl_set_rcv_buffer_size(struct nfnl_handle *h, unsigned int size) + * a valid address that points to a nfnl_subsys_handle structure is returned. + */ + struct nfnl_subsys_handle * +-nfnl_subsys_open(struct nfnl_handle *nfnlh, u_int8_t subsys_id, +- u_int8_t cb_count, u_int32_t subscriptions) ++nfnl_subsys_open(struct nfnl_handle *nfnlh, uint8_t subsys_id, ++ uint8_t cb_count, uint32_t subscriptions) + { + struct nfnl_subsys_handle *ssh; + +@@ -435,10 +435,10 @@ int nfnl_sendiov(const struct nfnl_handle *nfnlh, const struct iovec *iov, + */ + void nfnl_fill_hdr(struct nfnl_subsys_handle *ssh, + struct nlmsghdr *nlh, unsigned int len, +- u_int8_t family, +- u_int16_t res_id, +- u_int16_t msg_type, +- u_int16_t msg_flags) ++ uint8_t family, ++ uint16_t res_id, ++ uint16_t msg_type, ++ uint16_t msg_flags) + { + assert(ssh); + assert(nlh); +@@ -815,7 +815,7 @@ int nfnl_addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data, + } + + /** +- * nfnl_nfa_addattr_l - Add variable length attribute to struct nfattr ++ * nfnl_nfa_addattr_l - Add variable length attribute to struct nfattr + * + * @nfa: struct nfattr + * @maxlen: maximal length of nfattr buffer +@@ -849,14 +849,14 @@ int nfnl_nfa_addattr_l(struct nfattr *nfa, int maxlen, int type, + } + + /** +- * nfnl_addattr8 - Add u_int8_t attribute to nlmsghdr ++ * nfnl_addattr8 - Add uint8_t attribute to nlmsghdr + * + * @n: netlink message header to which attribute is to be added + * @maxlen: maximum length of netlink message header + * @type: type of new attribute + * @data: content of new attribute + */ +-int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data) ++int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, uint8_t data) + { + assert(n); + assert(maxlen > 0); +@@ -866,7 +866,7 @@ int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data) + } + + /** +- * nfnl_nfa_addattr16 - Add u_int16_t attribute to struct nfattr ++ * nfnl_nfa_addattr16 - Add uint16_t attribute to struct nfattr + * + * @nfa: struct nfattr + * @maxlen: maximal length of nfattr buffer +@@ -875,7 +875,7 @@ int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data) + * + */ + int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type, +- u_int16_t data) ++ uint16_t data) + { + assert(nfa); + assert(maxlen > 0); +@@ -885,7 +885,7 @@ int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type, + } + + /** +- * nfnl_addattr16 - Add u_int16_t attribute to nlmsghdr ++ * nfnl_addattr16 - Add uint16_t attribute to nlmsghdr + * + * @n: netlink message header to which attribute is to be added + * @maxlen: maximum length of netlink message header +@@ -894,7 +894,7 @@ int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type, + * + */ + int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type, +- u_int16_t data) ++ uint16_t data) + { + assert(n); + assert(maxlen > 0); +@@ -904,7 +904,7 @@ int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type, + } + + /** +- * nfnl_nfa_addattr32 - Add u_int32_t attribute to struct nfattr ++ * nfnl_nfa_addattr32 - Add uint32_t attribute to struct nfattr + * + * @nfa: struct nfattr + * @maxlen: maximal length of nfattr buffer +@@ -913,7 +913,7 @@ int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type, + * + */ + int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type, +- u_int32_t data) ++ uint32_t data) + { + assert(nfa); + assert(maxlen > 0); +@@ -923,7 +923,7 @@ int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type, + } + + /** +- * nfnl_addattr32 - Add u_int32_t attribute to nlmsghdr ++ * nfnl_addattr32 - Add uint32_t attribute to nlmsghdr + * + * @n: netlink message header to which attribute is to be added + * @maxlen: maximum length of netlink message header +@@ -932,7 +932,7 @@ int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type, + * + */ + int nfnl_addattr32(struct nlmsghdr *n, int maxlen, int type, +- u_int32_t data) ++ uint32_t data) + { + assert(n); + assert(maxlen > 0); +@@ -980,7 +980,7 @@ int nfnl_parse_attr(struct nfattr *tb[], int max, struct nfattr *nfa, int len) + * + */ + void nfnl_build_nfa_iovec(struct iovec *iov, struct nfattr *nfa, +- u_int16_t type, u_int32_t len, unsigned char *val) ++ uint16_t type, uint32_t len, unsigned char *val) + { + assert(iov); + assert(nfa); +@@ -1115,7 +1115,7 @@ struct nlmsghdr *nfnl_get_msg_next(struct nfnl_handle *h, + * appropiately. + */ + int nfnl_callback_register(struct nfnl_subsys_handle *ssh, +- u_int8_t type, struct nfnl_callback *cb) ++ uint8_t type, struct nfnl_callback *cb) + { + assert(ssh); + assert(cb); +@@ -1138,7 +1138,7 @@ int nfnl_callback_register(struct nfnl_subsys_handle *ssh, + * On sucess, 0 is returned. On error, -1 is returned and errno is + * set appropiately. + */ +-int nfnl_callback_unregister(struct nfnl_subsys_handle *ssh, u_int8_t type) ++int nfnl_callback_unregister(struct nfnl_subsys_handle *ssh, uint8_t type) + { + assert(ssh); + +@@ -1161,8 +1161,8 @@ int nfnl_check_attributes(const struct nfnl_handle *h, + assert(nfa); + + int min_len; +- u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); +- u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); ++ uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); ++ uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); + const struct nfnl_subsys_handle *ssh; + struct nfnl_callback *cb; + +@@ -1212,8 +1212,8 @@ static int __nfnl_handle_msg(struct nfnl_handle *h, struct nlmsghdr *nlh, + int len) + { + struct nfnl_subsys_handle *ssh; +- u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); +- u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); ++ uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); ++ uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); + int err = 0; + + if (subsys_id > NFNL_MAX_SUBSYS) +@@ -1243,7 +1243,7 @@ int nfnl_handle_packet(struct nfnl_handle *h, char *buf, int len) + { + + while (len >= NLMSG_SPACE(0)) { +- u_int32_t rlen; ++ uint32_t rlen; + struct nlmsghdr *nlh = (struct nlmsghdr *)buf; + + if (nlh->nlmsg_len < sizeof(struct nlmsghdr) +@@ -1285,8 +1285,8 @@ static int nfnl_is_error(struct nfnl_handle *h, struct nlmsghdr *nlh) + static int nfnl_step(struct nfnl_handle *h, struct nlmsghdr *nlh) + { + struct nfnl_subsys_handle *ssh; +- u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); +- u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); ++ uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type); ++ uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type); + + /* Is this an error message? */ + if (nfnl_is_error(h, nlh)) { +diff --git a/src/rtnl.c b/src/rtnl.c +index 7b4ac7d..284eecd 100644 +--- a/src/rtnl.c ++++ b/src/rtnl.c +@@ -30,7 +30,7 @@ + #define rtnl_log(x, ...) + + static inline struct rtnl_handler * +-find_handler(struct rtnl_handle *rtnl_handle, u_int16_t type) ++find_handler(struct rtnl_handle *rtnl_handle, uint16_t type) + { + struct rtnl_handler *h; + for (h = rtnl_handle->handlers; h; h = h->next) { +@@ -41,7 +41,7 @@ find_handler(struct rtnl_handle *rtnl_handle, u_int16_t type) + } + + static int call_handler(struct rtnl_handle *rtnl_handle, +- u_int16_t type, ++ uint16_t type, + struct nlmsghdr *hdr) + { + struct rtnl_handler *h = find_handler(rtnl_handle, type); +diff --git a/src/rtnl.h b/src/rtnl.h +index 0c403dc..2cb22a8 100644 +--- a/src/rtnl.h ++++ b/src/rtnl.h +@@ -7,7 +7,7 @@ + struct rtnl_handler { + struct rtnl_handler *next; + +- u_int16_t nlmsg_type; ++ uint16_t nlmsg_type; + int (*handlefn)(struct nlmsghdr *h, void *arg); + void *arg; + }; +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb index edd0f866ff..f7951ff8dd 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb @@ -11,7 +11,14 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -SRC_URI = "http://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-${PV}.tar.bz2;name=tar" +SRC_URI = "http://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-${PV}.tar.bz2;name=tar \ + file://0001-build-resolve-automake-1.12-warnings.patch \ + file://0002-src-get-source-code-license-header-in-sync-with-curr.patch \ + file://0003-configure-uclinux-is-also-linux.patch \ + file://0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch \ + file://0005-include-Sync-with-kernel-headers.patch \ + file://0006-src-Use-stdint-types-everywhere.patch \ + " SRC_URI[tar.md5sum] = "98927583d2016a9fb1936fed992e2c5e" SRC_URI[tar.sha256sum] = "f270e19de9127642d2a11589ef2ec97ef90a649a74f56cf9a96306b04817b51a" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch new file mode 100644 index 0000000000..e82b23813f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch @@ -0,0 +1,2949 @@ +From bd01f785da5222d0662be3182fe2650e1c12f43e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 10 Apr 2017 14:07:07 -0700 +Subject: [PATCH] Declare the define visivility attribute together + +clang ignores the visibility attribute if its not +defined before the definition. As a result these +symbols become hidden and consumers of this library +fail to link due to these missing symbols + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + doxygen.cfg.in | 2 +- + include/utils.h | 5 +-- + src/batch.c | 21 ++++------- + src/chain.c | 102 +++++++++++++++++--------------------------------- + src/common.c | 21 ++++------- + src/expr.c | 51 +++++++++---------------- + src/gen.c | 39 +++++++------------ + src/object.c | 99 ++++++++++++++++-------------------------------- + src/rule.c | 114 +++++++++++++++++++------------------------------------- + src/ruleset.c | 48 ++++++++---------------- + src/set.c | 96 ++++++++++++++++------------------------------- + src/set_elem.c | 72 ++++++++++++----------------------- + src/table.c | 90 +++++++++++++++----------------------------- + src/trace.c | 27 +++++--------- + src/udata.c | 48 ++++++++---------------- + 15 files changed, 279 insertions(+), 556 deletions(-) + +diff --git a/doxygen.cfg.in b/doxygen.cfg.in +index 23fcad4..e49f28d 100644 +--- a/doxygen.cfg.in ++++ b/doxygen.cfg.in +@@ -72,7 +72,7 @@ RECURSIVE = YES + EXCLUDE = + EXCLUDE_SYMLINKS = NO + EXCLUDE_PATTERNS = */.git/* .*.d +-EXCLUDE_SYMBOLS = EXPORT_SYMBOL ++EXCLUDE_SYMBOLS = + EXAMPLE_PATH = + EXAMPLE_PATTERNS = + EXAMPLE_RECURSIVE = NO +diff --git a/include/utils.h b/include/utils.h +index 2f5cf34..ff8207e 100644 +--- a/include/utils.h ++++ b/include/utils.h +@@ -9,10 +9,9 @@ + + #include "config.h" + #ifdef HAVE_VISIBILITY_HIDDEN +-# define __visible __attribute__((visibility("default"))) +-# define EXPORT_SYMBOL(x) typeof(x) (x) __visible; ++# define __EXPORTED __attribute__((visibility("default"))) + #else +-# define EXPORT_SYMBOL ++# define __EXPORT + #endif + + #define __noreturn __attribute__((__noreturn__)) +diff --git a/src/batch.c b/src/batch.c +index 5ee3fd7..3bedd26 100644 +--- a/src/batch.c ++++ b/src/batch.c +@@ -57,7 +57,7 @@ static void nftnl_batch_add_page(struct nftnl_batch_page *page, + list_add_tail(&page->head, &batch->page_list); + } + +-struct nftnl_batch *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size) ++struct nftnl_batch __EXPORTED *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size) + { + struct nftnl_batch *batch; + struct nftnl_batch_page *page; +@@ -80,9 +80,8 @@ err1: + free(batch); + return NULL; + } +-EXPORT_SYMBOL(nftnl_batch_alloc); + +-void nftnl_batch_free(struct nftnl_batch *batch) ++void __EXPORTED nftnl_batch_free(struct nftnl_batch *batch) + { + struct nftnl_batch_page *page, *next; + +@@ -94,9 +93,8 @@ void nftnl_batch_free(struct nftnl_batch *batch) + + free(batch); + } +-EXPORT_SYMBOL(nftnl_batch_free); + +-int nftnl_batch_update(struct nftnl_batch *batch) ++int __EXPORTED nftnl_batch_update(struct nftnl_batch *batch) + { + struct nftnl_batch_page *page; + struct nlmsghdr *last_nlh; +@@ -119,21 +117,18 @@ int nftnl_batch_update(struct nftnl_batch *batch) + err1: + return -1; + } +-EXPORT_SYMBOL(nftnl_batch_update); + +-void *nftnl_batch_buffer(struct nftnl_batch *batch) ++void __EXPORTED *nftnl_batch_buffer(struct nftnl_batch *batch) + { + return mnl_nlmsg_batch_current(batch->current_page->batch); + } +-EXPORT_SYMBOL(nftnl_batch_buffer); + +-uint32_t nftnl_batch_buffer_len(struct nftnl_batch *batch) ++uint32_t __EXPORTED nftnl_batch_buffer_len(struct nftnl_batch *batch) + { + return mnl_nlmsg_batch_size(batch->current_page->batch); + } +-EXPORT_SYMBOL(nftnl_batch_buffer_len); + +-int nftnl_batch_iovec_len(struct nftnl_batch *batch) ++int __EXPORTED nftnl_batch_iovec_len(struct nftnl_batch *batch) + { + int num_pages = batch->num_pages; + +@@ -143,9 +138,8 @@ int nftnl_batch_iovec_len(struct nftnl_batch *batch) + + return num_pages; + } +-EXPORT_SYMBOL(nftnl_batch_iovec_len); + +-void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, ++void __EXPORTED nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, + uint32_t iovlen) + { + struct nftnl_batch_page *page; +@@ -160,4 +154,3 @@ void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov, + i++; + } + } +-EXPORT_SYMBOL(nftnl_batch_iovec); +diff --git a/src/chain.c b/src/chain.c +index 29860c5..362fa0d 100644 +--- a/src/chain.c ++++ b/src/chain.c +@@ -87,13 +87,12 @@ static const char *nftnl_hooknum2str(int family, int hooknum) + return "unknown"; + } + +-struct nftnl_chain *nftnl_chain_alloc(void) ++struct nftnl_chain __EXPORTED *nftnl_chain_alloc(void) + { + return calloc(1, sizeof(struct nftnl_chain)); + } +-EXPORT_SYMBOL(nftnl_chain_alloc); + +-void nftnl_chain_free(const struct nftnl_chain *c) ++void __EXPORTED nftnl_chain_free(const struct nftnl_chain *c) + { + if (c->flags & (1 << NFTNL_CHAIN_NAME)) + xfree(c->name); +@@ -105,15 +104,13 @@ void nftnl_chain_free(const struct nftnl_chain *c) + xfree(c->dev); + xfree(c); + } +-EXPORT_SYMBOL(nftnl_chain_free); + +-bool nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr) ++bool __EXPORTED nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr) + { + return c->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_chain_is_set); + +-void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) ++void __EXPORTED nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) + { + if (!(c->flags & (1 << attr))) + return; +@@ -147,7 +144,6 @@ void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr) + + c->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_chain_unset); + + static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = { + [NFTNL_CHAIN_HOOKNUM] = sizeof(uint32_t), +@@ -159,7 +155,7 @@ static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = { + [NFTNL_CHAIN_FAMILY] = sizeof(uint32_t), + }; + +-int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr, ++int __EXPORTED nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr, + const void *data, uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_CHAIN_MAX); +@@ -226,45 +222,38 @@ int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr, + c->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_chain_set_data); + +-void nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data) ++void __EXPORTED nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data) + { + nftnl_chain_set_data(c, attr, data, nftnl_chain_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_chain_set); + +-void nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data) ++void __EXPORTED nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data) + { + nftnl_chain_set_data(c, attr, &data, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_chain_set_u32); + +-void nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data) ++void __EXPORTED nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data) + { + nftnl_chain_set_data(c, attr, &data, sizeof(int32_t)); + } +-EXPORT_SYMBOL(nftnl_chain_set_s32); + +-void nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data) ++void __EXPORTED nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data) + { + nftnl_chain_set_data(c, attr, &data, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_chain_set_u64); + +-void nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data) ++void __EXPORTED nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data) + { + nftnl_chain_set_data(c, attr, &data, sizeof(uint8_t)); + } +-EXPORT_SYMBOL(nftnl_chain_set_u8); + +-int nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str) ++int __EXPORTED nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str) + { + return nftnl_chain_set_data(c, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_chain_set_str); + +-const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr, ++const void __EXPORTED *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr, + uint32_t *data_len) + { + if (!(c->flags & (1 << attr))) +@@ -310,22 +299,19 @@ const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_chain_get_data); + +-const void *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr) ++const void __EXPORTED *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + return nftnl_chain_get_data(c, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_chain_get); + +-const char *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr) ++const char __EXPORTED *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr) + { + return nftnl_chain_get(c, attr); + } +-EXPORT_SYMBOL(nftnl_chain_get_str); + +-uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr) ++uint32_t __EXPORTED nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + const uint32_t *val = nftnl_chain_get_data(c, attr, &data_len); +@@ -334,9 +320,8 @@ uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_chain_get_u32); + +-int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr) ++int32_t __EXPORTED nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + const int32_t *val = nftnl_chain_get_data(c, attr, &data_len); +@@ -345,9 +330,8 @@ int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_chain_get_s32); + +-uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr) ++uint64_t __EXPORTED nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + const uint64_t *val = nftnl_chain_get_data(c, attr, &data_len); +@@ -356,9 +340,8 @@ uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_chain_get_u64); + +-uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr) ++uint8_t __EXPORTED nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr) + { + uint32_t data_len; + const uint8_t *val = nftnl_chain_get_data(c, attr, &data_len); +@@ -367,9 +350,8 @@ uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_chain_get_u8); + +-void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c) ++void __EXPORTED nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c) + { + if (c->flags & (1 << NFTNL_CHAIN_TABLE)) + mnl_attr_put_strz(nlh, NFTA_CHAIN_TABLE, c->table); +@@ -404,7 +386,6 @@ void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_ch + if (c->flags & (1 << NFTNL_CHAIN_TYPE)) + mnl_attr_put_strz(nlh, NFTA_CHAIN_TYPE, c->type); + } +-EXPORT_SYMBOL(nftnl_chain_nlmsg_build_payload); + + static int nftnl_chain_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -529,7 +510,7 @@ static int nftnl_chain_parse_hook(struct nlattr *attr, struct nftnl_chain *c) + return 0; + } + +-int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c) ++int __EXPORTED nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c) + { + struct nlattr *tb[NFTA_CHAIN_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -590,7 +571,6 @@ int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c) + + return ret; + } +-EXPORT_SYMBOL(nftnl_chain_nlmsg_parse); + + static inline int nftnl_str2hooknum(int family, const char *hook) + { +@@ -732,19 +712,17 @@ static int nftnl_chain_do_parse(struct nftnl_chain *c, enum nftnl_parse_type typ + return ret; + } + +-int nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type, ++int __EXPORTED nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_chain_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_chain_parse); + +-int nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type, ++int __EXPORTED nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_chain_do_parse(c, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_chain_parse_file); + + static int nftnl_chain_export(char *buf, size_t size, + const struct nftnl_chain *c, int type) +@@ -841,13 +819,12 @@ static int nftnl_chain_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c, ++int __EXPORTED nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c, + uint32_t type, uint32_t flags) + { + return nftnl_chain_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_chain_snprintf); + + static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -855,19 +832,18 @@ static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c, + return nftnl_chain_snprintf(buf, size, c, type, flags); + } + +-int nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type, ++int __EXPORTED nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags, + nftnl_chain_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_chain_fprintf); + + struct nftnl_chain_list { + struct list_head list; + }; + +-struct nftnl_chain_list *nftnl_chain_list_alloc(void) ++struct nftnl_chain_list __EXPORTED *nftnl_chain_list_alloc(void) + { + struct nftnl_chain_list *list; + +@@ -879,9 +855,8 @@ struct nftnl_chain_list *nftnl_chain_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_chain_list_alloc); + +-void nftnl_chain_list_free(struct nftnl_chain_list *list) ++void __EXPORTED nftnl_chain_list_free(struct nftnl_chain_list *list) + { + struct nftnl_chain *r, *tmp; + +@@ -891,33 +866,28 @@ void nftnl_chain_list_free(struct nftnl_chain_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_chain_list_free); + +-int nftnl_chain_list_is_empty(const struct nftnl_chain_list *list) ++int __EXPORTED nftnl_chain_list_is_empty(const struct nftnl_chain_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_chain_list_is_empty); + +-void nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list) ++void __EXPORTED nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list) + { + list_add(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_chain_list_add); + +-void nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list) ++void __EXPORTED nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list) + { + list_add_tail(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_chain_list_add_tail); + +-void nftnl_chain_list_del(struct nftnl_chain *r) ++void __EXPORTED nftnl_chain_list_del(struct nftnl_chain *r) + { + list_del(&r->head); + } +-EXPORT_SYMBOL(nftnl_chain_list_del); + +-int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, ++int __EXPORTED nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, + int (*cb)(struct nftnl_chain *r, void *data), + void *data) + { +@@ -931,14 +901,13 @@ int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_chain_list_foreach); + + struct nftnl_chain_list_iter { + const struct nftnl_chain_list *list; + struct nftnl_chain *cur; + }; + +-struct nftnl_chain_list_iter * ++struct nftnl_chain_list_iter __EXPORTED * + nftnl_chain_list_iter_create(const struct nftnl_chain_list *l) + { + struct nftnl_chain_list_iter *iter; +@@ -955,9 +924,8 @@ nftnl_chain_list_iter_create(const struct nftnl_chain_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_chain_list_iter_create); + +-struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter) ++struct nftnl_chain __EXPORTED *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter) + { + struct nftnl_chain *r = iter->cur; + +@@ -971,10 +939,8 @@ struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *ite + + return r; + } +-EXPORT_SYMBOL(nftnl_chain_list_iter_next); + +-void nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter) ++void __EXPORTED nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_chain_list_iter_destroy); +diff --git a/src/common.c b/src/common.c +index a95883c..68bce2e 100644 +--- a/src/common.c ++++ b/src/common.c +@@ -43,15 +43,14 @@ static struct nlmsghdr *__nftnl_nlmsg_build_hdr(char *buf, uint16_t type, + return nlh; + } + +-struct nlmsghdr *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family, ++struct nlmsghdr __EXPORTED *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family, + uint16_t flags, uint32_t seq) + { + return __nftnl_nlmsg_build_hdr(buf, (NFNL_SUBSYS_NFTABLES << 8) | type, + family, flags, seq, 0); + } +-EXPORT_SYMBOL(nftnl_nlmsg_build_hdr); + +-struct nftnl_parse_err *nftnl_parse_err_alloc(void) ++struct nftnl_parse_err __EXPORTED *nftnl_parse_err_alloc(void) + { + struct nftnl_parse_err *err; + +@@ -63,15 +62,13 @@ struct nftnl_parse_err *nftnl_parse_err_alloc(void) + + return err; + } +-EXPORT_SYMBOL(nftnl_parse_err_alloc); + +-void nftnl_parse_err_free(struct nftnl_parse_err *err) ++void __EXPORTED nftnl_parse_err_free(struct nftnl_parse_err *err) + { + xfree(err); + } +-EXPORT_SYMBOL(nftnl_parse_err_free); + +-int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err) ++int __EXPORTED nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err) + { + switch (err->error) { + case NFTNL_PARSE_EBADINPUT: +@@ -89,7 +86,6 @@ int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err) + return fprintf(stderr, "%s: Undefined error\n", msg); + } + } +-EXPORT_SYMBOL(nftnl_parse_perror); + + int nftnl_cmd_header_snprintf(char *buf, size_t size, uint32_t cmd, uint32_t type, + uint32_t flags) +@@ -165,21 +161,19 @@ int nftnl_cmd_footer_fprintf(FILE *fp, uint32_t cmd, uint32_t type, + nftnl_cmd_footer_fprintf_cb); + } + +-struct nlmsghdr *nftnl_batch_begin(char *buf, uint32_t seq) ++struct nlmsghdr __EXPORTED *nftnl_batch_begin(char *buf, uint32_t seq) + { + return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_BEGIN, AF_UNSPEC, + 0, seq, NFNL_SUBSYS_NFTABLES); + } +-EXPORT_SYMBOL(nftnl_batch_begin); + +-struct nlmsghdr *nftnl_batch_end(char *buf, uint32_t seq) ++struct nlmsghdr __EXPORTED *nftnl_batch_end(char *buf, uint32_t seq) + { + return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_END, AF_UNSPEC, + 0, seq, NFNL_SUBSYS_NFTABLES); + } +-EXPORT_SYMBOL(nftnl_batch_end); + +-int nftnl_batch_is_supported(void) ++int __EXPORTED nftnl_batch_is_supported(void) + { + struct mnl_socket *nl; + struct mnl_nlmsg_batch *b; +@@ -236,4 +230,3 @@ err: + mnl_nlmsg_batch_stop(b); + return -1; + } +-EXPORT_SYMBOL(nftnl_batch_is_supported); +diff --git a/src/expr.c b/src/expr.c +index 10ba2c4..c7eb2b4 100644 +--- a/src/expr.c ++++ b/src/expr.c +@@ -24,7 +24,7 @@ + + #include <libnftnl/expr.h> + +-struct nftnl_expr *nftnl_expr_alloc(const char *name) ++struct nftnl_expr __EXPORTED *nftnl_expr_alloc(const char *name) + { + struct nftnl_expr *expr; + struct expr_ops *ops; +@@ -43,24 +43,21 @@ struct nftnl_expr *nftnl_expr_alloc(const char *name) + + return expr; + } +-EXPORT_SYMBOL(nftnl_expr_alloc); + +-void nftnl_expr_free(const struct nftnl_expr *expr) ++void __EXPORTED nftnl_expr_free(const struct nftnl_expr *expr) + { + if (expr->ops->free) + expr->ops->free(expr); + + xfree(expr); + } +-EXPORT_SYMBOL(nftnl_expr_free); + +-bool nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type) ++bool __EXPORTED nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type) + { + return expr->flags & (1 << type); + } +-EXPORT_SYMBOL(nftnl_expr_is_set); + +-int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type, ++int __EXPORTED nftnl_expr_set(struct nftnl_expr *expr, uint16_t type, + const void *data, uint32_t data_len) + { + switch(type) { +@@ -73,43 +70,37 @@ int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type, + expr->flags |= (1 << type); + return 0; + } +-EXPORT_SYMBOL(nftnl_expr_set); + +-void ++void __EXPORTED + nftnl_expr_set_u8(struct nftnl_expr *expr, uint16_t type, uint8_t data) + { + nftnl_expr_set(expr, type, &data, sizeof(uint8_t)); + } +-EXPORT_SYMBOL(nftnl_expr_set_u8); + +-void ++void __EXPORTED + nftnl_expr_set_u16(struct nftnl_expr *expr, uint16_t type, uint16_t data) + { + nftnl_expr_set(expr, type, &data, sizeof(uint16_t)); + } +-EXPORT_SYMBOL(nftnl_expr_set_u16); + +-void ++void __EXPORTED + nftnl_expr_set_u32(struct nftnl_expr *expr, uint16_t type, uint32_t data) + { + nftnl_expr_set(expr, type, &data, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_expr_set_u32); + +-void ++void __EXPORTED + nftnl_expr_set_u64(struct nftnl_expr *expr, uint16_t type, uint64_t data) + { + nftnl_expr_set(expr, type, &data, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_expr_set_u64); + +-int nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str) ++int __EXPORTED nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str) + { + return nftnl_expr_set(expr, type, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_expr_set_str); + +-const void *nftnl_expr_get(const struct nftnl_expr *expr, ++const void __EXPORTED *nftnl_expr_get(const struct nftnl_expr *expr, + uint16_t type, uint32_t *data_len) + { + const void *ret; +@@ -129,9 +120,8 @@ const void *nftnl_expr_get(const struct nftnl_expr *expr, + + return ret; + } +-EXPORT_SYMBOL(nftnl_expr_get); + +-uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type) ++uint8_t __EXPORTED nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type) + { + const void *data; + uint32_t data_len; +@@ -145,9 +135,8 @@ uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type) + + return *((uint8_t *)data); + } +-EXPORT_SYMBOL(nftnl_expr_get_u8); + +-uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type) ++uint16_t __EXPORTED nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type) + { + const void *data; + uint32_t data_len; +@@ -161,9 +150,8 @@ uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type) + + return *((uint16_t *)data); + } +-EXPORT_SYMBOL(nftnl_expr_get_u16); + +-uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type) ++uint32_t __EXPORTED nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type) + { + const void *data; + uint32_t data_len; +@@ -177,9 +165,8 @@ uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type) + + return *((uint32_t *)data); + } +-EXPORT_SYMBOL(nftnl_expr_get_u32); + +-uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type) ++uint64_t __EXPORTED nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type) + { + const void *data; + uint32_t data_len; +@@ -193,17 +180,15 @@ uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type) + + return *((uint64_t *)data); + } +-EXPORT_SYMBOL(nftnl_expr_get_u64); + +-const char *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type) ++const char __EXPORTED *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type) + { + uint32_t data_len; + + return (const char *)nftnl_expr_get(expr, type, &data_len); + } +-EXPORT_SYMBOL(nftnl_expr_get_str); + +-bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2) ++bool __EXPORTED nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2) + { + if (e1->flags != e2->flags || + strcmp(e1->ops->name, e2->ops->name) != 0) +@@ -211,7 +196,6 @@ bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2) + + return e1->ops->cmp(e1, e2); + } +-EXPORT_SYMBOL(nftnl_expr_cmp); + + void nftnl_expr_build_payload(struct nlmsghdr *nlh, struct nftnl_expr *expr) + { +@@ -275,7 +259,7 @@ err1: + return NULL; + } + +-int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, ++int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, + uint32_t type, uint32_t flags) + { + int ret; +@@ -289,4 +273,3 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr, + + return offset; + } +-EXPORT_SYMBOL(nftnl_expr_snprintf); +diff --git a/src/gen.c b/src/gen.c +index 213562e..8b45caa 100644 +--- a/src/gen.c ++++ b/src/gen.c +@@ -29,25 +29,22 @@ struct nftnl_gen { + uint32_t flags; + }; + +-struct nftnl_gen *nftnl_gen_alloc(void) ++struct nftnl_gen __EXPORTED *nftnl_gen_alloc(void) + { + return calloc(1, sizeof(struct nftnl_gen)); + } +-EXPORT_SYMBOL(nftnl_gen_alloc); + +-void nftnl_gen_free(const struct nftnl_gen *gen) ++void __EXPORTED nftnl_gen_free(const struct nftnl_gen *gen) + { + xfree(gen); + } +-EXPORT_SYMBOL(nftnl_gen_free); + +-bool nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr) ++bool __EXPORTED nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr) + { + return gen->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_gen_is_set); + +-void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr) ++void __EXPORTED nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr) + { + if (!(gen->flags & (1 << attr))) + return; +@@ -58,13 +55,12 @@ void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr) + } + gen->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_gen_unset); + + static uint32_t nftnl_gen_validate[NFTNL_GEN_MAX + 1] = { + [NFTNL_GEN_ID] = sizeof(uint32_t), + }; + +-int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr, ++int __EXPORTED nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr, + const void *data, uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_GEN_MAX); +@@ -78,21 +74,18 @@ int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr, + gen->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_gen_set_data); + +-int nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data) ++int __EXPORTED nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data) + { + return nftnl_gen_set_data(gen, attr, data, nftnl_gen_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_gen_set); + +-void nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val) + { + nftnl_gen_set_data(gen, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_gen_set_u32); + +-const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr, ++const void __EXPORTED *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr, + uint32_t *data_len) + { + if (!(gen->flags & (1 << attr))) +@@ -105,21 +98,18 @@ const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_gen_get_data); + +-const void *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr) ++const void __EXPORTED *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr) + { + uint32_t data_len; + return nftnl_gen_get_data(gen, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_gen_get); + +-uint32_t nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr) ++uint32_t __EXPORTED nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr) + { + const void *ret = nftnl_gen_get(gen, attr); + return ret == NULL ? 0 : *((uint32_t *)ret); + } +-EXPORT_SYMBOL(nftnl_gen_get_u32); + + static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -140,7 +130,7 @@ static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data) + return MNL_CB_OK; + } + +-int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen) ++int __EXPORTED nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen) + { + struct nlattr *tb[NFTA_GEN_MAX + 1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -154,7 +144,6 @@ int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen) + } + return 0; + } +-EXPORT_SYMBOL(nftnl_gen_nlmsg_parse); + + static int nftnl_gen_snprintf_default(char *buf, size_t size, + const struct nftnl_gen *gen) +@@ -186,13 +175,12 @@ static int nftnl_gen_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen, ++int __EXPORTED nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen, + uint32_t type, uint32_t flags) + {; + return nftnl_gen_cmd_snprintf(buf, size, gen, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_gen_snprintf); + + static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -200,10 +188,9 @@ static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen, + return nftnl_gen_snprintf(buf, size, gen, type, flags); + } + +-int nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type, ++int __EXPORTED nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, gen, NFTNL_CMD_UNSPEC, type, flags, + nftnl_gen_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_gen_fprintf); +diff --git a/src/object.c b/src/object.c +index e1a5ac4..d409c6d 100644 +--- a/src/object.c ++++ b/src/object.c +@@ -39,13 +39,12 @@ static struct obj_ops *nftnl_obj_ops_lookup(uint32_t type) + return obj_ops[type]; + } + +-struct nftnl_obj *nftnl_obj_alloc(void) ++struct nftnl_obj __EXPORTED *nftnl_obj_alloc(void) + { + return calloc(1, sizeof(struct nftnl_obj)); + } +-EXPORT_SYMBOL(nftnl_obj_alloc); + +-void nftnl_obj_free(const struct nftnl_obj *obj) ++void __EXPORTED nftnl_obj_free(const struct nftnl_obj *obj) + { + if (obj->flags & (1 << NFTNL_OBJ_TABLE)) + xfree(obj->table); +@@ -54,20 +53,18 @@ void nftnl_obj_free(const struct nftnl_obj *obj) + + xfree(obj); + } +-EXPORT_SYMBOL(nftnl_obj_free); + +-bool nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr) ++bool __EXPORTED nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr) + { + return obj->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_obj_is_set); + + static uint32_t nftnl_obj_validate[NFTNL_OBJ_MAX + 1] = { + [NFTNL_OBJ_FAMILY] = sizeof(uint32_t), + [NFTNL_OBJ_USE] = sizeof(uint32_t), + }; + +-void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr, ++void __EXPORTED nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr, + const void *data, uint32_t data_len) + { + if (attr < NFTNL_OBJ_MAX) +@@ -100,45 +97,38 @@ void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr, + } + obj->flags |= (1 << attr); + } +-EXPORT_SYMBOL(nftnl_obj_set_data); + +-void nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data) ++void __EXPORTED nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data) + { + nftnl_obj_set_data(obj, attr, data, nftnl_obj_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_obj_set); + +-void nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val) ++void __EXPORTED nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val) + { + nftnl_obj_set_data(obj, attr, &val, sizeof(uint8_t)); + } +-EXPORT_SYMBOL(nftnl_obj_set_u8); + +-void nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val) ++void __EXPORTED nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val) + { + nftnl_obj_set_data(obj, attr, &val, sizeof(uint16_t)); + } +-EXPORT_SYMBOL(nftnl_obj_set_u16); + +-void nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val) + { + nftnl_obj_set_data(obj, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_obj_set_u32); + +-void nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val) ++void __EXPORTED nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val) + { + nftnl_obj_set_data(obj, attr, &val, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_obj_set_u64); + +-void nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str) ++void __EXPORTED nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str) + { + nftnl_obj_set_data(obj, attr, str, 0); + } +-EXPORT_SYMBOL(nftnl_obj_set_str); + +-const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr, ++const void __EXPORTED *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr, + uint32_t *data_len) + { + if (!(obj->flags & (1 << attr))) +@@ -168,50 +158,43 @@ const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_obj_get_data); + +-const void *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr) ++const void __EXPORTED *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr) + { + uint32_t data_len; + return nftnl_obj_get_data(obj, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_obj_get); + +-uint8_t nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr) ++uint8_t __EXPORTED nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr) + { + const void *ret = nftnl_obj_get(obj, attr); + return ret == NULL ? 0 : *((uint8_t *)ret); + } +-EXPORT_SYMBOL(nftnl_obj_get_u8); + +-uint16_t nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr) ++uint16_t __EXPORTED nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr) + { + const void *ret = nftnl_obj_get(obj, attr); + return ret == NULL ? 0 : *((uint16_t *)ret); + } +-EXPORT_SYMBOL(nftnl_obj_get_u16); + +-uint32_t nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr) ++uint32_t __EXPORTED nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr) + { + const void *ret = nftnl_obj_get(obj, attr); + return ret == NULL ? 0 : *((uint32_t *)ret); + } +-EXPORT_SYMBOL(nftnl_obj_get_u32); + +-uint64_t nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr) ++uint64_t __EXPORTED nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr) + { + const void *ret = nftnl_obj_get(obj, attr); + return ret == NULL ? 0 : *((uint64_t *)ret); + } +-EXPORT_SYMBOL(nftnl_obj_get_u64); + +-const char *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr) ++const char __EXPORTED *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr) + { + return nftnl_obj_get(obj, attr); + } +-EXPORT_SYMBOL(nftnl_obj_get_str); + +-void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh, ++void __EXPORTED nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh, + const struct nftnl_obj *obj) + { + if (obj->flags & (1 << NFTNL_OBJ_TABLE)) +@@ -228,7 +211,6 @@ void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh, + mnl_attr_nest_end(nlh, nest); + } + } +-EXPORT_SYMBOL(nftnl_obj_nlmsg_build_payload); + + static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -258,7 +240,7 @@ static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data) + return MNL_CB_OK; + } + +-int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj) ++int __EXPORTED nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj) + { + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); + struct nlattr *tb[NFTA_OBJ_MAX + 1] = {}; +@@ -299,7 +281,6 @@ int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj) + + return 0; + } +-EXPORT_SYMBOL(nftnl_obj_nlmsg_parse); + + #ifdef JSON_PARSING + static int nftnl_jansson_parse_obj(struct nftnl_obj *t, json_t *tree, +@@ -377,19 +358,17 @@ static int nftnl_obj_do_parse(struct nftnl_obj *obj, enum nftnl_parse_type type, + return ret; + } + +-int nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type, ++int __EXPORTED nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_obj_do_parse(obj, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_obj_parse); + +-int nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type, ++int __EXPORTED nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_obj_do_parse(obj, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_obj_parse_file); + + static int nftnl_obj_export(char *buf, size_t size, + const struct nftnl_obj *obj, +@@ -469,13 +448,12 @@ static int nftnl_obj_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj, ++int __EXPORTED nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj, + uint32_t type, uint32_t flags) + { + return nftnl_obj_cmd_snprintf(buf, size, obj, nftnl_flag2cmd(flags), + type, flags); + } +-EXPORT_SYMBOL(nftnl_obj_snprintf); + + static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -483,19 +461,18 @@ static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj, + return nftnl_obj_snprintf(buf, size, obj, type, flags); + } + +-int nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type, ++int __EXPORTED nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, obj, NFTNL_CMD_UNSPEC, type, flags, + nftnl_obj_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_obj_fprintf); + + struct nftnl_obj_list { + struct list_head list; + }; + +-struct nftnl_obj_list *nftnl_obj_list_alloc(void) ++struct nftnl_obj_list __EXPORTED *nftnl_obj_list_alloc(void) + { + struct nftnl_obj_list *list; + +@@ -507,9 +484,8 @@ struct nftnl_obj_list *nftnl_obj_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_obj_list_alloc); + +-void nftnl_obj_list_free(struct nftnl_obj_list *list) ++void __EXPORTED nftnl_obj_list_free(struct nftnl_obj_list *list) + { + struct nftnl_obj *r, *tmp; + +@@ -519,34 +495,29 @@ void nftnl_obj_list_free(struct nftnl_obj_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_obj_list_free); + +-int nftnl_obj_list_is_empty(struct nftnl_obj_list *list) ++int __EXPORTED nftnl_obj_list_is_empty(struct nftnl_obj_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_obj_list_is_empty); + +-void nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list) ++void __EXPORTED nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list) + { + list_add(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_obj_list_add); + +-void nftnl_obj_list_add_tail(struct nftnl_obj *r, ++void __EXPORTED nftnl_obj_list_add_tail(struct nftnl_obj *r, + struct nftnl_obj_list *list) + { + list_add_tail(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_obj_list_add_tail); + +-void nftnl_obj_list_del(struct nftnl_obj *t) ++void __EXPORTED nftnl_obj_list_del(struct nftnl_obj *t) + { + list_del(&t->head); + } +-EXPORT_SYMBOL(nftnl_obj_list_del); + +-int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list, ++int __EXPORTED nftnl_obj_list_foreach(struct nftnl_obj_list *table_list, + int (*cb)(struct nftnl_obj *t, void *data), + void *data) + { +@@ -560,14 +531,13 @@ int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_obj_list_foreach); + + struct nftnl_obj_list_iter { + struct nftnl_obj_list *list; + struct nftnl_obj *cur; + }; + +-struct nftnl_obj_list_iter * ++struct nftnl_obj_list_iter __EXPORTED * + nftnl_obj_list_iter_create(struct nftnl_obj_list *l) + { + struct nftnl_obj_list_iter *iter; +@@ -584,9 +554,8 @@ nftnl_obj_list_iter_create(struct nftnl_obj_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_obj_list_iter_create); + +-struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter) ++struct nftnl_obj __EXPORTED *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter) + { + struct nftnl_obj *r = iter->cur; + +@@ -600,10 +569,8 @@ struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter) + + return r; + } +-EXPORT_SYMBOL(nftnl_obj_list_iter_next); + +-void nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter) ++void __EXPORTED nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_obj_list_iter_destroy); +diff --git a/src/rule.c b/src/rule.c +index 6c22141..ad8609f 100644 +--- a/src/rule.c ++++ b/src/rule.c +@@ -52,7 +52,7 @@ struct nftnl_rule { + struct list_head expr_list; + }; + +-struct nftnl_rule *nftnl_rule_alloc(void) ++struct nftnl_rule __EXPORTED *nftnl_rule_alloc(void) + { + struct nftnl_rule *r; + +@@ -64,9 +64,8 @@ struct nftnl_rule *nftnl_rule_alloc(void) + + return r; + } +-EXPORT_SYMBOL(nftnl_rule_alloc); + +-void nftnl_rule_free(const struct nftnl_rule *r) ++void __EXPORTED nftnl_rule_free(const struct nftnl_rule *r) + { + struct nftnl_expr *e, *tmp; + +@@ -82,15 +81,13 @@ void nftnl_rule_free(const struct nftnl_rule *r) + + xfree(r); + } +-EXPORT_SYMBOL(nftnl_rule_free); + +-bool nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr) ++bool __EXPORTED nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr) + { + return r->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_rule_is_set); + +-void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) ++void __EXPORTED nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) + { + if (!(r->flags & (1 << attr))) + return; +@@ -116,7 +113,6 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr) + + r->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_rule_unset); + + static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = { + [NFTNL_RULE_HANDLE] = sizeof(uint64_t), +@@ -127,7 +123,7 @@ static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = { + [NFTNL_RULE_ID] = sizeof(uint32_t), + }; + +-int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, ++int __EXPORTED nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, + const void *data, uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_RULE_MAX); +@@ -183,33 +179,28 @@ int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr, + r->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_rule_set_data); + +-int nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data) ++int __EXPORTED nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data) + { + return nftnl_rule_set_data(r, attr, data, nftnl_rule_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_rule_set); + +-void nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val) + { + nftnl_rule_set_data(r, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_rule_set_u32); + +-void nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val) ++void __EXPORTED nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val) + { + nftnl_rule_set_data(r, attr, &val, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_rule_set_u64); + +-int nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str) ++int __EXPORTED nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str) + { + return nftnl_rule_set_data(r, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_rule_set_str); + +-const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr, ++const void __EXPORTED *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr, + uint32_t *data_len) + { + if (!(r->flags & (1 << attr))) +@@ -246,22 +237,19 @@ const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_rule_get_data); + +-const void *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr) ++const void __EXPORTED *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr) + { + uint32_t data_len; + return nftnl_rule_get_data(r, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_rule_get); + +-const char *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr) ++const char __EXPORTED *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr) + { + return nftnl_rule_get(r, attr); + } +-EXPORT_SYMBOL(nftnl_rule_get_str); + +-uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr) ++uint32_t __EXPORTED nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr) + { + uint32_t data_len; + const uint32_t *val = nftnl_rule_get_data(r, attr, &data_len); +@@ -270,9 +258,8 @@ uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_rule_get_u32); + +-uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr) ++uint64_t __EXPORTED nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr) + { + uint32_t data_len; + const uint64_t *val = nftnl_rule_get_data(r, attr, &data_len); +@@ -281,9 +268,8 @@ uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_rule_get_u64); + +-uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr) ++uint8_t __EXPORTED nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr) + { + uint32_t data_len; + const uint8_t *val = nftnl_rule_get_data(r, attr, &data_len); +@@ -292,9 +278,8 @@ uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_rule_get_u8); + +-void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r) ++void __EXPORTED nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r) + { + struct nftnl_expr *expr; + struct nlattr *nest, *nest2; +@@ -335,13 +320,11 @@ void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r) + if (r->flags & (1 << NFTNL_RULE_ID)) + mnl_attr_put_u32(nlh, NFTA_RULE_ID, htonl(r->id)); + } +-EXPORT_SYMBOL(nftnl_rule_nlmsg_build_payload); + +-void nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr) ++void __EXPORTED nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr) + { + list_add_tail(&expr->head, &r->expr_list); + } +-EXPORT_SYMBOL(nftnl_rule_add_expr); + + static int nftnl_rule_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -441,7 +424,7 @@ static int nftnl_rule_parse_compat(struct nlattr *nest, struct nftnl_rule *r) + return 0; + } + +-int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) ++int __EXPORTED nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) + { + struct nlattr *tb[NFTA_RULE_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -510,7 +493,6 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r) + + return 0; + } +-EXPORT_SYMBOL(nftnl_rule_nlmsg_parse); + + #ifdef JSON_PARSING + int nftnl_jansson_parse_rule(struct nftnl_rule *r, json_t *tree, +@@ -658,19 +640,17 @@ static int nftnl_rule_do_parse(struct nftnl_rule *r, enum nftnl_parse_type type, + + return ret; + } +-int nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type, ++int __EXPORTED nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_rule_do_parse(r, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_rule_parse); + +-int nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type, ++int __EXPORTED nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_rule_do_parse(r, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_rule_parse_file); + + static int nftnl_rule_export(char *buf, size_t size, + const struct nftnl_rule *r, +@@ -819,13 +799,12 @@ static int nftnl_rule_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r, ++int __EXPORTED nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r, + uint32_t type, uint32_t flags) + { + return nftnl_rule_cmd_snprintf(buf, size, r, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_rule_snprintf); + + static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -833,15 +812,14 @@ static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r, + return nftnl_rule_snprintf(buf, size, r, type, flags); + } + +-int nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type, ++int __EXPORTED nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, r, NFTNL_CMD_UNSPEC, type, flags, + nftnl_rule_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_rule_fprintf); + +-int nftnl_expr_foreach(struct nftnl_rule *r, ++int __EXPORTED nftnl_expr_foreach(struct nftnl_rule *r, + int (*cb)(struct nftnl_expr *e, void *data), + void *data) + { +@@ -855,7 +833,6 @@ int nftnl_expr_foreach(struct nftnl_rule *r, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_expr_foreach); + + struct nftnl_expr_iter { + const struct nftnl_rule *r; +@@ -873,7 +850,7 @@ static void nftnl_expr_iter_init(const struct nftnl_rule *r, + head); + } + +-struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r) ++struct nftnl_expr_iter __EXPORTED *nftnl_expr_iter_create(const struct nftnl_rule *r) + { + struct nftnl_expr_iter *iter; + +@@ -885,9 +862,8 @@ struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r) + + return iter; + } +-EXPORT_SYMBOL(nftnl_expr_iter_create); + +-struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter) ++struct nftnl_expr __EXPORTED *nftnl_expr_iter_next(struct nftnl_expr_iter *iter) + { + struct nftnl_expr *expr = iter->cur; + +@@ -901,15 +877,13 @@ struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter) + + return expr; + } +-EXPORT_SYMBOL(nftnl_expr_iter_next); + +-void nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter) ++void __EXPORTED nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_expr_iter_destroy); + +-bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) ++bool __EXPORTED nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) + { + struct nftnl_expr_iter it1, it2; + struct nftnl_expr *e1, *e2; +@@ -938,13 +912,12 @@ bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2) + + return eq; + } +-EXPORT_SYMBOL(nftnl_rule_cmp); + + struct nftnl_rule_list { + struct list_head list; + }; + +-struct nftnl_rule_list *nftnl_rule_list_alloc(void) ++struct nftnl_rule_list __EXPORTED *nftnl_rule_list_alloc(void) + { + struct nftnl_rule_list *list; + +@@ -956,9 +929,8 @@ struct nftnl_rule_list *nftnl_rule_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_rule_list_alloc); + +-void nftnl_rule_list_free(struct nftnl_rule_list *list) ++void __EXPORTED nftnl_rule_list_free(struct nftnl_rule_list *list) + { + struct nftnl_rule *r, *tmp; + +@@ -968,33 +940,28 @@ void nftnl_rule_list_free(struct nftnl_rule_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_rule_list_free); + +-int nftnl_rule_list_is_empty(const struct nftnl_rule_list *list) ++int __EXPORTED nftnl_rule_list_is_empty(const struct nftnl_rule_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_rule_list_is_empty); + +-void nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list) ++void __EXPORTED nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list) + { + list_add(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_rule_list_add); + +-void nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list) ++void __EXPORTED nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list) + { + list_add_tail(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_rule_list_add_tail); + +-void nftnl_rule_list_del(struct nftnl_rule *r) ++void __EXPORTED nftnl_rule_list_del(struct nftnl_rule *r) + { + list_del(&r->head); + } +-EXPORT_SYMBOL(nftnl_rule_list_del); + +-int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, ++int __EXPORTED nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, + int (*cb)(struct nftnl_rule *r, void *data), + void *data) + { +@@ -1008,14 +975,13 @@ int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_rule_list_foreach); + + struct nftnl_rule_list_iter { + const struct nftnl_rule_list *list; + struct nftnl_rule *cur; + }; + +-struct nftnl_rule_list_iter * ++struct nftnl_rule_list_iter __EXPORTED * + nftnl_rule_list_iter_create(const struct nftnl_rule_list *l) + { + struct nftnl_rule_list_iter *iter; +@@ -1032,15 +998,13 @@ nftnl_rule_list_iter_create(const struct nftnl_rule_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_rule_list_iter_create); + +-struct nftnl_rule *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter) ++struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter) + { + return iter->cur; + } +-EXPORT_SYMBOL(nftnl_rule_list_iter_cur); + +-struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter) ++struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter) + { + struct nftnl_rule *r = iter->cur; + +@@ -1054,10 +1018,8 @@ struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter) + + return r; + } +-EXPORT_SYMBOL(nftnl_rule_list_iter_next); + +-void nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter) ++void __EXPORTED nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_rule_list_iter_destroy); +diff --git a/src/ruleset.c b/src/ruleset.c +index 6ef2956..10d48f6 100644 +--- a/src/ruleset.c ++++ b/src/ruleset.c +@@ -55,13 +55,12 @@ struct nftnl_parse_ctx { + uint16_t flags; + }; + +-struct nftnl_ruleset *nftnl_ruleset_alloc(void) ++struct nftnl_ruleset __EXPORTED *nftnl_ruleset_alloc(void) + { + return calloc(1, sizeof(struct nftnl_ruleset)); + } +-EXPORT_SYMBOL(nftnl_ruleset_alloc); + +-void nftnl_ruleset_free(const struct nftnl_ruleset *r) ++void __EXPORTED nftnl_ruleset_free(const struct nftnl_ruleset *r) + { + if (r->flags & (1 << NFTNL_RULESET_TABLELIST)) + nftnl_table_list_free(r->table_list); +@@ -73,15 +72,13 @@ void nftnl_ruleset_free(const struct nftnl_ruleset *r) + nftnl_rule_list_free(r->rule_list); + xfree(r); + } +-EXPORT_SYMBOL(nftnl_ruleset_free); + +-bool nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr) ++bool __EXPORTED nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr) + { + return r->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_ruleset_is_set); + +-void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr) ++void __EXPORTED nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr) + { + if (!(r->flags & (1 << attr))) + return; +@@ -102,9 +99,8 @@ void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr) + } + r->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_ruleset_unset); + +-void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data) ++void __EXPORTED nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data) + { + switch (attr) { + case NFTNL_RULESET_TABLELIST: +@@ -128,9 +124,8 @@ void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data) + } + r->flags |= (1 << attr); + } +-EXPORT_SYMBOL(nftnl_ruleset_set); + +-void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr) ++void __EXPORTED *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr) + { + if (!(r->flags & (1 << attr))) + return NULL; +@@ -148,9 +143,8 @@ void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr) + return NULL; + } + } +-EXPORT_SYMBOL(nftnl_ruleset_get); + +-void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx) ++void __EXPORTED nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx) + { + switch (ctx->type) { + case NFTNL_RULESET_TABLE: +@@ -171,15 +165,13 @@ void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx) + break; + } + } +-EXPORT_SYMBOL(nftnl_ruleset_ctx_free); + +-bool nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr) ++bool __EXPORTED nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr) + { + return ctx->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_ruleset_ctx_is_set); + +-void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr) ++void __EXPORTED *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr) + { + if (!(ctx->flags & (1 << attr))) + return NULL; +@@ -203,14 +195,12 @@ void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr) + return NULL; + } + } +-EXPORT_SYMBOL(nftnl_ruleset_ctx_get); + +-uint32_t nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr) ++uint32_t __EXPORTED nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr) + { + const void *ret = nftnl_ruleset_ctx_get(ctx, attr); + return ret == NULL ? 0 : *((uint32_t *)ret); + } +-EXPORT_SYMBOL(nftnl_ruleset_ctx_get_u32); + + #if defined(JSON_PARSING) + static void nftnl_ruleset_ctx_set(struct nftnl_parse_ctx *ctx, uint16_t attr, +@@ -593,22 +583,20 @@ nftnl_ruleset_do_parse(enum nftnl_parse_type type, const void *data, + return ret; + } + +-int nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp, ++int __EXPORTED nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp, + struct nftnl_parse_err *err, void *data, + int (*cb)(const struct nftnl_parse_ctx *ctx)) + { + return nftnl_ruleset_do_parse(type, fp, err, NFTNL_PARSE_FILE, data, cb); + } +-EXPORT_SYMBOL(nftnl_ruleset_parse_file_cb); + +-int nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer, ++int __EXPORTED nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer, + struct nftnl_parse_err *err, void *data, + int (*cb)(const struct nftnl_parse_ctx *ctx)) + { + return nftnl_ruleset_do_parse(type, buffer, err, NFTNL_PARSE_BUFFER, data, + cb); + } +-EXPORT_SYMBOL(nftnl_ruleset_parse_buffer_cb); + + static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx) + { +@@ -671,19 +659,17 @@ static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx) + return 0; + } + +-int nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type, ++int __EXPORTED nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_ruleset_parse_buffer_cb(type, data, err, r, nftnl_ruleset_cb); + } +-EXPORT_SYMBOL(nftnl_ruleset_parse); + +-int nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type, ++int __EXPORTED nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_ruleset_parse_file_cb(type, fp, err, rs, nftnl_ruleset_cb); + } +-EXPORT_SYMBOL(nftnl_ruleset_parse_file); + + static const char *nftnl_ruleset_o_opentag(uint32_t type) + { +@@ -928,7 +914,7 @@ static int nftnl_ruleset_cmd_snprintf(char *buf, size_t size, + } + } + +-int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r, ++int __EXPORTED nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r, + uint32_t type, uint32_t flags) + { + switch (type) { +@@ -943,7 +929,6 @@ int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r + return -1; + } + } +-EXPORT_SYMBOL(nftnl_ruleset_snprintf); + + static int nftnl_ruleset_fprintf_tables(FILE *fp, const struct nftnl_ruleset *rs, + uint32_t type, uint32_t flags) +@@ -1157,10 +1142,9 @@ static int nftnl_ruleset_cmd_fprintf(FILE *fp, const struct nftnl_ruleset *rs, + return len; + } + +-int nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type, ++int __EXPORTED nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type, + uint32_t flags) + { + return nftnl_ruleset_cmd_fprintf(fp, rs, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_ruleset_fprintf); +diff --git a/src/set.c b/src/set.c +index cce5e63..33a6794 100644 +--- a/src/set.c ++++ b/src/set.c +@@ -27,7 +27,7 @@ + #include <libnftnl/set.h> + #include <libnftnl/expr.h> + +-struct nftnl_set *nftnl_set_alloc(void) ++struct nftnl_set __EXPORTED *nftnl_set_alloc(void) + { + struct nftnl_set *s; + +@@ -38,9 +38,8 @@ struct nftnl_set *nftnl_set_alloc(void) + INIT_LIST_HEAD(&s->element_list); + return s; + } +-EXPORT_SYMBOL(nftnl_set_alloc); + +-void nftnl_set_free(const struct nftnl_set *s) ++void __EXPORTED nftnl_set_free(const struct nftnl_set *s) + { + struct nftnl_set_elem *elem, *tmp; + +@@ -55,15 +54,13 @@ void nftnl_set_free(const struct nftnl_set *s) + } + xfree(s); + } +-EXPORT_SYMBOL(nftnl_set_free); + +-bool nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr) ++bool __EXPORTED nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr) + { + return s->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_set_is_set); + +-void nftnl_set_unset(struct nftnl_set *s, uint16_t attr) ++void __EXPORTED nftnl_set_unset(struct nftnl_set *s, uint16_t attr) + { + if (!(s->flags & (1 << attr))) + return; +@@ -97,7 +94,6 @@ void nftnl_set_unset(struct nftnl_set *s, uint16_t attr) + + s->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_set_unset); + + static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = { + [NFTNL_SET_FLAGS] = sizeof(uint32_t), +@@ -113,7 +109,7 @@ static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = { + [NFTNL_SET_GC_INTERVAL] = sizeof(uint32_t), + }; + +-int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data, ++int __EXPORTED nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data, + uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_SET_MAX); +@@ -186,33 +182,28 @@ int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data, + s->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_set_set_data); + +-int nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data) ++int __EXPORTED nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data) + { + return nftnl_set_set_data(s, attr, data, nftnl_set_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_set_set); + +-void nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val) + { + nftnl_set_set(s, attr, &val); + } +-EXPORT_SYMBOL(nftnl_set_set_u32); + +-void nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val) ++void __EXPORTED nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val) + { + nftnl_set_set(s, attr, &val); + } +-EXPORT_SYMBOL(nftnl_set_set_u64); + +-int nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str) ++int __EXPORTED nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str) + { + return nftnl_set_set_data(s, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_set_set_str); + +-const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr, ++const void __EXPORTED *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr, + uint32_t *data_len) + { + if (!(s->flags & (1 << attr))) +@@ -267,22 +258,19 @@ const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_set_get_data); + +-const void *nftnl_set_get(const struct nftnl_set *s, uint16_t attr) ++const void __EXPORTED *nftnl_set_get(const struct nftnl_set *s, uint16_t attr) + { + uint32_t data_len; + return nftnl_set_get_data(s, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_set_get); + +-const char *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr) ++const char __EXPORTED *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr) + { + return nftnl_set_get(s, attr); + } +-EXPORT_SYMBOL(nftnl_set_get_str); + +-uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr) ++uint32_t __EXPORTED nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr) + { + uint32_t data_len; + const uint32_t *val = nftnl_set_get_data(s, attr, &data_len); +@@ -291,9 +279,8 @@ uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_set_get_u32); + +-uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr) ++uint64_t __EXPORTED nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr) + { + uint32_t data_len; + const uint64_t *val = nftnl_set_get_data(s, attr, &data_len); +@@ -302,7 +289,6 @@ uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr) + + return val ? *val : 0; + } +-EXPORT_SYMBOL(nftnl_set_get_u64); + + struct nftnl_set *nftnl_set_clone(const struct nftnl_set *set) + { +@@ -351,7 +337,7 @@ nftnl_set_nlmsg_build_desc_payload(struct nlmsghdr *nlh, struct nftnl_set *s) + mnl_attr_nest_end(nlh, nest); + } + +-void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) ++void __EXPORTED nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) + { + if (s->flags & (1 << NFTNL_SET_TABLE)) + mnl_attr_put_strz(nlh, NFTA_SET_TABLE, s->table); +@@ -383,7 +369,6 @@ void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) + if (s->flags & (1 << NFTNL_SET_USERDATA)) + mnl_attr_put(nlh, NFTA_SET_USERDATA, s->user.len, s->user.data); + } +-EXPORT_SYMBOL(nftnl_set_nlmsg_build_payload); + + static int nftnl_set_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -463,7 +448,7 @@ static int nftnl_set_desc_parse(struct nftnl_set *s, + return 0; + } + +-int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) ++int __EXPORTED nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) + { + struct nlattr *tb[NFTA_SET_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -546,7 +531,6 @@ int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) + + return 0; + } +-EXPORT_SYMBOL(nftnl_set_nlmsg_parse); + + #ifdef JSON_PARSING + static int nftnl_jansson_parse_set_info(struct nftnl_set *s, json_t *tree, +@@ -718,19 +702,17 @@ static int nftnl_set_do_parse(struct nftnl_set *s, enum nftnl_parse_type type, + + return ret; + } +-int nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type, ++int __EXPORTED nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_set_do_parse(s, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_set_parse); + +-int nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type, ++int __EXPORTED nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_set_do_parse(s, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_set_parse_file); + + static int nftnl_set_snprintf_json(char *buf, size_t size, + const struct nftnl_set *s, +@@ -918,13 +900,12 @@ static int nftnl_set_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s, ++int __EXPORTED nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s, + uint32_t type, uint32_t flags) + { + return nftnl_set_cmd_snprintf(buf, size, s, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_set_snprintf); + + static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -932,25 +913,23 @@ static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s, + return nftnl_set_snprintf(buf, size, s, type, flags); + } + +-int nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type, ++int __EXPORTED nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, s, NFTNL_CMD_UNSPEC, type, flags, + nftnl_set_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_set_fprintf); + +-void nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem) ++void __EXPORTED nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem) + { + list_add_tail(&elem->head, &s->element_list); + } +-EXPORT_SYMBOL(nftnl_set_elem_add); + + struct nftnl_set_list { + struct list_head list; + }; + +-struct nftnl_set_list *nftnl_set_list_alloc(void) ++struct nftnl_set_list __EXPORTED *nftnl_set_list_alloc(void) + { + struct nftnl_set_list *list; + +@@ -962,9 +941,8 @@ struct nftnl_set_list *nftnl_set_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_set_list_alloc); + +-void nftnl_set_list_free(struct nftnl_set_list *list) ++void __EXPORTED nftnl_set_list_free(struct nftnl_set_list *list) + { + struct nftnl_set *s, *tmp; + +@@ -974,33 +952,28 @@ void nftnl_set_list_free(struct nftnl_set_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_set_list_free); + +-int nftnl_set_list_is_empty(const struct nftnl_set_list *list) ++int __EXPORTED nftnl_set_list_is_empty(const struct nftnl_set_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_set_list_is_empty); + +-void nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list) ++void __EXPORTED nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list) + { + list_add(&s->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_set_list_add); + +-void nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list) ++void __EXPORTED nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list) + { + list_add_tail(&s->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_set_list_add_tail); + +-void nftnl_set_list_del(struct nftnl_set *s) ++void __EXPORTED nftnl_set_list_del(struct nftnl_set *s) + { + list_del(&s->head); + } +-EXPORT_SYMBOL(nftnl_set_list_del); + +-int nftnl_set_list_foreach(struct nftnl_set_list *set_list, ++int __EXPORTED nftnl_set_list_foreach(struct nftnl_set_list *set_list, + int (*cb)(struct nftnl_set *t, void *data), void *data) + { + struct nftnl_set *cur, *tmp; +@@ -1013,14 +986,13 @@ int nftnl_set_list_foreach(struct nftnl_set_list *set_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_set_list_foreach); + + struct nftnl_set_list_iter { + const struct nftnl_set_list *list; + struct nftnl_set *cur; + }; + +-struct nftnl_set_list_iter * ++struct nftnl_set_list_iter __EXPORTED * + nftnl_set_list_iter_create(const struct nftnl_set_list *l) + { + struct nftnl_set_list_iter *iter; +@@ -1037,16 +1009,14 @@ nftnl_set_list_iter_create(const struct nftnl_set_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_set_list_iter_create); + +-struct nftnl_set * ++struct nftnl_set __EXPORTED * + nftnl_set_list_iter_cur(const struct nftnl_set_list_iter *iter) + { + return iter->cur; + } +-EXPORT_SYMBOL(nftnl_set_list_iter_cur); + +-struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter) ++struct nftnl_set __EXPORTED *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter) + { + struct nftnl_set *s = iter->cur; + +@@ -1060,13 +1030,11 @@ struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter) + + return s; + } +-EXPORT_SYMBOL(nftnl_set_list_iter_next); + +-void nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter) ++void __EXPORTED nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_set_list_iter_destroy); + + static struct nftnl_set *nftnl_set_lookup(const char *this_set_name, + struct nftnl_set_list *set_list) +diff --git a/src/set_elem.c b/src/set_elem.c +index 433b896..bd1e895 100644 +--- a/src/set_elem.c ++++ b/src/set_elem.c +@@ -27,7 +27,7 @@ + #include <libnftnl/rule.h> + #include <libnftnl/expr.h> + +-struct nftnl_set_elem *nftnl_set_elem_alloc(void) ++struct nftnl_set_elem __EXPORTED *nftnl_set_elem_alloc(void) + { + struct nftnl_set_elem *s; + +@@ -37,9 +37,8 @@ struct nftnl_set_elem *nftnl_set_elem_alloc(void) + + return s; + } +-EXPORT_SYMBOL(nftnl_set_elem_alloc); + +-void nftnl_set_elem_free(struct nftnl_set_elem *s) ++void __EXPORTED nftnl_set_elem_free(struct nftnl_set_elem *s) + { + if (s->flags & (1 << NFTNL_SET_ELEM_CHAIN)) + xfree(s->data.chain); +@@ -55,15 +54,13 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s) + + xfree(s); + } +-EXPORT_SYMBOL(nftnl_set_elem_free); + +-bool nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr) ++bool __EXPORTED nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr) + { + return s->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_set_elem_is_set); + +-void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) ++void __EXPORTED nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) + { + if (!(s->flags & (1 << attr))) + return; +@@ -94,9 +91,8 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr) + + s->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_set_elem_unset); + +-int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, ++int __EXPORTED nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, + const void *data, uint32_t data_len) + { + switch(attr) { +@@ -147,27 +143,23 @@ int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr, + s->flags |= (1 << attr); + return -1; + } +-EXPORT_SYMBOL(nftnl_set_elem_set); + +-void nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val) + { + nftnl_set_elem_set(s, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_set_elem_set_u32); + +-void nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val) ++void __EXPORTED nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val) + { + nftnl_set_elem_set(s, attr, &val, sizeof(uint64_t)); + } +-EXPORT_SYMBOL(nftnl_set_elem_set_u64); + +-int nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str) ++int __EXPORTED nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str) + { + return nftnl_set_elem_set(s, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_set_elem_set_str); + +-const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len) ++const void __EXPORTED *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len) + { + if (!(s->flags & (1 << attr))) + return NULL; +@@ -205,31 +197,27 @@ const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_set_elem_get); + +-const char *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr) ++const char __EXPORTED *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr) + { + uint32_t size; + + return nftnl_set_elem_get(s, attr, &size); + } +-EXPORT_SYMBOL(nftnl_set_elem_get_str); + +-uint32_t nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr) ++uint32_t __EXPORTED nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr) + { + uint32_t size; + uint32_t val = *((uint32_t *)nftnl_set_elem_get(s, attr, &size)); + return val; + } +-EXPORT_SYMBOL(nftnl_set_elem_get_u32); + +-uint64_t nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr) ++uint64_t __EXPORTED nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr) + { + uint32_t size; + uint64_t val = *((uint64_t *)nftnl_set_elem_get(s, attr, &size)); + return val; + } +-EXPORT_SYMBOL(nftnl_set_elem_get_u64); + + struct nftnl_set_elem *nftnl_set_elem_clone(struct nftnl_set_elem *elem) + { +@@ -315,7 +303,7 @@ static struct nlattr *nftnl_set_elem_build(struct nlmsghdr *nlh, + return nest2; + } + +-void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) ++void __EXPORTED nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s) + { + struct nftnl_set_elem *elem; + struct nlattr *nest1; +@@ -332,7 +320,6 @@ void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set + + mnl_attr_nest_end(nlh, nest1); + } +-EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload); + + static int nftnl_set_elem_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -503,7 +490,7 @@ static int nftnl_set_elems_parse(struct nftnl_set *s, const struct nlattr *nest) + return ret; + } + +-int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) ++int __EXPORTED nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) + { + struct nlattr *tb[NFTA_SET_ELEM_LIST_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -546,7 +533,6 @@ int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s) + + return 0; + } +-EXPORT_SYMBOL(nftnl_set_elems_nlmsg_parse); + + static int nftnl_set_elem_json_parse(struct nftnl_set_elem *e, const void *json, + struct nftnl_parse_err *err, +@@ -587,19 +573,17 @@ nftnl_set_elem_do_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type, + + return ret; + } +-int nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type, ++int __EXPORTED nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_set_elem_do_parse(e, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_set_elem_parse); + +-int nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type, ++int __EXPORTED nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_set_elem_do_parse(e, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_set_elem_parse_file); + + static int nftnl_set_elem_snprintf_json(char *buf, size_t size, + const struct nftnl_set_elem *e, +@@ -719,14 +703,13 @@ static int nftnl_set_elem_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_set_elem_snprintf(char *buf, size_t size, ++int __EXPORTED nftnl_set_elem_snprintf(char *buf, size_t size, + const struct nftnl_set_elem *e, + uint32_t type, uint32_t flags) + { + return nftnl_set_elem_cmd_snprintf(buf, size, e, nftnl_flag2cmd(flags), + type, flags); + } +-EXPORT_SYMBOL(nftnl_set_elem_snprintf); + + static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e, + uint32_t cmd, uint32_t type, +@@ -735,15 +718,14 @@ static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e, + return nftnl_set_elem_snprintf(buf, size, e, type, flags); + } + +-int nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type, ++int __EXPORTED nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, se, NFTNL_CMD_UNSPEC, type, flags, + nftnl_set_elem_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_set_elem_fprintf); + +-int nftnl_set_elem_foreach(struct nftnl_set *s, ++int __EXPORTED nftnl_set_elem_foreach(struct nftnl_set *s, + int (*cb)(struct nftnl_set_elem *e, void *data), + void *data) + { +@@ -757,7 +739,6 @@ int nftnl_set_elem_foreach(struct nftnl_set *s, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_set_elem_foreach); + + struct nftnl_set_elems_iter { + const struct nftnl_set *set; +@@ -765,7 +746,7 @@ struct nftnl_set_elems_iter { + struct nftnl_set_elem *cur; + }; + +-struct nftnl_set_elems_iter * ++struct nftnl_set_elems_iter __EXPORTED * + nftnl_set_elems_iter_create(const struct nftnl_set *s) + { + struct nftnl_set_elems_iter *iter; +@@ -784,16 +765,14 @@ nftnl_set_elems_iter_create(const struct nftnl_set *s) + + return iter; + } +-EXPORT_SYMBOL(nftnl_set_elems_iter_create); + +-struct nftnl_set_elem * ++struct nftnl_set_elem __EXPORTED * + nftnl_set_elems_iter_cur(const struct nftnl_set_elems_iter *iter) + { + return iter->cur; + } +-EXPORT_SYMBOL(nftnl_set_elems_iter_cur); + +-struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter) ++struct nftnl_set_elem __EXPORTED *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter) + { + struct nftnl_set_elem *s = iter->cur; + +@@ -806,13 +785,11 @@ struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *it + + return s; + } +-EXPORT_SYMBOL(nftnl_set_elems_iter_next); + +-void nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter) ++void __EXPORTED nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_set_elems_iter_destroy); + + static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh, + const struct nlattr *from, +@@ -831,7 +808,7 @@ static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh, + return false; + } + +-int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh, ++int __EXPORTED nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh, + struct nftnl_set_elems_iter *iter) + { + struct nftnl_set_elem *elem; +@@ -861,4 +838,3 @@ int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh, + + return ret; + } +-EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload_iter); +diff --git a/src/table.c b/src/table.c +index a7d5a8f..0e99f3c 100644 +--- a/src/table.c ++++ b/src/table.c +@@ -36,28 +36,25 @@ struct nftnl_table { + uint32_t flags; + }; + +-struct nftnl_table *nftnl_table_alloc(void) ++struct nftnl_table __EXPORTED *nftnl_table_alloc(void) + { + return calloc(1, sizeof(struct nftnl_table)); + } +-EXPORT_SYMBOL(nftnl_table_alloc); + +-void nftnl_table_free(const struct nftnl_table *t) ++void __EXPORTED nftnl_table_free(const struct nftnl_table *t) + { + if (t->flags & (1 << NFTNL_TABLE_NAME)) + xfree(t->name); + + xfree(t); + } +-EXPORT_SYMBOL(nftnl_table_free); + +-bool nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr) ++bool __EXPORTED nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr) + { + return t->flags & (1 << attr); + } +-EXPORT_SYMBOL(nftnl_table_is_set); + +-void nftnl_table_unset(struct nftnl_table *t, uint16_t attr) ++void __EXPORTED nftnl_table_unset(struct nftnl_table *t, uint16_t attr) + { + if (!(t->flags & (1 << attr))) + return; +@@ -74,14 +71,13 @@ void nftnl_table_unset(struct nftnl_table *t, uint16_t attr) + } + t->flags &= ~(1 << attr); + } +-EXPORT_SYMBOL(nftnl_table_unset); + + static uint32_t nftnl_table_validate[NFTNL_TABLE_MAX + 1] = { + [NFTNL_TABLE_FLAGS] = sizeof(uint32_t), + [NFTNL_TABLE_FAMILY] = sizeof(uint32_t), + }; + +-int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr, ++int __EXPORTED nftnl_table_set_data(struct nftnl_table *t, uint16_t attr, + const void *data, uint32_t data_len) + { + nftnl_assert_attr_exists(attr, NFTNL_TABLE_MAX); +@@ -109,33 +105,28 @@ int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr, + t->flags |= (1 << attr); + return 0; + } +-EXPORT_SYMBOL(nftnl_table_set_data); + +-void nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data) ++void __EXPORTED nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data) + { + nftnl_table_set_data(t, attr, data, nftnl_table_validate[attr]); + } +-EXPORT_SYMBOL(nftnl_table_set); + +-void nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val) ++void __EXPORTED nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val) + { + nftnl_table_set_data(t, attr, &val, sizeof(uint32_t)); + } +-EXPORT_SYMBOL(nftnl_table_set_u32); + +-void nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val) ++void __EXPORTED nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val) + { + nftnl_table_set_data(t, attr, &val, sizeof(uint8_t)); + } +-EXPORT_SYMBOL(nftnl_table_set_u8); + +-int nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str) ++int __EXPORTED nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str) + { + return nftnl_table_set_data(t, attr, str, strlen(str) + 1); + } +-EXPORT_SYMBOL(nftnl_table_set_str); + +-const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr, ++const void __EXPORTED *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr, + uint32_t *data_len) + { + if (!(t->flags & (1 << attr))) +@@ -157,43 +148,37 @@ const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr, + } + return NULL; + } +-EXPORT_SYMBOL(nftnl_table_get_data); + +-const void *nftnl_table_get(const struct nftnl_table *t, uint16_t attr) ++const void __EXPORTED *nftnl_table_get(const struct nftnl_table *t, uint16_t attr) + { + uint32_t data_len; + return nftnl_table_get_data(t, attr, &data_len); + } +-EXPORT_SYMBOL(nftnl_table_get); + +-uint32_t nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr) ++uint32_t __EXPORTED nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr) + { + const void *ret = nftnl_table_get(t, attr); + return ret == NULL ? 0 : *((uint32_t *)ret); + } +-EXPORT_SYMBOL(nftnl_table_get_u32); + +-uint8_t nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr) ++uint8_t __EXPORTED nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr) + { + const void *ret = nftnl_table_get(t, attr); + return ret == NULL ? 0 : *((uint8_t *)ret); + } +-EXPORT_SYMBOL(nftnl_table_get_u8); + +-const char *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr) ++const char __EXPORTED *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr) + { + return nftnl_table_get(t, attr); + } +-EXPORT_SYMBOL(nftnl_table_get_str); + +-void nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t) ++void __EXPORTED nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t) + { + if (t->flags & (1 << NFTNL_TABLE_NAME)) + mnl_attr_put_strz(nlh, NFTA_TABLE_NAME, t->name); + if (t->flags & (1 << NFTNL_TABLE_FLAGS)) + mnl_attr_put_u32(nlh, NFTA_TABLE_FLAGS, htonl(t->table_flags)); + } +-EXPORT_SYMBOL(nftnl_table_nlmsg_build_payload); + + static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data) + { +@@ -219,7 +204,7 @@ static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data) + return MNL_CB_OK; + } + +-int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t) ++int __EXPORTED nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t) + { + struct nlattr *tb[NFTA_TABLE_MAX+1] = {}; + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); +@@ -249,7 +234,6 @@ int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t) + + return 0; + } +-EXPORT_SYMBOL(nftnl_table_nlmsg_parse); + + #ifdef JSON_PARSING + int nftnl_jansson_parse_table(struct nftnl_table *t, json_t *tree, +@@ -330,19 +314,17 @@ static int nftnl_table_do_parse(struct nftnl_table *t, enum nftnl_parse_type typ + return ret; + } + +-int nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type, ++int __EXPORTED nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type, + const char *data, struct nftnl_parse_err *err) + { + return nftnl_table_do_parse(t, type, data, err, NFTNL_PARSE_BUFFER); + } +-EXPORT_SYMBOL(nftnl_table_parse); + +-int nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type, ++int __EXPORTED nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type, + FILE *fp, struct nftnl_parse_err *err) + { + return nftnl_table_do_parse(t, type, fp, err, NFTNL_PARSE_FILE); + } +-EXPORT_SYMBOL(nftnl_table_parse_file); + + static int nftnl_table_export(char *buf, size_t size, + const struct nftnl_table *t, int type) +@@ -400,13 +382,12 @@ static int nftnl_table_cmd_snprintf(char *buf, size_t size, + return offset; + } + +-int nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t, ++int __EXPORTED nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t, + uint32_t type, uint32_t flags) + { + return nftnl_table_cmd_snprintf(buf, size, t, nftnl_flag2cmd(flags), type, + flags); + } +-EXPORT_SYMBOL(nftnl_table_snprintf); + + static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t, + uint32_t cmd, uint32_t type, uint32_t flags) +@@ -414,19 +395,18 @@ static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t, + return nftnl_table_snprintf(buf, size, t, type, flags); + } + +-int nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type, ++int __EXPORTED nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type, + uint32_t flags) + { + return nftnl_fprintf(fp, t, NFTNL_CMD_UNSPEC, type, flags, + nftnl_table_do_snprintf); + } +-EXPORT_SYMBOL(nftnl_table_fprintf); + + struct nftnl_table_list { + struct list_head list; + }; + +-struct nftnl_table_list *nftnl_table_list_alloc(void) ++struct nftnl_table_list __EXPORTED *nftnl_table_list_alloc(void) + { + struct nftnl_table_list *list; + +@@ -438,9 +418,8 @@ struct nftnl_table_list *nftnl_table_list_alloc(void) + + return list; + } +-EXPORT_SYMBOL(nftnl_table_list_alloc); + +-void nftnl_table_list_free(struct nftnl_table_list *list) ++void __EXPORTED nftnl_table_list_free(struct nftnl_table_list *list) + { + struct nftnl_table *r, *tmp; + +@@ -450,33 +429,28 @@ void nftnl_table_list_free(struct nftnl_table_list *list) + } + xfree(list); + } +-EXPORT_SYMBOL(nftnl_table_list_free); + +-int nftnl_table_list_is_empty(const struct nftnl_table_list *list) ++int __EXPORTED nftnl_table_list_is_empty(const struct nftnl_table_list *list) + { + return list_empty(&list->list); + } +-EXPORT_SYMBOL(nftnl_table_list_is_empty); + +-void nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list) ++void __EXPORTED nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list) + { + list_add(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_table_list_add); + +-void nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list) ++void __EXPORTED nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list) + { + list_add_tail(&r->head, &list->list); + } +-EXPORT_SYMBOL(nftnl_table_list_add_tail); + +-void nftnl_table_list_del(struct nftnl_table *t) ++void __EXPORTED nftnl_table_list_del(struct nftnl_table *t) + { + list_del(&t->head); + } +-EXPORT_SYMBOL(nftnl_table_list_del); + +-int nftnl_table_list_foreach(struct nftnl_table_list *table_list, ++int __EXPORTED nftnl_table_list_foreach(struct nftnl_table_list *table_list, + int (*cb)(struct nftnl_table *t, void *data), + void *data) + { +@@ -490,14 +464,13 @@ int nftnl_table_list_foreach(struct nftnl_table_list *table_list, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_table_list_foreach); + + struct nftnl_table_list_iter { + const struct nftnl_table_list *list; + struct nftnl_table *cur; + }; + +-struct nftnl_table_list_iter * ++struct nftnl_table_list_iter __EXPORTED * + nftnl_table_list_iter_create(const struct nftnl_table_list *l) + { + struct nftnl_table_list_iter *iter; +@@ -514,9 +487,8 @@ nftnl_table_list_iter_create(const struct nftnl_table_list *l) + + return iter; + } +-EXPORT_SYMBOL(nftnl_table_list_iter_create); + +-struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter) ++struct nftnl_table __EXPORTED *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter) + { + struct nftnl_table *r = iter->cur; + +@@ -530,10 +502,8 @@ struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *ite + + return r; + } +-EXPORT_SYMBOL(nftnl_table_list_iter_next); + +-void nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter) ++void __EXPORTED nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter) + { + xfree(iter); + } +-EXPORT_SYMBOL(nftnl_table_list_iter_destroy); +diff --git a/src/trace.c b/src/trace.c +index bd05d3c..4739ef9 100644 +--- a/src/trace.c ++++ b/src/trace.c +@@ -52,14 +52,12 @@ struct nftnl_trace { + uint32_t flags; + }; + +-EXPORT_SYMBOL(nftnl_trace_alloc); +-struct nftnl_trace *nftnl_trace_alloc(void) ++struct nftnl_trace __EXPORTED *nftnl_trace_alloc(void) + { + return calloc(1, sizeof(struct nftnl_trace)); + } + +-EXPORT_SYMBOL(nftnl_trace_free); +-void nftnl_trace_free(const struct nftnl_trace *t) ++void __EXPORTED nftnl_trace_free(const struct nftnl_trace *t) + { + xfree(t->chain); + xfree(t->table); +@@ -70,8 +68,7 @@ void nftnl_trace_free(const struct nftnl_trace *t) + xfree(t); + } + +-EXPORT_SYMBOL(nftnl_trace_is_set); +-bool nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr) ++bool __EXPORTED nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr) + { + return t->flags & (1 << attr); + } +@@ -130,8 +127,7 @@ static int nftnl_trace_parse_attr_cb(const struct nlattr *attr, void *data) + return MNL_CB_OK; + } + +-EXPORT_SYMBOL(nftnl_trace_get_data); +-const void *nftnl_trace_get_data(const struct nftnl_trace *trace, ++const void __EXPORTED *nftnl_trace_get_data(const struct nftnl_trace *trace, + uint16_t type, uint32_t *data_len) + { + enum nftnl_trace_attr attr = type; +@@ -201,8 +197,7 @@ const void *nftnl_trace_get_data(const struct nftnl_trace *trace, + return NULL; + } + +-EXPORT_SYMBOL(nftnl_trace_get_str); +-const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type) ++const char __EXPORTED *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type) + { + if (!nftnl_trace_is_set(trace, type)) + return NULL; +@@ -216,8 +211,7 @@ const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type) + return NULL; + } + +-EXPORT_SYMBOL(nftnl_trace_get_u16); +-uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type) ++uint16_t __EXPORTED nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type) + { + const uint16_t *d; + uint32_t dlen; +@@ -229,8 +223,7 @@ uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type) + return 0; + } + +-EXPORT_SYMBOL(nftnl_trace_get_u32); +-uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type) ++uint32_t __EXPORTED nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type) + { + const uint32_t *d; + uint32_t dlen; +@@ -242,8 +235,7 @@ uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type) + return 0; + } + +-EXPORT_SYMBOL(nftnl_trace_get_u64); +-uint64_t nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type) ++uint64_t __EXPORTED nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type) + { + const uint64_t *d; + uint32_t dlen; +@@ -323,9 +315,8 @@ static int nftnl_trace_parse_verdict(const struct nlattr *attr, + } + return 0; + } +-EXPORT_SYMBOL(nftnl_trace_nlmsg_parse); + +-int nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t) ++int __EXPORTED nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t) + { + struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh); + struct nlattr *tb[NFTA_TRACE_MAX+1] = {}; +diff --git a/src/udata.c b/src/udata.c +index d679dd0..7e2de0f 100644 +--- a/src/udata.c ++++ b/src/udata.c +@@ -16,7 +16,7 @@ + #include <stdint.h> + #include <string.h> + +-struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size) ++struct nftnl_udata_buf __EXPORTED *nftnl_udata_buf_alloc(uint32_t data_size) + { + struct nftnl_udata_buf *buf; + +@@ -28,47 +28,40 @@ struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size) + + return buf; + } +-EXPORT_SYMBOL(nftnl_udata_buf_alloc); + +-void nftnl_udata_buf_free(const struct nftnl_udata_buf *buf) ++void __EXPORTED nftnl_udata_buf_free(const struct nftnl_udata_buf *buf) + { + xfree(buf); + } +-EXPORT_SYMBOL(nftnl_udata_buf_free); + +-uint32_t nftnl_udata_buf_len(const struct nftnl_udata_buf *buf) ++uint32_t __EXPORTED nftnl_udata_buf_len(const struct nftnl_udata_buf *buf) + { + return (uint32_t)(buf->end - buf->data); + } +-EXPORT_SYMBOL(nftnl_udata_buf_len); + +-void *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf) ++void __EXPORTED *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf) + { + return (void *)buf->data; + } +-EXPORT_SYMBOL(nftnl_udata_buf_data); + +-void nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data, ++void __EXPORTED nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data, + uint32_t len) + { + memcpy(buf->data, data, len <= buf->size ? len : buf->size); + buf->end = buf->data + len; + } +-EXPORT_SYMBOL(nftnl_udata_buf_put); + +-struct nftnl_udata *nftnl_udata_start(const struct nftnl_udata_buf *buf) ++struct nftnl_udata __EXPORTED *nftnl_udata_start(const struct nftnl_udata_buf *buf) + { + return (struct nftnl_udata *)buf->data; + } +-EXPORT_SYMBOL(nftnl_udata_start); + +-struct nftnl_udata *nftnl_udata_end(const struct nftnl_udata_buf *buf) ++struct nftnl_udata __EXPORTED *nftnl_udata_end(const struct nftnl_udata_buf *buf) + { + return (struct nftnl_udata *)buf->end; + } +-EXPORT_SYMBOL(nftnl_udata_end); + +-bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, ++bool __EXPORTED nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, + const void *value) + { + struct nftnl_udata *attr; +@@ -85,55 +78,47 @@ bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, + + return true; + } +-EXPORT_SYMBOL(nftnl_udata_put); + +-bool nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type, ++bool __EXPORTED nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type, + const char *strz) + { + return nftnl_udata_put(buf, type, strlen(strz) + 1, strz); + } +-EXPORT_SYMBOL(nftnl_udata_put_strz); + +-bool nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type, ++bool __EXPORTED nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type, + uint32_t data) + { + return nftnl_udata_put(buf, type, sizeof(data), &data); + } +-EXPORT_SYMBOL(nftnl_udata_put_u32); + +-uint8_t nftnl_udata_type(const struct nftnl_udata *attr) ++uint8_t __EXPORTED nftnl_udata_type(const struct nftnl_udata *attr) + { + return attr->type; + } +-EXPORT_SYMBOL(nftnl_udata_type); + +-uint8_t nftnl_udata_len(const struct nftnl_udata *attr) ++uint8_t __EXPORTED nftnl_udata_len(const struct nftnl_udata *attr) + { + return attr->len; + } +-EXPORT_SYMBOL(nftnl_udata_len); + +-void *nftnl_udata_get(const struct nftnl_udata *attr) ++void __EXPORTED *nftnl_udata_get(const struct nftnl_udata *attr) + { + return (void *)attr->value; + } +-EXPORT_SYMBOL(nftnl_udata_get); + +-uint32_t nftnl_udata_get_u32(const struct nftnl_udata *attr) ++uint32_t __EXPORTED nftnl_udata_get_u32(const struct nftnl_udata *attr) + { + uint32_t *data = (uint32_t *)attr->value; + + return *data; + } +-EXPORT_SYMBOL(nftnl_udata_get_u32); + +-struct nftnl_udata *nftnl_udata_next(const struct nftnl_udata *attr) ++struct nftnl_udata __EXPORTED *nftnl_udata_next(const struct nftnl_udata *attr) + { + return (struct nftnl_udata *)&attr->value[attr->len]; + } +-EXPORT_SYMBOL(nftnl_udata_next); + +-int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb, ++int __EXPORTED nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb, + void *cb_data) + { + int ret = 0; +@@ -147,4 +132,3 @@ int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb, + + return ret; + } +-EXPORT_SYMBOL(nftnl_udata_parse); +-- +2.11.0 (Apple Git-81) + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch new file mode 100644 index 0000000000..06e68177ce --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch @@ -0,0 +1,514 @@ +From f840cc0da571d98beb17855c177e9986bd096b72 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 13 Apr 2017 11:46:09 -0700 +Subject: [PATCH] avoid naming local function as one of printf family + +Fixes build issues with clang +error: no member named '__builtin___snprintf_chk' in 'struct expr_ops' + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + include/expr_ops.h | 2 +- + include/obj.h | 2 +- + src/buffer.c | 2 +- + src/expr.c | 4 ++-- + src/expr/bitwise.c | 2 +- + src/expr/byteorder.c | 2 +- + src/expr/cmp.c | 2 +- + src/expr/counter.c | 2 +- + src/expr/ct.c | 2 +- + src/expr/dup.c | 2 +- + src/expr/dynset.c | 2 +- + src/expr/exthdr.c | 2 +- + src/expr/fib.c | 2 +- + src/expr/fwd.c | 2 +- + src/expr/hash.c | 2 +- + src/expr/immediate.c | 2 +- + src/expr/limit.c | 2 +- + src/expr/log.c | 2 +- + src/expr/lookup.c | 2 +- + src/expr/masq.c | 2 +- + src/expr/match.c | 2 +- + src/expr/meta.c | 2 +- + src/expr/nat.c | 2 +- + src/expr/numgen.c | 2 +- + src/expr/objref.c | 2 +- + src/expr/payload.c | 2 +- + src/expr/queue.c | 2 +- + src/expr/quota.c | 2 +- + src/expr/range.c | 2 +- + src/expr/redir.c | 2 +- + src/expr/reject.c | 2 +- + src/expr/rt.c | 2 +- + src/expr/target.c | 2 +- + src/obj/counter.c | 2 +- + src/obj/ct_helper.c | 2 +- + src/obj/quota.c | 2 +- + src/object.c | 4 ++-- + 37 files changed, 39 insertions(+), 39 deletions(-) + +diff --git a/include/expr_ops.h b/include/expr_ops.h +index e639390..c4fe050 100644 +--- a/include/expr_ops.h ++++ b/include/expr_ops.h +@@ -18,7 +18,7 @@ struct expr_ops { + const void *(*get)(const struct nftnl_expr *e, uint16_t type, uint32_t *data_len); + int (*parse)(struct nftnl_expr *e, struct nlattr *attr); + void (*build)(struct nlmsghdr *nlh, const struct nftnl_expr *e); +- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e); ++ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e); + int (*json_parse)(struct nftnl_expr *e, json_t *data, + struct nftnl_parse_err *err); + }; +diff --git a/include/obj.h b/include/obj.h +index d90919f..772caff 100644 +--- a/include/obj.h ++++ b/include/obj.h +@@ -47,7 +47,7 @@ struct obj_ops { + const void *(*get)(const struct nftnl_obj *e, uint16_t type, uint32_t *data_len); + int (*parse)(struct nftnl_obj *e, struct nlattr *attr); + void (*build)(struct nlmsghdr *nlh, const struct nftnl_obj *e); +- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e); ++ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e); + int (*json_parse)(struct nftnl_obj *e, json_t *data, + struct nftnl_parse_err *err); + }; +diff --git a/src/buffer.c b/src/buffer.c +index f9d5a83..db656e2 100644 +--- a/src/buffer.c ++++ b/src/buffer.c +@@ -206,7 +206,7 @@ int nftnl_buf_expr(struct nftnl_buf *b, int type, uint32_t flags, + case NFTNL_OUTPUT_JSON: + nftnl_buf_put(b, "{"); + nftnl_buf_str(b, type, expr->ops->name, TYPE); +- ret = expr->ops->snprintf(b->buf + b->off, b->len, type, flags, ++ ret = expr->ops->snprintf_(b->buf + b->off, b->len, type, flags, + expr); + if (ret > 0) + nftnl_buf_update(b, ret); +diff --git a/src/expr.c b/src/expr.c +index c7eb2b4..24f8f8c 100644 +--- a/src/expr.c ++++ b/src/expr.c +@@ -265,10 +265,10 @@ int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_ex + int ret; + unsigned int offset = 0, len = size; + +- if (!expr->ops->snprintf) ++ if (!expr->ops->snprintf_) + return 0; + +- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr); ++ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + + return offset; +diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c +index 0febc9d..9b48e79 100644 +--- a/src/expr/bitwise.c ++++ b/src/expr/bitwise.c +@@ -299,6 +299,6 @@ struct expr_ops expr_ops_bitwise = { + .get = nftnl_expr_bitwise_get, + .parse = nftnl_expr_bitwise_parse, + .build = nftnl_expr_bitwise_build, +- .snprintf = nftnl_expr_bitwise_snprintf, ++ .snprintf_ = nftnl_expr_bitwise_snprintf, + .json_parse = nftnl_expr_bitwise_json_parse, + }; +diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c +index 3805307..079582f 100644 +--- a/src/expr/byteorder.c ++++ b/src/expr/byteorder.c +@@ -314,6 +314,6 @@ struct expr_ops expr_ops_byteorder = { + .get = nftnl_expr_byteorder_get, + .parse = nftnl_expr_byteorder_parse, + .build = nftnl_expr_byteorder_build, +- .snprintf = nftnl_expr_byteorder_snprintf, ++ .snprintf_ = nftnl_expr_byteorder_snprintf, + .json_parse = nftnl_expr_byteorder_json_parse, + }; +diff --git a/src/expr/cmp.c b/src/expr/cmp.c +index 353e907..99b497c 100644 +--- a/src/expr/cmp.c ++++ b/src/expr/cmp.c +@@ -284,6 +284,6 @@ struct expr_ops expr_ops_cmp = { + .get = nftnl_expr_cmp_get, + .parse = nftnl_expr_cmp_parse, + .build = nftnl_expr_cmp_build, +- .snprintf = nftnl_expr_cmp_snprintf, ++ .snprintf_ = nftnl_expr_cmp_snprintf, + .json_parse = nftnl_expr_cmp_json_parse, + }; +diff --git a/src/expr/counter.c b/src/expr/counter.c +index 21901e8..9fd7655 100644 +--- a/src/expr/counter.c ++++ b/src/expr/counter.c +@@ -200,6 +200,6 @@ struct expr_ops expr_ops_counter = { + .get = nftnl_expr_counter_get, + .parse = nftnl_expr_counter_parse, + .build = nftnl_expr_counter_build, +- .snprintf = nftnl_expr_counter_snprintf, ++ .snprintf_ = nftnl_expr_counter_snprintf, + .json_parse = nftnl_expr_counter_json_parse, + }; +diff --git a/src/expr/ct.c b/src/expr/ct.c +index cdd08e9..6ce5478 100644 +--- a/src/expr/ct.c ++++ b/src/expr/ct.c +@@ -356,6 +356,6 @@ struct expr_ops expr_ops_ct = { + .get = nftnl_expr_ct_get, + .parse = nftnl_expr_ct_parse, + .build = nftnl_expr_ct_build, +- .snprintf = nftnl_expr_ct_snprintf, ++ .snprintf_ = nftnl_expr_ct_snprintf, + .json_parse = nftnl_expr_ct_json_parse, + }; +diff --git a/src/expr/dup.c b/src/expr/dup.c +index 9aa332b..2f491d8 100644 +--- a/src/expr/dup.c ++++ b/src/expr/dup.c +@@ -206,6 +206,6 @@ struct expr_ops expr_ops_dup = { + .get = nftnl_expr_dup_get, + .parse = nftnl_expr_dup_parse, + .build = nftnl_expr_dup_build, +- .snprintf = nftnl_expr_dup_snprintf, ++ .snprintf_ = nftnl_expr_dup_snprintf, + .json_parse = nftnl_expr_dup_json_parse, + }; +diff --git a/src/expr/dynset.c b/src/expr/dynset.c +index f7b99ea..758f07c 100644 +--- a/src/expr/dynset.c ++++ b/src/expr/dynset.c +@@ -368,6 +368,6 @@ struct expr_ops expr_ops_dynset = { + .get = nftnl_expr_dynset_get, + .parse = nftnl_expr_dynset_parse, + .build = nftnl_expr_dynset_build, +- .snprintf = nftnl_expr_dynset_snprintf, ++ .snprintf_ = nftnl_expr_dynset_snprintf, + .json_parse = nftnl_expr_dynset_json_parse, + }; +diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c +index d4f1665..a834782 100644 +--- a/src/expr/exthdr.c ++++ b/src/expr/exthdr.c +@@ -356,6 +356,6 @@ struct expr_ops expr_ops_exthdr = { + .get = nftnl_expr_exthdr_get, + .parse = nftnl_expr_exthdr_parse, + .build = nftnl_expr_exthdr_build, +- .snprintf = nftnl_expr_exthdr_snprintf, ++ .snprintf_ = nftnl_expr_exthdr_snprintf, + .json_parse = nftnl_expr_exthdr_json_parse, + }; +diff --git a/src/expr/fib.c b/src/expr/fib.c +index f3be081..3c353b2 100644 +--- a/src/expr/fib.c ++++ b/src/expr/fib.c +@@ -272,6 +272,6 @@ struct expr_ops expr_ops_fib = { + .get = nftnl_expr_fib_get, + .parse = nftnl_expr_fib_parse, + .build = nftnl_expr_fib_build, +- .snprintf = nftnl_expr_fib_snprintf, ++ .snprintf_ = nftnl_expr_fib_snprintf, + .json_parse = nftnl_expr_fib_json_parse, + }; +diff --git a/src/expr/fwd.c b/src/expr/fwd.c +index c30d494..f6e41f1 100644 +--- a/src/expr/fwd.c ++++ b/src/expr/fwd.c +@@ -180,6 +180,6 @@ struct expr_ops expr_ops_fwd = { + .get = nftnl_expr_fwd_get, + .parse = nftnl_expr_fwd_parse, + .build = nftnl_expr_fwd_build, +- .snprintf = nftnl_expr_fwd_snprintf, ++ .snprintf_ = nftnl_expr_fwd_snprintf, + .json_parse = nftnl_expr_fwd_json_parse, + }; +diff --git a/src/expr/hash.c b/src/expr/hash.c +index d870510..5acb66a 100644 +--- a/src/expr/hash.c ++++ b/src/expr/hash.c +@@ -332,6 +332,6 @@ struct expr_ops expr_ops_hash = { + .get = nftnl_expr_hash_get, + .parse = nftnl_expr_hash_parse, + .build = nftnl_expr_hash_build, +- .snprintf = nftnl_expr_hash_snprintf, ++ .snprintf_ = nftnl_expr_hash_snprintf, + .json_parse = nftnl_expr_hash_json_parse, + }; +diff --git a/src/expr/immediate.c b/src/expr/immediate.c +index 0b188cc..94bd6da 100644 +--- a/src/expr/immediate.c ++++ b/src/expr/immediate.c +@@ -316,6 +316,6 @@ struct expr_ops expr_ops_immediate = { + .get = nftnl_expr_immediate_get, + .parse = nftnl_expr_immediate_parse, + .build = nftnl_expr_immediate_build, +- .snprintf = nftnl_expr_immediate_snprintf, ++ .snprintf_ = nftnl_expr_immediate_snprintf, + .json_parse = nftnl_expr_immediate_json_parse, + }; +diff --git a/src/expr/limit.c b/src/expr/limit.c +index 856ab18..e71fc2f 100644 +--- a/src/expr/limit.c ++++ b/src/expr/limit.c +@@ -285,6 +285,6 @@ struct expr_ops expr_ops_limit = { + .get = nftnl_expr_limit_get, + .parse = nftnl_expr_limit_parse, + .build = nftnl_expr_limit_build, +- .snprintf = nftnl_expr_limit_snprintf, ++ .snprintf_ = nftnl_expr_limit_snprintf, + .json_parse = nftnl_expr_limit_json_parse, + }; +diff --git a/src/expr/log.c b/src/expr/log.c +index b642255..71dd83a 100644 +--- a/src/expr/log.c ++++ b/src/expr/log.c +@@ -352,6 +352,6 @@ struct expr_ops expr_ops_log = { + .get = nftnl_expr_log_get, + .parse = nftnl_expr_log_parse, + .build = nftnl_expr_log_build, +- .snprintf = nftnl_expr_log_snprintf, ++ .snprintf_ = nftnl_expr_log_snprintf, + .json_parse = nftnl_expr_log_json_parse, + }; +diff --git a/src/expr/lookup.c b/src/expr/lookup.c +index 861815f..6049913 100644 +--- a/src/expr/lookup.c ++++ b/src/expr/lookup.c +@@ -293,6 +293,6 @@ struct expr_ops expr_ops_lookup = { + .get = nftnl_expr_lookup_get, + .parse = nftnl_expr_lookup_parse, + .build = nftnl_expr_lookup_build, +- .snprintf = nftnl_expr_lookup_snprintf, ++ .snprintf_ = nftnl_expr_lookup_snprintf, + .json_parse = nftnl_expr_lookup_json_parse, + }; +diff --git a/src/expr/masq.c b/src/expr/masq.c +index 7c235d3..adec325 100644 +--- a/src/expr/masq.c ++++ b/src/expr/masq.c +@@ -228,6 +228,6 @@ struct expr_ops expr_ops_masq = { + .get = nftnl_expr_masq_get, + .parse = nftnl_expr_masq_parse, + .build = nftnl_expr_masq_build, +- .snprintf = nftnl_expr_masq_snprintf, ++ .snprintf_ = nftnl_expr_masq_snprintf, + .json_parse = nftnl_expr_masq_json_parse, + }; +diff --git a/src/expr/match.c b/src/expr/match.c +index dd09e1e..f0d8868 100644 +--- a/src/expr/match.c ++++ b/src/expr/match.c +@@ -249,6 +249,6 @@ struct expr_ops expr_ops_match = { + .get = nftnl_expr_match_get, + .parse = nftnl_expr_match_parse, + .build = nftnl_expr_match_build, +- .snprintf = nftnl_expr_match_snprintf, ++ .snprintf_ = nftnl_expr_match_snprintf, + .json_parse = nftnl_expr_match_json_parse, + }; +diff --git a/src/expr/meta.c b/src/expr/meta.c +index 2c75841..907a677 100644 +--- a/src/expr/meta.c ++++ b/src/expr/meta.c +@@ -290,6 +290,6 @@ struct expr_ops expr_ops_meta = { + .get = nftnl_expr_meta_get, + .parse = nftnl_expr_meta_parse, + .build = nftnl_expr_meta_build, +- .snprintf = nftnl_expr_meta_snprintf, ++ .snprintf_ = nftnl_expr_meta_snprintf, + .json_parse = nftnl_expr_meta_json_parse, + }; +diff --git a/src/expr/nat.c b/src/expr/nat.c +index 29bc3a2..d476283 100644 +--- a/src/expr/nat.c ++++ b/src/expr/nat.c +@@ -383,6 +383,6 @@ struct expr_ops expr_ops_nat = { + .get = nftnl_expr_nat_get, + .parse = nftnl_expr_nat_parse, + .build = nftnl_expr_nat_build, +- .snprintf = nftnl_expr_nat_snprintf, ++ .snprintf_ = nftnl_expr_nat_snprintf, + .json_parse = nftnl_expr_nat_json_parse, + }; +diff --git a/src/expr/numgen.c b/src/expr/numgen.c +index a15f03a..28ef741 100644 +--- a/src/expr/numgen.c ++++ b/src/expr/numgen.c +@@ -264,6 +264,6 @@ struct expr_ops expr_ops_ng = { + .get = nftnl_expr_ng_get, + .parse = nftnl_expr_ng_parse, + .build = nftnl_expr_ng_build, +- .snprintf = nftnl_expr_ng_snprintf, ++ .snprintf_ = nftnl_expr_ng_snprintf, + .json_parse = nftnl_expr_ng_json_parse, + }; +diff --git a/src/expr/objref.c b/src/expr/objref.c +index 4cfa3cb..c394290 100644 +--- a/src/expr/objref.c ++++ b/src/expr/objref.c +@@ -278,6 +278,6 @@ struct expr_ops expr_ops_objref = { + .get = nftnl_expr_objref_get, + .parse = nftnl_expr_objref_parse, + .build = nftnl_expr_objref_build, +- .snprintf = nftnl_expr_objref_snprintf, ++ .snprintf_ = nftnl_expr_objref_snprintf, + .json_parse = nftnl_expr_objref_json_parse, + }; +diff --git a/src/expr/payload.c b/src/expr/payload.c +index 91e1587..894ac08 100644 +--- a/src/expr/payload.c ++++ b/src/expr/payload.c +@@ -348,6 +348,6 @@ struct expr_ops expr_ops_payload = { + .get = nftnl_expr_payload_get, + .parse = nftnl_expr_payload_parse, + .build = nftnl_expr_payload_build, +- .snprintf = nftnl_expr_payload_snprintf, ++ .snprintf_ = nftnl_expr_payload_snprintf, + .json_parse = nftnl_expr_payload_json_parse, + }; +diff --git a/src/expr/queue.c b/src/expr/queue.c +index 8a9deda..389af83 100644 +--- a/src/expr/queue.c ++++ b/src/expr/queue.c +@@ -276,6 +276,6 @@ struct expr_ops expr_ops_queue = { + .get = nftnl_expr_queue_get, + .parse = nftnl_expr_queue_parse, + .build = nftnl_expr_queue_build, +- .snprintf = nftnl_expr_queue_snprintf, ++ .snprintf_ = nftnl_expr_queue_snprintf, + .json_parse = nftnl_expr_queue_json_parse, + }; +diff --git a/src/expr/quota.c b/src/expr/quota.c +index 667e6e1..ff5d182 100644 +--- a/src/expr/quota.c ++++ b/src/expr/quota.c +@@ -203,6 +203,6 @@ struct expr_ops expr_ops_quota = { + .get = nftnl_expr_quota_get, + .parse = nftnl_expr_quota_parse, + .build = nftnl_expr_quota_build, +- .snprintf = nftnl_expr_quota_snprintf, ++ .snprintf_ = nftnl_expr_quota_snprintf, + .json_parse = nftnl_expr_quota_json_parse, + }; +diff --git a/src/expr/range.c b/src/expr/range.c +index 8c8ce12..34d422b 100644 +--- a/src/expr/range.c ++++ b/src/expr/range.c +@@ -283,6 +283,6 @@ struct expr_ops expr_ops_range = { + .get = nftnl_expr_range_get, + .parse = nftnl_expr_range_parse, + .build = nftnl_expr_range_build, +- .snprintf = nftnl_expr_range_snprintf, ++ .snprintf_ = nftnl_expr_range_snprintf, + .json_parse = nftnl_expr_range_json_parse, + }; +diff --git a/src/expr/redir.c b/src/expr/redir.c +index 43538d5..8a21f93 100644 +--- a/src/expr/redir.c ++++ b/src/expr/redir.c +@@ -242,6 +242,6 @@ struct expr_ops expr_ops_redir = { + .get = nftnl_expr_redir_get, + .parse = nftnl_expr_redir_parse, + .build = nftnl_expr_redir_build, +- .snprintf = nftnl_expr_redir_snprintf, ++ .snprintf_ = nftnl_expr_redir_snprintf, + .json_parse = nftnl_expr_redir_json_parse, + }; +diff --git a/src/expr/reject.c b/src/expr/reject.c +index 11d8b20..b10e729 100644 +--- a/src/expr/reject.c ++++ b/src/expr/reject.c +@@ -200,6 +200,6 @@ struct expr_ops expr_ops_reject = { + .get = nftnl_expr_reject_get, + .parse = nftnl_expr_reject_parse, + .build = nftnl_expr_reject_build, +- .snprintf = nftnl_expr_reject_snprintf, ++ .snprintf_ = nftnl_expr_reject_snprintf, + .json_parse = nftnl_expr_reject_json_parse, + }; +diff --git a/src/expr/rt.c b/src/expr/rt.c +index 5088e66..9f44b29 100644 +--- a/src/expr/rt.c ++++ b/src/expr/rt.c +@@ -238,6 +238,6 @@ struct expr_ops expr_ops_rt = { + .get = nftnl_expr_rt_get, + .parse = nftnl_expr_rt_parse, + .build = nftnl_expr_rt_build, +- .snprintf = nftnl_expr_rt_snprintf, ++ .snprintf_ = nftnl_expr_rt_snprintf, + .json_parse = nftnl_expr_rt_json_parse, + }; +diff --git a/src/expr/target.c b/src/expr/target.c +index ed4bf7d..2ef4078 100644 +--- a/src/expr/target.c ++++ b/src/expr/target.c +@@ -249,6 +249,6 @@ struct expr_ops expr_ops_target = { + .get = nftnl_expr_target_get, + .parse = nftnl_expr_target_parse, + .build = nftnl_expr_target_build, +- .snprintf = nftnl_expr_target_snprintf, ++ .snprintf_ = nftnl_expr_target_snprintf, + .json_parse = nftnl_expr_target_json_parse, + }; +diff --git a/src/obj/counter.c b/src/obj/counter.c +index beadc93..8c4cc25 100644 +--- a/src/obj/counter.c ++++ b/src/obj/counter.c +@@ -179,6 +179,6 @@ struct obj_ops obj_ops_counter = { + .get = nftnl_obj_counter_get, + .parse = nftnl_obj_counter_parse, + .build = nftnl_obj_counter_build, +- .snprintf = nftnl_obj_counter_snprintf, ++ .snprintf_ = nftnl_obj_counter_snprintf, + .json_parse = nftnl_obj_counter_json_parse, + }; +diff --git a/src/obj/ct_helper.c b/src/obj/ct_helper.c +index d6d3111..4c7c88b 100644 +--- a/src/obj/ct_helper.c ++++ b/src/obj/ct_helper.c +@@ -205,6 +205,6 @@ struct obj_ops obj_ops_ct_helper = { + .get = nftnl_obj_ct_helper_get, + .parse = nftnl_obj_ct_helper_parse, + .build = nftnl_obj_ct_helper_build, +- .snprintf = nftnl_obj_ct_helper_snprintf, ++ .snprintf_ = nftnl_obj_ct_helper_snprintf, + .json_parse = nftnl_obj_quota_json_parse, + }; +diff --git a/src/obj/quota.c b/src/obj/quota.c +index d5757b2..e959ff8 100644 +--- a/src/obj/quota.c ++++ b/src/obj/quota.c +@@ -200,6 +200,6 @@ struct obj_ops obj_ops_quota = { + .get = nftnl_obj_quota_get, + .parse = nftnl_obj_quota_parse, + .build = nftnl_obj_quota_build, +- .snprintf = nftnl_obj_quota_snprintf, ++ .snprintf_ = nftnl_obj_quota_snprintf, + .json_parse = nftnl_obj_quota_json_parse, + }; +diff --git a/src/object.c b/src/object.c +index d409c6d..b938c97 100644 +--- a/src/object.c ++++ b/src/object.c +@@ -389,7 +389,7 @@ static int nftnl_obj_export(char *buf, size_t size, + nftnl_buf_u32(&b, type, obj->use, USE); + + if (obj->ops) +- ret = obj->ops->snprintf(buf + b.len, size - b.len, type, ++ ret = obj->ops->snprintf_(buf + b.len, size - b.len, type, + flags, obj); + + b.len += ret; +@@ -410,7 +410,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size, + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + + if (obj->ops) { +- ret = obj->ops->snprintf(buf + offset, offset, type, flags, obj); ++ ret = obj->ops->snprintf_(buf + offset, offset, type, flags, obj); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + } + ret = snprintf(buf + offset, offset, "]"); +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch new file mode 100644 index 0000000000..0453b1b496 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl/snprintf_shadow.patch @@ -0,0 +1,224 @@ +Taken from +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755956 + +--- ./src/expr_ops.h 2014-06-24 17:07:05.574784704 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr_ops.h 2014-07-25 00:19:28.367694613 +0400 +@@ -28,7 +28,7 @@ + const void *(*get)(const struct nft_rule_expr *e, uint16_t type, uint32_t *data_len); + int (*parse)(struct nft_rule_expr *e, struct nlattr *attr); + void (*build)(struct nlmsghdr *nlh, struct nft_rule_expr *e); +- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, struct nft_rule_expr *e); ++ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, struct nft_rule_expr *e); + int (*xml_parse)(struct nft_rule_expr *e, mxml_node_t *tree, + struct nft_parse_err *err); + int (*json_parse)(struct nft_rule_expr *e, json_t *data, +--- ./src/rule.c 2014-06-24 17:07:05.574784704 +0400 ++++ ../libnftnl-1.0.2-my/./src/rule.c 2014-07-25 00:19:28.355694880 +0400 +@@ -813,7 +813,7 @@ + "{\"type\":\"%s\",", expr->ops->name); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + +- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr); ++ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + + /* +--- ./src/expr.c 2014-06-24 17:07:05.574784704 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr.c 2014-07-25 00:19:27.367716863 +0400 +@@ -227,7 +227,7 @@ + int ret; + unsigned int offset = 0, len = size; + +- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr); ++ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + + return offset; +--- ./src/expr/exthdr.c 2014-06-25 18:34:08.174284719 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/exthdr.c 2014-07-25 00:21:48.192583628 +0400 +@@ -362,7 +362,7 @@ + .get = nft_rule_expr_exthdr_get, + .parse = nft_rule_expr_exthdr_parse, + .build = nft_rule_expr_exthdr_build, +- .snprintf = nft_rule_expr_exthdr_snprintf, ++ .snprintf_ = nft_rule_expr_exthdr_snprintf, + .xml_parse = nft_rule_expr_exthdr_xml_parse, + .json_parse = nft_rule_expr_exthdr_json_parse, + }; +--- ./src/expr/log.c 2014-06-25 18:34:08.178284810 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/log.c 2014-07-25 00:21:48.160584340 +0400 +@@ -332,7 +332,7 @@ + .get = nft_rule_expr_log_get, + .parse = nft_rule_expr_log_parse, + .build = nft_rule_expr_log_build, +- .snprintf = nft_rule_expr_log_snprintf, ++ .snprintf_ = nft_rule_expr_log_snprintf, + .xml_parse = nft_rule_expr_log_xml_parse, + .json_parse = nft_rule_expr_log_json_parse, + }; +--- ./src/expr/limit.c 2014-06-25 18:34:08.178284810 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/limit.c 2014-07-25 00:21:48.108585496 +0400 +@@ -250,7 +250,7 @@ + .get = nft_rule_expr_limit_get, + .parse = nft_rule_expr_limit_parse, + .build = nft_rule_expr_limit_build, +- .snprintf = nft_rule_expr_limit_snprintf, ++ .snprintf_ = nft_rule_expr_limit_snprintf, + .xml_parse = nft_rule_expr_limit_xml_parse, + .json_parse = nft_rule_expr_limit_json_parse, + }; +--- ./src/expr/cmp.c 2014-06-25 18:34:08.174284719 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/cmp.c 2014-07-25 00:21:48.172584073 +0400 +@@ -331,7 +331,7 @@ + .get = nft_rule_expr_cmp_get, + .parse = nft_rule_expr_cmp_parse, + .build = nft_rule_expr_cmp_build, +- .snprintf = nft_rule_expr_cmp_snprintf, ++ .snprintf_ = nft_rule_expr_cmp_snprintf, + .xml_parse = nft_rule_expr_cmp_xml_parse, + .json_parse = nft_rule_expr_cmp_json_parse, + }; +--- ./src/expr/target.c 2014-06-25 18:34:08.182284901 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/target.c 2014-07-25 00:21:48.184583806 +0400 +@@ -274,7 +274,7 @@ + .get = nft_rule_expr_target_get, + .parse = nft_rule_expr_target_parse, + .build = nft_rule_expr_target_build, +- .snprintf = nft_rule_expr_target_snprintf, ++ .snprintf_ = nft_rule_expr_target_snprintf, + .xml_parse = nft_rule_expr_target_xml_parse, + .json_parse = nft_rule_expr_target_json_parse, + }; +--- ./src/expr/byteorder.c 2014-06-25 18:34:08.158284356 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/byteorder.c 2014-07-25 00:21:48.148584607 +0400 +@@ -384,7 +384,7 @@ + .get = nft_rule_expr_byteorder_get, + .parse = nft_rule_expr_byteorder_parse, + .build = nft_rule_expr_byteorder_build, +- .snprintf = nft_rule_expr_byteorder_snprintf, ++ .snprintf_ = nft_rule_expr_byteorder_snprintf, + .xml_parse = nft_rule_expr_byteorder_xml_parse, + .json_parse = nft_rule_expr_byteorder_json_parse, + }; +--- ./src/expr/lookup.c 2014-06-25 18:34:08.178284810 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/lookup.c 2014-07-25 00:21:48.136584874 +0400 +@@ -305,7 +305,7 @@ + .get = nft_rule_expr_lookup_get, + .parse = nft_rule_expr_lookup_parse, + .build = nft_rule_expr_lookup_build, +- .snprintf = nft_rule_expr_lookup_snprintf, ++ .snprintf_ = nft_rule_expr_lookup_snprintf, + .xml_parse = nft_rule_expr_lookup_xml_parse, + .json_parse = nft_rule_expr_lookup_json_parse, + }; +--- ./src/expr/immediate.c 2014-06-25 18:34:08.178284810 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/immediate.c 2014-07-25 00:21:48.124585141 +0400 +@@ -365,7 +365,7 @@ + .get = nft_rule_expr_immediate_get, + .parse = nft_rule_expr_immediate_parse, + .build = nft_rule_expr_immediate_build, +- .snprintf = nft_rule_expr_immediate_snprintf, ++ .snprintf_ = nft_rule_expr_immediate_snprintf, + .xml_parse = nft_rule_expr_immediate_xml_parse, + .json_parse = nft_rule_expr_immediate_json_parse, + }; +--- ./src/expr/meta.c 2014-06-25 18:34:08.178284810 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/meta.c 2014-07-25 00:21:48.040587008 +0400 +@@ -340,7 +340,7 @@ + .get = nft_rule_expr_meta_get, + .parse = nft_rule_expr_meta_parse, + .build = nft_rule_expr_meta_build, +- .snprintf = nft_rule_expr_meta_snprintf, ++ .snprintf_ = nft_rule_expr_meta_snprintf, + .xml_parse = nft_rule_expr_meta_xml_parse, + .json_parse = nft_rule_expr_meta_json_parse, + }; +--- ./src/expr/queue.c 2014-06-25 18:34:08.182284901 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/queue.c 2014-07-25 00:21:48.208583272 +0400 +@@ -294,7 +294,7 @@ + .get = nft_rule_expr_queue_get, + .parse = nft_rule_expr_queue_parse, + .build = nft_rule_expr_queue_build, +- .snprintf = nft_rule_expr_queue_snprintf, ++ .snprintf_ = nft_rule_expr_queue_snprintf, + .xml_parse = nft_rule_expr_queue_xml_parse, + .json_parse = nft_rule_expr_queue_json_parse, + }; +--- ./src/expr/nat.c 2014-06-25 18:34:08.182284901 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/nat.c 2014-07-25 00:21:48.084586030 +0400 +@@ -430,7 +430,7 @@ + .get = nft_rule_expr_nat_get, + .parse = nft_rule_expr_nat_parse, + .build = nft_rule_expr_nat_build, +- .snprintf = nft_rule_expr_nat_snprintf, ++ .snprintf_ = nft_rule_expr_nat_snprintf, + .xml_parse = nft_rule_expr_nat_xml_parse, + .json_parse = nft_rule_expr_nat_json_parse, + }; +--- ./src/expr/payload.c 2014-06-25 18:34:08.182284901 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/payload.c 2014-07-25 00:21:48.200583450 +0400 +@@ -337,7 +337,7 @@ + .get = nft_rule_expr_payload_get, + .parse = nft_rule_expr_payload_parse, + .build = nft_rule_expr_payload_build, +- .snprintf = nft_rule_expr_payload_snprintf, ++ .snprintf_ = nft_rule_expr_payload_snprintf, + .xml_parse = nft_rule_expr_payload_xml_parse, + .json_parse = nft_rule_expr_payload_json_parse, + }; +--- ./src/expr/reject.c 2014-06-25 18:34:08.182284901 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/reject.c 2014-07-25 00:21:48.096585762 +0400 +@@ -242,7 +242,7 @@ + .get = nft_rule_expr_reject_get, + .parse = nft_rule_expr_reject_parse, + .build = nft_rule_expr_reject_build, +- .snprintf = nft_rule_expr_reject_snprintf, ++ .snprintf_ = nft_rule_expr_reject_snprintf, + .xml_parse = nft_rule_expr_reject_xml_parse, + .json_parse = nft_rule_expr_reject_json_parse, + }; +--- ./src/expr/counter.c 2014-06-25 18:34:08.174284719 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/counter.c 2014-07-25 00:21:48.056586652 +0400 +@@ -236,7 +236,7 @@ + .get = nft_rule_expr_counter_get, + .parse = nft_rule_expr_counter_parse, + .build = nft_rule_expr_counter_build, +- .snprintf = nft_rule_expr_counter_snprintf, ++ .snprintf_ = nft_rule_expr_counter_snprintf, + .xml_parse = nft_rule_expr_counter_xml_parse, + .json_parse = nft_rule_expr_counter_json_parse, + }; +--- ./src/expr/ct.c 2014-06-25 18:34:08.174284719 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/ct.c 2014-07-25 00:21:48.068586385 +0400 +@@ -428,7 +428,7 @@ + .get = nft_rule_expr_ct_get, + .parse = nft_rule_expr_ct_parse, + .build = nft_rule_expr_ct_build, +- .snprintf = nft_rule_expr_ct_snprintf, ++ .snprintf_ = nft_rule_expr_ct_snprintf, + .xml_parse = nft_rule_expr_ct_xml_parse, + .json_parse = nft_rule_expr_ct_json_parse, + }; +--- ./src/expr/bitwise.c 2014-06-25 18:34:08.158284356 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/bitwise.c 2014-07-25 00:21:49.272559599 +0400 +@@ -403,7 +403,7 @@ + .get = nft_rule_expr_bitwise_get, + .parse = nft_rule_expr_bitwise_parse, + .build = nft_rule_expr_bitwise_build, +- .snprintf = nft_rule_expr_bitwise_snprintf, ++ .snprintf_ = nft_rule_expr_bitwise_snprintf, + .xml_parse = nft_rule_expr_bitwise_xml_parse, + .json_parse = nft_rule_expr_bitwise_json_parse, + }; +--- ./src/expr/match.c 2014-06-25 18:34:08.178284810 +0400 ++++ ../libnftnl-1.0.2-my/./src/expr/match.c 2014-07-25 00:21:48.032587186 +0400 +@@ -273,7 +273,7 @@ + .get = nft_rule_expr_match_get, + .parse = nft_rule_expr_match_parse, + .build = nft_rule_expr_match_build, +- .snprintf = nft_rule_expr_match_snprintf, ++ .snprintf_ = nft_rule_expr_match_snprintf, + .xml_parse = nft_rule_expr_match_xml_parse, + .json_parse = nft_rule_expr_match_json_parse, + }; + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.6.bb deleted file mode 100644 index 72aec19d2e..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.6.bb +++ /dev/null @@ -1,13 +0,0 @@ -SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26" -SECTION = "libs" -DEPENDS = "libmnl" - -SRC_URI = "http://netfilter.org/projects/libnftnl/files/${BP}.tar.bz2 \ - " - -SRC_URI[md5sum] = "6d7f9f161538ca7efd535dcc70caf964" -SRC_URI[sha256sum] = "ad3b932a39a1e567308e91b683b32239a5e1aea9b4582dfffe2288c3400ab07e" - -inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb new file mode 100644 index 0000000000..ca01c0a611 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb @@ -0,0 +1,17 @@ +SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26" +SECTION = "libs" +DEPENDS = "libmnl" +PV .= "+git${SRCPV}" +SRCREV = "4b89c0cb0883f638ff1abbc2ff47c43cdc26aac5" +SRC_URI = "git://git.netfilter.org/libnftnl \ + file://0001-Declare-the-define-visivility-attribute-together.patch \ + file://0001-avoid-naming-local-function-as-one-of-printf-family.patch \ + " +SRC_URI[md5sum] = "82183867168eb6644926c48b991b8aac" +SRC_URI[sha256sum] = "9bb66ecbc64b8508249402f0093829f44177770ad99f6042b86b3a467d963982" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb index d92f7c045d..8177ebcc2a 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb @@ -3,7 +3,7 @@ HOMEPAGE = "http://netfilter.org/projects/nfacct/" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -SRC_URI = "ftp://ftp.netfilter.org/pub/nfacct/nfacct-1.0.2.tar.bz2" +SRC_URI = "ftp://ftp.netfilter.org/pub/${BPN}/${BP}.tar.bz2" SRC_URI[md5sum] = "94faafdaaed85ca9220c5692be8a408e" SRC_URI[sha256sum] = "ecff2218754be318bce3c3a5d1775bab93bf4168b2c4aac465785de5655fbd69" @@ -11,7 +11,5 @@ DEPENDS = "libnfnetlink libmnl libnetfilter-acct" EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"' -S = "${WORKDIR}/nfacct-${PV}" - inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch new file mode 100644 index 0000000000..86a3d53dfd --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch @@ -0,0 +1,323 @@ +From 0011985554e269e1cc8f8e5b41eb9dcd795ebe8c Mon Sep 17 00:00:00 2001 +From: Arturo Borrero Gonzalez <arturo@debian.org> +Date: Wed, 25 Jan 2017 12:51:08 +0100 +Subject: [PATCH] payload: explicit network ctx assignment for icmp/icmp6 in + special families + +In the inet, bridge and netdev families, we can add rules like these: + +% nft add rule inet t c ip protocol icmp icmp type echo-request +% nft add rule inet t c ip6 nexthdr icmpv6 icmpv6 type echo-request + +However, when we print the ruleset: + +% nft list ruleset +table inet t { + chain c { + icmpv6 type echo-request + icmp type echo-request + } +} + +These rules we obtain can't be added again: + +% nft add rule inet t c icmp type echo-request +<cmdline>:1:19-27: Error: conflicting protocols specified: inet-service vs. icmp +add rule inet t c icmp type echo-request + ^^^^^^^^^ + +% nft add rule inet t c icmpv6 type echo-request +<cmdline>:1:19-29: Error: conflicting protocols specified: inet-service vs. icmpv6 +add rule inet t c icmpv6 type echo-request + ^^^^^^^^^^^ + +Since I wouldn't expect an IP packet carrying ICMPv6, or IPv6 packet +carrying ICMP, if the link layer is inet, the network layer protocol context +can be safely update to 'ip' or 'ip6'. + +Moreover, nft currently generates a 'meta nfproto ipvX' depedency when +using icmp or icmp6 in the inet family, and similar in netdev and bridge +families. + +While at it, a bit of code factorization is introduced. + +Fixes: https://bugzilla.netfilter.org/show_bug.cgi?id=1073 +Signed-off-by: Arturo Borrero Gonzalez <arturo@debian.org> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- +Upstream-Status: Backport +Signed-off-by: André Draszik <adraszik@tycoint.com> + src/payload.c | 70 ++++++++++++++++--------------------- + tests/py/any/icmpX.t.netdev | 8 +++++ + tests/py/any/icmpX.t.netdev.payload | 36 +++++++++++++++++++ + tests/py/bridge/icmpX.t | 8 +++++ + tests/py/bridge/icmpX.t.payload | 36 +++++++++++++++++++ + tests/py/inet/icmpX.t | 8 +++++ + tests/py/inet/icmpX.t.payload | 36 +++++++++++++++++++ + 7 files changed, 162 insertions(+), 40 deletions(-) + create mode 100644 tests/py/any/icmpX.t.netdev + create mode 100644 tests/py/any/icmpX.t.netdev.payload + create mode 100644 tests/py/bridge/icmpX.t + create mode 100644 tests/py/bridge/icmpX.t.payload + create mode 100644 tests/py/inet/icmpX.t + create mode 100644 tests/py/inet/icmpX.t.payload + +diff --git a/src/payload.c b/src/payload.c +index af533b2..74f8254 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -223,6 +223,34 @@ static int payload_add_dependency(struct eval_ctx *ctx, + return 0; + } + ++static const struct proto_desc * ++payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr) ++{ ++ switch (expr->payload.base) { ++ case PROTO_BASE_LL_HDR: ++ switch (ctx->pctx.family) { ++ case NFPROTO_INET: ++ return &proto_inet; ++ case NFPROTO_BRIDGE: ++ return &proto_eth; ++ case NFPROTO_NETDEV: ++ return &proto_netdev; ++ default: ++ break; ++ } ++ break; ++ case PROTO_BASE_TRANSPORT_HDR: ++ if (expr->payload.desc == &proto_icmp) ++ return &proto_ip; ++ if (expr->payload.desc == &proto_icmp6) ++ return &proto_ip6; ++ return &proto_inet_service; ++ default: ++ break; ++ } ++ return NULL; ++} ++ + /** + * payload_gen_dependency - generate match expression on payload dependency + * +@@ -276,46 +304,8 @@ int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr, + + desc = ctx->pctx.protocol[expr->payload.base - 1].desc; + /* Special case for mixed IPv4/IPv6 and bridge tables */ +- if (desc == NULL) { +- switch (ctx->pctx.family) { +- case NFPROTO_INET: +- switch (expr->payload.base) { +- case PROTO_BASE_LL_HDR: +- desc = &proto_inet; +- break; +- case PROTO_BASE_TRANSPORT_HDR: +- desc = &proto_inet_service; +- break; +- default: +- break; +- } +- break; +- case NFPROTO_BRIDGE: +- switch (expr->payload.base) { +- case PROTO_BASE_LL_HDR: +- desc = &proto_eth; +- break; +- case PROTO_BASE_TRANSPORT_HDR: +- desc = &proto_inet_service; +- break; +- default: +- break; +- } +- break; +- case NFPROTO_NETDEV: +- switch (expr->payload.base) { +- case PROTO_BASE_LL_HDR: +- desc = &proto_netdev; +- break; +- case PROTO_BASE_TRANSPORT_HDR: +- desc = &proto_inet_service; +- break; +- default: +- break; +- } +- break; +- } +- } ++ if (desc == NULL) ++ desc = payload_gen_special_dependency(ctx, expr); + + if (desc == NULL) + return expr_error(ctx->msgs, expr, +diff --git a/tests/py/any/icmpX.t.netdev b/tests/py/any/icmpX.t.netdev +new file mode 100644 +index 0000000..a327ce6 +--- /dev/null ++++ b/tests/py/any/icmpX.t.netdev +@@ -0,0 +1,8 @@ ++:ingress;type filter hook ingress device lo priority 0 ++ ++*netdev;test-netdev;ingress ++ ++ip protocol icmp icmp type echo-request;ok;icmp type echo-request ++icmp type echo-request;ok ++ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request ++icmpv6 type echo-request;ok +diff --git a/tests/py/any/icmpX.t.netdev.payload b/tests/py/any/icmpX.t.netdev.payload +new file mode 100644 +index 0000000..8b8107c +--- /dev/null ++++ b/tests/py/any/icmpX.t.netdev.payload +@@ -0,0 +1,36 @@ ++# ip protocol icmp icmp type echo-request ++netdev test-netdev ingress ++ [ meta load protocol => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# icmp type echo-request ++netdev test-netdev ingress ++ [ meta load protocol => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# ip6 nexthdr icmpv6 icmpv6 type echo-request ++netdev test-netdev ingress ++ [ meta load protocol => reg 1 ] ++ [ cmp eq reg 1 0x0000dd86 ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ ++# icmpv6 type echo-request ++netdev test-netdev ingress ++ [ meta load protocol => reg 1 ] ++ [ cmp eq reg 1 0x0000dd86 ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ +diff --git a/tests/py/bridge/icmpX.t b/tests/py/bridge/icmpX.t +new file mode 100644 +index 0000000..8c0a597 +--- /dev/null ++++ b/tests/py/bridge/icmpX.t +@@ -0,0 +1,8 @@ ++:input;type filter hook input priority 0 ++ ++*bridge;test-bridge;input ++ ++ip protocol icmp icmp type echo-request;ok;icmp type echo-request ++icmp type echo-request;ok ++ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request ++icmpv6 type echo-request;ok +diff --git a/tests/py/bridge/icmpX.t.payload b/tests/py/bridge/icmpX.t.payload +new file mode 100644 +index 0000000..19efdd8 +--- /dev/null ++++ b/tests/py/bridge/icmpX.t.payload +@@ -0,0 +1,36 @@ ++# ip protocol icmp icmp type echo-request ++bridge test-bridge input ++ [ payload load 2b @ link header + 12 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# icmp type echo-request ++bridge test-bridge input ++ [ payload load 2b @ link header + 12 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# ip6 nexthdr icmpv6 icmpv6 type echo-request ++bridge test-bridge input ++ [ payload load 2b @ link header + 12 => reg 1 ] ++ [ cmp eq reg 1 0x0000dd86 ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ ++# icmpv6 type echo-request ++bridge test-bridge input ++ [ payload load 2b @ link header + 12 => reg 1 ] ++ [ cmp eq reg 1 0x0000dd86 ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ +diff --git a/tests/py/inet/icmpX.t b/tests/py/inet/icmpX.t +new file mode 100644 +index 0000000..1b467a1 +--- /dev/null ++++ b/tests/py/inet/icmpX.t +@@ -0,0 +1,8 @@ ++:input;type filter hook input priority 0 ++ ++*inet;test-inet;input ++ ++ip protocol icmp icmp type echo-request;ok;icmp type echo-request ++icmp type echo-request;ok ++ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request ++icmpv6 type echo-request;ok +diff --git a/tests/py/inet/icmpX.t.payload b/tests/py/inet/icmpX.t.payload +new file mode 100644 +index 0000000..81ca774 +--- /dev/null ++++ b/tests/py/inet/icmpX.t.payload +@@ -0,0 +1,36 @@ ++# ip protocol icmp icmp type echo-request ++inet test-inet input ++ [ meta load nfproto => reg 1 ] ++ [ cmp eq reg 1 0x00000002 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# icmp type echo-request ++inet test-inet input ++ [ meta load nfproto => reg 1 ] ++ [ cmp eq reg 1 0x00000002 ] ++ [ payload load 1b @ network header + 9 => reg 1 ] ++ [ cmp eq reg 1 0x00000001 ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000008 ] ++ ++# ip6 nexthdr icmpv6 icmpv6 type echo-request ++inet test-inet input ++ [ meta load nfproto => reg 1 ] ++ [ cmp eq reg 1 0x0000000a ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ ++# icmpv6 type echo-request ++inet test-inet input ++ [ meta load nfproto => reg 1 ] ++ [ cmp eq reg 1 0x0000000a ] ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000080 ] ++ +-- +2.11.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch new file mode 100644 index 0000000000..4d9e9d11a4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch @@ -0,0 +1,147 @@ +From 9ade8fb75f8963375b45b3f2973b8bb7aa66ad76 Mon Sep 17 00:00:00 2001 +From: Phil Sutter <phil@nwl.cc> +Date: Thu, 16 Mar 2017 13:43:20 +0100 +Subject: [PATCH] proto: Add some exotic ICMPv6 types + +This adds support for matching on inverse ND messages as defined by +RFC3122 (not implemented in Linux) and MLDv2 as defined by RFC3810. + +Note that ICMPV6_MLD2_REPORT macro is defined in linux/icmpv6.h but +including that header leads to conflicts with symbols defined in +netinet/icmp6.h. + +In addition to the above, "mld-listener-done" is introduced as an alias +for "mld-listener-reduction". + +Signed-off-by: Phil Sutter <phil@nwl.cc> +Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> +--- +Upstream-Status: Backport +Signed-off-by: André Draszik <adraszik@tycoint.com> + src/proto.c | 8 ++++++++ + tests/py/ip6/icmpv6.t | 8 ++++++-- + tests/py/ip6/icmpv6.t.payload.ip6 | 34 +++++++++++++++++++++++++++++++++- + 3 files changed, 47 insertions(+), 3 deletions(-) + +diff --git a/src/proto.c b/src/proto.c +index fb96530..79e9dbf 100644 +--- a/src/proto.c ++++ b/src/proto.c +@@ -632,6 +632,10 @@ const struct proto_desc proto_ip = { + + #include <netinet/icmp6.h> + ++#define IND_NEIGHBOR_SOLICIT 141 ++#define IND_NEIGHBOR_ADVERT 142 ++#define ICMPV6_MLD2_REPORT 143 ++ + static const struct symbol_table icmp6_type_tbl = { + .base = BASE_DECIMAL, + .symbols = { +@@ -643,6 +647,7 @@ static const struct symbol_table icmp6_type_tbl = { + SYMBOL("echo-reply", ICMP6_ECHO_REPLY), + SYMBOL("mld-listener-query", MLD_LISTENER_QUERY), + SYMBOL("mld-listener-report", MLD_LISTENER_REPORT), ++ SYMBOL("mld-listener-done", MLD_LISTENER_REDUCTION), + SYMBOL("mld-listener-reduction", MLD_LISTENER_REDUCTION), + SYMBOL("nd-router-solicit", ND_ROUTER_SOLICIT), + SYMBOL("nd-router-advert", ND_ROUTER_ADVERT), +@@ -650,6 +655,9 @@ static const struct symbol_table icmp6_type_tbl = { + SYMBOL("nd-neighbor-advert", ND_NEIGHBOR_ADVERT), + SYMBOL("nd-redirect", ND_REDIRECT), + SYMBOL("router-renumbering", ICMP6_ROUTER_RENUMBERING), ++ SYMBOL("ind-neighbor-solicit", IND_NEIGHBOR_SOLICIT), ++ SYMBOL("ind-neighbor-advert", IND_NEIGHBOR_ADVERT), ++ SYMBOL("mld2-listener-report", ICMPV6_MLD2_REPORT), + SYMBOL_LIST_END + }, + }; +diff --git a/tests/py/ip6/icmpv6.t b/tests/py/ip6/icmpv6.t +index afbd451..a898fe3 100644 +--- a/tests/py/ip6/icmpv6.t ++++ b/tests/py/ip6/icmpv6.t +@@ -11,7 +11,8 @@ icmpv6 type echo-request accept;ok + icmpv6 type echo-reply accept;ok + icmpv6 type mld-listener-query accept;ok + icmpv6 type mld-listener-report accept;ok +-icmpv6 type mld-listener-reduction accept;ok ++icmpv6 type mld-listener-done accept;ok ++icmpv6 type mld-listener-reduction accept;ok;icmpv6 type mld-listener-done accept + icmpv6 type nd-router-solicit accept;ok + icmpv6 type nd-router-advert accept;ok + icmpv6 type nd-neighbor-solicit accept;ok +@@ -19,8 +20,11 @@ icmpv6 type nd-neighbor-advert accept;ok + icmpv6 type nd-redirect accept;ok + icmpv6 type parameter-problem accept;ok + icmpv6 type router-renumbering accept;ok ++icmpv6 type ind-neighbor-solicit accept;ok ++icmpv6 type ind-neighbor-advert accept;ok ++icmpv6 type mld2-listener-report accept;ok + icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept;ok +-icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept;ok ++icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept;ok + icmpv6 type {mld-listener-query, time-exceeded, nd-router-advert} accept;ok + icmpv6 type != {mld-listener-query, time-exceeded, nd-router-advert} accept;ok + +diff --git a/tests/py/ip6/icmpv6.t.payload.ip6 b/tests/py/ip6/icmpv6.t.payload.ip6 +index 9fe2496..30f58ca 100644 +--- a/tests/py/ip6/icmpv6.t.payload.ip6 ++++ b/tests/py/ip6/icmpv6.t.payload.ip6 +@@ -54,6 +54,14 @@ ip6 test-ip6 input + [ cmp eq reg 1 0x00000083 ] + [ immediate reg 0 accept ] + ++# icmpv6 type mld-listener-done accept ++ip6 test-ip6 input ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000084 ] ++ [ immediate reg 0 accept ] ++ + # icmpv6 type mld-listener-reduction accept + ip6 test-ip6 input + [ payload load 1b @ network header + 6 => reg 1 ] +@@ -118,6 +126,30 @@ ip6 test-ip6 input + [ cmp eq reg 1 0x0000008a ] + [ immediate reg 0 accept ] + ++# icmpv6 type ind-neighbor-solicit accept ++ip6 test-ip6 input ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x0000008d ] ++ [ immediate reg 0 accept ] ++ ++# icmpv6 type ind-neighbor-advert accept ++ip6 test-ip6 input ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x0000008e ] ++ [ immediate reg 0 accept ] ++ ++# icmpv6 type mld2-listener-report accept ++ip6 test-ip6 input ++ [ payload load 1b @ network header + 6 => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x0000008f ] ++ [ immediate reg 0 accept ] ++ + # icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept + __set%d test-ip6 3 + __set%d test-ip6 0 +@@ -129,7 +161,7 @@ ip6 test-ip6 input + [ lookup reg 1 set __set%d ] + [ immediate reg 0 accept ] + +-# icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept ++# icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept + __set%d test-ip6 3 + __set%d test-ip6 0 + element 0000008a : 0 [end] element 00000084 : 0 [end] element 00000003 : 0 [end] element 00000085 : 0 [end] +-- +2.11.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch new file mode 100644 index 0000000000..50cac300e8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch @@ -0,0 +1,62 @@ +From 8d8cfe5ad6ca460a5262fb15fdbef3601058c784 Mon Sep 17 00:00:00 2001 +From: Florian Westphal <fw@strlen.de> +Date: Thu, 18 May 2017 13:30:54 +0200 +Subject: [PATCH 1/4] payload: split ll proto dependency into helper + +will be re-used in folloup patch for icmp/icmpv6 depenency +handling. + +Signed-off-by: Florian Westphal <fw@strlen.de> +--- +Upstream-Status: Backport +Signed-off-by: André Draszik <adraszik@tycoint.com> + src/payload.c | 29 ++++++++++++++++++----------- + 1 file changed, 18 insertions(+), 11 deletions(-) + +diff --git a/src/payload.c b/src/payload.c +index 55128fe..31e5a02 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -224,21 +224,28 @@ static int payload_add_dependency(struct eval_ctx *ctx, + } + + static const struct proto_desc * ++payload_get_get_ll_hdr(const struct eval_ctx *ctx) ++{ ++ switch (ctx->pctx.family) { ++ case NFPROTO_INET: ++ return &proto_inet; ++ case NFPROTO_BRIDGE: ++ return &proto_eth; ++ case NFPROTO_NETDEV: ++ return &proto_netdev; ++ default: ++ break; ++ } ++ ++ return NULL; ++} ++ ++static const struct proto_desc * + payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr) + { + switch (expr->payload.base) { + case PROTO_BASE_LL_HDR: +- switch (ctx->pctx.family) { +- case NFPROTO_INET: +- return &proto_inet; +- case NFPROTO_BRIDGE: +- return &proto_eth; +- case NFPROTO_NETDEV: +- return &proto_netdev; +- default: +- break; +- } +- break; ++ return payload_get_get_ll_hdr(ctx); + case PROTO_BASE_TRANSPORT_HDR: + if (expr->payload.desc == &proto_icmp) + return &proto_ip; +-- +2.11.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch new file mode 100644 index 0000000000..180edb3504 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch @@ -0,0 +1,65 @@ +From 9a1f2bbf3cd2417e0c10d18578e224abe2071d68 Mon Sep 17 00:00:00 2001 +From: Florian Westphal <fw@strlen.de> +Date: Tue, 21 Mar 2017 19:47:22 +0100 +Subject: [PATCH 2/4] src: allow update of net base w. meta l4proto icmpv6 + +nft add rule ip6 f i meta l4proto ipv6-icmp icmpv6 type nd-router-advert +<cmdline>:1:50-60: Error: conflicting protocols specified: unknown vs. icmpv6 + +add icmpv6 to nexthdr list so base gets updated correctly. + +Reported-by: Thomas Woerner <twoerner@redhat.com> +Signed-off-by: Florian Westphal <fw@strlen.de> +--- +Upstream-Status: Backport +Signed-off-by: André Draszik <adraszik@tycoint.com> + src/proto.c | 1 + + tests/py/any/meta.t | 1 + + tests/py/any/meta.t.payload | 7 +++++++ + 3 files changed, 9 insertions(+) + +diff --git a/src/proto.c b/src/proto.c +index 79e9dbf..fcdfbe7 100644 +--- a/src/proto.c ++++ b/src/proto.c +@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = { + PROTO_LINK(IPPROTO_TCP, &proto_tcp), + PROTO_LINK(IPPROTO_DCCP, &proto_dccp), + PROTO_LINK(IPPROTO_SCTP, &proto_sctp), ++ PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6), + }, + .templates = { + [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8), +diff --git a/tests/py/any/meta.t b/tests/py/any/meta.t +index c3ac0a4..2ff942f 100644 +--- a/tests/py/any/meta.t ++++ b/tests/py/any/meta.t +@@ -38,6 +38,7 @@ meta l4proto { 33, 55, 67, 88};ok;meta l4proto { 33, 55, 67, 88} + meta l4proto != { 33, 55, 67, 88};ok + meta l4proto { 33-55};ok + meta l4proto != { 33-55};ok ++meta l4proto ipv6-icmp icmpv6 type nd-router-advert;ok;icmpv6 type nd-router-advert + + meta priority root;ok + meta priority none;ok +diff --git a/tests/py/any/meta.t.payload b/tests/py/any/meta.t.payload +index e432656..871f1ad 100644 +--- a/tests/py/any/meta.t.payload ++++ b/tests/py/any/meta.t.payload +@@ -187,6 +187,13 @@ ip test-ip4 input + [ byteorder reg 1 = hton(reg 1, 2, 1) ] + [ lookup reg 1 set __set%d 0x1 ] + ++# meta l4proto ipv6-icmp icmpv6 type nd-router-advert ++ip test-ip4 input ++ [ meta load l4proto => reg 1 ] ++ [ cmp eq reg 1 0x0000003a ] ++ [ payload load 1b @ transport header + 0 => reg 1 ] ++ [ cmp eq reg 1 0x00000086 ] ++ + # meta mark 0x4 + ip test-ip4 input + [ meta load mark => reg 1 ] +-- +2.11.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch new file mode 100644 index 0000000000..f600ae05c0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch @@ -0,0 +1,98 @@ +From 2366ed9ffcb4f5f5341f10f0a1d1a4688d37ad87 Mon Sep 17 00:00:00 2001 +From: Florian Westphal <fw@strlen.de> +Date: Wed, 22 Mar 2017 15:08:48 +0100 +Subject: [PATCH 3/4] src: ipv6: switch implicit dependencies to meta l4proto + +when using rule like + +ip6 filter input tcp dport 22 +nft generates: + [ payload load 1b @ network header + 6 => reg 1 ] + [ cmp eq reg 1 0x00000006 ] + [ payload load 2b @ transport header + 2 => reg 1 ] + [ cmp eq reg 1 0x00001600 ] + +which is: ip6 filter input ip6 nexthdr tcp dport 22 +IOW, such a rule won't match if e.g. a fragment header is in place. + +This changes ip6_proto to use 'meta l4proto' which is the protocol header +found by exthdr walk. + +A side effect is that for bridge we get a shorter dependency chain as it +no longer needs to prepend 'ether proto ipv6' for old 'ip6 nexthdr' dep. + +Only problem: + +ip6 nexthdr tcp tcp dport 22 +will now inject a (useless) meta l4 dependency as ip6 nexthdr is no +longer flagged as EXPR_F_PROTOCOL, to avoid this add a small helper +that skips the unneded meta dependency in that case. + +Signed-off-by: Florian Westphal <fw@strlen.de> +--- +Upstream-Status: Backport +Signed-off-by: André Draszik <adraszik@tycoint.com> + src/payload.c | 19 ++++++++++++++++++- + src/proto.c | 2 +- + 2 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/src/payload.c b/src/payload.c +index 31e5a02..38db15e 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -117,6 +117,23 @@ static const struct expr_ops payload_expr_ops = { + .pctx_update = payload_expr_pctx_update, + }; + ++/* ++ * ipv6 is special case, we normally use 'meta l4proto' to fetch the last ++ * l4 header of the ipv6 extension header chain so we will also match ++ * tcp after a fragmentation header, for instance. ++ * ++ * If user specifically asks for nexthdr x, treat is as a full ++ * dependency rather than injecting another (useless) meta l4 one. ++ */ ++static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type) ++{ ++ if (type == desc->protocol_key || ++ (desc == &proto_ip6 && type == IP6HDR_NEXTHDR)) ++ return true; ++ ++ return false; ++} ++ + struct expr *payload_expr_alloc(const struct location *loc, + const struct proto_desc *desc, + unsigned int type) +@@ -129,7 +146,7 @@ struct expr *payload_expr_alloc(const struct location *loc, + if (desc != NULL) { + tmpl = &desc->templates[type]; + base = desc->base; +- if (type == desc->protocol_key) ++ if (proto_key_is_protocol(desc, type)) + flags = EXPR_F_PROTOCOL; + } else { + tmpl = &proto_unknown_template; +diff --git a/src/proto.c b/src/proto.c +index fcdfbe7..3b20a5f 100644 +--- a/src/proto.c ++++ b/src/proto.c +@@ -707,7 +707,6 @@ const struct proto_desc proto_icmp6 = { + const struct proto_desc proto_ip6 = { + .name = "ip6", + .base = PROTO_BASE_NETWORK_HDR, +- .protocol_key = IP6HDR_NEXTHDR, + .protocols = { + PROTO_LINK(IPPROTO_ESP, &proto_esp), + PROTO_LINK(IPPROTO_AH, &proto_ah), +@@ -720,6 +719,7 @@ const struct proto_desc proto_ip6 = { + PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6), + }, + .templates = { ++ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8), + [IP6HDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4), + [IP6HDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 4, 6), + [IP6HDR_ECN] = HDR_BITFIELD("ecn", &ecn_type, 10, 2), +-- +2.11.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch new file mode 100644 index 0000000000..00076d7cef --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch @@ -0,0 +1,84 @@ +From f21a7a4849b50c30341ec571813bd7fe37040ad3 Mon Sep 17 00:00:00 2001 +From: Florian Westphal <fw@strlen.de> +Date: Thu, 18 May 2017 13:30:54 +0200 +Subject: [PATCH 4/4] payload: enforce ip/ip6 protocol depending on icmp or + icmpv6 + +After some discussion with Pablo we agreed to treat icmp/icmpv6 specially. + +in the case of a rule like 'tcp dport 22' the inet, bridge and netdev +families only care about the lower layer protocol. + +In the icmpv6 case however we'd like to also enforce an ipv6 protocol check +(and ipv4 check in icmp case). + +This extends payload_gen_special_dependency() to consider this. +With this patch: + +add rule $pf filter input meta l4proto icmpv6 +add rule $pf filter input meta l4proto icmpv6 icmpv6 type echo-request +add rule $pf filter input icmpv6 type echo-request + +will work in all tables and all families. +For inet/bridge/netdev, an ipv6 protocol dependency is added; this will +not match ipv4 packets with ip->protocol == icmpv6, EXCEPT in the case +of the ip family. + +Its still possible to match icmpv6-in-ipv4 in inet/bridge/netdev with an +explicit dependency: + +add rule inet f i ip protocol ipv6-icmp meta l4proto ipv6-icmp icmpv6 type ... + +Implicit dependencies won't get removed at the moment, so + bridge ... icmp type echo-request +will be shown as + ether type ip meta l4proto 1 icmp type echo-request + +Signed-off-by: Florian Westphal <fw@strlen.de> +--- +Upstream-Status: Backport +Signed-off-by: André Draszik <adraszik@tycoint.com> + src/payload.c | 27 +++++++++++++++++++++++---- + 1 file changed, 23 insertions(+), 4 deletions(-) + +diff --git a/src/payload.c b/src/payload.c +index 38db15e..8796ee5 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -264,10 +264,29 @@ payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr) + case PROTO_BASE_LL_HDR: + return payload_get_get_ll_hdr(ctx); + case PROTO_BASE_TRANSPORT_HDR: +- if (expr->payload.desc == &proto_icmp) +- return &proto_ip; +- if (expr->payload.desc == &proto_icmp6) +- return &proto_ip6; ++ if (expr->payload.desc == &proto_icmp || ++ expr->payload.desc == &proto_icmp6) { ++ const struct proto_desc *desc, *desc_upper; ++ struct stmt *nstmt; ++ ++ desc = ctx->pctx.protocol[PROTO_BASE_LL_HDR].desc; ++ if (!desc) { ++ desc = payload_get_get_ll_hdr(ctx); ++ if (!desc) ++ break; ++ } ++ ++ desc_upper = &proto_ip6; ++ if (expr->payload.desc == &proto_icmp) ++ desc_upper = &proto_ip; ++ ++ if (payload_add_dependency(ctx, desc, desc_upper, ++ expr, &nstmt) < 0) ++ return NULL; ++ ++ list_add_tail(&nstmt->list, &ctx->stmt->list); ++ return desc_upper; ++ } + return &proto_inet_service; + default: + break; +-- +2.11.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch new file mode 100644 index 0000000000..5b72437d27 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch @@ -0,0 +1,86 @@ +From 0825c57d571bb7121e7048e198b9b023f7e7f358 Mon Sep 17 00:00:00 2001 +From: Florian Westphal <fw@strlen.de> +Date: Sun, 7 May 2017 03:53:30 +0200 +Subject: [PATCH] src: ip: switch implicit dependencies to meta l4proto too + +after ip6 nexthdr also switch ip to meta l4proto instead of ip protocol. + +While its needed for ipv6 (due to extension headers) this isn't needed +for ip but it has the advantage that + +tcp dport 22 + +produces same expressions for ip/ip6/inet families. + +Signed-off-by: Florian Westphal <fw@strlen.de> +--- +Upstream-Status: Backport +Signed-off-by: André Draszik <adraszik@tycoint.com> + src/payload.c | 17 +++++++++++------ + src/proto.c | 3 ++- + 2 files changed, 13 insertions(+), 7 deletions(-) + +diff --git a/src/payload.c b/src/payload.c +index 8796ee5..11b6df3 100644 +--- a/src/payload.c ++++ b/src/payload.c +@@ -118,17 +118,22 @@ static const struct expr_ops payload_expr_ops = { + }; + + /* +- * ipv6 is special case, we normally use 'meta l4proto' to fetch the last +- * l4 header of the ipv6 extension header chain so we will also match ++ * We normally use 'meta l4proto' to fetch the last l4 header of the ++ * ipv6 extension header chain so we will also match + * tcp after a fragmentation header, for instance. ++ * For consistency we also use meta l4proto for ipv4. + * +- * If user specifically asks for nexthdr x, treat is as a full +- * dependency rather than injecting another (useless) meta l4 one. ++ * If user specifically asks for nexthdr x, don't add another (useless) ++ * meta dependency. + */ + static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type) + { +- if (type == desc->protocol_key || +- (desc == &proto_ip6 && type == IP6HDR_NEXTHDR)) ++ if (type == desc->protocol_key) ++ return true; ++ ++ if (desc == &proto_ip6 && type == IP6HDR_NEXTHDR) ++ return true; ++ if (desc == &proto_ip && type == IPHDR_PROTOCOL) + return true; + + return false; +diff --git a/src/proto.c b/src/proto.c +index 3b20a5f..2afedf7 100644 +--- a/src/proto.c ++++ b/src/proto.c +@@ -587,7 +587,6 @@ const struct proto_desc proto_ip = { + .name = "ip", + .base = PROTO_BASE_NETWORK_HDR, + .checksum_key = IPHDR_CHECKSUM, +- .protocol_key = IPHDR_PROTOCOL, + .protocols = { + PROTO_LINK(IPPROTO_ICMP, &proto_icmp), + PROTO_LINK(IPPROTO_ESP, &proto_esp), +@@ -600,6 +599,7 @@ const struct proto_desc proto_ip = { + PROTO_LINK(IPPROTO_SCTP, &proto_sctp), + }, + .templates = { ++ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8), + [IPHDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4), + [IPHDR_HDRLENGTH] = HDR_BITFIELD("hdrlength", &integer_type, 4, 4), + [IPHDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 8, 6), +@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = { + PROTO_LINK(IPPROTO_TCP, &proto_tcp), + PROTO_LINK(IPPROTO_DCCP, &proto_dccp), + PROTO_LINK(IPPROTO_SCTP, &proto_sctp), ++ PROTO_LINK(IPPROTO_ICMP, &proto_icmp), + PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6), + }, + .templates = { +-- +2.11.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.6.bb deleted file mode 100644 index 5dd93627ae..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.6.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Netfilter Tables userspace utillites" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79" -SECTION = "net" - -DEPENDS = "libmnl libnftnl readline gmp" -RRECOMMENDS_${PN} += "kernel-module-nf-tables \ - " - -SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \ - file://fix-to-generate-ntf.8.patch \ - " -SRC_URI[md5sum] = "fd320e35fdf14b7be795492189b13dae" -SRC_URI[sha256sum] = "dede62655f1c56f2bc9f9be12d103d930dcef6d5f9e0855854ad9c6f93cd6c2d" - -inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb new file mode 100644 index 0000000000..0ea79953be --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_0.7.bb @@ -0,0 +1,27 @@ +SUMMARY = "Netfilter Tables userspace utillites" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79" +SECTION = "net" + +DEPENDS = "libmnl libnftnl readline gmp" +RRECOMMENDS_${PN} += "kernel-module-nf-tables \ + " + +SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \ + file://fix-to-generate-ntf.8.patch \ + \ + file://0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch \ + file://0002-proto-Add-some-exotic-ICMPv6-types.patch \ + \ + file://0003-payload-split-ll-proto-dependency-into-helper.patch \ + file://0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch \ + file://0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch \ + file://0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch \ + file://0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch \ + " +SRC_URI[md5sum] = "4c005e76a15a029afaba71d7db21d065" +SRC_URI[sha256sum] = "fe639239d801ce5890397f6f4391c58a934bfc27d8b7d5ef922692de5ec4ed43" + +ASNEEDED = "" + +inherit autotools pkgconfig diff --git a/import-layers/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb index f3345a9443..c2d71563a1 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb @@ -21,7 +21,7 @@ S = "${WORKDIR}/git" inherit autotools-brokensep pkgconfig -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," # ZNC has a custom autogen.sh that states that this command is needed *and* expected to fail diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb index e9eea56cd8..192ece0e9d 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb @@ -33,8 +33,8 @@ NETMAP_DRIVERS ??= "" NETMAP_ALL_DRIVERS = "ixgbe igb e1000e e1000 veth.c forcedeth.c virtio_net.c r8169.c" python __anonymous () { - drivers_list = d.getVar("NETMAP_DRIVERS", True).split() - all_drivers_list = d.getVar("NETMAP_ALL_DRIVERS", True).split() + drivers_list = d.getVar("NETMAP_DRIVERS").split() + all_drivers_list = d.getVar("NETMAP_ALL_DRIVERS").split() config_drivers = "--drivers=" + ",".join(drivers_list) extra_oeconf_drivers = bb.utils.contains_any('NETMAP_DRIVERS', all_drivers_list, config_drivers, '--no-drivers', d) @@ -70,7 +70,7 @@ do_configure_append () { #define NETMAP_LINUX_HAVE_E1000E_DOWN2 EOF -if ${@ 'false' if (bb.utils.vercmp_string(d.getVar('KERNEL_VERSION', True) or "0", '3.17') < 0) else 'true' } ; then +if ${@ 'false' if (bb.utils.vercmp_string(d.getVar('KERNEL_VERSION') or "0", '3.17') < 0) else 'true' } ; then echo OK cat >> ${S}/LINUX/netmap_linux_config.h <<EOF #define NETMAP_LINUX_ALLOC_NETDEV_4ARGS @@ -89,4 +89,4 @@ do_install () { } # http://errors.yoctoproject.org/Errors/Details/83335/ -PNBLACKLIST[netmap-modules] ?= "BROKEN: not compatible with default kernel version 4.8" +PNBLACKLIST[netmap-modules] ?= "BROKEN: not compatible with default kernel version 4.8 - the recipe will be removed on 2017-09-01 unless the issue is fixed" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap_git.bb index 667e7ccb90..2d8509c744 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/netmap/netmap_git.bb @@ -34,4 +34,4 @@ RDEPENDS_${PN} = "kernel-module-netmap" RRECOMMENDS_${PN} = "kernel-module-netmap" # http://errors.yoctoproject.org/Errors/Details/69733/ -PNBLACKLIST[netmap] ?= "BROKEN: Tries to build kernel module and fails, either it should be disabled or there should be dependency on kernel like in netmap-modules" +PNBLACKLIST[netmap] ?= "BROKEN: Tries to build kernel module and fails, either it should be disabled or there should be dependency on kernel like in netmap-modules - the recipe will be removed on 2017-09-01 unless the issue is fixed" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170421.bb b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170421.bb new file mode 100644 index 0000000000..2c69c58f8b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20170421.bb @@ -0,0 +1,31 @@ +require wireguard.inc + +inherit module kernel-module-split + +DEPENDS = "virtual/kernel libmnl" + +# This module requires Linux 3.10 higher and several networking related +# configuration options. For exact kernel requirements visit: +# https://www.wireguard.io/install/#kernel-requirements + +EXTRA_OEMAKE_append = " \ + KERNELDIR=${STAGING_KERNEL_DIR} \ + " + +MAKE_TARGETS = "module" + +RRECOMMENDS_${PN} = "kernel-module-xt-hashlimit" +MODULE_NAME = "wireguard" + +# Kernel module packages MUST begin with 'kernel-module-', otherwise +# multilib image generation can fail. +# +# The following line is only necessary if the recipe name does not begin +# with kernel-module-. +PKG_${PN} = "kernel-module-${MODULE_NAME}" + +module_do_install() { + install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME} + install -m 0644 ${MODULE_NAME}.ko \ + ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}/${MODULE_NAME}.ko +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170421.bb b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170421.bb new file mode 100644 index 0000000000..79d420f1a4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20170421.bb @@ -0,0 +1,27 @@ +require wireguard.inc + +inherit bash-completion systemd pkgconfig + +DEPENDS = "wireguard-module libmnl" + +do_compile_prepend () { + cd ${S}/tools +} + +do_install () { + cd ${S}/tools + oe_runmake DESTDIR="${D}" PREFIX="${prefix}" SYSCONFDIR="${sysconfdir}" \ + SYSTEMDUNITDIR="${systemd_unitdir}" \ + WITH_SYSTEMDUNITS=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'yes', '', d)} \ + WITH_BASHCOMPLETION=yes \ + WITH_WGQUICK=yes \ + install +} + +FILES_${PN} = " \ + ${sysconfdir} \ + ${systemd_unitdir} \ + ${bindir} \ +" + +RDEPENDS_${PN} = "wireguard-module" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc new file mode 100644 index 0000000000..46a9971f8d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-kernel/wireguard/wireguard.inc @@ -0,0 +1,18 @@ +SUMMARY = "WireGuard is an extremely simple yet fast and modern VPN" +DESCRIPTION="WireGuard is a secure network tunnel, operating at layer 3, \ +implemented as a kernel virtual network interface for Linux, which aims to \ +replace both IPsec for most use cases, as well as popular user space and/or \ +TLS-based solutions like OpenVPN, while being more secure, more performant, \ +and easier to use." +SECTION = "networking" +HOMEPAGE = "https://www.wireguard.io/" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${PV}.tar.xz" + +SRC_URI[md5sum] = "8e559f4fd672b15c38a15eb4d88cc84d" +SRC_URI[sha256sum] = "03c82af774224cd171d000ee4a519b5e474cc6842ac04967773cf77b26750000" + +S = "${WORKDIR}/WireGuard-${PV}/src/" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch new file mode 100644 index 0000000000..8376603ead --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch @@ -0,0 +1,30 @@ +From 2ee0c51d81a0a08d64b64ab624074e5f7cd9615a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 15 Jul 2017 00:07:32 -0700 +Subject: [PATCH] ftp: include sys/types.h for u_long + +fixes +ftp.c:1091:2: error: unknown type name 'u_long'; did you mean 'long'? + u_long a1,a2,a3,a4,p1,p2; + ^~~~~~ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + ftp/ftp.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ftp/ftp.c b/ftp/ftp.c +index 7a56af6..5dcb513 100644 +--- a/ftp/ftp.c ++++ b/ftp/ftp.c +@@ -43,6 +43,7 @@ char ftp_rcsid[] = + #include <sys/socket.h> + #include <sys/time.h> + #include <sys/file.h> ++#include <sys/types.h> + + #include <netinet/in.h> + #include <netinet/ip.h> +-- +2.13.3 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb index 37f5bc7257..394a69e629 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb @@ -6,9 +6,10 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://ftp/ftp.c;beginline=2;endline=3;md5=2d40a75a50d83b8f6317b3f53db72bfa" SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}.orig.tar.gz;name=archive \ - ${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}-31.debian.tar.xz;name=patch31 \ - file://Add_ARG_MAX_define.patch \ -" + ${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}-31.debian.tar.xz;name=patch31 \ + file://Add_ARG_MAX_define.patch \ + file://0001-ftp-include-sys-types.h-for-u_long.patch \ + " SRC_URI[archive.md5sum] = "94441610c9b86ef45c4c6ec609444060" SRC_URI[archive.sha256sum] = "61c913299b81a4671ff089aac821329f7db9bc111aa812993dd585798b700349" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch new file mode 100644 index 0000000000..8bd77d2e47 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch @@ -0,0 +1,51 @@ +From 439e3e35f7fcbff1abb782de4b19b31e43ae3449 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 27 Jun 2017 09:59:19 -0700 +Subject: [PATCH] rpcgen: Fix printf formats + +Fixes build with hardening flags + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + rpcgen/rpc_hout.c | 2 +- + rpcgen/rpc_tblout.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/rpcgen/rpc_hout.c b/rpcgen/rpc_hout.c +index 0ef52df..09a7b57 100644 +--- a/rpcgen/rpc_hout.c ++++ b/rpcgen/rpc_hout.c +@@ -474,7 +474,7 @@ pdeclaration(const char *name, declaration *dec, int tab, + break; + } + } +- f_print(fout, separator ); ++ f_print(fout, "%s", separator ); + } + + static int +diff --git a/rpcgen/rpc_tblout.c b/rpcgen/rpc_tblout.c +index d64bfde..fd62a52 100644 +--- a/rpcgen/rpc_tblout.c ++++ b/rpcgen/rpc_tblout.c +@@ -99,7 +99,7 @@ write_table(const definition *def) + } + else { + expected = 1; +- f_print(fout, null_entry); ++ f_print(fout, "%s", null_entry); + } + for (proc = vp->procs; proc != NULL; proc = proc->next) { + current = atoi(proc->proc_num); +@@ -139,7 +139,7 @@ write_table(const definition *def) + } + + /* print the table trailer */ +- f_print(fout, tbl_end); ++ f_print(fout, "%s", tbl_end); + f_print(fout, tbl_nproc, progvers, progvers, progvers); + } + } +-- +2.13.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb index abc9d88cbd..9487fdc2c0 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb @@ -4,10 +4,15 @@ SECTION = "net" LICENSE = "SPL-1.0" LIC_FILES_CHKSUM = "file://rpcinfo/rpcinfo.c;beginline=2;endline=3;md5=3e6339e3ce266e1122c5ba293e04bc89" +DEPENDS_append_libc-musl = " libtirpc" SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \ - file://gcc4.patch" + file://gcc4.patch \ + file://0001-rpcgen-Fix-printf-formats.patch \ + " SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642" SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LIBS_append_libc-musl = " -ltirpc" do_configure () { ./configure --prefix=${prefix} @@ -16,6 +21,7 @@ do_configure () { echo "LD=${LD}" >> MCONFIG echo "CFLAGS=${CFLAGS}" >> MCONFIG echo "LDFLAGS=${LDFLAGS}" >> MCONFIG + echo "LIBS=${LIBS}" >> MCONFIG } do_compile () { diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb index 8f08acf30f..d61636ee87 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb @@ -36,14 +36,14 @@ CFLAGS += " -D_GNU_SOURCE -Wno-deprecated-declarations" LDFLAGS += " -L${STAGING_LIBDIR} -lutil -lcrypt" PACKAGECONFIG ??= "" -PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam", "", d)}" +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" PACKAGECONFIG[pam] = " , --without-pam, libpam, libpam" do_configure () { ./configure --prefix=${prefix} --exec-prefix=${exec_prefix} echo "INSTALLROOT=${D}" > MCONFIG - if [ "${@bb.utils.contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then + if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then echo "USE_PAM=1" >> MCONFIG fi @@ -65,7 +65,7 @@ do_install () { 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ 'MANDIR=${mandir}' install - if [ "${@bb.utils.contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then + if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then install -d ${D}${sysconfdir}/pam.d install -m 0644 debian/hosts.equiv ${D}/${sysconfdir} install -m 0644 ${WORKDIR}/rexec.pam ${D}/${sysconfdir}/pam.d/rexec diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch new file mode 100644 index 0000000000..b1325b3173 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch @@ -0,0 +1,46 @@ +From 55ab6f1389261edff5f4c942bc3b0d8e695856d7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 30 Aug 2017 18:11:33 -0700 +Subject: [PATCH 1/2] Add missing include path to -I options + +Fixes errors like +| rwho.c:52:10: fatal error: 'protocols/rwhod.h' file not found +| #include <protocols/rwhod.h> +| ^~~~~~~~~~~~~~~~~~~ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + rwho/Makefile | 1 + + rwhod/Makefile | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/rwho/Makefile b/rwho/Makefile +index 6f86388..67b28d4 100644 +--- a/rwho/Makefile ++++ b/rwho/Makefile +@@ -6,6 +6,7 @@ include ../MRULES + rwho: rwho.o + $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ + ++CFLAGS += -I../include + rwho.o: ../version.h + + install: rwho +diff --git a/rwhod/Makefile b/rwhod/Makefile +index 772b641..9034218 100644 +--- a/rwhod/Makefile ++++ b/rwhod/Makefile +@@ -7,6 +7,8 @@ ifneq ($(USE_GLIBC),1) + CFLAGS += -D_GNU_SOURCE + endif + ++CFLAGS += -I../include ++ + OBJS = rwhod.o + + rwhod: $(OBJS) +-- +2.14.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch new file mode 100644 index 0000000000..717b4d73f4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch @@ -0,0 +1,71 @@ +From 2108213242638fa355f662382f55495d91301858 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 30 Aug 2017 18:13:17 -0700 +Subject: [PATCH 2/2] Fix build issues found with musl + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + ruptime/ruptime.c | 1 + + rwho/rwho.c | 1 + + rwhod/rwhod.c | 5 +++-- + 3 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/ruptime/ruptime.c b/ruptime/ruptime.c +index 1d4f7b6..f1f043c 100644 +--- a/ruptime/ruptime.c ++++ b/ruptime/ruptime.c +@@ -53,6 +53,7 @@ char ruptime_rcsid[] = + #include <string.h> + #include <errno.h> + #include <time.h> ++#include <fcntl.h> + + struct hs { + char hs_hostname[MAXHOSTNAMELEN]; +diff --git a/rwho/rwho.c b/rwho/rwho.c +index 63919ac..71aec9e 100644 +--- a/rwho/rwho.c ++++ b/rwho/rwho.c +@@ -49,6 +49,7 @@ char rcsid[] = "$Id: rwho.c,v 1.7 1999/08/01 20:44:18 dholland Exp $"; + #include <assert.h> + #include <stdio.h> + #include <time.h> ++#include <fcntl.h> + #include <protocols/rwhod.h> + + #include "../version.h" +diff --git a/rwhod/rwhod.c b/rwhod/rwhod.c +index 54498d0..40cabcf 100644 +--- a/rwhod/rwhod.c ++++ b/rwhod/rwhod.c +@@ -76,6 +76,7 @@ char rcsid[] = + #include <grp.h> + #include <time.h> + #include <stdint.h> ++#include <fcntl.h> + + #include "../version.h" + +@@ -102,7 +103,7 @@ struct nlist nl[] = { + static void broadcaster(void); + static int configure(int s); + static int verify(const char *name); +-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2) ++#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)) + static int getloadavg(double ptr[3], int n); + #endif + +@@ -549,7 +550,7 @@ sendpacket(struct whod *wd) + } + } + +-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2) ++#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)) + /* + * Taken from: + * +-- +2.14.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb index 04baa4286c..5685f03d62 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb @@ -8,7 +8,9 @@ SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}.orig.tar.gz;nam ${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}-13.debian.tar.gz;name=patch13 \ file://rwhod \ file://rwhod.default \ -" + file://0001-Add-missing-include-path-to-I-options.patch \ + file://0002-Fix-build-issues-found-with-musl.patch \ + " SRC_URI[archive.md5sum] = "0f71620d45d472f89134ba0d74242e75" SRC_URI[archive.sha256sum] = "0409e2ce4bfdb2dacb2c193d0fedfc49bb975cb057c5c6b0ffcca603a1188da7" SRC_URI[patch13.md5sum] = "82ed5a3c6b0bbf00b36508b9787963b9" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch new file mode 100644 index 0000000000..f2f1b12e28 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch @@ -0,0 +1,66 @@ +From 7a3095d1e9b7c73f9dca56250f433bcfc7cb660e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 27 Jun 2017 10:15:34 -0700 +Subject: [PATCH] telnet/telnetd: Fix print format strings + +Fixes build with hardening flags + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + telnet/utilities.cc | 6 +++--- + telnetd/utility.c | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/telnet/utilities.cc b/telnet/utilities.cc +index 66839ab..36f0731 100644 +--- a/telnet/utilities.cc ++++ b/telnet/utilities.cc +@@ -583,17 +583,17 @@ void printsub(int direction, unsigned char *pointer, int length) { + case ENV_VAR: + if (pointer[1] == TELQUAL_SEND) + goto def_case; +- fprintf(NetTrace, "\" VAR " + noquote); ++ fprintf(NetTrace, "%s", "\" VAR " + noquote); + noquote = 2; + break; + + case ENV_VALUE: +- fprintf(NetTrace, "\" VALUE " + noquote); ++ fprintf(NetTrace, "%s", "\" VALUE " + noquote); + noquote = 2; + break; + + case ENV_ESC: +- fprintf(NetTrace, "\" ESC " + noquote); ++ fprintf(NetTrace, "%s", "\" ESC " + noquote); + noquote = 2; + break; + +diff --git a/telnetd/utility.c b/telnetd/utility.c +index 29b7da1..75314cb 100644 +--- a/telnetd/utility.c ++++ b/telnetd/utility.c +@@ -909,17 +909,17 @@ printsub(char direction, unsigned char *pointer, int length) + case ENV_VAR: + if (pointer[1] == TELQUAL_SEND) + goto def_case; +- netoprintf("\" VAR " + noquote); ++ netoprintf("%s", "\" VAR " + noquote); + noquote = 2; + break; + + case ENV_VALUE: +- netoprintf("\" VALUE " + noquote); ++ netoprintf("%s", "\" VALUE " + noquote); + noquote = 2; + break; + + case ENV_ESC: +- netoprintf("\" ESC " + noquote); ++ netoprintf("%s", "\" ESC " + noquote); + noquote = 2; + break; + +-- +2.13.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb index 9438adc0f2..54a58c8a11 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb @@ -5,11 +5,12 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef" SRC_URI = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/${BP}.tar.gz \ - file://To-aviod-buffer-overflow-in-telnet.patch \ - file://Warning-fix-in-the-step-of-install.patch \ - file://telnet-xinetd \ - file://cross-compile.patch \ -" + file://To-aviod-buffer-overflow-in-telnet.patch \ + file://Warning-fix-in-the-step-of-install.patch \ + file://telnet-xinetd \ + file://cross-compile.patch \ + file://0001-telnet-telnetd-Fix-print-format-strings.patch \ + " EXTRA_OEMAKE = "INSTALLROOT=${D} SBINDIR=${sbindir} DAEMONMODE=755 \ MANMODE=644 MANDIR=${mandir}" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch new file mode 100644 index 0000000000..78936907f6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch @@ -0,0 +1,27 @@ +From fa57e161fc953264a75d50a787cb83983e60acc7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 30 Aug 2017 18:30:02 -0700 +Subject: [PATCH] tftp: Include missing fcntl.h + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + tftp/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tftp/main.c b/tftp/main.c +index 8c54843..5c9b698 100644 +--- a/tftp/main.c ++++ b/tftp/main.c +@@ -63,6 +63,7 @@ char main_rcsid[] = + #include <ctype.h> + #include <netdb.h> + #include <unistd.h> ++#include <fcntl.h> + + #include "tftpsubs.h" /* for mysignal() */ + +-- +2.14.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb index 67a541d258..92c13e850c 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb @@ -6,9 +6,10 @@ DEPENDS = "tcp-wrappers" LIC_FILES_CHKSUM = "file://tftp/tftp.c;beginline=2;endline=3;md5=84d2cfe1e60863a7d82648734ba4d30c" SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \ - ${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-18.diff.gz;name=patch18 \ - file://tftp.conf \ -" + ${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-18.diff.gz;name=patch18 \ + file://tftp.conf \ + file://0001-tftp-Include-missing-fcntl.h.patch \ + " SRC_URI[archive.md5sum] = "b7262c798e2ff50e29c2ff50dfd8d6a8" SRC_URI[archive.sha256sum] = "3a43c0010d4e61f412563fd83769d4667d8b8e82903526d21cb9205fe55ad14d" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb index 22b7cfe929..0a86504c73 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/accel-ppp/accel-ppp_git.bb @@ -42,4 +42,4 @@ do_install_prepend() { } # http://errors.yoctoproject.org/Errors/Details/81003/ -PNBLACKLIST[accel-ppp] ?= "BROKEN: fails to build with new binutils-2.27" +PNBLACKLIST[accel-ppp] ?= "BROKEN: fails to build with new binutils-2.27 - the recipe will be removed on 2017-09-01 unless the issue is fixed" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/dante/dante_1.4.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/dante/dante_1.4.1.bb new file mode 100644 index 0000000000..ffdab22cf0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/dante/dante_1.4.1.bb @@ -0,0 +1,49 @@ +SECTION = "console/utils" +SUMMARY = "A free SOCKS server" +DESCRIPTION = "Dante consists of a SOCKS server and a SOCKS client,\ +implementing RFC 1928 and related standards. It is a flexible product\ +that can be used to provide convenient and secure network\ +connectivity. Once installed, Dante can in most cases be made\ +transparent to clients, providing functionality somewhat similar to\ +what could be described as a non-transparent Layer 4 router." +HOMEPAGE = "http://www.inet.no/dante/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=221118dda731fe93a85d0ed973467249" + +SRC_URI = "https://www.inet.no/dante/files/dante-${PV}.tar.gz \ + " +SRC_URI[md5sum] = "68c2ce12119e12cea11a90c7a80efa8f" +SRC_URI[sha256sum] = "b6d232bd6fefc87d14bf97e447e4fcdeef4b28b16b048d804b50b48f261c4f53" + +# without --without-gssapi, config.log will contain reference to /usr/lib +# as a consequence of GSSAPI path being set to /usr by default. +# --with-gssapi-path=PATH specify gssapi path +# --without-gssapi disable gssapi support +# --enable-release build prerelease as full release +EXTRA_OECONF += "--without-gssapi --sbindir=${bindir}" + +DEPENDS += "flex-native bison-native libpam" + +inherit autotools-brokensep distro_features_check + +REQUIRED_DISTRO_FEATURES = "pam" + +EXTRA_AUTORECONF = "-I ${S}" + +PACKAGECONFIG[libwrap] = ",--disable-libwrap,tcp-wrappers,libwrap" +PACKAGECONFIG[krb5] = ",--without-krb5,krb5" + +PACKAGECONFIG ??= "" + +do_install_append() { + install -d ${D}${sysconfdir} + cp ${S}/example/sock[sd].conf ${D}${sysconfdir} +} + +PACKAGES =+ "${PN}-sockd ${PN}-libdsocks " + +FILES_${PN}-libdsocks = "${libdir}/libdsocks.so" +FILES_${PN}-sockd = "${bindir}/sockd ${sysconfdir}/sockd.conf" + +INSANE_SKIP_${PN}-libdsocks = "dev-elf" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch new file mode 100644 index 0000000000..b87e9eec26 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch @@ -0,0 +1,31 @@ +From c6304a3e4b8441ff0a6464c0f1f6c5229092fa32 Mon Sep 17 00:00:00 2001 +From: Niels Baggesen <nba@users.sourceforge.net> +Date: Wed, 24 May 2017 16:40:03 +0800 +Subject: [PATCH 1/4] configure: fix check for --enable-perl-cc-checks + +This patch comes from git://git.code.sf.net/p/net-snmp/code, +the commit is 8f431d410b803603dc809d82e0893509615d9a11. + +Upstream-Status: Backport + +Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> +--- + configure.d/config_project_perl_python | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python +index 23f8c7e..475c843 100644 +--- a/configure.d/config_project_perl_python ++++ b/configure.d/config_project_perl_python +@@ -84,7 +84,7 @@ if test "x$install_perl" != "xno" ; then + + # What compiler was used to build the perl binary? + # +- if test "xenable_perl_cc_checks" != "xno" ; then ++ if test "x$enable_perl_cc_checks" != "xno" ; then + AC_MSG_CHECKING([for Perl cc]) + changequote(, ) + PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'` +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch new file mode 100644 index 0000000000..999976d279 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch @@ -0,0 +1,30 @@ +From 94e7e4969bc84c945dfea12d67a1e10f61973948 Mon Sep 17 00:00:00 2001 +From: Wenlin Kang <wenlin.kang@windriver.com> +Date: Wed, 24 May 2017 16:45:34 +0800 +Subject: [PATCH 2/4] configure: fix a cc check issue. + +When has "." in cc value, the expression +$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);' +can't get corretly the cc's value. + +Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> +--- + configure.d/config_project_perl_python | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python +index 475c843..22d2ad3 100644 +--- a/configure.d/config_project_perl_python ++++ b/configure.d/config_project_perl_python +@@ -87,7 +87,7 @@ if test "x$install_perl" != "xno" ; then + if test "x$enable_perl_cc_checks" != "xno" ; then + AC_MSG_CHECKING([for Perl cc]) + changequote(, ) +- PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'` ++ PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\.\w\s\/]+).;\s*/$1/);'` + changequote([, ]) + if test "x$PERLCC" != "x" ; then + AC_MSG_RESULT([$PERLCC]) +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch new file mode 100644 index 0000000000..7951234a4e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch @@ -0,0 +1,186 @@ +From e57fc809ad6ae522670f3dc157aadde20d968ca7 Mon Sep 17 00:00:00 2001 +From: Bart Van Assche <bvanassche@acm.org> +Date: Wed, 24 May 2017 17:05:03 +0800 +Subject: [PATCH 3/4] CHANGES: BUG: 2712: Fix Perl module compilation + +Avoid that building the Net-SNMP Perl modules fails as follows: + +ERROR from evaluation of /sources/net-snmp-5.7.3/perl/ASN/Makefile.PL: Bizarre \ copy of HASH in list assignment at /usr/lib/perl5/site_perl/5.24.0/Carp.pm line\ 229. + +See also https://sourceforge.net/p/net-snmp/bugs/2712/. + +This patch comes from git://git.code.sf.net/p/net-snmp/code, +the commit is 4e793461e96a2b4fd81142ab312d074d5c8841fa. + +Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> +--- + perl/ASN/Makefile.PL | 4 +--- + perl/Makefile.PL | 4 +--- + perl/OID/Makefile.PL | 5 +---- + perl/SNMP/Makefile.PL | 5 +---- + perl/TrapReceiver/Makefile.PL | 5 +---- + perl/agent/Makefile.PL | 5 +---- + perl/agent/Support/Makefile.PL | 5 +---- + perl/agent/default_store/Makefile.PL | 5 +---- + perl/default_store/Makefile.PL | 5 +---- + 9 files changed, 9 insertions(+), 34 deletions(-) + +diff --git a/perl/ASN/Makefile.PL b/perl/ASN/Makefile.PL +index 4576781..c33d8ba 100644 +--- a/perl/ASN/Makefile.PL ++++ b/perl/ASN/Makefile.PL +@@ -7,9 +7,7 @@ my $lib_version; + # See lib/ExtUtils/MakeMaker.pm for details of how to influence + # the contents of the Makefile that is written. + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/Makefile.PL b/perl/Makefile.PL +index 31fdc40..48aba2a 100644 +--- a/perl/Makefile.PL ++++ b/perl/Makefile.PL +@@ -3,9 +3,7 @@ use Config; + use Getopt::Long; + require 5; + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + sub InitMakeParams { + $nsconfig="net-snmp-config"; # in path by default +diff --git a/perl/OID/Makefile.PL b/perl/OID/Makefile.PL +index 6bb1616..2589985 100644 +--- a/perl/OID/Makefile.PL ++++ b/perl/OID/Makefile.PL +@@ -6,11 +6,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/SNMP/Makefile.PL b/perl/SNMP/Makefile.PL +index e617cb7..8aab9a9 100644 +--- a/perl/SNMP/Makefile.PL ++++ b/perl/SNMP/Makefile.PL +@@ -3,15 +3,12 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + my $opts; + + # See lib/ExtUtils/MakeMaker.pm for details of how to influence + # the contents of the Makefile that is written. + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/TrapReceiver/Makefile.PL b/perl/TrapReceiver/Makefile.PL +index 874ee21..7e9e58e 100644 +--- a/perl/TrapReceiver/Makefile.PL ++++ b/perl/TrapReceiver/Makefile.PL +@@ -3,11 +3,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/agent/Makefile.PL b/perl/agent/Makefile.PL +index 4f7bee3..003c0d1 100644 +--- a/perl/agent/Makefile.PL ++++ b/perl/agent/Makefile.PL +@@ -3,11 +3,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/agent/Support/Makefile.PL b/perl/agent/Support/Makefile.PL +index 48815b6..2325e10 100644 +--- a/perl/agent/Support/Makefile.PL ++++ b/perl/agent/Support/Makefile.PL +@@ -3,14 +3,11 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + + # See lib/ExtUtils/MakeMaker.pm for details of how to influence + # the contents of the Makefile that is written. + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/agent/default_store/Makefile.PL b/perl/agent/default_store/Makefile.PL +index ed6483a..31cfbee 100644 +--- a/perl/agent/default_store/Makefile.PL ++++ b/perl/agent/default_store/Makefile.PL +@@ -3,11 +3,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + Check_Version(); + +diff --git a/perl/default_store/Makefile.PL b/perl/default_store/Makefile.PL +index 7c671b8..01c8dd0 100644 +--- a/perl/default_store/Makefile.PL ++++ b/perl/default_store/Makefile.PL +@@ -3,11 +3,8 @@ require 5; + use Config; + use Getopt::Long; + my $lib_version; +-my %MakeParams = (); + +-%MakeParams = InitMakeParams(); +- +-WriteMakefile(%MakeParams); ++WriteMakefile(InitMakeParams()); + + + sub InitMakeParams { +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch new file mode 100644 index 0000000000..2b03f9e9a2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch @@ -0,0 +1,30 @@ +From 4ad98ef125eb4e7d7a1a93146042002f78254d36 Mon Sep 17 00:00:00 2001 +From: Wenlin Kang <wenlin.kang@windriver.com> +Date: Wed, 24 May 2017 17:10:20 +0800 +Subject: [PATCH 4/4] configure: fix incorrect variable + +For cross compile platform, this variable will not be correct, so fix it. + +Upstream-Status: Inappropriate [cross compile specific] + +Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index cfcdf73..164df05 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -171,7 +171,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt + # + # override LD_RUN_PATH to avoid dependencies on the build directory + perlmodules: perlmakefiles subdirs +- @(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{archlibexp}/CORE);'`") ; \ ++ @(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{installprivlib}/CORE);'`") ; \ + if test $$? != 0 ; then \ + exit 1 ; \ + fi +-- +1.9.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb index 79e7766e9f..2d6887e377 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb @@ -26,11 +26,15 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \ file://0001-get_pid_from_inode-Include-limit.h.patch \ file://0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch \ file://0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch \ + file://0001-configure-fix-check-for-enable-perl-cc-checks.patch \ + file://0002-configure-fix-a-cc-check-issue.patch \ + file://0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch \ + file://0004-configure-fix-incorrect-variable.patch \ " SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee" SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e" -inherit autotools update-rc.d siteinfo systemd pkgconfig +inherit autotools-brokensep update-rc.d siteinfo systemd pkgconfig perlnative EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'" @@ -43,11 +47,13 @@ PACKAGECONFIG ??= "" PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils" PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,," -EXTRA_OECONF = "--disable-embedded-perl \ - --with-perl-modules=no \ +PACKAGECONFIG[perl] = "--enable-embedded-perl --with-perl-modules=yes, --disable-embedded-perl --with-perl-modules=no,\ + perl, perl perl-lib" + +EXTRA_OECONF = "--enable-shared \ --disable-manuals \ --with-defaults \ --with-install-prefix=${D} \ @@ -63,12 +69,38 @@ CACHED_CONFIGUREVARS = " \ ac_cv_ETC_MNTTAB=/etc/mtab \ lt_cv_shlibpath_overrides_runpath=yes \ " +export PERLPROG="${bindir}/env perl" +PERLPROG_append = "${@bb.utils.contains('PACKAGECONFIG', 'perl', ' -I${WORKDIR}', '', d)}" + +HAS_PERL = "${@bb.utils.contains('PACKAGECONFIG', 'perl', '1', '0', d)}" do_configure_prepend() { - export PERLPROG="${bindir}/env perl" sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \ "${S}"/configure \ "${S}"/configure.d/config_os_libs2 + + if [ "${HAS_PERL}" = "1" ]; then + # this may need to be changed when package perl has any change. + cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config.pm ${WORKDIR}/ + cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl/*/Config_heavy.pl ${WORKDIR}/ + sed -e "s@libpth => '/usr/lib.*@libpth => '${STAGING_DIR_TARGET}/${libdir} ${STAGING_DIR_TARGET}/${base_libdir}',@g" \ + -e "s@privlibexp => '/usr@privlibexp => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@scriptdir => '/usr@scriptdir => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@sitearchexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@sitelibexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@vendorarchexp => '/usr@vendorarchexp => '${STAGING_DIR_TARGET}/usr@g" \ + -e "s@vendorlibexp => '/usr@vendorlibexp => '${STAGING_DIR_TARGET}/usr@g" \ + -i ${WORKDIR}/Config.pm + fi + +} + +do_configure_append() { + if [ "${HAS_PERL}" = "1" ]; then + sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=${STAGING_DIR_TARGET}\$\{includedir\}@g" \ + -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L${STAGING_DIR_TARGET}\$\{libdir\}@g" \ + -i ${B}/net-snmp-config + fi } do_install_append() { @@ -84,6 +116,12 @@ do_install_append() { -i ${D}${bindir}/net-snmp-create-v3-user sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \ -i ${D}${bindir}/net-snmp-config + + if [ "${HAS_PERL}" = "1" ]; then + sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=\$\{includedir\}@g" \ + -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L\$\{libdir\}@g" \ + -i ${D}${bindir}/net-snmp-config + fi } do_install_ptest() { @@ -122,9 +160,14 @@ net_snmp_sysroot_preprocess () { PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client ${PN}-server-snmpd ${PN}-server-snmptrapd" +# perl module +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl-modules', '', d)}" + ALLOW_EMPTY_${PN} = "1" ALLOW_EMPTY_${PN}-server = "1" +FILES_${PN}-perl-modules = "${libdir}/perl/*" + FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}" FILES_${PN}-mibs = "${datadir}/snmp/mibs" FILES_${PN}-server-snmpd = "${sbindir}/snmpd \ @@ -158,11 +201,13 @@ SYSTEMD_PACKAGES = "${PN}-server-snmpd \ SYSTEMD_SERVICE_${PN}-server-snmpd = "snmpd.service" SYSTEMD_SERVICE_${PN}-server-snmptrapd = "snmptrapd.service" +RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}" RDEPENDS_${PN} += "net-snmp-client" RDEPENDS_${PN}-server-snmpd += "net-snmp-mibs" RDEPENDS_${PN}-server-snmptrapd += "net-snmp-server-snmpd" RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd" -RDEPENDS_${PN}-client += "net-snmp-mibs" +RDEPENDS_${PN}-client += "net-snmp-mibs net-snmp-libs" +RDEPENDS_${PN}-libs += "libpci" RDEPENDS_${PN}-ptest += "perl \ perl-module-test \ perl-module-file-basename \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb new file mode 100644 index 0000000000..1d77891d47 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb @@ -0,0 +1,23 @@ +SUMMARY = "OpenSource WebSocket Toolkit" +DESCRIPTION = "noPoll is a OpenSource WebSocket implementation (RFC 6455), \ +written in ansi C, that allows building pure WebSocket solutions or to \ +provide WebSocket support to existing TCP oriented applications.\ +\ +noPoll provides support for WebSocket (ws://) and TLS (secure) WebSocket (wss://),\ +allowing message based (handler notified) programming or stream oriented access." + +HOMEPAGE = "http://www.aspl.es/nopoll/" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=f0504124678c1b3158146e0630229298 \ + " +DEPENDS = "openssl" +SRC_URI = "http://www.aspl.es/nopoll/downloads/nopoll-${PV}.tar.gz \ + " +SRC_URI[md5sum] = "8c411cd0f3c0479aed28c4cf7b114fbb" +SRC_URI[sha256sum] = "f5fbf8aaa16a77b0f265d8c847eb06cb3e68f2b1a50737466dae81181618654c" + +inherit autotools pkgconfig + +EXTRA_OECONF += "--disable-nopoll-doc" + +LDFLAGS += "-lpthread" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc index d309ae1a80..cccbfa19a6 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc @@ -16,7 +16,7 @@ SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git" DEPENDS = "virtual/libc" PACKAGECONFIG ??= "openssl" -PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl, openssl, libssl" +PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl, openssl openssl-native, libssl" EXTRA_OECONF += " \ KARCH=${TARGET_ARCH} \ @@ -25,11 +25,10 @@ EXTRA_OECONF += " \ S = "${WORKDIR}/git" -inherit autotools-brokensep +inherit autotools-brokensep pkgconfig -do_configure() { +do_configure_prepend() { ./boot.sh - oe_runconf } do_install_append() { diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch new file mode 100644 index 0000000000..952274bb97 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch @@ -0,0 +1,64 @@ +From 7b62e5884353b247f542844d1e4687d0e9211999 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 20 Jul 2017 04:27:32 -0700 +Subject: [PATCH 1/2] Check and use strlcpy from libc before defining own + +This is required especially on musl where +function prototype conflicts and causes build +failures. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 2 +- + lib/util.c | 2 ++ + lib/util.h | 1 + + 3 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 13064f6..596c43f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -57,7 +57,7 @@ OFP_CHECK_HWTABLES + OFP_CHECK_HWLIBS + AC_SYS_LARGEFILE + +-AC_CHECK_FUNCS([strsignal]) ++AC_CHECK_FUNCS([strlcpy strsignal]) + + AC_ARG_VAR(KARCH, [Kernel Architecture String]) + AC_SUBST(KARCH) +diff --git a/lib/util.c b/lib/util.c +index 21cc28d..1f341b1 100644 +--- a/lib/util.c ++++ b/lib/util.c +@@ -138,6 +138,7 @@ xasprintf(const char *format, ...) + return s; + } + ++#ifndef HAVE_STRLCPY + void + strlcpy(char *dst, const char *src, size_t size) + { +@@ -148,6 +149,7 @@ strlcpy(char *dst, const char *src, size_t size) + dst[n_copy] = '\0'; + } + } ++#endif + + void + ofp_fatal(int err_no, const char *format, ...) +diff --git a/lib/util.h b/lib/util.h +index fde681f..9e45ea9 100644 +--- a/lib/util.h ++++ b/lib/util.h +@@ -41,6 +41,7 @@ + #include <stdio.h> + #include <string.h> + #include "compiler.h" ++#include "config.h" + + #ifndef va_copy + #ifdef __va_copy +-- +2.13.3 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch new file mode 100644 index 0000000000..75180fe32f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch @@ -0,0 +1,59 @@ +From 5bba224edea38607e8732081f86679ffd8b218ab Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 20 Jul 2017 04:29:04 -0700 +Subject: [PATCH 2/2] lib/netdev: Adjust header include sequence + +Specify libc headers before kernel UAPIs +this helps compiling with musl where otherwise +it uses the definition from kernel and complains +about double definition in libc headers + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/netdev.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/lib/netdev.c b/lib/netdev.c +index 3b6fbc5..c7de25e 100644 +--- a/lib/netdev.c ++++ b/lib/netdev.c +@@ -39,7 +39,6 @@ + #include <fcntl.h> + #include <arpa/inet.h> + #include <inttypes.h> +-#include <linux/if_tun.h> + + /* Fix for some compile issues we were experiencing when setting up openwrt + * with the 2.4 kernel. linux/ethtool.h seems to use kernel-style inttypes, +@@ -57,10 +56,6 @@ + #define s64 __s64 + #endif + +-#include <linux/ethtool.h> +-#include <linux/rtnetlink.h> +-#include <linux/sockios.h> +-#include <linux/version.h> + #include <sys/types.h> + #include <sys/ioctl.h> + #include <sys/socket.h> +@@ -68,12 +63,16 @@ + #include <net/ethernet.h> + #include <net/if.h> + #include <net/if_arp.h> +-#include <net/if_packet.h> + #include <net/route.h> + #include <netinet/in.h> + #include <stdlib.h> + #include <string.h> + #include <unistd.h> ++#include <linux/ethtool.h> ++#include <linux/rtnetlink.h> ++#include <linux/sockios.h> ++#include <linux/version.h> ++#include <linux/if_tun.h> + + #include "fatal-signal.h" + #include "list.h" +-- +2.13.3 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb index 6403bfb220..eceb45e94f 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow_git.bb @@ -2,3 +2,8 @@ include ${BPN}.inc SRCREV = "c84f33f09d5dbcfc9b489f64cb30475bf36f653a" PV = "1.0+git${SRCPV}" + +SRC_URI += "\ + file://0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch \ + file://0002-lib-netdev-Adjust-header-include-sequence.patch \ + " diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch new file mode 100644 index 0000000000..d1ee3c5916 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch @@ -0,0 +1,29 @@ +From 1f8d336a5cd88b87e15596d05980f6fe77a0f226 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Mar 2017 11:28:41 -0700 +Subject: [PATCH 1/4] Use -1 instead of WAIT_ANY + +WAIT_ANY is not supported by POSIX and some C libraries +e.g. musl do not define this. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + usl/usl_pid.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/usl/usl_pid.c b/usl/usl_pid.c +index 103458b..9819473 100644 +--- a/usl/usl_pid.c ++++ b/usl/usl_pid.c +@@ -78,7 +78,7 @@ int usl_pid_reap_children(int waitfor) + + /* Wait for processes in our process group. */ + +- while (((pid = waitpid(WAIT_ANY, &status, (waitfor ? 0: WNOHANG))) != -1) && (pid != 0)) { ++ while (((pid = waitpid(-1, &status, (waitfor ? 0: WNOHANG))) != -1) && (pid != 0)) { + have_callback = 0; + usl_list_for_each(walk, tmp, &usl_child_list) { + child = usl_list_entry(walk, struct usl_pid_child, list); +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch new file mode 100644 index 0000000000..c50f68e65d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch @@ -0,0 +1,34 @@ +From 25dce20a75bc84ae9e4ec640590cef0c12750789 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Mar 2017 17:48:13 -0700 +Subject: [PATCH 1/2] l2tp_api: Included needed headers + +These are flagged by musl + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + l2tp_api.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/l2tp_api.c b/l2tp_api.c +index d16f80e..9d6f60a 100644 +--- a/l2tp_api.c ++++ b/l2tp_api.c +@@ -22,9 +22,12 @@ + * Each module implements the required RPC xxx_1_svc() callbacks which + * are called directly by the RPC library. + */ +- ++#define _GNU_SOURCE ++#include <sys/types.h> ++#include <rpc/types.h> ++#include <rpc/xdr.h> + #include <rpc/pmap_clnt.h> +-#include <net/ethernet.h> ++//#include <netinet/in.h> + + #include "usl.h" + +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch new file mode 100644 index 0000000000..9df32658a0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch @@ -0,0 +1,25 @@ +From 2d633f4c18ff3cb52234449fd86a0a63b55d669b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Mar 2017 11:31:55 -0700 +Subject: [PATCH 2/4] cli: include fcntl.h for O_CREAT define + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + cli/cli_readline.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cli/cli_readline.c b/cli/cli_readline.c +index 097ed6a..127136c 100644 +--- a/cli/cli_readline.c ++++ b/cli/cli_readline.c +@@ -24,6 +24,7 @@ + #include <sys/file.h> + #include <sys/stat.h> + #include <sys/errno.h> ++#include <fcntl.h> + #include <signal.h> + + #include <readline/readline.h> +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch new file mode 100644 index 0000000000..3f8bcaa483 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch @@ -0,0 +1,33 @@ +From a41cbeee3cf660663a9baac80545050a8d960898 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Mar 2017 18:09:58 -0700 +Subject: [PATCH 2/2] user ipv6 structures + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + l2tp_api.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/l2tp_api.c b/l2tp_api.c +index 9d6f60a..f0946fd 100644 +--- a/l2tp_api.c ++++ b/l2tp_api.c +@@ -450,10 +450,12 @@ int l2tp_api_rpc_check_request(SVCXPRT *xprt) + * non-loopback interface, reject the request. + */ + if ((!l2tp_opt_remote_rpc) && +- ((xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_LOOPBACK)) && +- (xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_ANY)))) { ++ ((xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_LOOPBACK)) && ++ (xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_ANY)))) { ++ char straddr[INET6_ADDRSTRLEN]; ++ inet_ntop(AF_INET6, &xprt->xp_raddr.sin6_addr, straddr, sizeof(straddr)); + if (l2tp_opt_trace_flags & L2TP_DEBUG_API) { +- l2tp_log(LOG_ERR, "Rejecting RPC request from %s", inet_ntoa(xprt->xp_raddr.sin_addr)); ++ l2tp_log(LOG_ERR, "Rejecting RPC request from %s", straddr); + } + svcerr_auth(xprt, AUTH_TOOWEAK); + return -EPERM; +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch new file mode 100644 index 0000000000..e05be1bbb4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch @@ -0,0 +1,35 @@ +From 74fe72583472bcc3c89a52839cac2ebbad6c8a74 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Mar 2017 11:34:52 -0700 +Subject: [PATCH 3/4] cli: Define _GNU_SOURCE for getting sighandler_t + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + cli/cli_readline.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cli/cli_readline.c b/cli/cli_readline.c +index 127136c..931779b 100644 +--- a/cli/cli_readline.c ++++ b/cli/cli_readline.c +@@ -17,7 +17,7 @@ + * Boston, MA 02110-1301 USA + * + *****************************************************************************/ +- ++#define _GNU_SOURCE + #include <stdio.h> + #include <unistd.h> + #include <sys/types.h> +@@ -634,7 +634,7 @@ static void cli_rl_uninstall_signal_handlers(void) + + static int cli_rl_install_signal_handlers(void) + { +- __sighandler_t handler; ++ sighandler_t handler; + + rl_catch_signals = 0; + rl_clear_signals(); +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch new file mode 100644 index 0000000000..0fcba6546a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp/0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch @@ -0,0 +1,36 @@ +From ede4ae8e25f9fb746a6f4e076d0ef029938d2880 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Mar 2017 11:46:56 -0700 +Subject: [PATCH 4/4] Adjust for linux-kernel headers assumptions on glibc + +Fixes build issues e.g. + +In file included from /mnt/a/build/tmp-musl/work/cortexa7hf-neon-vfpv4-oe-linux-musleabi/openl2tp/1.8-r0/recipe-sysroot/usr/include/linux/if_pppox.h:24: +/mnt/a/build/tmp-musl/work/cortexa7hf-neon-vfpv4-oe-linux-musleabi/openl2tp/1.8-r0/recipe-sysroot/usr/include/linux/if.h:97:2: error: expected identifier + IFF_LOWER_UP = 1<<16, /* __volatile__ */ + ^ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + plugins/ppp_unix.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/plugins/ppp_unix.c b/plugins/ppp_unix.c +index 869066f..5c1e44f 100644 +--- a/plugins/ppp_unix.c ++++ b/plugins/ppp_unix.c +@@ -21,6 +21,11 @@ + * Plugin to use the standard UNIX pppd + */ + ++/* hack to make sure kernel headers understand that libc (musl) ++ * does define IFF_LOWER_UP et al. ++ */ ++#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0 ++ + #include <unistd.h> + #include <fcntl.h> + #include <sys/types.h> +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb index 67118d8d6c..e1670b3aeb 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb @@ -16,14 +16,28 @@ SRC_URI = "ftp://ftp.openl2tp.org/releases/${BP}/${BP}.tar.gz \ file://openl2tp-simplify-gcc-warning-hack.patch \ file://Makefile-obey-LDFLAGS.patch \ file://0001-test-pppd_dummy.c-Fix-return-value.patch \ + file://0001-Use-1-instead-of-WAIT_ANY.patch \ + file://0002-cli-include-fcntl.h-for-O_CREAT-define.patch \ + file://0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch \ + file://0001-l2tp_api-Included-needed-headers.patch \ + " + +SRC_URI_append_libc-musl = "\ + file://0004-Adjust-for-linux-kernel-headers-assumptions-on-glibc.patch \ + file://0002-user-ipv6-structures.patch \ " SRC_URI[md5sum] = "e3d08dedfb9e6a9a1e24f6766f6dadd0" SRC_URI[sha256sum] = "1c97704d4b963a87fbc0e741668d4530933991515ae9ab0dffd11b5444f4860f" inherit autotools-brokensep pkgconfig +DEPENDS_append_libc-musl = " libtirpc" +CPPFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + PARALLEL_MAKE = "" -EXTRA_OEMAKE = 'CFLAGS="${CFLAGS} -Wno-unused-but-set-variable"' +EXTRA_OEMAKE = 'CFLAGS="${CFLAGS} -Wno-unused-but-set-variable" CPPFLAGS="${CPPFLAGS}" OPT_CFLAGS="${CFLAGS}"' do_compile_prepend() { sed -i -e "s:SYS_LIBDIR=.*:SYS_LIBDIR=${libdir}:g" \ @@ -34,5 +48,6 @@ do_compile_prepend() { -e 's:$(CROSS_COMPILE)nm:${NM}:g' \ -e 's:$(CROSS_COMPILE)strip:${STRIP}:g' \ -e 's:$(CROSS_COMPILE)install:install:g' \ + -e 's:CPPFLAGS-y:CPPFLAGS:g' \ ${S}/Makefile } diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch deleted file mode 100644 index f08bb572da..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch +++ /dev/null @@ -1,28 +0,0 @@ -Upstream-Status: Pending - -Subject: ospf6d: check ospf6 before using it in ospf6_clean - -The ospf6 variable might be 'NULL' causing segment fault error. -Check it before referencing it. - -Signed-off-by: Chen Qi <Qi.Chen@windriver.com> ---- - ospf6d/ospf6d.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c -index 3cdd5c1..e3bf1af 100644 ---- a/ospf6d/ospf6d.c -+++ b/ospf6d/ospf6d.c -@@ -1892,6 +1892,8 @@ ospf6_init (void) - void - ospf6_clean (void) - { -+ if (ospf6 == NULL) -+ return; - if (ospf6->route_table) - ospf6_route_remove_all (ospf6->route_table); - if (ospf6->brouter_table) --- -1.9.1 - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch deleted file mode 100644 index a07e33f9fd..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch +++ /dev/null @@ -1,54 +0,0 @@ -quagga: Avoid duplicate connected address adding to the list - -commit 27ba970b9("quagga/ripd: Fix two bugs after received SIGHUP signal") -introduces an regression: ifp->connected list is cleaned up when ripd is -restarting, however, for interface addresses which are not specified in -ripd configuration file, they are never to be added into ifp->connected -again, this will lead to some abnormal behavior for route advertising. - -Instead of cleaning up the ifp->connected list to avoid duplicated -connected address being added into this list, we can check this -condition during interface address adding process and return early -when an identical address has already been added. - -Upstream-Status: Pending - -Signed-off-by: Hu Yadi <Yadi.hu@windriver.com> -Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com> -Signed-off-by: Joe MacDonald <joe@deserted.net> ---- ---- a/lib/if.c -+++ b/lib/if.c -@@ -738,6 +738,16 @@ connected_add_by_prefix (struct interfac - struct prefix *destination) - { - struct connected *ifc; -+ struct listnode *cnode; -+ struct connected *c; -+ int ret = 0; -+ -+ for (ALL_LIST_ELEMENTS_RO (ifp->connected, cnode, c)) -+ { -+ ret = connected_same_prefix (p, (c->address)); -+ if(ret == 1) -+ return NULL; -+ } - - /* Allocate new connected address. */ - ifc = connected_new (); ---- a/ripd/rip_interface.c -+++ b/ripd/rip_interface.c -@@ -516,13 +516,6 @@ rip_interface_clean (void) - thread_cancel (ri->t_wakeup); - ri->t_wakeup = NULL; - } -- -- for (conn_node = listhead (ifp->connected); conn_node; conn_node = next) -- { -- ifc = listgetdata (conn_node); -- next = conn_node->next; -- listnode_delete (ifp->connected, ifc); -- } - } - } - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.default b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.default index 0c1ce6c042..4c4bc23071 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.default +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.default @@ -4,7 +4,6 @@ vtysh_enable=yes # Bind all daemons to loopback only by default zebra_options=" --daemon -A 127.0.0.1" -babeld_options="--daemon -A 127.0.0.1" bgpd_options=" --daemon -A 127.0.0.1" ospfd_options=" --daemon -A 127.0.0.1" ospf6d_options="--daemon -A ::1" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.init b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.init index 60b5ab01a1..df1beb7123 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.init +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/quagga.init @@ -26,7 +26,7 @@ D_PATH=/usr/sbin C_PATH=/etc/quagga # Keep zebra first and do not list watchquagga! -DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld" +DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd" # Print the name of the pidfile. pidfile() diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch deleted file mode 100644 index 4b8c9a929b..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch +++ /dev/null @@ -1,50 +0,0 @@ -ripd: Fix two bugs after received SIGHUP signal - -There are two problems for ripd implementation after received -SIGHUP signal: -1). ripd didn't clean up ifp->connected list before reload - configuration file. -2). ripd reset ri->split_horizon flag to RIP_NO_SPLIT_HORIZON - which lead to the unnecessary route to be advertised. - -Upstream-Status: Submitted [http://patchwork.diac24.net/patch/604/] - -Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com> -Signed-off-by: Joe MacDonald <joe@deserted.net> ---- ---- a/ripd/rip_interface.c -+++ b/ripd/rip_interface.c -@@ -500,6 +500,8 @@ - struct listnode *node; - struct interface *ifp; - struct rip_interface *ri; -+ struct connected *ifc; -+ struct listnode *conn_node, *next; - - for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp)) - { -@@ -514,6 +516,13 @@ - thread_cancel (ri->t_wakeup); - ri->t_wakeup = NULL; - } -+ -+ for (conn_node = listhead (ifp->connected); conn_node; conn_node = next) -+ { -+ ifc = listgetdata (conn_node); -+ next = conn_node->next; -+ listnode_delete (ifp->connected, ifc); -+ } - } - } - -@@ -548,8 +557,8 @@ - ri->key_chain = NULL; - } - -- ri->split_horizon = RIP_NO_SPLIT_HORIZON; -- ri->split_horizon_default = RIP_NO_SPLIT_HORIZON; -+ ri->split_horizon = RIP_SPLIT_HORIZON; -+ ri->split_horizon_default = RIP_SPLIT_HORIZON; - - ri->list[RIP_FILTER_IN] = NULL; - ri->list[RIP_FILTER_OUT] = NULL; diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc index ae08a2d323..4fb6723c3a 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga.inc @@ -28,8 +28,6 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga${QUAGGASUBDIR}/quagga-${PV}.tar.gz; \ file://watchquagga.default \ file://volatiles.03_quagga \ file://quagga.pam \ - file://ripd-fix-two-bugs-after-received-SIGHUP.patch \ - file://quagga-Avoid-duplicate-connected-address.patch \ file://bgpd.service \ file://isisd.service \ file://ospf6d.service \ @@ -39,11 +37,11 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga${QUAGGASUBDIR}/quagga-${PV}.tar.gz; \ file://zebra.service \ " -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap" PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam" -inherit autotools update-rc.d useradd systemd +inherit autotools update-rc.d useradd systemd pkgconfig SYSTEMD_PACKAGES = "${PN} ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" SYSTEMD_SERVICE_${PN}-bgpd = "bgpd.service" @@ -72,6 +70,8 @@ EXTRA_OECONF = "--sysconfdir=${sysconfdir}/quagga \ ap_cv_cc_pie=no \ ${SNMP_CONF}" +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'" + do_install () { # Install init script and default settings install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d \ @@ -202,7 +202,7 @@ INITSCRIPT_PARAMS_${PN}-watchquagga = "defaults 90 10" # Add quagga's user and group USERADD_PACKAGES = "${PN}" GROUPADD_PARAM_${PN} = "--system quagga ; --system quaggavty" -USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/quagga/ -M -g quagga --shell /bin/false quagga" +USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/quagga/ -M -g quagga -G quaggavty --shell /bin/false quagga" pkg_postinst_${PN} () { if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.0.20160315.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.0.20160315.bb deleted file mode 100644 index d1657818c4..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.0.20160315.bb +++ /dev/null @@ -1,10 +0,0 @@ -require quagga.inc - -SRC_URI += " \ - file://0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch \ -" - -SRC_URI[md5sum] = "e73d6e527fb80240f180de420cfe8042" -SRC_URI[sha256sum] = "21ffb7bad0ef5f130f18dd299d219ea1cb4f5c03d473b6b32c83c340cd853263" - -QUAGGASUBDIR = "" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb new file mode 100644 index 0000000000..1b5c34c87d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb @@ -0,0 +1,6 @@ +require quagga.inc + +SRC_URI[md5sum] = "daa303871e07ea5856aae6fd79e89722" +SRC_URI[sha256sum] = "f7a43a9c59bfd3722002210530b2553c8d5cc05bfea5acd56d4f102b9f55dc63" + +QUAGGASUBDIR = "" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0001-ppoe-Dont-include-linux-if_ether.h.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0001-ppoe-Dont-include-linux-if_ether.h.patch new file mode 100644 index 0000000000..11356ce3f7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0001-ppoe-Dont-include-linux-if_ether.h.patch @@ -0,0 +1,30 @@ +From 8d4d452d733bac8c5b55a90bddec8cc323cc9fa8 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Mar 2017 19:20:07 -0700 +Subject: [PATCH 1/2] ppoe: Dont include linux/if_ether.h + +Fixes build with musl + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/pppoe.h | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/pppoe.h b/src/pppoe.h +index ec067a0..281879c 100644 +--- a/src/pppoe.h ++++ b/src/pppoe.h +@@ -127,10 +127,6 @@ typedef unsigned long UINT32_t; + #error Could not find a 32-bit integer type + #endif + +-#ifdef HAVE_LINUX_IF_ETHER_H +-#include <linux/if_ether.h> +-#endif +- + #include <netinet/in.h> + + #ifdef HAVE_NETINET_IF_ETHER_H +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0002-Enable-support-for-the-kernel-module.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0002-Enable-support-for-the-kernel-module.patch new file mode 100644 index 0000000000..139d1f089b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0002-Enable-support-for-the-kernel-module.patch @@ -0,0 +1,25 @@ +From aca8473a516a8dc013866105da141fe1cd947474 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Mar 2017 19:24:53 -0700 +Subject: [PATCH 2/2] Enable support for the kernel module + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/configure.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/configure.in b/src/configure.in +index cae0976..951a042 100644 +--- a/src/configure.in ++++ b/src/configure.in +@@ -33,6 +33,7 @@ AC_CHECK_HEADERS(linux/if_pppox.h, [], [], + #include<net/ethernet.h> + #include<linux/if.h> + #include<linux/in.h> ++#include<linux/in6.h> + ]) + + dnl Checks for typedefs, structures, and compiler characteristics. +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb index e1ca17fb32..fbe015f5e8 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb @@ -17,7 +17,10 @@ SRC_URI = "http://www.roaringpenguin.com/files/download/${BP}.tar.gz \ file://pppoe-server.default \ file://pppoe-server.init \ file://configure.in-Error-fix.patch \ - file://pppoe-server.service" + file://pppoe-server.service \ + file://0001-ppoe-Dont-include-linux-if_ether.h.patch \ + file://0002-Enable-support-for-the-kernel-module.patch \ + " SRC_URI[md5sum] = "216eb52b69062b92a64ee37fd71f4b66" SRC_URI[sha256sum] = "00794e04031546b0e9b8cf286f2a6d1ccfc4a621b2a3abb2d7ef2a7ab7cc86c2" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch new file mode 100644 index 0000000000..b932ebbb4f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch @@ -0,0 +1,28 @@ +From 748bc693cf24baf42e459e12f152349e392b6737 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 20 Dec 2016 21:32:11 -0800 +Subject: [PATCH] Use foreign switch for automake + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 64cc9994..19ccd4a3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -29,7 +29,7 @@ dnl SUCH DAMAGE. + dnl + + AC_INIT([libusrsctp], [0.9.3.0]) +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) + + AC_PROG_CC + AC_PROG_LIBTOOL +-- +2.11.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb new file mode 100644 index 0000000000..3ec746684b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "This is a userland SCTP stack supporting FreeBSD, Linux, Mac OS X and Windows." +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=ffcf846341f3856d79a483eafa18e2a5" + +SRCREV = "dbfc1b8c4cf1a46a4d8987ba542d5ff06bdaf14c" +SRC_URI = "git://github.com/sctplab/usrsctp;protocol=https;branch=master \ + file://0001-Use-foreign-switch-for-automake.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +DEPENDS += "openssl" + +CFLAGS += "-DSCTP_USE_OPENSSL_SHA1 -fPIC" +LDFLAGS += "-lssl -lcrypto" + +PACKAGECONFIG ?= "disablewarnings inet inet6" +PACKAGECONFIG[disablewarnings] = "--disable-warnings-as-errors,," +PACKAGECONFIG[inet] = "--enable-inet,--disable-inet," +PACKAGECONFIG[inet6] = "--enable-inet6,--disable-inet6," + +EXTRA_OECONF += "--disable-debug" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch new file mode 100644 index 0000000000..b4d6d94b06 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch @@ -0,0 +1,69 @@ +From 549773fdaf1fb003b84f25df386a07d299cdeb3e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 18 Jul 2017 21:25:33 -0700 +Subject: [PATCH] zeroconf: Rename arp_op to avoid namespace conflicts with C + library + +on musl e.g. we get +In file included from /mnt/a/oe/build/tmp/work/corei7-64-bec-linux-musl/zeroconf/0.9-r1/recipe-sysroot/usr/include/net/ethernet.h:10:0, + +This is because in musl arp_op is a define which is included +and causes the conflict + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + zeroconf.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/zeroconf.c b/zeroconf.c +index 812d34b..f27e907 100644 +--- a/zeroconf.c ++++ b/zeroconf.c +@@ -14,8 +14,6 @@ + + #include <sys/types.h> + #include <sys/socket.h> +-#include <linux/rtnetlink.h> +-#include <linux/if.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +@@ -34,6 +32,8 @@ + #include <sys/time.h> + #include <signal.h> + #include <limits.h> ++#include <linux/rtnetlink.h> ++#include <linux/if.h> + + #include "delay.h" + +@@ -108,7 +108,7 @@ int arp_conflict(struct intf *intf, struct arp_packet *pkt); + void arp_packet_dump(struct arp_packet *pkt); + void arp_packet_send(int as, + struct intf *intf, +- short int arp_op, ++ short int arpop, + int null_sender); + void arp_probe(int as, struct intf *intf); + void arp_claim(int as, struct intf *intf); +@@ -1591,7 +1591,7 @@ int arp_conflict(struct intf *intf, struct arp_packet *pkt) + + void arp_packet_send(int as, + struct intf *intf, +- short int arp_op, ++ short int arpop, + int null_sender) + { + +@@ -1605,7 +1605,7 @@ void arp_packet_send(int as, + ap.arp.ar_pro = htons(ARP_IP_PROTO); + ap.arp.ar_hln = ETH_ALEN; + ap.arp.ar_pln = 4; /* octets in IPv4 address */ +- ap.arp.ar_op = htons(arp_op); ++ ap.arp.ar_op = htons(arpop); + + /* filling with 0xff sets the destination to + * the broadcast link-layer address for free +-- +2.13.3 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb index 13f9b9b9a3..753d832982 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb @@ -20,7 +20,9 @@ SRC_URI = "http://www.progsoc.org/~wildfire/zeroconf/download/${BPN}-${PV}.tar.g file://compilefix.patch \ file://makefile-add-ldflags.patch \ file://zeroconf-default \ - file://debian-zeroconf" + file://debian-zeroconf \ + file://0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch \ + " SRC_URI[md5sum] = "bdafb16b008ebb5633e4e581f77821d2" SRC_URI[sha256sum] = "a8c74df127753e2310fa1e072f3c9ca44a404bb0bbce9cfec7a84c6dff8bec7b" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch deleted file mode 100644 index 80e9804724..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-compile-install.patch +++ /dev/null @@ -1,61 +0,0 @@ -Index: arptables-v0.0.3-4/Makefile -=================================================================== ---- arptables-v0.0.3-4.orig/Makefile 2010-03-08 18:49:28.000000000 +0300 -+++ arptables-v0.0.3-4/Makefile 2010-03-22 15:52:56.000000000 +0300 -@@ -6,12 +6,11 @@ - LIBDIR:=$(PREFIX)/lib - BINDIR:=$(PREFIX)/sbin - MANDIR:=$(PREFIX)/man --INITDIR:=/etc/rc.d/init.d -+INITDIR:=/etc/init.d - SYSCONFIGDIR:=/etc/sysconfig - DESTDIR:= - --COPT_FLAGS:=-O2 --CFLAGS:=$(COPT_FLAGS) -Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" #-g -DDEBUG #-pg # -DARPTC_DEBUG -+ARPCFLAGS:=-Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" - - ifndef ARPT_LIBDIR - ARPT_LIBDIR:=$(LIBDIR)/arptables -@@ -22,16 +21,16 @@ - all: arptables - - arptables.o: arptables.c -- $(CC) $(CFLAGS) -c -o $@ $< -+ $(CC) $(CFLAGS) $(ARPCFLAGS) -c -o $@ $< - - arptables-standalone.o: arptables-standalone.c -- $(CC) $(CFLAGS) -c -o $@ $< -+ $(CC) $(CFLAGS) $(ARPCFLAGS) -c -o $@ $< - - libarptc/libarptc.o: libarptc/libarptc.c libarptc/libarptc_incl.c -- $(CC) $(CFLAGS) -c -o $@ $< -+ $(CC) $(CFLAGS) $(ARPCFLAGS) -c -o $@ $< - - arptables: arptables-standalone.o arptables.o libarptc/libarptc.o $(EXT_OBJS) -- $(CC) $(CFLAGS) -o $@ $^ -+ $(CC) $(LDFLAGS) $(CFLAGS) $(ARPCFLAGS) -o $@ $^ - - $(DESTDIR)$(MANDIR)/man8/arptables.8: arptables.8 - mkdir -p $(@D) -@@ -50,6 +49,7 @@ - cat arptables-restore | sed 's/__EXEC_PATH__/$(tmp1)/g' > arptables-restore_ - install -m 0755 -o root -g root arptables-restore_ $(DESTDIR)$(BINDIR)/arptables-restore - cat arptables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > arptables.sysv_ -+ install -d $(DESTDIR)$(INITDIR) - if test -d $(DESTDIR)$(INITDIR); then install -m 0755 -o root -g root arptables.sysv_ $(DESTDIR)$(INITDIR)/arptables; fi - rm -f arptables-save_ arptables-restore_ arptables.sysv_ - -Index: arptables-v0.0.3-4/extensions/Makefile -=================================================================== ---- arptables-v0.0.3-4.orig/extensions/Makefile 2010-03-08 18:49:28.000000000 +0300 -+++ arptables-v0.0.3-4/extensions/Makefile 2010-03-22 15:52:38.000000000 +0300 -@@ -4,4 +4,7 @@ - EXT_OBJS+=$(foreach T,$(EXT_FUNC), extensions/arpt_$(T).o) - - extensions/ebt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h -- $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< -+ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< -+ -+extensions/arpt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h -+ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch new file mode 100644 index 0000000000..e8be45e6b6 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch @@ -0,0 +1,79 @@ +From a2021f0bc0f029dfa05dcca5db3d2ec77904d41a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 30 Mar 2017 12:33:51 -0700 +Subject: [PATCH] Use ARPCFLAGS for package specific compiler flags + +This leaves room for setting CFLAGS in environment +which OE uses to pass tweaks + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 15 +++++++-------- + extensions/Makefile | 5 ++++- + 2 files changed, 11 insertions(+), 9 deletions(-) + +diff --git a/Makefile b/Makefile +index 7bead0d..336db6b 100644 +--- a/Makefile ++++ b/Makefile +@@ -7,15 +7,13 @@ LIBDIR:=$(PREFIX)/lib + BINDIR:=$(PREFIX)/sbin + MANDIR:=$(PREFIX)/man + man8dir=$(MANDIR)/man8 +-INITDIR:=/etc/rc.d/init.d ++INITDIR:=/etc/init.d + SYSCONFIGDIR:=/etc/sysconfig + DESTDIR:= + + MANS = arptables.8 arptables-save.8 arptables-restore.8 + +-COPT_FLAGS:=-O2 +-CFLAGS:=$(COPT_FLAGS) -Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" #-g -DDEBUG #-pg # -DARPTC_DEBUG +- ++ARPCFLAGS:=-Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" + ifndef ARPT_LIBDIR + ARPT_LIBDIR:=$(LIBDIR)/arptables + endif +@@ -25,13 +23,13 @@ include extensions/Makefile + all: arptables libarptc/libarptc.a + + arptables.o: arptables.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(ARPCFLAGS) $(CFLAGS) -c -o $@ $< + + arptables-standalone.o: arptables-standalone.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(ARPCFLAGS) $(CFLAGS) -c -o $@ $< + + libarptc/libarptc.o: libarptc/libarptc.c libarptc/libarptc_incl.c +- $(CC) $(CFLAGS) -c -o $@ $< ++ $(CC) $(ARPCFLAGS) $(CFLAGS) -c -o $@ $< + + libarptc/libarptc.a: libarptc/libarptc.o + $(AR) rcs $@ $< +@@ -53,7 +51,8 @@ scripts: arptables-save arptables-restore arptables.sysv + install -m 0755 arptables-restore_ $(DESTDIR)$(BINDIR)/arptables-restore + cat arptables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > arptables.sysv_ + if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(INITDIR); fi +- if test -d $(DESTDIR)$(INITDIR); then install -m 0755 arptables.sysv_ $(DESTDIR)$(INITDIR)/arptables; fi ++ install -d $(DESTDIR)$(INITDIR) ++ install -m 0755 arptables.sysv_ $(DESTDIR)$(INITDIR)/arptables + rm -f arptables-save_ arptables-restore_ arptables.sysv_ + + .PHONY: install-man +diff --git a/extensions/Makefile b/extensions/Makefile +index 0189cc9..b046425 100644 +--- a/extensions/Makefile ++++ b/extensions/Makefile +@@ -4,4 +4,7 @@ EXT_FUNC+=standard mangle CLASSIFY MARK + EXT_OBJS+=$(foreach T,$(EXT_FUNC), extensions/arpt_$(T).o) + + extensions/ebt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h +- $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< ++ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< ++ ++extensions/arpt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h ++ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $< +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-arpt-get-target-fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/arptables-arpt-get-target-fix.patch index 0875344feb..0875344feb 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-arpt-get-target-fix.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/arptables-arpt-get-target-fix.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-init-busybox.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/arptables-init-busybox.patch index 24956c4ca9..24956c4ca9 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-init-busybox.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/arptables-init-busybox.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-remove-bashism.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/arptables-remove-bashism.patch index f332658bcd..f332658bcd 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables-remove-bashism.patch +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/arptables-remove-bashism.patch diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables.service b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/arptables.service index f9fd56df01..f9fd56df01 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables-0.0.3-4/arptables.service +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables/arptables.service diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_0.0.3-4.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb index f53640847a..274a55d91d 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_0.0.3-4.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/arptables/arptables_git.bb @@ -1,15 +1,13 @@ SUMMARY = "Administration tool for arp packet filtering" -LICENSE = "GPL-2.0" SECTION = "net" - -PR = "r2" - -RDEPENDS_${PN} += "perl" - +LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +SRCREV = "f4ab8f63f11a72f14687a6646d04ae1bae3fa45f" +PV = "0.0.4+git${SRCPV}" + SRC_URI = " \ - ${SOURCEFORGE_MIRROR}/ebtables/arptables-v${PV}.tar.gz;name=arptables \ - file://arptables-compile-install.patch \ + git://git.netfilter.org/arptables \ + file://0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch \ file://arptables-init-busybox.patch \ file://arptables-arpt-get-target-fix.patch \ file://arptables-remove-bashism.patch \ @@ -18,26 +16,23 @@ SRC_URI = " \ SRC_URI[arptables.md5sum] = "1d4ab05761f063b0751645d8f2b8f8e5" SRC_URI[arptables.sha256sum] = "e529fd465c67d69ad335299a043516e6b38cdcd337a5ed21718413e96073f928" -S = "${WORKDIR}/arptables-v${PV}" - -do_compile () { - oe_runmake -} +S = "${WORKDIR}/git" +SYSTEMD_SERVICE_${PN} = "arptables.service" -# the install target is not multi-job safe, but it doesn't do much -# so we just install serially -# -PARALLEL_MAKEINST = "-j1" +inherit systemd -fakeroot do_install () { - oe_runmake 'BINDIR=${sbindir}' 'MANDIR=${mandir}/' 'DESTDIR=${D}' install -} +EXTRA_OEMAKE = "'BINDIR=${sbindir}' 'MANDIR=${mandir}'" do_install_append() { - install -d ${D}${systemd_unitdir}/system - install -m 644 ${WORKDIR}/arptables.service ${D}${systemd_unitdir}/system + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/arptables.service ${D}${systemd_unitdir}/system + fi } -inherit systemd +RDEPENDS_${PN} += "perl" -SYSTEMD_SERVICE_${PN} = "arptables.service" +# the install target is not multi-job safe, but it doesn't do much +# so we just install serially +# +PARALLEL_MAKEINST = "-j1" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/chrony/chrony_2.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/chrony/chrony_2.4.bb index 088708f14f..71431f4b7b 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/chrony/chrony_2.4.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/chrony/chrony_2.4.bb @@ -60,7 +60,7 @@ inherit update-rc.d systemd # - 'scfilter' enables support for system call filtering, but requires the # kernel to have CONFIG_SECCOMP enabled. PACKAGECONFIG ??= "editline \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ " PACKAGECONFIG[readline] = "--without-editline,--without-readline,readline" PACKAGECONFIG[editline] = ",--without-editline,libedit" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb index 099d885c90..efda707555 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_git.bb @@ -4,9 +4,9 @@ SECTION = "otherosfs" LICENSE = "GPLv3 & LGPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -PV = "6.4" +PV = "6.6" -SRCREV = "487f46da737291877867cbd3acb40fea087d3863" +SRCREV = "7926aaea98cdc96b6544b8e21fb5b0b4422c340d" SRC_URI = "git://git.samba.org/cifs-utils.git" S = "${WORKDIR}/git" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb index 7cea0f681c..b5a60645c5 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb @@ -27,6 +27,9 @@ PACKAGECONFIG[libtdb] = "--without-included-tdb,--with-included-tdb,libtdb" PARALLEL_MAKE = "" DEPENDS += "popt libtevent libtalloc libldb" +DEPENDS_append_libc-musl = " libtirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" # ctdbd_wrapper requires pgrep, hence procps RDEPENDS_${PN} += "procps" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp/pkgconfig_fix.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp/pkgconfig_fix.patch deleted file mode 100644 index ad73c00885..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp/pkgconfig_fix.patch +++ /dev/null @@ -1,38 +0,0 @@ -Upstream-Status: Inappropriate [packaging] - - -Index: curl-7.20.0/libcurl.pc.in -=================================================================== ---- curl-7.20.0.orig/libcurl.pc.in 2009-11-17 18:11:07.000000000 +0000 -+++ curl-7.20.0/libcurl.pc.in 2010-03-25 12:13:26.814051066 +0000 -@@ -35,6 +35,7 @@ - URL: http://curl.haxx.se/ - Description: Library to transfer files with ftp, http, etc. - Version: @CURLVERSION@ --Libs: -L${libdir} -lcurl @LIBS@ --Libs.private: @LIBCURL_LIBS@ @LIBS@ -+Requires.private: @GNUTLS_REQUIRED@ -+Libs: -L${libdir} -lcurl -+Libs.private: -ldl -lz - Cflags: -I${includedir} -Index: curl-7.20.0/configure.ac -=================================================================== ---- curl-7.20.0.orig/configure.ac 2010-02-04 21:41:46.000000000 +0000 -+++ curl-7.20.0/configure.ac 2010-03-25 12:12:18.673129001 +0000 -@@ -1668,6 +1668,7 @@ - AC_SUBST(USE_GNUTLS, [1]) - GNUTLS_ENABLED=1 - USE_GNUTLS="yes" -+ GNUTLS_REQUIRED="gnutls" - curl_ssl_msg="enabled (GnuTLS)" - ], - [ -@@ -1696,6 +1697,8 @@ - - fi dnl OPENSSL != 1 - -+AC_SUBST(GNUTLS_REQUIRED) -+ - dnl ---------------------------------------------------- - dnl NSS. Only check if GnuTLS and OpenSSL are not enabled - dnl ---------------------------------------------------- diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.7.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.7.3.bb deleted file mode 100644 index c3a242a316..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.7.3.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "C++ library for client-side URL transfers" -HOMEPAGE = "http://code.google.com/p/curlpp/" -SECTION = "libdevel" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" - -DEPENDS = "curl boost" -DEPENDS_class-native = "curl-native" - -SRC_URI = "http://curlpp.googlecode.com/files/curlpp-${PV}.tar.gz \ - file://example21.cpp-remove-deprecated-code.patch \ -" - -SRC_URI[md5sum] = "ccc3d30d4b3b5d2cdbed635898c29485" -SRC_URI[sha256sum] = "e3f9427b27c5bddf898d383d45c0d3d5397e2056ff935d9a5cdaef6a9a653bd5" - -inherit autotools-brokensep pkgconfig binconfig - -EXTRA_OECONF = "--with-boost=${STAGING_DIR_HOST}${prefix}" -# Upstream is currently working on porting the code to use std::unique_ptr instead of the -# deprecated auto_ptr. For now, ignore the issue. -CXXFLAGS += "-Wno-error=deprecated-declarations" - -do_install_append () { - sed -i 's,${STAGING_DIR_TARGET},,g' ${D}${libdir}/pkgconfig/curlpp.pc -} - -PACKAGES =+ "libcurlpp libcurlpp-dev libcurlpp-staticdev" - -FILES_lib${BPN} = "${libdir}/lib*.so.*" - -FILES_lib${BPN}-dev = "${includedir} \ - ${libdir}/lib*.la \ - ${libdir}/pkgconfig \ - ${bindir}/*-config \ -" - -FILES_lib${BPN}-staticdev = "${libdir}/lib*.a" - -BBCLASSEXTEND = "native nativesdk" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb new file mode 100644 index 0000000000..340f57dc7e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "C++ library for client-side URL transfers" +HOMEPAGE = "http://www.curlpp.org/" +SECTION = "libdevel" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +DEPENDS = "curl" +DEPENDS_class-native = "curl-native" + +SRC_URI = "git://github.com/jpbarrette/curlpp.git" + +SRCREV = "592552a165cc569dac7674cb7fc9de3dc829906f" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig binconfig + +do_install_append () { + sed -i 's,${STAGING_DIR_TARGET},,g' ${D}${libdir}/pkgconfig/curlpp.pc +} + +PACKAGES =+ "libcurlpp libcurlpp-dev libcurlpp-staticdev" + +FILES_lib${BPN} = "${libdir}/lib*.so.*" + +FILES_lib${BPN}-dev = "${includedir} \ + ${libdir}/pkgconfig \ + ${bindir}/*-config \ +" + +FILES_lib${BPN}-staticdev = "${libdir}/lib*.a" + +BBCLASSEXTEND = "native nativesdk" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc index 9ef54fe17c..ef79c5f822 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/dnsmasq.inc @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ file://COPYING-v3;md5=d32239bcb673463ab874e80d47fae504" #at least versions 2.15 and prior are moved to the archive folder on the server -SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV',1).split('.')[1]) > 15]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \ +SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV').split('.')[1]) > 15]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \ file://init \ file://dnsmasq.conf \ file://dnsmasq-resolvconf.service \ @@ -53,7 +53,7 @@ do_install () { install -d ${D}${systemd_unitdir}/system - if [ "${@bb.utils.contains('PACKAGECONFIG', 'resolvconf', 'resolvconf', '', d)}" != "" ]; then + if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then install -m 0644 ${WORKDIR}/dnsmasq-resolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service else install -m 0644 ${WORKDIR}/dnsmasq-noresolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service @@ -61,11 +61,11 @@ do_install () { install -m 0755 ${S}/contrib/lease-tools/dhcp_release ${D}${bindir} - if [ "${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'dbus', '', d)}" != "" ]; then + if [ "${@bb.utils.filter('PACKAGECONFIG', 'dbus', d)}" ]; then install -d ${D}${sysconfdir}/dbus-1/system.d install -m 644 dbus/dnsmasq.conf ${D}${sysconfdir}/dbus-1/system.d/ fi - if [ "${@bb.utils.contains('PACKAGECONFIG', 'resolvconf', 'resolvconf', '', d)}" != "" ]; then + if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then install -d ${D}${sysconfdir}/resolvconf/update.d/ install -m 0755 ${WORKDIR}/dnsmasq.resolvconf ${D}${sysconfdir}/resolvconf/update.d/dnsmasq diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf index 34d5135f92..9e5ab9f81b 100755 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf @@ -4,6 +4,11 @@ # as the long options legal on the command line. See # "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details. +# Listen on this specific port instead of the standard DNS port +# (53). Setting this to zero completely disables DNS function, +# leaving only DHCP and/or TFTP. +#port=5353 + # Change these lines if you want dnsmasq to serve MX records. # Only one of mx-host and mx-target need be set, the other defaults # to the name of the host running dnsmasq. diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.25.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb index 66af361e49..b2a3de3943 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.25.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.2.29.bb @@ -9,17 +9,18 @@ SRC_URI = "http://dovecot.org/releases/2.2/dovecot-${PV}.tar.gz \ file://dovecot.service \ file://dovecot.socket" -SRC_URI[md5sum] = "8f62ea76489c47c369cbbe0b19818448" -SRC_URI[sha256sum] = "d8d9f32c846397f7c22749a84c5cf6f59c55ff7ded3dc9f07749a255182f9667" +SRC_URI[md5sum] = "ff95486a5c43025a2c3f5a712e7962b9" +SRC_URI[sha256sum] = "d939ea99126eb8a8c6955390b422b6e27ec0fa43a3b59b2b3218cb5ad67139a6" DEPENDS = "openssl xz zlib bzip2 libcap icu" +DEPENDS_append_libc-musl = " libtirpc" +CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc" +LDFLAGS_append_libc-musl = " -ltirpc" + inherit autotools pkgconfig systemd useradd -PACKAGECONFIG ??= " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'ldap', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ - " +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam', d)}" PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam," PACKAGECONFIG[ldap] = "--with-ldap=plugin,--without-ldap,openldap," diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-don-t-compile-documentation.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-don-t-compile-documentation.patch deleted file mode 100644 index 1de4a86d9d..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-don-t-compile-documentation.patch +++ /dev/null @@ -1,38 +0,0 @@ -From feccf89f08a455460668cf286151662e4c1557b3 Mon Sep 17 00:00:00 2001 -From: Li xin <lixin.fnst@cn.fujitsu.com> -Date: Thu, 20 Aug 2015 15:32:30 +0900 -Subject: [PATCH] Makefile.in: don't compile documentation - -The documentation file is not suitable for cross-compile, -Errors will occur: -| /bin/sh: ../../user/v9/drbdsetup: /lib/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory -| ../../user/v9/drbdsetup xml-help disk-options > drbdsetup_xml-help_disk-options.xml -| /bin/sh: ../../user/v9/drbdsetup: /lib/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory -| /bin/sh: ../../user/v9/drbdsetup: /lib/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory -| make[1]: *** [drbdsetup_xml-help_new-resource.xml] Error 126 - -so we do not compile it. - -Upstream-Status: pending - -Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> ---- - Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.in b/Makefile.in -index 5365a2c..d5967d8 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -45,7 +45,7 @@ WITH_84_SUPPORT = @WITH_84_SUPPORT@ - # and not in e.g. dash. I'm too lazy to fix it to be compatible. - SHELL=/bin/bash - --SUBDIRS = user/shared user/v9 user/v84 user/v83 scripts documentation/v83 documentation/v84 documentation/v9 -+SUBDIRS = user/shared user/v9 user/v84 user/v83 scripts - - REL_VERSION := $(shell $(SED) -ne '/^AC_INIT/{s/^[^,]*, *\([^,]*\) *,.*/\1/;p;q}' configure.ac) - ifdef FORCE --- -1.8.4.2 - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb index 3d6f5b2621..5f6c43f7ea 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb @@ -30,7 +30,12 @@ EXTRA_OECONF = " \ --without-manual\ " -RDEPENDS_${PN} += "bash perl" +do_install_append() { + # don't install empty /var/lock to avoid conflict with base-files + rm -rf ${D}${localstatedir}/lock +} + +RDEPENDS_${PN} += "bash perl-module-getopt-long perl-module-exporter perl-module-constant perl-module-overloading perl-module-exporter-heavy" # The drbd items are explicitly put under /lib when installed. # diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb index 2f5f2b6c64..82e3bf0730 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/fping/fping_3.5.bb @@ -21,5 +21,5 @@ inherit autotools EXTRA_OECONF = "--enable-ipv4" -PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb new file mode 100644 index 0000000000..49b11ad335 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb @@ -0,0 +1,34 @@ +SUMMARY = "fwknop - Single Packet Authorization" +HOMEPAGE = "http://www.cipherdyne.org/fwknop/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + " +inherit autotools-brokensep + +SRC_URI = "http://www.cipherdyne.org/${BPN}/download/${BPN}-${PV}.tar.bz2 \ + " + +SRC_URI[md5sum] = "e2c49e9674888a028bd443a55c3aaa22" +SRC_URI[sha256sum] = "5bf47fe1fd30e862d29464f762c0b8bf89b5e298665c37624d6707826da956d4" + +DEPENDS = "libpcap gpgme" + +EXTRA_OECONF = " --with-iptables=/usr/sbin/iptables \ + " + +do_configure () { + aclocal + libtoolize --automake --copy --force + autoconf + autoheader + automake -a + oe_runconf +} + +PACKAGES =+ "${PN}-client ${PN}-daemon" + +FILES_${PN}-client = "${bindir}/fwknop" +FILES_${PN}-daemon = "${sbindir}/fwknopd \ + ${sysconfdir}/fwknop/access.conf \ + ${sysconfdir}/fwknop/fwknopd.conf" + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.7.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.7.bb index 7473b0dafa..50289211b3 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.7.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ifenslave/ifenslave_2.7.bb @@ -17,4 +17,10 @@ do_install() { install -m 0755 -D ${S}/debian/ifenslave.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/ifenslave install -m 0755 -D ${S}/debian/ifenslave.if-post-down ${D}${sysconfdir}/network/if-post-down.d/ifenslave install -m 0755 -D ${S}/debian/ifenslave.if-up ${D}${sysconfdir}/network/if-up.d/ifenslave + install -m 0644 -D ${S}/debian/ifenslave.8 ${D}${mandir}/man8/ifenslave.8 } + +FILES_${PN}-doc_remove = "${mandir}" +FILES_${PN} += "${mandir}/man8/ifenslave.8" + +RDEPENDS_${PN} = "man" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch new file mode 100644 index 0000000000..630ecdb5f4 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch @@ -0,0 +1,249 @@ +From 7d9585be093c9cb2428b373c0b0088bb778942d0 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 20 Mar 2017 21:37:47 -0700 +Subject: [PATCH] Fix header issues found with musl libc + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libipsec/ipsec_strerror.h | 3 +++ + src/libipsec/libpfkey.h | 4 +++- + src/racoon/admin.c | 2 +- + src/racoon/backupsa.c | 6 +++--- + src/racoon/cftoken.l | 4 ++++ + src/racoon/logger.h | 3 +++ + src/racoon/misc.h | 3 +++ + src/racoon/missing/crypto/sha2/sha2.h | 3 +++ + src/racoon/netdb_dnssec.h | 3 +++ + src/racoon/pfkey.c | 1 - + src/racoon/plog.h | 2 ++ + src/racoon/str2val.h | 3 +++ + src/racoon/vmbuf.h | 3 +++ + src/setkey/extern.h | 3 ++- + src/setkey/setkey.c | 1 - + 15 files changed, 36 insertions(+), 8 deletions(-) + +diff --git a/src/libipsec/ipsec_strerror.h b/src/libipsec/ipsec_strerror.h +index 2b4264f..dac66a1 100644 +--- a/src/libipsec/ipsec_strerror.h ++++ b/src/libipsec/ipsec_strerror.h +@@ -34,6 +34,9 @@ + #ifndef _IPSEC_STRERROR_H + #define _IPSEC_STRERROR_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + extern int __ipsec_errcode; + extern void __ipsec_set_strerror __P((const char *)); + +diff --git a/src/libipsec/libpfkey.h b/src/libipsec/libpfkey.h +index 61d2f2a..f7991b7 100644 +--- a/src/libipsec/libpfkey.h ++++ b/src/libipsec/libpfkey.h +@@ -34,6 +34,9 @@ + #ifndef _LIBPFKEY_H + #define _LIBPFKEY_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + #ifndef KAME_LIBPFKEY_H + #define KAME_LIBPFKEY_H + +@@ -43,7 +46,6 @@ + + #define PRIORITY_OFFSET_POSITIVE_MAX 0x3fffffff + #define PRIORITY_OFFSET_NEGATIVE_MAX 0x40000000 +- + struct sadb_msg; + extern void pfkey_sadump __P((struct sadb_msg *)); + extern void pfkey_sadump_withports __P((struct sadb_msg *)); +diff --git a/src/racoon/admin.c b/src/racoon/admin.c +index 4b1875b..03ea3f8 100644 +--- a/src/racoon/admin.c ++++ b/src/racoon/admin.c +@@ -36,7 +36,6 @@ + #include <sys/types.h> + #include <sys/param.h> + #include <sys/socket.h> +-#include <sys/signal.h> + #include <sys/stat.h> + #include <sys/un.h> + +@@ -46,6 +45,7 @@ + #include PATH_IPSEC_H + + ++#include <signal.h> + #include <stdlib.h> + #include <stdio.h> + #include <string.h> +diff --git a/src/racoon/backupsa.c b/src/racoon/backupsa.c +index 82d74ca..95307ca 100644 +--- a/src/racoon/backupsa.c ++++ b/src/racoon/backupsa.c +@@ -276,9 +276,9 @@ do { \ + GETNEXTNUM(sa_args.a_keylen, strtoul); + GETNEXTNUM(sa_args.flags, strtoul); + GETNEXTNUM(sa_args.l_alloc, strtoul); +- GETNEXTNUM(sa_args.l_bytes, strtouq); +- GETNEXTNUM(sa_args.l_addtime, strtouq); +- GETNEXTNUM(sa_args.l_usetime, strtouq); ++ GETNEXTNUM(sa_args.l_bytes, strtoull); ++ GETNEXTNUM(sa_args.l_addtime, strtoull); ++ GETNEXTNUM(sa_args.l_usetime, strtoull); + GETNEXTNUM(sa_args.seq, strtoul); + + #undef GETNEXTNUM +diff --git a/src/racoon/cftoken.l b/src/racoon/cftoken.l +index 1701922..787f4a9 100644 +--- a/src/racoon/cftoken.l ++++ b/src/racoon/cftoken.l +@@ -77,6 +77,10 @@ + + #include "cfparse.h" + ++#ifndef GLOB_TILDE ++#define GLOB_TILDE 0 ++#endif ++ + int yyerrorcount = 0; + + #if defined(YIPS_DEBUG) +diff --git a/src/racoon/logger.h b/src/racoon/logger.h +index 3fd3e94..67af5f0 100644 +--- a/src/racoon/logger.h ++++ b/src/racoon/logger.h +@@ -34,6 +34,9 @@ + #ifndef _LOGGER_H + #define _LOGGER_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + struct log { + int head; + int siz; +diff --git a/src/racoon/misc.h b/src/racoon/misc.h +index 3e758d9..30d9825 100644 +--- a/src/racoon/misc.h ++++ b/src/racoon/misc.h +@@ -34,6 +34,9 @@ + #ifndef _MISC_H + #define _MISC_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + #define BIT2STR(b) bit2str(b, sizeof(b)<<3) + + #ifdef HAVE_FUNC_MACRO +diff --git a/src/racoon/missing/crypto/sha2/sha2.h b/src/racoon/missing/crypto/sha2/sha2.h +index 42bcc2a..c043dfe 100644 +--- a/src/racoon/missing/crypto/sha2/sha2.h ++++ b/src/racoon/missing/crypto/sha2/sha2.h +@@ -40,6 +40,9 @@ + #ifndef __SHA2_H__ + #define __SHA2_H__ + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + #ifdef __cplusplus + extern "C" { + #endif +diff --git a/src/racoon/netdb_dnssec.h b/src/racoon/netdb_dnssec.h +index a11209d..98fd813 100644 +--- a/src/racoon/netdb_dnssec.h ++++ b/src/racoon/netdb_dnssec.h +@@ -34,6 +34,9 @@ + #ifndef _NETDB_DNSSEC_H + #define _NETDB_DNSSEC_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + #ifndef T_CERT + #define T_CERT 37 /* defined by RFC2538 section 2 */ + #endif +diff --git a/src/racoon/pfkey.c b/src/racoon/pfkey.c +index 8f26c19..a06c30e 100644 +--- a/src/racoon/pfkey.c ++++ b/src/racoon/pfkey.c +@@ -59,7 +59,6 @@ + #include <sys/param.h> + #include <sys/socket.h> + #include <sys/queue.h> +-#include <sys/sysctl.h> + + #include <net/route.h> + #include <net/pfkeyv2.h> +diff --git a/src/racoon/plog.h b/src/racoon/plog.h +index ed43c8b..920c850 100644 +--- a/src/racoon/plog.h ++++ b/src/racoon/plog.h +@@ -34,6 +34,8 @@ + #ifndef _PLOG_H + #define _PLOG_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ + #ifdef HAVE_STDARG_H + #include <stdarg.h> + #else +diff --git a/src/racoon/str2val.h b/src/racoon/str2val.h +index 4a7cec1..d3d698e 100644 +--- a/src/racoon/str2val.h ++++ b/src/racoon/str2val.h +@@ -34,6 +34,9 @@ + #ifndef _STR2VAL_H + #define _STR2VAL_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + extern caddr_t val2str __P((const char *, size_t)); + extern char *str2val __P((const char *, int, size_t *)); + +diff --git a/src/racoon/vmbuf.h b/src/racoon/vmbuf.h +index 3f2f4ea..8287a00 100644 +--- a/src/racoon/vmbuf.h ++++ b/src/racoon/vmbuf.h +@@ -34,6 +34,9 @@ + #ifndef _VMBUF_H + #define _VMBUF_H + ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ ++ + /* + * bp v + * v v +diff --git a/src/setkey/extern.h b/src/setkey/extern.h +index 6f439fa..a1d9d14 100644 +--- a/src/setkey/extern.h ++++ b/src/setkey/extern.h +@@ -1,6 +1,7 @@ + /* $NetBSD: extern.h,v 1.5 2009/03/06 11:45:03 tteras Exp $ */ + +- ++#undef __P ++#define __P(protos) protos /* ANSI C prototypes */ + + void parse_init __P((void)); + int parse __P((FILE **)); +diff --git a/src/setkey/setkey.c b/src/setkey/setkey.c +index c400faa..51f8b75 100644 +--- a/src/setkey/setkey.c ++++ b/src/setkey/setkey.c +@@ -40,7 +40,6 @@ + #include <sys/socket.h> + #include <sys/time.h> + #include <sys/stat.h> +-#include <sys/sysctl.h> + #include <err.h> + #include <netinet/in.h> + #include <net/pfkeyv2.h> +-- +2.12.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch new file mode 100644 index 0000000000..e9dd84aaa9 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch @@ -0,0 +1,30 @@ +From a5c59f6a1479947d33dba5191724cc5fc88a614b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 22 Apr 2017 10:39:57 -0700 +Subject: [PATCH 2/2] cfparse: clear memory equal to size of array + +Fixes compiler error +cfparse.y: In function 'set_isakmp_proposal': +cfparse.y:2567:3: error: 'memset' used with length equal to number of elements without multiplication by element size [-Werror=memset-elt-size] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/racoon/cfparse.y | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/racoon/cfparse.y b/src/racoon/cfparse.y +index 0d9bd67..5d9c67b 100644 +--- a/src/racoon/cfparse.y ++++ b/src/racoon/cfparse.y +@@ -2564,7 +2564,7 @@ set_isakmp_proposal(rmconf) + plog(LLV_DEBUG2, LOCATION, NULL, + "encklen=%d\n", s->encklen); + +- memset(types, 0, ARRAYLEN(types)); ++ memset(types, 0, sizeof(types)); + types[algclass_isakmp_enc] = s->algclass[algclass_isakmp_enc]; + types[algclass_isakmp_hash] = s->algclass[algclass_isakmp_hash]; + types[algclass_isakmp_dh] = s->algclass[algclass_isakmp_dh]; +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb index bf89927528..d7e8b25961 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb @@ -22,7 +22,9 @@ SRC_URI = "http://ftp.netbsd.org/pub/NetBSD/misc/ipsec-tools/0.8/ipsec-tools-${P file://racoon.service \ file://fix-CVE-2015-4047.patch \ file://0001-Fix-build-with-clang.patch \ - " + file://0001-Fix-header-issues-found-with-musl-libc.patch \ + file://0002-cfparse-clear-memory-equal-to-size-of-array.patch \ + " SRC_URI[md5sum] = "d53ec14a0a3ece64e09e5e34b3350b41" SRC_URI[sha256sum] = "8eb6b38716e2f3a8a72f1f549c9444c2bc28d52c9536792690564c74fe722f2d" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.1.27.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.1.29.bb index f4370efcdc..a90919ba42 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.1.27.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libldb/libldb_1.1.29.bb @@ -12,7 +12,7 @@ SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \ " PACKAGECONFIG ??= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ " PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" @@ -29,8 +29,8 @@ LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9ada file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \ file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42" -SRC_URI[md5sum] = "50a194dea128d062cf4b44c59130219b" -SRC_URI[sha256sum] = "cdb8269cba09006ddf3766eb7721192b52ae3fdc8a6b95f4318b6b740b9d35ac" +SRC_URI[md5sum] = "9c90abfb94c1e2a693399392cf4cddb9" +SRC_URI[sha256sum] = "59d84f9a5b799f519ba7b2685bb46f5a26f1bbf05b7a144b2f5e017d01d80f97" inherit waf-samba @@ -44,18 +44,20 @@ EXTRA_OECONF += "--disable-rpath \ --with-privatelibdir=${libdir}/ldb \ --with-libiconv=${STAGING_DIR_HOST}${prefix}\ " -DISABLE_STATIC = "" -PACKAGES += "pyldb pyldb-dbg pyldb-dev" +PACKAGES =+ "pyldb pyldb-dbg pyldb-dev" + +NOAUTOPACKAGEDEBUG = "1" FILES_${PN} += "${libdir}/ldb/*" -FILES_${PN}-dbg += "${libdir}/ldb/.debug/* \ +FILES_${PN}-dbg += "${bindir}/.debug/* \ + ${libdir}/.debug/* \ + ${libdir}/ldb/.debug/* \ ${libdir}/ldb/modules/ldb/.debug/*" FILES_pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \ - ${libdir}/libpyldb-util.so.1 \ - ${libdir}/libpyldb-util.so.1.1.17 \ + ${libdir}/libpyldb-util.so.* \ " FILES_pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \ - ${libdir}/.debug/libpyldb-util.so.1.1.17" + ${libdir}/.debug/libpyldb-util.so.*" FILES_pyldb-dev = "${libdir}/libpyldb-util.so" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch new file mode 100644 index 0000000000..26b5e250cb --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch @@ -0,0 +1,38 @@ +From ed4422979b221c8613ca02eb5c57cb80009366d1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 18 Mar 2017 10:13:24 -0700 +Subject: [PATCH 1/2] Fix comparison types + +Fixes +error: comparison between pointer and integer ('char *' and 'int') + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + clients/memflush.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/clients/memflush.cc b/clients/memflush.cc +index 8bd0dbf..71545ea 100644 +--- a/clients/memflush.cc ++++ b/clients/memflush.cc +@@ -39,7 +39,7 @@ int main(int argc, char *argv[]) + { + options_parse(argc, argv); + +- if (opt_servers == false) ++ if (opt_servers == NULL) + { + char *temp; + +@@ -48,7 +48,7 @@ int main(int argc, char *argv[]) + opt_servers= strdup(temp); + } + +- if (opt_servers == false) ++ if (opt_servers == NULL) + { + std::cerr << "No Servers provided" << std::endl; + exit(EXIT_FAILURE); +-- +2.12.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch new file mode 100644 index 0000000000..06febc5b13 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch @@ -0,0 +1,28 @@ +From fa0fe001a5373c1ef9ff2175555b14fc07399e1b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 18 Mar 2017 10:01:44 -0700 +Subject: [PATCH] configure.ac: Do not configure build-aux + +Fixes +configure: error: cannot find install-sh, install.sh, or shtool + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 17b7351..0263112 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -17,7 +17,6 @@ AC_INIT([libmemcached],VERSION_NUMBER,[http://libmemcached.org/]) + AC_PROG_CC([cc gcc clang]) + AC_PROG_CXX([c++ g++ clang++]) + +-AC_CONFIG_AUX_DIR([build-aux]) + AC_CONFIG_MACRO_DIR([m4]) + + AC_CANONICAL_HOST +-- +2.12.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch new file mode 100644 index 0000000000..e1e1be8c68 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch @@ -0,0 +1,30 @@ +From e95609e4ae40a794ed198924505fd22d7d86a124 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 18 Mar 2017 10:16:14 -0700 +Subject: [PATCH 2/2] POSIX_SPAWN_USEVFORK is not linux specific but glibc + specific + +Fixes +cmdline.cc:206:12: error: use of undeclared identifier 'POSIX_SPAWN_USEVFORK' + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + libtest/cmdline.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libtest/cmdline.cc b/libtest/cmdline.cc +index 29a22de..34f0a89 100644 +--- a/libtest/cmdline.cc ++++ b/libtest/cmdline.cc +@@ -201,7 +201,7 @@ Application::error_t Application::run(const char *args[]) + + fatal_assert(posix_spawnattr_setsigmask(&spawnattr, &mask) == 0); + +-#if defined(POSIX_SPAWN_USEVFORK) || defined(__linux__) ++#if defined(POSIX_SPAWN_USEVFORK) || defined(__GLIBC__) + // Use USEVFORK on linux + flags |= POSIX_SPAWN_USEVFORK; + #endif +-- +2.12.0 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc index 172443a205..e86f832f8d 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached.inc @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=865490941c91ba790f0ea78dec93bd60" SRC_URI = "http://launchpad.net/libmemcached/1.0/${PV}/+download/libmemcached-${PV}.tar.gz" TARGET_LDFLAGS += "-luuid" +TARGET_CFLAGS += "-D__USE_GNU -D_GNU_SOURCE" PACKAGECONFIG ??= "" PACKAGECONFIG[sasl] = "--enable-sasl,--disable-sasl,cyrus-sasl" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached_1.0.15.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached_1.0.15.bb deleted file mode 100644 index 18232b4ceb..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached_1.0.15.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libmemcached.inc - -SRC_URI += "file://crosscompile.patch" - -SRC_URI[md5sum] = "616297a1aedefc52b3f6922eda5d559a" -SRC_URI[sha256sum] = "dd7e9560029835bddf761a5b4c2339d9e5c7374558659b6c11b2c95e7d3a4325" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached_1.0.18.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached_1.0.18.bb new file mode 100644 index 0000000000..56778c0483 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libmemcached/libmemcached_1.0.18.bb @@ -0,0 +1,10 @@ +require libmemcached.inc + +SRC_URI += "\ + file://crosscompile.patch \ + file://0001-configure.ac-Do-not-configure-build-aux.patch \ + file://0001-Fix-comparison-types.patch \ + file://0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch \ + " +SRC_URI[md5sum] = "b3958716b4e53ddc5992e6c49d97e819" +SRC_URI[sha256sum] = "e22c0bb032fde08f53de9ffbc5a128233041d9f33b5de022c0978a2149885f82" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.8.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.9.bb index 3f031cabab..d80af50d20 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.8.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libtalloc/libtalloc_2.1.9.bb @@ -2,21 +2,20 @@ SUMMARY = "Hierarchical, reference counted memory pool system with destructors" HOMEPAGE = "http://talloc.samba.org" SECTION = "libs" LICENSE = "LGPL-3.0+ & GPL-3.0+" - -SRC_URI = "https://samba.org/ftp/talloc/talloc-${PV}.tar.gz \ - file://talloc-Add-configure-options-for-packages.patch \ -" LIC_FILES_CHKSUM = "file://talloc.h;beginline=3;endline=27;md5=a301712782cad6dd6d5228bfa7825249 \ file://pytalloc.h;beginline=1;endline=18;md5=2c498cc6f2263672483237b20f46b43d" -SRC_URI[md5sum] = "6fb70af4174330e4cc139ea63b07c9e9" -SRC_URI[sha256sum] = "22d14911164d4de67ff76b5269fa5250d01f78c955bc77e28615350996877130" +SRC_URI = "https://samba.org/ftp/talloc/talloc-${PV}.tar.gz \ + file://talloc-Add-configure-options-for-packages.patch \ +" +SRC_URI[md5sum] = "19ba14eba97d79a169fa92ea824d2b9e" +SRC_URI[sha256sum] = "f0aad4cb88a3322207c82136ddc07bed48a37c2c21f82962d6c5ccb422711062" inherit waf-samba PACKAGECONFIG ??= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ " PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" @@ -37,7 +36,6 @@ EXTRA_OECONF += "--disable-rpath \ --disable-silent-rules \ --with-libiconv=${STAGING_DIR_HOST}${prefix}\ " -DISABLE_STATIC = "" PACKAGES += "pytalloc pytalloc-dbg pytalloc-dev" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.10.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.12.bb index 7eb0d7cf4e..e256ac9b60 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.10.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libtdb/libtdb_1.3.12.bb @@ -10,11 +10,11 @@ SRC_URI = "https://samba.org/ftp/tdb/tdb-${PV}.tar.gz \ file://tdb-Add-configure-options-for-packages.patch \ " -SRC_URI[md5sum] = "c98f24eb469022b0f1741d3a504cfda5" -SRC_URI[sha256sum] = "5578fb726bd04835f250bea11fe7d1398fe0bb3a7c9390404241c83cd6b50c1c" +SRC_URI[md5sum] = "d9627e7aacd535a8251401f914bb6924" +SRC_URI[sha256sum] = "60134e32253cac8e2efe5e0185d20123c208bcf6ad15edf2f50d80daadf8c348" PACKAGECONFIG ??= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ " PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" @@ -33,7 +33,6 @@ EXTRA_OECONF += "--disable-rpath \ --builtin-libraries=replace \ --with-libiconv=${STAGING_DIR_HOST}${prefix}\ " -DISABLE_STATIC = "" PACKAGES += "tdb-tools python-tdb python-tdb-dbg" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.29.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.31.bb index 7125893cca..ad711e730e 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.29.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/libtevent/libtevent_0.9.31.bb @@ -11,13 +11,13 @@ SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \ " LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=4e458d658cb25e21efc16f720e78b85a" -SRC_URI[md5sum] = "4372c1430a1ecb7ea0adddfdf21c0d55" -SRC_URI[sha256sum] = "a4f519b0bbb718fe2175bee9011ee4d199675f28c2ef80531be38e7bbaa1c42b" +SRC_URI[md5sum] = "5453847664ae6bc4ec0153e59ac635b9" +SRC_URI[sha256sum] = "4a13f2256ad804c860e84068258bd0f8be31cf0c79aa8f3019fa32f6928c2bfc" inherit waf-samba PACKAGECONFIG ??= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \ " PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl" @@ -37,7 +37,6 @@ EXTRA_OECONF += "--disable-rpath \ --with-libiconv=${STAGING_DIR_HOST}${prefix}\ --without-gettext \ " -DISABLE_STATIC = "" PACKAGES += "python-tevent python-tevent-dbg" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0001-ttcp-Add-printf-format-string.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0001-ttcp-Add-printf-format-string.patch new file mode 100644 index 0000000000..87e7dc3c69 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0001-ttcp-Add-printf-format-string.patch @@ -0,0 +1,34 @@ +From b83fd54584fabd5d24f6645b4a3cf345c9d2020d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 17 Jun 2017 16:11:59 -0700 +Subject: [PATCH 1/3] ttcp: Add printf format string + +Fixes compiler warnings when format security is enabled + +| ../../../linux-atm-2.5.2/src/test/ttcp.c:666:21: error: format not a string literal and no format arguments [-Werror=format-security] +| fprintf(stderr, Usage); +| ^~~~~ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/test/ttcp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/test/ttcp.c b/src/test/ttcp.c +index acb9185..337cee5 100644 +--- a/src/test/ttcp.c ++++ b/src/test/ttcp.c +@@ -663,7 +663,7 @@ int no_check = 0; + exit(0); + + usage: +- fprintf(stderr, Usage); ++ fprintf(stderr, "%s", Usage); + exit(1); + } + +-- +2.13.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch new file mode 100644 index 0000000000..ce061231ca --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch @@ -0,0 +1,30 @@ +From 27fa80dc8045e71c30dd2abea835206d5c8f6c71 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 17 Jun 2017 16:18:56 -0700 +Subject: [PATCH 2/3] sigd: Replace on_exit() API with atexit() + +on_exit is not universally available + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/sigd/atmsigd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/sigd/atmsigd.c b/src/sigd/atmsigd.c +index 52e41c7..b766606 100644 +--- a/src/sigd/atmsigd.c ++++ b/src/sigd/atmsigd.c +@@ -517,7 +517,7 @@ int main(int argc,char **argv) + exit(0); + } + } +- (void) on_exit(trace_on_exit,NULL); ++ atexit(trace_on_exit); + poll_loop(); + close_all(); + for (sig = entities; sig; sig = sig->next) stop_saal(&sig->saal); +-- +2.13.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch new file mode 100644 index 0000000000..0302286dc0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm/0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch @@ -0,0 +1,37 @@ +From fe954b2fb17d813aaab3e926cee76144314a115a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 17 Jun 2017 16:22:55 -0700 +Subject: [PATCH 3/3] mpoad: Drop old hack to compile with very old glibc + +Use poll.h instead of sys/poll.h + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/mpoad/io.c | 9 +-------- + 1 file changed, 1 insertion(+), 8 deletions(-) + +diff --git a/src/mpoad/io.c b/src/mpoad/io.c +index 69900c2..8d1433f 100644 +--- a/src/mpoad/io.c ++++ b/src/mpoad/io.c +@@ -10,14 +10,7 @@ + #include <errno.h> + #include <sys/ioctl.h> + #include <sys/param.h> /* for OPEN_MAX */ +-#if __GLIBC__ >= 2 +-#include <sys/poll.h> +-#else /* ugly hack to make it compile on RH 4.2 - WA */ +-#include <syscall.h> +-#include <linux/poll.h> +-#define SYS_poll 168 +-_syscall3(int,poll,struct pollfd *,ufds,unsigned int,nfds,int,timeout); +-#endif ++#include <poll.h> + #include <atm.h> + #include <linux/types.h> + #include <linux/atmioc.h> +-- +2.13.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb index 6ab8b07d02..9fce4fba63 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb @@ -11,6 +11,9 @@ SRC_URI = "http://nchc.dl.sourceforge.net/project/${BPN}/${BPN}/${PV}/${BPN}-${P file://link-with-ldflags.patch \ file://install-from-buildir.patch \ file://0001-fix-compile-error-with-linux-kernel-v4.8.patch \ + file://0001-ttcp-Add-printf-format-string.patch \ + file://0002-sigd-Replace-on_exit-API-with-atexit.patch \ + file://0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch \ " SRC_URI[md5sum] = "d49499368c3cf15f73a05d9bce8824a8" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch new file mode 100644 index 0000000000..1453b75d56 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch @@ -0,0 +1,32 @@ +From a36afac485745cf980fba1809526f2025cb4d101 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 23 Apr 2017 00:16:45 -0700 +Subject: [PATCH] Remove newline from format line + +Fixes + +error: '__builtin___snprintf_chk' output truncated before the last format character [-Werror=format-truncation=] + "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n", + ^ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + addrdb/addrdb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/addrdb/addrdb.c b/addrdb/addrdb.c +index 4bb7f79..05d53f3 100644 +--- a/addrdb/addrdb.c ++++ b/addrdb/addrdb.c +@@ -178,7 +178,7 @@ int addrdb_dump_leases(const char *lease_file) + continue; + } + snprintf(hwaddr_buf, sizeof(hwaddr_buf), +- "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n", ++ "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", + lease->hwaddr[0], lease->hwaddr[1], + lease->hwaddr[2], lease->hwaddr[3], + lease->hwaddr[4], lease->hwaddr[5], +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch new file mode 100644 index 0000000000..0a81a22526 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch @@ -0,0 +1,44 @@ +From ab725a3faaeead90ae3c63cbcd370af087c413a5 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Date: Mon, 27 Mar 2017 17:55:06 -0700 +Subject: [PATCH] addrdb/coord-config-parse.y: add missing <time.h> include +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The %union definition uses the time_t structure. In order to use this +structure, the <time.h> header has to be included. Otherwise, the build +breaks with some C libraries, such as musl: + +In file included from coord-config-lex.l:23:0: +coord-config-parse.y:107:2: error: unknown type name ‘time_t’ + time_t timestamp; + ^ + +This patch includes <time.h> using the '%code requires' directive of +Yacc. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + addrdb/coord-config-parse.y | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/addrdb/coord-config-parse.y b/addrdb/coord-config-parse.y +index 2e10a88..85ee058 100644 +--- a/addrdb/coord-config-parse.y ++++ b/addrdb/coord-config-parse.y +@@ -102,6 +102,10 @@ + + %} + ++%code requires { ++#include <time.h> ++} ++ + %union { + unsigned long number; + time_t timestamp; +-- +2.12.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch new file mode 100644 index 0000000000..68393067d0 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch @@ -0,0 +1,27 @@ +From ad088233608ba2205511da4f270f8ba29844b84c Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 8 Apr 2017 09:02:02 -0700 +Subject: [PATCH] src/iz.c: Undef dprintf before redefining + +Clang is picky and warns about macros redefinition + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/iz.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/iz.c b/src/iz.c +index 32be1a8..886f0a5 100644 +--- a/src/iz.c ++++ b/src/iz.c +@@ -60,6 +60,7 @@ static int iz_seq = 0; + /* Parsed options */ + static int iz_debug = 0; + ++#undef dprintf + #define dprintf(lvl, fmt...) \ + do { \ + if (iz_debug >= lvl) \ +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb index 8c7dbc09af..be73f8ae4b 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb @@ -11,6 +11,9 @@ PV = "0.3.1+git${SRCPV}" SRC_URI = "git://git.code.sf.net/p/linux-zigbee/linux-zigbee \ file://no-help2man.patch \ file://0001-Fix-build-errors-with-clang.patch \ + file://0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch \ + file://0001-src-iz.c-Undef-dprintf-before-redefining.patch \ + file://0001-Remove-newline-from-format-line.patch \ " SRCREV = "38f42dbfce9e13629263db3bd3b81f14c69bb733" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached/configure.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached/configure.patch deleted file mode 100644 index 7001a0ed65..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached/configure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: memcached-1.4.17/configure.ac -=================================================================== ---- memcached-1.4.17.orig/configure.ac 2013-12-20 21:44:49.000000000 +0000 -+++ memcached-1.4.17/configure.ac 2014-07-18 07:17:00.593499483 +0000 -@@ -4,7 +4,7 @@ - AC_INIT(memcached, VERSION_NUMBER, memcached@googlegroups.com) - AC_CANONICAL_SYSTEM - AC_CONFIG_SRCDIR(memcached.c) --AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) -+AM_INIT_AUTOMAKE([foreign]) - AM_CONFIG_HEADER(config.h) - - AC_PROG_CC diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.4.17.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.4.36.bb index 293f8d4c6d..48c3c9ee29 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.4.17.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/memcached/memcached_1.4.36.bb @@ -20,17 +20,16 @@ RDEPENDS_${PN} += "perl perl-module-posix perl-module-autoloader \ " SRC_URI = "http://www.memcached.org/files/${BP}.tar.gz \ - file://configure.patch \ - file://memcached-add-hugetlbfs-check.patch" + file://memcached-add-hugetlbfs-check.patch \ + " +SRC_URI[md5sum] = "1e028fbab7288911fcaa5ed2a21817fe" +SRC_URI[sha256sum] = "773b6bb20bf80223ca6a15d75f570fbab346ad11ec98595e5af5e33f54bd82d8" # set the same COMPATIBLE_HOST as libhugetlbfs COMPATIBLE_HOST = '(i.86|x86_64|powerpc|powerpc64|arm).*-linux' -SRC_URI[md5sum] = "46402dfbd7faadf6182283dbbd18b1a6" -SRC_URI[sha256sum] = "d9173ef6d99ba798c982ea4566cb4f0e64eb23859fdbf9926a89999d8cdc0458" - python __anonymous () { - endianness = d.getVar('SITEINFO_ENDIANNESS', True) + endianness = d.getVar('SITEINFO_ENDIANNESS') if endianness == 'le': d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=little") else: diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.86.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.86.bb deleted file mode 100644 index 1d8a2cf9da..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.86.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Combined traceroute and ping utility" -DESCRIPTION = "mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool." -HOMEPAGE = "http://www.bitwizard.nl/mtr/" -SECTION = "net" -DEPENDS = "ncurses" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ - file://mtr.c;beginline=5;endline=16;md5=af1fafbbfa1bfd48af839f4bb3221106" - -SRC_URI = "ftp://ftp.bitwizard.nl/mtr/mtr-${PV}.tar.gz" - -SRC_URI[md5sum] = "8d63592c9d4579ef20cf491b41843eb2" -SRC_URI[sha256sum] = "c5d948920b641cc35f8b380fc356ddfe07cce6a9c6474afe242fc58113f28c06" - -inherit autotools - -EXTRA_OECONF = "--without-gtk" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.87.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.87.bb new file mode 100644 index 0000000000..9d3275e2d2 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/mtr/mtr_0.87.bb @@ -0,0 +1,27 @@ +SUMMARY = "Combined traceroute and ping utility" +DESCRIPTION = "mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool." +HOMEPAGE = "http://www.bitwizard.nl/mtr/" +SECTION = "net" +DEPENDS = "ncurses" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://ui/mtr.c;beginline=5;endline=16;md5=af1fafbbfa1bfd48af839f4bb3221106" + +PV .= "+git${SRCPV}" + +SRCREV = "e6d0a7e93129e8023654ebf58dfa8135d1b1af56" +SRC_URI = "git://github.com/traviscross/mtr" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--without-gtk" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +PACKAGES += "${PN}-bash-completions" + +FILES_${PN}-bash-completions = "${datadir}/bash-completion/" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.31.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.31.bb new file mode 100644 index 0000000000..4b072f7e7d --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ncp/libowfat_0.31.bb @@ -0,0 +1,27 @@ +SUMMARY = "reimplement libdjb" +DESCRIPTION = "libowfat is a library of general purpose APIs extracted from Dan \ +Bernstein's software (libdjb), reimplemented and covered by the GNU \ +General Public License Version 2 (no later versions)." +HOMEPAGE = "http://www.fefe.de/libowfat" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" + +SRC_URI = "https://www.fefe.de/${BPN}/${BP}.tar.xz" +SRC_URI[md5sum] = "120798fab86cfd72dc6b12284d248dd0" +SRC_URI[sha256sum] = "d1e4ac1cfccbb7dc51d77d96398e6302d229ba7538158826c84cb4254c7e8a12" + +EXTRA_OEMAKE = "\ + DIET= \ + CC='${BUILD_CC} ${BUILD_CPPFLAGS} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}' \ + CCC='${CC}' CFLAGS='${CFLAGS} -I.' CFLAGS_OPT='${CFLAGS} -I.' \ +" + +do_install() { + make install \ + DESTDIR=${D} \ + INCLUDEDIR=${includedir}/${BPN} \ + LIBDIR=${libdir} \ + MAN3DIR=${mandir}/man3 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ncp/ncp_1.2.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ncp/ncp_1.2.4.bb new file mode 100644 index 0000000000..f42223b1f8 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ncp/ncp_1.2.4.bb @@ -0,0 +1,31 @@ +SUMMARY = "a fast file copy tool for LANs" +DESCRIPTION = "ncp is a utility for copying files in a LAN. It has absolutely no \ +security or integrity checking, no throttling, no features, except \ +one: you don't have to type the coordinates of your peer." +HOMEPAGE = "http://www.fefe.de/ncp" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" +DEPENDS = "libowfat" + +SRC_URI = "https://dl.fefe.de/${BP}.tar.bz2" +SRC_URI[md5sum] = "421c4855bd3148b7d0a4342942b4bf13" +SRC_URI[sha256sum] = "6cfa72edd5f7717bf7a4a93ccc74c4abd89892360e2e0bb095a73c24b9359b88" + +EXTRA_OEMAKE = "\ + DIET= \ + DEBUG=nostrip \ + CC='${CC}' CFLAGS='${CFLAGS} -I${STAGING_INCDIR}/libowfat' LDFLAGS='${LDFLAGS}' \ +" + +do_install() { + install -d -m0755 ${D}${bindir} ${D}${mandir}/man1 + + install -m0755 ncp ${D}${bindir} + ln -sf ncp ${D}${bindir}/npoll + ln -sf ncp ${D}${bindir}/npush + + install -m0644 ncp.1 npush.1 ${D}${mandir}/man1 + ln -sf npush.1 ${D}${mandir}/man1/npoll.1 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch new file mode 100644 index 0000000000..0966b65808 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch @@ -0,0 +1,379 @@ +From ccd166b73eaae4dd1e1785c63ceb9b303568ed46 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 21 Mar 2017 11:30:49 -0700 +Subject: [PATCH] bundle own base64 encode/decode functions + +Not all libc implementations provide it. +as an aside libresolv is no longer needed + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 4 +- + base64.c | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + netcat.c | 2 + + socks.c | 3 + + 4 files changed, 320 insertions(+), 2 deletions(-) + create mode 100644 base64.c + +Index: netcat-openbsd-1.105/Makefile +=================================================================== +--- netcat-openbsd-1.105.orig/Makefile ++++ netcat-openbsd-1.105/Makefile +@@ -1,9 +1,9 @@ + # $OpenBSD: Makefile,v 1.6 2001/09/02 18:45:41 jakob Exp $ + + PROG= nc +-SRCS= netcat.c atomicio.c socks.c ++SRCS= netcat.c atomicio.c socks.c base64.c + +-LIBS= `pkg-config --libs libbsd` -lresolv ++LIBS= `pkg-config --libs libbsd` + OBJS= $(SRCS:.c=.o) + CFLAGS= -g -O2 + LDFLAGS= -Wl,--no-add-needed +Index: netcat-openbsd-1.105/base64.c +=================================================================== +--- /dev/null ++++ netcat-openbsd-1.105/base64.c +@@ -0,0 +1,313 @@ ++/* ++ * Copyright (c) 1996-1999 by Internet Software Consortium. ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS ++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE ++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL ++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++/* ++ * Portions Copyright (c) 1995 by International Business Machines, Inc. ++ * ++ * International Business Machines, Inc. (hereinafter called IBM) grants ++ * permission under its copyrights to use, copy, modify, and distribute this ++ * Software with or without fee, provided that the above copyright notice and ++ * all paragraphs of this notice appear in all copies, and that the name of IBM ++ * not be used in connection with the marketing of any product incorporating ++ * the Software or modifications thereof, without specific, written prior ++ * permission. ++ * ++ * To the extent it has a right to do so, IBM grants an immunity from suit ++ * under its patents, if any, for the use, sale or manufacture of products to ++ * the extent that such products are used for performing Domain Name System ++ * dynamic updates in TCP/IP networks by means of the Software. No immunity is ++ * granted for any product per se or for any other function of any product. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES, ++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ++ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, ++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN ++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES. ++ */ ++ ++#if !defined(LINT) && !defined(CODECENTER) ++static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $"; ++#endif /* not lint */ ++ ++#include <sys/types.h> ++#include <sys/param.h> ++#include <sys/socket.h> ++ ++#include <netinet/in.h> ++#include <arpa/inet.h> ++#include <arpa/nameser.h> ++ ++#include <ctype.h> ++#include <resolv.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#define Assert(Cond) if (!(Cond)) abort() ++ ++static const char Base64[] = ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; ++static const char Pad64 = '='; ++ ++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt) ++ The following encoding technique is taken from RFC 1521 by Borenstein ++ and Freed. It is reproduced here in a slightly edited form for ++ convenience. ++ ++ A 65-character subset of US-ASCII is used, enabling 6 bits to be ++ represented per printable character. (The extra 65th character, "=", ++ is used to signify a special processing function.) ++ ++ The encoding process represents 24-bit groups of input bits as output ++ strings of 4 encoded characters. Proceeding from left to right, a ++ 24-bit input group is formed by concatenating 3 8-bit input groups. ++ These 24 bits are then treated as 4 concatenated 6-bit groups, each ++ of which is translated into a single digit in the base64 alphabet. ++ ++ Each 6-bit group is used as an index into an array of 64 printable ++ characters. The character referenced by the index is placed in the ++ output string. ++ ++ Table 1: The Base64 Alphabet ++ ++ Value Encoding Value Encoding Value Encoding Value Encoding ++ 0 A 17 R 34 i 51 z ++ 1 B 18 S 35 j 52 0 ++ 2 C 19 T 36 k 53 1 ++ 3 D 20 U 37 l 54 2 ++ 4 E 21 V 38 m 55 3 ++ 5 F 22 W 39 n 56 4 ++ 6 G 23 X 40 o 57 5 ++ 7 H 24 Y 41 p 58 6 ++ 8 I 25 Z 42 q 59 7 ++ 9 J 26 a 43 r 60 8 ++ 10 K 27 b 44 s 61 9 ++ 11 L 28 c 45 t 62 + ++ 12 M 29 d 46 u 63 / ++ 13 N 30 e 47 v ++ 14 O 31 f 48 w (pad) = ++ 15 P 32 g 49 x ++ 16 Q 33 h 50 y ++ ++ Special processing is performed if fewer than 24 bits are available ++ at the end of the data being encoded. A full encoding quantum is ++ always completed at the end of a quantity. When fewer than 24 input ++ bits are available in an input group, zero bits are added (on the ++ right) to form an integral number of 6-bit groups. Padding at the ++ end of the data is performed using the '=' character. ++ ++ Since all base64 input is an integral number of octets, only the ++ ------------------------------------------------- ++ following cases can arise: ++ ++ (1) the final quantum of encoding input is an integral ++ multiple of 24 bits; here, the final unit of encoded ++ output will be an integral multiple of 4 characters ++ with no "=" padding, ++ (2) the final quantum of encoding input is exactly 8 bits; ++ here, the final unit of encoded output will be two ++ characters followed by two "=" padding characters, or ++ (3) the final quantum of encoding input is exactly 16 bits; ++ here, the final unit of encoded output will be three ++ characters followed by one "=" padding character. ++ */ ++ ++int ++b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) { ++ size_t datalength = 0; ++ u_char input[3]; ++ u_char output[4]; ++ size_t i; ++ ++ while (2 < srclength) { ++ input[0] = *src++; ++ input[1] = *src++; ++ input[2] = *src++; ++ srclength -= 3; ++ ++ output[0] = input[0] >> 2; ++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4); ++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6); ++ output[3] = input[2] & 0x3f; ++ Assert(output[0] < 64); ++ Assert(output[1] < 64); ++ Assert(output[2] < 64); ++ Assert(output[3] < 64); ++ ++ if (datalength + 4 > targsize) ++ return (-1); ++ target[datalength++] = Base64[output[0]]; ++ target[datalength++] = Base64[output[1]]; ++ target[datalength++] = Base64[output[2]]; ++ target[datalength++] = Base64[output[3]]; ++ } ++ ++ /* Now we worry about padding. */ ++ if (0 != srclength) { ++ /* Get what's left. */ ++ input[0] = input[1] = input[2] = '\0'; ++ for (i = 0; i < srclength; i++) ++ input[i] = *src++; ++ ++ output[0] = input[0] >> 2; ++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4); ++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6); ++ Assert(output[0] < 64); ++ Assert(output[1] < 64); ++ Assert(output[2] < 64); ++ ++ if (datalength + 4 > targsize) ++ return (-1); ++ target[datalength++] = Base64[output[0]]; ++ target[datalength++] = Base64[output[1]]; ++ if (srclength == 1) ++ target[datalength++] = Pad64; ++ else ++ target[datalength++] = Base64[output[2]]; ++ target[datalength++] = Pad64; ++ } ++ if (datalength >= targsize) ++ return (-1); ++ target[datalength] = '\0'; /* Returned value doesn't count \0. */ ++ return (datalength); ++} ++//libresolv_hidden_def (b64_ntop) ++ ++/* skips all whitespace anywhere. ++ converts characters, four at a time, starting at (or after) ++ src from base - 64 numbers into three 8 bit bytes in the target area. ++ it returns the number of data bytes stored at the target, or -1 on error. ++ */ ++ ++int ++b64_pton(char const *src, u_char *target, size_t targsize) { ++ int tarindex, state, ch; ++ char *pos; ++ ++ state = 0; ++ tarindex = 0; ++ ++ while ((ch = *src++) != '\0') { ++ if (isspace(ch)) /* Skip whitespace anywhere. */ ++ continue; ++ ++ if (ch == Pad64) ++ break; ++ ++ pos = strchr(Base64, ch); ++ if (pos == 0) /* A non-base64 character. */ ++ return (-1); ++ ++ switch (state) { ++ case 0: ++ if (target) { ++ if ((size_t)tarindex >= targsize) ++ return (-1); ++ target[tarindex] = (pos - Base64) << 2; ++ } ++ state = 1; ++ break; ++ case 1: ++ if (target) { ++ if ((size_t)tarindex + 1 >= targsize) ++ return (-1); ++ target[tarindex] |= (pos - Base64) >> 4; ++ target[tarindex+1] = ((pos - Base64) & 0x0f) ++ << 4 ; ++ } ++ tarindex++; ++ state = 2; ++ break; ++ case 2: ++ if (target) { ++ if ((size_t)tarindex + 1 >= targsize) ++ return (-1); ++ target[tarindex] |= (pos - Base64) >> 2; ++ target[tarindex+1] = ((pos - Base64) & 0x03) ++ << 6; ++ } ++ tarindex++; ++ state = 3; ++ break; ++ case 3: ++ if (target) { ++ if ((size_t)tarindex >= targsize) ++ return (-1); ++ target[tarindex] |= (pos - Base64); ++ } ++ tarindex++; ++ state = 0; ++ break; ++ default: ++ abort(); ++ } ++ } ++ ++ /* ++ * We are done decoding Base-64 chars. Let's see if we ended ++ * on a byte boundary, and/or with erroneous trailing characters. ++ */ ++ ++ if (ch == Pad64) { /* We got a pad char. */ ++ ch = *src++; /* Skip it, get next. */ ++ switch (state) { ++ case 0: /* Invalid = in first position */ ++ case 1: /* Invalid = in second position */ ++ return (-1); ++ ++ case 2: /* Valid, means one byte of info */ ++ /* Skip any number of spaces. */ ++ for ((void)NULL; ch != '\0'; ch = *src++) ++ if (!isspace(ch)) ++ break; ++ /* Make sure there is another trailing = sign. */ ++ if (ch != Pad64) ++ return (-1); ++ ch = *src++; /* Skip the = */ ++ /* Fall through to "single trailing =" case. */ ++ /* FALLTHROUGH */ ++ ++ case 3: /* Valid, means two bytes of info */ ++ /* ++ * We know this char is an =. Is there anything but ++ * whitespace after it? ++ */ ++ for ((void)NULL; ch != '\0'; ch = *src++) ++ if (!isspace(ch)) ++ return (-1); ++ ++ /* ++ * Now make sure for cases 2 and 3 that the "extra" ++ * bits that slopped past the last full byte were ++ * zeros. If we don't check them, they become a ++ * subliminal channel. ++ */ ++ if (target && target[tarindex] != 0) ++ return (-1); ++ } ++ } else { ++ /* ++ * We ended by seeing the end of the string. Make sure we ++ * have no partial bytes lying around. ++ */ ++ if (state != 0) ++ return (-1); ++ } ++ ++ return (tarindex); ++} +Index: netcat-openbsd-1.105/netcat.c +=================================================================== +--- netcat-openbsd-1.105.orig/netcat.c ++++ netcat-openbsd-1.105/netcat.c +@@ -169,6 +169,9 @@ static int connect_with_timeout(int fd, + socklen_t salen, int ctimeout); + static void quit(); + ++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize); ++int b64_pton(char const *src, u_char *target, size_t targsize); ++ + int + main(int argc, char *argv[]) + { +Index: netcat-openbsd-1.105/socks.c +=================================================================== +--- netcat-openbsd-1.105.orig/socks.c ++++ netcat-openbsd-1.105/socks.c +@@ -53,6 +53,9 @@ + #define SOCKS_DOMAIN 3 + #define SOCKS_IPV6 4 + ++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize); ++int b64_pton(char const *src, u_char *target, size_t targsize); ++ + int remote_connect(const char *, const char *, struct addrinfo); + int socks_connect(const char *, const char *, struct addrinfo, + const char *, const char *, struct addrinfo, int, diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb index 0afe10c7c0..9d7420f8c2 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb @@ -2,19 +2,22 @@ require netcat.inc SUMMARY = "OpenBSD Netcat" HOMEPAGE = "http://ftp.debian.org" LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://../debian/copyright;md5=ee6bbaacb5db5f2973818f0902c3ae6f" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee6bbaacb5db5f2973818f0902c3ae6f" DEPENDS += "glib-2.0 libbsd" +do_patch[depends] = "quilt-native:do_populate_sysroot" SRC_URI = "${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \ - ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz;name=netcat-patch" + ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz;name=netcat-patch;subdir=${BP} \ + file://0001-bundle-own-base64-encode-decode-functions.patch \ + " SRC_URI[netcat.md5sum] = "7e67b22f1ad41a1b7effbb59ff28fca1" SRC_URI[netcat.sha256sum] = "40653fe66c1516876b61b07e093d826e2a5463c5d994f1b7e6ce328f3edb211e" SRC_URI[netcat-patch.md5sum] = "e914f8eb7eda5c75c679dd77787ac76b" SRC_URI[netcat-patch.sha256sum] = "eee759327ffea293e81d0dde67921b7fcfcad279ffd7a2c9d037bbc8f882b363" -S = "${WORKDIR}/${BPN}-${PV}" +inherit pkgconfig EXTRA_OEMAKE += "'LDFLAGS=${LDFLAGS}'" @@ -23,9 +26,18 @@ do_configure[noexec] = "1" netcat_do_patch() { cd ${S} quilt pop -a || true - QUILT_PATCHES=${WORKDIR}/debian/patches QUILT_SERIES=${WORKDIR}/debian/patches/series quilt push -a + if [ -d ${S}/.pc-netcat ]; then + rm -rf ${S}/.pc + mv ${S}/.pc-netcat ${S}/.pc + QUILT_PATCHES=${S}/debian/patches quilt pop -a + rm -rf ${S}/.pc ${S}/debian + fi + QUILT_PATCHES=${S}/debian/patches quilt push -a + mv ${S}/.pc ${S}/.pc-netcat } +do_unpack[cleandirs] += "${S}" + python do_patch() { bb.build.exec_func('netcat_do_patch', d) bb.build.exec_func('patch_do_patch', d) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat.inc b/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat.inc index 91a24a106f..15441645b0 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat.inc +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/netcat/netcat.inc @@ -9,7 +9,7 @@ connection you would need and has several interesting built-in \ capabilities." SECTION = "net" -inherit update-alternatives gettext +inherit update-alternatives gettext pkgconfig ALTERNATIVE_${PN} = "nc" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_git.bb index ed713ace28..a7a5000e27 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/netcf/netcf_git.bb @@ -20,7 +20,7 @@ inherit gettext autotools pkgconfig systemd EXTRA_OECONF_append_class-target = " --with-driver=redhat" -PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" PACKAGECONFIG[systemd] = "--with-sysinit=systemd,--with-sysinit=initscripts," do_configure_prepend() { @@ -47,9 +47,11 @@ do_install_append() { if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then install -d ${D}${systemd_unitdir}/system if [ -d "${D}${libdir}/systemd/system" ]; then - mv ${D}${libdir}/systemd/system/* ${D}${systemd_unitdir}/system/ - rm -rf ${D}${libdir}/systemd/ - else + if [ "${systemd_unitdir}" != "${libdir}/systemd" ] ; then + mv ${D}${libdir}/systemd/system/* ${D}${systemd_unitdir}/system/ + rm -rf ${D}${libdir}/systemd/ + fi + elif [ "${systemd_unitdir}" != "${nonarch_libdir}/systemd" ] ; then mv ${D}${nonarch_libdir}/systemd/system/* ${D}${systemd_unitdir}/system/ rm -rf ${D}${nonarch_libdir}/systemd/ fi diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/nis.inc b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/nis.inc index c4aa10e3a2..e027a1c6f8 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/nis.inc +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/nis.inc @@ -25,7 +25,7 @@ do_install() { # so force the package to be skipped here (this will cause a # 'nothing provides' error) python () { - os = bb.data.getVar("TARGET_OS", d, 1) + os = d.getVar("TARGET_OS", True) if os == "linux-uclibc": raise bb.parse.SkipPackage("NIS functionality requires rpcsvc/yp.h, uClibC does not provide this") } diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-lib-yp_all_host.c-Fix-build-with-gcc-7.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-lib-yp_all_host.c-Fix-build-with-gcc-7.patch new file mode 100644 index 0000000000..d1d5f9ca78 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools/0001-lib-yp_all_host.c-Fix-build-with-gcc-7.patch @@ -0,0 +1,33 @@ +From 71fdfdfcea2bfa5f522512366bfcdf95f861ecc6 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 23 Apr 2017 23:44:37 -0700 +Subject: [PATCH] lib/yp_all_host.c: Fix build with gcc 7 + +fixes + +| ../../../../../../../workspace/sources/yp-tools/lib/yp_all_host.c: In function 'yp_all_host': +| ../../../../../../../workspace/sources/yp-tools/lib/yp_all_host.c:109:30: error: comparison between pointer and zero character constant [-Werror=pointer-compare] +| inmap == NULL || inmap == '\0') +| ^~ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/yp_all_host.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/yp_all_host.c b/lib/yp_all_host.c +index 59cf236..4a07a7e 100644 +--- a/lib/yp_all_host.c ++++ b/lib/yp_all_host.c +@@ -106,7 +106,7 @@ yp_all_host (const char *indomain, const char *inmap, + + if (hostname == NULL || hostname[0] == '\0' || + indomain == NULL || indomain[0] == '\0' || +- inmap == NULL || inmap == '\0') ++ inmap == NULL || inmap[0] == '\0') + return YPERR_BADARGS; + + res = YPERR_YPERR; +-- +2.12.2 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_3.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_3.3.bb index 69217fad1e..7bd4630f75 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_3.3.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_3.3.bb @@ -15,7 +15,8 @@ SRC_URI = "http://www.linux-nis.org/download/yp-tools/${BP}.tar.bz2 \ file://domainname.service \ file://yp-tools-ipv4-ipv6-Provide-an-in-place-version-of-mapv4v6addr.patch \ file://alignment-cheat.patch \ -" + file://0001-lib-yp_all_host.c-Fix-build-with-gcc-7.patch \ + " SRC_URI[md5sum] = "acebeecc11a73fb8097503670344834c" SRC_URI[sha256sum] = "812be817df3d4c25813552be336c6c6ad5aedaf65611b81af3ad9f98fb3c2e50" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb index 9fc6406b73..b9c0aa700a 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb @@ -19,7 +19,7 @@ This is the final IPv4-only version of ypbind-mt. \ HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html" DEPENDS = " \ yp-tools \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ " RDEPENDS_${PN} += "yp-tools" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb index 82544e7590..0b7e5046b1 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb @@ -15,10 +15,10 @@ of known secure NIS server (/etc/yp.conf) Binds to \ the server which answered as first. \ " HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html" -DEPENDS = "yp-tools ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" +DEPENDS = "yp-tools ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" PROVIDES += "ypbind" -PNBLACKLIST[ypbind-mt] ?= "BROKEN: Depends on broken yp-tools" +PNBLACKLIST[ypbind-mt] ?= "BROKEN: Depends on broken yp-tools - the recipe will be removed on 2017-09-01 unless the issue is fixed" SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \ file://ypbind.init \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed_git.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed_git.bb index dac5617545..527ea33b55 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed_git.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntimed/ntimed_git.bb @@ -16,6 +16,9 @@ SRCREV = "db0abbb4c80f2ecef6bc5d9639bca5bea28532a2" S = "${WORKDIR}/git" +# use adjtimex on musl +CFLAGS_append_libc-musl = " -Dntp_adjtime=adjtimex" + EXTRA_OEMAKE = "\ 'CC=${CC}' \ 'CFLAGS=${CFLAGS}' \ @@ -23,11 +26,7 @@ EXTRA_OEMAKE = "\ " do_configure () { - sh ./configure -} - -do_compile () { - oe_runmake + sh ${S}/configure } do_install () { diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p9.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p10.bb index 9d74c96f37..719c60b97e 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p9.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p10.bb @@ -6,7 +6,7 @@ or satellite receiver or modem." HOMEPAGE = "http://support.ntp.org" SECTION = "net" LICENSE = "NTP" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f41fedb22dffefcbfafecc85b0f79cfa" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=e877a1d567a6a58996d2b66e3e387003" DEPENDS = "libevent" @@ -23,8 +23,8 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.g file://ntpd.list \ " -SRC_URI[md5sum] = "857452b05f5f2e033786f77ade1974ed" -SRC_URI[sha256sum] = "b724287778e1bac625b447327c9851eedef020517a3545625e9f652a90f30b72" +SRC_URI[md5sum] = "745384ed0dedb3f66b33fe84d66466f9" +SRC_URI[sha256sum] = "ddd2366e64219b9efa0f7438e06800d0db394ac5c88e13c17b70d0dcdf99b99f" inherit autotools update-rc.d useradd systemd pkgconfig @@ -47,7 +47,7 @@ USERADD_PARAM_${PN} = "--system --home-dir ${NTP_USER_HOME} \ # NB: debug is default-enabled by NTP; keep it default-enabled here. PACKAGECONFIG ??= "cap debug refclocks openssl \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ " PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \ --with-openssl-incdir=${STAGING_INCDIR} \ diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb new file mode 100644 index 0000000000..420ef5be00 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/open-isns/open-isns_0.97.bb @@ -0,0 +1,36 @@ +# Copyright (C) 2016 Joe MacDonald <joe_macdonald@mentor.com> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "iSNS daemon and utility programs" +DESCRIPTION = "This is a partial implementation of RFC4171, the Internet \ +Storage Name Service (iSNS). The distribution includes the iSNS server, \ +supporting persisten storage of registrations, isnsadm, a command line \ +utility for managing nodes, and isnsdd, a corresponding discovery daemon." +HOMEPAGE = "http://github.com/gonzoleeman/open-isns/" +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785" +SECTION = "net" + +DEPENDS = "openssl systemd" + +SRC_URI = " \ + git://github.com/open-iscsi/open-isns \ +" + +SRCREV ?= "09954404e948e41eb0fce8e28836018b4ce3d20d" + +S = "${WORKDIR}/git" + +inherit systemd autotools-brokensep distro_features_check +# depends on systemd +REQUIRED_DISTRO_FEATURES = "systemd" + +EXTRA_OECONF = " --prefix=${prefix} --enable-shared" +EXTRA_OEMAKE += "SYSTEMDDIR=${D}${systemd_unitdir}/system" + +do_install_append () { + oe_runmake INCDIR=${D}${includedir}/libisns/ install_hdrs + oe_runmake LIBDIR=${D}${libdir} install_lib +} + +FILES_${PN} += "${libdir} ${systemd_unitdir}" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf b/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf index 4a3dc4a460..1205806d52 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf @@ -1 +1 @@ -d /var/run/openvpn 0755 root root - +d @LOCALSTATEDIR@/run/openvpn 0755 root root - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.9.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.9.bb index a3ef76568c..db510deff1 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.9.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.9.bb @@ -25,7 +25,7 @@ EXTRA_OECONF += "--enable-iproute2" EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}" # Explicitly specify IPROUTE to bypass the configure-time check for /sbin/ip on the host. -EXTRA_OECONF += "IPROUTE=/sbin/ip" +EXTRA_OECONF += "IPROUTE=${base_sbindir}/ip" do_install_append() { install -d ${D}/${sysconfdir}/init.d @@ -47,11 +47,10 @@ do_install_append() { install -d ${D}/${localstatedir} install -d ${D}/${localstatedir}/lib install -d -m 710 ${D}/${localstatedir}/lib/openvpn - install -d -m 755 ${D}/${localstatedir}/run/ - install -d -m 755 ${D}/${localstatedir}/run/openvpn install -d ${D}${sysconfdir}/tmpfiles.d install -m 0644 ${WORKDIR}/openvpn-volatile.conf ${D}${sysconfdir}/tmpfiles.d/openvpn.conf + sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/tmpfiles.d/openvpn.conf fi } @@ -61,7 +60,8 @@ RRECOMMENDS_${PN} = "kernel-module-tun" FILES_${PN}-dbg += "${libdir}/openvpn/plugins/.debug" FILES_${PN} += "${systemd_unitdir}/system/openvpn@.service \ - /run" + ${sysconfdir}/tmpfiles.d \ + " FILES_${PN}-sample += "${systemd_unitdir}/system/openvpn@loopback-server.service \ ${systemd_unitdir}/system/openvpn@loopback-client.service \ ${sysconfdir}/openvpn/sample/" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch new file mode 100644 index 0000000000..f8eb3ae67a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch @@ -0,0 +1,33 @@ +From 40848547abf592c8d29b85ef1346001514944435 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 17 Jun 2017 10:14:20 -0700 +Subject: [PATCH] Fix build with format string checks + +Fixes +| ruli_addr.c:418:5: error: format not a string literal and no format arguments [-Werror=format-security] +| return fprintf(out, inet_ntoa(addr->ipv4)); +| ^~~~~~ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/ruli_addr.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ruli_addr.c b/src/ruli_addr.c +index 00d5d0d..f1eabae 100644 +--- a/src/ruli_addr.c ++++ b/src/ruli_addr.c +@@ -415,7 +415,7 @@ int ruli_in_print(FILE *out, const _ruli_addr *addr, int family) + { + switch (family) { + case PF_INET: +- return fprintf(out, inet_ntoa(addr->ipv4)); ++ return fprintf(out, "%s", inet_ntoa(addr->ipv4)); + + case PF_INET6: + return ruli_inet6_print(out, &addr->ipv6); +-- +2.13.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-src-ruli_addr.c-Add-missing-format-string.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-src-ruli_addr.c-Add-missing-format-string.patch new file mode 100644 index 0000000000..9044415ffb --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/files/0001-src-ruli_addr.c-Add-missing-format-string.patch @@ -0,0 +1,35 @@ +From d3fb471f53712e710fb5777b1b0851c46b7be64c Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 25 Jun 2017 01:23:03 -0700 +Subject: [PATCH] src/ruli_addr.c: Add missing format string + +fixes + +| ruli_addr.c: In function 'ruli_in_snprint': +| ruli_addr.c:491:5: error: format not a string literal and no format arguments [-Werror=format-security] +| return snprintf(buf, size, inet_ntoa(addr->ipv4)); +| ^~~~~~ + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + src/ruli_addr.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ruli_addr.c b/src/ruli_addr.c +index f1eabae..5f1fd4f 100644 +--- a/src/ruli_addr.c ++++ b/src/ruli_addr.c +@@ -488,7 +488,7 @@ int ruli_in_snprint(char *buf, size_t size, const _ruli_addr *addr, int family) + { + switch (family) { + case PF_INET: +- return snprintf(buf, size, inet_ntoa(addr->ipv4)); ++ return snprintf(buf, size, "%s", inet_ntoa(addr->ipv4)); + + case PF_INET6: + return ruli_inet6_snprint(buf, size, &addr->ipv6); +-- +2.13.1 + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/files/Makefile.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/files/Makefile.patch new file mode 100644 index 0000000000..60789a3d56 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/files/Makefile.patch @@ -0,0 +1,122 @@ +diff -Naur patch.org/ruli-0.36/Makefile patch.new/ruli-0.36/Makefile +--- ruli-0.36/Makefile 2015-09-10 15:14:13.952262350 -0400 ++++ ruli-0.36/Makefile 2015-09-10 15:14:38.628261620 -0400 +@@ -7,17 +7,17 @@ + .PHONY: default + default: + $(MAKE) -C src +- $(MAKE) -C sample ++# $(MAKE) -C sample + + .PHONY: clean + clean: + $(MAKE) -C src clean +- $(MAKE) -C sample clean ++# $(MAKE) -C sample clean + + .PHONY: install + install: + $(MAKE) -C src install +- $(MAKE) -C sample install ++# $(MAKE) -C sample install + + .PHONY: dpkg + dpkg: + +===================================================================== + +diff -Naur patch.org/git/src/Makefile patch.new/git/src/Makefile +--- ruli-0.36/src/Makefile 2005-06-13 12:34:53.000000000 -0400 ++++ ruli-0.36/src/Makefile 2015-09-11 09:46:06.290287347 -0400 +@@ -18,9 +18,9 @@ + # + # Debian packaging likes this: OOP_BASE_DIR = /usr + # +-OOP_BASE_DIR = /usr/local/oop +-OOP_INCLUDE_DIR = $(OOP_BASE_DIR)/include +-OOP_LIB_DIR = $(OOP_BASE_DIR)/lib ++#OOP_BASE_DIR = /usr/local/oop ++OOP_INCLUDE_DIR = ${PKG_CONFIG_SYSROOT_DIR}/$(includedir)/ ++#OOP_LIB_DIR = $(OOP_BASE_DIR)/lib + + # + # INSTALL_BASE_DIR indicates where RULI +@@ -30,11 +30,11 @@ + # + # Debian packaging likes this: INSTALL_BASE_DIR = $(DESTDIR)/usr + # +-INSTALL_BASE_DIR = ../install/ruli +-INSTALL_INCLUDE_DIR = $(INSTALL_BASE_DIR)/include +-INSTALL_LIB_DIR = $(INSTALL_BASE_DIR)/lib +-INSTALL_MAN_DIR = $(INSTALL_BASE_DIR)/share/man +-INSTALL_MAN3_DIR = $(INSTALL_MAN_DIR)/man3 ++#INSTALL_BASE_DIR = ../install/ruli ++#INSTALL_INCLUDE_DIR = $(INSTALL_BASE_DIR)/include ++#INSTALL_LIB_DIR = $(INSTALL_BASE_DIR)/lib ++#INSTALL_MAN_DIR = $(INSTALL_BASE_DIR)/share/man ++#INSTALL_MAN3_DIR = $(INSTALL_MAN_DIR)/man3 + + # SunOS, Linux + PLATFORM=$(shell uname) +@@ -45,7 +45,7 @@ + + WARN = -pedantic -ansi -Wshadow -Wpointer-arith -Wcast-qual \ + -Wcast-align -Wwrite-strings -Wredundant-decls +-CC = gcc ++#CC = gcc + + # gcc-specific options (not valid for g++) + ifeq ($(CC),gcc) +@@ -58,7 +58,7 @@ + FLAGS = $(DEBUG) -O2 -pipe -Wall -g -shared -D_REENTRANT \ + $(DEFINE_SOLARIS) -I. -I$(OOP_INCLUDE_DIR) + SOFT_CFLAGS = $(WARN) $(FLAGS) +-CFLAGS = $(WARN) -Werror $(FLAGS) ++CFLAGS = $(WARN) $(FLAGS) + LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \ + ruli_addr.o ruli_sock.o ruli_txt.o ruli_msg.o ruli_fsm.o \ + ruli_res.o ruli_parse.o ruli_host.o ruli_srv.o ruli_conf.o \ +@@ -66,7 +66,7 @@ + ruli_getaddrinfo.o + SHAREDOBJ = $(LIBOBJ:%.o=%.os) + SONAME = libruli.so.4 +-LDFLAGS = -L$(OOP_LIB_DIR) ++#LDFLAGS = -L$(OOP_LIB_DIR) + + COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c + SHARED_COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(SHARED) $(CFLAGS) -o $@ -c +@@ -89,19 +89,19 @@ + strip: ruli + strip $(SONAME) libruli.a + +-.PHONY: install +-install: ruli +- mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR) $(INSTALL_MAN3_DIR) +- cp $(SONAME) libruli.a $(INSTALL_LIB_DIR) +- cp *.h $(INSTALL_INCLUDE_DIR) +- cp ../doc/man/*.3 $(INSTALL_MAN3_DIR) +- cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so +- @echo +- @echo "REMINDER:" +- @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:" +- @echo "# echo $(INSTALL_LIB_DIR) >> /etc/ld.so.conf" +- @echo "# ldconfig" +- @echo ++#.PHONY: install ++#install: ruli ++# mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR) $(INSTALL_MAN3_DIR) ++# cp $(SONAME) libruli.a $(INSTALL_LIB_DIR) ++# cp *.h $(INSTALL_INCLUDE_DIR) ++# cp ../doc/man/*.3 $(INSTALL_MAN3_DIR) ++# cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so ++# @echo ++# @echo "REMINDER:" ++# @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:" ++# @echo "# echo $(INSTALL_LIB_DIR) >> /etc/ld.so.conf" ++# @echo "# ldconfig" ++# @echo + + .PHONY: ruli + ruli: $(SONAME) libruli.a + + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/ruli_0.36.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/ruli_0.36.bb new file mode 100644 index 0000000000..885796d2a5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ruli/ruli_0.36.bb @@ -0,0 +1,25 @@ +SUMMARY = "RULI stands for Resolver User Layer Interface It's a library built on top of an asynchronous DNS stub resolver" + +HOMEPAGE = "http://www.nongnu.org/ruli/" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +DEPENDS = "liboop" + +SRC_URI = "http://download.savannah.gnu.org/releases/ruli/ruli_${PV}.orig.tar.gz \ + file://Makefile.patch \ + file://0001-Fix-build-with-format-string-checks.patch \ + file://0001-src-ruli_addr.c-Add-missing-format-string.patch \ + " + +SRC_URI[md5sum] = "e73fbfdeadddb68a703a70cea5271468" +SRC_URI[sha256sum] = "11d32def5b514748fbd9ea8c88049ae99e1bb358efc74eb91a4d268a3999dbfa" + +do_install1() { + install -d ${D}${includedir}/ruli + install -d ${D}${libdir} + install -m 0644 ${S}/src/ruli*.h ${D}${includedir}/ruli + install -m 0644 ${S}/src/libruli.so ${D}${libdir} + install -m 0644 ${S}/src/libruli.so.4 ${D}${libdir} +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp/build-ouside_srcdir.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp/build-ouside_srcdir.patch new file mode 100644 index 0000000000..d53cff249f --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp/build-ouside_srcdir.patch @@ -0,0 +1,17 @@ +help compile when S != B + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending +Index: ssmtp-2.64/Makefile.in +=================================================================== +--- ssmtp-2.64.orig/Makefile.in ++++ ssmtp-2.64/Makefile.in +@@ -24,7 +24,7 @@ INSTALLED_REVALIASES_FILE=$(REVALIASES_F + # Programs + GEN_CONFIG=$(srcdir)/generate_config + +-SRCS=ssmtp.c arpadate.c base64.c xgethostname.c @SRCS@ ++SRCS=$(srcdir)/ssmtp.c $(srcdir)/arpadate.c $(srcdir)/base64.c $(srcdir)/xgethostname.c @SRCS@ + + OBJS=$(SRCS:.c=.o) + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp/use-DESTDIR.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp/use-DESTDIR.patch new file mode 100644 index 0000000000..26d8527610 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp/use-DESTDIR.patch @@ -0,0 +1,74 @@ +Use DESTDIR during install/uninstall, this helps +with cross or staged builds. Additionally pass LDFLAGS +during linking. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending + + +Index: ssmtp-2.64/Makefile.in +=================================================================== +--- ssmtp-2.64.orig/Makefile.in ++++ ssmtp-2.64/Makefile.in +@@ -46,40 +46,40 @@ all: ssmtp + + .PHONY: install + install: ssmtp $(GEN_CONFIG) +- $(INSTALL) -d -m 755 $(bindir) +- $(INSTALL) -s -m 755 ssmtp $(bindir)/ssmtp +- $(INSTALL) -d -m 755 $(mandir) +- $(INSTALL) -m 644 $(srcdir)/ssmtp.8 $(mandir)/ssmtp.8 +- $(INSTALL) -d -m 755 $(SSMTPCONFDIR) +- $(INSTALL) -m 644 $(srcdir)/revaliases $(INSTALLED_REVALIASES_FILE) +- $(GEN_CONFIG) $(INSTALLED_CONFIGURATION_FILE) ++ $(INSTALL) -d -m 755 $(DESTDIR)$(bindir) ++ $(INSTALL) -m 755 ssmtp $(DESTDIR)$(bindir)/ssmtp ++ $(INSTALL) -d -m 755 $(DESTDIR)$(mandir) ++ $(INSTALL) -m 644 $(srcdir)/ssmtp.8 $(DESTDIR)$(mandir)/ssmtp.8 ++ $(INSTALL) -d -m 755 $(DESTDIR)$(SSMTPCONFDIR) ++ $(INSTALL) -m 644 $(srcdir)/revaliases $(DESTDIR)$(INSTALLED_REVALIASES_FILE) ++ $(GEN_CONFIG) $(DESTDIR)$(INSTALLED_CONFIGURATION_FILE) + + + .PHONY: install-sendmail + install-sendmail: install +- $(RM) $(bindir)/sendmail +- $(LN_S) ssmtp $(bindir)/sendmail +- $(INSTALL) -d -m 755 $(libexecdir) +- $(RM) $(libexecdir)/sendmail +- $(LN_S) sendmail /lib/sendmail +- $(RM) $(mandir)/sendmail.8 +- $(LN_S) ssmtp.8 $(mandir)/sendmail.8 ++ $(RM) $(DESTDIR)$(bindir)/sendmail ++ $(LN_S) ssmtp $(DESTDIR)$(bindir)/sendmail ++ $(INSTALL) -d -m 755 $(DESTDIR)$(libexecdir) ++ $(RM) $(DESTDIR)$(libexecdir)/sendmail ++ $(LN_S) sendmail $(DESTDIR)/lib/sendmail ++ $(RM) $(DESTDIR)$(mandir)/sendmail.8 ++ $(LN_S) ssmtp.8 $(DESTDIR)$(mandir)/sendmail.8 + + .PHONY: uninstall + uninstall: +- $(RM) $(bindir)/ssmtp +- $(RM) $(mandir)/ssmtp.8 +- $(RM) $(CONFIGURATION_FILE) $(REVALIASES_FILE) +- $(RM) -r $(SSMTPCONFDIR) ++ $(RM) $(DESTDIR)$(bindir)/ssmtp ++ $(RM) $(DESTDIR)$(mandir)/ssmtp.8 ++ $(RM) $(DESTDIR)$(CONFIGURATION_FILE) $(DESTDIR)$(REVALIASES_FILE) ++ $(RM) -r $(DESTDIR)$(SSMTPCONFDIR) + + .PHONY: uninstall-sendmail + uninstall-sendmail: uninstall +- $(RM) $(bindir)/sendmail /lib/sendmail +- $(RM) $(mandir)/sendmail.8 ++ $(RM) $(DESTDIR)$(bindir)/sendmail $(DESTDIR)/lib/sendmail ++ $(RM) $(DESTDIR)$(mandir)/sendmail.8 + + # Binaries: + ssmtp: $(OBJS) +- $(CC) -o ssmtp $(OBJS) @LIBS@ $(CFLAGS) ++ $(CC) -o ssmtp $(OBJS) @LIBS@ $(CFLAGS) $(LDFLAGS) + + .PHONY: clean + clean: diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb new file mode 100644 index 0000000000..9d4864d79a --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb @@ -0,0 +1,31 @@ +SUMMARY = "extremely simple MTA to get mail off the system to a mail hub" +HOMEPAGE = "http://packages.qa.debian.org/s/ssmtp.html" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e" + +SRC_URI = "\ + ${DEBIAN_MIRROR}/main/s/${BPN}/${BPN}_${PV}.orig.tar.bz2 \ + file://build-ouside_srcdir.patch \ + file://use-DESTDIR.patch \ + " + +EXTRA_OECONF += "--mandir=${mandir}" + +EXTRA_OEMAKE = "GEN_CONFIG='/bin/true'" + +SRC_URI[md5sum] = "65b4e0df4934a6cd08c506cabcbe584f" +SRC_URI[sha256sum] = "22c37dc90c871e8e052b2cab0ad219d010fa938608cd66b21c8f3c759046fa36" + +inherit autotools pkgconfig + +DEPENDS += "openssl inetutils" + +do_install_append () { + install -d ${D}${mandir}/ + mv ${D}${exec_prefix}/man/* ${D}${mandir}/ + rmdir ${D}${exec_prefix}/man + ln -s ssmtp ${D}${sbindir}/sendmail + ln -s ssmtp ${D}${sbindir}/newaliases + ln -s ssmtp ${D}${sbindir}/mailq +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/install-strongswan-swanctl-service.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/install-strongswan-swanctl-service.patch deleted file mode 100644 index 86baccf4f5..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/install-strongswan-swanctl-service.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit 44cbabd8a42bc2a436562ed33fb8c89fa6b75b6e -Author: Chris Patterson <pattersonc@ainfosec.com> -Date: Fri Dec 18 08:31:48 2015 -0500 - - strongswan-swanctl.service.in: match install used by strongswan.service - - Signed-off-by: Chris Patterson <pattersonc@ainfosec.com> - -Upstream-Status: Submitted -https://github.com/strongswan/strongswan/pull/25 - -diff --git a/init/systemd-swanctl/strongswan-swanctl.service.in b/init/systemd-swanctl/strongswan-swanctl.service.in -index 818d352..944101f 100644 ---- a/init/systemd-swanctl/strongswan-swanctl.service.in -+++ b/init/systemd-swanctl/strongswan-swanctl.service.in -@@ -7,3 +7,6 @@ Type=notify - ExecStart=@SBINDIR@/charon-systemd - ExecStartPost=@SBINDIR@/swanctl --load-all --noprompt - ExecReload=@SBINDIR@/swanctl --reload -+ -+[Install] -+WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/support-newer-systemd.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/support-newer-systemd.patch deleted file mode 100644 index 550cf67581..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/files/support-newer-systemd.patch +++ /dev/null @@ -1,69 +0,0 @@ -commit 82498129e0a91dfc3ed2c4ec3b2252f44655b83c -Author: Chris Patterson <pattersonc@ainfosec.com> -Date: Fri Dec 18 08:27:57 2015 -0500 - - configure: support systemd >= 209 - - libsystemd-journal and libsystemd-daemon are now just - part of libsystemd. - - Keep original systemd checks as a fallback. - - Updates charon-systemd/Makefile.am accordingly. - - Tested on: - - debian wheezy (systemd v44) - - ubuntu 15.10 (systemd v255). - - Signed-off-by: Chris Patterson <pattersonc@ainfosec.com> - -Upstream-Status: Submitted -https://github.com/strongswan/strongswan/pull/24 - -diff --git a/configure.ac b/configure.ac -index 3d71ce0..f6c0426 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -941,13 +941,17 @@ if test x$systemd = xtrue; then - AC_MSG_ERROR([not found (try --with-systemdsystemunitdir)]) - fi - -- PKG_CHECK_MODULES(systemd_daemon, [libsystemd-daemon]) -- AC_SUBST(systemd_daemon_CFLAGS) -- AC_SUBST(systemd_daemon_LIBS) -- -- PKG_CHECK_MODULES(systemd_journal, [libsystemd-journal]) -- AC_SUBST(systemd_journal_CFLAGS) -- AC_SUBST(systemd_journal_LIBS) -+ PKG_CHECK_MODULES(systemd, [libsystemd >= 209], -+ [AC_SUBST(systemd_CFLAGS) -+ AC_SUBST(systemd_LIBS)], -+ [PKG_CHECK_MODULES(systemd_daemon, [libsystemd-daemon]) -+ AC_SUBST(systemd_daemon_CFLAGS) -+ AC_SUBST(systemd_daemon_LIBS) -+ -+ PKG_CHECK_MODULES(systemd_journal, [libsystemd-journal]) -+ AC_SUBST(systemd_journal_CFLAGS) -+ AC_SUBST(systemd_journal_LIBS) -+ ]) - fi - - if test x$tss = xtrousers; then -diff --git a/src/charon-systemd/Makefile.am b/src/charon-systemd/Makefile.am -index 1b9ac15..ee85d43 100644 ---- a/src/charon-systemd/Makefile.am -+++ b/src/charon-systemd/Makefile.am -@@ -9,11 +9,11 @@ charon_systemd_CPPFLAGS = \ - -I$(top_srcdir)/src/libstrongswan \ - -I$(top_srcdir)/src/libhydra \ - -I$(top_srcdir)/src/libcharon \ -- $(systemd_daemon_CFLAGS) $(systemd_journal_CFLAGS) \ -+ $(systemd_CFLAGS) $(systemd_daemon_CFLAGS) $(systemd_journal_CFLAGS) \ - -DPLUGINS=\""${charon_plugins}\"" - - charon_systemd_LDADD = \ - $(top_builddir)/src/libstrongswan/libstrongswan.la \ - $(top_builddir)/src/libhydra/libhydra.la \ - $(top_builddir)/src/libcharon/libcharon.la \ -- $(systemd_daemon_LIBS) $(systemd_journal_LIBS) -lm $(PTHREADLIB) $(DLLIB) -+ $(systemd_LIBS) $(systemd_daemon_LIBS) $(systemd_journal_LIBS) -lm $(PTHREADLIB) $(DLLIB) diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.0.bb deleted file mode 100644 index 8941cf63df..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.0.bb +++ /dev/null @@ -1,55 +0,0 @@ -DESCRIPTION = "strongSwan is an OpenSource IPsec implementation for the \ -Linux operating system." -SUMMARY = "strongSwan is an OpenSource IPsec implementation" -HOMEPAGE = "http://www.strongswan.org" -SECTION = "net" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "gmp openssl flex-native flex bison-native" - -SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \ - file://fix-funtion-parameter.patch \ -" - -SRC_URI[md5sum] = "a96fa7eb6c62b40143dadb064b6bd586" -SRC_URI[sha256sum] = "58463998ac6725eac3687e8a20c1f69803c3772657076d06c43386a24b4c8454" - -EXTRA_OECONF = " \ - --without-lib-prefix \ -" - -EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" - - -PACKAGECONFIG ??= "charon curl gmp openssl stroke sqlite3 \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'ldap', '', d)} \ -" -PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni," -PACKAGECONFIG[charon] = "--enable-charon,--disable-charon," -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl," -PACKAGECONFIG[gmp] = "--enable-gmp,--disable-gmp,gmp," -PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap," -PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5," -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl," -PACKAGECONFIG[scep] = "--enable-scepclient,--disable-scepclient," -PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4," -PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3," -PACKAGECONFIG[stroke] = "--enable-stroke,--disable-stroke," -PACKAGECONFIG[swanctl] = "--enable-swanctl,--disable-swanctl,,libgcc" - -# requires swanctl -PACKAGECONFIG[systemd-charon] = "--enable-systemd,--disable-systemd,systemd," - -inherit autotools systemd pkgconfig - -RRECOMMENDS_${PN} = "kernel-module-ipsec" - -FILES_${PN} += "${libdir}/ipsec/lib*${SOLIBS} ${libdir}/ipsec/plugins/*.so" -FILES_${PN}-dbg += "${libdir}/ipsec/.debug ${libdir}/ipsec/plugins/.debug ${libexecdir}/ipsec/.debug" -FILES_${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV} ${libdir}/ipsec/*.la ${libdir}/ipsec/plugins/*.la" -FILES_${PN}-staticdev += "${libdir}/ipsec/*.a ${libdir}/ipsec/plugins/*.a" - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}-swanctl.service', '${BPN}.service', d)}" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.1.bb new file mode 100644 index 0000000000..d63214ba41 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/strongswan/strongswan_5.5.1.bb @@ -0,0 +1,130 @@ +DESCRIPTION = "strongSwan is an OpenSource IPsec implementation for the \ +Linux operating system." +SUMMARY = "strongSwan is an OpenSource IPsec implementation" +HOMEPAGE = "http://www.strongswan.org" +SECTION = "net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "gmp openssl flex-native flex bison-native" + +SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \ + file://fix-funtion-parameter.patch \ +" + +SRC_URI[md5sum] = "4eba9474f7dc6c8c8d7037261358e68d" +SRC_URI[sha256sum] = "720b301991f77bdedd8d551a956f52e2d11686a0ec18e832094f86cf2b842ab7" + +EXTRA_OECONF = " \ + --without-lib-prefix \ +" + +EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" + + +PACKAGECONFIG ??= "charon curl gmp openssl stroke sqlite3 \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ldap', d)} \ +" +PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,,${PN}-plugin-aesni" +PACKAGECONFIG[charon] = "--enable-charon,--disable-charon," +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,${PN}-plugin-curl" +PACKAGECONFIG[gmp] = "--enable-gmp,--disable-gmp,gmp,${PN}-plugin-gmp" +PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap,${PN}-plugin-ldap" +PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,${PN}-plugin-mysql" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl,${PN}-plugin-openssl" +PACKAGECONFIG[scep] = "--enable-scepclient,--disable-scepclient," +PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4,${PN}-plugin-soup" +PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3,${PN}-plugin-sqlite" +PACKAGECONFIG[stroke] = "--enable-stroke,--disable-stroke,,${PN}-plugin-stroke" +PACKAGECONFIG[swanctl] = "--enable-swanctl,--disable-swanctl,,libgcc" + +# requires swanctl +PACKAGECONFIG[systemd-charon] = "--enable-systemd,--disable-systemd,systemd," + +inherit autotools systemd pkgconfig + +RRECOMMENDS_${PN} = "kernel-module-ipsec" + +FILES_${PN} += "${libdir}/ipsec/lib*${SOLIBS}" +FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/ipsec/.debug ${libexecdir}/ipsec/.debug" +FILES_${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV} ${libdir}/ipsec/*.la" +FILES_${PN}-staticdev += "${libdir}/ipsec/*.a" + +CONFFILES_${PN} = "${sysconfdir}/*.conf ${sysconfdir}/ipsec.d/*.conf ${sysconfdir}/strongswan.d/*.conf" + +PACKAGES += "${PN}-plugins" +ALLOW_EMPTY_${PN}-plugins = "1" + +PACKAGES_DYNAMIC += "^${PN}-plugin-.*$" +NOAUTOPACKAGEDEBUG = "1" + +python split_strongswan_plugins () { + sysconfdir = d.expand('${sysconfdir}/strongswan.d/charon') + libdir = d.expand('${libdir}/ipsec/plugins') + dbglibdir = os.path.join(libdir, '.debug') + + def add_plugin_conf(f, pkg, file_regex, output_pattern, modulename): + dvar = d.getVar('PKGD', True) + oldfiles = d.getVar('CONFFILES_' + pkg, True) + newfile = '/' + os.path.relpath(f, dvar) + + if not oldfiles: + d.setVar('CONFFILES_' + pkg, newfile) + else: + d.setVar('CONFFILES_' + pkg, oldfiles + " " + newfile) + + split_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.so', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True) + do_split_packages(d, sysconfdir, '(.*)\.conf', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True, hook=add_plugin_conf) + + split_dbg_packages = do_split_packages(d, dbglibdir, 'libstrongswan-(.*)\.so', '${PN}-plugin-%s-dbg', 'strongSwan %s plugin - Debugging files', prepend=True, extra_depends='${PN}-dbg') + split_dev_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.la', '${PN}-plugin-%s-dev', 'strongSwan %s plugin - Development files', prepend=True, extra_depends='${PN}-dev') + split_staticdev_packages = do_split_packages(d, libdir, 'libstrongswan-(.*)\.a', '${PN}-plugin-%s-staticdev', 'strongSwan %s plugin - Development files (Static Libraries)', prepend=True, extra_depends='${PN}-staticdev') + + if split_packages: + pn = d.getVar('PN', True) + d.setVar('RRECOMMENDS_' + pn + '-plugins', ' '.join(split_packages)) + d.appendVar('RRECOMMENDS_' + pn + '-dbg', ' ' + ' '.join(split_dbg_packages)) + d.appendVar('RRECOMMENDS_' + pn + '-dev', ' ' + ' '.join(split_dev_packages)) + d.appendVar('RRECOMMENDS_' + pn + '-staticdev', ' ' + ' '.join(split_staticdev_packages)) +} + +PACKAGESPLITFUNCS_prepend = "split_strongswan_plugins " + +# Install some default plugins based on default strongSwan ./configure options +# See https://wiki.strongswan.org/projects/strongswan/wiki/Pluginlist +RDEPENDS_${PN} += "\ + ${PN}-plugin-aes \ + ${PN}-plugin-attr \ + ${PN}-plugin-cmac \ + ${PN}-plugin-constraints \ + ${PN}-plugin-des \ + ${PN}-plugin-dnskey \ + ${PN}-plugin-hmac \ + ${PN}-plugin-kernel-netlink \ + ${PN}-plugin-md5 \ + ${PN}-plugin-nonce \ + ${PN}-plugin-pem \ + ${PN}-plugin-pgp \ + ${PN}-plugin-pkcs1 \ + ${PN}-plugin-pkcs7 \ + ${PN}-plugin-pkcs8 \ + ${PN}-plugin-pkcs12 \ + ${PN}-plugin-pubkey \ + ${PN}-plugin-random \ + ${PN}-plugin-rc2 \ + ${PN}-plugin-resolve \ + ${PN}-plugin-revocation \ + ${PN}-plugin-sha1 \ + ${PN}-plugin-sha2 \ + ${PN}-plugin-socket-default \ + ${PN}-plugin-sshkey \ + ${PN}-plugin-updown \ + ${PN}-plugin-vici \ + ${PN}-plugin-x509 \ + ${PN}-plugin-xauth-generic \ + ${PN}-plugin-xcbc \ + " + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}-swanctl.service', '${BPN}.service', d)}" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb index 51369f4d4c..3e2e2c2299 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.35.bb @@ -16,8 +16,6 @@ inherit autotools EXTRA_OECONF += "--with-ssl='${STAGING_EXECPREFIXDIR}' --disable-fips" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ -" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)}" PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb index 43e388ccc7..85db6936d8 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.0.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb @@ -13,8 +13,8 @@ SRC_URI = " \ file://run-ptest \ " -SRC_URI[md5sum] = "2b83364eef53b63ca3181b4eb56dab0c" -SRC_URI[sha256sum] = "eae98121cbb1c9adbedd9a777bf2eae9fa1c1c676424a54740311c8abcee5a5e" +SRC_URI[md5sum] = "9bbc1ee33dab61302411b02dd0515576" +SRC_URI[sha256sum] = "798b3536a29832ce0cbb07fafb1ce5097c95e308a6f592d14052e1ef1505fe79" export LIBS=" -lpcap" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.1.1.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.1.2.bb index 389d61b588..6ee9d73573 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.1.1.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.1.2.bb @@ -6,10 +6,10 @@ SECTION = "net" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=890b830b22fd632e9ffd996df20338f8" -SRC_URI = "http://prdownloads.sourceforge.net/tcpreplay/${PV}/tcpreplay-${PV}.tar.gz \ - " -SRC_URI[md5sum] = "80394c33fe697b53b69eac9bb0968ae9" -SRC_URI[sha256sum] = "61b916ef91049cad2a9ddc8de6f5e3e3cc5d9998dbb644dc91cf3a798497ffe4" +SRC_URI = "http://prdownloads.sourceforge.net/tcpreplay/${PV}/tcpreplay-${PV}.tar.gz" + +SRC_URI[md5sum] = "3105b10b07dbc0b07ce2da07a2368359" +SRC_URI[sha256sum] = "da483347e83a9b5df0e0dbb0f822a2d37236e79dda35f4bc4e6684fa827f25ea" DEPENDS = "libpcap" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch new file mode 100644 index 0000000000..01d0236be5 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch @@ -0,0 +1,37 @@ +--- a/configure.ac 2016-01-01 17:42:27.000000000 +0100 ++++ b/configure.ac 2017-04-20 14:03:37.238254471 +0200 +@@ -284,24 +284,12 @@ + AC_SUBST(LIBS) + AC_SUBST(ADDITIONAL_OBJECTS) + +-# Check for asciidoc +-AC_PATH_PROG(A2X, a2x, no) +-AM_CONDITIONAL(HAVE_A2X, test "x$A2X" != "xno") +-if test x"$A2X" = x"no"; then +- AC_MSG_ERROR([Test for asciidoc failed. See the file 'INSTALL' for help.]) +-fi +- + AC_CONFIG_FILES([ + Makefile + src/Makefile + data/Makefile + data/templates/Makefile + etc/Makefile +-docs/Makefile +-docs/man5/Makefile +-docs/man5/tinyproxy.conf.txt +-docs/man8/Makefile +-docs/man8/tinyproxy.txt + m4macros/Makefile + tests/Makefile + tests/scripts/Makefile +--- a/Makefile.am 2016-01-01 17:42:27.000000000 +0100 ++++ b/Makefile.am 2017-04-20 14:03:53.842822997 +0200 +@@ -2,7 +2,6 @@ + src \ + data \ + etc \ +- docs \ + m4macros \ + tests + diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service b/import-layers/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service new file mode 100644 index 0000000000..ea079f9556 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service @@ -0,0 +1,14 @@ +[Unit] +Description=Tinyproxy, Lightweight http(s) proxy daemon +RequiresMountsFor=/var + +[Service] +Group=tinyproxy +ExecStartPre=/bin/mkdir -p /var/log/tinyproxy +ExecStartPre=/bin/chown -R nobody.tinyproxy /var/log/tinyproxy +ExecStartPre=/bin/mkdir -p /var/run/tinyproxy +ExecStartPre=/bin/chown -R nobody.tinyproxy /var/run/tinyproxy +ExecStart=/usr/sbin/tinyproxy -d + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb new file mode 100644 index 0000000000..e8025c4b57 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb @@ -0,0 +1,38 @@ +SUMMARY = "Lightweight http(s) proxy daemon" +HOMEPAGE = "https://tinyproxy.github.io/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.gz \ + file://disable-documentation.patch \ + file://tinyproxy.service" + +SRC_URI[md5sum] = "3b60f7d08e0821ed1a3e2cf1e5778cac" +SRC_URI[sha256sum] = "8234c879a129feee61efa98bac14a1a3e46e5cf08f01696a216940872aa70faf" + +EXTRA_OECONF += " \ + --enable-filter \ + --enable-transparent \ + --disable-regexcheck \ + --enable-reverse \ + --enable-upstream \ + --enable-xtinyproxy \ + " + +inherit autotools systemd useradd + +#User specific +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "nobody" +GROUPADD_PARAM_${PN} = "--system tinyproxy" + +SYSTEMD_PACKAGES += "${BPN}" +SYSTEMD_SERVICE_${PN} = "tinyproxy.service" +SYSTEMD_AUTO_ENABLE_${PN} = "enable" + +do_install_append() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/tinyproxy.service ${D}${systemd_system_unitdir} + fi +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20151004.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20151004.bb index 8c2c111fd0..83ad11b0e9 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20151004.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/tnftp/tnftp_20151004.bb @@ -33,7 +33,7 @@ SRC_URI[md5sum] = "a49fbe752318d5a7893f900046ea00d5" SRC_URI[sha256sum] = "c94a8a49d3f4aec1965feea831d4d5bf6f90c65fd8381ee0863d11a5029a43a0" PACKAGECONFIG ?= "openssl \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ " PACKAGECONFIG[openssl] = "--enable-ssl, --disable-ssl --with-ssl=no, openssl" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb index 48a0c12795..8f17d3fdbe 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb @@ -33,10 +33,10 @@ do_install() { install -m755 wrappers/tcptraceroute ${D}${bindir} - install -d ${D}${mandir} - install -p -m644 ${BPN}/${BPN}.8 ${D}${mandir} - ln -s ${BPN}.8 ${D}${mandir}/${BPN}6.8 - ln -s ${BPN}.8 ${D}${mandir}/tcptraceroute.8 + install -d ${D}${mandir}/man8 + install -p -m644 ${BPN}/${BPN}.8 ${D}${mandir}/man8 + ln -s ${BPN}.8 ${D}${mandir}/man8/${BPN}6.8 + ln -s ${BPN}.8 ${D}${mandir}/man8/tcptraceroute.8 } diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb new file mode 100644 index 0000000000..1166f9a8db --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Encrypted UDP based FTP with multicast" +HOMEPAGE = "https://sourceforge.net/projects/uftp-multicast" +SECTION = "libs/network" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "${SOURCEFORGE_MIRROR}/uftp-multicast/source-tar/uftp-${PV}.tar.gz" +SRC_URI[md5sum] = "231d6ba7820d89a712fe7d727ab0f8e6" +SRC_URI[sha256sum] = "9e9215af0315257c6cc4f40fbc6161057e861be1fff10a38a5564f699e99c78f" + +DEPENDS = "openssl" + +do_install () { + oe_runmake install DESTDIR=${D} +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/files/Do-not-set-CC_FOR_BUILD-flags.patch b/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/files/Do-not-set-CC_FOR_BUILD-flags.patch deleted file mode 100644 index 64a08add79..0000000000 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/files/Do-not-set-CC_FOR_BUILD-flags.patch +++ /dev/null @@ -1,46 +0,0 @@ -[PATCH] Do not set CC_FOR_BUILD flags - -Upstream-status: Pending - -AC_WIRESHARK_COMPILER_FLAGS_CHECK() is checking which options CC is supported, -and put the supported options into CFLAGS, but it should not put them into -CFLAGS_FOR_BUILD. since CC and BUILD_CC can be different, CFLAGS_FOR_BUILD is -used by BUILD_CC - -BUILD_CC is used to generated host tools, do not use the gcc's optimised options, -do not effect the running of host tools. so do not set CC_FOR_BUILD flags. - -Signed-off-by: Roy.Li <rongqing.li@windriver.com> ---- - acinclude.m4 | 8 -------- - 1 file changed, 8 deletions(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index 136fc27..8d3d360 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -1755,10 +1755,6 @@ if test "x$ac_supports_gcc_flags" = "xyes" ; then - # just the new option. - # - CFLAGS="$CFLAGS_saved $GCC_OPTION" -- # -- # Add it to the flags we use when building build tools. -- # -- CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD $GCC_OPTION" - ], - [ - AC_MSG_RESULT(yes) -@@ -1771,10 +1767,6 @@ if test "x$ac_supports_gcc_flags" = "xyes" ; then - # just the new option. - # - CFLAGS="$CFLAGS_saved $GCC_OPTION" -- # -- # Add it to the flags we use when building build tools. -- # -- CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD $GCC_OPTION" - fi - ], - [ --- -1.9.1 - diff --git a/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.4.bb b/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.9.bb index 29dfbfeef7..82c25ffa6e 100644 --- a/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.4.bb +++ b/import-layers/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_2.2.9.bb @@ -2,7 +2,7 @@ DESCRIPTION = "wireshark - a popular network protocol analyzer" HOMEPAGE = "http://www.wireshark.org" SECTION = "net" LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://README.linux;md5=631e077455b7972172eb149195e065b0" +LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77" DEPENDS = "pcre expat glib-2.0 glib-2.0-native" @@ -10,8 +10,8 @@ SRC_URI = "https://2.na.dl.wireshark.org/src/all-versions/${BP}.tar.bz2" PE = "1" -SRC_URI[md5sum] = "6d0878ba931ea379f6e675d4cba6536b" -SRC_URI[sha256sum] = "42a7fb35eed5a32478153e24601a284bb50148b7ba919c3e8452652f4c2a3911" +SRC_URI[md5sum] = "7d5e65efd0714bd6248aa5b36c28320d" +SRC_URI[sha256sum] = "c8b32c0e7d44a277e737c53d9d142ad3fe4265338f25a7fd8c891f58a7633fc2" inherit autotools pkgconfig perlnative |