diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index 54827c0a743..bbdf1760777 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -55,6 +55,22 @@ jobs: empty-workspace: false source-dir: ${{ github.workspace }}/glibc + - uses: chainguard-dev/actions/inky-build-pkg@main + with: + package-name: binutils + + - uses: chainguard-dev/actions/inky-build-pkg@main + with: + package-name: flex + + - uses: chainguard-dev/actions/inky-build-pkg@main + with: + package-name: bison + + - uses: chainguard-dev/actions/inky-build-pkg@main + with: + package-name: texinfo + - uses: chainguard-dev/actions/inky-build-pkg@main with: package-name: build-base diff --git a/Makefile b/Makefile index 6e1e06374c2..29cc4385ab4 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,11 @@ REPO ?= $(shell pwd)/packages GLIBC_VERSION ?= 2.36-r0 BUILD_BASE_VERSION ?= 1-r3 OPENSSL_VERSION ?= 3.0.5-r3 +BINUTILS_VERSION ?= 2.39-r1 +FLEX_VERSION ?= 2.6.4-r0 +BISON_VERSION ?= 3.8.2-r1 +TEXINFO_VERSION ?= 6.8-r0 + MELANGE_OPTS ?= \ --repository-append ${REPO} \ @@ -21,6 +26,10 @@ PACKAGES = \ packages/${ARCH}/glibc-${GLIBC_VERSION}.apk \ packages/${ARCH}/build-base-${BUILD_BASE_VERSION}.apk \ packages/${ARCH}/openssl-${OPENSSL_VERSION}.apk + packages/${ARCH}/binutils-${BINUTILS_VERSION}.apk \ + packages/${ARCH}/flex-${FLEX_VERSION}.apk \ + packages/${ARCH}/bison-${BISON_VERSION}.apk \ + packages/${ARCH}/texinfo-${TEXINFO_VERSION}.apk \ all: ${KEY} ${PACKAGES} @@ -38,6 +47,26 @@ packages/${ARCH}/openssl-${OPENSSL_VERSION}.apk: ${MELANGE} build openssl.yaml ${MELANGE_OPTS} ${MELANGE_DEFOPTS} apk index -o packages/${ARCH}/APKINDEX.tar.gz packages/${ARCH}/*.apk --allow-untrusted melange sign-index --signing-key ${KEY} packages/${ARCH}/APKINDEX.tar.gz + +packages/${ARCH}/binutils-${BINUTILS_VERSION}.apk: + ${MELANGE} build binutils.yaml ${MELANGE_OPTS} ${MELANGE_DEFOPTS} + apk index -o packages/${ARCH}/APKINDEX.tar.gz packages/${ARCH}/*.apk --allow-untrusted + melange sign-index --signing-key ${KEY} packages/${ARCH}/APKINDEX.tar.gz + +packages/${ARCH}/flex-${FLEX_VERSION}.apk: + ${MELANGE} build flex.yaml ${MELANGE_OPTS} ${MELANGE_DEFOPTS} + apk index -o packages/${ARCH}/APKINDEX.tar.gz packages/${ARCH}/*.apk --allow-untrusted + melange sign-index --signing-key ${KEY} packages/${ARCH}/APKINDEX.tar.gz + +packages/${ARCH}/bison-${BISON_VERSION}.apk: + ${MELANGE} build bison.yaml ${MELANGE_OPTS} ${MELANGE_DEFOPTS} + apk index -o packages/${ARCH}/APKINDEX.tar.gz packages/${ARCH}/*.apk --allow-untrusted + melange sign-index --signing-key ${KEY} packages/${ARCH}/APKINDEX.tar.gz + +packages/${ARCH}/texinfo-${TEXINFO_VERSION}.apk: + ${MELANGE} build texinfo.yaml ${MELANGE_OPTS} ${MELANGE_DEFOPTS} + apk index -o packages/${ARCH}/APKINDEX.tar.gz packages/${ARCH}/*.apk --allow-untrusted + melange sign-index --signing-key ${KEY} packages/${ARCH}/APKINDEX.tar.gz ${KEY}: ${MELANGE} keygen ${KEY} diff --git a/binutils.yaml b/binutils.yaml new file mode 100644 index 00000000000..d1e2c1a4a85 --- /dev/null +++ b/binutils.yaml @@ -0,0 +1,59 @@ +--- +package: + name: binutils + version: 2.39 + epoch: 1 + description: "GNU binutils" + target-architecture: + - all + copyright: + - paths: + - "*" + attestation: TODO + license: GPL-3.0-or-later + dependencies: + runtime: + +environment: + contents: + repositories: + - https://packages.wolfi.dev/bootstrap/stage3 + keyring: + - https://packages.wolfi.dev/bootstrap/stage3/wolfi-signing.rsa.pub + packages: + - wolfi-baselayout + - busybox + - ca-certificates-bundle + - build-base + - isl + - texinfo + +pipeline: + - uses: fetch + with: + uri: https://ftp.gnu.org/gnu/binutils/binutils-${{package.version}}.tar.gz + expected-sha256: d12ea6f239f1ffe3533ea11ad6e224ffcb89eb5d01bbea589e9158780fa11f10 + - name: 'Configure binutils' + runs: | + ./configure \ + --prefix=/usr \ + --build=$(./config.guess) \ + --host=$(uname -m)-pc-linux-gnu \ + --target=$(uname -m)-pc-linux-gnu \ + --disable-nls \ + --disable-werror \ + --disable-multilib \ + --disable-gprofng + - runs: | + make -j$(nproc) V=1 + - uses: autoconf/make-install + - name: 'Clean up documentation' + runs: | + rm -rf ${{targets.destdir}}/usr/share/info + - uses: strip + +subpackages: + - name: "binutils-dev" + description: "binutils development headers" + pipeline: + - uses: split/dev diff --git a/bison.yaml b/bison.yaml new file mode 100644 index 00000000000..263ea8fffd2 --- /dev/null +++ b/bison.yaml @@ -0,0 +1,51 @@ +package: + name: bison + version: 3.8.2 + epoch: 1 + description: "The GNU general-purposes parser generator" + target-architecture: + - all + copyright: + - paths: + - "*" + attestation: TODO + license: GPL-3.0-or-later + dependencies: + runtime: + - m4 + +environment: + contents: + repositories: + - https://packages.wolfi.dev/bootstrap/stage3 + keyring: + - https://packages.wolfi.dev/bootstrap/stage3/wolfi-signing.rsa.pub + packages: + - wolfi-baselayout + - busybox + - ca-certificates-bundle + - build-base + - m4 + +pipeline: + - uses: fetch + with: + uri: https://ftp.gnu.org/gnu/bison/bison-${{package.version}}.tar.gz + expected-sha256: 06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb + - name: 'Configure bison' + runs: | + ./configure \ + --prefix=/usr \ + --libdir=/lib \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --host=$(uname -m)-pc-linux-gnu \ + --target=$(uname -m)-pc-linux-gnu + - runs: | + make -j$(nproc) V=1 + - uses: autoconf/make-install + - runs: | + rm -rf "${{targets.destdir}}"/usr/lib + - uses: strip diff --git a/flex.yaml b/flex.yaml new file mode 100644 index 00000000000..dfb800346f3 --- /dev/null +++ b/flex.yaml @@ -0,0 +1,51 @@ +package: + name: flex + version: 2.6.4 + epoch: 0 + description: "tool for generating text-scanning programs" + target-architecture: + - all + copyright: + - paths: + - "*" + attestation: TODO + license: BSD-2-Clause AND LGPL-2.0-or-later + dependencies: + runtime: + - m4 + +environment: + contents: + repositories: + - https://packages.wolfi.dev/bootstrap/stage3 + keyring: + - https://packages.wolfi.dev/bootstrap/stage3/wolfi-signing.rsa.pub + packages: + - wolfi-baselayout + - busybox + - ca-certificates-bundle + - build-base + - bison + +pipeline: + - uses: fetch + with: + uri: https://github.com/westes/flex/releases/download/v${{package.version}}/flex-${{package.version}}.tar.gz + expected-sha256: e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995 + - name: 'Configure flex' + runs: | + ./configure \ + --prefix=/usr \ + --libdir=/lib \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --host=$(uname -m)-pc-linux-gnu \ + --target=$(uname -m)-pc-linux-gnu + - runs: | + make -j$(nproc) V=1 + - uses: autoconf/make-install + - runs: | + ln -s flex ${{target.destdir}}/usr/bin/lex + - uses: strip diff --git a/texinfo.yaml b/texinfo.yaml new file mode 100644 index 00000000000..7364bca1581 --- /dev/null +++ b/texinfo.yaml @@ -0,0 +1,53 @@ +package: + name: texinfo + version: 6.8 + epoch: 0 + description: "GNU documentation tool" + target-architecture: + - all + copyright: + - paths: + - "*" + attestation: TODO + license: GPL-3.0-or-later + dependencies: + runtime: + - perl + +environment: + contents: + repositories: + - https://packages.wolfi.dev/bootstrap/stage3 + keyring: + - https://packages.wolfi.dev/bootstrap/stage3/wolfi-signing.rsa.pub + packages: + - wolfi-baselayout + - busybox + - ca-certificates-bundle + - build-base + - ncurses + - perl + - xz + +pipeline: + - uses: fetch + with: + uri: https://ftp.gnu.org/gnu/texinfo/texinfo-${{package.version}}.tar.xz + expected-sha256: 8eb753ed28bca21f8f56c1a180362aed789229bd62fff58bf8368e9beb59fec4 + - name: 'Configure texinfo' + runs: | + ./configure \ + --prefix=/usr \ + --libdir=/lib \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --host=$(uname -m)-pc-linux-gnu \ + --target=$(uname -m)-pc-linux-gnu + - runs: | + make -j$(nproc) V=1 + - uses: autoconf/make-install + - runs: | + rm -f "${{targets.destdir}}"/usr/share/info/dir + - uses: strip