Commit graph

2332 commits

Author SHA1 Message Date
BVK Chaitanya
0934d18466 2010-01-14 BVK Chaitanya <bvk.groups@gmail.com>
Unit testing framework for GRUB.

	* Makefile.in: Test framework build rules for 'make check'.
	* conf/tests.rmk: Build rules for individual tests and framework.

	* include/grub/test.h: Header file for whitebox tests.
	* tests/lib/functional_test.c: Framework support for whitebox
	functional tests.
	* tests/lib/test.c: Common whitebox testing code for unit and
	functional tests.
	* tests/lib/unit_test.c: Framework support for whitebox unit
	tests.

	* tests/util/grub-shell-tester.in: Support utility for grub-script
	tests.
	* tests/util/grub-shell.in: Utility to execute grub-script
	commands in a Qemu instance.

	* tests/example_functional_test.c: Example whitebox functional
	test.
	* tests/example_grub_script_test.in: Example grub-script test.
	* tests/example_scripted_test.in: Example scripted test.
	* tests/example_unit_test.c: Example whitebox unit test.
2010-01-14 19:15:21 +05:30
BVK Chaitanya
96f60752d1 merge trunk 2010-01-14 18:45:19 +05:30
BVK Chaitanya
2285d4642a use qemu-system-i386 instead of qemu 2010-01-14 18:39:12 +05:30
BVK Chaitanya
0b8891c276 removed unnecessary grub_test_* wrappers 2010-01-14 17:17:51 +05:30
Vladimir 'phcoder' Serbinenko
9c4ffeebf5 2010-01-14 Vladimir Serbinenko <phcoder@gmail.com>
* conf/i386-coreboot.rmk (multiboot_mod_SOURCES):
	Add loader/i386/multiboot_mbi.c.
	(multiboot2_mod_SOURCES): Likewise.
	* conf/i386-pc.rmk (multiboot_mod_SOURCES): Likewise.
	(multiboot2_mod_SOURCES): Likewise.
	* include/grub/multiboot.h (grub_multiboot_get_mbi_size): New proto.
	(grub_multiboot_make_mbi): Likewise.
	(grub_multiboot_free_mbi): Likewise.
	(grub_multiboot_init_mbi): Likewise.
	(grub_multiboot_add_module): Likewise.
	(grub_multiboot_set_bootdev): Likewise.
	* loader/i386/multiboot.c (mbi): Removed.
	(mbi_dest): Likewise.
	(alloc_mbi): New variable.
	(grub_multiboot_payload_size): Removed. All users updated.
	(grub_multiboot_pure_size): New variable.
	(grub_multiboot_boot): Use grub_multiboot_make_mbi.
	(grub_multiboot_unload): Use grub_multiboot_free_mbi.
	(grub_get_multiboot_mmap_len): Moved to loader/i386/multiboot_mbi.c.
	(grub_fill_multiboot_mmap): Likewise.
	(grub_multiboot_get_bootdev): Likewise.
	(grub_multiboot): Use multiboot_mbi functions.
	* loader/i386/multiboot_mbi.c: New file.
2010-01-14 12:40:55 +01:00
Vladimir 'phcoder' Serbinenko
05847c24e1 Merge mainline into abstractmbi 2010-01-14 12:34:23 +01:00
Vladimir 'phcoder' Serbinenko
17383dfe96 2010-01-13 Vladimir Serbinenko <phcoder@gmail.com>
* kern/efi/init.c (grub_efi_fini): Don't call grub_efi_mm_fini as
	it would result in module crash.
2010-01-13 22:53:12 +01:00
Vladimir 'phcoder' Serbinenko
c1f2882010 2010-01-13 Vladimir Serbinenko <phcoder@gmail.com>
* term/ieee1275/ofconsole.c (grub_ofconsole_putchar): Handle '\r'.
	(grub_ofconsole_getwh): Split to ...
	(grub_ofconsole_getwh): ... this.
	(grub_ofconsole_dimensions): ...and this.
	(grub_ofconsole_init_output): Call grub_ofconsole_dimensions.
2010-01-13 20:43:48 +01:00
Robert Millan
58655a160b 2010-01-13 Robert Millan <rmh.grub@aybabtu.com>
* util/mkisofs/rock.c (generate_rock_ridge_attributes): Fix a typo.
2010-01-13 19:10:57 +00:00
Vladimir 'phcoder' Serbinenko
b16ff4662e Small cleanup 2010-01-12 19:47:02 +01:00
Vladimir 'phcoder' Serbinenko
10891398fd 2010-01-12 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/pc/multiboot2.c: Removed stalled file.
2010-01-12 17:56:05 +01:00
Vladimir 'phcoder' Serbinenko
0b8a223cb1 2010-01-12 Vladimir Serbinenko <phcoder@gmail.com>
* util/grub-mkpasswd-pbkdf2.c (main): Use grub_util_init_nls.
	Reported by: Grégoire Sutre
2010-01-12 13:36:44 +01:00
BVK Chaitanya
4d362fde58 build only functional tests on make 2010-01-12 15:49:40 +05:30
BVK Chaitanya
528aeaeabb merge trunk 2010-01-12 11:02:49 +05:30
BVK Chaitanya
afafb37e9b added boot device selection to grub-shell 2010-01-12 10:54:37 +05:30
BVK Chaitanya
c5431d4029 build tests on make, but run on make check 2010-01-12 10:16:17 +05:30
BVK Chaitanya
350285caae removed unnecessary EXPORT_* macro usage 2010-01-12 09:23:24 +05:30
BVK Chaitanya
afdc9ad006 fixed an error message 2010-01-12 09:00:55 +05:30
Robert Millan
92ab12b092 2010-01-11 Robert Millan <rmh.grub@aybabtu.com>
* util/misc.c (canonicalize_file_name): New function.
	(make_system_path_relative_to_its_root): Use canonicalize_file_name()
	instead of realpath().
2010-01-11 14:55:20 +00:00
Colin Watson
a788afb626 2010-01-11 Colin Watson <cjwatson@ubuntu.com>
* util/grub-install.in (usage): Clarify meaning of --root-directory,
	and make it clearer that it's optional.  Based on confusion
	witnessed on IRC.
2010-01-11 12:00:57 +00:00
Vladimir 'phcoder' Serbinenko
ffa8e3d277 2010-01-10 Vladimir Serbinenko <phcoder@gmail.com>
* term/i386/pc/vga_text.c (inc_y): Fix off-by-one error which resulted
	in premature implicit newline.
2010-01-10 22:35:46 +01:00
Vladimir 'phcoder' Serbinenko
e9060a9d3b 2010-01-10 Vladimir Serbinenko <phcoder@gmail.com>
* normal/cmdline.c (grub_cmdline_get): Fix off-by-one error
	which resulted in garbled command line at the end of screen.
2010-01-10 22:34:25 +01:00
Vladimir 'phcoder' Serbinenko
cd0514794a MAnipulate mbi in abstract way 2010-01-10 18:58:18 +01:00
Robert Millan
f0d0c0b726 2010-01-10 Robert Millan <rmh.grub@aybabtu.com>
* loader/i386/ieee1275/linux.c (grub_linux_boot): Rework video position
	initialization with similar approach as with other Linux loaders.
2010-01-10 01:43:42 +00:00
Robert Millan
0e60bae74e 2010-01-10 Robert Millan <rmh.grub@aybabtu.com>
Fix i386-ieee1275 build.
	
	* loader/i386/ieee1275/linux.c (grub_linux_boot): Use grub_term_width()
	and grub_term_height() for video_{width,height} initialization.
2010-01-10 01:10:39 +00:00
Robert Millan
cdec4d3193 2010-01-09 Robert Millan <rmh.grub@aybabtu.com>
Fix grub-emu build.
	
	* conf/any-emu.rmk (grub_emu_SOURCES): Remove `kern/reader.c'.
2010-01-10 00:47:19 +00:00
Robert Millan
cdb3f378d6 Merge multiterm branch 2010-01-09 22:49:18 +00:00
Robert Millan
822873a7da Eliminate grub_term_register_{input,output}_active. Default terminals are
automatically activated because they're the only terminal that has been loaded.

This solution is temporary.  In the future, all terminals should auto-enable,
but this is non-trivial due to resource conflict, and it shouldn't prevent
merge in trunk.
2010-01-09 23:42:17 +01:00
Robert Millan
75cc5b682e Merge from trunk 2010-01-09 23:22:48 +01:00
Robert Millan
1a064917fe 2010-01-09 Robert Millan <rmh.grub@aybabtu.com>
Make loader output a bit more user-friendly.
	
	* util/grub.d/10_hurd.in: Print message indicating that GNU Mach
	is being loaded.  Likewise for the Hurd.
	
	* util/grub.d/10_kfreebsd.in (kfreebsd_entry): Print message indicating
	that kernel of FreeBSD ${version} is being loaded.
	
	* loader/i386/linux.c (grub_cmd_linux): Move debug info to
	grub_dprintf().
	(grub_cmd_initrd): Likewise.
	* util/grub.d/10_linux.in (linux_entry): Print message indicating
	that Linux ${version} is being loaded.  Likewise for initrd.
2010-01-09 22:02:00 +00:00
carles
5ce0a83a15 2010-01-09 Carles Pina i Estany <carles@pina.cat>
* gettext/gettext.c (GRUB_MOD_INIT): Gettextizze.
2010-01-09 20:20:27 +00:00
carles
809bbfebfe 2010-01-08 Carles Pina i Estany <carles@pina.cat>
* loader/efi/appleloader.c: Include `<grub/i18n.h>'.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/efi/chainloader.c: Include `<grub/i18n.h>'.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/i386/efi/linux.c: Include `<grub/i18n.h>'.
	(grub_cmd_linux): Capitalise Linux.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/i386/ieee1275/linux.c: Include `<grub/i18n.h>'.
	(grub_cmd_linux): Capitalise Linux.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/i386/linux.c: Include `<grub/i18n.h>'.
	(grub_cmd_linux): Capitalise Linux.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/i386/pc/chainloader.c: Include `<grub/i18n.h>'.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/i386/pc/linux.c: Include `<grub/i18n.h>'.
	(grub_cmd_linux): Capitalise Linux.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/i386/xnu.c: Include `<grub/i18n.h>'.
	(grub_cpu_xnu_init): Gettextizze.
	* loader/multiboot_loader.c: Include `<grub/i18n.h>'.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/powerpc/ieee1275/linux.c: Include `<grub/i18n.h>'.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/sparc64/ieee1275/linux.c: Include `<grub/i18n.h>'.
	(grub_linux_load64): Capitalise Linux.
	(GRUB_MOD_INIT): Gettextizze.
	* loader/xnu.c: Include `<grub/i18n.h>'.
	(GRUB_MOD_INIT): Gettextizze.
	* po/POTFILES: Add `loader/efi/appleloader.c',
	`loader/efi/chainloader.c', `loader/i386/efi/linux.c',
	`loader/i386/ieee1275/linux.c', `loader/i386/linux.c',
	`loader/i386/pc/chainloader.c', `loader/i386/pc/linux.c',
	`loader/i386/xnu.c', `loader/multiboot_loader.c',
	`loader/powerpc/ieee1275/linux.c', `loader/sparc64/ieee1275/linux.c'
	and `loader/xnu.c'.
2010-01-08 21:35:38 +00:00
BVK Chaitanya
5cc318eb35 replaced __func__ with simpler __FUNCTION__ macro 2010-01-08 22:06:46 +05:30
BVK Chaitanya
1afc27d06b added changelog file 2010-01-08 21:28:57 +05:30
Robert Millan
b394b2cab8 2010-01-08 Robert Millan <rmh.grub@aybabtu.com>
* src/mkisofs.c: Remove `ifdef linux' portability kludge.
2010-01-08 15:22:40 +00:00
Robert Millan
cd943b7587 2010-01-08 Robert Millan <rmh.mkisofs@aybabtu.com>
* util/mkisofs/defaults.h (APPID_DEFAULT): Redefine using PACKAGE_NAME.
	(SYSTEM_ID_DEFAULT): Set to "GNU" unconditionally.
	* util/mkisofs/mkisofs.c (main): Readjust --version output.
2010-01-08 15:19:42 +00:00
BVK Chaitanya
169b1cd2d8 added functional tests to make-check 2010-01-08 16:35:32 +05:30
BVK Chaitanya
6fc804ffbb unit testing framework 2010-01-08 15:19:10 +05:30
Vladimir 'phcoder' Serbinenko
1dcb8d30a9 ChangeLog 2010-01-07 22:22:24 +01:00
Vladimir 'phcoder' Serbinenko
3b88cbbda5 Warning fixes 2010-01-07 22:22:11 +01:00
Vladimir 'phcoder' Serbinenko
fc054c9cb8 Various cleanups 2010-01-07 22:18:59 +01:00
Robert Millan
bc8b32b3ec 2010-01-07 Robert Millan <rmh.grub@aybabtu.com>
Reset Multiboot 2 support.  New loader implements the draft in
	/branches/multiboot2 and shares as much code as possible with the
	production Multiboot 1 implementation.
	
	* loader/ieee1275/multiboot2.c: Remove file.  Update all users.
	* loader/multiboot2.c: Likewise.
	* loader/i386/multiboot_helper.S: Likewise.
	* include/multiboot2.h: Replace with latest version from the draft
	in /branches/multiboot2.
	
	* conf/i386-coreboot.rmk (multiboot_mod_SOURCES): Remove
	`loader/i386/multiboot_helper.S', `loader/i386/pc/multiboot2.c'
	and `loader/multiboot2.c'.
	(pkglib_MODULES): Add `multiboot2.mod'.
	(multiboot2_mod_SOURCES): New variable.
	(multiboot2_mod_LDFLAGS): Likewise.
	(multiboot2_mod_CFLAGS): Likewise.  Define `GRUB_USE_MULTIBOOT2'.
	
	* conf/i386-pc.rmk: Likewise.
	
	* conf/powerpc-ieee1275.rmk (pkglib_MODULES): Remove `multiboot.mod'.
	(multiboot_mod_SOURCES): Remove variable.
	(multiboot_mod_LDFLAGS): Likewise.
	(multiboot_mod_CFLAGS): Likewise.
	
	* include/grub/multiboot.h [GRUB_USE_MULTIBOOT2]: Include
	`<multiboot2.h>' instead of `<multiboot.h>'.
	[GRUB_USE_MULTIBOOT2] (MULTIBOOT_BOOTLOADER_MAGIC)
	(MULTIBOOT_HEADER_MAGIC): New macros.
	
	* loader/multiboot_loader.c (module_version_status): Remove variable.
	(find_multi_boot2_header): Remove function.
	(grub_cmd_multiboot_loader): Remove Multiboot 2 / Multiboot 1 selection
	logic.  Always check for the Multiboot version we're compiling for.
	(grub_cmd_module_loader): Likewise.
	[GRUB_USE_MULTIBOOT2] (GRUB_MOD_INIT(multiboot)): Register `multiboot2'
	command instead of `multiboot'.
2010-01-07 21:05:25 +00:00
Vladimir 'phcoder' Serbinenko
44fcb2bc59 merge mainline into multiterm 2010-01-07 21:34:43 +01:00
Robert Millan
5d2c52b8ca 2010-01-07 Robert Millan <rmh.grub@aybabtu.com>
* include/multiboot.h (MULTIBOOT_UNSUPPORTED): Moved from here ...
	* loader/i386/multiboot.c (UNSUPPORTED_FLAGS): ... to here.  Update
	all users.
2010-01-07 19:55:16 +00:00
Robert Millan
53108d92ba 2010-01-07 Robert Millan <rmh.grub@aybabtu.com>
2010-01-07  Vladimir Serbinenko  <phcoder@gmail.com>
	
	Fix breakage introduced with previous commit.
	
	* normal/dyncmd.c (read_command_list): Avoid unregistering kernel
	commands.
	* normal/handler.c (read_handler_list): Revert part of previous commit
	affecting this file.
	* normal/main.c (read_lists): Move read_handler_list() call back to ...
	(grub_normal_execute): ... here.
2010-01-07 16:53:29 +00:00
Robert Millan
5a1ed29ebd Simplify terminal check in loader/i386/efi/linux.c and loader/i386/linux.c
Revert loader/i386/ieee1275/linux.c change
2010-01-07 01:21:32 +00:00
Robert Millan
c1d2f1d81b Merge from trunk 2010-01-07 00:58:54 +00:00
Robert Millan
e2e936b2f2 2010-01-07 Robert Millan <rmh.grub@aybabtu.com>
Merge prefix-redefinition-fix branch.
	
	* normal/autofs.c (read_fs_list): Make function capable of being
	run multiple times, gracefuly replacing the previous data
	structures.
	* normal/dyncmd.c (read_command_list): Likewise.
	* normal/handler.c (read_handler_list): Likewise.
	* normal/main.c (read_lists): New function.  Calls all the
	list reading functions.
	(grub_normal_execute): Use read_lists() instead of calling all
	list reading functions explicitly.  Register read_lists() as a
	variable hook attached to ${prefix}.
2010-01-07 00:52:56 +00:00
Vladimir 'phcoder' Serbinenko
607a3701db 2010-01-07 Vladimir Serbinenko <phcoder@gmail.com>
Merge crypto branch.

	* Makefile.in (pkglib_DATA):  Add crypto.lst.
	(crypto.lst): New target.
	* commands/hashsum.c: New file.
	* commands/password.c (check_password): Use grub_crypto_memcmp.
	* commands/password_pbkdf2.c: New file.
	* commands/xnu_uuid.c: Remove MD5. Use GRUB_MD_MD5.
	* conf/any-emu.rmk (grub_emu_SOURCES): Add lib/crypto.c,
	normal/crypto.c and lib/libgcrypt-grub/cipher/md5.c.
	(grub_emu_CFLAGS): Add -Wno-missing-field-initializers -Wno-error
	-I$(srcdir)/lib/libgcrypt_wrap.
	* conf/common.rmk (normal_mod_SOURCES): Add normal/crypto.c.
	(pkglib_MODULES): Add crypto.mod, hashsum.mod, pbkdf2.mod and
	password_pbkdf2.mod.
	(crypto_mod_SOURCES): New variable.
	(crypto_mod_CFLAGS): Likewise.
	(crypto_mod_LDFLAGS): Likewise.
	(hashsum_mod_SOURCES): New variable.
	(hashsum_mod_CFLAGS): Likewise.
	(hashsum_mod_LDFLAGS): Likewise.
	(pbkdf2_mod_SOURCES): New variable.
	(pbkdf2_mod_CFLAGS): Likewise.
	(pbkdf2_mod_LDFLAGS): Likewise.
	(password_pbkdf2_mod_SOURCES): New variable.
	(password_pbkdf2_mod_CFLAGS): Likewise.
	(password_pbkdf2_mod_LDFLAGS): Likewise.
	(bin_UTILITIES): Add grub-mkpasswd-pbkdf2.
	(grub_mkpasswd_pbkdf2_SOURCES): New variable.
	(grub_mkpasswd_pbkdf2_CFLAGS): Likewise.
	Include conf/gcry.rmk.
	* include/grub/auth.h: Rewritten.
	* include/grub/crypto.h: New file.
	* include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_LUKS_ID.
	* include/grub/normal.h (read_crypto_list): New prototype.
	* lib/crypto.c: New file.
	* lib/libgcrypt_wrap/cipher_wrap.h: Likewise.
	* lib/pbkdf2.c: Likewise.
	* normal/auth.c (grub_auth_strcmp): Removed.
	(grub_iswordseparator): Likewise.
	(grub_auth_strword): Likewise.
	(is_authenticated): Use grub_strword.
	(grub_auth_check_authentication): Use grub_strcmp, grub_password_get
	and grub_strword. Pass entered password to authentication callback.
	* normal/crypto.c: New file.
	* normal/main.c: Call read_crypto_list.
	* util/grub-mkpasswd-pbkdf2.c: New file.
	* util/import_gcry.py: Generate crypto.lst. Add hash blocklen.
2010-01-07 01:13:01 +01:00
Vladimir 'phcoder' Serbinenko
42841caa75 2010-01-06 Vladimir Serbinenko <phcoder@gmail.com>
Fix descent and ascent calculation.

	* util/grub-mkfont.c (grub_font_info): New fields 'asce' and 'max_y'.
	(options): New option "asce".
	(usage): Likewise.
	(add_char): Ignore invalid glyphs for descent calculation.
	Calculate ascent from actual content.
	(print_glyphs): Use 'asce'.
	(write_font): Likewise. Allow ascent override.
	(main): Handle "asce" option.
2010-01-06 23:25:57 +01:00