summaryrefslogtreecommitdiff
path: root/Makefile.util.def
Commit message (Collapse)AuthorAge
* Minimise writes to EFI variable storageColin Watson2019-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some UEFI firmware is easily provoked into running out of space in its variable storage. This is usually due to certain kernel drivers (e.g. pstore), but regardless of the cause it can cause grub-install to fail because it currently asks efibootmgr to delete and re-add entries, and the deletion often doesn't result in an immediate garbage collection. Writing variables frequently also increases wear on the NVRAM which may have limited write cycles. For these reasons, it's desirable to find a way to minimise writes while still allowing grub-install to ensure that a suitable boot entry exists. Unfortunately, efibootmgr doesn't offer an interface that would let grub-install do this. It doesn't in general make very much effort to minimise writes; it doesn't allow modifying an existing Boot* variable entry, except in certain limited ways; and current versions don't have a way to export the expected variable data so that grub-install can compare it to the current data. While it would be possible (and perhaps desirable?) to add at least some of this to efibootmgr, that would still leave the problem that there isn't a good upstreamable way for grub-install to guarantee that it has a new enough version of efibootmgr. In any case, it's cumbersome and slow for grub-install to have to fork efibootmgr to get things done. Fortunately, a few years ago Peter Jones helpfully factored out a substantial part of efibootmgr to the efivar and efiboot libraries, and so it's now possible to have grub-install use those directly. We still have to use some code from efibootmgr, but much less than would previously have been necessary. grub-install now reuses existing boot entries where possible, and avoids writing to variables when the new contents are the same as the old contents. In the common upgrade case where nothing needs to change, it no longer writes to NVRAM at all. It's also now slightly faster, since using libefivar is faster than forking efibootmgr. Fixes Debian bug #891434. Signed-off-by: Colin Watson <cjwatson@ubuntu.com> Bug-Debian: https://bugs.debian.org/891434 Forwarded: https://lists.gnu.org/archive/html/grub-devel/2019-03/msg00119.html Last-Update: 2019-03-23 Patch-Name: efi-variable-storage-minimise-writes.patch
* Output a menu entry for firmware setup on UEFI FastBoot systemsSteve Langasek2019-05-25
| | | | | | | Forwarded: no Last-Update: 2015-09-04 Patch-Name: uefi-firmware-setup.patch
* Restore grub-mkdevicemapColin Watson2019-05-25
| | | | | | | | | | | | | This is kind of a mess, requiring lots of OS-specific code to iterate over all possible devices. However, we use it in a number of scripts to discover devices and reimplementing those in terms of something else would be very complicated. Author: Dimitri John Ledkov <dimitri.ledkov@canonical.com> Forwarded: no Last-Update: 2019-05-25 Patch-Name: restore-mkdevicemap.patch
* gnulib: Upgrade Gnulib and switch to bootstrap toolColin Watson2019-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Upgrade Gnulib files to 20190105. It's much easier to maintain GRUB's use of portability support files from Gnulib when the process is automatic and driven by a single configuration file, rather than by maintainers occasionally running gnulib-tool and committing the result. Removing these automatically-copied files from revision control also removes the temptation to hack the output in ways that are difficult for future maintainers to follow. Gnulib includes a "bootstrap" program which is designed for this. The canonical way to bootstrap GRUB from revision control is now "./bootstrap", but "./autogen.sh" is still useful if you just want to generate the GRUB-specific parts of the build system. GRUB now requires Autoconf >= 2.63 and Automake >= 1.11, in line with Gnulib. Gnulib source code is now placed in grub-core/lib/gnulib/ (which should not be edited directly), and GRUB's patches are in grub-core/lib/gnulib-patches/. I've added a few notes to the developer manual on how to maintain this. Signed-off-by: Colin Watson <cjwatson@ubuntu.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
* btrfs: Add zstd support to grub btrfsNick Terrell2018-11-26
| | | | | | | | | | | | | | - Adds zstd support to the btrfs module. - Adds a test case for btrfs zstd support. - Changes top_srcdir to srcdir in the btrfs module's lzo include following comments from Daniel Kiper about the zstd include. Tested on Ubuntu-18.04 with a btrfs /boot partition with and without zstd compression. A test case was also added to the test suite that fails before the patch, and passes after. Signed-off-by: Nick Terrell <terrelln@fb.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
* build: Capitalise *freetype_* variablesColin Watson2018-09-27
| | | | | | | | Using FREETYPE_CFLAGS and FREETYPE_LIBS is more in line with the naming scheme used by pkg-config macros. Signed-off-by: Colin Watson <cjwatson@ubuntu.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
* fs: Add F2FS supportJaegeuk Kim2018-04-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "F2FS (Flash-Friendly File System) is flash-friendly file system which was merged into Linux kernel v3.8 in 2013. The motive for F2FS was to build a file system that from the start, takes into account the characteristics of NAND flash memory-based storage devices (such as solid-state disks, eMMC, and SD cards). F2FS was designed on a basis of a log-structured file system approach, which remedies some known issues of the older log structured file systems, such as the snowball effect of wandering trees and high cleaning overhead. In addition, since a NAND-based storage device shows different characteristics according to its internal geometry or flash memory management scheme (such as the Flash Translation Layer or FTL), it supports various parameters not only for configuring on-disk layout, but also for selecting allocation and cleaning algorithm.", quote by https://en.wikipedia.org/wiki/F2FS. The source codes for F2FS are available from: http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs.git http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git This patch has been integrated in OpenMandriva Lx 3. https://www.openmandriva.org/ Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Signed-off-by: Pete Batard <pete@akeo.ie> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
* Makefile.util.def: add $LIBINTL to grub-macbless flagsAndrei Borzenkov2016-03-13
| | | | | | Fixes compilation on OpenBSD 5.9. Reported by Jiri B <jirib@devio.us>
* mkimage.c: Split into separate files.Vladimir Serbinenko2016-02-27
| | | | | | | util/grub-mkimagexx.c is included in a special way into mkimage.c. Interoperation between defines makes this very tricky. Instead just have a clean interface and compile util/grub-mkimage*.c separately from mkimage.c
* Switch procfs to use archelp.Vladimir Serbinenko2015-07-27
| | | | This fixes handling of "." and "..".
* Make Makefile.util.def independent of platform.Vladimir Serbinenko2015-03-27
|
* Add test for syslinux converterVladimir Serbinenko2015-02-16
|
* tests: add test command file testsAndrei Borzenkov2015-01-30
| | | | | | This requires access to files in both host and grub image, so implementing as separate test unit instead of script test was more easy.
* add file filters testsAndrei Borzenkov2014-12-05
| | | | | | | | | | | | Tests file access with all filters enabled. It does it both for local and network access, due to regression in signature checking over network. This includes all files in distribution to not depend on existence of compression tools and gpg. Test preloads all required modules to avoid having to provide signatures for them. Still not implemented is file offset filter (is not available in grub script, needs extra module)
* * Makefile.util.def: Link grub-ofpathname with zfs libs.Mike Gilbert2014-01-18
|
* add BUILD_EXEEXT support to fix make clean on WindowsAndrey Borzenkov2014-01-18
| | | | | Add $(BUILD_EXEEXT) to ensure files are removed. Also add CLEANFILES where appropriate.
* * Makefile.util.def (grub-macbless): Change mansection to 8.Colin Watson2014-01-08
|
* Revert grub-file usage in grub-mkconfig.Vladimir Serbinenko2013-12-24
|
* Implement syslinux parser.Vladimir Serbinenko2013-12-18
|
* Implement better integration with Mac firmware.Vladimir Serbinenko2013-12-17
|
* Implement grub_file tool and use it to implement generating of configVladimir Serbinenko2013-12-17
| | | | in separate root.
* Implement windows flavour of EFI install routines.Vladimir Serbinenko2013-12-14
|
* Merge branch 'master' into leiflindholm/arm64Vladimir Serbinenko2013-11-25
|\ | | | | | | | | Conflicts: include/grub/util/install.h
| * * Makefile.util.def (grub-mkimage): AddColin Watson2013-11-19
| | | | | | | | | | | | | | | | grub-core/osdep/aros/config.c to extra_dist. * conf/Makefile.extra-dist (EXTRA_DIST): Add docs/autoiso.cfg, docs/osdetect.cfg, grub-core/gnulib-fix-null-deref.diff, grub-core/gnulib-fix-width.diff, grub-core/gnulib-no-abort.diff, and grub-core/gnulib-no-gets.diff.
| * Add automated filesystem checking based on scripts I've used now forVladimir Serbinenko2013-11-19
| | | | | | | | | | quite some time locally. Most of the test require root so they are skipped when run without necessarry privelegies.
* | ARM 64 port by Leif LindholmLeif Lindholm2013-11-16
|/
* Rewrite grub-install, grub-mkrescue, grub-mkstandalone and grub-mknetdirVladimir Serbinenko2013-11-16
| | | | | | the function of these files exceeds what can be sanely handled in shell in posix-comaptible way. Also writing it in C extends the functionality to non-UNIX-like OS and minimal environments.
* * configure.ac: Probe for linking format rather than guessing it basedVladimir Serbinenko2013-11-14
| | | | on target_os.
* Add grub-core/kern/disk_common.c to extra_distAndrey Borzenkov2013-10-27
|
* Move grub_disk_write out of kernel into disk.mod.Vladimir Serbinenko2013-10-27
|
* * tests/test_unset.in: New test.BVK Chaitanya2013-10-26
|
* * tests/test_sha512sum.in: New test.BVK Chaitanya2013-10-26
|
* * tests/date_unit_test.c: New test.Vladimir Serbinenko2013-10-26
|
* Split make_system_path_relative_to_its_root into separate fileVladimir 'phcoder' Serbinenko2013-10-19
| | | | | relpath.c from getroot.c as it's common between unix and haiku but otherwise haiku doesn't use any functions from unix getroot.c.
* * grub-core/osdep/unix/getroot.c: Move exec functions to ...Vladimir 'phcoder' Serbinenko2013-10-19
| | | | * osdep/unix/exec.c: ... here. Add few additional exec_* variants.
* * util/grub-render-label.c: Move backend part to ...Vladimir 'phcoder' Serbinenko2013-10-19
| | | | * util/render-label.c: ... here.
* * util/grub-render-label.c: Move backend part to ...Vladimir 'phcoder' Serbinenko2013-10-19
| | | | * util/render-label.c: ... here.
* * Makefile.util.def: Add util/setup.c to extra_dist.Vladimir 'phcoder' Serbinenko2013-10-19
|
* Added `tr' command support.BVK Chaitanya2013-10-17
| | | | | | | | * grub-core/commands/tr.c: New file. * grub-core/Makefile.core.def: Build rules for new module. * tests/grub_cmd_tr.in: New test. * Makefile.util.def: Build rules for new test.
* * util/grub-editenv.c (create_envblk_file): More from here ...Vladimir 'phcoder' Serbinenko2013-10-15
| | | | * util/editenv.c (grub_util_create_envblk_file): ... to here.
* * util/grub-mkimage.c: Move backend part to ...Vladimir 'phcoder' Serbinenko2013-10-15
| | | | * util/mkimage.c: ... here.
* Split out blocklist retrieving from setup.c toVladimir 'phcoder' Serbinenko2013-10-15
| | | | | | grub-core/osdep/blocklist.c and add windows implementation since generic version doesn't work on NTFS on Windows due to aggressive unflushable cache.
* Split grub-setup.c into frontend (grub-setup.c) and backend (setup.c)Vladimir 'phcoder' Serbinenko2013-10-15
| | | | files.
* * Makefile.util.def: Add osdep/init.c to grub-mount files.Andrey Borzenkov2013-10-14
|
* Move set_program_name and init_nls to host_init. On windowsVladimir 'phcoder' Serbinenko2013-10-13
| | | | fix in this fuction console and argument charset as well.
* * util/ieee1275/ofpath.c: Move to ...Vladimir 'phcoder' Serbinenko2013-10-08
| | | | | * grub-core/osdep/linux/ofpath.c: ..here, split stub into ... * grub-core/osdep/basic/ofpath.c: ..here.
* Move password-querying (util-version) routines to grub-core/osdep.Vladimir 'phcoder' Serbinenko2013-10-08
|
* Move sleep routines to grub-core/osdep.Vladimir 'phcoder' Serbinenko2013-10-08
|
* Move OS-dependent files to grub-core/osdep and document it.Vladimir 'phcoder' Serbinenko2013-10-08
|
* * util/raid.c: Fold into ...Vladimir 'phcoder' Serbinenko2013-10-08
| | | | * util/getroot_linux.c: ... here. Make all functions static.