Date: Wednesday, May 28, 2014 @ 18:24:39 Author: tpowa Revision: 213699
upgpkg: refind-efi 0.8.1-1 bump to latest version Modified: refind-efi/trunk/PKGBUILD refind-efi/trunk/refind-efi.install refind-efi/trunk/refind_linux.conf --------------------+ PKGBUILD | 216 +++++++++++++++++++++++++++++++++++++-------------- refind-efi.install | 2 refind_linux.conf | 4 3 files changed, 162 insertions(+), 60 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2014-05-28 16:23:07 UTC (rev 213698) +++ PKGBUILD 2014-05-28 16:24:39 UTC (rev 213699) @@ -2,35 +2,24 @@ # Maintainer: Tobias Powalowski <[email protected]> # Contributor: Keshav Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> -####### -# _TIANOCORE_SVN_URL="https://svn.code.sf.net/p/edk2/code/branches/UDK2014" -# _TIANO_DIR_="tianocore-udk-2014-svn" -# _TIANO_SVN_REV_="15322" +_USE_GNU_EFI="1" -# BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg - -_TIANOCORE_SVN_URL="https://svn.code.sf.net/p/edk2/code/branches/UDK2010.SR1" -_TIANO_DIR_="tianocore-udk-2010-svn" -_TIANO_SVN_REV_="14641" ####### +[[ "${CARCH}" == "x86_64" ]] && _TIANO_ARCH="X64" +[[ "${CARCH}" == "i686" ]] && _TIANO_ARCH="IA32" +[[ "${CARCH}" == "x86_64" ]] && _TIANO_S_ARCH="x64" +[[ "${CARCH}" == "i686" ]] && _TIANO_S_ARCH="ia32" ####### -_TIANOCORE_PKG="Mde" -_TIANOCORE_TARGET="RELEASE" -_UDK_TARGET="${_TIANOCORE_PKG}Pkg/${_TIANOCORE_PKG}Pkg.dsc" -# _COMPILER="GCC48" -_COMPILER="GCC47" -####### pkgname="refind-efi" -pkgver="0.7.9" +pkgver="0.8.1" pkgrel="1" -pkgdesc="Rod Smith's fork of rEFIt UEFI Boot Manager - built with Tianocore UDK libs" +pkgdesc="Rod Smith's fork of rEFIt UEFI Boot Manager" url="http://www.rodsbooks.com/refind/index.html" arch=('x86_64' 'i686') license=('GPL3' 'custom') -makedepends=('subversion' 'python2') depends=('bash' 'dosfstools' 'efibootmgr') optdepends=('mactel-boot: For bless command in Apple Mac systems' 'imagemagick: For refind-mkfont script') @@ -42,25 +31,36 @@ source=("http://downloads.sourceforge.net/refind/refind-src-${pkgver}.zip" 'refind_linux.conf') -for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg ; do - source+=("${_TIANO_DIR_}_${_DIR_}::svn+${_TIANOCORE_SVN_URL}/${_DIR_}#revision=${_TIANO_SVN_REV_}") -done +if [[ "${_USE_GNU_EFI}" == "1" ]]; then + + pkgdesc="${pkgdesc} - Built with GNU-EFI libs" + makedepends=('gnu-efi-libs') + +else + + pkgdesc="${pkgdesc} - Built with Tianocore UDK libs" + makedepends+=('subversion' 'python2') + + _TIANOCORE_SVN_URL="https://svn.code.sf.net/p/edk2/code/branches/UDK2014" + _TIANO_DIR_="tianocore-udk-2014-svn" + _TIANO_SVN_REV_="15322" + + _TIANOCORE_PKG="Mde" + _TIANOCORE_TARGET="RELEASE" + _UDK_TARGET="${_TIANOCORE_PKG}Pkg/${_TIANOCORE_PKG}Pkg.dsc" + _COMPILER="GCC48" + + ## BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg + for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg ; do + source+=("${_TIANO_DIR_}_${_DIR_}::svn+${_TIANOCORE_SVN_URL}/${_DIR_}#revision=${_TIANO_SVN_REV_}") + done + +fi -md5sums=('2792c9430d4e575eb19e62b548a7a2e6' - 'a83e45b10d5efbca1c93a63851728712' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP') +md5sums=('9bb5181bab8700a32a6ab835a131e5c5' + '12ce3e22a216e7b25c253478a34713b4') -[[ "${CARCH}" == "x86_64" ]] && _TIANO_ARCH="X64" -[[ "${CARCH}" == "i686" ]] && _TIANO_ARCH="IA32" - -[[ "${CARCH}" == "x86_64" ]] && _TIANO_S_ARCH="x64" -[[ "${CARCH}" == "i686" ]] && _TIANO_S_ARCH="ia32" - -_setup_env_vars() { +_setup_tianocore_env_vars() { msg "Setup UDK PATH ENV variables" export _UDK_DIR="${srcdir}/${_TIANO_DIR_}_build" @@ -96,7 +96,7 @@ 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 - msg "Fix GenFw: ERROR 3000: Invalid, refind_x64.dll bad symbol definition" + msg "Fix GenFw: ERROR 3000: Invalid, bad symbol definition" ## http://www.mail-archive.com/[email protected]/msg03625.html sed -e 's|_OBJCOPY_FLAGS =|_OBJCOPY_FLAGS = -R .eh_frame|g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true @@ -105,10 +105,13 @@ sed 's|--64 | |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true sed 's| -m64 -melf_x86_64| -m64|g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true - msg "Remove GCC -g debug option and add -0s -mabi=ms" - sed 's|DEFINE GCC_ALL_CC_FLAGS = -g |DEFINE GCC_ALL_CC_FLAGS = -Os -mabi=ms |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true - sed 's|DEFINE GCC44_ALL_CC_FLAGS = -g |DEFINE GCC44_ALL_CC_FLAGS = -Os -mabi=ms |g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true + msg "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 + # msg "Fix GenFw: ERROR 3000: Invalid, Unsupported section alignment" + sed 's|--gc-sections|--gc-sections --build-id=none|g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" + msg "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 @@ -126,33 +129,62 @@ cd "${srcdir}/refind-${pkgver}/" - msg "Fix UDK Path in rEFInd Makefiles" - sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/Make.tiano" || true - sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" || true - sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true + if [[ "${_USE_GNU_EFI}" == "1" ]]; then + msg "Enable GNU_EFI_USE_MS_ABI" + sed "s|-DEFI_FUNCTION_WRAPPER|-DEFI_FUNCTION_WRAPPER -maccumulate-outgoing-args|g" -i "${srcdir}/refind-${pkgver}/Make.common" || true + sed "s|-DEFIX64|-DEFIX64 -maccumulate-outgoing-args|g" -i "${srcdir}/refind-${pkgver}/Make.common" || true + sed "s|-m64|-maccumulate-outgoing-args -m64|g" -i "${srcdir}/refind-${pkgver}/filesystems/Make.gnuefi" || true + else + msg "Fix UDK Path in rEFInd Makefiles" + sed "s|EDK2BASE = /usr/local/UDK2014/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/Make.tiano" || true + sed "s|EDK2BASE = /usr/local/UDK2014/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/refind/Make.tiano" || true + sed "s|EDK2BASE = /usr/local/UDK2014/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" || true + sed "s|EDK2BASE = /usr/local/UDK2014/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true + sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/Make.tiano" || true + sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/refind/Make.tiano" || true + sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" || true + sed "s|EDK2BASE = /usr/local/UDK2010/MyWorkSpace|EDK2BASE = ${_UDK_DIR}|g" -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true + + msg "Fix GenFw: ERROR 3000: Invalid, refind_x64.dll bad symbol definition" + sed -e 's|--strip-unneeded|--strip-unneeded -R .eh_frame|g' -i "${srcdir}/refind-${pkgver}/Make.tiano" || true + sed -e 's|--strip-unneeded|--strip-unneeded -R .eh_frame|g' -i "${srcdir}/refind-${pkgver}/refind/Make.tiano" || true + sed -e 's|--strip-unneeded|--strip-unneeded -R .eh_frame|g' -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" + sed -e 's|--strip-unneeded|--strip-unneeded -R .eh_frame|g' -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true - msg "Fix GenFw: ERROR 3000: Invalid, refind_x64.dll bad symbol definition" - sed -e 's|--strip-unneeded|--strip-unneeded -R .eh_frame|g' -i "${srcdir}/refind-${pkgver}/refind/Make.tiano" || true - sed -e 's|--strip-unneeded|--strip-unneeded -R .eh_frame|g' -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" - sed -e 's|--strip-unneeded|--strip-unneeded -R .eh_frame|g' -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true + # msg "Fix GenFw: ERROR 3000: Invalid section alignment" + sed 's|--gc-sections|--gc-sections --build-id=none|g' -i "${srcdir}/refind-${pkgver}/Make.tiano" || true + sed 's|--gc-sections|--gc-sections --build-id=none|g' -i "${srcdir}/refind-${pkgver}/refind/Make.tiano" || true + sed 's|--gc-sections|--gc-sections --build-id=none|g' -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" || true + sed 's|--gc-sections|--gc-sections --build-id=none|g' -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true + # sed -e 's|--gc-sections|--gc-sections -z max-page-size=0x20|g' -i "${srcdir}/refind-${pkgver}/Make.tiano" || true + # sed -e 's|--gc-sections|--gc-sections -z max-page-size=0x20|g' -i "${srcdir}/refind-${pkgver}/refind/Make.tiano" || true + # sed -e 's|--gc-sections|--gc-sections -z max-page-size=0x20|g' -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" + # sed -e 's|--gc-sections|--gc-sections -z max-page-size=0x20|g' -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true + # sed -e 's|--strip-unneeded|--section-alignment=0x20 --strip-unneeded|g' -i "${srcdir}/refind-${pkgver}/Make.tiano" || true + # sed -e 's|--strip-unneeded|--section-alignment=0x20 --strip-unneeded|g' -i "${srcdir}/refind-${pkgver}/refind/Make.tiano" || true + # sed -e 's|--strip-unneeded|--section-alignment=0x20 --strip-unneeded|g' -i "${srcdir}/refind-${pkgver}/filesystems/Make.tiano" + # sed -e 's|--strip-unneeded|--section-alignment=0x20 --strip-unneeded|g' -i "${srcdir}/refind-${pkgver}/gptsync/Make.tiano" || true + fi } prepare() { - _setup_env_vars + if [[ "${_USE_GNU_EFI}" != "1" ]]; then + _setup_tianocore_env_vars + + msg "Prepare Tianocore Sources" + _prepare_tianocore_sources + fi - msg "Prepare Tianocore Sources" - _prepare_tianocore_sources - msg "Prepare rEFInd Sources" _prepare_refind_sources } -build() { +_build_tianocore_sources() { - _setup_env_vars + _setup_tianocore_env_vars cd "${_UDK_DIR}/" @@ -171,10 +203,25 @@ make -C "${EDK_TOOLS_PATH}" echo + msg "Unset all compiler FLAGS" + unset CFLAGS + unset CPPFLAGS + unset CXXFLAGS + unset LDFLAGS + unset MAKEFLAGS + msg "Compile UDK Libraries" "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_TARGET}" -a "${_TIANO_ARCH}" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}" echo +} + +build() { + + if [[ "${_USE_GNU_EFI}" != "1" ]]; then + _build_tianocore_sources + fi + cd "${srcdir}/refind-${pkgver}/" msg "Unset all compiler FLAGS" @@ -185,12 +232,67 @@ unset MAKEFLAGS msg "Compile rEFInd UEFI application" - make tiano - echo + if [[ "${_USE_GNU_EFI}" == "1" ]]; then + make gnuefi + echo + else + make tiano + echo + fi + cd "${srcdir}/refind-${pkgver}/filesystems/" + + msg "Unset all compiler FLAGS" + unset CFLAGS + unset CPPFLAGS + unset CXXFLAGS + unset LDFLAGS + unset MAKEFLAGS + msg "Compile UEFI FS drivers" - make fs - echo + if [[ "${_USE_GNU_EFI}" == "1" ]]; then + make btrfs_gnuefi + echo + + make ext4_gnuefi + echo + + make ext2_gnuefi + echo + + make hfs_gnuefi + echo + + make iso9660_gnuefi + echo + + make reiserfs_gnuefi + echo + + # make xfs_gnuefi + # echo + else + make btrfs + echo + + make ext4 + echo + + make ext2 + echo + + make hfs + echo + + make iso9660 + echo + + make reiserfs + echo + + # make xfs + # echo + fi } Modified: refind-efi.install =================================================================== --- refind-efi.install 2014-05-28 16:23:07 UTC (rev 213698) +++ refind-efi.install 2014-05-28 16:24:39 UTC (rev 213699) @@ -16,7 +16,7 @@ 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/doc/refind/html/ +HTML Documentation is available at /usr/share/refind/docs/html/ More info: https://wiki.archlinux.org/index.php/UEFI_Bootloaders#Using_rEFInd Modified: refind_linux.conf =================================================================== --- refind_linux.conf 2014-05-28 16:23:07 UTC (rev 213698) +++ refind_linux.conf 2014-05-28 16:24:39 UTC (rev 213699) @@ -1,5 +1,5 @@ ## 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 ro" -"Boot to terminal" "root=PARTUUID=XXXXXXXX rootfstype=XXXX ro systemd.unit=multi-user.target" +"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"
