Removed upstreamed changes to libsdl1.2
This commit is contained in:
parent
3c3441b157
commit
5d581ad75e
5 changed files with 157 additions and 88 deletions
|
|
@ -1,8 +1,16 @@
|
||||||
From c584bacaad58facb9124df26f98fff2542f7237a Mon Sep 17 00:00:00 2001
|
From a8f9e3dcece89c179e89414abe89985c7ab1e03f Mon Sep 17 00:00:00 2001
|
||||||
From: John Lane <john@lane.uk.net>
|
From: John Lane <john@lane.uk.net>
|
||||||
Date: Fri, 26 Jun 2015 22:09:52 +0100
|
Date: Fri, 26 Jun 2015 22:09:52 +0100
|
||||||
Subject: [PATCH 4/5] Cryptomount support plain dm-crypt
|
Subject: [PATCH 4/7] Cryptomount support plain dm-crypt
|
||||||
|
|
||||||
|
Patch modified to take into account a change to context
|
||||||
|
brought about by c93d3e694713b8230fa2cf88414fabe005b56782
|
||||||
|
|
||||||
|
grub-core/disk/cryptodisk.c
|
||||||
|
142c142
|
||||||
|
< if (disklast)
|
||||||
|
---
|
||||||
|
>
|
||||||
---
|
---
|
||||||
grub-core/disk/cryptodisk.c | 298 +++++++++++++++++++++++++++++++++++++++++++-
|
grub-core/disk/cryptodisk.c | 298 +++++++++++++++++++++++++++++++++++++++++++-
|
||||||
grub-core/disk/luks.c | 195 +----------------------------
|
grub-core/disk/luks.c | 195 +----------------------------
|
||||||
|
|
@ -10,10 +18,10 @@ Subject: [PATCH 4/5] Cryptomount support plain dm-crypt
|
||||||
3 files changed, 310 insertions(+), 191 deletions(-)
|
3 files changed, 310 insertions(+), 191 deletions(-)
|
||||||
|
|
||||||
diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c
|
diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c
|
||||||
index a27e70c..cd5cfc9 100644
|
index 5261af547..7f656f75c 100644
|
||||||
--- a/grub-core/disk/cryptodisk.c
|
--- a/grub-core/disk/cryptodisk.c
|
||||||
+++ b/grub-core/disk/cryptodisk.c
|
+++ b/grub-core/disk/cryptodisk.c
|
||||||
@@ -44,6 +44,12 @@ static const struct grub_arg_option options[] =
|
@@ -45,6 +45,12 @@ static const struct grub_arg_option options[] =
|
||||||
{"keyfile", 'k', 0, N_("Key file"), 0, ARG_TYPE_STRING},
|
{"keyfile", 'k', 0, N_("Key file"), 0, ARG_TYPE_STRING},
|
||||||
{"keyfile-offset", 'O', 0, N_("Key file offset (bytes)"), 0, ARG_TYPE_INT},
|
{"keyfile-offset", 'O', 0, N_("Key file offset (bytes)"), 0, ARG_TYPE_INT},
|
||||||
{"keyfile-size", 'S', 0, N_("Key file data size (bytes)"), 0, ARG_TYPE_INT},
|
{"keyfile-size", 'S', 0, N_("Key file data size (bytes)"), 0, ARG_TYPE_INT},
|
||||||
|
|
@ -26,7 +34,7 @@ index a27e70c..cd5cfc9 100644
|
||||||
{0, 0, 0, 0, 0, 0}
|
{0, 0, 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -927,6 +933,48 @@ grub_cryptodisk_scan_device (const char *name,
|
@@ -933,6 +939,48 @@ grub_cryptodisk_scan_device (const char *name,
|
||||||
return have_it && search_uuid ? 1 : 0;
|
return have_it && search_uuid ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -75,11 +83,11 @@ index a27e70c..cd5cfc9 100644
|
||||||
static grub_err_t
|
static grub_err_t
|
||||||
grub_cmd_cryptomount (grub_extcmd_context_t ctxt, int argc, char **args)
|
grub_cmd_cryptomount (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
{
|
{
|
||||||
@@ -1085,7 +1085,63 @@
|
@@ -1060,7 +1108,63 @@ grub_cmd_cryptomount (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
return GRUB_ERR_NONE;
|
return GRUB_ERR_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
- err = grub_cryptodisk_scan_device_real (args[0], disk);
|
- err = grub_cryptodisk_scan_device_real (diskname, disk);
|
||||||
+ if (state[7].set) /* Plain mode */
|
+ if (state[7].set) /* Plain mode */
|
||||||
+ {
|
+ {
|
||||||
+ char *cipher;
|
+ char *cipher;
|
||||||
|
|
@ -92,7 +100,7 @@ index a27e70c..cd5cfc9 100644
|
||||||
+ offset = state[10].set ? grub_strtoul (state[10].arg, 0, 0) : 0;
|
+ offset = state[10].set ? grub_strtoul (state[10].arg, 0, 0) : 0;
|
||||||
+ size = state[11].set ? grub_strtoul (state[11].arg, 0, 0) : 0;
|
+ size = state[11].set ? grub_strtoul (state[11].arg, 0, 0) : 0;
|
||||||
+ key_size = ( state[12].set ? grub_strtoul (state[12].arg, 0, 0) \
|
+ key_size = ( state[12].set ? grub_strtoul (state[12].arg, 0, 0) \
|
||||||
+ : GRUB_CRYPTODISK_PLAIN_KEYSIZE ) / 8;
|
+ : GRUB_CRYPTODISK_PLAIN_KEYSIZE ) / 8;
|
||||||
+
|
+
|
||||||
+ /* no strtok, do it manually */
|
+ /* no strtok, do it manually */
|
||||||
+ mode = grub_strchr(cipher,'-');
|
+ mode = grub_strchr(cipher,'-');
|
||||||
|
|
@ -104,16 +112,16 @@ index a27e70c..cd5cfc9 100644
|
||||||
+ dev = grub_cryptodisk_create (disk, NULL, cipher, mode, digest);
|
+ dev = grub_cryptodisk_create (disk, NULL, cipher, mode, digest);
|
||||||
+
|
+
|
||||||
+ dev->offset = offset;
|
+ dev->offset = offset;
|
||||||
+ if (size) dev->total_length = size;
|
+ if (size) dev->total_length = size;
|
||||||
+
|
+
|
||||||
+ if (key)
|
+ if (key)
|
||||||
+ {
|
+ {
|
||||||
+ err = grub_cryptodisk_setkey (dev, key, key_size);
|
+ err = grub_cryptodisk_setkey (dev, key, key_size);
|
||||||
+ if (err)
|
+ if (err)
|
||||||
+ return err;
|
+ return err;
|
||||||
+ }
|
+ }
|
||||||
+ else
|
+ else
|
||||||
+ {
|
+ {
|
||||||
+ char passphrase[GRUB_CRYPTODISK_MAX_PASSPHRASE] = "";
|
+ char passphrase[GRUB_CRYPTODISK_MAX_PASSPHRASE] = "";
|
||||||
+
|
+
|
||||||
+ grub_printf_ (N_("Enter passphrase for %s: "), diskname);
|
+ grub_printf_ (N_("Enter passphrase for %s: "), diskname);
|
||||||
|
|
@ -126,7 +134,7 @@ index a27e70c..cd5cfc9 100644
|
||||||
+ grub_crypto_cipher_close (dev->cipher);
|
+ grub_crypto_cipher_close (dev->cipher);
|
||||||
+ return err;
|
+ return err;
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ grub_cryptodisk_insert (dev, diskname, disk);
|
+ grub_cryptodisk_insert (dev, diskname, disk);
|
||||||
+
|
+
|
||||||
|
|
@ -139,8 +147,8 @@ index a27e70c..cd5cfc9 100644
|
||||||
+ err = grub_cryptodisk_scan_device_real (diskname, disk);
|
+ err = grub_cryptodisk_scan_device_real (diskname, disk);
|
||||||
|
|
||||||
grub_disk_close (disk);
|
grub_disk_close (disk);
|
||||||
|
if (disklast)
|
||||||
@@ -1177,13 +1281,203 @@ struct grub_procfs_entry luks_script =
|
@@ -1193,13 +1297,203 @@ struct grub_procfs_entry luks_script =
|
||||||
.get_contents = luks_script_get
|
.get_contents = luks_script_get
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -346,7 +354,7 @@ index a27e70c..cd5cfc9 100644
|
||||||
grub_procfs_register ("luks_script", &luks_script);
|
grub_procfs_register ("luks_script", &luks_script);
|
||||||
}
|
}
|
||||||
diff --git a/grub-core/disk/luks.c b/grub-core/disk/luks.c
|
diff --git a/grub-core/disk/luks.c b/grub-core/disk/luks.c
|
||||||
index 11e437e..4ebe21b 100644
|
index 11e437edb..4ebe21b4e 100644
|
||||||
--- a/grub-core/disk/luks.c
|
--- a/grub-core/disk/luks.c
|
||||||
+++ b/grub-core/disk/luks.c
|
+++ b/grub-core/disk/luks.c
|
||||||
@@ -30,8 +30,6 @@
|
@@ -30,8 +30,6 @@
|
||||||
|
|
@ -391,7 +399,7 @@ index 11e437e..4ebe21b 100644
|
||||||
/* Make sure that strings are null terminated. */
|
/* Make sure that strings are null terminated. */
|
||||||
grub_memcpy (ciphername, header.cipherName, sizeof (header.cipherName));
|
grub_memcpy (ciphername, header.cipherName, sizeof (header.cipherName));
|
||||||
ciphername[sizeof (header.cipherName)] = 0;
|
ciphername[sizeof (header.cipherName)] = 0;
|
||||||
@@ -128,172 +128,9 @@
|
@@ -137,184 +128,10 @@ configure_ciphers (grub_disk_t disk, const char *check_uuid,
|
||||||
grub_memcpy (hashspec, header.hashSpec, sizeof (header.hashSpec));
|
grub_memcpy (hashspec, header.hashSpec, sizeof (header.hashSpec));
|
||||||
hashspec[sizeof (header.hashSpec)] = 0;
|
hashspec[sizeof (header.hashSpec)] = 0;
|
||||||
|
|
||||||
|
|
@ -412,6 +420,7 @@ index 11e437e..4ebe21b 100644
|
||||||
- {
|
- {
|
||||||
- grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid keysize %d",
|
- grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid keysize %d",
|
||||||
- grub_be_to_cpu32 (header.keyBytes));
|
- grub_be_to_cpu32 (header.keyBytes));
|
||||||
|
- grub_crypto_cipher_close (cipher);
|
||||||
- return NULL;
|
- return NULL;
|
||||||
- }
|
- }
|
||||||
-
|
-
|
||||||
|
|
@ -450,9 +459,10 @@ index 11e437e..4ebe21b 100644
|
||||||
- }
|
- }
|
||||||
- if (cipher->cipher->blocksize != GRUB_CRYPTODISK_GF_BYTES)
|
- if (cipher->cipher->blocksize != GRUB_CRYPTODISK_GF_BYTES)
|
||||||
- {
|
- {
|
||||||
- grub_crypto_cipher_close (cipher);
|
|
||||||
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unsupported XTS block size: %d",
|
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unsupported XTS block size: %d",
|
||||||
- cipher->cipher->blocksize);
|
- cipher->cipher->blocksize);
|
||||||
|
- grub_crypto_cipher_close (cipher);
|
||||||
|
- grub_crypto_cipher_close (secondary_cipher);
|
||||||
- return NULL;
|
- return NULL;
|
||||||
- }
|
- }
|
||||||
- if (secondary_cipher->cipher->blocksize != GRUB_CRYPTODISK_GF_BYTES)
|
- if (secondary_cipher->cipher->blocksize != GRUB_CRYPTODISK_GF_BYTES)
|
||||||
|
|
@ -460,6 +470,7 @@ index 11e437e..4ebe21b 100644
|
||||||
- grub_crypto_cipher_close (cipher);
|
- grub_crypto_cipher_close (cipher);
|
||||||
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unsupported XTS block size: %d",
|
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unsupported XTS block size: %d",
|
||||||
- secondary_cipher->cipher->blocksize);
|
- secondary_cipher->cipher->blocksize);
|
||||||
|
- grub_crypto_cipher_close (secondary_cipher);
|
||||||
- return NULL;
|
- return NULL;
|
||||||
- }
|
- }
|
||||||
- }
|
- }
|
||||||
|
|
@ -469,9 +480,9 @@ index 11e437e..4ebe21b 100644
|
||||||
- cipheriv = ciphermode + sizeof ("lrw-") - 1;
|
- cipheriv = ciphermode + sizeof ("lrw-") - 1;
|
||||||
- if (cipher->cipher->blocksize != GRUB_CRYPTODISK_GF_BYTES)
|
- if (cipher->cipher->blocksize != GRUB_CRYPTODISK_GF_BYTES)
|
||||||
- {
|
- {
|
||||||
- grub_crypto_cipher_close (cipher);
|
|
||||||
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unsupported LRW block size: %d",
|
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unsupported LRW block size: %d",
|
||||||
- cipher->cipher->blocksize);
|
- cipher->cipher->blocksize);
|
||||||
|
- grub_crypto_cipher_close (cipher);
|
||||||
- return NULL;
|
- return NULL;
|
||||||
- }
|
- }
|
||||||
- }
|
- }
|
||||||
|
|
@ -494,6 +505,7 @@ index 11e437e..4ebe21b 100644
|
||||||
- || cipher->cipher->blocksize == 0)
|
- || cipher->cipher->blocksize == 0)
|
||||||
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unsupported benbi blocksize: %d",
|
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unsupported benbi blocksize: %d",
|
||||||
- cipher->cipher->blocksize);
|
- cipher->cipher->blocksize);
|
||||||
|
- /* FIXME should we return an error here? */
|
||||||
- for (benbi_log = 0;
|
- for (benbi_log = 0;
|
||||||
- (cipher->cipher->blocksize << benbi_log) < GRUB_DISK_SECTOR_SIZE;
|
- (cipher->cipher->blocksize << benbi_log) < GRUB_DISK_SECTOR_SIZE;
|
||||||
- benbi_log++);
|
- benbi_log++);
|
||||||
|
|
@ -512,6 +524,7 @@ index 11e437e..4ebe21b 100644
|
||||||
- if (!essiv_hash)
|
- if (!essiv_hash)
|
||||||
- {
|
- {
|
||||||
- grub_crypto_cipher_close (cipher);
|
- grub_crypto_cipher_close (cipher);
|
||||||
|
- grub_crypto_cipher_close (secondary_cipher);
|
||||||
- grub_error (GRUB_ERR_FILE_NOT_FOUND,
|
- grub_error (GRUB_ERR_FILE_NOT_FOUND,
|
||||||
- "Couldn't load %s hash", hash_str);
|
- "Couldn't load %s hash", hash_str);
|
||||||
- return NULL;
|
- return NULL;
|
||||||
|
|
@ -520,12 +533,14 @@ index 11e437e..4ebe21b 100644
|
||||||
- if (!essiv_cipher)
|
- if (!essiv_cipher)
|
||||||
- {
|
- {
|
||||||
- grub_crypto_cipher_close (cipher);
|
- grub_crypto_cipher_close (cipher);
|
||||||
|
- grub_crypto_cipher_close (secondary_cipher);
|
||||||
- return NULL;
|
- return NULL;
|
||||||
- }
|
- }
|
||||||
- }
|
- }
|
||||||
- else
|
- else
|
||||||
- {
|
- {
|
||||||
- grub_crypto_cipher_close (cipher);
|
- grub_crypto_cipher_close (cipher);
|
||||||
|
- grub_crypto_cipher_close (secondary_cipher);
|
||||||
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unknown IV mode: %s",
|
- grub_error (GRUB_ERR_BAD_ARGUMENT, "Unknown IV mode: %s",
|
||||||
- cipheriv);
|
- cipheriv);
|
||||||
- return NULL;
|
- return NULL;
|
||||||
|
|
@ -542,12 +557,17 @@ index 11e437e..4ebe21b 100644
|
||||||
- hashspec);
|
- hashspec);
|
||||||
- return NULL;
|
- return NULL;
|
||||||
- }
|
- }
|
||||||
-
|
+ newdev = grub_cryptodisk_create (disk, uuid, ciphername, ciphermode, hashspec);
|
||||||
|
|
||||||
- newdev = grub_zalloc (sizeof (struct grub_cryptodisk));
|
- newdev = grub_zalloc (sizeof (struct grub_cryptodisk));
|
||||||
- if (!newdev)
|
- if (!newdev)
|
||||||
- return NULL;
|
- {
|
||||||
|
- grub_crypto_cipher_close (cipher);
|
||||||
|
- grub_crypto_cipher_close (essiv_cipher);
|
||||||
|
- grub_crypto_cipher_close (secondary_cipher);
|
||||||
|
- return NULL;
|
||||||
|
- }
|
||||||
- newdev->cipher = cipher;
|
- newdev->cipher = cipher;
|
||||||
+ newdev = grub_cryptodisk_create (disk, uuid, ciphername, ciphermode, hashspec);
|
|
||||||
newdev->offset = grub_be_to_cpu32 (header.payloadOffset);
|
newdev->offset = grub_be_to_cpu32 (header.payloadOffset);
|
||||||
- newdev->source_disk = NULL;
|
- newdev->source_disk = NULL;
|
||||||
- newdev->benbi_log = benbi_log;
|
- newdev->benbi_log = benbi_log;
|
||||||
|
|
@ -593,7 +613,7 @@ index 11e437e..4ebe21b 100644
|
||||||
grub_free (split_key);
|
grub_free (split_key);
|
||||||
return grub_error (GRUB_ERR_BAD_ARGUMENT, "Passphrase not supplied");
|
return grub_error (GRUB_ERR_BAD_ARGUMENT, "Passphrase not supplied");
|
||||||
diff --git a/include/grub/cryptodisk.h b/include/grub/cryptodisk.h
|
diff --git a/include/grub/cryptodisk.h b/include/grub/cryptodisk.h
|
||||||
index 0299625..4076412 100644
|
index 67f6b0b59..bb25ab730 100644
|
||||||
--- a/include/grub/cryptodisk.h
|
--- a/include/grub/cryptodisk.h
|
||||||
+++ b/include/grub/cryptodisk.h
|
+++ b/include/grub/cryptodisk.h
|
||||||
@@ -54,9 +54,14 @@ typedef enum
|
@@ -54,9 +54,14 @@ typedef enum
|
||||||
|
|
@ -611,7 +631,7 @@ index 0299625..4076412 100644
|
||||||
struct grub_cryptodisk;
|
struct grub_cryptodisk;
|
||||||
|
|
||||||
typedef gcry_err_code_t
|
typedef gcry_err_code_t
|
||||||
@@ -159,4 +164,7 @@ grub_util_get_geli_uuid (const char *dev);
|
@@ -160,4 +165,7 @@ grub_util_get_geli_uuid (const char *dev);
|
||||||
grub_cryptodisk_t grub_cryptodisk_get_by_uuid (const char *uuid);
|
grub_cryptodisk_t grub_cryptodisk_get_by_uuid (const char *uuid);
|
||||||
grub_cryptodisk_t grub_cryptodisk_get_by_source_disk (grub_disk_t disk);
|
grub_cryptodisk_t grub_cryptodisk_get_by_source_disk (grub_disk_t disk);
|
||||||
|
|
||||||
|
|
@ -620,5 +640,5 @@ index 0299625..4076412 100644
|
||||||
+
|
+
|
||||||
#endif
|
#endif
|
||||||
--
|
--
|
||||||
2.1.2
|
2.16.2
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,111 @@
|
||||||
|
From ef720d0d44b8d97a83950ced0df1ce1bcf8cd988 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Gideon Dann <pdgiddie@gmail.com>
|
||||||
|
Date: Tue, 19 Jul 2016 12:36:37 +0100
|
||||||
|
Subject: [PATCH 7/7] Add support for using a whole device as a keyfile
|
||||||
|
|
||||||
|
---
|
||||||
|
grub-core/disk/cryptodisk.c | 86 +++++++++++++++++++++++++++++++++++----------
|
||||||
|
1 file changed, 68 insertions(+), 18 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c
|
||||||
|
index 6fc2c23aa..a8937e5e3 100644
|
||||||
|
--- a/grub-core/disk/cryptodisk.c
|
||||||
|
+++ b/grub-core/disk/cryptodisk.c
|
||||||
|
@@ -1032,26 +1032,76 @@ grub_cmd_cryptomount (grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
|
else
|
||||||
|
{
|
||||||
|
keyfile_offset = state[5].set ? grub_strtoul (state[5].arg, 0, 0) : 0;
|
||||||
|
- keyfile_size = requested_keyfile_size ? requested_keyfile_size : \
|
||||||
|
- GRUB_CRYPTODISK_MAX_KEYFILE_SIZE;
|
||||||
|
-
|
||||||
|
- keyfile = grub_file_open (state[4].arg);
|
||||||
|
- if (!keyfile)
|
||||||
|
- grub_printf (N_("Unable to open key file %s\n"), state[4].arg);
|
||||||
|
- else if (grub_file_seek (keyfile, keyfile_offset) == (grub_off_t)-1)
|
||||||
|
- grub_printf (N_("Unable to seek to offset %d in key file\n"), keyfile_offset);
|
||||||
|
- else
|
||||||
|
+
|
||||||
|
+ if (grub_strchr (state[4].arg, '/'))
|
||||||
|
{
|
||||||
|
- keyfile_size = grub_file_read (keyfile, keyfile_buffer, keyfile_size);
|
||||||
|
- if (keyfile_size == (grub_size_t)-1)
|
||||||
|
- grub_printf (N_("Error reading key file\n"));
|
||||||
|
- else if (requested_keyfile_size && (keyfile_size != requested_keyfile_size))
|
||||||
|
- grub_printf (N_("Cannot read %llu bytes for key file (read %llu bytes)\n"),
|
||||||
|
- (unsigned long long) requested_keyfile_size,
|
||||||
|
- (unsigned long long) keyfile_size);
|
||||||
|
+ keyfile_size = requested_keyfile_size ? requested_keyfile_size : \
|
||||||
|
+ GRUB_CRYPTODISK_MAX_KEYFILE_SIZE;
|
||||||
|
+ keyfile = grub_file_open (state[4].arg);
|
||||||
|
+ if (!keyfile)
|
||||||
|
+ grub_printf (N_("Unable to open key file %s\n"), state[4].arg);
|
||||||
|
+ else if (grub_file_seek (keyfile, keyfile_offset) == (grub_off_t)-1)
|
||||||
|
+ grub_printf (N_("Unable to seek to offset %d in key file\n"), keyfile_offset);
|
||||||
|
else
|
||||||
|
- key = keyfile_buffer;
|
||||||
|
- }
|
||||||
|
+ {
|
||||||
|
+ keyfile_size = grub_file_read (keyfile, keyfile_buffer, keyfile_size);
|
||||||
|
+ if (keyfile_size == (grub_size_t)-1)
|
||||||
|
+ grub_printf (N_("Error reading key file\n"));
|
||||||
|
+ else if (requested_keyfile_size && (keyfile_size != requested_keyfile_size))
|
||||||
|
+ grub_printf (N_("Cannot read %llu bytes for key file (read %llu bytes)\n"),
|
||||||
|
+ (unsigned long long) requested_keyfile_size,
|
||||||
|
+ (unsigned long long) keyfile_size);
|
||||||
|
+ else
|
||||||
|
+ key = keyfile_buffer;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ grub_disk_t keydisk;
|
||||||
|
+ char* keydisk_name;
|
||||||
|
+ grub_err_t err;
|
||||||
|
+ grub_uint64_t total_sectors;
|
||||||
|
+
|
||||||
|
+ keydisk_name = grub_file_get_device_name(state[4].arg);
|
||||||
|
+ keydisk = grub_disk_open (keydisk_name);
|
||||||
|
+ if (!keydisk)
|
||||||
|
+ {
|
||||||
|
+ grub_printf (N_("Unable to open disk %s\n"), keydisk_name);
|
||||||
|
+ goto cleanup_keydisk_name;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ total_sectors = grub_disk_get_size (keydisk);
|
||||||
|
+ if (total_sectors == GRUB_DISK_SIZE_UNKNOWN)
|
||||||
|
+ {
|
||||||
|
+ grub_printf (N_("Unable to determine size of disk %s\n"), keydisk_name);
|
||||||
|
+ goto cleanup_keydisk;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ keyfile_size = (total_sectors << GRUB_DISK_SECTOR_BITS);
|
||||||
|
+ if (requested_keyfile_size > 0 && requested_keyfile_size < keyfile_size)
|
||||||
|
+ keyfile_size = requested_keyfile_size;
|
||||||
|
+ if (keyfile_size > GRUB_CRYPTODISK_MAX_KEYFILE_SIZE)
|
||||||
|
+ {
|
||||||
|
+ grub_printf (N_("Key file size exceeds maximum (%llu)\n"), \
|
||||||
|
+ (unsigned long long) GRUB_CRYPTODISK_MAX_KEYFILE_SIZE);
|
||||||
|
+ goto cleanup_keydisk;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ err = grub_disk_read (keydisk, 0, keyfile_offset, keyfile_size, keyfile_buffer);
|
||||||
|
+ if (err != GRUB_ERR_NONE)
|
||||||
|
+ {
|
||||||
|
+ grub_printf (N_("Failed to read from disk %s\n"), keydisk_name);
|
||||||
|
+ keyfile_size = 0;
|
||||||
|
+ goto cleanup_keydisk;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ key = keyfile_buffer;
|
||||||
|
+
|
||||||
|
+ cleanup_keydisk:
|
||||||
|
+ grub_disk_close (keydisk);
|
||||||
|
+ cleanup_keydisk_name:
|
||||||
|
+ grub_free (keydisk_name);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.16.2
|
||||||
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
--- src/video/fbcon/SDL_fbvideo.c.orig 2011-09-08 17:30:03.670583685 +0200
|
|
||||||
+++ src/video/fbcon/SDL_fbvideo.c 2011-09-08 17:30:24.230582737 +0200
|
|
||||||
@@ -46,7 +46,6 @@
|
|
||||||
#include "SDL_fbevents_c.h"
|
|
||||||
#include "SDL_fb3dfx.h"
|
|
||||||
#include "SDL_fbmatrox.h"
|
|
||||||
-#include "SDL_fbriva.h"
|
|
||||||
|
|
||||||
/*#define FBCON_DEBUG*/
|
|
||||||
|
|
||||||
@@ -769,13 +768,6 @@
|
|
||||||
#endif
|
|
||||||
FB_3DfxAccel(this, finfo.accel);
|
|
||||||
break;
|
|
||||||
- case FB_ACCEL_NV3:
|
|
||||||
- case FB_ACCEL_NV4:
|
|
||||||
-#ifdef FBACCEL_DEBUG
|
|
||||||
- printf("NVidia hardware accelerator!\n");
|
|
||||||
-#endif
|
|
||||||
- FB_RivaAccel(this, finfo.accel);
|
|
||||||
- break;
|
|
||||||
default:
|
|
||||||
#ifdef FBACCEL_DEBUG
|
|
||||||
printf("Unknown hardware accelerator.\n");
|
|
||||||
|
|
@ -47,11 +47,6 @@ replace Ubuntu Trisquel .
|
||||||
replace ubuntu trisquel .
|
replace ubuntu trisquel .
|
||||||
find |grep ubuntu|xargs rename s/ubuntu/trisquel/
|
find |grep ubuntu|xargs rename s/ubuntu/trisquel/
|
||||||
|
|
||||||
GRUBVERSION=$(head -n1 debian/changelog |/bin/sed 's/.*(//;s/).*//; s/[~+-].*//')
|
|
||||||
|
|
||||||
echo /bin/sed "/GNU GRUB version/ s/PACKAGE_VERSION/\"$GRUBVERSION\"/" -i grub-core/normal/main.c
|
|
||||||
/bin/sed "/GNU GRUB version/ s/PACKAGE_VERSION/\"$GRUBVERSION\"/" -i grub-core/normal/main.c
|
|
||||||
|
|
||||||
# Allow Windows and MacOX entries to boot without a password
|
# Allow Windows and MacOX entries to boot without a password
|
||||||
sed 's/class osx/class osx --unrestricted/; s/class windows/class osx --unrestricted/;' -i ./util/grub.d/30_os-prober.in
|
sed 's/class osx/class osx --unrestricted/; s/class windows/class osx --unrestricted/;' -i ./util/grub.d/30_os-prober.in
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Copyright (C) 2011 Santiago Rodríguez <santi@trisquel.info>
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
#
|
|
||||||
|
|
||||||
VERSION=1
|
|
||||||
COMPONENT=main
|
|
||||||
. ./config
|
|
||||||
|
|
||||||
# Origin:
|
|
||||||
# http://lists.nongnu.org/archive/html/gnu-linux-libre/2011-09/msg00001.html
|
|
||||||
rm src/video/fbcon/riva_mmio.h
|
|
||||||
rm src/video/fbcon/SDL_fbriva.c
|
|
||||||
|
|
||||||
patch -p0 < $DATA/no-riva-accel.patch
|
|
||||||
changelog "Compiled for Trisquel"
|
|
||||||
|
|
||||||
compile
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue