rpms/e2fsprogs/devel e2fsprogs-1.38-dm.patch, NONE, 1.1 e2fsprogs.spec, 1.40, 1.41
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Wed Jan 4 03:31:25 UTC 2006
- Previous message (by thread): rpms/kernel/devel kernel-2.6.spec,1.1818,1.1819
- Next message (by thread): rpms/evolution/devel evolution-2.5.4-fix-missing-declarations.patch, NONE, 1.1 evolution-2.5.4-move-autosave-file.patch, NONE, 1.1 .cvsignore, 1.40, 1.41 evolution.spec, 1.107, 1.108 sources, 1.40, 1.41 evolution-2.2.2-move-autosave-file.patch, 1.2, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: pjones
Update of /cvs/dist/rpms/e2fsprogs/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv21737
Modified Files:
e2fsprogs.spec
Added Files:
e2fsprogs-1.38-dm.patch
Log Message:
add device mapper support
e2fsprogs-1.38-dm.patch:
e2fsck/Makefile.in | 2
lib/blkid/Makefile.in | 2
lib/blkid/devname.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 145 insertions(+), 2 deletions(-)
--- NEW FILE e2fsprogs-1.38-dm.patch ---
--- e2fsprogs-1.38/e2fsck/Makefile.in.dm 2005-06-29 13:42:20.000000000 -0400
+++ e2fsprogs-1.38/e2fsck/Makefile.in 2006-01-03 22:00:06.000000000 -0500
@@ -20,7 +20,7 @@
DEPLIBS= $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBBLKID) $(DEPLIBUUID)
STATIC_LIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(STATIC_LIBBLKID) \
- $(STATIC_LIBUUID) $(LIBINTL)
+ $(STATIC_LIBUUID) $(LIBINTL) -ldevmapper -lselinux -lsepol
STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(STATIC_LIBBLKID) \
$(DEPSTATIC_LIBUUID)
--- e2fsprogs-1.38/lib/blkid/devname.c.dm 2005-05-07 15:26:03.000000000 -0400
+++ e2fsprogs-1.38/lib/blkid/devname.c 2006-01-03 22:00:06.000000000 -0500
@@ -11,6 +11,8 @@
* %End-Header%
*/
+#define _GNU_SOURCE 1
+
#include <stdio.h>
#include <string.h>
#if HAVE_UNISTD_H
@@ -137,6 +139,146 @@
return;
}
+#include <libdevmapper.h>
+
+static int dm_device_has_dep(const dev_t dev, const char *name)
+{
+ struct dm_task *task;
+ struct dm_deps *deps;
+ struct dm_info info;
+ int i;
+
+ task = dm_task_create(DM_DEVICE_DEPS);
+ if (!task)
+ return 0;
+
+ dm_task_set_name(task, name);
+ dm_task_run(task);
+ dm_task_get_info(task, &info);
+
+ if (!info.exists) {
+ dm_task_destroy(task);
+ return 0;
+ }
+
+ deps = dm_task_get_deps(task);
+ if (!deps || deps->count == 0) {
+ dm_task_destroy(task);
+ return 0;
+ }
+
+ for (i = 0; i < deps->count; i++) {
+ dev_t dep_dev = deps->device[i];
+
+ if (dev == dep_dev) {
+ dm_task_destroy(task);
+ return 1;
+ }
+ }
+
+ dm_task_destroy(task);
+ return 0;
+}
+
+static int dm_device_is_leaf(const dev_t dev)
+{
+ struct dm_task *task;
+ struct dm_names *names;
+ unsigned int next = 0;
+ int n, ret = 1;
+
+ task = dm_task_create(DM_DEVICE_LIST);
+ if (!task)
+ return 1;
+
+ dm_task_run(task);
+ names = dm_task_get_names(task);
+ if (!names || !names->dev)
+ return 1;
+
+ n = 0;
+ do {
+ names = (void *)names + next;
+
+ if (dm_device_has_dep(dev, names->name))
+ ret = 0;
+
+ next = names->next;
+ } while (next);
+
+ dm_task_destroy(task);
+
+ return ret;
+}
+
+static dev_t dm_get_devno(const char *name)
+{
+ struct dm_task *task;
+ struct dm_info info;
+ dev_t ret = 0;
+
+ task = dm_task_create(DM_DEVICE_INFO);
+ if (!task)
+ return ret;
+
+ dm_task_set_name(task, name);
+ dm_task_run(task);
+ dm_task_get_info(task, &info);
+
+ if (!info.exists)
+ return ret;
+
+ ret = makedev(info.major, info.minor);
+
+ dm_task_destroy(task);
+
+ return ret;
+}
+
+static void dm_probe_all(blkid_cache cache, int only_if_new)
+{
+ struct dm_task *task;
+ struct dm_names *names;
+ unsigned int next = 0;
+ int n;
+
+ task = dm_task_create(DM_DEVICE_LIST);
+ if (!task)
+ return;
+
+ dm_task_run(task);
+ names = dm_task_get_names(task);
+ if (!names || !names->dev)
+ return;
+
+ n = 0;
+ do {
+ int rc;
+ char *device = NULL;
+ dev_t dev = 0;
+
+ names = (void *)names + next;
+
+ rc = asprintf(&device, "/dev/mapper/%s", names->name);
+ if (rc < 0)
+ continue;
+
+ dev = dm_get_devno(names->name);
+ if (dev == 0)
+ continue;
+
+ if (!dm_device_is_leaf(dev))
+ continue;
+
+
+ probe_one(cache, device, dev, BLKID_PRI_LVM, only_if_new);
+
+ next = names->next;
+ } while (next);
+
+ dm_task_destroy(task);
+}
+
#define PROC_PARTITIONS "/proc/partitions"
#define VG_DIR "/proc/lvm/VGs"
@@ -290,6 +432,7 @@
return 0;
blkid_read_cache(cache);
+ dm_probe_all(cache, only_if_new);
evms_probe_all(cache, only_if_new);
#ifdef VG_DIR
lvm_probe_all(cache, only_if_new);
--- e2fsprogs-1.38/lib/blkid/Makefile.in.dm 2006-01-03 22:03:00.000000000 -0500
+++ e2fsprogs-1.38/lib/blkid/Makefile.in 2006-01-03 22:02:40.000000000 -0500
@@ -37,7 +37,7 @@
ELF_IMAGE = libblkid
ELF_MYDIR = blkid
ELF_INSTALL_DIR = $(root_libdir)
-ELF_OTHER_LIBS = -L../.. -luuid
+ELF_OTHER_LIBS = -L../.. -luuid -ldevmapper -lselinux -lsepol
BSDLIB_VERSION = 2.0
BSDLIB_IMAGE = libblkid
Index: e2fsprogs.spec
===================================================================
RCS file: /cvs/dist/rpms/e2fsprogs/devel/e2fsprogs.spec,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- e2fsprogs.spec 9 Dec 2005 22:40:17 -0000 1.40
+++ e2fsprogs.spec 4 Jan 2006 03:30:33 -0000 1.41
@@ -4,7 +4,7 @@
Summary: Utilities for managing the second extended (ext2) filesystem.
Name: e2fsprogs
Version: 1.38
-Release: 2.1.1
+Release: 3
License: GPL
Group: System Environment/Base
Source: ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-%{version}.tar.gz
@@ -26,10 +26,11 @@
Patch31: e2fsprogs-1.38-man_no_ext2resize.patch
Patch32: e2fsprogs-1.38-no_pottcdate.patch
Patch33: e2fsprogs-1.38-lost+found.patch
+Patch34: e2fsprogs-1.38-dm.patch
Url: http://e2fsprogs.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-root
-Requires: e2fsprogs-libs = %{version}-%{release}
-BuildRequires: gettext, texinfo, autoconf, automake
+Requires: e2fsprogs-libs = %{version}-%{release}, device-mapper
+BuildRequires: gettext, texinfo, autoconf, automake, device-mapper, libselinux-devel, libsepol-devel
%define ext2resize_basever 1.1.17
%define ext2resize_name ext2resize-%{ext2resize_basever}
@@ -114,6 +115,9 @@
# fixed buffer overflow in mklost+found
%patch33 -p1 -b .lost+found
+# look at device mapper devices
+%patch34 -p1 -b .dm
+
%build
%configure --enable-elf-shlibs --enable-nls --disable-e2initrd-helper
# --enable-dynamic-e2fsck
@@ -289,6 +293,9 @@
%{_mandir}/man3/uuid_unparse.3*
%changelog
+* Tue Jan 03 2006 Peter Jones <pjones at redhat.com> 1.38-3
+- added support for device-mapper devices
+
* Fri Dec 09 2005 Jesse Keating <jkeating at redhat.com>
- rebuilt
- Previous message (by thread): rpms/kernel/devel kernel-2.6.spec,1.1818,1.1819
- Next message (by thread): rpms/evolution/devel evolution-2.5.4-fix-missing-declarations.patch, NONE, 1.1 evolution-2.5.4-move-autosave-file.patch, NONE, 1.1 .cvsignore, 1.40, 1.41 evolution.spec, 1.107, 1.108 sources, 1.40, 1.41 evolution-2.2.2-move-autosave-file.patch, 1.2, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list