Commit Graph

55 Commits

Author SHA1 Message Date
Adriaan de Groot
42425e4030 [grubcfg] False is case-sensitive in Python 2019-11-18 10:48:33 +01:00
Adriaan de Groot
f727362a90 [grubcfg] Guard against stupid configurations
- Scenario: *keepDistribution* is true, and the existing file contains
   a GRUB_DISTRIBUTION line **followed** by a commented-out GRUB_DISTRIBUTION
   line.
 - In that case, the commented-out line would change the flag back to
   False, and we'd end up writing a second GRUB_DISTRIBUTION line at the end.

Prevent that: the flag can only go to "True" and then stays there.

Editorial: If your grub configuration would have tripped this up, then
you're doing something wrong. Clean up the configuration file first.
2019-11-04 16:36:57 +01:00
Adriaan de Groot
4a0a8083f3 [grubcfg] If we only see #GRUB_DISTRIBUTION, it's not been set
- If we update the line, then GRUB_DISTRIBUTION has been set
 - If we don't update the line (e.g. because of *keepDistribution*)
   then a comment doesn't count as "have seen that line".

This means that if we get to the end of the file, with only commented-
out GRUB_DISTRIBUTION lines, and *keepDistribution* is set, then we'll
still write a distribution line -- because otherwise it's not set at all.
2019-11-04 16:34:15 +01:00
Adriaan de Groot
c6c861654d [grubcfg] Update GRUB_DISTRIBUTION as needed
- Previous fix would erase the distribution information (using an
   empty string to flag 'preserve existing GRUB_DISTRIBUTION lines'),
   but that is fragile. A distro might set that, and yet **not**
   set a GRUB_DISTRIBUTION line, in which case it would end up with
   a setup without any GRUB_DISTRIBUTION set.
 - When a GRUB_DISTRIBUTION line is found, **then** check if it should
   update the line or not. This way, we have a suitable distribution
   to write if no GRUB_DISTRIBUTION is found at all.
2019-11-04 16:06:59 +01:00
Adriaan de Groot
ac3b50fabb [grubcfg] Only replace a GRUB_DISTRIBUTOR line if wanted 2019-11-04 16:02:36 +01:00
Adriaan de Groot
e326b658ef Enable translation in Python modules
- covers all the remaining Python modules
 - most only get a translatable pretty name, some also return
   error messages
2019-04-20 11:22:32 +02:00
Adriaan de Groot
e50c2bcb44 [grubcfg] REVERT d775cee4cf
This is causing issue #1073 and needs further thought.
2019-02-23 16:52:10 -05:00
Matthias Klumpp
d775cee4cf grubcfg: Only try to decrypt disk that /boot is on 2018-08-25 15:21:40 +02:00
Adriaan de Groot
dd8e53dc22 Copyright: update copyright lines on files touched in 2018
Contributions from:
  Adriaan de Groot <groot@kde.org>
  Gabriel Craciunescu <crazy@frugalware.org>
  AlmAck <gluca86@gmail.com>
  Andrius Štikonas <andrius@stikonas.eu>
  Caio Carvalho <caiojcarvalho@gmail.com>
  Raul Rodrigo Segura <raurodse@gmail.com>
2018-06-15 05:59:11 -04:00
Gabriel Craciunescu
0ccca6902b [grubcfg] fix inter-module dependency with plymouthcfg modules
The plymouthcfg Calamares module is optional. Distributions which
  write filesystems with a full plymouth configuration won't even
  want to use it (see plymouthcfg docs).

  However, now grubcfg depends on plymouthcfg to run because
  the globalstorage value to trigger setting  'splash' in grub,
  is set in the plymouthcfg module.

  Just check for plymouth existence separately in the grub module.

  Fixes ea1c8a0e5d
2018-06-14 06:58:24 -04:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Adriaan de Groot
cec7132d2c Swap + LUKS configuration.
Based on patches from crazy@frugalware.org and V3n3RiX.

