From b642b8688d510f8de4c21f58a9dd3c9d68c387a5 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Thu, 9 Aug 2018 07:50:09 +0700 Subject: 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 --- Makefile | 4 +++ gr-gsm-master/.release | 2 ++ gr-gsm-master/Dockerfile | 81 ++++++++++++++++++++++++++++++++++++++++++++++++ gr-gsm-master/Makefile | 1 + 4 files changed, 88 insertions(+) create mode 100644 gr-gsm-master/.release create mode 100644 gr-gsm-master/Dockerfile create mode 100644 gr-gsm-master/Makefile diff --git a/Makefile b/Makefile index 2cdbc58..f82e3f5 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/gr-gsm-master/.release b/gr-gsm-master/.release new file mode 100644 index 0000000..3e94f0e --- /dev/null +++ b/gr-gsm-master/.release @@ -0,0 +1,2 @@ +release=0.0.0 +tag=gr-gsm-master-0.0.0 diff --git a/gr-gsm-master/Dockerfile b/gr-gsm-master/Dockerfile new file mode 100644 index 0000000..e75d318 --- /dev/null +++ b/gr-gsm-master/Dockerfile @@ -0,0 +1,81 @@ +FROM base/archlinux + +MAINTAINER Vadim Yanitskiy + +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 diff --git a/gr-gsm-master/Makefile b/gr-gsm-master/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/gr-gsm-master/Makefile @@ -0,0 +1 @@ +include ../make/Makefile -- cgit v1.2.3