Commit Graph

180 Commits

Author SHA1 Message Date
Javier Martinez Canillas 9a80bb6f8e
grubby-bls: allow to add many BLS entries for the same kernel image
The BLS files name convention used is ${MACHINE_ID}-${KERNEL_VERSION}.conf
but this means that there can only be a single entry for a given kernel.

Allow the grubby wrapper to add many entries for the same kernel image,
since the old grubby tool was able to do that. To differentiate from the
original BLS entry and to specify that it's a customized entry, add a
[[:digit:]]~custom suffix after the kernel version number.

This will also sort the custom entries before the original entry, that's
also what the old grubby tool did.

Resolves: rhbz#1634752

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-11-02 00:55:03 +01:00
Javier Martinez Canillas 1c345197a4
grubby-bls: use ~debug instead of -debug as suffix to sort correctly
For the debug BLS entries a -debug suffix was added so they are sorted after
the kernel entries, but that only works with version sort and not rpm sort.

So instead use ~debug prefix so rpm sort algorithm could sort it correctly.

Related: rhbz#1638103

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:51:23 +02:00
Javier Martinez Canillas db3ffac800
grubby-bls: use id instead of title to get the default entry
The wrapper is using the title before to store the default entry, but we
are now using the entry id for grub2, so make the wrapper query the id.

Resolves: rhbz#1638103

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:51:16 +02:00
Javier Martinez Canillas 7d53b5e0a6
grubby-bls: escape delimiter character before replacing the options field
The ! character was used as the delimiter, but this doesn't work when the
param uses this character, for example "memmap=1G!1G".

Resolves: rhbz#1640017

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:50:49 +02:00
Javier Martinez Canillas 84881fb396
grubby-bls: make a copy of the cmdline if is modified for an entry
The BLS entries use a global kernel command line parameters that's set as
kernelopts variable in the grubenv file. But users may want to have custom
parameters for some entries, so make a copy of the current kernelopts and
set the "options" field value to the modified parameters.

Resolves: rhbz#1629054

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:49:19 +02:00
Peter Jones a5e56a6e7d
Make grubby-bls sort everything correctly, including spaces.
Related: rhbz#1638103
2018-10-23 15:49:19 +02:00
Javier Martinez Canillas b40ea5be18
grubby-bls: check if entry exists before attempting to print its info
The grubby --info option didn't check if an entry existed for a kernel and
printed wrong information about it. Fix this and also for --update-kernel
and --set-default options that have the same issue.

Resolves: rhbz#1634712

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:35:52 +02:00
Javier Martinez Canillas cf425061aa
grubby-bls: set saved_entry to id instead of title on set-default
The grubby wrapper sets the saved_entry in grubenv to the entry title
field since that's done by grubby. But for BLS the id is the filename
without the .conf extension, this saved_entry is set to this when a
new kernel is installed.

So for consistency also use the entry id for the --set-default option.

Related: rhbz#1638103

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:35:13 +02:00
Peter Jones 0f5ce5a543
Rename patches
This is just "git format-patch -7" to normalize the names.

Related: rhbz#1638103
2018-10-23 15:21:35 +02:00
Peter Jones 4aa091811b
grubby-bls: make "id" be the filename, and include it in --info=ALL
Related: rhbz#1638103
Signed-off-by: Peter Jones <pjones@redhat.com>
2018-10-23 15:08:30 +02:00
Javier Martinez Canillas 33ab171b28
Print information about the entry set as default by grubby-bls script
This information can be useful for users to know what's the BLS entry
that was set as the default.

Resolves: rhbz#1636180

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:06:54 +02:00
Javier Martinez Canillas 28952a66c8
Use ! instead of , as sed delimiter in grubby-bls script
The script uses sed to modify the options field in the BLS entries, but it
is using a ',' character as the sed delimiter. It's total valid to have a
kernel command line parameter that contains that character, for example:

$ grubby --add-kernel=/boot/vmlinuz --args="console=ttyS0,115200n81" \
  --initrd=/boot/initrd.img --make-default --title=install
sed: -e expression #1, char 42: unknown option to `s'

Fix this by using a different delimiter that won't be present in a cmdline.

