[oe-commits] Marcin Juszkiewicz : genext2fs: added 1.4.1 version

GIT User account git at amethyst.openembedded.net
Mon Apr 27 15:38:19 UTC 2009


Module: openembedded.git
Branch: stable/2009
Commit: 7e1993c868c975eed1920b1ea435d644c985556f
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=7e1993c868c975eed1920b1ea435d644c985556f

Author: Marcin Juszkiewicz <marcin at juszkiewicz.com.pl>
Date:   Mon Apr 27 00:54:58 2009 +0000

genext2fs: added 1.4.1 version

Signed-off-by: Marcin Juszkiewicz <marcin at juszkiewicz.com.pl>
Acked-by: Otavio Salvador <otavio at ossystems.com.br>

---

 conf/checksums.ini                             |    4 +
 recipes/genext2fs/genext2fs-1.4.1/volume.patch |  153 ++++++++++++++++++++++++
 recipes/genext2fs/genext2fs-native_1.4.1.bb    |   10 ++
 recipes/genext2fs/genext2fs_1.4.1.bb           |    9 ++
 4 files changed, 176 insertions(+), 0 deletions(-)

diff --git a/conf/checksums.ini b/conf/checksums.ini
index bea59ad..395dcd9 100644
--- a/conf/checksums.ini
+++ b/conf/checksums.ini
@@ -7226,6 +7226,10 @@ sha256=5af6001401a6bc04c075474be5d8aeb2bdb2ca3e509022c2fc55ca7c7f310256
 md5=fd0337e89778e2dba74461c555ea8e42
 sha256=e50495d292a1d456c28044efbf07c16d8865f8d95e1caba86f4c5b2e3fb1d28f
 
