Compare commits

..

4 Commits

Author SHA1 Message Date
Lance Vick 904712b861
Merge remote-tracking branch 'distrust/main' 2023-12-12 10:49:05 -08:00
Lance Vick 3bff51f279
refactor/cleanup pass 2023-12-12 09:45:39 -08:00
Lance Vick b2942e9443
drop hardcoded naming globally 2023-12-10 10:05:50 -08:00
Lance Vick a52bf8d669
fix ldd 2023-12-09 04:53:59 -08:00
34 changed files with 601 additions and 831 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
build.log
*.tgz

509
Makefile
View File

@ -1,247 +1,324 @@
export REGISTRY := local
export PLATFORM := linux/amd64
export BUILDER := $(shell which docker)
export SOURCE_DATE_EPOCH = 0
clean_logs := $(shell rm *.log 2>&1 >/dev/null || :)
out/bootstrap.oci.tgz:
docker build -t distrust/bootstrap --output type=oci,dest=$@ bootstrap
DEFAULT_GOAL := default
.PHONY: default
default: all
.PHONY: all
all: \
bootstrap.tgz \
gcc.tgz \
busybox.tgz \
binutils.tgz \
musl.tgz \
make.tgz \
bash.tgz \
zlib.tgz \
perl.tgz \
linux-headers.tgz \
openssl.tgz \
python.tgz \
py-setuptools.tgz \
ca-certificates.tgz \
curl.tgz \
m4.tgz \
autoconf.tgz \
automake.tgz \
sed.tgz \
libtool.tgz \
libunwind.tgz \
ninja.tgz \
cmake.tgz \
libxml2 \
llvm13.tgz \
rust1.54.tgz \
llvm.tgz \
rust1.55.tgz
out/musl.oci.tgz: \
out/bootstrap.oci.tgz
docker build -t distrust/musl --output type=oci,dest=$@ musl
bootstrap.tgz:
$(call build,bootstrap)
out/busybox.oci.tgz: \
out/bootstrap.oci.tgz
docker build -t distrust/busybox --output type=oci,dest=$@ busybox
musl.tgz: bootstrap.tgz
$(call build,musl)
out/binutils.oci.tgz: \
out/bootstrap.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/binutils --output type=oci,dest=$@ binutils
busybox.tgz: bootstrap.tgz
$(call build,busybox)
out/linux-headers.oci.tgz:
docker build -t distrust/linux-headers --output type=oci,dest=$@ linux-headers
binutils.tgz: bootstrap.tgz
$(call build,binutils)
out/gcc.oci.tgz: \
out/bootstrap.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/gcc --output type=oci,dest=$@ gcc
gcc.tgz: \
bootstrap.tgz \
musl.tgz
$(call build,gcc)
out/make.oci.tgz: \
out/bootstrap.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/make --output type=oci,dest=$@ make
make.tgz: bootstrap.tgz
$(call build,make)
out/ca-certificates.oci.tgz:
docker build -t distrust/ca-certificates --output type=oci,dest=$@ ca-certificates
ca-certificates.tgz:
$(call build,ca-certificates)
out/bash.oci.tgz: \
out/gcc.oci.tgz
docker build -t distrust/bash --output type=oci,dest=$@ bash
bash.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz
$(call build,bash)
out/m4.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz
docker build -t distrust/m4 --output type=oci,dest=$@ m4
m4.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz
$(call build,m4)
out/autoconf.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz \
out/perl.oci.tgz \
out/m4.oci.tgz
docker build -t distrust/autoconf --output type=oci,dest=$@ autoconf
perl.tgz: \
gcc.tgz \
binutils.tgz \
busybox.tgz \
make.tgz \
musl.tgz
$(call build,perl)
out/automake.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz \
out/perl.oci.tgz \
out/autoconf.oci.tgz \
out/m4.oci.tgz
docker build -t distrust/automake --output type=oci,dest=$@ automake
autoconf.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz \
perl.tgz \
m4.tgz
$(call build,autoconf,,fetch)
$(call build,autoconf)
out/sed.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz
docker build -t distrust/sed --output type=oci,dest=$@ sed
automake.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz \
perl.tgz \
autoconf.tgz \
m4.tgz
$(call build,automake)
out/libtool.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz \
out/bash.oci.tgz \
out/sed.oci.tgz \
out/m4.oci.tgz
docker build -t distrust/libtool --output type=oci,dest=$@ libtool
sed.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz
$(call build,sed)
out/pkgconf.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz \
out/libtool.oci.tgz
docker build -t distrust/pkgconf --output type=oci,dest=$@ pkgconf
libtool.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz \
bash.tgz \
sed.tgz \
m4.tgz
$(call build,libtool)
out/libxml2.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz \
out/bash.oci.tgz \
out/python.oci.tgz \
out/sed.oci.tgz \
out/m4.oci.tgz \
out/autoconf.oci.tgz \
out/automake.oci.tgz \
out/pkgconf.oci.tgz \
out/libtool.oci.tgz
docker build -t distrust/libxml2 --output type=oci,dest=$@ libxml2
pkgconf.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz \
libtool.tgz
$(call build,pkgconf)
out/libunwind.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz \
out/bash.oci.tgz \
out/autoconf.oci.tgz \
out/automake.oci.tgz \
out/libtool.oci.tgz
docker build -t distrust/libunwind --output type=oci,dest=$@ libunwind
libxml2.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz \
bash.tgz \
python.tgz \
sed.tgz \
m4.tgz \
autoconf.tgz \
automake.tgz \
pkgconf.tgz \
libtool.tgz
$(call build,libxml2)
out/openssl.oci.tgz: \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/busybox.oci.tgz \
out/linux-headers.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/openssl --output type=oci,dest=$@ openssl
libunwind.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz \
bash.tgz \
autoconf.tgz \
automake.tgz \
libtool.tgz
$(call build,libunwind)
out/go.oci.tgz: \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/busybox.oci.tgz \
out/bash.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/go --output type=oci,dest=$@ go
linux-headers.tgz:
$(call build,linux-headers)
out/perl.oci.tgz: \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/busybox.oci.tgz \
out/make.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/perl --output type=oci,dest=$@ perl
openssl.tgz: \
gcc.tgz \
binutils.tgz \
busybox.tgz \
linux-headers.tgz \
musl.tgz
$(call build,openssl)
out/curl.oci.tgz: \
out/gcc.oci.tgz \
out/musl.oci.tgz \
out/busybox.oci.tgz \
out/make.oci.tgz \
out/binutils.oci.tgz \
out/openssl.oci.tgz \
out/ca-certificates.oci.tgz
docker build -t distrust/curl --output type=oci,dest=$@ curl
go.tgz: \
gcc.tgz \
binutils.tgz \
busybox.tgz \
bash.tgz \
musl.tgz
$(call build,go)
out/python.oci.tgz: \
out/gcc.oci.tgz \
out/perl.oci.tgz \
out/binutils.oci.tgz \
out/busybox.oci.tgz \
out/openssl.oci.tgz \
out/make.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/python --output type=oci,dest=$@ python
curl.tgz: \
gcc.tgz \
musl.tgz \
busybox.tgz \
make.tgz \
binutils.tgz \
openssl.tgz \
ca-certificates.tgz
$(call build,curl)
out/ninja.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz \
out/openssl.oci.tgz \
out/python.oci.tgz
docker build -t distrust/ninja --output type=oci,dest=$@ ninja
python.tgz: \
gcc.tgz \
perl.tgz \
binutils.tgz \
busybox.tgz \
openssl.tgz \
make.tgz \
musl.tgz
$(call build,python)
out/cmake.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/ninja.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz \
out/linux-headers.oci.tgz
docker build -t distrust/cmake --output type=oci,dest=$@ cmake
ninja.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz \
openssl.tgz \
python.tgz
$(call build,ninja)
out/py-setuptools.oci.tgz: \
out/busybox.oci.tgz \
out/python.oci.tgz
docker build -t distrust/py-setuptools --output type=oci,dest=$@ py-setuptools
cmake.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
ninja.tgz \
musl.tgz \
make.tgz \
linux-headers.tgz
$(call build,cmake)
out/zlib.oci.tgz: \
out/busybox.oci.tgz \
out/gcc.oci.tgz \
out/binutils.oci.tgz \
out/musl.oci.tgz \
out/make.oci.tgz
docker build -t distrust/zlib --output type=oci,dest=$@ zlib
py-setuptools.tgz: \
busybox.tgz \
python.tgz
$(call build,py-setuptools)
out/llvm.oci.tgz: \
out/gcc.oci.tgz \
out/python.oci.tgz \
out/py-setuptools.oci.tgz \
out/perl.oci.tgz \
out/binutils.oci.tgz \
out/cmake.oci.tgz \
out/ninja.oci.tgz \
out/busybox.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/llvm --output type=oci,dest=$@ llvm
zlib.tgz: \
busybox.tgz \
gcc.tgz \
binutils.tgz \
musl.tgz \
make.tgz
$(call build,zlib)
out/llvm13.oci.tgz: \
out/gcc.oci.tgz \
out/python.oci.tgz \
out/py-setuptools.oci.tgz \
out/perl.oci.tgz \
out/binutils.oci.tgz \
out/cmake.oci.tgz \
out/ninja.oci.tgz \
out/busybox.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/llvm13 --output type=oci,dest=$@ llvm13
llvm13.tgz: \
gcc.tgz \
python.tgz \
py-setuptools.tgz \
perl.tgz \
binutils.tgz \
cmake.tgz \
ninja.tgz \
busybox.tgz \
musl.tgz
$(call build,llvm,13.0.1)
out/rust.oci.tgz: \
out/gcc.oci.tgz \
out/bash.oci.tgz \
out/zlib.oci.tgz \
out/python.oci.tgz \
out/binutils.oci.tgz \
out/cmake.oci.tgz \
out/make.oci.tgz \
out/busybox.oci.tgz \
out/musl.oci.tgz
docker build -t distrust/rust --output type=oci,dest=$@ rust
llvm.tgz: \
gcc.tgz \
python.tgz \
py-setuptools.tgz \
perl.tgz \
binutils.tgz \
cmake.tgz \
ninja.tgz \
busybox.tgz \
musl.tgz
$(call build,llvm)
test:
docker build -t distrust/test-c tests/c
docker build -t distrust/test-go tests/go
docker build -t distrust/test-perl tests/perl
@printf "\nOcirep Test Suite\n"
@printf "go -> "
@docker run -i distrust/test-go | grep Success
@printf "c -> "
@docker run -i distrust/test-c | grep Success
@printf "perl -> "
@docker run -i distrust/test-perl | grep Success
rust1.54.tgz: \
gcc.tgz \
bash.tgz \
zlib.tgz \
python.tgz \
py-setuptools.tgz \
curl.tgz \
perl.tgz \
libunwind.tgz \
llvm13.tgz \
binutils.tgz \
cmake.tgz \
make.tgz \
busybox.tgz \
musl.tgz
$(call build,rust,1.54.0,bootstrap-package)
rust1.55.tgz: rust1.54.tgz
$(call build,rust,1.55.0,package,--build-arg BUILD_VERSION=1.54.0)
# Build package with chosen $(BUILDER)
# Supported BUILDERs: docker
# Usage: $(call build,$(NAME),$(VERSION),$(TARGET),$(EXTRA_ARGS))
# Notes:
# - Packages are expected to use the following layer names in order:
# - "fetch": [optional] obtain any artifacts from the internet.
# - "build": [optional] do any required build work
# - "package": [required] scratch layer exporting artifacts for distribution
# - "test": [optional] define any tests
# - Packages may prefix layer names with "text-" if more than one is desired
# - VERSION will be set as a build-arg if defined, otherwise it is "latest"
# - TARGET defaults to "package"
# - EXTRA_ARGS will be blindly injected
# - packages may also define a "test" layer
# TODO:
# - try to disable networking on fetch layers with something like:
# $(if $(filter fetch,$(lastword $(subst -, ,$(TARGET)))),,--network=none)
# - actually output OCI files for each build (vs plain tar)
# - output manifest.txt of all tar/digest hashes for an easy git diff
# - support buildah and podman
define build
$(eval NAME := $(1))
$(eval VERSION := $(if $(2),$(2),latest))
$(eval TARGET := $(if $(3),$(3),package))
$(eval EXTRA_ARGS := $(if $(4),$(4),))
$(eval BUILD_CMD := \
SOURCE_DATE_EPOCH=1 \
$(BUILDER) \
build \
-t $(REGISTRY)/$(NAME):$(VERSION) \
--build-arg REGISTRY=$(REGISTRY) \
--platform $(PLATFORM) \
--progress=plain \
$(if $(filter latest,$(VERSION)),,--build-arg VERSION=$(VERSION)) \
--target $(TARGET) \
$(EXTRA_ARGS) \
$(NAME) \
)
$(eval TIMESTAMP := $(shell TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ"))
echo $(TIMESTAMP) $(BUILD_CMD) >> build.log
$(BUILD_CMD)
$(if $(filter package,$(TARGET)),$(BUILDER) save $(REGISTRY)/$(NAME):$(VERSION),)
endef

View File

@ -1,7 +1,7 @@
# Packages
Minimalism and security first repository of OCI images of common open source
software packages built from source.
Minimalism and security first repository of reproducible and signed OCI images
of common open source software packages built from source.
These can be used as a secure supply chain for anything from obtaining local
tools, to bootstrapping a Linux distribution.

View File

@ -1,18 +1,24 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
FROM imgrep/m4:latest as m4
FROM imgrep/perl:latest as perl
ARG REGISTRY=local
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM ${REGISTRY}/m4:latest as m4
FROM ${REGISTRY}/perl:latest as perl
FROM busybox as build
ENV SRC_SITE=https://ftp.gnu.org/gnu/autoconf
ENV SRC_VERSION=2.71
ENV SRC_HASH=f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4
RUN wget ${SRC_SITE}/autoconf-${SRC_VERSION}.tar.xz
RUN echo "${SRC_HASH} autoconf-${SRC_VERSION}.tar.xz" | sha256sum -c
RUN tar -xf autoconf-${SRC_VERSION}.tar.xz
FROM ${REGISTRY}/busybox:latest as base
ENV SRC_SITE https://ftp.gnu.org/gnu/autoconf
ENV SRC_VERSION 2.71
ENV SRC_HASH f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4
ENV SRC_FILE autoconf-${SRC_VERSION}.tar.xz
FROM base as fetch
RUN set -eux; \
wget ${SRC_SITE}/${SRC_FILE}; \
echo "${SRC_HASH} ${SRC_FILE}" | sha256sum -c
FROM fetch as build
RUN tar -xf ${SRC_FILE}
WORKDIR autoconf-${SRC_VERSION}
COPY --from=gcc . /
COPY --from=binutils . /
@ -28,7 +34,7 @@ RUN set -eux; \
RUN make DESTDIR=/home/user/rootfs install
COPY --from=perl . /home/user/rootfs/
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
ENTRYPOINT ["/usr/bin/autoreconf"]
CMD ["--version"]

View File

@ -1,11 +1,12 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
FROM imgrep/perl:latest as perl
FROM imgrep/autoconf:latest as autoconf
FROM imgrep/m4:latest as m4
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM ${REGISTRY}/perl:latest as perl
FROM ${REGISTRY}/autoconf:latest as autoconf
FROM ${REGISTRY}/m4:latest as m4
FROM busybox as build
ENV SRC_SITE=https://ftp.gnu.org/gnu/automake
@ -30,7 +31,7 @@ RUN make DESTDIR=/home/user/rootfs install
COPY --from=musl /usr/lib/libc.so /home/user/rootfs/lib/ld-musl-x86_64.so.1
COPY --from=perl . /home/user/rootfs/
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
ENTRYPOINT ["/usr/bin/automake"]
CMD ["--version"]

View File

@ -1,19 +1,45 @@
ARG GCC_IMAGE=library/gcc@sha256:ca38f292fe1ad0933f0122a657f9c644ed1f0a9e1aa336abcc83d420ad487e28
ARG REGISTRY=local
from ${REGISTRY}/binutils as binutils
from ${REGISTRY}/gcc as gcc
from ${REGISTRY}/musl as musl
from ${REGISTRY}/make as make
FROM ${GCC_IMAGE} as build
ENV SOURCE_SITE=https://ftp.gnu.org/gnu/bash
ENV SOURCE_VERSION=5.2.15
ENV SOURCE_HASH=13720965b5f4fc3a0d4b61dd37e7565c741da9a5be24edc2ae00182fc1b3588c
RUN wget ${SOURCE_SITE}/bash-${SOURCE_VERSION}.tar.gz
RUN echo "${SOURCE_HASH} bash-${SOURCE_VERSION}.tar.gz" | sha256sum -c
RUN tar -xzf bash-${SOURCE_VERSION}.tar.gz
WORKDIR bash-${SOURCE_VERSION}
from ${REGISTRY}/busybox as base
ENV SRC_SITE=https://ftp.gnu.org/gnu/bash
ENV SRC_VERSION=5.2.21
ENV SRC_HASH=c8e31bdc59b69aaffc5b36509905ba3e5cbb12747091d27b4b977f078560d5b8
ENV SRC_FILE=bash-${SRC_VERSION}.tar.gz
FROM base as fetch
RUN set -eux; \
wget ${SRC_SITE}/${SRC_FILE}; \
echo "${SRC_HASH} ${SRC_FILE}" | sha256sum -c
FROM fetch as build
RUN tar -xzf ${SRC_FILE}
WORKDIR bash-${SRC_VERSION}
COPY --from=gcc . /
COPY --from=binutils . /
COPY --from=make . /
COPY --from=musl . /
RUN set -eux; \
./configure \
--build=x86_64-unknown-linux-musl \
--host=x86_64-unknown-linux-musl \
--prefix=/usr \
--enable-static-link; \
make DESTDIR=/home/user/rootfs
RUN make install DESTDIR=/home/user/rootfs
--bindir=/bin \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--disable-nls \
--enable-readline \
--without-curses \
--without-bash-malloc; \
make
RUN make DESTDIR=/home/user/rootfs install
RUN ls -Rlah /home/user/rootfs
COPY --from=musl /usr/lib/libc.so /home/user/rootfs/lib/ld-musl-x86_64.so.1
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
ENTRYPOINT ["/bin/bash"]
CMD ["--version"]

View File

@ -1,5 +1,6 @@
FROM imgrep/musl:latest as musl
FROM imgrep/bootstrap:latest as build
ARG REGISTRY=local
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/bootstrap:latest as build
ENV SRC_SITE https://ftp.gnu.org/gnu/binutils
ENV SRC_VERSION 2.41
@ -46,7 +47,7 @@ RUN set -ex; \
make DESTDIR="/home/user/rootfs" install;
COPY --from=musl /usr/lib/libc.so /rootfs/lib/ld-musl-x86_64.so.1
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
ENTRYPOINT ["/bin/ld"]
CMD ["--version"]

View File

@ -1,5 +1,8 @@
FROM alpine@sha256:eece025e432126ce23f223450a0326fbebde39cdf496a85d8c016293fc851978
FROM alpine@sha256:eece025e432126ce23f223450a0326fbebde39cdf496a85d8c016293fc851978 as seed
FROM seed as fetch
RUN set -ex; \
apk update; \
apk add gcc g++ libc-dev make linux-headers patch
FROM fetch as package

View File

@ -1,13 +1,18 @@
FROM imgrep/bootstrap as bootstrap
ARG REGISTRY=local
FROM ${REGISTRY}/bootstrap as base
ENV SRC_SITE=https://busybox.net/downloads
ENV SRC_VERSION=1.35.0
ENV SRC_HASH=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694
ENV SRC_FILE=busybox-${SRC_VERSION}.tar.bz2
FROM bootstrap as build
ENV SOURCE_SITE=https://busybox.net/downloads
ENV SOURCE_VERSION=1.35.0
ENV SOURCE_HASH=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694
RUN wget ${SOURCE_SITE}/busybox-${SOURCE_VERSION}.tar.bz2
RUN echo "${SOURCE_HASH} busybox-${SOURCE_VERSION}.tar.bz2" | sha256sum -c
RUN tar -xjf busybox-${SOURCE_VERSION}.tar.bz2
WORKDIR busybox-${SOURCE_VERSION}
FROM base as fetch
RUN set -eux; \
wget ${SRC_SITE}/${SRC_FILE}; \
echo "${SRC_HASH} ${SRC_FILE}" | sha256sum -c
FROM fetch as build
RUN tar -xjf ${SRC_FILE}
WORKDIR busybox-${SRC_VERSION}
RUN set -eux; \
setConfs=' \
CONFIG_AR=y \
@ -50,7 +55,7 @@ RUN set -eux; \
RUN make
RUN cp busybox /
FROM scratch
FROM scratch as package
COPY --from=build busybox /
RUN ["/busybox","mkdir","/bin"]
RUN ["/busybox","--install","-s","/bin"]
@ -62,3 +67,7 @@ RUN chown -R 1000:1000 /home/user /tmp /var/tmp
WORKDIR /home/user
USER 1000:1000
ENTRYPOINT ["/bin/sh"]
ENV TZ=UTC
ENV LANG=C.UTF-8
ENV SOURCE_DATE_EPOCH=1
ENV PS1=busybox

View File

@ -1,2 +1,2 @@
FROM scratch
FROM scratch as package
COPY cacert.pem /etc/ssl/certs/ca-certificates.crt

View File

@ -1,12 +1,13 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/curl:latest as curl
FROM imgrep/ninja:latest as ninja
FROM imgrep/openssl:latest as openssl
FROM imgrep/linux-headers:latest as linux-headers
FROM imgrep/make:latest as make
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/curl:latest as curl
FROM ${REGISTRY}/ninja:latest as ninja
FROM ${REGISTRY}/openssl:latest as openssl
FROM ${REGISTRY}/linux-headers:latest as linux-headers
FROM ${REGISTRY}/make:latest as make
FROM busybox as build
ENV SRC_SITE=https://cmake.org/files
@ -42,7 +43,7 @@ COPY --from=gcc /usr/lib/* /home/user/rootfs/usr/lib/
COPY --from=gcc /usr/lib64/* /home/user/rootfs/usr/lib/
COPY --from=openssl /usr/lib/* /home/user/rootfs/usr/lib/
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
USER 100:100
ENTRYPOINT ["/usr/bin/cmake"]

View File

@ -1,10 +1,11 @@
FROM imgrep/gcc:latest as gcc
FROM imgrep/musl:latest as musl
FROM imgrep/busybox:latest as busybox
FROM imgrep/make:latest as make
FROM imgrep/binutils:latest as binutils
FROM imgrep/openssl:latest as openssl
FROM imgrep/ca-certificates:latest as ca-certificates
ARG REGISTRY=local
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/make:latest as make
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/openssl:latest as openssl
FROM ${REGISTRY}/ca-certificates:latest as ca-certificates
FROM busybox as build
ENV SRC_SITE=https://curl.se/download
@ -38,7 +39,7 @@ COPY --from=musl . /home/user/rootfs/
COPY --from=openssl . /home/user/rootfs/
COPY --from=ca-certificates . /home/user/rootfs/
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
USER 100:100
ENTRYPOINT ["/usr/bin/curl"]

View File

@ -1,25 +1,45 @@
FROM imgrep/musl:latest as musl
FROM imgrep/bootstrap:latest as build
ARG REGISTRY=local
FROM ${REGISTRY}/musl:latest as musl
ENV GCC_SITE https://mirrors.kernel.org/gnu/gcc
ENV GCC_VERSION 12.2.0
ENV GCC_HASH e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
FROM ${REGISTRY}/bootstrap:latest as base
ENV VERSION 12.2.0
ENV SRC_FILE gcc-$VERSION.tar.xz
ENV SRC_SITE https://mirrors.kernel.org/gnu/gcc/gcc-${VERSION}
ENV SRC_HASH e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
ENV DEP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/
ENV GMP_FILE gmp-6.2.1.tar.bz2
ENV GMP_HASH eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c
ENV MPFR_FILE mpfr-4.1.0.tar.bz2
ENV MPFR_HASH feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926
ENV MPC_FILE mpc-1.2.1.tar.gz
ENV MPC_HASH 17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459
ENV ISL_FILE isl-0.24.tar.bz2
ENV ISL_HASH fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0
RUN echo wget ${GCC_SITE}/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.xz
RUN wget ${GCC_SITE}/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.xz
RUN echo "${GCC_HASH} gcc-${GCC_VERSION}.tar.xz" | sha256sum -c
RUN tar -xf gcc-${GCC_VERSION}.tar.xz
WORKDIR gcc-${GCC_VERSION}
RUN set -ex; \
FROM base as fetch
RUN set -eux; \
wget ${SRC_SITE}/${SRC_FILE}; \
echo "${SRC_HASH} ${SRC_FILE}" | sha256sum -c; \
wget ${DEP_SITE}/${GMP_FILE}; \
echo "${GMP_HASH} ${GMP_FILE}" | sha256sum -c; \
wget ${DEP_SITE}/${MPFR_FILE}; \
echo "${MPFR_HASH} ${MPFR_FILE}" | sha256sum -c; \
wget ${DEP_SITE}/${MPC_FILE}; \
echo "${MPC_HASH} ${MPC_FILE}" | sha256sum -c; \
wget ${DEP_SITE}/${ISL_FILE}; \
echo "${ISL_HASH} ${ISL_FILE}" | sha256sum -c
FROM fetch as build
RUN tar -xf ${SRC_FILE}
WORKDIR gcc-${VERSION}
RUN set -eux; \
mv ../*.tar.* .; \
./contrib/download_prerequisites; \
{ rm *.tar.* || true; }
RUN set -ex; \
./configure \
--target=x86_64-linux-musl \
--build=x86_64-linux-musl \
--host=x86_64-linux-musl \
--prefix /usr \
--prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--libdir=/usr/lib \
@ -35,13 +55,23 @@ RUN set -ex; \
--enable-languages=c,c++ \
--enable-link-serialization=2 \
--enable-linker-build-id; \
make -j "$(nproc)"
RUN set -eux; \
make -j "$(nproc)"; \
make DESTDIR=/home/user/rootfs/ install-strip; \
ln -s gcc /home/user/rootfs/usr/bin/cc
COPY --from=musl /lib/* /home/user/rootfs/lib/
FROM scratch
FROM ${REGISTRY}/binutils:latest as binutils
FROM scratch as test
COPY --from=busybox . /
COPY --from=binutils . /
COPY --from=musl . /
COPY --from=build /home/user/rootfs /
ADD test.c .
RUN set -eux; \
gcc test.c -static -o main; \
./main | grep "Success"
FROM scratch as package
COPY --from=build /home/user/rootfs /
ENTRYPOINT ["/usr/bin/gcc"]
CMD ["--version"]

View File

@ -1,11 +1,10 @@
ARG REGISTRY = imgrep/
ARG REGISTRY = local
ARG BUSYBOX_VERSION = latest
FROM ${REGISTRY}busybox:${BUSYBOX_VERSION} as busybox
FROM imgrep/bash:latest as bash
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM ${REGISTRY}/busybox:${BUSYBOX_VERSION} as busybox
FROM ${REGISTRY}/bash:latest as bash
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM busybox as stage1
COPY --from=bash . /bin/
@ -86,7 +85,7 @@ RUN set -eux; \
mkdir -p ${DEST}; \
cp -R bin lib pkg src ${DEST}
FROM scratch
FROM scratch as package
COPY --from=stage3 /home/user/go-stage3 /
USER 100:100
ENTRYPOINT ["/bin/go"]

View File

@ -1,11 +1,12 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
FROM imgrep/m4:latest as m4
FROM imgrep/bash:latest as bash
FROM imgrep/sed:latest as sed
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM ${REGISTRY}/m4:latest as m4
FROM ${REGISTRY}/bash:latest as bash
FROM ${REGISTRY}/sed:latest as sed
FROM busybox as build
ENV SRC_SITE=https://ftp.gnu.org/gnu/libtool
@ -28,9 +29,9 @@ RUN make DESTDIR=/home/user/rootfs install
COPY --from=musl /usr/lib/libc.so /home/user/rootfs/lib/ld-musl-x86_64.so.1
COPY --from=bash . /home/user/rootfs
COPY --from=sed . /home/user/rootfs
RUN ln -s /usr/bin/bash /home/user/rootfs/bin/sh
RUN ln -s /bin/bash /home/user/rootfs/bin/sh
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
ENTRYPOINT ["/usr/bin/libtool"]
CMD ["--version"]

View File

@ -1,11 +1,12 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
FROM imgrep/autoconf:latest as autoconf
FROM imgrep/automake:latest as automake
FROM imgrep/libtool:latest as libtool
ARG REGISTRY=local
FROM ${REGISTRY}/busybox as busybox
FROM ${REGISTRY}/gcc as gcc
FROM ${REGISTRY}/binutils as binutils
FROM ${REGISTRY}/musl as musl
FROM ${REGISTRY}/make as make
FROM ${REGISTRY}/autoconf as autoconf
FROM ${REGISTRY}/automake as automake
FROM ${REGISTRY}/libtool as libtool
FROM busybox as build
ENV SRC_SITE=https://github.com/libunwind/libunwind/releases/download
@ -16,13 +17,12 @@ RUN echo "${SRC_HASH} libunwind-${SRC_VERSION}.tar.gz" | sha256sum -c
RUN tar -xf libunwind-${SRC_VERSION}.tar.gz
WORKDIR libunwind-${SRC_VERSION}
COPY --from=gcc . /
COPY --from=binutils . /
COPY --from=make . /
COPY --from=musl . /
COPY --from=binutils . /
COPY --from=autoconf . /
COPY --from=automake . /
COPY --from=libtool . /
#LDFLAGS="-lucontext" CFLAGS="-fno-stack-protector" \
RUN set -eux; \
./configure \
--build=x86_64-unknown-linux-musl \
@ -33,9 +33,9 @@ RUN set -eux; \
--localstatedir=/usr/share/man \
--enable-cxx-exceptions \
--disable-tests \
--infodir=/usr/share/info; \
--infodir=/usr/share/info || cat config.log; \
make;
RUN make DESTDIR=/home/user/rootfs install
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /

View File

@ -1,14 +1,15 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
FROM imgrep/autoconf:latest as autoconf
FROM imgrep/automake:latest as automake
FROM imgrep/libtool:latest as libtool
FROM imgrep/pkgconf:latest as pkgconf
FROM imgrep/python:latest as python
FROM imgrep/m4:latest as m4
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM ${REGISTRY}/autoconf:latest as autoconf
FROM ${REGISTRY}/automake:latest as automake
FROM ${REGISTRY}/libtool:latest as libtool
FROM ${REGISTRY}/pkgconf:latest as pkgconf
FROM ${REGISTRY}/python:latest as python
FROM ${REGISTRY}/m4:latest as m4
FROM busybox as build
ENV SRC_SITE=https://gitlab.gnome.org/GNOME/libxml2/-/archive
@ -43,5 +44,5 @@ RUN set -eux; \
RUN make DESTDIR=/home/user/rootfs install
RUN ls -Rlah /home/user/rootfs
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /

View File

@ -1,5 +1,6 @@
FROM imgrep/musl:latest as musl
FROM imgrep/bootstrap:latest as build
ARG REGISTRY=local
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/bootstrap:latest as build
ENV SRC_SITE https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/
ENV SRC_VERSION 6.6
@ -16,5 +17,5 @@ RUN set -ex; \
find /rootfs/usr/include/ ! -iname "*.h" -type f -exec rm -v {} \+; \
rm -rf /rootfs/usr/include/drm;
FROM scratch
FROM scratch as package
COPY --from=build /rootfs /

View File

@ -1,22 +1,24 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/openssl:latest as openssl
FROM imgrep/python:latest as python
FROM imgrep/py-setuptools:latest as py-setuptools
FROM imgrep/cmake:latest as cmake
FROM imgrep/ninja:latest as ninja
ARG REGISTRY=local
FROM ${REGISTRY}/busybox as busybox
FROM ${REGISTRY}/gcc as gcc
FROM ${REGISTRY}/binutils as binutils
FROM ${REGISTRY}/musl as musl
FROM ${REGISTRY}/openssl as openssl
FROM ${REGISTRY}/python as python
FROM ${REGISTRY}/py-setuptools as py-setuptools
FROM ${REGISTRY}/cmake as cmake
FROM ${REGISTRY}/ninja as ninja
FROM busybox as build
ARG VERSION=16.0.6
ENV SRC_VERSION=${VERSION}
ENV SRC_SITE=https://github.com/llvm/llvm-project/releases/download
ENV SRC_VERSION=16.0.6
ENV SRC_HASH=ce5e71081d17ce9e86d7cbcfa28c4b04b9300f8fb7e78422b1feb6bc52c3028e
ENV SRC_HASH_13_0_1=326335a830f2e32d06d0a36393b5455d17dc73e0bd1211065227ee014f92cbf8
ENV SRC_HASH_16_0_6=ce5e71081d17ce9e86d7cbcfa28c4b04b9300f8fb7e78422b1feb6bc52c3028e
RUN wget ${SRC_SITE}/llvmorg-${SRC_VERSION}/llvm-project-${SRC_VERSION}.src.tar.xz
RUN echo "${SRC_HASH} llvm-project-${SRC_VERSION}.src.tar.xz" | sha256sum -c
RUN echo "$(printenv SRC_HASH_${VERSION//./_}) llvm-project-${SRC_VERSION}.src.tar.xz" | sha256sum -c
RUN tar -xf llvm-project-${SRC_VERSION}.src.tar.xz
WORKDIR llvm-project-${SRC_VERSION}.src
RUN ls -lah .
ADD . .
RUN patch -p1 < rust-feature-tables.patch
COPY --from=binutils . /
@ -48,7 +50,7 @@ RUN set -eux; \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_DUMP=ON \
-DLLVM_ENABLE_EH=ON \
-DLLVM_ENABLE_FFI=ON \
-DLLVM_ENABLE_FFI=OFF \
-DLLVM_ENABLE_LIBCXX=OFF \
-DLLVM_ENABLE_LIBEDIT=OFF \
-DLLVM_ENABLE_PIC=ON \
@ -74,7 +76,7 @@ COPY --from=musl /lib/* /home/user/rootfs/lib/
COPY --from=gcc /usr/lib/* /home/user/rootfs/usr/lib/
COPY --from=gcc /usr/lib64/* /home/user/rootfs/usr/lib/
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
USER 100:100
ENTRYPOINT ["/usr/bin/llc"]

View File

@ -1,81 +0,0 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/openssl:latest as openssl
FROM imgrep/python:latest as python
FROM imgrep/py-setuptools:latest as py-setuptools
FROM imgrep/cmake:latest as cmake
FROM imgrep/ninja:latest as ninja
FROM busybox as build
ENV SRC_SITE=https://github.com/llvm/llvm-project/releases/download
ENV SRC_VERSION=13.0.1
ENV SRC_HASH=326335a830f2e32d06d0a36393b5455d17dc73e0bd1211065227ee014f92cbf8
RUN wget ${SRC_SITE}/llvmorg-${SRC_VERSION}/llvm-project-${SRC_VERSION}.src.tar.xz
RUN echo "${SRC_HASH} llvm-project-${SRC_VERSION}.src.tar.xz" | sha256sum -c
RUN tar -xf llvm-project-${SRC_VERSION}.src.tar.xz
WORKDIR llvm-project-${SRC_VERSION}.src
RUN ls -lah .
ADD . .
RUN patch -p1 < rust-feature-tables.patch
COPY --from=binutils . /
COPY --from=cmake . /
COPY --from=ninja . /
COPY --from=musl . /
COPY --from=gcc . /
COPY --from=python . /
COPY --from=py-setuptools . /
RUN set -eux; \
python -c "import setuptools; print(setuptools.__version__)"; \
cmake \
-B build \
-G Ninja \
-Wno-dev -S llvm \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/ \
-DCMAKE_INSTALL_RPATH=/usr/ \
-DLLVM_DEFAULT_TARGET_TRIPLE="x86_64-linux-musl" \
-DLLVM_HOST_TRIPLE="x86_64-linux-musl" \
-DLLVM_APPEND_VC_REV=OFF \
-DLLVM_BINUTILS_INCDIR=/usr/include \
-DLLVM_BUILD_DOCS=OFF \
-DLLVM_BUILD_EXAMPLES=OFF \
-DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_BUILD_TESTS=ON \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_DUMP=ON \
-DLLVM_ENABLE_EH=ON \
-DLLVM_ENABLE_FFI=OFF \
-DLLVM_ENABLE_LIBCXX=OFF \
-DLLVM_ENABLE_LIBEDIT=OFF \
-DLLVM_ENABLE_PIC=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_SPHINX=OFF \
-DLLVM_ENABLE_TERMINFO=ON \
-DLLVM_ENABLE_ZLIB=OFF \
-DLLVM_ENABLE_ZSTD=OFF \
-DLLVM_INCLUDE_BENCHMARKS=OFF \
-DLLVM_INCLUDE_EXAMPLES=OFF \
-DLLVM_INSTALL_UTILS=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_USE_PERF=ON; \
cmake --build build; \
python3 llvm/utils/lit/setup.py build
RUN set -eux; \
export DESTDIR="/home/user/rootfs/"; \
cmake --install build; \
python3 llvm/utils/lit/setup.py install --root="$DESTDIR"
COPY --from=musl /lib/* /home/user/rootfs/lib/
COPY --from=gcc /usr/lib/* /home/user/rootfs/usr/lib/
COPY --from=gcc /usr/lib64/* /home/user/rootfs/usr/lib/
FROM scratch
COPY --from=build /home/user/rootfs /
USER 100:100
ENTRYPOINT ["/usr/bin/llc"]
CMD ["--version"]

View File

@ -1,305 +0,0 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<title>rust-feature-tables.patch « llvm16 « main - aports - Alpine packages build scripts
</title>
<meta name='generator' content='cgit v1.2.3'/>
<meta name='robots' content='index, nofollow'/>
<link rel='stylesheet' type='text/css' href='/cgit.css'/>
<script type='text/javascript' src='/cgit.js'></script>
<link rel='shortcut icon' href='//alpinelinux.org/alpine-logo.ico'/>
<link rel='alternate' title='Atom feed' href='http://git.alpinelinux.org/aports/atom/main/llvm16/rust-feature-tables.patch?h=master' type='application/atom+xml'/>
<link rel='vcs-git' href='https://git.alpinelinux.org/aports' title='aports Git repository'/>
</head>
<body>
<div id='cgit'><table id='header'>
<tr>
<td class='logo' rowspan='2'><a href='/'><img src='//wiki.alpinelinux.org/images/alogo.svg' alt='cgit logo'/></a></td>
<td class='main'><a href='/'>index</a> : <a href='/aports/'>aports</a></td><td class='form'><form method='get'>
<select name='h' onchange='this.form.submit();'>
<option value='1.10-stable'>1.10-stable</option>
<option value='1.9'>1.9</option>
<option value='15308-community-pgbouncer-init-script-issues'>15308-community-pgbouncer-init-script-issues</option>
<option value='2.0-stable'>2.0-stable</option>
<option value='2.1-stable'>2.1-stable</option>
<option value='2.2-stable'>2.2-stable</option>
<option value='2.3-stable'>2.3-stable</option>
<option value='2.4-stable'>2.4-stable</option>
<option value='2.5-stable'>2.5-stable</option>
<option value='2.6-stable'>2.6-stable</option>
<option value='2.7-stable'>2.7-stable</option>
<option value='3.0-stable'>3.0-stable</option>
<option value='3.1-stable'>3.1-stable</option>
<option value='3.10-stable'>3.10-stable</option>
<option value='3.11-stable'>3.11-stable</option>
<option value='3.12-stable'>3.12-stable</option>
<option value='3.13-stable'>3.13-stable</option>
<option value='3.14-stable'>3.14-stable</option>
<option value='3.15-stable'>3.15-stable</option>
<option value='3.16-stable'>3.16-stable</option>
<option value='3.17-stable'>3.17-stable</option>
<option value='3.18-stable'>3.18-stable</option>
<option value='3.2-stable'>3.2-stable</option>
<option value='3.3-stable'>3.3-stable</option>
<option value='3.4-stable'>3.4-stable</option>
<option value='3.5-stable'>3.5-stable</option>
<option value='3.6-stable'>3.6-stable</option>
<option value='3.7-stable'>3.7-stable</option>
<option value='3.8-stable'>3.8-stable</option>
<option value='3.9-stable'>3.9-stable</option>
<option value='aports-testing-ttl'>aports-testing-ttl</option>
<option value='master' selected='selected'>master</option>
<option value='patches/3538'>patches/3538</option>
<option value='patches/3539'>patches/3539</option>
<option value='patches/3808'>patches/3808</option>
<option value='patches/3888'>patches/3888</option>
<option value='patches/3913'>patches/3913</option>
<option value='patches/3977'>patches/3977</option>
<option value='patches/3998'>patches/3998</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Alpine packages build scripts
</td><td class='sub right'>uwsgi</td></tr></table>
<table class='tabs'><tr><td>
<a href='/aports/about/'>about</a><a href='/aports/'>summary</a><a href='/aports/refs/'>refs</a><a href='/aports/log/main/llvm16/rust-feature-tables.patch'>log</a><a class='active' href='/aports/tree/main/llvm16/rust-feature-tables.patch'>tree</a><a href='/aports/commit/main/llvm16/rust-feature-tables.patch'>commit</a><a href='/aports/diff/main/llvm16/rust-feature-tables.patch'>diff</a><a href='/aports/stats/main/llvm16/rust-feature-tables.patch'>stats</a></td><td class='form'><form class='right' method='get' action='/aports/log/main/llvm16/rust-feature-tables.patch'>
<select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/aports/tree/'>root</a>/<a href='/aports/tree/main'>main</a>/<a href='/aports/tree/main/llvm16'>llvm16</a>/<a href='/aports/tree/main/llvm16/rust-feature-tables.patch'>rust-feature-tables.patch</a></div><div class='content'>blob: 2068d51f2b9aae67132d65eb83489b22c9d227c4 (<a href='/aports/plain/main/llvm16/rust-feature-tables.patch'>plain</a>)
<table summary='blob content' class='blob'>
<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
<a id='n2' href='#n2'>2</a>
<a id='n3' href='#n3'>3</a>
<a id='n4' href='#n4'>4</a>
<a id='n5' href='#n5'>5</a>
<a id='n6' href='#n6'>6</a>
<a id='n7' href='#n7'>7</a>
<a id='n8' href='#n8'>8</a>
<a id='n9' href='#n9'>9</a>
<a id='n10' href='#n10'>10</a>
<a id='n11' href='#n11'>11</a>
<a id='n12' href='#n12'>12</a>
<a id='n13' href='#n13'>13</a>
<a id='n14' href='#n14'>14</a>
<a id='n15' href='#n15'>15</a>
<a id='n16' href='#n16'>16</a>
<a id='n17' href='#n17'>17</a>
<a id='n18' href='#n18'>18</a>
<a id='n19' href='#n19'>19</a>
<a id='n20' href='#n20'>20</a>
<a id='n21' href='#n21'>21</a>
<a id='n22' href='#n22'>22</a>
<a id='n23' href='#n23'>23</a>
<a id='n24' href='#n24'>24</a>
<a id='n25' href='#n25'>25</a>
<a id='n26' href='#n26'>26</a>
<a id='n27' href='#n27'>27</a>
<a id='n28' href='#n28'>28</a>
<a id='n29' href='#n29'>29</a>
<a id='n30' href='#n30'>30</a>
<a id='n31' href='#n31'>31</a>
</pre></td>
<td class='lines'><pre><code><style>
@media only all and (prefers-color-scheme: dark) {
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #49483e }
.highlight .c { color: #75715e } /* Comment */
.highlight .err { color: #960050; background-color: #1e0010 } /* Error */
.highlight .esc { color: #f8f8f2 } /* Escape */
.highlight .g { color: #f8f8f2 } /* Generic */
.highlight .k { color: #66d9ef } /* Keyword */
.highlight .l { color: #ae81ff } /* Literal */
.highlight .n { color: #f8f8f2 } /* Name */
.highlight .o { color: #f92672 } /* Operator */
.highlight .x { color: #f8f8f2 } /* Other */
.highlight .p { color: #f8f8f2 } /* Punctuation */
.highlight .ch { color: #75715e } /* Comment.Hashbang */
.highlight .cm { color: #75715e } /* Comment.Multiline */
.highlight .cp { color: #75715e } /* Comment.Preproc */
.highlight .cpf { color: #75715e } /* Comment.PreprocFile */
.highlight .c1 { color: #75715e } /* Comment.Single */
.highlight .cs { color: #75715e } /* Comment.Special */
.highlight .gd { color: #f92672 } /* Generic.Deleted */
.highlight .ge { color: #f8f8f2; font-style: italic } /* Generic.Emph */
.highlight .gr { color: #f8f8f2 } /* Generic.Error */
.highlight .gh { color: #f8f8f2 } /* Generic.Heading */
.highlight .gi { color: #a6e22e } /* Generic.Inserted */
.highlight .go { color: #66d9ef } /* Generic.Output */
.highlight .gp { color: #f92672; font-weight: bold } /* Generic.Prompt */
.highlight .gs { color: #f8f8f2; font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #75715e } /* Generic.Subheading */
.highlight .gt { color: #f8f8f2 } /* Generic.Traceback */
.highlight .kc { color: #66d9ef } /* Keyword.Constant */
.highlight .kd { color: #66d9ef } /* Keyword.Declaration */
.highlight .kn { color: #f92672 } /* Keyword.Namespace */
.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */
.highlight .kr { color: #66d9ef } /* Keyword.Reserved */
.highlight .kt { color: #66d9ef } /* Keyword.Type */
.highlight .ld { color: #e6db74 } /* Literal.Date */
.highlight .m { color: #ae81ff } /* Literal.Number */
.highlight .s { color: #e6db74 } /* Literal.String */
.highlight .na { color: #a6e22e } /* Name.Attribute */
.highlight .nb { color: #f8f8f2 } /* Name.Builtin */
.highlight .nc { color: #a6e22e } /* Name.Class */
.highlight .no { color: #66d9ef } /* Name.Constant */
.highlight .nd { color: #a6e22e } /* Name.Decorator */
.highlight .ni { color: #f8f8f2 } /* Name.Entity */
.highlight .ne { color: #a6e22e } /* Name.Exception */
.highlight .nf { color: #a6e22e } /* Name.Function */
.highlight .nl { color: #f8f8f2 } /* Name.Label */
.highlight .nn { color: #f8f8f2 } /* Name.Namespace */
.highlight .nx { color: #a6e22e } /* Name.Other */
.highlight .py { color: #f8f8f2 } /* Name.Property */
.highlight .nt { color: #f92672 } /* Name.Tag */
.highlight .nv { color: #f8f8f2 } /* Name.Variable */
.highlight .ow { color: #f92672 } /* Operator.Word */
.highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */
.highlight .w { color: #f8f8f2 } /* Text.Whitespace */
.highlight .mb { color: #ae81ff } /* Literal.Number.Bin */
.highlight .mf { color: #ae81ff } /* Literal.Number.Float */
.highlight .mh { color: #ae81ff } /* Literal.Number.Hex */
.highlight .mi { color: #ae81ff } /* Literal.Number.Integer */
.highlight .mo { color: #ae81ff } /* Literal.Number.Oct */
.highlight .sa { color: #e6db74 } /* Literal.String.Affix */
.highlight .sb { color: #e6db74 } /* Literal.String.Backtick */
.highlight .sc { color: #e6db74 } /* Literal.String.Char */
.highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */
.highlight .sd { color: #e6db74 } /* Literal.String.Doc */
.highlight .s2 { color: #e6db74 } /* Literal.String.Double */
.highlight .se { color: #ae81ff } /* Literal.String.Escape */
.highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */
.highlight .si { color: #e6db74 } /* Literal.String.Interpol */
.highlight .sx { color: #e6db74 } /* Literal.String.Other */
.highlight .sr { color: #e6db74 } /* Literal.String.Regex */
.highlight .s1 { color: #e6db74 } /* Literal.String.Single */
.highlight .ss { color: #e6db74 } /* Literal.String.Symbol */
.highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #a6e22e } /* Name.Function.Magic */
.highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */
.highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */
.highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */
.highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */
.highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */
}
@media (prefers-color-scheme: light) {
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
}
</style><div class="highlight"><pre><span></span>Patch-Source: https://github.com/rust-lang/llvm-project/commit/0a157fd7a5f61973ffddf96b3d445a718193eb1a
From 0a157fd7a5f61973ffddf96b3d445a718193eb1a Mon Sep 17 00:00:00 2001
From: Cameron Hart &lt;cameron.hart@gmail.com&gt;
Date: Sun, 10 Jul 2016 23:55:53 +1000
Subject: [PATCH] [rust] Add accessors for MCSubtargetInfo CPU and Feature
<span class="w"> </span>tables
This is needed for `-C target-cpu=help` and `-C target-feature=help` in rustc
<span class="gs">---</span>
<span class="w"> </span>llvm/include/llvm/MC/MCSubtargetInfo.h | 8 ++++++++
<span class="w"> </span>1 file changed, 8 insertions(+)
<span class="gh">diff --git a/llvm/include/llvm/MC/MCSubtargetInfo.h b/llvm/include/llvm/MC/MCSubtargetInfo.h</span>
<span class="gh">index e1f0a86141e36..1e529bf4fb31e 100644</span>
<span class="gd">--- a/llvm/include/llvm/MC/MCSubtargetInfo.h</span>
<span class="gi">+++ b/llvm/include/llvm/MC/MCSubtargetInfo.h</span>
<span class="gu">@@ -230,6 +230,14 @@ class MCSubtargetInfo {</span>
<span class="w"> </span> return Found != ProcDesc.end() &amp;&amp; StringRef(Found-&gt;Key) == CPU;
<span class="w"> </span> }
<span class="w"> </span>
<span class="gi">+ ArrayRef&lt;SubtargetSubTypeKV&gt; getCPUTable() const {</span>
<span class="gi">+ return ProcDesc;</span>
<span class="gi">+ }</span>
<span class="gi">+</span>
<span class="gi">+ ArrayRef&lt;SubtargetFeatureKV&gt; getFeatureTable() const {</span>
<span class="gi">+ return ProcFeatures;</span>
<span class="gi">+ }</span>
<span class="gi">+</span>
<span class="w"> </span> virtual unsigned getHwMode() const { return 0; }
<span class="w"> </span>
<span class="w"> </span> /// Return the cache size in bytes for the given level of cache.
</pre></div>
</code></pre></td></tr></table>
</div> <!-- class=content -->
<div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.3</a> (<a href='https://git-scm.com/'>git 2.41.0</a>) at 2023-11-20 09:07:59 +0000</div>
</div> <!-- id=cgit -->
</body>
</html>

View File

@ -1,8 +1,9 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM busybox as build
COPY --from=gcc . /
@ -24,7 +25,7 @@ RUN set -eux; \
RUN make DESTDIR=/home/user/rootfs install
COPY --from=musl /usr/lib/libc.so /home/user/rootfs/lib/ld-musl-x86_64.so.1
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
ENTRYPOINT ["/usr/bin/m4"]
CMD ["--version"]

View File

@ -1,5 +1,6 @@
FROM imgrep/musl:latest as musl
FROM imgrep/bootstrap:latest as build
ARG REGISTRY=local
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/bootstrap:latest as build
ENV SRC_SITE https://ftp.gnu.org/gnu/make
ENV SRC_VERSION 4.4
@ -22,7 +23,7 @@ RUN set -ex; \
make DESTDIR="/rootfs" install;
COPY --from=musl /usr/lib/libc.so /rootfs/lib/ld-musl-x86_64.so.1
FROM scratch
FROM scratch as package
COPY --from=build /rootfs /
ENTRYPOINT ["/usr/bin/make"]
CMD ["--version"]

View File

@ -1,4 +1,5 @@
FROM imgrep/bootstrap:latest as build
ARG REGISTRY=local
FROM ${REGISTRY}/bootstrap:latest as build
ENV SRC_SITE http://musl.libc.org
ENV SRC_VERSION 1.2.4
@ -30,12 +31,12 @@ RUN set -eux; \
RUN set -eux; \
make DESTDIR=/home/user/rootfs install; \
mkdir -p /home/user/rootfs/usr/bin; \
printf "%s\n%s\n" '#!/bin/sh' 'exec /lib/ld-musl-x86_64.so.1 --list "\$@"' \
printf "%s\n%s\n" '#!/bin/sh' 'exec /lib/ld-musl-x86_64.so.1 --list "$@"' \
> /home/user/rootfs/usr/bin/ldd; \
chmod 755 /home/user/rootfs/usr/bin/ldd; \
mv -f /home/user/rootfs/usr/lib/libc.so /home/user/rootfs/lib/ld-musl-x86_64.so.1; \
ln -sf ld-musl-x86_64.so.1 /home/user/rootfs/lib/libc.musl-x86_64.so.1; \
ln -sf ../../lib/ld-musl-x86_64.so.1 /home/user/rootfs/usr/lib/libc.so;
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /

View File

@ -1,10 +1,11 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
FROM imgrep/openssl:latest as openssl
FROM imgrep/python:latest as python
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM ${REGISTRY}/openssl:latest as openssl
FROM ${REGISTRY}/python:latest as python
FROM busybox as build
ENV SRC_SITE=https://github.com/martine/ninja/archive/
@ -34,7 +35,7 @@ RUN set -eux; \
COPY --from=gcc /usr/lib64/* /home/user/rootfs/usr/lib/
COPY --from=musl . /home/user/rootfs/
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
USER 100:100
ENTRYPOINT ["/usr/bin/ninja"]

View File

@ -1,10 +1,11 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
FROM imgrep/perl:latest as perl
FROM imgrep/linux-headers:latest as linux-headers
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM ${REGISTRY}/perl:latest as perl
FROM ${REGISTRY}/linux-headers:latest as linux-headers
FROM busybox as build
COPY --from=gcc . /
@ -43,7 +44,7 @@ RUN set -eux; \
make; \
make DESTDIR=/home/user/rootfs install
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
USER 100:100
ENTRYPOINT ["/usr/bin/openssl"]

View File

@ -1,8 +1,9 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM busybox as build
ENV SRC_SITE=https://www.cpan.org/src/5.0
@ -48,7 +49,7 @@ RUN set -eux; \
make DESTDIR=/home/user/rootfs install
COPY --from=musl /usr/lib/libc.so /home/user/rootfs/lib/ld-musl-x86_64.so.1
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
USER 100:100
ENTRYPOINT ["/usr/bin/perl"]

View File

@ -1,8 +1,9 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM busybox as build
ENV SRC_SITE=https://distfiles.ariadne.space/pkgconf/
@ -24,7 +25,7 @@ RUN make DESTDIR=/home/user/rootfs install
RUN ln -s pkgconf /home/user/rootfs/usr/bin/pkg-config
COPY --from=musl /usr/lib/libc.so /home/user/rootfs/lib/ld-musl-x86_64.so.1
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
ENTRYPOINT ["/usr/bin/pkgconf"]
CMD ["--version"]

View File

@ -1,5 +1,6 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/python:latest as python
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/python:latest as python
FROM busybox as build
ENV SRC_SITE=https://pypi.io/packages/source/s/setuptools
@ -15,5 +16,5 @@ RUN set -eux; \
python3 setup.py install --root=/home/user/rootfs; \
ls -Rlah /home/user/rootfs
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /

View File

@ -1,9 +1,10 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
FROM imgrep/openssl:latest as openssl
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM ${REGISTRY}/openssl:latest as openssl
FROM busybox as build
ENV SRC_SITE=https://www.python.org/ftp/python
@ -34,7 +35,7 @@ RUN set -eux; \
RUN ln -s /usr/bin/python3 /home/user/rootfs/usr/bin/python
COPY --from=musl . /home/user/rootfs/
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
USER 100:100
ENTRYPOINT ["/usr/bin/python"]

View File

@ -1,9 +1,10 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
FROM imgrep/bash:latest as bash
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM ${REGISTRY}/bash:latest as bash
FROM busybox as build
ENV SRC_SITE=https://ftp.gnu.org/gnu/sed
@ -24,7 +25,7 @@ RUN set -eux; \
RUN make DESTDIR=/home/user/rootfs install
COPY --from=musl /usr/lib/libc.so /home/user/rootfs/lib/ld-musl-x86_64.so.1
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /
ENTRYPOINT ["/bin/sed"]
CMD ["--version"]

View File

@ -1,16 +0,0 @@
FROM ocirep/busybox as build
COPY --from=ocirep/gcc . /
COPY --from=ocirep/musl . /
COPY --from=ocirep/binutils . /
COPY . .
RUN set -eux; \
gcc main.c -static -o main; \
mkdir -p $HOME/rootfs/etc; \
echo "nogroup:*:100:nobody" > ~/rootfs/etc/group; \
echo "nobody:*:100:100:::" > ~/rootfs/etc/passwd; \
cp main $HOME/rootfs/
FROM scratch
COPY --from=build --chown=100:100 /home/user/rootfs /
USER 100:100
ENTRYPOINT ["/main"]

View File

@ -1,8 +1,9 @@
FROM imgrep/busybox:latest as busybox
FROM imgrep/gcc:latest as gcc
FROM imgrep/binutils:latest as binutils
FROM imgrep/musl:latest as musl
FROM imgrep/make:latest as make
ARG REGISTRY=local
FROM ${REGISTRY}/busybox:latest as busybox
FROM ${REGISTRY}/gcc:latest as gcc
FROM ${REGISTRY}/binutils:latest as binutils
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/make:latest as make
FROM busybox as build
COPY --from=gcc . /
@ -24,5 +25,5 @@ RUN set -eux; \
make;
RUN make DESTDIR=/home/user/rootfs install
FROM scratch
FROM scratch as package
COPY --from=build /home/user/rootfs /