Add an installkernel script for BLS configurations
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
This commit is contained in:
parent
4892e6bea5
commit
2d1140eb96
18
grub2.spec
18
grub2.spec
@ -7,7 +7,7 @@
|
|||||||
Name: grub2
|
Name: grub2
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 2.02
|
Version: 2.02
|
||||||
Release: 49%{?dist}
|
Release: 50%{?dist}
|
||||||
Summary: Bootloader with support for Linux, Multiboot and more
|
Summary: Bootloader with support for Linux, Multiboot and more
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
@ -23,6 +23,9 @@ Source5: theme.tar.bz2
|
|||||||
Source6: gitignore
|
Source6: gitignore
|
||||||
Source8: strtoull_test.c
|
Source8: strtoull_test.c
|
||||||
Source9: 20-grub.install
|
Source9: 20-grub.install
|
||||||
|
Source10: Force-everything-to-use-python3.patch
|
||||||
|
Source11: installkernel-bls
|
||||||
|
Source12: installkernel.in
|
||||||
|
|
||||||
%include %{SOURCE1}
|
%include %{SOURCE1}
|
||||||
|
|
||||||
@ -72,6 +75,7 @@ hardware devices.\
|
|||||||
Summary: grub2 common layout
|
Summary: grub2 common layout
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
Conflicts: grubby < 8.40-18%{?dist}
|
||||||
|
|
||||||
%description common
|
%description common
|
||||||
This package provides some directories which are required by various grub2
|
This package provides some directories which are required by various grub2
|
||||||
@ -235,6 +239,12 @@ install -d -m 0755 %{buildroot}%{_unitdir}/system-update.target.wants
|
|||||||
ln -s ../grub-boot-indeterminate.service \
|
ln -s ../grub-boot-indeterminate.service \
|
||||||
%{buildroot}%{_unitdir}/system-update.target.wants
|
%{buildroot}%{_unitdir}/system-update.target.wants
|
||||||
|
|
||||||
|
# Install installkernel script
|
||||||
|
mkdir -p %{buildroot}%{_libexecdir}/installkernel/
|
||||||
|
cp -v %{SOURCE11} %{buildroot}%{_libexecdir}/installkernel/
|
||||||
|
sed -e "s,@@LIBEXECDIR@@,%{_libexecdir}/installkernel,g" %{SOURCE12} \
|
||||||
|
> %{buildroot}%{_sbindir}/installkernel
|
||||||
|
|
||||||
# Don't run debuginfo on all the grub modules and whatnot; it just
|
# Don't run debuginfo on all the grub modules and whatnot; it just
|
||||||
# rejects them, complains, and slows down extraction.
|
# rejects them, complains, and slows down extraction.
|
||||||
%global finddebugroot "%{_builddir}/%{?buildsubdir}/debug"
|
%global finddebugroot "%{_builddir}/%{?buildsubdir}/debug"
|
||||||
@ -330,6 +340,9 @@ fi
|
|||||||
%{_prefix}/lib/kernel/install.d/20-grub.install
|
%{_prefix}/lib/kernel/install.d/20-grub.install
|
||||||
%{_sysconfdir}/kernel/install.d/20-grubby.install
|
%{_sysconfdir}/kernel/install.d/20-grubby.install
|
||||||
%{_sysconfdir}/kernel/install.d/90-loaderentry.install
|
%{_sysconfdir}/kernel/install.d/90-loaderentry.install
|
||||||
|
%dir %{_libexecdir}/installkernel
|
||||||
|
%{_libexecdir}/installkernel/installkernel-bls
|
||||||
|
%attr(0755,root,root) %{_sbindir}/installkernel
|
||||||
%dir %{_datarootdir}/grub
|
%dir %{_datarootdir}/grub
|
||||||
%exclude %{_datarootdir}/grub/*
|
%exclude %{_datarootdir}/grub/*
|
||||||
%dir /boot/%{name}
|
%dir /boot/%{name}
|
||||||
@ -486,6 +499,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Aug 10 2018 Javier Martinez Canillas <javierm@redhat.com> - 2.02-50
|
||||||
|
- Add an installkernel script for BLS configurations
|
||||||
|
|
||||||
* Tue Aug 07 2018 Peter Jones <pjones@redhat.com> - 2.02-49
|
* Tue Aug 07 2018 Peter Jones <pjones@redhat.com> - 2.02-49
|
||||||
- Temporarily make -cdboot perms 0700 again.
|
- Temporarily make -cdboot perms 0700 again.
|
||||||
|
|
||||||
|
85
installkernel-bls
Executable file
85
installkernel-bls
Executable file
@ -0,0 +1,85 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
#
|
||||||
|
# /sbin/installkernel
|
||||||
|
#
|
||||||
|
# Copyright 2007-2008 Red Hat, Inc. All rights reserved.
|
||||||
|
#
|
||||||
|
# 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Author(s): tyson@rwii.com
|
||||||
|
#
|
||||||
|
|
||||||
|
[[ -f /etc/default/grub ]] && . /etc/default/grub
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: `basename $0` <kernel_version> <bootimage> <mapfile>" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
cfgLoader=
|
||||||
|
|
||||||
|
if [ -z "$INSTALL_PATH" -o "$INSTALL_PATH" == "/boot" ]; then
|
||||||
|
INSTALL_PATH=/boot
|
||||||
|
cfgLoader=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
LINK_PATH=/boot
|
||||||
|
RELATIVE_PATH=`echo "$INSTALL_PATH/" | sed "s|^$LINK_PATH/||"`
|
||||||
|
KERNEL_VERSION=$1
|
||||||
|
BOOTIMAGE=$2
|
||||||
|
MAPFILE=$3
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
if [ $ARCH = 'ppc64' -o $ARCH = 'ppc' ]; then
|
||||||
|
KERNEL_NAME=vmlinux
|
||||||
|
else
|
||||||
|
KERNEL_NAME=vmlinuz
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$KERNEL_VERSION" -o -z "$BOOTIMAGE" -o -z "$MAPFILE" ]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION ]; then
|
||||||
|
mv $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION \
|
||||||
|
$INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION.old;
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -L $INSTALL_PATH/$KERNEL_NAME ]; then
|
||||||
|
if [ -e $INSTALLPATH/$KERNEL_NAME ]; then
|
||||||
|
mv $INSTALL_PATH/$KERNEL_NAME $INSTALL_PATH/$KERNEL_NAME.old
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f $INSTALL_PATH/System.map-$KERNEL_VERSION ]; then
|
||||||
|
mv $INSTALL_PATH/System.map-$KERNEL_VERSION \
|
||||||
|
$INSTALL_PATH/System.map-$KERNEL_VERSION.old;
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -L $INSTALL_PATH/System.map ]; then
|
||||||
|
if [ -e $INSTALLPATH/System.map ]; then
|
||||||
|
mv $INSTALL_PATH/System.map $INSTALL_PATH/System.map.old
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
ln -sf ${RELATIVE_PATH}$INSTALL_PATH/System.map-$KERNEL_VERSION $LINK_PATH/System.map
|
||||||
|
|
||||||
|
cat $BOOTIMAGE > $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION
|
||||||
|
cp $MAPFILE $INSTALL_PATH/System.map-$KERNEL_VERSION
|
||||||
|
|
||||||
|
ln -fs ${RELATIVE_PATH}$INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION $LINK_PATH/$KERNEL_NAME
|
||||||
|
ln -fs ${RELATIVE_PATH}$INSTALL_PATH/System.map-$KERNEL_VERSION $LINK_PATH/System.map
|
||||||
|
|
||||||
|
if [ -n "$cfgLoader" ] && [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then
|
||||||
|
kernel-install add $KERNEL_VERSION $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION
|
||||||
|
exit $?
|
||||||
|
fi
|
8
installkernel.in
Normal file
8
installkernel.in
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
if [[ -x @@LIBEXECDIR@@/installkernel ]] ; then
|
||||||
|
exec @@LIBEXECDIR@@/installkernel "${@}"
|
||||||
|
elif [[ -x @@LIBEXECDIR@@/installkernel-bls ]] ; then
|
||||||
|
exec @@LIBEXECDIR@@/installkernel-bls "${@}"
|
||||||
|
fi
|
||||||
|
echo "installkernel is not installed correctly." >>/dev/stderr
|
||||||
|
exit 1
|
Loading…
Reference in New Issue
Block a user