Compare commits
4 Commits
05c55cc4ab
...
904712b861
Author | SHA1 | Date |
---|---|---|
Lance Vick | 904712b861 | |
Lance Vick | 3bff51f279 | |
Lance Vick | b2942e9443 | |
Lance Vick | a52bf8d669 |
|
@ -0,0 +1,2 @@
|
|||
build.log
|
||||
*.tgz
|
509
Makefile
509
Makefile
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
FROM scratch
|
||||
FROM scratch as package
|
||||
COPY cacert.pem /etc/ssl/certs/ca-certificates.crt
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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 /
|
||||
|
|
|
@ -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 /
|
||||
|
|
|
@ -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 /
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
|
@ -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 <cameron.hart@gmail.com>
|
||||
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() && StringRef(Found->Key) == CPU;
|
||||
<span class="w"> </span> }
|
||||
<span class="w"> </span>
|
||||
<span class="gi">+ ArrayRef<SubtargetSubTypeKV> getCPUTable() const {</span>
|
||||
<span class="gi">+ return ProcDesc;</span>
|
||||
<span class="gi">+ }</span>
|
||||
<span class="gi">+</span>
|
||||
<span class="gi">+ ArrayRef<SubtargetFeatureKV> 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>
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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 /
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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 /
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
|
@ -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 /
|
||||
|
|
Reference in New Issue