Vladimir Serbinenko
323de05ba2
Support GRUB_DISABLE_SUBMENU config.
...
Inspired by patch from Prarit Bhargava.
2013-11-04 00:15:31 +01:00
Grégoire Sutre
67811a6fd4
* util/grub-mkconfig.in: Replace $0 with $self.
...
* util/grub-reboot.in: Likewise.
* util/grub-set-default.in: Likewise.
2013-10-26 20:05:29 +02:00
Colin Watson
c137aea04b
* util/grub-mkconfig.in: Fix detection of Emacs autosave files.
2013-08-11 16:03:48 +02:00
Colin Watson
608b647ad9
* util/grub-mkconfig.in: Accept GRUB_TERMINAL_OUTPUT=vga_text.
...
Fixes Savannah bug #37821 .
2012-12-28 07:21:17 +00:00
Colin Watson
fd49ceb35c
Apply program name transformations at build-time rather than at
...
run-time. Fixes Debian bug #696465 .
* acinclude.m4 (grub_TRANSFORM): New macro.
* configure.ac: Create output variables with transformed names for
most programs.
* util/bash-completion.d/grub-completion.bash.in: Use
pre-transformed variables for program names.
* util/grub-install.in: Likewise.
* util/grub-kbdcomp.in: Likewise.
* util/grub-mkconfig.in: Likewise.
* util/grub-mkconfig_lib.in: Likewise.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub-mkstandalone.in: Likewise.
* util/grub-reboot.in: Likewise.
* util/grub-set-default.in: Likewise.
* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
* tests/util/grub-shell-tester.in: Remove unused assignment.
* tests/util/grub-shell.in: Likewise.
* util/grub.d/00_header.in: Likewise.
2012-12-28 06:57:17 +00:00
Vladimir 'phcoder' Serbinenko
9f9d3f69f4
Fix --help formatting.
...
* util/grub-mkconfig_lib.in (print_option_help): New function.
(grub_fmt): Likewise.
* util/grub-install.in: Use print_option_help and grub_fmt.
* util/grub-kbdcomp.in: Likewise.
* util/grub-mkconfig.in: Likewise.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub-mkstandalone.in: Likewise.
* util/grub-reboot.in: Likewise.
* util/grub-set-default.in: Likewise.
* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
2012-04-07 19:49:25 +02:00
Vladimir 'phcoder' Serbinenko
d95862ef75
* util/grub-install.in: Unify "option requires an argument" message
...
with similar messages in other files.
* util/grub-mkconfig.in: Likewise.
2012-03-05 16:37:29 +01:00
Vladimir 'phcoder' Serbinenko
0cdc126ca2
Use submenus in grub-mkconfig.
...
* util/grub-mkconfig.in: Define GRUB_ACTUAL_DEFAULT.
* util/grub-mkconfig_lib.in (grub_quote): New function.
(gettext_printf): Use gettext and not gettext_quoted to fix several
messages.
* util/grub.d/10_hurd.in: Use submenus.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/10_netbsd.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.
* util/grub.d/30_os-prober.in: Likewise.
* util/grub.d/10_illumos.in: Add missing quoting.
* util/grub.d/10_windows.in: Likewise.
2012-03-04 22:18:33 +01:00
Vladimir 'phcoder' Serbinenko
805a8dccc8
* grub-core/commands/gptsync.c: Fix typographic quoting.
...
* grub-core/commands/ieee1275/suspend.c: Likewise.
* grub-core/commands/parttool.c: Likewise.
* grub-core/commands/search_wrap.c: Likewise.
* grub-core/commands/videoinfo.c: Likewise.
* grub-core/gfxmenu/gui_label.c: Likewise.
* grub-core/hello/hello.c: Likewise.
* grub-core/kern/emu/main.c: Likewise.
* grub-core/net/net.c: Likewise.
* grub-core/normal/menu.c: Likewise.
* grub-core/normal/menu_text.c: Likewise.
* grub-core/normal/misc.c: Likewise.
* util/grub-editenv.c: Likewise.
* util/grub-install.in: Likewise.
* util/grub-kbdcomp.in: Likewise.
* util/grub-mkconfig.in: Likewise.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub-mkstandalone.in: Likewise.
* util/grub-reboot.in: Likewise.
* util/grub-set-default.in: Likewise.
* util/grub-setup.c: Likewise.
* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
2012-03-03 13:05:08 +01:00
Vladimir 'phcoder' Serbinenko
e7d2559bc1
* grub-core/commands/i386/pc/drivemap.c: Add TRANSLATORS comments.
...
* grub-core/commands/lsmmap.c: Likewise.
* grub-core/commands/minicmd.c: Likewise.
* grub-core/commands/mips/loongson/lsspd.c: Likewise.
* grub-core/commands/regexp.c: Likewise.
* grub-core/gdb/gdb.c: Likewise.
* grub-core/term/gfxterm.c: Likewise.
* util/grub-mkconfig.in: Likewise.
* util/grub-mkfont.c: Likewise.
* util/grub-mklayout.c: Likewise.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub.d/30_os-prober.in: Likewise.
2012-03-02 15:09:10 +01:00
Vladimir 'phcoder' Serbinenko
9cc3ee5c2b
* util/grub-install.in: Add missing gettext init.
...
* util/grub-kbdcomp.in: Likewise.
* util/grub-mkconfig.in: Likewise.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub-mkstandalone.in: Likewise.
* util/grub-reboot.in: Likewise.
* util/grub-set-default.in: Likewise.
* util/grub.d/00_header.in: Likewise.
* util/grub.d/10_hurd.in: Likewise.
* util/grub.d/10_windows.in: Likewise.
* util/grub.d/30_os-prober.in: Likewise.
* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
2012-03-01 00:40:02 +01:00
Vladimir 'phcoder' Serbinenko
2311c5caa9
Replace PACKAGE_TARNAME with PACKAGE in pkglibdir and pkgdatadir.
2012-02-27 11:04:50 +01:00
Vladimir 'phcoder' Serbinenko
fc847818fc
Don't transform PACKAGE_TARNAME following a discussion on autoconf
...
mailing list.
* util/grub-install.in: Don't transform PACKAGE_TARNAME.
* util/grub-kbdcomp.in: Likewise.
* util/grub-mkconfig.in: Likewise.
* util/grub-mkconfig_lib.in: Likewise.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub-mkstandalone.in: Likewise.
* util/grub-reboot.in: Likewise.
* util/grub-set-default.in: Likewise.
* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
2012-02-26 18:37:54 +01:00
Vladimir 'phcoder' Serbinenko
47454da510
Remove GRUB_PREFIX.
...
* util/grub-mkconfig.in: Remove GRUB_PREFIX.
* util/grub.d/00_header.in: Compute prefix in the only place it's still
used for backward compatibility.
2012-02-26 18:21:31 +01:00
Vladimir 'phcoder' Serbinenko
274416e82f
* grub-core/font/font.c (grub_font_load): Add support for default
...
path for fonts ($prefix/fonts).
* grub-core/kern/corecmd.c (grub_core_cmd_insmod): Unify condition
for checking if string is a path.
* grub-core/normal/main.c (features): Add feature_default_font_path.
* util/grub-mkconfig.in: Skip mangling of GRUB_FONT into GRUB_FONT_PATH.
* util/grub.d/00_header.in: Use default directory if possible.
* util/grub-install.in: Install unicode.pf2.
2012-02-24 11:18:06 +01:00
Samuel Thibault
ac96441c81
2012-02-19 Samuel Thibault <samuel.thibault@ens-lyon.org>
...
* util/grub-mkconfig.in (GRUB_CMDLINE_GNUMACH): Export variable.
* util/grub.d/10_hurd.in: Include GRUB_CMDLINE_GNUMACH in gnumach
command line.
* docs/grub.texi (Simple configuration): Document
GRUB_CMDLINE_GNUMACH.
2012-02-19 17:06:00 +01:00
Grégoire Sutre
c8d9ead677
Source grub-mkconfig_lib from the build directory at build time.
2012-02-10 18:16:27 +01:00
Vladimir 'phcoder' Serbinenko
9c4b5c13e6
Improve gettext support. Stylistic fixes and error handling fixes while
...
on it.
2012-02-08 19:26:01 +01:00
Mark Wooding
055f856f71
* util/grub-mkconfig.in: Use umask rather than chmod to create
...
grub.cfg.new to avoid insecure grub.cfg.
2012-02-03 12:15:53 +01:00
Vladimir 'phcoder' Serbinenko
a32d5c712d
* util/grub-mkstandalone.in: Fix help messages. Gettextize.
...
* util/grub-install.in: Gettextize.
* util/grub-mkconfig.in: Likewise.
* util/grub-mkconfig_lib.in: Replace gettext with echo -n and not echo
if not available.
(grub_warn): Gettextize.
* util/grub-mknetdir.in: Gettextize.
* util/grub-mkrescue.in: Likewise.
* util/grub-mkstandalone.in: Likewise.
* util/grub-reboot.in: Likewise.
* util/grub-set-default.in: Likewise.
* util/grub.d/00_header.in: Likewise.
* util/grub.d/10_hurd.in: Likewise.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/10_netbsd.in: Likewise.
* util/grub.d/10_windows.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.
* util/grub.d/30_os-prober.in: Likewise.
* po/POTFILES-shell.in: Regenerate.
2012-02-03 11:42:22 +01:00
Vladimir 'phcoder' Serbinenko
48b391e9ab
Handle newer autotools. Add some missing quotes while on it.
...
* Makefile.am (pkglib_DATA): Remove update-grub_lib.
(pkglib_DATA): Move grub-mkconfig_lib from here ...
(pkgdata_DATA): ... here.
* Makefile.util.def (update-grub_lib): Removed.
* conf/Makefile.common (pkglib_DATA): Removed.
(pkglib_SCRIPTS): Likewise.
(pkgdata_DATA): New variable.
* tests/util/grub-shell-tester.in: Replace pkglib with pkgdata where
needed.
Add missing quotes.
Remove unused variable while on it.
* tests/util/grub-shell.in: Likewise.
* util/grub-install.in: Likewise.
* util/grub-mkconfig.in: Likewise.
* util/grub-mknetdir.in: Likewise.
* util/grub-mkrescue.in: Likewise.
* util/grub-mkstandalone.in: Likewise.
* util/grub.d/00_header.in: Likewise.
* util/grub.d/10_hurd.in: Likewise.
* util/grub.d/10_illumos.in: Likewise.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/10_netbsd.in: Likewise.
* util/grub.d/10_windows.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.
* util/grub.d/30_os-prober.in: Likewise.
* util/update-grub_lib.in: Removed.
2012-01-24 13:17:36 +01:00
Vladimir 'phcoder' Serbinenko
17785932df
merge mainline into hints
2011-12-23 18:49:00 +01:00
Vladimir 'phcoder' Serbinenko
6babad5e59
Initial integration of hints
2011-12-23 18:19:16 +01:00
Vladimir Serbinenko
a251b71915
LUKS and GELI support.
...
* Makefile.util.def (libgrubkern.a): Add grub-core/lib/crypto.c,
grub-core/disk/luks.c, grub-core/disk/geli.c,
grub-core/disk/cryptodisk.c, grub-core/disk/AFSplitter.c,
grub-core/lib/pbkdf2.c, grub-core/commands/extcmd.c,
grub-core/lib/arg.c.
(libgrubmods.a): Remove gcrypts cflags and cppflags.
Remove grub-core/commands/extcmd.c, grub-core/lib/arg.c,
grub-core/lib/crypto.c, grub-core/lib/libgcrypt-grub/cipher/sha512.c,
grub-core/lib/libgcrypt-grub/cipher/crc.c and grub-core/lib/pbkdf2.c.
(grub-bin2h): Add libgcry.a.
(grub-mkimage): Likewise.
(grub-mkrelpath): Likewise.
(grub-script-check): Likewise.
(grub-editenv): Likewise.
(grub-mkpasswd-pbkdf2): Likewise.
(grub-pe2elf): Likewise.
(grub-fstest): Likewise.
(grub-mkfont): Likewise.
(grub-mkdevicemap): Likewise.
(grub-probe): Likewise.
(grub-ofpath): Likewise.
(grub-mklayout): Likewise.
(example_unit_test): Likewise.
(grub-menulst2cfg): Likewise.
* autogen.sh (UTIL_DEFS): Add Makefile.utilgcry.def.
* grub-core/Makefile.core.def (cryptodisk): New module.
(luks): Likewise.
(geli): Likewise.
* grub-core/disk/AFSplitter.c: New file.
* grub-core/disk/cryptodisk.c: Likewise.
* grub-core/disk/geli.c: Likewise.
* grub-core/disk/luks.c: Likewise.
* grub-core/kern/emu/getroot.c (get_dm_uuid): New function based on
grub_util_is_lvm.
(grub_util_get_dm_abstraction): New function.
(grub_util_follow_gpart_up): Likewise.
(grub_util_get_geom_abstraction): Likewise.
(grub_util_get_dev_abstraction): Use new functions.
(grub_util_pull_device): Pull GELI and LUKS.
(grub_util_get_grub_dev): Handle LUKS and GELI.
* grub-core/kern/emu/hostdisk.c (grub_util_get_fd_sectors): New function.
(grub_util_biosdisk_open): Use grub_util_get_fd_sectors.
(follow_geom_up): Removed.
(grub_util_fd_seek): New function.
(open_device): Use grub_util_fd_seek.
(nread): Rename to ..
(grub_util_fd_read): ... this. All users updated.
* grub-core/lib/crypto.c (grub_crypto_ecb_decrypt): A better prototype.
(grub_crypto_cbc_decrypt): Likewise.
(grub_crypto_hmac_write): Likewise.
(grub_crypto_hmac_buffer): Likewise.
(grub_password_get): Extend to util.
* include/grub/crypto.h (gcry_cipher_spec) [GRUB_UTIL]:
New member modname.
(gcry_md_spec) [GRUB_UTIL]: Likewise.
* include/grub/cryptodisk.h: New file.
* include/grub/disk.h (grub_disk_dev_id): Rename LUKS to CRYPTODISK.
* include/grub/emu/getroot.h (grub_dev_abstraction_types): Add
LUKS and GELI.
(grub_util_follow_gpart_up): New proto.
* include/grub/emu/hostdisk.h (grub_util_fd_seek): Likewise.
(grub_util_fd_read): Likewise.
(grub_cryptodisk_cheat_mount): Likewise.
(grub_util_cryptodisk_print_uuid): Likewise.
(grub_util_get_fd_sectors): Likewise.
* util/grub-fstest.c (mount_crypt): New var.
(fstest): Mount crypto if requested.
(options): New option -C.
(argp_parser): Parse -C.
(main): Init and fini gcry.
* util/grub-install.in: Support cryptodisk install.
* util/grub-mkconfig.in: Export GRUB_ENABLE_CRYPTODISK.
* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Support
cryptodisk.
(prepare_grub_to_access_device): Likewise.
* util/grub-mkpasswd-pbkdf2.c (main): Use grub_password_get.
* util/grub-probe.c (probe_partmap): Support cryptodisk UUID probe.
(probe_cryptodisk_uuid): New function.
(probe_abstraction): Likewise.
(probe): Use new functions.
* util/import_gcry.py: Create Makefile.utilgcry.def.
Add modname member.
Also-By: Michael Gorven <michael@gorven.za.net>
Also-By: Clemens Fruhwirth <clemens@endorphin.org>
2011-07-07 23:52:58 +02:00
Grégoire Sutre
77546584e1
Use @PACKAGE@ instead of hardcoded name when sourcing grub-mkconfig_lib.
2011-07-02 21:22:19 +02:00
Colin Watson
f35fa3a664
* util/grub-mkconfig.in: Export GRUB_CMDLINE_LINUX_XEN_REPLACE and
...
GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT.
Reported by: Pawel Tecza.
2011-05-20 11:21:36 +01:00
Vladimir 'phcoder' Serbinenko
20a409405b
Integrate geli into autoconfiguration system
2011-04-25 14:52:07 +02:00
Vladimir 'phcoder' Serbinenko
8306591ff3
support LUKS in shell libraries
2011-04-23 00:13:56 +02:00
Martin Zuther
6d1fa41fb4
* util/grub-mkconfig.in: Ignore emacsen backup.
2011-04-08 11:53:17 +02:00
Vladimir 'phcoder' Serbinenko
bc5dd0b9ca
* util/grub-mkconfig.in: Fix quoting.
2010-11-13 16:27:29 +01:00
Vladimir 'phcoder' Serbinenko
4417aae6b7
* util/grub-mkconfig.in (grub_script_check): New variable.
...
Use grub_script_check instead of grub-script-check.
Reported by: Barry Jackson.
2010-11-13 16:00:39 +01:00
Robert Millan
6c9e4c0c89
2010-11-05 Robert Millan <rmh@gnu.org>
...
* util/grub-mkconfig.in: Remove gfxterm.mod probe (no longer
needed).
2010-11-05 22:56:14 +01:00
Robert Millan
219b35646a
2010-10-12 Robert Millan <rmh@gnu.org>
...
* util/grub-mkconfig.in: Merge `GRUB_DISABLE_LINUX_RECOVERY' and
`GRUB_DISABLE_NETBSD_RECOVERY' into a single `GRUB_DISABLE_RECOVERY'
variable. All references updated.
* util/grub.d/10_kfreebsd.in: Support recovery boot entries.
2010-10-12 14:47:04 +02:00
BVK Chaitanya
2f4e8053e0
* util/grub-mkconfig.in: Check the config script for syntax errors
...
before saving.
2010-09-19 08:49:25 +05:30
BVK Chaitanya
7431d7a49c
merge with mainline
2010-09-19 08:45:38 +05:30
Vladimir 'phcoder' Serbinenko
eaf41b2592
* grub-core/commands/i386/cmostest.c (+parse_args): New function.
...
(grub_cmd_cmosclean): Likewise.
(GRUB_MOD_INIT): Register command cmosclean.
* util/grub-mkconfig.in: Export GRUB_BUTTON_CMOS_CLEAN.
* util/grub.d/00_header.in: Handle GRUB_BUTTON_CMOS_CLEAN.
2010-09-19 01:15:44 +02:00
Vladimir 'phcoder' Serbinenko
3352800b99
Remove readability checks (too many false negatives).
...
* util/grub-install.in: Remove readability checks.
* util/grub-mkconfig.in: Likewise.
* util/grub.d/10_hurd.in: Likewise.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Revert to old
way.
2010-09-13 22:18:03 +02:00
Colin Watson
b6a690eeb8
* Makefile.util.def (libgrub.a): Move grub-core/kern/emu/hostfs.c
...
and grub-core/disk/host.c to ...
(grub-fstest): ... here. Having the host disk implementation
present confuses grub-probe and other utility programs.
* util/grub-mkconfig.in: Only verify readability of grub.cfg.new
when writing to a file, not when writing to stdout.
2010-09-09 17:17:45 +01:00
Robert Millan
6b8e78aee3
2010-09-08 Robert Millan <rmh@gnu.org>
...
* util/grub-mkconfig_lib.in (is_path_readable_by_grub): Improve
with (optional) parameters to specify device and relative path.
* util/grub-install.in: Use is_path_readable_by_grub() to
verify readability of a few critical files.
* util/grub-mkconfig.in: Use is_path_readable_by_grub() to
verify readability of grub.cfg.new.
2010-09-08 23:35:53 +02:00
Yves Blusseau
b9fe6ea2ea
* util/grub-mkconfig.in: Use new variable.
2010-09-08 17:21:32 +02:00
Robert Millan
99fd620d5a
2010-09-08 Robert Millan <rmh@gnu.org>
...
* util/grub-mkconfig.in: Pass `--device ${GRUB_DEVICE}' when
initializing `GRUB_FS'.
2010-09-08 14:29:32 +02:00
bvk.groups@gmail.com
75d8c629fc
syntax check before overwriting
2010-09-07 11:18:53 +05:30
Colin Watson
1246efeb8b
* util/grub-mkconfig.in: Use 'set -e' rather than '#! /bin/sh -e',
...
to avoid accidents when debugging with 'sh -x'.
* util/grub-mkrescue.in: Likewise.
* util/grub.d/00_header.in: Likewise.
* util/grub.d/10_hurd.in: Likewise.
* util/grub.d/10_kfreebsd.in: Likewise.
* util/grub.d/10_linux.in: Likewise.
* util/grub.d/10_netbsd.in: Likewise.
* util/grub.d/10_windows.in: Likewise.
* util/grub.d/20_linux_xen.in: Likewise.
* util/grub.d/30_os-prober.in: Likewise.
* util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
2010-06-29 16:20:49 +01:00
Robert Millan
d500ed127e
2010-06-28 Robert Millan <rmh@gnu.org>
...
* util/grub-mkconfig.in: Export `GRUB_BADRAM' variable.
* util/grub.d/00_header.in: When `GRUB_BADRAM' is set, issue badram
command using ${GRUB_BADRAM} as parameter.
2010-06-28 23:52:03 +02:00
Vladimir 'phcoder' Serbinenko
412e09f355
XEN with Linux grub-mkconfig support.
...
* conf/common.rmk (grub-mkconfig_SCRIPTS) [linux]: Add 20_linux_xen.
* util/grub-mkconfig.in: Export GRUB_CMDLINE_XEN and
GRUB_CMDLINE_XEN_DEFAULT.
* util/grub.d/20_linux_xen.in: New file.
2010-06-28 02:39:49 +02:00
Colin Watson
e803a2b793
merge mainline
2010-06-17 16:14:08 +01:00
Colin Watson
e4311a9f0f
* util/grub-mkconfig.in: Stop setting GRUB_VIDEO_BACKEND. Make it
...
available as a user override instead. Replace the gfxterm backend
check with a check that ${GRUB_PREFIX}/video.lst is non-empty.
* util/grub.d/00_header.in (load_video): New generated function.
Call it before loading gfxterm rather than loading
${GRUB_VIDEO_BACKEND}.
* util/grub.d/10_linux.in (linux_entry): Call load_video.
* util/grub.d/30_os-prober.in (osx_entry): Likewise.
* docs/grub.texi (Simple configuration): Document
GRUB_VIDEO_BACKEND.
2010-06-17 16:01:17 +01:00
Colin Watson
044e2e60be
* util/grub-mkconfig.in: Ignore non-option arguments, for
...
compatibility with older versions (before 2010-06-12) which did the
same. In particular, this makes it easier to ship an update-grub
wrapper which is compatible with that used with GRUB Legacy (Debian
bug #586056 ).
2010-06-16 12:51:26 +01:00
Colin Watson
8d70754eed
* util/grub-mkconfig.in: Remove vestige of old argument parsing that
...
left this script non-functional.
2010-06-14 15:34:47 +01:00
Colin Watson
601c84fd16
* util/grub-mkconfig.in: Capitalise and export GRUB_PREFIX.
...
* util/grub.d/00_header.in: Use GRUB_PREFIX rather than computing it
again.
* util/grub.d/10_linux.in (linux_entry): Load all video drivers,
which may be needed to allow the loader to program modes for the
kernel.
2010-06-12 15:06:53 +01:00