From: "H. Peter Anvin" <hpa@zytor.com>
To: Git Mailing List <git@vger.kernel.org>
Subject: git-am: "Patch fragment without a header"
Date: Mon, 06 Feb 2006 18:59:47 -0800 [thread overview]
Message-ID: <43E80D23.4070007@zytor.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 896 bytes --]
git-am from git-1.1.6 refuses to apply the following two patches,
whereas patch(1) sees nothing wrong with them...
The error messages look like:
: smyrno 46 ; git-am /tmp/\[klibc]\ Add\ swap\ support\ to\ fstype,\
second\ version.eml
Applying 'Add swap support to fstype, second version'
error: patch fragment without header at line 4: @@ -7,7 +7,7 @@
error: patch fragment without header at line 13: @@ -20,6 +20,7 @@
error: patch fragment without header at line 21: @@ -49,6 +50,9 @@
error: patch fragment without header at line 31: @@ -182,6 +186,19 @@
error: patch fragment without header at line 50: @@ -189,17 +206,18 @@
error: patch fragment without header at line 83: @@ -0,0 +1,18 @@
fatal: No changes
Patch failed at 0001.
The patches are meant to be apply to the top of:
git://git.kernel.org/pub/scm/libs/klibc/klibc.git
HEAD = ea6af2b08cb18ba60e55c5e8f0f65ddac1672ca0
-hpa
[-- Attachment #2: [klibc] Add LUKS support to fstype, second version.eml --]
[-- Type: message/rfc822, Size: 6160 bytes --]
[-- Attachment #2.1.1: Type: text/plain, Size: 526 bytes --]
The attached patch adds support for detecting LUKS partitions (Linux
Unified Key Setup - http://luks.endorphin.org/) to fstype. This makes it
easier to automatically detect and activate encrypted (root) partitions
from an initramfs image.
The patch is now against klibc's git tree instead of klibc-1.2.
Signed-off-by: David Härdeman <david@2gen.com>
--
fstype.c | 17 ++++++++++++++++-
luks_fs.h | 45 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+), 1 deletion(-)
[-- Attachment #2.1.2: klibc-add-luks-to-fstype-v2 --]
[-- Type: text/plain, Size: 2769 bytes --]
Index: klibc/usr/kinit/fstype/fstype.c
===================================================================
--- klibc.orig/usr/kinit/fstype/fstype.c 2006-02-05 10:53:51.000000000 +0100
+++ klibc/usr/kinit/fstype/fstype.c 2006-02-05 11:09:31.000000000 +0100
@@ -7,7 +7,7 @@
* FSSIZE - filesystem size (if known)
*
* We currently detect (in order):
- * gzip, cramfs, romfs, xfs, minix, ext3, ext2, reiserfs, jfs
+ * gzip, cramfs, romfs, xfs, luks, minix, ext3, ext2, reiserfs, jfs
*
* MINIX, ext3 and Reiserfs bits are currently untested.
*/
@@ -29,6 +29,7 @@
#include "ext2_fs.h"
#include "ext3_fs.h"
#include "xfs_sb.h"
+#include "luks_fs.h"
/*
* Slightly cleaned up version of jfs_superblock to
@@ -168,6 +169,19 @@
return 0;
}
+static int luks_image(const unsigned char *buf, unsigned long long *blocks)
+{
+ const struct luks_partition_header *lph =
+ (const struct luks_partition_header *)buf;
+
+ if (!memcmp(lph->magic, LUKS_MAGIC, LUKS_MAGIC_L)) {
+ /* FSSIZE is dictated by the underlying fs, not by LUKS */
+ *blocks = 0;
+ return 1;
+ }
+ return 0;
+}
+
struct imagetype {
off_t block;
const char name[12];
@@ -179,6 +193,7 @@
{ 0, "cramfs", cramfs_image },
{ 0, "romfs", romfs_image },
{ 0, "xfs", xfs_image },
+ { 0, "luks", luks_image },
{ 1, "minix", minix_image },
{ 1, "ext3", ext3_image },
{ 1, "ext2", ext2_image },
Index: klibc/usr/kinit/fstype/luks_fs.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ klibc/usr/kinit/fstype/luks_fs.h 2006-02-05 10:57:52.000000000 +0100
@@ -0,0 +1,45 @@
+#ifndef __LINUX_LUKS_FS_H
+#define __LINUX_LUKS_FS_H
+
+/* The basic structures of the luks partition header */
+#define LUKS_MAGIC_L 6
+#define LUKS_CIPHERNAME_L 32
+#define LUKS_CIPHERMODE_L 32
+#define LUKS_HASHSPEC_L 32
+#define LUKS_UUID_STRING_L 40
+
+#define LUKS_MAGIC "LUKS\xBA\xBE"
+#define LUKS_DIGESTSIZE 20
+#define LUKS_SALTSIZE 32
+#define LUKS_NUMKEYS 8
+#define LUKS_MKD_ITER 10
+#define LUKS_KEY_DISABLED 0x0000DEAD
+#define LUKS_KEY_ENABLED 0x00AC71F3
+#define LUKS_STRIPES 4000
+
+
+/* On-disk "super block" */
+struct luks_partition_header {
+ char magic[LUKS_MAGIC_L];
+ __be16 version;
+ char cipherName[LUKS_CIPHERNAME_L];
+ char cipherMode[LUKS_CIPHERMODE_L];
+ char hashSpec[LUKS_HASHSPEC_L];
+ __be32 payloadOffset;
+ __be32 keyBytes;
+ char mkDigest[LUKS_DIGESTSIZE];
+ char mkDigestSalt[LUKS_SALTSIZE];
+ __be32 mkDigestIterations;
+ char uuid[LUKS_UUID_STRING_L];
+
+ struct {
+ __be32 active;
+ /* Parameters for PBKDF2 processing */
+ __be32 passwordIterations;
+ char passwordSalt[LUKS_SALTSIZE];
+ __be32 keyMaterialOffset;
+ __be32 stripes;
+ } keyblock[LUKS_NUMKEYS];
+};
+
+#endif
[-- Attachment #2.1.3: Type: text/plain, Size: 127 bytes --]
_______________________________________________
klibc mailing list
klibc@zytor.com
http://www.zytor.com/mailman/listinfo/klibc
[-- Attachment #3: [klibc] Add swap support to fstype, second version.eml --]
[-- Type: message/rfc822, Size: 6293 bytes --]
[-- Attachment #3.1.1: Type: text/plain, Size: 388 bytes --]
This patch adds support for swap detection to fstype (to be applied on
top of the previous luks patch).
The patch is now against klibc's git tree instead of klibc-1.2.
Signed-off-by: David Härdeman <david@2gen.com>
--
fstype.c | 42 ++++++++++++++++++++++++++++++------------
swap_fs.h | 18 ++++++++++++++++++
2 files changed, 48 insertions(+), 12 deletions(-)
[-- Attachment #3.1.2: klibc-add-swap-to-fstype-v2 --]
[-- Type: text/plain, Size: 3040 bytes --]
Index: klibc/usr/kinit/fstype/fstype.c
===================================================================
--- klibc.orig/usr/kinit/fstype/fstype.c 2006-02-05 11:09:31.000000000 +0100
+++ klibc/usr/kinit/fstype/fstype.c 2006-02-05 11:11:15.000000000 +0100
@@ -7,7 +7,7 @@
* FSSIZE - filesystem size (if known)
*
* We currently detect (in order):
- * gzip, cramfs, romfs, xfs, luks, minix, ext3, ext2, reiserfs, jfs
+ * gzip, cramfs, romfs, xfs, luks, minix, ext3, ext2, reiserfs, jfs, swap
*
* MINIX, ext3 and Reiserfs bits are currently untested.
*/
@@ -20,6 +20,7 @@
#include <endian.h>
#include <netinet/in.h>
#include <sys/vfs.h>
+#include <asm/page.h>
#define cpu_to_be32(x) __cpu_to_be32(x) /* Needed by romfs_fs.h */
@@ -49,6 +50,9 @@
#define BLOCK_SIZE 1024
+/* Swap needs the definition of block size */
+#include "swap_fs.h"
+
static int gzip_image(const unsigned char *buf, unsigned long long *bytes)
{
if (buf[0] == 037 && (buf[1] == 0213 || buf[1] == 0236)) {
@@ -182,6 +186,19 @@
return 0;
}
+static int swap_image(const unsigned char *buf, unsigned long long *blocks)
+{
+ const struct swap_super_block *ssb =
+ (const struct swap_super_block *)buf;
+
+ if (!memcmp(ssb->magic, SWAP_MAGIC_1, SWAP_MAGIC_L) ||
+ !memcmp(ssb->magic, SWAP_MAGIC_2, SWAP_MAGIC_L)) {
+ *blocks = 0;
+ return 1;
+ }
+ return 0;
+}
+
struct imagetype {
off_t block;
const char name[12];
@@ -189,17 +206,18 @@
};
static struct imagetype images[] = {
- { 0, "gzip", gzip_image },
- { 0, "cramfs", cramfs_image },
- { 0, "romfs", romfs_image },
- { 0, "xfs", xfs_image },
- { 0, "luks", luks_image },
- { 1, "minix", minix_image },
- { 1, "ext3", ext3_image },
- { 1, "ext2", ext2_image },
- { 8, "reiserfs", reiserfs_image },
- { 64, "reiserfs", reiserfs_image },
- { 32, "jfs", jfs_image }
+ { 0, "gzip", gzip_image },
+ { 0, "cramfs", cramfs_image },
+ { 0, "romfs", romfs_image },
+ { 0, "xfs", xfs_image },
+ { 0, "luks", luks_image },
+ { 1, "minix", minix_image },
+ { 1, "ext3", ext3_image },
+ { 1, "ext2", ext2_image },
+ { 8, "reiserfs", reiserfs_image },
+ { 64, "reiserfs", reiserfs_image },
+ { 32, "jfs", jfs_image },
+ { SWAP_OFFSET, "swap", swap_image }
};
int identify_fs(int fd, const char **fstype,
Index: klibc/usr/kinit/fstype/swap_fs.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ klibc/usr/kinit/fstype/swap_fs.h 2006-02-05 11:10:01.000000000 +0100
@@ -0,0 +1,18 @@
+#ifndef __LINUX_SWAP_FS_H
+#define __LINUX_SWAP_FS_H
+
+/* The basic structures of the swap super block */
+#define SWAP_RESERVED_L BLOCK_SIZE - 10
+#define SWAP_MAGIC_L 10
+#define SWAP_MAGIC_1 "SWAP-SPACE"
+#define SWAP_MAGIC_2 "SWAPSPACE2"
+/* The super block is the last block in the first page */
+#define SWAP_OFFSET ((PAGE_SIZE - BLOCK_SIZE) / BLOCK_SIZE)
+
+/* On-disk "super block" */
+struct swap_super_block {
+ char reserved[SWAP_RESERVED_L];
+ char magic[SWAP_MAGIC_L];
+};
+
+#endif
[-- Attachment #3.1.3: Type: text/plain, Size: 127 bytes --]
_______________________________________________
klibc mailing list
klibc@zytor.com
http://www.zytor.com/mailman/listinfo/klibc
next reply other threads:[~2006-02-07 3:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-07 2:59 H. Peter Anvin [this message]
2006-02-07 3:20 ` git-am: "Patch fragment without a header" Junio C Hamano
2006-02-07 3:32 ` H. Peter Anvin
2006-02-07 5:35 ` Junio C Hamano
2006-02-07 15:46 ` Linus Torvalds
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43E80D23.4070007@zytor.com \
--to=hpa@zytor.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.