(presumably) FIXES #730
2017-09-07 03:43:42 -04:00
Adriaan de Groot
ec265c073a One more have_dracut check (thanks to @crazy) 2017-09-05 06:09:50 -04:00
Adriaan de Groot
e13f7898ac Make check for dracut more readable 2017-09-04 06:42:51 -04:00
Alf Gaida
4eb0e70984 Fixed pep8 whining in module grubcfg
added myself to copyright
2017-06-04 13:57:49 +02:00
Teo Mrnjavac
9c4819592f Improve EFI configuration check in grubcfg. 2017-02-17 16:21:02 +01:00
Kevin Kofler
668284f5f1 [grubcfg] Compare integers to integers, not strings.
target_env_call returns an integer, so do not compare its result to the
string "0".
2016-10-21 00:19:22 +02:00
V3n3RiX
11c9e87fd0 dracut : unlock encrypted swap if exists (#267)
* dracut : unlock encrypted swap if exists
* only check for swap_outer_uuid if dracut exists
2016-10-20 17:00:15 +02:00
V3n3RiX
0bde162a9c Only write rd.luks.uuid if dracut is present and leave other initramfs generators clean (#266)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo

* only write rd.luks.uuid line if dracut is present, and leave other initramfs generators alone :D

* add missing = operator
2016-10-19 17:41:35 +02:00
V3n3RiX
7e74d48fb6 add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut… (#265)
* add rd.luks.uuid to GRUB_CMDLINE (fixes unbootable system with dracut --nohostonly, and doesn't affect any other initramfs generators)

* typo
2016-10-18 18:59:51 +02:00
Kevin Kofler
2573731cdb [grubcfg] Fix mismatched quoting and escaping.
If we use .replace("'", "'\\''") for escaping, we also need to use
single quotes, not double quotes.

This was broken by the port from '%' to format, which also randomly
changed quoting characters for no good reason. Changing the outer ones
does not matter, but \" or ' within a string is not the same thing!
2016-10-16 18:44:22 +02:00
Philip Müller
ea1c8a0e5d [plymouthcfg] add module to configure Plymouth (#256) 2016-09-12 07:59:17 +02:00
Teo Mrnjavac
db9454d199 Allow installing grub on an encrypted fs. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
5ddd0f523b Use luksMapperName as check. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
f861c13dad Improve LUKS check and use luksUuid instead of uuid. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
e1ee6e181a Proper check for luksMapperName key. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
105c8990eb Better list init. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
cc792d03a6 Add cryptdevice param to kernel line in grubcfg. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
10ce42f35c Use target_env calls in Python modules. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
a878d9763f Don't do grubcfg if we're not installing any boot loader. 2015-07-07 19:21:13 +02:00
Gormogon
beb911863b A little more PEP 2015-06-14 06:56:56 -04:00
Teo Mrnjavac
8625b8c5a9 Fix up regex in grubcfg to work with single quotes. 2015-04-02 20:25:41 +02:00
Teo Mrnjavac
debd4bc352 Fix regexp in grubcfg.
CAL-205 #comment Done some fixing, please retest when you can.
2015-04-02 13:24:47 +02:00
Teo Mrnjavac
a977b1ea40 Make sure we write the kernel config line anyway. 2015-04-02 12:53:24 +02:00
Teo Mrnjavac
41e7a9ae3c Preserve kernel parameters that aren't handled by grubcfg. 2015-04-02 12:53:24 +02:00
Teo Mrnjavac
5a24916fd0 Make which plymouth execute in chroot. 2015-03-26 15:53:50 +01:00
Rohan Garg
44105895f8 Use 'which' to find plymouth instead of hard coding /usr/bin
Debian ships plymouth in  /bin instead of /usr/bin, so we should use
'which' to figure out if it's installed.
2015-03-25 20:39:03 +01:00
Philip
06be842cfa [grubcfg] add python doc strings 2015-02-25 14:49:23 +01:00
Gormogon
113d9db7cb Python Better Docstrings 2015-02-25 14:49:23 +01:00
Gormogon
d8df3d7a59 [PEP 8] General Style Part 1 2015-02-18 09:37:03 -05:00
Gormogon
8e1480431a [PEP 263] Corrected Encoding Headers 2015-02-18 09:06:10 -05:00
Philip Müller
ca5132f13e [python modules] use str.format() 2015-02-17 14:38:30 +01:00
Teo Mrnjavac
01c3244396 Merge pull request #155 from calamares/fix-issue-128
grubcfg: Create /etc/default/grub if missing.
2014-11-19 17:20:06 +01:00
Kevin Kofler
462819060b branding: Add a dedicated bootloaderEntryName setting.
Use it in the bootloader and grubcfg modules instead of
shortProductName.
2014-11-19 16:50:15 +01:00
Kevin Kofler
1499963920 grubcfg: Create /etc/default/grub if missing.
Also adds a grubcfg.conf with the following settings:

* overwrite: If set to true, always creates /etc/default/grub from
  scratch even if the file already existed. If set to false, edits the
  existing file instead. The default is "false".

* defaults: Default entries to write to /etc/default/grub if it does not
  exist yet or if we are overwriting it. Note that in addition,
  GRUB_CMDLINE_LINUX_DEFAULT and GRUB_DISTRIBUTOR will always be
  written, with automatically detected values. The default in the code
  is empty. The shipped grubcfg.conf currently reproduces the default
  settings from the Fedora installer Anaconda.

Fixes #128.
2014-11-18 04:33:39 +01:00
Kevin Kofler
d5b95d79e5 grubcfg: Handle the case where expected lines are missing.
Check whether we actually had a GRUB_CMDLINE_LINUX_DEFAULT and a
GRUB_DISTRIBUTOR line, add any of them if it was missing.
2014-11-18 03:40:47 +01:00
Kevin Kofler
f58cca1bb2 grubcfg: Don't error if /etc/default is missing.
It is created later in the function.
2014-11-18 03:38:20 +01:00
Kevin Kofler
48eca95a26 grubcfg: Use shortProductName.
This is particularly useful if the full product name contains
"GNU/Linux" or "Linux", because e.g. "Generic GNU/Linux GNU/Linux" does
not make sense.
2014-11-16 05:18:11 +01:00
Kevin Kofler
cde7356f0d grubcfg: Quote the GRUB_DISTRIBUTOR value. 2014-11-16 04:58:00 +01:00
Kevin Kofler
8f5b0585cb grubcfg: Get the distribution name from the branding.
Remove the redundant "distributor" setting from grubcfg.conf (and the
entire grubcfg.conf file that has no settings left for now).
2014-11-16 04:33:27 +01:00