From 26c6be7fe9ef9508e317e7ce66ae4c1a6b74b4eb Mon Sep 17 00:00:00 2001 From: Junho Choi Date: Fri, 15 Jan 2021 20:54:48 -0800 Subject: [PATCH 1/3] FreeBSD: add libssp This is required to build some native projects which is build with -fstack-protector when linked. Also update sqlite3 version (quarterly is updated) --- docker/freebsd-extras.sh | 2 +- docker/freebsd.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/freebsd-extras.sh b/docker/freebsd-extras.sh index 79c652bed..1fa193241 100755 --- a/docker/freebsd-extras.sh +++ b/docker/freebsd-extras.sh @@ -6,7 +6,7 @@ set -euo pipefail main() { local arch="${1}" - local sqlite_ver=3.33.0,1 \ + local sqlite_ver=3.34.0,1 \ openssl_ver=1.1.1i,1 \ target="${arch}-unknown-freebsd12" diff --git a/docker/freebsd.sh b/docker/freebsd.sh index ee05b1fc9..f9a7585e6 100755 --- a/docker/freebsd.sh +++ b/docker/freebsd.sh @@ -73,9 +73,10 @@ main() { cp "${td}/freebsd/lib/libm.so.5" "${destdir}/lib" cp "${td}/freebsd/lib/libthr.so.3" "${destdir}/lib" cp "${td}/freebsd/lib/libutil.so.9" "${destdir}/lib" + cp "${td}/freebsd/lib/libssp.so.0" "${destdir}/lib" cp "${td}/freebsd/usr/lib/libc++.so.1" "${destdir}/lib" cp "${td}/freebsd/usr/lib/libc++.a" "${destdir}/lib" - cp "${td}/freebsd/usr/lib"/lib{c,util,m}.a "${destdir}/lib" + cp "${td}/freebsd/usr/lib"/lib{c,util,m,ssp,ssp_nonshared}.a "${destdir}/lib" cp "${td}/freebsd/usr/lib"/lib{rt,execinfo}.so.1 "${destdir}/lib" cp "${td}/freebsd/usr/lib"/{crt1,Scrt1,crti,crtn}.o "${destdir}/lib" @@ -86,6 +87,7 @@ main() { ln -s librt.so.1 "${destdir}/lib/librt.so" ln -s libutil.so.9 "${destdir}/lib/libutil.so" ln -s libthr.so.3 "${destdir}/lib/libpthread.so" + ln -s libssp.so.0 "${destdir}/lib/libssp.so" cd gcc-build ../gcc/configure \ From 9a2b65ca9b9836b171a30f3dace4e692c84573d2 Mon Sep 17 00:00:00 2001 From: Daiki Mizukami Date: Thu, 8 Apr 2021 23:48:40 +0900 Subject: [PATCH 2/3] update FreeBSD image to 12.2 also, use OpenSSL from the base system --- docker/freebsd-extras.sh | 9 --------- docker/freebsd.sh | 5 ++++- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/docker/freebsd-extras.sh b/docker/freebsd-extras.sh index d0712ca46..b91f3e28c 100755 --- a/docker/freebsd-extras.sh +++ b/docker/freebsd-extras.sh @@ -7,7 +7,6 @@ main() { local arch="${1}" local sqlite_ver=3.35.5_3,1 \ - openssl_ver=1.1.1k_1,1 \ target="${arch}-unknown-freebsd12" local td @@ -27,20 +26,12 @@ main() { ;; esac - # Adding openssl lib - curl --retry 3 -sSfL "https://pkg.freebsd.org/FreeBSD:12:${bsd_arch}/quarterly/All/openssl-${openssl_ver}.txz" -O - tar -C "${td}/openssl" -xJf openssl-${openssl_ver}.txz /usr/local/lib /usr/local/include/ - # Adding sqlite3 curl --retry 3 -sSfL "https://pkg.freebsd.org/FreeBSD:12:${bsd_arch}/quarterly/All/sqlite3-${sqlite_ver}.txz" -O tar -C "${td}/sqlite" -xJf sqlite3-${sqlite_ver}.txz /usr/local/lib # Copy the linked library local destdir="/usr/local/${target}" - cp -r "${td}/openssl/usr/local/include" "${destdir}" - cp "${td}/openssl/usr/local/lib"/lib{crypto,ssl}.a "${destdir}/lib" - cp "${td}/openssl/usr/local/lib"/lib{crypto,ssl}.so.11 "${destdir}/lib" - cp "${td}/openssl/usr/local/lib"/lib{crypto,ssl}.so "${destdir}/lib" cp "${td}/sqlite/usr/local/lib/libsqlite3.so.0.8.6" "${destdir}/lib" cp "${td}/sqlite/usr/local/lib/libsqlite3.so" "${destdir}/lib" cp "${td}/sqlite/usr/local/lib/libsqlite3.so.0" "${destdir}/lib" diff --git a/docker/freebsd.sh b/docker/freebsd.sh index ee05b1fc9..aea53826f 100755 --- a/docker/freebsd.sh +++ b/docker/freebsd.sh @@ -6,7 +6,7 @@ set -euo pipefail main() { local arch="${1}" - local base_release=12.1 \ + local base_release=12.2 \ binutils=2.32 \ gcc=6.4.0 \ target="${arch}-unknown-freebsd12" @@ -78,6 +78,9 @@ main() { cp "${td}/freebsd/usr/lib"/lib{c,util,m}.a "${destdir}/lib" cp "${td}/freebsd/usr/lib"/lib{rt,execinfo}.so.1 "${destdir}/lib" cp "${td}/freebsd/usr/lib"/{crt1,Scrt1,crti,crtn}.o "${destdir}/lib" + cp "${td}/freebsd/usr/lib"/lib{crypto,ssl}.a "${destdir}/lib" + cp "${td}/freebsd/usr/lib"/libssl.so.111 "${destdir}/lib" + cp "${td}/freebsd/usr/lib"/lib{crypto,ssl}.so "${destdir}/lib" ln -s libc.so.7 "${destdir}/lib/libc.so" ln -s libc++.so.1 "${destdir}/lib/libc++.so" From 0d8e62f95148649ac8def70e226aefe88be20a5e Mon Sep 17 00:00:00 2001 From: Daiki Mizukami Date: Thu, 8 Apr 2021 23:51:01 +0900 Subject: [PATCH 3/3] don't set `SQLITE3_LIB_DIR` in FreeBSD images the environment variable has broken procedural macro crates which depends on `libsqlite3-sys`, such as `migrations_macros`. even without the variable, `libsqlite3-sys` finds the correct path anyway. fixes #520. --- docker/Dockerfile.i686-unknown-freebsd | 3 +-- docker/Dockerfile.x86_64-unknown-freebsd | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile.i686-unknown-freebsd b/docker/Dockerfile.i686-unknown-freebsd index 39de50f85..4341f8425 100644 --- a/docker/Dockerfile.i686-unknown-freebsd +++ b/docker/Dockerfile.i686-unknown-freebsd @@ -18,5 +18,4 @@ RUN /freebsd-extras.sh i686 ENV CARGO_TARGET_I686_UNKNOWN_FREEBSD_LINKER=i686-unknown-freebsd12-gcc \ CC_i686_unknown_freebsd=i686-unknown-freebsd12-gcc \ CXX_i686_unknown_freebsd=i686-unknown-freebsd12-g++ \ - I686_UNKNOWN_FREEBSD_OPENSSL_DIR=/usr/local/i686-unknown-freebsd12/ \ - SQLITE3_LIB_DIR=/usr/local/x86_64-unknown-freebsd12/lib/ + I686_UNKNOWN_FREEBSD_OPENSSL_DIR=/usr/local/i686-unknown-freebsd12/ diff --git a/docker/Dockerfile.x86_64-unknown-freebsd b/docker/Dockerfile.x86_64-unknown-freebsd index 297372e7d..61bc8b840 100644 --- a/docker/Dockerfile.x86_64-unknown-freebsd +++ b/docker/Dockerfile.x86_64-unknown-freebsd @@ -18,5 +18,4 @@ RUN /freebsd-extras.sh x86_64 ENV CARGO_TARGET_X86_64_UNKNOWN_FREEBSD_LINKER=x86_64-unknown-freebsd12-gcc \ CC_x86_64_unknown_freebsd=x86_64-unknown-freebsd12-gcc \ CXX_x86_64_unknown_freebsd=x86_64-unknown-freebsd12-g++ \ - X86_64_UNKNOWN_FREEBSD_OPENSSL_DIR=/usr/local/x86_64-unknown-freebsd12/ \ - SQLITE3_LIB_DIR=/usr/local/x86_64-unknown-freebsd12/lib/ + X86_64_UNKNOWN_FREEBSD_OPENSSL_DIR=/usr/local/x86_64-unknown-freebsd12/