Add device tree kernel install option, minor cleanups
This commit is contained in:
parent
b91640a743
commit
536f42db1c
73
10-devicetree.install
Executable file
73
10-devicetree.install
Executable file
@ -0,0 +1,73 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# set -x
|
||||||
|
|
||||||
|
if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]]
|
||||||
|
then
|
||||||
|
COMMAND="$1"
|
||||||
|
KERNEL_VERSION="$2"
|
||||||
|
#BOOT_DIR_ABS="$3"
|
||||||
|
#KERNEL_IMAGE="$4"
|
||||||
|
|
||||||
|
[ -f /etc/u-boot.conf ] && source /etc/u-boot.conf || true
|
||||||
|
[ -z "$FIRMWAREDT" ] || FirmwareDT=$FIRMWAREDT
|
||||||
|
|
||||||
|
if [[ $FirmwareDT == "True" ]]
|
||||||
|
then
|
||||||
|
# if we want to use firmware DT we remove symlink to current kernel DT
|
||||||
|
if [ -h /boot/dtb ]; then
|
||||||
|
rm -f /boot/dtb
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Setup a /boot/dtb -> /boot/dtb-$newest_kernel_version symlink so that
|
||||||
|
# u-boot can find the correct dtb to load.
|
||||||
|
#
|
||||||
|
# If invoked to 'add' a new kernel, find the newest based on `sort`ing
|
||||||
|
# the kernel versions dtb. If 'remove', then follow basically the same
|
||||||
|
# procedure but exclude the version currently being removed.
|
||||||
|
#
|
||||||
|
# The theory of operation here is that, while newer kernels may add new
|
||||||
|
# dtb nodes and fields, as upstreaming hw support for some particular
|
||||||
|
# device progresses, it should never make backward incompatible changes.
|
||||||
|
# So it should always be safe to use a newer dtb with an older kernel.
|
||||||
|
|
||||||
|
list_dtb_versions() {
|
||||||
|
excluded_version="$1"
|
||||||
|
for dtbdir in /boot/dtb-*; do
|
||||||
|
dtbver=${dtbdir#*-}
|
||||||
|
if [ "$dtbver" != "$excluded_version" ]; then
|
||||||
|
echo $dtbver
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_dtb_link() {
|
||||||
|
ver=`list_dtb_versions $1 | sort -r --sort=version | head -1`
|
||||||
|
if [ -h /boot/dtb ]; then
|
||||||
|
rm -f /boot/dtb
|
||||||
|
fi
|
||||||
|
ln -s dtb-$ver /boot/dtb
|
||||||
|
}
|
||||||
|
|
||||||
|
ret=0
|
||||||
|
case "$COMMAND" in
|
||||||
|
add)
|
||||||
|
# If we're adding a kernel we want that version
|
||||||
|
if [ -h /boot/dtb ]; then
|
||||||
|
rm -f /boot/dtb
|
||||||
|
fi
|
||||||
|
ln -s dtb-$KERNEL_VERSION /boot/dtb
|
||||||
|
ret=$?
|
||||||
|
;;
|
||||||
|
remove)
|
||||||
|
setup_dtb_link $KERNEL_VERSION
|
||||||
|
ret=$?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exit $ret
|
||||||
|
else
|
||||||
|
# Just exit on non ARM
|
||||||
|
exit 0
|
||||||
|
fi
|
29
grubby.spec
29
grubby.spec
@ -1,6 +1,6 @@
|
|||||||
Name: grubby
|
Name: grubby
|
||||||
Version: 8.40
|
Version: 8.40
|
||||||
Release: 48%{?dist}
|
Release: 49%{?dist}
|
||||||
Summary: Command line tool for updating bootloader configs
|
Summary: Command line tool for updating bootloader configs
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: https://github.com/rhinstaller/grubby
|
URL: https://github.com/rhinstaller/grubby
|
||||||
@ -14,7 +14,9 @@ Source2: grubby.in
|
|||||||
Source3: installkernel.in
|
Source3: installkernel.in
|
||||||
Source4: installkernel-bls
|
Source4: installkernel-bls
|
||||||
Source5: 95-kernel-hooks.install
|
Source5: 95-kernel-hooks.install
|
||||||
Source6: grubby.8
|
Source6: 10-devicetree.install
|
||||||
|
Source7: grubby.8
|
||||||
|
|
||||||
Patch0001: 0001-remove-the-old-crufty-u-boot-support.patch
|
Patch0001: 0001-remove-the-old-crufty-u-boot-support.patch
|
||||||
Patch0002: 0002-Change-return-type-in-getRootSpecifier.patch
|
Patch0002: 0002-Change-return-type-in-getRootSpecifier.patch
|
||||||
Patch0003: 0003-Add-btrfs-subvolume-support-for-grub2.patch
|
Patch0003: 0003-Add-btrfs-subvolume-support-for-grub2.patch
|
||||||
@ -31,7 +33,7 @@ Patch0013: 0013-Fix-build-with-rpm-4.16.patch
|
|||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: pkgconfig glib2-devel popt-devel
|
BuildRequires: pkgconfig glib2-devel popt-devel
|
||||||
BuildRequires: libblkid-devel git-core sed make
|
BuildRequires: libblkid-devel sed make
|
||||||
# for make test / getopt:
|
# for make test / getopt:
|
||||||
BuildRequires: util-linux-ng
|
BuildRequires: util-linux-ng
|
||||||
BuildRequires: rpm-devel
|
BuildRequires: rpm-devel
|
||||||
@ -46,6 +48,7 @@ Requires: s390utils-core
|
|||||||
Requires: findutils
|
Requires: findutils
|
||||||
Requires: util-linux
|
Requires: util-linux
|
||||||
|
|
||||||
|
Conflicts: uboot-tools < 2021.01-0.1.rc2
|
||||||
Obsoletes: %{name}-bls < %{version}-%{release}
|
Obsoletes: %{name}-bls < %{version}-%{release}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -54,16 +57,7 @@ BootLoaderSpec files and is meant to only be used for legacy compatibility
|
|||||||
users with existing grubby users.
|
users with existing grubby users.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n grubby-%{version}-1
|
%autosetup -p1 -n grubby-%{version}-1
|
||||||
|
|
||||||
git init
|
|
||||||
git config user.email "noone@example.com"
|
|
||||||
git config user.name "no one"
|
|
||||||
git add .
|
|
||||||
git commit -a -q -m "%{version} baseline"
|
|
||||||
git am %{patches} </dev/null
|
|
||||||
git config --unset user.email
|
|
||||||
git config --unset user.name
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%set_build_flags
|
%set_build_flags
|
||||||
@ -87,8 +81,9 @@ sed -e "s,@@LIBEXECDIR@@,%{_libexecdir}/grubby,g" %{SOURCE2} \
|
|||||||
sed -e "s,@@LIBEXECDIR@@,%{_libexecdir}/installkernel,g" %{SOURCE3} \
|
sed -e "s,@@LIBEXECDIR@@,%{_libexecdir}/installkernel,g" %{SOURCE3} \
|
||||||
> %{buildroot}%{_sbindir}/installkernel
|
> %{buildroot}%{_sbindir}/installkernel
|
||||||
install -D -m 0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE5}
|
install -D -m 0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE5}
|
||||||
|
install -D -m 0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE6}
|
||||||
rm %{buildroot}%{_mandir}/man8/grubby.8*
|
rm %{buildroot}%{_mandir}/man8/grubby.8*
|
||||||
install -m 0644 %{SOURCE6} %{buildroot}%{_mandir}/man8/
|
install -m 0644 %{SOURCE7} %{buildroot}%{_mandir}/man8/
|
||||||
|
|
||||||
%post
|
%post
|
||||||
if [ "$1" = 2 ]; then
|
if [ "$1" = 2 ]; then
|
||||||
@ -112,7 +107,6 @@ scripts which install new kernels and need to find information about the
|
|||||||
current boot environment.
|
current boot environment.
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%{!?_licensedir:%global license %%doc}
|
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%dir %{_libexecdir}/grubby
|
%dir %{_libexecdir}/grubby
|
||||||
%dir %{_libexecdir}/installkernel
|
%dir %{_libexecdir}/installkernel
|
||||||
@ -121,11 +115,11 @@ current boot environment.
|
|||||||
%attr(0755,root,root) %{_sbindir}/grubby
|
%attr(0755,root,root) %{_sbindir}/grubby
|
||||||
%attr(0755,root,root) %{_libexecdir}/installkernel/installkernel-bls
|
%attr(0755,root,root) %{_libexecdir}/installkernel/installkernel-bls
|
||||||
%attr(0755,root,root) %{_sbindir}/installkernel
|
%attr(0755,root,root) %{_sbindir}/installkernel
|
||||||
|
%attr(0755,root,root) %{_prefix}/lib/kernel/install.d/10-devicetree.install
|
||||||
%attr(0755,root,root) %{_prefix}/lib/kernel/install.d/95-kernel-hooks.install
|
%attr(0755,root,root) %{_prefix}/lib/kernel/install.d/95-kernel-hooks.install
|
||||||
%{_mandir}/man8/[gi]*.8*
|
%{_mandir}/man8/[gi]*.8*
|
||||||
|
|
||||||
%files deprecated
|
%files deprecated
|
||||||
%{!?_licensedir:%global license %%doc}
|
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%dir %{_libexecdir}/grubby
|
%dir %{_libexecdir}/grubby
|
||||||
%dir %{_libexecdir}/installkernel
|
%dir %{_libexecdir}/installkernel
|
||||||
@ -137,6 +131,9 @@ current boot environment.
|
|||||||
%{_mandir}/man8/*.8*
|
%{_mandir}/man8/*.8*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Nov 20 2020 Peter Robinson <pbrobinson@fedoraproject.org> - 8.40-49
|
||||||
|
- Add device tree kernel install option
|
||||||
|
|
||||||
* Mon Oct 26 2020 Josh Boyer <jwb@redhat.com> - 8.40-48
|
* Mon Oct 26 2020 Josh Boyer <jwb@redhat.com> - 8.40-48
|
||||||
- Only require s390utils-core, not s390utils-base
|
- Only require s390utils-core, not s390utils-base
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user