Commit af5dd9aa authored by Matthew Waters's avatar Matthew Waters 🐨

recipes: add libusrsctp for webrtc data channels

parent dd303278
......@@ -20,7 +20,7 @@ class Recipe(custom.GStreamer):
'libkate', 'zlib', 'openh264', 'opus', 'nettle', 'librtmp',
'libsrtp', 'libdca', 'libmms', 'libdvdnav', 'libnice',
'soundtouch', 'vo-aacenc', 'librsvg', 'openjpeg', 'openssl',
'spandsp', 'webrtc-audio-processing', 'sbc', 'ladspa', 'srt']
'spandsp', 'webrtc-audio-processing', 'sbc', 'ladspa', 'srt', 'libusrsctp']
use_system_libs = True
files_lang = ['gst-plugins-bad-1.0']
......
# Copyright (c) 2014-2015, Centricular Ltd. All rights reserved.
# Copyright (c) 2015, Ericsson AB. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this
# list of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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.
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
import shutil
from cerbero.utils import shell
class Recipe(recipe.Recipe):
name = 'libusrsctp'
version = 'master'
remotes = { 'origin': 'https://github.com/sctplab/usrsctp.git' };
commit = 'f4819e1b177f7bfdd761c147f5a649b9f1a78c06';
stype = SourceType.GIT
autoreconf = True
licenses = [License.BSD_like]
configure_options = '--disable-debug --enable-static --enable-shared'
files_libs = ['libusrsctp']
files_devel = ['include/usrsctp.h']
def extract(self):
super(recipe.Recipe, self).extract()
for f in ['NEWS', 'README', 'AUTHORS', 'ChangeLog']:
print (os.path.join(self.build_dir, f))
shell.touch(os.path.join(self.build_dir, f), True)
os.mkdir(os.path.join(self.build_dir, 'm4'))
def configure(self):
usrsctplib_path = os.path.join(self.build_dir, 'usrsctplib')
if self.config.target_platform == Platform.ANDROID:
# ifaddrs is a GNU extension that isn't available on Android
ifaddrs_path = os.path.join(self.config.recipes_dir, self.name)
shutil.copy(os.path.join(ifaddrs_path, "ifaddrs.c"),
usrsctplib_path)
shutil.copy(os.path.join(ifaddrs_path, "ifaddrs.h"),
usrsctplib_path)
shell.replace(os.path.join(usrsctplib_path, 'Makefile.am'),
{'sctp_os_userspace.h':
'sctp_os_userspace.h ifaddrs.c ifaddrs.h'})
elif self.config.target_platform == Platform.IOS:
simulator_includes = "/Applications/Xcode.app//Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include"
shutil.copytree(os.path.join(simulator_includes, "net"),
os.path.join(usrsctplib_path, "platform/net"))
shutil.copytree(os.path.join(simulator_includes, "netinet"),
os.path.join(usrsctplib_path, "platform/netinet"))
self.append_env["CPPFLAGS"] = "-I %s" % os.path.join(usrsctplib_path, "platform")
# Disable compilation of examples
shell.replace(os.path.join(self.build_dir, 'Makefile.am'),
{'SUBDIRS = usrsctplib programs':
'SUBDIRS = usrsctplib'})
# Disable -Werror
shell.replace(os.path.join(self.build_dir, 'configure.ac'),
{'-Werror':
'-Wno-error'})
super(recipe.Recipe, self).configure()
This diff is collapsed.
/*
* Copyright (c) 1995, 1999
* Berkeley Software Design, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* THIS SOFTWARE IS PROVIDED BY Berkeley Software Design, Inc. ``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 Berkeley Software Design, Inc. 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.
*
* BSDI ifaddrs.h,v 2.5 2000/02/23 14:51:59 dab Exp
*/
#ifndef _IFADDRS_H_
#define _IFADDRS_H_
struct ifaddrs {
struct ifaddrs *ifa_next;
char *ifa_name;
unsigned int ifa_flags;
struct sockaddr *ifa_addr;
struct sockaddr *ifa_netmask;
struct sockaddr *ifa_dstaddr;
void *ifa_data;
};
/*
* This may have been defined in <net/if.h>. Note that if <net/if.h> is
* to be included it must be included before this header file.
*/
#ifndef ifa_broadaddr
#define ifa_broadaddr ifa_dstaddr /* broadcast address interface */
#endif
#include <sys/cdefs.h>
__BEGIN_DECLS
extern int getifaddrs(struct ifaddrs **ifap);
extern void freeifaddrs(struct ifaddrs *ifa);
__END_DECLS
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment