@@ -, +, @@ --- sys-boot/refind/metadata.xml | 47 ++++++++++++++++++---- sys-boot/refind/refind-0.10.2.ebuild | 76 +++++++++++++++++++++++++++++++----- 2 files changed, 106 insertions(+), 17 deletions(-) --- a/sys-boot/refind/metadata.xml +++ a/sys-boot/refind/metadata.xml @@ -1,4 +1,4 @@ - + @@ -6,16 +6,44 @@ Sam Jorna - sveyret@gmail.com - Stephane Veyret + sveyret@gmail.com + Stéphane Veyret Proxy - Maintainer.CC on bugs - + - proxy-maint@gentoo.org - Proxy Maintainers + proxy-maint@gentoo.org + Proxy Maintainers - EFI Boot Manager - Gestionnaire d'amorçage EFI + +A graphical boot manager for EFI- and UEFI-based computers, such as all +Intel-based Macs and recent (most 2011 and later) PCs. rEFInd presents a +boot menu showing all the EFI boot loaders on the EFI-accessible +partitions, and optionally BIOS-bootable partitions on Macs and BIOS boot +entries on UEFI PCs with CSMs. EFI-compatbile OSes, including Linux, +provide boot loaders that rEFInd can detect and launch. rEFInd can launch +Linux EFI boot loaders such as ELILO, GRUB Legacy, GRUB 2, and 3.3.0 and +later kernels with EFI stub support. EFI filesystem drivers for ext2/3/4fs, +ReiserFS, Btrfs, NTFS, HFS+, and ISO-9660 enable rEFInd to read boot +loaders from these filesystems, too. rEFInd's ability to detect boot +loaders at runtime makes it very easy to use, particularly when paired with +Linux kernels that provide EFI stub support. + + +Un gestionnaire d'amorçage pour ordinateur EFI ou UEFI tel que tous les Macs +contenant un processeur Intel et les PC récents (2011 et après). rEFInd affiche +un menu d'amorçage montrant tous les gestionnaires d'amorçage sur les +partitions EFI accessibles et optionnellement les partitions démarrable en BIOS +sur Macs et les entrées BIOS sur les PC UEFI avec CSM. Les systèmes +d'exploitation compatibles EFI, incluant Linux, fournissent des gestionnaires +d'amorçage que rEFInd détect et démarre. rEFInd peut démarrer les gestionnaires +d'amorçage EFI Linux tel que ELILO, GRUB Legacy, GRUB 2 ainsi que les noyaux +3.3.0 et suivants avec le support EFI stub. Les pilotes EFI pour les sytèmes de +fichiers ext2/3/4fs, ReiserFS, Btrfs, NTFS, HFS+ et ISO-9660 permettent à +rEFInd de lire les gestionnaires d'amorçage également depuis ces systèmes de +fichiers. La capacité de rEFInd à détecter les gestionnaires d'amorçage au +moment de l'exécution le rend très facile à utiliser, en particulier associé à +des noyau Linux qui fournissent un support EFI stub. + Builds the EFI binary ext2 filesystem driver Builds the EFI binary ext4 filesystem driver @@ -24,6 +52,7 @@ Builds the EFI binary hfs filesystem driver Builds the EFI binary btrfs filesystem driver Builds the EFI binary ntfs filesystem driver + Compile using GNU-EFI instead of Tianocore Install document files @@ -34,9 +63,11 @@ Construire le gestionnaire EFI pour le système de fichier hfs Construire le gestionnaire EFI pour le système de fichier btrfs Construire le gestionnaire EFI pour le système de fichier ntfs + Compiler en utilisant GNU-EFI au lieu de Tianocore Installer les fichiers de documentation refind + --- a/sys-boot/refind/refind-0.10.2.ebuild +++ a/sys-boot/refind/refind-0.10.2.ebuild @@ -2,9 +2,9 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -EAPI=5 +EAPI=6 -inherit eutils +inherit eutils toolchain-funcs flag-o-matic DESCRIPTION="The rEFInd UEFI Boot Manager by Rod Smith" HOMEPAGE="http://www.rodsbooks.com/refind/" @@ -15,9 +15,10 @@ LICENSE="BSD GPL-2 GPL-3 FDL-1.3" SLOT="0" KEYWORDS="~amd64 ~x86" FS_USE="btrfs +ext2 +ext4 hfs +iso9660 ntfs reiserfs" -IUSE="${FS_USE} doc" +IUSE="${FS_USE} -gnuefi doc" -DEPEND=">=sys-boot/gnu-efi-3.0.2" +DEPEND="gnuefi? ( >=sys-boot/gnu-efi-3.0.2 ) + !gnuefi? ( >=sys-boot/udk-2015 )" DOCS="NEWS.txt README.txt docs/refind docs/Styles" @@ -39,19 +40,76 @@ pkg_setup() { fi } +src_prepare() { + eapply_user + for f in "${S}"/*/Make.tiano "${S}"/Make.common; do + sed -i -e 's/^\(include .*target.txt.*\)$/#\1/' \ + -e 's@^\(TIANO_INCLUDE_DIRS\s*=\s*-I\s*\).*$@\1/usr/include/udk \\@' \ + -e '/^\s*-I \$(EDK2BASE).*$/d' \ + "${f}" || die "Failed to patch Tianocore make file in" \ + $(basename $(dirname ${f})) + done + for f in "${S}"/*/Make.tiano; do + sed -i -e 's@^\(EFILIB\s*=\s*\).*$@\1/usr/lib@' \ + -e 's@\$(EFILIB).*/\([^/]*\).lib@-l\1@' \ + -e 's/\(--start-group\s*\$(ALL_EFILIBS)\)/-L \$(EFILIB) \1/' \ + "${f}" || die "Failed to patch Tianocore make file in" \ + $(basename $(dirname ${f})) + done + sed -i -e '/Guids/i#include "AutoGen.h"\n' "${S}/filesystems/AutoGen.c" + for f in "${S}"/*/AutoGen.c; do + cat >>"${f}" <