From 3f71901f8c228f4de570abed1831ce3ee425343e Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 8 Sep 2018 10:50:14 +0100 Subject: gentoo resync 08.09.2018 --- sys-boot/Manifest.gz | Bin 7708 -> 7706 bytes sys-boot/grub/Manifest | 3 + sys-boot/grub/files/2.02-X86_64_PLT32.patch | 75 +++++++ sys-boot/grub/files/2.02-gcc8.patch | 72 +++++++ sys-boot/grub/grub-2.02-r3.ebuild | 314 ++++++++++++++++++++++++++++ sys-boot/refind/Manifest | 4 +- sys-boot/refind/refind-0.10.8.ebuild | 197 ----------------- sys-boot/refind/refind-0.11.3.ebuild | 200 ++++++++++++++++++ 8 files changed, 666 insertions(+), 199 deletions(-) create mode 100644 sys-boot/grub/files/2.02-X86_64_PLT32.patch create mode 100644 sys-boot/grub/files/2.02-gcc8.patch create mode 100644 sys-boot/grub/grub-2.02-r3.ebuild delete mode 100644 sys-boot/refind/refind-0.10.8.ebuild create mode 100644 sys-boot/refind/refind-0.11.3.ebuild (limited to 'sys-boot') diff --git a/sys-boot/Manifest.gz b/sys-boot/Manifest.gz index aa5ef63906bb..2dd1d22b32d5 100644 Binary files a/sys-boot/Manifest.gz and b/sys-boot/Manifest.gz differ diff --git a/sys-boot/grub/Manifest b/sys-boot/grub/Manifest index 4099afef370f..fb73a8edaa08 100644 --- a/sys-boot/grub/Manifest +++ b/sys-boot/grub/Manifest @@ -1,5 +1,7 @@ +AUX 2.02-X86_64_PLT32.patch 2615 BLAKE2B db2c7f22a5232ec903bbad2416879d330a9d7c0e529f1135b07deaab4026ae51e6fd60ee6f29cb7cbc4c4422343ec0c56dcd3bb205855c45481ebcfc0e0c9c10 SHA512 d8d52f2e92291d382cff2c50af79634967eb5decba39f5787e311e771bd18763b68e87d93f44419ecc647c0189b7d4246ad4a4f9e3558200e7febf32cd757f5e AUX 2.02-freetype-capitalise-variables.patch 6454 BLAKE2B 7a05448d42c935b6942f2b9ac98eef2ddc2e7bb7e6584516859cd6586dee57911c83c98402b38cfe9044a3c3a79d41d6a86bb0918d1ca8ccf792d5ef93bad258 SHA512 99c8061453f54af0e95361101f6beb2340baef9b5a66c4c4ba78876b978df4b5686190b642090aae41f2ed2d464e267ba598e94c0926a37df3c36d866911a40c AUX 2.02-freetype-pkg-config.patch 7359 BLAKE2B 86ee01b2cb833354377aec3db0dcc05c9950169c9e83b9878018debef925a5238ba19b10ee0ce5124d7884deae8023ee03597e6eb56c244030f2492b5b7f0b1b SHA512 20fd57f8410073db7d6ae5c626266a310be65ca2f5cc4a2a9f2e66cb85a421c883b497e5fc7e3cd5a6ec066531f3ca4b8d837bf64007ade99418958aefd2dcf6 +AUX 2.02-gcc8.patch 2514 BLAKE2B 5eb8210441a41a44c4e0c73120d201c4ec5a8db27d0dbf37f991599ee6c2bb3aaf771a201d02829597f34f9a1af76f70dffcc9e25fa079c3e2eb72702d704692 SHA512 8eae4bfdbe595685961ed8f491b8dc8f30632d5d9e338612346a928318d4e4b811c5ffeb38354f698e40dbaa8449fd540a33ff2ca0e2af604cbe08988fc11238 AUX 2.02-multiple-early-initrd.patch 6771 BLAKE2B 088d1178c51ea7526bd7620ae0f8160c10d3673afd0ae3407e35673cb438875e24e13f8455245c36792814751995df1235d975eb036e97813e677250af403a9d SHA512 41450b475fb83ade629d165ae2c30682e5beb2edbfd148c6388bb720241f0682b20aa0456bc624d5e9f5605616ea27fab32a829ede6c8c673e1c88e6b774a5a8 AUX 2.02-xfs-sparse-inodes.patch 2548 BLAKE2B c3333b82b678bc0a2bfc6594719c89982f97b14b7a2f012814ce2f75e004cda46b8b7c2d4e668c5a52aee7814114a763c4d853d9c75b4322535096ba3c22e256 SHA512 4723c5dd9fd6e9b6c8677e32e4906c7995d695c7e85e834b1b29eb1d9a024678f8fa75846c7b929d1db9b5911b604c69c1b0379cb3b9adc98d5bb6d6719eb2c4 AUX gfxpayload.patch 1118 BLAKE2B 4104fc696535b1c3feba5876bccc64f9b2e52319ee992c59e7f17b8310cc9addf7545630fff78c73ca3f4b0dcd44e1bf69f4df5264d6f58777f7e5aeae93cbcb SHA512 00324825c369902a0383b792cd21e161853eadccbdc5abe2420f2d443bf6a74f72be6c15243107b936acd38c3547387c3771dc2cb566003c4c754c9260b4aa00 @@ -19,5 +21,6 @@ EBUILD grub-0.97-r16.ebuild 9596 BLAKE2B ff6e369d331c18300a8a5b73232d5381ffecac3 EBUILD grub-0.97-r18.ebuild 10141 BLAKE2B 7af15e1634c7e96930a7ddaa72d9ab7adae72a0b62729d65d52fd86262d7a7c2a27e2a59c412733463bccc83e9b30d62408d5bebb30f90c99135c05fabc140e7 SHA512 d9c481f77fa1d2f750b64de8cfa02f52be9a0d563607ca50117e4792add79b21e3fb34dc448beebbbb7a99153b9dc5cad01d447209fae154a8205864593c89d6 EBUILD grub-2.02-r1.ebuild 7891 BLAKE2B 1ccd64146c92b5f09bc7f7f88b02d408dbe279f38e7192355c83f1975c70e34bcf2ff4f5c7f71529c03896057bf7ced795668f4036fd1339776de87014b21e0e SHA512 86a98dd513d6d01ae53d7de588c0f293ec6adaa2e5ef27feeb995113f6bfdc32983da9d026950a935a67a82168c8c0fce78b35726bd92cde04f8ee6cb5a48c02 EBUILD grub-2.02-r2.ebuild 7914 BLAKE2B 85cb1abb1adeb5ffb0d543f6a6d3dc249e0b58eab2f89c9e9c3ea1f06fc1787af8d2675eecf3f6deb3e66692215267b1abb21a3cb0be43b926bc2b7f4095195f SHA512 cfbcc94391e68265a65bbff54dbd2023e570603a7dc365f63b80d2406f87bfdf801d17c8d2f9d111719164219499be23c2a52dc215a959546cadf569b6e8fc40 +EBUILD grub-2.02-r3.ebuild 7986 BLAKE2B 3a7a6ce49200cc3d09e1753bbfd8c27dfcd83d5b4045980798ef96c80f99f25011a99ce0058a86cec71121305b684d8fdddc648d58388f09b8f3871aaee02e98 SHA512 b73f3677783e444a3fdc1eeef21a2b2d2fa689c16a15d3b60c314424be44fc47462887e875c8693033f4087d3b592f7f385386d3f510854184c6a00033181312 EBUILD grub-9999.ebuild 7726 BLAKE2B c6656be3322b8f8506af69888313e5e08f1a939fd16d35efc76ab929536c74f0840059b23567b76e531aa86bc56f5ef19e955af29a2e56f78f9f542e6a6c73cf SHA512 0b5b54f12d5a3354b9bded9b9eac2e82029aff5d02d4f53fb1e38e8afc097ad15385c4e20de1b71aea301bd3bccc962448ee296986959a7bbab51a52f75f415e MISC metadata.xml 1488 BLAKE2B 3aa41f3c6c45258892bcf2800bfe09b506d11aa69a3071977e58736e496b72b71df579cfcaf1d14a3b81db695aca0bf7dbcc7a18faf1c62dd05f033bdafb00c8 SHA512 71f3e48b73c3d20f213ae928b16499131417562d98b83f2d82a5fb026c8cc06ecddf9db32565d9e1602d4258f7a2cc1796eb523c4cb98fb6b7753328a29e93ba diff --git a/sys-boot/grub/files/2.02-X86_64_PLT32.patch b/sys-boot/grub/files/2.02-X86_64_PLT32.patch new file mode 100644 index 000000000000..2c65cb78a5d5 --- /dev/null +++ b/sys-boot/grub/files/2.02-X86_64_PLT32.patch @@ -0,0 +1,75 @@ +From 02702bdfe14d8a04643a45b03715f734ae34dbac Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" +Date: Sat, 17 Feb 2018 06:47:28 -0800 +Subject: x86-64: Treat R_X86_64_PLT32 as R_X86_64_PC32 + +Starting from binutils commit bd7ab16b4537788ad53521c45469a1bdae84ad4a: + +https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=bd7ab16b4537788ad53521c45469a1bdae84ad4a + +x86-64 assembler generates R_X86_64_PLT32, instead of R_X86_64_PC32, for +32-bit PC-relative branches. Grub2 should treat R_X86_64_PLT32 as +R_X86_64_PC32. + +Signed-off-by: H.J. Lu +Reviewed-by: Daniel Kiper + +Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=842c390469e2c2e10b5aa36700324cd3bde25875 +Last-Update: 2018-07-30 + +Patch-Name: R_X86_64_PLT32.patch +--- + grub-core/efiemu/i386/loadcore64.c | 1 + + grub-core/kern/x86_64/dl.c | 1 + + util/grub-mkimagexx.c | 1 + + util/grub-module-verifier.c | 1 + + 4 files changed, 4 insertions(+) + +diff --git a/grub-core/efiemu/i386/loadcore64.c b/grub-core/efiemu/i386/loadcore64.c +index e49d0b6ff..18facf47f 100644 +--- a/grub-core/efiemu/i386/loadcore64.c ++++ b/grub-core/efiemu/i386/loadcore64.c +@@ -98,6 +98,7 @@ grub_arch_efiemu_relocate_symbols64 (grub_efiemu_segment_t segs, + break; + + case R_X86_64_PC32: ++ case R_X86_64_PLT32: + err = grub_efiemu_write_value (addr, + *addr32 + rel->r_addend + + sym.off +diff --git a/grub-core/kern/x86_64/dl.c b/grub-core/kern/x86_64/dl.c +index 440690673..3a73e6e6c 100644 +--- a/grub-core/kern/x86_64/dl.c ++++ b/grub-core/kern/x86_64/dl.c +@@ -70,6 +70,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr, + break; + + case R_X86_64_PC32: ++ case R_X86_64_PLT32: + { + grub_int64_t value; + value = ((grub_int32_t) *addr32) + rel->r_addend + sym->st_value - +diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c +index e63f148e4..f20255a28 100644 +--- a/util/grub-mkimagexx.c ++++ b/util/grub-mkimagexx.c +@@ -832,6 +832,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, + break; + + case R_X86_64_PC32: ++ case R_X86_64_PLT32: + { + grub_uint32_t *t32 = (grub_uint32_t *) target; + *t32 = grub_host_to_target64 (grub_target_to_host32 (*t32) +diff --git a/util/grub-module-verifier.c b/util/grub-module-verifier.c +index 9179285a5..a79271f66 100644 +--- a/util/grub-module-verifier.c ++++ b/util/grub-module-verifier.c +@@ -19,6 +19,7 @@ struct grub_module_verifier_arch archs[] = { + -1 + }, (int[]){ + R_X86_64_PC32, ++ R_X86_64_PLT32, + -1 + } + }, diff --git a/sys-boot/grub/files/2.02-gcc8.patch b/sys-boot/grub/files/2.02-gcc8.patch new file mode 100644 index 000000000000..51ee7dc86c25 --- /dev/null +++ b/sys-boot/grub/files/2.02-gcc8.patch @@ -0,0 +1,72 @@ +From 563b1da6e6ae7af46cc8354cadb5dab416989f0a Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Mon, 26 Mar 2018 16:52:34 +0800 +Subject: Fix packed-not-aligned error on GCC 8 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When building with GCC 8, there are several errors regarding packed-not-aligned. + +./include/grub/gpt_partition.h:79:1: error: alignment 1 of ‘struct grub_gpt_partentry’ is less than 8 [-Werror=packed-not-aligned] + +This patch fixes the build error by cleaning up the ambiguity of placing +aligned structure in a packed one. In "struct grub_btrfs_time" and "struct +grub_gpt_part_type", the aligned attribute seems to be superfluous, and also +has to be packed, to ensure the structure is bit-to-bit mapped to the format +laid on disk. I think we could blame to copy and paste error here for the +mistake. In "struct efi_variable", we have to use grub_efi_packed_guid_t, as +the name suggests. :) + +Signed-off-by: Michael Chang +Tested-by: Michael Chang +Tested-by: Paul Menzel +Reviewed-by: Daniel Kiper +--- + grub-core/fs/btrfs.c | 2 +- + include/grub/efiemu/runtime.h | 2 +- + include/grub/gpt_partition.h | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c +index 4849c1c..be19544 100644 +--- a/grub-core/fs/btrfs.c ++++ b/grub-core/fs/btrfs.c +@@ -175,7 +175,7 @@ struct grub_btrfs_time + { + grub_int64_t sec; + grub_uint32_t nanosec; +-} __attribute__ ((aligned (4))); ++} GRUB_PACKED; + + struct grub_btrfs_inode + { +diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h +index 9b6b729..36d2ded 100644 +--- a/include/grub/efiemu/runtime.h ++++ b/include/grub/efiemu/runtime.h +@@ -29,7 +29,7 @@ struct grub_efiemu_ptv_rel + + struct efi_variable + { +- grub_efi_guid_t guid; ++ grub_efi_packed_guid_t guid; + grub_uint32_t namelen; + grub_uint32_t size; + grub_efi_uint32_t attributes; +diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h +index 1b32f67..9668a68 100644 +--- a/include/grub/gpt_partition.h ++++ b/include/grub/gpt_partition.h +@@ -28,7 +28,7 @@ struct grub_gpt_part_type + grub_uint16_t data2; + grub_uint16_t data3; + grub_uint8_t data4[8]; +-} __attribute__ ((aligned(8))); ++} GRUB_PACKED; + typedef struct grub_gpt_part_type grub_gpt_part_type_t; + + #define GRUB_GPT_PARTITION_TYPE_EMPTY \ +-- +cgit v1.0-41-gc330 + diff --git a/sys-boot/grub/grub-2.02-r3.ebuild b/sys-boot/grub/grub-2.02-r3.ebuild new file mode 100644 index 000000000000..a27127851957 --- /dev/null +++ b/sys-boot/grub/grub-2.02-r3.ebuild @@ -0,0 +1,314 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +GRUB_AUTOGEN=1 +GRUB_AUTORECONF=1 + +if [[ -n ${GRUB_AUTOGEN} ]]; then + PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5,3_6} ) + inherit python-any-r1 +fi + +if [[ -n ${GRUB_AUTORECONF} ]]; then + WANT_LIBTOOL=none + inherit autotools +fi + +inherit bash-completion-r1 flag-o-matic multibuild pax-utils toolchain-funcs + +if [[ ${PV} != 9999 ]]; then + if [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]]; then + # The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860 + MY_P=${P/_/'~'} + SRC_URI="mirror://gnu-alpha/${PN}/${MY_P}.tar.xz" + S=${WORKDIR}/${MY_P} + else + SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" + S=${WORKDIR}/${P%_*} + fi + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +else + inherit git-r3 + EGIT_REPO_URI="git://git.sv.gnu.org/grub.git + http://git.savannah.gnu.org/r/grub.git" +fi + +PATCHES=( + "${FILESDIR}"/gfxpayload.patch + "${FILESDIR}"/grub-2.02_beta2-KERNEL_GLOBS.patch + "${FILESDIR}"/2.02-multiple-early-initrd.patch + "${FILESDIR}"/2.02-freetype-capitalise-variables.patch + "${FILESDIR}"/2.02-freetype-pkg-config.patch + "${FILESDIR}"/2.02-xfs-sparse-inodes.patch + "${FILESDIR}"/2.02-X86_64_PLT32.patch + "${FILESDIR}"/2.02-gcc8.patch +) + +DEJAVU=dejavu-sans-ttf-2.37 +UNIFONT=unifont-9.0.06 +SRC_URI+=" fonts? ( mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz ) + themes? ( mirror://sourceforge/dejavu/${DEJAVU}.zip )" + +DESCRIPTION="GNU GRUB boot loader" +HOMEPAGE="https://www.gnu.org/software/grub/" + +# Includes licenses for dejavu and unifont +LICENSE="GPL-3 fonts? ( GPL-2-with-font-exception ) themes? ( BitstreamVera )" +SLOT="2/${PVR}" +IUSE="debug device-mapper doc efiemu +fonts mount multislot nls static sdl test +themes truetype libzfs" + +GRUB_ALL_PLATFORMS=( coreboot efi-32 efi-64 emu ieee1275 loongson multiboot qemu qemu-mips pc uboot xen xen-32 ) +IUSE+=" ${GRUB_ALL_PLATFORMS[@]/#/grub_platforms_}" + +REQUIRED_USE=" + grub_platforms_coreboot? ( fonts ) + grub_platforms_qemu? ( fonts ) + grub_platforms_ieee1275? ( fonts ) + grub_platforms_loongson? ( fonts ) +" + +# os-prober: Used on runtime to detect other OSes +# xorriso (dev-libs/libisoburn): Used on runtime for mkrescue +COMMON_DEPEND=" + app-arch/xz-utils + >=sys-libs/ncurses-5.2-r5:0= + debug? ( + sdl? ( media-libs/libsdl ) + ) + device-mapper? ( >=sys-fs/lvm2-2.02.45 ) + libzfs? ( sys-fs/zfs ) + mount? ( sys-fs/fuse:0 ) + truetype? ( media-libs/freetype:2= ) + ppc? ( >=sys-apps/ibm-powerpc-utils-1.3.5 ) + ppc64? ( >=sys-apps/ibm-powerpc-utils-1.3.5 ) +" +DEPEND="${COMMON_DEPEND} + ${PYTHON_DEPS} + app-misc/pax-utils + sys-devel/flex + sys-devel/bison + sys-apps/help2man + sys-apps/texinfo + fonts? ( + media-libs/freetype:2 + virtual/pkgconfig + ) + grub_platforms_xen? ( app-emulation/xen-tools:= ) + grub_platforms_xen-32? ( app-emulation/xen-tools:= ) + static? ( + app-arch/xz-utils[static-libs(+)] + truetype? ( + app-arch/bzip2[static-libs(+)] + media-libs/freetype[static-libs(+)] + sys-libs/zlib[static-libs(+)] + virtual/pkgconfig + ) + ) + test? ( + app-admin/genromfs + app-arch/cpio + app-arch/lzop + app-emulation/qemu + dev-libs/libisoburn + sys-apps/miscfiles + sys-block/parted + sys-fs/squashfs-tools + ) + themes? ( + app-arch/unzip + media-libs/freetype:2 + virtual/pkgconfig + ) + truetype? ( virtual/pkgconfig ) +" +RDEPEND="${COMMON_DEPEND} + kernel_linux? ( + grub_platforms_efi-32? ( sys-boot/efibootmgr ) + grub_platforms_efi-64? ( sys-boot/efibootmgr ) + ) + !multislot? ( !sys-boot/grub:0 !sys-boot/grub-static ) + nls? ( sys-devel/gettext ) +" + +RESTRICT="strip !test? ( test )" + +QA_EXECSTACK="usr/bin/grub*-emu* usr/lib/grub/*" +QA_WX_LOAD="usr/lib/grub/*" +QA_MULTILIB_PATHS="usr/lib/grub/.*" + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + fi + default +} + +src_prepare() { + default + + sed -i -e /autoreconf/d autogen.sh || die + + if use multislot; then + # fix texinfo file name, bug 416035 + sed -i -e 's/^\* GRUB:/* GRUB2:/' -e 's/(grub)/(grub2)/' docs/grub.texi || die + fi + + # Nothing in Gentoo packages 'american-english' in the exact path + # wanted for the test, but all that is needed is a compressible text + # file, and we do have 'words' from miscfiles in the same path. + sed -i \ + -e '/CFILESSRC.*=/s,american-english,words,' \ + tests/util/grub-fs-tester.in \ + || die + + if [[ -n ${GRUB_AUTOGEN} ]]; then + python_setup + bash autogen.sh || die + fi + + if [[ -n ${GRUB_AUTORECONF} ]]; then + autopoint() { :; } + eautoreconf + fi +} + +grub_do() { + multibuild_foreach_variant run_in_build_dir "$@" +} + +grub_do_once() { + multibuild_for_best_variant run_in_build_dir "$@" +} + +grub_configure() { + local platform + + case ${MULTIBUILD_VARIANT} in + efi*) platform=efi ;; + xen*) platform=xen ;; + guessed) ;; + *) platform=${MULTIBUILD_VARIANT} ;; + esac + + case ${MULTIBUILD_VARIANT} in + *-32) + if [[ ${CTARGET:-${CHOST}} == x86_64* ]]; then + local CTARGET=i386 + fi ;; + *-64) + if [[ ${CTARGET:-${CHOST}} == i?86* ]]; then + local CTARGET=x86_64 + local -x TARGET_CFLAGS="-Os -march=x86-64 ${TARGET_CFLAGS}" + local -x TARGET_CPPFLAGS="-march=x86-64 ${TARGET_CPPFLAGS}" + fi ;; + esac + + local myeconfargs=( + --disable-werror + --program-prefix= + --libdir="${EPREFIX}"/usr/lib + --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html + $(use_enable debug mm-debug) + $(use_enable device-mapper) + $(use_enable mount grub-mount) + $(use_enable nls) + $(use_enable themes grub-themes) + $(use_enable truetype grub-mkfont) + $(use_enable libzfs) + $(use sdl && use_enable debug grub-emu-sdl) + ${platform:+--with-platform=}${platform} + + # Let configure detect this where supported + $(usex efiemu '' '--disable-efiemu') + ) + + if use multislot; then + myeconfargs+=( --program-transform-name="s,grub,grub2," ) + fi + + # Set up font symlinks + ln -s "${WORKDIR}/${UNIFONT}.pcf" unifont.pcf || die + if use themes; then + ln -s "${WORKDIR}/${DEJAVU}/ttf/DejaVuSans.ttf" DejaVuSans.ttf || die + fi + + local ECONF_SOURCE="${S}" + econf "${myeconfargs[@]}" +} + +src_configure() { + # Bug 508758. + replace-flags -O3 -O2 + + # We don't want to leak flags onto boot code. + export HOST_CCASFLAGS=${CCASFLAGS} + export HOST_CFLAGS=${CFLAGS} + export HOST_CPPFLAGS=${CPPFLAGS} + export HOST_LDFLAGS=${LDFLAGS} + unset CCASFLAGS CFLAGS CPPFLAGS LDFLAGS + + use static && HOST_LDFLAGS+=" -static" + + tc-ld-disable-gold #439082 #466536 #526348 + export TARGET_LDFLAGS="${TARGET_LDFLAGS} ${LDFLAGS}" + unset LDFLAGS + + tc-export CC NM OBJCOPY RANLIB STRIP + tc-export BUILD_CC # Bug 485592 + + MULTIBUILD_VARIANTS=() + local p + for p in "${GRUB_ALL_PLATFORMS[@]}"; do + use "grub_platforms_${p}" && MULTIBUILD_VARIANTS+=( "${p}" ) + done + [[ ${#MULTIBUILD_VARIANTS[@]} -eq 0 ]] && MULTIBUILD_VARIANTS=( guessed ) + grub_do grub_configure +} + +src_compile() { + # Sandbox bug 404013. + use libzfs && addpredict /etc/dfs:/dev/zfs + + grub_do emake + use doc && grub_do_once emake -C docs html +} + +src_test() { + # The qemu dependency is a bit complex. + # You will need to adjust QEMU_SOFTMMU_TARGETS to match the cpu/platform. + grub_do emake check +} + +src_install() { + grub_do emake install DESTDIR="${D}" bashcompletiondir="$(get_bashcompdir)" + use doc && grub_do_once emake -C docs install-html DESTDIR="${D}" + + einstalldocs + + if use multislot; then + mv "${ED%/}"/usr/share/info/grub{,2}.info || die + fi + + insinto /etc/default + newins "${FILESDIR}"/grub.default-3 grub +} + +pkg_postinst() { + elog "For information on how to configure GRUB2 please refer to the guide:" + elog " https://wiki.gentoo.org/wiki/GRUB2_Quick_Start" + + if has_version 'sys-boot/grub:0'; then + elog "A migration guide for GRUB Legacy users is available:" + elog " https://wiki.gentoo.org/wiki/GRUB2_Migration" + fi + + if [[ -z ${REPLACING_VERSIONS} ]]; then + elog + elog "You may consider installing the following optional packages:" + optfeature "Detect other operating systems (grub-mkconfig)" sys-boot/os-prober + optfeature "Create rescue media (grub-mkrescue)" dev-libs/libisoburn + optfeature "Enable RAID device detection" sys-fs/mdadm + fi +} diff --git a/sys-boot/refind/Manifest b/sys-boot/refind/Manifest index a82c1973aa9a..1cd7a5c57b0a 100644 --- a/sys-boot/refind/Manifest +++ b/sys-boot/refind/Manifest @@ -1,7 +1,7 @@ DIST refind-src-0.10.4.tar.gz 3970380 BLAKE2B 0d14c005d3e93a1f0008b6c65e34eb6391c4a4a488b4fa7842c8f0b68eb2cc5be150c8718f01a65454db7b86ffa5873a3d1a96429eaed0cb92c1d29c8d2f7dcd SHA512 a75a6210ee51427c474e69c2de8c719545b2599c19f1c7541048b77ab1996a0e4b4b5fd4840f6240cd6704e5f5338cbaff432d7dc5ec4042854e26d6df18bed5 -DIST refind-src-0.10.8.tar.gz 4059265 BLAKE2B 597d8df1cb74f6f686c5b702c02eb2712adb2076934f1ffc746ca9aaf3d349d6384c8aa09d17fe440b656cc054ee928131f8ecbc059fe0b654e9c32799e54e86 SHA512 a4576920dd68a9436ee6d008787104842e192c6a5eb52cc580258bc8e13daadf170c21270e8cfd86f27733e3e86b050af9102d35c939677b1f1c3627aeeafb32 DIST refind-src-0.11.2.tar.gz 4533034 BLAKE2B fa05781fc1d87d314677f8e670bd7282b591fd3b6f4a5863e81cb962fdb773c774faabb6c45544b0659c8d5c4ef7ce1dba8d798a4caa97364ad7aa2532a42050 SHA512 796d86f05152d93340773c2dfbae0ca50ab036373ebed60fcc80404ee269ef4bc100df4b141d555d3363b820c3e9234fc0cf637791061281c86329958dca3479 +DIST refind-src-0.11.3.tar.gz 3792206 BLAKE2B 369b25dbc97d83f9143ccbe19e89b5975f0796f1e4a2decfc124e4b45c5ef1db8f3e2bb83413f596ca28e82e67b0b9c5682b557a5422e3146780cec151d2a36e SHA512 96907b79e1c9c8199c62058bb6851fa5d6f158802f3777ba19a62c6c0d7d5b49132754bcafa925510fd21c8bafe8ce393117070a628baf4c277fa5f8f536b797 EBUILD refind-0.10.4-r2.ebuild 6185 BLAKE2B 077c7e57eeed02eba132dbae17c7045acfedb62ec282e8af15c28f39bab1668a952656807a8e476230b8a6735d71c930937d4386030cd3fda5e4cd9dbf4c9f94 SHA512 bacd7b2acd10ff4ac50074626364d1a97e53a82fd545669acbb9efd7b2f1da0edb86d41138155340cc0e07f756484a88f57ef7165ab88755526c57629f889138 -EBUILD refind-0.10.8.ebuild 6187 BLAKE2B 99dff8bcd23599f94bb9dac9c4d6050a6ee7b5369f9f726e57bd8f491b05dc91c36193c0bb7286a08abcb1c671b2cbbef81fc9694d90ad7cc3290a0075e3b36c SHA512 9febaecbf474e10c1b14be93f5ad5151aa1ea8c5eeeb89a3a3f92f62bff071f80b4ec2fa431d66855d142d41edaa1a1f943f944dbcd79351a49f79760877a0ec EBUILD refind-0.11.2.ebuild 6279 BLAKE2B 209d4d8eda0b18cf10350d2a1ef8cbda5bfa6e3e2e46534e8fcadcc370917202d38b7f7dd344315e8986cf811f5452e72dd0a11d6237eaaa5b531f3e7f5b9624 SHA512 47f9bc81cc441e94615baa06e0e6c797e5f4e7be156b51ffea20d20409dcc5e94053c48ddae1c42bb959e538e29f2bd4a0e0083ae0be584320aa3cb0ae0b5e56 +EBUILD refind-0.11.3.ebuild 6277 BLAKE2B 6253ff1ac6397d2801ea1f5651c8267a391cf40fae9a651e6c4f2a6ec70d91881aaf6aea860a574b0558c1391006d3d021b55ad2cfbc0e8acdaef55b63437161 SHA512 cdf653debe9420a16a295769982931a2d913dab6dbcbd629835134273cdb29bf362c413d07e774423b8bcaffea060ae17a8ec91d0a300a14332910f7607c4284 MISC metadata.xml 3924 BLAKE2B 0b6d9ed6c48bbd09f1ca3d7661d4b9c1c6800ba551341ee8a434cdf15872561a58221bfd58cca59d3e14785a7fdecfa98e82ec281f805d5fe200ff5115fafad7 SHA512 40432e3b97f448c671c9af35f25457481069f7c4b43e7d93958cf93e52856badf576f878f656185c58eda880e6e1eb1bc6c4a96d67d6f7a6b569da870bcea6bd diff --git a/sys-boot/refind/refind-0.10.8.ebuild b/sys-boot/refind/refind-0.10.8.ebuild deleted file mode 100644 index 9978fe0dbf07..000000000000 --- a/sys-boot/refind/refind-0.10.8.ebuild +++ /dev/null @@ -1,197 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit toolchain-funcs flag-o-matic versionator - -DESCRIPTION="The UEFI Boot Manager by Rod Smith" -HOMEPAGE="https://www.rodsbooks.com/refind/" - -SRC_URI="mirror://sourceforge/project/${PN}/${PV}/${PN}-src-${PV}.tar.gz" - -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} -gnuefi doc -custom-cflags" - -DEPEND="gnuefi? ( >=sys-boot/gnu-efi-3.0.2 ) - !gnuefi? ( >=sys-boot/udk-2015 )" - -DOCS="NEWS.txt README.txt docs/refind docs/Styles" - -pkg_pretend() { - if use custom-cflags; then - ewarn - ewarn "You have enabled building with USE=custom-cflags. Be aware that" - ewarn "using this can result in EFI binaries that fail to run and may" - ewarn "fail to build at all. This is strongly advised against by upstream." - ewarn - ewarn "See https://bugs.gentoo.org/598587#c3 for more information" - ewarn - fi -} - -pkg_setup() { - if use x86 ; then - export EFIARCH=ia32 - export BUILDARCH=ia32 - elif use amd64; then - export EFIARCH=x64 - export BUILDARCH=x86_64 - else - # Try to support anyway - export BUILDARCH=$( uname -m | sed s,i[3456789]86,ia32, ) - if [[ ${BUILDARCH} == "x86_64" ]] ; then - export EFIARCH=x64 - else - export EFIARCH=${ARCH} - fi - fi -} - -src_prepare() { - default - - # bug 598647 - PIE not supported - sed -e 's:CFLAGS =:& -fno-PIE:' -i "${S}/Make.common" || die - - local f - 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" \ - || die "Failed to patch AutoGen.c" - for f in "${S}"/*/AutoGen.c; do - cat >>"${f}" <<-EOF || die "Failed to patch AutoGen.c" - - #define _PCD_TOKEN_PcdFixedDebugPrintErrorLevel 11U - #define _PCD_SIZE_PcdFixedDebugPrintErrorLevel 4 - #define _PCD_GET_MODE_SIZE_PcdFixedDebugPrintErrorLevel _PCD_SIZE_PcdFixedDebugPrintErrorLevel - #define _PCD_VALUE_PcdFixedDebugPrintErrorLevel 0xFFFFFFFFU - GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel = _PCD_VALUE_PcdFixedDebugPrintErrorLevel; - extern const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel; - #define _PCD_GET_MODE_32_PcdFixedDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel - //#define _PCD_SET_MODE_32_PcdFixedDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD - EOF - done -} - -src_compile() { - # Prepare flags - local pecoff_header_size - [[ $EFIARCH == x64 ]] && pecoff_header_size='0x228' \ - || pecoff_header_size='0x220' - local make_flags=( - ARCH="${BUILDARCH}" - GENFW="/usr/bin/GenFw" - CC="$(tc-getCC)" - AS="$(tc-getAS)" - LD="$(tc-getLD)" - AR="$(tc-getAR)" - RANLIB="$(tc-getRANLIB)" - OBJCOPY="$(tc-getOBJCOPY)" - GNUEFI_LDFLAGS="-T \$(GNUEFI_LDSCRIPT) -shared -nostdlib -Bsymbolic \ - -L\$(EFILIB) -L\$(GNUEFILIB) \$(CRTOBJS) -znocombreloc -zdefs" - TIANO_LDSCRIPT="/usr/lib/GccBase.lds" - TIANO_LDFLAGS="-n -q --gc-sections -nostdlib \ - --script=\$(TIANO_LDSCRIPT) \ - --defsym=PECOFF_HEADER_SIZE=${pecoff_header_size} \ - --entry \$(ENTRYPOINT) -u \$(ENTRYPOINT) -m \$(LD_CODE)" - ) - - # Make main EFI - local all_target - use gnuefi && all_target="gnuefi" || all_target="tiano" - - if use custom-cflags; then - emake CFLAGS="${CFLAGS}" "${make_flags[@]}" ${all_target} - else - emake "${make_flags[@]}" ${all_target} - fi - - # Make filesystem drivers - local gnuefi_target - use gnuefi && gnuefi_target="_gnuefi" - local fs - for fs in ${FS_USE}; do - fs=${fs#+} - if use "${fs}"; then - einfo "Building ${fs} filesystem driver" - if use custom-cflags; then - emake CFLAGS="${CFLAGS}" "${make_flags[@]}" -C "${S}/filesystems" ${fs}${gnuefi_target} - else - emake "${make_flags[@]}" -C "${S}/filesystems" ${fs}${gnuefi_target} - fi - fi - done -} - -src_install() { - exeinto "/usr/share/${P}" - doexe refind-install - dosym "/usr/share/${P}/refind-install" "/usr/sbin/refind-install" - - dodoc "${S}"/{COPYING.txt,LICENSE.txt,CREDITS.txt} - if use doc; then - doman "${S}/docs/man/"* - dodoc -r ${DOCS} - fi - - insinto "/usr/share/${P}/refind" - doins "${S}/refind/refind_${EFIARCH}.efi" - doins "${S}/refind.conf-sample" - doins -r images icons fonts banners - - if [[ -d "${S}/drivers_${EFIARCH}" ]]; then - doins -r "${S}/drivers_${EFIARCH}" - fi - - insinto "/usr/share/${P}/refind/tools_${EFIARCH}" - doins "${S}/gptsync/gptsync_${EFIARCH}.efi" - - insinto "/etc/refind.d" - doins -r "${S}/keys" - - dosbin "${S}/mkrlconf" - dosbin "${S}/mvrefind" - dosbin "${S}/refind-mkdefault" -} - -pkg_postinst() { - elog "rEFInd has been built and installed into ${EROOT%/}/usr/share/${P}" - elog "You will need to use the command 'refind-install' to install" - elog "the binaries into your EFI System Partition" - elog "" - if [[ -z "${REPLACING_VERSIONS}" ]]; then - elog "refind-install requires additional packages to be fully functional:" - elog " app-crypt/sbsigntools for binary signing for use with SecureBoot" - elog " sys-boot/efibootmgr for writing to NVRAM" - elog " sys-block/parted for automatic ESP location and mount" - elog "" - elog "refind-mkdefault requires >=dev-lang/python-3" - elog "" - elog "A sample configuration can be found at" - elog "${EROOT%}/usr/share/${P}/refind/refind.conf-sample" - else - if ! version_is_at_least "0.10.3" "${REPLACING_VERSIONS}"; then - elog "The new refind-mkdefault script requires >=dev-lang/python-3" - elog "to be installed" - elog "" - fi - ewarn "Note that this installation will not update any EFI binaries" - ewarn "on your EFI System Partition - this needs to be done manually" - fi -} diff --git a/sys-boot/refind/refind-0.11.3.ebuild b/sys-boot/refind/refind-0.11.3.ebuild new file mode 100644 index 000000000000..61fa68128311 --- /dev/null +++ b/sys-boot/refind/refind-0.11.3.ebuild @@ -0,0 +1,200 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit toolchain-funcs flag-o-matic eapi7-ver + +DESCRIPTION="The UEFI Boot Manager by Rod Smith" +HOMEPAGE="https://www.rodsbooks.com/refind/" + +SRC_URI="mirror://sourceforge/project/${PN}/${PV}/${PN}-src-${PV}.tar.gz" + +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} -gnuefi doc -custom-cflags" + +DEPEND="gnuefi? ( >=sys-boot/gnu-efi-3.0.2 ) + !gnuefi? ( >=sys-boot/udk-2015 )" + +DOCS="NEWS.txt README.txt docs/refind docs/Styles" + +pkg_pretend() { + if use custom-cflags; then + ewarn + ewarn "You have enabled building with USE=custom-cflags. Be aware that" + ewarn "using this can result in EFI binaries that fail to run and may" + ewarn "fail to build at all. This is strongly advised against by upstream." + ewarn + ewarn "See https://bugs.gentoo.org/598587#c3 for more information" + ewarn + fi +} + +pkg_setup() { + if use x86 ; then + export EFIARCH=ia32 + export BUILDARCH=ia32 + elif use amd64; then + export EFIARCH=x64 + export BUILDARCH=x86_64 + else + # Try to support anyway + export BUILDARCH=$( uname -m | sed s,i[3456789]86,ia32, ) + if [[ ${BUILDARCH} == "x86_64" ]] ; then + export EFIARCH=x64 + else + export EFIARCH=${ARCH} + fi + fi +} + +src_prepare() { + default + + # bug 598647 - PIE not supported + sed -e 's:CFLAGS =:& -fno-PIE:' -i "${S}/Make.common" || die + + local f + 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" \ + || die "Failed to patch AutoGen.c" + for f in "${S}"/*/AutoGen.c; do + cat >>"${f}" <<-EOF || die "Failed to patch AutoGen.c" + + #define _PCD_TOKEN_PcdFixedDebugPrintErrorLevel 11U + #define _PCD_SIZE_PcdFixedDebugPrintErrorLevel 4 + #define _PCD_GET_MODE_SIZE_PcdFixedDebugPrintErrorLevel _PCD_SIZE_PcdFixedDebugPrintErrorLevel + #define _PCD_VALUE_PcdFixedDebugPrintErrorLevel 0xFFFFFFFFU + GLOBAL_REMOVE_IF_UNREFERENCED const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel = _PCD_VALUE_PcdFixedDebugPrintErrorLevel; + extern const UINT32 _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel; + #define _PCD_GET_MODE_32_PcdFixedDebugPrintErrorLevel _gPcd_FixedAtBuild_PcdFixedDebugPrintErrorLevel + //#define _PCD_SET_MODE_32_PcdFixedDebugPrintErrorLevel ASSERT(FALSE) // It is not allowed to set value for a FIXED_AT_BUILD PCD + EOF + done +} + +src_compile() { + # Prepare flags + local pecoff_header_size + [[ $EFIARCH == x64 ]] && pecoff_header_size='0x228' \ + || pecoff_header_size='0x220' + local make_flags=( + ARCH="${BUILDARCH}" + GENFW="/usr/bin/GenFw" + CC="$(tc-getCC)" + AS="$(tc-getAS)" + LD="$(tc-getLD)" + AR="$(tc-getAR)" + GNUEFILIB="/usr/$(get_libdir)" + EFILIB="/usr/$(get_libdir)" + EFICRT0="/usr/$(get_libdir)" + RANLIB="$(tc-getRANLIB)" + OBJCOPY="$(tc-getOBJCOPY)" + GNUEFI_LDFLAGS="-T \$(GNUEFI_LDSCRIPT) -shared -nostdlib -Bsymbolic \ + -L\$(EFILIB) -L\$(GNUEFILIB) \$(CRTOBJS) -znocombreloc -zdefs" + TIANO_LDSCRIPT="/usr/lib/GccBase.lds" + TIANO_LDFLAGS="-n -q --gc-sections -nostdlib \ + --script=\$(TIANO_LDSCRIPT) \ + --defsym=PECOFF_HEADER_SIZE=${pecoff_header_size} \ + --entry \$(ENTRYPOINT) -u \$(ENTRYPOINT) -m \$(LD_CODE)" + ) + + # Make main EFI + local all_target + use gnuefi && all_target="gnuefi" || all_target="tiano" + + if use custom-cflags; then + emake CFLAGS="${CFLAGS}" "${make_flags[@]}" ${all_target} + else + emake "${make_flags[@]}" ${all_target} + fi + + # Make filesystem drivers + local gnuefi_target + use gnuefi && gnuefi_target="_gnuefi" + local fs + for fs in ${FS_USE}; do + fs=${fs#+} + if use "${fs}"; then + einfo "Building ${fs} filesystem driver" + if use custom-cflags; then + emake CFLAGS="${CFLAGS}" "${make_flags[@]}" -C "${S}/filesystems" ${fs}${gnuefi_target} + else + emake "${make_flags[@]}" -C "${S}/filesystems" ${fs}${gnuefi_target} + fi + fi + done +} + +src_install() { + exeinto "/usr/share/${P}" + doexe refind-install + dosym "../share/${P}/refind-install" "/usr/sbin/refind-install" + + dodoc "${S}"/{COPYING.txt,LICENSE.txt,CREDITS.txt} + if use doc; then + doman "${S}/docs/man/"* + dodoc -r ${DOCS} + fi + + insinto "/usr/share/${P}/refind" + doins "${S}/refind/refind_${EFIARCH}.efi" + doins "${S}/refind.conf-sample" + doins -r images icons fonts banners + + if [[ -d "${S}/drivers_${EFIARCH}" ]]; then + doins -r "${S}/drivers_${EFIARCH}" + fi + + insinto "/usr/share/${P}/refind/tools_${EFIARCH}" + doins "${S}/gptsync/gptsync_${EFIARCH}.efi" + + insinto "/etc/refind.d" + doins -r "${S}/keys" + + dosbin "${S}/mkrlconf" + dosbin "${S}/mvrefind" + dosbin "${S}/refind-mkdefault" +} + +pkg_postinst() { + elog "rEFInd has been built and installed into ${EROOT%/}/usr/share/${P}" + elog "You will need to use the command 'refind-install' to install" + elog "the binaries into your EFI System Partition" + elog "" + if [[ -z "${REPLACING_VERSIONS}" ]]; then + elog "refind-install requires additional packages to be fully functional:" + elog " app-crypt/sbsigntools for binary signing for use with SecureBoot" + elog " sys-boot/efibootmgr for writing to NVRAM" + elog " sys-block/parted for automatic ESP location and mount" + elog "" + elog "refind-mkdefault requires >=dev-lang/python-3" + elog "" + elog "A sample configuration can be found at" + elog "${EROOT%}/usr/share/${P}/refind/refind.conf-sample" + else + if ! version_is_at_least "0.10.3" "${REPLACING_VERSIONS}"; then + elog "The new refind-mkdefault script requires >=dev-lang/python-3" + elog "to be installed" + elog "" + fi + ewarn "Note that this installation will not update any EFI binaries" + ewarn "on your EFI System Partition - this needs to be done manually" + fi +} -- cgit v1.2.3