dosfstools: update native to 2.11

This unify recipes for target and native builds and also drops the the
already merged patches.

(From OE-Core rev: 3a401ddce55e185c8ccfdc43c1440fd77daff9ae)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Otavio Salvador 2012-04-11 10:51:16 -07:00 committed by Richard Purdie
parent f57eca6f28
commit ef6062981b
7 changed files with 69 additions and 261 deletions

View File

@ -1,19 +0,0 @@
# dosfstools-native OE build file
# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
# Released under the MIT license (see packages/COPYING)
require dosfstools_${PV}.bb
PR="r5"
SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \
file://mkdosfs-bootcode.patch \
file://mkdosfs-dir.patch \
file://alignment_hack.patch \
file://dosfstools-2.10-kernel-2.6.patch \
file://msdos_fat12_undefined.patch \
file://dosfstools-msdos_fs-types.patch \
file://include-linux-types.patch \
file://2.6.20-syscall.patch"
inherit native

View File

@ -1,72 +0,0 @@
Only use the system's llseek().
Upstream-Status: Inappropriate [licensing]
We're tracking an old release of dosfstools due to licensing issues.
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Index: dosfstools-2.10/dosfsck/io.c
===================================================================
--- dosfstools-2.10.orig/dosfsck/io.c 2007-06-07 16:15:52.000000000 +0200
+++ dosfstools-2.10/dosfsck/io.c 2007-06-07 16:16:06.000000000 +0200
@@ -42,28 +42,11 @@
/* Use the _llseek system call directly, because there (once?) was a bug in
* the glibc implementation of it. */
#include <linux/unistd.h>
-#if defined __alpha || defined __ia64__ || defined __s390x__ || defined __x86_64__ || defined __ppc64__
/* On alpha, the syscall is simply lseek, because it's a 64 bit system. */
static loff_t llseek( int fd, loff_t offset, int whence )
{
return lseek(fd, offset, whence);
}
-#else
-# ifndef __NR__llseek
-# error _llseek system call not present
-# endif
-static _syscall5( int, _llseek, uint, fd, ulong, hi, ulong, lo,
- loff_t *, res, uint, wh );
-
-static loff_t llseek( int fd, loff_t offset, int whence )
-{
- loff_t actual;
-
- if (_llseek(fd, offset>>32, offset&0xffffffff, &actual, whence) != 0)
- return (loff_t)-1;
- return actual;
-}
-#endif
void fs_open(char *path,int rw)
Index: dosfstools-2.10/mkdosfs/mkdosfs.c
===================================================================
--- dosfstools-2.10.orig/mkdosfs/mkdosfs.c 2007-06-07 16:15:11.000000000 +0200
+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2007-06-07 16:15:30.000000000 +0200
@@ -116,27 +116,11 @@
/* Use the _llseek system call directly, because there (once?) was a bug in
* the glibc implementation of it. */
#include <linux/unistd.h>
-#if defined __alpha || defined __ia64__ || defined __s390x__ || defined __x86_64__ || defined __ppc64__
/* On alpha, the syscall is simply lseek, because it's a 64 bit system. */
static loff_t llseek( int fd, loff_t offset, int whence )
{
return lseek(fd, offset, whence);
}
-#else
-# ifndef __NR__llseek
-# error _llseek system call not present
-# endif
-static _syscall5( int, _llseek, uint, fd, ulong, hi, ulong, lo,
- loff_t *, res, uint, wh );
-static loff_t llseek( int fd, loff_t offset, int whence )
-{
- loff_t actual;
-
- if (_llseek(fd, offset>>32, offset&0xffffffff, &actual, whence) != 0)
- return (loff_t)-1;
- return actual;
-}
-#endif
#define ROUND_UP(value, divisor) (value + (divisor - (value % divisor))) / divisor

View File

