Commit Graph

168 Commits

Author SHA1 Message Date
Lyndon Brown 69dc8c21cb bootloaders: tweak default splash text to avoid overlap
the default grub config has a quirk of using the syslinux splash when
present, which as a sidenote i believe is because only the syslinux script
has the code for converting an SVG (i've not researched to confirm).

the problem is that the default splash is such, with the text listing
package versions used, that this overlaps with the menu title in grub.

i've tweaked the "built on" and package details text to reduce its size
(bumped the line-height up slightly though) to avoid the overlap.

this was a pain in the *** to get done. inkscape likes to crash at the
slightest little thing like clicking on interface controls; each time it
saves it seems to swap a bunch of stuff in the file which can make a
hugely messy diff, i had to save, close, open, change, undo, and save
again, just to get a sain diff; and numerous times testing different sizes
and such in actual builds (rather than separate conversions) some of the
package detail lines would for some unknown reason decide to end up on the
same line as another, wth...

anyway, i've finally managed to get a new revision successfully created
and it seems bug free wrt. that same line issue to me, both converting
outside of live-build (in my sid host), and within a buster build. the size
of the text changed seems closer to the size of the actual menu entries
(there's no need for it to be bigger), and now is nicely clear of the menu
title.

Gbp-Dch: Short
2020-05-02 02:09:38 +01:00
Lyndon Brown d4a1e110ed syslinux: updated SVG for splash
opening the file in inkscape resulted in a dialog explaining that inkscape
used to work on a 90 DPI basis but switched to 96 DPI for better
compatibility reasons, and wanted to convert the file.

this is simply the result of it having done the conversion.

it advised that for documents not intended to be printed that there should
be no noticeable difference. i checked the output and it seems identical
to before. i tried to look at the actual diff, but it's a lot of noise,
most of which is just reordering, and i gave up, since the output looks
identical i'm not going to worry.

Gbp-Dch: Ignore
2020-05-02 00:02:31 +01:00
Lyndon Brown 1892f97ce6 grub2: fix missed vga= consistency adjustment
Gbp-Dch: Ignore
2020-05-01 22:36:10 +01:00
Lyndon Brown 578dbee516 bootloaders: change 'Advanced options' to 'Utilities'
more fitting now that we've moved the advanced installer entries
out to a different submenu, leaving just memtest (and HDT on
syslinux).

the advanced.cfg file is also renamed to utilities.cfg in the syslinux
case, but in a backwards compatible way of moving the user advanced.cfg
file over the new one, if the user provides a file with the old name.
alternatively we could just leave the old name in place, but that would be
a little odd.

Gbp-Dch: Short
2020-05-01 12:38:04 +02:00
Lyndon Brown d22c1f177d grub2: fix vga= consistency
- most entries used vga=788 rather than vga=normal (which are equivalent)
 - the syslinux menu uses 788 exclusively
 - so do the official install discs

Gbp-Dch: Short
2020-05-01 12:37:36 +02:00
Lyndon Brown 375ff465e5 grub2: tiny label consistency tweak
as per style in official Debian install discs

Gbp-Dch: Ignore
2020-05-01 12:05:35 +02:00
johnraff 0e5d0483e5 Replace 'which' with 'command -v' to test for the existance of an executable
This is considered to be more robust.

Two instances remain:

scripts/build/chroot_archives, line 257:
if [ "${LB_APT}" = "aptitude" ] && [ ! $(Chroot chroot "which aptitude") ]
The command is run inside a chroot where the environment might be special,
and would need further testing.

manpages/Makefile, line 42:
@if [ ! -x "$$(which po4a 2>/dev/null)" ]; \
I am insufficiently familiar with makefile syntax to edit this.
2020-05-01 09:59:11 +00:00
Lyndon Brown 82f0acb091 grub2|loopback: fix theme issues for submenus
also enables greater flexibility for users to override more aspects of
theme separate from menu entries, and similarly the initial config details
separate from the menu entries. (with the recent change to merge user files
with the defaults rather than replace them, users can pick which of these
individual components they wish to customise.

identical to change as sent in to Kali and accepted by Raphaël.

Gbp-Dch: Short
2020-04-30 07:36:51 +01:00
Lyndon Brown 96ade65e65 grub2: fix lost pre-prepared files detail
partly lost in some adjustments that were made to the submitted work,
which was focused on restoring the 'start installer' entry.

there is no need for dynamic setting of these two `source` imports in the
default file, in fact user modifications should also use the fixed import
commands in future.

note that the old placeholders however remain replaced, which inject
precisely this string, for backwards compatibility.

Gbp-Dch: Ignore
2020-04-30 07:10:08 +01:00
jnqnfe 24c2b3e119 syslinux: deduplicate common files
there are several files of which identical duplicate copies are held in:
 - share/bootloaders/extlinux
 - share/bootloaders/pxelinux
 - share/bootloaders/isolinux
 - share/bootloaders/syslinux

it is a pain to maintain this from a development standpoint, having to
copy modified config files into the other directories each time changes
are made and mistakes have been made before due to this.

this creates a new folder share/bootloaders/syslinux_common and moves them
to this new directory.

it also expands the binary_syslinux stage to use it, with it now
constructing the installed set of bootloader files as follows:
 1. copy {LB_DIR}/bootloaders/syslinux_common
 2. copy {LB_DIR}/bootloaders/{syslinux|isolinux|extlinux|pxelinux} on top
 3. copy config/bootloaders/syslinux_common on top
 4. copy config/bootloaders/{syslinux|isolinux|extlinux|pxelinux} on top

note, to explain part of the binary_syslinux change, instead of just
copying the correct bootloader folder full of the files, we now make the
target bootloader specific directory, then copy the contents of source
directories into it.

Gbp-Dch: Short
2020-04-24 18:50:37 +01:00
Raphaël Hertzog 34a72caf49 Synchronize syslinux menu structure with the grub-pc one
* Use same menu labels
* Use same hotkeys
* Get rid of a nested menu that is not present in grub
* Add "menu title" statement to hide the caret of the hotkey (^)
2020-04-24 18:57:03 +02:00
Lyndon Brown 47b0a623dd syslinux: fix lack of top level install option
0bf9d2d390 expanded the set of install
options, whilst also moving them all to a submenu.

it has since been raised that this is not actually what is wanted, that
having an entry for the most common install option is wanted at the top
level, like currently with grub2.

this adds such an entry.

Gbp-Dch: Short
2020-04-24 15:38:55 +00:00
Lyndon Brown 41ca745b6c syslinux: fix missing hotkeys
for some reason the syslinux folder one had these but not the others.
probably a result of having four separate copies of the files and this
part of the past change to expand the install menus failed to be
duplicated.

Gbp-Dch: Short
2020-04-24 14:43:20 +00:00
Lyndon Brown 49794f118f syslinux: use linux/initrd placeholders
enabling improved flexibility for any possible future
path changes.

Gbp-Dch: Ignore
2020-04-23 15:51:57 +00:00
Raphaël Hertzog c3a6e65438 Add updated directives to enable cryptsetup support in initrd
This fixes cryptsetup modules not being installed into initrd with warning:
> cryptsetup: WARNING: The initramfs image may not contain cryptsetup binaries
>     nor crypto modules. If that's on purpose, you may want to uninstall the
>     'cryptsetup-initramfs' package in order to disable the cryptsetup initramfs
>     integration and avoid this warning.

Thanks-to: Marcel Partap
2020-04-23 17:47:12 +02:00
Raphaël Hertzog aa8f8323f7 Fix indentation 2020-04-23 17:46:47 +02:00
Lyndon Brown 46b0d85021 grub2|loopback: avoid empty submenu
don't include the advanced menu at all if it's only entry - memtest - is
not included (you just get a menu entry that does nothing, which may
confused users into thinking that something is broken, as opposed to
showing an empty submenu as i expected).

Gbp-Dch: Short
2020-04-23 10:18:43 +02:00
Lyndon Brown 077d005a84 grub2|loopback: extract memtest menu entry creation to config file
backwards compatibility:

 1. the new file will be included alongside any user custom config
 2. rather than replace MEMTEST with an actual config entry, we replace it
    with a line to import the content of the new file, and thus will work
    just as before.

thus no backwards compatible breakage

Gbp-Dch: Short
2020-04-23 09:59:56 +02:00
Lyndon Brown 69093d9e3b grub2|loopback: extract install menu entries to config files
backwards compatibility:

 1. the new install.cfg and install_start.cfg files (chosen
    automatically from the install_*gui.cfg and install_*test.cfg
    files) will be included alongside any user custom config.
 2. the placeholders are now replaced with lines importing these files

thus everything will work just as before, i.e. no backwards
compatibility breakage.

Gbp-Dch: Short
2020-04-23 09:59:56 +02:00
Lyndon Brown 457e800c94 grub2|loopback: move advanced installer entries under own submenu
this takes a step forward in moving towards the same updated layout as
with syslinux; here we get:

 - <live entries>
 - Start installer
 - Advanced install options...
    - <full set of install options>
 - Advanced options...
    - Memory Diagnostic Tool (memtest86[+])

note that this only affects the default menu. custom configs are not
affected by this change.

further steps to complete the move to the updated layout will follow
later.

"Advanced options..." should perhaps be renamed later.

Gbp-Dch: Short
2020-04-23 09:59:51 +02:00
Lyndon Brown 04a0ffb2f4 grub2|loopback: add hotkey for advanced options submenu (a) 2020-04-23 09:12:52 +02:00
Lyndon Brown 40a076bf35 grub2|loopback: use '@' bookended placeholders
...for consistency with syslinux config placeholders and improved
clarity of what text is a placeholder.

the old placeholders without the bookends are still replaced for
user configs for backwards compatibility.

the new ones are little used just at the moment but are expected to
become used much more in later commits.

Gbp-Dch: Short
2020-04-23 09:12:24 +02:00
Lyndon Brown 8775c8075c syslinux: properly fix shortcut caret appearing in menu entries
this reverts commit 0cef87ffca though
retaining the 'advanced options' menu entry using a label rather than a
title.

despite having done a lot of testing back in 2015 with my bootloader
improvements, i notice now that in fact the syslinux caret fix has an
undesired side effect of modifying the title displayed above the menus. it
does not help that the text embedded into the splash overlaps with this
menu title; perhaps this explains why i missed this problem back in 2015.

purely reverting the implemented fix solves this title problem, but
restores the caret problem to the advanced options menu (in menu.cfg);
however that menu was using a caret in a title entry, unlike everywhere
else where they are only used with labels, which must have been the
original source of the problem all along. ensuring that this menu uses a
label instead of a title in this reversion leaves everything working
correctly afaict.

Gbp-Dch: Ignore
2020-03-25 01:25:50 +00:00
jnqnfe a25b77e099 bootloaders: remove old "video=vesa:ywrap,mtrr" kernel param, as done in d-i
d-i removed this in commit 0917b2dde3ff73a204d27dd2f2fffc8a41175ddd

Note: There was inconsistency between grub and syslinux in use of this, with
syslinux not having it on graphical rescue and auto modes while grub entries
did. The patch to fix that has been dropped since we're removing it everywhere
anyway.

(#395040)

Gbp-Dch: Short
2020-03-22 19:43:56 +00:00
jnqnfe 38af959aa5 syslinux: use more dynamic memtest menu config file
Fixes the following
 - Correct version (memtest86/memtest86+) shown instead of fixed 'memtest86+' text
 - Ensure correct directory path always used by using replaceable placeholder

Gbp-Dch: Short
2020-03-16 23:08:26 +00:00
jnqnfe 31fa6abd36 syslinux: add memtest menu entry only if including memtest 2020-03-16 23:08:26 +00:00
jnqnfe 7ffd2288d9 syslinux: add install menu entries only if including installer 2020-03-16 23:08:26 +00:00
jnqnfe 0bf9d2d390 syslinux: expand list of install options 2020-03-16 23:08:26 +00:00
jnqnfe 24aab15d2a bootloaders: add install with speech synthesis menu entries
Following the official Debian install disks

Gbp-Dch: Short
2020-03-16 20:33:18 +00:00
Lyndon Brown eeedf10de5 syslinux: fix duplicate shortcut use 2020-03-16 17:49:43 +00:00
jnqnfe 396b1727ad syslinux: changed 'build' to 'built' in splash
Appears before a timestamp which reflects when the image was built, so 'built' is more correct than 'build' here.

Gbp-Dch: Short
2020-03-16 17:48:59 +00:00
jnqnfe 0cef87ffca syslinux: fix shortcut caret appearing in menu entries
also fixes the mistaken assignment of the same shortcut for both
entries in live.cfg.in

Gbp-Dch: Short
2020-03-16 17:48:51 +00:00
jnqnfe 7d4fc93205 grub2/loopback: fix highlight readability
Current splash makes it very difficult to read menu entries.
Black as a background color is actually interpreted as transparent,
so switching to something else so the highlighted menu entry can be
read more easily.

Gbp-Dch: Short
2020-03-16 16:29:00 +00:00
Luca Boccassi 015e6b65f3 Revert "Test for executables: replace 'which' with more robust 'command -v'"
This reverts commit 2d9ab1f7f8.

Causes test failure due to bashism.
2020-03-12 12:32:26 +00:00
johnraff 2d9ab1f7f8 Test for executables: replace 'which' with more robust 'command -v'
Instances of:
if [ $(which <command> ]
have been replaced with:
if command -v <command> >/dev/null
which is considered to be more robust in a range of environments.

scripts/build/chroot_archives: line 259:
	if [ "${LB_APT}" = "aptitude" ] && [ ! $(Chroot chroot "which aptitude") ]
has been left untouched because the chroot might require a more complex command
which would need more testing.

manpages/Makefile: line 42:
	@if [ ! -x "$$(which po4a 2>/dev/null)" ]; \
has been left untouched because I am not sufficiently familiar with makefiles.
2020-03-12 10:35:57 +00:00
Lyndon Brown 7a4a9f94b8 amend copyright & licensing blocks
Current versions of the project files are built upon versions published
and licensed by Daniel Baumann, but are modified copies of those files and
thus need to be marked as such per licensing requirements (afaik he did
not pass along ownership / licensing rights to anyone when he left the
project). We should also be careful to not be misrepresenting such
modified copies as being attributed to Daniel.

Adding a new copyright line referring to "The Debian Live team" should
suffice for this.

The authorship block in man pages has also similarly been updated.

Notes:
 - tweaked a copy of daniel copyright lines stating 2014 instead of 2015.
   both of these cases were in files that i had personally introduced in
   some of my past merged commits that moved some code around. i don't know
   why they stated 2014.
 - binary_onie was introduced in 2018, so that has a 2018 date instead of
   2016 unlike the rest.
 - 'efi-image' is a 3rd-party (Canonical Ltd) work that we bundle, but it
   has been modified by 674794a8f4 and
   36a3ba7634 so I similarly added a
   debian live copyright line.
 - 'grub-cpmodules' is similar. it was only changed by the indentation fix
   of 36a3ba7634 but modification is
   modification, and this does help cover any possible future changes that
   might be made.
2020-03-11 13:51:19 +00:00
Lyndon Brown 9faf9bcbed hooks: run bin without explicit path
this got lost in reworking 7ee59d408e

Gbp-Dch: Short
2020-03-10 13:59:01 +00:00
Lyndon Brown 7ee59d408e fix consistency in binary execution and existance checking
- prefer using `which` over hard coded paths
 - it is redundant to check that the bin pointed to the return of
   `which` exists and is executable, `which` already gives us
   assurance of that if it returns true!
 - the redirection of output (`2>/dev/null`) seems to be
   unnecessary from my testing.

the instances relatnig to fdisk and losetup in functions/defaults.sh have
been left as they are since they get executed by `lb config` which can run
without sudo elevation unlike `lb build` and in that case `which` would
fail to find these binaries resulting in error.

this also fixes a bug showing an error for missing debootstrap - this tool
requires sudo privileges to run and thus is not found via a none elevated
which search.

Gbp-Dch: Short
Closes: #952927
2020-03-09 10:51:11 +00:00
Lyndon Brown 2f5ae873b0 bootloaders: fix ignoring LB_DEBIAN_INSTALLER_GUI in menu creation
LB_DEBIAN_INSTALLER_GUI defines whether or not to provide the graphical
installer. the installer_debian-installer script pays attention to it and
does not download it if not wanted. the actual bootloaders however
(both grub2/loopback and syslinux) ignore it, which leaves broken and
unwanted menu entries. this fixes that.

Gbp-Dch: Short
Closes: #952890
2020-03-05 11:48:04 +00:00
Raphaël Hertzog 2127283494 Standardize on having the GUI installation first in boot menus
debian-cd changed it that way, we already have it that way in EFI
boot, let's be consistent.
2020-01-23 16:47:04 +01:00
Matthijs Kooijman f62a6f9dea Remove ldlinux.c32 for extlinux and syslinux
Since syslinux 5.00, this file is installed into the disk root by the
extlinux and syslinux installer commands. For pxelinux and isolinux,
these files still need to be added manually. This is documented at:

https://wiki.syslinux.org/wiki/index.php?title=Library_modules#All_Syslinux_variants_need_an_additional_ldlinux_module

Keeping these unused files around is probably only confusing, so better
to remove them.
2019-05-30 16:14:51 +02:00
Raphaël Hertzog 2fe6afe460 Initialize /etc/default/locale with LANG=C.UTF-8
That way we always have a valid UTF-8 locale even when we don't have
the "locales" (or "locales-all") package installed.
2017-08-29 12:26:33 +02:00
Raphaël Hertzog d18d0dfe2a Add keyboard shortcut on the "Advanced options" syslinux menu entry
Thanks to Daniel Reichelt <debian@nachtgeist.net> for the patch.

Closes: #864386
2017-06-09 13:41:13 +02:00
Raphaël Hertzog 50b6a29523 Cleanup binary_loopback_cfg and offer more freedom in overriding the default grub-pc configuration. 2016-12-14 12:33:07 +01:00
Raphaël Hertzog f7bb86fd58 Clean up grub configuration code
* Use only long kernel names.
* Put advanced options in a submenu.
* Use distro-agnostic labels.
* Don't generate entries with kernel version when we have a single
  version.
2016-12-02 23:04:13 +01:00
Raphaël Hertzog fb0d4e2a18 Use a grub theme that integrates reasonably well with the current background picture. 2016-12-02 14:50:21 +01:00
Raphaël Hertzog 674794a8f4 Try to reuse /isolinux/splash.png in default grub configuration. 2016-11-28 20:58:18 +01:00
Raphaël Hertzog 1ccb416230 Add symlinks for libgpl.c32 and libmenu.c32
They are required for the "Hardware Detection Tool (HDT)" menu entry that
live-build adds in the advanced menu.

Sponsored-by: Offensive Security
2016-01-08 09:18:35 +01:00
Daniel Baumann 50794b1de1 Splitting non-live specific hooks into their own subdirectory within hooks. 2015-05-20 08:19:56 +02:00
Daniel Baumann cf68abf417 Renaming grub helper to grub-legacy for consistency. 2015-05-04 20:36:20 +02:00