diff options
Diffstat (limited to 'meta-networking')
168 files changed, 6939 insertions, 1160 deletions
diff --git a/meta-networking/MAINTAINERS b/meta-networking/MAINTAINERS index 49ced8fd92..bbb2d1b5b2 100644 --- a/meta-networking/MAINTAINERS +++ b/meta-networking/MAINTAINERS @@ -29,3 +29,7 @@ COMMON M: Joe MacDonald <joe_macdonald@mentor.com> F: conf F: recipes-* + +NETKIT +M: Armin Kuster <akuster808@gmail.com> +F: recipes-netkit diff --git a/meta-networking/conf/layer.conf b/meta-networking/conf/layer.conf index d99d738bee..63bb07d5a8 100644 --- a/meta-networking/conf/layer.conf +++ b/meta-networking/conf/layer.conf @@ -14,7 +14,7 @@ BBFILE_PRIORITY_networking-layer = "5" LAYERVERSION_networking-layer = "1" LAYERDEPENDS_networking-layer = "core" -LAYERDEPENDS_networking-layer = "openembedded-layer" -LAYERDEPENDS_networking-layer = "meta-python" +LAYERDEPENDS_networking-layer += "openembedded-layer" +LAYERDEPENDS_networking-layer += "meta-python" LICENSE_PATH += "${LAYERDIR}/licenses" diff --git a/meta-networking/licenses/copyleft-next-0.3.0 b/meta-networking/licenses/copyleft-next-0.3.0 new file mode 100644 index 0000000000..a66d5bf5ee --- /dev/null +++ b/meta-networking/licenses/copyleft-next-0.3.0 @@ -0,0 +1,219 @@ + copyleft-next 0.3.0 ("this License") + Release date: 2013-05-16 + +1. License Grants; No Trademark License + + Subject to the terms of this License, I grant You: + + a) A non-exclusive, worldwide, perpetual, royalty-free, irrevocable + copyright license, to reproduce, Distribute, prepare derivative works + of, publicly perform and publicly display My Work. + + b) A non-exclusive, worldwide, perpetual, royalty-free, irrevocable + patent license under Licensed Patents to make, have made, use, sell, + offer for sale, and import Covered Works. + + This License does not grant any rights in My name, trademarks, service + marks, or logos. + +2. Distribution: General Conditions + + You may Distribute Covered Works, provided that You (i) inform + recipients how they can obtain a copy of this License; (ii) satisfy the + applicable conditions of sections 3 through 6; and (iii) preserve all + Legal Notices contained in My Work (to the extent they remain + pertinent). "Legal Notices" means copyright notices, license notices, + license texts, and author attributions, but does not include logos, + other graphical images, trademarks or trademark legends. + +3. Conditions for Distributing Derived Works; Outbound GPL Compatibility + + If You Distribute a Derived Work, You must license the entire Derived + Work as a whole under this License, with prominent notice of such + licensing. This condition may not be avoided through such means as + separate Distribution of portions of the Derived Work. You may + additionally license the Derived Work under the GPL, so that the + recipient may further Distribute the Derived Work under either this + License or the GPL. + +4. Condition Against Further Restrictions; Inbound License Compatibility + + When Distributing a Covered Work, You may not impose further + restrictions on the exercise of rights in the Covered Work granted under + this License. This condition is not excused merely because such + restrictions result from Your compliance with conditions or obligations + extrinsic to this License (such as a court order or an agreement with a + third party). + + However, You may Distribute a Covered Work incorporating material + governed by a license that is both OSI-Approved and FSF-Free as of the + release date of this License, provided that Your Distribution complies + with such other license. + +5. Conditions for Distributing Object Code + + You may Distribute an Object Code form of a Covered Work, provided that + you accompany the Object Code with a URL through which the Corresponding + Source is made available, at no charge, by some standard or customary + means of providing network access to source code. + + If you Distribute the Object Code in a physical product or tangible + storage medium ("Product"), the Corresponding Source must be available + through such URL for two years from the date of Your most recent + Distribution of the Object Code in the Product. However, if the Product + itself contains or is accompanied by the Corresponding Source (made + available in a customarily accessible manner), You need not also comply + with the first paragraph of this section. + + Each recipient of the Covered Work from You is an intended third-party + beneficiary of this License solely as to this section 5, with the right + to enforce its terms. + +6. Symmetrical Licensing Condition for Upstream Contributions + + If You Distribute a work to Me specifically for inclusion in or + modification of a Covered Work (a "Patch"), and no explicit licensing + terms apply to the Patch, You license the Patch under this License, to + the extent of Your copyright in the Patch. This condition does not + negate the other conditions of this License, if applicable to the Patch. + +7. Nullification of Copyleft/Proprietary Dual Licensing + + If I offer to license, for a fee, a Covered Work under terms other than + a license that is OSI-Approved or FSF-Free as of the release date of this + License or a numbered version of copyleft-next released by the + Copyleft-Next Project, then the license I grant You under section 1 is no + longer subject to the conditions in sections 2 through 5. + +8. Copyleft Sunset + + The conditions in sections 2 through 5 no longer apply once fifteen + years have elapsed from the date of My first Distribution of My Work + under this License. + +9. Pass-Through + + When You Distribute a Covered Work, the recipient automatically receives + a license to My Work from Me, subject to the terms of this License. + +10. Termination + + Your license grants under section 1 are automatically terminated if You + + a) fail to comply with the conditions of this License, unless You cure + such noncompliance within thirty days after becoming aware of it, or + + b) initiate a patent infringement litigation claim (excluding + declaratory judgment actions, counterclaims, and cross-claims) + alleging that any part of My Work directly or indirectly infringes + any patent. + + Termination of Your license grants extends to all copies of Covered + Works You subsequently obtain. Termination does not terminate the + rights of those who have received copies or rights from You subject to + this License. + + To the extent permission to make copies of a Covered Work is necessary + merely for running it, such permission is not terminable. + +11. Later License Versions + + The Copyleft-Next Project may release new versions of copyleft-next, + designated by a distinguishing version number ("Later Versions"). + Unless I explicitly remove the option of Distributing Covered Works + under Later Versions, You may Distribute Covered Works under any Later + Version. + +** 12. No Warranty ** +** ** +** My Work is provided "as-is", without warranty. You bear the risk ** +** of using it. To the extent permitted by applicable law, each ** +** Distributor of My Work excludes the implied warranties of title, ** +** merchantability, fitness for a particular purpose and ** +** non-infringement. ** + +** 13. Limitation of Liability ** +** ** +** To the extent permitted by applicable law, in no event will any ** +** Distributor of My Work be liable to You for any damages ** +** whatsoever, whether direct, indirect, special, incidental, or ** +** consequential damages, whether arising under contract, tort ** +** (including negligence), or otherwise, even where the Distributor ** +** knew or should have known about the possibility of such damages. ** + +14. Severability + + The invalidity or unenforceability of any provision of this License + does not affect the validity or enforceability of the remainder of + this License. Such provision is to be reformed to the minimum extent + necessary to make it valid and enforceable. + +15. Definitions + + "Copyleft-Next Project" means the project that maintains the source + code repository at <https://gitorious.org/copyleft-next/> as of the + release date of this License. + + "Corresponding Source" of a Covered Work in Object Code form means (i) + the Source Code form of the Covered Work; (ii) all scripts, + instructions and similar information that are reasonably necessary for + a skilled developer to generate such Object Code from the Source Code + provided under (i); and (iii) a list clearly identifying all Separate + Works (other than those provided in compliance with (ii)) that were + specifically used in building and (if applicable) installing the + Covered Work (for example, a specified proprietary compiler including + its version number). Corresponding Source must be machine-readable. + + "Covered Work" means My Work or a Derived Work. + + "Derived Work" means a work of authorship that copies from, modifies, + adapts, is based on, is a derivative work of, transforms, translates or + contains all or part of My Work, such that copyright permission is + required. The following are not Derived Works: (i) Mere Aggregation; + (ii) a mere reproduction of My Work; and (iii) if My Work fails to + explicitly state an expectation otherwise, a work that merely makes + reference to My Work. + + "Distribute" means to distribute, transfer or make a copy available to + someone else, such that copyright permission is required. + + "Distributor" means Me and anyone else who Distributes a Covered Work. + + "FSF-Free" means classified as 'free' by the Free Software Foundation. + + "GPL" means a version of the GNU General Public License or the GNU + Affero General Public License. + + "I"/"Me"/"My" refers to the individual or legal entity that places My + Work under this License. "You"/"Your" refers to the individual or legal + entity exercising rights in My Work under this License. A legal entity + includes each entity that controls, is controlled by, or is under + common control with such legal entity. "Control" means (a) the power to + direct the actions of such legal entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent of the + outstanding shares or beneficial ownership of such legal entity. + + "Licensed Patents" means all patent claims licensable royalty-free by + Me, now or in the future, that are necessarily infringed by making, + using, or selling My Work, and excludes claims that would be infringed + only as a consequence of further modification of My Work. + + "Mere Aggregation" means an aggregation of a Covered Work with a + Separate Work. + + "My Work" means the particular work of authorship I license to You + under this License. + + "Object Code" means any form of a work that is not Source Code. + + "OSI-Approved" means approved as 'Open Source' by the Open Source + Initiative. + + "Separate Work" means a work that is separate from and independent of a + particular Covered Work and is not by its nature an extension or + enhancement of the Covered Work, and/or a runtime library, standard + library or similar component that is used to generate an Object Code + form of a Covered Work. + + "Source Code" means the preferred form of a work for making + modifications to it. diff --git a/meta-networking/licenses/radvd b/meta-networking/licenses/radvd new file mode 100644 index 0000000000..03db0b6ce0 --- /dev/null +++ b/meta-networking/licenses/radvd @@ -0,0 +1,37 @@ +The author(s) grant permission for redistribution and use in source and +binary forms, with or without modification, of the software and documentation +provided that the following conditions are met: + +0. If you receive a version of the software that is specifically labelled + as not being for redistribution (check the version message and/or README), + you are not permitted to redistribute that version of the software in any + way or form. +1. All terms of all other applicable copyrights and licenses must be + followed. +2. Redistributions of source code must retain the authors' copyright + notice(s), this list of conditions, and the following disclaimer. +3. Redistributions in binary form must reproduce the authors' copyright + notice(s), this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. +4. All advertising materials mentioning features or use of this software + must display the following acknowledgement with the name(s) of the + authors as specified in the copyright notice(s) substituted where + indicated: + + This product includes software developed by the authors which are + mentioned at the start of the source files and other contributors. + +5. Neither the name(s) of the author(s) nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Add-DESTDIR-support-in-install-libreg-rules-in-.patch b/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Add-DESTDIR-support-in-install-libreg-rules-in-.patch new file mode 100644 index 0000000000..36464004dc --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Add-DESTDIR-support-in-install-libreg-rules-in-.patch @@ -0,0 +1,35 @@ +From: "John W. Linville" <linville@tuxdriver.com> +Date: Fri, 14 Feb 2014 13:58:44 -0500 +Subject: [PATCH] crda: Add DESTDIR support in install-libreg* rules in Makefile +Origin: https://git.kernel.org/?p=linux/kernel/git/mcgrof/crda.git/commit?id=2cabb2588da56735369131b709f191453c080be0 + +Upstream-Status: Backport + +Signed-off-by: John W. Linville <linville@tuxdriver.com> +Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> +--- + Makefile | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index 0b2f0d7..1f25509 100644 +--- a/Makefile ++++ b/Makefile +@@ -120,13 +120,13 @@ $(LIBREG): regdb.h reglib.h reglib.c + + install-libreg-headers: + $(NQ) ' INSTALL libreg-headers' +- $(Q)mkdir -p $(INCLUDE_DIR) +- $(Q)cp *.h $(INCLUDE_DIR)/ ++ $(Q)mkdir -p $(DESTDIR)/$(INCLUDE_DIR) ++ $(Q)cp *.h $(DESTDIR)/$(INCLUDE_DIR)/ + + install-libreg: + $(NQ) ' INSTALL libreg' +- $(Q)mkdir -p $(LIBDIR) +- $(Q)cp $(LIBREG) $(LIBDIR)/ ++ $(Q)mkdir -p $(DESTDIR)/$(LIBDIR) ++ $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/ + $(Q)ldconfig + + %.o: %.c regdb.h $(LIBREG) diff --git a/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Fix-the-linking-order-to-avoid-compilation-erro.patch b/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Fix-the-linking-order-to-avoid-compilation-erro.patch new file mode 100644 index 0000000000..68b4b13e90 --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda-3.13/crda-Fix-the-linking-order-to-avoid-compilation-erro.patch @@ -0,0 +1,51 @@ +From: Krishna Chaitanya <chaitanya.mgit@gmail.com> +Date: Mon, 16 Dec 2013 21:57:39 +0530 +Subject: [PATCH] crda: Fix the linking order to avoid compilation error +Origin: https://git.kernel.org/?p=linux/kernel/git/mcgrof/crda.git/commit?id=fefefdb2c52c8fbedbb339b4badb8226cad7e7e0 + +While linking the crda.o and libreg.so, first put crda.o +and then -lreg. This fixed the below error: + + GEN keys-gcrypt.c + Trusted pubkeys: pubkeys/linville.key.pub.pem + CC libreg.so + CC crda.o + LD crda +crda.o: In function `main': +crda/crda.c:196: undefined reference to `reglib_get_rd_alpha2' +collect2: ld returned 1 exit status +make: *** [crda] Error 1 + +Note: This still doesn't fix the below error (will send another mail) + + CHK /usr/lib/crda/regulatory.bin +Database signature verification failed. +Invalid or empty regulatory file, note: a binary regulatory file should be used. +make: *** [verify] Error 234 + +Upstream-Status: Backport + +Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> +Signed-off-by: Chaitanya T K <chaitanya.mgit@gmail.com> +--- + Makefile | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 4a351c6..0b2f0d7 100644 +--- a/Makefile ++++ b/Makefile +@@ -28,10 +28,11 @@ RUNTIME_PUBKEY_DIR?=/etc/wireless-regdb/pubkeys + CFLAGS += -O2 -fpic + CFLAGS += -std=gnu99 -Wall -Werror -pedantic + CFLAGS += -Wall -g +-LDLIBS += -lm + LDLIBREG += -lreg ++LDLIBS += $(LDLIBREG) ++LDLIBS += -lm + LIBREG += libreg.so +-LDFLAGS += -L ./ $(LDLIBREG) ++LDFLAGS += -L ./ + + all: all_noverify verify + diff --git a/meta-networking/recipes-connectivity/crda/crda-3.13/do-not-run-ldconfig-if-destdir-is-set.patch b/meta-networking/recipes-connectivity/crda/crda-3.13/do-not-run-ldconfig-if-destdir-is-set.patch new file mode 100644 index 0000000000..3ef35ee549 --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda-3.13/do-not-run-ldconfig-if-destdir-is-set.patch @@ -0,0 +1,21 @@ +From: Ben Hutchings <ben@decadent.org.uk> +Date: Sat, 23 Aug 2014 12:27:34 -0700 +Subject: crda: Do not run ldconfig if DESTDIR is set + +Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126028.html] + +Signed-off-by: Ben Hutchings <ben@decadent.org.uk> +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> + +--- a/Makefile ++++ b/Makefile +@@ -132,7 +132,9 @@ install-libreg: + $(NQ) ' INSTALL libreg' + $(Q)mkdir -p $(DESTDIR)/$(LIBDIR) + $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/ ++ifndef DESTDIR + $(Q)ldconfig ++endif + + %.o: %.c regdb.h $(LIBREG) + $(NQ) ' CC ' $@ diff --git a/meta-networking/recipes-connectivity/crda/crda-3.13/fix-linking-of-libraries-used-by-reglib.patch b/meta-networking/recipes-connectivity/crda/crda-3.13/fix-linking-of-libraries-used-by-reglib.patch new file mode 100644 index 0000000000..aceb56df74 --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda-3.13/fix-linking-of-libraries-used-by-reglib.patch @@ -0,0 +1,50 @@ +From: Ben Hutchings <ben@decadent.org.uk> +Date: Sat, 23 Aug 2014 12:26:37 -0700 +Subject: Fix linking of libraries used by libreg + +The math and crypto libraries are called by and need to be linked to +libreg.so, not to the executables. + +Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126027.html] + +Signed-off-by: Ben Hutchings <ben@decadent.org.uk> +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> + +--- a/Makefile ++++ b/Makefile +@@ -30,7 +30,7 @@ CFLAGS += -std=gnu99 -Wall -Werror -peda + CFLAGS += -Wall -g + LDLIBREG += -lreg + LDLIBS += $(LDLIBREG) +-LDLIBS += -lm ++LIBREGLDLIBS += -lm + LIBREG += libreg.so + LDFLAGS += -L ./ + +@@ -40,7 +40,7 @@ all_noverify: $(LIBREG) crda intersect r + + ifeq ($(USE_OPENSSL),1) + CFLAGS += -DUSE_OPENSSL -DPUBKEY_DIR=\"$(RUNTIME_PUBKEY_DIR)\" `pkg-config --cflags openssl` +-LDLIBS += `pkg-config --libs openssl` ++LIBREGLDLIBS += `pkg-config --libs openssl` + + ifeq ($(RUNTIME_PUBKEY_ONLY),1) + CFLAGS += -DRUNTIME_PUBKEY_ONLY +@@ -51,7 +51,7 @@ endif + + else + CFLAGS += -DUSE_GCRYPT +-LDLIBS += -lgcrypt ++LIBREGLDLIBS += -lgcrypt + + $(LIBREG): keys-gcrypt.c + +@@ -121,7 +121,7 @@ keys-%.c: utils/key2pub.py $(wildcard $( + + $(LIBREG): regdb.h reglib.h reglib.c + $(NQ) ' CC ' $@ +- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ ++ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LIBREGLDLIBS) + + install-libreg-headers: + $(NQ) ' INSTALL libreg-headers' diff --git a/meta-networking/recipes-connectivity/crda/crda_1.1.3.bb b/meta-networking/recipes-connectivity/crda/crda_1.1.3.bb deleted file mode 100644 index 0bb899860b..0000000000 --- a/meta-networking/recipes-connectivity/crda/crda_1.1.3.bb +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY = "Wireless Central Regulatory Domain Agent" -HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" - -LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" - - -DEPENDS = "python-m2crypto-native python-native libgcrypt libnl" - -SRC_URI = "http://wireless.kernel.org/download/crda/${BP}.tar.bz2;name=crda \ - http://wireless.kernel.org/download/wireless-regdb/regulatory.bins/2013.01.11-regulatory.bin;name=bin \ -" -SRC_URI[crda.md5sum] = "29579185e06a75675507527243d28e5c" -SRC_URI[crda.sha256sum] = "aa8a7fe92f0765986c421a5b6768a185375ac210393df0605ee132f6754825f0" -SRC_URI[bin.md5sum] = "e0c8a5ca63fb8bf803213f9a0c90b50b" -SRC_URI[bin.sha256sum] = "b1ee0b20c123c612dfdb6851ab42c01666f66fb583e0e590942f19bb54cf84be" - -inherit python-dir pythonnative -# Recursive make problem -EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D}" - -do_compile() { - oe_runmake all_noverify -} - -do_install() { - oe_runmake SBINDIR=${sbindir}/ install - - install -d ${D}${libdir}/crda/ - - install -m 0644 ${WORKDIR}/2013.01.11-regulatory.bin ${D}${libdir}/crda/regulatory.bin -} - - -RDEPENDS_${PN} = "udev" -FILES_${PN} += "${libdir}crda/regulatory.bin \ - ${base_libdir}/udev/rules.d/85-regulatory.rules \ -" diff --git a/meta-networking/recipes-connectivity/crda/crda_3.13.bb b/meta-networking/recipes-connectivity/crda/crda_3.13.bb new file mode 100644 index 0000000000..2ccced42e6 --- /dev/null +++ b/meta-networking/recipes-connectivity/crda/crda_3.13.bb @@ -0,0 +1,43 @@ +SUMMARY = "Wireless Central Regulatory Domain Agent" +HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" + +LICENSE = "copyleft-next-0.3.0 & ISC" +LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe \ + file://${WORKDIR}/wireless-regdb-2014.11.18/LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" + +DEPENDS = "python-m2crypto-native python-native" + +SRC_URI = "https://www.kernel.org/pub/software/network/crda/${BP}.tar.xz;name=crda \ + https://www.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2014.11.18.tar.xz;name=bin \ + file://crda-Fix-the-linking-order-to-avoid-compilation-erro.patch \ + file://crda-Add-DESTDIR-support-in-install-libreg-rules-in-.patch \ + file://do-not-run-ldconfig-if-destdir-is-set.patch \ + file://fix-linking-of-libraries-used-by-reglib.patch \ +" +SRC_URI[crda.md5sum] = "66b1b0417c1ad19f0009a5c0c0c1aebc" +SRC_URI[crda.sha256sum] = "2f85da7ab0170b140d6ed62596c8f268d4a7dedecf84cac7182ada979742ff59" + +SRC_URI[bin.md5sum] = "d750c402c5510add7380edcb1d9b75b2" +SRC_URI[bin.sha256sum] = "eab6b50f30748a8b0065ba38cf3df05aac161a5861ae0a6c3cfd01d38a71c9dd" + +inherit python-dir pythonnative +# Recursive make problem +EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg'" + +do_compile() { + oe_runmake all_noverify +} + +do_install() { + oe_runmake SBINDIR=${sbindir}/ install + + install -d ${D}${libdir}/crda/ + + install -m 0644 ${WORKDIR}/wireless-regdb-2014.11.18/regulatory.bin ${D}${libdir}/crda/regulatory.bin +} + + +RDEPENDS_${PN} = "udev libgcrypt libnl" +FILES_${PN} += "${libdir}crda/regulatory.bin \ + ${base_libdir}/udev/rules.d/85-regulatory.rules \ +" diff --git a/meta-networking/recipes-connectivity/cyassl/cyassl_3.1.0.bb b/meta-networking/recipes-connectivity/cyassl/cyassl_3.3.0.bb index e3edab6f1d..b6f852dc2a 100644 --- a/meta-networking/recipes-connectivity/cyassl/cyassl_3.1.0.bb +++ b/meta-networking/recipes-connectivity/cyassl/cyassl_3.3.0.bb @@ -1,4 +1,4 @@ -SUMMARY = "CyaSSL Embedded SSL Library" +SUMMARY = "CyaSSL Lightweight, Embedded SSL Library" DESCRIPTION = "CyaSSL is a lightweight SSL library written in C and \ optimized for embedded and RTOS environments. It can be \ Up to 20 times smaller than OpenSSL while still supporting \ @@ -11,7 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" SRC_URI = "http://www.yassl.com/${BP}.zip" -SRC_URI[md5sum] = "72477eb50697e759d309c49cb1aef18a" -SRC_URI[sha256sum] = "85a79009d2a7468910dfb1e4b975e0b00a42c695f4f1a2adc16d2507b5d0b03e" +SRC_URI[md5sum] = "0303eb0f2f9065a1207d9104ab0eba7c" +SRC_URI[sha256sum] = "e51583ea1e4d64537553922d67a96360312811dffef58d4c05506aa98a296fe3" inherit autotools + diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.2.bb b/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.2.bb index 2bae3ee8f5..e46133efb2 100644 --- a/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.2.bb +++ b/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.2.bb @@ -23,7 +23,7 @@ SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \ SRC_URI[md5sum] = "aa1a9a132259db83e66c1f3265065ba2" SRC_URI[sha256sum] = "0423ea40a160cd4630f817e247df5c08ecc625378d2bb56a0509117a36a89913" -inherit autotools gettext update-alternatives +inherit autotools gettext update-alternatives texinfo SRC_URI += "${@base_contains('DISTRO_FEATURES', 'ipv6', '', 'file://fix-disable-ipv6.patch', d)}" noipv6="${@base_contains('DISTRO_FEATURES', 'ipv6', '', '--disable-ipv6 gl_cv_socket_ipv6=no', d)}" diff --git a/meta-networking/recipes-connectivity/polarssl/polarssl_1.3.8.bb b/meta-networking/recipes-connectivity/polarssl/polarssl_1.3.8.bb new file mode 100644 index 0000000000..8adc0b1b30 --- /dev/null +++ b/meta-networking/recipes-connectivity/polarssl/polarssl_1.3.8.bb @@ -0,0 +1,35 @@ +SUMMARY = "Lightweight crypto and SSL/TLS library" +DESCRIPTION = "PolarSSL is a lean open source crypto library \ +for providing SSL and TLS support in your programs. It offers \ +an intuitive API and documented header files, so you can actually \ +understand what the code does. It features: \ + \ + - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \ + Camellia and XTEA \ + - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \ + - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \ + - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \ + ECDSA and ECDH \ + - SSL v3 and TLS 1.0, 1.1 and 1.2 \ + - Abstraction layers for ciphers, hashes, public key operations, \ + platform abstraction and threading \ +" + +HOMEPAGE = "https://polarssl.org" +BUGTRACKER = "https://github.com/polarssl/polarssl/issues" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" + +SECTION = "net" + +SRC_URI = "https://polarssl.org/download/polarssl-${PV}-gpl.tgz" + +SRC_URI[md5sum] = "d1a2b4f21727e888f143414d2e3144e6" +SRC_URI[sha256sum] = "318171db41335cacbb5b0047c94f1faf91442ab70a223b5223436703c9406ff1" + +DEPENDS = "openssl" +RDEPENDS_${PN} += "libcrypto" +EXTRA_OECMAKE = "-DUSE_SHARED_POLARSSL_LIBRARY=on -DLIB_INSTALL_DIR=${baselib}" + +inherit cmake diff --git a/meta-networking/recipes-connectivity/sethdlc/files/sethdlc-fix-host-contamination.patch b/meta-networking/recipes-connectivity/sethdlc/files/sethdlc-fix-host-contamination.patch new file mode 100644 index 0000000000..f25a02cd88 --- /dev/null +++ b/meta-networking/recipes-connectivity/sethdlc/files/sethdlc-fix-host-contamination.patch @@ -0,0 +1,42 @@ +From 9a9137c3df5309ac359737d6ebd67fb4ff5f3cf2 Mon Sep 17 00:00:00 2001 +From: Wenzong Fan <wenzong.fan@windriver.com> +Date: Mon, 24 Nov 2014 22:05:18 -0500 +Subject: [PATCH] sethdlc: fix host contamination + +Clean INCLUDES to fix the host contamination errors: + + In file included from /usr/src/linux/include/linux/posix_types.h:47:0, + from /usr/src/linux/include/linux/types.h:17, + from /usr/src/linux/include/linux/if.h:22, + from sethdlc.c:23: + /usr/src/linux/include/asm-generic/posix_types.h:91:3: \ + error: conflicting types for '__kernel_fsid_t' + } __kernel_fsid_t; + ^ + .../tmp/sysroots/qemumips/usr/include/asm/posix_types.h:26:3: \ + note: previous declaration of '__kernel_fsid_t' was here + } __kernel_fsid_t; + ^ + +Upstream-Status: Pending + +Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 0492f2b..97dec22 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,6 @@ + CC = gcc + CFLAGS = -O2 -Wall -W -Wno-long-long -pipe +-INCLUDES = -I/usr/src/linux/include -I/usr/src/linux-2.6/include ++INCLUDES = + + all: sethdlc + +-- +1.7.9.5 + diff --git a/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb b/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb index cf74827558..5e8d9d9bf9 100644 --- a/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb +++ b/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb @@ -1,10 +1,11 @@ DESCRIPTION = "set Linux HDLC packet radio modem driver port information" HOMEPAGE = "https://www.kernel.org/pub/linux/utils/net/hdlc" LICENSE = "GPLv2 & GPLv2+ " -LIC_FILES_CHKSUM = "file://Makefile;md5=19aada31930b2be84bf7138420d77263" +LIC_FILES_CHKSUM = "file://sethdlc.c;endline=10;md5=90f936879e9f8b755a138aeb348782eb" SRC_URI = "https://www.kernel.org/pub/linux/utils/net/hdlc/${BPN}-1.18.tar.gz \ + file://sethdlc-fix-host-contamination.patch \ " SRC_URI[md5sum] = "9016878156a5eadb06c0bae71cc5c9ab" SRC_URI[sha256sum] = "21b1e2e1cb0e288b0ec8fcfd9fed449914e0f8e6fc273706bd5b3d4f6ab6b04e" diff --git a/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb b/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb index 8f5175e797..17d6792520 100644 --- a/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb +++ b/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb @@ -5,6 +5,19 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5" DEPENDS = "libpcap libpcre daq libdnet util-linux" +# Blacklist: +# +# http://errors.yoctoproject.org/Errors/Details/8936/ +# +# snort failure is again very nasty, because it's m4 which eats all +# available memory and swap before it's killed by OOM killer. +# +# Luckily it always picked m4 +# +# [Wed Feb 18 19:00:51 2015] Out of memory: Kill process 28522 (m4) score 961 or sacrifice child +# [Wed Feb 18 19:10:51 2015] Out of memory: Kill process 45228 (m4) score 958 or sacrifice child +# ... +PNBLACKLIST[snort] ?= "BROKEN: autotools processing causes OOM condition on configure" SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \ file://snort.init \ diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch b/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch new file mode 100644 index 0000000000..a1e56b7cac --- /dev/null +++ b/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch @@ -0,0 +1,25 @@ +Author: Jamie Strandboge <jamie@canonical.com> +Description: to improve boot speed when disabled, don't source all of + ufw-init-functions (which also sources in other files). + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> + +Index: ufw-0.31/src/ufw-init +=================================================================== +--- ufw-0.31.orig/src/ufw-init 2012-03-09 17:07:11.000000000 -0600 ++++ ufw-0.31/src/ufw-init 2012-03-17 09:37:51.000000000 -0500 +@@ -18,6 +18,12 @@ + # + set -e + ++# Debian/Ubuntu: small boot speed improvement ++. "#CONFIG_PREFIX#/ufw/ufw.conf" ++if [ "$1" = "start" ] && [ "$2" = "quiet" ] && [ "$ENABLED" = "no" ]; then ++ exit 0 ++fi ++ + if [ -s "#STATE_PREFIX#/ufw-init-functions" ]; then + . "#STATE_PREFIX#/ufw-init-functions" + else diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch b/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch new file mode 100644 index 0000000000..804c18bc9e --- /dev/null +++ b/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch @@ -0,0 +1,118 @@ +Origin: r795, r796 +Description: move netfilter capabilities checking into initcaps(), and call + initcaps() only when we need it. +Bug-Ubuntu: https://launchpad.net/bugs/1044361 + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> + +Index: ufw-0.33/src/backend_iptables.py +=================================================================== +--- ufw-0.33.orig/src/backend_iptables.py 2012-09-23 09:58:34.000000000 -0500 ++++ ufw-0.33/src/backend_iptables.py 2012-09-23 09:58:36.000000000 -0500 +@@ -160,6 +160,9 @@ + out += "> " + _("Checking raw ip6tables\n") + return out + ++ # Initialize the capabilities database ++ self.initcaps() ++ + args = ['-n', '-v', '-x', '-L'] + items = [] + items6 = [] +@@ -470,6 +473,9 @@ + if self.dryrun: + return False + ++ # Initialize the capabilities database ++ self.initcaps() ++ + prefix = "ufw" + exe = self.iptables + if v6: +@@ -684,6 +690,9 @@ + except Exception: + raise + ++ # Initialize the capabilities database ++ self.initcaps() ++ + chain_prefix = "ufw" + rules = self.rules + if v6: +@@ -830,6 +839,10 @@ + * updating user rules file + * reloading the user rules file if rule is modified + ''' ++ ++ # Initialize the capabilities database ++ self.initcaps() ++ + rstr = "" + + if rule.v6: +@@ -1073,6 +1086,9 @@ + if self.dryrun: + return + ++ # Initialize the capabilities database ++ self.initcaps() ++ + rules_t = [] + try: + rules_t = self._get_logging_rules(level) +Index: ufw-0.33/src/backend.py +=================================================================== +--- ufw-0.33.orig/src/backend.py 2012-09-23 09:58:34.000000000 -0500 ++++ ufw-0.33/src/backend.py 2012-09-23 09:59:03.000000000 -0500 +@@ -21,7 +21,7 @@ + import stat + import sys + import ufw.util +-from ufw.util import warn, debug ++from ufw.util import error, warn, debug + from ufw.common import UFWError, config_dir, iptables_dir, UFWRule + import ufw.applications + +@@ -68,6 +68,17 @@ + err_msg = _("Couldn't determine iptables version") + raise UFWError(err_msg) + ++ # Initialize via initcaps only when we need it (LP: #1044361) ++ self.caps = None ++ ++ def initcaps(self): ++ '''Initialize the capabilities database. This needs to be called ++ before accessing the database.''' ++ ++ # Only initialize if not initialized already ++ if self.caps != None: ++ return ++ + self.caps = {} + self.caps['limit'] = {} + +@@ -78,14 +89,20 @@ + # Try to get capabilities from the running system if root + if self.do_checks and os.getuid() == 0 and not self.dryrun: + # v4 +- nf_caps = ufw.util.get_netfilter_capabilities(self.iptables) ++ try: ++ nf_caps = ufw.util.get_netfilter_capabilities(self.iptables) ++ except OSError as e: ++ error("initcaps\n%s" % e) + if 'recent-set' in nf_caps and 'recent-update' in nf_caps: + self.caps['limit']['4'] = True + else: + self.caps['limit']['4'] = False + + # v6 +- nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables) ++ try: ++ nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables) ++ except OSError as e: ++ error("initcaps\n%s" % e) + if 'recent-set' in nf_caps and 'recent-update' in nf_caps: + self.caps['limit']['6'] = True + else: diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch b/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch new file mode 100644 index 0000000000..b259fdf781 --- /dev/null +++ b/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch @@ -0,0 +1,20 @@ +Origin: r797 +Description: src/backend_iptables.py: fix misplaced parenthesis + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> + +Index: ufw-0.33/src/backend_iptables.py +=================================================================== +--- ufw-0.33.orig/src/backend_iptables.py 2012-09-24 08:51:13.000000000 -0500 ++++ ufw-0.33/src/backend_iptables.py 2012-09-24 08:52:00.000000000 -0500 +@@ -1075,7 +1075,7 @@ + exe = self.ip6tables + (rc, out) = cmd([exe] + args) + if rc != 0: +- err_msg = _("Could not perform '%s'") % (args) ++ err_msg = _("Could not perform '%s'" % (args)) + if fail_ok: + debug("FAILOK: " + err_msg) + else: diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch b/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch new file mode 100644 index 0000000000..695b265671 --- /dev/null +++ b/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch @@ -0,0 +1,40 @@ +Origin: r803, r804 +Description: Don't call get_netfilter_capabilities() with ipv6 if ipv6 is + disabled. +Bug-Ubuntu: https://launchpad.net/ufw/bugs/1039729 + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> + +Index: ufw-0.33/src/backend.py +=================================================================== +--- ufw-0.33.orig/src/backend.py 2012-12-04 09:21:57.000000000 -0600 ++++ ufw-0.33/src/backend.py 2012-12-04 09:22:40.000000000 -0600 +@@ -98,15 +98,17 @@ + else: + self.caps['limit']['4'] = False + +- # v6 +- try: +- nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables) +- except OSError as e: +- error("initcaps\n%s" % e) +- if 'recent-set' in nf_caps and 'recent-update' in nf_caps: +- self.caps['limit']['6'] = True +- else: +- self.caps['limit']['6'] = False ++ # v6 (skip capabilities check for ipv6 if ipv6 is disabled in ufw ++ # because the system may not have ipv6 support (LP: #1039729) ++ if self.use_ipv6(): ++ try: ++ nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables) ++ except OSError as e: ++ error("initcaps\n%s" % e) ++ if 'recent-set' in nf_caps and 'recent-update' in nf_caps: ++ self.caps['limit']['6'] = True ++ else: ++ self.caps['limit']['6'] = False + + def is_enabled(self): + '''Is firewall configured as enabled''' diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch b/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch new file mode 100644 index 0000000000..b760d3fd33 --- /dev/null +++ b/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch @@ -0,0 +1,32 @@ +Origin: r816 +Description: add check for -m rt --rt-type 0 +Bug-Ubuntu: https://launchpad.net/bugs/1191197 +Forwarded: yes + +Upstream-Status: Inappropriate [ not author ] + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> + +Index: ufw-0.33/tests/check-requirements +=================================================================== +--- ufw-0.33.orig/tests/check-requirements 2012-08-17 16:12:49.000000000 -0500 ++++ ufw-0.33/tests/check-requirements 2013-06-15 07:47:00.000000000 -0500 +@@ -3,7 +3,7 @@ + # check-requirements: verify all the required iptables functionality is + # available + # +-# Copyright 2008-2012 Canonical Ltd. ++# Copyright 2008-2013 Canonical Ltd. + # + # This program is free software: you can redistribute it and/or modify + # it under the terms of the GNU General Public License version 3, +@@ -218,6 +218,9 @@ + echo -n "icmpv6 with hl ($j): " + runcmd $exe -A $c -p icmpv6 --icmpv6-type $j -m hl --hl-eq 255 -j ACCEPT + done ++ ++ echo -n "ipv6 rt: " ++ runcmd $exe -A $c -m rt --rt-type 0 -j ACCEPT + fi + + echo "" diff --git a/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch b/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch new file mode 100644 index 0000000000..5117423387 --- /dev/null +++ b/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch @@ -0,0 +1,107 @@ +From c54d36d0582a60fd281cd9287077cea205fd849d Mon Sep 17 00:00:00 2001 +From: Joe MacDonald <joe_macdonald@mentor.com> +Date: Thu, 27 Nov 2014 15:20:34 -0500 +Subject: [PATCH] setup: add an option to specify iptables location + +When cross-compiling it isn't certain that the location of iptables on the +target will be the same as on the host. It also doesn't make sense the +test the version of the host during setup. We provide an option to +specify an alternate iptables directory. This is assumed to be a +cross-compile environment and therefore no attempt is made to verify the +version of iptables to be used. + +Upstream-Status: Pending + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> +--- + setup.py | 69 ++++++++++++++++++++++++++++++++++++---------------------------- + 1 file changed, 39 insertions(+), 30 deletions(-) + +diff --git a/setup.py b/setup.py +index 6fb3751..b13d11c 100644 +--- a/setup.py ++++ b/setup.py +@@ -225,41 +225,50 @@ shutil.copytree('src', 'staging') + os.unlink(os.path.join('staging', 'ufw-init')) + os.unlink(os.path.join('staging', 'ufw-init-functions')) + ++iptables_set = 0 + iptables_exe = '' + iptables_dir = '' + +-for e in ['iptables']: +- for dir in ['/sbin', '/bin', '/usr/sbin', '/usr/bin', '/usr/local/sbin', \ +- '/usr/local/bin']: +- if e == "iptables": +- if os.path.exists(os.path.join(dir, e)): +- iptables_dir = dir +- iptables_exe = os.path.join(iptables_dir, "iptables") +- print("Found '%s'" % iptables_exe) +- else: +- continue +- +- if iptables_exe != "": +- break +- +- +-if iptables_exe == '': +- print("ERROR: could not find required binary 'iptables'", file=sys.stderr) +- sys.exit(1) +- +-for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']: +- if not os.path.exists(os.path.join(iptables_dir, e)): +- print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr) ++if "--iptables-dir" in sys.argv: ++ iptables_dir = sys.argv[sys.argv.index("--iptables-dir") + 1] ++ iptables_exe = os.path.join(iptables_dir, "iptables") ++ iptables_set = 1 ++ print("INFO: iptables manually set: '%s'" % (iptables_exe)) ++ sys.argv.remove(iptables_dir) ++ sys.argv.remove("--iptables-dir") ++ ++if not iptables_set: ++ for e in ['iptables']: ++ for dir in ['/sbin', '/bin', '/usr/sbin', '/usr/bin', '/usr/local/sbin', \ ++ '/usr/local/bin']: ++ if e == "iptables": ++ if os.path.exists(os.path.join(dir, e)): ++ iptables_dir = dir ++ iptables_exe = os.path.join(iptables_dir, "iptables") ++ print("Found '%s'" % iptables_exe) ++ else: ++ continue ++ ++ if iptables_exe != "": ++ break ++ ++ if iptables_exe == '': ++ print("ERROR: could not find required binary 'iptables'", file=sys.stderr) + sys.exit(1) + +-(rc, out) = cmd([iptables_exe, '-V']) +-if rc != 0: +- raise OSError(errno.ENOENT, "Could not find version for '%s'" % \ +- (iptables_exe)) +-version = re.sub('^v', '', re.split('\s', str(out))[1]) +-print("Found '%s' version '%s'" % (iptables_exe, version)) +-if version < "1.4": +- print("WARN: version '%s' has limited IPv6 support. See README for details." % (version), file=sys.stderr) ++ for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']: ++ if not os.path.exists(os.path.join(iptables_dir, e)): ++ print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr) ++ sys.exit(1) ++ ++ (rc, out) = cmd([iptables_exe, '-V']) ++ if rc != 0: ++ raise OSError(errno.ENOENT, "Could not find version for '%s'" % \ ++ (iptables_exe)) ++ version = re.sub('^v', '', re.split('\s', str(out))[1]) ++ print("Found '%s' version '%s'" % (iptables_exe, version)) ++ if version < "1.4": ++ print("WARN: version '%s' has limited IPv6 support. See README for details." % (version), file=sys.stderr) + + setup (name='ufw', + version=ufw_version, +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch b/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch new file mode 100644 index 0000000000..ff704b5a46 --- /dev/null +++ b/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch @@ -0,0 +1,77 @@ +From be53eea06a5655fdc98f47a73be8277b65bb42ed Mon Sep 17 00:00:00 2001 +From: Joe MacDonald <joe_macdonald@mentor.com> +Date: Tue, 11 Nov 2014 21:41:14 -0500 +Subject: [PATCH] setup: only make one reference to env + +If sys.executable happens to be '/usr/bin/env python' or something +similar, the setup script will result in 'ufw' getting /usr/bin/env +repeated on the top line. This causes an error at runtime. Perform a +quick sanity check on sys.executable before doing the substitution. + +While we're at it, change the default value of 'exe' to the one we either +detected or specified on the build line. + +Upstream-Status: Inappropriate [ embedded specific ] + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> +--- + setup.py | 34 ++++++++++++++++++++++++++++------ + 1 file changed, 28 insertions(+), 6 deletions(-) + +diff --git a/setup.py b/setup.py +index b13d11c..73acdef 100644 +--- a/setup.py ++++ b/setup.py +@@ -64,7 +64,7 @@ class Install(_install, object): + real_sharedir = os.path.join(real_prefix, 'share', 'ufw') + + # Update the modules' paths +- for file in [ 'common.py' ]: ++ for file in [ 'common.py', 'util.py' ]: + print("Updating " + file) + subprocess.call(["sed", + "-i", +@@ -91,6 +91,11 @@ class Install(_install, object): + "s%#SHARE_DIR#%" + real_sharedir + "%g", + os.path.join('staging', file)]) + ++ subprocess.call(["sed", ++ "-i.jjm", ++ "s%/sbin/iptables%" + iptables_exe + "%g", ++ os.path.join('staging', file)]) ++ + # Now byte-compile everything + super(Install, self).run() + +@@ -107,12 +112,23 @@ class Install(_install, object): + for f in [ script, manpage, manpage_f ]: + self.mkpath(os.path.dirname(f)) + ++ # if sys.executable == /usr/bin/env python* the result will be the top ++ # of ufw getting: ++ # ++ # #! /usr/bin/env /usr/bin/env python ++ # ++ # which is not ideal ++ # + # update the interpreter to that of the one the user specified for setup +- print("Updating staging/ufw to use %s" % (sys.executable)) +- subprocess.call(["sed", +- "-i", +- "1s%^#.*python.*%#! /usr/bin/env " + sys.executable + "%g", +- 'staging/ufw']) ++ print("Updating staging/ufw to use (%s)" % (sys.executable)) ++ ++ if re.search("(/usr/bin/env)", sys.executable): ++ print("found 'env' in sys.executable (%s)" % (sys.executable)) ++ subprocess.call(["sed", ++ "-i.jjm", ++ "1s%^#.*python.*%#! " + sys.executable + "%g", ++ 'staging/ufw']) ++ + self.copy_file('staging/ufw', script) + self.copy_file('doc/ufw.8', manpage) + self.copy_file('doc/ufw-framework.8', manpage_f) +-- +1.9.1 + diff --git a/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb b/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb new file mode 100644 index 0000000000..467f2a81fb --- /dev/null +++ b/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb @@ -0,0 +1,45 @@ +SUMMARY = "Uncomplicated Firewall" +DESCRIPTION = "UFW stands for Uncomplicated Firewall, and is program for \ +managing a netfilter firewall. It provides a command line interface and aims \ +to be uncomplicated and easy to use." +HOMEPAGE = "https://launchpad.net/ufw" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" + +SRC_URI = " \ + https://launchpad.net/ufw/0.33/0.33/+download/ufw-0.33.tar.gz \ + file://setup-add-an-option-to-specify-iptables-location.patch \ + file://setup-only-make-one-reference-to-env.patch \ + file://0001-optimize-boot.patch \ + file://0002-lp1044361.patch \ + file://0003-fix-typeerror-on-error.patch \ + file://0004-lp1039729.patch \ + file://0005-lp1191197.patch \ +" +SRC_URI[md5sum] = "3747b453d76709e5a99da209fc0bb5f5" +SRC_URI[sha256sum] = "5f85a8084ad3539b547bec097286948233188c971f498890316dec170bdd1da8" + +inherit setuptools distro_features_check + +RDEPENDS_${PN} = " \ + iptables \ + python \ + python-modules \ + " + +RRECOMMENDS_${PN} = " \ + kernel-module-ipv6 \ +" + +FILES_${PN} += " \ + ${sbindir}/* \ + ${datadir}/ufw/* \ + ${base_libdir}/ufw/* \ + ${sysconfdir}/ufw/* \ + ${sysconfdir}/default/ufw \ +" + +REQUIRED_DISTRO_FEATURES = "ipv6" + +DISTUTILS_BUILD_ARGS_append = " --iptables-dir /usr/sbin" +DISTUTILS_INSTALL_ARGS_append = " --iptables-dir /usr/sbin" diff --git a/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch b/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch new file mode 100644 index 0000000000..b7ab7d97c8 --- /dev/null +++ b/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch @@ -0,0 +1,22 @@ +From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +Subject: vlan: do not include ${HOME}/linux/include dir + +~/linux/include dir may exist and so will be added to include path +in front of sanitized kernel headers in OE chroot. Drop this include +option. + +Upstream-Status: not-applicable + +Index: vlan/MakeInclude +=================================================================== +--- vlan.orig/MakeInclude ++++ vlan/MakeInclude +@@ -16,7 +16,7 @@ ifeq "${PLATFORM}" "" + endif + + ## You may need to change this linux/include part. +-CCFLAGS = -g -D_GNU_SOURCE -Wall -I${HOME}/linux/include ++CCFLAGS = -g -D_GNU_SOURCE -Wall + LDLIBS = # -lm #-lnsl # -lsocket + + ARM_TC_BIN = ${HOME}/Intrinsyc/bin diff --git a/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb b/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb index 2c4f1577e8..d980a47f23 100644 --- a/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb +++ b/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb @@ -2,7 +2,8 @@ SUMMARY = "VLAN provides vconfig utility" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://vconfig.c;md5=293ef69c4e88434d37a5ee577a5288cb" -SRC_URI = "http://${BPN}.sourcearchive.com/downloads/${PV}-3ubuntu9/${BPN}_${PV}.orig.tar.gz" +SRC_URI = "http://${BPN}.sourcearchive.com/downloads/${PV}-3ubuntu9/${BPN}_${PV}.orig.tar.gz \ + file://no-HOME-includes.patch" SRC_URI[md5sum] = "5f0c6060b33956fb16e11a15467dd394" SRC_URI[sha256sum] = "3b8f0a1bf0d3642764e5f646e1f3bbc8b1eeec474a77392d9aeb4868842b4cca" diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb b/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb index 986416ade2..4efc412a04 100644 --- a/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb +++ b/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb @@ -7,9 +7,16 @@ LICENSE = "GPL-2.0+" LIC_FILES_CHKSUM = "file://COPYING;md5=173b74cb8ac640a9992c03f3bce22a33" DEPENDS = "libgcrypt" +inherit perlnative + CFLAGS_append = ' -DVERSION=\\"${PV}\\"' LDFLAGS_append = " -lgcrypt -lgpg-error" +do_configure_append () { + # Make sure we use our nativeperl wrapper + sed -i "1s:#!.*:#!/usr/bin/env nativeperl:" ${S}/*.pl +} + do_install () { sed -i s:m600:m\ 600:g Makefile oe_runmake 'DESTDIR=${D}' 'PREFIX=/usr' install diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf new file mode 100644 index 0000000000..a91a9d3340 --- /dev/null +++ b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf @@ -0,0 +1,11 @@ +# Directory in which to place saslauthd's listening socket, pid file, and so +# on. This directory must already exist. +SOCKETDIR=@LOCALSTATEDIR@/run/saslauthd + +# Mechanism to use when checking passwords. Run "saslauthd -v" to get a list +# of which mechanism your installation was compiled with the ablity to use. +MECH=pam + +# Additional flags to pass to saslauthd on the command line. See saslauthd(8) +# for the list of accepted flags. +FLAGS= diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service new file mode 100644 index 0000000000..96dbae3782 --- /dev/null +++ b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service @@ -0,0 +1,12 @@ +[Unit] +Description=SASL authentication daemon. +After=syslog.target + +[Service] +Type=forking +PIDFile=@LOCALSTATEDIR@/run/saslauthd/saslauthd.pid +EnvironmentFile=@SYSCONFDIR@/default/saslauthd +ExecStart=@SBINDIR@/saslauthd -m $SOCKETDIR -a $MECH $FLAGS + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb index ea9cd1c240..c235a1b954 100644 --- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb +++ b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb @@ -10,15 +10,17 @@ SRC_URI = "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-${PV}.tar.gz \ file://debian_patches_0009_sasldb_al.diff \ file://debian_patches_0014_avoid_pic_overwrite.diff \ file://sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch \ + file://saslauthd.service \ + file://saslauthd.conf \ " -inherit autotools-brokensep pkgconfig useradd +inherit autotools-brokensep pkgconfig useradd systemd EXTRA_OECONF += "--with-dblib=berkeley \ --with-bdb-libdir=${STAGING_LIBDIR} \ --with-bdb-incdir=${STAGING_INCDIR} \ --with-bdb=db-5.3 \ - --with-plugindir="${libdir}/sasl2/" \ + --with-plugindir="${libdir}/sasl2" \ andrew_cv_runpath_switch=none" PACKAGECONFIG ??= "ntlm \ @@ -51,17 +53,42 @@ do_compile_prepend () { cd .. } +do_install_append() { + if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/saslauthd.service ${D}${systemd_unitdir}/system + + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/saslauthd.service + sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/saslauthd.service + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/saslauthd.service + + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/saslauthd/ - - - -" > ${D}${sysconfdir}/tmpfiles.d/saslauthd.conf + + install -d ${D}${sysconfdir}/default/ + install -m 0644 ${WORKDIR}/saslauthd.conf ${D}${sysconfdir}/default/saslauthd + sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/default/saslauthd + fi +} + USERADD_PACKAGES = "${PN}-bin" GROUPADD_PARAM_${PN}-bin = "--system mail" USERADD_PARAM_${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "saslauthd.service" +SYSTEMD_AUTO_ENABLE = "disable" + SRC_URI[md5sum] = "a7f4e5e559a0e37b3ffc438c9456e425" SRC_URI[sha256sum] = "8fbc5136512b59bb793657f36fadda6359cae3b08f01fd16b3d406f1345b7bc3" PACKAGES =+ "${PN}-bin" FILES_${PN} += "${libdir}/sasl2/*.so*" -FILES_${PN}-bin += "${bindir}" +FILES_${PN}-bin += "${bindir} \ + ${sysconfdir}/default/saslauthd \ + ${systemd_unitdir}/system/saslauthd.service \ + ${sysconfdir}/tmpfiles.d/saslauthd.conf" FILES_${PN}-dev += "${libdir}/sasl2/*.la" FILES_${PN}-dbg += "${libdir}/sasl2/.debug" FILES_${PN}-staticdev += "${libdir}/sasl2/*.a" diff --git a/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample b/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample new file mode 100644 index 0000000000..ec0584193d --- /dev/null +++ b/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample @@ -0,0 +1,21 @@ +# options to dnrd + +# example: two default dns servers and dns servers for exampledomain.com. The +# latter are load balanced (-b) +# +# + +# DNRD_OPTS=" +# -s XXX.XXX.XX.XXX +# -s XXX.XXX.XX.XXX +# -b +# -s XXX.XXX.XX.XXX:exampledomain.com +# -s XXX.XXX.XX.XXX:exampledomain.com" + +# example: dnrd user +# + +# DNRD_USER="user" +# + + diff --git a/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init b/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init new file mode 100644 index 0000000000..2fe583fcf9 --- /dev/null +++ b/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init @@ -0,0 +1,94 @@ +#!/bin/sh +# +# Startup script for dnrd +# +# Copyright 2008, Rakesh Pandit <rakesh.pandit@gmail.com> +# +# This source 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, or (at your option) +# any later version. + +# This source 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, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# chkconfig: - 85 15 +# description: dnrd is a proxying nameserver. It forwards DNS queries to the +# appropriate nameserver, but can also act as the primary nameserver for +# a subnet behind a firewall. It also has features such as caching DNS +# requests, support for DNS servers, cache poisoning prevention, TCP +# support, etc.. + +# processname: dnrd +# pidfile: /var/run/dnrd.pid +# config: /etc/dnrd/dnrd.conf + +# Provides: dnrd +# Required-Start: +# Should-Start: +# Required-Stop: +# Default-Stop: 0 1 2 6 +# Short-Description: Start dnrd daemon +# Description: Domain Name Relay Daemon +# END INIT INFO + +exe=/usr/sbin/dnrd +pfile=/etc/passwd + +# Source function library. +. /etc/init.d/functions + +# Source conf file +. /etc/dnrd/dnrd.conf + +[ -x $exe ] || exit 1 +[ -r "/etc/dnrd/dnrd.conf" ] || exit 1 +if [ $DNRD_USER ] +then + grep "^${LOGIN}:" $pfile >/dev/null 2>&1 + if [ $? -eq 0 ];then + echo "$DNRD_USER specified in /etc/dnrd/dnrd.conf does not exist!" + fi +else + echo "DNRD_USER not set at /etc/dnrd/dnrd.conf!" + exit 1 +fi + +case "$1" in + start) + echo -n "Starting dnrd: " + daemon dnrd $DNRD_OPTS -u $DNRD_USER + echo + touch /var/lock/subsys/dnrd + ;; + stop) + echo -n "Shutting down dnrd: " + killproc dnrd + echo + rm -f /var/lock/subsys/dnrd + rm -f /var/run/dnrd.pid + ;; + status) + status dnrd + ;; + restart) + $0 stop + $0 start + ;; + reload) + echo -n "Reloading dnrd: " + killproc dnrd -HUP + echo + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|status}" + exit 1 +esac + +exit 0 diff --git a/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service b/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service new file mode 100644 index 0000000000..9c9fa66394 --- /dev/null +++ b/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service @@ -0,0 +1,12 @@ +[Unit] +Description=Domain Name Relay Daemon +After=network.target + +[Service] +Type=forking +PIDFile=/var/run/dnrd.pid +EnvironmentFile=/etc/dnrd/dnrd.conf +ExecStart=/usr/sbin/dnrd $DNRD_OPTS -u $DNRD_USER + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb b/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb new file mode 100644 index 0000000000..3b8fdc93c6 --- /dev/null +++ b/meta-networking/recipes-daemons/dnrd/dnrd_2.20.3.bb @@ -0,0 +1,39 @@ +SUMMARY = "A caching, forwarding DNS proxy server" +DESCRIPTION = "\ +dnrd is a proxying nameserver. It forwards DNS queries to the appropriate \ +nameserver, but can also act as the primary nameserver for a subnet behind \ +a firewall. It also has features such as caching DNS requests, support for \ +DNS servers, cache poisoning prevention, TCP support, etc.." +HOMEPAGE = "http://dnrd.sourceforge.net/" +SECTION = "System Environment/Daemons" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=0be67017f1c770313ad7b40e18d568f1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ + file://dnrd.service \ + file://dnrd.conf.sample \ + file://dnrd.init" +SRC_URI[md5sum] = "41c9b070aae8ed403fc8c2aac7ab157c" +SRC_URI[sha256sum] = "aa46e7f8736b88c1d752cf606b3990041221ce91d014e955c6b02eb2167db015" + +SYSTEMD_SERVICE_${PN} = "dnrd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +inherit autotools +inherit ${@base_contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)} + +do_install() { + oe_runmake install DESTDIR=${D} INSTALL="install -p" + + sed -i -e 's:/etc/rc.d/init.d/functions:/etc/init.d/functions:g' \ + ${WORKDIR}/dnrd.init + install -d -m 0755 ${D}${sysconfdir}/init.d + install -d -m 0755 ${D}${sysconfdir}/dnrd + install -p -m 0644 ${WORKDIR}/dnrd.conf.sample ${D}${sysconfdir}/dnrd/dnrd.conf + install -p -m 0755 ${WORKDIR}/dnrd.init ${D}${sysconfdir}/init.d/dnrd + + if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d -m 0755 ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/dnrd.service ${D}${systemd_unitdir}/system + fi +} diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb index d48cf24eb6..f510ce51bf 100644 --- a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb +++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0-873.bb @@ -69,6 +69,8 @@ do_install () { install -p -m 644 ${S}/etc/iscsid.conf ${D}${sysconfdir}/iscsi install -p -m 755 ${WORKDIR}/initd.debian ${D}${sysconfdir}/init.d/iscsid + sed -i -e "s:= /sbin/iscsid:= ${sbindir}/iscsid:" ${D}${sysconfdir}/iscsi/iscsid.conf + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then install -d ${D}${sysconfdir}/tmpfiles.d echo "d /run/${BPN}/lock - - - -" \ diff --git a/meta-networking/recipes-daemons/lldpad/lldpad_0.9.46.bb b/meta-networking/recipes-daemons/lldpad/lldpad_0.9.46.bb new file mode 100644 index 0000000000..4dad80d3e9 --- /dev/null +++ b/meta-networking/recipes-daemons/lldpad/lldpad_0.9.46.bb @@ -0,0 +1,23 @@ +SUMMARY = "Intel LLDP Agent" +DESCRIPTION = "\ +This package contains the Linux user space daemon and configuration tool for \ +Intel LLDP Agent with Enhanced Ethernet support for the Data Center." +SECTION = "System Environment/Daemons" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162" +DEPENDS = "libconfig libnl" +SRCREV = "48a5f38778b18d6659a672ccb4640f25c6720827" + +SRC_URI = "git://github.com/jrfastab/lldpad.git;protocol=http" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep pkgconfig systemd + +do_install_append () { + install -m 0755 -d ${D}${systemd_unitdir} + mv ${D}${prefix}${systemd_unitdir}/* ${D}${systemd_unitdir}/ + rmdir ${D}${prefix}${systemd_unitdir} +} + +FILES_${PN} += "${systemd_unitdir}" diff --git a/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb new file mode 100644 index 0000000000..5e63293300 --- /dev/null +++ b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.5.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "A sophisticated console ftp client" +HOMEPAGE = "http://ncftp.com/" +SECTION = "console/network" +LICENSE = "ClArtistic" +LIC_FILES_CHKSUM = "file://ncftp/cmds.c;beginline=3;endline=4;md5=9de76faeaedc4f908082e3f8142715f4" +DEPENDS = "ncurses" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz" +SRC_URI[md5sum] = "685e45f60ac11c89442c572c28af4228" +SRC_URI[sha256sum] = "ac111b71112382853b2835c42ebe7bd59acb7f85dd00d44b2c19fbd074a436c4" + +inherit autotools-brokensep pkgconfig + +do_configure() { + oe_runconf +} +do_install () { + install -d ${D}${bindir} ${D}${sysconfdir} ${D}${mandir} + oe_runmake 'prefix=${D}${prefix}' 'BINDIR=${D}${bindir}' \ + 'SYSCONFDIR=${D}${sysconfdir}' 'mandir=${D}${mandir}' \ + install +} diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch b/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch new file mode 100644 index 0000000000..016b64f2e9 --- /dev/null +++ b/meta-networking/recipes-daemons/opensaf/opensaf/install-samples-from-srcdir.patch @@ -0,0 +1,11 @@ +--- 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/meta-networking/recipes-daemons/opensaf/opensaf_4.5.0.bb b/meta-networking/recipes-daemons/opensaf/opensaf_4.5.0.bb new file mode 100644 index 0000000000..5b42defb38 --- /dev/null +++ b/meta-networking/recipes-daemons/opensaf/opensaf_4.5.0.bb @@ -0,0 +1,42 @@ +SUMMARY = "OpenSAF is an open source implementation of the SAF AIS specification" +DESCRIPTION = "OpenSAF is an open source project established to develop a base platform \ +middleware consistent with Service Availability Forum (SA Forum) \ +specifications, under the LGPLv2.1 license. The OpenSAF Foundation was \ +established by leading Communications and Enterprise Computing Companies to \ +facilitate the OpenSAF Project and to accelerate the adoption of the OpenSAF \ +code base in commercial products. \ +The OpenSAF project was launched in mid 2007 and has been under development by \ +an informal group of supporters of the OpenSAF initiative. The OpenSAF \ +Foundation was founded on January 22nd 2008 with Emerson Network Power, \ +Ericsson, Nokia Siemens Networks, HP and Sun Microsystems as founding members." +HOMEPAGE = "http://www.opensaf.org" + +inherit autotools useradd systemd pkgconfig + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \ + file://install-samples-from-srcdir.patch" + +SRC_URI[md5sum] = "534c0a99438a62c4c8dda56cfa67300c" +SRC_URI[sha256sum] = "2f5ba57fe67e94099c0df82d0a0dd207b5c583c93030035ba354c97b5471b590" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7" + +DEPENDS = "libxml2 python" + +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" +SYSTEMD_AUTO_ENABLE = "disable" + +FILES_${PN} += "${localstatedir}/run" + +INSANE_SKIP_${PN} = "dev-so" + +do_install_append() { + rm -fr "${D}${localstatedir}/lock" + rm -fr "${D}${localstatedir}/run" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" +} diff --git a/meta-networking/recipes-daemons/postfix/files/aliasesdb b/meta-networking/recipes-daemons/postfix/files/aliasesdb new file mode 100755 index 0000000000..855a64f705 --- /dev/null +++ b/meta-networking/recipes-daemons/postfix/files/aliasesdb @@ -0,0 +1,20 @@ +#!/bin/sh + +ALIASESDB_STAMP=/var/lib/misc/postfix.aliasesdb-stamp + +make_aliasesdb() { + if [ "$(/usr/sbin/postconf -h alias_database)" = "hash:/etc/aliases" ] + then + # /etc/aliases.db may be used by other MTA, make sure nothing + # has touched it since our last newaliases call + [ /etc/aliases -nt /etc/aliases.db ] || + [ "$ALIASESDB_STAMP" -nt /etc/aliases.db ] || + [ "$ALIASESDB_STAMP" -ot /etc/aliases.db ] || return 0 + /usr/bin/newaliases + touch -r /etc/aliases.db "$ALIASESDB_STAMP" + else + /usr/bin/newaliases + fi +} + +make_aliasesdb diff --git a/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 b/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 index a128faa0a1..9e1077f6b0 100644 --- a/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 +++ b/meta-networking/recipes-daemons/postfix/files/main.cf_2.0 @@ -24,13 +24,13 @@ virtual_gid_maps = static:`grep vmail /etc/passwd | cut -d ":" -f 4` # General stuff here again -config_directory = /etc/postfix +#config_directory = /etc/postfix sample_directory = /etc/postfix queue_directory = /var/spool/postfix mail_spool_directory = /var/spool/mail readme_directory = no command_directory = /usr/sbin -daemon_directory = /usr/libexec/postfix +daemon_directory = /usr/lib/postfix mail_owner = postfix setgid_group = postdrop unknown_local_recipient_reject_code = 450 diff --git a/meta-networking/recipes-daemons/postfix/files/postfix.service b/meta-networking/recipes-daemons/postfix/files/postfix.service index 6ea9214780..02ea640b25 100644 --- a/meta-networking/recipes-daemons/postfix/files/postfix.service +++ b/meta-networking/recipes-daemons/postfix/files/postfix.service @@ -5,10 +5,11 @@ Conflicts=sendmail.service exim.service [Service] Type=forking -PIDFile=/var/spool/postfix/pid/master.pid -ExecStart=/usr/sbin/postfix start -ExecReload=/usr/sbin/postfix reload -ExecStop=/usr/sbin/postfix stop +PIDFile=@LOCALSTATEDIR@/spool/postfix/pid/master.pid +ExecStartPre=-@LIBEXECDIR@/aliasesdb +ExecStart=@SBINDIR@/postfix start +ExecReload=@SBINDIR@/postfix reload +ExecStop=@SBINDIR@/postfix stop [Install] WantedBy=multi-user.target diff --git a/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-networking/recipes-daemons/postfix/postfix.inc index c58787ed65..a6909e9b5b 100644 --- a/meta-networking/recipes-daemons/postfix/postfix.inc +++ b/meta-networking/recipes-daemons/postfix/postfix.inc @@ -7,8 +7,8 @@ has a definite Sendmail-ish flavor, but the inside is completely different." HOMEPAGE= "http://www.postfix.org" SECTION = "console/network" DEPENDS = "virtual/db libpcre openssl postfix-native \ - ${@base_contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \ - ${@base_contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \ + ${@base_contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \ + ${@base_contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \ " DEPENDS_virtclass-native = "virtual/db-native openssl-native libpcre-native" @@ -16,13 +16,14 @@ LICENSE = "IPL-1.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=64375f37431336ea1b1b3005fe3fa354" SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \ - file://makedefs.patch \ - file://install.patch \ - file://main.cf_2.0 \ - file://postfix \ - file://internal_recipient \ - file://postfix.service \ - " + file://makedefs.patch \ + file://install.patch \ + file://main.cf_2.0 \ + file://postfix \ + file://internal_recipient \ + file://postfix.service \ + file://aliasesdb \ +" S = "${WORKDIR}/postfix-${PV}" @@ -48,9 +49,9 @@ export SYSLIBS = "${LDFLAGS}" # ldap support export CCARGS-ldap = "\ - ${@base_contains('DISTRO_FEATURES', 'ldap', '-DHAS_LDAP', '', d)}" + ${@base_contains('DISTRO_FEATURES', 'ldap', '-DHAS_LDAP', '', d)}" export AUXLIBS-ldap = "\ - ${@base_contains('DISTRO_FEATURES', 'ldap', '-lldap -llber', '', d)}" + ${@base_contains('DISTRO_FEATURES', 'ldap', '-lldap -llber', '', d)}" # no native openldap export CCARGS-ldap_virtclass-native = "" @@ -59,9 +60,9 @@ export AUXLIBS-ldap_virtclass-native = "" # SASL support -DUSE_LDAP_SASL -DUSE_SASL_AUTH # current openldap didn't enable SASL export CCARGS-sasl = "\ - ${@base_contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I=/usr/include/sasl', '', d)}" + ${@base_contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I=/usr/include/sasl', '', d)}" export AUXLIBS-sasl = "\ - ${@base_contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}" + ${@base_contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}" export CCARGS-sasl_virtclass-native = "" export AUXLIBS-sasl_virtclass-native = "" @@ -75,130 +76,138 @@ export POSTCONF = "${STAGING_DIR_NATIVE}${sbindir_native}/postconf" EXTRA_OEMAKE += "OPT= DEBUG= OPTS= " do_compile () { - unset CFLAGS CPPFLAGS CXXFLAGS - local native_build - - native_build="${@['0', '1'][bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d)]}" - - # if not native build, then pass SYSTEM and RELEASE to makedefs - if [ "${native_build}" != "1" ]; then - # uname -s for target - SYSTEM="Linux" - - # uname -r, use 2.6 as bottomline, even target kernel ver > 2.6 - RELEASE="2.6.34" - sed -i -e \ - "s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM $RELEASE):" \ - ${S}/Makefile.in - export BUILD_SYSROOT="${STAGING_DIR_HOST}" - export BUILD_SYSROOT_NSL_PATH="${STAGING_BASELIBDIR} \ - ${STAGING_LIBDIR}" - else - # native build - export BUILD_SYSROOT="${STAGING_DIR_NATIVE}" - - # ubuntu x86 host: /lib/x86_64-linux-gnu(64) /lib/i386-linux-gnu (32) - # on 64 bits, 32 libs in i386-linux-gnu - # let makedefs finds nsl and resolv libs, host CC will link - # the correct libraries - BUILD_SYSROOT_NSL_PATH="$(${CC} -print-search-dirs 2>/dev/null | \ - sed -n '/^libraries: =/s/libraries: =//p' | \ - sed -e 's/:/\n/g' | xargs -n1 readlink -f | \ - grep -v 'gcc\|/[0-9.]\+$' | sort -u)" - if [ -z "$BUILD_SYSROOT_NSL_PATH" ]; then - BUILD_SYSROOT_NSL_PATH="/usr/lib64 /lib64 \ - /lib/x86_64-linux-gnu \ - /usr/lib /lib \ - /lib/i386-linux-gnu" - fi - export BUILD_SYSROOT_NSL_PATH - fi - - oe_runmake makefiles - oe_runmake + unset CFLAGS CPPFLAGS CXXFLAGS + local native_build + + native_build="${@['0', '1'][bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d)]}" + + # if not native build, then pass SYSTEM and RELEASE to makedefs + if [ "${native_build}" != "1" ]; then + # uname -s for target + SYSTEM="Linux" + + # uname -r, use 2.6 as bottomline, even target kernel ver > 2.6 + RELEASE="2.6.34" + sed -i -e \ + "s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM $RELEASE):" \ + ${S}/Makefile.in + export BUILD_SYSROOT="${STAGING_DIR_HOST}" + export BUILD_SYSROOT_NSL_PATH="${STAGING_BASELIBDIR} \ + ${STAGING_LIBDIR}" + else + # native build + export BUILD_SYSROOT="${STAGING_DIR_NATIVE}" + + # ubuntu x86 host: /lib/x86_64-linux-gnu(64) /lib/i386-linux-gnu (32) + # on 64 bits, 32 libs in i386-linux-gnu + # let makedefs finds nsl and resolv libs, host CC will link + # the correct libraries + BUILD_SYSROOT_NSL_PATH="$(${CC} -print-search-dirs 2>/dev/null | \ + sed -n '/^libraries: =/s/libraries: =//p' | \ + sed -e 's/:/\n/g' | xargs -n1 readlink -f | \ + grep -v 'gcc\|/[0-9.]\+$' | sort -u)" + if [ -z "$BUILD_SYSROOT_NSL_PATH" ]; then + BUILD_SYSROOT_NSL_PATH="/usr/lib64 /lib64 \ + /lib/x86_64-linux-gnu \ + /usr/lib /lib \ + /lib/i386-linux-gnu" + fi + export BUILD_SYSROOT_NSL_PATH + fi + + oe_runmake makefiles + oe_runmake } do_install_prepend_virtclass-native() { - export POSTCONF="bin/postconf" + export POSTCONF="bin/postconf" } SYSTEMD_SERVICE_${PN} = "postfix.service" -SYSTEMD_AUTO_ENABLE = "disable" do_install () { - sh ./postfix-install 'install_root=${D}' \ - 'config_directory=${sysconfdir}/postfix' \ - 'daemon_directory=${exec_prefix}/libexec/postfix' \ - 'command_directory=${sbindir}' \ - 'queue_directory=${localstatedir}/spool/postfix' \ - 'sendmail_path=${sbindir}/sendmail.postfix' \ - 'newaliases_path=${bindir}/newaliases' \ - 'mailq_path=${bindir}/mailq' \ - 'manpage_directory=${mandir}' \ - 'readme_directory=${datadir}/doc/postfix' \ - 'data_directory=${localstatedir}/lib/postfix' \ - -non-interactive - rm -rf ${D}${localstatedir}/spool/postfix - mv ${D}${sysconfdir}/postfix/main.cf ${D}${sysconfdir}/postfix/sample-main.cf - install -d ${D}${sysconfdir}/init.d - install -m 644 ${WORKDIR}/main.cf_2.0 ${D}${sysconfdir}/postfix/main.cf - install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix - install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/postfix.service ${D}${systemd_unitdir}/system - sed -i 's,/usr/sbin/,${sbindir}/,g' ${D}${systemd_unitdir}/system/postfix.service - - install -m 770 -d ${D}${localstatedir}/spool/postfix - chown postfix:postfix ${D}${localstatedir}/spool/postfix - chown postfix:postfix ${D}${localstatedir}/lib/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 - chown root:postfix ${D}${localstatedir}/spool/postfix - install -m 0700 -d ${D}${localstatedir}/spool/postfix/active - chown postfix:root ${D}${localstatedir}/spool/postfix/active - install -m 0700 -d ${D}${localstatedir}/spool/postfix/bounce - chown postfix:root ${D}${localstatedir}/spool/postfix/bounce - install -m 0700 -d ${D}${localstatedir}/spool/postfix/corrupt - chown postfix:root ${D}${localstatedir}/spool/postfix/corrupt - install -m 0700 -d ${D}${localstatedir}/spool/postfix/defer - chown postfix:root ${D}${localstatedir}/spool/postfix/defer - install -m 0700 -d ${D}${localstatedir}/spool/postfix/deferred - chown postfix:root ${D}${localstatedir}/spool/postfix/deferred - install -m 0700 -d ${D}${localstatedir}/spool/postfix/flush - chown postfix:root ${D}${localstatedir}/spool/postfix/flush - install -m 0700 -d ${D}${localstatedir}/spool/postfix/hold - chown postfix:root ${D}${localstatedir}/spool/postfix/hold - install -m 0700 -d ${D}${localstatedir}/spool/postfix/incoming - chown postfix:root ${D}${localstatedir}/spool/postfix/incoming - install -m 0700 -d ${D}${localstatedir}/spool/postfix/saved - chown postfix:root ${D}${localstatedir}/spool/postfix/saved - install -m 0700 -d ${D}${localstatedir}/spool/postfix/trace - chown postfix:root ${D}${localstatedir}/spool/postfix/trace - install -m 0730 -d ${D}${localstatedir}/spool/postfix/maildrop - chown postfix:postdrop ${D}${localstatedir}/spool/postfix/maildrop - install -m 0755 -d ${D}${localstatedir}/spool/postfix/pid - chown root:root ${D}${localstatedir}/spool/postfix/pid - install -m 0700 -d ${D}${localstatedir}/spool/postfix/private - chown postfix:root ${D}${localstatedir}/spool/postfix/private - install -m 0710 -d ${D}${localstatedir}/spool/postfix/public - chown postfix:postdrop ${D}${localstatedir}/spool/postfix/public - install -m 0755 -d ${D}${localstatedir}/spool/vmail - chown vmail:vmail ${D}${localstatedir}/spool/vmail - - chown :postdrop ${D}${sbindir}/postqueue - chown :postdrop ${D}${sbindir}/postdrop - chmod g+s ${D}${sbindir}/postqueue - chmod g+s ${D}${sbindir}/postdrop + sh ./postfix-install 'install_root=${D}' \ + 'config_directory=${sysconfdir}/postfix' \ + 'daemon_directory=${libexecdir}' \ + 'command_directory=${sbindir}' \ + 'queue_directory=${localstatedir}/spool/postfix' \ + 'sendmail_path=${sbindir}/sendmail.postfix' \ + 'newaliases_path=${bindir}/newaliases' \ + 'mailq_path=${bindir}/mailq' \ + 'manpage_directory=${mandir}' \ + 'readme_directory=${datadir}/doc/postfix' \ + 'data_directory=${localstatedir}/lib/postfix' \ + -non-interactive + rm -rf ${D}${localstatedir}/spool/postfix + mv ${D}${sysconfdir}/postfix/main.cf ${D}${sysconfdir}/postfix/sample-main.cf + install -d ${D}${sysconfdir}/init.d + install -m 644 ${WORKDIR}/main.cf_2.0 ${D}${sysconfdir}/postfix/main.cf + install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix + install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/postfix.service ${D}${systemd_unitdir}/system + sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_unitdir}/system/postfix.service + sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/postfix.service + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/postfix.service + + install -m 0755 ${WORKDIR}/aliasesdb ${D}${libexecdir} + + install -m 770 -d ${D}${localstatedir}/spool/postfix + chown postfix:postfix ${D}${localstatedir}/spool/postfix + chown postfix:postfix ${D}${localstatedir}/lib/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 + chown root:postfix ${D}${localstatedir}/spool/postfix + install -m 0700 -d ${D}${localstatedir}/spool/postfix/active + chown postfix:root ${D}${localstatedir}/spool/postfix/active + install -m 0700 -d ${D}${localstatedir}/spool/postfix/bounce + chown postfix:root ${D}${localstatedir}/spool/postfix/bounce + install -m 0700 -d ${D}${localstatedir}/spool/postfix/corrupt + chown postfix:root ${D}${localstatedir}/spool/postfix/corrupt + install -m 0700 -d ${D}${localstatedir}/spool/postfix/defer + chown postfix:root ${D}${localstatedir}/spool/postfix/defer + install -m 0700 -d ${D}${localstatedir}/spool/postfix/deferred + chown postfix:root ${D}${localstatedir}/spool/postfix/deferred + install -m 0700 -d ${D}${localstatedir}/spool/postfix/flush + chown postfix:root ${D}${localstatedir}/spool/postfix/flush + install -m 0700 -d ${D}${localstatedir}/spool/postfix/hold + chown postfix:root ${D}${localstatedir}/spool/postfix/hold + install -m 0700 -d ${D}${localstatedir}/spool/postfix/incoming + chown postfix:root ${D}${localstatedir}/spool/postfix/incoming + install -m 0700 -d ${D}${localstatedir}/spool/postfix/saved + chown postfix:root ${D}${localstatedir}/spool/postfix/saved + install -m 0700 -d ${D}${localstatedir}/spool/postfix/trace + chown postfix:root ${D}${localstatedir}/spool/postfix/trace + install -m 0730 -d ${D}${localstatedir}/spool/postfix/maildrop + chown postfix:postdrop ${D}${localstatedir}/spool/postfix/maildrop + install -m 0755 -d ${D}${localstatedir}/spool/postfix/pid + chown root:root ${D}${localstatedir}/spool/postfix/pid + install -m 0700 -d ${D}${localstatedir}/spool/postfix/private + chown postfix:root ${D}${localstatedir}/spool/postfix/private + install -m 0710 -d ${D}${localstatedir}/spool/postfix/public + chown postfix:postdrop ${D}${localstatedir}/spool/postfix/public + install -m 0755 -d ${D}${localstatedir}/spool/vmail + chown vmail:vmail ${D}${localstatedir}/spool/vmail + + chown :postdrop ${D}${sbindir}/postqueue + chown :postdrop ${D}${sbindir}/postdrop + chmod g+s ${D}${sbindir}/postqueue + chmod g+s ${D}${sbindir}/postdrop } do_install_append_class-native() { - ln -sf ../sbin/sendmail.postfix ${D}${bindir}/newaliases - ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq + ln -sf ../sbin/sendmail.postfix ${D}${bindir}/newaliases + ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq +} + +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 } NATIVE_INSTALL_WORKS = "1" @@ -209,22 +218,22 @@ ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail" ALTERNATIVE_PRIORITY = "120" pkg_postinst_${PN} () { - if [ "x$D" = "x" ]; then - touch /etc/aliases - newaliases - - # generate virtual_alias, default is hash - touch /etc/postfix/virtual_alias - postmap /etc/postfix/virtual_alias - else - touch $D/etc/aliases - newaliases -C $D/etc/postfix/main.cf -oA$D/etc/aliases - touch $D/etc/postfix/virtual_alias - postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias - fi + if [ "x$D" = "x" ]; then + touch /etc/aliases + newaliases + + # generate virtual_alias, default is hash + touch /etc/postfix/virtual_alias + postmap /etc/postfix/virtual_alias + else + touch $D/etc/aliases + newaliases -C $D/etc/postfix/main.cf -oA$D/etc/aliases + touch $D/etc/postfix/virtual_alias + postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias + fi } # Exclude .debug directories from the main package FILES_${PN} = "${sysconfdir} ${localstatedir} ${bindir}/* ${sbindir}/* \ - ${exec_prefix}/libexec/postfix/* ${systemd_unitdir}/*" -FILES_${PN}-dbg += "${exec_prefix}/libexec/postfix/.debug" + ${libexecdir}/* ${systemd_unitdir}/*" +FILES_${PN}-dbg += "${libexecdir}/.debug" diff --git a/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch b/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch new file mode 100644 index 0000000000..19617a6bb7 --- /dev/null +++ b/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch @@ -0,0 +1,112 @@ +Upstream-Status: Inappropriate [configuration] + +combined the following patches into one: +make, move-pidfile-to-var-run, move-runfile-to-var-run + +move pidfile to /var/run +redefine PR_RUN_DIR as ${localstatedir}/run + +Signed-off-By: Armin Kuster <akuster808@gmail.com> + + +Index: proftpd-1.3.5/Make.rules.in +=================================================================== +--- proftpd-1.3.5.orig/Make.rules.in ++++ proftpd-1.3.5/Make.rules.in +@@ -29,9 +29,9 @@ INSTALL=@INSTALL@ + INSTALL_STRIP=@INSTALL_STRIP@ + INSTALL_USER=@install_user@ + INSTALL_GROUP=@install_group@ +-INSTALL_BIN=$(INSTALL) $(INSTALL_STRIP) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 +-INSTALL_SBIN=$(INSTALL) $(INSTALL_STRIP) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 +-INSTALL_MAN=$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 ++INSTALL_BIN=$(INSTALL) -m 0755 ++INSTALL_SBIN=$(INSTALL) -m 0755 ++INSTALL_MAN=$(INSTALL) -m 0644 + + RM=rm -f + SHELL=@CONFIG_SHELL@ +Index: proftpd-1.3.5/Makefile.in +=================================================================== +--- proftpd-1.3.5.orig/Makefile.in ++++ proftpd-1.3.5/Makefile.in +@@ -105,7 +105,6 @@ check: proftpd$(EXEEXT) + $(DESTDIR)$(localedir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(libdir) $(DESTDIR)$(pkgconfigdir) $(DESTDIR)$(libdir)/proftpd $(DESTDIR)$(libexecdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8: + @if [ ! -d $@ ]; then \ + mkdir -p $@; \ +- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ + chmod 0755 $@; \ + fi + +@@ -115,7 +114,6 @@ install-proftpd: proftpd $(DESTDIR)$(inc + rm -f $(DESTDIR)$(sbindir)/in.proftpd ; \ + fi + ln -s proftpd $(DESTDIR)$(sbindir)/in.proftpd +- -chown -h $(INSTALL_USER):$(INSTALL_GROUP) $(DESTDIR)$(sbindir)/in.proftpd + + install-libs: $(DESTDIR)$(libdir)/proftpd + cd lib/ && $(MAKE) install +@@ -152,11 +150,11 @@ install-utils: $(DESTDIR)$(sbindir) $(DE + $(INSTALL_SBIN) ftpshut $(DESTDIR)$(sbindir)/ftpshut + $(INSTALL_BIN) ftptop $(DESTDIR)$(bindir)/ftptop + $(INSTALL_BIN) ftpwho $(DESTDIR)$(bindir)/ftpwho +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs ++ $(INSTALL) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs + + install-conf: $(DESTDIR)$(sysconfdir) + if [ ! -f $(DESTDIR)$(sysconfdir)/proftpd.conf ] ; then \ +- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 \ ++ $(INSTALL) -m 0644 \ + $(top_srcdir)/sample-configurations/basic.conf \ + $(DESTDIR)$(sysconfdir)/proftpd.conf ; \ + fi +Index: proftpd-1.3.5/configure +=================================================================== +--- proftpd-1.3.5.orig/configure ++++ proftpd-1.3.5/configure +@@ -38255,7 +38255,7 @@ _ACEOF + + + cat >>confdefs.h <<_ACEOF +-#define PR_RUN_DIR "`eval echo "${localstatedir}"`" ++#define PR_RUN_DIR "`eval echo "${localstatedir}"/run/`" + _ACEOF + + cat >>confdefs.h <<_ACEOF +@@ -38263,7 +38263,7 @@ cat >>confdefs.h <<_ACEOF + _ACEOF + + cat >>confdefs.h <<_ACEOF +-#define PR_PID_FILE_PATH "`eval echo "${localstatedir}/proftpd.pid"`" ++#define PR_PID_FILE_PATH "`eval echo "${localstatedir}/run/proftpd.pid"`" + _ACEOF + + +Index: proftpd-1.3.5/configure.in +=================================================================== +--- proftpd-1.3.5.orig/configure.in ++++ proftpd-1.3.5/configure.in +@@ -2971,8 +2971,8 @@ locale_dir="`eval echo ${locale_dir}`" + AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`") + + AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`") +-AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/proftpd.conf"`") +-AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/proftpd.pid"`") ++AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/run/proftpd.conf"`") ++AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/run/proftpd.pid"`") + + prefix="$pr_saved_prefix" + exec_prefix="$pr_saved_exec_prefix" +Index: proftpd-1.3.5/lib/libcap/Makefile +=================================================================== +--- proftpd-1.3.5.orig/lib/libcap/Makefile ++++ proftpd-1.3.5/lib/libcap/Makefile +@@ -26,7 +26,7 @@ OBJS=$(addsuffix .o, $(FILES)) + all: $(LIBNAME) + + _makenames: _makenames.c cap_names.sed +- $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ ++ $(BUILD_CC) $(CFLAGS) $(LDFLAGS) $< -o $@ + + cap_names.h: _makenames + ./_makenames > cap_names.h diff --git a/meta-networking/recipes-daemons/proftpd/files/make.patch b/meta-networking/recipes-daemons/proftpd/files/make.patch deleted file mode 100644 index c5ff0136da..0000000000 --- a/meta-networking/recipes-daemons/proftpd/files/make.patch +++ /dev/null @@ -1,66 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Index: proftpd-1.3.2/Makefile.in -=================================================================== ---- proftpd-1.3.2.orig/Makefile.in -+++ proftpd-1.3.2/Makefile.in -@@ -76,7 +76,6 @@ check: proftpd$(EXEEXT) - $(DESTDIR)$(localedir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(libdir) $(DESTDIR)$(pkgconfigdir) $(DESTDIR)$(libdir)/proftpd $(DESTDIR)$(libexecdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(rundir) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8: - @if [ ! -d $@ ]; then \ - mkdir -p $@; \ -- chown $(INSTALL_USER):$(INSTALL_GROUP) $@; \ - chmod 0755 $@; \ - fi - -@@ -86,7 +85,6 @@ install-proftpd: proftpd $(DESTDIR)$(inc - rm -f $(DESTDIR)$(sbindir)/in.proftpd ; \ - fi - ln -s proftpd $(DESTDIR)$(sbindir)/in.proftpd -- -chown -h $(INSTALL_USER):$(INSTALL_GROUP) $(DESTDIR)$(sbindir)/in.proftpd - - install-libs: $(DESTDIR)$(libdir)/proftpd - cd lib/ && $(MAKE) install -@@ -121,11 +119,11 @@ install-utils: $(DESTDIR)$(sbindir) $(DE - $(INSTALL_SBIN) ftpshut $(DESTDIR)$(sbindir)/ftpshut - $(INSTALL_BIN) ftptop $(DESTDIR)$(bindir)/ftptop - $(INSTALL_BIN) ftpwho $(DESTDIR)$(bindir)/ftpwho -- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs -+ $(INSTALL) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs - - install-conf: $(DESTDIR)$(sysconfdir) - if [ ! -f $(DESTDIR)$(sysconfdir)/proftpd.conf ] ; then \ -- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 \ -+ $(INSTALL) -m 0644 \ - $(top_srcdir)/sample-configurations/basic.conf \ - $(DESTDIR)$(sysconfdir)/proftpd.conf ; \ - fi -Index: proftpd-1.3.2/Make.rules.in -=================================================================== ---- proftpd-1.3.2.orig/Make.rules.in -+++ proftpd-1.3.2/Make.rules.in -@@ -29,9 +29,9 @@ UTILS_LIBS=@UTILS_LIBS@ @LIBS@ - INSTALL=@INSTALL@ - INSTALL_USER=@install_user@ - INSTALL_GROUP=@install_group@ --INSTALL_BIN=$(INSTALL) @INSTALL_STRIP@ -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 --INSTALL_SBIN=$(INSTALL) @INSTALL_STRIP@ -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 --INSTALL_MAN=$(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0644 -+INSTALL_BIN=$(INSTALL) -m 0755 -+INSTALL_SBIN=$(INSTALL) -m 0755 -+INSTALL_MAN=$(INSTALL) -m 0644 - - RM=rm -f - SHELL=/bin/sh -Index: proftpd-1.3.2/lib/libcap/Makefile -=================================================================== ---- proftpd-1.3.2.orig/lib/libcap/Makefile -+++ proftpd-1.3.2/lib/libcap/Makefile -@@ -26,7 +26,7 @@ OBJS=$(addsuffix .o, $(FILES)) - all: $(LIBNAME) - - _makenames: _makenames.c cap_names.sed -- $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ -+ $(BUILD_CC) $(CFLAGS) $(LDFLAGS) $< -o $@ - - cap_names.h: _makenames - ./_makenames > cap_names.h diff --git a/meta-networking/recipes-daemons/proftpd/files/move-pidfile-to-var-run.patch b/meta-networking/recipes-daemons/proftpd/files/move-pidfile-to-var-run.patch deleted file mode 100644 index 953bbddef0..0000000000 --- a/meta-networking/recipes-daemons/proftpd/files/move-pidfile-to-var-run.patch +++ /dev/null @@ -1,39 +0,0 @@ -move pidfile to /var/run - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Roy Li <rongqing.li@windriver.com> ---- - configure | 2 +- - configure.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure b/configure -index e6268f5..ebed38e 100755 ---- a/configure -+++ b/configure -@@ -33587,7 +33587,7 @@ cat >>confdefs.h <<_ACEOF - _ACEOF - - cat >>confdefs.h <<_ACEOF --#define PR_PID_FILE_PATH "`eval echo "${localstatedir}/proftpd.pid"`" -+#define PR_PID_FILE_PATH "`eval echo "${localstatedir}/run/proftpd.pid"`" - _ACEOF - - -diff --git a/configure.in b/configure.in -index df9186a..e2ae868 100644 ---- a/configure.in -+++ b/configure.in -@@ -2790,7 +2790,7 @@ AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`") - - AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`") - AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/proftpd.conf"`") --AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/proftpd.pid"`") -+AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/run/proftpd.pid"`") - - prefix="$pr_saved_prefix" - exec_prefix="$pr_saved_exec_prefix" --- -1.7.10.4 - diff --git a/meta-networking/recipes-daemons/proftpd/files/move-runfile-to-var-run.patch b/meta-networking/recipes-daemons/proftpd/files/move-runfile-to-var-run.patch deleted file mode 100644 index 1561ed80e3..0000000000 --- a/meta-networking/recipes-daemons/proftpd/files/move-runfile-to-var-run.patch +++ /dev/null @@ -1,39 +0,0 @@ -redefine PR_RUN_DIR as ${localstatedir}/run - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Roy Li <rongqing.li@windriver.com> ---- - configure | 2 +- - configure.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure b/configure -index ebed38e..445d5bc 100755 ---- a/configure -+++ b/configure -@@ -33579,7 +33579,7 @@ _ACEOF - - - cat >>confdefs.h <<_ACEOF --#define PR_RUN_DIR "`eval echo "${localstatedir}"`" -+#define PR_RUN_DIR "`eval echo "${localstatedir}"/run/`" - _ACEOF - - cat >>confdefs.h <<_ACEOF -diff --git a/configure.in b/configure.in -index c17929c..df9186a 100644 ---- a/configure.in -+++ b/configure.in -@@ -2788,7 +2788,7 @@ locale_dir="`eval echo ${localedir}`" - locale_dir="`eval echo ${locale_dir}`" - AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`") - --AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`") -+AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}/run"`") - AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/proftpd.conf"`") - AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/run/proftpd.pid"`") - --- -1.7.10.4 - diff --git a/meta-networking/recipes-daemons/proftpd/files/proftpd-sftp.patch b/meta-networking/recipes-daemons/proftpd/files/proftpd-sftp.patch deleted file mode 100644 index 8c71263b05..0000000000 --- a/meta-networking/recipes-daemons/proftpd/files/proftpd-sftp.patch +++ /dev/null @@ -1,142 +0,0 @@ -proftpd/mod_sftp: fix too much memory allocation bug of mod_sftp - -This patch fixes the too much memory allocation bug of the mod_sftp by -ensuring both that a) the received response count matches the number of -challenges sent, and b) that the received response count is not too high -(as an additional sanity check); the upper bound is still set to 500. - -The patch is picked from: http://bugs.proftpd.org/show_bug.cgi?id=3973 - -Upstream-Status: Backport CVE-2013-4359 - -diff --git a/contrib/mod_sftp/kbdint.c b/contrib/mod_sftp/kbdint.c -index 0271fb2..de651fa 100644 ---- a/contrib/mod_sftp/kbdint.c -+++ b/contrib/mod_sftp/kbdint.c -@@ -1,6 +1,6 @@ - /* - * ProFTPD - mod_sftp keyboard-interactive driver mgmt -- * Copyright (c) 2008-2009 TJ Saunders -+ * Copyright (c) 2008-2013 TJ Saunders - * - * 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 -@@ -31,6 +31,8 @@ - #include "utf8.h" - #include "kbdint.h" - -+#define SFTP_KBDINT_MAX_RESPONSES 500 -+ - struct kbdint_driver { - struct kbdint_driver *next, *prev; - -@@ -252,8 +254,8 @@ int sftp_kbdint_send_challenge(const char *user, const char *instruction, - return res; - } - --int sftp_kbdint_recv_response(pool *p, unsigned int *count, -- const char ***responses) { -+int sftp_kbdint_recv_response(pool *p, unsigned int expected_count, -+ unsigned int *rcvd_count, const char ***responses) { - register unsigned int i; - char *buf; - cmd_rec *cmd; -@@ -264,7 +266,7 @@ int sftp_kbdint_recv_response(pool *p, unsigned int *count, - int res; - - if (p == NULL || -- count == NULL || -+ rcvd_count == NULL || - responses == NULL) { - errno = EINVAL; - return -1; -@@ -299,6 +301,29 @@ int sftp_kbdint_recv_response(pool *p, unsigned int *count, - - resp_count = sftp_msg_read_int(pkt->pool, &buf, &buflen); - -+ /* Ensure that the number of responses sent by the client is the same -+ * as the number of challenges sent, lest a malicious client attempt to -+ * trick us into allocating too much memory (Bug#3973). -+ */ -+ if (resp_count != expected_count) { -+ (void) pr_log_writefile(sftp_logfd, MOD_SFTP_VERSION, -+ "sent %lu %s, but received %lu %s", (unsigned long) expected_count, -+ expected_count != 1 ? "challenges" : "challenge", -+ (unsigned long) resp_count, resp_count != 1 ? "responses" : "response"); -+ destroy_pool(pkt->pool); -+ errno = EPERM; -+ return -1; -+ } -+ -+ if (resp_count > SFTP_KBDINT_MAX_RESPONSES) { -+ (void) pr_log_writefile(sftp_logfd, MOD_SFTP_VERSION, -+ "received too many responses (%lu > max %lu), rejecting", -+ (unsigned long) resp_count, (unsigned long) SFTP_KBDINT_MAX_RESPONSES); -+ destroy_pool(pkt->pool); -+ errno = EPERM; -+ return -1; -+ } -+ - list = make_array(p, resp_count, sizeof(char *)); - for (i = 0; i < resp_count; i++) { - char *resp; -@@ -307,7 +332,7 @@ int sftp_kbdint_recv_response(pool *p, unsigned int *count, - *((char **) push_array(list)) = pstrdup(p, sftp_utf8_decode_str(p, resp)); - } - -- *count = (unsigned int) resp_count; -+ *rcvd_count = (unsigned int) resp_count; - *responses = ((const char **) list->elts); - return 0; - } -diff --git a/contrib/mod_sftp/mod_sftp.h.in b/contrib/mod_sftp/mod_sftp.h.in -index 3e91390..c547be0 100644 ---- a/contrib/mod_sftp/mod_sftp.h.in -+++ b/contrib/mod_sftp/mod_sftp.h.in -@@ -1,6 +1,6 @@ - /* - * ProFTPD - mod_sftp -- * Copyright (c) 2008-2011 TJ Saunders -+ * Copyright (c) 2008-2013 TJ Saunders - * - * 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 -@@ -174,7 +174,8 @@ int sftp_kbdint_register_driver(const char *name, sftp_kbdint_driver_t *driver); - int sftp_kbdint_unregister_driver(const char *name); - int sftp_kbdint_send_challenge(const char *, const char *, unsigned int, - sftp_kbdint_challenge_t *); --int sftp_kbdint_recv_response(pool *, unsigned int *, const char ***); -+int sftp_kbdint_recv_response(pool *, unsigned int, unsigned int *, -+ const char ***); - - /* API for modules that which to register keystores, for the - * SFTPAuthorizedHostKeys and SFTPAuthorizedUserKeys directives. -diff --git a/contrib/mod_sftp_pam.c b/contrib/mod_sftp_pam.c -index 6c32df0..81aa113 100644 ---- a/contrib/mod_sftp_pam.c -+++ b/contrib/mod_sftp_pam.c -@@ -179,22 +179,13 @@ static int sftppam_converse(int nmsgs, PR_PAM_CONST struct pam_message **msgs, - return PAM_CONV_ERR; - } - -- if (sftp_kbdint_recv_response(sftppam_driver.driver_pool, &recvd_count, -- &recvd_responses) < 0) { -+ if (sftp_kbdint_recv_response(sftppam_driver.driver_pool, list->nelts, -+ &recvd_count, &recvd_responses) < 0) { - pr_trace_msg(trace_channel, 3, - "error receiving keyboard-interactive responses: %s", strerror(errno)); - return PAM_CONV_ERR; - } - -- /* Make sure that the count of responses matches the challenge count. */ -- if (recvd_count != list->nelts) { -- (void) pr_log_writefile(sftp_logfd, MOD_SFTP_PAM_VERSION, -- "sent %d %s, but received %u %s", nmsgs, -- list->nelts != 1 ? "challenges" : "challenge", recvd_count, -- recvd_count != 1 ? "responses" : "response"); -- return PAM_CONV_ERR; -- } -- - res = calloc(nmsgs, sizeof(struct pam_response)); - if (res == NULL) { - pr_log_pri(PR_LOG_CRIT, "Out of memory!"); diff --git a/meta-networking/recipes-daemons/proftpd/files/proftpd.service b/meta-networking/recipes-daemons/proftpd/files/proftpd.service new file mode 100644 index 0000000000..ba97f8e1ca --- /dev/null +++ b/meta-networking/recipes-daemons/proftpd/files/proftpd.service @@ -0,0 +1,7 @@ +[Unit] +Description=proftpd Daemon + +[Service] +Type=forking +ExecStart=-@SBINDIR@/proftpd -c @SYSCONFDIR@/proftpd.conf +StandardError=syslog diff --git a/meta-networking/recipes-daemons/proftpd/proftpd_1.3.4b.bb b/meta-networking/recipes-daemons/proftpd/proftpd_1.3.4b.bb deleted file mode 100644 index a5e766af5d..0000000000 --- a/meta-networking/recipes-daemons/proftpd/proftpd_1.3.4b.bb +++ /dev/null @@ -1,73 +0,0 @@ -SUMMARY = "Secure and configurable FTP server" -SECTION = "console/network" -HOMEPAGE = "http://www.proftpd.org" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=fb0d1484d11915fa88a6a7702f1dc184" - -PR = "r4" - -SRC_URI = "ftp://ftp.proftpd.org/distrib/source/${BPN}-${PV}.tar.gz \ - file://make.patch \ - file://basic.conf.patch \ - file://contrib.patch \ - file://proftpd-basic.init \ - file://default \ - file://move-pidfile-to-var-run.patch \ - file://close-RequireValidShell-check.patch \ - file://move-runfile-to-var-run.patch \ - file://proftpd-sftp.patch \ -" - -SRC_URI[md5sum] = "0871e0b93c9c3c88ca950b6d9a04aed2" -SRC_URI[sha256sum] = "9f659585cea90fc6af34a0ffae4a90e4ed37abe92dbd9b6c311f95a436c961cb" - -inherit autotools-brokensep useradd update-rc.d - -PACKAGECONFIG ??= "" -PACKAGECONFIG[curses] = "--enable-curses --enable-ncurses,--disable-curses --disable-ncurses,ncurses" - -EXTRA_OECONF = "--disable-cap \ - --disable-auth-pam \ -" - -# proftpd uses libltdl which currently makes configuring using -# autotools.bbclass a pain... -do_configure () { - oe_runconf -} - -FTPUSER = "ftp" -FTPGROUP = "ftp" - -do_install () { - oe_runmake DESTDIR=${D} install - rmdir ${D}${libdir}/proftpd ${D}${datadir}/locale - [ -d ${D}${libexecdir} ] && rmdir ${D}${libexecdir} - sed -i '/ *User[ \t]*/s/ftp/${FTPUSER}/' ${D}${sysconfdir}/proftpd.conf - sed -i '/ *Group[ \t]*/s/ftp/${FTPGROUP}/' ${D}${sysconfdir}/proftpd.conf - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/proftpd-basic.init ${D}${sysconfdir}/init.d/proftpd - sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/proftpd - sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/proftpd - sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/proftpd - sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/proftpd - - install -d ${D}${sysconfdir}/default - install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/proftpd - - # create the pub directory - mkdir -p ${D}/home/${FTPUSER}/pub/ - chown -R ${FTPUSER}:${FTPGROUP} ${D}/home/${FTPUSER}/pub -} - -INITSCRIPT_NAME = "proftpd" -INITSCRIPT_PARAM = "defaults 85 15" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "--system ${FTPGROUP}" -USERADD_PARAM_${PN} = "--system -g ${FTPGROUP} --home-dir /var/lib/${FTPUSER} --no-create-home \ - --shell /bin/false ${FTPUSER}" - -FILES_${PN} += "/home/${FTPUSER}" - -RDEPENDS_${PN} += "perl" diff --git a/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5.bb b/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5.bb new file mode 100644 index 0000000000..13c9410012 --- /dev/null +++ b/meta-networking/recipes-daemons/proftpd/proftpd_1.3.5.bb @@ -0,0 +1,113 @@ +SUMMARY = "Secure and configurable FTP server" +SECTION = "console/network" +HOMEPAGE = "http://www.proftpd.org" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb0d1484d11915fa88a6a7702f1dc184" + +SRC_URI = "ftp://ftp.proftpd.org/distrib/source/${BPN}-${PV}.tar.gz \ + file://basic.conf.patch \ + file://proftpd-basic.init \ + file://default \ + file://close-RequireValidShell-check.patch \ + file://contrib.patch \ + file://build_fixup.patch \ + file://proftpd.service \ + " + +SRC_URI[md5sum] = "aff1bff40e675244d72c4667f203e5bb" +SRC_URI[sha256sum] = "c10316fb003bd25eccbc08c77dd9057e053693e6527ffa2ea2cc4e08ccb87715" + +inherit autotools-brokensep useradd update-rc.d systemd + +PACKAGECONFIG ??= "sia shadow" +PACKAGECONFIG += " ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}" +PACKAGECONFIG += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" + +PACKAGECONFIG[curses] = "--enable-curses --enable-ncurses, --disable-curses --disable-ncurses, ncurses" +PACKAGECONFIG[openssl] = "--enable-openssl, --disable-openssl, openssl, openssl" +PACKAGECONFIG[pam] = "--enable-auth-pam, --disable-auth-pam, libpam, libpam" +PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6" +PACKAGECONFIG[shadow] = "--enable-shadow, --disable-shadow" +PACKAGECONFIG[pcre] = "--enable-pcre, --disable-pcre, libpcre " + +# enable POSIX.1e capabilities +PACKAGECONFIG[cap] = "--enable-cap, --disable-cap, libcap, libcap" + +#enable support for POSIX ACLs +PACKAGECONFIG[acl] = "--enable-facl, --disable-facl" + +#enable proftpd controls via ftpdct +PACKAGECONFIG[ctrls] = "--enable-ctrls, --disable-crtls" + +#prevent proftpd from using its bundled getopt implementation. +PACKAGECONFIG[getopt] = "--with-getopt, --without-getopt" + +#do not strip debugging symbols from installed code +PACKAGECONFIG[strip] = "--enable-strip, --disable-strip" + +#enable SIA authentication support (Tru64) +PACKAGECONFIG[sia] = "--enable-sia, --disable-sia" +PACKAGECONFIG[sendfile] = "-enable-sendfile, --disable-sendfile" + +#enable Native Language Support (NLS) +PACKAGECONFIG[nls] = "--enable-nls, --disable-nls" + +#add mod_dso to core modules +PACKAGECONFIG[dso] = "--enable-dso, --disable-dso" +PACKAGECONFIG[largefile] = "--enable-largefile, --disable-largefile" + +#omit mod_auth_file from core modules +PACKAGECONFIG[auth] = "--enable-auth-file, --disable-auth-file" + + +# proftpd uses libltdl which currently makes configuring using +# autotools.bbclass a pain... +do_configure () { + oe_runconf +} + +FTPUSER = "ftp" +FTPGROUP = "ftp" + +do_install () { + oe_runmake DESTDIR=${D} install + rmdir ${D}${libdir}/proftpd ${D}${datadir}/locale + [ -d ${D}${libexecdir} ] && rmdir ${D}${libexecdir} + sed -i '/ *User[ \t]*/s/ftp/${FTPUSER}/' ${D}${sysconfdir}/proftpd.conf + sed -i '/ *Group[ \t]*/s/ftp/${FTPGROUP}/' ${D}${sysconfdir}/proftpd.conf + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/proftpd-basic.init ${D}${sysconfdir}/init.d/proftpd + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/proftpd + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/proftpd + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/proftpd + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/proftpd + + install -d ${D}${sysconfdir}/default + install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/proftpd + + # create the pub directory + mkdir -p ${D}/home/${FTPUSER}/pub/ + chown -R ${FTPUSER}:${FTPGROUP} ${D}/home/${FTPUSER}/pub + + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/proftpd.service ${D}/${systemd_unitdir}/system + sed -e 's,@BASE_SBINDIR@,${base_sbindir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + -i ${D}${systemd_unitdir}/system/*.service +} + +INITSCRIPT_NAME = "proftpd" +INITSCRIPT_PARAM = "defaults 85 15" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "proftpd.service" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system ${FTPGROUP}" +USERADD_PARAM_${PN} = "--system -g ${FTPGROUP} --home-dir /var/lib/${FTPUSER} --no-create-home \ + --shell /bin/false ${FTPUSER}" + +FILES_${PN} += "/home/${FTPUSER}" + +RDEPENDS_${PN} += "perl" diff --git a/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-add-dpaa-etsec-support.patch b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-add-dpaa-etsec-support.patch new file mode 100644 index 0000000000..abb3933106 --- /dev/null +++ b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-add-dpaa-etsec-support.patch @@ -0,0 +1,621 @@ +Add FSL QorIQ DPAA and eTSEC support + +This patch is for Freescale QorIQ DPAA and eTSEC which support 1588 hardware +assist module, and mainly uses SO_TIMESTAMPING API for HW timestamp and PHC +API. + +Signed-off-by: Lu Yangbo <yangbo.lu@freescale.com> +Upstream-Status: Submitted [http://sourceforge.net/p/ptpd/patches/56/] + +diff --git a/src/bmc.c b/src/bmc.c +index f4c74bd..925daba 100644 +--- a/src/bmc.c ++++ b/src/bmc.c +@@ -249,6 +249,7 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim + ptpClock->timePropertiesDS.ptpTimescale = IS_SET(header->flagField1, PTPT); + ptpClock->timePropertiesDS.timeSource = announce->timeSource; + ++#ifndef FSL_1588 + #if defined(MOD_TAI) && NTP_API == 4 + /* + * update kernel TAI offset, but only if timescale is +@@ -261,6 +262,7 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim + INFO("Set kernel UTC offset to %d\n", ptpClock->timePropertiesDS.currentUtcOffset); + } + #endif /* MOD_TAI */ ++#endif + + /* Leap second handling */ + +@@ -280,9 +282,11 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim + ptpClock->leapSecondPending = FALSE; + ptpClock->leapSecondInProgress = FALSE; + timerStop(LEAP_SECOND_PAUSE_TIMER, ptpClock->itimer); ++#ifndef FSL_1588 + #ifdef HAVE_SYS_TIMEX_H + unsetTimexFlags(STA_INS | STA_DEL,TRUE); + #endif /* HAVE_SYS_TIMEX_H */ ++#endif /* FSL_1588 */ + } + + /* +@@ -295,6 +299,7 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim + ((!previousLeap59 && ptpClock->timePropertiesDS.leap59) || + (!previousLeap61 && ptpClock->timePropertiesDS.leap61)))) { + #ifdef HAVE_SYS_TIMEX_H ++#ifndef FSL_1588 + WARNING("Leap second pending! Setting kernel to %s " + "one second at midnight\n", + ptpClock->timePropertiesDS.leap61 ? "add" : "delete"); +@@ -304,6 +309,7 @@ void s1(MsgHeader *header,MsgAnnounce *announce,PtpClock *ptpClock, const RunTim + setTimexFlags(ptpClock->timePropertiesDS.leap61 ? STA_INS : STA_DEL, + FALSE); + } ++#endif + #else + WARNING("Leap second pending! No kernel leap second " + "API support - expect a clock jump at " +diff --git a/src/dep/net.c b/src/dep/net.c +index 34d23ad..9075847 100644 +--- a/src/dep/net.c ++++ b/src/dep/net.c +@@ -85,6 +85,9 @@ + #include <linux/ethtool.h> + #endif /* SO_TIMESTAMPING */ + ++#if defined(FSL_1588) ++char fsl_1588_if_name[IFACE_NAME_LENGTH]; ++#endif + /** + * shutdown the IPv4 multicast for specific address + * +@@ -461,6 +464,9 @@ testInterface(char * ifaceName, RunTimeOpts* rtOpts) + if(getInterfaceInfo(ifaceName, &info) != 1) + return FALSE; + ++#if defined(FSL_1588) ++ memcpy(fsl_1588_if_name, ifaceName, IFACE_NAME_LENGTH); ++#endif + switch(rtOpts->transport) { + + case UDP_IPV4: +@@ -666,6 +672,27 @@ end: + } + #endif /* SO_TIMESTAMPING */ + ++#if defined(FSL_1588) ++/* select HWTSTAMP_TX_ON or HWTSTAMP_TX_OFF */ ++void hwtstamp_tx_ctl(NetPath *netPath, Boolean enable) ++{ ++ struct ifreq hwtstamp; ++ struct hwtstamp_config hwconfig; ++ ++ memset(&hwtstamp, 0, sizeof(hwtstamp)); ++ strncpy(hwtstamp.ifr_name, fsl_1588_if_name, sizeof(hwtstamp.ifr_name)); ++ hwtstamp.ifr_data = (void *)&hwconfig; ++ memset(&hwconfig, 0, sizeof(hwconfig)); ++ hwconfig.tx_type = ++ enable ? ++ HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF; ++ hwconfig.rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_SYNC; ++ if (ioctl(netPath->eventSock, SIOCSHWTSTAMP, &hwtstamp) < 0 ++ || ioctl(netPath->generalSock, SIOCSHWTSTAMP, &hwtstamp) < 0) ++ printf("error:hwtstamp_tx_ctl\n"); ++} ++#endif ++ + + /** + * Initialize timestamping of packets +@@ -682,10 +709,17 @@ netInitTimestamping(NetPath * netPath, RunTimeOpts * rtOpts) + Boolean result = TRUE; + #if defined(SO_TIMESTAMPING) && defined(SO_TIMESTAMPNS)/* Linux - current API */ + DBG("netInitTimestamping: trying to use SO_TIMESTAMPING\n"); ++#if defined(FSL_1588) ++ val = SOF_TIMESTAMPING_TX_HARDWARE | ++ SOF_TIMESTAMPING_RX_HARDWARE | ++ SOF_TIMESTAMPING_RAW_HARDWARE; ++#else + val = SOF_TIMESTAMPING_TX_SOFTWARE | + SOF_TIMESTAMPING_RX_SOFTWARE | + SOF_TIMESTAMPING_SOFTWARE; ++#endif + ++#ifndef FSL_1588 + /* unless compiled with PTPD_EXPERIMENTAL, check if we support the desired tstamp capabilities */ + #ifndef PTPD_EXPERIMENTAL + #ifdef ETHTOOL_GET_TS_INFO +@@ -716,6 +750,7 @@ netInitTimestamping(NetPath * netPath, RunTimeOpts * rtOpts) + val = 1; + #endif /* ETHTOOL_GET_TS_INFO */ + #endif /* PTPD_EXPERIMENTAL */ ++#endif /* FSL_1588 */ + + if(val == 1) { + if (setsockopt(netPath->eventSock, SOL_SOCKET, SO_TIMESTAMPNS, &val, sizeof(int)) < 0) { +@@ -902,6 +937,9 @@ netInit(NetPath * netPath, RunTimeOpts * rtOpts, PtpClock * ptpClock) + + DBG("Listening on IP: %s\n",inet_ntoa( + ((struct sockaddr_in*)&(netPath->interfaceInfo.afAddress))->sin_addr)); ++#if defined(FSL_1588) ++ hwtstamp_tx_ctl(&ptpClock->netPath, FALSE);/* HWTSTAMP_TX_OFF */ ++#endif + + #ifdef PTPD_PCAP + if (rtOpts->pcap == TRUE) { +@@ -1319,7 +1357,11 @@ netRecvEvent(Octet * buf, TimeInternal * time, NetPath * netPath, int flags) + #if defined(SO_TIMESTAMPING) && defined(SO_TIMESTAMPNS) + if(cmsg->cmsg_type == SO_TIMESTAMPING || + cmsg->cmsg_type == SO_TIMESTAMPNS) { ++#if defined(FSL_1588) ++ ts = (struct timespec *)CMSG_DATA(cmsg) + 2; ++#else + ts = (struct timespec *)CMSG_DATA(cmsg); ++#endif + time->seconds = ts->tv_sec; + time->nanoseconds = ts->tv_nsec; + timestampValid = TRUE; +@@ -1520,6 +1562,9 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, + ssize_t ret; + struct sockaddr_in addr; + ++#if defined(FSL_1588) ++ hwtstamp_tx_ctl(netPath, TRUE);/* HWTSTAMP_TX_ON */ ++#endif + addr.sin_family = AF_INET; + addr.sin_port = htons(PTP_EVENT_PORT); + +@@ -1559,6 +1604,9 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, + DBG("Error sending unicast event message\n"); + else + netPath->sentPackets++; ++#if defined(FSL_1588) ++ usleep(100); ++#endif + #ifndef SO_TIMESTAMPING + /* + * Need to forcibly loop back the packet since +@@ -1574,10 +1622,14 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, + #else + if(!netPath->txTimestampFailure) { + if(!getTxTimestamp(netPath, tim)) { ++#if defined(FSL_1588) ++ printf("getTxTimestamp: get tx timestamp error\n"); ++#else + netPath->txTimestampFailure = TRUE; + if (tim) { + clearTime(tim); + } ++#endif + } + } + +@@ -1609,9 +1661,15 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, + DBG("Error sending multicast event message\n"); + else + netPath->sentPackets++; ++#if defined(FSL_1588) ++ usleep(100); ++#endif + #ifdef SO_TIMESTAMPING + if(!netPath->txTimestampFailure) { + if(!getTxTimestamp(netPath, tim)) { ++#if defined(FSL_1588) ++ printf("getTxTimestamp: get tx timestamp error\n"); ++#else + if (tim) { + clearTime(tim); + } +@@ -1620,6 +1678,7 @@ netSendEvent(Octet * buf, UInteger16 length, NetPath * netPath, + + /* Try re-enabling MULTICAST_LOOP */ + netSetMulticastLoopback(netPath, TRUE); ++#endif + } + } + #endif /* SO_TIMESTAMPING */ +@@ -1638,6 +1697,9 @@ netSendGeneral(Octet * buf, UInteger16 length, NetPath * netPath, + ssize_t ret; + struct sockaddr_in addr; + ++#if defined(FSL_1588) ++ hwtstamp_tx_ctl(netPath, TRUE);/* HWTSTAMP_TX_ON */ ++#endif + addr.sin_family = AF_INET; + addr.sin_port = htons(PTP_GENERAL_PORT); + +@@ -1707,6 +1769,9 @@ netSendPeerGeneral(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpt + ssize_t ret; + struct sockaddr_in addr; + ++#if defined(FSL_1588) ++ hwtstamp_tx_ctl(netPath, TRUE);/* HWTSTAMP_TX_ON */ ++#endif + addr.sin_family = AF_INET; + addr.sin_port = htons(PTP_GENERAL_PORT); + +@@ -1762,6 +1827,9 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts + ssize_t ret; + struct sockaddr_in addr; + ++#if defined(FSL_1588) ++ hwtstamp_tx_ctl(netPath, TRUE);/* HWTSTAMP_TX_ON */ ++#endif + addr.sin_family = AF_INET; + addr.sin_port = htons(PTP_EVENT_PORT); + +@@ -1788,6 +1856,9 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts + DBG("Error sending unicast peer event message\n"); + else + netPath->sentPackets++; ++#if defined(FSL_1588) ++ usleep(100); ++#endif + + #ifndef SO_TIMESTAMPING + /* +@@ -1804,10 +1875,14 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts + #else + if(!netPath->txTimestampFailure) { + if(!getTxTimestamp(netPath, tim)) { ++#if defined(FSL_1588) ++ printf("getTxTimestamp: get tx timestamp error\n"); ++#else + netPath->txTimestampFailure = TRUE; + if (tim) { + clearTime(tim); + } ++#endif + } + } + +@@ -1839,9 +1914,15 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts + DBG("Error sending multicast peer event message\n"); + else + netPath->sentPackets++; ++#if defined(FSL_1588) ++ usleep(100); ++#endif + #ifdef SO_TIMESTAMPING + if(!netPath->txTimestampFailure) { + if(!getTxTimestamp(netPath, tim)) { ++#if defined(FSL_1588) ++ printf("getTxTimestamp: get tx timestamp error\n"); ++#else + if (tim) { + clearTime(tim); + } +@@ -1850,6 +1931,7 @@ netSendPeerEvent(Octet * buf, UInteger16 length, NetPath * netPath, RunTimeOpts + + /* Try re-enabling MULTICAST_LOOP */ + netSetMulticastLoopback(netPath, TRUE); ++#endif + } + } + #endif /* SO_TIMESTAMPING */ +diff --git a/src/dep/ntpengine/ntpdcontrol.c b/src/dep/ntpengine/ntpdcontrol.c +index d773284..e84af9e 100644 +--- a/src/dep/ntpengine/ntpdcontrol.c ++++ b/src/dep/ntpengine/ntpdcontrol.c +@@ -170,6 +170,15 @@ get_systime( + { + double dtemp; + ++#if defined(FSL_1588) ++ struct timespec tp; ++ clock_gettime(clkid, &tp); ++ tv.tv_sec = tp.tv_sec; ++ tv.tv_usec = tp.tv_nsec / 1000; ++ ++ now->l_i = tv.tv_sec + JAN_1970; ++ dtemp = tv.tv_usec / 1e6; ++#else /* FSL_1588 */ + #if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_GETCLOCK) + struct timespec ts; /* seconds and nanoseconds */ + +@@ -195,6 +204,7 @@ get_systime( + dtemp = tv.tv_usec / 1e6; + + #endif /* HAVE_CLOCK_GETTIME || HAVE_GETCLOCK */ ++#endif /* FSL_1588 */ + + /* + * Renormalize to seconds past 1900 and fraction. +diff --git a/src/dep/ptpd_dep.h b/src/dep/ptpd_dep.h +index 8778988..03ae642 100644 +--- a/src/dep/ptpd_dep.h ++++ b/src/dep/ptpd_dep.h +@@ -14,6 +14,7 @@ + #define PTPD_DBGV + #endif + ++#define FSL_1588 1 + /** \name System messages*/ + /**\{*/ + +@@ -280,6 +281,11 @@ UInteger16 msgPackManagementResponse(Octet * buf,MsgHeader*,MsgManagement*,PtpCl + * -Init network stuff, send and receive datas*/ + /**\{*/ + ++#if defined(FSL_1588) ++extern char fsl_1588_if_name[IFACE_NAME_LENGTH]; ++/* select HWTSTAMP_TX_ON or HWTSTAMP_TX_OFF */ ++void hwtstamp_tx_ctl(NetPath *netPath, Boolean enable); ++#endif + Boolean testInterface(char* ifaceName, RunTimeOpts* rtOpts); + Boolean netInit(NetPath*,RunTimeOpts*,PtpClock*); + Boolean netShutdown(NetPath*); +@@ -357,6 +363,10 @@ void restartLogging(RunTimeOpts* rtOpts); + void logStatistics(RunTimeOpts *rtOpts, PtpClock *ptpClock); + void displayStatus(PtpClock *ptpClock, const char *prefixMessage); + void displayPortIdentity(PortIdentity *port, const char *prefixMessage); ++#if defined(FSL_1588) ++clockid_t get_clockid(int fd); ++int clock_adjtime(clockid_t id, struct timex *tx); ++#endif + Boolean nanoSleep(TimeInternal*); + void getTime(TimeInternal*); + void setTime(TimeInternal*); +@@ -378,12 +388,15 @@ void adjTime(Integer32); + void adjFreq_wrapper(RunTimeOpts * rtOpts, PtpClock * ptpClock, double adj); + Boolean adjFreq(double); + double getAdjFreq(void); ++#ifndef FSL_1588 + void informClockSource(PtpClock* ptpClock); ++#endif + + /* Observed drift save / recovery functions */ + void restoreDrift(PtpClock * ptpClock, RunTimeOpts * rtOpts, Boolean quiet); + void saveDrift(PtpClock * ptpClock, RunTimeOpts * rtOpts, Boolean quiet); + ++#ifndef FSL_1588 + /* Helper function to manage ntpadjtime / adjtimex flags */ + void setTimexFlags(int flags, Boolean quiet); + void unsetTimexFlags(int flags, Boolean quiet); +@@ -393,6 +406,7 @@ Boolean checkTimexFlags(int flags); + #if defined(MOD_TAI) && NTP_API == 4 + void setKernelUtcOffset(int utc_offset); + #endif /* MOD_TAI */ ++#endif + + #endif /* HAVE_SYS_TIMEX_H */ + +diff --git a/src/dep/servo.c b/src/dep/servo.c +index 06215e6..6651a20 100644 +--- a/src/dep/servo.c ++++ b/src/dep/servo.c +@@ -1013,10 +1013,12 @@ if(rtOpts->ntpOptions.enableEngine && rtOpts->panicModeNtp) { + /* Adjust the clock first -> the PI controller runs here */ + adjFreq_wrapper(rtOpts, ptpClock, runPIservo(&ptpClock->servo, ptpClock->offsetFromMaster.nanoseconds)); + warn_operator_fast_slewing(rtOpts, ptpClock, ptpClock->servo.observedDrift); ++#ifndef FSL_1588 + /* Unset STA_UNSYNC */ + unsetTimexFlags(STA_UNSYNC, TRUE); + /* "Tell" the clock about maxerror, esterror etc. */ + informClockSource(ptpClock); ++#endif /* FSL_1588 */ + #endif /* HAVE_SYS_TIMEX_H */ + } + +diff --git a/src/dep/sys.c b/src/dep/sys.c +index 52b274c..8551724 100644 +--- a/src/dep/sys.c ++++ b/src/dep/sys.c +@@ -344,7 +344,14 @@ int writeMessage(FILE* destination, int priority, const char * format, va_list a + * it also can cause problems in nested debug statements (which are solved by turning the signal + * handling synchronous, and not calling this function inside asycnhronous signal processing) + */ ++#if defined(FSL_1588) ++ struct timespec tp; ++ clock_gettime(clkid, &tp); ++ now.tv_sec = tp.tv_sec; ++ now.tv_usec = tp.tv_nsec / 1000; ++#else + gettimeofday(&now, 0); ++#endif + strftime(time_str, MAXTIMESTR, "%F %X", localtime((time_t*)&now.tv_sec)); + fprintf(destination, "%s.%06d ", time_str, (int)now.tv_usec ); + fprintf(destination,PTPD_PROGNAME"[%d].%s (%-9s ", +@@ -1174,13 +1181,33 @@ nanoSleep(TimeInternal * t) + return TRUE; + } + ++#if defined(FSL_1588) ++clockid_t get_clockid(int fd) ++{ ++#define CLOCKFD 3 ++#define FD_TO_CLOCKID(fd) ((~(clockid_t) (fd) << 3) | CLOCKFD) ++ return FD_TO_CLOCKID(fd); ++} ++ ++/* When glibc offers the syscall, this will go away. */ ++#include <sys/syscall.h> ++int clock_adjtime(clockid_t id, struct timex *tx) ++{ ++ return syscall(__NR_clock_adjtime, id, tx); ++} ++#endif ++ + void + getTime(TimeInternal * time) + { +-#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) ++#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) || defined(FSL_1588) + + struct timespec tp; ++#if defined(FSL_1588) ++ if (clock_gettime(clkid, &tp) < 0) { ++#else + if (clock_gettime(CLOCK_REALTIME, &tp) < 0) { ++#endif + PERROR("clock_gettime() failed, exiting."); + exit(0); + } +@@ -1201,7 +1228,7 @@ void + setTime(TimeInternal * time) + { + +-#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) ++#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) || defined(FSL_1588) + + struct timespec tp; + tp.tv_sec = time->seconds; +@@ -1215,9 +1242,13 @@ setTime(TimeInternal * time) + + #endif /* _POSIX_TIMERS */ + +-#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) + ++#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0) || defined(FSL_1588) ++#if defined(FSL_1588) ++ if (clock_settime(clkid, &tp) < 0) { ++#else + if (clock_settime(CLOCK_REALTIME, &tp) < 0) { ++#endif + PERROR("Could not set system time"); + return; + } +@@ -1595,7 +1626,11 @@ adjFreq(double adj) + #endif /* HAVE_STRUCT_TIMEX_TICK */ + DBG2(" adj is %.09f; t freq is %d (float: %.09f)\n", adj, t.freq, dFreq); + ++#if defined(FSL_1588) ++ return !clock_adjtime(clkid, &t); ++#else + return !adjtimex(&t); ++#endif + } + + +@@ -1609,7 +1644,11 @@ getAdjFreq(void) + + memset(&t, 0, sizeof(t)); + t.modes = 0; ++#if defined(FSL_1588) ++ clock_adjtime(clkid, &t); ++#else + adjtimex(&t); ++#endif + + dFreq = (t.freq + 0.0) / ((1<<16) / 1000.0); + +@@ -1764,6 +1803,7 @@ saveDrift(PtpClock * ptpClock, RunTimeOpts * rtOpts, Boolean quiet) + fclose(driftFP); + } + ++#ifndef FSL_1588 + void + setTimexFlags(int flags, Boolean quiet) + { +@@ -1922,6 +1962,7 @@ setKernelUtcOffset(int utc_offset) { + } + } + #endif /* MOD_TAI */ ++#endif /* FSL_1588 */ + + + #else +diff --git a/src/protocol.c b/src/protocol.c +index c73728b..90554f3 100644 +--- a/src/protocol.c ++++ b/src/protocol.c +@@ -615,6 +615,7 @@ if(!rtOpts->panicModeNtp || !ptpClock->panicMode) + timerStart(STATISTICS_UPDATE_TIMER, rtOpts->statsUpdateInterval, ptpClock->itimer); + #endif /* PTPD_STATISTICS */ + ++#ifndef FSL_1588 + #ifdef HAVE_SYS_TIMEX_H + + /* +@@ -632,6 +633,7 @@ if(!rtOpts->panicModeNtp || !ptpClock->panicMode) + unsetTimexFlags(STA_INS | STA_DEL, TRUE); + } + #endif /* HAVE_SYS_TIMEX_H */ ++#endif /* FSL_1588 */ + break; + default: + DBG("to unrecognized state\n"); +@@ -934,6 +936,7 @@ doState(RunTimeOpts *rtOpts, PtpClock *ptpClock) + WARNING("Leap second event imminent - pausing " + "clock and offset updates\n"); + ptpClock->leapSecondInProgress = TRUE; ++#ifndef FSL_1588 + #ifdef HAVE_SYS_TIMEX_H + if(!checkTimexFlags(ptpClock->timePropertiesDS.leap61 ? + STA_INS : STA_DEL)) { +@@ -944,6 +947,7 @@ doState(RunTimeOpts *rtOpts, PtpClock *ptpClock) + STA_INS : STA_DEL, FALSE); + } + #endif /* HAVE_SYS_TIMEX_H */ ++#endif /* FSL_1588 */ + /* + * start pause timer from now until [pause] after + * midnight, plus an extra second if inserting +@@ -1290,6 +1294,9 @@ handle(RunTimeOpts *rtOpts, PtpClock *ptpClock) + int ret; + ssize_t length = -1; + ++#if defined(FSL_1588) ++ hwtstamp_tx_ctl(&ptpClock->netPath, FALSE);/* HWTSTAMP_TX_OFF */ ++#endif + TimeInternal timeStamp = { 0, 0 }; + fd_set readfds; + +@@ -1437,9 +1444,11 @@ handleAnnounce(MsgHeader *header, ssize_t length, + ptpClock->leapSecondInProgress=FALSE; + ptpClock->timePropertiesDS.leap59 = FALSE; + ptpClock->timePropertiesDS.leap61 = FALSE; ++#ifndef FSL_1588 + #ifdef HAVE_SYS_TIMEX_H + unsetTimexFlags(STA_INS | STA_DEL, TRUE); + #endif /* HAVE_SYS_TIMEX_H */ ++#endif /* FSL_1588 */ + } + } + DBG2("___ Announce: received Announce from current Master, so reset the Announce timer\n"); +diff --git a/src/ptpd.c b/src/ptpd.c +index 3fad379..471b1e9 100644 +--- a/src/ptpd.c ++++ b/src/ptpd.c +@@ -78,6 +78,21 @@ main(int argc, char **argv) + PtpClock *ptpClock; + Integer16 ret; + ++#if defined(FSL_1588) ++ char device[] = "/dev/ptp0"; ++ int fd; ++ ++ fd = open(device, O_RDWR); ++ if (fd < 0) { ++ fprintf(stderr, "opening %s: %s\n", device, strerror(errno)); ++ return -1; ++ } ++ clkid = get_clockid(fd); ++ if (clkid == -1) { ++ fprintf(stderr, "failed to read clock id\n"); ++ return -1; ++ } ++#endif + startupInProgress = TRUE; + + /* Initialize run time options with command line arguments */ +diff --git a/src/ptpd.h b/src/ptpd.h +index 009f51c..6641649 100644 +--- a/src/ptpd.h ++++ b/src/ptpd.h +@@ -172,6 +172,15 @@ + #include <linux/rtc.h> + #endif /* HAVE_LINUX_RTC_H */ + ++#ifdef FSL_1588 ++#ifndef SO_TIMESTAMPING ++#define SO_TIMESTAMPING 37 ++#endif ++#ifndef HAVE_SYS_TIMEX_H ++#define HAVE_SYS_TIMEX_H 1 ++#endif ++clockid_t clkid; ++#endif + /** \name arith.c + * -Timing management and arithmetic*/ + /**\{*/ diff --git a/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch new file mode 100644 index 0000000000..e4578dda74 --- /dev/null +++ b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch @@ -0,0 +1,35 @@ +From 4c850b92a1cf8cfa19677c66bcde2edfab1a4490 Mon Sep 17 00:00:00 2001 +From: Joe MacDonald <joe_macdonald@mentor.com> +Date: Tue, 24 Feb 2015 23:02:14 -0500 +Subject: [PATCH] ptpd: use pkgconfig + +Yocto uses pkg-config for libpcap, rather than pcap-config, so use that +instead as the source for libs and cflags. + +Upstream-status: Inappropriate [ embedded specific ] + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index dc9541f..288f547 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -112,10 +112,10 @@ case "$try_pcap" in + yes) + case "$PATH_PCAP_CONFIG" in + /*) +- PCAP_LIBS=`$PATH_PCAP_CONFIG --libs` ++ PCAP_LIBS=`$PATH_PCAP_CONFIG --libs libpcap` + AC_SUBST([PCAP_LIBS]) + # Separate CPPFLAGS and CFLAGS +- foo=`$PATH_PCAP_CONFIG --cflags` ++ foo=`$PATH_PCAP_CONFIG --cflags libpcap` + PCAP_CPPFLAGS= + PCAP_CFLAGS= + for i in $foo; do +-- +1.9.1 + diff --git a/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.conf b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.conf new file mode 100644 index 0000000000..ddd571036f --- /dev/null +++ b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.conf @@ -0,0 +1,7 @@ +# +# PTPD Configuration +# +# See man ptpd2 for arguments. +# +# Example arguments +PTPDARGS="-d 1 -i eth0" diff --git a/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.service b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.service new file mode 100644 index 0000000000..f84799eb5f --- /dev/null +++ b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd.service @@ -0,0 +1,10 @@ +[Unit] +Description=ptpd time precision daemon + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/ptpd +ExecStart=@BINDIR@/ptpd2 $PTPDARGS + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1-rc2.bb b/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1-rc2.bb index db74e44631..0dcfc1f7d6 100644 --- a/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1-rc2.bb +++ b/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1-rc2.bb @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://README;md5=2452033fe374283f29579898663b1aa8" DEPENDS = "libpcap" -inherit autotools +inherit autotools systemd # return something like '1.2.3' or '1.2.3/rc1' # @@ -21,7 +21,12 @@ def get_sub(d): except: return parts[0] -SRC_URI = "http://downloads.sourceforge.net/project/ptpd/ptpd/${@get_sub(d)}/ptpd-${PV}.tar.gz" +SRC_URI = "http://downloads.sourceforge.net/project/ptpd/ptpd/${@get_sub(d)}/ptpd-${PV}.tar.gz \ + file://ptpd-add-dpaa-etsec-support.patch \ + file://ptpd-use-pkgconfig.patch \ + file://ptpd.service \ + file://ptpd.conf \ +" SRC_URI[md5sum] = "1ef2f1f2825080a865bbce0eb61246d4" SRC_URI[sha256sum] = "2802aab758649bb222859dfcb62a5d282709ccb4d3f1df3f26f739cc091d0c8d" @@ -30,10 +35,25 @@ S = "${WORKDIR}/ptpd-${PV}" EXTRA_OEMAKE = "" -EXTRA_OECONF += "--disable-snmp" +EXTRA_OECONF += "--disable-snmp --with-pcap-config=pkg-config" do_install() { install -d ${D}${bindir} ${D}${mandir}/man8 install -m 0755 ${B}/src/ptpd2 ${D}${bindir} install -m 0644 ${B}/src/ptpd2.8 ${D}${mandir}/man8 + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/ptpd.service ${D}${systemd_unitdir}/system + + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/ptpd.service + sed -i -e 's#@BINDIR@#${bindir}#g' ${D}${systemd_unitdir}/system/ptpd.service + + install -d ${D}${sysconfdir}/default/ + install -m 0644 ${WORKDIR}/ptpd.conf ${D}${sysconfdir}/default/ptpd + fi } + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "ptpd.service" +SYSTEMD_AUTO_ENABLE = "disable" diff --git a/meta-networking/recipes-daemons/radvd/files/radvd.default b/meta-networking/recipes-daemons/radvd/files/radvd.default new file mode 100644 index 0000000000..7cb73c7716 --- /dev/null +++ b/meta-networking/recipes-daemons/radvd/files/radvd.default @@ -0,0 +1 @@ +OPTIONS="-u radvd" diff --git a/meta-networking/recipes-daemons/radvd/files/radvd.service b/meta-networking/recipes-daemons/radvd/files/radvd.service index 3aac7b27db..e60798a6b3 100644 --- a/meta-networking/recipes-daemons/radvd/files/radvd.service +++ b/meta-networking/recipes-daemons/radvd/files/radvd.service @@ -4,11 +4,8 @@ After=network.target ConditionPathExists=@SYSCONFDIR@/radvd.conf [Service] -Type=forking -PIDFile=/var/run/radvd/radvd.pid EnvironmentFile=-@SYSCONFDIR@/default/radvd -ExecStartPre=@BASE_BINDIR@/mkdir -p /var/run/radvd -ExecStart=@SBINDIR@/radvd $OPTIONS +ExecStart=@SBINDIR@/radvd -n $OPTIONS [Install] WantedBy=multi-user.target diff --git a/meta-networking/recipes-daemons/radvd/radvd.inc b/meta-networking/recipes-daemons/radvd/radvd.inc index 85d1a85b13..6b595b07f3 100644 --- a/meta-networking/recipes-daemons/radvd/radvd.inc +++ b/meta-networking/recipes-daemons/radvd/radvd.inc @@ -17,7 +17,8 @@ LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=73ebbf7182ae996e65e8fadc9a8c45db" SRC_URI = "http://v6web.litech.org/radvd/dist/radvd-${PV}.tar.gz \ file://radvd.init \ file://radvd.service \ - file://volatiles.03_radvd" + file://volatiles.03_radvd \ + file://radvd.default" inherit autotools update-rc.d useradd pkgconfig systemd @@ -44,6 +45,9 @@ do_install_append () { -e 's#@SBINDIR@#${sbindir}#g' \ -e 's#@BASE_BINDIR@#${base_bindir}#g' ${D}${systemd_unitdir}/system/radvd.service + # Install default environment file + install -m 0644 ${WORKDIR}/radvd.default ${D}${sysconfdir}/default/radvd + # Documentation for i in radvd.conf.example README; do \ install -m 0644 ${S}/$i ${D}${docdir}/radvd; \ diff --git a/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch b/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch new file mode 100644 index 0000000000..5f845bb4cd --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch @@ -0,0 +1,31 @@ +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/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch b/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch new file mode 100644 index 0000000000..2304c5f1dd --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch @@ -0,0 +1,43 @@ +From 0d5b337ff5ef7dd48f970f08bd95d6327917cfd1 Mon Sep 17 00:00:00 2001 +Message-Id: <0d5b337ff5ef7dd48f970f08bd95d6327917cfd1.1382375807.git.Jim.Somerville@windriver.com> +From: Jim Somerville <Jim.Somerville@windriver.com> +Date: Mon, 21 Oct 2013 12:50:44 -0400 +Subject: [PATCH 1/1] Fix flawed dynamic -ldb link test in configure + +The test uses dbopen, but just ignores the fact +that this function may not exist in the db version +used. This leads to the dynamic link test failing +and the configure script just making assumptions +about why and setting the need for -ldb incorrectly. + +Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com> +--- + configure.ac | 12 ++++++++++-- + 1 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 962a748..42e6a93 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3051,8 +3051,16 @@ AC_CHECK_DECL(dbopen,,,[ + #include <db.h> + #endif]) + +-dnl 1.85 +-SQUID_CHECK_DBOPEN_NEEDS_LIBDB ++if test "x$ac_cv_have_decl_dbopen" = "xyes"; then ++ dnl 1.85 ++ SQUID_CHECK_DBOPEN_NEEDS_LIBDB ++else ++ # dbopen isn't there. So instead of running a compile/link test that ++ # uses it and is thus guaranteed to fail, we just assume that we will ++ # need to link in the db library, rather than fabricate some other ++ # dynamic compile/link test. ++ ac_cv_dbopen_libdb="yes" ++fi + if test "x$ac_cv_dbopen_libdb" = "xyes"; then + LIB_DB="-ldb" + fi +-- +1.7.4.1 + diff --git a/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch b/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch new file mode 100644 index 0000000000..4ca27444a4 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch @@ -0,0 +1,29 @@ +From 17e5a28667f667859c48bee25e575a072d39ee1b Mon Sep 17 00:00:00 2001 +Message-Id: <17e5a28667f667859c48bee25e575a072d39ee1b.1381956170.git.Jim.Somerville@windriver.com> +From: Jim Somerville <Jim.Somerville@windriver.com> +Date: Wed, 16 Oct 2013 16:41:03 -0400 +Subject: [PATCH 1/1] Set up for cross compilation + +Set the host compiler to BUILD_CXX so +proper cross compilation can occur. + +Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com> +--- + configure.ac | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c2d3033..dda9ed9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -19,6 +19,7 @@ m4_include([acinclude/lib-checks.m4]) + m4_include([acinclude/ax_cxx_compile_stdcxx_0x.m4]) + m4_include([acinclude/ax_cxx_0x_types.m4]) + ++HOSTCXX="$BUILD_CXX" + PRESET_CFLAGS="$CFLAGS" + PRESET_CXXFLAGS="$CXXFLAGS" + PRESET_LDFLAGS="$LDFLAGS" +-- +1.7.4.1 + diff --git a/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch b/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch new file mode 100644 index 0000000000..7b6dcc820d --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch @@ -0,0 +1,64 @@ +Subject: [PATCH] Skip AC_RUN_IFELSE tests + +Upstream-Status: Inappropriate [cross compiling specific] + +Such tests are not supported in a cross compile +environment. Choose sane defaults. + +Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com> +Signed-off-by: Jackie Huang <jackie.huang@windriver.com> +--- + acinclude/krb5.m4 | 10 +++++++++- + acinclude/lib-checks.m4 | 8 ++++++-- + 2 files changed, 15 insertions(+), 3 deletions(-) + +diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4 +index 946bea8..7a072a2 100644 +--- a/acinclude/krb5.m4 ++++ b/acinclude/krb5.m4 +@@ -82,7 +82,15 @@ 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 ++ squid_cv_broken_heimdal_krb5_h=no + ]) + ]) + ]) dnl SQUID_CHECK_KRB5_HEIMDAL_BROKEN_KRB5_H +diff --git a/acinclude/lib-checks.m4 b/acinclude/lib-checks.m4 +index 2bf98ee..50dba9b 100644 +--- a/acinclude/lib-checks.m4 ++++ b/acinclude/lib-checks.m4 +@@ -128,7 +128,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_GETCERTIFICATE_WORKS],[ + AC_DEFINE(SQUID_SSLGETCERTIFICATE_BUGGY, 1) + AC_MSG_RESULT([yes]) + ], +- []) ++ [ ++ AC_MSG_RESULT([skipped - can't test in cross-compiled env]) ++ ]) + + AC_MSG_CHECKING(whether the workaround for SSL_get_certificate works) + AC_RUN_IFELSE([ +@@ -154,7 +156,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_GETCERTIFICATE_WORKS],[ + [ + AC_MSG_RESULT([no]) + ], +-[]) ++[ ++ AC_MSG_RESULT([skipped - can't test in cross-compiled env]) ++]) + + SQUID_STATE_ROLLBACK(check_SSL_get_certificate) + ]) +-- +1.7.1 + diff --git a/meta-networking/recipes-daemons/squid/files/run-ptest b/meta-networking/recipes-daemons/squid/files/run-ptest new file mode 100644 index 0000000000..de79a293c5 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh +# +make -C test-suite -k runtest-TESTS diff --git a/meta-networking/recipes-daemons/squid/files/squid-change-ksh-reference-in-krb-ldap-helper-to-sh.patch b/meta-networking/recipes-daemons/squid/files/squid-change-ksh-reference-in-krb-ldap-helper-to-sh.patch new file mode 100644 index 0000000000..8e03860b3c --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/squid-change-ksh-reference-in-krb-ldap-helper-to-sh.patch @@ -0,0 +1,39 @@ +squid: change ksh reference in krb ldap helper to sh + +Very simple cert_tool script with no ksh specifics. +Change it to use sh so a package dependency doesn't +get created to ksh. + +Upstream-Status: Pending + +Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com> +Signed-off-by: Chong Lu <Chong.Lu@windriver.com> +--- + helpers/external_acl/kerberos_ldap_group/cert_tool | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/helpers/external_acl/kerberos_ldap_group/cert_tool b/helpers/external_acl/kerberos_ldap_group/cert_tool +index 9f14959..8c4ea11 100644 +--- a/helpers/external_acl/kerberos_ldap_group/cert_tool ++++ b/helpers/external_acl/kerberos_ldap_group/cert_tool +@@ -1,4 +1,4 @@ +-#!/bin/ksh ++#!/bin/sh + # + # ----------------------------------------------------------------------------- + # +@@ -64,9 +64,9 @@ QUIT + # Create database for Sun ldap and pem file for Openldap + # + rm ${server}_[0-9]*.pem 2>/dev/null +-let i=0 ++i=0 + ls ${server}_[0-9]*.cert | while read file; do +- let i=i+1 ++ i=`expr $i + 1` + cat $file >> ${server}_$i.pem + CA=`openssl x509 -noout -text -in ${server}_$i.pem | grep -i "CA:.*true"` + if [ -n "$CA" ]; then +-- +1.9.1 + diff --git a/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch b/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch new file mode 100644 index 0000000000..9e2ceab880 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch @@ -0,0 +1,31 @@ +From 2192fdbc90b0ff2d5408e8763df200620870deea Mon Sep 17 00:00:00 2001 +From: Jackie Huang <jackie.huang@windriver.com> +Date: Mon, 13 Oct 2014 01:32:37 -0700 +Subject: [PATCH] squid: 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 6f7171f..ab9b93e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,7 @@ AC_PREREQ(2.61) + AC_CONFIG_HEADERS([include/autoconf.h]) + AC_CONFIG_AUX_DIR(cfgaux) + AC_CONFIG_SRCDIR([src/main.cc]) +-AM_INIT_AUTOMAKE([tar-ustar nostdinc]) ++AM_INIT_AUTOMAKE([tar-ustar nostdinc serial-tests]) + AC_REVISION($Revision$)dnl + AC_PREFIX_DEFAULT(/usr/local/squid) + AM_MAINTAINER_MODE +-- +1.7.1 + diff --git a/meta-networking/recipes-daemons/squid/files/volatiles.03_squid b/meta-networking/recipes-daemons/squid/files/volatiles.03_squid new file mode 100644 index 0000000000..b96865d731 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/volatiles.03_squid @@ -0,0 +1,2 @@ +# <type> <owner> <group> <mode> <path> <linksource> +d squid squid 0755 /var/run/squid none diff --git a/meta-networking/recipes-daemons/squid/squid_3.4.7.bb b/meta-networking/recipes-daemons/squid/squid_3.4.7.bb new file mode 100644 index 0000000000..c5f616dd41 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/squid_3.4.7.bb @@ -0,0 +1,67 @@ +SUMMARY = "A fully-featured http proxy and web-cache daemon for Linux" +DESCRIPTION = "A fully-featured http proxy and web-cache daemon for Linux. \ +Squid offers a rich access control, authorization and logging environment to \ +develop web proxy and content serving applications. \ +Squid offers a rich set of traffic optimization options, most of which are \ +enabled by default for simpler installation and high performance. \ +" +HOMEPAGE = "http://www.squid-cache.org" +SECTION = "network" +LICENSE = "GPLv2+" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}" +MIN_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${PV}.tar.bz2 \ + file://Set-up-for-cross-compilation.patch \ + file://Skip-AC_RUN_IFELSE-tests.patch \ + file://Fix-flawed-dynamic-ldb-link-test-in-configure.patch \ + file://squid-change-ksh-reference-in-krb-ldap-helper-to-sh.patch \ + file://squid-use-serial-tests-config-needed-by-ptest.patch \ + file://run-ptest \ + file://volatiles.03_squid \ +" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \ + file://COPYRIGHT;md5=2900f50789c498be8e9f1eb23b55cbe9 \ + " +SRC_URI[md5sum] = "9951034b10f7ee0f45a95cfae61c57c2" +SRC_URI[sha256sum] = "7b423f3d3495a317503ca559ea535f80445fd7c4e3c3e268cb7a8c97c61af2b6" + +DEPENDS = "libtool krb5 openldap db cyrus-sasl" + +inherit autotools useradd ptest + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack" +EXTRA_OECONF += "--with-default-user=squid" + +TESTDIR = "test-suite" +do_compile_ptest() { + oe_runmake -C ${TESTDIR} buildtest-TESTS +} + +do_install_ptest() { + cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH} + cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH} + + # do NOT need to rebuild Makefile itself + sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile +} + +do_install_append() { + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/volatiles.03_squid ${D}${sysconfdir}/default/volatiles/volatiles.03_squid + rmdir "${D}${localstatedir}/run/${BPN}" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/run" +} + +FILES_${PN} += "${libdir} ${datadir}/errors ${datadir}/icons" +FILES_${PN}-dbg += "/usr/src/debug" +FILES_${PN}-doc += "${datadir}/*.txt" + +RDEPENDS_${PN} += "perl" +RDEPENDS_${PN}-ptest += "make" diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch b/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch new file mode 100644 index 0000000000..452aa05f81 --- /dev/null +++ b/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch @@ -0,0 +1,39 @@ +[PATCH] fix the empty file writting + +Upstream-Status: pending + +With the feature that checking the disk filled up, the return +value of function write_behind was checked and used to detect +the disk status. While for empty file, without data being +written, this function will return -1 thus the disk filled up +error was miss-raised. + +make write_behind to return 0 if written file is empty, to fix +the this bug. + +Signed-off-by: Roy.Li <rongqing.li@windriver.com> +--- + common/tftpsubs.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/common/tftpsubs.c b/common/tftpsubs.c +index b4ea3f2..9f6cafc 100644 +--- a/common/tftpsubs.c ++++ b/common/tftpsubs.c +@@ -198,9 +198,12 @@ int write_behind(FILE * file, int convert) + nextone = !nextone; /* incr for next time */ + buf = dp->th_data; + +- if (count <= 0) ++ if (count < 0) + return -1; /* nak logic? */ + ++ if (count == 0) ++ return 0; ++ + if (convert == 0) + return write(fileno(file), buf, count); + +-- +1.9.1 + diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-empty-file-put-error.patch b/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-empty-file-put-error.patch deleted file mode 100644 index aa29d9ce1c..0000000000 --- a/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-empty-file-put-error.patch +++ /dev/null @@ -1,33 +0,0 @@ -tftp-hpa: bug fix on empty file put error - -With the feature that checking the disk filled up, the return value of -function write_behind was checked and used to detect the disk status. -While for empty file, without data being written, this function will -return -1 thus the disk filled up error was miss-raised. Fix it. - -Upstream-Status: pending - -Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com> ---- - tftpd/tftpd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) ---- a/tftpd/tftpd.c -+++ b/tftpd/tftpd.c -@@ -1692,7 +1692,7 @@ static void tftp_recvfile(const struct f - syslog(LOG_WARNING, "tftpd: write(ack): %m"); - goto abort; - } -- if(write_behind(file, pf->f_convert) < 0) { -+ if(write_behind(file, pf->f_convert) < -1) { - nak(ENOSPACE, NULL); - (void)fclose(file); - goto abort; -@@ -1727,7 +1727,7 @@ static void tftp_recvfile(const struct f - goto abort; - } - } while (size == segsize); -- if(write_behind(file, pf->f_convert) < 0) { -+ if(write_behind(file, pf->f_convert) < -1) { - nak(ENOSPACE, NULL); - (void)fclose(file); - goto abort; diff --git a/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb b/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb index e58a4b1851..3f17fd6fc2 100644 --- a/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb +++ b/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb @@ -25,7 +25,7 @@ SRC_URI = "http://kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-${PV}.t file://init \ file://add-error-check-for-disk-filled-up.patch \ file://tftp-hpa-bug-fix-on-separated-CR-and-LF.patch \ - file://tftp-hpa-bug-fix-on-empty-file-put-error.patch \ + file://fix-writing-emtpy-file.patch \ " SRC_URI[md5sum] = "46c9bd20bbffa62f79c958c7b99aac21" diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common new file mode 100644 index 0000000000..640025dba6 --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common @@ -0,0 +1,163 @@ +#!/bin/sh + +[ -x /sbin/ebtables ] || exit 1 + +EBTABLES_DUMPFILE_STEM=/etc/ebtables/dump + +RETVAL=0 +prog="ebtables" +desc="Ethernet bridge filtering" +umask 0077 + +#default configuration +EBTABLES_MODULES_UNLOAD="yes" +EBTABLES_LOAD_ON_START="no" +EBTABLES_SAVE_ON_STOP="no" +EBTABLES_SAVE_ON_RESTART="no" +EBTABLES_SAVE_COUNTER="no" +EBTABLES_BACKUP_SUFFIX="~" + +config=/etc/default/$prog +[ -f "$config" ] && . "$config" + +function get_supported_tables() { + EBTABLES_SUPPORTED_TABLES= + /sbin/ebtables -t filter -L 2>&1 1>/dev/null | grep -q permission + if [ $? -eq 0 ]; then + echo "Error: insufficient privileges to access the ebtables rulesets." + exit 1 + fi + for table in filter nat broute; do + /sbin/ebtables -t $table -L &> /dev/null + if [ $? -eq 0 ]; then + EBTABLES_SUPPORTED_TABLES="${EBTABLES_SUPPORTED_TABLES} $table" + fi + done +} + +function load() { + RETVAL=0 + get_supported_tables + echo -n "Restoring ebtables rulesets: " + for table in $EBTABLES_SUPPORTED_TABLES; do + echo -n "$table " + if [ -s ${EBTABLES_DUMPFILE_STEM}.$table ]; then + /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-commit + RET=$? + if [ $RET -ne 0 ]; then + echo -n "(failed) " + RETVAL=$RET + fi + else + echo -n "(no saved state) " + fi + done + if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then + echo -n "no kernel support. " + else + echo -n "done. " + fi + if [ $RETVAL -eq 0 ]; then + echo "ok" + else + echo "fail" + fi +} + +function clear() { + RETVAL=0 + get_supported_tables + echo -n "Clearing ebtables rulesets: " + for table in $EBTABLES_SUPPORTED_TABLES; do + echo -n "$table " + /sbin/ebtables -t $table --init-table + done + + if [ "$EBTABLES_MODULES_UNLOAD" = "yes" ]; then + for mod in $(grep -E '^(ebt|ebtable)_' /proc/modules | cut -d' ' -f1) ebtables; do + rmmod $mod 2> /dev/null + done + fi + if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then + echo -n "no kernel support. " + else + echo -n "done. " + fi + if [ $RETVAL -eq 0 ]; then + echo "ok" + else + echo "fail" + fi +} + +function save() { + RETVAL=0 + get_supported_tables + echo -n "Saving ebtables rulesets: " + for table in $EBTABLES_SUPPORTED_TABLES; do + echo -n "$table " + [ -n "$EBTABLES_BACKUP_SUFFIX" ] && [ -s ${EBTABLES_DUMPFILE_STEM}.$table ] && \ + mv ${EBTABLES_DUMPFILE_STEM}.$table ${EBTABLES_DUMPFILE_STEM}.$table$EBTABLES_BACKUP_SUFFIX + /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-save + RET=$? + if [ $RET -ne 0 ]; then + echo -n "(failed) " + RETVAL=$RET + else + if [ "$EBTABLES_SAVE_COUNTER" = "no" ]; then + /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table -Z + fi + fi + done + if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then + echo -n "no kernel support. " + else + echo -n "done. " + fi + if [ $RETVAL -eq 0 ]; then + echo "ok" + else + echo "fail" + fi +} + +case "$1" in + start) + [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load + ;; + stop) + [ "$EBTABLES_SAVE_ON_STOP" = "yes" ] && save + clear + ;; + restart|reload|force-reload) + [ "$EBTABLES_SAVE_ON_RESTART" = "yes" ] && save + clear + [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load + ;; + load) + load + ;; + save) + save + ;; + status) + get_supported_tables + if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then + echo "No kernel support for ebtables." + RETVAL=1 + else + echo -n "Ebtables support available, number of installed rules: " + for table in $EBTABLES_SUPPORTED_TABLES; do + COUNT=$(( $(/sbin/ebtables -t $table -L | sed -e "/^Bridge chain/! d" -e "s/^.*entries: //" -e "s/,.*$/ +/") 0 )) + echo -n "$table($COUNT) " + done + echo ok + RETVAL=0 + fi + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload|load|save|status}" >&2 + RETVAL=1 +esac + +exit $RETVAL diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init index 0044e9825e..c9a77a29e8 100755 --- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init @@ -23,164 +23,4 @@ # Description: Saves and restores the state of the ebtables rulesets. ### END INIT INFO -[ -x /sbin/ebtables ] || exit 1 - -EBTABLES_DUMPFILE_STEM=/etc/ebtables/dump - -RETVAL=0 -prog="ebtables" -desc="Ethernet bridge filtering" -umask 0077 - -#default configuration -EBTABLES_MODULES_UNLOAD="yes" -EBTABLES_LOAD_ON_START="no" -EBTABLES_SAVE_ON_STOP="no" -EBTABLES_SAVE_ON_RESTART="no" -EBTABLES_SAVE_COUNTER="no" -EBTABLES_BACKUP_SUFFIX="~" - -config=/etc/default/$prog -[ -f "$config" ] && . "$config" - -function get_supported_tables() { - EBTABLES_SUPPORTED_TABLES= - /sbin/ebtables -t filter -L 2>&1 1>/dev/null | grep -q permission - if [ $? -eq 0 ]; then - echo "Error: insufficient privileges to access the ebtables rulesets." - exit 1 - fi - for table in filter nat broute; do - /sbin/ebtables -t $table -L &> /dev/null - if [ $? -eq 0 ]; then - EBTABLES_SUPPORTED_TABLES="${EBTABLES_SUPPORTED_TABLES} $table" - fi - done -} - -function load() { - RETVAL=0 - get_supported_tables - echo -n "Restoring ebtables rulesets: " - for table in $EBTABLES_SUPPORTED_TABLES; do - echo -n "$table " - if [ -s ${EBTABLES_DUMPFILE_STEM}.$table ]; then - /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-commit - RET=$? - if [ $RET -ne 0 ]; then - echo -n "(failed) " - RETVAL=$RET - fi - else - echo -n "(no saved state) " - fi - done - if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then - echo -n "no kernel support. " - else - echo -n "done. " - fi - if [ $RETVAL -eq 0 ]; then - echo "ok" - else - echo "fail" - fi -} - -function clear() { - RETVAL=0 - get_supported_tables - echo -n "Clearing ebtables rulesets: " - for table in $EBTABLES_SUPPORTED_TABLES; do - echo -n "$table " - /sbin/ebtables -t $table --init-table - done - - if [ "$EBTABLES_MODULES_UNLOAD" = "yes" ]; then - for mod in $(grep -E '^(ebt|ebtable)_' /proc/modules | cut -d' ' -f1) ebtables; do - rmmod $mod 2> /dev/null - done - fi - if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then - echo -n "no kernel support. " - else - echo -n "done. " - fi - if [ $RETVAL -eq 0 ]; then - echo "ok" - else - echo "fail" - fi -} - -function save() { - RETVAL=0 - get_supported_tables - echo -n "Saving ebtables rulesets: " - for table in $EBTABLES_SUPPORTED_TABLES; do - echo -n "$table " - [ -n "$EBTABLES_BACKUP_SUFFIX" ] && [ -s ${EBTABLES_DUMPFILE_STEM}.$table ] && \ - mv ${EBTABLES_DUMPFILE_STEM}.$table ${EBTABLES_DUMPFILE_STEM}.$table$EBTABLES_BACKUP_SUFFIX - /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-save - RET=$? - if [ $RET -ne 0 ]; then - echo -n "(failed) " - RETVAL=$RET - else - if [ "$EBTABLES_SAVE_COUNTER" = "no" ]; then - /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table -Z - fi - fi - done - if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then - echo -n "no kernel support. " - else - echo -n "done. " - fi - if [ $RETVAL -eq 0 ]; then - echo "ok" - else - echo "fail" - fi -} - -case "$1" in - start) - [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load - ;; - stop) - [ "$EBTABLES_SAVE_ON_STOP" = "yes" ] && save - clear - ;; - restart|reload|force-reload) - [ "$EBTABLES_SAVE_ON_RESTART" = "yes" ] && save - clear - [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load - ;; - load) - load - ;; - save) - save - ;; - status) - get_supported_tables - if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then - echo "No kernel support for ebtables." - RETVAL=1 - else - echo -n "Ebtables support available, number of installed rules: " - for table in $EBTABLES_SUPPORTED_TABLES; do - COUNT=$(( $(/sbin/ebtables -t $table -L | sed -e "/^Bridge chain/! d" -e "s/^.*entries: //" -e "s/,.*$/ +/") 0 )) - echo -n "$table($COUNT) " - done - echo ok - RETVAL=0 - fi - ;; - *) - echo "Usage: $0 {start|stop|restart|reload|force-reload|load|save|status}" >&2 - RETVAL=1 -esac - -exit $RETVAL +/usr/sbin/ebtables.common $1 diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service new file mode 100644 index 0000000000..3abd1fe3e2 --- /dev/null +++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service @@ -0,0 +1,11 @@ +[Unit] +Description=Ethernet Bridge Filtering Tables + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@SBINDIR@/ebtables.common start +ExecStop=@SBINDIR@/ebtables.common stop + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb index 9222b2d447..32cfc752b4 100644 --- a/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb +++ b/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb @@ -15,6 +15,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/ebtables/ebtables-v${PV}.tar.gz \ file://installnonroot.patch \ file://01debian_defaultconfig.patch \ file://ebtables.init \ + file://ebtables.common \ + file://ebtables.service \ file://no-as-needed.patch \ " @@ -23,7 +25,7 @@ SRC_URI[sha256sum] = "dc6f7b484f207dc712bfca81645f45120cb6aee3380e77a1771e9c34a9 S = "${WORKDIR}/ebtables-v${PV}" -inherit update-rc.d +inherit update-rc.d systemd EXTRA_OEMAKE = " \ BINDIR=${base_sbindir} \ @@ -39,21 +41,29 @@ EXTRA_OEMAKE = " \ " do_install () { + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/ebtables.common ${D}${sbindir}/ebtables.common + # Fix hardcoded paths in scripts + sed -i 's!/sbin/!${base_sbindir}/!g' ${D}${sbindir}/ebtables.common + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sbindir}/ebtables.common + install -d ${D}${sysconfdir}/init.d install -d ${D}${sysconfdir}/default install -d ${D}${sysconfdir}/ebtables oe_runmake DESTDIR='${D}' install install -m 0755 ${WORKDIR}/ebtables.init ${D}/${sysconfdir}/init.d/ebtables mv ${D}${sysconfdir}/default/ebtables-config ${D}${sysconfdir}/default/ebtables - - # Fix hardcoded paths in scripts - sed -i 's!/sbin/!${base_sbindir}/!g' ${D}/${sysconfdir}/init.d/ebtables - sed -i 's!/etc/!${sysconfdir}/!g' ${D}/${sysconfdir}/init.d/ebtables + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ebtables # 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} + + # Install systemd service files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/ebtables.service ${D}${systemd_unitdir}/system + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/ebtables.service } CONFFILES_${PN} += "${sysconfdir}/default/ebtables" @@ -61,5 +71,7 @@ CONFFILES_${PN} += "${sysconfdir}/default/ebtables" INITSCRIPT_NAME = "ebtables" INITSCRIPT_PARAMS = "start 41 S . stop 41 6 ." +SYSTEMD_SERVICE_${PN} = "ebtables.service" + FILES_${PN}-dbg += "${base_libdir}/ebtables/.debug" FILES_${PN} += "${base_libdir}/ebtables/*.so" diff --git a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch new file mode 100644 index 0000000000..5a47fd9175 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch @@ -0,0 +1,28 @@ +This adds ARG_MAX define to be _SC_ARG_MAX + +Upstream-Status: Inappropriate. +Most distros have their own verion for this fix. + +Signed-off-by: Armin Kuster <akuster808@gmail.com> + +Index: netkit-ftp-0.17/ftp/glob.c +=================================================================== +--- netkit-ftp-0.17.orig/ftp/glob.c ++++ netkit-ftp-0.17/ftp/glob.c +@@ -50,6 +50,7 @@ char glob_rcsid[] = + #include <stdio.h> + #include <stdlib.h> + #include <string.h> ++#include <unistd.h> + + #include "ftp_var.h" /* for protos only */ + #include "glob.h" +@@ -57,6 +58,9 @@ char glob_rcsid[] = + #define QUOTE 0200 + #define TRIM 0177 + #define eq(a,b) (strcmp(a, b)==0) ++#ifndef ARG_MAX ++#define ARG_MAX (sysconf(_SC_ARG_MAX)) ++#endif + #define GAVSIZ (ARG_MAX/6) + #define isdir(d) ((d.st_mode & S_IFMT) == S_IFDIR) diff --git a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb new file mode 100644 index 0000000000..8bac049768 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "netkit-ft includes the ftp client." +SECTION = "networking" +HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" +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 \ +" + +SRC_URI[archive.md5sum] = "94441610c9b86ef45c4c6ec609444060" +SRC_URI[archive.sha256sum] = "61c913299b81a4671ff089aac821329f7db9bc111aa812993dd585798b700349" +SRC_URI[patch31.md5sum] = "93d71e28ce70df69e080c7f90da63cac" +SRC_URI[patch31.sha256sum] = "4edd46a32d70daa7ba00f0ebf0118dc5d17dff23d6e46aa21a2722be2e22d1c1" + +inherit autotools-brokensep + +do_configure () { + ./configure --prefix=${prefix} + echo "LDFLAGS=${LDFLAGS}" >> MCONFIG +} + +BINMODE = "0755" +MANMODE = "0644" + +do_install () { + install -d ${D}${bindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man5 + + install -m${BINMODE} ${S}/ftp/ftp ${D}${bindir} + ln -sf ${D}${bindir}/ftp ${D}${bindir}/pftp + install -m${MANMODE} ${S}/ftp/ftp.1 ${D}${mandir}/man1 + ln -sf ftp.1 ${D}${mandir}/man1/pftp.1 + install -m${MANMODE} ${S}/ftp/netrc.5 ${D}${mandir}/man5 +} + +PACKAGES = "${PN} ${PN}-doc ${BPN}-dbg" +FILES_${PN} = "${bindir}/*" +FILES_${PN}-doc = "${mandir}" +FILES_${PN}-dbg = "${prefix}/src/debug \ + ${bindir}/.debug" + +RDEPENDS_${PN} = "readline" diff --git a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch new file mode 100644 index 0000000000..d54cea9fdc --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch @@ -0,0 +1,39 @@ +This fixes an issue when building with gcc 4.x + +https://github.com/openembedded/openembedded/tree/master/recipes/netkit-rpc/netkit-rpc + +Upstream-status: Backported + +Signed-off-By: Armin Kuster <akuster808@gmail.com> + +--- netkit-rpc-0.17/rpcgen/rpc_cout.c~gcc4 ++++ netkit-rpc-0.17/rpcgen/rpc_cout.c +@@ -101,8 +101,6 @@ + case DEF_TYPEDEF: + emit_typedef(def); + break; +- default: +- /* can't happen */ + } + print_trailer(); + } +@@ -664,9 +662,6 @@ + decl->name,decl->array_max); + emit_single_in_line(decl,flag,REL_VECTOR); + f_print(fout,"\t\t }\n\t\t };\n"); +- +- default: +- /* ?... do nothing I guess */ + } + } + +--- netkit-rpc-0.17/rpcgen/rpc_hout.c~gcc4 ++++ netkit-rpc-0.17/rpcgen/rpc_hout.c +@@ -106,8 +106,6 @@ + f_print(fout, "\n"); + pprogramdef(def); + break; +- default: +- /* ?... shouldn't happen I guess */ + } + } diff --git a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb new file mode 100644 index 0000000000..4d8d95ac3f --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "netkit-rpc includes rpcinfo and rpcgen." +HOMEPAGE = "http://ftp.linux.org.uk/pub/linux/Networking/netkit" +SECTION = "networking" +LICENSE = "SPL-1.0" +LIC_FILES_CHKSUM = "file://rpcinfo/rpcinfo.c;beginline=2;endline=3;md5=3e6339e3ce266e1122c5ba293e04bc89" + +SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \ + file://gcc4.patch" +SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642" +SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b" + +do_configure () { + ./configure --prefix=${prefix} + echo "LDFLAGS=${LDFLAGS}" > MCONFIG + echo "CC=${CC}" >> MCONFIG + echo "LD=${LD}" >> MCONFIG + echo "CFLAGS=${CFLAGS}" >> MCONFIG + echo "LDFLAGS=${LDFLAGS}" >> MCONFIG +} + +do_compile () { + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man8 + + # remove strip flag + sed -i 's/install -s/install/' rpcinfo/Makefile + sed -i 's/install -s/install/' rpcgen/Makefile + + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install +} diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch new file mode 100644 index 0000000000..fdd535be1b --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch @@ -0,0 +1,39 @@ +netkit-rsh: +Allow to build with no PAM enabled. + +Upstream-Status: Inappropriate [ no upstream maintaner ] + +Signed-off-by: Armin Kuster <akuster808@gmail.com> + +Index: netkit-rsh-0.17/rshd/rshd.c +=================================================================== +--- netkit-rsh-0.17.orig/rshd/rshd.c ++++ netkit-rsh-0.17/rshd/rshd.c +@@ -110,9 +110,11 @@ extern char **environ; + static void error(const char *fmt, ...); + static void doit(struct sockaddr *fromp, socklen_t fromlen); + static char *getstr(char *, size_t, const char *); ++#ifdef USE_PAM + static int err_conv( + int, const struct pam_message **, struct pam_response **, void * + ); ++#endif /* USE_PAM */ + + extern int _check_rhosts_file; + +@@ -256,6 +258,7 @@ static void stderr_parent(int sock, int + } + + ++#ifdef USE_PAM + static int err_conv( + int num_msg, const struct pam_message **msg, + struct pam_response **resp, void *appdata_ptr +@@ -266,6 +269,7 @@ static int err_conv( + (void) appdata_ptr; + return PAM_CONV_ERR; + } ++#endif + + static struct passwd *doauth(const char *remuser, + const char *hostname, diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit new file mode 100644 index 0000000000..80aed36ffb --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit @@ -0,0 +1,20 @@ +# default: off +# description: +# Rexecd is the server for the rexec program. The server provides remote +# execution facilities with authentication based on user names and +# passwords. +# +service exec +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = /usr/bin/tcpd + server_args = /usr/sbin/in.rexecd + disable = yes +} diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit new file mode 100644 index 0000000000..00dbf935bb --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit @@ -0,0 +1,23 @@ +# default: off +# description: +# Rlogind is a server for the rlogin program. The server provides remote +# execution with authentication based on privileged port numbers from trusted +# host +# +service login +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = /usr/bin/tcpd + server_args = /usr/sbin/in.rlogind -a + disable = yes +} + + + diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch new file mode 100644 index 0000000000..c12ee9b465 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch @@ -0,0 +1,77 @@ +This fixes a build issue caused by linking order. + +Upstream-Status: Inappropriate +Most distos have there own verison of this fix. This was derived by +* Fix link order to list libraries after the objects that require them +(LP: #771080). + +-- Colin Watson <cjwatson@ubuntu.com> Tue, 13 Sep 2011 10:07:08 +0100 + + +signed-off-by: Armin Kuster <akuster808@gmail.com> + +Index: netkit-rsh-0.17/rsh/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rsh/Makefile ++++ netkit-rsh-0.17/rsh/Makefile +@@ -6,7 +6,7 @@ include ../MRULES + OBJS = rsh.o + + rsh: $(OBJS) +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + install: rsh + install -o root -m$(SUIDMODE) rsh $(INSTALLROOT)$(BINDIR) +Index: netkit-rsh-0.17/rshd/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rshd/Makefile ++++ netkit-rsh-0.17/rshd/Makefile +@@ -11,7 +11,7 @@ LIBS += -ldl -lpam + endif + + rshd: $(OBJS) +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + install: rshd + install -m$(DAEMONMODE) rshd $(INSTALLROOT)$(SBINDIR)/in.rshd +Index: netkit-rsh-0.17/rlogin/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rlogin/Makefile ++++ netkit-rsh-0.17/rlogin/Makefile +@@ -7,7 +7,7 @@ PROG=rlogin + OBJS=rlogin.o + + $(PROG): $(OBJS) +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + install: $(PROG) + install -o root -m$(SUIDMODE) $(PROG) $(INSTALLROOT)$(BINDIR) +Index: netkit-rsh-0.17/rlogind/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rlogind/Makefile ++++ netkit-rsh-0.17/rlogind/Makefile +@@ -13,7 +13,7 @@ LIBS += -ldl -lpam -lpam_misc + endif + + rlogind: $(OBJS) +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + rlogind.o: pathnames.h logwtmp.h rlogind.h ../version.h + logwtmp.o: logwtmp.h +Index: netkit-rsh-0.17/rexecd/Makefile +=================================================================== +--- netkit-rsh-0.17.orig/rexecd/Makefile ++++ netkit-rsh-0.17/rexecd/Makefile +@@ -24,7 +24,7 @@ endif + CFLAGS += -DRESTRICT_FTP=1 + + rexecd: rexecd.o +- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS) + + install: rexecd + install -m$(DAEMONMODE) rexecd $(INSTALLROOT)$(SBINDIR)/in.rexecd diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit new file mode 100644 index 0000000000..ad59b62076 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit @@ -0,0 +1,21 @@ +# default: off +# description: +# The rshd server is a server for the rcmd(3) routine and, +# consequently, for the rsh(1) program. The server provides +# remote execution facilities with authentication based on +# privileged port numbers from trusted hosts. +# +service shell +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = /usr/bin/tcpd + server_args = /usr/sbin/in.rshd -aL + disable = yes +} diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb new file mode 100644 index 0000000000..8b42fa7cb6 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb @@ -0,0 +1,91 @@ +DESCRIPTION = "netkit-rsh includes the rsh daemon and client." +SECTION = "networking" +HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" +LICENSE = "BSD-4-Clause" +DEPENDS = "xinetd libgcrypt" + +LIC_FILES_CHKSUM = "file://rsh/rsh.c;beginline=2;endline=3;md5=25737e9d21d9df251dd26b7dcbd8ee29" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}.orig.tar.gz;name=archive \ + ${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}-15.diff.gz;name=patch15 \ + file://rsh-redone_link_order_file.patch \ + file://no_pam_build_fix.patch \ + file://rexec.xinetd.netkit \ + file://rlogin.xinetd.netkit \ + file://rsh.xinetd.netkit \ +" + +SRC_URI[archive.md5sum] = "65f5f28e2fe22d9ad8b17bb9a10df096" +SRC_URI[archive.sha256sum] = "edcac7fa18015f0bc04e573f3f54ae3b638d71335df1ad7dae692779914ad669" +SRC_URI[patch15.md5sum] = "655efc0d541b03ca5de0ae506c805ea3" +SRC_URI[patch15.sha256sum] = "2bc071c438e8b0ed42a0bd2db2d8b681b27a1e9b1798694d9874733293bc2aa9" + +inherit pkgconfig + +CFLAGS += " -D_GNU_SOURCE -Wno-deprecated-declarations" +LDFLAGS += " -L${STAGING_LIBDIR} -lutil -lcrypt" + +PACKAGECONFIG ??= "" +PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam", "", d)}" +PACKAGECONFIG[pam] = " , --without-pam, libpam, libpam" + +do_configure () { + ./configure --prefix=${prefix} + echo "INSTALLROOT=${D}" > MCONFIG + + if [ "${@base_contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then + echo "USE_PAM=1" >> MCONFIG + fi + + # didn't want to patch these next changes + sed -i 's/netkit-//' ${S}/rsh/pathnames.h + sed -i 's/netkit-//' ${S}/rcp/pathnames.h +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${sbindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man8 + install -d ${D}${sysconfdir}/xinetd.d + + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'SUIDMODE=4755' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install + + if [ "${@base_contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then + install -d ${D}${sysconfdir}/pam.d + install -m 0644 debian/hosts.equiv ${D}/${sysconfdir} + install -m 0644 debian/pam.d/rexec ${D}/${sysconfdir}/pam.d + install -m 0644 debian/pam.d/rlogin ${D}/${sysconfdir}/pam.d + install -m 0644 debian/pam.d/rsh ${D}/${sysconfdir}/pam.d + fi + cp ${WORKDIR}/rexec.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rexec + cp ${WORKDIR}/rlogin.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rlogin + cp ${WORKDIR}/rsh.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rsh +} + +PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg" + +FILES_${PN}-client = "${bindir}/*" +FILES_${PN}-server = "${sbindir}/* ${sysconfdir}" +FILES_${PN}-doc = "${mandir}" +FILES_${PN}-dbg = "${prefix}/src/debug \ + ${sbindir}/.debug ${bindir}/.debug" + +ALTERNATIVE_PRIORITY = "80" +ALTERNATIVE_${PN}-client = "rcp rexec rlogin rsh" +ALTERNATIVE_${PN}-server = "rshd rexecd rlogind" +ALTERNATIVE_LINK_NAME[server] = "${bindir}/rshd" +ALTERNATIVE_TARGET[rshd] = "${sbindir}/in.rshd" +ALTERNATIVE_LINK_NAME[rexecd] = "${bindir}/rexecd" +ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd" +ALTERNATIVE_LINK_NAME[rlogind] = "${bindir}/rlogind" +ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind" + +RCONFLICTS_${PN}-client += "inetutils-rshd" +RPROVIDES_${PN}-rshd = "rshd" + +RDEPENDS_${PN} = "xinetd" diff --git a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch new file mode 100644 index 0000000000..d85178d714 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch @@ -0,0 +1,30 @@ +From c23cc112a480f90950de5cf1de09b1a7e732bf21 Mon Sep 17 00:00:00 2001 +From: Robert Yang <liezhi.yang@windriver.com> +Date: Mon, 15 Dec 2014 18:31:13 -0800 +Subject: [PATCH] rpc.rusersd/Makefile: fix parallel build issue + +Fixed: +rusers.x: No such file or directory +Makefile:44: recipe for target 'rusers_xdr.c' failed + +Upstream-Status: Pending + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +--- + rpc.rusersd/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/rpc.rusersd/Makefile b/rpc.rusersd/Makefile +index 792f528..65a424a 100644 +--- a/rpc.rusersd/Makefile ++++ b/rpc.rusersd/Makefile +@@ -40,5 +40,5 @@ rusers.x: + rusers.h: $(RUSERSX) rusers.x + $(RPCGEN) -h -o rusers.h rusers.x + +-rusers_xdr.c: $(RUSERSX) ++rusers_xdr.c: $(RUSERSX) rusers.x + $(RPCGEN) -c -C -o rusers_xdr.c rusers.x +-- +1.7.9.5 + diff --git a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb new file mode 100644 index 0000000000..c930842eee --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb @@ -0,0 +1,70 @@ +DESCRIPTION = "netkit-rusers includes rusers - Displays who is logged in to machines on local network \ + rusersd - Logged in users server" +HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" +SECTION = "networking" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://rusers/rusers.c;beginline=2;endline=3;md5=f4fc634a4ce8c569911196b72b10770e" +DEPENDS = " tcp-wrappers libtirpc rpcbind" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \ + ${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-8.diff.gz;name=patch8 \ + file://rpc.rusersd-Makefile-fix-parallel-build-issue.patch \ +" + +SRC_URI[archive.md5sum] = "dc99a80b9fde2ab427c874f88f1c1602" +SRC_URI[archive.sha256sum] = "f00138651865ad2dcfec5dedda0cda403cb80c4ab68efcc3bbccafe198c24b6d" +SRC_URI[patch8.md5sum] = "1ff498113e0f920d92088092e5570bdc" +SRC_URI[patch8.sha256sum] = "14882dbdda4e37baa84d55b54b46c7e063a20fc9e04d1be1a2807643cd0f3067" + +inherit autotools-brokensep + +do_configure () { + ./configure --prefix=${prefix} + echo "LDFLAGS=${LDFLAGS}" >> MCONFIG + echo "USE_GLIBC=1" >> MCONFIG +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${sbindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man8 + install -d ${D}${sysconfdir}/xinetd.d + + sed -i 's/install -s/install/' rusers/Makefile + sed -i 's/install -s/install/' rup/Makefile + sed -i 's/install -s/install/' rpc.rusersd/Makefile + + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install + + # create the xinetd config file + cat >rusersd.conf <<EOF + service rusersd + { + disable = yes + type = RPC + rpc_version = 1-2 + socket_type = dgram + protocol = udp + wait = yes + user = root + server = ${sbindir}/rpc.rusersd + } +EOF + install rusersd.conf ${D}/${sysconfdir}/xinetd.d/rusersd +} + + +INSANE_SKIP_${PN} = "already-stripped" + +PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg" +FILES_${PN}-client = "${bindir}/*" +FILES_${PN}-server = "${sbindir}/* ${sysconfdir}" +FILES_${PN}-doc = "${mandir}" +FILES_${PN}-dbg = "${prefix}/src/debug \ + ${bindir}/.debug ${sbindir}/.debug" + +RDEPENDS_${PN}-server = "tcp-wrappers xinetd rpcbind" diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod new file mode 100755 index 0000000000..f6419032e8 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod @@ -0,0 +1,71 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: rwhod +# Required-Start: $network $remote_fs $syslog +# Required-Stop: $network $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Server for rwho and ruptime services +### END INIT INFO + +PATH=/sbin:/bin:/usr/bin:/usr/sbin + +DAEMON=/usr/sbin/rwhod +PIDFILE=/var/run/rwhod.pid +CONF_FILE="/etc/default/rwhod" +DESC="Who daemon " +# default options. Change them in /etc/default/rwhod +RWHOD_OPTIONS="-b" + +# rwhod init.d script for ntpdc from ntp.isc.org +test -f $DAEMON || exit 0 + +# Source function library. +. /etc/init.d/functions + +[ -r $CONF_FILE ] && . $CONF_FILE + +startdaemon(){ + echo -n "Starting $DESC" " rwhod " + start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON -- $RWHOD_OPTIONS + echo "done" +} +stopdaemon(){ + echo -n "Stopping $DESC" " rwhod " + start-stop-daemon --stop --quiet --oknodo --exec $DAEMON + echo "done" +} + +case "$1" in + start) + startdaemon + ;; + stop) + stopdaemon + ;; + force-reload) + stopdaemon + startdaemon + ;; + restart) + stopdaemon + sleep 1 + startdaemon + ;; + reload) + stopdaemon + sleep 1 + startdaemon + ;; + status) + status /usr/sbin/rwhod; + exit $? + ;; + *) + echo "Usage: rwhod { start | stop | status | restart | reload }" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default new file mode 100644 index 0000000000..62d3a942d0 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default @@ -0,0 +1,2 @@ +#Options for the rwhod daemon. +RWHOD_OPTIONS="-b" diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb new file mode 100644 index 0000000000..4433dc1613 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb @@ -0,0 +1,83 @@ +DESCRIPTION = "netkit-rwho includes, ruptime rwho and rwhod (Daemon to maintain data for rwho/ruptime)" +HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit" +SECTION = "networking" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://rwho/rwho.c;beginline=2;endline=3;md5=5a85f13c0142d72fc378e00f15da5b9e" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}.orig.tar.gz;name=archive \ + ${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}-13.debian.tar.gz;name=patch13 \ + file://rwhod \ + file://rwhod.default \ +" +SRC_URI[archive.md5sum] = "0f71620d45d472f89134ba0d74242e75" +SRC_URI[archive.sha256sum] = "0409e2ce4bfdb2dacb2c193d0fedfc49bb975cb057c5c6b0ffcca603a1188da7" +SRC_URI[patch13.md5sum] = "82ed5a3c6b0bbf00b36508b9787963b9" +SRC_URI[patch13.sha256sum] = "53aefa27d98b565bf756db57120c03bd224a238e45699d92076420272a6eba8e" + +inherit autotools-brokensep useradd update-rc.d update-alternatives + +CFLAGS += " -D_GNU_SOURCE" + +debian_do_patch() { + cd ${S} + while read line; do patch -p1 < ${WORKDIR}/debian/patches/$line; done < ${WORKDIR}/debian/patches/series +} + +python do_patch() { + bb.build.exec_func('debian_do_patch', d) + bb.build.exec_func('patch_do_patch', d) +} + +do_configure () { + ./configure --prefix=${prefix} + echo "LDFLAGS=${LDFLAGS}" >> MCONFIG +} + +do_install () { + # rwho & ruptime + install -d ${D}${bindir} + install -d ${D}${mandir}/man1 + #rwhod + install -d ${D}${sbindir} + install -d ${D}${mandir}/man8 + install -d ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/default + sed -i 's/install -s/install/' rwho/Makefile + sed -i 's/install -s/install/' ruptime/Makefile + sed -i 's/install -s/install/' rwhod/Makefile + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install + + install -m 0644 ${WORKDIR}/rwhod.default ${D}${sysconfdir}/default/rwhod + install -m 755 ${WORKDIR}/rwhod ${D}${sysconfdir}/init.d + + mkdir -p -m 755 ${D}${localstatedir}/spool/rwho + chown -R rwhod ${D}${localstatedir}/spool/rwho +} + +pkg_postinst_${PN}-server() { + ${sysconfdir}/init.d/rwhod start +} + +pkg_postrm_${PN}-server() { + ${sysconfdir}/init.d/rwhod stop +} + +INITSCRIPT_NAME = "rwhod" +INITSCRIPT_PARAM = "defaults 85 15" + +USERADD_PACKAGES = "${PN}-server" +GROUPADD_PARAM_${PN}-server = "--system rwhod" +USERADD_PARAM_${PN}-server = "--system -g rwhod --home-dir ${localstatedir}/spool/rwho \ + --no-create-home --shell /bin/false rwhod" + +INSANE_SKIP_${PN} = "already-stripped" + +PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg" +FILES_${PN}-client = "${bindir}/*" +FILES_${PN}-server = "${sbindir}/* ${localstatedir} ${sysconfdir}/default/* ${sysconfdir}/init.d/*" +FILES_${PN}-doc = "${mandir}" +FILES_${PN}-dbg = "${prefix}/src/debug \ + ${bindir}/.debug ${sbindir}/.debug" diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch b/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch new file mode 100644 index 0000000000..7fff8cffc4 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch @@ -0,0 +1,1217 @@ +From f09a6460a62aacb87bb8683d16aa3ce55848bf7e Mon Sep 17 00:00:00 2001 +From: Li xin <lixin.fnst@cn.fujitsu.com> +Date: Fri, 28 Nov 2014 07:06:24 +0900 +Subject: [PATCH 1/2] To aviod buffer overflow in telnet + +This patch is from Fedora. + +Upstream-Status: pending + +Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> +--- + telnet/Makefile | 4 +- + telnet/commands.cc | 270 +++++++++++++++++++++++++++++++++++----------------- + telnet/defines.h | 2 + + telnet/externs.h | 7 +- + telnet/main.cc | 65 ++++++++++--- + telnet/netlink.cc | 78 +++++++++------ + telnet/netlink.h | 7 +- + telnet/network.cc | 1 + + telnet/proto.h | 2 +- + telnet/ring.cc | 2 +- + telnet/ring.h | 2 +- + telnet/sys_bsd.cc | 11 +++ + telnet/telnet.1 | 37 +++++-- + telnet/telnet.cc | 45 +++++---- + telnet/terminal.cc | 17 +++- + telnet/utilities.cc | 2 + + 16 files changed, 380 insertions(+), 172 deletions(-) + +diff --git a/telnet/Makefile b/telnet/Makefile +index cef866f..39249e1 100644 +--- a/telnet/Makefile ++++ b/telnet/Makefile +@@ -7,7 +7,7 @@ include ../MRULES + + # -DAUTHENTICATE + CXXFLAGS += -DUSE_TERMIO -DKLUDGELINEMODE +-LIBS += $(LIBTERMCAP) ++LIBS = $(LIBTERMCAP) + + SRCS = commands.cc main.cc network.cc ring.cc sys_bsd.cc telnet.cc \ + terminal.cc tn3270.cc utilities.cc genget.cc environ.cc netlink.cc +@@ -22,7 +22,7 @@ depend: + $(CXX) $(CXXFLAGS) -MM $(SRCS) >depend.mk + + install: telnet +- install -s -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR) ++ install -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR) + install -m$(MANMODE) telnet.1 $(INSTALLROOT)$(MANDIR)/man1 + + clean: +diff --git a/telnet/commands.cc b/telnet/commands.cc +index d92bccd..02c593e 100644 +--- a/telnet/commands.cc ++++ b/telnet/commands.cc +@@ -86,10 +86,6 @@ char cmd_rcsid[] = + + #define HELPINDENT ((int) sizeof ("connect")) + +-#ifndef MAXHOSTNAMELEN +-#define MAXHOSTNAMELEN 64 +-#endif MAXHOSTNAMELEN +- + #if defined(HAS_IPPROTO_IP) && defined(IP_TOS) + int tos = -1; + #endif /* defined(HAS_IPPROTO_IP) && defined(IP_TOS) */ +@@ -98,7 +94,7 @@ static unsigned long sourceroute(char *arg, char **cpp, int *lenp); + + + char *hostname; +-static char _hostname[MAXHOSTNAMELEN]; ++static char *_hostname; + + //typedef int (*intrtn_t)(int argc, const char *argv[]); + +@@ -161,7 +157,7 @@ class command_entry { + assert(argc>=1); + if (nargs>=0 && argc!=nargs+1) { + fprintf(stderr, "Wrong number of arguments for command.\n"); +- fprintf(stderr, "Try %s ? for help\n", argv[0]); ++ fprintf(stderr, "Try ? %s for help\n", argv[0]); + return 0; /* is this right? */ + } + if (nargs==-2) { +@@ -480,6 +476,7 @@ static int send_wontcmd(const char *name, const char *) { + int send_tncmd(int (*func)(int, int), const char *cmd, const char *name) { + char **cpp; + extern char *telopts[]; ++ long opt; + + if (isprefix(name, "help") || isprefix(name, "?")) { + register int col, len; +@@ -506,16 +503,23 @@ int send_tncmd(int (*func)(int, int), const char *cmd, const char *name) { + name, cmd); + return 0; + } ++ ++ opt = cpp - telopts; + if (cpp == 0) { +- fprintf(stderr, "'%s': unknown argument ('send %s ?' for help).\n", ++ char *end; ++ ++ opt = strtol(name, &end, 10); ++ if (*end || opt < 0 || opt > 255) { ++ fprintf(stderr, "'%s': unknown argument ('send %s ?' for help).\n", + name, cmd); +- return 0; ++ return 0; ++ } + } + if (!connected) { + printf("?Need to be connected first.\n"); + return 0; + } +- (*func)(cpp - telopts, 1); ++ (*func)(opt, 1); + return 1; + } + +@@ -689,9 +693,9 @@ static struct togglelist Togglelist[] = { + "print encryption debugging information" }, + #endif + +- { "skiprc", "don't read ~/.telnetrc file", ++ { "skiprc", "don't read the telnetrc files", + NULL, &skiprc, +- "read ~/.telnetrc file" }, ++ "read the telnetrc files" }, + { "binary", + "sending and receiving of binary data", + togbinary, NULL, +@@ -1615,15 +1619,20 @@ void ayt_status(int) { + #endif + + int tn(int argc, const char *argv[]) { +- register struct hostent *host = 0; + struct sockaddr_in sn; +- struct servent *sp = 0; + char *srp = NULL; + int srlen; +- +- const char *cmd, *volatile user = 0; ++ int family = 0; ++ const char *cmd, *volatile user = 0, *srchostp = 0; + const char *portp = NULL; + char *hostp = NULL; ++ char *resolv_hostp; ++ struct addrinfo hints; ++ struct addrinfo *hostaddr = 0; ++ int res; ++ char name[NI_MAXHOST]; ++ char service[NI_MAXSERV]; ++ struct addrinfo *tmpaddr; + + /* clear the socket address prior to use */ + memset(&sn, 0, sizeof(sn)); +@@ -1632,6 +1641,10 @@ int tn(int argc, const char *argv[]) { + printf("?Already connected to %s\n", hostname); + return 0; + } ++ if (_hostname) { ++ delete[] _hostname; ++ _hostname = 0; ++ } + if (argc < 2) { + (void) strcpy(line, "open "); + printf("(to) "); +@@ -1657,11 +1670,33 @@ int tn(int argc, const char *argv[]) { + --argc; + continue; + } ++ if (strcmp(*argv, "-b") == 0) { ++ --argc; ++argv; ++ if (argc == 0) ++ goto usage; ++ srchostp = *argv++; ++ --argc; ++ continue; ++ } + if (strcmp(*argv, "-a") == 0) { + --argc; ++argv; + autologin = 1; + continue; + } ++ if (strcmp(*argv, "-6") == 0) { ++ --argc; ++argv; ++#ifdef AF_INET6 ++ family = AF_INET6; ++#else ++ puts("IPv6 unsupported"); ++#endif ++ continue; ++ } ++ if (strcmp(*argv, "-4") == 0) { ++ --argc; ++argv; ++ family = AF_INET; ++ continue; ++ } + if (hostp == 0) { + /* this leaks memory - FIXME */ + hostp = strdup(*argv++); +@@ -1680,6 +1715,8 @@ int tn(int argc, const char *argv[]) { + if (hostp == 0) + goto usage; + ++ resolv_hostp = hostp; ++ + #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP) + if (hostp[0] == '@' || hostp[0] == '!') { + if ((hostname = strrchr(hostp, ':')) == NULL) +@@ -1696,78 +1733,122 @@ int tn(int argc, const char *argv[]) { + } else { + sn.sin_addr.s_addr = temp; + sn.sin_family = AF_INET; ++ /* ++ * For source route we just make sure to get the IP given ++ * on the command line when looking up the port. ++ */ ++ resolv_hostp = inet_ntoa(sn.sin_addr); + } + } +- else { +-#endif +- if (inet_aton(hostp, &sn.sin_addr)) { +- sn.sin_family = AF_INET; +- strcpy(_hostname, hostp); +- hostname = _hostname; +- } +- else { +- host = gethostbyname(hostp); +- if (host) { +- sn.sin_family = host->h_addrtype; +- if (host->h_length > (int)sizeof(sn.sin_addr)) { +- host->h_length = sizeof(sn.sin_addr); +- } +-#if defined(h_addr) /* In 4.3, this is a #define */ +- memcpy((caddr_t)&sn.sin_addr, +- host->h_addr_list[0], host->h_length); +-#else /* defined(h_addr) */ +- memcpy((caddr_t)&sn.sin_addr, host->h_addr, host->h_length); +-#endif /* defined(h_addr) */ +- strncpy(_hostname, host->h_name, sizeof(_hostname)); +- _hostname[sizeof(_hostname)-1] = '\0'; +- hostname = _hostname; +- } else { +- herror(hostp); +- return 0; +- } +- } +-#if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP) +- } + #endif ++ ++ /* User port or the default name of telnet. */ + if (portp) { + if (*portp == '-') { + portp++; + telnetport = 1; +- } else ++ } else { + telnetport = 0; +- sn.sin_port = atoi(portp); +- if (sn.sin_port == 0) { +- sp = getservbyname(portp, "tcp"); +- if (sp) +- sn.sin_port = sp->s_port; +- else { +- printf("%s: bad port number\n", portp); +- return 0; ++ if (*portp >='0' && *portp<='9') { ++ char *end; ++ long int p; ++ ++ p=strtol(portp, &end, 10); ++ if (ERANGE==errno && (LONG_MIN==p || LONG_MAX==p)) { ++ fprintf(stderr, "telnet: port %s overflows\n", portp); ++ return 0; ++ } else if (p<=0 || p>=65536) { ++ fprintf(stderr, "telnet: port %s out of range\n", portp); ++ return 0; ++ } + } +- } +- else { +- sn.sin_port = htons(sn.sin_port); + } +- } ++ } + else { +- if (sp == 0) { +- sp = getservbyname("telnet", "tcp"); +- if (sp == 0) { +- fprintf(stderr, "telnet: tcp/telnet: unknown service\n"); +- return 0; +- } +- sn.sin_port = sp->s_port; +- } ++ portp = "telnet"; + telnetport = 1; + } +- printf("Trying %s...\n", inet_ntoa(sn.sin_addr)); ++ ++ /* We only understand SOCK_STREAM sockets. */ ++ memset(&hints, 0, sizeof(hints)); ++ hints.ai_socktype = SOCK_STREAM; ++ hints.ai_flags = AI_NUMERICHOST; ++ hints.ai_family = family; ++ ++ if (srchostp) { ++ res = getaddrinfo(srchostp, "0", &hints, &hostaddr); ++ if (res) { ++ fprintf(stderr, "telnet: could not resolve %s: %s\n", srchostp, ++ gai_strerror(res)); ++ return 0; ++ } ++ hints.ai_family = hostaddr->ai_family; ++ res = nlink.bind(hostaddr); ++ freeaddrinfo(hostaddr); ++ if (res < 0) ++ return 0; ++ } ++ ++ /* Resolve both the host and service simultaneously. */ ++ res = getaddrinfo(resolv_hostp, portp, &hints, &hostaddr); ++ if (res == EAI_NONAME) { ++ hints.ai_flags = AI_CANONNAME; ++ res = getaddrinfo(resolv_hostp, portp, &hints, &hostaddr); ++ } else if (hostaddr) { ++ hostaddr->ai_canonname = 0; ++ } ++ if (res || !hostaddr) { ++ fprintf(stderr, "telnet: could not resolve %s/%s: %s\n", resolv_hostp, portp, gai_strerror(res)); ++ return 0; ++ } ++ ++ /* Try to connect to every listed round robin IP. */ ++ tmpaddr = hostaddr; ++ errno = 0; + do { +- int x = nlink.connect(debug, host, &sn, srp, srlen, tos); +- if (!x) return 0; +- else if (x==1) continue; ++ int x; ++ ++ if (!tmpaddr) { ++ if (errno) ++ perror("telnet: Unable to connect to remote host"); ++ else ++ fputs("telnet: Unable to connect to remote host: " ++ "Bad port number\n", stderr); ++err: ++ freeaddrinfo(hostaddr); ++ return 0; ++ } ++ ++ if (tmpaddr->ai_family == AF_UNIX) { ++nextaddr: ++ tmpaddr = tmpaddr->ai_next; ++ continue; ++ } ++ ++ getnameinfo(tmpaddr->ai_addr, tmpaddr->ai_addrlen, ++ name, sizeof(name), service, sizeof(service), ++ NI_NUMERICHOST | NI_NUMERICSERV); ++ ++ printf("Trying %s...\n", name); ++ x = nlink.connect(debug, tmpaddr, srp, srlen, tos); ++ if (!x) ++ goto err; ++ else if (x==1) ++ goto nextaddr; ++ + connected++; + } while (connected == 0); +- cmdrc(hostp, hostname); ++ if (tmpaddr->ai_canonname == 0) { ++ hostname = new char[strlen(hostp)+1]; ++ strcpy(hostname, hostp); ++ } ++ else { ++ hostname = new char[strlen(tmpaddr->ai_canonname)+1]; ++ strcpy(hostname, tmpaddr->ai_canonname); ++ } ++ ++ cmdrc(hostp, hostname, portp); ++ freeaddrinfo(hostaddr); + if (autologin && user == NULL) { + struct passwd *pw; + +@@ -2013,30 +2094,21 @@ static int help(command_table *tab, int argc, const char *argv[]) { + return 0; + } + +-static char *rcname = 0; +-static char rcbuf[128]; +- +-void cmdrc(const char *m1, const char *m2) { ++static void readrc(const char *m1, const char *m2, const char *port, ++ const char *rcname) ++{ + FILE *rcfile; + int gotmachine = 0; + int l1 = strlen(m1); + int l2 = strlen(m2); +- char m1save[64]; +- +- if (skiprc) return; ++ int lport = strlen(port); ++ char m1save[l1 + 1]; ++ char portsave[lport + 1]; + + strcpy(m1save, m1); + m1 = m1save; +- +- if (rcname == 0) { +- rcname = getenv("HOME"); +- if (rcname) +- strcpy(rcbuf, rcname); +- else +- rcbuf[0] = '\0'; +- strcat(rcbuf, "/.telnetrc"); +- rcname = rcbuf; +- } ++ strcpy(portsave, port); ++ port = portsave; + + rcfile = fopen(rcname, "r"); + if (!rcfile) return; +@@ -2061,6 +2133,13 @@ void cmdrc(const char *m1, const char *m2) { + strncpy(line, &line[7], sizeof(line) - 7); + else + continue; ++ ++ if (line[0] == ':') { ++ if (!strncasecmp(&line[1], port, lport)) ++ continue; ++ strncpy(line, &line[lport + 1], sizeof(line) - lport - 1); ++ } ++ + if (line[0] != ' ' && line[0] != '\t' && line[0] != '\n') + continue; + gotmachine = 1; +@@ -2073,6 +2152,21 @@ void cmdrc(const char *m1, const char *m2) { + fclose(rcfile); + } + ++void cmdrc(const char *m1, const char *m2, const char *port) { ++ char *rcname = NULL; ++ ++ if (skiprc) return; ++ ++ readrc(m1, m2, port, "/etc/telnetrc"); ++ if (asprintf (&rcname, "%s/.telnetrc", getenv ("HOME")) == -1) ++ { ++ perror ("asprintf"); ++ return; ++ } ++ readrc(m1, m2, port, rcname); ++ free (rcname); ++} ++ + #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP) + + /* +diff --git a/telnet/defines.h b/telnet/defines.h +index 2784400..d5edc46 100644 +--- a/telnet/defines.h ++++ b/telnet/defines.h +@@ -50,3 +50,5 @@ + #define MODE_COMMAND_LINE(m) ((m)==-1) + + #define CONTROL(x) ((x)&0x1f) /* CTRL(x) is not portable */ ++ ++#define MODE_OUT8 0x8000 /* binary mode sans -opost */ +diff --git a/telnet/externs.h b/telnet/externs.h +index 955df79..0730e8a 100644 +--- a/telnet/externs.h ++++ b/telnet/externs.h +@@ -48,9 +48,7 @@ + typedef unsigned char cc_t; + #endif + +-#ifdef __linux__ + #include <unistd.h> /* get _POSIX_VDISABLE */ +-#endif + + #ifndef _POSIX_VDISABLE + #error "Please fix externs.h to define _POSIX_VDISABLE" +@@ -60,7 +58,8 @@ typedef unsigned char cc_t; + + extern int autologin; /* Autologin enabled */ + extern int skiprc; /* Don't process the ~/.telnetrc file */ +-extern int eight; /* use eight bit mode (binary in and/or out */ ++extern int eight; /* use eight bit mode (binary in and/or out) */ ++extern int binary; /* use binary option (in and/or out) */ + extern int flushout; /* flush output */ + extern int connected; /* Are we connected to the other side? */ + extern int globalmode; /* Mode tty should be in */ +@@ -225,6 +224,8 @@ cc_t *tcval(int); + + //#if 0 + extern struct termios new_tc; ++extern struct termios old_tc; ++ + + #define termEofChar new_tc.c_cc[VEOF] + #define termEraseChar new_tc.c_cc[VERASE] +diff --git a/telnet/main.cc b/telnet/main.cc +index b67f2ce..b626e54 100644 +--- a/telnet/main.cc ++++ b/telnet/main.cc +@@ -45,7 +45,10 @@ char main_rcsid[] = + + #include <sys/types.h> + #include <getopt.h> ++#include <stdlib.h> + #include <string.h> ++#include <netdb.h> ++#include <errno.h> + + #include "ring.h" + #include "externs.h" +@@ -80,12 +83,13 @@ tninit(void) + void usage(void) { + fprintf(stderr, "Usage: %s %s%s%s%s\n", + prompt, +- " [-8] [-E] [-L] [-a] [-d] [-e char] [-l user] [-n tracefile]", +- "\n\t", ++ "[-4] [-6] [-8] [-E] [-L] [-a] [-d] [-e char] [-l user]", ++ "\n\t[-n tracefile] [ -b addr ]", + #ifdef TN3270 ++ "\n\t" + "[-noasynch] [-noasynctty] [-noasyncnet] [-r] [-t transcom]\n\t", + #else +- "[-r] ", ++ " [-r] ", + #endif + "[host-name [port]]" + ); +@@ -102,7 +106,8 @@ main(int argc, char *argv[]) + extern char *optarg; + extern int optind; + int ch; +- char *user; ++ char *user, *srcaddr; ++ int family; + + tninit(); /* Clear out things */ + #if defined(CRAY) && !defined(__STDC__) +@@ -110,21 +115,38 @@ main(int argc, char *argv[]) + #endif + + TerminalSaveState(); ++ if ((old_tc.c_cflag & (CSIZE|PARENB)) != CS8) ++ eight = 0; + + if ((prompt = strrchr(argv[0], '/'))!=NULL) + ++prompt; + else + prompt = argv[0]; + +- user = NULL; ++ user = srcaddr = NULL; ++ family = 0; + + rlogin = (strncmp(prompt, "rlog", 4) == 0) ? '~' : _POSIX_VDISABLE; + autologin = -1; + +- while ((ch = getopt(argc, argv, "8EKLS:X:ade:k:l:n:rt:x")) != EOF) { ++ while ((ch = getopt(argc, argv, ++ "4678EKLS:X:ab:de:k:l:n:rt:x")) != EOF) { + switch(ch) { ++ case '4': ++ family = AF_INET; ++ break; ++ case '6': ++#ifdef AF_INET6 ++ family = AF_INET6; ++#else ++ fputs("IPv6 unsupported\n", stderr); ++#endif ++ break; ++ case '7': ++ eight = 0; /* 7-bit ouput and input */ ++ break; + case '8': +- eight = 3; /* binary output and input */ ++ binary = 3; /* binary output and input */ + break; + case 'E': + rlogin = escapechar = _POSIX_VDISABLE; +@@ -133,23 +155,26 @@ main(int argc, char *argv[]) + //autologin = 0; + break; + case 'L': +- eight |= 2; /* binary output only */ ++ binary |= 2; /* binary output only */ + break; + case 'S': + { +-#ifdef HAS_GETTOS + extern int tos; ++ int num; + +- if ((tos = parsetos(optarg, "tcp")) < 0) ++#ifdef HAS_GETTOS ++ if ((num = parsetos(optarg, "tcp")) < 0) { ++#else ++ errno = 0; ++ num = strtol(optarg, 0, 0); ++ if (errno) { ++#endif + fprintf(stderr, "%s%s%s%s\n", + prompt, ": Bad TOS argument '", + optarg, + "; will try to use default TOS"); +-#else +- fprintf(stderr, +- "%s: Warning: -S ignored, no parsetos() support.\n", +- prompt); +-#endif ++ } else ++ tos = num; + } + break; + case 'X': +@@ -210,6 +235,9 @@ main(int argc, char *argv[]) + "%s: -x ignored, no encryption support.\n", + prompt); + break; ++ case 'b': ++ srcaddr = optarg; ++ break; + case '?': + default: + usage(); +@@ -233,6 +261,13 @@ main(int argc, char *argv[]) + *argp++ = "-l"; + *argp++ = user; + } ++ if (srcaddr) { ++ *argp++ = "-b"; ++ *argp++ = srcaddr; ++ } ++ if (family) { ++ *argp++ = family == AF_INET ? "-4" : "-6"; ++ } + *argp++ = argv[0]; /* host */ + if (argc > 1) + *argp++ = argv[1]; /* port */ +diff --git a/telnet/netlink.cc b/telnet/netlink.cc +index f439cff..f839747 100644 +--- a/telnet/netlink.cc ++++ b/telnet/netlink.cc +@@ -79,22 +79,61 @@ void netlink::close(int doshutdown) { + shutdown(net, 2); + } + ::close(net); ++ net = -1; + } + +-int netlink::connect(int debug, struct hostent *host, +- struct sockaddr_in *sn, +- char *srcroute, int srlen, int tos) ++int netlink::bind(struct addrinfo *addr) + { +- int on=1; ++ int res; ++ ++ res = socket(addr->ai_family); ++ if (res < 2) { ++ if (res == 1) ++ perror("telnet: socket"); ++ return -1; ++ } ++ ++ if (::bind(net, addr->ai_addr, addr->ai_addrlen) < 0) { ++ perror("telnet: bind"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int netlink::socket(int family) ++{ ++ if (this->family != family) ++ close(0); + +- net = socket(AF_INET, SOCK_STREAM, 0); + if (net < 0) { +- perror("telnet: socket"); +- return 0; ++ this->family = family; ++ net = ::socket(family, SOCK_STREAM, 0); ++ if (net < 0) { ++ if (errno == EAFNOSUPPORT) ++ return 1; ++ perror("telnet: socket"); ++ return 0; ++ } + } + ++ return 2; ++} ++ ++int netlink::connect(int debug, struct addrinfo *addr, ++ char *srcroute, int srlen, int tos) ++{ ++ int on=1; ++ int res; ++ ++ res = socket(addr->ai_family); ++ if (res < 2) ++ return res; ++ + #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP) + if (srcroute) { ++ if (addr->ai_family != AF_INET) ++ fputs("Source route is only supported for IPv4\n", stderr); + if (setsockopt(net, IPPROTO_IP, IP_OPTIONS, srcroute, srlen) < 0) + perror("setsockopt (IP_OPTIONS)"); + } +@@ -108,7 +147,7 @@ int netlink::connect(int debug, struct hostent *host, + #endif + if (tos < 0) tos = 020; /* Low Delay bit */ + if (tos && (setsockopt(net, IPPROTO_IP, IP_TOS, &tos, sizeof(int)) < 0) +- && (errno != ENOPROTOOPT)) ++ && (errno != ENOPROTOOPT) && (errno != EOPNOTSUPP)) + perror("telnet: setsockopt (IP_TOS) (ignored)"); + #endif /* defined(IPPROTO_IP) && defined(IP_TOS) */ + +@@ -116,27 +155,8 @@ int netlink::connect(int debug, struct hostent *host, + perror("setsockopt (SO_DEBUG)"); + } + +- if (::connect(net, (struct sockaddr *)sn, sizeof(*sn)) < 0) { +-#if defined(h_addr) /* In 4.3, this is a #define */ +- if (host && host->h_addr_list[1]) { +- int oerrno = errno; +- +- fprintf(stderr, "telnet: connect to address %s: ", +- inet_ntoa(sn->sin_addr)); +- errno = oerrno; +- perror(NULL); +- host->h_addr_list++; +- if (host->h_length > (int)sizeof(sn->sin_addr)) { +- host->h_length = sizeof(sn->sin_addr); +- } +- memcpy(&sn->sin_addr, host->h_addr_list[0], host->h_length); +- close(net); +- return 1; +- } +-#endif /* defined(h_addr) */ +- +- perror("telnet: Unable to connect to remote host"); +- return 0; ++ if (::connect(net, addr->ai_addr, addr->ai_addrlen) < 0) { ++ return 1; + } + return 2; + } +diff --git a/telnet/netlink.h b/telnet/netlink.h +index 9852b30..0ac8a08 100644 +--- a/telnet/netlink.h ++++ b/telnet/netlink.h +@@ -1,13 +1,16 @@ + + class netlink { ++ private: ++ int family; + protected: + int net; + public: + netlink(); + ~netlink(); + +- int connect(int debug, struct hostent *host, +- struct sockaddr_in *sin, ++ int bind(struct addrinfo *hostaddr); ++ int socket(int family); ++ int connect(int debug, struct addrinfo *hostaddr, + char *srcroute, int srlen, + int tos); + void close(int doshutdown); +diff --git a/telnet/network.cc b/telnet/network.cc +index 6a2c374..0dcf3e2 100644 +--- a/telnet/network.cc ++++ b/telnet/network.cc +@@ -40,6 +40,7 @@ char net_rcsid[] = + #include <sys/types.h> + #include <sys/socket.h> + #include <sys/time.h> ++#include <stdlib.h> + #include <errno.h> + #include <arpa/telnet.h> + +diff --git a/telnet/proto.h b/telnet/proto.h +index 8be4a39..92f2419 100644 +--- a/telnet/proto.h ++++ b/telnet/proto.h +@@ -13,7 +13,7 @@ int TerminalWindowSize(long *rows, long *cols); + void auth_encrypt_user(char *); + void auth_name(unsigned char *, int); + void auth_printsub(unsigned char *, int, unsigned char *, int); +-void cmdrc(const char *m1, const char *m2); ++void cmdrc(const char *, const char *, const char *); + void env_init(void); + int getconnmode(void); + void init_network(void); +diff --git a/telnet/ring.cc b/telnet/ring.cc +index be57396..772c6c5 100644 +--- a/telnet/ring.cc ++++ b/telnet/ring.cc +@@ -165,7 +165,7 @@ int ringbuf::flush() { + + /////////////////////////////////////////////////// supply ////////////// + +-void ringbuf::printf(const char *format, ...) { ++void ringbuf::xprintf(const char *format, ...) { + char xbuf[256]; + va_list ap; + va_start(ap, format); +diff --git a/telnet/ring.h b/telnet/ring.h +index 15d3f3f..049377e 100644 +--- a/telnet/ring.h ++++ b/telnet/ring.h +@@ -83,7 +83,7 @@ class ringbuf { + // manual supply + void putch(char c) { write(&c, 1); } + void write(const char *buffer, int ct); +- void printf(const char *format, ...); ++ void xprintf(const char *format, ...); + int empty_count() { return size - count; } + + // automatic supply +diff --git a/telnet/sys_bsd.cc b/telnet/sys_bsd.cc +index 93fba7e..a8c9aab 100644 +--- a/telnet/sys_bsd.cc ++++ b/telnet/sys_bsd.cc +@@ -189,18 +189,25 @@ void NetSetPgrp(int fd) { + * Various signal handling routines. + */ + ++#if 0 + static void deadpeer(int /*sig*/) { + setcommandmode(); + siglongjmp(peerdied, -1); + } ++#endif + + static void intr(int /*sig*/) { + if (localchars) { + intp(); + } + else { ++#if 0 + setcommandmode(); + siglongjmp(toplevel, -1); ++#else ++ signal(SIGINT, SIG_DFL); ++ raise(SIGINT); ++#endif + } + } + +@@ -214,6 +221,8 @@ static void intr2(int /*sig*/) { + sendabort(); + return; + } ++ signal(SIGQUIT, SIG_DFL); ++ raise(SIGQUIT); + } + + #ifdef SIGWINCH +@@ -238,7 +247,9 @@ void ayt(int sig) { + void sys_telnet_init(void) { + signal(SIGINT, intr); + signal(SIGQUIT, intr2); ++#if 0 + signal(SIGPIPE, deadpeer); ++#endif + #ifdef SIGWINCH + signal(SIGWINCH, sendwin); + #endif +diff --git a/telnet/telnet.1 b/telnet/telnet.1 +index 54a47fb..8365e42 100644 +--- a/telnet/telnet.1 ++++ b/telnet/telnet.1 +@@ -42,8 +42,9 @@ + protocol + .Sh SYNOPSIS + .Nm telnet +-.Op Fl 8ELadr ++.Op Fl 468ELadr + .Op Fl S Ar tos ++.Op Fl b Ar address + .Op Fl e Ar escapechar + .Op Fl l Ar user + .Op Fl n Ar tracefile +@@ -68,6 +69,10 @@ command implicitly; see the description below. + .Pp + Options: + .Bl -tag -width indent ++.It Fl 4 ++Force IPv4 address resolution. ++.It Fl 6 ++Force IPv6 address resolution. + .It Fl 8 + Request 8-bit operation. This causes an attempt to negotiate the + .Dv TELNET BINARY +@@ -89,6 +94,8 @@ of the + option if supported by the remote system. The username is retrieved + via + .Xr getlogin 3 . ++.It Fl b Ar address ++Use bind(2) on the local socket to bind it to a specific local address. + .It Fl d + Sets the initial value of the + .Ic debug +@@ -474,17 +481,29 @@ protocol without making a mess. Protocol negotiation can be forced by + placing a dash before the port number. + .Pp + After establishing a connection, any commands associated with the +-remote host in the user's ++remote host in ++.Pa /etc/telnetrc ++and the user's + .Pa .telnetrc +-file are executed. ++file are executed, in that order. + .Pp +-The format of the .telnetrc file is as follows: Lines beginning with a ++The format of the telnetrc files is as follows: Lines beginning with a + #, and blank lines, are ignored. The rest of the file should consist + of hostnames and sequences of + .Nm telnet + commands to use with that host. Commands should be one per line, + indented by whitespace; lines beginning without whitespace are +-interpreted as hostnames. Upon connecting to a particular host, the ++interpreted as hostnames. Lines beginning with the special hostname ++.Ql DEFAULT ++will apply to all hosts. Hostnames including ++.Ql DEFAULT ++may be followed immediately by a colon and a port number or string. ++If a port is specified it must match exactly with what is specified ++on the command line. If no port was specified on the command line, ++then the value ++.Ql telnet ++is used. ++Upon connecting to a particular host, the + commands associated with that host are executed. + .It Ic quit + Close any open session and exit +@@ -1184,9 +1203,7 @@ escape sequences are preceded by a '*' to aid in locating them. + When the skiprc toggle is + .Dv TRUE , + .Tn telnet +-does not read the +-.Pa \&.telnetrc +-file. The initial value for this toggle is ++does not read the telnetrc files. The initial value for this toggle is + .Dv FALSE. + .It Ic termdata + Toggles the display of all terminal data (in hexadecimal format). +@@ -1239,7 +1256,9 @@ to the other side via the + .Dv TELNET ENVIRON + option. + .Sh FILES +-.Bl -tag -width ~/.telnetrc -compact ++.Bl -tag -width /etc/telnetrc -compact ++.It Pa /etc/telnetrc ++global telnet startup values + .It Pa ~/.telnetrc + user customized telnet startup values + .El +diff --git a/telnet/telnet.cc b/telnet/telnet.cc +index 4fc3b1f..7eca811 100644 +--- a/telnet/telnet.cc ++++ b/telnet/telnet.cc +@@ -88,7 +88,8 @@ char do_dont_resp[256]; + char will_wont_resp[256]; + + int +-eight = 0, ++ eight = 3, ++ binary = 0, + autologin = 0, /* Autologin anyone? */ + skiprc = 0, + connected, +@@ -639,14 +640,14 @@ static const char *gettermname(void) { + if (resettermname) { + resettermname = 0; + tname = env_getvalue("TERM", 0); +- if (!tname || my_setupterm(tname, 1, &err)) { ++ if (!tname /* || my_setupterm(tname, 1, &err) */) { + termbuf[0] = 0; + tname = "UNKNOWN"; + } + mklist(termbuf, tname, termtypes); + next = 0; + } +- if (next==termtypes.num()) next = 0; ++ if (next==termtypes.num()-1) next = 0; + return termtypes[next++]; + } + /* +@@ -681,7 +682,7 @@ static void suboption(void) { + } + #endif /* TN3270 */ + name = gettermname(); +- netoring.printf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_TTYPE, ++ netoring.xprintf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_TTYPE, + TELQUAL_IS, name, IAC, SE); + } + break; +@@ -693,7 +694,7 @@ static void suboption(void) { + if (SB_GET() == TELQUAL_SEND) { + long oospeed, iispeed; + TerminalSpeeds(&iispeed, &oospeed); +- netoring.printf("%c%c%c%c%ld,%ld%c%c", IAC, SB, TELOPT_TSPEED, ++ netoring.xprintf("%c%c%c%c%ld,%ld%c%c", IAC, SB, TELOPT_TSPEED, + TELQUAL_IS, oospeed, iispeed, IAC, SE); + } + break; +@@ -780,7 +781,7 @@ static void suboption(void) { + send_wont(TELOPT_XDISPLOC, 1); + break; + } +- netoring.printf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_XDISPLOC, ++ netoring.xprintf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_XDISPLOC, + TELQUAL_IS, dp, IAC, SE); + } + break; +@@ -798,7 +799,7 @@ void lm_will(unsigned char *cmd, int len) { + return; + } + +- netoring.printf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, ++ netoring.xprintf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, + DONT, cmd[0], IAC, SE); + } + +@@ -815,7 +816,7 @@ void lm_do(unsigned char *cmd, int len) { + /*@*/ printf("lm_do: no command!!!\n"); /* Should not happen... */ + return; + } +- netoring.printf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, ++ netoring.xprintf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, + WONT, cmd[0], IAC, SE); + } + +@@ -838,7 +839,7 @@ void lm_mode(unsigned char *cmd, int len, int init) { + k |= MODE_ACK; + } + +- netoring.printf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, LM_MODE, ++ netoring.xprintf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, LM_MODE, + k, IAC, SE); + + setconnmode(0); /* set changed mode */ +@@ -933,11 +934,11 @@ void slc_mode_import(int def) { + + void slc_import(int def) { + if (def) { +- netoring.printf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, ++ netoring.xprintf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, + LM_SLC, 0, SLC_DEFAULT, 0, IAC, SE); + } + else { +- netoring.printf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, ++ netoring.xprintf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, + LM_SLC, 0, SLC_VARIABLE, 0, IAC, SE); + } + } +@@ -1050,6 +1051,7 @@ void slc_check(void) { + + + unsigned char slc_reply[128]; ++unsigned char const * const slc_reply_eom = &slc_reply[sizeof(slc_reply)]; + unsigned char *slc_replyp; + + void slc_start_reply(void) { +@@ -1061,6 +1063,14 @@ void slc_start_reply(void) { + } + + void slc_add_reply(int func, int flags, int value) { ++ /* A sequence of up to 6 bytes my be written for this member of the SLC ++ * suboption list by this function. The end of negotiation command, ++ * which is written by slc_end_reply(), will require 2 additional ++ * bytes. Do not proceed unless there is sufficient space for these ++ * items. ++ */ ++ if (&slc_replyp[6+2] > slc_reply_eom) ++ return; + if ((*slc_replyp++ = func) == IAC) + *slc_replyp++ = IAC; + if ((*slc_replyp++ = flags) == IAC) +@@ -1142,6 +1152,7 @@ void env_opt(unsigned char *buf, int len) { + } + } + ++/* OPT_REPLY_SIZE must be a multiple of 2. */ + #define OPT_REPLY_SIZE 256 + unsigned char *opt_reply; + unsigned char *opt_replyp; +@@ -1173,6 +1184,7 @@ void env_opt_start_info(void) { + + void env_opt_add(const char *ep) { + const char *vp; ++ const unsigned char *tp; + unsigned char c; + + if (opt_reply == NULL) /*XXX*/ +@@ -1185,11 +1197,12 @@ void env_opt_add(const char *ep) { + return; + } + vp = env_getvalue(ep, 1); +- if (opt_replyp + (vp ? strlen(vp) : 0) + strlen(ep) + 6 > opt_replyend) ++ tp = opt_replyp + (vp ? strlen(vp) * 2 : 0) + strlen(ep) * 2 + 6; ++ if (tp > opt_replyend) + { + register int len; +- opt_replyend += OPT_REPLY_SIZE; +- len = opt_replyend - opt_reply; ++ len = ((tp - opt_reply) + OPT_REPLY_SIZE - 1) & ~(OPT_REPLY_SIZE - 1); ++ opt_replyend = opt_reply + len; + opt_reply = (unsigned char *)realloc(opt_reply, len); + if (opt_reply == NULL) { + /*@*/ printf("env_opt_add: realloc() failed!!!\n"); +@@ -1740,8 +1753,8 @@ void telnet(const char * /*user*/) { + send_do(TELOPT_STATUS, 1); + if (env_getvalue("DISPLAY", 0)) + send_will(TELOPT_XDISPLOC, 1); +- if (eight) +- tel_enter_binary(eight); ++ if (binary) ++ tel_enter_binary(binary); + } + #endif /* !defined(TN3270) */ + +diff --git a/telnet/terminal.cc b/telnet/terminal.cc +index 9eb47ae..764f18f 100644 +--- a/telnet/terminal.cc ++++ b/telnet/terminal.cc +@@ -45,6 +45,8 @@ char terminal_rcsid[] = + #include <signal.h> + #include <errno.h> + #include <stdio.h> ++#include <string.h> ++#include <stdlib.h> + + #include "ring.h" + #include "defines.h" +@@ -155,9 +157,11 @@ int getconnmode(void) { + if (localflow) + mode |= MODE_FLOW; + +- if (my_want_state_is_will(TELOPT_BINARY)) ++ if ((eight & 1) || my_want_state_is_will(TELOPT_BINARY)) + mode |= MODE_INBIN; + ++ if (eight & 2) ++ mode |= MODE_OUT8; + if (his_want_state_is_will(TELOPT_BINARY)) + mode |= MODE_OUTBIN; + +@@ -449,10 +453,13 @@ void TerminalNewMode(int f) + // breaks SunOS. + tmp_tc.c_iflag |= ISTRIP; + } +- if (f & MODE_OUTBIN) { ++ if (f & (MODE_OUTBIN|MODE_OUT8)) { + tmp_tc.c_cflag &= ~(CSIZE|PARENB); + tmp_tc.c_cflag |= CS8; +- tmp_tc.c_oflag &= ~OPOST; ++ if (f & MODE_OUTBIN) ++ tmp_tc.c_oflag &= ~OPOST; ++ else ++ tmp_tc.c_oflag |= OPOST; + } else { + tmp_tc.c_cflag &= ~(CSIZE|PARENB); + tmp_tc.c_cflag |= old_tc.c_cflag & (CSIZE|PARENB); +@@ -468,7 +475,7 @@ void TerminalNewMode(int f) + + #ifdef SIGINFO + signal(SIGINFO, ayt); +-#endif SIGINFO ++#endif /* SIGINFO */ + + #if defined(NOKERNINFO) + tmp_tc.c_lflag |= NOKERNINFO; +@@ -504,7 +511,7 @@ void TerminalNewMode(int f) + + #ifdef SIGINFO + signal(SIGINFO, ayt_status); +-#endif SIGINFO ++#endif /* SIGINFO */ + + #ifdef SIGTSTP + signal(SIGTSTP, SIG_DFL); +diff --git a/telnet/utilities.cc b/telnet/utilities.cc +index 0448f0a..66839ab 100644 +--- a/telnet/utilities.cc ++++ b/telnet/utilities.cc +@@ -47,6 +47,8 @@ char util_rcsid[] = + #include <sys/socket.h> + #include <unistd.h> + #include <ctype.h> ++#include <string.h> ++#include <stdlib.h> + + #include "ring.h" + #include "defines.h" +-- +1.8.4.2 + diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch b/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch new file mode 100644 index 0000000000..b9a98f1d6f --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch @@ -0,0 +1,41 @@ +From 31362e4c0d02b4a2b952ad0dd32acfb573c442f3 Mon Sep 17 00:00:00 2001 +From: Li xin <lixin.fnst@cn.fujitsu.com> +Date: Fri, 28 Nov 2014 07:17:40 +0900 +Subject: [PATCH 2/2] WARNING Fix and modify "CFLAGS" + +WARNING: QA Issue: File '/usr/sbin/in.telnetd' from netkit-telnet was +already stripped, this will prevent future debugging! [already-stripped] + +Upstream-Status: pending + +Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> +--- + telnetd/Makefile | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/telnetd/Makefile b/telnetd/Makefile +index 72650b4..a4cf9fa 100644 +--- a/telnetd/Makefile ++++ b/telnetd/Makefile +@@ -9,7 +9,8 @@ include ../MRULES + # take out -DPARANOID_TTYS. + + CFLAGS += '-DISSUE_FILE="/etc/issue.net"' -DPARANOID_TTYS \ +- -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS ++ -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS \ ++ -DLOGIN_WRAPPER=\"/${libdir}/telnetlogin\" + # LIBS += $(LIBTERMCAP) + + OBJS = telnetd.o state.o termstat.o slc.o sys_term.o utility.o \ +@@ -27,7 +28,7 @@ $(OBJS): defs.h ext.h pathnames.h telnetd.h logwtmp.h logout.h setproctitle.h + telnetd.o: ../version.h + + install: telnetd +- install -s -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd ++ install -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd + install -m$(MANMODE) issue.net.5 $(INSTALLROOT)$(MANDIR)/man5/ + install -m$(MANMODE) telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/in.telnetd.8 + ln -sf in.telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/telnetd.8 +-- +1.8.4.2 + diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd b/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd new file mode 100644 index 0000000000..12204c71b2 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd @@ -0,0 +1,14 @@ +# default: on +# description: The telnet server serves telnet sessions; it uses \ +# unencrypted username/password pairs for authentication. +service telnet +{ + flags = REUSE + socket_type = stream + wait = no + user = root + server = /usr/sbin/in.telnetd + log_on_failure += USERID + disable = yes +} + diff --git a/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb new file mode 100644 index 0000000000..a2dc1c270b --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb @@ -0,0 +1,52 @@ +DESCRIPTION = "netkit-telnet includes the telnet daemon and client." +SECTION = "base" +DEPENDS = "ncurses" +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 \ +" + +EXTRA_OEMAKE = "INSTALLROOT=${D} SBINDIR=${sbindir} DAEMONMODE=755 \ + MANMODE=644 MANDIR=${mandir}" + +do_configure () { + ./configure --prefix=${prefix} + echo "LDFLAGS=${LDFLAGS}" > MCONFIG +} + +do_compile () { + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnet + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' LIBS=-lutil SUB=telnetd +} + +do_install () { + install -d ${D}${bindir} + install -m 0755 telnet/telnet ${D}${bindir}/telnet.${PN} + install -d ${D}${sbindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man5 + install -d ${D}${mandir}/man8 + oe_runmake SUB=telnetd install + rm -rf ${D}${mandir}/man1 + # fix up hardcoded paths + sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/telnet-xinetd + install -d ${D}/etc/xinetd.d/ + install -p -m644 ${WORKDIR}/telnet-xinetd ${D}/etc/xinetd.d/telnet +} + +pkg_postinst_${PN} () { +#!/bin/sh + update-alternatives --install ${bindir}/telnet telnet telnet.${PN} 100 +} + +pkg_prerm_${PN} () { +#!/bin/sh + update-alternatives --remove telnet telnet.${PN} 100 +} + +SRC_URI[md5sum] = "d6beabaaf53fe6e382c42ce3faa05a36" +SRC_URI[sha256sum] = "9c80d5c7838361a328fb6b60016d503def9ce53ad3c589f3b08ff71a2bb88e00" diff --git a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf new file mode 100644 index 0000000000..7bc6ca96b6 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf @@ -0,0 +1,11 @@ +service tftp +{ + disable = no + socket_type = dgram + port = 69 + protocol = udp + wait = yes + user = nobody + server = /usr/sbin/in.tftpd + server_args = /tftpboot +} diff --git a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb new file mode 100644 index 0000000000..bd54c0a817 --- /dev/null +++ b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb @@ -0,0 +1,54 @@ +SUMMARY = "tftp - Trivial file transfer protocol client" +SECTION = "networking" +LICENSE = "BSD-4-Clause" +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 \ +" + +SRC_URI[archive.md5sum] = "b7262c798e2ff50e29c2ff50dfd8d6a8" +SRC_URI[archive.sha256sum] = "3a43c0010d4e61f412563fd83769d4667d8b8e82903526d21cb9205fe55ad14d" +SRC_URI[patch18.md5sum] = "cb29e7a33dd85105ba6e6ec4f971e42c" +SRC_URI[patch18.sha256sum] = "092437d27b4fa88c044ef6290372fee5ce06d223607f0e22a6e527065c8930e7" + +inherit autotools-brokensep + +do_configure () { + ./configure --prefix=${prefix} + echo "CFLAGS=${CFLAGS}" > MCONFIG +} + +do_compile () { + oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' 'CFLAGS=${CFLAGS}' +} + +do_install () { + install -d ${D}${bindir} + install -d ${D}${sbindir} + install -d ${D}${mandir}/man1 + install -d ${D}${mandir}/man8 + install -d ${D}${sysconfdir}/xinetd.d + + sed -i 's/install -s/install/' tftp/Makefile + sed -i 's/install -s/install/' tftpd/Makefile + + oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \ + 'DAEMONMODE=0755' 'MANMODE=0644' \ + 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' install + + install ${WORKDIR}/tftp.conf ${D}/${sysconfdir}/xinetd.d/tftp +} + +PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg" +FILES_${PN}-client = "${bindir}/*" +FILES_${PN}-server = "${sbindir}/* ${sysconfdir}/xinetd.d/*" +FILES_${PN}-doc = "${mandir}" +FILES_${PN}-dbg = "${prefix}/src/debug \ + ${bindir}/.debug ${sbindir}/.debug" + +RDEPENDS_${PN}-server = "tcp-wrappers xinetd" diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Added-checks-for-printing-variables-with-wrong-types.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Added-checks-for-printing-variables-with-wrong-types.patch new file mode 100644 index 0000000000..30374cfe96 --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Added-checks-for-printing-variables-with-wrong-types.patch @@ -0,0 +1,455 @@ +From 7f4a7b891332899cea26e95be0337aae01648742 Mon Sep 17 00:00:00 2001 +From: Jan Safranek <jsafranek@users.sourceforge.net> +Date: Thu, 31 Jul 2014 13:46:49 +0200 +Subject: [PATCH] Added checks for printing variables with wrong types. + +Upstream-Status: Backport + +When -OQ command line argument is used, variable formatter preffers the type +of the varible parsed from a MIB file instead of checking type of the variable +as parsed from SNMP message. + +This can lead to crashes when incoming packets contains a variable with +NULL type, while the MIB says the variable should be non-NULL, like Integer. +The formatter then tries to interpret the NULL (from packet) as Integer (from +MIB file). + +Signed-off-by: Jan Safranek <jsafranek@users.sourceforge.net> +--- + snmplib/mib.c | 270 ++++++++++++++++++++++++++++----------------------------- + 1 file changed, 135 insertions(+), 135 deletions(-) + +diff --git a/snmplib/mib.c b/snmplib/mib.c +index 9d3ca41..c6e0010 100644 +--- a/snmplib/mib.c ++++ b/snmplib/mib.c +@@ -439,17 +439,16 @@ sprint_realloc_octet_string(u_char ** buf, size_t * buf_len, + u_char *cp; + int output_format, cnt; + +- if ((var->type != ASN_OCTET_STR) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- const char str[] = "Wrong Type (should be OCTET STRING): "; +- if (snmp_cstrcat +- (buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_OCTET_STR) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ const char str[] = "Wrong Type (should be OCTET STRING): "; ++ if (!snmp_cstrcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + +@@ -702,16 +701,16 @@ sprint_realloc_float(u_char ** buf, size_t * buf_len, + const struct enum_list *enums, + const char *hint, const char *units) + { +- if ((var->type != ASN_OPAQUE_FLOAT) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- if (snmp_cstrcat(buf, buf_len, out_len, allow_realloc, +- "Wrong Type (should be Float): ")) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_OPAQUE_FLOAT) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be Float): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +@@ -772,17 +771,16 @@ sprint_realloc_double(u_char ** buf, size_t * buf_len, + const struct enum_list *enums, + const char *hint, const char *units) + { +- if ((var->type != ASN_OPAQUE_DOUBLE) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- if (snmp_cstrcat +- (buf, buf_len, out_len, allow_realloc, +- "Wrong Type (should be Double): ")) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_OPAQUE_DOUBLE) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be Double): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +@@ -847,20 +845,21 @@ sprint_realloc_counter64(u_char ** buf, size_t * buf_len, size_t * out_len, + { + char a64buf[I64CHARSZ + 1]; + +- if ((var->type != ASN_COUNTER64 ++ if (var->type != ASN_COUNTER64 + #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES + && var->type != ASN_OPAQUE_COUNTER64 + && var->type != ASN_OPAQUE_I64 && var->type != ASN_OPAQUE_U64 + #endif +- ) && (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- if (snmp_cstrcat(buf, buf_len, out_len, allow_realloc, +- "Wrong Type (should be Counter64): ")) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ ) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be Counter64): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +@@ -948,23 +947,25 @@ sprint_realloc_opaque(u_char ** buf, size_t * buf_len, + const struct enum_list *enums, + const char *hint, const char *units) + { +- if ((var->type != ASN_OPAQUE ++ if (var->type != ASN_OPAQUE + #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES + && var->type != ASN_OPAQUE_COUNTER64 + && var->type != ASN_OPAQUE_U64 + && var->type != ASN_OPAQUE_I64 + && var->type != ASN_OPAQUE_FLOAT && var->type != ASN_OPAQUE_DOUBLE + #endif /* NETSNMP_WITH_OPAQUE_SPECIAL_TYPES */ +- ) && (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- if (snmp_cstrcat(buf, buf_len, out_len, allow_realloc, +- "Wrong Type (should be Opaque): ")) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ ) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be Opaque): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } ++ + #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES + switch (var->type) { + case ASN_OPAQUE_COUNTER64: +@@ -1040,17 +1041,16 @@ sprint_realloc_object_identifier(u_char ** buf, size_t * buf_len, + { + int buf_overflow = 0; + +- if ((var->type != ASN_OBJECT_ID) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = +- "Wrong Type (should be OBJECT IDENTIFIER): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_OBJECT_ID) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be OBJECT IDENTIFIER): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +@@ -1110,16 +1110,16 @@ sprint_realloc_timeticks(u_char ** buf, size_t * buf_len, size_t * out_len, + { + char timebuf[40]; + +- if ((var->type != ASN_TIMETICKS) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = "Wrong Type (should be Timeticks): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_TIMETICKS) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be Timeticks): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS)) { +@@ -1277,17 +1277,18 @@ sprint_realloc_integer(u_char ** buf, size_t * buf_len, size_t * out_len, + { + char *enum_string = NULL; + +- if ((var->type != ASN_INTEGER) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = "Wrong Type (should be INTEGER): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_INTEGER) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be INTEGER): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } ++ + for (; enums; enums = enums->next) { + if (enums->value == *var->val.integer) { + enum_string = enums->label; +@@ -1380,16 +1381,16 @@ sprint_realloc_uinteger(u_char ** buf, size_t * buf_len, size_t * out_len, + { + char *enum_string = NULL; + +- if ((var->type != ASN_UINTEGER) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = "Wrong Type (should be UInteger32): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_UINTEGER) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be UInteger32): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + for (; enums; enums = enums->next) { +@@ -1477,17 +1478,16 @@ sprint_realloc_gauge(u_char ** buf, size_t * buf_len, size_t * out_len, + { + char tmp[32]; + +- if ((var->type != ASN_GAUGE) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = +- "Wrong Type (should be Gauge32 or Unsigned32): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_GAUGE) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be Gauge32 or Unsigned32): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +@@ -1550,16 +1550,16 @@ sprint_realloc_counter(u_char ** buf, size_t * buf_len, size_t * out_len, + { + char tmp[32]; + +- if ((var->type != ASN_COUNTER) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = "Wrong Type (should be Counter32): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_COUNTER) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be Counter32): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +@@ -1613,16 +1613,16 @@ sprint_realloc_networkaddress(u_char ** buf, size_t * buf_len, + { + size_t i; + +- if ((var->type != ASN_IPADDRESS) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = "Wrong Type (should be NetworkAddress): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_IPADDRESS) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be NetworkAddress): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +@@ -1679,16 +1679,16 @@ sprint_realloc_ipaddress(u_char ** buf, size_t * buf_len, size_t * out_len, + { + u_char *ip = var->val.string; + +- if ((var->type != ASN_IPADDRESS) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = "Wrong Type (should be IpAddress): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_IPADDRESS) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be IpAddress): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +@@ -1737,20 +1737,20 @@ sprint_realloc_null(u_char ** buf, size_t * buf_len, size_t * out_len, + const struct enum_list *enums, + const char *hint, const char *units) + { +- if ((var->type != ASN_NULL) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = "Wrong Type (should be NULL): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_NULL) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be NULL): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } +- } else { +- u_char str[] = "NULL"; +- return snmp_strcat(buf, buf_len, out_len, allow_realloc, str); + } ++ ++ u_char str[] = "NULL"; ++ return snmp_strcat(buf, buf_len, out_len, allow_realloc, str); + } + + +@@ -1785,16 +1785,16 @@ sprint_realloc_bitstring(u_char ** buf, size_t * buf_len, size_t * out_len, + u_char *cp; + char *enum_string; + +- if ((var->type != ASN_BIT_STR && var->type != ASN_OCTET_STR) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = "Wrong Type (should be BITS): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_BIT_STR && var->type != ASN_OCTET_STR) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be BITS): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +@@ -1869,16 +1869,16 @@ sprint_realloc_nsapaddress(u_char ** buf, size_t * buf_len, + const struct enum_list *enums, const char *hint, + const char *units) + { +- if ((var->type != ASN_NSAP) && +- (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) { +- u_char str[] = "Wrong Type (should be NsapAddress): "; +- if (snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) { +- return sprint_realloc_by_type(buf, buf_len, out_len, ++ if (var->type != ASN_NSAP) { ++ if (!netsnmp_ds_get_boolean( ++ NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT)) { ++ u_char str[] = "Wrong Type (should be NsapAddress): "; ++ if (!snmp_strcat(buf, buf_len, out_len, allow_realloc, str)) ++ return 0; ++ } ++ return sprint_realloc_by_type(buf, buf_len, out_len, + allow_realloc, var, NULL, NULL, + NULL); +- } else { +- return 0; +- } + } + + if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) { +-- +1.7.10.4 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service b/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service index 10a1eb2128..3b336a0548 100644 --- a/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/snmpd.service @@ -4,7 +4,7 @@ After=syslog.target network.target [Service] Type=notify -Environment=OPTIONS="-LS0-6d" +Environment=OPTIONS="-Ls0-6d" EnvironmentFile=-/etc/default/snmpd ExecStart=/usr/sbin/snmpd $OPTIONS -f ExecReload=/bin/kill -HUP $MAINPID diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.2.1.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.2.1.bb index eb97748306..a76de0d3b8 100644 --- a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.2.1.bb +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.2.1.bb @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://README;beginline=3;endline=8;md5=7f7f00ba639ac8e8deb5 DEPENDS = "openssl libnl pciutils" SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \ + file://0001-Added-checks-for-printing-variables-with-wrong-types.patch \ file://init \ file://snmpd.conf \ file://snmptrapd.conf \ @@ -35,6 +36,11 @@ EXTRA_OECONF = "--disable-embedded-perl \ --with-defaults \ ${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)}" +CACHED_CONFIGUREVARS = " \ + ac_cv_header_valgrind_valgrind_h=no \ + ac_cv_header_valgrind_memcheck_h=no \ +" + do_configure_prepend() { export PERLPROG="${bindir}/env perl" } diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch new file mode 100644 index 0000000000..96dbc7551d --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch @@ -0,0 +1,106 @@ +From 152486fa3c36c3b99d17d5b553cf87ef412fae8e Mon Sep 17 00:00:00 2001 +From: Li xin <lixin.fnst@cn.fujitsu.com> +Date: Mon, 1 Dec 2014 01:53:41 +0900 +Subject: [PATCH] Makefile:modify CFLAGS to aviod build error. + +Upstream-Status: pending + +Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> +--- + Makefile | 22 +++++++++++----------- + plugins/Makefile | 6 +++--- + 2 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/Makefile b/Makefile +index 4aaa448..baa7882 100644 +--- a/Makefile ++++ b/Makefile +@@ -152,10 +152,10 @@ LIBS.dmalloc= -ldmalloc + export USE_DMALLOC + endif + +-CPPFLAGS= $(CPPFLAGS.l2tptest) $(CPPFLAGS-y) +-CFLAGS= -I. -Iusl -Icli -isystem include \ +- -MMD -Wall -Werror -Wno-strict-aliasing \ +- $(CPPFLAGS) $(CPPFLAGS.dmalloc) \ ++ADD_CPPFLAGS= $(CPPFLAGS.l2tptest) $(CPPFLAGS-y) ++ADD_CFLAGS= -I. -Iusl -Icli -isystem include \ ++ -MMD -Wall -Wno-strict-aliasing \ ++ $(ADD_CPPFLAGS) $(CPPFLAGS.dmalloc) \ + -DSYS_LIBDIR=$(SYS_LIBDIR) + LDFLAGS.l2tpd= -Wl,-E -L. -Lusl -lusl -ldl $(LIBS.dmalloc) -lc + LDFLAGS.l2tpconfig= -Lcli -lcli -lreadline $(LIBS.dmalloc) $(READLINE_LDFLAGS) -lc +@@ -170,10 +170,10 @@ CFLAGS.optimize= $(OPT_CFLAGS) + endif + export CFLAGS.optimize + +-CFLAGS+= $(CFLAGS.optimize) ++ADD_CFLAGS+= $(CFLAGS.optimize) + + ifeq ($(L2TP_USE_ASYNC_RPC),y) +-CPPFLAGS+= -DL2TP_ASYNC_RPC ++ADD_CPPFLAGS+= -DL2TP_ASYNC_RPC + endif + + ifeq ($(L2TP_FEATURE_RPC_MANAGEMENT),y) +@@ -220,13 +220,13 @@ endif + + # Compile without -Wall because rpcgen-generated code is full of warnings. + %_xdr.o: %_xdr.c +- $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(CPPFLAGS) $< ++ $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(ADD_CPPFLAGS) $< + + %_client.o: %_client.c +- $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(CPPFLAGS) $< ++ $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(ADD_CPPFLAGS) $< + + %_server.o: %_server.c +- $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(CPPFLAGS) $< ++ $(CC) -I. -MMD -w $(CFLAGS.optimize) -c $(ADD_CPPFLAGS) $< + + %_xdr.c: %.x + -$(RM) $@ +@@ -272,7 +272,7 @@ l2tpconfig: $(L2TPCONFIG_SRCS.o) + $(CC) -o $@ $^ $(LDFLAGS.l2tpconfig) + + %.o: %.c +- $(CC) -c $(CFLAGS) $< -o $@ ++ $(CC) -c $(CFLAGS) $(ADD_CFLAGS) $< -o $@ + + l2tp_options.h: FORCE + @rm -f $@.tmp +@@ -325,7 +325,7 @@ install: install-all + install-all: all install-daemon install-app + + install-daemon: +- @for d in $(filter-out usl,$(SUBDIRS)); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS)" install; if [ $$? -ne 0 ]; then exit 1; fi; done ++ @for d in $(filter-out usl,$(SUBDIRS)); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS) $(ADD_CPPFLAGS)" install; if [ $$? -ne 0 ]; then exit 1; fi; done + $(INSTALL) -d $(DESTDIR)/usr/sbin + $(INSTALL) openl2tpd $(DESTDIR)/usr/sbin + +diff --git a/plugins/Makefile b/plugins/Makefile +index 5be996d..6810236 100644 +--- a/plugins/Makefile ++++ b/plugins/Makefile +@@ -1,7 +1,7 @@ +-CFLAGS := $(CFLAGS.optimize) -MMD -Wall \ ++ADD_CFLAGS := $(CFLAGS.optimize) -MMD -Wall \ + -isystem ../include \ + -I. -I.. -I../usl -fPIC $(EXTRA_CFLAGS) +-LDFLAGS := -shared ++ADD_LDFLAGS := -shared + + PLUGINS.c:= ppp_unix.c ppp_null.c ipsec.c event_sock.c + +@@ -21,7 +21,7 @@ clean: + $(RM) $(PLUGINS.so) $(wildcard *.o) $(wildcard *.d) $(SRC.generated) + + %.so: %.c +- $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $< ++ $(CC) -o $@ $(LDFLAGS) $(ADD_LDFLAGS) $(CFLAGS) $(ADD_CFLAGS) $< + + install: all + $(INSTALL) -d $(DESTDIR)$(SYS_LIBDIR)/openl2tp +-- +1.8.4.2 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch new file mode 100644 index 0000000000..c11a127b81 --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch @@ -0,0 +1,41 @@ +From 460549a3de27f8dd8371b6d6fc1f69d8bffa102b Mon Sep 17 00:00:00 2001 +From: Joe MacDonald <joe_macdonald@mentor.com> +Date: Tue, 6 Jan 2015 11:23:21 -0500 +Subject: [PATCH] openl2tp: simplify gcc warning hack + +The hack to work around the gcc warning causes problems with some modern +gcc configurations. Since the redef behaviour is essentially correct +everywhere and since the hack is still required on 32-bit builders, leave +it in place but remove the #if guard since it is only there to ensure that +the l2tp_private.h file is updated if the rpc source file is changed and +the two get out of sync. + +Upstream-status: pending + +Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> +--- + l2tp_private.h | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/l2tp_private.h b/l2tp_private.h +index f3c1af7..cca6806 100644 +--- a/l2tp_private.h ++++ b/l2tp_private.h +@@ -89,14 +89,8 @@ + * So we redefine the constant with UL suffix to avoid the gcc warning. + * Is there some C preprocessor magic that could avoid having to do this? + */ +-#if L2TP_API_TUNNEL_FLAG_MTU != 2147483648 +-#error Constant L2TP_API_TUNNEL_FLAG_MTU changed. Update local definition here. +-#endif + #undef L2TP_API_TUNNEL_FLAG_MTU + #define L2TP_API_TUNNEL_FLAG_MTU 2147483648UL +-#if L2TP_API_SESSION_FLAG_NO_PPP != 2147483648 +-#error Constant L2TP_API_SESSION_FLAG_NO_PPP changed. Update local definition here. +-#endif + #undef L2TP_API_SESSION_FLAG_NO_PPP + #define L2TP_API_SESSION_FLAG_NO_PPP 2147483648UL + +-- +1.9.1 + diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb b/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb new file mode 100644 index 0000000000..5a041073de --- /dev/null +++ b/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb @@ -0,0 +1,36 @@ +SUMMARY = "An L2TP client/server, designed for VPN use." +DESCRIPTION = "OpenL2TP is an open source L2TP client / server, written \ +specifically for Linux. It has been designed for use as an enterprise \ +L2TP VPN server or in commercial, Linux-based, embedded networking \ +products and is able to support hundreds of sessions, each with \ +different configuration. It is used by several ISPs to provide \ +L2TP services and by corporations to implement L2TP VPNs." +HOMEPAGE = "http://www.openl2tp.org/" +SECTION = "console/network" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=e9d9259cbbf00945adc25a470c1d3585" +DEPENDS = "popt flex readline" + +SRC_URI = "http://ftp.jaist.ac.jp/pub/sourceforge/o/op/${PN}/${PN}/${PV}/${BP}.tar.gz \ + file://Makefile-modify-CFLAGS-to-aviod-build-error.patch \ + file://openl2tp-simplify-gcc-warning-hack.patch \ + " +SRC_URI[md5sum] = "e3d08dedfb9e6a9a1e24f6766f6dadd0" +SRC_URI[sha256sum] = "1c97704d4b963a87fbc0e741668d4530933991515ae9ab0dffd11b5444f4860f" + +inherit autotools-brokensep pkgconfig + +PARALLEL_MAKE = "" +EXTRA_OEMAKE = 'CFLAGS="${CFLAGS} -Wno-nused-but-set-variable"' + +do_compile_prepend() { + sed -i -e "s:SYS_LIBDIR=.*:SYS_LIBDIR=${libdir}:g" \ + -e 's:$(CROSS_COMPILE)as:${AS}:g' \ + -e 's:$(CROSS_COMPILE)ld:${LD}:g' \ + -e 's:$(CROSS_COMPILE)gcc:${CC}:g' \ + -e 's:$(CROSS_COMPILE)ar:${AR}:g' \ + -e 's:$(CROSS_COMPILE)nm:${NM}:g' \ + -e 's:$(CROSS_COMPILE)strip:${STRIP}:g' \ + -e 's:$(CROSS_COMPILE)install:install:g' \ + ${S}/Makefile +} diff --git a/meta-networking/recipes-protocols/quagga/files/ripngd.service b/meta-networking/recipes-protocols/quagga/files/ripngd.service index 936b81fb9e..72562d5f7c 100644 --- a/meta-networking/recipes-protocols/quagga/files/ripngd.service +++ b/meta-networking/recipes-protocols/quagga/files/ripngd.service @@ -1,4 +1,4 @@ -i[Unit] +[Unit] Description=RIP routing daemon for IPv6 BindTo=zebra.service After=zebra.service diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc index 9bdd4d590a..2c0817b83f 100644 --- a/meta-networking/recipes-protocols/quagga/quagga.inc +++ b/meta-networking/recipes-protocols/quagga/quagga.inc @@ -62,7 +62,7 @@ EXTRA_OECONF = "--sysconfdir=${sysconfdir}/quagga \ --enable-exampledir=${docdir}/quagga/examples/ \ --enable-vtysh \ --enable-isisd \ - --enable-watchquagga \ + ${@base_contains('DISTRO_FEATURES', 'sysvinit', '--enable-watchquagga', '--disable-watchquagga', d)} \ --enable-ospf-te \ --enable-opaque-lsa \ --enable-ipv6 \ @@ -135,6 +135,7 @@ do_install () { # Remove sysinit script if sysvinit is not in DISTRO_FEATURES if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then rm -rf ${D}${sysconfdir}/init.d/ + rm -f ${D}${sysconfdir}/default/watchquagga fi install -d ${D}${systemd_unitdir}/system @@ -160,7 +161,7 @@ pkg_postinst_${PN} () { # Split into a main package and separate per-protocol packages PACKAGE_BEFORE_PN = "${PN}-ospfd ${PN}-ospf6d ${PN}-babeld ${PN}-bgpd \ ${PN}-ripd ${PN}-ripngd ${PN}-isisd \ - ${PN}-ospfclient ${PN}-watchquagga" + ${PN}-ospfclient ${@base_contains('DISTRO_FEATURES', 'sysvinit', '${PN}-watchquagga', '', d)}" RDEPENDS_${PN} += "${PN}-babeld ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" diff --git a/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch new file mode 100644 index 0000000000..ecc2d74e74 --- /dev/null +++ b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch @@ -0,0 +1,84 @@ +From 45b97b474ce2d0ad56828db11edde8562bb47a43 Mon Sep 17 00:00:00 2001 +From: Li xin <lixin.fnst@cn.fujitsu.com> +Date: Tue, 2 Dec 2014 02:33:53 +0900 +Subject: [PATCH] Modify configure.in and etc/Makefile.am + +this patch is from Fedora to fix error: +"conftest.c:26:9: error: unknown type name 'not'" + +Upstream-Status: pending + +Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> +--- + configure.in | 6 +++++- + etc/Makefile.am | 9 ++++++--- + etc/radiusclient.conf.in | 2 +- + 3 files changed, 12 insertions(+), 5 deletions(-) + +diff --git a/configure.in b/configure.in +index 812f640..3a8af99 100644 +--- a/configure.in ++++ b/configure.in +@@ -29,6 +29,9 @@ AC_SUBST(LIBVERSION) + pkgsysconfdir=${sysconfdir}/$PACKAGE + AC_SUBST(pkgsysconfdir) + ++pkgdatadir=${datadir}/$PACKAGE ++AC_SUBST(pkgdatadir) ++ + AC_PROG_LIBTOOL + + AC_PROG_CC +@@ -118,7 +121,8 @@ then + ], + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_STRUCT_UTSNAME_DOMAINNAME), +- AC_MSG_RESULT(no) ++ AC_MSG_RESULT(no), ++ AC_MSG_RESULT(assume no), + ) + fi + +diff --git a/etc/Makefile.am b/etc/Makefile.am +index 39b6975..a3c403f 100644 +--- a/etc/Makefile.am ++++ b/etc/Makefile.am +@@ -14,9 +14,11 @@ CLEANFILES = *~ radiusclient.conf + + sbindir = @sbindir@ + pkgsysconfdir = @pkgsysconfdir@ +-pkgsysconf_DATA = issue port-id-map radiusclient.conf \ +- dictionary dictionary.ascend dictionary.compat dictionary.merit \ +- dictionary.sip ++pkgsysconf_DATA = issue port-id-map radiusclient.conf ++ ++pkgdatadir = @pkgdatadir@ ++pkgdata_DATA = dictionary dictionary.ascend dictionary.compat \ ++ dictionary.merit dictionary.sip + + EXTRA_DIST = issue port-id-map dictionary dictionary.ascend \ + dictionary.compat dictionary.merit servers radiusclient.conf.in \ +@@ -25,6 +27,7 @@ EXTRA_DIST = issue port-id-map dictionary dictionary.ascend \ + radiusclient.conf: radiusclient.conf.in + sed -e 's|@sbin''dir@|$(sbindir)|g' \ + -e 's|@pkgsysconf''dir@|$(pkgsysconfdir)|g' \ ++ -e 's|@pkgdata''dir@|$(pkgdatadir)|g' \ + <$(srcdir)/radiusclient.conf.in >radiusclient.conf + + install-data-local: servers +diff --git a/etc/radiusclient.conf.in b/etc/radiusclient.conf.in +index 948bc2f..aac9973 100644 +--- a/etc/radiusclient.conf.in ++++ b/etc/radiusclient.conf.in +@@ -47,7 +47,7 @@ servers @pkgsysconfdir@/servers + + # dictionary of allowed attributes and values + # just like in the normal RADIUS distributions +-dictionary @pkgsysconfdir@/dictionary ++dictionary @pkgdatadir@/dictionary + + # program to call for a RADIUS authenticated login + login_radius @sbindir@/login.radius +-- +1.8.4.2 + diff --git a/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/config-site.radiusclient-ng-0.5.6 b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/config-site.radiusclient-ng-0.5.6 new file mode 100644 index 0000000000..a30c144b9d --- /dev/null +++ b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/config-site.radiusclient-ng-0.5.6 @@ -0,0 +1 @@ +ac_cv_func_uname=no diff --git a/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb new file mode 100644 index 0000000000..2350d4f88b --- /dev/null +++ b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb @@ -0,0 +1,36 @@ +SUMMARY = "RADIUS protocol client library" +DESCRIPTION = "Portable, easy-to-use and standard compliant library suitable \ +for developing free and commercial software that need support for a RADIUS \ +protocol (RFCs 2128 and 2139)." +HOMEPAGE = "http://sourceforge.net/projects/radiusclient-ng.berlios/" +SECTION = "Applications/Internet" + +SRC_URI = "${DEBIAN_MIRROR}/main/r/${BPN}/${BPN}_${PV}.orig.tar.gz \ + file://Modify-configure.in-and-etc-Makefile.am.patch \ + file://config-site.radiusclient-ng-${PV}" + +SRC_URI[md5sum] = "6fb7d4d0aefafaee7385831ac46a8e9c" +SRC_URI[sha256sum] = "282a9f1355f190efbb06c0d7c4e062eaa652caf342ed3ad361ac595f72f09f14" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3e47566c9271b786693d8a08792dbf41" + +inherit autotools-brokensep + +EXTRA_OECONF += "--disable-static" + +do_configure_prepend () { + export CONFIG_SITE=./config-site.${P} +} + +do_compile_prepend() { + for m in `find . -name "Makefile"` ; do + sed -i -e 's:^program_transform_name =.*:program_transform_name =:g' ${m} + done +} + +do_install() { + oe_runmake DESTDIR=${D} install + rm -f ${D}${libdir}/*.la + rm -f ${D}${sbindir}/radexample +} diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.71.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.71.bb deleted file mode 100644 index ccc567e7fa..0000000000 --- a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.71.bb +++ /dev/null @@ -1,10 +0,0 @@ -require dnsmasq.inc - -SRC_URI += "\ - file://parallel-make.patch \ - file://lua.patch \ -" - -SRC_URI[dnsmasq-2.71.md5sum] = "15a68f7f6cc0119e843f67d2f79598f1" -SRC_URI[dnsmasq-2.71.sha256sum] = "7d8c64f66a396442e01b639df3ea6b4e02ba88cbe206c80be8de68b6841634c4" - diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.72.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.72.bb new file mode 100644 index 0000000000..bd5919492e --- /dev/null +++ b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.72.bb @@ -0,0 +1,10 @@ +require dnsmasq.inc + +SRC_URI += "\ + file://parallel-make.patch \ + file://lua.patch \ +" + +SRC_URI[dnsmasq-2.72.md5sum] = "cf82f81cf09ad3d47612985012240483" +SRC_URI[dnsmasq-2.72.sha256sum] = "635f1b47417d17cf32e45cfcfd0213ac39fd09918479a25373ba9b2ce4adc05d" + diff --git a/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb b/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb new file mode 100644 index 0000000000..6a50971e83 --- /dev/null +++ b/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb @@ -0,0 +1,35 @@ +SUMMARY = "DNSSEC and DLV configuration and priming tool" +DESCRIPTION = "\ +DNSSEC configuration and priming tool. Keys are required until the root \ +is signed, as well as for local unpublished DNSSEC keys to be preloaded \ +into the recursive nameserver. These DNSSEC configuration files can be \ +directly included in the bind or unbound nameserver configuration files. \ +dnssec-conf includes a commandline configuration client for Bind and \ +Unbound, known DNSSEC keys, URL's to official publication pages of keys, \ +and harvested keys, as well a script to harvest DNSKEY's from DNS. \ +See also: system-config-dnssec" +HOMEPAGE = "https://github.com/xelerance/dnssec-conf" +SECTION = "System Environment/Daemons" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=0636e73ff0215e8d672dc4c32c317bb3" +DEPENDS += "xmlto-native docbook-xml-dtd4-native \ + docbook-xsl-stylesheets-native libxslt-native" + +SRC_URI = "git://github.com/xelerance/dnssec-conf.git" +SRCREV = "8e799683736b4a7b5e5e78f98fba0a6f48393537" + +S = "${WORKDIR}/git" + +do_install () { + rm -rf ${D} + make PREFIX=${prefix} DESTDIR=${D} ETCDIR=${D}${sysconfdir} install + # We no longer ship trust anchors. Most of these are in the DLV Registry now. + # and it prevents the problem of shipping outdated trust anchors. + # For DLV, we ship the ISC DLV Registry key + rm -rf ${D}${sysconfdir}/pki/dnssec-keys/harvest/* + rm -rf ${D}${sysconfdir}/pki/dnssec-keys/production/reverse/* + install -d -m 0755 ${D}${sysconfdir}/sysconfig + install -m 0644 packaging/fedora/dnssec.sysconfig ${D}${sysconfdir}/sysconfig/dnssec +} + +RDEPENDS_${PN} = "python" diff --git a/meta-networking/recipes-support/drbd/drbd/drbd.service b/meta-networking/recipes-support/drbd/drbd/drbd.service new file mode 100644 index 0000000000..3543999976 --- /dev/null +++ b/meta-networking/recipes-support/drbd/drbd/drbd.service @@ -0,0 +1,12 @@ +[Unit] +Description=DRBD Service +After=network.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=@LIBEXECDIR@/drbd-helper start +ExecStop=@LIBEXECDIR@/drbd-helper stop + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-support/drbd/drbd_8.4.4.bb b/meta-networking/recipes-support/drbd/drbd_8.4.4.bb new file mode 100644 index 0000000000..491f05a592 --- /dev/null +++ b/meta-networking/recipes-support/drbd/drbd_8.4.4.bb @@ -0,0 +1,51 @@ +SUMMARY = "Distributed block device driver for Linux" +DESCRIPTION = "DRBD mirrors a block device over the network to another machine.\ +DRBD mirrors a block device over the network to another machine.\ +Think of it as networked raid 1. It is a building block for\ +setting up high availability (HA) clusters." +HOMEPAGE = "http://www.drbd.org/" +SECTION = "kernel/userland" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018" + +SRC_URI = "http://oss.linbit.com/${BPN}/8.4/${BPN}-${PV}.tar.gz \ + file://drbd.service \ + " +SRC_URI[md5sum] = "b51815343c1a9151e2936b3b97520388" +SRC_URI[sha256sum] = "a056219c5c23b079c3354179f7a1b9f55d47e573a4cd3178f2ef4c15604288f0" + +SYSTEMD_SERVICE_${PN} = "drbd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +inherit autotools-brokensep systemd + +EXTRA_OECONF = "--with-utils \ + --without-km \ + --with-initdir=/etc/init.d \ + --without-pacemaker \ + --without-rgmanager \ + --without-bashcompletion \ + --with-distro debian \ + " + +do_configure (){ + oe_runconf +} + +do_install_append() { + if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/drbd.service ${D}/${systemd_unitdir}/system + install -d ${D}/${libexecdir} + install -m 755 ${D}/${sysconfdir}/init.d/drbd ${D}/${libexecdir}/drbd-helper + + sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' \ + ${D}${systemd_unitdir}/system/drbd.service + fi +} + +RDEPENDS_${PN} += "bash perl" + +FILES_${PN} += "/run" +FILES_${PN} += "${base_libdir}/drbd" +FILES_${PN}-dbg += "${base_libdir}/drbd/.debug" diff --git a/meta-networking/recipes-support/esmtp/esmtp_1.2.bb b/meta-networking/recipes-support/esmtp/esmtp_1.2.bb new file mode 100644 index 0000000000..69bdaf9943 --- /dev/null +++ b/meta-networking/recipes-support/esmtp/esmtp_1.2.bb @@ -0,0 +1,40 @@ +SUMMARY = "User configurable send-only Mail Transfer Agent" +DESCRIPTION = "ESMTP is a user-configurable relay-only MTA \ +with a sendmail-compatible syntax, based on libESMTP and \ +supporting the AUTH (including the CRAM-MD5 and NTLM SASL \ +mechanisms) and StartTLS SMTP extensions." +HOMEPAGE = "http://esmtp.sourceforge.net/" +SECTION = "console/network" + +DEPENDS = "libesmtp" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${PV}/${BPN}-${PV}.tar.bz2" + +# Have to set this or we get -L/lib in LDFLAGS +EXTRA_OECONF = "--with-libesmtp=${STAGING_EXECPREFIXDIR}" + +inherit autotools update-alternatives + +ALTERNATIVE_${PN} = "sbinsendmail libsendmail" + +ALTERNATIVE_LINK_NAME[sbinsendmail] = "${sbindir}/sendmail" +ALTERNATIVE_TARGET[sbinsendmail] = "${bindir}/esmtp" +ALTERNATIVE_LINK_NAME[libsendmail] = "${libdir}/sendmail" +ALTERNATIVE_TARGET[libsendmail] = "${bindir}/esmtp" +ALTERNATIVE_PRIORITY = "10" + +SRC_URI[md5sum] = "79a9c1f9023d53f35bb82bf446150a72" +SRC_URI[sha256sum] = "a0d26931bf731f97514da266d079d8bc7d73c65b3499ed080576ab606b21c0ce" + +FILES_${PN} += "${libdir}/" + +# The sysroot/${libdir}/sendmail conflicts with lsb's, and it's a +# symlink to ${bindir}/esmtp which is meaningless for sysroot, so +# remove it. +SYSROOT_PREPROCESS_FUNCS += "remove_sysroot_sendmail" +remove_sysroot_sendmail() { + rm -r "${SYSROOT_DESTDIR}${libdir}/sendmail" +} diff --git a/meta-networking/recipes-support/geoip/geoip-perl/run-ptest b/meta-networking/recipes-support/geoip/geoip-perl/run-ptest new file mode 100644 index 0000000000..5404c247bd --- /dev/null +++ b/meta-networking/recipes-support/geoip/geoip-perl/run-ptest @@ -0,0 +1,15 @@ +#!/bin/sh + +# The tests contain hard-coded relative paths and must be +# executed from $pdir. +# +pdir=`dirname $0` +cd ${pdir} +for i in t/*.t ; do + perl ${i} 1>/dev/null 2>&1; + if [ $? == 0 ]; then + echo PASS: $i; + else + echo FAIL: $i; + fi; +done diff --git a/meta-networking/recipes-support/geoip/geoip-perl_1.45.bb b/meta-networking/recipes-support/geoip/geoip-perl_1.45.bb new file mode 100644 index 0000000000..177841298c --- /dev/null +++ b/meta-networking/recipes-support/geoip/geoip-perl_1.45.bb @@ -0,0 +1,40 @@ +# +# Copyright (C) 2014, 2015 Wind River Systems, Inc. +# Released under the MIT license (see COPYING.MIT for the terms) +# +SUMMARY = "GeoIP perl API library to access location database" +DESCRIPTION = "perl library for country/city/organization to IP address or hostname mapping" +HOMEPAGE = "http://www.maxmind.com/app/ip-location" +SECTION = "network" +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;md5=b0fa745303912bd2d64430f7ae69487d" + +# Note that we do not want to use the upstream file name locally. +# +SRC_URI = "http://github.com/maxmind/geoip-api-perl/archive/v${PV}.tar.gz;downloadfilename=${BPN}-${PV}.tar.gz \ + file://run-ptest \ + " + +SRC_URI[md5sum] = "0ce57140890bf81958e0cea4fe1885b2" +SRC_URI[sha256sum] = "c56437b1cc8887736cb1e435d0320c1c1ff3754830249516317b99137005fb23" + +S = "${WORKDIR}/geoip-api-perl-${PV}" + +DEPENDS += "geoip" + +inherit cpan ptest + +EXTRA_CPANFLAGS = "LIBS='-L${STAGING_LIBDIR}' INC='-I${STAGING_INCDIR}'" + + +# perl scripts and some special small data files +# +do_install_ptest () { + install -d -m 0755 ${D}${PTEST_PATH}/t/data + + install ${S}/t/*.t* ${D}${PTEST_PATH}/t + install ${S}/t/data/* ${D}${PTEST_PATH}/t/data +} + +FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Geo/IP/.debug" + diff --git a/meta-networking/recipes-support/geoip/geoip_1.6.0.bb b/meta-networking/recipes-support/geoip/geoip_1.6.0.bb new file mode 100644 index 0000000000..65e8362b7b --- /dev/null +++ b/meta-networking/recipes-support/geoip/geoip_1.6.0.bb @@ -0,0 +1,58 @@ +SUMMARY = "C library for country/city/organization to IP address or hostname mapping" +DESCRIPTION = "GeoIP is a C library that enables the user to find the country that any IP \ +address or hostname originates from. It uses a file based database that is \ +accurate as of March 2003. This database simply contains IP blocks as keys, and \ +countries as values. This database should be more complete and accurate than \ +using reverse DNS lookups." + +HOMEPAGE = "http://dev.maxmind.com/geoip/" +SECTION = "Development/Libraries" + +SRC_URI = "http://www.maxmind.com/download/geoip/api/c/GeoIP-1.6.0.tar.gz;name=tarball \ + http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz;apply=no;name=GeoIP-dat \ + http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz;apply=no;name=GeoIPv6-dat \ + http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz;apply=no;name=GeoLiteCity-dat \ + http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz;apply=no;name=GeoLiteCityv6-dat \ +" + +SRC_URI[tarball.md5sum] = "89f4cdfdab43f1d67364cd7c85bbe8ca" +SRC_URI[tarball.sha256sum] = "075a0c2815cd099e9ec35c9569db716a3fefcdbb6a10dbfa1ce7c6cd48d4a635" + +SRC_URI[GeoIP-dat.md5sum] = "4bc1e8280fe2db0adc3fe48663b8926e" +SRC_URI[GeoIP-dat.sha256sum] = "7fd7e4829aaaae2677a7975eeecd170134195e5b7e6fc7d30bf3caf34db41bcd" + +SRC_URI[GeoIPv6-dat.md5sum] = "aac7e6e9b141de80934ecee52daf7f56" +SRC_URI[GeoIPv6-dat.sha256sum] = "126fd2953eb193e60538e30b4465610530383f7a782745cacdca5ba6825f471c" + +SRC_URI[GeoLiteCity-dat.md5sum] = "15a42c684c53d2309e6632a6d6e02531" +SRC_URI[GeoLiteCity-dat.sha256sum] = "5ec02a6d39d545c77ec12cc30c6a8856883d8f55522fc5cd4f25af80163c6b3c" + +SRC_URI[GeoLiteCityv6-dat.md5sum] = "49d6ec946fa0a2575b5112a68d71f933" +SRC_URI[GeoLiteCityv6-dat.sha256sum] = "7a345e6cf0e59f8ab589ff15020241f0b03342dd04cc584f814c4f4700d49405" + + +LICENSE = "LGPL-2.1" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d5d53d6b948c064f4070183180a4fa89 \ + file://LICENSE;md5=f04db71812ba70aaba8b38da91984cd2 " + +S = "${WORKDIR}/GeoIP-1.6.0" + +inherit autotools + +EXTRA_OECONF = "--disable-static \ + --disable-dependency-tracking " + +do_install() { + make DESTDIR=${D} install + install -d ${D}/${datadir}/GeoIP + install ${WORKDIR}/GeoIP.dat ${D}/${datadir}/GeoIP/ + install ${WORKDIR}/GeoIPv6.dat ${D}/${datadir}/GeoIP/ + install ${WORKDIR}/GeoLiteCity.dat ${D}/${datadir}/GeoIP/ + install ${WORKDIR}/GeoLiteCityv6.dat ${D}/${datadir}/GeoIP/ +} + +PACKAGES =+ "${PN}-database" +FILES_${PN}-database = "" +FILES_${PN}-database += "${datadir}/GeoIP/*" + diff --git a/meta-networking/recipes-support/geoip/geoipupdate-2.1.0/GeoIP.conf b/meta-networking/recipes-support/geoip/geoipupdate-2.1.0/GeoIP.conf new file mode 100644 index 0000000000..134cfed1f5 --- /dev/null +++ b/meta-networking/recipes-support/geoip/geoipupdate-2.1.0/GeoIP.conf @@ -0,0 +1,11 @@ +# The following UserId and LicenseKey are required placeholders: +UserId 999999 +LicenseKey 000000000000 + +# Include one or more of the following ProductIds: +# * GeoLite2-City - GeoLite 2 City +# * GeoLite2-Country - GeoLite2 Country +# * 506 - GeoLite Legacy Country +# * 517 - GeoLite Legacy ASN +# * 533 - GeoLite Legacy City +ProductIds GeoLite2-City GeoLite2-Country 506 517 533 diff --git a/meta-networking/recipes-support/geoip/geoipupdate-2.1.0/geoipupdate.cron b/meta-networking/recipes-support/geoip/geoipupdate-2.1.0/geoipupdate.cron new file mode 100644 index 0000000000..40597a856e --- /dev/null +++ b/meta-networking/recipes-support/geoip/geoipupdate-2.1.0/geoipupdate.cron @@ -0,0 +1,5 @@ +# top of crontab +MAILTO=your@email.com + +32 11 * * 4 /usr/local/bin/geoipupdate +# end of crontab diff --git a/meta-networking/recipes-support/geoip/geoipupdate_2.1.0.bb b/meta-networking/recipes-support/geoip/geoipupdate_2.1.0.bb new file mode 100644 index 0000000000..851ad414d4 --- /dev/null +++ b/meta-networking/recipes-support/geoip/geoipupdate_2.1.0.bb @@ -0,0 +1,30 @@ +SUMMARY = "Crontab entry to provide weekly updates of the GeoIP free databases." +DESCRIPTION = "update databases for GeoIP" + +HOMEPAGE = "http://dev.maxmind.com/geoip/" +SECTION = "Development" + +DEPENDS = "zlib curl" + +SRC_URI = "https://github.com/maxmind/geoipupdate/releases/download/v2.1.0/geoipupdate-2.1.0.tar.gz \ + file://GeoIP.conf \ + file://geoipupdate.cron \ + " + +SRC_URI[md5sum] = "9107d082f15c8e482f4b6f1080e7deaf" +SRC_URI[sha256sum] = "7388c46f6c483ae609e5f5333a2585bc9713d56bb522da5c11b09d41c87aa5fb" + +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "\ +file://ChangeLog.md;md5=25f3500fad03ad7e6bf135b29c9c7c2d \ +" + +inherit autotools + +do_install_append() { + install -d ${D}/${sysconfdir} + install -d ${D}/${sysconfdir}/cron.d + install ${WORKDIR}/GeoIP.conf ${D}/${sysconfdir}/ + install ${WORKDIR}/geoipupdate.cron ${D}/${sysconfdir}/cron.d/ +} diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf new file mode 100644 index 0000000000..6b507508b1 --- /dev/null +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf @@ -0,0 +1,8 @@ +# Defaults for racoon service +# sourced by racoon.service +# installed at /etc/default/racoon by the maintainer scripts +# +# This is a POSIX shell fragment +# +# Arguments to pass to racoon +RACOON_ARGS="" diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample new file mode 100644 index 0000000000..2948a4a35b --- /dev/null +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample @@ -0,0 +1,40 @@ +# +# NOTE: This file will not be used if you use racoon-tool(8) to manage your +# IPsec connections. racoon-tool will process racoon-tool.conf(5) and +# generate a configuration (/var/lib/racoon/racoon.conf) and use it, instead +# of this file. +# +# Simple racoon.conf +# +# +# Please look in /usr/share/doc/racoon/examples for +# examples that come with the source. +# +# Please read racoon.conf(5) for details, and alsoread setkey(8). +# +# +# Also read the Linux IPSEC Howto up at +# http://www.ipsec-howto.org/t1.html +# +log notify; +path pre_shared_key "/etc/racoon/psk.txt"; +path certificate "/etc/racoon/certs"; + +#remote 172.31.1.1 { +# exchange_mode main,aggressive; +# proposal { +# encryption_algorithm 3des; +# hash_algorithm sha1; +# authentication_method pre_shared_key; +# dh_group modp1024; +# } +# generate_policy off; +#} +# +#sainfo address 192.168.203.10[any] any address 192.168.22.0/24[any] any { +# pfs_group modp768; +# encryption_algorithm 3des; +# authentication_algorithm hmac_md5; +# compression_algorithm deflate; +#} + diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service new file mode 100644 index 0000000000..a10e770279 --- /dev/null +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service @@ -0,0 +1,11 @@ +[Unit] +Description=Racoon IKEv1 key management daemon for IPSEC +After=syslog.target network.target + +[Service] +Type=forking +EnvironmentFile=-@SYSCONFDIR@/default/racoon +ExecStart=@SBINDIR@/racoon $RACOON_ARGS + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb b/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb index 8cc55ef8a3..9704b138c7 100644 --- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb +++ b/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb @@ -15,11 +15,14 @@ SRC_URI = "ftp://ftp.netbsd.org/pub/NetBSD/misc/ipsec-tools/0.8/ipsec-tools-${PV file://racoon-check-invalid-ivm.patch \ file://glibc-2.20.patch \ file://racoon-Resend-UPDATE-message-when-received-EINTR-message.patch \ + file://racoon.conf.sample \ + file://racoon.conf \ + file://racoon.service \ " SRC_URI[md5sum] = "d53ec14a0a3ece64e09e5e34b3350b41" SRC_URI[sha256sum] = "8eb6b38716e2f3a8a72f1f549c9444c2bc28d52c9536792690564c74fe722f2d" -inherit autotools +inherit autotools systemd # Options: # --enable-adminport enable admin port @@ -54,6 +57,7 @@ EXTRA_OECONF = "--with-kernel-headers=${STAGING_INCDIR} \ --enable-shared \ --enable-dpd \ --enable-natt=yes \ + --sysconfdir=${sysconfdir}/racoon \ ${@base_contains('DISTRO_FEATURES', 'ipv6', '--enable-ipv6=yes', '', d)}" # See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=530527 @@ -62,3 +66,19 @@ CFLAGS += "-fno-strict-aliasing" PACKAGECONFIG ??= "" PACKAGECONFIG[pam] = "--with-libpam,--without-libpam,libpam," PACKAGECONFIG[selinux] = "--enable-security-context,--disable-security-context,libselinux," + +do_install_append() { + install -d ${D}${sysconfdir}/racoon + install -m 0644 ${WORKDIR}/racoon.conf.sample ${D}${sysconfdir}/racoon/racoon.conf + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/racoon.service ${D}${systemd_unitdir}/system + + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/racoon.service + sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/racoon.service + + install -d ${D}${sysconfdir}/default/ + install -m 0644 ${WORKDIR}/racoon.conf ${D}${sysconfdir}/default/racoon + fi +} diff --git a/meta-networking/recipes-support/libesmtp/libesmtp/include-topdir.patch b/meta-networking/recipes-support/libesmtp/libesmtp/include-topdir.patch new file mode 100644 index 0000000000..90c4ce75e1 --- /dev/null +++ b/meta-networking/recipes-support/libesmtp/libesmtp/include-topdir.patch @@ -0,0 +1,48 @@ +diff -Nurp libesmtp-1.0.6.org/crammd5/Makefile.am libesmtp-1.0.6/crammd5/Makefile.am +--- libesmtp-1.0.6.org/crammd5/Makefile.am 2010-08-08 23:45:57.000000000 +0800 ++++ libesmtp-1.0.6/crammd5/Makefile.am 2014-11-17 11:17:21.663624295 +0800 +@@ -2,7 +2,7 @@ + + libdir = @plugindir@ + +-INCLUDES = -I@srcdir@ ++INCLUDES = -I@srcdir@ -I@srcdir@/../ + AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@ + + lib_LTLIBRARIES = sasl-cram-md5.la +diff -Nurp libesmtp-1.0.6.org/login/Makefile.am libesmtp-1.0.6/login/Makefile.am +--- libesmtp-1.0.6.org/login/Makefile.am 2010-08-08 23:45:56.000000000 +0800 ++++ libesmtp-1.0.6/login/Makefile.am 2014-11-17 11:17:54.339623018 +0800 +@@ -2,7 +2,7 @@ + + libdir = @plugindir@ + +-INCLUDES = -I@srcdir@ ++INCLUDES = -I@srcdir@ -I@srcdir@/../ + + lib_LTLIBRARIES = sasl-login.la + AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@ +diff -Nurp libesmtp-1.0.6.org/ntlm/Makefile.am libesmtp-1.0.6/ntlm/Makefile.am +--- libesmtp-1.0.6.org/ntlm/Makefile.am 2010-08-08 23:45:56.000000000 +0800 ++++ libesmtp-1.0.6/ntlm/Makefile.am 2014-11-17 11:18:10.551622385 +0800 +@@ -2,7 +2,7 @@ + + libdir = @plugindir@ + +-INCLUDES = -I@srcdir@ ++INCLUDES = -I@srcdir@ -I@srcdir@/../ + AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@ + + lib_LTLIBRARIES = sasl-ntlm.la +diff -Nurp libesmtp-1.0.6.org/plain/Makefile.am libesmtp-1.0.6/plain/Makefile.am +--- libesmtp-1.0.6.org/plain/Makefile.am 2010-08-08 23:45:54.000000000 +0800 ++++ libesmtp-1.0.6/plain/Makefile.am 2014-11-17 11:18:33.355621494 +0800 +@@ -2,7 +2,7 @@ + + libdir = @plugindir@ + +-INCLUDES = -I@srcdir@ ++INCLUDES = -I@srcdir@ -I@srcdir@/../ + AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@ + + lib_LTLIBRARIES = sasl-plain.la diff --git a/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb b/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb new file mode 100644 index 0000000000..8b2b99f1fc --- /dev/null +++ b/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb @@ -0,0 +1,36 @@ +SUMMARY = "SMTP client library" +DESCRIPTION = "LibESMTP is a library to manage posting \ +(or submission of) electronic mail using SMTP to a \ +preconfigured Mail Transport Agent (MTA) such as Exim or PostFix." +HOMEPAGE = "http://www.stafford.uklinux.net/libesmtp/" +LICENSE = "LGPLv2+" +SECTION = "libs/network" + +DEPENDS = "openssl" + +SRC_URI = "http://www.stafford.uklinux.net/libesmtp/libesmtp-${PV}.tar.bz2 \ + file://include-topdir.patch" +SRC_URI[md5sum] = "bf3915e627fd8f35524a8fdfeed979c8" +SRC_URI[sha256sum] = "d0a61a5c52d99fa7ce7d00ed0a07e341dbda67101dbed1ab0cdae3f37db4eb0b" + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06" + +inherit autotools binconfig + +EXTRA_OECONF = " \ + --with-auth-plugin-dir=${libdir}/esmtp-plugins \ + --enable-pthreads \ + --enable-debug \ + --enable-etrn \ + --disable-isoc \ + --disable-more-warnings \ + --disable-static \ +" + +FILES_${PN} = "${libdir}/lib*${SOLIBS} \ + ${libdir}/esmtp-plugins/*${SOLIBSDEV}" + +FILES_${PN}-dev += "${libdir}/esmtp-plugins/*.la" +FILES_${PN}-static += "${libdir}/esmtp-plugins/*.a" +FILES_${PN}-dbg += "${libdir}/esmtp-plugins/.debug/" diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/install-from-buildir.patch b/meta-networking/recipes-support/linux-atm/linux-atm/install-from-buildir.patch new file mode 100644 index 0000000000..d1380eb2aa --- /dev/null +++ b/meta-networking/recipes-support/linux-atm/linux-atm/install-from-buildir.patch @@ -0,0 +1,19 @@ +install binaries from builddir not srcdir. + +Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> + +--- linux-atm-2.5.2.orig/src/extra/Makefile.am 2010-12-21 05:07:22.000000000 +0800 ++++ linux-atm-2.5.2/src/extra/Makefile.am 2014-12-22 10:56:04.458563269 +0800 +@@ -9,9 +9,9 @@ CLEANFILES = pca200e.bin pca200e_ecd.bin + + install-exec-hook: + $(MKDIR_P) $(DESTDIR)/lib/firmware +- $(INSTALL_DATA) $(srcdir)/pca200e.bin $(DESTDIR)/lib/firmware +- $(INSTALL_DATA) $(srcdir)/pca200e_ecd.bin2 $(DESTDIR)/lib/firmware +- $(INSTALL_DATA) $(srcdir)/sba200e_ecd.bin2 $(DESTDIR)/lib/firmware ++ $(INSTALL_DATA) $(builddir)/pca200e.bin $(DESTDIR)/lib/firmware ++ $(INSTALL_DATA) $(builddir)/pca200e_ecd.bin2 $(DESTDIR)/lib/firmware ++ $(INSTALL_DATA) $(builddir)/sba200e_ecd.bin2 $(DESTDIR)/lib/firmware + + %.bin %.bin2: %.data + objcopy -Iihex $< -Obinary $@.gz diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/link-with-ldflags.patch b/meta-networking/recipes-support/linux-atm/linux-atm/link-with-ldflags.patch new file mode 100644 index 0000000000..62fad2a54a --- /dev/null +++ b/meta-networking/recipes-support/linux-atm/linux-atm/link-with-ldflags.patch @@ -0,0 +1,38 @@ +LDFLAGS_FOR_BUILD should be required when doing link for qgen. + +Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com> + +diff -Nurp linux-atm-2.5.2.orig/configure.in linux-atm-2.5.2/configure.in +--- linux-atm-2.5.2.orig/configure.in 2010-12-28 23:36:07.000000000 +0800 ++++ linux-atm-2.5.2/configure.in 2014-12-22 10:25:23.830510932 +0800 +@@ -66,6 +66,7 @@ else + fi + AC_SUBST(CC_FOR_BUILD) + AC_SUBST(CFLAGS_FOR_BUILD) ++AC_SUBST(LDFLAGS_FOR_BUILD) + dnl Add -d flag to bison/yacc to create intermediate .h files + YACC="$YACC -d" + +diff -Nurp linux-atm-2.5.2.orig/src/qgen/Makefile.am linux-atm-2.5.2/src/qgen/Makefile.am +--- linux-atm-2.5.2.orig/src/qgen/Makefile.am 2010-12-28 22:29:31.000000000 +0800 ++++ linux-atm-2.5.2/src/qgen/Makefile.am 2014-12-22 10:23:51.914508318 +0800 +@@ -5,7 +5,7 @@ qgen_SOURCES = common.c common.h file.c + qgen_LDADD = -lfl + + COMPILE = @CC_FOR_BUILD@ @CFLAGS_FOR_BUILD@ +-LINK = @CC_FOR_BUILD@ @CFLAGS_FOR_BUILD@ -o $@ ++LINK = @CC_FOR_BUILD@ @CFLAGS_FOR_BUILD@ @LDFLAGS_FOR_BUILD@ -o $@ + + #TESTS = $(check_PROGRAMS) + +diff -Nurp linux-atm-2.5.2.orig/src/qgen/Makefile.in linux-atm-2.5.2/src/qgen/Makefile.in +--- linux-atm-2.5.2.orig/src/qgen/Makefile.in 2010-12-29 00:06:11.000000000 +0800 ++++ linux-atm-2.5.2/src/qgen/Makefile.in 2014-12-22 10:23:51.914508318 +0800 +@@ -106,6 +106,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LD = @LD@ + LDFLAGS = @LDFLAGS@ ++LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ diff --git a/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb b/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb new file mode 100644 index 0000000000..0a9bd8c72b --- /dev/null +++ b/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb @@ -0,0 +1,22 @@ +SUMMARY = "Drivers and tools to support ATM networking under Linux" +HOMEPAGE = "http://linux-atm.sourceforge.net/" +SECTION = "libs" +LICENSE = "GPL-2.0 & LGPL-2.0" + +DEPENDS = "virtual/kernel flex flex-native" + +SRC_URI = "http://nchc.dl.sourceforge.net/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \ + file://link-with-ldflags.patch \ + file://install-from-buildir.patch" + +SRC_URI[md5sum] = "d49499368c3cf15f73a05d9bce8824a8" +SRC_URI[sha256sum] = "9645481a2b16476b59220aa2d6bc5bc41043f291326c9b37581018fbd16dd53a" + +LIC_FILES_CHKSUM = "\ +file://COPYING;md5=d928de9537d846935a98af3bbc6e6ee1 \ +file://COPYING.GPL;md5=ac2db169b9309e240555bc77be4f1a33 \ +file://COPYING.LGPL;md5=6e29c688d912da12b66b73e32b03d812" + +inherit autotools pkgconfig + +FILES_${PN} += "${base_libdir}/firmware" diff --git a/meta-networking/recipes-support/lksctp-tools/lksctp-tools/run-ptest b/meta-networking/recipes-support/lksctp-tools/lksctp-tools/run-ptest new file mode 100644 index 0000000000..e67f18e55a --- /dev/null +++ b/meta-networking/recipes-support/lksctp-tools/lksctp-tools/run-ptest @@ -0,0 +1,5 @@ +#!/bin/sh + +sh v4test.sh +sh v6test.sh + diff --git a/meta-networking/recipes-support/lksctp-tools/lksctp-tools/v4test.sh b/meta-networking/recipes-support/lksctp-tools/lksctp-tools/v4test.sh new file mode 100644 index 0000000000..5130856999 --- /dev/null +++ b/meta-networking/recipes-support/lksctp-tools/lksctp-tools/v4test.sh @@ -0,0 +1,11 @@ +#!/bin/sh +echo "v4test starting:" +for t in $(find -maxdepth 1 -type f \! -name test\*_v6 -name test\*); do + echo "$t"; + if $t; then + echo "PASS: $t"; echo ""; + else + echo "FAIL: $t"; echo ""; + fi + sleep 1; +done diff --git a/meta-networking/recipes-support/lksctp-tools/lksctp-tools/v6test.sh b/meta-networking/recipes-support/lksctp-tools/lksctp-tools/v6test.sh new file mode 100644 index 0000000000..3a667df820 --- /dev/null +++ b/meta-networking/recipes-support/lksctp-tools/lksctp-tools/v6test.sh @@ -0,0 +1,11 @@ +#!/bin/sh +echo "v6test starting:" +for t in $(find -maxdepth 1 -name test\*_v6); do + echo "$t"; + if $t; then + echo "PASS: $t"; echo ""; + else + echo "FAIL: $t"; echo ""; + fi + sleep 1; +done diff --git a/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.16.bb b/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.16.bb index e2551e1149..c07b3c6e91 100644 --- a/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.16.bb +++ b/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.16.bb @@ -1,13 +1,18 @@ SUMMARY = "The Linux Kernel Stream Control Transmission Protocol (lksctp) project" +HOMEPAGE = "http://lksctp.org" SECTION = "libs" -LICENSE = "LGPLv2" +LICENSE = "LGPLv2.1 & GPLv2" LIC_FILES_CHKSUM = " \ file://COPYING.lib;md5=0a1b79af951c42a9c8573533fbba9a92 \ file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e \ " -SRC_URI = "${SOURCEFORGE_MIRROR}/lksctp/${BP}.tar.gz" +SRC_URI = "${SOURCEFORGE_MIRROR}/lksctp/${BP}.tar.gz \ + file://run-ptest \ + file://v4test.sh \ + file://v6test.sh \ + " SRC_URI[md5sum] = "708bb0b5a6806ad6e8d13c55b067518e" SRC_URI[sha256sum] = "0903dd526b7f30a89d5031aa2c82757612becc38ed7bc6e4f972f8deae351f26" @@ -16,13 +21,21 @@ SRC_URI[sha256sum] = "0903dd526b7f30a89d5031aa2c82757612becc38ed7bc6e4f972f8deae #| /home/jenkins/oe/world/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.0/ld: error: symbol sctp_connectx has undefined version #| collect2: error: ld returned 1 exit status #| make[4]: *** [libsctp.la] Error 1 -PNBLACKLIST[lksctp-tools] = "BROKEN: fails to link against sctp_connectx symbol" +PNBLACKLIST[lksctp-tools] ?= "${@base_contains('DISTRO_FEATURES', 'ld-is-gold', "BROKEN: fails to link against sctp_connectx symbol", '', d)}" S = "${WORKDIR}/${BP}" BBCLASSEXTEND = "native" -inherit autotools pkgconfig binconfig +inherit autotools pkgconfig binconfig ptest + +do_install_ptest () { + install -m 0755 ${WORKDIR}/v4test.sh ${D}${PTEST_PATH} + install -m 0755 ${WORKDIR}/v6test.sh ${D}${PTEST_PATH} + for testcase in `find ${B}/src/apps/.libs ${B}/src/func_tests/.libs -maxdepth 1 -type f -executable`; do + install $testcase ${D}${PTEST_PATH} + done +} SOLIBVERSION="${PV}" SOLIBMAJORVERSION="1" @@ -31,16 +44,16 @@ PACKAGES =+ "${PN}-withsctp ${PN}-utils" FILES_${PN} = " \ ${libdir}/libsctp.so.${SOLIBVERSION} \ + ${libdir}/libsctp.so.${SOLIBMAJORVERSION} \ " FILES_${PN}-withsctp = " \ ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBVERSION} \ + ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBMAJORVERSION} \ " FILES_${PN}-dev += " \ - ${libdir}/libsctp.so.${SOLIBMAJORVERSION} \ ${libdir}/libsctp.so \ - ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBMAJORVERSION} \ ${libdir}/lksctp-tools/libwithsctp.so \ ${datadir}/lksctp-tools/*.c \ ${datadir}/lksctp-tools/*.h \ diff --git a/meta-networking/recipes-support/mtr/files/configure.patch b/meta-networking/recipes-support/mtr/files/configure.patch deleted file mode 100644 index c978b879ec..0000000000 --- a/meta-networking/recipes-support/mtr/files/configure.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: mtr-0.82/configure.in -=================================================================== ---- mtr-0.82.orig/configure.in 2014-07-16 19:52:56.306026346 +0000 -+++ mtr-0.82/configure.in 2014-07-17 21:59:03.208587150 +0000 -@@ -1,5 +1,5 @@ --AC_INIT(mtr.c) --AM_INIT_AUTOMAKE(mtr, 0.82) -+AC_INIT(mtr.c, 0.82) -+AM_INIT_AUTOMAKE([foreign]) - - - AC_SUBST(GTK_OBJ) diff --git a/meta-networking/recipes-support/mtr/files/no-gtk.patch b/meta-networking/recipes-support/mtr/files/no-gtk.patch deleted file mode 100644 index 0dbeb7a297..0000000000 --- a/meta-networking/recipes-support/mtr/files/no-gtk.patch +++ /dev/null @@ -1,31 +0,0 @@ -Disable gtk check that breaks with current autotools - -Ideally we would have a proper fix for this and send that upstream instead. - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> - -diff --git a/configure.in b/configure.in -index 8474543..5118565 100644 ---- a/configure.in -+++ b/configure.in -@@ -48,16 +48,8 @@ AC_ARG_ENABLE(ipv6, - [ --disable-ipv6 Do not enable IPv6], - WANTS_IPV6=$enableval, WANTS_IPV6=yes) - --if test "x$WANTS_GTK" = "xyes"; then -- AM_PATH_GTK_2_0(2.6.0, CFLAGS="$CFLAGS $GTK_CFLAGS" -- LIBS="$LIBS $GTK_LIBS -lm", -- AC_MSG_WARN(Building without GTK2 display support) -- AC_DEFINE(NO_GTK, 1, [Define if you don't have the GTK+ libraries available.]) -- GTK_OBJ="") --else -- AC_DEFINE(NO_GTK) -- GTK_OBJ="" --fi -+AC_DEFINE(NO_GTK, 1, [Define if you don't have the GTK+ libraries available.]) -+GTK_OBJ="" - - AC_CHECK_FUNC(socket, , - AC_CHECK_LIB(socket, socket, , AC_MSG_ERROR(No socket library found))) diff --git a/meta-networking/recipes-support/mtr/mtr_0.82.bb b/meta-networking/recipes-support/mtr/mtr_0.86.bb index b9a1ea2863..a60bd347e7 100644 --- a/meta-networking/recipes-support/mtr/mtr_0.82.bb +++ b/meta-networking/recipes-support/mtr/mtr_0.86.bb @@ -5,14 +5,12 @@ DEPENDS = "ncurses" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ - file://mtr.c;beginline=5;endline=16;md5=56e390ced194aff352eefab404883057" + file://mtr.c;beginline=5;endline=16;md5=af1fafbbfa1bfd48af839f4bb3221106" -SRC_URI = "ftp://ftp.bitwizard.nl/mtr/mtr-${PV}.tar.gz \ - file://configure.patch \ - file://no-gtk.patch" +SRC_URI = "ftp://ftp.bitwizard.nl/mtr/mtr-${PV}.tar.gz" -SRC_URI[md5sum] = "10601ea543fda3e51545c4bce195b64c" -SRC_URI[sha256sum] = "f3b457c9623ae03565688a7ffd49d4843a5e2505ccaf3ba8d9fbd86e3ce9b6a0" +SRC_URI[md5sum] = "8d63592c9d4579ef20cf491b41843eb2" +SRC_URI[sha256sum] = "c5d948920b641cc35f8b380fc356ddfe07cce6a9c6474afe242fc58113f28c06" inherit autotools diff --git a/meta-networking/recipes-support/nis/files/libdl.patch b/meta-networking/recipes-support/nis/files/libdl.patch deleted file mode 100644 index 605af319f9..0000000000 --- a/meta-networking/recipes-support/nis/files/libdl.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- pwdutils-2.6/configure.in.orig 2005-04-19 20:22:36.603052192 -0700 -+++ pwdutils-2.6/configure.in 2005-04-19 21:09:45.308023672 -0700 -@@ -178,6 +178,9 @@ - AC_CHECK_LIB(ldap, main, LDAP_LIBS="-lldap $LDAP_LIBS" found_ldap_lib=yes,,$LDAP_LIBS) - fi - -+ dnl this always needs dl -+ AC_CHECK_LIB(dl, dlopen, LDAP_LIBS="$LDAP_LIBS -ldl") -+ - if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = netscape5 \); then - AC_CHECK_LIB(ldap50, main, LDAP_LIBS="-lldap50 -lssldap50 -lssl3 -lnss3 -lnspr4 -lprldap50 -lplc4 -lplds4" found_ldap_lib=yes need_pthread=true,, -lpthread) - fi diff --git a/meta-networking/recipes-support/nis/files/no-selinux.patch b/meta-networking/recipes-support/nis/files/no-selinux.patch deleted file mode 100644 index 71da3e3931..0000000000 --- a/meta-networking/recipes-support/nis/files/no-selinux.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- pwdutils-2.6/lib/copy_xattr.c.orig 2005-04-16 17:15:52.916660880 -0700 -+++ pwdutils-2.6/lib/copy_xattr.c 2005-04-16 17:18:10.345768480 -0700 -@@ -127,8 +127,11 @@ - - if (lsetxattr (to, name, value, size, 0) != 0) - { -- if (strcmp (name, "security.selinux") == 0 && -- is_selinux_enabled() == 0) -+ if (strcmp (name, "security.selinux") == 0 -+#if defined(WITH_SELINUX) -+ && is_selinux_enabled() == 0 -+#endif -+ ) - fprintf (stderr, - _("SELinux not enabled, ignore attribute %s for `%s'.\n"), - name, to); diff --git a/meta-networking/recipes-support/nis/nis.inc b/meta-networking/recipes-support/nis/nis.inc index 075d2756d9..eaff949615 100644 --- a/meta-networking/recipes-support/nis/nis.inc +++ b/meta-networking/recipes-support/nis/nis.inc @@ -7,7 +7,7 @@ DESCRIPTION = "NIS Server and Tools" HOMEPAGE = "http://www.linux-nis.org/nis/" SECTION = "console/network" LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" inherit autotools gettext pkgconfig diff --git a/meta-networking/recipes-support/nis/yp-tools_2.12.bb b/meta-networking/recipes-support/nis/yp-tools_2.14.bb index 0017845508..8c6837bac9 100644 --- a/meta-networking/recipes-support/nis/yp-tools_2.12.bb +++ b/meta-networking/recipes-support/nis/yp-tools_2.14.bb @@ -1,29 +1,32 @@ # This package builds tools to manage NIS # The source package is utils/net/NIS/yp-tools # -PR = "r3" -DESCRIPTION="\ +require nis.inc + +SUMMARY = "NIS client programs" +DESCRIPTION = " \ Network Information Service tools. \ This package contains ypcat, ypmatch, ypset, \ ypwhich, yppasswd, domainname, nisdomainname \ -and ypdomainname." +and ypdomainname. \ +\ +This is the final IPv4-only version of yp-tools. \ +" -require nis.inc SRC_URI = "http://www.linux-nis.org/download/yp-tools/${BP}.tar.bz2 \ file://domainname.service \ " - -SRC_URI[md5sum] = "ce1e06d86caa285fa8cd76fdf103f51e" -SRC_URI[sha256sum] = "6ae8321666eea7837da343eea90ea30273fb74943ad111d5a4befd2afb252063" - -CACHED_CONFIGUREVARS += "ac_cv_prog_STRIP=/bin/true" +SRC_URI[md5sum] = "ba1f121c17e3ad65368be173b977cd13" +SRC_URI[sha256sum] = "d01f70fadc643a55107a0edc47c6be99d0306bcc4f66df56f65e74238b0124c9" inherit systemd +SYSTEMD_SERVICE_${PN} = "domainname.service" RPROVIDES_${PN} += "${PN}-systemd" RREPLACES_${PN} += "${PN}-systemd" RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "domainname.service" + +CACHED_CONFIGUREVARS += "ac_cv_prog_STRIP=/bin/true" do_install_append() { install -d ${D}${systemd_unitdir}/system diff --git a/meta-networking/recipes-support/nis/ypbind-mt_1.36.bb b/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb index 35ef16a89a..f7e6b43d93 100644 --- a/meta-networking/recipes-support/nis/ypbind-mt_1.36.bb +++ b/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb @@ -1,8 +1,9 @@ # This package builds the NIS ypbind daemon # The source package is utils/net/NIS/ypbind-mt # -PR = "r3" -DESCRIPTION="\ +require nis.inc + +DESCRIPTION = " \ Multithreaded NIS bind service (ypbind-mt). \ ypbind-mt is a complete new implementation of a NIS \ binding daemon for Linux. It has the following \ @@ -11,23 +12,28 @@ Uses threads for better response. Supports multiple \ domain bindings. Supports /var/yp/binding/* file \ for Linux libc 4/5 and glibc 2.x. Supports a list \ 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" - -require nis.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=082c9a0886c7c3db1bc862b5b62ffe08" +the server which answered as first. \ +\ +This is the final IPv4-only version of ypbind-mt. \ +" +HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html" +DEPENDS = "yp-tools" +# ypbind-mt now provides all the functionality of ypbind +# and is used in place of it. +PROVIDES += "ypbind" SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \ file://ypbind-yocto.init \ file://ypbind.service \ " -SRC_URI[md5sum] = "135834db97d78ff6d79fdee2810b4056" -SRC_URI[sha256sum] = "0eff76c1849f4b38ea1a60280d8397c4240369c641fe5402ce57edf1a90958c7" +SRC_URI[md5sum] = "094088c0e282fa7f3b3dd6cc51d0a4e1" +SRC_URI[sha256sum] = "1930ce19f6ccfe10400f3497b31867f71690d2bcd3f5b575199fa915559b7746" -# ypbind-mt now provides all the functionality of ypbind -# and is used in place of it. -PROVIDES += "ypbind" +inherit systemd update-rc.d + +SYSTEMD_SERVICE_${PN} = "ypbind.service" +INITSCRIPT_NAME = "ypbind" +INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ." CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true" @@ -37,16 +43,11 @@ do_install_append () { install -m 0755 ${WORKDIR}/ypbind-yocto.init ${D}${sysconfdir}/init.d/ypbind - # TODO, use update-rc.d - ln -s ../init.d/ypbind ${D}${sysconfdir}/rcS.d/S44ypbind - install -d ${D}${systemd_unitdir}/system install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system } -inherit systemd RPROVIDES_${PN} += "${PN}-systemd" RREPLACES_${PN} += "${PN}-systemd" RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "ypbind.service" diff --git a/meta-networking/recipes-support/ntp/files/CVE-2013-5211.patch b/meta-networking/recipes-support/ntp/files/CVE-2013-5211.patch deleted file mode 100644 index ddcb044e60..0000000000 --- a/meta-networking/recipes-support/ntp/files/CVE-2013-5211.patch +++ /dev/null @@ -1,112 +0,0 @@ -ntp: fix CVE-2013-5211 - -Upstream-status: Backport - -The monlist feature in ntp_request.c in ntpd in NTP before -4.2.7p26 allows remote attackers to cause a denial of service -(traffic amplification) via forged (1) REQ_MON_GETLIST or -(2) REQ_MON_GETLIST_1 requests, as exploited in the wild -in December 2013. - -Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com> - ---- a/ntpd/ntp_request.c -+++ b/ntpd/ntp_request.c -@@ -1912,44 +1912,11 @@ mon_getlist_0( - struct req_pkt *inpkt - ) - { -- register struct info_monitor *im; -- register struct mon_data *md; -- extern struct mon_data mon_mru_list; -- extern int mon_enabled; -- - #ifdef DEBUG - if (debug > 2) - printf("wants monitor 0 list\n"); - #endif -- if (!mon_enabled) { -- req_ack(srcadr, inter, inpkt, INFO_ERR_NODATA); -- return; -- } -- im = (struct info_monitor *)prepare_pkt(srcadr, inter, inpkt, -- v6sizeof(struct info_monitor)); -- for (md = mon_mru_list.mru_next; md != &mon_mru_list && im != 0; -- md = md->mru_next) { -- im->lasttime = htonl((u_int32)((current_time - -- md->firsttime) / md->count)); -- im->firsttime = htonl((u_int32)(current_time - md->lasttime)); -- im->restr = htonl((u_int32)md->flags); -- im->count = htonl((u_int32)(md->count)); -- if (IS_IPV6(&md->rmtadr)) { -- if (!client_v6_capable) -- continue; -- im->addr6 = SOCK_ADDR6(&md->rmtadr); -- im->v6_flag = 1; -- } else { -- im->addr = NSRCADR(&md->rmtadr); -- if (client_v6_capable) -- im->v6_flag = 0; -- } -- im->port = md->rmtport; -- im->mode = md->mode; -- im->version = md->version; -- im = (struct info_monitor *)more_pkt(); -- } -- flush_pkt(); -+ req_ack(srcadr, inter, inpkt, INFO_ERR_NODATA); - } - - /* -@@ -1962,50 +1929,7 @@ mon_getlist_1( - struct req_pkt *inpkt - ) - { -- register struct info_monitor_1 *im; -- register struct mon_data *md; -- extern struct mon_data mon_mru_list; -- extern int mon_enabled; -- -- if (!mon_enabled) { -- req_ack(srcadr, inter, inpkt, INFO_ERR_NODATA); -- return; -- } -- im = (struct info_monitor_1 *)prepare_pkt(srcadr, inter, inpkt, -- v6sizeof(struct info_monitor_1)); -- for (md = mon_mru_list.mru_next; md != &mon_mru_list && im != 0; -- md = md->mru_next) { -- im->lasttime = htonl((u_int32)((current_time - -- md->firsttime) / md->count)); -- im->firsttime = htonl((u_int32)(current_time - md->lasttime)); -- im->restr = htonl((u_int32)md->flags); -- im->count = htonl((u_int32)md->count); -- if (IS_IPV6(&md->rmtadr)) { -- if (!client_v6_capable) -- continue; -- im->addr6 = SOCK_ADDR6(&md->rmtadr); -- im->v6_flag = 1; -- im->daddr6 = SOCK_ADDR6(&md->interface->sin); -- } else { -- im->addr = NSRCADR(&md->rmtadr); -- if (client_v6_capable) -- im->v6_flag = 0; -- if (MDF_BCAST == md->cast_flags) -- im->daddr = NSRCADR(&md->interface->bcast); -- else if (md->cast_flags) { -- im->daddr = NSRCADR(&md->interface->sin); -- if (!im->daddr) -- im->daddr = NSRCADR(&md->interface->bcast); -- } else -- im->daddr = 4; -- } -- im->flags = htonl(md->cast_flags); -- im->port = md->rmtport; -- im->mode = md->mode; -- im->version = md->version; -- im = (struct info_monitor_1 *)more_pkt(); -- } -- flush_pkt(); -+ req_ack(srcadr, inter, inpkt, INFO_ERR_NODATA); - } - - /* diff --git a/meta-networking/recipes-support/ntp/files/openssl-check.patch b/meta-networking/recipes-support/ntp/files/openssl-check.patch deleted file mode 100644 index 8b4a6733cd..0000000000 --- a/meta-networking/recipes-support/ntp/files/openssl-check.patch +++ /dev/null @@ -1,59 +0,0 @@ -Hack OpenSSL check to work when libssl and libcrypto aren't in same dir - -Upstream-Status: Inappropriate [config] - -Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> ---- - configure | 4 ++-- - m4/ntp_openssl.m4 | 4 ++-- - sntp/configure | 4 ++-- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/configure b/configure -index aae2c01..6a3c15e 100755 ---- a/configure -+++ b/configure -@@ -22868,8 +22868,8 @@ case "$ans" in - test -f $i/libcrypto.dylib -a -f $i/libssl.dylib && break - ;; - *) -- test -f $i/libcrypto.so -a -f $i/libssl.so && break -- test -f $i/libcrypto.a -a -f $i/libssl.a && break -+ test -f $i/libssl.so && break -+ test -f $i/libssl.a && break - ;; - esac - done -diff --git a/m4/ntp_openssl.m4 b/m4/ntp_openssl.m4 -index 7d9f477..67bdd55 100644 ---- a/m4/ntp_openssl.m4 -+++ b/m4/ntp_openssl.m4 -@@ -41,8 +41,8 @@ case "$ans" in - test -f $i/libcrypto.dylib -a -f $i/libssl.dylib && break - ;; - *) -- test -f $i/libcrypto.so -a -f $i/libssl.so && break -- test -f $i/libcrypto.a -a -f $i/libssl.a && break -+ test -f $i/libssl.so && break -+ test -f $i/libssl.a && break - ;; - esac - done -diff --git a/sntp/configure b/sntp/configure -index 7782c29..55e82d9 100755 ---- a/sntp/configure -+++ b/sntp/configure -@@ -14810,8 +14810,8 @@ case "$ans" in - test -f $i/libcrypto.dylib -a -f $i/libssl.dylib && break - ;; - *) -- test -f $i/libcrypto.so -a -f $i/libssl.so && break -- test -f $i/libcrypto.a -a -f $i/libssl.a && break -+ test -f $i/libssl.so && break -+ test -f $i/libssl.a && break - ;; - esac - done --- -1.7.1 - diff --git a/meta-networking/recipes-support/ntp/files/tickadj.c.patch b/meta-networking/recipes-support/ntp/files/tickadj.c.patch deleted file mode 100644 index 9ef9de9e1f..0000000000 --- a/meta-networking/recipes-support/ntp/files/tickadj.c.patch +++ /dev/null @@ -1,32 +0,0 @@ -Index: ntp-4.2.2p3-r0/ntp-4.2.2p3/util/tickadj.c -=================================================================== ---- ntp-4.2.2p3/util/tickadj.c 2004-02-25 06:58:33.000000000 +0100 -+++ ntp-4.2.2p3/util/tickadj.c 2007-07-07 01:00:54.000000000 +0200 -@@ -21,7 +21,8 @@ - # include <unistd.h> - #endif /* HAVE_UNISTD_H */ - --#ifdef HAVE___ADJTIMEX /* Linux */ -+/* proper handling here has been moved to upstream ntp bugzilla */ -+#ifdef linux - - #include <sys/timex.h> - struct timex txc; -@@ -91,7 +92,7 @@ - } - - if (!errflg) { -- if (__adjtimex(&txc) < 0) -+ if (adjtimex(&txc) < 0) - perror("adjtimex"); - else if (!quiet) - printf("tick = %ld\ntick_adj = %d\n", -@@ -146,7 +147,7 @@ - #endif - } - -- if (__adjtimex(&txc) < 0) -+ if (adjtimex(&txc) < 0) - { - perror("adjtimex"); - } diff --git a/meta-networking/recipes-support/ntp/files/ntp-4.2.4_p6-nano.patch b/meta-networking/recipes-support/ntp/ntp/ntp-4.2.4_p6-nano.patch index cb1e2f7341..cb1e2f7341 100644 --- a/meta-networking/recipes-support/ntp/files/ntp-4.2.4_p6-nano.patch +++ b/meta-networking/recipes-support/ntp/ntp/ntp-4.2.4_p6-nano.patch diff --git a/meta-networking/recipes-support/ntp/ntp/ntp-4.2.8-ntp-keygen-no-openssl.patch b/meta-networking/recipes-support/ntp/ntp/ntp-4.2.8-ntp-keygen-no-openssl.patch new file mode 100644 index 0000000000..9b9af63ca3 --- /dev/null +++ b/meta-networking/recipes-support/ntp/ntp/ntp-4.2.8-ntp-keygen-no-openssl.patch @@ -0,0 +1,168 @@ +Fix ntp-keygen build without OpenSSL + +Patch borrowed from Gentoo, originally from upstream +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +Upstream-Status: Backport + +Upstream commit: +http://bk1.ntp.org/ntp-stable/?PAGE=patch&REV=5497b345z5MNTuNvJWuqPSje25NQTg +Gentoo bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=533238 + +Signed-off-by: Markos Chandras <hwoarang@gentoo.org> +Index: ntp-4.2.8/Makefile.am +=================================================================== +--- ntp-4.2.8.orig/Makefile.am ++++ ntp-4.2.8/Makefile.am +@@ -2,7 +2,10 @@ ACLOCAL_AMFLAGS = -I sntp/m4 -I sntp/lib + + NULL = + ++# moved sntp first to get libtool and libevent built. ++ + SUBDIRS = \ ++ sntp \ + scripts \ + include \ + libntp \ +@@ -17,7 +20,6 @@ SUBDIRS = \ + clockstuff \ + kernel \ + util \ +- sntp \ + tests \ + $(NULL) + +@@ -64,7 +66,6 @@ BUILT_SOURCES = \ + .gcc-warning \ + 'libtool \ + html/.datecheck \ +- sntp/built-sources-only \ + $(srcdir)/COPYRIGHT \ + $(srcdir)/.checkChangeLog \ + $(NULL) +Index: ntp-4.2.8/configure.ac +=================================================================== +--- ntp-4.2.8.orig/configure.ac ++++ ntp-4.2.8/configure.ac +@@ -102,7 +102,7 @@ esac + enable_nls=no + LIBOPTS_CHECK_NOBUILD([sntp/libopts]) + +-NTP_ENABLE_LOCAL_LIBEVENT ++NTP_LIBEVENT_CHECK_NOBUILD([2], [sntp/libevent]) + + NTP_LIBNTP + +@@ -771,6 +771,10 @@ esac + + #### + ++AC_CHECK_FUNCS([arc4random_buf]) ++ ++#### ++ + saved_LIBS="$LIBS" + LIBS="$LIBS $LDADD_LIBNTP" + AC_CHECK_FUNCS([daemon]) +Index: ntp-4.2.8/libntp/ntp_crypto_rnd.c +=================================================================== +--- ntp-4.2.8.orig/libntp/ntp_crypto_rnd.c ++++ ntp-4.2.8/libntp/ntp_crypto_rnd.c +@@ -24,6 +24,21 @@ + int crypto_rand_init = 0; + #endif + ++#ifndef HAVE_ARC4RANDOM_BUF ++static void ++arc4random_buf(void *buf, size_t nbytes); ++ ++void ++evutil_secure_rng_get_bytes(void *buf, size_t nbytes); ++ ++static void ++arc4random_buf(void *buf, size_t nbytes) ++{ ++ evutil_secure_rng_get_bytes(buf, nbytes); ++ return; ++} ++#endif ++ + /* + * As of late 2014, here's how we plan to provide cryptographic-quality + * random numbers: +Index: ntp-4.2.8/sntp/configure.ac +=================================================================== +--- ntp-4.2.8.orig/sntp/configure.ac ++++ ntp-4.2.8/sntp/configure.ac +@@ -97,11 +97,14 @@ esac + enable_nls=no + LIBOPTS_CHECK + +-AM_COND_IF( +- [BUILD_SNTP], +- [NTP_LIBEVENT_CHECK], +- [NTP_LIBEVENT_CHECK_NOBUILD] +-) ++# From when we only used libevent for sntp: ++#AM_COND_IF( ++# [BUILD_SNTP], ++# [NTP_LIBEVENT_CHECK], ++# [NTP_LIBEVENT_CHECK_NOBUILD] ++#) ++ ++NTP_LIBEVENT_CHECK([2]) + + # Checks for libraries. + +Index: ntp-4.2.8/sntp/m4/ntp_libevent.m4 +=================================================================== +--- ntp-4.2.8.orig/sntp/m4/ntp_libevent.m4 ++++ ntp-4.2.8/sntp/m4/ntp_libevent.m4 +@@ -1,4 +1,25 @@ +-dnl NTP_ENABLE_LOCAL_LIBEVENT -*- Autoconf -*- ++# SYNOPSIS -*- Autoconf -*- ++# ++# NTP_ENABLE_LOCAL_LIBEVENT ++# NTP_LIBEVENT_CHECK([MINVERSION [, DIR]]) ++# NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]]) ++# ++# DESCRIPTION ++# ++# AUTHOR ++# ++# Harlan Stenn ++# ++# LICENSE ++# ++# This file is Copyright (c) 2014 Network Time Foundation ++# ++# Copying and distribution of this file, with or without modification, are ++# permitted in any medium without royalty provided the copyright notice, ++# author attribution and this notice are preserved. This file is offered ++# as-is, without any warranty. ++ ++dnl NTP_ENABLE_LOCAL_LIBEVENT + dnl + dnl Provide only the --enable-local-libevent command-line option. + dnl +@@ -29,7 +50,7 @@ dnl If NOBUILD is provided as the 3rd ar + dnl but DO NOT invoke DIR/configure if we are going to use our bundled + dnl version. This may be the case for nested packages. + dnl +-dnl provide --enable-local-libevent . ++dnl provides --enable-local-libevent . + dnl + dnl Examples: + dnl +Index: ntp-4.2.8/util/Makefile.am +=================================================================== +--- ntp-4.2.8.orig/util/Makefile.am ++++ ntp-4.2.8/util/Makefile.am +@@ -19,6 +19,7 @@ AM_LDFLAGS = $(LDFLAGS_NTP) + LDADD= ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(PTHREAD_LIBS) + tg2_LDADD= ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) + ntp_keygen_LDADD = version.o $(LIBOPTS_LDADD) ../libntp/libntp.a ++ntp_keygen_LDADD += $(LDADD_LIBEVENT) + ntp_keygen_LDADD += $(LDADD_LIBNTP) $(PTHREAD_LIBS) $(LDADD_NTP) $(LIBM) + ntp_keygen_SOURCES = ntp-keygen.c ntp-keygen-opts.c ntp-keygen-opts.h + diff --git a/meta-networking/recipes-support/ntp/files/ntp.conf b/meta-networking/recipes-support/ntp/ntp/ntp.conf index 875b7ebc1d..676e186453 100644 --- a/meta-networking/recipes-support/ntp/files/ntp.conf +++ b/meta-networking/recipes-support/ntp/ntp/ntp.conf @@ -1,7 +1,7 @@ # This is the most basic ntp configuration file # The driftfile must remain in a place specific to this # machine - it records the machine specific clock error -driftfile /etc/ntp.drift +driftfile /var/lib/ntp/drift # This should be a server that is close (in IP terms) # to the machine. Add other servers as required. # Unless you un-comment the line below ntpd will sync diff --git a/meta-networking/recipes-support/ntp/files/ntpd b/meta-networking/recipes-support/ntp/ntp/ntpd index 3cd1c6c585..d1b9c49076 100755 --- a/meta-networking/recipes-support/ntp/files/ntpd +++ b/meta-networking/recipes-support/ntp/ntp/ntpd @@ -20,6 +20,9 @@ test -x $DAEMON -a -r /etc/ntp.conf || exit 0 # rcS contains TICKADJ test -r /etc/default/rcS && . /etc/default/rcS +# Source function library. +. /etc/init.d/functions + # Functions to do individual actions settick(){ # If TICKADJ is set we *must* adjust it before we start, because the @@ -68,8 +71,12 @@ case "$1" in stopdaemon startdaemon ;; + status) + status /usr/sbin/ntpd; + exit $? + ;; *) - echo "Usage: ntpd { start | stop | restart | reload }" >&2 + echo "Usage: ntpd { start | stop | status | restart | reload }" >&2 exit 1 ;; esac diff --git a/meta-networking/recipes-support/ntp/ntp/ntpd.service b/meta-networking/recipes-support/ntp/ntp/ntpd.service index b7c4268646..0e3d7cd37b 100644 --- a/meta-networking/recipes-support/ntp/ntp/ntpd.service +++ b/meta-networking/recipes-support/ntp/ntp/ntpd.service @@ -5,7 +5,7 @@ After=network.target [Service] Type=forking PIDFile=/run/ntpd.pid -ExecStart=/usr/sbin/ntpd -p /run/ntpd.pid -g +ExecStart=/usr/sbin/ntpd -u ntp:ntp -p /run/ntpd.pid -g [Install] WantedBy=multi-user.target diff --git a/meta-networking/recipes-support/ntp/files/ntpdate b/meta-networking/recipes-support/ntp/ntp/ntpdate index 17b64d1335..17b64d1335 100755 --- a/meta-networking/recipes-support/ntp/files/ntpdate +++ b/meta-networking/recipes-support/ntp/ntp/ntpdate diff --git a/meta-networking/recipes-support/ntp/files/ntpdate.default b/meta-networking/recipes-support/ntp/ntp/ntpdate.default index 486b6e07d3..486b6e07d3 100644 --- a/meta-networking/recipes-support/ntp/files/ntpdate.default +++ b/meta-networking/recipes-support/ntp/ntp/ntpdate.default diff --git a/meta-networking/recipes-support/ntp/ntp_4.2.6p5.bb b/meta-networking/recipes-support/ntp/ntp_4.2.6p5.bb deleted file mode 100644 index 588a1b03c9..0000000000 --- a/meta-networking/recipes-support/ntp/ntp_4.2.6p5.bb +++ /dev/null @@ -1,6 +0,0 @@ -require ntp.inc - -PR = "${INC_PR}.0" - -SRC_URI[md5sum] = "00df80a84ec9528fcfb09498075525bc" -SRC_URI[sha256sum] = "d6ab8371f9d31e594eb6922823d5ccd03dcc4e9d84b0e23ea25ac1405432f91c" diff --git a/meta-networking/recipes-support/ntp/ntp.inc b/meta-networking/recipes-support/ntp/ntp_4.2.8.bb index f55a39a923..e802ee700b 100644 --- a/meta-networking/recipes-support/ntp/ntp.inc +++ b/meta-networking/recipes-support/ntp/ntp_4.2.8.bb @@ -6,16 +6,12 @@ or satellite receiver or modem." HOMEPAGE = "http://support.ntp.org" SECTION = "console/network" LICENSE = "NTP" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=fea4b50c33b18c2194b4b1c9ca512670" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ebe123f74017224947c78d472407c10f" -DEPENDS = "pps-tools" - -INC_PR = "r6" +DEPENDS = "pps-tools libevent" SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \ - file://tickadj.c.patch \ file://ntp-4.2.4_p6-nano.patch \ - file://openssl-check.patch \ file://ntpd \ file://ntp.conf \ file://ntpdate \ @@ -25,18 +21,28 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.g file://sntp.service \ file://sntp \ file://ntpd.list \ - file://CVE-2013-5211.patch \ + file://ntp-4.2.8-ntp-keygen-no-openssl.patch \ " -inherit autotools update-rc.d useradd systemd +SRC_URI[md5sum] = "6972a626be6150db8cfbd0b63d8719e7" +SRC_URI[sha256sum] = "2e920df8b6a5a410567a73767fa458c00c7f0acec3213e69ed0134414a50d8ee" + +inherit autotools update-rc.d useradd systemd pkgconfig # The ac_cv_header_readline_history is to stop ntpdc depending on either # readline or curses -EXTRA_OECONF += "--with-net-snmp-config=no --without-ntpsnmpd ac_cv_header_readline_history_h=no --with-binsubdir=sbin" +EXTRA_OECONF += "--with-net-snmp-config=no \ + --without-ntpsnmpd \ + ac_cv_header_readline_history_h=no \ + --with-yielding_select=yes \ + --with-locfile=redhat \ + " CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED" USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system --home-dir /var/lib/ntp \ +NTP_USER_HOME ?= "/var/lib/ntp" +USERADD_PARAM_${PN} = "--system --home-dir ${NTP_USER_HOME} \ + --no-create-home \ --shell /bin/false --user-group ntp" # NB: debug is default-enabled by NTP; keep it default-enabled here. @@ -57,6 +63,9 @@ do_install_append() { install -d ${D}${bindir} install -m 755 ${WORKDIR}/ntpdate ${D}${bindir}/ntpdate-sync + install -m 755 -d ${D}${NTP_USER_HOME} + chown ntp:ntp ${D}${NTP_USER_HOME} + # Fix hardcoded paths in scripts sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync @@ -65,8 +74,10 @@ do_install_append() { sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${bindir}/ntpdate-sync sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/ntptrace sed -i '/use/i use warnings;' ${D}${sbindir}/ntptrace - sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/ntp-wait + sed -i '1s,#!.*perl,#! ${bindir}/env perl,' ${D}${sbindir}/ntp-wait sed -i '/use/i use warnings;' ${D}${sbindir}/ntp-wait + sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/calc_tickadj + sed -i '/use/i use warnings;' ${D}${sbindir}/calc_tickadj install -d ${D}/${sysconfdir}/default install -m 644 ${WORKDIR}/ntpdate.default ${D}${sysconfdir}/default/ntpdate @@ -111,10 +122,12 @@ RCONFLICTS_ntpdate += "ntpdate-systemd" RSUGGESTS_${PN} = "iana-etc" FILES_${PN} = "${sbindir}/ntpd ${sysconfdir}/ntp.conf ${sysconfdir}/init.d/ntpd ${libdir} \ + ${NTP_USER_HOME} \ ${systemd_unitdir}/ntp-units.d/60-ntpd.list \ " FILES_${PN}-tickadj = "${sbindir}/tickadj" -FILES_${PN}-utils = "${sbindir}" +FILES_${PN}-utils = "${sbindir} ${datadir}/ntp/lib" +RDEPENDS_${PN}-utils += "perl" FILES_ntpdate = "${sbindir}/ntpdate \ ${sysconfdir}/network/if-up.d/ntpdate-sync \ ${bindir}/ntpdate-sync \ @@ -123,6 +136,7 @@ FILES_ntpdate = "${sbindir}/ntpdate \ " FILES_sntp = "${sbindir}/sntp \ ${sysconfdir}/default/sntp \ + ${systemd_unitdir}/system/sntp.service \ " CONFFILES_${PN} = "${sysconfdir}/ntp.conf" diff --git a/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb b/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb index b931d04702..a275238a3b 100644 --- a/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb +++ b/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb @@ -8,12 +8,12 @@ network layer throughput by transferring memory buffers from a source system \ across an interconnecting network to a destination system, either transferring \ data for a specified time interval, or alternatively transferring a specified \ number of bytes." -HOMEPAGE = "http://www.nuttcp.net/nuttcp/Welcome%20Page.html" +HOMEPAGE = "http://www.nuttcp.net/Welcome%20Page.html" LICENSE = "GPL-2.0" SECTION = "net" -LIC_FILES_CHKSUM = "file://nuttcp-${PV}.c;beginline=4;endline=30;md5=ae7045c3c3616092e07d87f04ba0d960" +LIC_FILES_CHKSUM = "file://${BP}.c;beginline=4;endline=30;md5=ae7045c3c3616092e07d87f04ba0d960" -SRC_URI = "http://lcp.nrl.navy.mil/nuttcp/beta/nuttcp-${PV}.c" +SRC_URI = "http://nuttcp.net/${BPN}/beta/${BP}.c" SRC_URI[md5sum] = "1ebf4a08bad2a295a8155f02995e8754" SRC_URI[sha256sum] = "c6e33810ccce67260f8d5d627f60e429d44f532365c58ed5673d035e2a59c4db" diff --git a/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf b/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf new file mode 100644 index 0000000000..4a3dc4a460 --- /dev/null +++ b/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf @@ -0,0 +1 @@ +d /var/run/openvpn 0755 root root - diff --git a/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service b/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service new file mode 100644 index 0000000000..358dcb791a --- /dev/null +++ b/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service @@ -0,0 +1,12 @@ +[Unit] +Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I +After=syslog.target network.target + +[Service] +PrivateTmp=true +Type=forking +PIDFile=/var/run/openvpn/%i.pid +ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf + +[Install] +WantedBy=multi-user.target diff --git a/meta-networking/recipes-support/openvpn/openvpn_2.3.4.bb b/meta-networking/recipes-support/openvpn/openvpn_2.3.4.bb deleted file mode 100644 index 48e04b702d..0000000000 --- a/meta-networking/recipes-support/openvpn/openvpn_2.3.4.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "A full-featured SSL VPN solution via tun device." -HOMEPAGE = "http://openvpn.sourceforge.net" -SECTION = "console/network" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=5aac200199fde47501876cba7263cb0c" -DEPENDS = "lzo openssl iproute2 ${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" - -inherit autotools - -SRC_URI = "http://swupdate.openvpn.org/community/releases/openvpn-${PV}.tar.gz \ - file://openvpn" - -SRC_URI[md5sum] = "04d47237907faabe9d046970ffe44b2e" -SRC_URI[sha256sum] = "af506d5f48568fa8d2f2435cb3fad35f9a9a8f263999ea6df3ba296960cec85a" - -CFLAGS += "-fno-inline" - -# I want openvpn to be able to read password from file (hrw) -EXTRA_OECONF += "--enable-password-save --enable-iproute2" -EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}" -EXTRA_OECONF += "IPROUTE=/bin/ip" - -do_install_append() { - install -d ${D}/${sysconfdir}/init.d - install -d ${D}/${sysconfdir}/openvpn - install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d -} - -RRECOMMENDS_${PN} = "kernel-module-tun" - -FILES_${PN}-dbg += "${libdir}/openvpn/plugins/.debug" diff --git a/meta-networking/recipes-support/openvpn/openvpn_2.3.6.bb b/meta-networking/recipes-support/openvpn/openvpn_2.3.6.bb new file mode 100644 index 0000000000..08f30b50f5 --- /dev/null +++ b/meta-networking/recipes-support/openvpn/openvpn_2.3.6.bb @@ -0,0 +1,67 @@ +SUMMARY = "A full-featured SSL VPN solution via tun device." +HOMEPAGE = "http://openvpn.sourceforge.net" +SECTION = "console/network" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=5aac200199fde47501876cba7263cb0c" +DEPENDS = "lzo openssl iproute2 ${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + +inherit autotools systemd + +SRC_URI = "http://swupdate.openvpn.org/community/releases/openvpn-${PV}.tar.gz \ + file://openvpn \ + file://openvpn@.service \ + file://openvpn-volatile.conf" + +SRC_URI[md5sum] = "6ca03fe0fd093e0d01601abee808835c" +SRC_URI[sha256sum] = "7baed2ff39c12e1a1a289ec0b46fcc49ff094ca58b8d8d5f29b36ac649ee5b26" + +SYSTEMD_SERVICE_${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service" +SYSTEMD_AUTO_ENABLE = "disable" + +CFLAGS += "-fno-inline" + +# I want openvpn to be able to read password from file (hrw) +EXTRA_OECONF += "--enable-password-save --enable-iproute2" +EXTRA_OECONF += "${@base_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" + +do_install_append() { + install -d ${D}/${sysconfdir}/init.d + install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d + + install -d ${D}/${sysconfdir}/openvpn + install -d ${D}/${sysconfdir}/openvpn/sample + install -m 755 ${S}/sample/sample-config-files/loopback-server ${D}${sysconfdir}/openvpn/sample/loopback-server.conf + install -m 755 ${S}/sample/sample-config-files/loopback-client ${D}${sysconfdir}/openvpn/sample/loopback-client.conf + install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys + install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys + + if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system + install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-server.service + install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-client.service + + 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 + fi +} + +PACKAGES =+ " ${PN}-sample " + +RRECOMMENDS_${PN} = "kernel-module-tun" + +FILES_${PN}-dbg += "${libdir}/openvpn/plugins/.debug" +FILES_${PN} += "${systemd_unitdir}/system/openvpn@.service \ + /run" +FILES_${PN}-sample += "${systemd_unitdir}/system/openvpn@loopback-server.service \ + ${systemd_unitdir}/system/openvpn@loopback-client.service \ + ${sysconfdir}/openvpn/sample/" diff --git a/meta-networking/recipes-support/pimd/pimd_2.1.8.bb b/meta-networking/recipes-support/pimd/pimd_2.1.8.bb index da097ce825..f0323618dd 100644 --- a/meta-networking/recipes-support/pimd/pimd_2.1.8.bb +++ b/meta-networking/recipes-support/pimd/pimd_2.1.8.bb @@ -8,3 +8,10 @@ SRC_URI[md5sum] = "a12448bc7c9bfcebf51a13ebf1ffa962" SRC_URI[sha256sum] = "01016940543a0a6131d4e6c91b595d47e187012c59a298eec14c3dbc38564b3a" CFLAGS += "-I ${S}/include " + +do_install() { + unset datadir + unset mandir + oe_runmake 'DESTDIR=${D}' install +} + diff --git a/meta-networking/recipes-support/ssmping/files/0001-Makefile-tweak-install-dir.patch b/meta-networking/recipes-support/ssmping/files/0001-Makefile-tweak-install-dir.patch new file mode 100644 index 0000000000..0cb981cf7a --- /dev/null +++ b/meta-networking/recipes-support/ssmping/files/0001-Makefile-tweak-install-dir.patch @@ -0,0 +1,35 @@ +From 693cfce5431e191a3955fd56fa822927d92c9e43 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Fri, 7 Nov 2014 14:27:00 +0800 +Subject: [PATCH] Makefile: tweak install dir + +For oe-core, the man doc should be installed to /usr/share/man +rather than /usr/locale/man. + +Upstream-Status: inappropriate (oe specific) + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + Makefile | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index b5d12f8..9b2663c 100644 +--- a/Makefile ++++ b/Makefile +@@ -14,9 +14,9 @@ install: ssmping asmping ssmpingd mcfirst + install -D asmping $(DESTDIR)$(PREFIX)/bin/asmping + install -D ssmpingd $(DESTDIR)$(PREFIX)/bin/ssmpingd + install -D mcfirst $(DESTDIR)$(PREFIX)/bin/mcfirst +- install -D ssmping.1 $(DESTDIR)$(PREFIX)/man/man1/ssmping.1 +- install -D asmping.1 $(DESTDIR)$(PREFIX)/man/man1/asmping.1 +- install -D mcfirst.1 $(DESTDIR)$(PREFIX)/man/man1/mcfirst.1 ++ install -D ssmping.1 $(DESTDIR)$(PREFIX)/share/man/man1/ssmping.1 ++ install -D asmping.1 $(DESTDIR)$(PREFIX)/share/man/man1/asmping.1 ++ install -D mcfirst.1 $(DESTDIR)$(PREFIX)/share/man/man1/mcfirst.1 + + clean: + rm -f $(OBJ) joinch.o joingrp.o ssmping asmping ssmpingd mcfirst +-- +1.9.1 + diff --git a/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb b/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb index 06d6d28fa9..0eaa7ca4cf 100644 --- a/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb +++ b/meta-networking/recipes-support/ssmping/ssmping_0.9.1.bb @@ -3,8 +3,14 @@ HOMEPAGE = "http://www.venaas.no/multicast/ssmping/" LICENSE = "ISC" LIC_FILES_CHKSUM = "file://asmping.c;beginline=2;endline=11;md5=1ca8d1a1ca931e5cfe604ebf20a78b71" -SRC_URI = "http://www.venaas.no/multicast/ssmping/${BP}.tar.gz" +SRC_URI = "http://www.venaas.no/multicast/ssmping/${BP}.tar.gz \ + file://0001-Makefile-tweak-install-dir.patch \ +" SRC_URI[md5sum] = "ad8e3d13f6d72918f73be7e7975d7fad" SRC_URI[sha256sum] = "22103a37eaa28489169a0927bc01e0596c3485fc4d29fc8456c07fd2c70fca6d" CFLAGS += "-D_GNU_SOURCE " + +do_install() { + oe_runmake 'DESTDIR=${D}' 'PREFIX=${prefix}' install +} diff --git a/meta-networking/recipes-support/strongswan/strongswan_5.2.0.bb b/meta-networking/recipes-support/strongswan/strongswan_5.2.1.bb index 0997fd03c1..6b913190c2 100644 --- a/meta-networking/recipes-support/strongswan/strongswan_5.2.0.bb +++ b/meta-networking/recipes-support/strongswan/strongswan_5.2.1.bb @@ -11,8 +11,8 @@ SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \ file://fix-funtion-parameter.patch \ " -SRC_URI[md5sum] = "5cee4ee1a6ccb74400758b3ace54d46e" -SRC_URI[sha256sum] = "b00c30bd2e60ff2e5fc85f54bbad54fe246585812fdf212dbe777a5258da26ce" +SRC_URI[md5sum] = "dd3717c0aa59ab4591ca1812941ebb82" +SRC_URI[sha256sum] = "ea51ab33b5bb39fecaf10668833a9936583b42145948ae9da1ab98f74e939215" EXTRA_OECONF = "--enable-gmp \ --enable-openssl \ diff --git a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/add-ptest.patch b/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/add-ptest.patch new file mode 100644 index 0000000000..358f6050f6 --- /dev/null +++ b/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/add-ptest.patch @@ -0,0 +1,38 @@ +From 7b259580800e259d232229dc89f97058b56e2fe8 Mon Sep 17 00:00:00 2001 +From: "Hongjun.Yang" <hongjun.yang@windriver.com> +Date: Wed, 22 Oct 2014 10:02:48 +0800 +Subject: [PATCH] Add ptest for tcpdump + +Upstream-Status: Pending + +Signed-off-by: Hongjun.Yang <hongjun.yang@windriver.com> +--- + Makefile.in | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 8c35a45..4fb8ae6 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -428,9 +428,17 @@ distclean: + tests/failure-outputs.txt + rm -rf autom4te.cache tests/DIFF tests/NEW + +-check: tcpdump ++buildtest-TESTS: tcpdump ++ ++runtest-PTEST: + (cd tests && ./TESTrun.sh) + ++install-ptest: ++ cp -r tests $(DESTDIR) ++ cp -r config.h $(DESTDIR) ++ install -m 0755 Makefile $(DESTDIR) ++ ln -sf /usr/sbin/tcpdump $(DESTDIR)/tcpdump ++ + tags: $(TAGFILES) + ctags -wtd $(TAGFILES) + +-- +1.9.1 + diff --git a/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/run-ptest b/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/run-ptest new file mode 100755 index 0000000000..c03a8b8ef3 --- /dev/null +++ b/meta-networking/recipes-support/tcpdump/tcpdump-4.6.1/run-ptest @@ -0,0 +1,5 @@ +#!/bin/sh +make -k runtest-PTEST | sed -e '/: passed/ s/^/PASS: /g' \ + -e '/: failed/ s/^/FAIL: /g' \ + -e 's/: passed//g' \ + -e 's/: failed//g' diff --git a/meta-networking/recipes-support/tcpdump/tcpdump_4.6.1.bb b/meta-networking/recipes-support/tcpdump/tcpdump_4.6.1.bb index 58bcb980f5..1fdaf308d8 100644 --- a/meta-networking/recipes-support/tcpdump/tcpdump_4.6.1.bb +++ b/meta-networking/recipes-support/tcpdump/tcpdump_4.6.1.bb @@ -11,12 +11,14 @@ SRC_URI = " \ file://unnecessary-to-check-libpcap.patch \ file://tcpdump-configure-dlpi.patch \ file://tcpdump-cross-getaddrinfo.patch \ + file://add-ptest.patch \ + file://run-ptest \ " SRC_URI[md5sum] = "dab267ec30216a069747d10314079ec7" SRC_URI[sha256sum] = "4c88c2a9aeb4047074f344fc9b2b6577b219972d359e192f6d12ccf983a13fd7" export LIBS=" -lpcap" -inherit autotools-brokensep +inherit autotools-brokensep ptest CACHED_CONFIGUREVARS = "ac_cv_linux_vers=${ac_cv_linux_vers=2}" PACKAGECONFIG ??= "openssl ipv6" @@ -43,3 +45,7 @@ do_install_append() { # tcpdump 4.0.0 installs a copy to /usr/sbin/tcpdump.4.0.0 rm -f ${D}${sbindir}/tcpdump.${PV} } + +do_compile_ptest() { + oe_runmake buildtest-TESTS +} diff --git a/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-improve-search-for-libpcap.patch b/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-improve-search-for-libpcap.patch new file mode 100644 index 0000000000..50f024c67b --- /dev/null +++ b/meta-networking/recipes-support/tcpreplay/files/tcpreplay-3.4.4-improve-search-for-libpcap.patch @@ -0,0 +1,33 @@ +tcpreplay: improve search for libpcap + +Add a test which will find libpcap if $testdir/.. is a sysroot. + +Upstream-Status: Pending + +Signed-off-by: Joe Slater <joe.slater@windriver.com> + + +--- a/configure.ac ++++ b/configure.ac +@@ -350,14 +350,20 @@ for testdir in $trypcapdir /usr/local /o + if test -f "${testdir}/include/pcap.h" -a $foundpcap = no ; then + LPCAPINC="${testdir}/include/pcap.h" + LPCAPINCDIR="${testdir}/include" ++ # If testdir/.. is a sysroot, then sDir should point to where the libraries are. ++ sDir=$(readlink -m ${testdir}/../${libdir}) + if test $dynamic_link = yes; then +- if test -f "${testdir}/lib64/libpcap${shrext_cmds}" ; then ++ if test -f "${sDir}/libpcap${shrext_cmds}" ; then ++ LPCAPLIB="-L${sDir} -lpcap" ++ elif test -f "${testdir}/lib64/libpcap${shrext_cmds}" ; then + LPCAPLIB="-L${testdir}/lib64 -lpcap" + elif test -f "${testdir}/lib/libpcap${shrext_cmds}" ; then + LPCAPLIB="-L${testdir}/lib -lpcap" + else + AC_ERROR([Unable to find libpcap in ${testdir}]) + fi ++ elif test -f "${sDir}/libpcap.${libext}" ; then ++ LPCAPLIB="${sDir}/libpcap.${libext}" + elif test -f "${testdir}/lib64/libpcap.${libext}" ; then + LPCAPLIB="${testdir}/lib64/libpcap.${libext}" + elif test -f "${testdir}/lib/libpcap.${libext}" ; then diff --git a/meta-networking/recipes-support/tcpreplay/tcpreplay_3.4.4.bb b/meta-networking/recipes-support/tcpreplay/tcpreplay_3.4.4.bb index 4bce270e4b..9ecb695fde 100644 --- a/meta-networking/recipes-support/tcpreplay/tcpreplay_3.4.4.bb +++ b/meta-networking/recipes-support/tcpreplay/tcpreplay_3.4.4.bb @@ -10,6 +10,7 @@ SRC_URI = "http://prdownloads.sourceforge.net/tcpreplay/${PV}/tcpreplay-${PV}.ta file://tcpreplay-3.4.4-cross-compile.patch \ file://tcpreplay-3.4.4-no-bfp-support.patch \ file://tcpreplay-3.4.4-fix-unable-to-link-libpcap-issue.patch \ + file://tcpreplay-3.4.4-improve-search-for-libpcap.patch \ " SRC_URI[md5sum] = "22725feb9b2590809f9350308ec65180" SRC_URI[sha256sum] = "7a809c58ddec86407fd6e5597ac883d7874a19bea81d716bb2b1c6e3b0e7b58f" diff --git a/meta-networking/recipes-support/traceroute/traceroute_2.0.20.bb b/meta-networking/recipes-support/traceroute/traceroute_2.0.21.bb index 4b49c76863..7bdbe16175 100644 --- a/meta-networking/recipes-support/traceroute/traceroute_2.0.20.bb +++ b/meta-networking/recipes-support/traceroute/traceroute_2.0.21.bb @@ -7,7 +7,7 @@ tool. If you're having network connectivity problems, traceroute will \ show you where the trouble is coming from along the route." SECTION = "console/network" HOMEPAGE = "http://traceroute.sourceforge.net/" -LICENSE = "GPL-2.0 LGPL-2.1" +LICENSE = "GPL-2.0+ & LGPL-2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" @@ -17,8 +17,10 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/traceroute/traceroute/${BP}/${BP}.tar.gz \ file://filter-out-the-patches-from-subdirs.patch \ " -SRC_URI[md5sum] = "559f104e155e0e14ee0c717776a745fa" -SRC_URI[sha256sum] = "2facba9525c95428d7bff3a313fc6ecfd8c529c678ae666c73015558a0edc271" +SRC_URI[md5sum] = "79289adabd6f3ebf9160fc0815ab3150" +SRC_URI[sha256sum] = "f7ac93ef30b13a587292b8d6a7e2538a65bc978a3a576eab238c392b884e96e0" + +EXTRA_OEMAKE = "VPATH=${STAGING_LIBDIR}" do_compile() { export LDFLAGS="${TARGET_LDFLAGS} -L${S}/libsupp" @@ -38,5 +40,6 @@ do_install() { } +ALTERNATIVE_PRIORITY = "60" ALTERNATIVE_${PN} = "traceroute" ALTERNATIVE_LINK_NAME[traceroute] = "${bindir}/traceroute" diff --git a/meta-networking/recipes-support/wireshark/wireshark_1.12.1.bb b/meta-networking/recipes-support/wireshark/wireshark_1.12.3.bb index 147c513955..f16d0f68fa 100644 --- a/meta-networking/recipes-support/wireshark/wireshark_1.12.1.bb +++ b/meta-networking/recipes-support/wireshark/wireshark_1.12.3.bb @@ -4,7 +4,7 @@ SECTION = "network" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://README.linux;md5=631e077455b7972172eb149195e065b0" -DEPENDS = "perl-native libcap libpcap pcre expat glib-2.0 libnl sbc" +DEPENDS = "perl-native pcre expat glib-2.0 sbc" SRC_URI = " \ http://wiresharkdownloads.riverbed.com/wireshark/src/wireshark-${PV}.tar.bz2 \ @@ -13,8 +13,8 @@ SRC_URI = " \ PE = "1" -SRC_URI[md5sum] = "14b3e3d8979d1eb27ff085bb5f400e67" -SRC_URI[sha256sum]= "82b26bd416ec15903b27785e35a622687008a743342054e96eaaeaa249be584b" +SRC_URI[md5sum] = "e6318b8451d4e56d39bd911da296ef19" +SRC_URI[sha256sum] = "69950b9dcb1a630982b5f680554d73d27ee0dc856fc6aeef88c8d04eb5ac33ea" inherit autotools pkgconfig @@ -23,11 +23,13 @@ ARM_INSTRUCTION_SET = "arm" # Works with either gtk+ or gtk3. WHICH_GTK = "gtk3" -PACKAGECONFIG ??= "gnutls gcrypt" +PACKAGECONFIG ??= "libcap gnutls libnl" PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "x11", "${WHICH_GTK} graphics", "", d)}" PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}" +PACKAGECONFIG[libcap] = "--with-libcap=${STAGING_DIR_HOST}, --with-libcap=no, libcap" PACKAGECONFIG[libsmi] = "--with-libsmi=yes, --with-libsmi=no, libsmi" +PACKAGECONFIG[libnl] = "--with-libnl=yes, --with-libnl=no, libnl" PACKAGECONFIG[portaudio] = "--with-portaudio=yes, --with-portaudio=no, portaudio-v19" PACKAGECONFIG[gtk2] = "--with-gtk2=yes, --with-gtk2=no, gtk+" PACKAGECONFIG[gtk3] = "--with-gtk3=yes, --with-gtk3=no, gtk+3" @@ -35,8 +37,16 @@ PACKAGECONFIG[graphics] = "--enable-wireshark, --disable-wireshark," PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6," PACKAGECONFIG[gnutls] = "--with-gnutls=yes, --with-gnutls=no, gnutls" PACKAGECONFIG[gcrypt] = "--with-gcrypt=yes, --with-gcrypt=no, libgcrypt" +PACKAGECONFIG[krb5] = "--with-krb5=yes, --with-krb5=no, krb5" +PACKAGECONFIG[lua] = "--with-lua=yes, --with-lua=no, lua" +PACKAGECONFIG[zlib] = "--with-zlib=yes, --with-zlib=no, zlib" +PACKAGECONFIG[geoip] = "--with-geoip=yes, --with-geoip=no, geoip" -EXTRA_OECONF = "--with-qt=no --enable-usr-local=no --enable-tshark --with-c-ares=no" +# these next two options require addional layers +PACKAGECONFIG[adns] = "--with-adns=yes, --with-adns=no, adns" +PACKAGECONFIG[c-ares] = "--with-c-ares=yes, --with-c-ares=no, c-ares" + +EXTRA_OECONF += "--with-qt=no --enable-usr-local=no --enable-tshark --with-pcap=no --enable-pcap-ng-default" do_configure_prepend() { # force to use fallback |