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
List information: http://vger.kernel.org/majordomo-info.html
* 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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).