rpms/e2fsprogs/devel e2fsprogs-1.38-blkid-devmapper.patch, NONE, 1.1 e2fsprogs.spec, 1.43, 1.44 e2fsprogs-1.38-dm.patch, 1.3, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Wed Jan 11 15:41:39 UTC 2006
- Previous message (by thread): rpms/libsetrans/devel .cvsignore, 1.16, 1.17 libsetrans.spec, 1.24, 1.25 sources, 1.20, 1.21
- Next message (by thread): rpms/foomatic/FC-4 foomatic-db-consistency.patch, NONE, 1.1 foomatic.spec, 1.94, 1.95
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: kzak
Update of /cvs/dist/rpms/e2fsprogs/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv16715
Modified Files:
e2fsprogs.spec
Added Files:
e2fsprogs-1.38-blkid-devmapper.patch
Removed Files:
e2fsprogs-1.38-dm.patch
Log Message:
improve devmapper patch
e2fsprogs-1.38-blkid-devmapper.patch:
MCONFIG.in | 3
configure.in | 30 +++++++++
e2fsck/Makefile.in | 2
lib/blkid/Makefile.in | 4 -
lib/blkid/blkid.pc.in | 2
lib/blkid/blkidP.h | 1
lib/blkid/devname.c | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 204 insertions(+), 4 deletions(-)
--- NEW FILE e2fsprogs-1.38-blkid-devmapper.patch ---
--- e2fsprogs-1.38/configure.in.dm 2005-04-06 20:44:15.000000000 +0200
+++ e2fsprogs-1.38/configure.in 2006-01-11 14:50:39.000000000 +0100
@@ -480,6 +480,36 @@
)
AC_SUBST(E2INITRD_PROG)
AC_SUBST(E2INITRD_MAN)
+dnl handle --enable-blkid-devmapper
+dnl
+AC_ARG_ENABLE([blkid-devmapper],
+[ --enable-blkid-devmapper build with device-mapper support],
+[if test "$enableval" = "no"
+then
+ echo "Disabling device-mapper support"
+ DEVMAPPER_REQ=''
+ DEVMAPPER_LIBS=''
+ STATIC_DEVMAPPER_LIBS=''
+else
+ AC_DEFINE(HAVE_DEVMAPPER)
+ echo "Enabling device-mapper support"
+
+ PKG_PROG_PKG_CONFIG()
+
+ AC_CHECK_LIB(devmapper, dm_tree_create,
+ [DEVMAPPER_LIBS=`$PKG_CONFIG --libs devmapper`;
+ STATIC_DEVMAPPER_LIBS=`$PKG_CONFIG --static --libs devmapper`;
+ DEVMAPPER_REQ="devmapper"],
+ [AC_MSG_ERROR([device-mapper library not found])],
+ [$DEVMAPPER_LIBS])
+fi]
+,
+echo "Disabling device-mapper support by default"
+)
+AC_SUBST(DEVMAPPER_REQ)
+AC_SUBST(DEVMAPPER_LIBS)
+AC_SUBST(STATIC_DEVMAPPER_LIBS)
+dnl
dnl
dnl
MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
--- e2fsprogs-1.38/MCONFIG.in.dm 2006-01-11 14:02:41.000000000 +0100
+++ e2fsprogs-1.38/MCONFIG.in 2006-01-11 14:03:18.000000000 +0100
@@ -74,6 +74,9 @@
LIBINTL = @LIBINTL@
DEPLIBUUID = $(LIB)/libuuid at LIB_EXT@
+DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
+STATIC_DEVMAPPER_LIBS = @STATIC_DEVMAPPER_LIBS@
+
STATIC_LIBSS = $(LIB)/libss at STATIC_LIB_EXT@
STATIC_LIBCOM_ERR = $(LIB)/libcom_err at STATIC_LIB_EXT@
STATIC_LIBE2P = $(LIB)/libe2p at STATIC_LIB_EXT@
--- e2fsprogs-1.38/lib/blkid/blkid.pc.in.dm 2006-01-11 13:25:32.000000000 +0100
+++ e2fsprogs-1.38/lib/blkid/blkid.pc.in 2006-01-11 14:48:57.000000000 +0100
@@ -6,6 +6,6 @@
Name: blkid
Description: Block device id library
Version: @E2FSPROGS_VERSION@
-Requires: uuid
+Requires: uuid @DEVMAPPER_REQ@
Cflags: -I${includedir}
Libs: -L${libdir} -lblkid
--- e2fsprogs-1.38/lib/blkid/Makefile.in.dm 2005-06-29 19:39:54.000000000 +0200
+++ e2fsprogs-1.38/lib/blkid/Makefile.in 2006-01-11 14:10:44.000000000 +0100
@@ -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 $(DEVMAPPER_LIBS)
BSDLIB_VERSION = 2.0
BSDLIB_IMAGE = libblkid
@@ -50,7 +50,7 @@
@MAKEFILE_PROFILE@
@MAKEFILE_CHECKER@
-LIBS_BLKID= $(STATIC_LIBBLKID) $(STATIC_LIBUUID)
+LIBS_BLKID= $(STATIC_LIBBLKID) $(STATIC_LIBUUID) $(DEVMAPPER_LIBS)
DEPLIBS_BLKID= $(DEPSTATIC_LIBBLKID) $(DEPSTATIC_LIBUUID)
.c.o:
--- e2fsprogs-1.38/lib/blkid/devname.c.dm 2005-05-07 21:26:03.000000000 +0200
+++ e2fsprogs-1.38/lib/blkid/devname.c 2006-01-11 14:29:47.000000000 +0100
@@ -11,6 +11,8 @@
* %End-Header%
*/
+#define _GNU_SOURCE 1
+
#include <stdio.h>
#include <string.h>
#if HAVE_UNISTD_H
@@ -35,6 +37,10 @@
#include "blkidP.h"
+#ifdef HAVE_DEVMAPPER
+#include <libdevmapper.h>
+#endif
+
/*
* Find a dev struct in the cache by device name, if available.
*
@@ -75,6 +81,10 @@
return dev;
}
+#ifdef HAVE_DEVMAPPER
+static int dm_device_is_leaf(const dev_t dev);
+#endif
+
/*
* Probe a single block device to add to the device cache.
*/
@@ -90,6 +100,10 @@
list_for_each(p, &cache->bic_devs) {
blkid_dev tmp = list_entry(p, struct blkid_struct_dev,
bid_devs);
+#ifdef HAVE_DEVMAPPER
+ if (!dm_device_is_leaf(devno))
+ continue;
+#endif
if (tmp->bid_devno == devno) {
if (only_if_new)
return;
@@ -137,6 +151,155 @@
return;
}
+#ifdef HAVE_DEVMAPPER
+/*
+ * device-mapper support
+ */
+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) {
+ dm_task_destroy(task);
+ 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) {
+ dm_task_destroy(task);
+ 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) {
+ dm_task_destroy(task);
+ 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)
+ goto try_next;
+
+ dev = dm_get_devno(names->name);
+ if (dev == 0)
+ goto try_next;
+
+ if (!dm_device_is_leaf(dev))
+ goto try_next;
+
+ probe_one(cache, device, dev, BLKID_PRI_DM, only_if_new);
+
+try_next:
+ next = names->next;
+ } while (next);
+
+ dm_task_destroy(task);
+}
+#endif /* HAVE_DEVMAPPER */
+
#define PROC_PARTITIONS "/proc/partitions"
#define VG_DIR "/proc/lvm/VGs"
@@ -290,6 +453,9 @@
return 0;
blkid_read_cache(cache);
+#ifdef HAVE_DEVMAPPER
+ dm_probe_all(cache, only_if_new);
+#endif
evms_probe_all(cache, only_if_new);
#ifdef VG_DIR
lvm_probe_all(cache, only_if_new);
--- e2fsprogs-1.38/lib/blkid/blkidP.h.dm 2005-05-07 20:16:09.000000000 +0200
+++ e2fsprogs-1.38/lib/blkid/blkidP.h 2006-01-11 13:24:54.000000000 +0100
@@ -118,6 +118,7 @@
/*
* Priority settings for different types of devices
*/
+#define BLKID_PRI_DM 40
#define BLKID_PRI_EVMS 30
#define BLKID_PRI_LVM 20
#define BLKID_PRI_MD 10
--- e2fsprogs-1.38/e2fsck/Makefile.in.dm 2005-06-29 19:42:20.000000000 +0200
+++ e2fsprogs-1.38/e2fsck/Makefile.in 2006-01-11 14:04:35.000000000 +0100
@@ -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) $(STATIC_DEVMAPPER_LIBS)
STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(STATIC_LIBBLKID) \
$(DEPSTATIC_LIBUUID)
Index: e2fsprogs.spec
===================================================================
RCS file: /cvs/dist/rpms/e2fsprogs/devel/e2fsprogs.spec,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- e2fsprogs.spec 9 Jan 2006 22:43:20 -0000 1.43
+++ e2fsprogs.spec 11 Jan 2006 15:41:36 -0000 1.44
@@ -4,7 +4,7 @@
Summary: Utilities for managing the second extended (ext2) filesystem.
Name: e2fsprogs
Version: 1.38
-Release: 5
+Release: 6
License: GPL
Group: System Environment/Base
Source: ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-%{version}.tar.gz
@@ -26,11 +26,12 @@
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
+Patch34: e2fsprogs-1.38-blkid-devmapper.patch
Url: http://e2fsprogs.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-root
Requires: e2fsprogs-libs = %{version}-%{release}, device-mapper
-BuildRequires: gettext, texinfo, autoconf, automake, device-mapper, libselinux-devel, libsepol-devel
+BuildRequires: gettext, texinfo, autoconf, automake, libselinux-devel, libsepol-devel
+BuildRequires: device-mapper >= 1.02.02-3
%define ext2resize_basever 1.1.17
%define ext2resize_name ext2resize-%{ext2resize_basever}
@@ -119,7 +120,9 @@
%patch34 -p1 -b .dm
%build
-%configure --enable-elf-shlibs --enable-nls --disable-e2initrd-helper
+aclocal
+autoconf
+%configure --enable-elf-shlibs --enable-nls --disable-e2initrd-helper --enable-blkid-devmapper
# --enable-dynamic-e2fsck
make -C po update-po
make
@@ -293,6 +296,10 @@
%{_mandir}/man3/uuid_unparse.3*
%changelog
+* Wed Jan 11 2006 Karel Zak <kzak at redhat.com> 1.38-6
+- cleanup device-mapper patch
+- use pkg-config for device-mapper
+
* Mon Jan 9 2006 Peter Jones <pjones at redhat.com> 1.38-5
- fix some more minor logic errors in dm probing
--- e2fsprogs-1.38-dm.patch DELETED ---
- Previous message (by thread): rpms/libsetrans/devel .cvsignore, 1.16, 1.17 libsetrans.spec, 1.24, 1.25 sources, 1.20, 1.21
- Next message (by thread): rpms/foomatic/FC-4 foomatic-db-consistency.patch, NONE, 1.1 foomatic.spec, 1.94, 1.95
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list