Introduce Dockerfile for the GR-GSM project

This change introduces a new sub-project - 'gr-gsm-master'.
It was decided to use Arch Linux as the base image, because it
provides the recent version of both UHD and GNU Radio without
tons of dependencies, such as Xorg.

Note: as there in no libosmocore package in Arch Linux, it will
be built from the latest source code.

Change-Id: I115b59dc9eaec5d132f3f64c4ee321173459e9ed
This commit is contained in:
Vadim Yanitskiy 2018-08-09 07:50:09 +07:00
parent c2b32af8bc
commit b642b8688d
4 changed files with 88 additions and 0 deletions

View File

@ -68,3 +68,7 @@ sua-test: osmo-stp-master
.PHONY: m3ua-test
m3ua-test: osmo-stp-master sigtran-tests
$(MAKE) -C m3ua-test
.PHONY: gr-gsm-master
gr-gsm-master:
$(MAKE) -C gr-gsm-master

2
gr-gsm-master/.release Normal file
View File

@ -0,0 +1,2 @@
release=0.0.0
tag=gr-gsm-master-0.0.0

81
gr-gsm-master/Dockerfile Normal file
View File

@ -0,0 +1,81 @@
FROM base/archlinux
MAINTAINER Vadim Yanitskiy <axilirator@gmail.com>
ARG LIBOSMOCORE_BRANCH="master"
ARG GR_GSM_BRANCH="fixeria/trx"
# Build dependencies
ENV BUILD_DEPS \
automake \
autoconf \
libtool \
pkgconf \
cmake \
make \
swig \
gcc
# Sync pacman
RUN pacman -Syu
# Install persistent packages
RUN pacman -S --needed --noconfirm \
gnuradio \
python2 \
python2-scipy \
python2-requests \
talloc \
boost
# Download USRP firmware
RUN uhd_images_downloader
# Install build dependencies
RUN pacman -S --needed --noconfirm \
$BUILD_DEPS
# Make Python2 default
RUN ln -s /usr/bin/python2 /usr/bin/python
# Install and configure git
RUN pacman -S --needed --noconfirm git \
&& git config --global user.email docker@dock.er \
&& git config --global user.name "Dock Er"
WORKDIR /tmp
# Download, build and install libosmocore
RUN git clone git://git.osmocom.org/libosmocore
ADD http://git.osmocom.org/libosmocore/patch?h=$LIBOSMOCORE_BRANCH /tmp/commit-libosmocore
RUN cd libosmocore \
&& git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
&& autoreconf -fi \
&& ./configure \
--disable-doxygen \
--disable-pcsc \
--prefix=/usr \
&& make -j5 \
&& make install \
&& make distclean
RUN git clone git://git.osmocom.org/gr-gsm
ADD http://git.osmocom.org/gr-gsm/patch?h=$GR_GSM_BRANCH /tmp/commit-gr-gsm
RUN cd gr-gsm \
&& git fetch && git checkout -f -B $GR_GSM_BRANCH origin/$GR_GSM_BRANCH \
&& mkdir build/ \
&& cd build/ \
&& cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-Wno-dev \
../ \
&& make -j5 \
&& make install \
&& cd ../ \
&& rm -rf build/
# Remove build dependencies
RUN pacman -Rs --noconfirm \
$BUILD_DEPS

1
gr-gsm-master/Makefile Normal file
View File

@ -0,0 +1 @@
include ../make/Makefile