diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /sys-fs/mac-fdisk |
reinit the tree, so we can have metadata
Diffstat (limited to 'sys-fs/mac-fdisk')
-rw-r--r-- | sys-fs/mac-fdisk/Manifest | 14 | ||||
-rw-r--r-- | sys-fs/mac-fdisk/files/big_pt.patch | 80 | ||||
-rw-r--r-- | sys-fs/mac-fdisk/files/largerthan2gb.patch | 14 | ||||
-rw-r--r-- | sys-fs/mac-fdisk/files/mac-fdisk-0.1-headers.patch | 112 | ||||
-rw-r--r-- | sys-fs/mac-fdisk/files/mac-fdisk-0.1-r6-ppc64.patch | 481 | ||||
-rw-r--r-- | sys-fs/mac-fdisk/files/mac-fdisk-0.1_p16-ppc64.patch | 455 | ||||
-rw-r--r-- | sys-fs/mac-fdisk/files/mac-fdisk-amd64.patch | 190 | ||||
-rw-r--r-- | sys-fs/mac-fdisk/mac-fdisk-0.1-r7.ebuild | 54 | ||||
-rw-r--r-- | sys-fs/mac-fdisk/mac-fdisk-0.1_p16.ebuild | 52 | ||||
-rw-r--r-- | sys-fs/mac-fdisk/metadata.xml | 8 |
10 files changed, 1460 insertions, 0 deletions
diff --git a/sys-fs/mac-fdisk/Manifest b/sys-fs/mac-fdisk/Manifest new file mode 100644 index 000000000000..aace7abaa9d0 --- /dev/null +++ b/sys-fs/mac-fdisk/Manifest @@ -0,0 +1,14 @@ +AUX big_pt.patch 1404 SHA256 217659768cea64ac99133f3b67307c2687f6d8682f1dfe0669706a48a9fcb2ef SHA512 c9abc952f1ce618b085a134145fa99efa9c10b55f3fa773fb6b74a66468537bc3567ec632fe6e464c5158383135c858c171d8d94d7142d38beff39a17e31187a WHIRLPOOL aafbfcab1dc615f79e15f5f19fd59227a4796f89ae305f3f7983c271e2cb1f5dbf396b3c404bfca48e076c886b7bd4141d79b4961f48da624d730b262efe9a39 +AUX largerthan2gb.patch 272 SHA256 0132bb4185d5ec13a4f2220579763c83e6472eeba1c30f6972ba8e3039ffa0b3 SHA512 b5988eb6aa64324421398461396b0fdd0b55d7643094c042bea7264ec0f9913e8a793f3f550c15928419e697a14f2932f483c4b98a54618af99b35aa7ceae757 WHIRLPOOL 764b5d517ceb3d5be1051b8d336f8fe263d54890226d7e30bd91e752ebb394da592f4b89c191c3b6c4b6573e9f1b4efa08897222e7b3eede2cdb4723ff70e8ce +AUX mac-fdisk-0.1-headers.patch 2050 SHA256 02fa96e89dabe0eeaeb219ecbf88ec553639f7b84d58e7e058d589daf2cdff0f SHA512 7d16300c02b293de87101e3ef83a8b7778d15123c261d562f0129704b74d0c3d7ca18730c52d37b599ff57c0b70dacd41aeefe99cf235aea4abd4b569e3d601e WHIRLPOOL 8352856e33188473d6d5ab952c5f72e077dc0dd7d32b4e5b48a1a6182616cbdfe333fd620bde24077c5791101ad90cb93b7b95031a12f8f042bc74b0b16c9295 +AUX mac-fdisk-0.1-r6-ppc64.patch 13664 SHA256 12832aad918475b3e3c0e8fc2f8bc4cead0baa2f2de1f365aeb7206839988988 SHA512 8ad99f6f205d7f4ced33c1da93a76b4329c24c85e85ea5f0fda579002d1e7282c5764cdec37c7a7c99e4f198d34259a382ed37cead60b8307a7779806142d49b WHIRLPOOL 2edb5bd17c5dbbb5fc4516973fe1e77125f2431b15590bc348ae5cb03c474d6cdff5ac1cf81d7fc3d12625a786111c5bae3cf3212095a44f28018fc6862cf2fe +AUX mac-fdisk-0.1_p16-ppc64.patch 12912 SHA256 18ad277e06b9f67397a2d91b288fb67a303d4edc995300c8c6e5d614619b7858 SHA512 e521009d628934fe3925085c941d2bb3fba9c3322ccaaa6dd650ecbc6b990056f9bf186adb3a645dc8593efdb44611b69a7b6bf4e87d262870bbb515581e0ef3 WHIRLPOOL 851fa2b80397526b9ab7d6cac7076671cc2a154802d10af175c6c620100114bd18d8db0838563d2585512f82a32bf0c29eb5d8ecd9f81008416e33924ae47675 +AUX mac-fdisk-amd64.patch 5154 SHA256 8c0a160d1f93b5cd79265a088eff3546a3963512a619d9570aae60b63517a7ec SHA512 241576f64dd334f98e8c9cb9e0b17b6366e208f2d0af47ddb4659cf2d8e25ca8f44a84d1f7fa2e5f6215f4be42668f43f034074ac981a0d87ca8483505a3623c WHIRLPOOL 2b603a9c1c68431013f014ddd13456ee33526ab1faea4973147d9c345f3ca958fbaf017ed15c7edd37d564a7ccdd92300520d32fab471896205ac62f647c164b +DIST mac-fdisk_0.1-13.diff.gz 19615 SHA256 a6dd96c8ddce896dac2e2b2c2eff346d339ae697cd19e2ac9676556d8bc63644 SHA512 adc34f20e73ae91c39acb073f70f0041a4a0726985fc5e5de34ae433996b3f719ca4193cce51efc6599ba1773ad63fee045a8d72b6bd8a036c188d762626fe57 WHIRLPOOL 9badaa6a514eb95623bf6dfc1815935a2510a0a8ef9b2546aa0c0e3816c9b9ab584ac3136f28988d3f6768dfaec7ed9d49cac6fbfa1384e029128a565743e983 +DIST mac-fdisk_0.1-16.diff.gz 19896 SHA256 0ab4247a80734cffcebd439b2c6021a5560daf4d5bb246af3ee0a75d52bfd486 SHA512 deb44217afae097594e14dea6cd128f6cb1e8ed6e62e646d2aa311508ea27d164c94187e8eb1f1d018ee6044346f6785770981a655b6ad536dbbce550df13359 WHIRLPOOL 5f34bdc9ef8e0b823e5113cf79ddc2e9007f5e18c90c7c162e025e65c349407baf7f0da9aae4a5d1615af87ab3b2cade65265aef88d7413625a44c8a531b426c +DIST mac-fdisk_0.1.orig.tar.gz 55817 SHA256 7059fc4ba41ca2ef857e1092e9c56e910f27693d407b5c3d78f7102ad0c56a66 SHA512 1263e60a18111162f5ef439b5f9615cef9de94e7836cb998782a6e6d3bcf92a69e49566b33c7330bdea05de5e6ca83f7920c6707f342ce515440160695f07120 WHIRLPOOL 3a25aba4950933c677d56a1f8c8aa000520818cf413c3cf3f418be5ec2ad520f9d9542771b61b2e53ad58e4dfa3298acab551eef8fb1a0cbac93a390f9968bb4 +EBUILD mac-fdisk-0.1-r7.ebuild 1340 SHA256 734dc74b5101bd2c8930332d16243b7d435d1a7786ccd2d4fb5c5f1f79b2d450 SHA512 139a221e8d45b7a96239c7370ae6af216c2c9806aba381ccdb2c666565620614f28af22f016e89fc3762e0f68a27bb1e5173d6d7997b85e54a3334c96fbcfffe WHIRLPOOL 2e0d412345bab9dfcf960a0f1de4813a324a61b25803163115b40c4ece88d8d56f738291df1b85a94bfcce50452601a8277d259db699d177a635d1756f8fd29b +EBUILD mac-fdisk-0.1_p16.ebuild 1239 SHA256 ebfe8914ffc2c106a72af90966e2b952b18dd4a7ebf2cb217daa681cc7c9d478 SHA512 f26c8731ea781eee50c6d08425a812f91128aaf1e5ec1527f793b6ce11acee91420e0ddcd47e2c1785fe06d0e3cfe2c7b7469e00fd9436b99baa66fffe22def1 WHIRLPOOL fe7b20f07a5858b3f101b1f91867d1ceaf5a4b702a35dfa31b58815e86b7a26db874e862adc6bfec5cb7971b0cef5cfc1bf935cd0404a5f9e3dd1984413ebb52 +MISC ChangeLog 2689 SHA256 6d69624aa366880d82da673f5f2e7345c9412130fd77c027d8d9fb7b33b346f4 SHA512 34b60d0e1eb88529cee6f50c596f6ad5b9e848afe73b2d752f5c1ae9bbe73c9f945d4fe23424fe9e24e78c536a49d684877ea90569f2bc73000bba9bcaecf494 WHIRLPOOL 829b5cfe7d369a85a9a7fe5b859fd99fefc536bb67d9d5e7ebd2a6b9be04f53b191f00b52d42d0a789a4aa4aa8f4154cef7c44d5a8041b731739c46f2ba02eb1 +MISC ChangeLog-2015 5147 SHA256 59c340008e0ebd7c5961b61de962f0b73794e50b42a3e07648306a1b252f087c SHA512 dae95511ba4fc248507a3aa3c2d8f474c4f09ac78e7ab9308059d7bbff151153fe727affe0c9e5ed54d5fe93f166e54155f56425b47ac69971f48d2bb3e23797 WHIRLPOOL 0e47ae59621a8aaa8596697e40bded1c5c2d367fd9cb61c44f8f1216a5ad802e63b75b1d86178c596996faa008677a5ad60207503246115fc14975a6e680d993 +MISC metadata.xml 259 SHA256 e7ac6b67c4c89040a00b23bda7a3b2fd4ac8affc1055daf3015ccc8580640f6f SHA512 ca71b1781806d20022c238e5b5d10f9154c78e0fa51f2603de34c48ecbe4cbc2c3190cf046526840546743644c691ee7fe51e31a4617b01bb7602dde803c1538 WHIRLPOOL 2a2aa19a448eca4dea84d129fd194a7ee4d77bdc1b5120abd3b667ce156cdeeb4616a7c7cd23fbccb7ba08e6e166aaba0fac63a6afa208d826acee37b0e560fe diff --git a/sys-fs/mac-fdisk/files/big_pt.patch b/sys-fs/mac-fdisk/files/big_pt.patch new file mode 100644 index 000000000000..fe9e78ec73de --- /dev/null +++ b/sys-fs/mac-fdisk/files/big_pt.patch @@ -0,0 +1,80 @@ +--- a/partition_map.c ++++ b/partition_map.c +@@ -25,6 +25,11 @@ + * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + ++// ++// Defines ++// ++// #define TEST_COMPUTE ++ + #include <stdio.h> + #include <string.h> + #include <stdlib.h> +@@ -36,6 +41,10 @@ + #include <sys/ioctl.h> + #include "kernel-defs.h" + #include <sys/stat.h> ++#ifdef TEST_COMPUTE ++#include <linux/fs.h> ++#endif ++ + #endif + + #include "partition_map.h" +@@ -45,10 +54,6 @@ + #include "errors.h" + + +-// +-// Defines +-// +-// #define TEST_COMPUTE + + + // +@@ -666,7 +671,7 @@ + loff_t pos; + #endif + char* data; +- unsigned long l, r, x; ++ unsigned long long l, r, x; + int valid; + + #ifdef TEST_COMPUTE +@@ -720,9 +725,11 @@ + } else { + r = r * 2; + } +- if (r >= (1024*1024*1024)) { +- break; +- } ++// There's no explanation for this, but I suspect the author was trying to ++// prevent going over the 32 bit size ++// if (r >= (1024*1024*1024*2)) { ++// break; ++// } + } + // binary search for end + while (l <= r) { +@@ -740,11 +747,17 @@ + if (valid != 0) { + x = x + 1; + } +- // printf("size in blocks = %d\n", x); ++#ifdef TEST_COMPUTE ++ printf("size in blocks = %d\n", x); ++#endif + free(data); + } ++ ++ // Add a warning just in case... ++ if(x > 0x80000000) ++ printf("Warning: Large disks may not work with this tool!\n"); + +- return x; ++ return (unsigned long) x; + } + + diff --git a/sys-fs/mac-fdisk/files/largerthan2gb.patch b/sys-fs/mac-fdisk/files/largerthan2gb.patch new file mode 100644 index 000000000000..b33487ca9e97 --- /dev/null +++ b/sys-fs/mac-fdisk/files/largerthan2gb.patch @@ -0,0 +1,14 @@ +--- a/fdisk.h ++++ b/fdisk.h +@@ -2,6 +2,11 @@ + fdisk.h + */ + ++#ifdef __linux__ ++#define _FILE_OFFSET_BITS 64 ++#define _LARGE_FILES ++#endif ++ + #define SECTOR_SIZE 512 + #define NETBSD_PARTITION 0xa5 + #define cround(n) (((n) + display_factor * unit_flag) / display_factor) diff --git a/sys-fs/mac-fdisk/files/mac-fdisk-0.1-headers.patch b/sys-fs/mac-fdisk/files/mac-fdisk-0.1-headers.patch new file mode 100644 index 000000000000..2ac7eaf41538 --- /dev/null +++ b/sys-fs/mac-fdisk/files/mac-fdisk-0.1-headers.patch @@ -0,0 +1,112 @@ +Include a lot more headers and remove a bunch of braindead __linux__ checks + +--- a/dump.c ++++ b/dump.c +@@ -30,10 +30,8 @@ + */ + + #include <stdio.h> +-#ifndef __linux__ + #include <stdlib.h> + #include <unistd.h> +-#endif + #include <string.h> + #include <errno.h> + #include <fcntl.h> +--- a/errors.c ++++ b/errors.c +@@ -26,9 +26,7 @@ + */ + + #include <stdio.h> +-#ifndef __linux__ + #include <stdlib.h> +-#endif + #include <string.h> + #include <stdarg.h> + +@@ -115,8 +113,8 @@ + va_end(ap); + + #ifdef __linux__ +- if (value > 0 && value < sys_nerr) { +- fprintf(stderr, " (%s)\n", sys_errlist[value]); ++ if (value > 0) { ++ fprintf(stderr, " (%s)\n", strerror(value)); + } else { + fprintf(stderr, "\n"); + } +@@ -144,8 +142,8 @@ + va_end(ap); + + #ifdef __linux__ +- if (value > 0 && value < sys_nerr) { +- fprintf(stderr, " (%s)\n", sys_errlist[value]); ++ if (value > 0) { ++ fprintf(stderr, " (%s)\n", strerror(value)); + } else { + fprintf(stderr, "\n"); + } +--- a/fdisk.c ++++ b/fdisk.c +@@ -62,6 +62,7 @@ + #include <unistd.h> + #include <stdio.h> + #include <stdlib.h> ++#include <string.h> + #include <fcntl.h> + #include <ctype.h> + #include <setjmp.h> +--- a/fdisklabel.c ++++ b/fdisklabel.c +@@ -38,6 +38,7 @@ + #include <unistd.h> + #include <stdio.h> + #include <stdlib.h> ++#include <string.h> + #include <fcntl.h> + #include <ctype.h> + #include <setjmp.h> +--- a/io.c ++++ b/io.c +@@ -26,9 +26,9 @@ + */ + + #include <stdio.h> +-#ifndef __linux__ + #include <stdlib.h> + #include <fcntl.h> ++#ifndef __linux__ + #include <SCSI.h> + #else + #ifdef __GLIBC__ +--- a/partition_map.c ++++ b/partition_map.c +@@ -26,10 +26,9 @@ + */ + + #include <stdio.h> +-#ifndef __linux__ ++#include <string.h> + #include <stdlib.h> + #include <unistd.h> +-#endif + #include <errno.h> + + #include <fcntl.h> +--- a/pdisk.c ++++ b/pdisk.c +@@ -32,10 +32,11 @@ + #include <getopt.h> + #include <stddef.h> + #else +-#include <stdlib.h> +-#include <unistd.h> + #include <SIOUX.h> + #endif ++#include <stdlib.h> ++#include <unistd.h> ++#include <string.h> + #include <errno.h> + + #ifdef __linux__ diff --git a/sys-fs/mac-fdisk/files/mac-fdisk-0.1-r6-ppc64.patch b/sys-fs/mac-fdisk/files/mac-fdisk-0.1-r6-ppc64.patch new file mode 100644 index 000000000000..4fb1617eec8e --- /dev/null +++ b/sys-fs/mac-fdisk/files/mac-fdisk-0.1-r6-ppc64.patch @@ -0,0 +1,481 @@ +--- a/bitfield.c ++++ b/bitfield.c +@@ -67,13 +67,12 @@ + // + // Routines + // +-unsigned long +-bitfield_set(unsigned long *bf, int base, int length, unsigned long value) ++unsigned int ++bitfield_set(unsigned int *bf, int base, int length, unsigned int value) + { +- unsigned long t; +- unsigned long m; ++ unsigned int t; ++ unsigned int m; + int s; +- int i; + + // compute shift & mask, coerce value to correct number of bits, + // zap the old bits and stuff the new value +@@ -86,12 +85,11 @@ + } + + +-unsigned long +-bitfield_get(unsigned long bf, int base, int length) ++unsigned int ++bitfield_get(unsigned int bf, int base, int length) + { +- unsigned long m; ++ unsigned int m; + int s; +- int i; + + // compute shift & mask + // return the correct number of bits (shifted to low end) +--- a/bitfield.h ++++ b/bitfield.h +@@ -63,5 +63,5 @@ + // + // Forward declarations + // +-unsigned long bitfield_set(unsigned long *bf, int base, int length, unsigned long value); +-unsigned long bitfield_get(unsigned long bf, int base, int length); ++unsigned int bitfield_set(unsigned int *bf, int base, int length, unsigned int value); ++unsigned int bitfield_get(unsigned int bf, int base, int length); +--- a/dpme.h ++++ b/dpme.h +@@ -61,7 +61,7 @@ + // + typedef unsigned char u8; + typedef unsigned short u16; +-typedef unsigned long u32; ++typedef unsigned int u32; + + + // Physical block zero of the disk has this format +@@ -113,10 +113,10 @@ + #endif + u32 dpme_boot_block ; + u32 dpme_boot_bytes ; +- u8 *dpme_load_addr ; +- u8 *dpme_load_addr_2 ; +- u8 *dpme_goto_addr ; +- u8 *dpme_goto_addr_2 ; ++ u32 dpme_load_addr ; ++ u32 dpme_load_addr_2 ; ++ u32 dpme_goto_addr ; ++ u32 dpme_goto_addr_2 ; + u32 dpme_checksum ; + char dpme_process_id[16] ; + u32 dpme_boot_args[32] ; +--- a/dump.c ++++ b/dump.c +@@ -61,16 +61,16 @@ + // Global Constants + // + NAMES plist[] = { +- "Drvr", "Apple_Driver", +- "Dr43", "Apple_Driver43", +- "Free", "Apple_Free", +- " HFS", "Apple_HFS", +- " MFS", "Apple_MFS", +- "PDOS", "Apple_PRODOS", +- "junk", "Apple_Scratch", +- "unix", "Apple_UNIX_SVR2", +- " map", "Apple_partition_map", +- 0, 0 ++ {"Drvr"}, {"Apple_Driver"}, ++ {"Dr43"}, {"Apple_Driver43"}, ++ {"Free"}, {"Apple_Free"}, ++ {" HFS"}, {"Apple_HFS"}, ++ {" MFS"}, {"Apple_MFS"}, ++ {"PDOS"}, {"Apple_PRODOS"}, ++ {"junk"}, {"Apple_Scratch"}, ++ {"unix"}, {"Apple_UNIX_SVR2"}, ++ {" map"}, {"Apple_partition_map"}, ++ {0}, {0} + }; + + const char * kStringEmpty = ""; +@@ -162,10 +162,10 @@ + } + #ifdef __mc68000__ + printf("%*s type name " +- "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base"); ++ "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base"); + #else + printf("%*s type name " +- "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base"); ++ "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base"); + #endif + + /* Grok devfs names. (courtesy Colin Walters)*/ +@@ -199,7 +199,6 @@ + partition_map_header *map; + int j; + DPME *p; +- BZB *bp; + char *s; + #ifdef __mc68000__ + int aflag = 1; +@@ -222,13 +221,13 @@ + } + } + #ifdef __mc68000__ +- printf("%s%-2d %.4s %-12.12s ", dev, entry->disk_address, s, p->dpme_name); ++ printf("%s%-2d %.4s %-12.12s ", dev, (int)entry->disk_address, s, p->dpme_name); + #else +- printf("%s%-4d %.4s %-18.32s ", dev, entry->disk_address, s, p->dpme_name); ++ printf("%s%-4d %.4s %-18.32s ", dev, (int)entry->disk_address, s, p->dpme_name); + #endif + } else { + printf("%s%-4d %20.32s %-18.32s ", dev, +- entry->disk_address, p->dpme_type, p->dpme_name); ++ (int)entry->disk_address, p->dpme_type, p->dpme_name); + } + + if (pflag) { +@@ -312,7 +311,6 @@ + int i; + int fd; + DPME * data; +- long t; + + data = (DPME *) malloc(PBLOCK_SIZE); + if (data == NULL) { +@@ -380,7 +378,7 @@ + printf("Header:\n"); + printf("fd=%d (%s)\n", map->fd, (map->regular_file)?"file":"device"); + printf("map %d blocks out of %d, media %u blocks\n", +- map->blocks_in_map, map->maximum_in_map, map->media_size); ++ map->blocks_in_map, map->maximum_in_map, (unsigned int)map->media_size); + printf("Map is%s writeable", (map->writeable)?kStringEmpty:kStringNot); + printf(", but%s changed\n", (map->changed)?kStringEmpty:kStringNot); + printf("\n"); +@@ -424,7 +422,7 @@ + for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) { + p = entry->data; + printf("%2d: %20.32s ", +- entry->disk_address, p->dpme_type); ++ (int)entry->disk_address, p->dpme_type); + printf("%7u @ %-7u ", p->dpme_pblocks, p->dpme_pblock_start); + printf("%c%c%c%c%c%c%c%c%c%c ", + (dpme_valid_get(p))?'V':'v', +@@ -447,7 +445,7 @@ + "goto_address checksum processor\n"); + for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) { + p = entry->data; +- printf("%2d: ", entry->disk_address); ++ printf("%2d: ", (int)entry->disk_address); + printf("%7u ", p->dpme_boot_block); + printf("%7u ", p->dpme_boot_bytes); + printf("%8x ", p->dpme_load_addr); +@@ -464,7 +462,7 @@ + */ + for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) { + p = entry->data; +- printf("%2d: ", entry->disk_address); ++ printf("%2d: ", (int)entry->disk_address); + + bp = (BZB *) (p->dpme_bzb); + j = -1; +--- a/errors.c ++++ b/errors.c +@@ -30,6 +30,7 @@ + #include <string.h> + #include <stdarg.h> + ++#include <errno.h> + #include "errors.h" + #include "pdisk.h" + +@@ -113,7 +114,7 @@ + va_end(ap); + + #ifdef __linux__ +- if (value > 0) { ++ if (value > 0 && value < errno) { + fprintf(stderr, " (%s)\n", strerror(value)); + } else { + fprintf(stderr, "\n"); +@@ -142,7 +143,7 @@ + va_end(ap); + + #ifdef __linux__ +- if (value > 0) { ++ if (value > 0 && value < errno) { + fprintf(stderr, " (%s)\n", strerror(value)); + } else { + fprintf(stderr, "\n"); +--- a/fdisk.c ++++ b/fdisk.c +@@ -71,12 +71,65 @@ + + #include <sys/ioctl.h> + +-typedef unsigned short kdev_t; /* BAD hack; kdev_t is not exported */ +- + #include "kernel-defs.h" + + #include "fdisk.h" + ++/* ----------- */ ++#define _PPC64_TYPES_H ++#define BITS_PER_LONG 64 ++ ++typedef __signed__ char __s8; ++typedef signed char s8; ++typedef unsigned char u8; ++typedef unsigned char __u8; ++ ++typedef __signed__ short __s16; ++typedef signed short s16; ++/*typedef unsigned short __u16;*/ ++typedef unsigned short u16; ++ ++typedef __signed__ int __s32; ++typedef signed int s32; ++/*typedef unsigned int __u32;*/ ++typedef unsigned int u32; ++ ++typedef __signed__ long __s64; ++typedef signed long s64; ++typedef unsigned long __u64; ++typedef unsigned long u64; ++ ++typedef struct { ++ __u32 u[4]; ++} __attribute((aligned(16))) __vector128; ++ ++typedef __vector128 vector128; ++ ++typedef u32 dma_addr_t; ++typedef u64 dma64_addr_t; ++ ++typedef struct { ++ unsigned long entry; ++ unsigned long toc; ++ unsigned long env; ++} func_descr_t; ++ ++typedef unsigned int umode_t; ++ ++#define BITS_TO_LONGS(bits) \ ++ (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG) ++#define DECLARE_BITMAP(name,bits) \ ++ unsigned long name[BITS_TO_LONGS(bits)] ++#define CLEAR_BITMAP(name,bits) \ ++ memset(name, 0, BITS_TO_LONGS(bits)*sizeof(unsigned long)) ++ ++/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */ ++#define HDIO_GETGEO 0x0301 /* get device geometry */ ++ ++#define BLKRRPART _IO(0x12,95) /* re-read partition table */ ++ ++/* ---------- */ ++ + #define hex_val(c) ({ \ + char _c = (c); \ + isdigit(_c) ? _c - '0' : \ +@@ -1416,7 +1469,7 @@ + } + } + +-void main(int argc, char **argv) ++int main(int argc, char **argv) + { + if (argc > 3) + fatal(usage); +--- a/fdisklabel.c ++++ b/fdisklabel.c +@@ -35,6 +35,7 @@ + SUCH DAMAGE. + */ + ++#include <sys/types.h> + #include <unistd.h> + #include <stdio.h> + #include <stdlib.h> +@@ -47,6 +48,8 @@ + #include <sys/ioctl.h> + #include <sys/param.h> + ++#include <asm/types.h> ++ + #include "kernel-defs.h" + + #include "fdisk.h" +@@ -263,8 +266,8 @@ + fprintf(f, "type: %s\n", bsd_dktypenames[lp->d_type]); + else + fprintf(f, "type: %d\n", lp->d_type); +- fprintf(f, "disk: %.*s\n", sizeof(lp->d_typename), lp->d_typename); +- fprintf(f, "label: %.*s\n", sizeof(lp->d_packname), lp->d_packname); ++ fprintf(f, "disk: %.*s\n", (int)sizeof(lp->d_typename), lp->d_typename); ++ fprintf(f, "label: %.*s\n", (int)sizeof(lp->d_packname), lp->d_packname); + fprintf(f, "flags:"); + if (lp->d_flags & BSD_D_REMOVABLE) + fprintf(f, " removable"); +@@ -273,17 +276,17 @@ + if (lp->d_flags & BSD_D_BADSECT) + fprintf(f, " badsect"); + fprintf(f, "\n"); +- fprintf(f, "bytes/sector: %d\n", lp->d_secsize); +- fprintf(f, "sectors/track: %d\n", lp->d_nsectors); +- fprintf(f, "tracks/cylinder: %d\n", lp->d_ntracks); +- fprintf(f, "sectors/cylinder: %d\n", lp->d_secpercyl); +- fprintf(f, "cylinders: %d\n", lp->d_ncylinders); ++ fprintf(f, "bytes/sector: %d\n", (int)lp->d_secsize); ++ fprintf(f, "sectors/track: %d\n", (int)lp->d_nsectors); ++ fprintf(f, "tracks/cylinder: %d\n", (int)lp->d_ntracks); ++ fprintf(f, "sectors/cylinder: %d\n", (int)lp->d_secpercyl); ++ fprintf(f, "cylinders: %d\n", (int)lp->d_ncylinders); + fprintf(f, "rpm: %d\n", lp->d_rpm); + fprintf(f, "interleave: %d\n", lp->d_interleave); + fprintf(f, "trackskew: %d\n", lp->d_trackskew); + fprintf(f, "cylinderskew: %d\n", lp->d_cylskew); +- fprintf(f, "headswitch: %d\t\t# milliseconds\n", lp->d_headswitch); +- fprintf(f, "track-to-track seek: %d\t# milliseconds\n", lp->d_trkseek); ++ fprintf(f, "headswitch: %d\t\t# milliseconds\n", (int)lp->d_headswitch); ++ fprintf(f, "track-to-track seek: %d\t# milliseconds\n", (int)lp->d_trkseek); + fprintf(f, "drivedata: "); + for (i = NDDATA - 1; i >= 0; i--) + if (lp->d_drivedata[i]) +@@ -291,7 +294,7 @@ + if (i < 0) + i = 0; + for (j = 0; j <= i; j++) +- fprintf(f, "%d ", lp->d_drivedata[j]); ++ fprintf(f, "%d ", (int)lp->d_drivedata[j]); + } + fprintf (f, "\n%d partitions:\n", lp->d_npartitions); + fprintf (f, "# size offset fstype [fsize bsize cpg]\n"); +@@ -299,7 +302,7 @@ + for (i = 0; i < lp->d_npartitions; i++, pp++) { + if (pp->p_size) { + fprintf(f, " %c: %8d %8d ", 'a' + i, +- pp->p_size, pp->p_offset); ++ (int)pp->p_size, (int)pp->p_offset); + if ((unsigned) pp->p_fstype < BSD_FSMAXTYPES) + fprintf(f, "%8.8s", bsd_fstypes[pp->p_fstype].name); + else +@@ -308,12 +311,12 @@ + { + case BSD_FS_UNUSED: + fprintf(f, " %5d %5d %5.5s ", +- pp->p_fsize, pp->p_fsize * pp->p_frag, ""); ++ (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag, ""); + break; + + case BSD_FS_BSDFFS: + fprintf(f, " %5d %5d %5d ", +- pp->p_fsize, pp->p_fsize * pp->p_frag, ++ (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag, + pp->p_cpg); + break; + +@@ -323,21 +326,21 @@ + } + fprintf(f, "\t# (Cyl. %4d", + #if 0 +- pp->p_offset / lp->d_secpercyl); /* differs from Linux fdisk */ ++ (int)(pp->p_offset / lp->d_secpercyl)); /* differs from Linux fdisk */ + #else +- pp->p_offset / lp->d_secpercyl + 1); ++ (int)(pp->p_offset / lp->d_secpercyl + 1)); + #endif + if (pp->p_offset % lp->d_secpercyl) + putc('*', f); + else + putc(' ', f); + fprintf(f, "- %d", +- (pp->p_offset + ++ (int)((pp->p_offset + + pp->p_size + lp->d_secpercyl - 1) / + #if 0 +- lp->d_secpercyl - 1); /* differs from Linux fdisk */ ++ lp->d_secpercyl - 1)); /* differs from Linux fdisk */ + #else +- lp->d_secpercyl); ++ lp->d_secpercyl)); + #endif + if (pp->p_size % lp->d_secpercyl) + putc('*', f); +--- a/io.c ++++ b/io.c +@@ -33,8 +33,10 @@ + #else + #ifdef __GLIBC__ + #include <sys/types.h> ++#include <sys/stat.h> + #endif + #endif ++#include <linux/unistd.h> + #include <unistd.h> + #include <string.h> + #include <stdarg.h> +@@ -466,7 +468,7 @@ + long t; + + if (rflag) { +- printf("Can't write block %u to file", num); ++ printf("Can't write block %u to file", (unsigned int)num); + return 0; + } + #ifndef __linux__ +--- a/partition_map.c ++++ b/partition_map.c +@@ -105,7 +105,6 @@ + int fd; + partition_map_header * map; + int writeable; +- unsigned long length; + #ifdef __linux__ + struct stat info; + #endif +@@ -402,9 +401,7 @@ + { + int fd; + partition_map_header * map; +- unsigned long length; + DPME *data; +- int ok; + unsigned long number; + #ifdef __linux__ + struct stat info; +@@ -433,13 +430,13 @@ + map->maximum_in_map = -1; + + number = compute_device_size(fd); +- printf("size of 'device' is %u blocks: ", number); ++ printf("size of 'device' is %u blocks: ", (unsigned int)number); + flush_to_newline(0); + get_number_argument("what should be the size? ", (long *)&number, number); + if (number < 4) { + number = 4; + } +- printf("new size of 'device' is %u blocks\n", number); ++ printf("new size of 'device' is %u blocks\n", (unsigned int)number); + map->media_size = number; + + #ifdef __linux__ +--- a/pdisk.c ++++ b/pdisk.c +@@ -437,7 +437,6 @@ + { + long base; + long length; +- long mult; + char *name; + char *type_name; + +@@ -599,7 +598,6 @@ + void + do_reorder(partition_map_header *map) + { +- partition_map * cur; + long old_index; + long index; + diff --git a/sys-fs/mac-fdisk/files/mac-fdisk-0.1_p16-ppc64.patch b/sys-fs/mac-fdisk/files/mac-fdisk-0.1_p16-ppc64.patch new file mode 100644 index 000000000000..616adc5b811f --- /dev/null +++ b/sys-fs/mac-fdisk/files/mac-fdisk-0.1_p16-ppc64.patch @@ -0,0 +1,455 @@ +--- a/bitfield.c ++++ b/bitfield.c +@@ -67,13 +67,12 @@ + // + // Routines + // +-unsigned long +-bitfield_set(unsigned long *bf, int base, int length, unsigned long value) ++unsigned int ++bitfield_set(unsigned int *bf, int base, int length, unsigned int value) + { +- unsigned long t; +- unsigned long m; ++ unsigned int t; ++ unsigned int m; + int s; +- int i; + + // compute shift & mask, coerce value to correct number of bits, + // zap the old bits and stuff the new value +@@ -86,12 +85,11 @@ + } + + +-unsigned long +-bitfield_get(unsigned long bf, int base, int length) ++unsigned int ++bitfield_get(unsigned int bf, int base, int length) + { +- unsigned long m; ++ unsigned int m; + int s; +- int i; + + // compute shift & mask + // return the correct number of bits (shifted to low end) +--- a/bitfield.h ++++ b/bitfield.h +@@ -63,5 +63,5 @@ + // + // Forward declarations + // +-unsigned long bitfield_set(unsigned long *bf, int base, int length, unsigned long value); +-unsigned long bitfield_get(unsigned long bf, int base, int length); ++unsigned int bitfield_set(unsigned int *bf, int base, int length, unsigned int value); ++unsigned int bitfield_get(unsigned int bf, int base, int length); +--- a/dump.c ++++ b/dump.c +@@ -61,16 +61,16 @@ + // Global Constants + // + NAMES plist[] = { +- "Drvr", "Apple_Driver", +- "Dr43", "Apple_Driver43", +- "Free", "Apple_Free", +- " HFS", "Apple_HFS", +- " MFS", "Apple_MFS", +- "PDOS", "Apple_PRODOS", +- "junk", "Apple_Scratch", +- "unix", "Apple_UNIX_SVR2", +- " map", "Apple_partition_map", +- 0, 0 ++ {"Drvr"}, {"Apple_Driver"}, ++ {"Dr43"}, {"Apple_Driver43"}, ++ {"Free"}, {"Apple_Free"}, ++ {" HFS"}, {"Apple_HFS"}, ++ {" MFS"}, {"Apple_MFS"}, ++ {"PDOS"}, {"Apple_PRODOS"}, ++ {"junk"}, {"Apple_Scratch"}, ++ {"unix"}, {"Apple_UNIX_SVR2"}, ++ {" map"}, {"Apple_partition_map"}, ++ {0}, {0} + }; + + const char * kStringEmpty = ""; +@@ -162,10 +162,10 @@ + } + #ifdef __mc68000__ + printf("%*s type name " +- "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base"); ++ "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base"); + #else + printf("%*s type name " +- "%*s %-*s ( size ) system\n", strlen(map->name)+1, "#", j, "length", j, "base"); ++ "%*s %-*s ( size ) system\n", (int)strlen(map->name)+1, "#", j, "length", j, "base"); + #endif + + /* Grok devfs names. (courtesy Colin Walters)*/ +@@ -199,7 +199,6 @@ + partition_map_header *map; + int j; + DPME *p; +- BZB *bp; + char *s; + #ifdef __mc68000__ + int aflag = 1; +@@ -222,13 +221,13 @@ + } + } + #ifdef __mc68000__ +- printf("%s%-2d %.4s %-12.12s ", dev, entry->disk_address, s, p->dpme_name); ++ printf("%s%-2d %.4s %-12.12s ", dev, (int)entry->disk_address, s, p->dpme_name); + #else +- printf("%s%-4d %.4s %-18.32s ", dev, entry->disk_address, s, p->dpme_name); ++ printf("%s%-4d %.4s %-18.32s ", dev, (int)entry->disk_address, s, p->dpme_name); + #endif + } else { + printf("%s%-4d %20.32s %-18.32s ", dev, +- entry->disk_address, p->dpme_type, p->dpme_name); ++ (int)entry->disk_address, p->dpme_type, p->dpme_name); + } + + if (pflag) { +@@ -312,7 +311,6 @@ + int i; + int fd; + DPME * data; +- long t; + + data = (DPME *) malloc(PBLOCK_SIZE); + if (data == NULL) { +@@ -380,7 +378,7 @@ + printf("Header:\n"); + printf("fd=%d (%s)\n", map->fd, (map->regular_file)?"file":"device"); + printf("map %d blocks out of %d, media %u blocks\n", +- map->blocks_in_map, map->maximum_in_map, map->media_size); ++ map->blocks_in_map, map->maximum_in_map, (unsigned int)map->media_size); + printf("Map is%s writeable", (map->writeable)?kStringEmpty:kStringNot); + printf(", but%s changed\n", (map->changed)?kStringEmpty:kStringNot); + printf("\n"); +@@ -424,7 +422,7 @@ + for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) { + p = entry->data; + printf("%2d: %20.32s ", +- entry->disk_address, p->dpme_type); ++ (int)entry->disk_address, p->dpme_type); + printf("%7u @ %-7u ", p->dpme_pblocks, p->dpme_pblock_start); + printf("%c%c%c%c%c%c%c%c%c%c ", + (dpme_valid_get(p))?'V':'v', +@@ -447,7 +445,7 @@ + "goto_address checksum processor\n"); + for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) { + p = entry->data; +- printf("%2d: ", entry->disk_address); ++ printf("%2d: ", (int)entry->disk_address); + printf("%7u ", p->dpme_boot_block); + printf("%7u ", p->dpme_boot_bytes); + printf("%8x ", p->dpme_load_addr); +@@ -464,7 +462,7 @@ + */ + for (entry = map->disk_order; entry != NULL; entry = entry->next_on_disk) { + p = entry->data; +- printf("%2d: ", entry->disk_address); ++ printf("%2d: ", (int)entry->disk_address); + + bp = (BZB *) (p->dpme_bzb); + j = -1; +--- a/errors.c ++++ b/errors.c +@@ -30,6 +30,7 @@ + #include <string.h> + #include <stdarg.h> + ++#include <errno.h> + #include "errors.h" + #include "pdisk.h" + +@@ -113,7 +114,7 @@ + va_end(ap); + + #ifdef __linux__ +- if (value > 0) { ++ if (value > 0 && value < errno) { + fprintf(stderr, " (%s)\n", strerror(value)); + } else { + fprintf(stderr, "\n"); +@@ -142,7 +143,7 @@ + va_end(ap); + + #ifdef __linux__ +- if (value > 0) { ++ if (value > 0 && value < errno) { + fprintf(stderr, " (%s)\n", strerror(value)); + } else { + fprintf(stderr, "\n"); +--- a/fdisk.c ++++ b/fdisk.c +@@ -71,12 +71,65 @@ + + #include <sys/ioctl.h> + +-typedef unsigned short kdev_t; /* BAD hack; kdev_t is not exported */ +- + #include "kernel-defs.h" + + #include "fdisk.h" + ++/* ----------- */ ++#define _PPC64_TYPES_H ++#define BITS_PER_LONG 64 ++ ++typedef __signed__ char __s8; ++typedef signed char s8; ++typedef unsigned char u8; ++typedef unsigned char __u8; ++ ++typedef __signed__ short __s16; ++typedef signed short s16; ++/*typedef unsigned short __u16;*/ ++typedef unsigned short u16; ++ ++typedef __signed__ int __s32; ++typedef signed int s32; ++/*typedef unsigned int __u32;*/ ++typedef unsigned int u32; ++ ++typedef __signed__ long __s64; ++typedef signed long s64; ++typedef unsigned long __u64; ++typedef unsigned long u64; ++ ++typedef struct { ++ __u32 u[4]; ++} __attribute((aligned(16))) __vector128; ++ ++typedef __vector128 vector128; ++ ++typedef u32 dma_addr_t; ++typedef u64 dma64_addr_t; ++ ++typedef struct { ++ unsigned long entry; ++ unsigned long toc; ++ unsigned long env; ++} func_descr_t; ++ ++typedef unsigned int umode_t; ++ ++#define BITS_TO_LONGS(bits) \ ++ (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG) ++#define DECLARE_BITMAP(name,bits) \ ++ unsigned long name[BITS_TO_LONGS(bits)] ++#define CLEAR_BITMAP(name,bits) \ ++ memset(name, 0, BITS_TO_LONGS(bits)*sizeof(unsigned long)) ++ ++/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */ ++#define HDIO_GETGEO 0x0301 /* get device geometry */ ++ ++#define BLKRRPART _IO(0x12,95) /* re-read partition table */ ++ ++/* ---------- */ ++ + #define hex_val(c) ({ \ + char _c = (c); \ + isdigit(_c) ? _c - '0' : \ +@@ -1416,7 +1469,7 @@ + } + } + +-void main(int argc, char **argv) ++int main(int argc, char **argv) + { + if (argc > 3) + fatal(usage); +--- a/fdisklabel.c ++++ b/fdisklabel.c +@@ -35,6 +35,7 @@ + SUCH DAMAGE. + */ + ++#include <sys/types.h> + #include <unistd.h> + #include <stdio.h> + #include <stdlib.h> +@@ -47,6 +48,8 @@ + #include <sys/ioctl.h> + #include <sys/param.h> + ++#include <asm/types.h> ++ + #include "kernel-defs.h" + + #include "fdisk.h" +@@ -263,8 +266,8 @@ + fprintf(f, "type: %s\n", bsd_dktypenames[lp->d_type]); + else + fprintf(f, "type: %d\n", lp->d_type); +- fprintf(f, "disk: %.*s\n", sizeof(lp->d_typename), lp->d_typename); +- fprintf(f, "label: %.*s\n", sizeof(lp->d_packname), lp->d_packname); ++ fprintf(f, "disk: %.*s\n", (int)sizeof(lp->d_typename), lp->d_typename); ++ fprintf(f, "label: %.*s\n", (int)sizeof(lp->d_packname), lp->d_packname); + fprintf(f, "flags:"); + if (lp->d_flags & BSD_D_REMOVABLE) + fprintf(f, " removable"); +@@ -273,17 +276,17 @@ + if (lp->d_flags & BSD_D_BADSECT) + fprintf(f, " badsect"); + fprintf(f, "\n"); +- fprintf(f, "bytes/sector: %d\n", lp->d_secsize); +- fprintf(f, "sectors/track: %d\n", lp->d_nsectors); +- fprintf(f, "tracks/cylinder: %d\n", lp->d_ntracks); +- fprintf(f, "sectors/cylinder: %d\n", lp->d_secpercyl); +- fprintf(f, "cylinders: %d\n", lp->d_ncylinders); ++ fprintf(f, "bytes/sector: %d\n", (int)lp->d_secsize); ++ fprintf(f, "sectors/track: %d\n", (int)lp->d_nsectors); ++ fprintf(f, "tracks/cylinder: %d\n", (int)lp->d_ntracks); ++ fprintf(f, "sectors/cylinder: %d\n", (int)lp->d_secpercyl); ++ fprintf(f, "cylinders: %d\n", (int)lp->d_ncylinders); + fprintf(f, "rpm: %d\n", lp->d_rpm); + fprintf(f, "interleave: %d\n", lp->d_interleave); + fprintf(f, "trackskew: %d\n", lp->d_trackskew); + fprintf(f, "cylinderskew: %d\n", lp->d_cylskew); +- fprintf(f, "headswitch: %d\t\t# milliseconds\n", lp->d_headswitch); +- fprintf(f, "track-to-track seek: %d\t# milliseconds\n", lp->d_trkseek); ++ fprintf(f, "headswitch: %d\t\t# milliseconds\n", (int)lp->d_headswitch); ++ fprintf(f, "track-to-track seek: %d\t# milliseconds\n", (int)lp->d_trkseek); + fprintf(f, "drivedata: "); + for (i = NDDATA - 1; i >= 0; i--) + if (lp->d_drivedata[i]) +@@ -291,7 +294,7 @@ + if (i < 0) + i = 0; + for (j = 0; j <= i; j++) +- fprintf(f, "%d ", lp->d_drivedata[j]); ++ fprintf(f, "%d ", (int)lp->d_drivedata[j]); + } + fprintf (f, "\n%d partitions:\n", lp->d_npartitions); + fprintf (f, "# size offset fstype [fsize bsize cpg]\n"); +@@ -299,7 +302,7 @@ + for (i = 0; i < lp->d_npartitions; i++, pp++) { + if (pp->p_size) { + fprintf(f, " %c: %8d %8d ", 'a' + i, +- pp->p_size, pp->p_offset); ++ (int)pp->p_size, (int)pp->p_offset); + if ((unsigned) pp->p_fstype < BSD_FSMAXTYPES) + fprintf(f, "%8.8s", bsd_fstypes[pp->p_fstype].name); + else +@@ -308,12 +311,12 @@ + { + case BSD_FS_UNUSED: + fprintf(f, " %5d %5d %5.5s ", +- pp->p_fsize, pp->p_fsize * pp->p_frag, ""); ++ (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag, ""); + break; + + case BSD_FS_BSDFFS: + fprintf(f, " %5d %5d %5d ", +- pp->p_fsize, pp->p_fsize * pp->p_frag, ++ (int)pp->p_fsize, (int)pp->p_fsize * pp->p_frag, + pp->p_cpg); + break; + +@@ -323,21 +326,21 @@ + } + fprintf(f, "\t# (Cyl. %4d", + #if 0 +- pp->p_offset / lp->d_secpercyl); /* differs from Linux fdisk */ ++ (int)(pp->p_offset / lp->d_secpercyl)); /* differs from Linux fdisk */ + #else +- pp->p_offset / lp->d_secpercyl + 1); ++ (int)(pp->p_offset / lp->d_secpercyl + 1)); + #endif + if (pp->p_offset % lp->d_secpercyl) + putc('*', f); + else + putc(' ', f); + fprintf(f, "- %d", +- (pp->p_offset + ++ (int)((pp->p_offset + + pp->p_size + lp->d_secpercyl - 1) / + #if 0 +- lp->d_secpercyl - 1); /* differs from Linux fdisk */ ++ lp->d_secpercyl - 1)); /* differs from Linux fdisk */ + #else +- lp->d_secpercyl); ++ lp->d_secpercyl)); + #endif + if (pp->p_size % lp->d_secpercyl) + putc('*', f); +--- a/io.c ++++ b/io.c +@@ -33,8 +33,10 @@ + #else + #ifdef __GLIBC__ + #include <sys/types.h> ++#include <sys/stat.h> + #endif + #endif ++#include <linux/unistd.h> + #include <unistd.h> + #include <string.h> + #include <stdarg.h> +@@ -466,7 +468,7 @@ + long t; + + if (rflag) { +- printf("Can't write block %u to file", num); ++ printf("Can't write block %u to file", (unsigned int)num); + return 0; + } + #ifndef __linux__ +--- a/partition_map.c ++++ b/partition_map.c +@@ -105,7 +105,6 @@ + int fd; + partition_map_header * map; + int writeable; +- unsigned long length; + #ifdef __linux__ + struct stat info; + #endif +@@ -402,9 +401,7 @@ + { + int fd; + partition_map_header * map; +- unsigned long length; + DPME *data; +- int ok; + unsigned long number; + #ifdef __linux__ + struct stat info; +@@ -433,13 +430,13 @@ + map->maximum_in_map = -1; + + number = compute_device_size(fd); +- printf("size of 'device' is %u blocks: ", number); ++ printf("size of 'device' is %u blocks: ", (unsigned int)number); + flush_to_newline(0); + get_number_argument("what should be the size? ", (long *)&number, number); + if (number < 4) { + number = 4; + } +- printf("new size of 'device' is %u blocks\n", number); ++ printf("new size of 'device' is %u blocks\n", (unsigned int)number); + map->media_size = number; + + #ifdef __linux__ +--- a/pdisk.c ++++ b/pdisk.c +@@ -437,7 +437,6 @@ + { + long base; + long length; +- long mult; + char *name; + char *type_name; + +@@ -599,7 +598,6 @@ + void + do_reorder(partition_map_header *map) + { +- partition_map * cur; + long old_index; + long index; + diff --git a/sys-fs/mac-fdisk/files/mac-fdisk-amd64.patch b/sys-fs/mac-fdisk/files/mac-fdisk-amd64.patch new file mode 100644 index 000000000000..8658ba9a60d5 --- /dev/null +++ b/sys-fs/mac-fdisk/files/mac-fdisk-amd64.patch @@ -0,0 +1,190 @@ +--- a/fdisklabel.c ++++ b/fdisklabel.c +@@ -72,7 +72,7 @@ + static int bsd_readlabel (struct partition *p, struct disklabel *d); + static int bsd_writelabel (struct partition *p, struct disklabel *d); + static void sync_disks (void); +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + static int bsd_translate_fstype (int linux_type); + static void bsd_link_part (void); + #endif +@@ -82,7 +82,7 @@ + + static struct disklabel bsd_dlabel; + static char buffer[BSD_BBSIZE]; +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + static struct partition *bsd_part; + static int bsd_part_index; + #endif +@@ -99,13 +99,13 @@ + " n add a new BSD partition\n" + " p print BSD partition table\n" + " q quit without saving changes\n" +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + " r return to main menu\n" + #endif + " s show complete disklabel\n" + " t change a partition's filesystem id\n" + " w write disklabel to disk\n" +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + " x link BSD partition to non-BSD partition" + #endif + ); +@@ -114,7 +114,7 @@ + void + bselect (void) + { +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + int t; + + for (t=0; t<4; t++) +@@ -185,7 +185,7 @@ + case 'w': + bsd_write_disklabel (); + break; +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + case 'r': + return; + case 'x': +@@ -223,7 +223,7 @@ + if (!bsd_check_new_partition (&i)) + return; + +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + begin = bsd_part -> start_sect; + end = begin + bsd_part -> nr_sects - 1; + #elif defined (__alpha__) || defined (__powerpc__) +@@ -257,7 +257,7 @@ + + if (show_all) + { +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + fprintf(f, "# %s%d:\n", disk_device, bsd_part_index+1); + #elif defined (__alpha__) || defined (__powerpc__) + fprintf(f, "# %s:\n", disk_device); +@@ -352,7 +352,7 @@ + static void + bsd_write_disklabel (void) + { +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + printf ("Writing disklabel to %s%d.\n", disk_device, bsd_part_index+1); + bsd_writelabel (bsd_part, &bsd_dlabel); + #elif defined (__alpha__) || defined (__powerpc__) +@@ -366,7 +366,7 @@ + { + char c; + +-#if defined (i386) ++#if defined (i386) || defined(__amd64) + fprintf (stderr, "%s%d contains no disklabel.\n", + disk_device, bsd_part_index+1); + #elif defined (__alpha__) || defined (__powerpc__) +@@ -376,7 +376,7 @@ + while (1) + if ((c = tolower (read_char ("Do you want to create a disklabel? (y/n) "))) == 'y') + { +-#if defined (i386) ++#if defined (i386) || defined(__amd64) + if (bsd_initlabel (bsd_part, &bsd_dlabel, bsd_part_index) == 1) + #elif defined (__alpha__) || defined (__powerpc__) || defined (__mc68000__) + if (bsd_initlabel (NULL, &bsd_dlabel, 0) == 1) +@@ -507,7 +507,7 @@ + + bcopy (&dl, d, sizeof (struct disklabel)); + +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + sector = bsd_part -> start_sect; + #elif defined (__powerpc__) + sector = 0; +@@ -521,7 +521,7 @@ + if (BSD_BBSIZE != write (fd, buffer, BSD_BBSIZE)) + fatal (unable_to_write); + +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + printf ("Bootstrap installed on %s%d.\n", disk_device, bsd_part_index+1); + #elif defined (__alpha__) || defined (__powerpc__) + printf ("Bootstrap installed on %s.\n", disk_device); +@@ -625,7 +625,7 @@ + d -> d_subtype = BSD_DSTYPE_INDOSPART & pindex; + #endif + +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + d -> d_flags = BSD_D_DOSPART; + #else + d -> d_flags = 0; +@@ -648,7 +648,7 @@ + d -> d_bbsize = BSD_BBSIZE; + d -> d_sbsize = BSD_SBSIZE; + +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + d -> d_npartitions = 4; + pp = &d -> d_partitions[2]; /* Partition C should be the NetBSD partition */ + pp -> p_offset = p -> start_sect; +@@ -674,7 +674,7 @@ + { + int t, sector; + +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + sector = p -> start_sect; + #elif defined (__alpha__) || defined (__powerpc__) + sector = 0; +@@ -708,7 +708,7 @@ + { + int sector; + +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + sector = p -> start_sect + BSD_LABELSECTOR; + #elif defined (__alpha__) || defined (__powerpc__) + sector = BSD_LABELSECTOR; +@@ -749,7 +749,7 @@ + sleep (4); + } + +-#if defined (i386) ++#if defined (i386) || defined (__amd64) + static int + bsd_translate_fstype (int linux_type) + { +--- a/fdisklabel.h ++++ b/fdisklabel.h +@@ -35,7 +35,7 @@ + #define BSD_MAXPARTITIONS 8 + #define BSD_LINUX_BOOTDIR "/usr/ucb/mdec" + +-#if defined (i386) ++#if defined (i386) || defined(__amd64) + #define BSD_LABELSECTOR 1 + #define BSD_LABELOFFSET 0 + #define BSD_BBSIZE 8192 /* size of boot area, with label */ +--- a/kernel-defs.h ++++ b/kernel-defs.h +@@ -15,8 +15,14 @@ + /* from asm/ioctl.h */ + #define _IOC_NRBITS 8 + #define _IOC_TYPEBITS 8 ++ ++#ifndef _IOC_SIZEBITS + #define _IOC_SIZEBITS 13 ++#endif ++ ++#ifndef _IOC_DIRBITS + #define _IOC_DIRBITS 3 ++#endif + + #define _IOC_NRMASK ((1 << _IOC_NRBITS)-1) + #define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1) diff --git a/sys-fs/mac-fdisk/mac-fdisk-0.1-r7.ebuild b/sys-fs/mac-fdisk/mac-fdisk-0.1-r7.ebuild new file mode 100644 index 000000000000..c8b135ad6cc6 --- /dev/null +++ b/sys-fs/mac-fdisk/mac-fdisk-0.1-r7.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +inherit eutils toolchain-funcs + +DEBRV=13 +DESCRIPTION="Mac/PowerMac disk partitioning utility" +HOMEPAGE="ftp://ftp.mklinux.apple.com/pub/Other_Tools/" +SRC_URI="mirror://debian/pool/main/m/mac-fdisk/${PN}_${PV}.orig.tar.gz + mirror://debian/pool/main/m/mac-fdisk/${PN}_${PV}-${DEBRV}.diff.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc ppc64 x86" +IUSE="" + +DEPEND="" +RDEPEND="${DEPEND}" + +src_unpack() { + unpack mac-fdisk_${PV}.orig.tar.gz + mv mac-fdisk-${PV}.orig ${P} + cd "${S}" + epatch "${DISTDIR}"/${PN}_${PV}-${DEBRV}.diff.gz + + epatch "${FILESDIR}"/largerthan2gb.patch + epatch "${FILESDIR}"/${P}-headers.patch + + ### Patch for bug #142737 + epatch "${FILESDIR}"/${PN}-0.1-r6-ppc64.patch + + ### Patch for building on amd64 + epatch "${FILESDIR}"/${PN}-amd64.patch + + ### Patch for large (>550GB disks) + ### Note that >=2TB disks may not work due to limitations of the Mac + ### Partition Table structure, this needs to be investigated + epatch "${FILESDIR}"/big_pt.patch +} + +src_compile() { + emake CC="$(tc-getCC)" || die "emake failed!" +} + +src_install() { + into / + newsbin pdisk mac-fdisk || die + newsbin fdisk pmac-fdisk || die + + into /usr + newman mac-fdisk.8.in mac-fdisk.8 + newman pmac-fdisk.8.in pmac-fdisk.8 + dodoc README HISTORY +} diff --git a/sys-fs/mac-fdisk/mac-fdisk-0.1_p16.ebuild b/sys-fs/mac-fdisk/mac-fdisk-0.1_p16.ebuild new file mode 100644 index 000000000000..19b9fff8a39e --- /dev/null +++ b/sys-fs/mac-fdisk/mac-fdisk-0.1_p16.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +inherit eutils toolchain-funcs + +DESCRIPTION="Mac/PowerMac disk partitioning utility" +HOMEPAGE="ftp://ftp.mklinux.apple.com/pub/Other_Tools/" +SRC_URI=" + mirror://debian/pool/main/m/mac-fdisk/${PN}_${PV/_p*}.orig.tar.gz + mirror://debian/pool/main/m/mac-fdisk/${PN}_${PV/_p*}-${PV/*_p}.diff.gz +" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" + +S=${WORKDIR}/${P/_p*}.orig + +src_prepare() { + epatch "${WORKDIR}"/${PN}_${PV/_p*}-${PV/*_p}.diff + + epatch "${FILESDIR}"/largerthan2gb.patch + + epatch "${FILESDIR}"/${PN}-0.1-headers.patch + + ### Patch for bug #142737 + epatch "${FILESDIR}"/${PN}-0.1_p16-ppc64.patch + + ### Patch for building on amd64 + epatch "${FILESDIR}"/${PN}-amd64.patch + + ### Patch for large (>550GB disks) + ### Note that >=2TB disks may not work due to limitations of the Mac + ### Partition Table structure, this needs to be investigated + epatch "${FILESDIR}"/big_pt.patch +} + +src_compile() { + emake CC="$(tc-getCC)" +} + +src_install() { + into / + newsbin pdisk mac-fdisk + newsbin fdisk pmac-fdisk + + into /usr + newman mac-fdisk.8.in mac-fdisk.8 + newman pmac-fdisk.8.in pmac-fdisk.8 + dodoc README HISTORY +} diff --git a/sys-fs/mac-fdisk/metadata.xml b/sys-fs/mac-fdisk/metadata.xml new file mode 100644 index 000000000000..5eb05198076b --- /dev/null +++ b/sys-fs/mac-fdisk/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>ppc@gentoo.org</email> + <name>Gentoo Linux PowerPC Development</name> +</maintainer> +</pkgmetadata> |