+[http://downloads.sourceforge.net/genext2fs/genext2fs-1.4.1.tar.gz]
+md5=b7b6361bcce2cedff1ae437fadafe53b
+sha256=404dbbfa7a86a6c3de8225c8da254d026b17fd288e05cec4df2cc7e1f4feecfc
+
 [http://downloads.sourceforge.net/genext2fs/genext2fs-1.4rc1.tar.gz]
 md5=664431bf6737df1c265500e1f0b5d40c
 sha256=e60f88763ee12c02a5c7ade1a58925ef0ab198f9ec6aaf404747dfc29074c7be
diff --git a/recipes/genext2fs/genext2fs-1.4.1/volume.patch b/recipes/genext2fs/genext2fs-1.4.1/volume.patch
new file mode 100644
index 0000000..825fc35
--- /dev/null
+++ b/recipes/genext2fs/genext2fs-1.4.1/volume.patch
@@ -0,0 +1,153 @@
+---
+ genext2fs.c |   26 +++++++++++++++++++-------
+ 1 file changed, 19 insertions(+), 7 deletions(-)
+
+--- genext2fs-1.4.1.orig/genext2fs.c
++++ genext2fs-1.4.1/genext2fs.c
+@@ -507,11 +507,13 @@ swab32(uint32 val)
+ #define utdecl32(x,n) uint32 x[n];
+ 
+ typedef struct
+ {
+ 	superblock_decl
+-	uint32 s_reserved[235];       // Reserved
++	uint32  s_reserved1[9];
++	char s_volume[16];
++	uint32 s_reserved2[222];       // Reserved
+ } superblock;
+ 
+ typedef struct
+ {
+ 	groupdescriptor_decl
+@@ -1219,11 +1221,11 @@ extend_blk(filesystem *fs, uint32 nod, b
+ 			lbw = bw;
+ 		bw = lbw;
+ 		while(create)
+ 		{
+ 			int i, copyb = 0;
+-			if(!(fs->sb.s_reserved[200] & OP_HOLES))
++			if(!(fs->sb.s_reserved2[187] & OP_HOLES))
+ 				copyb = 1;
+ 			else
+ 				for(i = 0; i < BLOCKSIZE / 4; i++)
+ 					if(((int32*)(b + BLOCKSIZE * (amount - create)))[i])
+ 					{
+@@ -1891,11 +1893,12 @@ swap_badfs(filesystem *fs)
+ 	}
+ }
+ 
+ // initialize an empty filesystem
+ static filesystem *
+-init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes, uint32 fs_timestamp)
++init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes,
++		uint32 fs_timestamp, char *volumeid)
+ {
+ 	uint32 i;
+ 	filesystem *fs;
+ 	directory *d;
+ 	uint8 * b;
+@@ -1956,10 +1959,13 @@ init_fs(int nbblocks, int nbinodes, int 
+ 	fs->sb.s_inodes_per_group = nbinodes_per_group;
+ 	fs->sb.s_wtime = fs_timestamp;
+ 	fs->sb.s_magic = EXT2_MAGIC_NUMBER;
+ 	fs->sb.s_lastcheck = fs_timestamp;
+ 
++	if (volumeid != NULL)
++		strncpy(fs->sb.s_volume, volumeid, sizeof(fs->sb.s_volume));
++
+ 	// set up groupdescriptors
+ 	for(i=0, bbmpos=gdsz+2, ibmpos=bbmpos+1, itblpos=ibmpos+1;
+ 		i<nbgroups;
+ 		i++, bbmpos+=nbblocks_per_group, ibmpos+=nbblocks_per_group, itblpos+=nbblocks_per_group)
+ 	{
+@@ -2055,11 +2061,11 @@ init_fs(int nbblocks, int nbinodes, int 
+ 	fs->sb.s_state = 1;
+ 	fs->sb.s_max_mnt_count = 20;
+ 
+ 	// options for me
+ 	if(holes)
+-		fs->sb.s_reserved[200] |= OP_HOLES;
++		fs->sb.s_reserved2[187] |= OP_HOLES;
+ 	
+ 	return fs;
+ }
+ 
+ // loads a filesystem from disk
+@@ -2351,11 +2357,11 @@ print_fs(filesystem *fs)
+ 
+ static void
+ dump_fs(filesystem *fs, FILE * fh, int swapit)
+ {
+ 	uint32 nbblocks = fs->sb.s_blocks_count;
+-	fs->sb.s_reserved[200] = 0;
++	fs->sb.s_reserved2[187] = 0;
+ 	if(swapit)
+ 		swap_goodfs(fs);
+ 	if(fwrite(fs, BLOCKSIZE, nbblocks, fh) < nbblocks)
+ 		perror_msg_and_die("output filesystem image");
+ 	if(swapit)
+@@ -2465,10 +2471,11 @@ main(int argc, char **argv)
+ 	int squash_uids = 0;
+ 	int squash_perms = 0;
+ 	uint16 endian = 1;
+ 	int bigendian = !*(char*)&endian;
+ 	filesystem *fs;
++	char *volumeid = NULL;
+ 	int i;
+ 	int c;
+ 	struct stats stats;
+ 
+ #if HAVE_GETOPT_LONG
+@@ -2477,10 +2484,11 @@ main(int argc, char **argv)
+ 	  { "root",		required_argument,	NULL, 'd' },
+ 	  { "devtable",		required_argument,	NULL, 'D' },
+ 	  { "size-in-blocks",	required_argument,	NULL, 'b' },
+ 	  { "bytes-per-inode",	required_argument,	NULL, 'i' },
+ 	  { "number-of-inodes",	required_argument,	NULL, 'N' },
++	  { "volume-id",	required_argument,	NULL, 'L' },
+ 	  { "reserved-percentage", required_argument,	NULL, 'm' },
+ 	  { "block-map",	required_argument,	NULL, 'g' },
+ 	  { "fill-value",	required_argument,	NULL, 'e' },
+ 	  { "allow-holes",	no_argument, 		NULL, 'z' },
+ 	  { "faketime",		no_argument,		NULL, 'f' },
+@@ -2493,11 +2501,11 @@ main(int argc, char **argv)
+ 	  { 0, 0, 0, 0}
+ 	} ;
+ 
+ 	app_name = argv[0];
+ 
+-	while((c = getopt_long(argc, argv, "x:d:D:b:i:N:m:g:e:zfqUPhVv", longopts, NULL)) != EOF) {
++	while((c = getopt_long(argc, argv, "x:d:D:b:i:N:L:m:g:e:zfqUPhVv", longopts, NULL)) != EOF) {
+ #else
+ 	app_name = argv[0];
+ 
+ 	while((c = getopt(argc, argv,      "x:d:D:b:i:N:m:g:e:zfqUPhVv")) != EOF) {
+ #endif /* HAVE_GETOPT_LONG */
+@@ -2517,10 +2525,13 @@ main(int argc, char **argv)
+ 				bytes_per_inode = SI_atof(optarg);
+ 				break;
+ 			case 'N':
+ 				nbinodes = SI_atof(optarg);
+ 				break;
++			case 'L':
++				volumeid = optarg;
++				break;
+ 			case 'm':
+ 				reserved_frac = SI_atof(optarg) / 100;
+ 				break;
+ 			case 'g':
+ 				gopt[gidx++] = optarg;
+@@ -2607,11 +2618,12 @@ main(int argc, char **argv)
+ 			if(tmp_nbinodes > nbinodes)
+ 				nbinodes = tmp_nbinodes;
+ 		}
+ 		if(fs_timestamp == -1)
+ 			fs_timestamp = time(NULL);
+-		fs = init_fs(nbblocks, nbinodes, nbresrvd, holes, fs_timestamp);
++		fs = init_fs(nbblocks, nbinodes, nbresrvd, holes,
++				fs_timestamp, volumeid);
+ 	}
+ 	
+ 	populate_fs(fs, dopt, didx, squash_uids, squash_perms, fs_timestamp, NULL);
+ 
+ 	if(emptyval) {
diff --git a/recipes/genext2fs/genext2fs-native_1.4.1.bb b/recipes/genext2fs/genext2fs-native_1.4.1.bb
new file mode 100644
index 0000000..50b371b
--- /dev/null
+++ b/recipes/genext2fs/genext2fs-native_1.4.1.bb
@@ -0,0 +1,10 @@
+require genext2fs_${PV}.bb
+inherit native
+
+do_stage () {
+	install -m 0755 genext2fs ${STAGING_BINDIR}/
+}
+
+do_install () {
+	:
+}
diff --git a/recipes/genext2fs/genext2fs_1.4.1.bb b/recipes/genext2fs/genext2fs_1.4.1.bb
new file mode 100644
index 0000000..10ad9de
--- /dev/null
+++ b/recipes/genext2fs/genext2fs_1.4.1.bb
@@ -0,0 +1,9 @@
+require genext2fs.inc
+
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/genext2fs/genext2fs-${PV}.tar.gz \
+	   file://volume.patch;patch=1"
+
+DEFAULT_PREFERENCE = "1"
+
+inherit autotools





More information about the Openembedded-commits mailing list