[arch-commits] Commit in refind-efi/trunk (3 files)
Tobias Powalowski
tpowa at nymeria.archlinux.org
Wed May 28 16:24:39 UTC 2014
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 <tpowa at archlinux.org>
# 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/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
@@ -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"
More information about the arch-commits
mailing list