summaryrefslogtreecommitdiff
path: root/sys-fs/reiserfsprogs
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /sys-fs/reiserfsprogs
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sys-fs/reiserfsprogs')
-rw-r--r--sys-fs/reiserfsprogs/Manifest3
-rw-r--r--sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.19-fsck-n.patch12
-rw-r--r--sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.19-unaligned.patch35
-rw-r--r--sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.20-fsck-n.patch12
-rw-r--r--sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.21-fix_large_fs.patch356
-rw-r--r--sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.21-fsck-n.patch14
-rw-r--r--sys-fs/reiserfsprogs/metadata.xml5
-rw-r--r--sys-fs/reiserfsprogs/reiserfsprogs-3.6.21-r1.ebuild32
-rw-r--r--sys-fs/reiserfsprogs/reiserfsprogs-3.6.23.ebuild22
-rw-r--r--sys-fs/reiserfsprogs/reiserfsprogs-3.6.24.ebuild22
10 files changed, 513 insertions, 0 deletions
diff --git a/sys-fs/reiserfsprogs/Manifest b/sys-fs/reiserfsprogs/Manifest
new file mode 100644
index 00000000000..1ee220bf953
--- /dev/null
+++ b/sys-fs/reiserfsprogs/Manifest
@@ -0,0 +1,3 @@
+DIST reiserfsprogs-3.6.21.tar.gz 423521 SHA256 cc87cecd5c259665aae46a7760525486767e1ace6da833a4f1a616a58b5ad092 SHA512 fd7e96a75aec9f8db205aaa81f5508c3bd11d550dd54a158e3c5e15ecc39cd013ff4628d622f66bc15a3597c2f763c12696fda87a350ff4dfcbc3566979edc23 WHIRLPOOL b4ed0944cca82ae964412f62f1024688e8c83552c10c61f6bb27e936dde6e55fd856847ebd0450114d675c994213a5a7c96421c6506434c5c60accf86faf054e
+DIST reiserfsprogs-3.6.23.tar.xz 311524 SHA256 022350675117a8b07d736240b16f01c8ffcc07a0bdf997a4c16818902fc6bb75 SHA512 31039a0758148680a1f4e34b4c030f4c947732d6a0701f3df466b76509d72df5d2c8ac3e760d4ddc1edba9a229297d02ae0e4549ff9875217e75fecade76f2d6 WHIRLPOOL 4dd601d7aea8f5a57295c8704f0d4200c1716b32c5a4ea2de91a9406db097b54add1fe34b721d4dfce05d88329f20722547f23b73acc909416ef306ab690b7b8
+DIST reiserfsprogs-3.6.24.tar.xz 316444 SHA256 7e44fefe557d68a642191428210f3d64d80283b9ad0e45c24130f6ce936b0760 SHA512 183cda8c1bef375a9e90b6bfcbbbe7cc901f12890be29551e74950c723b0ae565786be86f69cba2a5d8b2f9014d22f6f3bdf277d666d4b6bea15406cb2803a42 WHIRLPOOL 1046b9ca94e733a1b90c220a122d41cb933522e39244b6c6de987de1eefe9a2712a3a7dbaf5de64f2c76de1eb9b43c3fe0650fc3ac11929951956a91ea92e571
diff --git a/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.19-fsck-n.patch b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.19-fsck-n.patch
new file mode 100644
index 00000000000..2146c94d4f3
--- /dev/null
+++ b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.19-fsck-n.patch
@@ -0,0 +1,12 @@
+diff -ur reiserfsprogs-3.6.19.orig/fsck/main.c reiserfsprogs-3.6.19/fsck/main.c
+--- reiserfsprogs-3.6.19.orig/fsck/main.c 2004-10-07 15:04:08.000000000 +0100
++++ reiserfsprogs-3.6.19/fsck/main.c 2007-05-02 16:05:08.000000000 +0100
+@@ -416,7 +416,7 @@
+ (data->log == stdout) ? "stdout" :
+ (data->log_file_name ? data->log_file_name : "fsck.run"));
+
+- if (!(data->options & OPT_YES) && !user_confirmed (warn_to, "\nDo you want to "
++ if (!(data->options & OPT_YES) && !(data->options & OPT_SILENT) && !user_confirmed (warn_to, "\nDo you want to "
+ "run this program?[N/Yes] (note need to type Yes if you do):", "Yes\n"))
+ exit (EXIT_USER);
+ }
diff --git a/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.19-unaligned.patch b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.19-unaligned.patch
new file mode 100644
index 00000000000..5883ce85f82
--- /dev/null
+++ b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.19-unaligned.patch
@@ -0,0 +1,35 @@
+backported from 3.6.20
+
+http://bugs.gentoo.org/153494
+
+--- include/reiserfs_fs.h
++++ include/reiserfs_fs.h
+@@ -38,14 +38,22 @@
+ # define extern_inline
+ #endif
+
+-#include <asm/unaligned.h>
+-
+ #ifndef get_unaligned
+-#if defined(__ppc__) || defined(ppc) || defined(__ppc) || \
+- defined(__PPC) || defined(powerpc) || defined(__powerpc__)
+-# define get_unaligned(ptr) (*(ptr))
+-# define put_unaligned(val,ptr) ((void)(*(ptr) = (val)))
++#define get_unaligned(ptr) \
++({ \
++ __typeof__(*(ptr)) __tmp; \
++ memcpy(&__tmp, (ptr), sizeof(*(ptr))); \
++ __tmp; \
++})
+ #endif
++
++#ifndef put_unaligned
++#define put_unaligned(val, ptr) \
++({ \
++ __typeof__(*(ptr)) __tmp = (val); \
++ memcpy((ptr), &__tmp, sizeof(*(ptr))); \
++ (void)0; \
++})
+ #endif
+
+ #define get_leXX(xx,p,field) (le##xx##_to_cpu ((p)->field))
diff --git a/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.20-fsck-n.patch b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.20-fsck-n.patch
new file mode 100644
index 00000000000..b29133ee65b
--- /dev/null
+++ b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.20-fsck-n.patch
@@ -0,0 +1,12 @@
+diff -ur a/utils/fsck/main.c b/utils/fsck/main.c
+--- a/utils/fsck/main.c 2006-03-28 13:40:23.000000000 +0100
++++ b/utils/fsck/main.c 2007-08-02 10:13:53.000000000 +0100
+@@ -421,7 +421,7 @@
+ (data->log == stdout) ? "stdout" :
+ (data->log_file_name ? data->log_file_name : "fsck.run"));
+
+- if (!(data->options & OPT_YES)) {
++ if (!(data->options & OPT_YES) && !(data->options & OPT_SILENT)) {
+ if (!util_user_confirmed(warn_to, "\nDo you want to run this "
+ "program?[N/Yes] (note need to type "
+ "Yes if you do):", "Yes\n"))
diff --git a/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.21-fix_large_fs.patch b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.21-fix_large_fs.patch
new file mode 100644
index 00000000000..a214440a539
--- /dev/null
+++ b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.21-fix_large_fs.patch
@@ -0,0 +1,356 @@
+From: Jeff Mahoney <jeffm@suse.com>
+Subject: [PATCH] reiserfs: Fix signedness issues for large file systems
+References: bnc#701602
+
+
+Signed-by: Jeff Mahoney <jeffm@suse.com>
+---
+ debugreiserfs/debugreiserfs.c | 22 +++++++++++-----------
+ debugreiserfs/pack.c | 18 +++++++++---------
+ debugreiserfs/scan.c | 2 +-
+ debugreiserfs/stat.c | 2 +-
+ fsck/check_tree.c | 6 +++---
+ fsck/pass0.c | 10 +++++-----
+ fsck/pass1.c | 4 ++--
+ include/reiserfs_fs.h | 2 ++
+ lib/io.c | 2 +-
+ reiserfscore/journal.c | 2 +-
+ reiserfscore/prints.c | 14 +++++++-------
+ reiserfscore/reiserfslib.c | 5 +++--
+ reiserfscore/stree.c | 2 +-
+ 13 files changed, 47 insertions(+), 44 deletions(-)
+
+--- a/debugreiserfs/debugreiserfs.c
++++ b/debugreiserfs/debugreiserfs.c
+@@ -59,11 +59,11 @@ Options:\n\
+
+ #if 1
+ struct reiserfs_fsstat {
+- int nr_internals;
+- int nr_leaves;
+- int nr_files;
+- int nr_directories;
+- int nr_unformatted;
++ unsigned int nr_internals;
++ unsigned int nr_leaves;
++ unsigned int nr_files;
++ unsigned int nr_directories;
++ unsigned int nr_unformatted;
+ } g_stat_info;
+ #endif
+
+@@ -465,14 +465,14 @@ static void init_bitmap (reiserfs_filsys
+ case ALL_BLOCKS:
+ input_bitmap (fs) = reiserfs_create_bitmap (block_count);
+ reiserfs_bitmap_fill (input_bitmap (fs));
+- reiserfs_warning (stderr, "Whole device (%d blocks) is to be scanned\n",
++ reiserfs_warning (stderr, "Whole device (%u blocks) is to be scanned\n",
+ reiserfs_bitmap_ones (input_bitmap (fs)));
+ break;
+ case USED_BLOCKS:
+ reiserfs_warning (stderr, "Loading on-disk bitmap .. ");
+ input_bitmap (fs) = reiserfs_create_bitmap (block_count);
+ reiserfs_bitmap_copy (input_bitmap (fs), fs->fs_bitmap2);
+- reiserfs_warning (stderr, "%d bits set - done\n",
++ reiserfs_warning (stderr, "%lu bits set - done\n",
+ reiserfs_bitmap_ones (input_bitmap (fs)));
+ break;
+ case UNUSED_BLOCKS:
+@@ -480,7 +480,7 @@ static void init_bitmap (reiserfs_filsys
+ input_bitmap (fs) = reiserfs_create_bitmap (block_count);
+ reiserfs_bitmap_copy (input_bitmap (fs), fs->fs_bitmap2);
+ reiserfs_bitmap_invert (input_bitmap (fs));
+- reiserfs_warning (stderr, "%d bits set - done\n",
++ reiserfs_warning (stderr, "%lu bits set - done\n",
+ reiserfs_bitmap_ones (input_bitmap (fs)));
+ break;
+ case EXTERN_BITMAP:
+@@ -494,7 +494,7 @@ static void init_bitmap (reiserfs_filsys
+ reiserfs_exit (1, "could not load fitmap from \"%s\"",
+ input_bitmap_file_name(fs));
+ }
+- reiserfs_warning (stderr, "%d blocks marked in the given bitmap\n",
++ reiserfs_warning (stderr, "%u blocks marked in the given bitmap\n",
+ reiserfs_bitmap_ones (input_bitmap (fs)));
+ fclose (fp);
+ break;
+@@ -554,8 +554,8 @@ static void do_dump_tree (reiserfs_filsy
+ }
+
+ /* print the statistic */
+- printf ("\t%d internal + %d leaves + %d "
+- "unformatted nodes = %d blocks\n",
++ printf ("\t%u internal + %u leaves + %u "
++ "unformatted nodes = %u blocks\n",
+ g_stat_info.nr_internals, g_stat_info.nr_leaves,
+ g_stat_info.nr_unformatted, g_stat_info.nr_internals +
+ g_stat_info.nr_leaves + g_stat_info.nr_unformatted);
+--- a/debugreiserfs/pack.c
++++ b/debugreiserfs/pack.c
+@@ -8,7 +8,7 @@
+
+
+ /* counters for each kind of blocks */
+-int packed,
++unsigned int packed,
+ packed_leaves,
+ full_blocks,
+ having_ih_array, /* blocks with broken block head */
+@@ -638,7 +638,7 @@ static void pack_frozen_data (reiserfs_f
+ }
+ reiserfs_warning (stderr, "ok\n");fflush (stderr);
+ reiserfs_warning (stderr,
+- "Super block, bitmaps, journal - %d blocks - done, %d blocks left\n",
++ "Super block, bitmaps, journal - %u blocks - done, %u blocks left\n",
+ packed, reiserfs_bitmap_ones (what_to_pack));
+ }
+
+@@ -693,13 +693,13 @@ void pack_partition (reiserfs_filsys_t *
+ magic16 = END_MAGIC;
+ fwrite_le16 (&magic16);
+
+- fprintf (stderr, "\nPacked %d blocks:\n"
+- "\tcompessed %d\n"
+- "\tfull blocks %d\n"
+- "\t\tleaves with broken block head %d\n"
+- "\t\tcorrupted leaves %d\n"
+- "\t\tinternals %d\n"
+- "\t\tdescriptors %d\n",
++ fprintf (stderr, "\nPacked %u blocks:\n"
++ "\tcompessed %u\n"
++ "\tfull blocks %u\n"
++ "\t\tleaves with broken block head %u\n"
++ "\t\tcorrupted leaves %u\n"
++ "\t\tinternals %u\n"
++ "\t\tdescriptors %u\n",
+ packed,
+ packed_leaves, full_blocks, having_ih_array,
+ bad_leaves, internals, descs);
+--- a/debugreiserfs/scan.c
++++ b/debugreiserfs/scan.c
+@@ -1032,7 +1032,7 @@ void do_scan (reiserfs_filsys_t * fs)
+ /* step 2: */
+ done = 0;
+ total = reiserfs_bitmap_ones (input_bitmap (fs));
+- printf ("%ld bits set in bitmap\n", total);
++ printf ("%lu bits set in bitmap\n", total);
+ for (i = 0; i < get_sb_block_count (fs->fs_ondisk_sb); i ++) {
+ int type;
+
+--- a/debugreiserfs/stat.c
++++ b/debugreiserfs/stat.c
+@@ -245,7 +245,7 @@ void do_stat (reiserfs_filsys_t * fs)
+ reiserfs_exit (1, "could not open %s to save bitmap: %m\n",
+ input_bitmap_file_name(fs));
+ }
+- reiserfs_warning (stderr, "Updated bitmap contains %d blocks marked\n",
++ reiserfs_warning (stderr, "Updated bitmap contains %u blocks marked\n",
+ reiserfs_bitmap_ones (input_bitmap (fs)));
+
+ reiserfs_bitmap_save (fp, input_bitmap (fs));
+--- a/fsck/check_tree.c
++++ b/fsck/check_tree.c
+@@ -119,7 +119,7 @@ static int is_block_free (reiserfs_filsy
+ }
+
+
+-/*static int hits = 0;*/
++/*static unsigned int hits = 0;*/
+
+ /* we have seen this block in the tree, mark corresponding bit in the
+ control bitmap */
+@@ -156,7 +156,7 @@ static void init_control_bitmap (reiserf
+ for (i = 0; i <= fs->fs_super_bh->b_blocknr; i ++)
+ we_met_it (i);
+
+- /*printf ("SKIPPED: %d blocks marked used (%d)\n", hits,
++ /*printf ("SKIPPED: %u blocks marked used (%d)\n", hits,
+ reiserfs_bitmap_zeros (control_bitmap));
+ hits = 0;*/
+
+@@ -172,7 +172,7 @@ static void init_control_bitmap (reiserf
+ block ++;
+ }
+
+- /*printf ("BITMAPS: %d blocks marked used (%d)\n", hits,
++ /*printf ("BITMAPS: %u blocks marked used (%d)\n", hits,
+ reiserfs_bitmap_zeros (control_bitmap));
+
+ hits = 0;*/
+--- a/fsck/pass0.c
++++ b/fsck/pass0.c
+@@ -1759,7 +1759,7 @@ static void init_source_bitmap (reiserfs
+ case ALL_BLOCKS:
+ fsck_source_bitmap (fs) = reiserfs_create_bitmap (block_count);
+ reiserfs_bitmap_fill (fsck_source_bitmap (fs));
+- fsck_progress ("The whole partition (%d blocks) is to be scanned\n",
++ fsck_progress ("The whole partition (%u blocks) is to be scanned\n",
+ reiserfs_bitmap_ones (fsck_source_bitmap (fs)));
+ break;
+
+@@ -1768,7 +1768,7 @@ static void init_source_bitmap (reiserfs
+ fsck_source_bitmap (fs) = reiserfs_create_bitmap (block_count);
+ reiserfs_bitmap_copy (fsck_source_bitmap (fs), fs->fs_bitmap2);
+
+- fsck_progress ("ok, %d blocks marked used\n",
++ fsck_progress ("ok, %u blocks marked used\n",
+ reiserfs_bitmap_ones (fsck_source_bitmap (fs)));
+ break;
+
+@@ -1787,7 +1787,7 @@ static void init_source_bitmap (reiserfs
+ fsck_data (fs)->rebuild.bitmap_file_name);
+ }
+
+- fsck_progress ("%d blocks marked used in extern bitmap\n",
++ fsck_progress ("%u blocks marked used in extern bitmap\n",
+ reiserfs_bitmap_ones (fsck_source_bitmap (fs)));
+ fclose (fp);
+ break;
+@@ -1863,8 +1863,8 @@ static void init_source_bitmap (reiserfs
+
+ fsck_source_bitmap (fs)->bm_set_bits = reiserfs_bitmap_ones (fsck_source_bitmap (fs));
+
+- fsck_progress ("Skipping %d blocks (super block, journal, "
+- "bitmaps) %d blocks will be read\n", tmp, fsck_source_bitmap (fs)->bm_set_bits);
++ fsck_progress ("Skipping %u blocks (super block, journal, "
++ "bitmaps) %u blocks will be read\n", tmp, fsck_source_bitmap (fs)->bm_set_bits);
+
+ }
+
+--- a/fsck/pass1.c
++++ b/fsck/pass1.c
+@@ -646,8 +646,8 @@ void load_pass_1_result (FILE * fp, reis
+ fetch_objectid_map (proper_id_map (fs), fs);
+ */
+
+- fsck_progress ("Pass 1 result loaded. %d blocks used, %d allocable, "
+- "still to be inserted %d\n",
++ fsck_progress ("Pass 1 result loaded. %u blocks used, %u allocable, "
++ "still to be inserted %u\n",
+ reiserfs_bitmap_ones (fsck_new_bitmap (fs)),
+ reiserfs_bitmap_zeros (fsck_allocable_bitmap (fs)),
+ reiserfs_bitmap_zeros (fsck_uninsertables (fs)));
+--- a/include/reiserfs_fs.h
++++ b/include/reiserfs_fs.h
+@@ -32,6 +32,8 @@
+ #ifndef REISERFSPROGS_FS_H
+ #define REISERFSPRIGS_FS_H
+
++typedef unsigned int blocknr_t;
++
+ #ifndef NO_EXTERN_INLINE
+ # define extern_inline extern inline
+ #else
+--- a/lib/io.c
++++ b/lib/io.c
+@@ -628,7 +628,7 @@ void close_rollback_file () {
+ return;
+ fwrite (&rollback_blocks_number, sizeof (rollback_blocksize), 1, s_rollback_file);
+ if (log_file != 0)
+- fprintf (log_file, "rollback: %d blocks backed up\n", rollback_blocks_number);
++ fprintf (log_file, "rollback: %u blocks backed up\n", rollback_blocks_number);
+ }
+
+ fclose (s_rollback_file);
+--- a/reiserfscore/journal.c
++++ b/reiserfscore/journal.c
+@@ -577,7 +577,7 @@ int reiserfs_create_journal(
+ {
+ /* host device does not contain enough blocks */
+ reiserfs_warning (stderr, "reiserfs_create_journal: cannot create "
+- "a journal of %lu blocks with %lu offset on %d blocks\n",
++ "a journal of %lu blocks with %lu offset on %u blocks\n",
+ len, offset, get_sb_block_count(sb));
+ return 0;
+ }
+--- a/reiserfscore/prints.c
++++ b/reiserfscore/prints.c
+@@ -148,7 +148,7 @@ static int print_disk_child (FILE * stre
+ int len;
+
+ dc = *((const struct disk_child **)(args[0]));
+- len = asprintf (&buffer, "[dc_number=%u, dc_size=%u]", get_dc_child_blocknr (dc),
++ len = asprintf (&buffer, "[dc_number=%lu, dc_size=%u]", get_dc_child_blocknr (dc),
+ get_dc_child_size (dc));
+ FPRINTF;
+ }
+@@ -373,9 +373,9 @@ static void print_sequence (FILE * fp, _
+ return;
+
+ if (len == 1)
+- reiserfs_warning (fp, " %d", le32_to_cpu (start));
++ reiserfs_warning (fp, " %u", le32_to_cpu (start));
+ else
+- reiserfs_warning (fp, " %d(%d)", le32_to_cpu (start), len);
++ reiserfs_warning (fp, " %u(%d)", le32_to_cpu (start), len);
+ }
+
+
+@@ -491,7 +491,7 @@ static int print_internal (FILE * fp, st
+ to = last < B_NR_ITEMS (bh) ? last : B_NR_ITEMS (bh);
+ }
+
+- reiserfs_warning (fp, "INTERNAL NODE (%ld) contains %b\n", bh->b_blocknr, bh);
++ reiserfs_warning (fp, "INTERNAL NODE (%lu) contains %b\n", bh->b_blocknr, bh);
+
+ dc = B_N_CHILD (bh, from);
+ reiserfs_warning (fp, "PTR %d: %y ", from, dc);
+@@ -527,7 +527,7 @@ static int print_leaf (FILE * fp, reiser
+
+ reiserfs_warning (fp,
+ "\n===================================================================\n");
+- reiserfs_warning (fp, "LEAF NODE (%ld) contains %b (real items %d)\n",
++ reiserfs_warning (fp, "LEAF NODE (%lu) contains %b (real items %d)\n",
+ bh->b_blocknr, bh, real_nr);
+
+ if (!(print_mode & PRINT_TREE_DETAILS)) {
+@@ -761,7 +761,7 @@ void print_block (FILE * fp, reiserfs_fi
+ if (print_super_block (fp, fs, file_name, bh, 0))
+ if (print_leaf (fp, fs, bh, mode, first, last))
+ if (print_internal (fp, bh, first, last))
+- reiserfs_warning (fp, "Block %ld contains unformatted data\n", bh->b_blocknr);
++ reiserfs_warning (fp, "Block %lu contains unformatted data\n", bh->b_blocknr);
+ }
+
+
+@@ -797,7 +797,7 @@ void print_tb (int mode, int item_pos, i
+ tbSh = 0;
+ tbFh = 0;
+ }
+- printf ("* %u * %3lu(%2lu) * %3lu(%2lu) * %3lu(%2lu) * %5ld * %5ld * %5ld * %5ld * %5ld *\n",
++ printf ("* %u * %3lu(%2lu) * %3lu(%2lu) * %3lu(%2lu) * %5lu * %5lu * %5lu * %5lu * %5lu *\n",
+ h,
+ tbSh ? tbSh->b_blocknr : ~0ul,
+ tbSh ? tbSh->b_count : ~0ul,
+--- a/reiserfscore/reiserfslib.c
++++ b/reiserfscore/reiserfslib.c
+@@ -59,7 +59,8 @@ reiserfs_filsys_t * reiserfs_open (char
+ reiserfs_filsys_t * fs;
+ struct buffer_head * bh;
+ struct reiserfs_super_block * sb;
+- int fd, i;
++ int fd;
++ unsigned int i;
+
+ /* convert root dir key and parent root dir key to little endian format */
+ make_const_keys ();
+@@ -200,7 +201,7 @@ reiserfs_filsys_t * reiserfs_create (cha
+ block_size, block_count, 0))
+ {
+ reiserfs_warning (stderr, "reiserfs_create: can not create that small "
+- "(%d blocks) filesystem\n", block_count);
++ "(%u blocks) filesystem\n", block_count);
+ return 0;
+ }
+
+--- a/reiserfscore/stree.c
++++ b/reiserfscore/stree.c
+@@ -313,7 +313,7 @@ int search_by_key (reiserfs_filsys_t * f
+ int n_stop_level) /* How far down the tree to search.*/
+ {
+ struct reiserfs_super_block * sb;
+- int n_block_number,
++ unsigned int n_block_number,
+ expected_level,
+ n_block_size = fs->fs_blocksize;
+ struct buffer_head * p_s_bh;
diff --git a/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.21-fsck-n.patch b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.21-fsck-n.patch
new file mode 100644
index 00000000000..0eacd22f66d
--- /dev/null
+++ b/sys-fs/reiserfsprogs/files/reiserfsprogs-3.6.21-fsck-n.patch
@@ -0,0 +1,14 @@
+--- fsck/main.c
++++ fsck/main.c
+@@ -421,8 +421,9 @@
+ (data->log == stdout) ? "stdout" :
+ (data->log_file_name ? data->log_file_name : "fsck.run"));
+
+- if (!(data->options & OPT_YES) && !user_confirmed (warn_to, "\nDo you want to "
+- "run this program?[N/Yes] (note need to type Yes if you do):", "Yes\n"))
++ if (!(data->options & OPT_YES) && !(data->options & OPT_SILENT) &&
++ !user_confirmed (warn_to, "\nDo you want to run this program?[N/Yes] "
++ "(note need to type Yes if you do):", "Yes\n"))
+ exit (EXIT_USER);
+ }
+
diff --git a/sys-fs/reiserfsprogs/metadata.xml b/sys-fs/reiserfsprogs/metadata.xml
new file mode 100644
index 00000000000..96a2d586367
--- /dev/null
+++ b/sys-fs/reiserfsprogs/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>base-system</herd>
+</pkgmetadata>
diff --git a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.21-r1.ebuild b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.21-r1.ebuild
new file mode 100644
index 00000000000..020a7e4db5a
--- /dev/null
+++ b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.21-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils
+
+DESCRIPTION="Reiserfs Utilities"
+HOMEPAGE="http://www.kernel.org/pub/linux/utils/fs/reiserfs/"
+SRC_URI="mirror://kernel/linux/utils/fs/reiserfs/${P}.tar.gz
+ mirror://kernel/linux/kernel/people/jeffm/${PN}/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 -sparc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-fsck-n.patch
+ epatch "${FILESDIR}"/${P}-fix_large_fs.patch
+}
+
+src_configure() {
+ econf --prefix="${EPREFIX}/"
+}
+
+src_install() {
+ default
+ dosym reiserfsck /sbin/fsck.reiserfs
+ dosym mkreiserfs /sbin/mkfs.reiserfs
+}
diff --git a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.23.ebuild b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.23.ebuild
new file mode 100644
index 00000000000..12e177f6ac6
--- /dev/null
+++ b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.23.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit flag-o-matic
+
+DESCRIPTION="Reiserfs Utilities"
+HOMEPAGE="http://www.kernel.org/pub/linux/utils/fs/reiserfs/"
+SRC_URI="mirror://kernel/linux/utils/fs/reiserfs/${P}.tar.xz
+ mirror://kernel/linux/kernel/people/jeffm/${PN}/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 -sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+src_configure() {
+ append-flags -std=gnu89 #427300
+ econf --prefix="${EPREFIX}/"
+}
diff --git a/sys-fs/reiserfsprogs/reiserfsprogs-3.6.24.ebuild b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.24.ebuild
new file mode 100644
index 00000000000..33b8e5671a4
--- /dev/null
+++ b/sys-fs/reiserfsprogs/reiserfsprogs-3.6.24.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit flag-o-matic
+
+DESCRIPTION="Reiserfs Utilities"
+HOMEPAGE="http://www.kernel.org/pub/linux/utils/fs/reiserfs/"
+SRC_URI="mirror://kernel/linux/utils/fs/reiserfs/${P}.tar.xz
+ mirror://kernel/linux/kernel/people/jeffm/${PN}/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 -sparc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+src_configure() {
+ append-flags -std=gnu89 #427300
+ econf --prefix="${EPREFIX}/"
+}