Browse Source

More build process updates (#1516)

pull/1518/head 2.41.0-rc0
trapexit 1 month ago
committed by GitHub
parent
commit
071af2e516
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 103
      Makefile
  2. 38
      buildtools/build-mergerfs
  3. 37
      buildtools/build-release
  4. 9
      buildtools/containerfiles/debian.12.amd64
  5. 9
      buildtools/containerfiles/debian.12.arm64
  6. 9
      buildtools/containerfiles/debian.12.armhf
  7. 9
      buildtools/containerfiles/debian.12.i386
  8. 9
      buildtools/containerfiles/debian.13.amd64
  9. 9
      buildtools/containerfiles/debian.13.arm64
  10. 9
      buildtools/containerfiles/debian.13.armhf
  11. 9
      buildtools/containerfiles/debian.13.i386
  12. 7
      buildtools/containerfiles/debian:11.amd64
  13. 10
      buildtools/containerfiles/debian:11.arm64
  14. 10
      buildtools/containerfiles/debian:11.armhf
  15. 7
      buildtools/containerfiles/debian:11.i386
  16. 10
      buildtools/containerfiles/debian:12.amd64
  17. 10
      buildtools/containerfiles/debian:12.arm64
  18. 10
      buildtools/containerfiles/debian:12.armhf
  19. 7
      buildtools/containerfiles/debian:12.i386
  20. 10
      buildtools/containerfiles/debian:13.amd64
  21. 10
      buildtools/containerfiles/debian:13.arm64
  22. 10
      buildtools/containerfiles/debian:13.armhf
  23. 7
      buildtools/containerfiles/debian:13.i386
  24. 10
      buildtools/containerfiles/debian:13.riscv64
  25. 9
      buildtools/containerfiles/fedora.37.amd64
  26. 9
      buildtools/containerfiles/fedora.37.arm64
  27. 9
      buildtools/containerfiles/fedora.37.armhf
  28. 9
      buildtools/containerfiles/fedora.37.i386
  29. 9
      buildtools/containerfiles/fedora.38.amd64
  30. 9
      buildtools/containerfiles/fedora.38.arm64
  31. 9
      buildtools/containerfiles/fedora.38.armhf
  32. 9
      buildtools/containerfiles/fedora.38.i386
  33. 9
      buildtools/containerfiles/fedora.39.amd64
  34. 9
      buildtools/containerfiles/fedora.40.amd64
  35. 9
      buildtools/containerfiles/fedora.41.amd64
  36. 9
      buildtools/containerfiles/fedora.42.amd64
  37. 9
      buildtools/containerfiles/fedora.43.amd64
  38. 9
      buildtools/containerfiles/fedora.43.arm64
  39. 10
      buildtools/containerfiles/fedora:40.amd64
  40. 10
      buildtools/containerfiles/fedora:40.arm64
  41. 10
      buildtools/containerfiles/fedora:41.amd64
  42. 10
      buildtools/containerfiles/fedora:41.arm64
  43. 10
      buildtools/containerfiles/fedora:42.amd64
  44. 10
      buildtools/containerfiles/fedora:42.arm64
  45. 10
      buildtools/containerfiles/fedora:43.amd64
  46. 10
      buildtools/containerfiles/fedora:43.arm64
  47. 9
      buildtools/containerfiles/rockylinux.10.amd64
  48. 9
      buildtools/containerfiles/rockylinux.10.arm64
  49. 9
      buildtools/containerfiles/rockylinux.10.riscv64
  50. 9
      buildtools/containerfiles/rockylinux.8.amd64
  51. 9
      buildtools/containerfiles/rockylinux.8.arm64
  52. 9
      buildtools/containerfiles/rockylinux.8.armhf
  53. 9
      buildtools/containerfiles/rockylinux.8.i386
  54. 9
      buildtools/containerfiles/rockylinux.9.amd64
  55. 9
      buildtools/containerfiles/rockylinux.9.arm64
  56. 9
      buildtools/containerfiles/rockylinux.9.armhf
  57. 9
      buildtools/containerfiles/rockylinux.9.i386
  58. 10
      buildtools/containerfiles/rockylinux:10.amd64
  59. 10
      buildtools/containerfiles/rockylinux:10.arm64
  60. 10
      buildtools/containerfiles/rockylinux:8.amd64
  61. 10
      buildtools/containerfiles/rockylinux:8.arm64
  62. 10
      buildtools/containerfiles/rockylinux:9.amd64
  63. 10
      buildtools/containerfiles/rockylinux:9.arm64
  64. 9
      buildtools/containerfiles/ubuntu.20.04.amd64
  65. 9
      buildtools/containerfiles/ubuntu.20.04.arm64
  66. 9
      buildtools/containerfiles/ubuntu.20.04.armhf
  67. 9
      buildtools/containerfiles/ubuntu.20.04.i386
  68. 9
      buildtools/containerfiles/ubuntu.22.04.amd64
  69. 9
      buildtools/containerfiles/ubuntu.22.04.arm64
  70. 9
      buildtools/containerfiles/ubuntu.22.04.armhf
  71. 9
      buildtools/containerfiles/ubuntu.22.04.i386
  72. 9
      buildtools/containerfiles/ubuntu.24.04.amd64
  73. 9
      buildtools/containerfiles/ubuntu.24.04.arm64
  74. 9
      buildtools/containerfiles/ubuntu.24.04.armhf
  75. 9
      buildtools/containerfiles/ubuntu.24.04.i386
  76. 10
      buildtools/containerfiles/ubuntu:22.04.amd64
  77. 10
      buildtools/containerfiles/ubuntu:22.04.arm64
  78. 10
      buildtools/containerfiles/ubuntu:22.04.armhf
  79. 10
      buildtools/containerfiles/ubuntu:22.04.riscv64
  80. 10
      buildtools/containerfiles/ubuntu:24.04.amd64
  81. 10
      buildtools/containerfiles/ubuntu:24.04.arm64
  82. 10
      buildtools/containerfiles/ubuntu:24.04.armhf
  83. 10
      buildtools/containerfiles/ubuntu:24.04.riscv64
  84. 27
      buildtools/gen-containerfiles
  85. 7
      buildtools/install-build-pkgs
  86. 35
      buildtools/target-containers.txt
  87. 49
      libfuse/Makefile

103
Makefile

@ -1,4 +1,4 @@
# Copyright (c) 2024, Antonio SJ Musumeci <trapexit@spawn.link>
# Copyright (c) 2025, Antonio SJ Musumeci <trapexit@spawn.link>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@ -12,6 +12,10 @@
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
ifeq ($(shell id -u),0)
FAKEROOT ?=
endif
CP ?= cp
FAKEROOT ?= fakeroot
FIND ?= find
@ -29,7 +33,7 @@ TAR ?= tar
TOUCH ?= touch
BUILDDIR := build
GITREF = $(shell git describe --exact-match --tags HEAD 2>/dev/null || git symbolic-ref --short HEAD 2>/dev/null || git rev-parse --short HEAD)
GITHUB_REPO ?= "https://github.com/trapexit/mergerfs"
ifndef GIT_REPO
ifneq ($(shell $(GIT) --version 2> /dev/null),)
@ -61,13 +65,13 @@ LTO_FLAGS :=
endif
SRC := $(wildcard src/*.cpp)
OBJS := $(SRC:src/%.cpp=build/.src/%.o)
DEPS := $(SRC:src/%.cpp=build/.src/%.d)
OBJS := $(SRC:src/%.cpp=build/.objs/%.cpp.o)
DEPS := $(SRC:src/%.cpp=build/.objs/%.cpp.d)
TESTS := $(wildcard tests/*.cpp)
TESTS_OBJS := $(filter-out build/.src/mergerfs.o,$(OBJS))
TESTS_OBJS += $(TESTS:tests/%.cpp=build/.tests/%.o)
TESTS_DEPS := $(TESTS:tests/%.cpp=build/.tests/%.d)
TESTS_OBJS := $(filter-out build/.objs/mergerfs.o,$(OBJS))
TESTS_OBJS += $(TESTS:tests/%.cpp=build/.test_objs/%.cpp.o)
TESTS_DEPS := $(TESTS:tests/%.cpp=build/.test_objs/%.cpp.d)
TESTS_DEPS += $(DEPS)
MANPAGE := mergerfs.1
@ -140,10 +144,13 @@ all: libfuse $(BUILDDIR)/mergerfs $(BUILDDIR)/fsck.mergerfs $(BUILDDIR)/mergerfs
.PHONY: help
help:
@echo "usage: make\n"
@echo "make USE_XATTR=0 - build program without xattrs functionality"
@echo "make STATIC=1 - build static binary"
@echo "make LTO=1 - build with link time optimization"
@echo "usage: make ARG\n"
@echo "USE_XATTR=0 - build program without xattrs functionality"
@echo "STATIC=1 - build static binary"
@echo "LTO=1 - build with link time optimization"
@echo "CLEANUP=1 - cleanup images between release build process"
@echo "PKGDIR=/dir/ - location for release build pkgs"
@echo "GITREF=gitref - gitref to use for release builds"
$(BUILDDIR)/mergerfs: $(LIBFUSE) src/version.hpp $(OBJS)
@ -165,6 +172,7 @@ libfuse:
tests: $(BUILDDIR)/tests
.PHONY:
changelog:
ifdef GIT_REPO
$(GIT2DEBCL) --name mergerfs > ChangeLog
@ -179,13 +187,14 @@ src/version.hpp:
./buildtools/update-version
$(BUILDDIR)/stamp:
$(MKDIR) -p $(BUILDDIR)/.src $(BUILDDIR)/.tests
$(MKDIR) -p $(BUILDDIR)/.objs
$(MKDIR) -p $(BUILDDIR)/.test_objs
$(TOUCH) $@
$(BUILDDIR)/.src/%.o: src/%.cpp $(BUILDDIR)/stamp
$(BUILDDIR)/.objs/%.cpp.o: src/%.cpp $(BUILDDIR)/stamp
$(CXX) $(CXXFLAGS) $(INC_FLAGS) $(MFS_FLAGS) $(CPPFLAGS) -c $< -o $@
$(BUILDDIR)/.tests/%.o: tests/%.cpp
$(BUILDDIR)/.test_objs/%.cpp.o: tests/%.cpp
$(CXX) $(CXXFLAGS) $(TESTS_FLAGS) $(INC_FLAGS) $(MFS_FLAGS) $(CPPFLAGS) -c $< -o $@
$(BUILDDIR)/preload.so: $(BUILDDIR)/stamp tools/preload.c
@ -199,6 +208,7 @@ clean: rpm-clean
$(FIND) . -name "*~" -delete
$(MAKE) -C libfuse clean
.PHONY: distclean
distclean: clean
ifdef GIT_REPO
$(GIT) clean -xfd
@ -302,62 +312,35 @@ install-build-pkgs:
install-build-tools:
./bulidtools/install-build-tools
.PHONY: release
release:
define build_release
$(eval GITREF ?= $(shell git describe --exact-match --tags HEAD 2>/dev/null || git symbolic-ref --short HEAD 2>/dev/null || git rev-parse --short HEAD))
./buildtools/build-release \
--target=all \
--target=$(1) \
$(if $(CLEANUP),--cleanup) \
$(if $(PKGDIR),--pkgdirpath=$(PKGDIR)) \
--git-repo=$(if $(REMOTE_REPO),$(GITHUB_REPO),".") \
--branch=$(GITREF)
endef
.PHONY: release-sample
.PHONY: release
.PHONY: release-amd64 release-arm64 release-armhf release-riscv64
.PHONY: release-sample release-static release-tarball
release:
$(call build_release,"all")
release-sample:
./buildtools/build-release \
--target=debian.12.amd64 \
$(if $(CLEANUP),--cleanup) \
--branch=$(GITREF)
.PHONY: release-amd64
$(call build_release,"debian:13.amd64")
release-amd64:
./buildtools/build-release \
--target=amd64 \
$(if $(CLEANUP),--cleanup) \
--branch=$(GITREF)
.PHONY: release-arm64
$(call build_release,"amd64")
release-arm64:
./buildtools/build-release \
--target=arm64 \
$(if $(CLEANUP),--cleanup) \
--branch=$(GITREF)
.PHONY: release-riscv64
release-riscv64:
./buildtools/build-release \
--target=riscv64 \
$(if $(CLEANUP),--cleanup) \
--branch=$(GITREF)
.PHONY: release-armhf
$(call build_release,"arm64")
release-armhf:
./buildtools/build-release \
--target=armhf \
$(if $(CLEANUP),--cleanup) \
--branch=$(GITREF)
.PHONY: release-static
$(call build_release,"armhf")
release-riscv64:
$(call build_release,"risc64")
release-static:
./buildtools/build-release \
--target=static \
$(if $(CLEANUP),--cleanup) \
--branch=$(GITREF)
.PHONY: release-tarball
$(call build_release,"static")
release-tarball:
./buildtools/build-release \
--target=tarball \
$(if $(CLEANUP),--cleanup) \
--branch=$(GITREF)
$(call build_release,"tarball")
.PHONY: tags
tags:

38
buildtools/build-mergerfs

@ -1,44 +1,47 @@
#!/bin/sh
set -e
BRANCH="${1:-master}"
SRCDIR="/tmp/mergerfs"
REPO_URL="https://github.com/trapexit/mergerfs"
if [ $# -ne 2 ]; then
echo "usage: $0 <branch> <git_repo>"
echo "argv: $@"
echo "argc: $#"
exit 1
fi
GIT_REPO="${1}"
BRANCH="${2}"
BUILDDIR="/tmp/build"
echo "Clone source from ${GIT_REPO} to ${BUILDDIR}"
git \
clone \
--single-branch \
--branch="${BRANCH}" \
"${REPO_URL}" \
"${SRCDIR}"
"${GIT_REPO}" \
"${BUILDDIR}"
cd "${SRCDIR}"
cd "${BUILDDIR}"
git log HEAD^1..
mkdir /build
mkdir "/build"
if [ -e /usr/bin/apt-get ]; then
make deb
if [ $? -ne 0 ]; then
. /etc/lsb-release
cp -v /etc/lsb-release "/build/${DISTRIB_ID}.${DISTRIB_CODENAME}.${DISTRIB_RELEASE}.$(arch).FAILED"
fi
find /tmp/ \
-type f \
-name "*.deb" \
-not -name "*dbgsym*" \
-exec cp -v {} /build/ \;
exit 0
elif [ -e /usr/bin/dnf ]; then
make rpm
if [ $? -ne 0 ]; then
. /etc/lsb-release
cp -v /etc/lsb-release "/build/${DISTRIB_ID}.${DISTRIB_CODENAME}.${DISTRIB_RELEASE}.$(arch).FAILED"
fi
find /tmp/ \
-type f \
-name "*.rpm" \
-not -name "*sym*" \
-not -name "*src.rpm" \
-exec cp -v {} /build/ \;
exit 0
elif [ -e /usr/bin/yum ]; then
. /opt/rh/devtoolset-9/enable
make rpm
@ -48,8 +51,13 @@ elif [ -e /usr/bin/yum ]; then
-not -name "*sym*" \
-not -name "*src.rpm" \
-exec cp -v {} /build/ \;
exit 0
elif [ -e /sbin/apk ]; then
echo "NOT YET SUPPORTED"
elif [ -e /usr/sbin/pkg ]; then
echo "NOT YET SUPPORTED"
else
echo "NOT YET SUPPORTED"
fi
exit 1

37
buildtools/build-release

@ -7,19 +7,26 @@ import argparse
import time
def build(containerfile,
pkgdirpath,
branch):
def build(git_repo,
branch,
containerfile,
pkgdirpath):
timestamp = time.time_ns()
args = ['podman',
'build',
'--pull=always',
'--force-rm',
'-o',pkgdirpath,
'-f',containerfile,
f'--build-arg=BRANCH={branch}',
f'--build-arg=BUILD_TIMESTAMP={timestamp}',
'buildtools/']
'--force-rm']
if os.path.exists(git_repo):
git_repo = os.path.realpath(git_repo)
args += ['-v',f'{git_repo}:/tmp/mergerfs.git:ro']
args += ['--build-arg=GIT_REPO=/tmp/mergerfs.git']
else:
args += [f'--build-arg=GIT_REPO={git_repo}']
args += ['-o',pkgdirpath,
'-f',containerfile,
f'--build-arg=BRANCH={branch}',
f'--build-arg=BUILD_TIMESTAMP={timestamp}',
'buildtools/']
# TODO: Capture output and write to log
print(args)
rv = subprocess.run(args)
@ -62,7 +69,7 @@ def podman_cleanup():
def parse_args():
p = argparse.ArgumentParser()
p.add_argument('--target',
default='debian.12.amd64')
default='debian:13.amd64')
p.add_argument('--pkgdirpath',
default='build/pkgs/')
p.add_argument('--branch',
@ -73,6 +80,9 @@ def parse_args():
p.add_argument('--cleanup',
required=False,
action='store_true')
p.add_argument('--git-repo',
required=True,
type=str)
return p.parse_args()
@ -117,9 +127,10 @@ def main():
for containerfile in containerfiles:
if args.cleanup:
podman_cleanup()
build(containerfile,
args.pkgdirpath,
args.branch)
build(git_repo=args.git_repo,
branch=args.branch,
containerfile=containerfile,
pkgdirpath=args.pkgdirpath)
sys.exit(0)

9
buildtools/containerfiles/debian.12.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 debian:12 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/debian.12.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 debian:12 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/debian.12.armhf

@ -1,9 +0,0 @@
FROM --platform=linux/armhf debian:12 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/debian.12.i386

@ -1,9 +0,0 @@
FROM --platform=linux/i386 debian:12 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/debian.13.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 debian:trixie as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/debian.13.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 debian:trixie as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/debian.13.armhf

@ -1,9 +0,0 @@
FROM --platform=linux/armhf debian:trixie as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/debian.13.i386

@ -1,9 +0,0 @@
FROM --platform=linux/i386 debian:trixie as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

7
buildtools/containerfiles/debian.11.i386 → buildtools/containerfiles/debian:11.amd64

@ -1,9 +1,10 @@
FROM --platform=linux/i386 debian:11 as build
FROM --platform=amd64 debian:11 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/debian:11.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 debian:11 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/debian:11.armhf

@ -0,0 +1,10 @@
FROM --platform=armhf debian:11 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

7
buildtools/containerfiles/debian.11.amd64 → buildtools/containerfiles/debian:11.i386

@ -1,9 +1,10 @@
FROM --platform=linux/amd64 debian:11 as build
FROM --platform=i386 debian:11 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/debian:12.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 debian:12 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/debian:12.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 debian:12 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/debian:12.armhf

@ -0,0 +1,10 @@
FROM --platform=armhf debian:12 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

7
buildtools/containerfiles/debian.11.arm64 → buildtools/containerfiles/debian:12.i386

@ -1,9 +1,10 @@
FROM --platform=linux/arm64 debian:11 as build
FROM --platform=i386 debian:12 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/debian:13.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 debian:13 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/debian:13.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 debian:13 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/debian:13.armhf

@ -0,0 +1,10 @@
FROM --platform=armhf debian:13 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

7
buildtools/containerfiles/debian.11.armhf → buildtools/containerfiles/debian:13.i386

@ -1,9 +1,10 @@
FROM --platform=linux/armhf debian:11 as build
FROM --platform=i386 debian:13 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/debian:13.riscv64

@ -0,0 +1,10 @@
FROM --platform=riscv64 debian:13 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.37.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 fedora:37 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.37.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 fedora:37 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.37.armhf

@ -1,9 +0,0 @@
FROM --platform=linux/armhf fedora:37 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.37.i386

@ -1,9 +0,0 @@
FROM --platform=linux/i386 fedora:37 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.38.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 fedora:38 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.38.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 fedora:38 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.38.armhf

@ -1,9 +0,0 @@
FROM --platform=linux/armhf fedora:38 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.38.i386

@ -1,9 +0,0 @@
FROM --platform=linux/i386 fedora:38 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.39.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 fedora:39 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.40.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 fedora:40 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.41.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 fedora:41 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.42.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 fedora:42 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.43.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 fedora:43 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/fedora.43.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 fedora:43 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/fedora:40.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 fedora:40 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/fedora:40.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 fedora:40 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/fedora:41.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 fedora:41 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/fedora:41.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 fedora:41 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/fedora:42.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 fedora:42 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/fedora:42.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 fedora:42 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/fedora:43.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 fedora:43 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/fedora:43.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 fedora:43 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.10.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 quay.io/rockylinux/rockylinux:10 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.10.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 quay.io/rockylinux/rockylinux:10 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.10.riscv64

@ -1,9 +0,0 @@
FROM --platform=linux/riscv64 quay.io/rockylinux/rockylinux:10 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.8.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 quay.io/rockylinux/rockylinux:8 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.8.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 quay.io/rockylinux/rockylinux:8 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.8.armhf

@ -1,9 +0,0 @@
FROM --platform=linux/armhf quay.io/rockylinux/rockylinux:8 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.8.i386

@ -1,9 +0,0 @@
FROM --platform=linux/i386 quay.io/rockylinux/rockylinux:8 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.9.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 quay.io/rockylinux/rockylinux:9 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.9.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 quay.io/rockylinux/rockylinux:9 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.9.armhf

@ -1,9 +0,0 @@
FROM --platform=linux/armhf quay.io/rockylinux/rockylinux:9 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/rockylinux.9.i386

@ -1,9 +0,0 @@
FROM --platform=linux/i386 quay.io/rockylinux/rockylinux:9 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/rockylinux:10.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 quay.io/rockylinux/rockylinux:10 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/rockylinux:10.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 quay.io/rockylinux/rockylinux:10 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/rockylinux:8.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 quay.io/rockylinux/rockylinux:8 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/rockylinux:8.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 quay.io/rockylinux/rockylinux:8 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/rockylinux:9.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 quay.io/rockylinux/rockylinux:9 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/rockylinux:9.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 quay.io/rockylinux/rockylinux:9 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.20.04.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 ubuntu:20.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.20.04.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 ubuntu:20.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.20.04.armhf

@ -1,9 +0,0 @@
FROM --platform=linux/armhf ubuntu:20.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.20.04.i386

@ -1,9 +0,0 @@
FROM --platform=linux/i386 ubuntu:20.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.22.04.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 ubuntu:22.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.22.04.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 ubuntu:22.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.22.04.armhf

@ -1,9 +0,0 @@
FROM --platform=linux/armhf ubuntu:22.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.22.04.i386

@ -1,9 +0,0 @@
FROM --platform=linux/i386 ubuntu:22.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.24.04.amd64

@ -1,9 +0,0 @@
FROM --platform=linux/amd64 ubuntu:24.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.24.04.arm64

@ -1,9 +0,0 @@
FROM --platform=linux/arm64 ubuntu:24.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.24.04.armhf

@ -1,9 +0,0 @@
FROM --platform=linux/armhf ubuntu:24.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

9
buildtools/containerfiles/ubuntu.24.04.i386

@ -1,9 +0,0 @@
FROM --platform=linux/i386 ubuntu:24.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG BRANCH=master
RUN /tmp/build-mergerfs $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/ubuntu:22.04.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 ubuntu:22.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/ubuntu:22.04.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 ubuntu:22.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/ubuntu:22.04.armhf

@ -0,0 +1,10 @@
FROM --platform=armhf ubuntu:22.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/ubuntu:22.04.riscv64

@ -0,0 +1,10 @@
FROM --platform=riscv64 ubuntu:22.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/ubuntu:24.04.amd64

@ -0,0 +1,10 @@
FROM --platform=amd64 ubuntu:24.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/ubuntu:24.04.arm64

@ -0,0 +1,10 @@
FROM --platform=arm64 ubuntu:24.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/ubuntu:24.04.armhf

@ -0,0 +1,10 @@
FROM --platform=armhf ubuntu:24.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

10
buildtools/containerfiles/ubuntu:24.04.riscv64

@ -0,0 +1,10 @@
FROM --platform=riscv64 ubuntu:24.04 as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs $GIT_REPO $BRANCH
FROM scratch
COPY --from=build /build/ /

27
buildtools/gen-containerfiles

@ -0,0 +1,27 @@
#!/bin/sh
input_file="${1}"
while IFS= read -r line || [ -n "$line" ]; do
# Skip empty lines
if [ -z "$line" ]; then
continue
fi
image=$(echo "$line" | cut -d' ' -f1)
platform=$(echo "$line" | cut -d' ' -f2-)
echo "${image} ${platform}"
cat <<EOF > "containerfiles/${image##*/}.${platform}"
FROM --platform=${platform} ${image} as build
COPY install-build-pkgs build-mergerfs /tmp/
RUN /tmp/install-build-pkgs
ARG BUILD_TIMESTAMP=0
ARG GIT_REPO
ARG BRANCH
RUN /tmp/build-mergerfs \$GIT_REPO \$BRANCH
FROM scratch
COPY --from=build /build/ /
EOF
done < "$input_file"

7
buildtools/install-build-pkgs

@ -17,23 +17,20 @@ elif [ -e /usr/bin/dnf ]; then
dnf -y update
dnf -y install \
git rpm-build gcc-c++ make which libatomic
dnf -y install lsb_release || true
elif [ -e /usr/bin/yum ]; then
yum -y update
yum -y install \
git rpm-build gcc-c++ make which
yum -y install lsb_release || true
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc\*
elif [ -e /usr/bin/zypper ]; then
zypper update -y
zypper install -y \
git rpm-build gcc-c++ make which \
lsb_release
git rpm-build gcc-c++ make which
elif [ -e /sbin/apk ]; then
apk add \
abuild git gcc g++ make \
linux-headers lsb-release
linux-headers
elif [ -e /usr/sbin/pkg ]; then
pkg install \
git gmake gcc

35
buildtools/target-containers.txt

@ -0,0 +1,35 @@
debian:11 amd64
debian:11 arm64
debian:11 armhf
debian:11 i386
debian:12 amd64
debian:12 arm64
debian:12 armhf
debian:12 i386
debian:13 amd64
debian:13 arm64
debian:13 armhf
debian:13 i386
debian:13 riscv64
fedora:40 amd64
fedora:40 arm64
fedora:41 amd64
fedora:41 arm64
fedora:42 amd64
fedora:42 arm64
fedora:43 amd64
fedora:43 arm64
quay.io/rockylinux/rockylinux:10 amd64
quay.io/rockylinux/rockylinux:10 arm64
quay.io/rockylinux/rockylinux:8 amd64
quay.io/rockylinux/rockylinux:8 arm64
quay.io/rockylinux/rockylinux:9 amd64
quay.io/rockylinux/rockylinux:9 arm64
ubuntu:22.04 amd64
ubuntu:22.04 arm64
ubuntu:22.04 armhf
ubuntu:22.04 riscv64
ubuntu:24.04 amd64
ubuntu:24.04 arm64
ubuntu:24.04 armhf
ubuntu:24.04 riscv64

49
libfuse/Makefile

@ -1,3 +1,17 @@
# Copyright (c) 2025, Antonio SJ Musumeci <trapexit@spawn.link>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
AR ?= ar
CHMOD ?= chmod
CHOWN ?= chown
@ -48,29 +62,18 @@ BUILDDIR := build
SRC_C = \
lib/buffer.c \
lib/crc32b.c \
lib/debug.c \
lib/fuse_dirents.c \
lib/fuse_lowlevel.c \
lib/fuse_opt.c \
lib/fuse_session.c \
lib/fuse_signals.c \
lib/helper.c \
lib/mount.c
SRC_CXX = \
lib/fuse.cpp \
lib/cpu.cpp \
lib/fuse_config.cpp \
lib/fuse_loop.cpp \
lib/fuse_msgbuf.cpp \
lib/pin_threads.cpp \
lib/format.cpp \
lib/node.cpp \
lib/maintenance_thread.cpp
OBJS_C = $(SRC_C:lib/%.c=$(BUILDDIR)/%.o)
OBJS_CXX = $(SRC_CXX:lib/%.cpp=$(BUILDDIR)/%.o)
DEPS_C = $(SRC_C:lib/%.c=$(BUILDDIR)/%.d)
DEPS_CXX = $(SRC_CXX:lib/%.cpp=$(BUILDDIR)/%.d)
SRC_CXX = $(wildcard lib/*.cpp)
OBJS := $(SRC_C:lib/%.c=$(BUILDDIR)/.objs/%.c.o)
OBJS += $(SRC_CXX:lib/%.cpp=$(BUILDDIR)/.objs/%.cpp.o)
DEPS := $(SRC_C:lib/%.c=$(BUILDDIR)/.objs/%.c.d)
DEPS += $(SRC_CXX:lib/%.cpp=$(BUILDDIR)/.objs/%.cpp.d)
CPPFLAGS ?=
CFLAGS ?= \
@ -107,11 +110,11 @@ LDLIBS := \
all: $(BUILDDIR)/libfuse.a $(UTILS)
$(BUILDDIR)/stamp:
$(MKDIR) -p $(BUILDDIR)
$(MKDIR) -p $(BUILDDIR)/.objs/
$(TOUCH) $@
$(BUILDDIR)/libfuse.a: $(OBJS_C) $(OBJS_CXX)
$(AR) rcs $(BUILDDIR)/libfuse.a $(OBJS_C) $(OBJS_CXX)
$(BUILDDIR)/libfuse.a: $(OBJS)
$(AR) rcs $(BUILDDIR)/libfuse.a $(OBJS)
.PHONY: utils
utils: mergerfs-fusermount mount.mergerfs
@ -126,10 +129,10 @@ $(BUILDDIR)/mount.mergerfs: $(BUILDDIR)/libfuse.a util/mount.mergerfs.c
mount.mergerfs: $(BUILDDIR)/mount.mergerfs
$(BUILDDIR)/%.o: lib/%.c | $(BUILDDIR)/stamp
$(BUILDDIR)/.objs/%.c.o: lib/%.c | $(BUILDDIR)/stamp
$(CC) $(CFLAGS) $(FUSE_FLAGS) -c $< -o $@
$(BUILDDIR)/%.o: lib/%.cpp | $(BUILDDIR)/stamp
$(BUILDDIR)/.objs/%.cpp.o: lib/%.cpp | $(BUILDDIR)/stamp
$(CXX) $(CXXFLAGS) $(FUSE_FLAGS) -c $< -o $@
.PHONY: clean
@ -154,4 +157,4 @@ install: $(INSTALLUTILS)
.PHONY: objects strip utils install install-utils
-include $(DEPS_C) $(DEPS_CXX)
-include $(DEPS)
Loading…
Cancel
Save