diff --git a/.github/workflows/linux_gcc_edk2.yml b/.github/workflows/linux_gcc_edk2.yml index bdf6a3e..b14f939 100644 --- a/.github/workflows/linux_gcc_edk2.yml +++ b/.github/workflows/linux_gcc_edk2.yml @@ -20,7 +20,6 @@ env: EDK2_SHELL_VERSION_HEADER: edk2/MdePkg/Include/Protocol/Shell.h # Was edk2/ShellPkg/Include/Protocol/EfiShell.h prior to 2016.10.18 # enum ShellVersion added on 2009.05.11 - NASM_VERSION: 2.15.05 jobs: build: @@ -30,29 +29,20 @@ jobs: - name: Install toolchains run: | sudo apt-get update - sudo apt-get install gcc-11-multilib gcc-11-aarch64-linux-gnu gcc-11-arm-linux-gnueabi gcc-11-riscv64-linux-gnu genisoimage - sudo ln -s /usr/bin/aarch64-linux-gnu-gcc-11 /usr/bin/aarch64-linux-gnu-gcc - sudo ln -s /usr/bin/aarch64-linux-gnu-gcc-ar-11 /usr/bin/aarch64-linux-gnu-gcc-ar - sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-11 /usr/bin/arm-linux-gnueabi-gcc - sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-ar-11 /usr/bin/arm-linux-gnueabi-gcc-ar - sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-11 /usr/bin/riscv64-linux-gnu-gcc - sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-ar-11 /usr/bin/riscv64-linux-gnu-gcc-ar - sudo ln -s /usr/riscv64-linux-gnu/include/gnu/stubs-lp64d.h /usr/riscv64-linux-gnu/include/gnu/stubs-lp64.h - - name: Install nasm ${{ env.NASM_VERSION }} - # https://edk2.groups.io/g/devel/topic/89637409#87359 - run: | - curl -O https://www.nasm.us/pub/nasm/releasebuilds/${{ env.NASM_VERSION }}/nasm-${{ env.NASM_VERSION }}.tar.bz2 - tar -xjf nasm-${{ env.NASM_VERSION }}.tar.bz2 - cd nasm-${{ env.NASM_VERSION }} - ./autogen.sh - ./configure --prefix=/usr/local/ - make - sudo make install + sudo apt-get -y --no-install-recommends install gcc-12-multilib gcc-12-aarch64-linux-gnu gcc-12-arm-linux-gnueabi gcc-12-riscv64-linux-gnu nasm genisoimage + sudo ln -s /usr/bin/aarch64-linux-gnu-gcc-12 /usr/bin/aarch64-linux-gnu-gcc + sudo ln -s /usr/bin/aarch64-linux-gnu-gcc-ar-12 /usr/bin/aarch64-linux-gnu-gcc-ar + sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-12 /usr/bin/arm-linux-gnueabi-gcc + sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-ar-12 /usr/bin/arm-linux-gnueabi-gcc-ar + sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-12 /usr/bin/riscv64-linux-gnu-gcc + sudo ln -s /usr/bin/riscv64-linux-gnu-gcc-ar-12 /usr/bin/riscv64-linux-gnu-gcc-ar + - name: Checkout repository and submodules - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive + - name: Set version id: set_version run: | @@ -63,8 +53,10 @@ jobs: echo "shell_release=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT echo "edk2_tag=$(git --git-dir edk2/.git describe --tags)" >> $GITHUB_OUTPUT echo "build_date=$(date '+%Y.%m.%d')" >> $GITHUB_OUTPUT + - name: Set up EDK2 run: make -C edk2/BaseTools + - name: Build UEFI binaries run: | cd edk2 @@ -74,6 +66,7 @@ jobs: build -a $ARCH -b $BUILD_TYPE -t ${{ env.COMPILER }} -p ShellPkg/ShellPkg.dsc --pcd gEfiShellPkgTokenSpaceGuid.PcdShellScreenLogCount=8 --pcd gEfiShellPkgTokenSpaceGuid.PcdShellSupplier=L"${{ steps.set_version.outputs.edk2_tag }} (https://github.com/pbatard/UEFI-Shell)" done done + - name: Create ISO filesystem structure run: | for BUILD_TYPE in ${{ env.BUILD_TYPES }}; do @@ -111,22 +104,26 @@ jobs: printf " \n" >> Version.xml printf "\n" >> Version.xml done + - name: Generate ISO images run: | for BUILD_TYPE in ${{ env.BUILD_TYPES }}; do genisoimage -v -V "UEFI SHELL ${{ steps.set_version.outputs.shell_version }} ${{ steps.set_version.outputs.shell_release }} ($BUILD_TYPE)" -JR -o "UEFI-Shell-${{ steps.set_version.outputs.shell_version }}-${{ steps.set_version.outputs.shell_release }}-$BUILD_TYPE.iso" $BUILD_TYPE done + - name: Display SHA-256 run: | for BUILD_TYPE in ${{ env.BUILD_TYPES }}; do sha256sum $BUILD_TYPE/efi/boot/*.efi done sha256sum *.iso + - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: ISOs path: ./*.iso + - name: Create release blurb run: | printf "**UEFI Shell v%s, release %s**\n\n" ${{ steps.set_version.outputs.shell_version }} ${{ steps.set_version.outputs.shell_release }} > body.txt @@ -134,6 +131,7 @@ jobs: for ARCH in ${{ env.ARCHS }}; do printf "* \`%s\`\n" $ARCH >> body.txt done + - name: Create release uses: softprops/action-gh-release@v1 with: diff --git a/README.md b/README.md index fecfd0f..608c112 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ UEFI-Shell [![Build status](https://img.shields.io/github/actions/workflow/status/pbatard/UEFI-Shell/linux_gcc_edk2.yml?label=Build%20Status&style=flat-square)](https://github.com/pbatard/UEFI-Shell/actions/workflows/linux_gcc_edk2.yml) [![Github stats](https://img.shields.io/github/downloads/pbatard/UEFI-Shell/total.svg?label=Downloads&style=flat-square)](https://github.com/pbatard/UEFI-Shell/releases) -[![Release](https://img.shields.io/badge/Latest%20Release-23H1%20(edk2--stable202305)-blue.svg?style=flat-square)](https://github.com/pbatard/UEFI-Shell/releases) +[![Release](https://img.shields.io/badge/Latest%20Release-23H2%20(edk2--stable202311)-blue.svg?style=flat-square)](https://github.com/pbatard/UEFI-Shell/releases) [![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause) This repository contains pre-built UEFI Shell binary images, generated from @@ -31,7 +31,7 @@ Microsoft does not allow an external UEFI Shell to be signed for Secure Boot. These binaries are built in a fully transparent manner, in order to provide you with complete assurance that they do not contain anything malicious. -To validate that this claim, you can perform the following: +To validate this claim, you can perform the following: 1. Locate the build action for the ISO you downloaded under https://github.com/pbatard/UEFI-Shell/actions. For instance, for the 21H1 diff --git a/edk2 b/edk2 index ba91d02..8736b8f 160000 --- a/edk2 +++ b/edk2 @@ -1 +1 @@ -Subproject commit ba91d0292e593df8528b66f99c1b0b14fadc8e16 +Subproject commit 8736b8fdca85e02933cdb0a13309de14c9799ece