mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
26449bcccf
a517541794 Remove no longer needed shellcheck suppressions (practicalswift) 0b7196ecad Fix warnings introduced in shellcheck v0.6.0 (practicalswift) 07a53dce9f Remove repeated suppression. Fix indentation. (practicalswift) 638e53b472 Pin shellcheck version to v0.6.0 (practicalswift) Pull request description: Pin `shellcheck` version. Tree-SHA512: 996e438e424020fe888de1d77ffd33fa32848332febfffbc21a842784aee339332c79c41687c9c577ba1206eb20674623157d584a072e8ae88ae086ee2277bc8
72 lines
3.5 KiB
Ruby
72 lines
3.5 KiB
Ruby
FROM ubuntu:bionic
|
|
|
|
# Build and base stuff
|
|
# (zlib1g-dev and libssl-dev are needed for the Qt host binary builds, but should not be used by target binaries)
|
|
# We split this up into multiple RUN lines as we might need to retry multiple times on Travis. This way we allow better
|
|
# cache usage.
|
|
ENV APT_ARGS="-y --no-install-recommends --no-upgrade"
|
|
RUN apt-get update && apt-get install $APT_ARGS git wget unzip && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS g++ && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS autotools-dev libtool m4 automake autoconf pkg-config && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS zlib1g-dev libssl1.0-dev curl ccache bsdmainutils cmake && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS python3 python3-dev && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS python3-pip python3-setuptools && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Python stuff
|
|
RUN pip3 install pyzmq # really needed?
|
|
RUN pip3 install jinja2
|
|
RUN pip3 install flake8==3.5.0
|
|
RUN pip3 install codespell==1.13.0
|
|
RUN pip3 install vulture==0.29
|
|
RUN pip3 install yq
|
|
|
|
# dash_hash
|
|
RUN git clone https://github.com/dashpay/dash_hash
|
|
RUN cd dash_hash && python3 setup.py install
|
|
|
|
ARG USER_ID=1000
|
|
ARG GROUP_ID=1000
|
|
|
|
# add user with specified (or default) user/group ids
|
|
ENV USER_ID ${USER_ID}
|
|
ENV GROUP_ID ${GROUP_ID}
|
|
RUN groupadd -g ${GROUP_ID} dash
|
|
RUN useradd -u ${USER_ID} -g dash -s /bin/bash -m -d /dash dash
|
|
|
|
# Packages needed for all target builds
|
|
RUN dpkg --add-architecture i386
|
|
RUN apt-get update && apt-get install $APT_ARGS g++-7-multilib && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS g++-arm-linux-gnueabihf && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS g++-mingw-w64-x86-64 && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS wine-stable wine32 wine64 bc nsis xorriso && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS python3-zmq && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS cppcheck && rm -rf /var/lib/apt/lists/*
|
|
RUN apt-get update && apt-get install $APT_ARGS imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools && rm -rf /var/lib/apt/lists/*
|
|
|
|
ARG SHELLCHECK_VERSION=v0.6.0
|
|
RUN curl -s "https://storage.googleapis.com/shellcheck/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar --xz -xf - --directory /tmp/
|
|
ENV PATH "/tmp/shellcheck-${SHELLCHECK_VERSION}:${PATH}"
|
|
|
|
# This is a hack. It is needed because gcc-multilib and g++-multilib are conflicting with g++-arm-linux-gnueabihf. This is
|
|
# due to gcc-multilib installing the following symbolic link, which is needed for -m32 support. However, this causes
|
|
# arm builds to also have the asm folder implicitly in the include search path. This is kind of ok, because the asm folder
|
|
# for arm has precedence.
|
|
RUN ln -s x86_64-linux-gnu/asm /usr/include/asm
|
|
|
|
# Make sure std::thread and friends is available
|
|
RUN \
|
|
update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix; \
|
|
update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix; \
|
|
exit 0
|
|
|
|
RUN mkdir /dash-src && \
|
|
mkdir -p /cache/ccache && \
|
|
mkdir /cache/depends && \
|
|
mkdir /cache/sdk-sources && \
|
|
chown $USER_ID:$GROUP_ID /dash-src && \
|
|
chown $USER_ID:$GROUP_ID /cache && \
|
|
chown $USER_ID:$GROUP_ID /cache -R
|
|
WORKDIR /dash-src
|
|
|
|
USER dash
|