diff options
author | nl6720 | 2020-04-14 15:44:51 +0300 |
---|---|---|
committer | nl6720 | 2020-04-14 15:44:51 +0300 |
commit | c9bc3e7d04acb807ab16aa56ad65ed45c9f505a0 (patch) | |
tree | 03bb2dfc289fa110c8b23235b1858f2ebeec52f1 | |
parent | be6994b1b81e962f9016517b55329bbdf8a5a037 (diff) | |
download | aur-c9bc3e7d04acb807ab16aa56ad65ed45c9f505a0.tar.gz |
Update PKGBUILD
Match https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/refind .
-rw-r--r-- | .SRCINFO | 27 | ||||
-rw-r--r-- | PKGBUILD | 321 | ||||
-rw-r--r-- | refind-efi.install | 32 | ||||
-rw-r--r-- | refind_linux.conf | 5 |
4 files changed, 72 insertions, 313 deletions
@@ -1,37 +1,36 @@ pkgbase = refind-efi-git - pkgdesc = rEFInd Boot Manager - git version - Built with GNU-EFI libs + pkgdesc = rEFInd Boot Manager - git version pkgver = 0.12.0.r692.g4a84fce pkgrel = 2 url = https://www.rodsbooks.com/refind/ - install = refind-efi.install - arch = x86_64 + arch = any + license = BSD + license = CCPL + license = FDL1.3 + license = GPL2 license = GPL3 - license = custom + license = LGPL3 makedepends = git makedepends = gnu-efi-libs depends = bash depends = dosfstools depends = efibootmgr depends = which - optdepends = sudo: privilege elevation - optdepends = gptfdisk: For finding ESP - optdepends = imagemagick: For refind-mkfont script - optdepends = python: For refind-mkdefault script - optdepends = openssl: To generate Secure Boot keys - optdepends = sbsigntools: For EFI binary signing + optdepends = gptfdisk: for finding non-vfat ESP with refind-install + optdepends = imagemagick: for refind-mkfont + optdepends = openssl: for generating local certificates with refind-install optdepends = preloader-signed: pre-signed Secure Boot shim loader + optdepends = python: for refind-mkdefault + optdepends = sudo: for privilege elevation in refind-install and refind-mkdefault optdepends = shim-signed: pre-signed Secure Boot shim loader + optdepends = sbsigntools: for EFI binary signing with refind-install provides = refind=0.12.0.r692.g4a84fce provides = refind-efi=0.12.0.r692.g4a84fce conflicts = refind conflicts = refind-efi - options = !strip - options = !buildflags options = !makeflags source = refind::git+https://git.code.sf.net/p/refind/code#branch=master - source = refind_linux.conf sha512sums = SKIP - sha512sums = d54b1a0b135594de9a8583a50f54de6daf3c8e38f1bc453794fa3959e826989a44a286e14cf8d8cb2eb04a1e97c984e62292a03e92c98aed044373381bca52d8 pkgname = refind-efi-git @@ -1,284 +1,81 @@ # Maintainer: nl6720 <nl6720@gmail.com> # Contributor: Keshav Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> # Contributor: Tobias Powalowski <tpowa@archlinux.org> +# Contributor: David Runge <dvzrv@archlinux.org> -_USE_GNU_EFI='1' -_PXE='0' - -####### -[[ "${CARCH}" == 'x86_64' ]] && _TIANO_ARCH='X64' -[[ "${CARCH}" == 'x86_64' ]] && _TIANO_S_ARCH='x64' -####### - -_pkgname='refind' -pkgname="${_pkgname}-efi-git" +pkgname='refind-efi-git' pkgver=0.12.0.r692.g4a84fce pkgrel=2 pkgdesc='rEFInd Boot Manager - git version' url='https://www.rodsbooks.com/refind/' -arch=('x86_64') -license=('GPL3' 'custom') - -makedepends=('git') +arch=('any') +license=('BSD' 'CCPL' 'FDL1.3' 'GPL2' 'GPL3' 'LGPL3') depends=('bash' 'dosfstools' 'efibootmgr' 'which') -optdepends=('sudo: privilege elevation' - 'gptfdisk: For finding ESP' - 'imagemagick: For refind-mkfont script' - 'python: For refind-mkdefault script' - 'openssl: To generate Secure Boot keys' - 'sbsigntools: For EFI binary signing' +makedepends=('git' 'gnu-efi-libs') +optdepends=('gptfdisk: for finding non-vfat ESP with refind-install' + 'imagemagick: for refind-mkfont' + 'openssl: for generating local certificates with refind-install' 'preloader-signed: pre-signed Secure Boot shim loader' - 'shim-signed: pre-signed Secure Boot shim loader') - -options=('!strip' '!buildflags' '!makeflags') - -conflicts=('refind' 'refind-efi') -provides=("refind=${pkgver}" "refind-efi=${pkgver}") - -install="${pkgname%-git}.install" - -source=('refind::git+https://git.code.sf.net/p/refind/code#branch=master' - 'refind_linux.conf') - -sha512sums=('SKIP' - 'd54b1a0b135594de9a8583a50f54de6daf3c8e38f1bc453794fa3959e826989a44a286e14cf8d8cb2eb04a1e97c984e62292a03e92c98aed044373381bca52d8') - -if [[ "${_USE_GNU_EFI}" == '1' ]]; then - - pkgdesc="${pkgdesc} - Built with GNU-EFI libs" - makedepends+=('gnu-efi-libs') - -else - - pkgdesc="${pkgdesc} - Built with TianoCore EDK2 libs" - makedepends+=('python2' 'nasm') - - _UDK_VERSION='UDK2018' - _TIANO_DIR_="edk2-${_UDK_VERSION}" - - _TIANOCORE_PKG='Mde' - _TIANOCORE_TARGET='RELEASE' - _UDK_TARGET="${_TIANOCORE_PKG}Pkg/${_TIANOCORE_PKG}Pkg.dsc" - _COMPILER='GCC5' - - source+=("${_TIANO_DIR_}::git+https://github.com/tianocore/edk2.git#branch=${_UDK_VERSION}") - sha512sums+=('SKIP') - -fi + 'python: for refind-mkdefault' + 'sudo: for privilege elevation in refind-install and refind-mkdefault' + 'shim-signed: pre-signed Secure Boot shim loader' + 'sbsigntools: for EFI binary signing with refind-install') +options=('!makeflags') +conflicts=("${pkgname%-efi-git}" "${pkgname%-git}") +provides=("${pkgname%-efi-git}=${pkgver}" "${pkgname%-git}=${pkgver}") +source=('refind::git+https://git.code.sf.net/p/refind/code#branch=master') +sha512sums=('SKIP') +_arch='x64' pkgver() { - - cd "${srcdir}/${_pkgname}/" - - printf '%s.r%s.g%s' "$(grep -Po 'REFIND_VERSION L"\K[\d.]+' "${srcdir}/${_pkgname}/include/version.h")" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" - -} - -_setup_tianocore_env_vars() { - - # Setup UDK PATH ENV variables - export _UDK_DIR="${srcdir}/${_TIANO_DIR_}_build" - export EDK_TOOLS_PATH="${_UDK_DIR}/BaseTools" - -} - -_prepare_tianocore_sources() { - - # Delete old UDK BUILD dir - rm -rf "${_UDK_DIR}/" || true - - # Create UDK BUILD dir - cp -r "${srcdir}/${_TIANO_DIR_}" "${_UDK_DIR}" - - cd "${_UDK_DIR}/" - - # Cleanup UDK config files - rm -rf "${_UDK_DIR}/Build/" || true - rm -rf "${_UDK_DIR}/Conf/" || true - mkdir "${_UDK_DIR}/Conf/" - mkdir "${_UDK_DIR}/Build/" - - # Disable build ID generation - sed 's|,--gc-sections|,--gc-sections,--build-id=none|g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" - - # Use python2 for UDK BaseTools - sed 's|python |python2 |g' -i "${EDK_TOOLS_PATH}/BinWrappers/PosixLike"/* || true - sed 's|python |python2 |g' -i "${EDK_TOOLS_PATH}/Tests/GNUmakefile" - - # Fix GCC Warning as error - sed 's|-Werror |-Wno-error -Wno-unused-but-set-variable |g' -i "${EDK_TOOLS_PATH}/Source/C/Makefiles/header.makefile" || true - sed 's|-Werror |-Wno-error -Wno-unused-but-set-variable |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true - - # Fix GenFw: ERROR 3000: Invalid, bad symbol definition http://www.mail-archive.com/edk2-devel@lists.sourceforge.net/msg03625.html - sed -e 's|_OBJCOPY_FLAGS =|_OBJCOPY_FLAGS = -R .eh_frame|g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true - - # Remove GCC -g debug option and add -O0 -mabi=ms -maccumulate-outgoing-args - sed 's|DEFINE GCC_ALL_CC_FLAGS = -g |DEFINE GCC_ALL_CC_FLAGS = -O0 -mabi=ms -maccumulate-outgoing-args |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true - sed 's|DEFINE GCC44_ALL_CC_FLAGS = -g |DEFINE GCC44_ALL_CC_FLAGS = -O0 -mabi=ms -maccumulate-outgoing-args |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true - - # Fix UDK Target Platform - sed "s|ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc|ACTIVE_PLATFORM = ${_UDK_TARGET}|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true - sed "s|TARGET = DEBUG|TARGET = ${_TIANOCORE_TARGET}|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true - sed "s|TARGET_ARCH = IA32|TARGET_ARCH = ${_TIANO_ARCH}|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true - sed "s|TOOL_CHAIN_TAG = MYTOOLS|TOOL_CHAIN_TAG = ${_COMPILER}|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true - - chmod 0755 "${_UDK_DIR}/BaseTools/BuildEnv" - -} - -_prepare_refind_sources() { - - rm -rf "${srcdir}/${_pkgname}_build/" || true - cp -r "${srcdir}/${_pkgname}" "${srcdir}/${_pkgname}_build" - - cd "${srcdir}/${_pkgname}_build/" - - # Clean rEFInd git repo - git clean -x -d -f - - if [[ "${_USE_GNU_EFI}" == '1' ]]; then - # Enable GNU_EFI_USE_MS_ABI - sed "s|-DEFI_FUNCTION_WRAPPER|-DEFI_FUNCTION_WRAPPER -maccumulate-outgoing-args|g" -i "${srcdir}/${_pkgname}_build/Make.common" || true - sed "s|-DEFIX64|-DEFIX64 -maccumulate-outgoing-args|g" -i "${srcdir}/${_pkgname}_build/Make.common" || true - sed "s|-m64|-maccumulate-outgoing-args -m64|g" -i "${srcdir}/${_pkgname}_build/filesystems/Make.gnuefi" || true - else - # Fix UDK Path in rEFInd Makefiles - sed "s|^export EDK2BASE=.*$|export EDK2BASE=${_UDK_DIR}|g" -i "${srcdir}/${_pkgname}_build/Makefile" || true - - # Disable build ID generation - sed 's|--gc-sections|--gc-sections --build-id=none|g' -i "${srcdir}/${_pkgname}_build/Make.common" || true - fi - + cd "${srcdir}/${pkgname%-efi-git}/" + printf '%s.r%s.g%s' "$(grep -Po 'REFIND_VERSION L"\K[\d.]+' "${srcdir}/${pkgname%-efi-git}/include/version.h")" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } prepare() { - - if [[ "${_USE_GNU_EFI}" != '1' ]]; then - _setup_tianocore_env_vars - - # Prepare Tianocore Sources - _prepare_tianocore_sources - fi - - # Prepare rEFInd Sources - _prepare_refind_sources - -} - -_build_tianocore_sources() { - - _setup_tianocore_env_vars - - cd "${_UDK_DIR}/" - - # Setup UDK Environment - source "${_UDK_DIR}/BaseTools/BuildEnv" BaseTools - - # Compile UDK BaseTools - make -C "${EDK_TOOLS_PATH}" - - # Compile UDK Libraries - "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_TARGET}" -a "${_TIANO_ARCH}" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}" - + cd "${srcdir}/${pkgname%-efi-git}/" + # removing the path prefix from the css reference, so that the css can live in the same directory + sed -e 's|../Styles/||g' -i "docs/${pkgname%-efi-git}/"*.html + # hardcode RefindDir, so that refind-install can find refind_x64.efi + sed -e 's|RefindDir=\"\$ThisDir/refind\"|RefindDir="/usr/share/refind/"|g' -i refind-install } build() { - - if [[ "${_USE_GNU_EFI}" != '1' ]]; then - _build_tianocore_sources - fi - - cd "${srcdir}/${_pkgname}_build/" - - # Compile rEFInd UEFI application - if [[ "${_USE_GNU_EFI}" == '1' ]]; then - make gnuefi - else - make edk2 - fi - - # Compile UEFI FS drivers - if [[ "${_USE_GNU_EFI}" == '1' ]]; then - make fs_gnuefi - else - make fs_edk2 - fi - - if [[ "${_PXE}" == '1' ]]; then - cd "${srcdir}/${_pkgname}_build/net" - - # Compile Network support - make source - make netboot - fi - + cd "${srcdir}/${pkgname%-efi-git}/" + make + make gptsync + make fs } package() { - - # Install the rEFInd UEFI application - install -d "${pkgdir}/usr/share/refind/" - install -D -m0644 "${srcdir}/${_pkgname}_build/refind/refind_${_TIANO_S_ARCH}.efi" "${pkgdir}/usr/share/refind/refind_${_TIANO_S_ARCH}.efi" - - # Install UEFI drivers built from rEFInd - install -d "${pkgdir}/usr/share/refind/drivers_${_TIANO_S_ARCH}/" - install -D -m0644 "${srcdir}/${_pkgname}_build/drivers_${_TIANO_S_ARCH}"/*.efi "${pkgdir}/usr/share/refind/drivers_${_TIANO_S_ARCH}/" - - # Install UEFI applications built from rEFInd - install -d "${pkgdir}/usr/share/refind/tools_${_TIANO_S_ARCH}" - install -D -m0644 "${srcdir}/${_pkgname}_build/gptsync/gptsync_${_TIANO_S_ARCH}.efi" "${pkgdir}/usr/share/refind/tools_${_TIANO_S_ARCH}/gptsync_${_TIANO_S_ARCH}.efi" - - if [[ "${_PXE}" == '1' ]]; then - install -D -m0644 "${srcdir}/${_pkgname}_build/net/bin/ipxe.efi" "${pkgdir}/usr/share/refind/tools_${_TIANO_S_ARCH}/ipxe_${_TIANO_S_ARCH}.efi" - install -D -m0644 "${srcdir}/${_pkgname}_build/net/bin/ipxe_discovery.efi" "${pkgdir}/usr/share/refind/tools_${_TIANO_S_ARCH}/ipxe_discovery_${_TIANO_S_ARCH}.efi" - fi - - # Install rEFInd helper scripts - install -d "${pkgdir}/usr/bin/" - install -D -m0755 "${srcdir}/${_pkgname}_build/refind-install" "${pkgdir}/usr/bin/refind-install" - install -D -m0755 "${srcdir}/${_pkgname}_build/refind-mkdefault" "${pkgdir}/usr/bin/refind-mkdefault" - install -D -m0755 "${srcdir}/${_pkgname}_build/mkrlconf" "${pkgdir}/usr/bin/mkrlconf" - install -D -m0755 "${srcdir}/${_pkgname}_build/mvrefind" "${pkgdir}/usr/bin/mvrefind" - install -D -m0755 "${srcdir}/${_pkgname}_build/fonts/mkfont.sh" "${pkgdir}/usr/bin/refind-mkfont" - - # Install the rEFInd sample config files - install -D -m0644 "${srcdir}/${_pkgname}_build/refind.conf-sample" "${pkgdir}/usr/share/refind/refind.conf-sample" - install -D -m0644 "${srcdir}/refind_linux.conf" "${pkgdir}/usr/share/refind/refind_linux.conf-sample" - - # Install the rEFInd docs - install -d "${pkgdir}/usr/share/refind/docs/html/" - install -d "${pkgdir}/usr/share/refind/docs/Styles/" - install -d "${pkgdir}/usr/share/man/man8/" - install -D -m0644 "${srcdir}/${_pkgname}_build/docs/refind"/* "${pkgdir}/usr/share/refind/docs/html/" - install -D -m0644 "${srcdir}/${_pkgname}_build/docs/Styles"/* "${pkgdir}/usr/share/refind/docs/Styles/" - install -D -m0644 "${srcdir}/${_pkgname}_build/README.txt" "${pkgdir}/usr/share/refind/docs/README.txt" - install -D -m0644 "${srcdir}/${_pkgname}_build/NEWS.txt" "${pkgdir}/usr/share/refind/docs/NEWS.txt" - install -D -m0644 "${srcdir}/${_pkgname}_build/docs/man"/*.8 "${pkgdir}/usr/share/man/man8/" - - # Install the rEFInd fonts - install -d "${pkgdir}/usr/share/refind/fonts/" - install -D -m0644 "${srcdir}/${_pkgname}_build/fonts"/* "${pkgdir}/usr/share/refind/fonts/" - rm -f "${pkgdir}/usr/share/refind/fonts/mkfont.sh" - - # Install the rEFInd icons - install -d "${pkgdir}/usr/share/refind/icons/svg/" - install -d "${pkgdir}/usr/share/refind/icons/licenses/" - install -D -m0644 "${srcdir}/${_pkgname}_build/icons/svg"/* "${pkgdir}/usr/share/refind/icons/svg/" - install -D -m0644 "${srcdir}/${_pkgname}_build/icons"/*.png "${pkgdir}/usr/share/refind/icons/" - install -D -m0644 "${srcdir}/${_pkgname}_build/icons/licenses"/* "${pkgdir}/usr/share/refind/icons/licenses/" - - # Install the rEFInd images - install -d "${pkgdir}/usr/share/refind/images/" - install -D -m0644 "${srcdir}/${_pkgname}_build/images"/*.{png,bmp} "${pkgdir}/usr/share/refind/images/" - - # Install the rEFInd keys - install -d "${pkgdir}/usr/share/refind/keys/" - install -D -m0644 "${srcdir}/${_pkgname}_build/keys"/* "${pkgdir}/usr/share/refind/keys/" - - # Install the rEFIt license file, since rEFInd is a fork of rEFIt - install -D -m0644 "${srcdir}/${_pkgname}_build/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" - - # Point refind dir paths to /usr/share/refind/ in refind-install script - sed 's|RefindDir=\"\$ThisDir/refind\"|RefindDir="/usr/share/refind/"|g' -i "${pkgdir}/usr/bin/refind-install" - + cd "${srcdir}/${pkgname%-efi-git}/" + # the install target calls refind-install, therefore we install things manually + + # efi binaries + install -vDm 0644 refind/*.efi -t "${pkgdir}/usr/share/${pkgname%-efi-git}" + install -vDm 0644 drivers_*/*.efi -t "${pkgdir}/usr/share/refind/drivers_${_arch}" + install -vDm 0644 gptsync/*.efi -t "${pkgdir}/usr/share/${pkgname%-efi-git}/tools_${_arch}" + # sample config + install -vDm 0644 "${pkgname%-efi-git}.conf-sample" -t "${pkgdir}/usr/share/${pkgname%-efi-git}" + # keys + install -vDm 0644 keys/*{cer,crt} -t "${pkgdir}/usr/share/${pkgname%-efi-git}/keys" + # keysdir + install -vdm 0640 "${pkgdir}/etc/refind.d/keys" + # icons + install -vDm 0644 icons/*.png -t "${pkgdir}/usr/share/${pkgname%-efi-git}/icons" + install -vDm 0644 icons/svg/*.svg -t "${pkgdir}/usr/share/${pkgname%-efi-git}/icons/svg" + # scripts + install -vDm 0755 {refind-{install,mkdefault},mkrlconf,mvrefind} -t "${pkgdir}/usr/bin" + install -vDm 0755 fonts/mkfont.sh "${pkgdir}/usr/bin/${pkgname%-efi-git}-mkfont" + # man pages + install -vDm 0644 docs/man/*.8 -t "${pkgdir}/usr/share/man/man8" + # docs + install -vDm 0644 {CREDITS,NEWS,README}.txt -t "${pkgdir}/usr/share/doc/${pkgname%-efi-git}" + install -vDm 0755 fonts/README.txt "${pkgdir}/usr/share/doc/${pkgname%-efi-git}/README.${pkgname%-efi-git}-mkfont.txt" + install -vDm 0755 icons/README "${pkgdir}/usr/share/doc/${pkgname%-efi-git}/README.icons.txt" + install -vDm 0755 keys/README.txt "${pkgdir}/usr/share/doc/${pkgname%-efi-git}/README.keys.txt" + install -vDm 0644 "docs/${pkgname%-efi-git}/"*.{html,png,svg,txt} -t "${pkgdir}/usr/share/doc/${pkgname%-efi-git}/html" + install -vDm 0644 docs/Styles/*.css -t "${pkgdir}/usr/share/doc/${pkgname%-efi-git}/html" + # license + install -vDm 0644 LICENSE.txt -t "${pkgdir}/usr/share/licenses/${pkgname%-efi-git}" } diff --git a/refind-efi.install b/refind-efi.install deleted file mode 100644 index 9b015b5f5a07..000000000000 --- a/refind-efi.install +++ /dev/null @@ -1,32 +0,0 @@ -post_install() { - - cat << EOF - -rEFInd UEFI application has been installed at /usr/share/refind/refind_*.efi - -Other UEFI applications have been installed at /usr/share/refind/tools_*/ - -UEFI drivers have been installed at /usr/share/refind/drivers_*/ - -Copy the efi application (according to your UEFI ARCH) -and /usr/share/refind/refind.conf-sample to a sub-directory of <EFISYS>/EFI/ -as refind.conf and add an entry to firmware boot menu using efibootmgr -or mactel-boot (for Macs) - -rEFInd Icons have been installed at /usr/share/refind/icons/ -rEFInd Fonts have been installed at /usr/share/refind/fonts/ - -HTML Documentation is available at /usr/share/refind/docs/html/ - -More info: https://wiki.archlinux.org/index.php/rEFInd - -EOF - -} - -post_upgrade() { - - post_install - -} - diff --git a/refind_linux.conf b/refind_linux.conf deleted file mode 100644 index 5a3768bcfa5a..000000000000 --- a/refind_linux.conf +++ /dev/null @@ -1,5 +0,0 @@ -## This file should be present in the same directory as the EFISTUB kernel and initramfs files -## More info at http://www.rodsbooks.com/refind/linux.html , http://www.rodsbooks.com/efi-bootloaders/efistub.html - -"Boot with defaults" "root=PARTUUID=XXXXXXXX rootfstype=XXXX rw add_efi_memmap" -"Boot to terminal" "root=PARTUUID=XXXXXXXX rootfstype=XXXX rw add_efi_memmap systemd.unit=multi-user.target" |