summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch')
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch62
1 files changed, 30 insertions, 32 deletions
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch b/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch
index 7feee0f10d..3ba4711d12 100644
--- a/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch
+++ b/meta/recipes-devtools/dosfstools/dosfstools/mkdosfs-dir.patch
@@ -1,13 +1,14 @@
-Add -s <directory> support to populate the image.
+Add -d <directory> support to populate the image.
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>
-diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/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
+Index: dosfstools-2.11/mkdosfs/mkdosfs.c
+===================================================================
+--- 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 @@
as a rule), and not the block. For example the boot block does not
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 <dirent.h>
- #if __BYTE_ORDER == __BIG_ENDIAN
-
-@@ -124,6 +130,8 @@
- }
- #endif
+ #include <linux/version.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+@@ -110,6 +116,8 @@
+ * sufficient (or even better :) for 64 bit offsets in the meantime */
+ #define llseek lseek
+#define ROUND_UP(value, divisor) (value + (divisor - (value % divisor))) / divisor
+
/* Constant definitions */
#define TRUE 1 /* Boolean constants */
-@@ -163,7 +171,6 @@
+@@ -149,7 +157,6 @@
#define ATTR_VOLUME 8 /* volume label */
#define ATTR_DIR 16 /* directory */
#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_UNUSED (ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN)
/* attribute bits that are copied "as is" */
-@@ -258,6 +265,19 @@
+@@ -245,6 +252,19 @@
__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
{
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 */
@@ -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! */
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 sectors_per_cluster = 0; /* Number of sectors per disk cluster */
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 char *blank_sector; /* Blank sector - all zeros */
+ static int hidden_sectors = 0; /* Number of hidden sectors */
-
-@@ -411,7 +443,6 @@
+@@ -399,7 +431,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 */
static void
-@@ -1262,6 +1293,9 @@
+@@ -1266,6 +1297,9 @@
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);
if ( memcmp(volume_name, " ", 11) )
{
-@@ -1310,11 +1344,11 @@
+@@ -1314,11 +1348,11 @@
}
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! */
#define error(str) \
-@@ -1336,7 +1370,7 @@
+@@ -1340,7 +1374,7 @@
do { \
int __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)
-@@ -1407,6 +1441,452 @@
+@@ -1412,6 +1446,452 @@
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 */
-@@ -1418,9 +1898,9 @@
+@@ -1423,7 +1903,7 @@
[-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\
- [-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");
+ [-d directory] /dev/name [blocks]\n");
}
--
-+
+
/*
- * ++roman: On m68k, check if this is an Atari; if yes, turn on Atari variant
- * of MS-DOS filesystem by default.
-@@ -1458,6 +1938,8 @@
+@@ -1463,6 +1943,8 @@
int c;
char *tmp;
char *listfile = NULL;
@@ -607,27 +605,27 @@ diff -urN dosfstools-2.10.orig/mkdosfs/mkdosfs.c dosfstools-2.10/mkdosfs/mkdosfs
FILE *msgfile;
struct stat statbuf;
int i = 0, pos, ch;
-@@ -1477,7 +1959,7 @@
+@@ -1483,7 +1965,7 @@
printf ("%s " VERSION " (" VERSION_DATE ")\n",
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, "AcCd:f: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, "AbcCd:f:F:Ii:l:m:n:r:R:s:S:v:B:")) != EOF)
/* Scan the command line for options */
switch (c)
{
-@@ -1502,6 +1984,10 @@
+@@ -1508,6 +1990,10 @@
create = TRUE;
break;
-+ case 'd':
++ case 'd':
+ dirname = optarg;
+ break;
+
case 'f': /* f : Choose number of FATs */
nr_fats = (int) strtol (optarg, &tmp, 0);
if (*tmp || nr_fats < 1 || nr_fats > 4)
-@@ -1796,8 +2282,10 @@
+@@ -1811,8 +2297,10 @@
else if (listfile)
get_list_blocks (listfile);