Skip to content

Commit 5674de0

Browse files
committed
Add Dockerfile for Linux build with Ubuntu rolling
1 parent 704d64b commit 5674de0

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

docker/linux-latest/Dockerfile

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
FROM ubuntu:rolling
2+
LABEL \
3+
org.opencontainers.image.title="sigrok Linux x86_64 Build Image" \
4+
org.opencontainers.image.description="This image is used to build the sigrok x86_64 artefacts" \
5+
org.opencontainers.image.url="https://sigrok.org" \
6+
org.opencontainers.image.source="https://github.com/knarfS/sigrok-build" \
7+
org.opencontainers.image.licenses="GPL-3.0-or-later" \
8+
org.opencontainers.image.authors="Frank Stettner <frank-stettner@gmx.net>" \
9+
maintainer="Frank Stettner <frank-stettner@gmx.net>"
10+
11+
ENV DEBIAN_FRONTEND noninteractive
12+
ENV BASE_DIR /opt
13+
14+
RUN apt-get update \
15+
&& apt-get upgrade -y \
16+
# Install basic stuff
17+
&& apt-get install -y --no-install-recommends \
18+
sudo bash apt-utils software-properties-common \
19+
wget ca-certificates gpg gnupg2 unzip bzip2 lzip sed \
20+
# Install build stuff
21+
&& apt-get install -y --no-install-recommends \
22+
gcc g++ make autoconf autoconf-archive automake libtool \
23+
pkg-config check doxygen swig shellcheck sdcc qmake6 \
24+
# Install libserialport, libsigrok, pulseview and smuview dependencies
25+
&& apt-get install -y --no-install-recommends \
26+
libglib2.0-dev libglibmm-2.4-dev libzip-dev \
27+
python3-dev python-gi-dev python3-setuptools \
28+
libusb-1.0-0-dev libftdi1-dev libhidapi-dev libbluetooth-dev \
29+
libvisa-dev nettle-dev libavahi-client-dev libieee1284-3-dev \
30+
libboost-dev libboost-system-dev libboost-filesystem-dev \
31+
libboost-serialization-dev libboost-test-dev \
32+
# TODO: where is qt6-translations-dev for pulseview?
33+
qt6-base-dev qt6-svg-dev qt6-tools-dev \
34+
#
35+
# Update certificates
36+
&& update-ca-certificates \
37+
#
38+
# Install current git
39+
&& add-apt-repository -y ppa:git-core/ppa \
40+
&& apt-get update \
41+
&& apt-get install -y --no-install-recommends git \
42+
#
43+
# Install current cmake
44+
&& wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg > /dev/null \
45+
&& echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | sudo tee /etc/apt/sources.list.d/kitware.list > /dev/null \
46+
&& apt-get update \
47+
&& apt-get install -y --no-install-recommends cmake \
48+
#
49+
# Install Qwt 6.3.0
50+
&& apt-get install -y --no-install-recommends mesa-common-dev libgl1-mesa-dev \
51+
&& cd /opt \
52+
&& wget https://sourceforge.net/projects/qwt/files/qwt/6.3.0/qwt-6.3.0.tar.bz2 \
53+
&& tar xf qwt-6.3.0.tar.bz2 \
54+
&& cd qwt-6.3.0 \
55+
# Disable stuff that is not needed
56+
&& sed -i 's/^\(QWT_CONFIG\s*+=\s*QwtDesigner\)$/#\1/g' qwtconfig.pri \
57+
&& sed -i 's/^\(QWT_CONFIG\s*+=\s*QwtExamples\)$/#\1/g' qwtconfig.pri \
58+
&& sed -i 's/^\(QWT_CONFIG\s*+=\s*QwtPlayground\)$/#\1/g' qwtconfig.pri \
59+
&& sed -i 's/^\(QWT_CONFIG\s*+=\s*QwtTests\)$/#\1/g' qwtconfig.pri \
60+
&& cat qwtconfig.pri \
61+
&& qmake6 qwt.pro \
62+
&& make \
63+
# Change the QWT_INSTALL_PREFIX in qwtconfig.pri to /usr
64+
&& sed -i 's|^\([[:space:]]*QWT_INSTALL_PREFIX[[:space:]]*=[[:space:]]*\)/usr.*$|\1/usr|g' qwtconfig.pri \
65+
&& make install \
66+
# Cleanup
67+
&& cd .. \
68+
&& rm qwt-6.3.0.tar.bz2 \
69+
&& rm -rf qwt-6.3.0 \
70+
#
71+
# Cleanup apt
72+
&& apt-get clean \
73+
&& rm -rf /var/lib/apt/lists/*

0 commit comments

Comments
 (0)