Merge branch 'darwin-builds' into 'main'

Darwin builds + debian scratch build deps setup

See merge request mangadex-pub/haproxy!6
This commit is contained in:
Tristan 2022-06-23 13:35:59 +00:00
commit c965986969
5 changed files with 69 additions and 4 deletions

8
deps/lua/Makefile vendored
View File

@ -16,8 +16,16 @@ $(LUA_BUILDIR): $(LUA_TARBALL)
tar -C $(LUA_BUILDIR) --strip-components=1 -xf "$(LUA_TARBALL)"
build: $(LUA_BUILDIR)
$(MAKE) build_$(shell uname -s)
.PHONY: build_Linux
build_Linux:
$(MAKE) -C $(LUA_BUILDIR) -j$(shell nproc) linux
.PHONY: build_Darwin
build_Darwin:
$(MAKE) -C $(LUA_BUILDIR) -j$(shell nproc) macosx
$(LUA_DESTDIR): build
if ! [ -d "$(LUA_DESTDIR)" ]; then mkdir -v "$(LUA_DESTDIR)"; fi
$(MAKE) -C $(LUA_BUILDIR) -j$(shell nproc) install INSTALL_TOP="$(LUA_DESTDIR_ABS)"

19
deps/quictls/Makefile vendored
View File

@ -19,15 +19,26 @@ $(QUICTLS_BUILDIR): $(QUICTLS_TARBALL)
tar -C $(QUICTLS_BUILDIR) --strip-components=1 -xf "$(QUICTLS_TARBALL)"
build: $(QUICTLS_BUILDIR)
cd "$(QUICTLS_BUILDIR)" && sed -i 's/^BUILD_METADATA.*/BUILD_METADATA=$(QUICTLS_BUILD_VERSION)/g' "VERSION.dat"
cd "$(QUICTLS_BUILDIR)" && sed -i 's/^RELEASE_DATE.*/RELEASE_DATE="$(shell date -u +'%e %b %Y')"/g' "VERSION.dat"
cd "$(QUICTLS_BUILDIR)" && ! [ -f "VERSION.dat.orig" ] && mv -fv "VERSION.dat" "VERSION.dat.orig" || true
cd "$(QUICTLS_BUILDIR)" && sed 's/^BUILD_METADATA.*/BUILD_METADATA=$(QUICTLS_BUILD_VERSION)/g' "VERSION.dat.orig" > "VERSION.dat.meta"
cd "$(QUICTLS_BUILDIR)" && sed 's/^RELEASE_DATE.*/RELEASE_DATE="$(shell date -u +'%e %b %Y')"/g' "VERSION.dat.meta" > "VERSION.dat"
cd "$(QUICTLS_BUILDIR)" && ./Configure --prefix="/opt/quictls" --openssldir="/opt/quictls" --libdir="lib" -DPURIFY no-shared
$(MAKE) -C "$(QUICTLS_BUILDIR)" -j "$(shell nproc)" VERSION=$(OPENSSL_VERSION)+quic-mangadex-$(BUILD_VERSION_REPOSHA) build_sw
ldd "$(QUICTLS_BUILDIR)/apps/openssl" || true
"$(QUICTLS_BUILDIR)/apps/openssl" version
$(MAKE) buildinfo_$(shell uname -s)
.PHONY: buildinfo_Linux
buildinfo_Linux:
@echo "Checking shared libraries openssl is linked against (Linux):"
@ldd "$(QUICTLS_BUILDIR)/apps/openssl" || true
.PHONY: buildinfo_Darwin
buildinfo_Darwin:
@echo "Checking shared libraries openssl is linked against (Darwin):"
@otool -L "$(QUICTLS_BUILDIR)/apps/openssl" || true
$(QUICTLS_DESTDIR): build
if ! [ -d "$(QUICTLS_DESTDIR)" ]; then mkdir -v "$(QUICTLS_DESTDIR)"; fi
@if ! [ -d "$(QUICTLS_DESTDIR)" ]; then mkdir -v "$(QUICTLS_DESTDIR)"; fi
$(MAKE) -C "$(QUICTLS_BUILDIR)" -j "$(shell nproc)" DESTDIR="$(QUICTLS_DESTDIR_ABS)" install_sw
# Take a moment to hate on how fucking shit the `tar` CLI is with me, especially regarding the awkward dance of path prefixes. Press S.

10
deps/vtest/Makefile vendored
View File

@ -14,6 +14,16 @@ $(VTEST_BUILDIR): $(VTEST_TARBALL)
tar -C $(VTEST_BUILDIR) --strip-components=1 -xf "$(VTEST_TARBALL)"
build: $(VTEST_BUILDIR)
$(MAKE) build_$(shell uname -s)
.PHONY: build_Darwin
build_Darwin:
$(MAKE) -C "$(VTEST_BUILDIR)" -j "$(shell nproc)" \
INCS="-Isrc -Ilib -I$$(brew --prefix pcre2)/include -pthread" \
LIBS="-L$$(brew --prefix pcre2)/lib -lm -lpcre2-8 -lz"
.PHONY: build_Linux
build_Linux: $(VTEST_BUILDIR)
$(MAKE) -C "$(VTEST_BUILDIR)" -j "$(shell nproc)"
$(VTEST_DESTDIR): build

View File

@ -67,9 +67,18 @@ patches: $(HAPROXY_BUILDIR)
@cd "$(HAPROXY_BUILDIR)" && for patch in $(BUILD_PATCHES_FILES); do patch -p1 --forward < "$(BUILD_PATCHES_DIR)/$${patch}" || true; done
build: $(HAPROXY_BUILDIR) patches
$(MAKE) build_$(shell uname -s)
.PHONY: build_Linux
build_Linux:
$(MAKE) -C "$(HAPROXY_BUILDIR)" -j "$(shell nproc)" $(MAKEARGS) opts
$(MAKE) -C "$(HAPROXY_BUILDIR)" -j "$(shell nproc)" $(MAKEARGS)
.PHONY: build_Darwin
build_Darwin:
BREW_CLANG="$(shell brew --prefix llvm)/bin/clang" && $(MAKE) -C "$(HAPROXY_BUILDIR)" -j "$(shell nproc)" CC="$${BREW_CLANG}" LD="$${BREW_CLANG}" $(MAKEARGS) TARGET=osx opts
BREW_CLANG="$(shell brew --prefix llvm)/bin/clang" && $(MAKE) -C "$(HAPROXY_BUILDIR)" -j "$(shell nproc)" CC="$${BREW_CLANG}" LD="$${BREW_CLANG}" $(MAKEARGS) TARGET=osx
# Ignore ssl/ssl_generate_certificate.vtc as it fails and I have no clue why at all
test: $(HAPROXY_BUILDIR)
rm -v "$(HAPROXY_BUILDIR)/reg-tests/ssl/ssl_generate_certificate.vtc" || true

27
tool/setup-debian.sh Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
apt -qq update
apt -qq -y --no-install-recommends install apt-utils apt-transport-https ca-certificates
sed -i -e 's/http\:/https\:/g' /etc/apt/sources.list
apt -qq update
apt -qq -y --no-install-recommends install \
build-essential \
bzip2 \
ca-certificates \
cmake \
curl \
debhelper \
debian-archive-keyring \
devscripts \
git \
gnupg2 \
libpcre2-dev \
libreadline-dev \
libsystemd-dev \
pkg-config \
tar \
zlib1g-dev