summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-wireless/yatebts')
-rw-r--r--net-wireless/yatebts/Manifest1
-rw-r--r--net-wireless/yatebts/files/yatebts-4.0.0-dont-mess-with-cflags.patch13
-rw-r--r--net-wireless/yatebts/files/yatebts-bladeRF-transceiver_revert_init_order.patch86
-rw-r--r--net-wireless/yatebts/files/yatebts-sgsnggsn-inetutils-hostname-fix.diff14
-rw-r--r--net-wireless/yatebts/metadata.xml12
-rw-r--r--net-wireless/yatebts/yatebts-4.0.0-r1.ebuild50
-rw-r--r--net-wireless/yatebts/yatebts-9999.ebuild49
7 files changed, 225 insertions, 0 deletions
diff --git a/net-wireless/yatebts/Manifest b/net-wireless/yatebts/Manifest
new file mode 100644
index 000000000000..cfff16a67450
--- /dev/null
+++ b/net-wireless/yatebts/Manifest
@@ -0,0 +1 @@
+DIST yate-bts-4.0.0-1.tar.gz 3311644 SHA256 0cf40839e81e1600b3bd7a184404249cca387d9a7413dda1db02f92d3b501c31 SHA512 802e765fb5dd1702b71c6e7a68f671dcfb82431d7c6defc4fea1494558b8824c0a4b61dc9b7b787bc8badf09752b12efb531d7435d6d32db60edd96fe32f850d WHIRLPOOL 67b983de759b0cf87ded1673c2fe41fef6f10ccb0848a5816cb37c9f20c48c6e11667f4098469d8b381a5e9a50d00c623d494d623227f879e0bf32e11bd447d3
diff --git a/net-wireless/yatebts/files/yatebts-4.0.0-dont-mess-with-cflags.patch b/net-wireless/yatebts/files/yatebts-4.0.0-dont-mess-with-cflags.patch
new file mode 100644
index 000000000000..b10eb57237ef
--- /dev/null
+++ b/net-wireless/yatebts/files/yatebts-4.0.0-dont-mess-with-cflags.patch
@@ -0,0 +1,13 @@
+diff -Naur yate-bts/configure.in yate-bts-sane/configure.in
+--- yate-bts/configure.in 2014-07-25 10:28:44.000000000 -0400
++++ yate-bts-sane/configure.in 2014-07-25 17:38:23.550069064 -0400
+@@ -36,9 +36,6 @@
+ AC_PROG_CC
+ AC_PROG_AWK
+
+-# Delete -g as we handle debug info at build time
+-CFLAGS=`echo "$CFLAGS" | sed 's/-g[[0-9]]* *//' 2>/dev/null`
+-
+ # Helper to check by pkgconfig including local paths
+ function pkgconfig_check()
+ {
diff --git a/net-wireless/yatebts/files/yatebts-bladeRF-transceiver_revert_init_order.patch b/net-wireless/yatebts/files/yatebts-bladeRF-transceiver_revert_init_order.patch
new file mode 100644
index 000000000000..83da1d58d29d
--- /dev/null
+++ b/net-wireless/yatebts/files/yatebts-bladeRF-transceiver_revert_init_order.patch
@@ -0,0 +1,86 @@
+diff --git a/mbts/TransceiverRAD1/bladeRFDevice.cpp b/mbts/TransceiverRAD1/bladeRFDevice.cpp
+index a2a3346..cfdb977 100644
+--- a/mbts/TransceiverRAD1/bladeRFDevice.cpp
++++ b/mbts/TransceiverRAD1/bladeRFDevice.cpp
+@@ -35,7 +35,6 @@
+
+ #include <Logger.h>
+
+-
+ #define MIN_OVERSAMPLING 4
+
+ #define HEALTH_BAD 10
+@@ -128,7 +127,36 @@ bool bladeRFDevice::open(const std::string &args, bool)
+ << "." << ver.patch << " (" << ver.describe << ")";
+
+ uint32_t val = 0;
+- bladerf_config_gpio_read(bdev, &val);
++
++ status = bladerf_sync_config(bdev,
++ BLADERF_MODULE_RX,
++ BLADERF_FORMAT_SC16_Q11,
++ DEFAULT_STREAM_RX_BUFFERS,
++ DEFAULT_STREAM_SAMPLES,
++ DEFAULT_STREAM_RX_XFERS,
++ DEFAULT_STREAM_TIMEOUT
++ );
++
++ if (status < 0) {
++ LOG(CRIT) << "Failed to intialize RX sync handle: " << bladerf_strerror(status);
++ checkHealth(mRxHealth, false);
++ }
++
++ status = bladerf_sync_config(bdev,
++ BLADERF_MODULE_TX,
++ BLADERF_FORMAT_SC16_Q11,
++ DEFAULT_STREAM_TX_BUFFERS,
++ DEFAULT_STREAM_SAMPLES,
++ DEFAULT_STREAM_TX_XFERS,
++ DEFAULT_STREAM_TIMEOUT
++ );
++
++ if (status < 0) {
++ LOG(CRIT) << "Failed to intialize TX sync handle: " << bladerf_strerror(status);
++ checkHealth(mTxHealth, false);
++ }
++
++ bladerf_config_gpio_read(bdev, &val);
+ val |= 0x10000; //enable timestamps, clears and resets everything on write
+ bladerf_config_gpio_write(bdev, val);
+ bladerf_config_gpio_read(bdev, &val);
+@@ -185,34 +213,6 @@ bool bladeRFDevice::open(const std::string &args, bool)
+ else
+ LOG(INFO) << "Actual bandwidth " << bw;
+
+- status = bladerf_sync_config(bdev,
+- BLADERF_MODULE_RX,
+- BLADERF_FORMAT_SC16_Q11,
+- DEFAULT_STREAM_RX_BUFFERS,
+- DEFAULT_STREAM_SAMPLES,
+- DEFAULT_STREAM_RX_XFERS,
+- DEFAULT_STREAM_TIMEOUT
+- );
+-
+- if (status < 0) {
+- LOG(CRIT) << "Failed to intialize RX sync handle: " << bladerf_strerror(status);
+- checkHealth(mRxHealth, false);
+- }
+-
+- status = bladerf_sync_config(bdev,
+- BLADERF_MODULE_TX,
+- BLADERF_FORMAT_SC16_Q11,
+- DEFAULT_STREAM_TX_BUFFERS,
+- DEFAULT_STREAM_SAMPLES,
+- DEFAULT_STREAM_TX_XFERS,
+- DEFAULT_STREAM_TIMEOUT
+- );
+-
+- if (status < 0) {
+- LOG(CRIT) << "Failed to intialize TX sync handle: " << bladerf_strerror(status);
+- checkHealth(mTxHealth, false);
+- }
+-
+ mRxGain1 = BLADERF_RXVGA1_GAIN_MAX;
+ mDcCorrect = true;
+ mRxMaxOffset = RX_OFFSET_ERROR * RX_AVERAGE_DAMPING;
+
diff --git a/net-wireless/yatebts/files/yatebts-sgsnggsn-inetutils-hostname-fix.diff b/net-wireless/yatebts/files/yatebts-sgsnggsn-inetutils-hostname-fix.diff
new file mode 100644
index 000000000000..46b4b1d1ba4d
--- /dev/null
+++ b/net-wireless/yatebts/files/yatebts-sgsnggsn-inetutils-hostname-fix.diff
@@ -0,0 +1,14 @@
+diff --git a/mbts/SGSNGGSN/iputils.cpp b/mbts/SGSNGGSN/iputils.cpp
+index 979ae3a..49bb0ff 100644
+--- a/mbts/SGSNGGSN/iputils.cpp
++++ b/mbts/SGSNGGSN/iputils.cpp
+@@ -466,7 +466,7 @@ EXPORT uint32_t *ip_findmyaddr()
+ const int maxaddrs = 5;
+ static uint32_t addrs[maxaddrs+1];
+ int n = 0;
+- int fd = runcmd("|/bin/hostname","hostname","-I", NULL);
++ int fd = runcmd("|/bin/hostname","hostname","-i", NULL);
+ if (fd < 0) {
+ failed:
+ addrs[0] = (unsigned) -1; // converts to all 1s
+
diff --git a/net-wireless/yatebts/metadata.xml b/net-wireless/yatebts/metadata.xml
new file mode 100644
index 000000000000..06a0a1f4e6a9
--- /dev/null
+++ b/net-wireless/yatebts/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <use>
+ <flag name="rad1">Build RAD1 transceiver</flag>
+ <flag name="usrp1">Build USRP1 transceiver</flag>
+ <flag name="uhd">Build UHD transceiver</flag>
+ <flag name="bladerf">Build bladeRF transceiver</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/net-wireless/yatebts/yatebts-4.0.0-r1.ebuild b/net-wireless/yatebts/yatebts-4.0.0-r1.ebuild
new file mode 100644
index 000000000000..dca70f1d59c9
--- /dev/null
+++ b/net-wireless/yatebts/yatebts-4.0.0-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils autotools
+
+DESCRIPTION="The Yate GSM base station"
+HOMEPAGE="http://www.yatebts.com/"
+ESVN_REPO_URI="http://voip.null.ro/svn/yatebts/trunk"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="rad1 usrp1 uhd +bladerf cpu_flags_x86_sse3 cpu_flags_x86_sse4_1"
+
+RDEPEND="
+ >=net-voip/yate-5.4.0:=[gsm]
+ bladerf? ( net-wireless/bladerf:= )
+ uhd? ( net-wireless/uhd )
+ virtual/libusb:1"
+DEPEND="virtual/pkgconfig
+ ${RDEPEND}"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit subversion
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64 ~arm ~x86"
+ SRC_URI="http://yate.null.ro/tarballs/${PN}4/yate-bts-${PV}-1.tar.gz"
+ S="${WORKDIR}/yate-bts"
+fi
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-dont-mess-with-cflags.patch
+ epatch "${FILESDIR}"/${PN}-sgsnggsn-inetutils-hostname-fix.diff
+ epatch "${FILESDIR}"/${PN}-bladeRF-transceiver_revert_init_order.patch
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable rad1) \
+ $(use_enable usrp1) \
+ $(use_enable uhd) \
+ $(use_enable bladerf) \
+ $(use_enable cpu_flags_x86_sse3 sse3) \
+ $(use_enable cpu_flags_x86_sse4_1 sse41)
+
+}
diff --git a/net-wireless/yatebts/yatebts-9999.ebuild b/net-wireless/yatebts/yatebts-9999.ebuild
new file mode 100644
index 000000000000..b55fcf0ac308
--- /dev/null
+++ b/net-wireless/yatebts/yatebts-9999.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils autotools
+
+DESCRIPTION="The Yate GSM base station"
+HOMEPAGE="http://www.yatebts.com/"
+ESVN_REPO_URI="http://voip.null.ro/svn/yatebts/trunk"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="rad1 usrp1 uhd +bladerf cpu_flags_x86_sse3 cpu_flags_x86_sse4_1"
+
+RDEPEND="
+ =net-voip/yate-${PV}:=[gsm]
+ bladerf? ( net-wireless/bladerf:= )
+ uhd? ( net-wireless/uhd )
+ virtual/libusb:1"
+DEPEND="virtual/pkgconfig
+ ${RDEPEND}"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit subversion
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64 ~arm ~x86"
+ SRC_URI="http://yate.null.ro/tarballs/${PN}4/yate-bts-${PV}-1.tar.gz"
+ S="${WORKDIR}/yate-bts"
+fi
+
+src_prepare() {
+ #we need more patches or configure flags because things install in really wrong places per FHS
+ epatch "${FILESDIR}"/${PN}-sgsnggsn-inetutils-hostname-fix.diff
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable rad1) \
+ $(use_enable usrp1) \
+ $(use_enable uhd) \
+ $(use_enable bladerf) \
+ $(use_enable cpu_flags_x86_sse3 sse3) \
+ $(use_enable cpu_flags_x86_sse4_1 sse41)
+
+}