Some checks failed
BlockStorage/repertory_osx/pipeline/head This commit looks good
BlockStorage/repertory_windows/pipeline/head This commit looks good
BlockStorage/repertory/pipeline/head There was a failure building this commit
BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
### Issues * \#1 \[bug\] Unable to mount S3 due to 'item_not_found' exception * \#2 Require bucket name for S3 mounts * \#3 \[bug\] File size is not being updated in S3 mount * \#4 Upgrade to libfuse-3.x.x * \#5 Switch to renterd for Sia support * \#6 Switch to cpp-httplib to further reduce dependencies * \#7 Remove global_data and calculate used disk space per provider * \#8 Switch to libcurl for S3 mount support ### Changes from v1.x.x * Added read-only encrypt provider * Pass-through mount point that transparently encrypts source data using `XChaCha20-Poly1305` * Added S3 encryption support via `XChaCha20-Poly1305` * Added replay protection to remote mounts * Added support base64 writes in remote FUSE * Created static linked Linux binaries for `amd64` and `aarch64` using `musl-libc` * Removed legacy Sia renter support * Removed Skynet support * Fixed multiple remote mount WinFSP API issues on \*NIX servers * Implemented chunked read and write * Writes for non-cached files are performed in chunks of 8Mib * Removed `repertory-ui` support * Removed `FreeBSD` support * Switched to `libsodium` over `CryptoPP` * Switched to `XChaCha20-Poly1305` for remote mounts * Updated `GoogleTest` to v1.14.0 * Updated `JSON for Modern C++` to v3.11.2 * Updated `OpenSSL` to v1.1.1w * Updated `RocksDB` to v8.5.3 * Updated `WinFSP` to 2023 * Updated `boost` to v1.78.0 * Updated `cURL` to v8.3.0 * Updated `zlib` to v1.3 * Use `upload_manager` for all providers * Adds a delay to uploads to prevent excessive API calls * Supports re-upload after mount restart for incomplete uploads * NOTE: Uploads for all providers are full file (no resume support) * Multipart upload support is planned for S3 Reviewed-on: #9
185 lines
5.4 KiB
Plaintext
185 lines
5.4 KiB
Plaintext
# https://github.com/mmozeiko/docker-mingw-w64
|
|
FROM ubuntu:22.04
|
|
|
|
WORKDIR /mnt
|
|
|
|
ENV MINGW=/mingw
|
|
|
|
ARG PKG_CONFIG_VERSION=0.29.2
|
|
ARG CMAKE_VERSION=3.27.1
|
|
ARG BINUTILS_VERSION=2.41
|
|
ARG MINGW_VERSION=11.0.1
|
|
ARG GCC_VERSION=13.2.0
|
|
ARG NASM_VERSION=2.16.01
|
|
ARG NVCC_VERSION=12.2.1
|
|
|
|
SHELL [ "/bin/bash", "-c" ]
|
|
|
|
RUN set -ex \
|
|
\
|
|
&& apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive apt-get upgrade --no-install-recommends -y \
|
|
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
|
|
ca-certificates \
|
|
gcc \
|
|
g++ \
|
|
zlib1g-dev \
|
|
libssl-dev \
|
|
libgmp-dev \
|
|
libmpfr-dev \
|
|
libmpc-dev \
|
|
libisl-dev \
|
|
libssl3 \
|
|
libgmp10 \
|
|
libmpfr6 \
|
|
libmpc3 \
|
|
libisl23 \
|
|
xz-utils \
|
|
ninja-build \
|
|
texinfo \
|
|
meson \
|
|
gnupg \
|
|
bzip2 \
|
|
patch \
|
|
gperf \
|
|
bison \
|
|
file \
|
|
flex \
|
|
make \
|
|
yasm \
|
|
wget \
|
|
zip \
|
|
git \
|
|
\
|
|
&& wget -q https://pkg-config.freedesktop.org/releases/pkg-config-${PKG_CONFIG_VERSION}.tar.gz -O - | tar -xz \
|
|
&& wget -q https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz -O - | tar -xz \
|
|
&& wget -q https://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VERSION}.tar.xz -O - | tar -xJ \
|
|
&& wget -q https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/mingw-w64-v${MINGW_VERSION}.tar.bz2 -O - | tar -xj \
|
|
&& wget -q https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.xz -O - | tar -xJ \
|
|
&& wget -q https://www.nasm.us/pub/nasm/releasebuilds/${NASM_VERSION}/nasm-${NASM_VERSION}.tar.xz -O - | tar -xJ \
|
|
\
|
|
&& mkdir -p ${MINGW}/include ${MINGW}/lib/pkgconfig \
|
|
&& chmod 0777 -R /mnt ${MINGW} \
|
|
\
|
|
&& cd pkg-config-${PKG_CONFIG_VERSION} \
|
|
&& ./configure \
|
|
--prefix=/usr/local \
|
|
--with-pc-path=${MINGW}/lib/pkgconfig \
|
|
--with-internal-glib \
|
|
--disable-shared \
|
|
--disable-nls \
|
|
&& make -j`nproc` \
|
|
&& make install \
|
|
&& cd .. \
|
|
\
|
|
&& cd cmake-${CMAKE_VERSION} \
|
|
&& ./configure \
|
|
--prefix=/usr/local \
|
|
--parallel=`nproc` \
|
|
&& make -j`nproc` \
|
|
&& make install \
|
|
&& cd .. \
|
|
\
|
|
&& cd binutils-${BINUTILS_VERSION} \
|
|
&& ./configure \
|
|
--prefix=/usr/local \
|
|
--target=x86_64-w64-mingw32 \
|
|
--disable-shared \
|
|
--enable-static \
|
|
--disable-lto \
|
|
--disable-plugins \
|
|
--disable-multilib \
|
|
--disable-nls \
|
|
--disable-werror \
|
|
--with-system-zlib \
|
|
&& make -j`nproc` \
|
|
&& make install \
|
|
&& cd .. \
|
|
\
|
|
&& mkdir mingw-w64 \
|
|
&& cd mingw-w64 \
|
|
&& ../mingw-w64-v${MINGW_VERSION}/mingw-w64-headers/configure \
|
|
--prefix=/usr/local/x86_64-w64-mingw32 \
|
|
--host=x86_64-w64-mingw32 \
|
|
--enable-sdk=all \
|
|
&& make install \
|
|
&& cd .. \
|
|
\
|
|
&& mkdir gcc \
|
|
&& cd gcc \
|
|
&& ../gcc-${GCC_VERSION}/configure \
|
|
--prefix=/usr/local \
|
|
--target=x86_64-w64-mingw32 \
|
|
--enable-languages=c,c++ \
|
|
--disable-shared \
|
|
--enable-static \
|
|
--enable-threads=posix \
|
|
--with-system-zlib \
|
|
--enable-libgomp \
|
|
--enable-libatomic \
|
|
--enable-graphite \
|
|
--disable-libstdcxx-pch \
|
|
--disable-libstdcxx-debug \
|
|
--disable-multilib \
|
|
--disable-lto \
|
|
--disable-nls \
|
|
--disable-werror \
|
|
&& make -j`nproc` all-gcc \
|
|
&& make install-gcc \
|
|
&& cd .. \
|
|
\
|
|
&& cd mingw-w64 \
|
|
&& ../mingw-w64-v${MINGW_VERSION}/mingw-w64-crt/configure \
|
|
--prefix=/usr/local/x86_64-w64-mingw32 \
|
|
--host=x86_64-w64-mingw32 \
|
|
--enable-wildcard \
|
|
--disable-lib32 \
|
|
--enable-lib64 \
|
|
&& (make || make || make || make) \
|
|
&& make install \
|
|
&& cd .. \
|
|
\
|
|
&& cd mingw-w64 \
|
|
&& ../mingw-w64-v${MINGW_VERSION}/mingw-w64-libraries/winpthreads/configure \
|
|
--prefix=/usr/local/x86_64-w64-mingw32 \
|
|
--host=x86_64-w64-mingw32 \
|
|
--enable-static \
|
|
--disable-shared \
|
|
&& make -j`nproc` \
|
|
&& make install \
|
|
&& cd .. \
|
|
\
|
|
&& cd gcc \
|
|
&& make -j`nproc` \
|
|
&& make install \
|
|
&& cd .. \
|
|
\
|
|
&& cd nasm-${NASM_VERSION} \
|
|
&& ./configure --prefix=/usr/local \
|
|
&& make -j`nproc` \
|
|
&& make install \
|
|
&& cd .. \
|
|
\
|
|
&& rm -r pkg-config-${PKG_CONFIG_VERSION} \
|
|
&& rm -r cmake-${CMAKE_VERSION} \
|
|
&& rm -r binutils-${BINUTILS_VERSION} \
|
|
&& rm -r mingw-w64 mingw-w64-v${MINGW_VERSION} \
|
|
&& rm -r gcc gcc-${GCC_VERSION} \
|
|
&& rm -r nasm-${NASM_VERSION} \
|
|
\
|
|
&& apt-get remove --purge -y file gcc g++ zlib1g-dev libssl-dev libgmp-dev libmpfr-dev libmpc-dev libisl-dev \
|
|
\
|
|
&& apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub \
|
|
&& echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" > /etc/apt/sources.list.d/cuda.list \
|
|
&& apt-get update \
|
|
\
|
|
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
|
|
cuda-nvcc-${NVCC_VERSION:0:2}-${NVCC_VERSION:3:1} \
|
|
\
|
|
&& ln -s /usr/bin/gcc /usr/local/cuda/bin/gcc \
|
|
&& ln -s /usr/bin/g++ /usr/local/cuda/bin/g++ \
|
|
\
|
|
&& apt-get remove --purge -y gnupg \
|
|
&& apt-get autoremove --purge -y \
|
|
&& apt-get clean
|