mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
sys-boot/lilo: Pick up as p-m; misc updates and cleanups
See: https://github.com/gentoo/gentoo/pull/43203 Closes: https://bugs.gentoo.org/792567 Closes: https://bugs.gentoo.org/944419 Closes: https://bugs.gentoo.org/753605 Signed-off-by: Hank Leininger <hlein@korelogic.com> Part-of: https://github.com/gentoo/gentoo/pull/43203 Closes: https://github.com/gentoo/gentoo/pull/43203 Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>
This commit is contained in:
parent
e4e4094036
commit
a17bb3fea0
40
sys-boot/lilo/files/lilo-24.2-Makefile-tweaks.patch
Normal file
40
sys-boot/lilo/files/lilo-24.2-Makefile-tweaks.patch
Normal file
@ -0,0 +1,40 @@
|
||||
Do not strip, have parallel make, and do not rebuild images
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -12,7 +12,6 @@
|
||||
#
|
||||
all: test
|
||||
make -C src all
|
||||
- make -C images all
|
||||
|
||||
#
|
||||
# make help
|
||||
@@ -45,7 +44,6 @@
|
||||
#
|
||||
alles: test
|
||||
$(MAKE) -C src alles
|
||||
- $(MAKE) -C images all
|
||||
|
||||
#
|
||||
# documentation files
|
||||
@@ -104,7 +102,6 @@
|
||||
#
|
||||
install: all
|
||||
$(MAKE) -C src install
|
||||
- $(MAKE) -C images install
|
||||
$(MAKE) -C hooks install
|
||||
$(MAKE) -C sample install
|
||||
$(MAKE) -C scripts install
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -242,10 +242,8 @@
|
||||
if [ -f diag1.img ]; then cp -f diag1.img $$DESTDIR$(BOOT_DIR); fi
|
||||
if [ -f diag2.img ]; then cp -f diag2.img $$DESTDIR$(BOOT_DIR); fi
|
||||
|
||||
- strip lilo
|
||||
cp lilo $$DESTDIR$(SBIN_DIR)/lilo
|
||||
if [ -f lilo.static ]; then \
|
||||
- strip lilo.static; \
|
||||
cp lilo.static $$DESTDIR$(SBIN_DIR)/lilo.static; \
|
||||
fi
|
||||
cp ../mkrescue $$DESTDIR$(USRSBIN_DIR)/mkrescue
|
||||
12
sys-boot/lilo/files/lilo-24.2-fix-gcc-15.patch
Normal file
12
sys-boot/lilo/files/lilo-24.2-fix-gcc-15.patch
Normal file
@ -0,0 +1,12 @@
|
||||
Adapted from https://mirrors.slackware.com/slackware/slackware-current/source/a/lilo/lilo.gcc15.diff
|
||||
--- a/make.vars
|
||||
+++ b/make.vars
|
||||
@@ -80,7 +80,7 @@
|
||||
MAN_DIR=/usr/share/man
|
||||
|
||||
# set the compiler optimization level
|
||||
-OPT=-Os
|
||||
+OPT=-Os -std=gnu17
|
||||
|
||||
### End of configuration variables for makefiles ###
|
||||
|
||||
17
sys-boot/lilo/files/lilo-24.2-musl.patch
Normal file
17
sys-boot/lilo/files/lilo-24.2-musl.patch
Normal file
@ -0,0 +1,17 @@
|
||||
Adapted from https://git.sr.ht/~kqz/repo/tree/b8808d806c887c0b800d3548f0c6201440b25a5e/item/server/lilo/patches/musl.patch
|
||||
--- a/src/common.h
|
||||
+++ b/src/common.h
|
||||
@@ -23,12 +23,7 @@
|
||||
# define PAGE_SIZE 4096U
|
||||
#endif
|
||||
|
||||
-#ifdef O_ACCMODE
|
||||
-# define O_NOACCESS O_ACCMODE
|
||||
-#else
|
||||
-/* open a file for "no access" */
|
||||
-# define O_NOACCESS 3
|
||||
-#endif
|
||||
+#define O_NOACCESS O_RDONLY
|
||||
|
||||
/* special for LILO, bypass the actual open in dev_open( , ,-1) */
|
||||
#define O_BYPASS -1
|
||||
25
sys-boot/lilo/files/lilo-24.2-remove-gcc-ver-check.patch
Normal file
25
sys-boot/lilo/files/lilo-24.2-remove-gcc-ver-check.patch
Normal file
@ -0,0 +1,25 @@
|
||||
Drop explicit GCC invocation for version check (of 3.3.5...).
|
||||
Adapted from https://753605.bugs.gentoo.org/attachment.cgi?id=773618
|
||||
--- a/checkit
|
||||
+++ b/checkit
|
||||
@@ -47,20 +47,6 @@
|
||||
}
|
||||
|
||||
#echo
|
||||
-echo GCC version $gccmin or later is required
|
||||
-gcc -v 1>foo1 2>foo2
|
||||
-V=`cat foo1 foo2 | cut -d' ' -f1-3 | grep -i version | tr '-' ' ' | cut -d' ' -f 3`
|
||||
-rm -f foo1 foo2
|
||||
-if [ -z "$V" ]; then
|
||||
- echo gcc is not present
|
||||
- ret=1
|
||||
-else
|
||||
- vers_min $V $gccmin
|
||||
- echo gcc version $V
|
||||
- if [ $rc = 0 ]; then echo OKAY; else echo ERROR; ret=1; fi
|
||||
-fi
|
||||
-
|
||||
-echo
|
||||
echo AS86 version $bccmin or later is required
|
||||
as86 -v 1>foo1 2>foo2
|
||||
A=`cat foo1 foo2 | grep version | cut -d " " -f 3`
|
||||
123
sys-boot/lilo/lilo-24.2-r3.ebuild
Normal file
123
sys-boot/lilo/lilo-24.2-r3.ebuild
Normal file
@ -0,0 +1,123 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit optfeature toolchain-funcs
|
||||
|
||||
DOLILO_V="0.6"
|
||||
|
||||
DESCRIPTION="LInux LOader, the original Linux bootloader"
|
||||
HOMEPAGE="https://www.joonet.de/lilo/"
|
||||
|
||||
DOLILO_TAR="dolilo-${DOLILO_V}.tar.bz2"
|
||||
SRC_URI="
|
||||
https://www.joonet.de/lilo/ftp/sources/${P}.tar.gz
|
||||
mirror://gentoo/${DOLILO_TAR}
|
||||
"
|
||||
|
||||
LICENSE="BSD GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* ~amd64 ~x86"
|
||||
|
||||
IUSE="device-mapper keytab pxeserial static"
|
||||
|
||||
DEPEND="sys-devel/bin86"
|
||||
RDEPEND="
|
||||
device-mapper? ( sys-fs/lvm2 )
|
||||
keytab? ( dev-lang/perl )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-24.2-Makefile-tweaks.patch
|
||||
"${FILESDIR}"/${PN}-24.2-add-nvme-support.patch
|
||||
"${FILESDIR}"/${PN}-24.x-fix-gcc-10.patch
|
||||
"${FILESDIR}"/${PN}-24.x-check-for-__GLIBC__.patch
|
||||
"${FILESDIR}"/${PN}-24.2-fix-gcc-15.patch
|
||||
"${FILESDIR}"/${PN}-24.2-musl.patch
|
||||
"${FILESDIR}"/${PN}-24.2-remove-gcc-ver-check.patch
|
||||
)
|
||||
|
||||
# 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 && eapply "${FILESDIR}/${PN}-24.1-novga.patch"
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
local target=$(usex static alles all)
|
||||
|
||||
# we explicitly prevent the custom CFLAGS for stability reasons
|
||||
emake CC="$(tc-getCC) ${LDFLAGS}" ${target}
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
into /
|
||||
dosbin "${WORKDIR}"/dolilo/dolilo
|
||||
|
||||
if use keytab; then
|
||||
into /usr
|
||||
dosbin keytab-lilo.pl
|
||||
fi
|
||||
|
||||
insinto /etc
|
||||
newins "${FILESDIR}"/lilo.conf lilo.conf.example
|
||||
|
||||
newconfd "${WORKDIR}"/dolilo/dolilo.conf.d dolilo.example
|
||||
|
||||
dodoc CHANGELOG* readme/README.* readme/INCOMPAT README
|
||||
docinto samples ; dodoc sample/*
|
||||
|
||||
# This we don't use
|
||||
rm -r "${ED}/etc/initramfs" || die
|
||||
# This should be in /usr/lib and it should have the .install suffix
|
||||
dodir /usr/lib/kernel
|
||||
for dir in postinst.d postrm.d; do
|
||||
mv "${ED}/etc/kernel/${dir}" "${ED}/usr/lib/kernel/${dir}" || die
|
||||
mv "${ED}/usr/lib/kernel/${dir}/zz-runlilo" "${ED}/usr/lib/kernel/${dir}/90-runlilo.install" || die
|
||||
done
|
||||
# Insert wrapper for systemd's kernel-install
|
||||
exeinto /usr/lib/kernel/install.d
|
||||
newexe - 90-runlilo.install <<-EOF
|
||||
#!/bin/sh
|
||||
if [ "\${1}" = "add" ]; then
|
||||
exec "\$(dirname \${0})/../postinst.d/90-runlilo.install"
|
||||
elif [ "\${1}" = "remove" ]; then
|
||||
exec "\$(dirname \${0})/../postrm.d/90-runlilo.install"
|
||||
fi
|
||||
EOF
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ ! -e "${ROOT}/boot/boot.b" && ! -L "${ROOT}/boot/boot.b" ]]; then
|
||||
[[ -f "${ROOT}/boot/boot-menu.b" ]] && \
|
||||
ln -snf boot-menu.b "${ROOT}/boot/boot.b"
|
||||
fi
|
||||
|
||||
einfo
|
||||
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."
|
||||
einfo
|
||||
|
||||
optfeature "automatically updating lilo's configuration on each kernel installation" \
|
||||
sys-kernel/installkernel
|
||||
}
|
||||
@ -1,11 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<!-- maintainer-needed -->
|
||||
|
||||
<maintainer type="person" proxied="yes">
|
||||
<email>hlein@korelogic.com</email>
|
||||
<name>Hank Leininger</name>
|
||||
</maintainer>
|
||||
<maintainer type="project" proxied="proxy">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</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="keytab">Install keytab, keyboard remapping helper script</flag>
|
||||
<flag name="minimal">Do not install optional bits (dolilo helper, docs, etc.)</flag>
|
||||
<flag name="pxeserial">Avoid character echo on PXE serial console</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user