commit
0a97b49b12
@ -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
|
@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
COMMAND="$1"
|
||||||
|
KERNEL_VERSION="$2"
|
||||||
|
BOOT_DIR_ABS="$3"
|
||||||
|
|
||||||
|
# If $BOOT_DIR_ABS exists, some other boot loader is active.
|
||||||
|
[[ -d "$BOOT_DIR_ABS" ]] && exit 0
|
||||||
|
|
||||||
|
run_hooks()
|
||||||
|
{
|
||||||
|
local f
|
||||||
|
local files="$1"
|
||||||
|
for f in $files ; do
|
||||||
|
[ -x "$f" ] || continue
|
||||||
|
"$f" "$KERNEL_VERSION" "/boot/vmlinuz-$KERNEL_VERSION"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$COMMAND" in
|
||||||
|
add)
|
||||||
|
run_hooks "/etc/kernel/postinst.d/*[^~] /etc/kernel/postinst.d/$KERNEL_VERSION/*[^~]"
|
||||||
|
;;
|
||||||
|
remove)
|
||||||
|
run_hooks "/etc/kernel/prerm.d/*[^~] /etc/kernel/prerm.d/$KERNEL_VERSION/*[^~]"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 0
|
||||||
|
esac
|
@ -0,0 +1,340 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License.
|
@ -0,0 +1,857 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# grubby wrapper to manage BootLoaderSpec files
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Copyright 2018 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/>.
|
||||||
|
|
||||||
|
readonly SCRIPTNAME="${0##*/}"
|
||||||
|
|
||||||
|
CMDLINE_LINUX_DEBUG=" systemd.log_level=debug systemd.log_target=kmsg"
|
||||||
|
LINUX_DEBUG_VERSION_POSTFIX="_with_debugging"
|
||||||
|
LINUX_DEBUG_TITLE_POSTFIX=" with debugging"
|
||||||
|
|
||||||
|
declare -a bls_file
|
||||||
|
declare -a bls_title
|
||||||
|
declare -a bls_version
|
||||||
|
declare -a bls_linux
|
||||||
|
declare -a bls_initrd
|
||||||
|
declare -a bls_options
|
||||||
|
declare -a bls_id
|
||||||
|
|
||||||
|
[[ -f /etc/sysconfig/kernel ]] && . /etc/sysconfig/kernel
|
||||||
|
[[ -f /etc/os-release ]] && . /etc/os-release
|
||||||
|
read MACHINE_ID < /etc/machine-id
|
||||||
|
arch=$(uname -m)
|
||||||
|
|
||||||
|
if [[ $arch = 's390' || $arch = 's390x' ]]; then
|
||||||
|
bootloader="zipl"
|
||||||
|
else
|
||||||
|
bootloader="grub2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_error() {
|
||||||
|
echo "$1" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
print_info() {
|
||||||
|
echo "$1" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ ${#} = 0 ]]; then
|
||||||
|
print_error "no action specified"
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_bls_value() {
|
||||||
|
local bls="$1" && shift
|
||||||
|
local key="$1" && shift
|
||||||
|
|
||||||
|
echo "$(grep "^${key}[ \t]" "${bls}" | sed -e "s!^${key}[ \t]*!!")"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_bls_value() {
|
||||||
|
local bls="$1" && shift
|
||||||
|
local key="$1" && shift
|
||||||
|
local value="$1" && shift
|
||||||
|
|
||||||
|
value=$(echo $value | sed -e 's/\//\\\//g')
|
||||||
|
sed -i -e "s/^${key}.*/${key} ${value}/" "${bls}"
|
||||||
|
}
|
||||||
|
|
||||||
|
append_bls_value() {
|
||||||
|
local bls="$1" && shift
|
||||||
|
local key="$1" && shift
|
||||||
|
local value="$1" && shift
|
||||||
|
|
||||||
|
old_value="$(get_bls_value "${bls}" ${key})"
|
||||||
|
set_bls_value "${bls}" "${key}" "${old_value}${value}"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_bls_values() {
|
||||||
|
count=0
|
||||||
|
local -a files
|
||||||
|
local IFS=$'\n'
|
||||||
|
files=($(for bls in ${blsdir}/*.conf ; do
|
||||||
|
if ! [[ -e "${bls}" ]] ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
bls="${bls%.conf}"
|
||||||
|
bls="${bls##*/}"
|
||||||
|
echo "${bls}"
|
||||||
|
done | sort -Vr 2>/dev/null)) || :
|
||||||
|
|
||||||
|
for bls in "${files[@]}" ; do
|
||||||
|
blspath="${blsdir}/${bls}.conf"
|
||||||
|
bls_file[$count]="${blspath}"
|
||||||
|
bls_title[$count]="$(get_bls_value ${blspath} title)"
|
||||||
|
bls_version[$count]="$(get_bls_value ${blspath} version)"
|
||||||
|
bls_linux[$count]="$(get_bls_value ${blspath} linux)"
|
||||||
|
bls_initrd[$count]="$(get_bls_value ${blspath} initrd)"
|
||||||
|
bls_options[$count]="$(get_bls_value ${blspath} options)"
|
||||||
|
bls_id[$count]="${bls}"
|
||||||
|
|
||||||
|
count=$((count+1))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
get_default_index() {
|
||||||
|
local default=""
|
||||||
|
local index="-1"
|
||||||
|
local title=""
|
||||||
|
local version=""
|
||||||
|
if [[ $bootloader = "grub2" ]]; then
|
||||||
|
default="$(grep '^saved_entry=' ${env} | sed -e 's/^saved_entry=//')"
|
||||||
|
else
|
||||||
|
default="$(grep '^default=' ${zipl_config} | sed -e 's/^default=//')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $default ]]; then
|
||||||
|
index=0
|
||||||
|
elif [[ $default =~ ^[0-9]+$ ]]; then
|
||||||
|
index="$default"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in ${!bls_file[@]}; do
|
||||||
|
if [[ $i -eq $index ]]; then
|
||||||
|
echo $i
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $default = ${bls_id[$i]} || $default = ${bls_title[$i]} ]]; then
|
||||||
|
echo $i
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
display_default_value() {
|
||||||
|
local prefix=$(get_prefix)
|
||||||
|
|
||||||
|
case "$display_default" in
|
||||||
|
kernel)
|
||||||
|
echo "${prefix}${bls_linux[$default_index]}"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
index)
|
||||||
|
echo "$default_index"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
title)
|
||||||
|
echo "${bls_title[$default_index]}"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
param_to_indexes() {
|
||||||
|
local param="$1"
|
||||||
|
local indexes=""
|
||||||
|
|
||||||
|
if [[ $param = "ALL" ]]; then
|
||||||
|
for i in ${!bls_file[@]}; do
|
||||||
|
indexes="$indexes $i"
|
||||||
|
done
|
||||||
|
echo -n $indexes
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $param = "DEFAULT" ]]; then
|
||||||
|
echo -n $default_index
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in ${!bls_file[@]}; do
|
||||||
|
if [[ $param = "${bls_linux[$i]}" || "/${param##*/}" = "${bls_linux[$i]}" ]]; then
|
||||||
|
indexes="$indexes $i"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $param = "TITLE=${bls_title[$i]}" ]]; then
|
||||||
|
indexes="$indexes $i"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $param = $i ]]; then
|
||||||
|
indexes="$indexes $i"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -n $indexes ]]; then
|
||||||
|
echo -n $indexes
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n "-1"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_prefix() {
|
||||||
|
if [[ $bootloader = grub2 ]] && mountpoint -q /boot; then
|
||||||
|
echo "/boot"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
expand_var() {
|
||||||
|
local var=$1
|
||||||
|
|
||||||
|
if [[ $bootloader == "grub2" ]]; then
|
||||||
|
local value="$(grub2-editenv "${env}" list | grep ${var##$} | sed -e "s/${var##$}=//")"
|
||||||
|
value="$(echo ${value} | sed -e 's/\//\\\//g')"
|
||||||
|
if [[ -n $value ]]; then
|
||||||
|
var="$value"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo $var
|
||||||
|
}
|
||||||
|
|
||||||
|
has_kernelopts()
|
||||||
|
{
|
||||||
|
local args=${bls_options[$1]}
|
||||||
|
local opts=(${args})
|
||||||
|
|
||||||
|
for opt in ${opts[*]}; do
|
||||||
|
[[ $opt = "\$kernelopts" ]] && echo "true"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "false"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_bls_args() {
|
||||||
|
local args=${bls_options[$1]}
|
||||||
|
local opts=(${args})
|
||||||
|
|
||||||
|
for opt in ${opts[*]}; do
|
||||||
|
if [[ $opt = "\$kernelopts" ]]; then
|
||||||
|
value="$(expand_var $opt)"
|
||||||
|
args="$(echo ${args} | sed -e "s/${opt}/${value}/")"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ${args}
|
||||||
|
}
|
||||||
|
|
||||||
|
display_info_values() {
|
||||||
|
local indexes=($(param_to_indexes "$1"))
|
||||||
|
local prefix=$(get_prefix)
|
||||||
|
|
||||||
|
if [[ $indexes = "-1" ]]; then
|
||||||
|
print_error "The param $1 is incorrect"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in ${indexes[*]}; do
|
||||||
|
local root=""
|
||||||
|
local value=""
|
||||||
|
local args="$(get_bls_args "$i")"
|
||||||
|
|
||||||
|
local opts=(${args})
|
||||||
|
|
||||||
|
for opt in ${opts[*]}; do
|
||||||
|
if echo $opt | grep -q "^root="; then
|
||||||
|
root="$(echo $opt | sed -e 's/root=//')"
|
||||||
|
value="$(echo ${opt} | sed -e 's/\//\\\//g')"
|
||||||
|
args="$(echo ${args} | sed -e "s/${value}[ \t]*//")"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "index=$i"
|
||||||
|
echo "kernel=\"${prefix}${bls_linux[$i]}\""
|
||||||
|
echo "args=\"${args}\""
|
||||||
|
|
||||||
|
if [[ -n $root ]]; then
|
||||||
|
echo "root=\"${root}\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "initrd=\"${prefix}${bls_initrd[$i]}\""
|
||||||
|
echo "title=\"${bls_title[$i]}\""
|
||||||
|
echo "id=\"${bls_id[$i]}\""
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
mkbls() {
|
||||||
|
local kernel=$1 && shift
|
||||||
|
local kernelver=$1 && shift
|
||||||
|
local datetime=$1 && shift
|
||||||
|
|
||||||
|
local debugname=""
|
||||||
|
local flavor=""
|
||||||
|
local prefix=""
|
||||||
|
|
||||||
|
if [[ $(get_prefix) = "" ]]; then
|
||||||
|
prefix="/boot"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $kernelver == *\+* ]] ; then
|
||||||
|
local flavor=-"${kernelver##*+}"
|
||||||
|
if [[ $flavor == "-debug" ]]; then
|
||||||
|
local debugname="with debugging"
|
||||||
|
local debugid="-debug"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
title ${NAME} (${kernelver}) ${VERSION}${debugname}
|
||||||
|
version ${kernelver}${debugid}
|
||||||
|
linux ${kernel}
|
||||||
|
initrd ${prefix}/initramfs-${kernelver}.img
|
||||||
|
options \$kernelopts
|
||||||
|
id ${ID}-${datetime}-${kernelver}${debugid}
|
||||||
|
grub_users \$grub_users
|
||||||
|
grub_arg --unrestricted
|
||||||
|
grub_class kernel${flavor}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
unset_default_bls()
|
||||||
|
{
|
||||||
|
if [[ $bootloader = grub2 ]]; then
|
||||||
|
grub2-editenv "${env}" unset saved_entry
|
||||||
|
else
|
||||||
|
sed -i -e "/^default=.*/d" "${zipl_config}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_bls_fragment() {
|
||||||
|
local indexes=($(param_to_indexes "$1"))
|
||||||
|
|
||||||
|
if [[ $indexes = "-1" ]]; then
|
||||||
|
print_error "The param $(get_prefix)$1 is incorrect"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in "${indexes[@]}"; do
|
||||||
|
if [[ $default_index = $i ]]; then
|
||||||
|
unset_default_bls
|
||||||
|
fi
|
||||||
|
rm -f "${bls_file[$i]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
get_bls_values
|
||||||
|
|
||||||
|
update_grubcfg
|
||||||
|
}
|
||||||
|
|
||||||
|
get_custom_bls_filename() {
|
||||||
|
local kernelver=$1
|
||||||
|
local bls_target="${blsdir}/${MACHINE_ID}-${kernelver}.conf"
|
||||||
|
count=0
|
||||||
|
local -a files
|
||||||
|
local IFS=$'\n'
|
||||||
|
|
||||||
|
prefix="${bls_target%%.conf}"
|
||||||
|
prefix="${bls_target%%${arch}}"
|
||||||
|
prefix="${prefix%.*}"
|
||||||
|
|
||||||
|
last=($(for bls in ${prefix}.*~custom*.conf ; do
|
||||||
|
if ! [[ -e "${bls}" ]] ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
bls="${bls##${prefix}.}"
|
||||||
|
bls="${bls%%~custom*}"
|
||||||
|
echo "${bls}"
|
||||||
|
done | tail -n1)) || :
|
||||||
|
|
||||||
|
if [[ -z $last ]]; then
|
||||||
|
last="0"
|
||||||
|
else
|
||||||
|
last=$((last+1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${bls_target}" | sed -e "s!${prefix}!${prefix}.${last}~custom!"
|
||||||
|
}
|
||||||
|
|
||||||
|
add_bls_fragment() {
|
||||||
|
local kernel="$1" && shift
|
||||||
|
local title="$1" && shift
|
||||||
|
local options="$1" && shift
|
||||||
|
local initrd="$1" && shift
|
||||||
|
local extra_initrd="$1" && shift
|
||||||
|
|
||||||
|
if [[ $kernel = *"vmlinuz-"* ]]; then
|
||||||
|
kernelver="${kernel##*/vmlinuz-}"
|
||||||
|
prefix="vmlinuz-"
|
||||||
|
else
|
||||||
|
kernelver="${kernel##*/}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "/boot/${prefix}${kernelver}" ]] &&
|
||||||
|
[[ $bad_image != "true" ]]; then
|
||||||
|
print_error "The ${kernelver} kernel isn't installed in the machine"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $title ]]; then
|
||||||
|
print_error "The kernel title must be specified"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -d $blsdir ]]; then
|
||||||
|
install -m 700 -d "${blsdir}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
bls_target="${blsdir}/${MACHINE_ID}-${kernelver}.conf"
|
||||||
|
|
||||||
|
if [[ -e ${bls_target} ]]; then
|
||||||
|
bls_target="$(get_custom_bls_filename "${kernelver}")"
|
||||||
|
print_info "An entry for kernel ${kernelver} already exists, adding ${bls_target}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
kernel_dir="/lib/modules/${kernelver}"
|
||||||
|
if [[ -d $kernel_dir ]]; then
|
||||||
|
datetime="$(date -u +%Y%m%d%H%M%S -d "$(stat -c '%y' "${kernel_dir}")")"
|
||||||
|
else
|
||||||
|
datetime=0
|
||||||
|
fi
|
||||||
|
mkbls "${kernel}" "${kernelver}" "${datetime}" > "${bls_target}"
|
||||||
|
|
||||||
|
if [[ -n $title ]]; then
|
||||||
|
set_bls_value "${bls_target}" "title" "${title}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $options ]]; then
|
||||||
|
set_bls_value "${bls_target}" "options" "${options}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $initrd ]]; then
|
||||||
|
set_bls_value "${bls_target}" "initrd" "${initrd}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $extra_initrd ]]; then
|
||||||
|
append_bls_value "${bls_target}" "initrd" " ${extra_initrd}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $MAKEDEBUG = "yes" ]]; then
|
||||||
|
bls_debug="$(echo ${bls_target} | sed -e "s/${kernelver}/${kernelver}~debug/")"
|
||||||
|
cp -aT "${bls_target}" "${bls_debug}"
|
||||||
|
append_bls_value "${bls_debug}" "title" "${LINUX_DEBUG_TITLE_POSTFIX}"
|
||||||
|
append_bls_value "${bls_debug}" "version" "${LINUX_DEBUG_VERSION_POSTFIX}"
|
||||||
|
append_bls_value "${bls_debug}" "options" "${CMDLINE_LINUX_DEBUG}"
|
||||||
|
blsid="$(get_bls_value ${bls_debug} "id" | sed -e "s/${kernelver}/${kernelver}~debug/")"
|
||||||
|
set_bls_value "${bls_debug}" "id" "${blsid}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_bls_values
|
||||||
|
|
||||||
|
if [[ $make_default = "true" ]]; then
|
||||||
|
set_default_bls "TITLE=${title}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
update_grubcfg
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
update_args() {
|
||||||
|
local args=$1 && shift
|
||||||
|
local remove_args=($1) && shift
|
||||||
|
local add_args=($1) && shift
|
||||||
|
|
||||||
|
for arg in ${remove_args[*]}; do
|
||||||
|
arg="$(echo $arg | sed -e 's/\//\\\//g')"
|
||||||
|
if [[ $arg = *"="* ]]; then
|
||||||
|
args="$(echo $args | sed -E "s/(^|[[:space:]])$arg([[:space:]]|$)/ /")"
|
||||||
|
else
|
||||||
|
args="$(echo $args | sed -E "s/(^|[[:space:]])$arg(([[:space:]]|$)|([=][^ ]*([$]*)))/ /g")"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
for arg in ${add_args[*]}; do
|
||||||
|
arg="${arg%%=*}"
|
||||||
|
arg="$(echo $arg | sed -e 's/\//\\\//g')"
|
||||||
|
args="$(echo $args | sed -E "s/(^|[[:space:]])$arg(([[:space:]]|$)|([=][^ ]*([$]*)))/ /g")"
|
||||||
|
done
|
||||||
|
|
||||||
|
for arg in ${add_args[*]}; do
|
||||||
|
args="$args $arg"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ${args}
|
||||||
|
}
|
||||||
|
|
||||||
|
update_bls_fragment() {
|
||||||
|
local param="$1"
|
||||||
|
local indexes=($(param_to_indexes "$1")) && shift
|
||||||
|
local remove_args=$1 && shift
|
||||||
|
local add_args=$1 && shift
|
||||||
|
local initrd=$1 && shift
|
||||||
|
local opts
|
||||||
|
|
||||||
|
if [[ $indexes = "-1" ]]; then
|
||||||
|
print_error "The param $(get_prefix)${param} is incorrect"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $param = "ALL" && $bootloader = grub2 ]] && [[ -n $remove_args || -n $add_args ]]; then
|
||||||
|
local old_args=""
|
||||||
|
|
||||||
|
if [[ -z $no_etc_update ]] && [[ -e ${grub_etc_default} ]]; then
|
||||||
|
old_args="$(source ${grub_etc_default}; echo ${GRUB_CMDLINE_LINUX})"
|
||||||
|
if [[ -n $old_args ]]; then
|
||||||
|
opts="$(update_args "${old_args}" "${remove_args}" "${add_args}")"
|
||||||
|
opts="$(echo "$opts" | sed -e 's/\//\\\//g')"
|
||||||
|
sed -i -e "s/^GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=\\\"${opts}\\\"/" "${grub_etc_default}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
old_args="$(grub2-editenv "${env}" list | grep kernelopts | sed -e "s/kernelopts=//")"
|
||||||
|
if [[ -n $old_args ]]; then
|
||||||
|
opts="$(update_args "${old_args}" "${remove_args}" "${add_args}")"
|
||||||
|
grub2-editenv "${env}" set kernelopts="${opts}"
|
||||||
|
fi
|
||||||
|
elif [[ $bootloader = grub2 ]]; then
|
||||||
|
opts="$(grub2-editenv "${env}" list | grep kernelopts | sed -e "s/kernelopts=//")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in ${indexes[*]}; do
|
||||||
|
if [[ -n $remove_args || -n $add_args ]]; then
|
||||||
|
local old_args="$(get_bls_args "$i")"
|
||||||
|
local new_args="$(update_args "${old_args}" "${remove_args}" "${add_args}")"
|
||||||
|
|
||||||
|
if [[ $param != "ALL" || "$(has_kernelopts "$i")" = "false" ]]; then
|
||||||
|
set_bls_value "${bls_file[$i]}" "options" "${new_args}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $initrd ]]; then
|
||||||
|
set_bls_value "${bls_file[$i]}" "initrd" "${initrd}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $param = "ALL" ]] && [[ -n $remove_args || -n $add_args ]]; then
|
||||||
|
if [[ ! -f /etc/kernel/cmdline ]]; then
|
||||||
|
# anaconda could pre-populate this file, but until then, most of
|
||||||
|
# the time we'll just want the most recent one. This is pretty
|
||||||
|
# close to the current almost-correct behavior of falling back to
|
||||||
|
# /proc/cmdline anyhow.
|
||||||
|
echo "$(get_bls_args -1)" > /etc/kernel/cmdline
|
||||||
|
fi
|
||||||
|
|
||||||
|
read old_args < /etc/kernel/cmdline
|
||||||
|
local new_args="$(update_args "${old_args}" "${remove_args}" "${add_args}")"
|
||||||
|
echo "$new_args" > /etc/kernel/cmdline
|
||||||
|
fi
|
||||||
|
|
||||||
|
update_grubcfg
|
||||||
|
}
|
||||||
|
|
||||||
|
set_default_bls() {
|
||||||
|
local index=($(param_to_indexes "$1"))
|
||||||
|
|
||||||
|
if [[ $index = "-1" ]]; then
|
||||||
|
print_error "The param $1 is incorrect"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $bootloader = grub2 ]]; then
|
||||||
|
grub2-editenv "${env}" set saved_entry="${bls_id[$index]}"
|
||||||
|
else
|
||||||
|
local default="${bls_title[$index]}"
|
||||||
|
local current="$(grep '^default=' ${zipl_config} | sed -e 's/^default=//')"
|
||||||
|
if [[ -n $current ]]; then
|
||||||
|
sed -i -e "s,^default=.*,default=${default}," "${zipl_config}"
|
||||||
|
else
|
||||||
|
echo "default=${default}" >> "${zipl_config}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_info "The default is ${bls_file[$index]} with index $index and kernel $(get_prefix)${bls_linux[$index]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_var_prefix() {
|
||||||
|
local prefix="$1"
|
||||||
|
|
||||||
|
[ -z "${prefix}" ] && return
|
||||||
|
|
||||||
|
if [[ -n $remove_kernel && $remove_kernel =~ ^/ ]]; then
|
||||||
|
remove_kernel="/${remove_kernel##${prefix}/}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $initrd ]]; then
|
||||||
|
initrd="/${initrd##${prefix}/}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $extra_initrd ]]; then
|
||||||
|
extra_initrd="/${extra_initrd##${prefix}/}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $kernel ]]; then
|
||||||
|
kernel="/${kernel##${prefix}/}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $update_kernel && $update_kernel =~ ^/ ]]; then
|
||||||
|
update_kernel="/${update_kernel##${prefix}/}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
update_grubcfg()
|
||||||
|
{
|
||||||
|
# Older ppc64le OPAL firmware (petitboot version < 1.8.0) don't have BLS support
|
||||||
|
# so grub2-mkconfig has to be run to generate a config with menuentry commands.
|
||||||
|
if [ "${arch}" = "ppc64le" ] && [ -d /sys/firmware/opal ]; then
|
||||||
|
RUN_MKCONFIG="true"
|
||||||
|
petitboot_path="/sys/firmware/devicetree/base/ibm,firmware-versions/petitboot"
|
||||||
|
|
||||||
|
if test -e ${petitboot_path}; then
|
||||||
|
read -r -d '' petitboot_version < ${petitboot_path}
|
||||||
|
petitboot_version="$(echo ${petitboot_version//v})"
|
||||||
|
|
||||||
|
if test -n ${petitboot_version}; then
|
||||||
|
major_version="$(echo ${petitboot_version} | cut -d . -f1)"
|
||||||
|
minor_version="$(echo ${petitboot_version} | cut -d . -f2)"
|
||||||
|
|
||||||
|
re='^[0-9]+$'
|
||||||
|
if [[ $major_version =~ $re ]] && [[ $minor_version =~ $re ]] &&
|
||||||
|
([[ ${major_version} -gt 1 ]] ||
|
||||||
|
[[ ${major_version} -eq 1 &&
|
||||||
|
${minor_version} -ge 8 ]]); then
|
||||||
|
RUN_MKCONFIG="false"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $RUN_MKCONFIG = "true" ]]; then
|
||||||
|
grub2-mkconfig --no-grubenv-update -o "${grub_config}" >& /dev/null
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
print_usage()
|
||||||
|
{
|
||||||
|
cat <<EOF
|
||||||
|
Usage: grubby [OPTION...]
|
||||||
|
--add-kernel=kernel-path add an entry for the specified kernel
|
||||||
|
--args=args default arguments for the new kernel or new arguments for kernel being updated)
|
||||||
|
--bad-image-okay don't sanity check images in boot entries (for testing only)
|
||||||
|
-c, --config-file=path path to grub config file to update ("-" for stdin)
|
||||||
|
--copy-default use the default boot entry as a template for the new entry being added; if the default is not a linux image, or if the kernel referenced by the default image does not exist, the
|
||||||
|
first linux entry whose kernel does exist is used as the template
|
||||||
|
--default-kernel display the path of the default kernel
|
||||||
|
--default-index display the index of the default kernel
|
||||||
|
--default-title display the title of the default kernel
|
||||||
|
--env=path path for environment data
|
||||||
|
--grub2 configure grub2 bootloader
|
||||||
|
--info=kernel-path display boot information for specified kernel
|
||||||
|
--initrd=initrd-path initrd image for the new kernel
|
||||||
|
-i, --extra-initrd=initrd-path auxiliary initrd image for things other than the new kernel
|
||||||
|
--make-default make the newly added entry the default boot entry
|
||||||
|
--remove-args=STRING remove kernel arguments
|
||||||
|
--remove-kernel=kernel-path remove all entries for the specified kernel
|
||||||
|
--set-default=kernel-path make the first entry referencing the specified kernel the default
|
||||||
|
--set-default-index=entry-index make the given entry index the default entry
|
||||||
|
--title=entry-title title to use for the new kernel entry
|
||||||
|
--update-kernel=kernel-path updated information for the specified kernel
|
||||||
|
--zipl configure zipl bootloader
|
||||||
|
-b, --bls-directory path to directory containing the BootLoaderSpec fragment files
|
||||||
|
--no-etc-grub-update don't update the GRUB_CMDLINE_LINUX variable in /etc/default/grub
|
||||||
|
|
||||||
|
Help options:
|
||||||
|
-h, --help Show this help message
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
OPTS="$(getopt -o hc:i:b:? --long help,add-kernel:,args:,bad-image-okay,\
|
||||||
|
config-file:,copy-default,default-kernel,default-index,default-title,env:,\
|
||||||
|
grub2,info:,initrd:,extra-initrd:,make-default,remove-args:,\
|
||||||
|
remove-kernel:,set-default:,set-default-index:,title:,update-kernel:,zipl,\
|
||||||
|
bls-directory:,no-etc-grub-update,add-multiboot:,mbargs:,mounts:,boot-filesystem:,\
|
||||||
|
bootloader-probe,debug,devtree,devtreedir:,elilo,efi,extlinux,grub,lilo,\
|
||||||
|
output-file:,remove-mbargs:,remove-multiboot:,silo,yaboot -n ${SCRIPTNAME} -- "$@")"
|
||||||
|
|
||||||
|
[[ $? = 0 ]] || exit 1
|
||||||
|
|
||||||
|
eval set -- "$OPTS"
|
||||||
|
|
||||||
|
while [ ${#} -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
--help|-h)
|
||||||
|
print_usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
--add-kernel)
|
||||||
|
kernel="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--args)
|
||||||
|
args="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--bad-image-okay)
|
||||||
|
bad_image=true
|
||||||
|
;;
|
||||||
|
--config-file|-c)
|
||||||
|
grub_config="${2}"
|
||||||
|
zipl_config="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--copy-default)
|
||||||
|
copy_default=true
|
||||||
|
;;
|
||||||
|
--default-kernel)
|
||||||
|
display_default="kernel"
|
||||||
|
;;
|
||||||
|
--default-index)
|
||||||
|
display_default="index"
|
||||||
|
;;
|
||||||
|
--default-title)
|
||||||
|
display_default="title"
|
||||||
|
;;
|
||||||
|
--env)
|
||||||
|
env="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--grub2)
|
||||||
|
bootloader="grub2"
|
||||||
|
;;
|
||||||
|
--info)
|
||||||
|
display_info="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--initrd)
|
||||||
|
initrd="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--extra-initrd|-i)
|
||||||
|
extra_initrd="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--make-default)
|
||||||
|
make_default=true
|
||||||
|
;;
|
||||||
|
--remove-args)
|
||||||
|
remove_args="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--remove-kernel)
|
||||||
|
remove_kernel="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--set-default)
|
||||||
|
set_default="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--set-default-index)
|
||||||
|
set_default="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--title)
|
||||||
|
title="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--update-kernel)
|
||||||
|
update_kernel="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--zipl)
|
||||||
|
bootloader="zipl"
|
||||||
|
;;
|
||||||
|
--bls-directory|-b)
|
||||||
|
blsdir="${2}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--no-etc-grub-update)
|
||||||
|
no_etc_update=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--add-multiboot|--mbargs|--mounts|--boot-filesystem|\
|
||||||
|
--bootloader-probe|--debug|--devtree|--devtreedir|--elilo|--efi|\
|
||||||
|
--extlinux|--grub|--lilo|--output-file|--remove-mbargs|--silo|\
|
||||||
|
--remove-multiboot|--slilo|--yaboot)
|
||||||
|
echo
|
||||||
|
echo "${SCRIPTNAME}: the option \"${1}\" was deprecated" >&2
|
||||||
|
echo "Try '${SCRIPTNAME} --help' to list supported options" >&2
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo
|
||||||
|
echo "${SCRIPTNAME}: invalid option \"${1}\"" >&2
|
||||||
|
echo "Try '${SCRIPTNAME} --help' for more information" >&2
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -z $update_kernel && -z $kernel ]] && [[ -n $args || -n $remove_args ]]; then
|
||||||
|
print_error "no action specified"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $blsdir ]]; then
|
||||||
|
blsdir="/boot/loader/entries"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $env ]]; then
|
||||||
|
env="/boot/grub2/grubenv"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $zipl_config ]]; then
|
||||||
|
zipl_config="/etc/zipl.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $grub_config ]]; then
|
||||||
|
grub_config="/boot/grub2/grub.cfg"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $grub_etc_default ]]; then
|
||||||
|
grub_etc_default="/etc/default/grub"
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_bls_values
|
||||||
|
|
||||||
|
default_index="$(get_default_index)"
|
||||||
|
|
||||||
|
if [[ -n $display_default ]]; then
|
||||||
|
display_default_value
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $display_info ]]; then
|
||||||
|
display_info_values "${display_info}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
remove_var_prefix "$(get_prefix)"
|
||||||
|
|
||||||
|
if [[ -n $kernel ]]; then
|
||||||
|
if [[ $copy_default = "true" ]]; then
|
||||||
|
opts="${bls_options[$default_index]}"
|
||||||
|
if [[ -n $args ]]; then
|
||||||
|
opts="${opts} ${args}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
opts="${opts} ${args}"
|
||||||
|
remove_args="$kernelopts"
|
||||||
|
update_args "${opts}" "${remove_args}" ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
add_bls_fragment "${kernel}" "${title}" "${opts}" "${initrd}" \
|
||||||
|
"${extra_initrd}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $remove_kernel ]]; then
|
||||||
|
remove_bls_fragment "${remove_kernel}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $update_kernel ]]; then
|
||||||
|
update_bls_fragment "${update_kernel}" "${remove_args}" "${args}" "${initrd}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $set_default ]]; then
|
||||||
|
set_default_bls "${set_default}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
@ -0,0 +1,177 @@
|
|||||||
|
.TH GRUBBY 8 "Wed Apr 29 2020"
|
||||||
|
.SH NAME
|
||||||
|
grubby \- command line tool for configuring grub and zipl
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
\fBgrubby\fR [--add-kernel=\fIkernel-path\fR] [--args=\fIargs\fR]
|
||||||
|
[--bad-image-okay] [--config-file=\fIpath\fR] [--copy-default]
|
||||||
|
[--default-kernel] [--default-index] [--default-title]
|
||||||
|
[--env=\fIpath\fR] [--grub2] [--info=\fIkernel-path\fR]
|
||||||
|
[--initrd=\fIinitrd-path\fR] [--extra-initrd=\fIinitrd-path\fR]
|
||||||
|
[--make-default] [--remove-args=\fIargs\fR]
|
||||||
|
[--remove-kernel=\fIkernel-path\fR] [--set-default=\fIkernel-path\fR]
|
||||||
|
[--set-default-index=\fientry-index\fR] [--title=\fentry-title\fR]
|
||||||
|
[--update-kernel=\fIkernel-path\fR] [--zipl] [--bls-directory=\fIpath\fR]
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBgrubby\fR is a command line tool for updating and displaying information
|
||||||
|
about the configuration files for the \fBgrub2\fR and \fBzipl\fR boot loaders.
|
||||||
|
It is primarily designed to be used from scripts which install new kernels and
|
||||||
|
need to find information about the current boot environment.
|
||||||
|
|
||||||
|
On BIOS-based Intel x86, PowerPC and UEFI-based platforms, \fBgrub2\fR is the
|
||||||
|
default bootloader and the configuration file is in \fB/boot/grub2/grub.cfg\fR.
|
||||||
|
On s390x platforms, the \fBzipl\fR bootloader use a default configuration in
|
||||||
|
\fB/etc/zipl.conf\fR.
|
||||||
|
|
||||||
|
All bootloaders define the boot entries as individual configuration fragments
|
||||||
|
that are stored by default in \fB/boot/loader/entries\fR. The format for the
|
||||||
|
config files is specified at \fBhttps://systemd.io/BOOT_LOADER_SPECIFICATION\fR.
|
||||||
|
The \fBgrubby\fR tool is used to update and display the configuration defined
|
||||||
|
in the BootLoaderSpec fragment files.
|
||||||
|
|
||||||
|
There are a number of ways to specify the kernel used for \fB-\-info\fR,
|
||||||
|
\fB-\-remove-kernel\fR, and \fB-\-update-kernel\fR. Specificying \fBDEFAULT\fR
|
||||||
|
or \fBALL\fR selects the default entry and all of the entries, respectively.
|
||||||
|
Also, the title of a boot entry may be specified by using \fBTITLE=\fItitle\fR
|
||||||
|
as the argument; all entries with that title are used.
|
||||||
|
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
\fB-\-add-kernel\fR=\fIkernel-path\fR
|
||||||
|
Add a new boot entry for the kernel located at \fIkernel-path\fR.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-args\fR=\fIkernel-args\fR
|
||||||
|
When a new kernel is added, this specifies the command line arguments
|
||||||
|
which should be passed to the kernel by default (note they are merged
|
||||||
|
with the arguments of the default entry if \fB-\-copy-default\fR is used).
|
||||||
|
When \fB-\-update-kernel\fR is used, this specifies new arguments to add
|
||||||
|
to the argument list. Multiple, space separated arguments may be used. If
|
||||||
|
an argument already exists the new value replaces the old values. The
|
||||||
|
\fBroot=\fR kernel argument gets special handling if the configuration
|
||||||
|
file has special handling for specifying the root filesystem.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-bad-image-okay\fR
|
||||||
|
When \fBgrubby\fR is looking for an entry to use for something (such
|
||||||
|
as a default boot entry) it uses sanity checks, such as ensuring that
|
||||||
|
the kernel exists in the filesystem, to make sure entries that obviously
|
||||||
|
won't work aren't selected. This option overrides that behavior, and is
|
||||||
|
designed primarily for testing.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-config-file\fR=\fIpath\fR
|
||||||
|
Use \fIpath\fR as the configuration file rather then the default.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-copy-default\fR
|
||||||
|
\fBgrubby\fR will copy as much information (such as kernel arguments and
|
||||||
|
root device) as possible from the current default kernel. The kernel path
|
||||||
|
and initrd path will never be copied.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-default-kernel\fR
|
||||||
|
Display the full path to the current default kernel and exit.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-default-index\fR
|
||||||
|
Display the numeric index of the current default boot entry and exit.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-default-title\fR
|
||||||
|
Display the title of the current default boot entry and exit.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-env\fR=\fIpath\fR
|
||||||
|
Use \fIpath\fR as the grub2 environment block file rather then the default path.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-grub2\fR
|
||||||
|
Configure \fBgrub2\fR bootloader.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-info\fR=\fIkernel-path\fR
|
||||||
|
Display information on all boot entries which match \fIkernel-path\fR. If
|
||||||
|
\fIkernel-path\fR is \fBDEFAULT\fR, then information on the default kernel
|
||||||
|
is displayed. If \fIkernel-path\fR is \fBALL\fR, then information on all boot
|
||||||
|
entries are displayed.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-initrd\fR=\fIinitrd-path\fR
|
||||||
|
Use \fIinitrd-path\fR as the path to an initial ram disk for a new kernel
|
||||||
|
being added.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-extrainitrd\fR=\fIinitrd-path\fR
|
||||||
|
Use \fIinitrd-path\fR as the path to an auxiliary init ram disk image to be
|
||||||
|
added to the boot entry.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-make-default\fR
|
||||||
|
Make the new kernel entry being added the default entry.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-remove-args\fR=\fIkernel-args\fR
|
||||||
|
The arguments specified by \fIkernel-args\fR are removed from the kernels
|
||||||
|
specified by \fB-\-update-kernel\fR. The \fBroot\fR argument gets special
|
||||||
|
handling for configuration files that support separate root filesystem
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-remove-kernel\fR=\fIkernel-path\fR
|
||||||
|
Removes all boot entries which match \fIkernel-path\fR. This may be used
|
||||||
|
along with -\-add-kernel, in which case the new kernel being added will
|
||||||
|
never be removed.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-set-default\fR=\fIkernel-path\fR
|
||||||
|
The first entry which boots the specified kernel is made the default
|
||||||
|
boot entry.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-set-default-index\fR=\fIentry-index\fR
|
||||||
|
Makes the given entry number the default boot entry.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-title\fR=\fIentry-title\fR
|
||||||
|
When a new kernel entry is added \fIentry-title\fR is used as the title
|
||||||
|
for the entry.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-update-kernel\fR=\fIkernel-path\fR
|
||||||
|
The entries for kernels matching \fRkernel-path\fR are updated. Currently
|
||||||
|
the only items that can be updated is the kernel argument list, which is
|
||||||
|
modified via the \fB-\-args\fR and \fB-\-remove-args\fR options. If the
|
||||||
|
\fBALL\fR argument is used the variable \fB GRUB_CMDLINE_LINUX\fR in
|
||||||
|
\fB/etc/default/grub\fR is updated with the latest kernel argument list,
|
||||||
|
unless the \fB-\-no-etc-grub-update\fR option is used or the file does not
|
||||||
|
exist (e.g., on s390x).
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-zipl\fR
|
||||||
|
Configure \fBzipl\fR bootloader.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-bls-directory\fR=\fIpath\fR
|
||||||
|
Use \fIpath\fR as the directory for the BootLoaderSpec config files rather
|
||||||
|
than the default \fB/boot/loader/entries\fR.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB-\-no-etc-grub-update\fR
|
||||||
|
Makes grubby to not update the \fBGRUB_CMDLINE_LINUX\fR variable in
|
||||||
|
\fB/etc/default/grub\fR when the \fB-\-update-kernel\fR option is
|
||||||
|
used with the \fBALL\fR argument.
|
||||||
|
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.BR zipl (8),
|
||||||
|
.BR mkinitrd (8),
|
||||||
|
.BR kernel-install (8)
|
||||||
|
|
||||||
|
.SH AUTHORS
|
||||||
|
.nf
|
||||||
|
Erik Troan
|
||||||
|
Jeremy Katz
|
||||||
|
Peter Jones
|
||||||
|
Javier Martinez
|
||||||
|
.fi
|
@ -0,0 +1,733 @@
|
|||||||
|
# What? No.
|
||||||
|
%define __brp_mangle_shebangs %{nil}
|
||||||
|
|
||||||
|
Name: grubby
|
||||||
|
Version: 8.40
|
||||||
|
Release: 76%{?dist}
|
||||||
|
Summary: Command line tool for updating bootloader configs
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
Source1: grubby-bls
|
||||||
|
# Source2: rpm-sort.c
|
||||||
|
Source3: COPYING
|
||||||
|
Source5: 95-kernel-hooks.install
|
||||||
|
Source6: 10-devicetree.install
|
||||||
|
Source7: grubby.8
|
||||||
|
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: glib2-devel
|
||||||
|
BuildRequires: libblkid-devel
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: popt-devel
|
||||||
|
BuildRequires: rpm-devel
|
||||||
|
BuildRequires: sed
|
||||||
|
%ifarch aarch64 x86_64 %{power64}
|
||||||
|
BuildRequires: grub2-tools-minimal
|
||||||
|
Requires: grub2-tools-minimal
|
||||||
|
Requires: grub2-tools
|
||||||
|
%endif
|
||||||
|
%ifarch s390 s390x
|
||||||
|
Requires: s390utils-core
|
||||||
|
%endif
|
||||||
|
Requires: findutils
|
||||||
|
Requires: util-linux
|
||||||
|
|
||||||
|
ExcludeArch: %{ix86}
|
||||||
|
Conflicts: uboot-tools < 2021.01-0.1.rc2
|
||||||
|
Obsoletes: %{name}-bls < %{version}-%{release}
|
||||||
|
Obsoletes: %{name}-deprecated < %{version}-%{release}
|
||||||
|
|
||||||
|
%description
|
||||||
|
This package provides a grubby compatibility script that manages
|
||||||
|
BootLoaderSpec files and is meant to be backward compatible with
|
||||||
|
the previous grubby tool.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
# Make sure the license can be found in mock
|
||||||
|
cp %{SOURCE3} . || true
|
||||||
|
|
||||||
|
%build
|
||||||
|
%set_build_flags
|
||||||
|
|
||||||
|
%install
|
||||||
|
mkdir -p %{buildroot}%{_sbindir}/
|
||||||
|
install -T -m 0755 %{SOURCE1} %{buildroot}%{_sbindir}/grubby
|
||||||
|
|
||||||
|
install -D -m 0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE5}
|
||||||
|
install -D -m 0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE6}
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_mandir}/man8
|
||||||
|
install -m 0644 %{SOURCE7} %{buildroot}%{_mandir}/man8/
|
||||||
|
|
||||||
|
%post
|
||||||
|
if [ "$1" = 2 ]; then
|
||||||
|
arch=$(uname -m)
|
||||||
|
[[ $arch == "s390x" ]] && \
|
||||||
|
zipl-switch-to-blscfg --backup-suffix=.rpmsave &>/dev/null || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license COPYING
|
||||||
|
%attr(0755,root,root) %{_sbindir}/grubby
|
||||||
|
%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
|
||||||
|
%{_mandir}/man8/grubby.8*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Oct 25 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 8.40-76
|
||||||
|
- Rebuilt for MSVSphere 10
|
||||||
|
|
||||||
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 8.40-76
|
||||||
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-75
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-74
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 10 2024 Marta Lewandowska <mlewando@redhat.com> - 8.40-73
|
||||||
|
- Do not overwrite all vars that start with GRUB_CMDLINE_LINUX
|
||||||
|
|
||||||
|
* Mon Sep 11 2023 Zbigniew Jedrzejewski-Szmek <zbyszek@in.waw.pl> - 8.40-72
|
||||||
|
- Drop installkernel so that it can be provided by systemd
|
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-71
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Feb 21 2023 Marta Lewandowska <mlewando@redhat.com> - 8.40-70
|
||||||
|
- remove root= when not copying default
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-69
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Nov 01 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-68
|
||||||
|
- Drop custom rpm-sort
|
||||||
|
- See-also: https://github.com/rpm-software-management/rpm/pull/2249
|
||||||
|
|
||||||
|
* Tue Oct 04 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-67
|
||||||
|
- Apply Marta's copy-default args fix
|
||||||
|
|
||||||
|
* Mon Aug 22 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-66
|
||||||
|
- Give up and just pull the config from BLS
|
||||||
|
- Suggested-by: Bojan Smojver <bojan@rexursive.com>
|
||||||
|
|
||||||
|
* Wed Aug 17 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-65
|
||||||
|
- Mark package as obsoleting -deprecated
|
||||||
|
- Resolves: #2117817
|
||||||
|
|
||||||
|
* Tue Aug 02 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-64
|
||||||
|
- Handle updating /etc/kernel/cmdline
|
||||||
|
|
||||||
|
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-63
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 19 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-62
|
||||||
|
- Clarify that grub files aren't used on s390x in man page
|
||||||
|
|
||||||
|
* Wed Jun 22 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-61
|
||||||
|
- Revert previous change
|
||||||
|
|
||||||
|
* Tue May 31 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-60
|
||||||
|
- Additionally write to /etc/kernel/cmdline
|
||||||
|
|
||||||
|
* Wed Apr 27 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-59
|
||||||
|
- Remove upstream and layers of indirection around -bls
|
||||||
|
|
||||||
|
* Thu Mar 10 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-58
|
||||||
|
- Remove grubby-deprecated
|
||||||
|
|
||||||
|
* Mon Feb 07 2022 Robbie Harwood <rharwood@redhat.com> - 8.40-57
|
||||||
|
- grubby-bls: wire up -h (help)
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-56
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-55
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jun 23 2021 Javier Martinez Canillas <javierm@redhat.com> - 8.40-54
|
||||||
|
- Clarify package description
|
||||||
|
Resolves: rhbz#1913299
|
||||||
|
- Update man page to not mention the GRUB config in the ESP anymore
|
||||||
|
Resolves: rhbz#1958458
|
||||||
|
|
||||||
|
* Wed Jun 09 2021 Javier Martinez Canillas <javierm@redhat.com> - 8.40-53
|
||||||
|
- grubby-bls: expand only the kernelopts variable
|
||||||
|
|
||||||
|
* Mon Apr 26 2021 Javier Martinez Canillas <javierm@redhat.com> - 8.40-52
|
||||||
|
- grubby-bs: Fix changing kernel cmdline params not working on ppc64le
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-51
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Dec 30 2020 Tom Stellard <tstellar@redhat.com> - 8.40-50
|
||||||
|
- Use make_build macro instead of plain make
|
||||||
|
- https://docs.fedoraproject.org/en-US/packaging-guidelines/#_parallel_make
|
||||||
|
|
||||||
|
* 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
|
||||||
|
- Only require s390utils-core, not s390utils-base
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-47
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jun 26 2020 Javier Martinez Canillas <javierm@redhat.com> - 8.40-46
|
||||||
|
- fix build with rpm-4.16
|
||||||
|
- grubby-bls: fix --extra-initrd option not adding the correct path
|
||||||
|
|
||||||
|
* Wed May 13 2020 Javier Martinez Canillas <javierm@redhat.com> - 8.40-45
|
||||||
|
- grubby-bls: don't replace options with kernelopts if values are the same
|
||||||
|
|
||||||
|
* Wed May 06 2020 Javier Martinez Canillas <javierm@redhat.com> - 8.40-44
|
||||||
|
- Fix installed man page file mode bits
|
||||||
|
|
||||||
|
* Tue May 05 2020 Javier Martinez Canillas <javierm@redhat.com> - 8.40-43
|
||||||
|
- grubby-bls: always escape the delimiter character used in sed commands
|
||||||
|
- grubby-bls: add a --no-etc-grub-update option
|
||||||
|
|
||||||
|
* Wed Apr 29 2020 Javier Martinez Canillas <javierm@redhat.com> - 8.40-42
|
||||||
|
- grubby-bls: fix corner case when a kernel param value contains a '='
|
||||||
|
- grubby-bls: update man page to match options in current wrapper script
|
||||||
|
|
||||||
|
* Mon Mar 30 2020 Javier Martinez Canillas <javierm@redhat.com> - 8.40-41
|
||||||
|
- Make grubby to also update GRUB_CMDLINE_LINUX in /etc/default/grub
|
||||||
|
Related: rhbz#1287854
|
||||||
|
|
||||||
|
* Mon Feb 10 2020 Javier Martinez Canillas <javierm@redhat.com> - 8.40-40
|
||||||
|
- Fix FTBFS
|
||||||
|
Resolves: rhbz#1799496
|
||||||
|
- Fix wrong S-o-B tag in patch
|
||||||
|
- Fix warning about using unversioned Obsoletes
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-39
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Nov 29 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-38
|
||||||
|
- grubby-bls: don't update grubenv when generating grub.cfg for ppc64le
|
||||||
|
Related: rhbz#1726514
|
||||||
|
|
||||||
|
* Thu Nov 28 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-37
|
||||||
|
- grubby-bls: don't print rpm-sort error messages
|
||||||
|
Resolves: rhbz#1731924
|
||||||
|
- grubby-bls: remove -o option and support -c for ppc64le grub config
|
||||||
|
Resolves: rhbz#1758598
|
||||||
|
- grubby-bls: fix logic to check if the kernelopts var is defined in a BLS
|
||||||
|
Resolves: rhbz#1726514
|
||||||
|
|
||||||
|
* Tue Aug 06 2019 Yuval Turgeman <yturgema@redhat.com> - 8.40-36
|
||||||
|
- grubby-bls: strip only /boot from paths
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-35
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jun 17 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-34
|
||||||
|
- Add a kernel-install plugin to execute hook scripts in /etc/kernel/
|
||||||
|
Resolves: rhbz#1696202
|
||||||
|
|
||||||
|
* Mon Jun 10 22:13:19 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 8.40-33
|
||||||
|
- Rebuild for RPM 4.15
|
||||||
|
|
||||||
|
* Mon Jun 10 15:42:02 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 8.40-32
|
||||||
|
- Rebuild for RPM 4.15
|
||||||
|
|
||||||
|
* Fri May 03 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-31
|
||||||
|
- Use mountpoint command to check whether /boot is a mount point
|
||||||
|
Resolves: rhbz#1706091
|
||||||
|
|
||||||
|
* Thu Mar 21 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-30
|
||||||
|
- grubby-bls: fix --add-kernel not working when using the --args option
|
||||||
|
Resolves: rhbz#1691004
|
||||||
|
|
||||||
|
* Mon Mar 11 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-29
|
||||||
|
- Only switch to BLS config for s390x / zipl
|
||||||
|
Related: rhbz#1652806
|
||||||
|
|
||||||
|
* Fri Mar 01 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-28
|
||||||
|
- grubby-bls: make --update-kernel ALL to update kernelopts var in grubenv
|
||||||
|
|
||||||
|
* Thu Feb 14 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-27
|
||||||
|
- grubby-bls: error if args or remove-args is used without update-kernel
|
||||||
|
|
||||||
|
* Tue Feb 05 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-26
|
||||||
|
- Fix GCC warnings about possible string truncations and buffer overflows
|
||||||
|
- grubby-bls: unset default entry if is the one being removed
|
||||||
|
- grubby-bls: show absolute path when printing error about incorrect param
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-25
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 14 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-24
|
||||||
|
- Correctly set LDFLAGS to include hardened flags (pjones)
|
||||||
|
Related: rhbz#1654936
|
||||||
|
- grubby-bls: expand all variables in options field when updating it
|
||||||
|
Resolves: rhbz#1660700
|
||||||
|
|
||||||
|
* Tue Dec 11 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-23
|
||||||
|
- grubby-bls: lookup default entry by either id or title on grub2
|
||||||
|
Related: rhbz#1654936
|
||||||
|
|
||||||
|
* Fri Nov 30 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-22
|
||||||
|
- grubby-bls: also print the absolute path in the --default-kernel option
|
||||||
|
Resolves: rhbz#1649778
|
||||||
|
- grubby-bls: allow to specify the same kernel param multiple times
|
||||||
|
Resolves: rhbz#1652486
|
||||||
|
- grubby-bls: expand kernel options if these are environment variables
|
||||||
|
Resolves: rhbz#1649785
|
||||||
|
- grubby-bls: always generate the BLS snippets when adding new entries
|
||||||
|
Resolves: rhbz#1653365
|
||||||
|
- Improve man page for --info option (jstodola)
|
||||||
|
Resolves: rhbz#1651672
|
||||||
|
- Make the old grubby take precedence over grubby-bls if is installed
|
||||||
|
Related: rhbz#165484
|
||||||
|
|
||||||
|
* Wed Nov 21 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-21
|
||||||
|
- installkernel-bls: remove unnecessary check for GRUB_ENABLE_BLSCFG=true
|
||||||
|
Resolves: rhbz#1647721
|
||||||
|
- grubby-bls: use title field instead of version for zipl default entry
|
||||||
|
Related: rhbz#1645200
|
||||||
|
- grubby-bls: print the absolute kernel and initramfs images paths
|
||||||
|
Resolves: rhbz#1649778
|
||||||
|
- grubby-bls: make info print the root parameter if is present in cmdline
|
||||||
|
Resolves: rhbz#1649791
|
||||||
|
|
||||||
|
* Tue Nov 13 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-20
|
||||||
|
- Switch to a BLS configuration on %%post
|
||||||
|
|
||||||
|
* Tue Nov 06 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-19
|
||||||
|
- Make the temporary config wrapper be what "grubby" contains, and put
|
||||||
|
traditional grubby in grubby-deprecated (pjones)
|
||||||
|
- Re-enable debuginfo generation (pjones)
|
||||||
|
Related: rhbz#1619344
|
||||||
|
- Install installkernel-bls here as well, not just in the grub2 package,
|
||||||
|
since s390x doesn't have grubby packages (pjones)
|
||||||
|
Related: rhbz#1619344
|
||||||
|
- Make grubby-bls execute grub2-mkconfig on ppc64
|
||||||
|
Resolves: rhbz#1636039
|
||||||
|
- grubby-bls should only check if kernel exists and not if was installed
|
||||||
|
Resolves: rhbz#1634740
|
||||||
|
- Use ! instead of , as sed delimiter in grubby-bls script
|
||||||
|
Resolves: rhbz#1634744
|
||||||
|
- Print information about the entry set as default
|
||||||
|
Resolves: rhbz#1636180
|
||||||
|
- grubby-bls: make "id" be the filename, and include it in --info=ALL (pjones)
|
||||||
|
Related: rhbz#1638103
|
||||||
|
- grubby-bls: Make grubby-bls sort everything the same way grub2 does (pjones)
|
||||||
|
Resolves: rhbz#1638103
|
||||||
|
- grubby-bls: Consistently use the filename as the bls id
|
||||||
|
Related: rhbz#1638103
|
||||||
|
- grubby-bls: check if entry exists before attempting to print its info
|
||||||
|
Resolves: rhbz#1634712
|
||||||
|
- grubby-bls: make a copy of the cmdline if is modified for an entry
|
||||||
|
Resolves: rhbz#1629054
|
||||||
|
- grubby-bls: escape delimiter character before replacing the options field
|
||||||
|
Resolves: rhbz#1640017
|
||||||
|
- grubby-bls: grubby-bls: use id instead of title to get the default entry
|
||||||
|
Resolves: rhbz#1638103
|
||||||
|
- grubby-bls: use ~debug instead of -debug as suffix to sort correctly
|
||||||
|
Related: rhbz#1638103
|
||||||
|
- grubby-bls: allow to add many BLS entries for the same kernel image
|
||||||
|
Resolves: rhbz#1634752
|
||||||
|
- grubby-bls: fix --default-* options for s390x
|
||||||
|
Resolves: rhbz#1644608
|
||||||
|
- grubby-bls: only compare using relative paths if /boot is a mount point
|
||||||
|
Resolves: rhbz#1642078
|
||||||
|
|
||||||
|
* Fri Aug 10 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-18
|
||||||
|
- Make installkernel to use kernel-install scripts on BLS configuration
|
||||||
|
|
||||||
|
* Tue Jul 24 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-17
|
||||||
|
- Fix grubby wrapper paths
|
||||||
|
Resolves: rhbz#1607981
|
||||||
|
|
||||||
|
* Tue Jul 24 2018 Peter Jones <pjones@redhat.com> - 8.40-16
|
||||||
|
- Fix permissions on /usr/sbin/grubby
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-15
|
||||||
|
- Add a grubby-bls package that conflicts with grubby
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-14
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jun 14 2018 Peter Jones <pjones@redhat.com> - 8.40-13
|
||||||
|
- Use standard Fedora linker flags (rhbz#1543502) (rdossant)
|
||||||
|
- Switch zipl config to BLS configuration on %%postun for s390x (javierm)
|
||||||
|
|
||||||
|
* Tue Apr 10 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-12
|
||||||
|
- Use .rpmsave as backup suffix when switching to BLS configuration
|
||||||
|
|
||||||
|
* Fri Apr 06 2018 Javier Martinez Canillas <javierm@redhat.com> - 8.40-11
|
||||||
|
- Switch grub2 config to BLS configuration on %%postun
|
||||||
|
|
||||||
|
* Sat Mar 03 2018 Nathaniel McCallum <npmccallum@redhat.com> - 8.40-10
|
||||||
|
- Add support for /boot on btrfs subvolumes
|
||||||
|
|
||||||
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-9
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 24 2018 Peter Robinson <pbrobinson@fedoraproject.org> 8.40-8
|
||||||
|
- Drop u-boot uImage generation on ARMv7
|
||||||
|
- Minor cleanups
|
||||||
|
|
||||||
|
* Tue Sep 12 2017 Peter Jones <pjones@redhat.com> - 8.40-7
|
||||||
|
- Explicitly require grub2-tools on platforms that need grub2-editenv
|
||||||
|
- Minor packaging cleanups
|
||||||
|
|
||||||
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.40-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Apr 15 2015 Peter Jones <pjones@redhat.com> - 8.40-1
|
||||||
|
- Update to 8.40
|
||||||
|
- More work on the thing that went to testing in 8.39
|
||||||
|
Resolves: rhbz#1211887
|
||||||
|
|
||||||
|
* Tue Apr 14 2015 Peter Jones <pjones@redhat.com> - 8.39-1
|
||||||
|
- Update to 8.39
|
||||||
|
- Fix title extraction with some config file types
|
||||||
|
Resolves: rhbz#1204353
|
||||||
|
Resolves: rhbz#1204888
|
||||||
|
Resolves: rhbz#1206943
|
||||||
|
|
||||||
|
* Tue Apr 14 2015 Peter Jones <pjones@redhat.com> - 8.38-1
|
||||||
|
- Update to 8.38
|
||||||
|
- Fix title extraction with some config file types
|
||||||
|
Resolves: rhbz#1204353
|
||||||
|
Resolves: rhbz#1204888
|
||||||
|
Resolves: rhbz#1206943
|
||||||
|
|
||||||
|
* Tue Mar 17 2015 Peter Jones <pjones@redhat.com> - 8.37-1
|
||||||
|
- Update to 8.37
|
||||||
|
- Fix test case from 8.35 on ppc64
|
||||||
|
Resolves: rhbz#1202876
|
||||||
|
|
||||||
|
* Thu Nov 13 2014 Peter Jones <pjones@redhat.com> - 8.35-9
|
||||||
|
- Disable "make check" on arm builds; right now the test suite is broken
|
||||||
|
there and raises false positives constantly.
|
||||||
|
|
||||||
|
* Mon Oct 27 2014 Peter Jones <pjones@redhat.com> - 8.35-8
|
||||||
|
- Treat kernel and kernel-core as identical in terms of --make-default
|
||||||
|
Resolves: rhbz#1141414
|
||||||
|
|
||||||
|
* Thu Oct 16 2014 Peter Jones <pjones@redhat.com> - 8.35-7
|
||||||
|
- Revert "debug" image creation for now
|
||||||
|
Resolves: rhbz#1153410
|
||||||
|
- Fix minor quoting errors in dtbdir code
|
||||||
|
Resolves: rhbz#1088933
|
||||||
|
|
||||||
|
* Wed Oct 15 2014 Peter Jones <pjones@redhat.com> - 8.35-6
|
||||||
|
- Update grubby to support device tree options for arm. Again.
|
||||||
|
Resolves: rhbz#1088933
|
||||||
|
|
||||||
|
* Fri Sep 26 2014 Peter Jones <pjones@redhat.com> - 8.35-5
|
||||||
|
- See if what people are seeing in 1141414 is actually 957681
|
||||||
|
Related: rhbz#957681
|
||||||
|
Related: rhbz#1141414
|
||||||
|
|
||||||
|
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.35-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jul 12 2014 Tom Callaway <spot@fedoraproject.org> - 8.35-3
|
||||||
|
- fix license handling
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.35-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed May 21 2014 Peter Jones <pjones@redhat.com> - 8.35-1
|
||||||
|
- Fix a minor test case error that causes koji builds to fail.
|
||||||
|
Related: rhbz#1096358
|
||||||
|
|
||||||
|
* Wed May 21 2014 Peter Jones <pjones@redhat.com> - 8.34-1
|
||||||
|
- Make grub2 "--copy-default --add-kernel=foo --initrd=bar" work when default
|
||||||
|
has no initrd line.
|
||||||
|
Resolves: rhbz#1099627
|
||||||
|
Related: rhbz#1096358
|
||||||
|
|
||||||
|
* Tue Apr 01 2014 Peter Jones <pjones@redhat.com> - 8.33-1
|
||||||
|
- Fix --devtree test in new-kernel-pkg even harder (#1082318)
|
||||||
|
|
||||||
|
* Mon Mar 31 2014 Peter Jones <pjones@redhat.com> - 8.32-1
|
||||||
|
- Fix --devtree test in new-kernel-pkg (#1082318)
|
||||||
|
- Fix aarch64 #define test.
|
||||||
|
|
||||||
|
* Fri Mar 28 2014 Peter Jones <pjones@redhat.com> - 8.31-1
|
||||||
|
- Update to 8.31
|
||||||
|
- Fold in patches from Fedora and RHEL 7 trees
|
||||||
|
|
||||||
|
* Mon Jan 20 2014 Lubomir Rintel <lkundrak@v3.sk> - 8.28-2
|
||||||
|
- Fix extlinux default
|
||||||
|
|
||||||
|
* Fri Aug 02 2013 Peter Jones <pjones@redhat.com> - 8.28-1
|
||||||
|
- More work on grub's "saved_entry" system.
|
||||||
|
Resolves: rhbz#768106
|
||||||
|
Resolves: rhbz#736188
|
||||||
|
|
||||||
|
* Tue Jul 30 2013 Peter Jones <pjones@redhat.com> - 8.27-1
|
||||||
|
- Make grubby understand grub's "saved_entry" system
|
||||||
|
Resolves: rhbz#768106
|
||||||
|
Resolves: rhbz#736188
|
||||||
|
- BuildRequire grub2 on appropriate platforms, for the test suite.
|
||||||
|
|
||||||
|
* Fri Jun 07 2013 Dennis Gilmore <dennis@ausil.us> - 8.26-2
|
||||||
|
- add patch to update extlinux.conf file on arm if it exists
|
||||||
|
|
||||||
|
* Fri May 10 2013 Peter Jones <pjones@redhat.com> - 8.26-1
|
||||||
|
- Conditionally call arm-boot-config's boot.scr generator if available
|
||||||
|
Resolves: rhbz#952428
|
||||||
|
|
||||||
|
* Tue Apr 09 2013 Peter Jones <pjones@redhat.com> - 8.25-1
|
||||||
|
- Error instead of segfaulting if we can't find any working config
|
||||||
|
Resolves: rhbz#912873
|
||||||
|
Resolves: rhbz#751608
|
||||||
|
|
||||||
|
* Tue Mar 19 2013 Peter Jones <pjones@redhat.com> - 8.24-1
|
||||||
|
- Fix module remove code from Harald (#923441)
|
||||||
|
|
||||||
|
* Mon Mar 11 2013 Peter Jones <pjones@redhat.com> - 8.23-1
|
||||||
|
- Update to 8.23
|
||||||
|
- Fix empty root device in case of an empty /etc/fstab (lemenkov)
|
||||||
|
- General refactoring and cleanup (harald)
|
||||||
|
- Don't clean up modules.* so aggressively (harald)
|
||||||
|
|
||||||
|
* Wed Feb 20 2013 Peter Jones <pjones@redhat.com> - 8.22-3
|
||||||
|
- Add --debug style logging (for both success and failures) to /var/log/grubby
|
||||||
|
|
||||||
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.22-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jan 04 2013 Peter Jones <pjones@redhat.com> - 8.22-1
|
||||||
|
- Revert test case for rhbz#742885 - it's a work in progress that isn't
|
||||||
|
ready yet.
|
||||||
|
|
||||||
|
* Fri Jan 04 2013 Peter Jones <pjones@redhat.com> - 8.21-1
|
||||||
|
- Use systemd vconsole.conf and locale.conf if present
|
||||||
|
Resolves rhbz#881908
|
||||||
|
- Avoid unnecessary stat calls (from Ville Skyttä)
|
||||||
|
Resolves rhbz#741135
|
||||||
|
- Spelling fixes (Ville Skyttä)
|
||||||
|
- Add a test case for rhbz#742885
|
||||||
|
- Handle case-insensitive extlinux config files properly (from Johannes Weiner)
|
||||||
|
|
||||||
|
* Tue Oct 02 2012 Peter Jones <pjones@redhat.com> - 8.20-1
|
||||||
|
- Handle linuxefi initrd and removal correctly.
|
||||||
|
Resolves: rhbz#859285
|
||||||
|
|
||||||
|
* Wed Sep 26 2012 Peter Jones <pjones@redhat.com> - 8.19-1
|
||||||
|
- Don't accidentally migrate from linuxefi back to linux
|
||||||
|
Related: rhbz#859285
|
||||||
|
|
||||||
|
* Fri Sep 21 2012 Peter Jones <pjones@redhat.com> - 8.18-1
|
||||||
|
- Change the way the kernel load address is determined for ARM U-Boot.
|
||||||
|
|
||||||
|
* Wed Aug 08 2012 Peter Jones <pjones@redhat.com> - 8.17-1
|
||||||
|
- Update to 8.17
|
||||||
|
- Fixes a "make test" failure.
|
||||||
|
|
||||||
|
* Wed Aug 08 2012 Peter Jones <pjones@redhat.com> - 8.16-1
|
||||||
|
- Update to 8.16
|
||||||
|
- Handle "linuxefi" directive on grub2/uefi machines.
|
||||||
|
|
||||||
|
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.15-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jun 25 2012 Peter Jones <pjones@redhat.com> - 8.15-1
|
||||||
|
- Update to 8.15
|
||||||
|
- Revert dirname change from 8.13; it was wrong.
|
||||||
|
|
||||||
|
* Thu Jun 14 2012 Peter Jones <pjones@redhat.com> - 8.14-1
|
||||||
|
- Update to 8.14 to fix a build problem.
|
||||||
|
|
||||||
|
* Thu Jun 14 2012 Peter Jones <pjones@redhat.com> - 8.13-1
|
||||||
|
- Update to 8.13
|
||||||
|
- Add some more ARM tweaks (dmartin)
|
||||||
|
- Better support for other distros (crosa)
|
||||||
|
|
||||||
|
* Tue Jun 12 2012 Peter Jones <pjones@redhat.com> - 8.12-2
|
||||||
|
- Support UBOOT_IMGADDR override on ARM (blc)
|
||||||
|
|
||||||
|
* Thu May 31 2012 Peter Jones <pjones@redhat.com> - 8.12-1
|
||||||
|
- Update to 8.12
|
||||||
|
- Preserve trailing indentation when splitting line elements (mads)
|
||||||
|
Resolves: rhbz#742720
|
||||||
|
- Pick last device mounted on / (pjones,bcl)
|
||||||
|
Related: rhbz#820340
|
||||||
|
Related: rhbz#820351
|
||||||
|
|
||||||
|
* Wed Mar 21 2012 Peter Jones <pjones@redhat.com> - 8.11-1
|
||||||
|
- Update to 8.11
|
||||||
|
Resolves: rhbz#805310
|
||||||
|
|
||||||
|
* Thu Mar 15 2012 Peter Jones <pjones@redhat.com> - 8.10-1
|
||||||
|
- Update to 8.10
|
||||||
|
- Use "isquote" where appropriate
|
||||||
|
- Make --remove-kenrel support titles in grub2 (jianzhong.huang)
|
||||||
|
- Use grub2 if it's there on ppc.
|
||||||
|
|
||||||
|
* Fri Mar 02 2012 Peter Jones <pjones@redhat.com> - 8.9-1
|
||||||
|
- Refactor grub2 title extraction, making it a function (Cleber Rosa)
|
||||||
|
- Include prefix when printing kernel information (Cleber Rosa)
|
||||||
|
- Implement support for "default saved" for grub2 (Cleber Rosa)
|
||||||
|
- Try to display title when printing information with '--info' (Cleber Rosa)
|
||||||
|
- new-kernel-pkg fails to find U-Boot. (D. Marlin)
|
||||||
|
- Add support to new-kernel-pkg to recognize ARCH == armv5tel needed for Kir
|
||||||
|
(D.Marlin)
|
||||||
|
- Include a / when one is missing in paths (#769641)
|
||||||
|
- Fix hard coded paths so kernel's "make install" will DTRT.
|
||||||
|
- Fix endswith() to correctly test its input for validity.
|
||||||
|
|
||||||
|
* Tue Feb 07 2012 Dennis Gilmore <dennis@ausil.us> - 8.8-3
|
||||||
|
- add uboot-tools requires on arm arches
|
||||||
|
- add uboot config file on arm arches
|
||||||
|
|
||||||
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.8-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Dec 20 2011 Peter Jones <pjones@redhat.com> - 8.8-1
|
||||||
|
- Fix test cases from 8.7 to work on a system without /boot mounted.
|
||||||
|
|
||||||
|
* Tue Dec 20 2011 Peter Jones <pjones@redhat.com> - 8.7-1
|
||||||
|
- Add a --debug to try to help diagnose "No suitable template". (sandeen,pjones)
|
||||||
|
|
||||||
|
* Mon Dec 19 2011 Peter Jones <pjones@redhat.com> - 8.6-1
|
||||||
|
- Fix a "make test" errors introduced in 8.4-1
|
||||||
|
|
||||||
|
* Sat Dec 17 2011 Peter Jones <pjones@redhat.com> - 8.5-1
|
||||||
|
- Don't hardcode dracut path
|
||||||
|
Resolves: #768645
|
||||||
|
|
||||||
|
* Thu Dec 08 2011 Adam Williamson <awilliam@redhat.com> - 8.4-1
|
||||||
|
- Update to 8.4:
|
||||||
|
+ fix Loading... line for updated kernels
|
||||||
|
+ Add new '--default-title' feature
|
||||||
|
+ Add new '--default-index' feature
|
||||||
|
+ add feature for testing the output of a grubby command
|
||||||
|
+ Fix detection when comparing stage1 to MBR
|
||||||
|
+ do not link against glib-2.0
|
||||||
|
+ Don't crash if grubConfig not found
|
||||||
|
+ Adding extlinux support for new-kernel-pkg
|
||||||
|
+ Look for Debian / Ubuntu grub config files (#703260)
|
||||||
|
+ Make grubby recognize Ubuntu's spin of Grub2 (#703260)
|
||||||
|
|
||||||
|
* Thu Sep 29 2011 Peter Jones <pjones@redhat.com> - 8.3-1
|
||||||
|
- Fix new-kernel-pkg invocation of grubby for grub (patch from Mads Kiilerich)
|
||||||
|
Resolves: rhbz#725185
|
||||||
|
|
||||||
|
* Wed Sep 14 2011 Peter Jones <pjones@redhat.com> - 8.2-1
|
||||||
|
- Fixes for xen (from Michael Petullo)
|
||||||
|
Resolves: rhbz#658387
|
||||||
|
|
||||||
|
* Fri Jul 22 2011 Peter Jones <pjones@redhat.com> - 8.1-1
|
||||||
|
- Update to 8.1
|
||||||
|
- Fix miss-spelled variable name in new-kernel-pkg
|
||||||
|
|
||||||
|
* Thu Jul 21 2011 Peter Jones <pjones@redhat.com> - 8.0-1
|
||||||
|
- Add support for grub2.
|
||||||
|
|
||||||
|
* Tue Jun 07 2011 Brian C. Lane <bcl@redhat.com> - 7.0.18-1
|
||||||
|
- Bump version to 7.0.18 (bcl)
|
||||||
|
- Fixup new-kernel-pkg errors (#711493) (bcl)
|
||||||
|
|
||||||
|
* Mon Jun 06 2011 Peter Jones <pjones@redhat.com> - 7.0.17-1
|
||||||
|
- Fix references to wrong program name in new-kernel-pkg.8
|
||||||
|
Resolves: rhbz#663981
|
||||||
|
|
||||||
|
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.0.16-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 24 2011 Karsten Hopp <karsten@redhat.com> 7.0.16-2
|
||||||
|
- add BR utils-linux-ng for getopt
|
||||||
|
|
||||||
|
* Tue Jul 13 2010 Brian C. Lane <bcl@redhat.com> - 7.0.16-1
|
||||||
|
- Update to 7.0.16
|
||||||
|
- Add patch to check the return value of getuuidbydev
|
||||||
|
- Resolves: rhbz#592294
|
||||||
|
|
||||||
|
* Wed Apr 14 2010 Peter Jones <pjones@redhat.com> - 7.0.15-1
|
||||||
|
- Update to 7.0.15
|
||||||
|
- Add man pages for installkernel and new-kernel-pkg
|
||||||
|
Resolves: rhbz#529333
|
||||||
|
|
||||||
|
* Wed Apr 14 2010 Peter Jones <pjones@redhat.com> - 7.0.14-1
|
||||||
|
- Update to 7.0.14
|
||||||
|
|
||||||
|
* Thu Feb 11 2010 Peter Jones <pjones@redhat.com> - 7.0.13-1
|
||||||
|
- Strip boot partition prefix from initrd path if present during --update.
|
||||||
|
Related: rhbz#557922
|
||||||
|
- add host only support for local kernel compiles (airlied)
|
||||||
|
|
||||||
|
* Mon Feb 08 2010 Peter Jones <pjones@redhat.com> - 7.0.12-1
|
||||||
|
- compare rootdev using uuid instead of stat, for better btrfs support (josef)
|
||||||
|
Resolves: rhbz#530108
|
||||||
|
|
||||||
|
* Mon Feb 08 2010 Peter Jones <pjones@redhat.com> - 7.0.11-1
|
||||||
|
- Make it possible to update the initrd without any other change.
|
||||||
|
Related: rhbz#557922
|
||||||
|
|
||||||
|
* Fri Feb 05 2010 Peter Jones <pjones@redhat.com> - 7.0.10-1
|
||||||
|
- Make --update able to add an initramfs.
|
||||||
|
Related: rhbz#557922
|
||||||
|
|
||||||
|
* Mon Nov 30 2009 Peter Jones <pjones@redhat.com> - 7.0.9-3
|
||||||
|
- Use s390utils-base as the s390 dep, not s390utils
|
||||||
|
Related: rhbz#540565
|
||||||
|
|
||||||
|
* Tue Nov 24 2009 Peter Jones <pjones@redhat.com> - 7.0.9-2
|
||||||
|
- Add s390utils dep when on s390, since new-kernel-package needs it.
|
||||||
|
Resolves: rhbz#540565
|
||||||
|
|
||||||
|
* Fri Oct 30 2009 Peter Jones <pjones@redhat.com> - 7.0.9-1
|
||||||
|
- Add support for dracut to installkernel (notting)
|
||||||
|
|
||||||
|
* Thu Oct 1 2009 Hans de Goede <hdegoede@redhat.com> - 7.0.8-1
|
||||||
|
- Stop using nash
|
||||||
|
|
||||||
|
* Fri Sep 11 2009 Hans de Goede <hdegoede@redhat.com> - 7.0.7-1
|
||||||
|
- Remove writing rd_plytheme=$theme to kernel args in dracut mode (hansg)
|
||||||
|
- Add a couple of test cases for extra initrds (rstrode)
|
||||||
|
- Allow tmplLine to be NULL in getInitrdVal (rstrode)
|
||||||
|
|
||||||
|
* Fri Sep 11 2009 Peter Jones <pjones@redhat.com> - 7.0.6-1
|
||||||
|
- Fix test case breakage from 7.0.5 (rstrode)
|
||||||
|
|
||||||
|
* Fri Sep 11 2009 Peter Jones <pjones@redhat.com> - 7.0.5-1
|
||||||
|
- Add support for plymouth as a second initrd. (rstrode)
|
||||||
|
Resolves: rhbz#520515
|
||||||
|
|
||||||
|
* Wed Sep 09 2009 Hans de Goede <hdegoede@redhat.com> - 7.0.4-1
|
||||||
|
- Add --dracut cmdline argument for %%post generation of dracut initrd
|
||||||
|
|
||||||
|
* Wed Aug 26 2009 Hans de Goede <hdegoede@redhat.com> - 7.0.3-1
|
||||||
|
- Silence error when no /etc/sysconfig/keyboard (#517187)
|
||||||
|
|
||||||
|
* Fri Aug 7 2009 Hans de Goede <hdegoede@redhat.com> - 7.0.2-1
|
||||||
|
- Add --add-dracut-args new-kernel-pkg cmdline option
|
||||||
|
|
||||||
|
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 7.0.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 17 2009 Jeremy Katz <katzj@redhat.com> - 7.0.1-1
|
||||||
|
- Fix blkid usage (#124246)
|
||||||
|
|
||||||
|
* Wed Jun 24 2009 Jeremy Katz <katzj@redhat.com> - 7.0-1
|
||||||
|
- BR libblkid-devel now instead of e2fsprogs-devel
|
||||||
|
- Add bits to switch to using dracut for new-kernel-pkg
|
||||||
|
|
||||||
|
* Wed Jun 3 2009 Jeremy Katz <katzj@redhat.com> - 6.0.86-2
|
||||||
|
- add instructions for checking out from git
|
||||||
|
|
||||||
|
* Tue Jun 2 2009 Jeremy Katz <katzj@redhat.com> - 6.0.86-1
|
||||||
|
- initial build after splitting out from mkinitrd
|
||||||
|
|
Loading…
Reference in new issue