From: Koen Kooi <k.kooi@student.utwente.nl>
To: openembedded-devel@openembedded.org
Subject: Re: [PATCH 1/1] genext2fs: added 1.4.1 version
Date: Mon, 27 Apr 2009 17:35:44 +0200 [thread overview]
Message-ID: <gt4jch$uis$1@ger.gmane.org> (raw)
In-Reply-To: <1240829698-28666-1-git-send-email-marcin@juszkiewicz.com.pl>
On 27-04-09 12:54, Marcin Juszkiewicz wrote:
>
> Signed-off-by: Marcin Juszkiewicz<marcin@juszkiewicz.com.pl>
Acked-by: Koen Kooi <koen@openembedded.org>
> ---
> 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(-)
> create mode 100644 recipes/genext2fs/genext2fs-1.4.1/volume.patch
> create mode 100644 recipes/genext2fs/genext2fs-native_1.4.1.bb
> create mode 100644 recipes/genext2fs/genext2fs_1.4.1.bb
>
> 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
next prev parent reply other threads:[~2009-04-27 15:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-27 10:54 [PATCH 1/1] genext2fs: added 1.4.1 version Marcin Juszkiewicz
2009-04-27 12:49 ` Koen Kooi
2009-04-27 12:50 ` Otavio Salvador
2009-04-27 13:01 ` [STABLE] " Marcin Juszkiewicz
2009-04-27 15:35 ` Koen Kooi [this message]
2009-04-28 14:52 ` Roman I Khimov
2009-04-28 17:59 ` Marcin Juszkiewicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='gt4jch$uis$1@ger.gmane.org' \
--to=k.kooi@student.utwente.nl \
--cc=openembedded-devel@lists.openembedded.org \
--cc=openembedded-devel@openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.