summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-boot/lilo')
-rw-r--r--sys-boot/lilo/Manifest2
-rw-r--r--sys-boot/lilo/files/lilo-24.0-novga.patch12
-rw-r--r--sys-boot/lilo/files/lilo-24.2-add-nvme-support.patch70
-rw-r--r--sys-boot/lilo/files/lilo-24.x-check-for-__GLIBC__.patch18
-rw-r--r--sys-boot/lilo/files/lilo-24.x-fix-gcc-10.patch51
-rw-r--r--sys-boot/lilo/files/lilo.conf8
-rw-r--r--sys-boot/lilo/lilo-24.0-r1.ebuild171
-rw-r--r--sys-boot/lilo/lilo-24.2-r1.ebuild (renamed from sys-boot/lilo/lilo-24.1.ebuild)44
-rw-r--r--sys-boot/lilo/lilo-24.2.ebuild178
-rw-r--r--sys-boot/lilo/metadata.xml23
10 files changed, 181 insertions, 396 deletions
diff --git a/sys-boot/lilo/Manifest b/sys-boot/lilo/Manifest
index 39d90b9ba384..4260ab014b47 100644
--- a/sys-boot/lilo/Manifest
+++ b/sys-boot/lilo/Manifest
@@ -1,4 +1,2 @@
DIST dolilo-0.6.tar.bz2 3817 BLAKE2B 35c41f5eac8e02d4381db517a9b230d037da184f9ae409bc76307e689ad6b82928ea3794db54c3137afe6c770db86ba0cde78c33d89e775ddea464905070bfd6 SHA512 1b59ea5f2e2ac52d62635c9f7d5fb5b2aff6757e6ea6c0950480d8a11832b872115907abe6d8fb3fa5436e2e8971d9a1dda103dc6a15db6fc310c8f4730ab936
-DIST lilo-24.0.tar.gz 768631 BLAKE2B 09f6520e16a90eab5f44af440f1e2c2d05abb56e954dbb0237700d8e99f017bab279fa8a5c535114ec58be7416123ea51e91311255ed3036199f3565eec5a3f7 SHA512 4158a0f7ab085da063938df2bc77356f9536aa78208a902561f9e61ec478fb17f204f68407f6809638aea9d2e0c88ffc701548291c1635ab40f5b18a7be6bae7
-DIST lilo-24.1.tar.gz 773223 BLAKE2B ceaeaf6696b7b15d95cc6c90c6de63ad731f4d0f6d9e42fea4a245219d446cbecdb7d372ef4cb31dce26c7e149723779244f0319939343edf971ac1a19ba5063 SHA512 d1375cac9654fcb3934e7e5e0533e126ff8700a48154eb5019cf62e4b89f14d2ce7a17b6324795d9b60b37ab7656bfb2c9467f6e9d3540095f5c294579e83883
DIST lilo-24.2.tar.gz 777400 BLAKE2B 71c74235d5df10eed65b67dc1ce2af21163651c752d799da419077025304abf9352535a70f3fb60d086609d8a1c25bf394e29453c338ab022cb2be3cb21af75f SHA512 4437cae21345f483194a5dc95f686f3f3cb2beec78faae3fba959db25eae29fe2c56732e055c05f1d101682c5d442cdc9561fae8074f61f5537dde0413204c54
diff --git a/sys-boot/lilo/files/lilo-24.0-novga.patch b/sys-boot/lilo/files/lilo-24.0-novga.patch
deleted file mode 100644
index ebb06b486818..000000000000
--- a/sys-boot/lilo/files/lilo-24.0-novga.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur lilo-23.2/make.vars lilo-23.2.new/make.vars
---- lilo-23.2/make.vars 2013-01-18 11:33:02.438628138 -0600
-+++ lilo-23.2.new/make.vars 2013-01-18 11:34:03.960697091 -0600
-@@ -71,7 +71,7 @@
-
- CONFIG=-DBDATA -DDSECS=3 -DEVMS -DIGNORECASE -DLVM -DNOKEYBOARD -DONE_SHOT \
- -DPASS160 -DREISERFS -DREWRITE_TABLE -DSOLO_CHAIN -DVERSION -DVIRTUAL \
-- -DMDPRAID -DDEVMAPPER
-+ -DMDPRAID -DDEVMAPPER -DNOVGA
-
- # set the following if you wish LILO.COM to be installed
- DOS_DIR=/dosC/boot
diff --git a/sys-boot/lilo/files/lilo-24.2-add-nvme-support.patch b/sys-boot/lilo/files/lilo-24.2-add-nvme-support.patch
new file mode 100644
index 000000000000..b4d54ec9bc95
--- /dev/null
+++ b/sys-boot/lilo/files/lilo-24.2-add-nvme-support.patch
@@ -0,0 +1,70 @@
+diff -Naurp lilo-24.2.orig/src/common.h lilo-24.2/src/common.h
+--- lilo-24.2.orig/src/common.h 2015-11-21 18:50:23.000000000 -0500
++++ lilo-24.2/src/common.h 2020-07-30 23:20:05.611122665 -0400
+@@ -386,7 +386,7 @@ extern char *config_file;
+ extern FILE *errstd;
+ extern FILE *pp_fd;
+ extern char *identify; /* in identify.c */
+-extern int dm_major_list[16];
++extern int dm_major_list[32];
+ extern int dm_major_nr;
+
+ #define crc(a,b) (~crc32((a),(b),CRC_POLY1))
+diff -Naurp lilo-24.2.orig/src/geometry.c lilo-24.2/src/geometry.c
+--- lilo-24.2.orig/src/geometry.c 2015-11-21 18:50:18.000000000 -0500
++++ lilo-24.2/src/geometry.c 2020-07-30 23:20:05.611122665 -0400
+@@ -84,8 +84,9 @@ DM_TABLE *dmtab = NULL;
+ int dm_version_nr = 0;
+ #endif
+
+-int dm_major_list[16];
++int dm_major_list[32]; /* increased from 16 to allow for nvme disks */
+ int dm_major_nr;
++int nvme_pr = 0; /* set to none zero after geo_init if nvme disk present */
+
+ #ifdef LCF_LVM
+ struct lv_bmap {
+@@ -200,6 +201,9 @@ void geo_init(char *name)
+
+ while(fgets(line, (sizeof line)-1, file)) {
+ if (sscanf(line, "%d %31s\n", &major, major_name) != 2) continue;
++ if (strcmp(major_name, "nvme") !=0) { /* set if nvme drive is present */
++ nvme_pr=-1;
++ }
+ if (strcmp(major_name, "device-mapper") != 0) continue;
+ dm_major_list[dm_major_nr] = major;
+ if (verbose >= 3) {
+@@ -708,6 +712,22 @@ void geo_query_dev(GEOMETRY *geo,int dev
+ geo->start = hdprm.start;
+ break;
+ case MAJOR_SATA1:
++ /* check for nvme device and assume boot/this device is nvme if present */
++ if (nvme_pr != 0) {
++ geo->device = 0x80 + last_dev(MAJOR_IDE,64) + (MINOR(device) >> 4);
++ if (!get_all) break;
++ if (ioctl(fd,HDIO_GETGEO,&hdprm) < 0)
++ die("geo_query_dev HDIO_GETGEO (dev 0x%04x): %s",device,
++ strerror(errno));
++ if (all && !hdprm.sectors)
++ die("HDIO_REQ not supported for your NVME controller. Please "
++ "use a DISK section");
++ geo->heads = hdprm.heads;
++ geo->cylinders = hdprm.cylinders;
++ geo->sectors = hdprm.sectors;
++ geo->start = hdprm.start;
++ break;
++ }
+ case MAJOR_SATA2:
+ printf("WARNING: SATA partition in the high region (>15):\n");
+ printf("LILO needs the kernel in one of the first 15 SATA partitions. If \n");
+diff -Naurp lilo-24.2.orig/src/lilo.h lilo-24.2/src/lilo.h
+--- lilo-24.2.orig/src/lilo.h 2015-11-21 18:50:20.000000000 -0500
++++ lilo-24.2/src/lilo.h 2020-07-30 23:20:05.611122665 -0400
+@@ -245,6 +245,7 @@
+
+ /* high partitions (>15) on SATA hard disks */
+ #define MAJOR_SATA1 259 /* high SATA disk partitions (Block Extended Major) */
++ /* also used by kernel for nvme disks */
+ #define MAJOR_SATA2 260 /* high SATA disk partitions (Block Extended Major) (obsolete) */
+
+
diff --git a/sys-boot/lilo/files/lilo-24.x-check-for-__GLIBC__.patch b/sys-boot/lilo/files/lilo-24.x-check-for-__GLIBC__.patch
new file mode 100644
index 000000000000..be3443629cfa
--- /dev/null
+++ b/sys-boot/lilo/files/lilo-24.x-check-for-__GLIBC__.patch
@@ -0,0 +1,18 @@
+diff -Naurp lilo-24.2.orig/src/lilo.c lilo-24.2/src/lilo.c
+--- lilo-24.2.orig/src/lilo.c 2021-06-06 15:53:52.389730145 -0400
++++ lilo-24.2/src/lilo.c 2021-06-06 15:53:28.309159571 -0400
+@@ -182,7 +182,14 @@ extern int has_partitions_beta(dev_t dev
+ printf("Without");
+ #endif
+ printf(" device-mapper\n");
++#ifdef __GLIBC__
++ /*
++ * __GLIBC__ is defined in features.h, which should be pulled
++ * in by stdio.h, but this is not guaranteed nor apparently
++ * documented anywhere.
++ */
+ printf("\nglibc version %d.%d\n", __GLIBC__, __GLIBC_MINOR__);
++#endif
+ printf("Kernel Headers included from %d.%d.%d\n",
+ LINUX_VERSION_CODE>>16,
+ LINUX_VERSION_CODE>>8 & 255,
diff --git a/sys-boot/lilo/files/lilo-24.x-fix-gcc-10.patch b/sys-boot/lilo/files/lilo-24.x-fix-gcc-10.patch
new file mode 100644
index 000000000000..c46b9eebdea0
--- /dev/null
+++ b/sys-boot/lilo/files/lilo-24.x-fix-gcc-10.patch
@@ -0,0 +1,51 @@
+Description: Fix ftbfs with GCC-10
+
+Author: Ryan Finnie <ryan@finnie.org>
+Bug-Debian: https://bugs.debian.org/957490
+Forwarded: no
+
+---
+
+--- a/src/raid.h
++++ b/src/raid.h
+@@ -8,7 +8,7 @@
+ * in the source directory.
+ */
+
+-int do_md_install, ndisk, md_bios;
++extern int ndisk, md_bios;
+
+ int raid_setup(void);
+ void raid_final(void);
+--- a/src/bsect.c
++++ b/src/bsect.c
+@@ -54,8 +54,6 @@
+ #endif
+
+
+-int boot_dev_nr;
+-
+ static BOOT_SECTOR bsect,bsect_orig;
+ static MENUTABLE menuparams;
+ static DESCR_SECTORS descrs;
+--- a/src/identify.c
++++ b/src/identify.c
+@@ -19,7 +19,6 @@
+ #include "common.h"
+ #include "cfg.h"
+
+-char *identify;
+ static char *opt;
+ static char *first, *dflt;
+ static int idefault;
+--- a/src/raid.c
++++ b/src/raid.c
+@@ -41,7 +41,7 @@
+ static int raid_bios[MAX_RAID+1];
+ static int device;
+ enum {MD_NULL=0, MD_PARALLEL, MD_MIXED, MD_SKEWED};
+-int do_md_install, ndisk, md_bios;
++int ndisk, md_bios;
+ static char *raid_list[MAX_RAID];
+ static int list_index[MAX_RAID];
+ static int nlist, faulty;
diff --git a/sys-boot/lilo/files/lilo.conf b/sys-boot/lilo/files/lilo.conf
index 3848f779029b..a65ae24252dc 100644
--- a/sys-boot/lilo/files/lilo.conf
+++ b/sys-boot/lilo/files/lilo.conf
@@ -12,7 +12,7 @@ lba32
#linear
# MBR to install LILO to:
-boot = /dev/hda
+boot = /dev/sda
map = /boot/.map
# If you are having problems booting from a hardware raid-array
@@ -51,7 +51,7 @@ vga = normal
# Linux bootable partition config begins
#
image = /boot/bzImage
- root = /dev/hda3
+ root = /dev/sda3
#root = /devices/discs/disc0/part3
label = Gentoo
read-only # read-only for checking
@@ -62,10 +62,10 @@ image = /boot/bzImage
#
# DOS bootable partition config begins
#
-other = /dev/hda1
+other = /dev/sda1
#other = /devices/discs/disc0/part1
label = Windows
- table = /dev/hda
+ table = /dev/sda
#
# DOS bootable partition config ends
#
diff --git a/sys-boot/lilo/lilo-24.0-r1.ebuild b/sys-boot/lilo/lilo-24.0-r1.ebuild
deleted file mode 100644
index b0639924ba39..000000000000
--- a/sys-boot/lilo/lilo-24.0-r1.ebuild
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit eutils flag-o-matic toolchain-funcs
-
-DOLILO_V="0.6"
-IUSE="static minimal pxeserial device-mapper"
-
-DESCRIPTION="Standard Linux boot loader"
-HOMEPAGE="https://alioth.debian.org/projects/lilo/"
-
-DOLILO_TAR="dolilo-${DOLILO_V}.tar.bz2"
-SRC_URI="
- http://lilo.alioth.debian.org/ftp/sources/${P}.tar.gz
- mirror://gentoo/${DOLILO_TAR}
-"
-
-SLOT="0"
-LICENSE="BSD GPL-2"
-KEYWORDS="-* amd64 x86"
-
-DEPEND=">=sys-devel/bin86-0.15.5"
-RDEPEND="device-mapper? ( >=sys-fs/lvm2-2.02.45 )"
-
-src_prepare() {
- # this patch is needed when booting PXE and the device you're using
- # emulates vga console via serial console.
- # IE.. B.B.o.o.o.o.t.t.i.i.n.n.g.g....l.l.i.i.n.n.u.u.x.x and stair stepping.
- use pxeserial && epatch "${FILESDIR}/${P}-novga.patch"
-
- # Do not strip and have parallel make
- # FIXME: images/Makefile does weird stuff
- sed -i Makefile src/Makefile \
- -e '/strip/d;s|^ make| $(MAKE)|g' \
- -e '/images install/d' \
- -e '/images all/d' \
- || die "sed strip failed"
-}
-
-src_configure() {
- if ! use device-mapper; then
- sed -i make.vars -e 's|-DDEVMAPPER||g' || die
- fi
-}
-
-src_compile() {
- # lilo needs this. bug #140209
- export LC_ALL=C
-
- # we explicitly prevent the custom CFLAGS for stability reasons
- if use static; then
- local target=alles
- else
- local target=all
- fi
-
- emake CC="$(tc-getCC) ${LDFLAGS}" ${target} || die
-}
-
-src_install() {
- keepdir /boot
- emake DESTDIR="${D}" install || die
-
- if use !minimal; then
- into /
- dosbin "${WORKDIR}"/dolilo/dolilo || die
-
- into /usr
- dosbin keytab-lilo.pl || die
-
- insinto /etc
- newins "${FILESDIR}"/lilo.conf lilo.conf.example || die
-
- newconfd "${WORKDIR}"/dolilo/dolilo.conf.d dolilo.example || die
-
- dodoc CHANGELOG* readme/README.* readme/INCOMPAT README
- docinto samples ; dodoc sample/*
- fi
-}
-
-# Check whether LILO is installed
-# This function is from /usr/sbin/mkboot from debianutils, with copyright:
-#
-# Debian GNU/Linux
-# Copyright 1996-1997 Guy Maor <maor@debian.org>
-#
-# Modified for Gentoo for use with the lilo ebuild by:
-# Martin Schlemmer <azarah@gentoo.org> (16 Mar 2003)
-#
-lilocheck() {
- local bootpart=
- local rootpart="$(mount | grep -v "tmpfs" | grep -v "rootfs" | grep "on / " | cut -f1 -d " ")"
-
- echo
- einfon "Checking for LILO ..."
-
- if [ "$(whoami)" != "root" ]
- then
- echo; echo
- eerror "Only root can check for LILO!"
- return 1
- fi
-
- if [ -z "${rootpart}" ]
- then
- echo; echo
- eerror "Could not determine root partition!"
- return 1
- fi
-
- if [ ! -f /etc/lilo.conf -o ! -x /sbin/lilo ]
- then
- echo " No"
- return 1
- fi
-
- bootpart="$(sed -n "s:^boot[ ]*=[ ]*\(.*\)[ ]*:\1:p" /etc/lilo.conf)"
-
- if [ -z "${bootpart}" ]
- then
- # lilo defaults to current root when 'boot=' is not present
- bootpart="${rootpart}"
- fi
-
- if ! dd if=${bootpart} ibs=16 count=1 2>&- | grep -q 'LILO'
- then
- echo; echo
- ewarn "Yes, but I couldn't find a LILO signature on ${bootpart}"
- ewarn "Check your /etc/lilo.conf, or run /sbin/lilo by hand."
- return 1
- fi
-
- echo " Yes, on ${bootpart}"
-
- return 0
-}
-
-pkg_postinst() {
- if [ ! -e "${ROOT}/boot/boot.b" -a ! -L "${ROOT}/boot/boot.b" ]
- then
- [ -f "${ROOT}/boot/boot-menu.b" ] && \
- ln -snf boot-menu.b "${ROOT}/boot/boot.b"
- fi
-
- if [ "${ROOT}" = "/" ] && use !minimal;
- then
- if lilocheck
- then
- einfo "Running DOLILO to complete the install ..."
- # do not redirect to /dev/null because it may display some input
- # prompt
- /sbin/dolilo
- if [ "$?" -ne 0 ]
- then
- echo
- eerror "Running /sbin/dolilo failed! Please check what the problem is"
- eerror "before your next reboot."
- fi
- fi
- echo
- fi
- if use !minimal; then
- echo
- einfo "Issue 'dolilo' instead of 'lilo' to have a friendly wrapper that"
- einfo "handles mounting and unmounting /boot for you. It can do more then"
- einfo "that when asked, edit /etc/conf.d/dolilo to harness it's full potential."
- echo
- fi
-}
diff --git a/sys-boot/lilo/lilo-24.1.ebuild b/sys-boot/lilo/lilo-24.2-r1.ebuild
index 9431f2659608..a1e7a24913fd 100644
--- a/sys-boot/lilo/lilo-24.1.ebuild
+++ b/sys-boot/lilo/lilo-24.2-r1.ebuild
@@ -1,34 +1,44 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="5"
+EAPI="7"
-inherit eutils flag-o-matic toolchain-funcs
+inherit flag-o-matic optfeature toolchain-funcs
DOLILO_V="0.6"
IUSE="static minimal pxeserial device-mapper"
-DESCRIPTION="Standard Linux boot loader"
-HOMEPAGE="https://alioth.debian.org/projects/lilo/"
+DESCRIPTION="LInux LOader, the original Linux bootloader"
+HOMEPAGE="https://www.joonet.de/lilo/"
DOLILO_TAR="dolilo-${DOLILO_V}.tar.bz2"
SRC_URI="
- http://lilo.alioth.debian.org/ftp/sources/${P}.tar.gz
+ https://www.joonet.de/lilo/ftp/sources/${P}.tar.gz
mirror://gentoo/${DOLILO_TAR}
"
SLOT="0"
LICENSE="BSD GPL-2"
-KEYWORDS="-* ~amd64 ~x86"
+KEYWORDS="-* amd64 x86"
DEPEND=">=sys-devel/bin86-0.15.5"
RDEPEND="device-mapper? ( >=sys-fs/lvm2-2.02.45 )"
+# Bootloaders should not be using arbitrary CFLAGS without good reason. A bootloader
+# is typically only executed once to boot the system, and it should work the first time.
+QA_FLAGS_IGNORED="/sbin/lilo"
+
src_prepare() {
+ default
+
# this patch is needed when booting PXE and the device you're using
# emulates vga console via serial console.
# IE.. B.B.o.o.o.o.t.t.i.i.n.n.g.g....l.l.i.i.n.n.u.u.x.x and stair stepping.
- use pxeserial && epatch "${FILESDIR}/${P}-novga.patch"
+ use pxeserial && eapply "${FILESDIR}/${PN}-24.1-novga.patch"
+
+ eapply "${FILESDIR}/${PN}-24.2-add-nvme-support.patch"
+ eapply "${FILESDIR}/${PN}-24.x-fix-gcc-10.patch"
+ eapply "${FILESDIR}/${PN}-24.x-check-for-__GLIBC__.patch"
# Do not strip and have parallel make
# FIXME: images/Makefile does weird stuff
@@ -56,24 +66,23 @@ src_compile() {
local target=all
fi
- emake CC="$(tc-getCC) ${LDFLAGS}" ${target} || die
+ emake CC="$(tc-getCC) ${LDFLAGS}" ${target}
}
src_install() {
- keepdir /boot
- emake DESTDIR="${D}" install || die
+ emake DESTDIR="${D}" install
if use !minimal; then
into /
- dosbin "${WORKDIR}"/dolilo/dolilo || die
+ dosbin "${WORKDIR}"/dolilo/dolilo
into /usr
- dosbin keytab-lilo.pl || die
+ dosbin keytab-lilo.pl
insinto /etc
- newins "${FILESDIR}"/lilo.conf lilo.conf.example || die
+ newins "${FILESDIR}"/lilo.conf lilo.conf.example
- newconfd "${WORKDIR}"/dolilo/dolilo.conf.d dolilo.example || die
+ newconfd "${WORKDIR}"/dolilo/dolilo.conf.d dolilo.example
dodoc CHANGELOG* readme/README.* readme/INCOMPAT README
docinto samples ; dodoc sample/*
@@ -153,7 +162,7 @@ pkg_postinst() {
ln -snf boot-menu.b "${ROOT}/boot/boot.b"
fi
- if [ "${ROOT}" = "/" ] && use !minimal;
+ if [[ -z "${ROOT}" ]] && use !minimal;
then
if lilocheck
then
@@ -175,4 +184,7 @@ pkg_postinst() {
einfo "edit /etc/conf.d/dolilo to harness its full potential."
echo
fi
+
+ optfeature "automatically updating lilo's configuration on each kernel installation" \
+ "sys-kernel/installkernel[-systemd]"
}
diff --git a/sys-boot/lilo/lilo-24.2.ebuild b/sys-boot/lilo/lilo-24.2.ebuild
deleted file mode 100644
index 854b8dba4364..000000000000
--- a/sys-boot/lilo/lilo-24.2.ebuild
+++ /dev/null
@@ -1,178 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit eutils flag-o-matic toolchain-funcs
-
-DOLILO_V="0.6"
-IUSE="static minimal pxeserial device-mapper"
-
-DESCRIPTION="Standard Linux boot loader"
-HOMEPAGE="https://alioth.debian.org/projects/lilo/"
-
-DOLILO_TAR="dolilo-${DOLILO_V}.tar.bz2"
-SRC_URI="
- http://lilo.alioth.debian.org/ftp/sources/${P}.tar.gz
- mirror://gentoo/${DOLILO_TAR}
-"
-
-SLOT="0"
-LICENSE="BSD GPL-2"
-KEYWORDS="-* ~amd64 ~x86"
-
-DEPEND=">=sys-devel/bin86-0.15.5"
-RDEPEND="device-mapper? ( >=sys-fs/lvm2-2.02.45 )"
-
-src_prepare() {
- # this patch is needed when booting PXE and the device you're using
- # emulates vga console via serial console.
- # IE.. B.B.o.o.o.o.t.t.i.i.n.n.g.g....l.l.i.i.n.n.u.u.x.x and stair stepping.
- use pxeserial && epatch "${FILESDIR}/${PN}-24.1-novga.patch"
-
- # Do not strip and have parallel make
- # FIXME: images/Makefile does weird stuff
- sed -i Makefile src/Makefile \
- -e '/strip/d;s|^ make| $(MAKE)|g' \
- -e '/images install/d' \
- -e '/images all/d' \
- || die "sed strip failed"
-}
-
-src_configure() {
- if ! use device-mapper; then
- sed -i make.vars -e 's|-DDEVMAPPER||g' || die
- fi
-}
-
-src_compile() {
- # lilo needs this. bug #140209
- export LC_ALL=C
-
- # we explicitly prevent the custom CFLAGS for stability reasons
- if use static; then
- local target=alles
- else
- local target=all
- fi
-
- emake CC="$(tc-getCC) ${LDFLAGS}" ${target} || die
-}
-
-src_install() {
- keepdir /boot
- emake DESTDIR="${D}" install || die
-
- if use !minimal; then
- into /
- dosbin "${WORKDIR}"/dolilo/dolilo || die
-
- into /usr
- dosbin keytab-lilo.pl || die
-
- insinto /etc
- newins "${FILESDIR}"/lilo.conf lilo.conf.example || die
-
- newconfd "${WORKDIR}"/dolilo/dolilo.conf.d dolilo.example || die
-
- dodoc CHANGELOG* readme/README.* readme/INCOMPAT README
- docinto samples ; dodoc sample/*
- fi
-}
-
-# Check whether LILO is installed
-# This function is from /usr/sbin/mkboot from debianutils, with copyright:
-#
-# Debian GNU/Linux
-# Copyright 1996-1997 Guy Maor <maor@debian.org>
-#
-# Modified for Gentoo for use with the lilo ebuild by:
-# Martin Schlemmer <azarah@gentoo.org> (16 Mar 2003)
-#
-lilocheck() {
- local bootpart=
- local rootpart="$(mount | grep -v "tmpfs" | grep -v "rootfs" | grep "on / " | cut -f1 -d " ")"
-
- echo
- ebegin "Checking whether LILO can be safely updated"
-
- if [ "$(whoami)" != "root" ]
- then
- eend 1
- eerror "Only root can check for LILO"
- return 1
- fi
-
- if [ -z "${rootpart}" ]
- then
- eend 1
- eerror "Could not determine root partition"
- return 1
- fi
-
- if [ ! -f /etc/lilo.conf -o ! -x /sbin/lilo ]
- then
- eend 1
- eerror "No LILO configuration in place"
- return 1
- fi
-
- bootpart="$(sed -n "s:^boot[ ]*=[ ]*\(.*\)[ ]*:\1:p" /etc/lilo.conf)"
-
- if [ -z "${bootpart}" ]
- then
- # lilo defaults to current root when 'boot=' is not present
- bootpart="${rootpart}"
- fi
-
- if ! dd if=${bootpart} ibs=16 count=1 2>&- | grep -q 'LILO'
- then
- eend 1
- eerror "No LILO signature on ${bootpart}"
- ewarn "Check your /etc/lilo.conf, or run /sbin/lilo by hand."
- return 1
- fi
-
- if grep -q "^[[:space:]]*password[[:space:]]*=[[:space:]]*\"\"" /etc/lilo.conf
- then
- eend 1
- eerror "Interactive password entry configured"
- ewarn "Run /sbin/lilo -p by hand."
- return 1
- fi
-
- einfo "LILO on ${bootpart} is safe to update"
- eend 0
- return 0
-}
-
-pkg_postinst() {
- if [ ! -e "${ROOT}/boot/boot.b" -a ! -L "${ROOT}/boot/boot.b" ]
- then
- [ -f "${ROOT}/boot/boot-menu.b" ] && \
- ln -snf boot-menu.b "${ROOT}/boot/boot.b"
- fi
-
- if [ "${ROOT}" = "/" ] && use !minimal;
- then
- if lilocheck
- then
- einfo "Running DOLILO to complete the install"
- # do not redirect to /dev/null because it may display some input
- # prompt
- /sbin/dolilo
- if [ "$?" -ne 0 ]
- then
- eerror "You must manually configure and run LILO"
- fi
- fi
- echo
- fi
- if use !minimal; then
- echo
- einfo "Issue 'dolilo' instead of 'lilo' to have a friendly wrapper that"
- einfo "handles mounting and unmounting /boot for you. It can do more, "
- einfo "edit /etc/conf.d/dolilo to harness its full potential."
- echo
- fi
-}
diff --git a/sys-boot/lilo/metadata.xml b/sys-boot/lilo/metadata.xml
index 0deb765df79f..fa7bf0f87112 100644
--- a/sys-boot/lilo/metadata.xml
+++ b/sys-boot/lilo/metadata.xml
@@ -1,16 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>chainsaw@gentoo.org</email>
-</maintainer>
-<maintainer type="project">
- <email>base-system@gentoo.org</email>
- <name>Gentoo Base System</name>
-</maintainer>
-<use>
- <flag name="device-mapper">Enable support for device-mapper from <pkg>sys-fs/lvm2</pkg></flag>
- <flag name="minimal">Do not install the dolilo helper script</flag>
- <flag name="pxeserial">Avoid character echo on PXE serial console</flag>
-</use>
+ <maintainer type="person">
+ <email>kumba@gentoo.org</email>
+ </maintainer>
+
+ <use>
+ <flag name="device-mapper">Enable support for device-mapper from <pkg>sys-fs/lvm2</pkg></flag>
+ <flag name="minimal">Do not install the dolilo helper script</flag>
+ <flag name="pxeserial">Avoid character echo on PXE serial console</flag>
+ </use>
</pkgmetadata>