diff options
author | Bertrand Jacquin <bertrand@jacquin.bzh> | 2016-09-18 23:21:54 +0100 |
---|---|---|
committer | Bertrand Jacquin <bertrand@jacquin.bzh> | 2016-09-18 23:54:01 +0100 |
commit | c701308a5c9a1f3a3125d073a0f46a652b371594 (patch) | |
tree | a6f8a741e4b4e9abcbc205a4eb4f80f711fe426c | |
parent | factory-default/app-admin/syslog-ng: Split dev-lang/php config (diff) | |
download | portage-c701308a5c9a1f3a3125d073a0f46a652b371594.tar.xz |
sys-boot/grub: Drop since epatch_user is now done upstream
Package-Manager: portage-2.2.28
-rw-r--r-- | profiles/common/package.accept_keywords | 4 | ||||
-rw-r--r-- | sys-boot/grub/Manifest | 11 | ||||
-rw-r--r-- | sys-boot/grub/files/formilux/0002_all_save-default-entry-on-mbr.patch | 105 | ||||
-rw-r--r-- | sys-boot/grub/files/formilux/0003_all_add-grub-mbr-default3.patch | 197 | ||||
-rw-r--r-- | sys-boot/grub/files/grub-0.97-Add-esp-to-list-of-clobbered-registers.patch | 53 | ||||
-rw-r--r-- | sys-boot/grub/files/grub-0.97-ncurses-pkgconfig.patch | 18 | ||||
-rw-r--r-- | sys-boot/grub/files/grub.conf.gentoo | 16 | ||||
-rw-r--r-- | sys-boot/grub/grub-0.97-r16.ebuild | 302 | ||||
-rw-r--r-- | sys-boot/grub/grub-0.97-r17.ebuild | 292 | ||||
-rw-r--r-- | sys-boot/grub/metadata.xml | 16 |
10 files changed, 4 insertions, 1010 deletions
diff --git a/profiles/common/package.accept_keywords b/profiles/common/package.accept_keywords index b169c6f9..dda5a87c 100644 --- a/profiles/common/package.accept_keywords +++ b/profiles/common/package.accept_keywords @@ -14,3 +14,7 @@ =app-crypt/ubuntu-keyring-2012.05.19 ~amd64 =app-crypt/debian-archive-keyring-2014.3 ~amd64 =app-crypt/jetring-0.21 ~amd64 + +# 18/09/2016 - beber +# epatch_user() +=sys-boot/grub-0.97-r17 ~amd64 diff --git a/sys-boot/grub/Manifest b/sys-boot/grub/Manifest deleted file mode 100644 index db7caea6..00000000 --- a/sys-boot/grub/Manifest +++ /dev/null @@ -1,11 +0,0 @@ -AUX formilux/0002_all_save-default-entry-on-mbr.patch 2915 SHA256 7177b8f2c75886cf5f97cf623ab4b86bb7818effc4472f2f8f208b4269663d7a WHIRLPOOL 3a038809cae93b412bf712b2f76070b35d58ffb48e09c8d3729a6466e8dca03a7c08afdbf2c72520aa3551cfd48af27ac8bb0ad0cbf88e35bdb11717cfb23a6c -AUX formilux/0003_all_add-grub-mbr-default3.patch 6097 SHA256 3bc1c5488bd8e9b9038374b62bf88d0c4eedd2a32a2e8bf63c8a52039a4f8164 WHIRLPOOL b49e110f6b418f1660cbf430ad9517ffcac88aa468c4da2cce2d757c4cafd743f69a5b64a146ea479fa633f6a6f5de1de774cbb792feead705b8423eb37280b1 -AUX grub-0.97-Add-esp-to-list-of-clobbered-registers.patch 1612 SHA256 515d609d54602c285e98aeaec66ac95136512d54bb16ee80f22cf06f02999948 WHIRLPOOL 4dda1385591e71766a7d3141038f67bee1ceda3d1deef97913a2a684dbea03ac5fd982291ae017d8bb82ac222e378db5c9cac537a0a7b47328361e00314e5ff3 -AUX grub-0.97-ncurses-pkgconfig.patch 799 SHA256 273bd077ae5591cd8fdcd6dc61bf8890e30a1c84a04ef05d5e5fa32176583162 WHIRLPOOL dd285a51cd10461b1b74b1a1bc892911015fbbc68c33de15b50cf642284ec67165b6d6ec0de345addcd4964bab694d444c0ab041a7f547efe8d29bbfb7095c67 -AUX grub.conf.gentoo 591 SHA256 e656b5716d6a5904a035960b460494431d8c1327df51fcd9ffb39243425fe142 WHIRLPOOL 184284cac00bc039d36c5b2f8d7be0f425e75ba904c4c04c2ec531a094cd191c42cb7382276e73a5d176e1661dcdd1bdc5e3806b9d7abe9b38563575ecb6ee76 -DIST grub-0.97-patches-1.14.tar.bz2 52916 SHA256 5c7ca31fd9b2123471daf2e46a1936c4044ad0c12e353d9d3d8c3f83a1c7a0e5 WHIRLPOOL 60abd5087e85d9969784b9f5a100934606a76da03b665533d9d4d1d13f4e2d15de233a71e67a32d18a5fbfe128c2c8bf04c0d4451de24e6ca4fbd8dd862e23ea -DIST grub-0.97.tar.gz 971783 SHA256 4e1d15d12dbd3e9208111d6b806ad5a9857ca8850c47877d36575b904559260b WHIRLPOOL 0ad7f5dc035e2a3ad5fd29b6388f06fd12a8cc694117b4cbd42b5302433aa522db23566222d35219fe17fb95edb5090553156198507f70208eda5d858fd52dd5 -DIST splash.xpm.gz 33856 SHA256 b95600f777331b0dd31d51c68f60f0e846e4c8b628857a41165f4e6b30e6acaf WHIRLPOOL d95b7b588ea8ac7c2c8c53eb8057aef21c825da6411afe3b7e864c606aeffaaebce8ae41ce3e979f277bd6b48a9e82a1f2ea8afc836213b56523d8a854227d7b -EBUILD grub-0.97-r16.ebuild 9781 SHA256 2d2ded83bea44b5fc189b3f46a3263f734891b09c22e6f99b315adf4c1826b38 WHIRLPOOL 6637bc0bce3ca1e186c987f18bde9a39d016880eeb00088bc3d3dc893bf0797afb11b654e63ec7a4988a9c9ebd06a1b89d7915d6c1e7deac51c449be31b87ec5 -EBUILD grub-0.97-r17.ebuild 9349 SHA256 286c9a2fd573e3c44608adca86b50276642d3d6b8461a06319afde5697c4b563 WHIRLPOOL 99e3993696778d8b23458da4c6dc9a34d7e8b01def3fa663d0f08f9d78a48174552ef16f360d09bf6d4b2cd448874e59abb9d02cb948b966aa9b2ece3c4c8ead -MISC metadata.xml 447 SHA256 c035ec8025fe11d35d13883eb20c0ddeb5c173b9c3630893bbaec1a819797e73 WHIRLPOOL 68006b35e93ddabc932c36528ac5b0fcd8c717f0b267e35a43a3ba3c1888d84d24cac446cffe1dd316b29b851d0621cd3bddebc22d4a2a3a2a2f52284c09ddc6 diff --git a/sys-boot/grub/files/formilux/0002_all_save-default-entry-on-mbr.patch b/sys-boot/grub/files/formilux/0002_all_save-default-entry-on-mbr.patch deleted file mode 100644 index 33ed0fcb..00000000 --- a/sys-boot/grub/files/formilux/0002_all_save-default-entry-on-mbr.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff --git a/stage2/builtins.c b/stage2/builtins.c -index 17d7459..cb7e648 100644 ---- a/stage2/builtins.c -+++ b/stage2/builtins.c -@@ -3549,6 +3549,8 @@ savedefault_func (char *arg, int flags) - /* Clear the cache. */ - buf_track = -1; - } -+ else -+ put_new_entryno_to_mbr(tmp_drive, entryno); - - fail: - saved_drive = tmp_drive; -diff --git a/stage2/disk_io.c b/stage2/disk_io.c -index 698d6ba..7e0f689 100644 ---- a/stage2/disk_io.c -+++ b/stage2/disk_io.c -@@ -1887,3 +1887,57 @@ grub_close (void) - if (fsys_table[fsys_type].close_func != 0) - (*(fsys_table[fsys_type].close_func)) (); - } -+ -+#ifndef STAGE1_5 -+int -+read_entryno_from_mbr(int drive, char *sector) -+{ -+ /* drive must be a hard disk and stage1_5 must be right after the MBR */ -+ if (!(drive & 0x80)) -+ return 0; -+ if (!rawread(drive, 2, 0, SECTOR_SIZE, sector)) -+ return 0; -+ /* sanity checks */ -+ if (sector[STAGE2_VER_MAJ_OFFS] != COMPAT_VERSION_MAJOR || -+ sector[STAGE2_VER_MAJ_OFFS+1] != COMPAT_VERSION_MINOR || -+ *(unsigned *)§or[STAGE2_INSTALLPART] != 0xFFFFFF || -+ grub_memcmp(§or[STAGE2_VER_STR_OFFS], version_string, -+ sizeof(VERSION))) { -+#if 0 -+ printf("read: sec=%d %d %d %s=%s(%d)\n", -+ sector[STAGE2_VER_MAJ_OFFS], sector[STAGE2_VER_MAJ_OFFS+1], -+ sector[STAGE2_INSTALLPART], §or[STAGE2_VER_STR_OFFS], -+ version_string, sizeof(VERSION)); -+#endif -+ return 0; -+ } -+ return 1; -+} -+ -+/* Get saved_entryno from the MBR */ -+void -+get_saved_entryno_from_mbr(int drive) -+{ -+ char sector[SECTOR_SIZE]; -+ -+ errnum = ERR_NONE; -+ if (!read_entryno_from_mbr(drive, sector)) -+ return 0; -+ /* get it from the saved_entryno place */ -+ saved_entryno = *(unsigned*)§or[STAGE2_SAVED_ENTRYNO]; -+} -+ -+/* Put entryno into the MBR. Returns 1 if done, otherwise 0 (error...) */ -+int -+put_new_entryno_to_mbr(int drive, unsigned entryno) -+{ -+ char sector[SECTOR_SIZE]; -+ -+ errnum = ERR_NONE; -+ if (!read_entryno_from_mbr(saved_drive, sector)) -+ return 0; -+ *(unsigned *)§or[STAGE2_SAVED_ENTRYNO] = entryno; -+ rawwrite (drive, 2, sector); -+ return !errnum; -+} -+#endif /* STAGE1_5 */ -diff --git a/stage2/shared.h b/stage2/shared.h -index 7d9432b..7532980 100644 ---- a/stage2/shared.h -+++ b/stage2/shared.h -@@ -965,6 +965,11 @@ int grub_seek (int offset); - /* Close a file. */ - void grub_close (void); - -+#ifndef STAGE1_5 -+void get_saved_entryno_from_mbr(int drive); -+int put_new_entryno_to_mbr(int drive, unsigned entryno); -+#endif -+ - /* List the contents of the directory that was opened with GRUB_OPEN, - printing all completions. */ - int dir (char *dirname); -diff --git a/stage2/stage2.c b/stage2/stage2.c -index 0ca3f02..2851d72 100644 ---- a/stage2/stage2.c -+++ b/stage2/stage2.c -@@ -918,6 +918,9 @@ cmain (void) - - grub_close (); - } -+ else -+ get_saved_entryno_from_mbr(saved_drive); -+ - errnum = ERR_NONE; - - do diff --git a/sys-boot/grub/files/formilux/0003_all_add-grub-mbr-default3.patch b/sys-boot/grub/files/formilux/0003_all_add-grub-mbr-default3.patch deleted file mode 100644 index d6521be6..00000000 --- a/sys-boot/grub/files/formilux/0003_all_add-grub-mbr-default3.patch +++ /dev/null @@ -1,197 +0,0 @@ -diff --git a/util/Makefile.am b/util/Makefile.am -index 2e04711..127e857 100644 ---- a/util/Makefile.am -+++ b/util/Makefile.am -@@ -1,4 +1,5 @@ - bin_PROGRAMS = mbchk -+sbin_PROGRAMS = grub-mbr-default - sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \ - grub-set-default - noinst_SCRIPTS = grub-image mkbimage -@@ -7,6 +8,9 @@ EXTRA_DIST = mkbimage - - # XXX: Need to search for a header file in docs, because of multiboot.h. - AM_CFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir)/docs -+INCLUDES = -I$(top_srcdir)/stage2 -I$(top_srcdir)/stage1 - - mbchk_SOURCES = mbchk.c - mbchk_LDADD = ../lib/libcommon.a -+ -+grub_mbr_default_SOURCES = grub-mbr-default.c -diff --git a/util/grub-mbr-default.c b/util/grub-mbr-default.c -new file mode 100644 -index 0000000..6664b77 ---- /dev/null -+++ b/util/grub-mbr-default.c -@@ -0,0 +1,171 @@ -+/* -+ * grub-mbr-default - a boot entry validation tool for the GRUB bootloader. -+ * -+ * Copyright (C) 2005,2007 Willy Tarreau -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#include <stdio.h> -+#include <stdlib.h> -+#include <string.h> -+#include <sys/types.h> -+#include <sys/stat.h> -+#include <fcntl.h> -+#include <unistd.h> -+#include <stage1.h> -+#include <config.h> -+ -+/* from stage2/shared.h */ -+#define STAGE2_VER_MAJ_OFFS 0x6 -+#define STAGE2_INSTALLPART 0x8 -+#define STAGE2_SAVED_ENTRYNO 0xc -+#define STAGE2_STAGE2_ID 0x10 -+#define STAGE2_FORCE_LBA 0x11 -+#define STAGE2_VER_STR_OFFS 0x12 -+#define SECTOR_SIZE 0x200 -+ -+ -+void usage(char *name); -+void error(int err, char *msg); -+void die(int err, char *msg); -+ -+void error(int err, char *msg) { -+ perror(msg); -+ exit(err); -+} -+ -+void die(int err, char *msg) { -+ fprintf(stderr, "%s\n", msg); -+ exit(err); -+} -+ -+void usage(char *name) { -+ char *n; -+ n = strrchr(name, '/'); -+ if (n) -+ name = n + 1; -+ -+ fprintf(stderr, -+ "%s: validate last boot entry in GRUB MBR.\n" -+ "Usage:\n" -+ "\t%s [-q] <device>\n" -+ "\t\tshows what next boot entry will be used on device <device>.\n" -+ "\t\tThe -q argument makes the program quiet.\n" -+ "\n\t%s [-q] <device> <entry>\n" -+ "\t\tsets next boot entry to <entry> on device <device>.\n" -+ "\n\t%s [-q] <device> <-round>\n" -+ "\t\tsets next boot entry to (current-1) rounded to <round>.\n" -+ "\t\tThis permits to revalidate the first entry in a series of\n" -+ "\t\t<round> retries leading to a successful boot.\n" -+ "", name, name, name, name); -+ -+ exit(1); -+} -+ -+int main(int argc, char **argv) { -+ char sector[SECTOR_SIZE]; -+ char *device, *progname; -+ int fd, readonly, quiet, stop; -+ int entryno, new_entryno; -+ -+ progname = argv[0]; -+ -+ argc--; argv++; -+ quiet = stop = new_entryno = 0; -+ while (argc && !stop && **argv == '-') { -+ switch (argv[0][1]) { -+ case 'q': -+ quiet = 1; -+ break; -+ case '-': -+ stop = 1; -+ break; -+ default: -+ usage(progname); -+ } -+ argc--; argv++; -+ } -+ -+ if (argc < 1) -+ usage(progname); -+ -+ device = argv[0]; -+ readonly = (argc < 2); -+ if (!readonly) -+ new_entryno = atoi(argv[1]); -+ -+ fd = open(device, readonly ? O_RDONLY : O_RDWR); -+ if (fd < 0) -+ error(1, "Failed to open the device :"); -+ -+ if (lseek(fd, SECTOR_SIZE * 2, SEEK_SET) < 0) -+ error(2, "Cannot seek to the sector :"); -+ -+ if (read(fd, sector, SECTOR_SIZE) != SECTOR_SIZE) -+ error(2, "Read error or partial read :"); -+ -+ /* sanity checks */ -+ if (sector[STAGE2_VER_MAJ_OFFS] != COMPAT_VERSION_MAJOR || -+ sector[STAGE2_VER_MAJ_OFFS+1] != COMPAT_VERSION_MINOR || -+ *(unsigned *)§or[STAGE2_INSTALLPART] != 0xFFFFFF) { -+ die(3, "Aborting: GRUB MBR signature not found."); -+ } -+ -+ if (!quiet) -+ printf("Found GRUB %c%c%c%c MBR signature.\n", -+ sector[STAGE2_VER_STR_OFFS], -+ sector[STAGE2_VER_STR_OFFS+1], -+ sector[STAGE2_VER_STR_OFFS+2], -+ sector[STAGE2_VER_STR_OFFS+3] -+ ); -+ -+ entryno = *(unsigned *)§or[STAGE2_SAVED_ENTRYNO]; -+ if (readonly) { -+ if (!quiet) -+ printf("Next boot will use entry #"); -+ printf("%d\n", entryno); -+ exit(0); -+ } -+ -+ /* This needs some explanation: the 'savedefault fallback' config statement -+ * saves the next entry number before booting the current one. So assuming -+ * the configuration uses consecutive fallbacks, the current entry number -+ * equals the saved entry number minus 1. This mode allows one to dedicate -+ * several entries to a number of retries, so that if entry 2 fails because -+ * of power failure, a strictly equivalent entry 3 gives it a second chance -+ * to boot. If entry 3 succeeds and if it is a backup of entry 2, we must -+ * validate 2 and not 3. This is what is provided here when new_entryno is -+ * negative. It reflects the opposite of the number of consecutive equivalent -+ * entries in the configuration file. For instance, if each entry is doubled, -+ * then new_entryno should be -2. -+ */ -+ -+ if (new_entryno < 0) -+ new_entryno = (entryno - 1) - (entryno - 1) % (-new_entryno); -+ -+ *(unsigned *)§or[STAGE2_SAVED_ENTRYNO] = new_entryno; -+ -+ if (lseek(fd, SECTOR_SIZE * 2, SEEK_SET) < 0) -+ error(4, "Cannot seek to the sector :"); -+ -+ if (write(fd, sector, SECTOR_SIZE) != SECTOR_SIZE) -+ error(4, "Write error :"); -+ -+ if (!quiet) -+ printf("Next boot entry changed to #%d\n", new_entryno); -+ close(fd); -+ exit(0); -+} diff --git a/sys-boot/grub/files/grub-0.97-Add-esp-to-list-of-clobbered-registers.patch b/sys-boot/grub/files/grub-0.97-Add-esp-to-list-of-clobbered-registers.patch deleted file mode 100644 index c550aabd..00000000 --- a/sys-boot/grub/files/grub-0.97-Add-esp-to-list-of-clobbered-registers.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 5a52ee4b5cd152fa4ccd1c1f938ce2eba652af52 Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich <slyfox@gentoo.org> -Date: Mon, 14 Dec 2015 23:59:17 +0000 -Subject: [PATCH] Add %esp to list of clobbered registers - -GCC assumes that it can combine stacks from -outer - grub_stage2() -and inner - trampoline doit() -functions (optimisation -fcombine-stack-adjustments). - -But doit() function clobbers %esp in inline -assebly statement as: - - asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n" - : "=&r" (realstack) : "r" (simstack)); - -which tricks gcc into computing invalid local variable -offsets from current %esp value. - -Fix by hinting gcc about %esp change in clobber list. - -Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> ---- - grub/asmstub.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub/asmstub.c b/grub/asmstub.c -index 6354806..44b056f 100644 ---- a/grub/asmstub.c -+++ b/grub/asmstub.c -@@ -174,7 +174,7 @@ grub_stage2 (void) - { - /* Make sure our stack lives in the simulated memory area. */ - asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n" -- : "=&r" (realstack) : "r" (simstack)); -+ : "=&r" (realstack) : "r" (simstack) : "%esp"); - - /* Do a setjmp here for the stop command. */ - if (! setjmp (env_for_exit)) -@@ -191,7 +191,7 @@ grub_stage2 (void) - } - - /* Replace our stack before we use any local variables. */ -- asm volatile ("movl %0, %%esp\n" : : "r" (realstack)); -+ asm volatile ("movl %0, %%esp\n" : : "r" (realstack) : "%esp"); - } - - assert (grub_scratch_mem == 0); --- -2.6.3 - diff --git a/sys-boot/grub/files/grub-0.97-ncurses-pkgconfig.patch b/sys-boot/grub/files/grub-0.97-ncurses-pkgconfig.patch deleted file mode 100644 index d62e4346..00000000 --- a/sys-boot/grub/files/grub-0.97-ncurses-pkgconfig.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/configure.ac 2015-12-17 11:09:56.807893315 -0500 -+++ b/configure.ac 2015-12-17 11:11:06.697570856 -0500 -@@ -234,10 +234,14 @@ - - # Unless the user specify --without-curses, check for curses. - if test "x$with_curses" != "xno"; then -+ PKG_CHECK_MODULES([NCURSES],[ncurses],[ -+ AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library]) -+ GRUB_LIBS="$GRUB_LIBS $NCURSES_LIBS" -+ ],[ - AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses" - AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])], - [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses" -- AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])]) -+ AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])])]) - fi - - AC_SUBST(GRUB_LIBS) diff --git a/sys-boot/grub/files/grub.conf.gentoo b/sys-boot/grub/files/grub.conf.gentoo deleted file mode 100644 index 984470b3..00000000 --- a/sys-boot/grub/files/grub.conf.gentoo +++ /dev/null @@ -1,16 +0,0 @@ -# This is a sample grub.conf for use with Genkernel, per the Gentoo handbook -# http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=10#doc_chap2 -# If you are not using Genkernel and you need help creating this file, you -# should consult the handbook. Alternatively, consult the grub.conf.sample that -# is included with the Grub documentation. - -default 0 -timeout 30 -#splashimage=(hd0,0)/boot/grub/splash.xpm.gz - -#title Gentoo Linux 3.8.13 -#root (hd0,0) -#kernel /boot/kernel-genkernel-x86-3.8.13-gentoo root=/dev/sda3 -#initrd /boot/initramfs-genkernel-x86-3.8.13 - -# vim:ft=conf: diff --git a/sys-boot/grub/grub-0.97-r16.ebuild b/sys-boot/grub/grub-0.97-r16.ebuild deleted file mode 100644 index febdfe12..00000000 --- a/sys-boot/grub/grub-0.97-r16.ebuild +++ /dev/null @@ -1,302 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -# XXX: we need to review menu.lst vs grub.conf handling. We've been converting -# all systems to grub.conf (and symlinking menu.lst to grub.conf), but -# we never updated any of the source code (it still all wants menu.lst), -# and there is no indication that upstream is making the transition. - -# If you need to roll a new grub-static distfile, here is how. -# - Robin H. Johnson <robbat2@gentoo.org> - 29 Nov 2010 -# FEATURES='-noauto -noinfo -nodoc -noman -splitdebug nostrip' \ -# USE='static -ncurses -netboot -custom-cflags' \ -# PORTAGE_COMPRESS=true GRUB_STATIC_PACKAGE_BUILDING=1 ebuild \ -# grub-${PVR}.ebuild clean package && \ -# qtbz2 -s -j ${PKGDIR}/${CAT}/${PF}.tbz2 && \ -# mv ${PF}.tar.bz2 ${DISTDIR}/grub-static-${PVR}.tar.bz2 - -EAPI="5" - -inherit eutils mount-boot toolchain-funcs linux-info flag-o-matic autotools pax-utils multiprocessing - -PATCHVER="1.14" # Should match the revision ideally -DESCRIPTION="GNU GRUB Legacy boot loader" -HOMEPAGE="https://www.gnu.org/software/grub/" -SRC_URI="mirror://gentoo/${P}.tar.gz - mirror://gnu-alpha/${PN}/${P}.tar.gz - mirror://gentoo/splash.xpm.gz - mirror://gentoo/${P}-patches-${PATCHVER}.tar.bz2" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86 ~x86-fbsd" -IUSE="custom-cflags ncurses netboot static" - -LIB_DEPEND="ncurses? ( >=sys-libs/ncurses-5.9-r3:0[static-libs(+),abi_x86_32(-)] )" -RDEPEND="!static? ( ${LIB_DEPEND//[static-libs(+),/=[} )" -DEPEND="${RDEPEND} - static? ( ${LIB_DEPEND} )" - -pkg_setup() { - case $(tc-arch) in - amd64) CONFIG_CHECK='~IA32_EMULATION' check_extra_config ;; - esac -} - -src_prepare() { - # Grub will not handle a kernel larger than EXTENDED_MEMSIZE Mb as - # discovered in bug 160801. We can change this, however, using larger values - # for this variable means that Grub needs more memory to run and boot. For a - # kernel of size N, Grub needs (N+1)*2. Advanced users should set a custom - # value in make.conf, it is possible to make kernels ~16Mb in size, but it - # needs the kitchen sink built-in. - local t="custom" - if [[ -z ${GRUB_MAX_KERNEL_SIZE} ]] ; then - case $(tc-arch) in - amd64) GRUB_MAX_KERNEL_SIZE=9 ;; - x86) GRUB_MAX_KERNEL_SIZE=5 ;; - esac - t="default" - fi - einfo "Grub will support the ${t} maximum kernel size of ${GRUB_MAX_KERNEL_SIZE} Mb (GRUB_MAX_KERNEL_SIZE)" - - sed -i \ - -e "/^#define.*EXTENDED_MEMSIZE/s,3,${GRUB_MAX_KERNEL_SIZE},g" \ - "${S}"/grub/asmstub.c \ - || die - - EPATCH_SUFFIX="patch" epatch "${FILESDIR}"/formilux - EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch - - # Work around issue where the default CFLAGS fail with gcc-4.9.3 (possibly newer), force -O0 instead - # bug 564890, 566638 - if [[ $(gcc-major-version) -ge 5 || $(gcc-major-version) -eq 4 && $(gcc-minor-version) -ge 9 ]]; then - if use custom-cflags; then - ewarn "You are using custom cflags with gcc-4.9 or newer." - ewarn "Be aware the result may segfault at runtime due to unknown optimization" - ewarn "incompatibilities." - else - einfo "Forcing -O0 to get around optimization issue caused by gcc-4.9 and newer with -O2" - sed -i -e "/CFLAGS/s/-O2/-O0/" \ - "${S}"/configure.ac || die - fi - fi - - rm -f "${S}"/aclocal.m4 # seems to keep bug 418287 away - eautoreconf -} - -src_configure() { - filter-flags -fPIE #168834 - - use amd64 && multilib_toolchain_setup x86 - - unset BLOCK_SIZE #73499 - - ### i686-specific code in the boot loader is a bad idea; disabling to ensure - ### at least some compatibility if the hard drive is moved to an older or - ### incompatible system. - - # grub-0.95 added -fno-stack-protector detection, to disable ssp for stage2, - # but the objcopy's (faulty) test fails if -fstack-protector is default. - # create a cache telling configure that objcopy is ok, and add -C to econf - # to make use of the cache. - # - # CFLAGS has to be undefined running econf, else -fno-stack-protector detection fails. - # STAGE2_CFLAGS is not allowed to be used on emake command-line, it overwrites - # -fno-stack-protector detected by configure, removed from netboot's emake. - use custom-cflags || unset CFLAGS - - tc-ld-disable-gold #439082 #466536 #526348 - - export grub_cv_prog_objcopy_absolute=yes #79734 - use static && append-ldflags -static - - if use amd64 && use static ; then - if [[ -n ${GRUB_STATIC_PACKAGE_BUILDING} ]] ; then - eerror "You have set GRUB_STATIC_PACKAGE_BUILDING. This" - eerror "is specifically intended for building the tarballs for the" - eerror "grub-static package via USE='static -ncurses'." - eerror "All bets are now off." - fi - fi - - multijob_init - - # build the net-bootable grub first, but only if "netboot" is set - if use netboot ; then - ( - multijob_child_init - mkdir -p "${WORKDIR}"/netboot - pushd "${WORKDIR}"/netboot >/dev/null - ECONF_SOURCE=${S} \ - econf \ - --libdir=/lib \ - --datadir=/usr/lib/grub \ - --exec-prefix=/ \ - --disable-auto-linux-mem-opt \ - --enable-diskless \ - --enable-{3c{5{03,07,09,29,95},90x},cs89x0,davicom,depca,eepro{,100}} \ - --enable-{epic100,exos205,ni5210,lance,ne2100,ni{50,65}10,natsemi} \ - --enable-{ne,ns8390,wd,otulip,rtl8139,sis900,sk-g16,smc9000,tiara} \ - --enable-{tulip,via-rhine,w89c840} - popd >/dev/null - ) & - multijob_post_fork - fi - - # Now build the regular grub - # Note that FFS and UFS2 support are broken for now - stage1_5 files too big - econf \ - --libdir=/lib \ - --datadir=/usr/lib/grub \ - --exec-prefix=/ \ - --disable-auto-linux-mem-opt \ - $(use_with ncurses curses) - - # sanity check due to common failure - use ncurses && ! grep -qs "HAVE_LIBCURSES.*1" config.h && die "USE=ncurses but curses not found" - - multijob_finish -} - -src_compile() { - use netboot && emake -C "${WORKDIR}"/netboot w89c840_o_CFLAGS="-O" - emake -} - -src_test() { - # non-default block size also give false pass/fails. - unset BLOCK_SIZE - emake -j1 check -} - -src_install() { - default - if use netboot ; then - exeinto /usr/lib/grub/${CHOST} - doexe "${WORKDIR}"/netboot/stage2/{nbgrub,pxegrub} - newexe "${WORKDIR}"/netboot/stage2/stage2 stage2.netboot - fi - - pax-mark -m "${D}"/sbin/grub #330745 - - newdoc docs/menu.lst grub.conf.sample - dodoc "${FILESDIR}"/grub.conf.gentoo - - [[ -n ${GRUB_STATIC_PACKAGE_BUILDING} ]] && \ - mv "${D}"/usr/share/doc/{${PF},grub-static-${PF/grub-}} - - insinto /usr/share/grub - doins "${DISTDIR}"/splash.xpm.gz -} - -setup_boot_dir() { - local boot_dir=$1 - local dir=${boot_dir} - - mkdir -p "${dir}" - [[ ! -L ${dir}/boot ]] && ln -s . "${dir}/boot" - dir="${dir}/grub" - if [[ ! -e ${dir} ]] ; then - mkdir "${dir}" || die - fi - - # change menu.lst to grub.conf - if [[ ! -e ${dir}/grub.conf ]] && [[ -e ${dir}/menu.lst ]] ; then - mv -f "${dir}"/menu.lst "${dir}"/grub.conf - ewarn "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf" - echo - fi - - if [[ ! -e ${dir}/menu.lst ]]; then - einfo "Linking from new grub.conf name to menu.lst" - ln -snf grub.conf "${dir}"/menu.lst - fi - - if [[ -e ${dir}/stage2 ]] ; then - mv "${dir}"/stage2{,.old} - ewarn "*** IMPORTANT NOTE: you must run grub and install" - ewarn "the new version's stage1 to your MBR. Until you do," - ewarn "stage1 and stage2 will still be the old version, but" - ewarn "later stages will be the new version, which could" - ewarn "cause problems such as an unbootable system." - ewarn - ewarn "This means you must use either grub-install or perform" - ewarn "root/setup manually." - ewarn - ewarn "For more help, see the handbook:" - ewarn "https://www.gentoo.org/doc/en/handbook/handbook-${ARCH}.xml?part=1&chap=10#grub-install-auto" - echo - fi - - einfo "Copying files from /lib/grub and /usr/share/grub to ${dir}" - for x in \ - "${ROOT}"/lib*/grub/*/* \ - "${ROOT}"/usr/share/grub/* ; do - [[ -f ${x} ]] && cp -p "${x}" "${dir}"/ - done - - if [[ ! -e ${dir}/grub.conf ]] ; then - s="${ROOT}/usr/share/doc/${PF}/grub.conf.gentoo" - [[ -e "${s}" ]] && cat "${s}" >${dir}/grub.conf - [[ -e "${s}.gz" ]] && zcat "${s}.gz" >${dir}/grub.conf - [[ -e "${s}.bz2" ]] && bzcat "${s}.bz2" >${dir}/grub.conf - fi - - # Per bug 218599, we support grub.conf.install for users that want to run a - # specific set of Grub setup commands rather than the default ones. - grub_config=${dir}/grub.conf.install - [[ -e ${grub_config} ]] || grub_config=${dir}/grub.conf - if [[ -e ${grub_config} ]] ; then - egrep \ - -v '^[[:space:]]*(#|$|default|fallback|initrd|password|splashimage|timeout|title)' \ - "${grub_config}" | \ - /sbin/grub --batch \ - --device-map="${dir}"/device.map \ - > /dev/null - fi - - # the grub default commands silently piss themselves if - # the default file does not exist ahead of time - if [[ ! -e ${dir}/default ]] ; then - grub-set-default --root-directory="${boot_dir}" default - fi - einfo "Grub has been installed to ${boot_dir} successfully." -} - -pkg_postinst() { - mount-boot_mount_boot_partition - - if [[ -n ${DONT_MOUNT_BOOT} ]]; then - elog "WARNING: you have DONT_MOUNT_BOOT in effect, so you must apply" - elog "the following instructions for your /boot!" - elog "Neglecting to do so may cause your system to fail to boot!" - elog - else - setup_boot_dir "${ROOT}"/boot - # Trailing output because if this is run from pkg_postinst, it gets mixed into - # the other output. - einfo "" - fi - elog "To interactively install grub files to another device such as a USB" - elog "stick, just run the following and specify the directory as prompted:" - elog " emerge --config =${PF}" - elog "Alternately, you can export GRUB_ALT_INSTALLDIR=/path/to/use to tell" - elog "grub where to install in a non-interactive way." - - # needs to be after we call setup_boot_dir - mount-boot_pkg_postinst -} - -pkg_config() { - local dir - if [ ! -d "${GRUB_ALT_INSTALLDIR}" ]; then - einfo "Enter the directory where you want to setup grub:" - read dir - else - dir="${GRUB_ALT_INSTALLDIR}" - fi - setup_boot_dir "${dir}" -} diff --git a/sys-boot/grub/grub-0.97-r17.ebuild b/sys-boot/grub/grub-0.97-r17.ebuild deleted file mode 100644 index 818891a8..00000000 --- a/sys-boot/grub/grub-0.97-r17.ebuild +++ /dev/null @@ -1,292 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -# XXX: we need to review menu.lst vs grub.conf handling. We've been converting -# all systems to grub.conf (and symlinking menu.lst to grub.conf), but -# we never updated any of the source code (it still all wants menu.lst), -# and there is no indication that upstream is making the transition. - -# If you need to roll a new grub-static distfile, here is how. -# - Robin H. Johnson <robbat2@gentoo.org> - 29 Nov 2010 -# FEATURES='-noauto -noinfo -nodoc -noman -splitdebug nostrip' \ -# USE='static -ncurses -netboot -custom-cflags' \ -# PORTAGE_COMPRESS=true GRUB_STATIC_PACKAGE_BUILDING=1 ebuild \ -# grub-${PVR}.ebuild clean package && \ -# qtbz2 -s -j ${PKGDIR}/${CAT}/${PF}.tbz2 && \ -# mv ${PF}.tar.bz2 ${DISTDIR}/grub-static-${PVR}.tar.bz2 - -EAPI="5" - -inherit eutils mount-boot toolchain-funcs linux-info flag-o-matic autotools pax-utils multiprocessing - -PATCHVER="1.14" # Should match the revision ideally -DESCRIPTION="GNU GRUB Legacy boot loader" -HOMEPAGE="https://www.gnu.org/software/grub/" -SRC_URI="mirror://gentoo/${P}.tar.gz - mirror://gnu-alpha/${PN}/${P}.tar.gz - mirror://gentoo/splash.xpm.gz - mirror://gentoo/${P}-patches-${PATCHVER}.tar.bz2" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86 ~x86-fbsd" -IUSE="custom-cflags ncurses netboot static" - -LIB_DEPEND="ncurses? ( >=sys-libs/ncurses-5.9-r3:0[static-libs(+),abi_x86_32(-)] )" -RDEPEND="!static? ( ${LIB_DEPEND//[static-libs(+),/=[} )" -DEPEND="${RDEPEND} - virtual/pkgconfig - static? ( ${LIB_DEPEND} )" - -pkg_setup() { - case $(tc-arch) in - amd64) CONFIG_CHECK='~IA32_EMULATION' check_extra_config ;; - esac -} - -src_prepare() { - # Grub will not handle a kernel larger than EXTENDED_MEMSIZE Mb as - # discovered in bug 160801. We can change this, however, using larger values - # for this variable means that Grub needs more memory to run and boot. For a - # kernel of size N, Grub needs (N+1)*2. Advanced users should set a custom - # value in make.conf, it is possible to make kernels ~16Mb in size, but it - # needs the kitchen sink built-in. - local t="custom" - if [[ -z ${GRUB_MAX_KERNEL_SIZE} ]] ; then - case $(tc-arch) in - amd64) GRUB_MAX_KERNEL_SIZE=9 ;; - x86) GRUB_MAX_KERNEL_SIZE=5 ;; - esac - t="default" - fi - einfo "Grub will support the ${t} maximum kernel size of ${GRUB_MAX_KERNEL_SIZE} Mb (GRUB_MAX_KERNEL_SIZE)" - - sed -i \ - -e "/^#define.*EXTENDED_MEMSIZE/s,3,${GRUB_MAX_KERNEL_SIZE},g" \ - "${S}"/grub/asmstub.c \ - || die - - EPATCH_SUFFIX="patch" epatch "${FILESDIR}"/formilux - EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch - # bug 564890, 566638 - epatch "${FILESDIR}"/grub-0.97-Add-esp-to-list-of-clobbered-registers.patch - epatch "${FILESDIR}"/grub-0.97-ncurses-pkgconfig.patch - - rm -f "${S}"/aclocal.m4 # seems to keep bug 418287 away - eautoreconf -} - -src_configure() { - filter-flags -fPIE #168834 - - use amd64 && multilib_toolchain_setup x86 - - unset BLOCK_SIZE #73499 - - ### i686-specific code in the boot loader is a bad idea; disabling to ensure - ### at least some compatibility if the hard drive is moved to an older or - ### incompatible system. - - # grub-0.95 added -fno-stack-protector detection, to disable ssp for stage2, - # but the objcopy's (faulty) test fails if -fstack-protector is default. - # create a cache telling configure that objcopy is ok, and add -C to econf - # to make use of the cache. - # - # CFLAGS has to be undefined running econf, else -fno-stack-protector detection fails. - # STAGE2_CFLAGS is not allowed to be used on emake command-line, it overwrites - # -fno-stack-protector detected by configure, removed from netboot's emake. - use custom-cflags || unset CFLAGS - - tc-ld-disable-gold #439082 #466536 #526348 - - export grub_cv_prog_objcopy_absolute=yes #79734 - use static && append-ldflags -static - - if use amd64 && use static ; then - if [[ -n ${GRUB_STATIC_PACKAGE_BUILDING} ]] ; then - eerror "You have set GRUB_STATIC_PACKAGE_BUILDING. This" - eerror "is specifically intended for building the tarballs for the" - eerror "grub-static package via USE='static -ncurses'." - eerror "All bets are now off." - fi - fi - - multijob_init - - # build the net-bootable grub first, but only if "netboot" is set - if use netboot ; then - ( - multijob_child_init - mkdir -p "${WORKDIR}"/netboot - pushd "${WORKDIR}"/netboot >/dev/null - ECONF_SOURCE=${S} \ - econf \ - --libdir=/lib \ - --datadir=/usr/lib/grub \ - --exec-prefix=/ \ - --disable-auto-linux-mem-opt \ - --enable-diskless \ - --enable-{3c{5{03,07,09,29,95},90x},cs89x0,davicom,depca,eepro{,100}} \ - --enable-{epic100,exos205,ni5210,lance,ne2100,ni{50,65}10,natsemi} \ - --enable-{ne,ns8390,wd,otulip,rtl8139,sis900,sk-g16,smc9000,tiara} \ - --enable-{tulip,via-rhine,w89c840} - popd >/dev/null - ) & - multijob_post_fork - fi - - # Now build the regular grub - # Note that FFS and UFS2 support are broken for now - stage1_5 files too big - econf \ - --libdir=/lib \ - --datadir=/usr/lib/grub \ - --exec-prefix=/ \ - --disable-auto-linux-mem-opt \ - $(use_with ncurses curses) - - # sanity check due to common failure - use ncurses && ! grep -qs "HAVE_LIBCURSES.*1" config.h && die "USE=ncurses but curses not found" - - multijob_finish -} - -src_compile() { - use netboot && emake -C "${WORKDIR}"/netboot w89c840_o_CFLAGS="-O" - emake -} - -src_test() { - # non-default block size also give false pass/fails. - unset BLOCK_SIZE - emake -j1 check -} - -src_install() { - default - if use netboot ; then - exeinto /usr/lib/grub/${CHOST} - doexe "${WORKDIR}"/netboot/stage2/{nbgrub,pxegrub} - newexe "${WORKDIR}"/netboot/stage2/stage2 stage2.netboot - fi - - pax-mark -m "${D}"/sbin/grub #330745 - - newdoc docs/menu.lst grub.conf.sample - dodoc "${FILESDIR}"/grub.conf.gentoo - - [[ -n ${GRUB_STATIC_PACKAGE_BUILDING} ]] && \ - mv "${D}"/usr/share/doc/{${PF},grub-static-${PF/grub-}} - - insinto /usr/share/grub - doins "${DISTDIR}"/splash.xpm.gz -} - -setup_boot_dir() { - local boot_dir=$1 - local dir=${boot_dir} - - mkdir -p "${dir}" - [[ ! -L ${dir}/boot ]] && ln -s . "${dir}/boot" - dir="${dir}/grub" - if [[ ! -e ${dir} ]] ; then - mkdir "${dir}" || die - fi - - # change menu.lst to grub.conf - if [[ ! -e ${dir}/grub.conf ]] && [[ -e ${dir}/menu.lst ]] ; then - mv -f "${dir}"/menu.lst "${dir}"/grub.conf - ewarn "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf" - echo - fi - - if [[ ! -e ${dir}/menu.lst ]]; then - einfo "Linking from new grub.conf name to menu.lst" - ln -snf grub.conf "${dir}"/menu.lst - fi - - if [[ -e ${dir}/stage2 ]] ; then - mv "${dir}"/stage2{,.old} - ewarn "*** IMPORTANT NOTE: you must run grub and install" - ewarn "the new version's stage1 to your MBR. Until you do," - ewarn "stage1 and stage2 will still be the old version, but" - ewarn "later stages will be the new version, which could" - ewarn "cause problems such as an unbootable system." - ewarn - ewarn "This means you must use either grub-install or perform" - ewarn "root/setup manually." - ewarn - ewarn "For more help, see the handbook:" - ewarn "https://www.gentoo.org/doc/en/handbook/handbook-${ARCH}.xml?part=1&chap=10#grub-install-auto" - echo - fi - - einfo "Copying files from /lib/grub and /usr/share/grub to ${dir}" - for x in \ - "${ROOT}"/lib*/grub/*/* \ - "${ROOT}"/usr/share/grub/* ; do - [[ -f ${x} ]] && cp -p "${x}" "${dir}"/ - done - - if [[ ! -e ${dir}/grub.conf ]] ; then - s="${ROOT}/usr/share/doc/${PF}/grub.conf.gentoo" - [[ -e "${s}" ]] && cat "${s}" >${dir}/grub.conf - [[ -e "${s}.gz" ]] && zcat "${s}.gz" >${dir}/grub.conf - [[ -e "${s}.bz2" ]] && bzcat "${s}.bz2" >${dir}/grub.conf - fi - - # Per bug 218599, we support grub.conf.install for users that want to run a - # specific set of Grub setup commands rather than the default ones. - grub_config=${dir}/grub.conf.install - [[ -e ${grub_config} ]] || grub_config=${dir}/grub.conf - if [[ -e ${grub_config} ]] ; then - egrep \ - -v '^[[:space:]]*(#|$|default|fallback|initrd|password|splashimage|timeout|title)' \ - "${grub_config}" | \ - /sbin/grub --batch \ - --device-map="${dir}"/device.map \ - > /dev/null - fi - - # the grub default commands silently piss themselves if - # the default file does not exist ahead of time - if [[ ! -e ${dir}/default ]] ; then - grub-set-default --root-directory="${boot_dir}" default - fi - einfo "Grub has been installed to ${boot_dir} successfully." -} - -pkg_postinst() { - mount-boot_mount_boot_partition - - if [[ -n ${DONT_MOUNT_BOOT} ]]; then - elog "WARNING: you have DONT_MOUNT_BOOT in effect, so you must apply" - elog "the following instructions for your /boot!" - elog "Neglecting to do so may cause your system to fail to boot!" - elog - else - setup_boot_dir "${ROOT}"/boot - # Trailing output because if this is run from pkg_postinst, it gets mixed into - # the other output. - einfo "" - fi - elog "To interactively install grub files to another device such as a USB" - elog "stick, just run the following and specify the directory as prompted:" - elog " emerge --config =${PF}" - elog "Alternately, you can export GRUB_ALT_INSTALLDIR=/path/to/use to tell" - elog "grub where to install in a non-interactive way." - - # needs to be after we call setup_boot_dir - mount-boot_pkg_postinst -} - -pkg_config() { - local dir - if [ ! -d "${GRUB_ALT_INSTALLDIR}" ]; then - einfo "Enter the directory where you want to setup grub:" - read dir - else - dir="${GRUB_ALT_INSTALLDIR}" - fi - setup_boot_dir "${dir}" -} diff --git a/sys-boot/grub/metadata.xml b/sys-boot/grub/metadata.xml deleted file mode 100644 index 35011519..00000000 --- a/sys-boot/grub/metadata.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> -<maintainer restrict=">=sys-boot/grub-2" type="person"> - <email>floppym@gentoo.org</email> -</maintainer> -<maintainer type="project"> - <email>base-system@gentoo.org</email> - <name>Gentoo Base System</name> -</maintainer> -<use> -</use> -<upstream> - <remote-id type="sourceforge">dejavu</remote-id> -</upstream> -</pkgmetadata> |