diff --git a/packaging/docker/Dockerfile.dev b/packaging/docker/Dockerfile.dev index c21979a94..8f89bbdb6 100644 --- a/packaging/docker/Dockerfile.dev +++ b/packaging/docker/Dockerfile.dev @@ -42,8 +42,9 @@ ADD https://packages.fein-aachen.org/fedora/fein.repo /etc/yum.repos.d/ RUN dnf -y install \ gcc gcc-c++ \ pkgconfig cmake make ninja-build \ - texinfo git curl tar \ - protobuf-compiler protobuf-c-compiler + texinfo git mercurial curl tar \ + protobuf-compiler protobuf-c-compiler \ + libtool # Several tools only needed for developement and testing RUN dnf -y install \ @@ -90,8 +91,17 @@ RUN dnf -y install \ RUN cd /tmp && \ git clone --recursive https://github.com/Snaipe/Criterion && \ mkdir -p Criterion/build && cd Criterion/build && \ + git checkout v2.3.3 && \ cmake -DCMAKE_INSTALL_LIBDIR=/usr/local/lib64 .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/Criterion + +# Build & Install EtherLab +RUN cmd /tmp && \ + hg clone --branch stable-1.5 http://hg.code.sf.net/p/etherlabmaster/code etherlab && \ + cd etherlab && \ + ./bootstrap && ./configure --enable-userlib=yes --enable-kernel=no --enable-tool=no && \ + make -j$(nproc) install && \ + rm -rf /tmp/etherlab # Workaround for libnl3's search path for netem distributions RUN ln -s /usr/lib64/tc /usr/lib/tc diff --git a/packaging/docker/Dockerfile.dev-centos b/packaging/docker/Dockerfile.dev-centos index c491f7294..ce0de3b92 100644 --- a/packaging/docker/Dockerfile.dev-centos +++ b/packaging/docker/Dockerfile.dev-centos @@ -97,7 +97,7 @@ RUN cd /tmp && \ mkdir -p fmt/build && cd fmt/build && \ git checkout 5.2.0 && \ cmake3 -DBUILD_SHARED_LIBS=1 .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/fmt # Build & Install spdlog RUN cd /tmp && \ @@ -105,12 +105,13 @@ RUN cd /tmp && \ mkdir -p spdlog/build && cd spdlog/build && \ git checkout v1.3.1 && \ cmake3 -DCMAKE_BUILD_TYPE=Release -DSPDLOG_FMT_EXTERNAL=1 -DSPDLOG_BUILD_BENCH=OFF .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/spdlog # Build & Install Criterion RUN cd /tmp && \ git clone --recursive https://github.com/Snaipe/Criterion && \ mkdir -p Criterion/build && cd Criterion/build && \ + git checkout v2.3.3 && \ cmake3 -DCMAKE_INSTALL_LIBDIR=/usr/local/lib64 .. && make install && \ rm -rf /tmp/* @@ -119,14 +120,30 @@ RUN cd /tmp && \ git clone -b v3.1-stable https://github.com/warmcat/libwebsockets && \ mkdir -p libwebsockets/build && cd libwebsockets/build && \ cmake3 -DCMAKE_INSTALL_LIBDIR=/usr/local/lib64 -DLWS_WITHOUT_TESTAPPS=ON .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/libwebsockets # Build & Install libiec61850 RUN cd /tmp && \ git clone -b v1.3.1 https://github.com/mz-automation/libiec61850 && \ mkdir -p libiec61850/build && cd libiec61850/build && \ cmake3 -DCMAKE_INSTALL_LIBDIR=/usr/local/lib64 .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/libiec61850 + +# Build & Install uldaq +RUN cd /tmp && \ + git clone -b rpm https://github.com/stv0g/uldaq && \ + cd uldaq && \ + autoreconf -i && ./configure --enable-examples=no && \ + make -j$(nproc) install && \ + rm -rf /tmp/uldaq + +# Build & Install EtherLab +RUN cmd /tmp && \ + hg clone --branch stable-1.5 http://hg.code.sf.net/p/etherlabmaster/code etherlab && \ + cd etherlab && \ + ./bootstrap && ./configure --enable-userlib=yes --enable-kernel=no --enable-tool=no && \ + make -j$(nproc) install && \ + rm -rf /tmp/etherlab # Workaround for libnl3's search path for netem distributions RUN ln -s /usr/lib64/tc /usr/lib/tc diff --git a/packaging/docker/Dockerfile.dev-debian-multiarch b/packaging/docker/Dockerfile.dev-debian-multiarch index 8a3ea7b83..2610d5254 100644 --- a/packaging/docker/Dockerfile.dev-debian-multiarch +++ b/packaging/docker/Dockerfile.dev-debian-multiarch @@ -92,7 +92,7 @@ RUN cd /tmp && \ mkdir -p fmt/build && cd fmt/build && \ git checkout 5.2.0 && \ cmake ${CMAKE_OPTS} -DBUILD_SHARED_LIBS=1 .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/fmt # Build & Install spdlog RUN cd /tmp && \ @@ -100,21 +100,21 @@ RUN cd /tmp && \ mkdir -p spdlog/build && cd spdlog/build && \ git checkout v1.3.1 && \ cmake ${CMAKE_OPTS} -DCMAKE_BUILD_TYPE=Release -DSPDLOG_FMT_EXTERNAL=1 -DSPDLOG_BUILD_BENCH=OFF .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/spdlog # Build & Install libwebsockets RUN cd /tmp && \ git clone -b v3.1-stable https://github.com/warmcat/libwebsockets && \ mkdir -p libwebsockets/build && cd libwebsockets/build && \ cmake ${CMAKE_OPTS} -DLWS_INSTALL_LIB_DIR=/usr/lib/${TRIPLET} -DLWS_WITHOUT_TESTAPPS=ON .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/libwebsockets # Build & Install libiec61850 RUN cd /tmp && \ git clone -b v1.3.1 https://github.com/mz-automation/libiec61850 && \ mkdir -p libiec61850/build && cd libiec61850/build && \ cmake ${CMAKE_OPTS} .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/libiec61850 # Build & Install uldaq RUN apt-get -y install automake autoconf libtool @@ -123,7 +123,15 @@ RUN cd /tmp && \ mkdir -p uldaq/build && cd uldaq && \ autoreconf -i && cd build && \ ../configure --host=${TRIPLET} && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/uldaq + +# Build & Install EtherLab +RUN cmd /tmp && \ + hg clone --branch stable-1.5 http://hg.code.sf.net/p/etherlabmaster/code etherlab && \ + cd etherlab && \ + ./bootstrap && ./configure --enable-userlib=yes --enable-kernel=no --enable-tool=no && \ + make -j$(nproc) install && \ + rm -rf /tmp/etherlab WORKDIR /villas ENTRYPOINT bash diff --git a/packaging/docker/Dockerfile.dev-raspbian b/packaging/docker/Dockerfile.dev-raspbian index 57b3f8ccb..979e1422f 100644 --- a/packaging/docker/Dockerfile.dev-raspbian +++ b/packaging/docker/Dockerfile.dev-raspbian @@ -67,7 +67,7 @@ RUN cd /tmp && \ mkdir -p fmt/build && cd fmt/build && \ git checkout 5.2.0 && \ cmake -DBUILD_SHARED_LIBS=1 .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/fmt # Build & Install spdlog RUN cd /tmp && \ @@ -75,28 +75,37 @@ RUN cd /tmp && \ mkdir -p spdlog/build && cd spdlog/build && \ git checkout v1.3.1 && \ cmake -DCMAKE_BUILD_TYPE=Release -DSPDLOG_FMT_EXTERNAL=1 -DSPDLOG_BUILD_BENCH=OFF .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/spdlog # Build & Install libwebsockets RUN cd /tmp && \ git clone -b v3.1-stable https://github.com/warmcat/libwebsockets && \ mkdir -p libwebsockets/build && cd libwebsockets/build && \ cmake -DLWS_WITHOUT_TESTAPPS=ON .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/libwebsockets # Build & Install libiec61850 RUN cd /tmp && \ git clone -b v1.3.1 https://github.com/mz-automation/libiec61850 && \ mkdir -p libiec61850/build && cd libiec61850/build && \ cmake .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/libiec61850 +# Build & Install uldaq RUN cd /tmp && \ git clone -b rpm https://github.com/stv0g/uldaq && \ cd uldaq && \ autoreconf -i && ./configure --enable-examples=no && \ make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/uldaq + +# Build & Install EtherLab +RUN cmd /tmp && \ + hg clone --branch stable-1.5 http://hg.code.sf.net/p/etherlabmaster/code etherlab && \ + cd etherlab && \ + ./bootstrap && ./configure --enable-userlib=yes --enable-kernel=no --enable-tool=no && \ + make -j$(nproc) install && \ + rm -rf /tmp/etherlab # Expose ports for HTTP and WebSocket frontend EXPOSE 80 diff --git a/packaging/docker/Dockerfile.dev-ubuntu b/packaging/docker/Dockerfile.dev-ubuntu index 3dabd98f0..ba86d6213 100644 --- a/packaging/docker/Dockerfile.dev-ubuntu +++ b/packaging/docker/Dockerfile.dev-ubuntu @@ -86,7 +86,7 @@ RUN cd /tmp && \ mkdir -p fmt/build && cd fmt/build && \ git checkout 5.2.0 && \ cmake -DBUILD_SHARED_LIBS=1 .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/fmt # Build & Install spdlog RUN cd /tmp && \ @@ -94,28 +94,45 @@ RUN cd /tmp && \ mkdir -p spdlog/build && cd spdlog/build && \ git checkout v1.3.1 && \ cmake -DCMAKE_BUILD_TYPE=Release -DSPDLOG_FMT_EXTERNAL=1 -DSPDLOG_BUILD_BENCH=OFF .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/spdlog # Build & Install Criterion RUN cd /tmp && \ git clone --recursive https://github.com/Snaipe/Criterion && \ mkdir -p Criterion/build && cd Criterion/build && \ + git checkout v2.3.3 && \ cmake -DCMAKE_INSTALL_LIBDIR=/usr/local/lib64 .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/Criterion # Build & Install libwebsockets RUN cd /tmp && \ git clone -b v3.1-stable https://github.com/warmcat/libwebsockets && \ mkdir -p libwebsockets/build && cd libwebsockets/build && \ cmake -DCMAKE_INSTALL_LIBDIR=/usr/local/lib64 -DLWS_WITHOUT_TESTAPPS=ON .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/libwebsockets # Build & Install libiec61850 RUN cd /tmp && \ git clone -b v1.3.1 https://github.com/mz-automation/libiec61850 && \ mkdir -p libiec61850/build && cd libiec61850/build && \ cmake -DCMAKE_INSTALL_LIBDIR=/usr/local/lib64 .. && make -j$(nproc) install && \ - rm -rf /tmp/* + rm -rf /tmp/libiec61850 + +# Build & Install uldaq +RUN cd /tmp && \ + git clone -b rpm https://github.com/stv0g/uldaq && \ + cd uldaq && \ + autoreconf -i && ./configure --enable-examples=no && \ + make -j$(nproc) install && \ + rm -rf /tmp/uldaq + +# Build & Install EtherLab +RUN cmd /tmp && \ + hg clone --branch stable-1.5 http://hg.code.sf.net/p/etherlabmaster/code etherlab && \ + cd etherlab && \ + ./bootstrap && ./configure --enable-userlib=yes --enable-kernel=no --enable-tool=no && \ + make -j$(nproc) install && \ + rm -rf /tmp/etherlab # Expose ports for HTTP and WebSocket frontend EXPOSE 80