From 3e051a384d4c9c620cba75a4263ef018f77a7c77 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Mon, 4 Dec 2023 12:02:56 -0800 Subject: [PATCH] install: adjustments to building ospf mdr deb package, update to docker install docs and easier breakdown of dedicated dockerfiles --- dockerfiles/Dockerfile.ospf-mdr | 67 ----------------------------- dockerfiles/Dockerfile.ospf-mdr-deb | 32 ++++++++++++++ dockerfiles/Dockerfile.ospf-mdr-rpm | 33 ++++++++++++++ dockerfiles/Dockerfile.ubuntu | 31 ------------- dockerfiles/ospf-deb.patch | 20 --------- docs/install_docker.md | 7 ++- 6 files changed, 70 insertions(+), 120 deletions(-) delete mode 100644 dockerfiles/Dockerfile.ospf-mdr create mode 100644 dockerfiles/Dockerfile.ospf-mdr-deb create mode 100644 dockerfiles/Dockerfile.ospf-mdr-rpm delete mode 100644 dockerfiles/ospf-deb.patch diff --git a/dockerfiles/Dockerfile.ospf-mdr b/dockerfiles/Dockerfile.ospf-mdr deleted file mode 100644 index 3ed4946a..00000000 --- a/dockerfiles/Dockerfile.ospf-mdr +++ /dev/null @@ -1,67 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM rockylinux:8 as ospf-rpm -WORKDIR /opt -RUN yum update -y && \ - yum install -y epel-release dnf-plugins-core && \ - yum config-manager --set-enabled powertools && \ - yum update -y && \ - yum install -y \ - texinfo \ - rpm-build \ - texlive-base \ - texinfo-tex \ - texi2html \ - readline-devel \ - libpcap-devel \ - ImageMagick \ - git \ - automake \ - libtool \ - pkg-config \ - gcc-c++ \ - libcap-devel \ - make && \ - git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git && \ - cd ospf-mdr && \ - ./bootstrap.sh && \ - ./configure && \ - (make -f quagga.rpm.mk build || make -f quagga.rpm.mk build) && \ - mv .rpmbuild/RPMS/x86_64/quagga-mr-0.99*.rpm /opt/ && \ - cd /opt && \ - rm -rf ospf-mdr && \ - yum autoremove -y && \ - yum clean all - -FROM ubuntu:22.04 as ospf-deb -WORKDIR /opt -COPY dockerfiles/ospf-deb.patch . -RUN apt-get update -y && \ - apt-get install -y --no-install-recommends \ - git \ - ca-certificates \ - automake \ - make \ - libtool \ - pkg-config \ - gawk \ - g++ \ - dpkg-dev \ - debhelper \ - libreadline-dev \ - texinfo \ - imagemagick \ - groff \ - build-essential:native \ - texlive-latex-base \ - texlive-plain-generic && \ - git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git && \ - cd ospf-mdr && \ - git apply /opt/ospf-deb.patch && \ - ./bootstrap.sh && \ - ./configure && \ - (make -f quagga.deb.mk build || make -f quagga.deb.mk build) && \ - mv quagga-mr_0.99*.deb /opt/ && \ - cd /opt && \ - rm -rf ospf-mdr && \ - apt-get autoremove -y && \ - rm -rf /var/lib/apt/lists/* diff --git a/dockerfiles/Dockerfile.ospf-mdr-deb b/dockerfiles/Dockerfile.ospf-mdr-deb new file mode 100644 index 00000000..db0bfb58 --- /dev/null +++ b/dockerfiles/Dockerfile.ospf-mdr-deb @@ -0,0 +1,32 @@ +# syntax=docker/dockerfile:1 +FROM ubuntu:22.04 +WORKDIR /opt +RUN apt-get update -y && \ + apt-get install -y --no-install-recommends \ + git \ + ca-certificates \ + automake \ + make \ + libtool \ + pkg-config \ + gawk \ + g++ \ + dpkg-dev \ + debhelper \ + libreadline-dev \ + texinfo \ + imagemagick \ + groff \ + build-essential:native \ + texlive-latex-recommended \ + texlive-plain-generic && \ + git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git && \ + cd ospf-mdr && \ + ./bootstrap.sh && \ + ./configure && \ + (make -f quagga.deb.mk build || make -f quagga.deb.mk build) && \ + mv quagga-mr_0.99*.deb /opt/ && \ + cd /opt && \ + rm -rf ospf-mdr && \ + apt-get autoremove -y && \ + rm -rf /var/lib/apt/lists/* diff --git a/dockerfiles/Dockerfile.ospf-mdr-rpm b/dockerfiles/Dockerfile.ospf-mdr-rpm new file mode 100644 index 00000000..aecbe302 --- /dev/null +++ b/dockerfiles/Dockerfile.ospf-mdr-rpm @@ -0,0 +1,33 @@ +# syntax=docker/dockerfile:1 +FROM rockylinux:8 +WORKDIR /opt +RUN yum update -y && \ + yum install -y epel-release dnf-plugins-core && \ + yum config-manager --set-enabled powertools && \ + yum update -y && \ + yum install -y \ + texinfo \ + rpm-build \ + texlive-base \ + texinfo-tex \ + texi2html \ + readline-devel \ + libpcap-devel \ + ImageMagick \ + git \ + automake \ + libtool \ + pkg-config \ + gcc-c++ \ + libcap-devel \ + make && \ + git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git && \ + cd ospf-mdr && \ + ./bootstrap.sh && \ + ./configure && \ + (make -f quagga.rpm.mk build || make -f quagga.rpm.mk build) && \ + mv .rpmbuild/RPMS/x86_64/quagga-mr-0.99*.rpm /opt/ && \ + cd /opt && \ + rm -rf ospf-mdr && \ + yum autoremove -y && \ + yum clean all diff --git a/dockerfiles/Dockerfile.ubuntu b/dockerfiles/Dockerfile.ubuntu index 0450831e..44e2da0b 100644 --- a/dockerfiles/Dockerfile.ubuntu +++ b/dockerfiles/Dockerfile.ubuntu @@ -27,37 +27,6 @@ RUN apt-get update -y && \ ./quagga-mr_0.99*.deb && \ apt-get autoremove -y && \ rm -rf /var/lib/apt/lists/* -#RUN apt-get update -y && \ -# apt-get install -y --no-install-recommends \ -# automake \ -# gawk \ -# g++ \ -# libreadline-dev \ -# libtool \ -# make \ -# pkg-config \ -# git && \ -# git clone https://github.com/USNavalResearchLaboratory/ospf-mdr.git && \ -# 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 && \ -# cd /opt && \ -# rm -rf ospf-mdr && \ -# apt-get remove -y \ -# automake \ -# gawk \ -# g++ \ -# libreadline-dev \ -# libtool \ -# make \ -# pkg-config \ -# git && \ -# apt-get autoremove -y && \ -# rm -rf /var/lib/apt/lists/* # install emane ARG EMANE_RELEASE=emane-1.5.1-release-1 diff --git a/dockerfiles/ospf-deb.patch b/dockerfiles/ospf-deb.patch deleted file mode 100644 index 31f44f4a..00000000 --- a/dockerfiles/ospf-deb.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/debian/compat b/debian/compat -index 7ed6ff8..f599e28 100644 ---- a/debian/compat -+++ b/debian/compat -@@ -1 +1 @@ --5 -+10 -diff --git a/debian/control.in b/debian/control.in -index f722ada..c427137 100644 ---- a/debian/control.in -+++ b/debian/control.in -@@ -3,7 +3,7 @@ Section: net - Priority: optional - Maintainer: @MAINTAINER@ <@MAINTAINER_EMAIL@> - Build-Depends: debhelper (>= 5), autotools-dev, gawk, libreadline-dev, pkg-config --Build-Depends-Indep: texinfo (>= 4.7), imagemagick, texlive-latex-base, texlive-generic-recommended, groff -+Build-Depends-Indep: texinfo (>= 4.7), imagemagick, texlive-latex-base, texlive-plain-generic, groff - Standards-Version: 3.8.4 - Homepage: http://www.nrl.navy.mil/itd/ncs/products/ospf-manet - diff --git a/docs/install_docker.md b/docs/install_docker.md index cdf38cbe..92a9ec18 100644 --- a/docs/install_docker.md +++ b/docs/install_docker.md @@ -21,10 +21,13 @@ Provided Dockerfiles: ```shell # clone core git clone https://github.com/coreemu/core.git +cd core # first you must build EMANE python bindings -docker build -t emane-python -f dockerfiles/Dockerfile.emane-python . +sudo docker build -t emane-python -f dockerfiles/Dockerfile.emane-python . +# build ospf packages +sudo docker build -t ospf-rpm -f dockerfiles/Dockerfile.ospf-mdr-rpm . +sudo docker build -t ospf-deb -f dockerfiles/Dockerfile.ospf-mdr-deb . # build desired CORE image -cd core sudo docker build -t core -f dockerfiles/ . ```