Resolves: rhbz#1634744

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:06:49 +02:00
Javier Martinez Canillas f9880644e6
grubby-bls should only check if kernel exists and not if was installed
When a new BLS entry is added, the script checks if the kernel image exists
and also if it was installed from a rpm package. But the latter isn't really
needed, it should be valid to just copy a kernel image and add a BLS entry.

Resolves: rhbz#1634740

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:06:45 +02:00
Javier Martinez Canillas b8c8cdcf6c
Make grubby-bls execute grub2-mkconfig on ppc64
When booting an ppc64 machine on bare-metal (PowerNV) the OPAL firmware
interface is used. The firmware contains the Petitboot boot-loader that
can be used to parse the BootLoaderSpec (BLS) snippets in a BLS setup.

But machines could have an older version of Petitboot that doesn't have
BLS support, so on ppc64 machines can't be assumed that just modifying
the BLS files is enough for those changes to be reflected in the boot
menu. Instead, grub2-mkconfig is executed so the BLS can be parsed and
produce a grub config file that can be used by any Petitboot version.

Resolves: rhbz#1636039

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-10-23 15:06:40 +02:00
Peter Jones e4c6ac2467
Install installkernel-bls here as well, not just in the grub2 package,
since s390x doesn't have grubby packages.
  Related: rhbz#1619344

Signed-off-by: Peter Jones <pjones@redhat.com>
2018-10-23 14:52:47 +02:00
Peter Jones 656faab212
Re-enable debuginfo generation.
So what's happened here is this:
- we planned on not having the grubby binary in this package at all
  anymore
- when we did test builds like that, find-debuginfo.sh broke
- since it was completely inconsequential, we disabled building
  debuginfo
- then we re-thought the package layout, and decided to build that
  binary anyway, but forgot to turn debuginfo back on
- also we build the binary as -fPIE, which file(1) says is a "shared
  object"
- brp-strip does not act on shared objects, so it didn't strip

As a result, rpmdiff noticed our binary was not stripped.

This patch re-enables debuginfo, which will cause our binary to get
stripped, as well as to have the correct debuginfo packages in the
output.

Related: rhbz#1619344
Signed-off-by: Peter Jones <pjones@redhat.com>
2018-10-23 14:48:48 +02:00
Peter Jones c8647003fc
Provide the correct installkenrel and grubby-bls packaging for blscfg
Resolves: rhbz#1619344

Signed-off-by: Peter Jones <pjones@redhat.com>
2018-10-23 14:29:29 +02:00
Javier Martinez Canillas 6a009b55ac
Make installkernel to use kernel-install scripts on BLS configuration
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-08-11 21:33:16 +02:00
Javier Martinez Canillas 5e1de1e87d
Fix grubby wrapper paths
Resolves: rhbz#1607981

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-07-25 09:33:43 +02:00
Peter Jones 1f933303c9 Fix permissions on /usr/sbin/grubby
Signed-off-by: Peter Jones <pjones@redhat.com>
2018-07-24 13:44:00 -04:00
Peter Jones 87beb89e75 Make this like the f28 package.
We need to cary this in f29 until we have the anaconda patches in and
get grubby out of the default install, so we'll have BLS configs and not
need grubby to update them.

Signed-off-by: Peter Jones <pjones@redhat.com>
2018-07-18 13:54:22 -04:00
Peter Jones 214bb840df Move grubby-bls to grubby and obsolete the old grubby package
Signed-off-by: Peter Jones <pjones@redhat.com>
2018-07-18 13:44:06 -04:00
Javier Martinez Canillas 19db5c489a
Add grubby-bls package
Add a grubby wrapper script that allows to manage BootLoaderSpec files by
using the same command line options supported by the grubby tool. This is
provided for backward compatibility for grubby users that swtich to BLS.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-07-13 20:05:41 +02:00
Fedora Release Engineering a7316b242a - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 04:33:50 +00:00
Javier Martinez Canillas b92599df6e Switch zipl config to BLS configuration on %postun for s390x
When grubby is not installed, the zipl configuration has to be changed
to use the BLS configuration files.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-06-14 10:26:39 -04:00
Peter Jones 5d5938c58d Fix an old changelog entry rpmlint was complaining about
Signed-off-by: Peter Jones <pjones@redhat.com>
2018-06-14 10:26:21 -04:00
Rafael dos Santos a631596958 Use Fedora standard linker flags
- Resolves rhbz#1543502

