diff options
Diffstat (limited to 'media-libs/liblo')
-rw-r--r-- | media-libs/liblo/Manifest | 10 | ||||
-rw-r--r-- | media-libs/liblo/files/liblo-0.29-ipv6_build_fix.patch | 133 | ||||
-rw-r--r-- | media-libs/liblo/liblo-0.26.ebuild | 34 | ||||
-rw-r--r-- | media-libs/liblo/liblo-0.28.ebuild | 40 | ||||
-rw-r--r-- | media-libs/liblo/liblo-0.29.ebuild | 48 | ||||
-rw-r--r-- | media-libs/liblo/metadata.xml | 12 |
6 files changed, 277 insertions, 0 deletions
diff --git a/media-libs/liblo/Manifest b/media-libs/liblo/Manifest new file mode 100644 index 000000000000..cdef4f04d81d --- /dev/null +++ b/media-libs/liblo/Manifest @@ -0,0 +1,10 @@ +AUX liblo-0.29-ipv6_build_fix.patch 4943 SHA256 c2de89371805c87a7c11b1212ddae12abe2df36e7db30fb24c1eb3387f30833b SHA512 3f077109bcc8e0e5ffb18e41b8e27a9809aa00f59dbba40c30f3a83a526aad4ca25e620b0fb59825de5da37e27b4596572cfad0769c330eece1cfe857293dc3f WHIRLPOOL 59fa1b9703cfe21d505d50a57548897bf049f194c410c6b54d3b1aa628940dd62b6313ae6ed228988e2beec036cd0b25ff182ff1212efdb8b6166988001b6b20 +DIST liblo-0.26.tar.gz 519750 SHA256 a636fb09f8178ad0d5303e94fec37b182d3062a0e3daee85eed2a39ab6232258 SHA512 5bc720be216b796587ee020cc32bdea760c65ee063a1248a44bb7c800c1a91b5e5a1321b55c61fd3b219aecb0d8cfb4d6bf53a6440d46fd59e8697c63e542215 WHIRLPOOL 4fcfa3dbfe8bbb8887eb18a17c3d3e3d532b9386dd83bbe9fd0d1c075fbf556b7abca626f415b60d69e92df49d7dafc2874d43e83f14bec8990b609ca4f5fe3e +DIST liblo-0.28.tar.gz 591659 SHA256 da94a9b67b93625354dd89ff7fe31e5297fc9400b6eaf7378c82ee1caf7db909 SHA512 05818218d2d6a7042714b8fa905e7242fb9707795ad53ea27b2a1af3661f0822d25585ce17d286aa269c534ef24e19e377e041bf7fe194c8e47c0046fefcb85f WHIRLPOOL 5de1592d2fe8aee191115ed5b094dd8bb0ca5ec442c94e785c2bc74bef93f3df0dd8804c8aa2a1c3b1a1ce70729fa87c73cd4b09f3535300548999687b9a1ab5 +DIST liblo-0.29.tar.gz 645313 SHA256 ace1b4e234091425c150261d1ca7070cece48ee3c228a5612d048116d864c06a SHA512 11e20725a049c55c02ef8cd106be5802507f3df95422d8dad10009bdd1237af7517e3261c7336c3005e21ae8fd1e663badef46e4bae006c7af70520bdb336c7c WHIRLPOOL 67a3045cec78822bd0f04339f75edd69646db3d94cdb3c48a0ea99001ad0b1cb948ec0ba7f12372489aa62fc8d216ff25a2f671287315c98409e8ecd5d377698 +EBUILD liblo-0.26.ebuild 676 SHA256 ae39611495cb1e6ae9a04bd4f8b013b08c38a8ee34e5100ee6e43bce58a37f8d SHA512 90658883a5c92321a714fcd7ab69261f50ef844a68acea4489ce3278bcd07e5cc84306fc8a421a83e126eb4643aec68e05d6f451e7241c0d035a782f77a6356e WHIRLPOOL 0f3e4cc94a88587f533dfa8dfd3ae0bb3e90e1fa095ab350ed8dedd67cf705f71b8d996cb8f0c86ec966d98682e4f75ea290a62ed16ad7939b509f7929c6f106 +EBUILD liblo-0.28.ebuild 853 SHA256 19d6530868cbcab81cf7f140437c5a78309a8b350f5d39392ff539581d5d080e SHA512 ad184cc6429e80e0078f48618ca8042312a4a8eeba0ebaffc4834c51be373048ada531911f0055eb734a1a218208d02c2a9e9b6c88505e3e4f16d15052b73253 WHIRLPOOL 01bf21d8f7c5f401bb0d97ad2eda84bb4e8bc21dd523727b71a2aaa04e501e401b736bd39a9df7705785ebaa75351f5cfdbc0e73d15c61d5ffcc6583eebf0b5a +EBUILD liblo-0.29.ebuild 956 SHA256 dacb50229915fa991bd8c2a1a752fd7addc390bd83064d92a5e0b43e1a066769 SHA512 da4f1418df00557d4c15fd3c12431805966d07e04428f0ea6441ce439314e4d3df368a012dbcbac2f89b39700afb3cd9413d592d868bf36b87d9306afba7f743 WHIRLPOOL 31e48172e726959398528515d02ab424ba27922193b144c676e55d29db5f8cff9fe9d64c11c1451c0d03f5c0b92229cd3e98f1d62172335bee75c3a82108658e +MISC ChangeLog 2551 SHA256 cb48f273630eb1f9ebd273df8e2292edea2ba92f7c66b6c233c1dd413ef10f41 SHA512 e1aee5d08cdddb9cbfb9d2dc068aec0a1f1696705493029066ee35950f0e3435c92af580e059b3c40bf48f9aa94377c9f3055b06af0a337e5d97a08098d8c2a0 WHIRLPOOL 76d4b13685b174827023b5c6b121097eeed27a2f6081b1ac1f0bc483877bafa29fa47a6ac8db18e5f877bd4baa921065cb1cc199210fa3c1ae5f9bd9815d341e +MISC ChangeLog-2015 3614 SHA256 12a3ee1c99e0ccb905f752b92115e4924ddd09bda28794b0065e27a8f01cf0e0 SHA512 bb961e0069941aa0cb178a04d97406bf3ec43dfb73420f567b3107b9c0aaec8f05669738d99aa83ad1256e0bb9d11fd73463a96639d69dd309b78333a599b862 WHIRLPOOL 77f36f7d79e846e008a28513d885e61d55922e70737233d391776c687e6cbc3961b76a5ea2f1b0f923618e3f30a50902fe91f64f2599a267b9f2e22efcc37d99 +MISC metadata.xml 470 SHA256 dfdd2aefc36a986a79716f8cea5d150666e1fe711005d0a7281f3c3589faa905 SHA512 2604ac7fbd125c9f45faeefcad35a40bcd65d4034311cda5a95ceaaa3904b7e46b6e449f0373ad6f0ffca66ff9bd23d785a035a63888adc754939e19fb93eb56 WHIRLPOOL e421855fa4a1c7c276d4a1a8f6e23d748a49fe3237d8fade217c57d83778d9bd9ff41f6c8e228e4c6a5ee1fc7d08e43cff41e22161420d8fb27986cf5e86f99e diff --git a/media-libs/liblo/files/liblo-0.29-ipv6_build_fix.patch b/media-libs/liblo/files/liblo-0.29-ipv6_build_fix.patch new file mode 100644 index 000000000000..484fddbd6032 --- /dev/null +++ b/media-libs/liblo/files/liblo-0.29-ipv6_build_fix.patch @@ -0,0 +1,133 @@ +From 968dff4d576ca102525c81beddb36a623890424b Mon Sep 17 00:00:00 2001 +From: Stephen Sinclair <radarsat1@gmail.com> +Date: Tue, 29 Aug 2017 14:32:24 -0300 +Subject: [PATCH] Resolve hostname using getnameinfo for ipv6 support. + +Iterates on interfaces, possibly searching for a pre-selected +interface, and resolves the hostname associated with non-localhost +addresses. + +Fixes #56, fix compilation with --enable-ipv6. +--- + src/server.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------- + src/testlo.c | 7 ++++++ + 2 files changed, 72 insertions(+), 9 deletions(-) + +diff --git a/src/server.c b/src/server.c +index cf20495..4aff673 100644 +--- a/src/server.c ++++ b/src/server.c +@@ -55,6 +55,10 @@ + #endif + #include <sys/un.h> + #include <arpa/inet.h> ++#include <netinet/in.h> ++#ifdef HAVE_GETIFADDRS ++#include <ifaddrs.h> ++#endif + #endif + + #if defined(WIN32) || defined(_MSC_VER) +@@ -298,20 +302,72 @@ void lo_server_resolve_hostname(lo_server s) + /* Set hostname to empty string */ + hostname[0] = '\0'; + +-#ifdef ENABLE_IPV6 ++#if defined(ENABLE_IPV6) && defined(HAVE_GETIFADDRS) + /* Try it the IPV6 friendly way first */ +- for (it = ai; it; it = it->ai_next) { +- if (getnameinfo(it->ai_addr, it->ai_addrlen, hostname, +- sizeof(hostname), NULL, 0, NI_NAMEREQD) == 0) { ++ do { ++ struct ifaddrs *ifa, *ifa_list; ++ if (getifaddrs(&ifa_list)) + break; ++ ifa = ifa_list; ++ ++ while (ifa) { ++ if (!ifa->ifa_addr) { ++ ifa = ifa->ifa_next; ++ continue; ++ } ++ ++ if (s->addr_if.iface) { ++ if (s->addr_if.size == sizeof(struct in_addr) ++ && (ifa->ifa_addr->sa_family == AF_INET)) ++ { ++ struct sockaddr_in *sin = (struct sockaddr_in*)ifa->ifa_addr; ++ if (memcmp(&sin->sin_addr, &s->addr_if.a.addr, sizeof(struct in_addr))!=0 ++ || (s->addr_if.iface && ifa->ifa_name ++ && strcmp(s->addr_if.iface, ifa->ifa_name)!=0)) ++ { ++ ifa = ifa->ifa_next; ++ continue; ++ } ++ } ++ else if (s->addr_if.size == sizeof(struct in6_addr) ++ && (ifa->ifa_addr->sa_family == AF_INET6)) ++ { ++ struct sockaddr_in6 *sin = (struct sockaddr_in6*)ifa->ifa_addr; ++ if (memcmp(&sin->sin6_addr, &s->addr_if.a.addr6, ++ sizeof(struct in6_addr))!=0 ++ || (s->addr_if.iface && ifa->ifa_name ++ && strcmp(s->addr_if.iface, ifa->ifa_name)!=0)) ++ { ++ ifa = ifa->ifa_next; ++ continue; ++ } ++ } ++ } ++ ++ if ((ifa->ifa_addr->sa_family == AF_INET ++ && (!s->addr_if.iface || s->addr_if.size == sizeof(struct in_addr)) ++ && (getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in), hostname, ++ sizeof(hostname), NULL, 0, NI_NAMEREQD) == 0)) ++ || (ifa->ifa_addr->sa_family == AF_INET6 ++ && (!s->addr_if.iface || s->addr_if.size == sizeof(struct in6_addr)) ++ && (getnameinfo(ifa->ifa_addr, sizeof(struct sockaddr_in6), hostname, ++ sizeof(hostname), NULL, 0, NI_NAMEREQD) == 0))) ++ { ++ /* check to make sure getnameinfo() didn't just set the hostname to "::". ++ Needed on Darwin. */ ++ if (hostname[0] == ':') ++ hostname[0] = '\0'; ++ else if (strcmp(hostname, "localhost")==0) ++ hostname[0] = '\0'; ++ else ++ break; ++ } ++ ifa = ifa->ifa_next; + } +- } + +- /* check to make sure getnameinfo() didn't just set the hostname to "::". +- Needed on Darwin. */ +- if (hostname[0] == ':') { +- hostname[0] = '\0'; ++ freeifaddrs(ifa_list); + } ++ while (0); + #endif + + /* Fallback to the oldschool (i.e. more reliable) way */ +diff --git a/src/testlo.c b/src/testlo.c +index c128d10..c69570c 100644 +--- a/src/testlo.c ++++ b/src/testlo.c +@@ -704,6 +704,13 @@ void test_multicast(lo_server_thread st) + + DOING("test_multicast"); + ++#ifdef ENABLE_IPV6 ++ // Print a warning but we let it fail, prefer to actually fix IPv6 ++ // support rather than just skip the test! ++ printf("WARNING: Compiled with --enable-ipv6, multicast not supported;" ++ "failure expected.\n"); ++#endif ++ + /* test multicast server and sender */ + /* message is sent from st otherwise reply doesn't work */ + ms = lo_server_new_multicast("224.0.1.1", "15432", error); +-- +2.14.1 + diff --git a/media-libs/liblo/liblo-0.26.ebuild b/media-libs/liblo/liblo-0.26.ebuild new file mode 100644 index 000000000000..5aadd0c651a7 --- /dev/null +++ b/media-libs/liblo/liblo-0.26.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=4 +inherit eutils + +DESCRIPTION="Lightweight OSC (Open Sound Control) implementation" +HOMEPAGE="http://plugin.org.uk/liblo" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="amd64 ppc ppc64 x86 ~ppc-macos" +IUSE="doc ipv6 static-libs" + +RESTRICT="test" + +RDEPEND="" +DEPEND="doc? ( app-doc/doxygen )" + +DOCS="AUTHORS ChangeLog NEWS README TODO" + +src_configure() { + use doc || export ac_cv_prog_HAVE_DOXYGEN=false + + econf \ + $(use_enable static-libs static) \ + $(use_enable ipv6) +} + +src_install() { + default + prune_libtool_files +} diff --git a/media-libs/liblo/liblo-0.28.ebuild b/media-libs/liblo/liblo-0.28.ebuild new file mode 100644 index 000000000000..0a5d5b548d3e --- /dev/null +++ b/media-libs/liblo/liblo-0.28.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +inherit eutils autotools + +DESCRIPTION="Lightweight OSC (Open Sound Control) implementation" +HOMEPAGE="http://plugin.org.uk/liblo" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~ppc-macos" +IUSE="doc ipv6 static-libs" + +RESTRICT="test" + +DEPEND="doc? ( app-doc/doxygen )" + +src_prepare() { + # don't build examples by default + sed -i '/^SUBDIRS =/s/examples//' Makefile.am || die + + eautoreconf +} + +src_configure() { + use doc || export ac_cv_prog_HAVE_DOXYGEN=false + + # switching threads on/off breaks ABI, bugs #473282, #473286 and #473356 + econf \ + $(use_enable static-libs static) \ + $(use_enable ipv6) \ + --enable-threads +} + +src_install() { + default + prune_libtool_files +} diff --git a/media-libs/liblo/liblo-0.29.ebuild b/media-libs/liblo/liblo-0.29.ebuild new file mode 100644 index 000000000000..1cbfdfdb7ac1 --- /dev/null +++ b/media-libs/liblo/liblo-0.29.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit autotools ltprune + +DESCRIPTION="Lightweight OSC (Open Sound Control) implementation" +HOMEPAGE="http://plugin.org.uk/liblo" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ppc ppc64 ~x86 ~ppc-macos" +IUSE="doc ipv6 static-libs" + +RESTRICT="test" + +DEPEND="doc? ( app-doc/doxygen )" + +PATCHES=( + "${FILESDIR}/${P}-ipv6_build_fix.patch" #627832 +) + +src_prepare() { + default + + # don't build examples by default + sed -i '/^SUBDIRS =/s/examples//' Makefile.am || die + + eautoreconf +} + +src_configure() { + use doc || export ac_cv_prog_HAVE_DOXYGEN=false + + # switching threads on/off breaks ABI, bugs #473282, #473286 and #473356 + myeconfargs=( + --enable-threads + $(use_enable ipv6) + $(use_enable static-libs static) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + prune_libtool_files +} diff --git a/media-libs/liblo/metadata.xml b/media-libs/liblo/metadata.xml new file mode 100644 index 000000000000..ef9db24197f7 --- /dev/null +++ b/media-libs/liblo/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>sound@gentoo.org</email> + <name>Gentoo Sound project</name> + </maintainer> + <longdescription>liblo is an implementation of the Open Sound Control protocol for POSIX systems, started by Steve Harris.</longdescription> + <upstream> + <remote-id type="sourceforge">liblo</remote-id> + </upstream> +</pkgmetadata> |