# syntax=docker/dockerfile:1
FROM centos:7
LABEL Description="CORE CentOS Image"

# install basic dependencies
RUN yum update -y && yum install -y wget

# install python3.9
WORKDIR /opt
RUN wget https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tgz
RUN tar xf Python-3.9.15.tgz
RUN yum install -y make && yum-builddep -y python3
RUN cd Python-3.9.15 && \
  ./configure --enable-optimizations --with-ensurepip=install && \
  make -j$(nproc) altinstall
RUN python3.9 -m pip install --upgrade pip

# install core
WORKDIR /opt/core
COPY core_*.rpm .
RUN PYTHON=/usr/local/bin/python3.9 yum install -y ./core_*.rpm
ENV PATH "$PATH:/opt/core/venv/bin"

# install ospf mdr
RUN yum install -y automake gawk git libreadline-devel libtool pkg-config
WORKDIR /opt
RUN git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git
RUN cd ospf-mdr && \
  ./bootstrap.sh && \
  ./configure --disable-doc --enable-user=root --enable-group=root \
    --with-cflags=-ggdb --sysconfdir=/usr/local/etc/quagga --enable-vtysh \
    --localstatedir=/var/run/quagga && \
  make -j$(nproc) && \
  make install

# install emane
RUN yum install -y libpcap-devel libpcre3-devel libxml2-devel protobuf-devel unzip uuid-devel
WORKDIR /opt
RUN wget -q https://adjacentlink.com/downloads/emane/emane-1.3.3-release-1.el7.x86_64.tar.gz && \
    tar xf emane-1.3.3-release-1.el7.x86_64.tar.gz && \
    cd emane-1.3.3-release-1/rpms/el7/x86_64 && \
    yum install -y epel-release && \
    yum install -y ./openstatistic*.rpm ./emane*.rpm ./python3-emane_*.rpm && \
    cd ../../../.. && \
    rm emane-1.3.3-release-1.el7.x86_64.tar.gz && \
    rm -rf emane-1.3.3-release-1
RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.6/protoc-3.19.6-linux-x86_64.zip && \
    mkdir protoc && \
    unzip protoc-3.19.6-linux-x86_64.zip -d protoc
RUN git clone https://github.com/adjacentlink/emane.git
RUN PATH=/opt/protoc/bin:$PATH && \
  cd emane && \
  git checkout v1.3.3 && \
  ./autogen.sh && \
  PYTHON=/opt/core/venv/bin/python ./configure --prefix=/usr && \
  cd src/python && \
  make && \
  /opt/core/venv/bin/python -m pip install .