@ -1,74 +0,0 @@
Submitted By: Jim Gifford (jim at linuxfromscratch dot org)
Date: 2004-02-09
Initial Package Version: 2.6
Origin: Jim Gifford
Upstream-Status: Accepted
Description: Fixes Compile Issues with the 2.6 Kernel
--- dosfstools-2.10/dosfsck/common.h.orig 2004-02-09 18:37:59.056737458 +0000
+++ dosfstools-2.10/dosfsck/common.h 2004-02-09 18:38:18.333392952 +0000
@@ -2,6 +2,13 @@
/* Written 1993 by Werner Almesberger */
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+ #define __KERNEL__
+ #include <asm/types.h>
+ #undef __KERNEL__
+ #define MSDOS_FAT12 4084 /* maximum number of clusters in a 12 bit FAT */
+#endif
#ifndef _COMMON_H
#define _COMMON_H
--- dosfstools-2.10/dosfsck/file.c.orig 2004-02-09 18:40:52.016728845 +0000
+++ dosfstools-2.10/dosfsck/file.c 2004-02-09 18:40:03.665117865 +0000
@@ -15,6 +15,14 @@
#define _LINUX_STAT_H /* hack to avoid inclusion of <linux/stat.h> */
#define _LINUX_STRING_H_ /* hack to avoid inclusion of <linux/string.h>*/
#define _LINUX_FS_H /* hack to avoid inclusion of <linux/fs.h> */
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+ #define __KERNEL__
+ #include <asm/types.h>
+ #undef __KERNEL__
+#endif
+
#include <linux/msdos_fs.h>
#include "common.h"
--- dosfstools-2.10/dosfsck/dosfsck.h.orig 2004-02-09 18:57:11.022870974 +0000
+++ dosfstools-2.10/dosfsck/dosfsck.h 2004-02-09 18:56:20.628614393 +0000
@@ -13,6 +13,15 @@
#define _LINUX_STAT_H /* hack to avoid inclusion of <linux/stat.h> */
#define _LINUX_STRING_H_ /* hack to avoid inclusion of <linux/string.h>*/
#define _LINUX_FS_H /* hack to avoid inclusion of <linux/fs.h> */
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+ #define __KERNEL__
+ #include <asm/types.h>
+ #include <asm/byteorder.h>
+ #undef __KERNEL__
+#endif
+
#include <linux/msdos_fs.h>
/* 2.1 kernels use le16_to_cpu() type functions for CF_LE_W & Co., but don't
--- dosfstools-2.10/mkdosfs/mkdosfs.c.orig 2004-02-09 18:31:41.997157413 +0000
+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2004-02-09 18:34:07.311945252 +0000
@@ -66,6 +66,13 @@
#include <time.h>
#include <errno.h>
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+ #define __KERNEL__
+ #include <asm/types.h>
+ #undef __KERNEL__
+#endif
+
#if __BYTE_ORDER == __BIG_ENDIAN
#include <asm/byteorder.h>

View File

@ -5,9 +5,10 @@ We're tracking an old release of dosfstools due to licensing issues.
Signed-off-by: Scott Garman <scott.a.garman@intel.com> Signed-off-by: Scott Garman <scott.a.garman@intel.com>
diff -urN dosfstools-2.10.orig/mkdosfs/ChangeLog dosfstools-2.10/mkdosfs/ChangeLog Index: dosfstools-2.11/mkdosfs/ChangeLog
--- dosfstools-2.10.orig/mkdosfs/ChangeLog 1997-06-18 03:09:38.000000000 -0700 ===================================================================
+++ dosfstools-2.10/mkdosfs/ChangeLog 2004-08-02 20:57:57.734939816 -0700 --- dosfstools-2.11.orig/mkdosfs/ChangeLog 1997-06-18 10:09:38.000000000 +0000
+++ dosfstools-2.11/mkdosfs/ChangeLog 2011-12-06 12:14:23.634011558 +0000
@@ -1,3 +1,14 @@ @@ -1,3 +1,14 @@
+19th June 2003 Sam Bingner (sam@bingner.com) +19th June 2003 Sam Bingner (sam@bingner.com)
+ +
@ -23,10 +24,11 @@ diff -urN dosfstools-2.10.orig/mkdosfs/ChangeLog dosfstools-2.10/mkdosfs/ChangeL
28th January 1995 H. Peter Anvin (hpa@yggdrasil.com) 28th January 1995 H. Peter Anvin (hpa@yggdrasil.com)
Better algorithm to select cluster sizes on large filesystems. Better algorithm to select cluster sizes on large filesystems.
diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.8 dosfstools-2.10/mkdosfs/mkdosfs.8 Index: dosfstools-2.11/mkdosfs/mkdosfs.8
--- dosfstools-2.10.orig/mkdosfs/mkdosfs.8 2003-05-15 11:28:28.000000000 -0700 ===================================================================
+++ dosfstools-2.10/mkdosfs/mkdosfs.8 2004-08-02 20:57:57.735939664 -0700 --- dosfstools-2.11.orig/mkdosfs/mkdosfs.8 2004-02-25 19:36:07.000000000 +0000
@@ -40,6 +40,10 @@ +++ dosfstools-2.11/mkdosfs/mkdosfs.8 2011-12-06 12:19:54.777888434 +0000
@@ -44,6 +44,10 @@
.I message-file .I message-file
] ]
[ [
@ -37,7 +39,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.8 dosfstools-2.10/mkdosfs/mkdosfs
.B \-n .B \-n
.I volume-name .I volume-name
] ]
@@ -155,6 +159,18 @@ @@ -165,6 +169,18 @@
carriage return-line feed combinations, and tabs have been expanded. carriage return-line feed combinations, and tabs have been expanded.
If the filename is a hyphen (-), the text is taken from standard input. If the filename is a hyphen (-), the text is taken from standard input.
.TP .TP
@ -56,21 +58,22 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.8 dosfstools-2.10/mkdosfs/mkdosfs
.BI \-n " volume-name" .BI \-n " volume-name"
Sets the volume name (label) of the filesystem. The volume name can Sets the volume name (label) of the filesystem. The volume name can
be up to 11 characters long. The default is no label. be up to 11 characters long. The default is no label.
@@ -188,8 +204,9 @@ @@ -198,8 +214,9 @@
simply will not support it ;) simply will not support it ;)
.SH AUTHOR .SH AUTHOR
Dave Hudson - <dave@humbug.demon.co.uk>; modified by Peter Anvin Dave Hudson - <dave@humbug.demon.co.uk>; modified by Peter Anvin
-<hpa@yggdrasil.com>. Fixes and additions by Roman Hodek -<hpa@yggdrasil.com>. Fixes and additions by Roman Hodek
-<Roman.Hodek@informatik.uni-erlangen.de> for Debian/GNU Linux. -<roman@hodek.net> for Debian/GNU Linux.
+<hpa@yggdrasil.com> and Sam Bingner <sam@bingner.com>. Fixes and +<hpa@yggdrasil.com> and Sam Bingner <sam@bingner.com>. Fixes and
+additions by Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de> +additions by Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
+for Debian/GNU Linux. +for Debian/GNU Linux.
.SH ACKNOWLEDGEMENTS .SH ACKNOWLEDGEMENTS
.B mkdosfs .B mkdosfs
is based on code from is based on code from
diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs.c Index: dosfstools-2.11/mkdosfs/mkdosfs.c
--- dosfstools-2.10.orig/mkdosfs/mkdosfs.c 2003-06-14 13:07:08.000000000 -0700 ===================================================================
+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2004-08-02 20:57:57.736939512 -0700 --- dosfstools-2.11.orig/mkdosfs/mkdosfs.c 2005-03-12 16:12:16.000000000 +0000
+++ dosfstools-2.11/mkdosfs/mkdosfs.c 2011-12-06 12:27:55.121886076 +0000
@@ -24,6 +24,12 @@ @@ -24,6 +24,12 @@
- New options -A, -S, -C - New options -A, -S, -C
- Support for filesystems > 2GB - Support for filesystems > 2GB
@ -84,7 +87,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
Copying: Copyright 1993, 1994 David Hudson (dave@humbug.demon.co.uk) Copying: Copyright 1993, 1994 David Hudson (dave@humbug.demon.co.uk)
@@ -167,6 +173,8 @@ @@ -153,6 +159,8 @@
#define FAT_BAD 0x0ffffff7 #define FAT_BAD 0x0ffffff7
#define MSDOS_EXT_SIGN 0x29 /* extended boot sector signature */ #define MSDOS_EXT_SIGN 0x29 /* extended boot sector signature */
@ -93,7 +96,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
#define MSDOS_FAT12_SIGN "FAT12 " /* FAT12 filesystem signature */ #define MSDOS_FAT12_SIGN "FAT12 " /* FAT12 filesystem signature */
#define MSDOS_FAT16_SIGN "FAT16 " /* FAT16 filesystem signature */ #define MSDOS_FAT16_SIGN "FAT16 " /* FAT16 filesystem signature */
#define MSDOS_FAT32_SIGN "FAT32 " /* FAT32 filesystem signature */ #define MSDOS_FAT32_SIGN "FAT32 " /* FAT32 filesystem signature */
@@ -188,6 +196,8 @@ @@ -175,6 +183,8 @@
#define BOOTCODE_SIZE 448 #define BOOTCODE_SIZE 448
#define BOOTCODE_FAT32_SIZE 420 #define BOOTCODE_FAT32_SIZE 420
@ -102,7 +105,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
/* __attribute__ ((packed)) is used on all structures to make gcc ignore any /* __attribute__ ((packed)) is used on all structures to make gcc ignore any
* alignments */ * alignments */
@@ -215,7 +225,7 @@ @@ -202,7 +212,7 @@
__u16 fat_length; /* sectors/FAT */ __u16 fat_length; /* sectors/FAT */
__u16 secs_track; /* sectors per track */ __u16 secs_track; /* sectors per track */
__u16 heads; /* number of heads */ __u16 heads; /* number of heads */
@ -111,7 +114,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
__u32 total_sect; /* number of sectors (if sectors == 0) */ __u32 total_sect; /* number of sectors (if sectors == 0) */
union { union {
struct { struct {
@@ -298,6 +308,8 @@ @@ -285,6 +295,8 @@
/* Global variables - the root of all evil :-) - see these and weep! */ /* Global variables - the root of all evil :-) - see these and weep! */
@ -120,7 +123,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
static char *program_name = "mkdosfs"; /* Name of the program */ static char *program_name = "mkdosfs"; /* Name of the program */
static char *device_name = NULL; /* Name of the device on which to create the filesystem */ static char *device_name = NULL; /* Name of the device on which to create the filesystem */
static int atari_format = 0; /* Use Atari variation of MS-DOS FS format */ static int atari_format = 0; /* Use Atari variation of MS-DOS FS format */
@@ -842,6 +854,12 @@ @@ -837,6 +849,12 @@
vi->volume_id[2] = (unsigned char) ((volume_id & 0x00ff0000) >> 16); vi->volume_id[2] = (unsigned char) ((volume_id & 0x00ff0000) >> 16);
vi->volume_id[3] = (unsigned char) (volume_id >> 24); vi->volume_id[3] = (unsigned char) (volume_id >> 24);
} }
@ -133,16 +136,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
if (!atari_format) { if (!atari_format) {
memcpy(vi->volume_label, volume_name, 11); memcpy(vi->volume_label, volume_name, 11);
@@ -886,7 +904,7 @@ @@ -1362,6 +1380,32 @@
printf( "Using %d reserved sectors\n", reserved_sectors );
bs.fats = (char) nr_fats;
if (!atari_format || size_fat == 32)
- bs.hidden = CT_LE_L(0);
+ bs.hidden = bs.secs_track;
else
/* In Atari format, hidden is a 16 bit field */
memset( &bs.hidden, 0, 2 );
@@ -1358,6 +1376,32 @@
* dir area on FAT12/16, and the first cluster on FAT32. */ * dir area on FAT12/16, and the first cluster on FAT32. */
writebuf( (char *) root_dir, size_root_dir, "root directory" ); writebuf( (char *) root_dir, size_root_dir, "root directory" );
@ -156,9 +150,9 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
+ seekto( 512*2, "third sector" ); + seekto( 512*2, "third sector" );
+ if (backup_boot != 0) { + if (backup_boot != 0) {
+ writebuf( template_boot_code+512*2, backup_boot*sector_size - 512*2, "data to backup boot" ); + writebuf( template_boot_code+512*2, backup_boot*sector_size - 512*2, "data to backup boot" );
+ seekto( backup_boot*sector_size, "backup boot sector" ); + seekto( backup_boot*sector_size, "backup boot sector" );
+ writebuf( template_boot_code, 3, "backup jmpBoot" ); + writebuf( template_boot_code, 3, "backup jmpBoot" );
+ seekto( backup_boot*sector_size+0x5a, "backup boot sector boot area" ); + seekto( backup_boot*sector_size+0x5a, "backup boot sector boot area" );
+ writebuf( template_boot_code+0x5a, 420, "backup boot sector boot area" ); + writebuf( template_boot_code+0x5a, 420, "backup boot sector boot area" );
+ seekto( (backup_boot+2)*sector_size, "sector following backup code" ); + seekto( (backup_boot+2)*sector_size, "sector following backup code" );
+ writebuf( template_boot_code+(backup_boot+2)*sector_size, (reserved_sectors-backup_boot-2)*512, "remaining data" ); + writebuf( template_boot_code+(backup_boot+2)*sector_size, (reserved_sectors-backup_boot-2)*512, "remaining data" );
@ -172,28 +166,28 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
+ } + }
+ } + }
+ +
if (blank_sector) free( blank_sector );
if (info_sector) free( info_sector ); if (info_sector) free( info_sector );
free (root_dir); /* Free up the root directory space from setup_tables */ free (root_dir); /* Free up the root directory space from setup_tables */
free (fat); /* Free up the fat table space reserved during setup_tables */ @@ -1376,7 +1420,7 @@
@@ -1371,7 +1415,7 @@
{ {
fatal_error("\ fatal_error("\
Usage: mkdosfs [-A] [-c] [-C] [-v] [-I] [-l bad-block-file] [-b backup-boot-sector]\n\ Usage: mkdosfs [-A] [-c] [-C] [-v] [-I] [-l bad-block-file] [-b backup-boot-sector]\n\
- [-m boot-msg-file] [-n volume-name] [-i volume-id]\n\ - [-m boot-msg-file] [-n volume-name] [-i volume-id]\n\
+ [-m boot-msg-file] [-n volume-name] [-i volume-id] [-B bootcode]\n\ + [-m boot-msg-file] [-n volume-name] [-i volume-id] [-B bootcode]\n\
[-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]\n\ [-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]\n\
[-F fat-size] [-r root-dir-entries] [-R reserved-sectors]\n\ [-h hidden-sectors] [-F fat-size] [-r root-dir-entries] [-R reserved-sectors]\n\
/dev/name [blocks]\n"); /dev/name [blocks]\n");
@@ -1433,7 +1477,7 @@ @@ -1439,7 +1483,7 @@
printf ("%s " VERSION " (" VERSION_DATE ")\n", printf ("%s " VERSION " (" VERSION_DATE ")\n",
program_name); program_name);
- while ((c = getopt (argc, argv, "AcCf:F:Ii:l:m:n:r:R:s:S:v")) != EOF) - while ((c = getopt (argc, argv, "AbcCf:F:Ii:l:m:n:r:R:s:S:h:v")) != EOF)
+ while ((c = getopt (argc, argv, "AcCf:F:Ii:l:m:n:r:R:s:S:v:B:b")) != EOF) + while ((c = getopt (argc, argv, "AbcCf:F:Ii:l:m:n:r:R:s:S:v:B:")) != EOF)
/* Scan the command line for options */ /* Scan the command line for options */
switch (c) switch (c)
{ {
@@ -1494,6 +1538,51 @@ @@ -1509,6 +1553,51 @@
listfile = optarg; listfile = optarg;
break; break;

View File

@ -1,13 +1,14 @@
Add -s <directory> support to populate the image. Add -d <directory> support to populate the image.
Upstream-Status: Inappropriate [licensing] Upstream-Status: Inappropriate [licensing]
We're tracking an old release of dosfstools due to licensing issues. We're tracking an old release of dosfstools due to licensing issues.
Signed-off-by: Scott Garman <scott.a.garman@intel.com> Signed-off-by: Scott Garman <scott.a.garman@intel.com>
diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs.c Index: dosfstools-2.11/mkdosfs/mkdosfs.c
--- dosfstools-2.10.orig/mkdosfs/mkdosfs.c 2004-08-02 20:48:45.000000000 -0700 ===================================================================
+++ dosfstools-2.10/mkdosfs/mkdosfs.c 2004-08-02 20:49:44.296953792 -0700 --- dosfstools-2.11.orig/mkdosfs/mkdosfs.c 2011-12-06 12:27:55.000000000 +0000
+++ dosfstools-2.11/mkdosfs/mkdosfs.c 2011-12-06 12:37:13.445950703 +0000
@@ -18,6 +18,10 @@ @@ -18,6 +18,10 @@
as a rule), and not the block. For example the boot block does not as a rule), and not the block. For example the boot block does not
occupy a full cluster. occupy a full cluster.
@ -26,18 +27,18 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
+#include <libgen.h> +#include <libgen.h>
+#include <dirent.h> +#include <dirent.h>
#if __BYTE_ORDER == __BIG_ENDIAN #include <linux/version.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
@@ -124,6 +130,8 @@ @@ -110,6 +116,8 @@
} * sufficient (or even better :) for 64 bit offsets in the meantime */
#endif #define llseek lseek
+#define ROUND_UP(value, divisor) (value + (divisor - (value % divisor))) / divisor +#define ROUND_UP(value, divisor) (value + (divisor - (value % divisor))) / divisor
+ +
/* Constant definitions */ /* Constant definitions */
#define TRUE 1 /* Boolean constants */ #define TRUE 1 /* Boolean constants */
@@ -163,7 +171,6 @@ @@ -149,7 +157,6 @@
#define ATTR_VOLUME 8 /* volume label */ #define ATTR_VOLUME 8 /* volume label */
#define ATTR_DIR 16 /* directory */ #define ATTR_DIR 16 /* directory */
#define ATTR_ARCH 32 /* archived */ #define ATTR_ARCH 32 /* archived */
@ -45,7 +46,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
#define ATTR_NONE 0 /* no attribute bits */ #define ATTR_NONE 0 /* no attribute bits */
#define ATTR_UNUSED (ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN) #define ATTR_UNUSED (ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN)
/* attribute bits that are copied "as is" */ /* attribute bits that are copied "as is" */
@@ -258,6 +265,19 @@ @@ -245,6 +252,19 @@
__u32 reserved2[4]; __u32 reserved2[4];
}; };
@ -65,7 +66,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
struct msdos_dir_entry struct msdos_dir_entry
{ {
char name[8], ext[3]; /* name and extension */ char name[8], ext[3]; /* name and extension */
@@ -306,6 +326,15 @@ @@ -293,6 +313,15 @@
#define MESSAGE_OFFSET 29 /* Offset of message in above code */ #define MESSAGE_OFFSET 29 /* Offset of message in above code */
@ -81,7 +82,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
/* Global variables - the root of all evil :-) - see these and weep! */ /* Global variables - the root of all evil :-) - see these and weep! */
static char *template_boot_code; /* Variable to store a full template boot sector in */ static char *template_boot_code; /* Variable to store a full template boot sector in */
@@ -339,6 +368,9 @@ @@ -326,6 +355,9 @@
static int size_root_dir; /* Size of the root directory in bytes */ static int size_root_dir; /* Size of the root directory in bytes */
static int sectors_per_cluster = 0; /* Number of sectors per disk cluster */ static int sectors_per_cluster = 0; /* Number of sectors per disk cluster */
static int root_dir_entries = 0; /* Number of root directory entries */ static int root_dir_entries = 0; /* Number of root directory entries */
@ -89,9 +90,9 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
+static int last_cluster_written = 0; +static int last_cluster_written = 0;
+ +
static char *blank_sector; /* Blank sector - all zeros */ static char *blank_sector; /* Blank sector - all zeros */
static int hidden_sectors = 0; /* Number of hidden sectors */
@@ -399,7 +431,6 @@
@@ -411,7 +443,6 @@
} }
} }
@ -99,7 +100,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
/* Mark a specified sector as having a particular value in it's FAT entry */ /* Mark a specified sector as having a particular value in it's FAT entry */
static void static void
@@ -1262,6 +1293,9 @@ @@ -1266,6 +1297,9 @@
die ("unable to allocate space for root directory in memory"); die ("unable to allocate space for root directory in memory");
} }
@ -109,7 +110,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
memset(root_dir, 0, size_root_dir); memset(root_dir, 0, size_root_dir);
if ( memcmp(volume_name, " ", 11) ) if ( memcmp(volume_name, " ", 11) )
{ {
@@ -1310,11 +1344,11 @@ @@ -1314,11 +1348,11 @@
} }
if (!(blank_sector = malloc( sector_size ))) if (!(blank_sector = malloc( sector_size )))
@ -124,7 +125,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
/* Write the new filesystem's data tables to wherever they're going to end up! */ /* Write the new filesystem's data tables to wherever they're going to end up! */
#define error(str) \ #define error(str) \
@@ -1336,7 +1370,7 @@ @@ -1340,7 +1374,7 @@
do { \ do { \
int __size = (size); \ int __size = (size); \
if (write (dev, buf, __size) != __size) \ if (write (dev, buf, __size) != __size) \
@ -133,7 +134,7 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
} while(0) } while(0)
@@ -1407,6 +1441,452 @@ @@ -1412,6 +1446,452 @@
free (fat); /* Free up the fat table space reserved during setup_tables */ free (fat); /* Free up the fat table space reserved during setup_tables */
} }
@ -586,19 +587,16 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
/* Report the command usage and return a failure error code */ /* Report the command usage and return a failure error code */
@@ -1418,9 +1898,9 @@ @@ -1423,7 +1903,7 @@
[-m boot-msg-file] [-n volume-name] [-i volume-id] [-B bootcode]\n\ [-m boot-msg-file] [-n volume-name] [-i volume-id] [-B bootcode]\n\
[-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]\n\ [-s sectors-per-cluster] [-S logical-sector-size] [-f number-of-FATs]\n\
[-F fat-size] [-r root-dir-entries] [-R reserved-sectors]\n\ [-h hidden-sectors] [-F fat-size] [-r root-dir-entries] [-R reserved-sectors]\n\
- /dev/name [blocks]\n"); - /dev/name [blocks]\n");
+ [-d directory] /dev/name [blocks]\n"); + [-d directory] /dev/name [blocks]\n");
} }
-
+
/* /*
* ++roman: On m68k, check if this is an Atari; if yes, turn on Atari variant @@ -1463,6 +1943,8 @@
* of MS-DOS filesystem by default.
@@ -1458,6 +1938,8 @@
int c; int c;
char *tmp; char *tmp;
char *listfile = NULL; char *listfile = NULL;
@ -607,27 +605,27 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
FILE *msgfile; FILE *msgfile;
struct stat statbuf; struct stat statbuf;
int i = 0, pos, ch; int i = 0, pos, ch;
@@ -1477,7 +1959,7 @@ @@ -1483,7 +1965,7 @@
printf ("%s " VERSION " (" VERSION_DATE ")\n", printf ("%s " VERSION " (" VERSION_DATE ")\n",
program_name); program_name);
- while ((c = getopt (argc, argv, "AcCf:F:Ii:l:m:n:r:R:s:S:v:B:b")) != EOF) - while ((c = getopt (argc, argv, "AbcCf:F:Ii:l:m:n:r:R:s:S:v:B:")) != EOF)
+ while ((c = getopt (argc, argv, "AcCd:f:F:Ii:l:m:n:r:R:s:S:v:B:b")) != EOF) + while ((c = getopt (argc, argv, "AbcCd:f:F:Ii:l:m:n:r:R:s:S:v:B:")) != EOF)
/* Scan the command line for options */ /* Scan the command line for options */
switch (c) switch (c)
{ {
@@ -1502,6 +1984,10 @@ @@ -1508,6 +1990,10 @@
create = TRUE; create = TRUE;
break; break;
+ case 'd': + case 'd':
+ dirname = optarg; + dirname = optarg;
+ break; + break;
+ +
case 'f': /* f : Choose number of FATs */ case 'f': /* f : Choose number of FATs */
nr_fats = (int) strtol (optarg, &tmp, 0); nr_fats = (int) strtol (optarg, &tmp, 0);
if (*tmp || nr_fats < 1 || nr_fats > 4) if (*tmp || nr_fats < 1 || nr_fats > 4)
@@ -1796,8 +2282,10 @@ @@ -1811,8 +2297,10 @@
else if (listfile) else if (listfile)
get_list_blocks (listfile); get_list_blocks (listfile);

View File

@ -1,24 +0,0 @@
# dosfstools OE build file
# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
# Released under the MIT license (see packages/COPYING)
DESCRIPTION = "DOS FAT Filesystem Utilities"
SECTION = "base"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://mkdosfs/COPYING;md5=cbe67f08d6883bff587f615f0cc81aa8"
PR = "r3"
SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \
file://alignment_hack.patch \
file://dosfstools-2.10-kernel-2.6.patch \
file://msdos_fat12_undefined.patch \
file://include-linux-types.patch"
SRC_URI[md5sum] = "59a02f311a891af8787c4c9e28c6b89b"
SRC_URI[sha256sum] = "55a7b2f5ea4506bde935ee3145573e1773427fc72283a36796c7c2cf861dd064"
do_install () {
oe_runmake "PREFIX=${D}" "SBINDIR=${D}${sbindir}" \
"MANDIR=${D}${mandir}/man8" install
}

View File

@ -7,12 +7,15 @@ DESCRIPTION = "DOS FAT Filesystem Utilities"
SECTION = "base" SECTION = "base"
LICENSE = "GPLv2" LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://mkdosfs/COPYING;md5=cbe67f08d6883bff587f615f0cc81aa8" LIC_FILES_CHKSUM = "file://mkdosfs/COPYING;md5=cbe67f08d6883bff587f615f0cc81aa8"
PR = "r0" PR = "r1"
SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \ SRC_URI = "ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/dosfstools/dosfstools-${PV}.src.tar.gz \
file://alignment_hack.patch \ file://mkdosfs-bootcode.patch \
file://mkdosfs-dir.patch \
file://alignment_hack.patch \
file://msdos_fat12_undefined.patch \ file://msdos_fat12_undefined.patch \
file://include-linux-types.patch" file://dosfstools-msdos_fs-types.patch \
file://include-linux-types.patch"
SRC_URI[md5sum] = "407d405ade410f7597d364ab5dc8c9f6" SRC_URI[md5sum] = "407d405ade410f7597d364ab5dc8c9f6"
SRC_URI[sha256sum] = "0eac6d12388b3d9ed78684529c1b0d9346fa2abbe406c4d4a3eb5a023c98a484" SRC_URI[sha256sum] = "0eac6d12388b3d9ed78684529c1b0d9346fa2abbe406c4d4a3eb5a023c98a484"
@ -21,3 +24,5 @@ do_install () {
oe_runmake "PREFIX=${D}" "SBINDIR=${D}${sbindir}" \ oe_runmake "PREFIX=${D}" "SBINDIR=${D}${sbindir}" \
"MANDIR=${D}${mandir}/man8" install "MANDIR=${D}${mandir}/man8" install
} }
BBCLASSEXTEND = "native"