From 081b6058bc89ae755f71f11f22423db27b1aeb3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20B=C3=BCtow?= Date: Wed, 19 Dec 2018 17:17:22 +0000 Subject: can compile I/O Riot using Docker (tested on Mac OS X) --- .gitignore | 1 + Dockerfile.in | 10 +++++----- Makefile | 3 ++- README.md | 6 ++++-- docs/doxygen.conf | 2 +- ioriot/src/defaults.h | 2 +- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index d2ac6cf..8faf1e8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ ioriot/ioriot ioriot/tags systemtap/downloads/ Dockerfile +docker/ diff --git a/Dockerfile.in b/Dockerfile.in index 689c831..f3aacc0 100644 --- a/Dockerfile.in +++ b/Dockerfile.in @@ -1,11 +1,11 @@ FROM centos:7 -RUN yum install -v -y gcc systemtap yum-utils +RUN yum install -y gcc systemtap yum-utils ENV KERNEL KERNELVERSION -RUN yum install -v -y kernel-${KERNEL} -RUN debuginfo-install -v -y kernel-${KERNEL} +RUN yum install -y kernel-${KERNEL} kernel-devel-${KERNEL} +RUN debuginfo-install -y kernel-${KERNEL} -ADD ./ /ioriot WORKDIR /ioriot +ADD ./ /ioriot +RUN mkdir -p /opt/ioriot VOLUME /opt - diff --git a/Makefile b/Makefile index 0784785..ac19433 100644 --- a/Makefile +++ b/Makefile @@ -23,4 +23,5 @@ test: dockerbuild: sed s/KERNELVERSION/$(KERNEL)/ Dockerfile.in > Dockerfile docker build . -t ioriot:$(KERNEL) - docker run -it ioriot:$(KERNEL) --entrypoint /bin/bash -c 'make' + bash -c 'test ! -d /tmp/docker/opt/ && mkdir -p /tmp/docker/opt/; exit 0' + docker run -v /tmp/docker/opt:/opt -it ioriot:$(KERNEL) make all install diff --git a/README.md b/README.md index 44afb2d..6eb2d9d 100644 --- a/README.md +++ b/README.md @@ -85,14 +85,16 @@ sudo make uninstall # Compiling I/O Riot using Docker -In case there is no suitable build host for I/O Riot it is possible to use Docker to do the job. In order to build everything for CentOS 7 and Linux Kernel 3.10.0-957.1.3.el7.x86_64 just run: +In case there is no suitable build host for I/O Riot (e.g. compiling on a Mac) it is possible to use Docker to do the job. In order to build everything for CentOS 7 and Linux Kernel 3.10.0-957.1.3.el7.x86_64 just run: ```sh export KERNEL=3.10.0-957.1.3.el7.x86_64 make dockerbuild ``` -Once done you can distribute ``docker/$KERNEL/opt/ioriot`` to ``/opt/ioriot`` to all boxes with that particular running kernel. +That will run for quite a while (depending on the download speed it can take more than 15 minutes!). Once done you can distribute ``/tmp/docker/opt/ioriot`` to ``/opt/ioriot`` to all boxes with that particular running kernel. + +By repeating the steps above it is possible to compile the SystemTap kernel modules for multiple Kernel versions. All the modules will be found seamlessly in ``/tmp/opt/ioriot/systemtap``. # Operating I/O Riot diff --git a/docs/doxygen.conf b/docs/doxygen.conf index 0627fff..0485dab 100644 --- a/docs/doxygen.conf +++ b/docs/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NAME = "I/O Riot" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.4.2 +PROJECT_NUMBER = 0.5 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/ioriot/src/defaults.h b/ioriot/src/defaults.h index 89456d0..f08f514 100644 --- a/ioriot/src/defaults.h +++ b/ioriot/src/defaults.h @@ -28,7 +28,7 @@ /** Controls how many tasks can be queued and buffered per worker thread */ #define TASK_BUFFER_PER_THREAD 512 /** Version of I/O Riot */ -#define IORIOT_VERSION "0.4.2" +#define IORIOT_VERSION "0.5-develop" /** Copyright information */ #define IORIOT_COPYRIGHT "(c) Mimecast 2018" /** Max open files resource user limit */ -- cgit v1.2.3