summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
Diffstat (limited to 'extra')
-rw-r--r--extra/accountsservice/PKGBUILD8
-rw-r--r--extra/accountsservice/more-exclusions.patch21
-rw-r--r--extra/alsa-lib/PKGBUILD6
-rw-r--r--extra/evince/PKGBUILD6
-rw-r--r--extra/gptfdisk/PKGBUILD11
-rw-r--r--extra/qemu/65-kvm.rules1
-rw-r--r--extra/qemu/PKGBUILD32
-rw-r--r--extra/qemu/qemu.install2
-rw-r--r--extra/refind-efi/PKGBUILD149
-rw-r--r--extra/refind-efi/UDK-MdePkg-Revert-PathNodeCount.patch660
-rw-r--r--extra/refind-efi/refind_include_more_shell_paths.patch13
11 files changed, 126 insertions, 783 deletions
diff --git a/extra/accountsservice/PKGBUILD b/extra/accountsservice/PKGBUILD
index a7cf9580c..afa12600d 100644
--- a/extra/accountsservice/PKGBUILD
+++ b/extra/accountsservice/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 185560 2013-05-15 07:14:20Z heftig $
+# $Id: PKGBUILD 189848 2013-07-09 13:13:14Z heftig $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=accountsservice
-pkgver=0.6.32
+pkgver=0.6.34
pkgrel=1
pkgdesc="D-Bus interface for user account query and manipulation"
arch=(i686 x86_64)
@@ -12,8 +12,8 @@ depends=('glib2' 'polkit' 'systemd')
makedepends=('intltool' 'gobject-introspection' 'vala')
options=('!libtool')
source=($url/$pkgname-$pkgver.tar.xz more-exclusions.patch)
-md5sums=('0c2c87f3bf982bdab54be887fed25bc5'
- '1d5cf127e5aac407fe7c37b2f4fd503c')
+md5sums=('dbf4323b688a314b4bf76890ad6d5279'
+ '45ef529fb38d32ec7a1d03005dd20ced')
build() {
cd $pkgname-$pkgver
diff --git a/extra/accountsservice/more-exclusions.patch b/extra/accountsservice/more-exclusions.patch
index 46a80c4c9..b9753b24b 100644
--- a/extra/accountsservice/more-exclusions.patch
+++ b/extra/accountsservice/more-exclusions.patch
@@ -1,12 +1,11 @@
-diff --git i/src/daemon.c w/src/daemon.c
-index c65eca3..9166055 100644
---- i/src/daemon.c
-+++ w/src/daemon.c
-@@ -77,6 +77,7 @@ static const char *default_excludes[] = {
- "games",
- "man",
- "at",
-+ "git",
- NULL
- };
+diff -u -r accountsservice-0.6.34/src/daemon.c accountsservice-0.6.34-more/src/daemon.c
+--- accountsservice-0.6.34/src/daemon.c 2013-06-11 17:50:37.000000000 +0200
++++ accountsservice-0.6.34-more/src/daemon.c 2013-07-09 15:06:46.608425655 +0200
+@@ -55,6 +55,7 @@
+ #endif
+ static const char *default_excludes[] = {
++ "git",
+ "bin",
+ "root",
+ "daemon",
diff --git a/extra/alsa-lib/PKGBUILD b/extra/alsa-lib/PKGBUILD
index c3995f60b..6981e52be 100644
--- a/extra/alsa-lib/PKGBUILD
+++ b/extra/alsa-lib/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 186216 2013-05-22 06:35:12Z tpowa $
+# $Id: PKGBUILD 189842 2013-07-09 13:01:47Z tpowa $
# Maintainer: judd <jvinet@zeroflux.org>
pkgname=alsa-lib
-pkgver=1.0.27.1
+pkgver=1.0.27.2
pkgrel=1
pkgdesc="An alternative implementation of Linux sound support"
arch=('i686' 'x86_64')
@@ -24,4 +24,4 @@ package() {
cd "$srcdir/$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
}
-md5sums=('17102aaab10e9d4b19f6b02937bab015')
+md5sums=('69129a7c37697f81ac092335e9fa452b')
diff --git a/extra/evince/PKGBUILD b/extra/evince/PKGBUILD
index 8d022c38d..c3323c732 100644
--- a/extra/evince/PKGBUILD
+++ b/extra/evince/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 185565 2013-05-15 07:56:22Z heftig $
+# $Id: PKGBUILD 189847 2013-07-09 13:12:40Z heftig $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=evince
-pkgver=3.8.2
+pkgver=3.8.3
pkgrel=1
pkgdesc="Simply a document viewer"
url="http://projects.gnome.org/evince/"
@@ -16,7 +16,7 @@ groups=(gnome)
install=evince.install
options=('!libtool' '!emptydirs')
source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)
-sha256sums=('dd35b54b82190ba01f0c481e2d073ccddaa325ce80964b655dc167752b6bc2f5')
+sha256sums=('1526921201fabe833733e7c2552dfbe62085fd18d325a27c2fffb332e5e418bd')
build() {
cd $pkgname-$pkgver
diff --git a/extra/gptfdisk/PKGBUILD b/extra/gptfdisk/PKGBUILD
index f0bf3edf9..9adee070c 100644
--- a/extra/gptfdisk/PKGBUILD
+++ b/extra/gptfdisk/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 180803 2013-03-26 11:49:32Z foutrelis $
+# $Id: PKGBUILD 189840 2013-07-09 09:22:21Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Hokum <hokum_at_mail_dot_ru>
pkgname=gptfdisk
-pkgver=0.8.6
-pkgrel=2
+pkgver=0.8.7
+pkgrel=1
pkgdesc="A text-mode partitioning tool that works on Globally Unique Identifier (GUID) Partition Table (GPT) disks"
arch=('i686' 'x86_64')
url="http://www.rodsbooks.com/gdisk/"
@@ -15,14 +15,11 @@ provides=("gdisk=$pkgver")
conflicts=('gdisk')
replaces=('gdisk')
source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
-sha256sums=('4579cd54842459699970e24720dda7fb0aa217027818623089c321bc62a647b2')
+sha256sums=('39e61d9f3701e95db1bcb83ce8fb211b22f33548e3c75b17f22067c6968e91e3')
build() {
cd "$srcdir/$pkgname-$pkgver"
- # Get rid of annoying debug message (have sent email to upstream author)
- sed -i '/Entering GPTPart::SetName/d' gptpart.cc
-
make
}
diff --git a/extra/qemu/65-kvm.rules b/extra/qemu/65-kvm.rules
index c2f7317aa..be955fd87 100644
--- a/extra/qemu/65-kvm.rules
+++ b/extra/qemu/65-kvm.rules
@@ -1 +1,2 @@
KERNEL=="kvm", GROUP="kvm", MODE="0660"
+KERNEL=="vhost-net", GROUP="kvm", MODE="0660", TAG+="uaccess"
diff --git a/extra/qemu/PKGBUILD b/extra/qemu/PKGBUILD
index 8a635ed4d..9220a8fee 100644
--- a/extra/qemu/PKGBUILD
+++ b/extra/qemu/PKGBUILD
@@ -1,34 +1,32 @@
-# $Id: PKGBUILD 185570 2013-05-15 08:05:29Z bpiotrowski $
+# $Id: PKGBUILD 189853 2013-07-09 13:42:03Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=qemu
-pkgver=1.4.2
+pkgver=1.5.1
pkgrel=2
pkgdesc="A generic and open source processor emulator which achieves a good emulation speed by using dynamic translation."
arch=('i686' 'x86_64')
license=('GPL2' 'LGPL2.1')
url="http://wiki.qemu.org/Index.html"
makedepends=('texi2html' 'perl' 'python2')
-depends=('pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2' 'gnutls>=2.4.1' 'bluez-libs' 'vde2' 'util-linux' 'curl' 'libsasl' 'libgl' 'libpulse' 'seabios' 'libcap-ng' 'libaio' 'libseccomp' 'libiscsi')
+depends=('pixman' 'libjpeg' 'libpng' 'sdl' 'alsa-lib' 'nss' 'glib2'
+ 'gnutls>=2.4.1' 'bluez-libs' 'vde2' 'util-linux' 'curl' 'libsasl'
+ 'libgl' 'libpulse' 'seabios' 'libcap-ng' 'libaio' 'libseccomp'
+ 'libiscsi')
backup=('etc/qemu/target-x86_64.conf')
install=qemu.install
source=(http://wiki.qemu.org/download/${pkgname}-${pkgver}.tar.bz2
65-kvm.rules)
replaces=('qemu-kvm')
-options=(!strip !libtool)
-
-prepare()
-{
- cd "${srcdir}/${pkgname}-${pkgver}"
- sed -i -e 's/lib64/lib/g' ldscripts/x86_64.ld
-}
+options=(!strip)
build ()
{
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr --sysconfdir=/etc --audio-drv-list=alsa,sdl,pa \
- --python=/usr/bin/python2 \
- --audio-card-list=ac97,sb16,es1370,hda \
- --enable-docs --enable-mixemu --libexecdir=/usr/lib/qemu
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # gtk gui breaks keymappings at the moment
+ ./configure --prefix=/usr --sysconfdir=/etc --audio-drv-list='pa alsa sdl'\
+ --python=/usr/bin/python2 --smbd=/usr/bin/smbd \
+ --enable-mixemu --libexecdir=/usr/lib/qemu \
+ --disable-gtk --enable-linux-aio --enable-seccomp
make
}
@@ -53,5 +51,5 @@ package() {
done
}
-md5sums=('b3eafa033ae4b8faba584f9f141b888f'
- 'b316a066d2f1bb57d8f5b7ea1d0d1caf')
+md5sums=('b56e73bdcfdb214d5c68e13111aca96f'
+ '9d6de26867a05c306157e3d3c612b28a')
diff --git a/extra/qemu/qemu.install b/extra/qemu/qemu.install
index f4fabcc54..79ee83536 100644
--- a/extra/qemu/qemu.install
+++ b/extra/qemu/qemu.install
@@ -2,8 +2,6 @@
post_install() {
#
groupadd kvm -f -g 78
- echo ">>> PLEASE READ FOR KVM USAGE!"
- echo ">>> Add yourself to the group 'kvm'."
}
post_upgrade() {
diff --git a/extra/refind-efi/PKGBUILD b/extra/refind-efi/PKGBUILD
index c201d7bf1..1b5a1435d 100644
--- a/extra/refind-efi/PKGBUILD
+++ b/extra/refind-efi/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 189205 2013-06-29 11:28:10Z tpowa $
+# $Id: PKGBUILD 189851 2013-07-09 13:36:09Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Keshav Padram <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
@@ -16,7 +16,7 @@ _COMPILER="GCC46"
#######
pkgname="refind-efi"
-pkgver="0.7.0"
+pkgver="0.7.1"
pkgrel="1"
pkgdesc="Rod Smith's fork of rEFIt UEFI Boot Manager - built with Tianocore UDK libs"
url="http://www.rodsbooks.com/refind/index.html"
@@ -26,40 +26,47 @@ license=('GPL3' 'custom')
makedepends=('subversion' 'python2')
depends=('dosfstools' 'efibootmgr')
optdepends=('mactel-boot: For bless command in Apple Mac systems'
- 'bash: For /usr/bin/refind-mkfont script'
- 'imagemagick: For /usr/bin/refind-mkfont script')
+ 'bash: For refind-mkfont script'
+ 'imagemagick: For refind-mkfont script')
options=('!strip' 'docs' '!makeflags')
install="${pkgname}.install"
source=("http://downloads.sourceforge.net/refind/refind-src-${pkgver}.zip"
- 'UDK-MdePkg-Revert-PathNodeCount.patch'
'refind_linux.conf')
for _DIR_ in BaseTools MdePkg MdeModulePkg IntelFrameworkPkg IntelFrameworkModulePkg ; do
source+=("${_TIANO_DIR_}/${_DIR_}::svn+${_TIANOCORE_SVN_URL}/${_DIR_}")
done
+sha1sums=('5e4b15202efc658e58e68e64af8a1b2c84aab175'
+ '3d53eb615c3363d45feb95b9bfbf1d5491bf1c24'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP')
+
[[ "${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_udk_common() {
+_setup_env_vars() {
- ## Unset all FLAGS
- unset CFLAGS
- unset CPPFLAGS
- unset CXXFLAGS
- unset LDFLAGS
- unset MAKEFLAGS
-
- ## Setup UDK Environment variables
+ msg "Setup UDK PATH ENV variables"
export _UDK_DIR="${srcdir}/${_TIANO_DIR_}_build"
export EDK_TOOLS_PATH="${_UDK_DIR}/BaseTools"
+}
+
+_prepare_tianocore_sources() {
+
+ _setup_env_vars
+
+ msg "Delete old UDK BUILD dir"
rm -rf "${_UDK_DIR}/" || true
mkdir -p "${_UDK_DIR}/"
@@ -69,103 +76,127 @@ _tianocore_udk_common() {
cd "${_UDK_DIR}/"
- ## Fix PcdMaximumPathNodeCount compile error
- patch -Np1 -R -i "${srcdir}/UDK-MdePkg-Revert-PathNodeCount.patch"
- echo
-
- ## Cleanup UDK config files
+ msg "Cleanup UDK config files"
rm -rf "${_UDK_DIR}/Build/" || true
rm -rf "${_UDK_DIR}/Conf/" || true
mkdir -p "${_UDK_DIR}/Conf/"
mkdir -p "${_UDK_DIR}/Build/"
- ## UDK BaseTools requires python2
+ msg "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
+ msg "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 GCC >=4.7 error - gcc: error: unrecognized command line option '-melf_x86_64'
+ msg "Fix GCC >=4.7 error - gcc: error: unrecognized command line option '-melf_x86_64'"
sed 's| -m64 --64 -melf_x86_64| -m64|g' -i "${EDK_TOOLS_PATH}/Conf/tools_def.template" || true
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
- ## Remove GCC -g debug option and add -0s -mabi=ms
+ 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
- ## Fix UDK Target Platform
+ 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
sed "s|TOOL_CHAIN_TAG = MYTOOLS|TOOL_CHAIN_TAG = ${_COMPILER}|g" -i "${EDK_TOOLS_PATH}/Conf/target.template" || true
- ## Setup UDK Environment
+ msg "Fix UDK Target ARCH for rEFInd"
+ sed "s|X64|${_TIANO_ARCH}|g" -i "${_UDK_DIR}/Conf/target.txt" || true
+ sed "s|IA32|${_TIANO_ARCH}|g" -i "${_UDK_DIR}/Conf/target.txt" || true
+
chmod +x "${_UDK_DIR}/BaseTools/BuildEnv"
- source "${_UDK_DIR}/BaseTools/BuildEnv" BaseTools
- echo
- ## Compile UDK BaseTools
- make -C "${EDK_TOOLS_PATH}"
- echo
+}
+
+_prepare_refind_sources() {
- ## Compile UDK x86_64-UEFI Libraries
- "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_TARGET}" -a "${_TIANO_ARCH}" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}"
- echo
+ cd "${srcdir}/refind-${pkgver}/"
- ## Fix UDK Target ARCH for rEFInd
- sed "s|IA32|${_TIANO_ARCH}|g" -i "${_UDK_DIR}/Conf/target.txt" || true
+ 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
+
+}
+
+prepare() {
+
+ msg "Prepare Tianocore Sources"
+ _prepare_tianocore_sources
+
+ msg "Prepare rEFInd Sources"
+ _prepare_refind_sources
}
build() {
- _tianocore_udk_common
+ _setup_env_vars
+
+ cd "${_UDK_DIR}/"
+
+ msg "Unset all compiler FLAGS"
+ unset CFLAGS
+ unset CPPFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ msg "Setup UDK Environment"
+ source "${_UDK_DIR}/BaseTools/BuildEnv" BaseTools
echo
- cd "${srcdir}/refind-${pkgver}/"
+ msg "Compile UDK BaseTools"
+ make -C "${EDK_TOOLS_PATH}"
+ echo
- ## 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
+ msg "Compile UDK Libraries"
+ "${EDK_TOOLS_PATH}/BinWrappers/PosixLike/build" -p "${_UDK_TARGET}" -a "${_TIANO_ARCH}" -b "${_TIANOCORE_TARGET}" -t "${_COMPILER}"
+ echo
+
+ cd "${srcdir}/refind-${pkgver}/"
- ## Unset all FLAGS
+ msg "Unset all compiler FLAGS"
unset CFLAGS
unset CPPFLAGS
unset CXXFLAGS
unset LDFLAGS
unset MAKEFLAGS
- ## Compile refind.efi
+ msg "Compile rEFInd UEFI application"
make tiano
+ echo
- ## Compile UEFI FS drivers
+ msg "Compile UEFI FS drivers"
make fs
+ echo
}
package() {
- ## Install the rEFInd UEFI application
+ msg "Install the rEFInd UEFI application"
install -d "${pkgdir}/usr/lib/refind/"
install -D -m0644 "${srcdir}/refind-${pkgver}/refind/refind_${_TIANO_S_ARCH}.efi" "${pkgdir}/usr/lib/refind/refind_${_TIANO_S_ARCH}.efi"
- ## Install UEFI drivers built from rEFInd
+ msg "Install UEFI drivers built from rEFInd"
install -d "${pkgdir}/usr/lib/refind/drivers_${_TIANO_S_ARCH}/"
install -D -m0644 "${srcdir}/refind-${pkgver}/drivers_${_TIANO_S_ARCH}"/*.efi "${pkgdir}/usr/lib/refind/drivers_${_TIANO_S_ARCH}/"
- ## Install UEFI applications built from rEFInd
+ msg "Install UEFI applications built from rEFInd"
install -d "${pkgdir}/usr/lib/refind/tools_${_TIANO_S_ARCH}"
install -D -m0644 "${srcdir}/refind-${pkgver}/gptsync/gptsync_${_TIANO_S_ARCH}.efi" "${pkgdir}/usr/lib/refind/tools_${_TIANO_S_ARCH}/gptsync_${_TIANO_S_ARCH}.efi"
- ## Install the rEFInd config file
+ msg "Install the rEFInd config file"
install -d "${pkgdir}/usr/lib/refind/config/"
install -D -m0644 "${srcdir}/refind-${pkgver}/refind.conf-sample" "${pkgdir}/usr/lib/refind/config/refind.conf"
install -D -m0644 "${srcdir}/refind_linux.conf" "${pkgdir}/usr/lib/refind/config/refind_linux.conf"
- ## Install the rEFInd docs
+ msg "Install the rEFInd docs"
install -d "${pkgdir}/usr/share/refind/docs/html/"
install -d "${pkgdir}/usr/share/refind/docs/Styles/"
install -D -m0644 "${srcdir}/refind-${pkgver}/docs/refind"/* "${pkgdir}/usr/share/refind/docs/html/"
@@ -174,37 +205,29 @@ package() {
install -D -m0644 "${srcdir}/refind-${pkgver}/NEWS.txt" "${pkgdir}/usr/share/refind/docs/NEWS"
rm -f "${pkgdir}/usr/share/refind/docs/html/.DS_Store" || true
- ## Install the rEFInd fonts
+ msg "Install the rEFInd fonts"
install -d "${pkgdir}/usr/share/refind/fonts/"
install -D -m0644 "${srcdir}/refind-${pkgver}/fonts"/* "${pkgdir}/usr/share/refind/fonts/"
rm -f "${pkgdir}/usr/share/refind/fonts/mkfont.sh"
- ## Install the rEFInd mkfont.sh
+ msg "Install the rEFInd mkfont.sh"
install -d "${pkgdir}/usr/bin/"
install -D -m0755 "${srcdir}/refind-${pkgver}/fonts/mkfont.sh" "${pkgdir}/usr/bin/refind-mkfont"
- ## Install the rEFInd icons
+ msg "Install the rEFInd icons"
install -d "${pkgdir}/usr/share/refind/icons/"
install -D -m0644 "${srcdir}/refind-${pkgver}/icons"/* "${pkgdir}/usr/share/refind/icons/"
- ## Install the rEFInd images
+ msg "Install the rEFInd images"
install -d "${pkgdir}/usr/share/refind/images/"
install -D -m0644 "${srcdir}/refind-${pkgver}/images"/*.{png,bmp} "${pkgdir}/usr/share/refind/images/"
- ## Install the rEFInd keys
+ msg "Install the rEFInd keys"
install -d "${pkgdir}/usr/share/refind/keys/"
install -D -m0644 "${srcdir}/refind-${pkgver}/keys"/* "${pkgdir}/usr/share/refind/keys/"
- ## Install the rEFIt license file, since rEFInd is a fork of rEFIt
+ msg "Install the rEFIt license file, since rEFInd is a fork of rEFIt"
install -d "${pkgdir}/usr/share/licenses/refind/"
install -D -m0644 "${srcdir}/refind-${pkgver}/LICENSE.txt" "${pkgdir}/usr/share/licenses/refind/LICENSE"
}
-sha1sums=('f71f00dbbe8c068c9ef80f468835c998832d364f'
- '4d1992699f9b48dd2b7e6bd6c0b25fc065f75894'
- '3d53eb615c3363d45feb95b9bfbf1d5491bf1c24'
- 'SKIP'
- 'SKIP'
- 'SKIP'
- 'SKIP'
- 'SKIP')
diff --git a/extra/refind-efi/UDK-MdePkg-Revert-PathNodeCount.patch b/extra/refind-efi/UDK-MdePkg-Revert-PathNodeCount.patch
deleted file mode 100644
index 1b8f5a44b..000000000
--- a/extra/refind-efi/UDK-MdePkg-Revert-PathNodeCount.patch
+++ /dev/null
@@ -1,660 +0,0 @@
-commit 771729c77fa49cf0ff17491f371003c4f5d66f85
-Author: niruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524>
-Date: Mon Sep 24 03:20:35 2012 +0000
-
- Add new API IsDevicePathValid() to UefiDevicePathLib.
-
- Signed-off-by: Ruiyu Ni<ruiyu.ni@intel.com>
- Reviewed-by: Liming Gao<liming.gao@intel.com>
- Reviewed-by: Kinney Michael D<michael.d.kinney@intel.com>
-
- git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13737 6f19259b-4bc3-4df7-8a09-765794883524
-
-diff --git a/MdePkg/Include/Library/DevicePathLib.h b/MdePkg/Include/Library/DevicePathLib.h
-index 68b1f1b..37acd45 100644
---- a/MdePkg/Include/Library/DevicePathLib.h
-+++ b/MdePkg/Include/Library/DevicePathLib.h
-@@ -4,7 +4,7 @@
- This library provides defines, macros, and functions to help create and parse
- EFI_DEVICE_PATH_PROTOCOL structures.
-
--Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-+Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
- This program and the accompanying materials are licensed and made available under
- the terms and conditions of the BSD License that accompanies this distribution.
- The full text of the license may be found at
-@@ -21,6 +21,28 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
- #define END_DEVICE_PATH_LENGTH (sizeof (EFI_DEVICE_PATH_PROTOCOL))
-
- /**
-+ Determine whether a given device path is valid.
-+ If DevicePath is NULL, then ASSERT().
-+
-+ @param DevicePath A pointer to a device path data structure.
-+ @param MaxSize The maximum size of the device path data structure.
-+
-+ @retval TRUE DevicePath is valid.
-+ @retval FALSE The length of any node node in the DevicePath is less
-+ than sizeof (EFI_DEVICE_PATH_PROTOCOL).
-+ @retval FALSE If MaxSize is not zero, the size of the DevicePath
-+ exceeds MaxSize.
-+ @retval FALSE If PcdMaximumDevicePathNodeCount is not zero, the node
-+ count of the DevicePath exceeds PcdMaximumDevicePathNodeCount.
-+**/
-+BOOLEAN
-+EFIAPI
-+IsDevicePathValid (
-+ IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
-+ IN UINTN MaxSize
-+ );
-+
-+/**
- Returns the Type field of a device path node.
-
- Returns the Type field of the device path node specified by Node.
-@@ -123,7 +145,8 @@ IsDevicePathEndType (
- Determines if a device path node is an end node of an entire device path.
-
- Determines if a device path node specified by Node is an end node of an entire device path.
-- If Node represents the end of an entire device path, then TRUE is returned. Otherwise, FALSE is returned.
-+ If Node represents the end of an entire device path, then TRUE is returned.
-+ Otherwise, FALSE is returned.
-
- If Node is NULL, then ASSERT().
-
-@@ -143,7 +166,8 @@ IsDevicePathEnd (
- Determines if a device path node is an end node of a device path instance.
-
- Determines if a device path node specified by Node is an end node of a device path instance.
-- If Node represents the end of a device path instance, then TRUE is returned. Otherwise, FALSE is returned.
-+ If Node represents the end of a device path instance, then TRUE is returned.
-+ Otherwise, FALSE is returned.
-
- If Node is NULL, then ASSERT().
-
-@@ -169,6 +193,7 @@ IsDevicePathEndInstance (
-
- If Node is NULL, then ASSERT().
- If NodeLength >= 0x10000, then ASSERT().
-+ If NodeLength < sizeof (EFI_DEVICE_PATH_PROTOCOL), then ASSERT().
-
- @param Node A pointer to a device path node data structure.
- @param Length The length, in bytes, of the device path node.
-@@ -208,13 +233,14 @@ SetDevicePathEndNode (
- /**
- Returns the size of a device path in bytes.
-
-- This function returns the size, in bytes, of the device path data structure specified by
-- DevicePath including the end of device path node. If DevicePath is NULL, then 0 is returned.
-+ This function returns the size, in bytes, of the device path data structure
-+ specified by DevicePath including the end of device path node.
-+ If DevicePath is NULL or invalid, then 0 is returned.
-
-- @param DevicePath A pointer to a device path data structure.
--
-- @retval 0 DevicePath is NULL.
-- @retval Others The size of a device path in bytes.
-+ @param DevicePath A pointer to a device path data structure.
-+
-+ @retval 0 If DevicePath is NULL or invalid.
-+ @retval Others The size of a device path in bytes.
-
- **/
- UINTN
-@@ -235,7 +261,7 @@ GetDevicePathSize (
-
- @param DevicePath A pointer to a device path data structure.
-
-- @retval NULL DevicePath is NULL.
-+ @retval NULL DevicePath is NULL or invalid.
- @retval Others A pointer to the duplicated device path.
-
- **/
-@@ -263,6 +289,7 @@ DuplicateDevicePath (
- @param SecondDevicePath A pointer to a device path data structure.
-
- @retval NULL If there is not enough memory for the newly allocated buffer.
-+ @retval NULL If FirstDevicePath or SecondDevicePath is invalid.
- @retval Others A pointer to the new device path if success.
- Or a copy an end-of-device-path if both FirstDevicePath and SecondDevicePath are NULL.
-
-@@ -316,6 +343,7 @@ AppendDevicePathNode (
- and a new end-of-device-path-instance node is inserted between.
- If DevicePath is NULL, then a copy if DevicePathInstance is returned.
- If DevicePathInstance is NULL, then NULL is returned.
-+ If DevicePath or DevicePathInstance is invalid, then NULL is returned.
- If there is not enough memory to allocate space for the new device path, then NULL is returned.
- The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
- free the memory allocated.
-@@ -341,6 +369,7 @@ AppendDevicePathInstance (
- point to the next device path instance in the device path (or NULL if no more) and updates Size
- to hold the size of the device path instance copy.
- If DevicePath is NULL, then NULL is returned.
-+ If DevicePath points to a invalid device path, then NULL is returned.
- If there is not enough memory to allocate space for the new device path, then NULL is returned.
- The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
- free the memory allocated.
-@@ -394,12 +423,13 @@ CreateDeviceNode (
- Determines if a device path is single or multi-instance.
-
- This function returns TRUE if the device path specified by DevicePath is multi-instance.
-- Otherwise, FALSE is returned. If DevicePath is NULL, then FALSE is returned.
-+ Otherwise, FALSE is returned.
-+ If DevicePath is NULL or invalid, then FALSE is returned.
-
- @param DevicePath A pointer to a device path data structure.
-
- @retval TRUE DevicePath is multi-instance.
-- @retval FALSE DevicePath is not multi-instance, or DevicePath is NULL.
-+ @retval FALSE DevicePath is not multi-instance, or DevicePath is NULL or invalid.
-
- **/
- BOOLEAN
-diff --git a/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.c b/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.c
-index db065e4..a91a7a3 100644
---- a/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.c
-+++ b/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.c
-@@ -8,7 +8,7 @@
- environment varibles. Multi-instance device paths should never be placed
- on a Handle.
-
-- Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-+ Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
-@@ -28,6 +28,7 @@
- #include <Library/MemoryAllocationLib.h>
- #include <Library/UefiBootServicesTableLib.h>
- #include <Library/BaseLib.h>
-+#include <Library/PcdLib.h>
-
- //
- // Template for an end-of-device path node.
-@@ -42,6 +43,61 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_PROTOCOL mUefiDevicePathLib
- };
-
- /**
-+ Determine whether a given device path is valid.
-+ If DevicePath is NULL, then ASSERT().
-+
-+ @param DevicePath A pointer to a device path data structure.
-+ @param MaxSize The maximum size of the device path data structure.
-+
-+ @retval TRUE DevicePath is valid.
-+ @retval FALSE The length of any node node in the DevicePath is less
-+ than sizeof (EFI_DEVICE_PATH_PROTOCOL).
-+ @retval FALSE If MaxSize is not zero, the size of the DevicePath
-+ exceeds MaxSize.
-+ @retval FALSE If PcdMaximumDevicePathNodeCount is not zero, the node
-+ count of the DevicePath exceeds PcdMaximumDevicePathNodeCount.
-+**/
-+BOOLEAN
-+EFIAPI
-+IsDevicePathValid (
-+ IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
-+ IN UINTN MaxSize
-+ )
-+{
-+ UINTN Count;
-+ UINTN Size;
-+ UINTN NodeLength;
-+
-+ ASSERT (DevicePath != NULL);
-+
-+ for (Count = 0, Size = 0; !IsDevicePathEnd (DevicePath); DevicePath = NextDevicePathNode (DevicePath)) {
-+ NodeLength = DevicePathNodeLength (DevicePath);
-+ if (NodeLength < sizeof (EFI_DEVICE_PATH_PROTOCOL)) {
-+ return FALSE;
-+ }
-+
-+ if (MaxSize > 0) {
-+ Size += NodeLength;
-+ if (Size + END_DEVICE_PATH_LENGTH > MaxSize) {
-+ return FALSE;
-+ }
-+ }
-+
-+ if (PcdGet32 (PcdMaximumDevicePathNodeCount) > 0) {
-+ Count++;
-+ if (Count >= PcdGet32 (PcdMaximumDevicePathNodeCount)) {
-+ return FALSE;
-+ }
-+ }
-+ }
-+
-+ //
-+ // Only return TRUE when the End Device Path node is valid.
-+ //
-+ return (BOOLEAN) (DevicePathNodeLength (DevicePath) == END_DEVICE_PATH_LENGTH);
-+}
-+
-+/**
- Returns the Type field of a device path node.
-
- Returns the Type field of the device path node specified by Node.
-@@ -106,8 +162,12 @@ DevicePathNodeLength (
- IN CONST VOID *Node
- )
- {
-+ UINTN Length;
-+
- ASSERT (Node != NULL);
-- return ReadUnaligned16 ((UINT16 *)&((EFI_DEVICE_PATH_PROTOCOL *)(Node))->Length[0]);
-+ Length = ReadUnaligned16 ((UINT16 *)&((EFI_DEVICE_PATH_PROTOCOL *)(Node))->Length[0]);
-+ ASSERT (Length >= sizeof (EFI_DEVICE_PATH_PROTOCOL));
-+ return Length;
- }
-
- /**
-@@ -227,7 +287,8 @@ IsDevicePathEndInstance (
- be used to set the contents of the Length field.
-
- If Node is NULL, then ASSERT().
-- If NodeLength >= 0x10000, then ASSERT().
-+ If NodeLength >= SIZE_64KB, then ASSERT().
-+ If NodeLength < sizeof (EFI_DEVICE_PATH_PROTOCOL), then ASSERT().
-
- @param Node A pointer to a device path node data structure.
- @param Length The length, in bytes, of the device path node.
-@@ -243,7 +304,7 @@ SetDevicePathNodeLength (
- )
- {
- ASSERT (Node != NULL);
-- ASSERT (Length < 0x10000);
-+ ASSERT ((Length >= sizeof (EFI_DEVICE_PATH_PROTOCOL)) && (Length < SIZE_64KB));
- return WriteUnaligned16 ((UINT16 *)&((EFI_DEVICE_PATH_PROTOCOL *)(Node))->Length[0], (UINT16)(Length));
- }
-
-@@ -277,12 +338,12 @@ SetDevicePathEndNode (
- Returns the size of a device path in bytes.
-
- This function returns the size, in bytes, of the device path data structure
-- specified by DevicePath including the end of device path node. If DevicePath
-- is NULL, then 0 is returned.
-+ specified by DevicePath including the end of device path node.
-+ If DevicePath is NULL or invalid, then 0 is returned.
-
- @param DevicePath A pointer to a device path data structure.
--
-- @retval 0 If DevicePath is NULL.
-+
-+ @retval 0 If DevicePath is NULL or invalid.
- @retval Others The size of a device path in bytes.
-
- **/
-@@ -298,6 +359,10 @@ GetDevicePathSize (
- return 0;
- }
-
-+ if (!IsDevicePathValid (DevicePath, 0)) {
-+ return 0;
-+ }
-+
- //
- // Search for the end of the device path structure
- //
-@@ -324,7 +389,7 @@ GetDevicePathSize (
-
- @param DevicePath A pointer to a device path data structure.
-
-- @retval NULL If DevicePath is NULL.
-+ @retval NULL DevicePath is NULL or invalid.
- @retval Others A pointer to the duplicated device path.
-
- **/
-@@ -370,6 +435,7 @@ DuplicateDevicePath (
- @param SecondDevicePath A pointer to a device path data structure.
-
- @retval NULL If there is not enough memory for the newly allocated buffer.
-+ @retval NULL If FirstDevicePath or SecondDevicePath is invalid.
- @retval Others A pointer to the new device path if success.
- Or a copy an end-of-device-path if both FirstDevicePath and SecondDevicePath are NULL.
-
-@@ -398,6 +464,10 @@ AppendDevicePath (
- return DuplicateDevicePath (FirstDevicePath);
- }
-
-+ if (!IsDevicePathValid (FirstDevicePath, 0) || !IsDevicePathValid (SecondDevicePath, 0)) {
-+ return NULL;
-+ }
-+
- //
- // Allocate space for the combined device path. It only has one end node of
- // length EFI_DEVICE_PATH_PROTOCOL.
-@@ -500,6 +570,7 @@ AppendDevicePathNode (
- path instance and a new end-of-device-path-instance node is inserted between.
- If DevicePath is NULL, then a copy if DevicePathInstance is returned.
- If DevicePathInstance is NULL, then NULL is returned.
-+ If DevicePath or DevicePathInstance is invalid, then NULL is returned.
- If there is not enough memory to allocate space for the new device path, then
- NULL is returned.
- The memory is allocated from EFI boot services memory. It is the responsibility
-@@ -531,6 +602,10 @@ AppendDevicePathInstance (
- return NULL;
- }
-
-+ if (!IsDevicePathValid (DevicePath, 0) || !IsDevicePathValid (DevicePathInstance, 0)) {
-+ return NULL;
-+ }
-+
- SrcSize = GetDevicePathSize (DevicePath);
- InstanceSize = GetDevicePathSize (DevicePathInstance);
-
-@@ -559,6 +634,7 @@ AppendDevicePathInstance (
- DevicePath to point to the next device path instance in the device path (or NULL
- if no more) and updates Size to hold the size of the device path instance copy.
- If DevicePath is NULL, then NULL is returned.
-+ If DevicePath points to a invalid device path, then NULL is returned.
- If there is not enough memory to allocate space for the new device path, then
- NULL is returned.
- The memory is allocated from EFI boot services memory. It is the responsibility
-@@ -596,6 +672,10 @@ GetNextDevicePathInstance (
- return NULL;
- }
-
-+ if (!IsDevicePathValid (*DevicePath, 0)) {
-+ return NULL;
-+ }
-+
- //
- // Find the end of the device path instance
- //
-@@ -681,13 +761,14 @@ CreateDeviceNode (
-
- This function returns TRUE if the device path specified by DevicePath is
- multi-instance.
-- Otherwise, FALSE is returned. If DevicePath is NULL, then FALSE is returned.
-+ Otherwise, FALSE is returned.
-+ If DevicePath is NULL or invalid, then FALSE is returned.
-
- @param DevicePath A pointer to a device path data structure.
-
- @retval TRUE DevicePath is multi-instance.
-- @retval FALSE DevicePath is not multi-instance or DevicePath
-- is NULL.
-+ @retval FALSE DevicePath is not multi-instance, or DevicePath
-+ is NULL or invalid.
-
- **/
- BOOLEAN
-@@ -702,6 +783,10 @@ IsDevicePathMultiInstance (
- return FALSE;
- }
-
-+ if (!IsDevicePathValid (DevicePath, 0)) {
-+ return FALSE;
-+ }
-+
- Node = DevicePath;
- while (!IsDevicePathEnd (Node)) {
- if (IsDevicePathEndInstance (Node)) {
-@@ -776,15 +861,14 @@ FileDevicePath (
- IN CONST CHAR16 *FileName
- )
- {
-- UINT16 Size;
-+ UINTN Size;
- FILEPATH_DEVICE_PATH *FilePath;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_DEVICE_PATH_PROTOCOL *FileDevicePath;
-
- DevicePath = NULL;
-
-- Size = (UINT16) StrSize (FileName);
--
-+ Size = StrSize (FileName);
- FileDevicePath = AllocatePool (Size + SIZE_OF_FILEPATH_DEVICE_PATH + END_DEVICE_PATH_LENGTH);
- if (FileDevicePath != NULL) {
- FilePath = (FILEPATH_DEVICE_PATH *) FileDevicePath;
-diff --git a/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf b/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-index c34301d..2ae151d 100644
---- a/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-+++ b/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
-@@ -3,7 +3,7 @@
- #
- # Device Path Library that layers on top of the Memory Allocation Library.
- #
--# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
-+# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
- #
- # This program and the accompanying materials
- # are licensed and made available under the terms and conditions of the BSD License
-@@ -42,8 +42,10 @@
- MemoryAllocationLib
- DebugLib
- BaseMemoryLib
--
-+ PcdLib
-
- [Protocols]
- gEfiDevicePathProtocolGuid ## CONSUMES
-
-+[Pcd]
-+ gEfiMdePkgTokenSpaceGuid.PcdMaximumDevicePathNodeCount
-diff --git a/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLib.c b/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLib.c
-index 8275dd6..1052988 100644
---- a/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLib.c
-+++ b/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLib.c
-@@ -2,7 +2,7 @@
- Library instance that implement UEFI Device Path Library class based on protocol
- gEfiDevicePathUtilitiesProtocolGuid.
-
-- Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
-+ Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
-@@ -24,6 +24,7 @@
- #include <Library/MemoryAllocationLib.h>
- #include <Library/BaseMemoryLib.h>
- #include <Library/UefiBootServicesTableLib.h>
-+#include <Library/PcdLib.h>
-
- EFI_DEVICE_PATH_UTILITIES_PROTOCOL *mDevicePathUtilities = NULL;
-
-@@ -72,6 +73,61 @@ DevicePathLibConstructor (
- }
-
- /**
-+ Determine whether a given device path is valid.
-+ If DevicePath is NULL, then ASSERT().
-+
-+ @param DevicePath A pointer to a device path data structure.
-+ @param MaxSize The maximum size of the device path data structure.
-+
-+ @retval TRUE DevicePath is valid.
-+ @retval FALSE The length of any node node in the DevicePath is less
-+ than sizeof (EFI_DEVICE_PATH_PROTOCOL).
-+ @retval FALSE If MaxSize is not zero, the size of the DevicePath
-+ exceeds MaxSize.
-+ @retval FALSE If PcdMaximumDevicePathNodeCount is not zero, the node
-+ count of the DevicePath exceeds PcdMaximumDevicePathNodeCount.
-+**/
-+BOOLEAN
-+EFIAPI
-+IsDevicePathValid (
-+ IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
-+ IN UINTN MaxSize
-+ )
-+{
-+ UINTN Count;
-+ UINTN Size;
-+ UINTN NodeLength;
-+
-+ ASSERT (DevicePath != NULL);
-+
-+ for (Count = 0, Size = 0; !IsDevicePathEnd (DevicePath); DevicePath = NextDevicePathNode (DevicePath)) {
-+ NodeLength = DevicePathNodeLength (DevicePath);
-+ if (NodeLength < sizeof (EFI_DEVICE_PATH_PROTOCOL)) {
-+ return FALSE;
-+ }
-+
-+ if (MaxSize > 0) {
-+ Size += NodeLength;
-+ if (Size + END_DEVICE_PATH_LENGTH > MaxSize) {
-+ return FALSE;
-+ }
-+ }
-+
-+ if (PcdGet32 (PcdMaximumDevicePathNodeCount) > 0) {
-+ Count++;
-+ if (Count >= PcdGet32 (PcdMaximumDevicePathNodeCount)) {
-+ return FALSE;
-+ }
-+ }
-+ }
-+
-+ //
-+ // Only return TRUE when the End Device Path node is valid.
-+ //
-+ return (BOOLEAN) (DevicePathNodeLength (DevicePath) == END_DEVICE_PATH_LENGTH);
-+}
-+
-+/**
- Returns the Type field of a device path node.
-
- Returns the Type field of the device path node specified by Node.
-@@ -136,8 +192,12 @@ DevicePathNodeLength (
- IN CONST VOID *Node
- )
- {
-+ UINTN Length;
-+
- ASSERT (Node != NULL);
-- return ReadUnaligned16 ((UINT16 *)&((EFI_DEVICE_PATH_PROTOCOL *)(Node))->Length[0]);
-+ Length = ReadUnaligned16 ((UINT16 *)&((EFI_DEVICE_PATH_PROTOCOL *)(Node))->Length[0]);
-+ ASSERT (Length >= sizeof (EFI_DEVICE_PATH_PROTOCOL));
-+ return Length;
- }
-
- /**
-@@ -256,7 +316,8 @@ IsDevicePathEndInstance (
- be used to set the contents of the Length field.
-
- If Node is NULL, then ASSERT().
-- If NodeLength >= 0x10000, then ASSERT().
-+ If NodeLength >= SIZE_64KB, then ASSERT().
-+ If NodeLength < sizeof (EFI_DEVICE_PATH_PROTOCOL), then ASSERT().
-
- @param Node A pointer to a device path node data structure.
- @param Length The length, in bytes, of the device path node.
-@@ -272,7 +333,7 @@ SetDevicePathNodeLength (
- )
- {
- ASSERT (Node != NULL);
-- ASSERT (Length < 0x10000);
-+ ASSERT ((Length >= sizeof (EFI_DEVICE_PATH_PROTOCOL)) && (Length < SIZE_64KB));
- return WriteUnaligned16 ((UINT16 *)&((EFI_DEVICE_PATH_PROTOCOL *)(Node))->Length[0], (UINT16)(Length));
- }
-
-@@ -305,13 +366,14 @@ SetDevicePathEndNode (
- /**
- Returns the size of a device path in bytes.
-
-- This function returns the size, in bytes, of the device path data structure specified by
-- DevicePath including the end of device path node. If DevicePath is NULL, then 0 is returned.
-+ This function returns the size, in bytes, of the device path data structure
-+ specified by DevicePath including the end of device path node.
-+ If DevicePath is NULL or invalid, then 0 is returned.
-
-- @param DevicePath A pointer to a device path data structure.
--
-- @retval 0 If DevicePath is NULL.
-- @retval Others The size of a device path in bytes.
-+ @param DevicePath A pointer to a device path data structure.
-+
-+ @retval 0 If DevicePath is NULL or invalid.
-+ @retval Others The size of a device path in bytes.
-
- **/
- UINTN
-@@ -336,7 +398,7 @@ GetDevicePathSize (
-
- @param DevicePath A pointer to a device path data structure.
-
-- @retval NULL If DevicePath is NULL.
-+ @retval NULL If DevicePath is NULL or invalid.
- @retval Others A pointer to the duplicated device path.
-
- **/
-@@ -367,6 +429,7 @@ DuplicateDevicePath (
- @param SecondDevicePath A pointer to a device path data structure.
-
- @retval NULL If there is not enough memory for the newly allocated buffer.
-+ @retval NULL If FirstDevicePath or SecondDevicePath is invalid.
- @retval Others A pointer to the new device path if success.
- Or a copy an end-of-device-path if both FirstDevicePath and
- SecondDevicePath are NULL.
-@@ -431,6 +494,7 @@ AppendDevicePathNode (
- path instance and a new end-of-device-path-instance node is inserted between.
- If DevicePath is NULL, then a copy if DevicePathInstance is returned.
- If DevicePathInstance is NULL, then NULL is returned.
-+ If DevicePath or DevicePathInstance is invalid, then NULL is returned.
- If there is not enough memory to allocate space for the new device path, then
- NULL is returned.
- The memory is allocated from EFI boot services memory. It is the responsibility
-@@ -524,15 +588,16 @@ CreateDeviceNode (
- /**
- Determines if a device path is single or multi-instance.
-
-- This function returns TRUE if the device path specified by DevicePath is
-+ This function returns TRUE if the device path specified by DevicePath is
- multi-instance.
-- Otherwise, FALSE is returned. If DevicePath is NULL, then FALSE is returned.
-+ Otherwise, FALSE is returned.
-+ If DevicePath is NULL or invalid, then FALSE is returned.
-
- @param DevicePath A pointer to a device path data structure.
-
- @retval TRUE DevicePath is multi-instance.
-- @retval FALSE DevicePath is not multi-instance or DevicePath
-- is NULL.
-+ @retval FALSE DevicePath is not multi-instance, or DevicePath
-+ is NULL or invalid.
-
- **/
- BOOLEAN
-diff --git a/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf b/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
-index 3393830..16b47e3 100644
---- a/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
-+++ b/MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf
-@@ -4,7 +4,7 @@
- # Device Path Library that layers on top of the UEFI 2.0 Device Path Protocol.
- # This library is not available for EFI 1.10 modules.
- #
--# Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
-+# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
- #
- # This program and the accompanying materials
- # are licensed and made available under the terms and conditions of the BSD License
-@@ -44,11 +44,14 @@
- MemoryAllocationLib
- BaseLib
- DebugLib
--
-+ PcdLib
-
- [Protocols]
- gEfiDevicePathProtocolGuid ## CONSUMES
- gEfiDevicePathUtilitiesProtocolGuid ## CONSUMES
-
-+[Pcd]
-+ gEfiMdePkgTokenSpaceGuid.PcdMaximumDevicePathNodeCount
-+
- [Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SAL_DRIVER, Depex.common.DXE_SMM_DRIVER]
- gEfiDevicePathUtilitiesProtocolGuid
-diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
-index b29cb01..aefba3f 100644
---- a/MdePkg/MdePkg.dec
-+++ b/MdePkg/MdePkg.dec
-@@ -1287,6 +1287,9 @@
- ## Indicates the maximum node number of linked list
- gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000|UINT32|0x00000003
-
-+ ## Indicates the maximum node number of device path
-+ gEfiMdePkgTokenSpaceGuid.PcdMaximumDevicePathNodeCount|0|UINT32|0x00000029
-+
- ## Indicates the timeout tick of holding spin lock
- gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000|UINT32|0x00000004
-
diff --git a/extra/refind-efi/refind_include_more_shell_paths.patch b/extra/refind-efi/refind_include_more_shell_paths.patch
deleted file mode 100644
index 078322e1a..000000000
--- a/extra/refind-efi/refind_include_more_shell_paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/refind/main.c b/refind/main.c
-index beac3bf..1a2cf58 100644
---- a/refind/main.c
-+++ b/refind/main.c
-@@ -62,5 +62,5 @@
- #define SHELL_NAMES L"\\EFI\\tools\\shell.efi,\\EFI\\tools\\shellia32.efi,\\shellia32.efi"
- #define DRIVER_DIRS L"drivers,drivers_ia32"
- #else
--#define SHELL_NAMES L"\\EFI\\tools\\shell.efi"
-+#define SHELL_NAMES L"\\EFI\\tools\\shell.efi,\\shell.efi"
- #define DRIVER_DIRS L"drivers"
- #endif
-