jobextra/seabios/PKGBUILD

130 lines
4.8 KiB
Bash

#!/usr/bin/bash
# JOBoRun : Jwm OpenBox Obarun RUNit
# Maintainer : Joe Bo Run <joborun@disroot.org>
# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname"
# Website : https://pozol.eu
#-----------------------------------------| DESCRIPTION |---------------------------------------
pkgbase=seabios
pkgname=(seabios) # seabios-docs)
pkgver=1.16.3
pkgrel=01
pkgdesc="Open-source legacy BIOS implementation"
url="https://www.seabios.org/SeaBIOS"
makedepends=(acpica inetutils python)
options=(!makeflags !strip)
source=(seabios-$pkgver.tar.gz::https://github.com/coreboot/seabios/archive/rel-$pkgver.tar.gz
config.coreboot
config.csm
config.seabios-128k
config.seabios-256k
config.seabios-microvm
config.vga-ati
config.vga-bochs-display
config.vga-cirrus
config.vga-isavga
config.vga-qxl
config.vga-ramfb
config.vga-stdvga
config.vga-virtio
config.vga-vmware)
_debug_level=0
_build_bios() {
local config=$1
local output_name=$2
local binary_name=$3
local build_target=$4
echo "Building target with config $config, output_name $output_name, binary_name $binary_name and build_target $build_target..."
make clean distclean -C $pkgbase-rel-$pkgver
cp -v $config $pkgbase-rel-$pkgver/.config
# NOTE: refer to $pkgbase-rel-$pkgver/src/config.h for explanation of debug levels
echo "CONFIG_DEBUG_LEVEL=$_debug_level" >> $pkgbase-rel-$pkgver/.config
make oldnoconfig V=1 -C $pkgbase-rel-$pkgver
make -C $pkgbase-rel-$pkgver V=1 EXTRAVERSION=-$pkgrel PYTHON=python3 $build_target
cp $pkgbase-rel-$pkgver/out/$output_name output/$binary_name
}
prepare() {
mkdir -vp output
echo "Arch Linux $pkgver-$pkgrel" > $pkgbase-rel-$pkgver/.version
}
build() {
local -A _build_args=(
[config.coreboot]="bios.bin.elf bios-coreboot.bin"
[config.csm]="Csm16.bin bios-csm.bin"
[config.seabios-128k]="bios.bin bios.bin"
[config.seabios-256k]="bios.bin bios-256k.bin"
[config.seabios-microvm]="bios.bin bios-microvm.bin"
[config.vga-ati]="vgabios.bin vgabios-ati.bin out/vgabios.bin"
[config.vga-bochs-display]="vgabios.bin vgabios-bochs-display.bin out/vgabios.bin"
[config.vga-cirrus]="vgabios.bin vgabios-cirrus.bin out/vgabios.bin"
[config.vga-isavga]="vgabios.bin vgabios-isavga.bin out/vgabios.bin"
[config.vga-qxl]="vgabios.bin vgabios-qxl.bin out/vgabios.bin"
[config.vga-ramfb]="vgabios.bin vgabios-ramfb.bin out/vgabios.bin"
[config.vga-stdvga]="vgabios.bin vgabios-stdvga.bin out/vgabios.bin"
[config.vga-virtio]="vgabios.bin vgabios-virtio.bin out/vgabios.bin"
[config.vga-vmware]="vgabios.bin vgabios-vmware.bin out/vgabios.bin"
)
local _config _config_array
for _config in "${source[@]}"; do
if [[ $_config == config.* ]]; then
read -ra _config_array <<< "${_build_args[$_config]}"
_build_bios $_config "${_config_array[@]}"
fi
done
}
package_seabios() {
optdepends=('seabios-docs: for documentation')
install -vDm 644 output/*.bin -t "$pkgdir/usr/share/qemu/"
install -vDm 644 $pkgbase-rel-$pkgver/README -t "$pkgdir/usr/share/doc/$pkgbase/"
}
#package_seabios-docs() {
# pkgdesc+=" - documentation"
#
# install -vDm 644 $pkgbase-rel-$pkgver/docs/*.md -t "$pkgdir/usr/share/doc/$pkgbase/"
#}
#---- arch license gpg-key & sha256sums ----
arch=(x86_64)
#license=(GPL-3.0 LGPL-3.0)
license=(
'CPL-1.0 OR LGPL-2.0-only'
GPL-2.0-only
GPL-2.0-or-later
LGPL-2.0-only
LGPL-3.0-only
)
sha256sums=(1c1742a315b0c2fefa9390c8a50e2ac1a6f4806e0715aece6595eaf4477fcd8a # seabios-1.16.3.tar.gz
562c285883d803b415fc5836367ae919ab34a6d09001a84970f464887a03fe2c # config.coreboot
a046a73392f449f106de918a82c51c99225212d9d253b9011475d0eaa41e6180 # config.csm
98953bccd77b982be1149562dbb5b1551b2e241cf262e26a73abf8436c0e841f # config.seabios-128k
ae24be1993d21b62683b9b274e9f219c705c0d0106816362ae5250cbc92e18b4 # config.seabios-256k
f359c2ed0abea13c3bb517d4986ac1265fd50b5e58b83a704938adc91916e87c # config.seabios-microvm
eb500b7fd1e13d8cec76be21a5dbf30e7cb98682e9f0fa87dad41d844c44e5ec # config.vga-ati
31a303efb67f0aa9d79ec8cad5a32b7c6b72d4fa8227110a0e85b37fc39a6804 # config.vga-bochs-display
888ad874052d301981a8cc6fa4bc72b1edd14ba937e7de113f71ce3fd2f8c253 # config.vga-cirrus
5826ec704d4e4bb57089e0cbb72e7e5ccd31b7192d81084665cd4faeecb60b04 # config.vga-isavga
26e43ea5e98615d11573b2619f3fb3c1933d5f810e6a2c44218d99465cc3ae77 # config.vga-qxl
66bec6516e41c3601af1e86d1d78410574f1fb694de509a91b55050a80f7400a # config.vga-ramfb
ca7367ae57665fa01e0ebb741ba5823d646f4b65a9a87657ea163cc9f362a8a8 # config.vga-stdvga
afa7d59e1c18ed770cf0e83e3d5dc70866f75fdde83064fbea6e115f79504066 # config.vga-virtio
1bd31f16dd43fb25aa92f9816cbfaae4a19a8faf29ff52bd02429fbaafb78f57) # config.vga-vmware
## 1cdb683c7d9fd609ba09f6bd8fef8ad1de3d44532678f309dd5aaacae3b1fc03 seabios-1.16.3-01-x86_64.pkg.tar.lz