WIP kernel and deps

This commit is contained in:
Lance Vick 2024-02-02 13:38:33 -08:00
parent 92e0854916
commit 770a36cef6
Signed by: lrvick
GPG Key ID: 8E47A1EC35A1551D
8 changed files with 253 additions and 0 deletions

View File

@ -18,6 +18,7 @@ clean_logs := $(shell rm *.log 2>&1 >/dev/null || :)
include src/macros.mk
include src/bootstrap/build.mk
include src/core/build.mk
include src/kernel/build.mk
include src/libs/build.mk
include src/tools/build.mk

40
src/core/bison/Dockerfile Normal file
View File

@ -0,0 +1,40 @@
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}/busybox:latest as busybox
FROM busybox as base
ENV SRC_SITE https://ftp.gnu.org/gnu/bison
ENV SRC_VERSION 3.8.2
ENV SRC_HASH 06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb
ENV SRC_FILE bison-${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 -xf ${SRC_FILE}
WORKDIR bison-${SRC_VERSION}
COPY --from=gcc . /
COPY --from=binutils . /
COPY --from=make . /
COPY --from=musl . /
ENV M4=/usr/bin/m4
RUN set -eux; \
./configure \
--prefix=/usr; \
make
from build as install
USER 0:0
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM scratch as package
COPY --from=install /rootfs /
ENTRYPOINT ["/usr/bin/bison"]
CMD ["--version"]

View File

@ -272,3 +272,40 @@ out/rust1.73.tgz: out/rust1.72.tgz
out/rust.tgz: out/rust1.73.tgz
$(call build,core,rust,1.74.0,package,--build-arg BUILD_VERSION=1.73.0 --build-arg LLVM_VERSION=16)
out/bison.tgz: \
out/busybox.tgz \
out/gcc.tgz \
out/binutils.tgz \
out/musl.tgz \
out/make.tgz
$(call build,core,bison)
out/gettext.tgz: \
out/busybox.tgz \
out/gcc.tgz \
out/binutils.tgz \
out/musl.tgz \
out/make.tgz
$(call build,core,gettext)
out/heirloom.tgz: \
out/busybox.tgz \
out/gcc.tgz \
out/binutils.tgz \
out/musl.tgz \
out/make.tgz
$(call build,core,heirloom)
out/flex.tgz: \
out/heirloom.tgz \
out/busybox.tgz \
out/gcc.tgz \
out/autoconf.tgz \
out/libtool.tgz \
out/binutils.tgz \
out/gettext.tgz \
out/bison.tgz \
out/musl.tgz \
out/make.tgz
$(call build,core,flex)

60
src/core/flex/Dockerfile Normal file
View File

@ -0,0 +1,60 @@
ARG REGISTRY=local
from ${REGISTRY}/binutils as binutils
from ${REGISTRY}/m4 as m4
from ${REGISTRY}/lex as lex
from ${REGISTRY}/gcc as gcc
from ${REGISTRY}/musl as musl
from ${REGISTRY}/make as make
from ${REGISTRY}/libtool as libtool
from ${REGISTRY}/autoconf as autoconf
from ${REGISTRY}/automake as automake
from ${REGISTRY}/gettext as gettext
from ${REGISTRY}/bison as bison
from ${REGISTRY}/busybox as busybox
FROM busybox as base
ENV SRC_VERSION=2.5.11
ENV SRC_SITE=http://download.nust.na/pub2/openpkg1/sources/DST/flex/flex-2.5.11.tar.gz
ENV SRC_HASH=bc79b890f35ca38d66ff89a6e3758226131e51ccbd10ef78d5ff150b7bd73689
ENV SRC_FILE=flex-${SRC_VERSION}.tar.gz
FROM base as fetch
RUN set -eux; \
wget ${SRC_SITE}; \
echo "${SRC_HASH} ${SRC_FILE}" | sha256sum -c
FROM fetch as build
RUN tar -xzf ${SRC_FILE}
WORKDIR flex-${VERSION}
COPY --from=gcc . /
COPY --from=binutils . /
COPY --from=make . /
COPY --from=m4 . /
COPY --from=libtool . /
COPY --from=autoconf . /
COPY --from=automake . /
COPY --from=bison . /
COPY --from=gettext . /
COPY --from=musl . /
RUN set -eux; \
./autogen.sh; \
./configure \
--build=x86_64-unknown-linux-musl \
--host=x86_64-unknown-linux-musl \
--prefix=/usr \
--bindir=/bin \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--disable-shared \
--disable-static; \
make
FROM build as install
USER 0:0
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM scratch as package
COPY --from=install /rootfs /
ENTRYPOINT ["/bin/flex"]
CMD ["--version"]

View File

@ -0,0 +1,40 @@
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}/busybox:latest as busybox
FROM busybox as base
ENV SRC_SITE https://ftp.gnu.org/gnu/gettext
ENV SRC_VERSION 0.22.4
ENV SRC_HASH c1e0bb2a4427a9024390c662cd532d664c4b36b8ff444ed5e54b115fdb7a1aea
ENV SRC_FILE gettext-${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 -xf ${SRC_FILE}
WORKDIR gettext-${SRC_VERSION}
COPY --from=gcc . /
COPY --from=binutils . /
COPY --from=make . /
COPY --from=musl . /
ENV M4=/usr/bin/m4
RUN set -eux; \
./configure \
--prefix=/usr; \
make
from build as install
USER 0:0
RUN make DESTDIR=/rootfs install
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM scratch as package
COPY --from=install /rootfs /
ENTRYPOINT ["/usr/bin/gettext"]
CMD ["--version"]

View File

@ -0,0 +1,40 @@
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}/busybox:latest as busybox
FROM busybox as base
COPY --from=gcc . /
COPY --from=binutils . /
COPY --from=make . /
COPY --from=musl . /
ENV SRC_VERSION 070527
ENV SRC_FILE heirloom-devtools-${SRC_VERSION}.tar.bz2
ENV SRC_SITE=http://downloads.sourceforge.net/project/heirloom/heirloom-devtools/${SRC_VERSION}/${SRC_FILE}
ENV SRC_HASH=9f233d8b78e4351fe9dd2d50d83958a0e5af36f54e9818521458a08e058691ba
FROM base as fetch
RUN wget ${SRC_SITE}
RUN echo "${SRC_HASH} ${SRC_FILE}" | sha256sum -c
FROM fetch as build
RUN tar -xjf ${SRC_FILE}
WORKDIR heirloom-devtools-${SRC_VERSION}
RUN set -eux; \
make yacc/Makefile lex/Makefile; \
make -C yacc LDFLAGS=-static; \
make -C lex LDFLAGS=-static
FROM build as install
USER 0:0
RUN set -eux; \
mkdir -p /rootfs/usr/bin; \
install lex/lex /rootfs/usr/bin
RUN find /rootfs -exec touch -hcd "@0" "{}" +
FROM scratch as package
COPY --from=install /rootfs /
ENTRYPOINT ["/usr/bin/lex"]
CMD ["-V"]

6
src/kernel/build.mk Normal file
View File

@ -0,0 +1,6 @@
.PHONY: nitro
nitro: \
out/linux-nitro.tgz
out/linux-nitro.tgz: out/linux-nitro.tgz
$(call build,kernel,linux-nitro)

View File

@ -0,0 +1,29 @@
ARG REGISTRY=local
FROM ${REGISTRY}/musl:latest as musl
FROM ${REGISTRY}/stage3:latest as stage3
FROM stage3 as base
WORKDIR ${HOME}
ENV SRC_SITE https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/
ENV SRC_VERSION 6.6
ENV SRC_HASH d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0
FROM base as fetch
RUN wget ${SRC_SITE}/linux-${SRC_VERSION}.tar.xz
RUN echo "${SRC_HASH} linux-${SRC_VERSION}.tar.xz" | sha256sum -c
FROM fetch as build
RUN tar -xf linux-${SRC_VERSION}.tar.xz
WORKDIR linux-${SRC_VERSION}
RUN make oldconfig default
FROM build as package
#FROM build as install
#USER 0:0
#RUN set -eux; \
# mkdir -p /rootfs/usr; \
# find /rootfs -exec touch -hcd "@0" "{}" +
#
#FROM scratch as package
#COPY --from=install /rootfs /