Signed-off-by: Rafael dos Santos <rdossant@redhat.com>
2018-05-29 15:21:54 +02:00
Javier Martinez Canillas eedee25066 Use .rpmsave as backup suffix when switching to BLS configuration
By default the grub2-switch-to-blscfg script uses .bak as the suffix for
saved files, but it should use .rpmsave when called from a RPM scriptlet.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-04-11 10:10:26 -04:00
Javier Martinez Canillas c8349748f2 Switch grub2 config to BLS configuration on %postun
When grubby is not installed, the GRUB 2 configuration has to be
changed to use the BLS configuration files.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2018-04-06 13:50:22 -04:00
Nathaniel McCallum 8a91c9f29b Add support for /boot on btrfs 2018-03-05 13:52:23 -05:00
Fedora Release Engineering e0fe64ca89 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 15:30:57 +00:00
Peter Robinson c5aefcde03 Drop u-boot uImage generation on ARMv7, Minor cleanups 2018-01-24 08:53:33 +00:00
Peter Jones 9c7b4eb905 Actually require grub2-tools-minimal, which has grub2-editenv in it.
Signed-off-by: Peter Jones <pjones@redhat.com>
2017-09-12 10:07:05 -04:00
Peter Jones 5eb64ab406 Cleanup deps for new grub2 packaging.
- Explicitly require grub2-tools on platforms that need grub2-editenv
- Minor packaging cleanups

Signed-off-by: Peter Jones <pjones@redhat.com>
2017-09-12 09:21:37 -04:00
Fedora Release Engineering 8f77e4538d - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-02 23:05:04 +00:00
Fedora Release Engineering 17c40dca81 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 12:05:52 +00:00
Adam Jackson 1ddd4fd7db Update URL, fix %description formatting 2017-02-27 13:07:26 -05:00
Fedora Release Engineering c7f3e950d7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-10 12:16:16 +00:00
Dennis Gilmore 9e56840728 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-03 23:22:14 +00:00
Dennis Gilmore 796d03e956 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-17 09:51:29 +00:00
Peter Jones 2ba2a6e6aa Update to 8.40
- More work on the thing that went to testing in 8.39
  Resolves: rhbz#1211887

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-04-15 15:40:01 -04:00
Peter Jones 715a4d823a Update to 8.39
- Fix title extraction with some config file types
  Resolves: rhbz#1204353
  Resolves: rhbz#1204888
  Resolves: rhbz#1206943

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-04-14 14:40:14 -04:00
Peter Jones c095884218 Update to 8.38
- Fix title extraction with some config file types
  Resolves: rhbz#1204353
  Resolves: rhbz#1204888
  Resolves: rhbz#1206943

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-04-14 13:35:46 -04:00
Peter Jones 75676da88b Update to 8.37
- Fix test case from 8.35 on ppc64
  Resolves: rhbz#1202876

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-03-17 14:57:25 -04:00
Peter Jones 13b3f1d5f2 Disable "make check" on arm builds; right now the test suite is broken
there and raises false positives constantly.

Signed-off-by: Peter Jones <pjones@redhat.com>
2014-11-13 09:46:21 -05:00
Peter Jones e2a3f9ce83 Treat kernel and kernel-core as identical in terms of --make-default
Resolves: rhbz#1141414

Signed-off-by: Peter Jones <pjones@redhat.com>
2014-10-27 18:14:26 -04:00
Peter Jones ee984748a5 Don't create "debug" entries yet.
This apparently interacts poorly with grub2-mkconfig's title generation
and causes weird errors, so it's not ready yet.

This commit also fixes some quoting errors in the dtbdir n-k-p code.

Resolves: rhbz#1153410
Resolves: rhbz#1088933

Signed-off-by: Peter Jones <pjones@redhat.com>
2014-10-17 18:56:25 -04:00
Peter Jones 635a3b8d37 Update grubby to support device tree options for arm. Again.
Resolves: rhbz#1088933

Signed-off-by: Peter Jones <pjones@redhat.com>
2014-10-17 18:56:25 -04:00
Peter Jones ac7dcc0da0 Fix a typo. 2014-10-17 18:56:25 -04:00
Peter Jones 0370b222f6 See if what people are seeing in 1141414 is actually 957681
Related: rhbz#957681
  Related: rhbz#1141414
2014-10-17 18:56:25 -04:00