diff options
Diffstat (limited to 'recipes/hfsplusutils')
5 files changed, 200 insertions, 0 deletions
diff --git a/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-errno.patch b/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-errno.patch new file mode 100644 index 0000000000..c9caeb4208 --- /dev/null +++ b/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-errno.patch @@ -0,0 +1,19 @@ +diff -ruN hfsplus.orig/src/hpmkdir.c hfsplus-1.0.4/src/hpmkdir.c +--- hfsplus.orig/src/hpmkdir.c 2003-03-30 20:09:59.000000000 +0200 ++++ hfsplus-1.0.4/src/hpmkdir.c 2003-03-30 20:11:15.000000000 +0200 +@@ -46,8 +46,9 @@ + # include <string.h> + # include <time.h> + # include <ctype.h> +-# include <errno.h> + */ ++# include <errno.h> ++ + # include <stdio.h> + # include <stdlib.h> + +@@ -164,3 +165,4 @@ + hfsputil_perrorp(argv0); + return -1; + } ++ diff --git a/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-gcc4.patch b/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-gcc4.patch new file mode 100644 index 0000000000..04724440dd --- /dev/null +++ b/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-gcc4.patch @@ -0,0 +1,132 @@ +--- hfsplus-1.0.4/libhfsp/src/btree.c~ 2002-03-05 19:50:28.000000000 +0000 ++++ hfsplus-1.0.4/libhfsp/src/btree.c 2005-04-30 12:48:48.000000000 +0100 +@@ -393,7 +393,7 @@ static int btree_init(btree* bt, volume* + { + p = volume_readfromfork(vol, nodebuf, fork, 0, bt->blkpernode, + HFSP_EXTENT_DATA, bt->cnid); +- ((char*) p) += HEADER_RESERVEDOFFSET; // skip header ++ p += HEADER_RESERVEDOFFSET; // skip header + } + + bt->alloc_bits = malloc(alloc_size); +--- hfsplus-1.0.4/libhfsp/src/swab.h~ 2002-03-05 19:50:29.000000000 +0000 ++++ hfsplus-1.0.4/libhfsp/src/swab.h 2005-04-30 12:48:05.000000000 +0100 +@@ -36,28 +36,28 @@ + + #define bswabU16(val) bswap_16(val) + +-#define bswabU16_inc(ptr) bswap_16(*((UInt16*) (ptr))++) +-#define bswabU32_inc(ptr) bswap_32(*((UInt32*) (ptr))++) +-#define bswabU64_inc(ptr) bswap_64(*((UInt64*) (ptr))++) +- +-#define bstoreU16_inc(ptr, val) (*((UInt16*) (ptr))++) = bswap_16(val) +-#define bstoreU32_inc(ptr, val) (*((UInt32*) (ptr))++) = bswap_32(val) +-#define bstoreU64_inc(ptr, val) (*((UInt64*) (ptr))++) = bswap_64(val) ++#define bswabU16_inc(ptr) bswap_16(*(*((UInt16**) (void *)(&ptr)))++) ++#define bswabU32_inc(ptr) bswap_32(*(*((UInt32**) (void *)(&ptr)))++) ++#define bswabU64_inc(ptr) bswap_64(*(*((UInt64**) (void *)(&ptr)))++) ++ ++#define bstoreU16_inc(ptr, val) (*(*((UInt16**) (void *)(&ptr)))++) = bswap_16(val) ++#define bstoreU32_inc(ptr, val) (*(*((UInt32**) (void *)(&ptr)))++) = bswap_32(val) ++#define bstoreU64_inc(ptr, val) (*(*((UInt64**) (void *)(&ptr)))++) = bswap_64(val) + + #else // BYTE_ORDER == BIG_ENDIAN + + #define bswabU16(val) val + +-#define bswabU16_inc(ptr) (*((UInt16*) (ptr))++) +-#define bswabU32_inc(ptr) (*((UInt32*) (ptr))++) +-#define bswabU64_inc(ptr) (*((UInt64*) (ptr))++) +- +-#define bstoreU16_inc(ptr, val) (*((UInt16*) (ptr))++) = val +-#define bstoreU32_inc(ptr, val) (*((UInt32*) (ptr))++) = val +-#define bstoreU64_inc(ptr, val) (*((UInt64*) (ptr))++) = val ++#define bswabU16_inc(ptr) (*(*((UInt16**) (void *)(&ptr)))++) ++#define bswabU32_inc(ptr) (*(*((UInt32**) (void *)(&ptr)))++) ++#define bswabU64_inc(ptr) (*(*((UInt64**) (void *)(&ptr)))++) ++ ++#define bstoreU16_inc(ptr, val) (*(*((UInt16**) (void *)(&ptr)))++) = val ++#define bstoreU32_inc(ptr, val) (*(*((UInt32**) (void *)(&ptr)))++) = val ++#define bstoreU64_inc(ptr, val) (*(*((UInt64**) (void *)(&ptr)))++) = val + + #endif + + /* for the sake of compleetness and readability */ +-#define bswabU8_inc(ptr) (*((UInt8*) (ptr))++) +-#define bstoreU8_inc(ptr,val) (*((UInt8*) (ptr))++) = val ++#define bswabU8_inc(ptr) (*(*((UInt8**) (void *)(&ptr)))++) ++#define bstoreU8_inc(ptr,val) (*(*((UInt8**) (void *)(&ptr)))++) = val +--- hfsplus-1.0.4/libhfsp/src/btreecheck.c~ 2002-03-05 19:50:29.000000000 +0000 ++++ hfsplus-1.0.4/libhfsp/src/btreecheck.c 2005-04-30 12:49:22.000000000 +0100 +@@ -264,7 +264,7 @@ static int fscheck_btree_init(btree* bt, + { + p = volume_readfromfork(vol, nodebuf, fork, 0, bt->blkpernode, + HFSP_EXTENT_DATA, bt->cnid); +- ((char*) p) += HEADER_RESERVEDOFFSET; // skip header ++ p += HEADER_RESERVEDOFFSET; // skip header + } + + bt->alloc_bits = malloc(alloc_size); +--- hfsplus-1.0.4/libhfsp/src/fscheck.c~ 2002-03-25 15:48:37.000000000 +0000 ++++ hfsplus-1.0.4/libhfsp/src/fscheck.c 2005-04-30 12:50:26.000000000 +0100 +@@ -230,7 +230,7 @@ static int fscheck_volume_readbuf(volume + vh->write_count = bswabU32_inc(p); + vh->encodings_bmp = bswabU64_inc(p); + memcpy(vh->finder_info, p, 32); +- ((char*) p) += 32; // So finderinfo must be swapped later, *** ++ p += 32; // So finderinfo must be swapped later, *** + p = volume_readfork(p, &vh->alloc_file ); + p = volume_readfork(p, &vh->ext_file ); + p = volume_readfork(p, &vh->cat_file ); +@@ -277,12 +277,12 @@ static int fscheck_read_wrapper(volume * + printf("Volume is wrapped in HFS volume " + " (use hfsck to check this)\n"); + +- ((char*) p) += 0x12; /* skip unneded HFS vol fields */ ++ p += 0x12; /* skip unneded HFS vol fields */ + drAlBlkSiz = bswabU32_inc(p); /* offset 0x14 */ +- ((char*) p) += 0x4; /* skip unneded HFS vol fields */ ++ p += 0x4; /* skip unneded HFS vol fields */ + drAlBlSt = bswabU16_inc(p); /* offset 0x1C */ + +- ((char*) p) += 0x5E; /* skip unneded HFS vol fields */ ++ p += 0x5E; /* skip unneded HFS vol fields */ + signature = bswabU16_inc(p); /* offset 0x7C, drEmbedSigWord */ + if (signature != HFSP_VOLHEAD_SIG) + HFSP_ERROR(-1, "This looks like a normal HFS volume"); +--- hfsplus-1.0.4/libhfsp/src/volume.c~ 2002-03-26 18:00:29.000000000 +0000 ++++ hfsplus-1.0.4/libhfsp/src/volume.c 2005-04-30 12:51:41.000000000 +0100 +@@ -345,7 +345,7 @@ static int volume_readbuf(hfsp_vh* vh, v + vh->write_count = bswabU32_inc(p); + vh->encodings_bmp = bswabU64_inc(p); + memcpy(vh->finder_info, p, 32); +- ((char*) p) += 32; // finderinfo is not used by now ++ p += 32; // finderinfo is not used by now + p = volume_readfork(p, &vh->alloc_file ); + p = volume_readfork(p, &vh->ext_file ); + p = volume_readfork(p, &vh->cat_file ); +@@ -381,7 +381,7 @@ static int volume_writebuf(hfsp_vh* vh, + bstoreU32_inc(p, vh->write_count ); + bstoreU64_inc(p, vh->encodings_bmp ); + memcpy(p, vh->finder_info, 32); +- ((char*) p) += 32; // finderinfo is not used by now ++ p += 32; // finderinfo is not used by now + p = volume_writefork(p, &vh->alloc_file ); + p = volume_writefork(p, &vh->ext_file ); + p = volume_writefork(p, &vh->cat_file ); +@@ -417,12 +417,12 @@ static int volume_read_wrapper(volume * + + UInt16 embeds, embedl; /* Start/lenght of embedded area in blocks */ + +- ((char*) p) += 0x12; /* skip unneeded HFS vol fields */ ++ p += 0x12; /* skip unneeded HFS vol fields */ + drAlBlkSiz = bswabU32_inc(p); /* offset 0x14 */ +- ((char*) p) += 0x4; /* skip unneeded HFS vol fields */ ++ p += 0x4; /* skip unneeded HFS vol fields */ + drAlBlSt = bswabU16_inc(p); /* offset 0x1C */ + +- ((char*) p) += 0x5E; /* skip unneeded HFS vol fields */ ++ p += 0x5E; /* skip unneeded HFS vol fields */ + signature = bswabU16_inc(p); /* offset 0x7C, drEmbedSigWord */ + if (signature != HFSP_VOLHEAD_SIG) + HFSP_ERROR(-1, "This looks like a normal HFS volume"); diff --git a/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-glob.patch b/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-glob.patch new file mode 100644 index 0000000000..5b0333e642 --- /dev/null +++ b/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-glob.patch @@ -0,0 +1,12 @@ +--- hfsplus-1.0.4/src/glob.c.orig 2002-10-09 08:02:31.000000000 -0500 ++++ hfsplus-1.0.4/src/glob.c 2002-10-09 08:02:46.000000000 -0500 +@@ -48,7 +48,7 @@ + + switch (*pat) + { +- case NULL: // pattern at end ++ case '\0': // pattern at end + return (!*str); // String at end ? + + case '*': // match all + diff --git a/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-string.patch b/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-string.patch new file mode 100644 index 0000000000..5eaf32806a --- /dev/null +++ b/recipes/hfsplusutils/hfsplusutils-1.0.4-4/hfsplusutils-1.0.4-string.patch @@ -0,0 +1,11 @@ +--- hfsplus-1.0.4/libhfsp/src/unicode.c.bak 2007-01-08 17:14:44.000000000 -0500 ++++ hfsplus-1.0.4/libhfsp/src/unicode.c 2007-01-08 17:14:52.000000000 -0500 +@@ -16,7 +16,7 @@ + #include <stdlib.h> + #include <endian.h> + #include <byteswap.h> +-#include <linux/string.h> ++#include <string.h> + + #define __USE_GNU + /* need wcsrtomb */ diff --git a/recipes/hfsplusutils/hfsplusutils_1.0.4-4.bb b/recipes/hfsplusutils/hfsplusutils_1.0.4-4.bb new file mode 100644 index 0000000000..43037573f4 --- /dev/null +++ b/recipes/hfsplusutils/hfsplusutils_1.0.4-4.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "HFS plus file system utilities" +SECTION = "base" +LICENSE = "GPL" +PR = "r1" + +S="${WORKDIR}/${P}" + +inherit kernel-arch autotools pkgconfig + +DEPENDS = " rpm2cpio-native" + +SRC_URI = "http://penguinppc.org/historical/hfsplus/hfsplusutils-1.0.4-4.src.rpm \ + file://hfsplusutils-1.0.4-errno.patch;patch=1 \ + file://hfsplusutils-1.0.4-gcc4.patch;patch=1 \ + file://hfsplusutils-1.0.4-glob.patch;patch=1 \ + file://hfsplusutils-1.0.4-string.patch;patch=1 \ + " + +do_unpack() { + if ! test -f hfsplus.tz2 ; then + rpm2cpio.pl ${DL_DIR}/${P}.src.rpm | cpio -i --make-directories + bunzip2 hfsplus.tz2 + tar -xf hfsplus.tz2.out + mv hfsplus ${P} + fi +} |