Skip to content

Commit

Permalink
dmraid: add new recipe
Browse files Browse the repository at this point in the history
Device-mapper RAID tool and library.

It is provided by lots of distro such as RHEL and Ubuntu.

Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
  • Loading branch information
biannm committed Jun 18, 2015
1 parent 63388b4 commit bcf7dd2
Show file tree
Hide file tree
Showing 21 changed files with 1,604 additions and 0 deletions.
121 changes: 121 additions & 0 deletions meta-oe/recipes-extended/dmraid/dmraid/01_fix_broken_linking.patch
@@ -0,0 +1,121 @@
Author: Luke Yelavich <themuso@ubuntu.com>
Description: Fix library symbolic link creation and library linking.
--- 1.0.0.rc16.orig/configure
+++ 1.0.0.rc16/configure
@@ -693,6 +693,7 @@ DEBUG_MALLOC
DMRAID_TEST
DMRAID_VERSION
DMRAID_LIB_VERSION
+DMRAID_LIB_MAJOR_VERSION
DIETLIBC
GROUP
JOBS
@@ -5767,8 +5768,10 @@ fi

if test "-f lib/version.h"; then
DMRAID_LIB_VERSION="`sed --quiet 's/^.*\(DMRAID_LIB_VERSION\)[^_].*"\(.*\)"/\2/p' lib/version.h`"
+ DMRAID_LIB_MAJOR_VERSION="`grep DMRAID_LIB_MAJOR_VERSION lib/version.h | tr '\t' ' ' | cut -f 3 -d ' '`"
else
DMRAID_LIB_VERSION="Unknown"
+ DMRAID_LIB_MAJOR_VERSION="Unknown"
fi


--- 1.0.0.rc16.orig/configure.in
+++ 1.0.0.rc16/configure.in
@@ -178,7 +178,7 @@ if test x$DEBUG_MALLOC = xyes; then
fi

dnl Mess with default exec_prefix
-if [[ "x$exec_prefix" = xNONE -a "x$prefix" = xNONE ]];
+if [ "x$exec_prefix" = xNONE -a "x$prefix" = xNONE ];
then exec_prefix="";
fi;

@@ -220,8 +220,10 @@ fi

if test "-f lib/version.h"; then
DMRAID_LIB_VERSION="`sed --quiet 's/^.*\(DMRAID_LIB_VERSION\)[[^_]].*"\(.*\)"/\2/p' lib/version.h`"
+ DMRAID_LIB_MAJOR_VERSION="`grep DMRAID_LIB_MAJOR_VERSION lib/version.h | tr '\t' ' ' | cut -f 3 -d ' '`"
else
DMRAID_LIB_VERSION="Unknown"
+ DMRAID_LIB_MAJOR_VERSION="Unknown"
fi

AC_SUBST(CC)
@@ -232,6 +234,7 @@ AC_SUBST(DEBUG_MALLOC)
AC_SUBST(DMRAID_TEST)
AC_SUBST(DMRAID_VERSION)
AC_SUBST(DMRAID_LIB_VERSION)
+AC_SUBST(DMRAID_LIB_MAJOR_VERSION)
AC_SUBST(DIETLIBC)
AC_SUBST(GROUP)
AC_SUBST(JOBS)
--- 1.0.0.rc16.orig/lib/Makefile.in
+++ 1.0.0.rc16/lib/Makefile.in
@@ -65,6 +65,11 @@ ifeq ("@KLIBC@", "no")
LIB_EVENTS_SHARED=$(top_srcdir)/lib/$(LIB_EVENTS_NAME).so
TARGETS += $(LIB_SHARED) $(LIB_EVENTS_SHARED)
INSTALL_TARGETS += $(LIB_SHARED) $(LIB_EVENTS_SHARED)
+ ifeq ("@DIETLIBC@", "yes")
+ LIBDMRAIDLIBS += -ldevmapper_dietc
+ else
+ LIBDMRAIDLIBS += -ldevmapper
+ endif
endif
endif

@@ -82,10 +87,11 @@ install_dmraid_libs: $(INSTALL_TARGETS)
for f in $(INSTALL_TARGETS); \
do \
n=$$(basename $${f}) ; \
- if [[ "$$n" =~ '.so$$' ]]; then \
+ if echo "$$n" | grep -q '.so$$'; then \
$(INSTALL) -m 555 $(STRIP) \
$$f $(libdir)/$${n}.@DMRAID_LIB_VERSION@; \
- $(LN_S) -f $${n}.@DMRAID_LIB_VERSION@ $(libdir)/$${n}; \
+ mkdir -p $(prefix)/lib; \
+ cd $(prefix)/lib/ && $(LN_S) -f /lib/$${n}.@DMRAID_LIB_VERSION@ $${n}; \
else \
$(INSTALL) -m 555 $(STRIP) $$f $(libdir)/$${n}; \
fi \
--- 1.0.0.rc16.orig/make.tmpl.in
+++ 1.0.0.rc16/make.tmpl.in
@@ -44,6 +44,7 @@ endif
OWNER = @OWNER@
GROUP = @GROUP@
DMRAID_LIB_VERSION = @DMRAID_LIB_VERSION@
+DMRAID_LIB_MAJOR_VERSION = @DMRAID_LIB_MAJOR_VERSION@

# The number of jobs to run, if blank, defaults to the make standard
ifndef MAKEFLAGS
@@ -136,7 +137,7 @@ $(TARGETS): $(OBJECTS)

%.so: $(OBJECTS)
$(CC) -shared -Wl,-soname,$(notdir $@).$(DMRAID_LIB_VERSION) \
- -Wl,--version-script,.export.sym $(OBJECTS) -o $@ -ldevmapper-event
+ -Wl,--version-script,.export.sym $(OBJECTS) $(LIBDMRAIDLIBS) -o $@ -ldevmapper-event

$(LIB_STATIC): $(OBJECTS)
$(RM) $@
--- 1.0.0.rc16.orig/tools/Makefile.in
+++ 1.0.0.rc16/tools/Makefile.in
@@ -34,12 +34,16 @@ ifeq ("@KLIBC@", "yes")
DMRAIDLIBS += -ldevmapper_klibc
else
ifeq ("@DIETLIBC@", "yes")
- DMRAIDLIBS += -ldevmapper_dietc
+ ifeq ("@LIB_SO@", "no")
+ DMRAIDLIBS += -ldevmapper_dietc
+ endif
ifeq ("@STATIC_LINK@", "no")
DMEVENTTOOLLIBS = -ldevmapper-event_dietc
endif
else
- DMRAIDLIBS += -ldevmapper
+ ifeq ("@LIB_SO@", "no")
+ DMRAIDLIBS += -ldevmapper
+ endif
ifeq ("@STATIC_LINK@", "no")
DMEVENTTOOLLIBS = -ldevmapper-event
endif
133 changes: 133 additions & 0 deletions meta-oe/recipes-extended/dmraid/dmraid/02_disable_dmreg.patch
@@ -0,0 +1,133 @@
Disabled all dmreg stuff
--- 1.0.0.rc16.orig/lib/Makefile.in
+++ 1.0.0.rc16/lib/Makefile.in
@@ -45,10 +45,6 @@ SOURCES=\
format/ddf/ddf1_dump.c \
format/partition/dos.c

-ifeq ("@STATIC_LINK@", "no")
- SOURCES += register/dmreg.c
-endif
-
OBJECTS=$(SOURCES:%.c=%.o)

LIB_STATIC=$(top_srcdir)/lib/libdmraid.a
@@ -63,8 +59,8 @@ ifeq ("@KLIBC@", "no")
ifeq ("@STATIC_LINK@", "no")
LIB_SHARED=$(top_srcdir)/lib/libdmraid.so
LIB_EVENTS_SHARED=$(top_srcdir)/lib/$(LIB_EVENTS_NAME).so
- TARGETS += $(LIB_SHARED) $(LIB_EVENTS_SHARED)
- INSTALL_TARGETS += $(LIB_SHARED) $(LIB_EVENTS_SHARED)
+ TARGETS += $(LIB_SHARED)
+ INSTALL_TARGETS += $(LIB_SHARED)
ifeq ("@DIETLIBC@", "yes")
LIBDMRAIDLIBS += -ldevmapper_dietc
else
--- 1.0.0.rc16.orig/make.tmpl.in
+++ 1.0.0.rc16/make.tmpl.in
@@ -137,7 +137,7 @@ $(TARGETS): $(OBJECTS)

%.so: $(OBJECTS)
$(CC) -shared -Wl,-soname,$(notdir $@).$(DMRAID_LIB_VERSION) \
- -Wl,--version-script,.export.sym $(OBJECTS) $(LIBDMRAIDLIBS) -o $@ -ldevmapper-event
+ -Wl,--version-script,.export.sym $(OBJECTS) $(LIBDMRAIDLIBS) -o $@

$(LIB_STATIC): $(OBJECTS)
$(RM) $@
--- 1.0.0.rc16.orig/tools/Makefile.in
+++ 1.0.0.rc16/tools/Makefile.in
@@ -22,12 +22,6 @@ TARGETS=\

include $(top_srcdir)/make.tmpl

-ifeq ("@KLIBC@", "no")
- ifeq ("@STATIC_LINK@", "no")
- TARGETS += dmevent_tool
- endif
-endif
-
DMRAIDLIBS=-ldmraid

ifeq ("@KLIBC@", "yes")
@@ -37,16 +31,10 @@ else
ifeq ("@LIB_SO@", "no")
DMRAIDLIBS += -ldevmapper_dietc
endif
- ifeq ("@STATIC_LINK@", "no")
- DMEVENTTOOLLIBS = -ldevmapper-event_dietc
- endif
else
ifeq ("@LIB_SO@", "no")
DMRAIDLIBS += -ldevmapper
endif
- ifeq ("@STATIC_LINK@", "no")
- DMEVENTTOOLLIBS = -ldevmapper-event
- endif
endif

ifeq ("@LIBSELINUX@", "yes")
--- 1.0.0.rc16.orig/lib/.export.sym
+++ 1.0.0.rc16/lib/.export.sym
@@ -52,8 +52,6 @@ Base {
dso_end_rebuild;
hot_spare_add;
dso_get_members;
- dm_register_device;
- dm_unregister_device;
dm_all_monitored;
local:
*;
--- 1.0.0.rc16.orig/lib/activate/activate.c
+++ 1.0.0.rc16/lib/activate/activate.c
@@ -849,18 +849,12 @@ enum dm_what { DM_ACTIVATE, DM_REGISTER
static int
dm_register_for_event(char *dev_name, char *lib_name)
{
-#ifdef DMRAID_AUTOREGISTER
- dm_register_device(dev_name, lib_name);
-#endif
return 1;
}

static int
dm_unregister_for_event(char *dev_name, char *lib_name)
{
-#ifdef DMRAID_AUTOREGISTER
- dm_unregister_device(dev_name, lib_name);
-#endif
return 1;
}

@@ -874,6 +868,8 @@ do_device(struct lib_context *lc, struct
if (OPT_TEST(lc))
return 1;

+ return 1;
+
struct dmraid_format *fmt = get_format(rs);

if (fmt->name != NULL) {
--- 1.0.0.rc16.orig/lib/metadata/reconfig.c
+++ 1.0.0.rc16/lib/metadata/reconfig.c
@@ -242,20 +242,16 @@ add_dev_to_raid(struct lib_context *lc,
* metadata on disks to OK state.
*/
/* Create lib-events library name */
- if (fmt->name) {
+ /*if (fmt->name) {
strncpy(lib_name, "libdmraid-events-", LIB_NAME_LENGTH);
strncat(lib_name, fmt->name,
LIB_NAME_LENGTH-strlen(fmt->name)-3);
strncat(lib_name, ".so", 3);
} else
goto err;
-
- /* Check registration */
- if (!dm_monitored_events(&pending, sub_rs->name, lib_name)) {
- /* If NOT registered update metadata to OK state. */
+*/
if (check_rd->fmt->metadata_handler)
check_rd->fmt->metadata_handler(lc, UPDATE_REBUILD_STATE, NULL, (void *) rs);
- }
}
#endif
Expand Down

0 comments on commit bcf7dd2

Please sign in to comment.