diff --git a/e2fsprogs-1.41.9-dlopen-fix.patch b/e2fsprogs-1.41.9-dlopen-fix.patch new file mode 100644 index 0000000..a1dcd8e --- /dev/null +++ b/e2fsprogs-1.41.9-dlopen-fix.patch @@ -0,0 +1,52 @@ +commit 06ef971be505678ee462ae1844204ed24f14aedc +Author: Theodore Ts'o +Date: Thu Nov 12 17:54:45 2009 -0500 + + libss: initialize function pointer for readline_shutdown() + + Clear the function pointer for readline_shutdown() so that if libss is + linking against a readline library which doesn't supply a + readline_shutdown() function, ss_delete_invocation() won't seg fault. + + Thanks to Solar Designer for reporting this + problem to me. + + Signed-off-by: "Theodore Ts'o" + +libss: add newer libreadline to dlopen path + +Rawhide now has libreadline.so.6 ... add it to the ever-expanding +list of libs to look for. + +Unfortunately without commit 06ef971be505678ee462ae1844204ed24f14aedc +this fails in a rather cryptic way. + +Signed-off-by: Eric Sandeen +--- + +Index: e2fsprogs-1.41.9/lib/ss/invocation.c +=================================================================== +--- e2fsprogs-1.41.9.orig/lib/ss/invocation.c ++++ e2fsprogs-1.41.9/lib/ss/invocation.c +@@ -71,6 +71,7 @@ int ss_create_invocation(subsystem_name, + *(new_table->rqt_tables+1) = (ss_request_table *) NULL; + + new_table->readline_handle = 0; ++ new_table->readline_shutdown = 0; + new_table->readline = 0; + new_table->add_history = 0; + new_table->redisplay = 0; +Index: e2fsprogs-1.41.9/lib/ss/get_readline.c +=================================================================== +--- e2fsprogs-1.41.9.orig/lib/ss/get_readline.c ++++ e2fsprogs-1.41.9/lib/ss/get_readline.c +@@ -36,7 +36,7 @@ static void ss_release_readline(ss_data + } + + /* Libraries we will try to use for readline/editline functionality */ +-#define DEFAULT_LIBPATH "libreadline.so.5:libreadline.so.4:libreadline.so:libedit.so.2:libedit.so:libeditline.so.0:libeditline.so" ++#define DEFAULT_LIBPATH "libreadline.so.6:libreadline.so.5:libreadline.so.4:libreadline.so:libedit.so.2:libedit.so:libeditline.so.0:libeditline.so" + + void ss_get_readline(int sci_idx) + { + diff --git a/e2fsprogs-1.41.9-resize-array.patch b/e2fsprogs-1.41.9-resize-array.patch new file mode 100644 index 0000000..e6aecf8 --- /dev/null +++ b/e2fsprogs-1.41.9-resize-array.patch @@ -0,0 +1,38 @@ +Index: e2fsprogs-1.41.9/resize/resize2fs.c +=================================================================== +--- e2fsprogs-1.41.9.orig/resize/resize2fs.c ++++ e2fsprogs-1.41.9/resize/resize2fs.c +@@ -1818,9 +1818,6 @@ static errcode_t ext2fs_calculate_summar + fs->group_desc[group].bg_free_blocks_count = + group_free; + ext2fs_group_desc_csum_set(fs, group); +- group++; +- count = 0; +- group_free = 0; + uninit = (fs->group_desc[group].bg_flags & + EXT2_BG_BLOCK_UNINIT); + ext2fs_super_and_bgd_loc(fs, group, &super_blk, +@@ -1832,6 +1829,9 @@ static errcode_t ext2fs_calculate_summar + else + old_desc_blocks = fs->desc_blocks + + fs->super->s_reserved_gdt_blocks; ++ group++; ++ count = 0; ++ group_free = 0; + } + } + fs->super->s_free_blocks_count = total_free; +@@ -1858,11 +1858,11 @@ static errcode_t ext2fs_calculate_summar + fs->group_desc[group].bg_free_inodes_count = + group_free; + ext2fs_group_desc_csum_set(fs, group); ++ uninit = (fs->group_desc[group].bg_flags & ++ EXT2_BG_INODE_UNINIT); + group++; + count = 0; + group_free = 0; +- uninit = (fs->group_desc[group].bg_flags & +- EXT2_BG_INODE_UNINIT); + } + } + fs->super->s_free_inodes_count = total_free; diff --git a/e2fsprogs-1.41.9-topology-quiet.patch b/e2fsprogs-1.41.9-topology-quiet.patch new file mode 100644 index 0000000..0f215d3 --- /dev/null +++ b/e2fsprogs-1.41.9-topology-quiet.patch @@ -0,0 +1,48 @@ +mkfsing a plain file would lead to a warning about being unable +to determine geometry; we should just skip the topology-getting +if we see that we have a regular file. + +This was breaking "make check" but I had missed it since I +inadvertently stopped running the checks during the Fedora +RPM build. + +Also, add a newline to the warning. + +Signed-off-by: Eric Sandeen +--- + +diff --git a/misc/mke2fs.c b/misc/mke2fs.c +index 94b4c81..81b34ab 100644 +--- a/misc/mke2fs.c ++++ b/misc/mke2fs.c +@@ -47,6 +47,7 @@ extern int optind; + #endif + #include + #include ++#include + #include + #include + #include +@@ -1035,6 +1036,11 @@ static int ext2fs_get_device_geometry(const char *file, + blkid_topology tp; + unsigned long min_io; + unsigned long opt_io; ++ struct stat statbuf; ++ ++ /* Nothing to do for a regular file */ ++ if (!stat(file, &statbuf) && S_ISREG(statbuf.st_mode)) ++ return 0; + + pr = blkid_new_probe_from_filename(file); + if (!pr) +@@ -1630,7 +1636,7 @@ got_size: + retval = ext2fs_get_device_geometry(device_name, &fs_param); + if (retval < 0) { + fprintf(stderr, +- _("warning: Unable to get device geometry for %s"), ++ _("warning: Unable to get device geometry for %s\n"), + device_name); + } else if (retval) { + printf(_("%s alignment is offset by %lu bytes.\n"), + + diff --git a/e2fsprogs.spec b/e2fsprogs.spec index ff502ee..0a414de 100644 --- a/e2fsprogs.spec +++ b/e2fsprogs.spec @@ -4,7 +4,7 @@ Summary: Utilities for managing ext2, ext3, and ext4 filesystems Name: e2fsprogs Version: 1.41.9 -Release: 8%{?dist} +Release: 9%{?dist} # License tags based on COPYING file distinctions for various components License: GPLv2 @@ -18,6 +18,9 @@ Patch5: e2fsprogs-1.41.9-24hr-fsck-grace.patch Patch6: e2fsprogs-1.41.9-topology.patch Patch7: e2fsprogs-1.41.9-trim.patch Patch8: e4fsprogs-1.41.9-s_jnl_blocks-swap.patch +Patch9: e2fsprogs-1.41.9-topology-quiet.patch +Patch10: e2fsprogs-1.41.9-resize-array.patch +Patch11: e2fsprogs-1.41.9-dlopen-fix.patch Url: http://e2fsprogs.sourceforge.net/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -148,11 +151,14 @@ It was originally inspired by the Multics SubSystem library. %patch6 -p1 -b .topo %patch7 -p1 -b .trim %patch8 -p1 -b .journalblocks +%patch9 -p1 -b .topo2 +%patch10 -p1 -b .resize2 +%patch11 -p1 -b .dlopen %build %configure --enable-elf-shlibs --enable-nls --disable-uuidd --disable-fsck \ --disable-e2initrd-helper --disable-libblkid --disable-libuuid -make %{?_smp_mflags} V=1 +make %{?_smp_mflags} %install rm -rf %{buildroot} @@ -175,7 +181,7 @@ chmod +w %{buildroot}%{_libdir}/*.a %find_lang %{name} %check -# make check +make check %clean rm -rf %{buildroot} @@ -311,6 +317,11 @@ exit 0 %{_libdir}/pkgconfig/ss.pc %changelog +* Sat Jan 23 2010 Eric Sandeen 1.41.9-9 +- Fix up stray output & re-enable make check +- Fix dlopen issues for newer libreadline +- Fix access beyond end of array in resize2fs + * Tue Nov 10 2009 Eric Sandeen 1.41.9-8 - Fix up topology patch to build w/ new util-linux-ng - Fix endian swapping of backup journal blocks in sb