Hello community, here is the log from the commit of package device-mapper for openSUSE:11.3 checked in at Fri Dec 30 18:55:40 CET 2011. -------- --- old-versions/11.3/UPDATES/all/device-mapper/lvm2-clvm.changes 2010-04-26 16:52:52.000000000 +0200 +++ /mounts/work_src_done/11.3/device-mapper/lvm2-clvm.changes 2011-12-30 18:34:40.000000000 +0100 @@ -1,0 +2,5 @@ +Fri Dec 30 18:33:54 CET 2011 - ro@suse.de + +- fix lvm2-clvm specfile so that patches apply + +------------------------------------------------------------------- calling whatdependson for 11.3-i586 Old: ---- device-mapper-static.diff lvm-no_chown.diff pvscan_2TB_limit.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ device-mapper.spec ++++++ --- /var/tmp/diff_new_pack.lAU6HK/_old 2011-12-30 18:55:12.000000000 +0100 +++ /var/tmp/diff_new_pack.lAU6HK/_new 2011-12-30 18:55:12.000000000 +0100 @@ -27,7 +27,7 @@ %endif # Version: 1.02.49 -Release: 4.<RELEASE4> +Release: 4.<RELEASE6> Summary: Device Mapper Tools Source: LVM2.2.02.67.tgz Source1: boot.device-mapper @@ -39,14 +39,12 @@ Patch60: k_dev_t.dif Patch61: device-mapper-dmsetup-export.patch Patch62: device-mapper-gcc-warning.diff -Patch63: device-mapper-static.diff Patch65: device-mapper-dmsetup-deps-export.patch Patch66: device-mapper-type_punning.diff Patch67: udev-rules_update.diff #Patch68: device-mapper-pkgconfig.patch Patch69: fix-typo.diff #Patches applies to both LVM2 and device-mapper -Patch80: lvm-no_chown.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libselinux-devel libudev-devel PreReq: %insserv_prereq %fillup_prereq @@ -81,13 +79,11 @@ %patch60 -p1 %patch61 -p1 %patch62 -p1 -#%patch63 -p1 %patch65 -p1 %patch66 -p0 %patch67 -p1 #%patch68 -p0 %patch69 -p1 -#%patch80 -p0 %build CFLAGS="$RPM_OPT_FLAGS" \ ++++++ lvm2-clvm.spec ++++++ --- /var/tmp/diff_new_pack.lAU6HK/_old 2011-12-30 18:55:12.000000000 +0100 +++ /var/tmp/diff_new_pack.lAU6HK/_new 2011-12-30 18:55:12.000000000 +0100 @@ -24,7 +24,7 @@ License: GPLv2+ ; LGPLv2.1+ Group: System/Base Version: 2.02.67 -Release: 4.<RELEASE3> +Release: 4.<RELEASE4> Requires: device-mapper >= 1.02.25 lvm2 = %{version} openais Provides: clvm PreReq: %fillup_prereq %insserv_prereq @@ -43,7 +43,7 @@ Patch2: no-inc-audit.diff Patch3: no_buildroot_shared.diff Patch4: sys_mount_instead_linux_fs.diff -Patch5: pvscan_2TB_limit.diff +#Patch5: pvscan_2TB_limit.diff Patch6: man_page_sectors.diff Patch11: cmdline_large_minor.diff Patch12: enable-clvmd.patch @@ -55,8 +55,6 @@ Patch19: dont_ignore_tmp_device_file.diff Patch20: support-drbd-filter.diff Patch21: call_cpg_leave_before_shutdown.diff -Patch63: device-mapper-static.diff -Patch80: lvm-no_chown.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -70,7 +68,7 @@ %patch2 %patch3 %patch4 -%patch5 +#patch5 %patch6 %patch11 %patch12 @@ -82,8 +80,6 @@ %patch19 -p1 %patch20 -p1 %patch21 -p1 -%patch63 -p1 -%patch80 -p0 %build CFLAGS="$RPM_OPT_FLAGS" MODPROBE_CMD=/sbin/modprobe \ ++++++ lvm2.spec ++++++ --- /var/tmp/diff_new_pack.lAU6HK/_old 2011-12-30 18:55:13.000000000 +0100 +++ /var/tmp/diff_new_pack.lAU6HK/_new 2011-12-30 18:55:13.000000000 +0100 @@ -28,7 +28,7 @@ PreReq: %fillup_prereq %insserv_prereq AutoReqProv: on Version: 2.02.67 -Release: 4.<RELEASE4> +Release: 4.<RELEASE5> Summary: LVM2 Tools Source: LVM2.%{version}.tgz Source1: lvm.conf @@ -55,11 +55,9 @@ Patch60: k_dev_t.dif Patch61: device-mapper-dmsetup-export.patch Patch62: device-mapper-gcc-warning.diff -Patch63: device-mapper-static.diff Patch65: device-mapper-dmsetup-deps-export.patch Patch69: fix-typo.diff #Patches apply to both LVM2 and device-mapper -Patch80: lvm-no_chown.diff Patch81: udev-rules_update.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -91,10 +89,8 @@ %patch60 -p1 %patch61 -p1 %patch62 -p1 -#%patch63 -p1 %patch65 -p1 %patch69 -p1 -#%patch80 -p0 %patch81 -p1 %build ++++++ enable-clvmd.patch ++++++ --- /var/tmp/diff_new_pack.lAU6HK/_old 2011-12-30 18:55:13.000000000 +0100 +++ /var/tmp/diff_new_pack.lAU6HK/_new 2011-12-30 18:55:13.000000000 +0100 @@ -2,10 +2,10 @@ ================================================================================ --- daemons/clvmd/clvm.h +++ daemons/clvmd/clvm.h -@@ -69,4 +69,29 @@ - #define CLVMD_CMD_GET_CLUSTERNAME 41 +@@ -70,4 +70,29 @@ #define CLVMD_CMD_SET_DEBUG 42 #define CLVMD_CMD_VG_BACKUP 43 + #define CLVMD_CMD_RESTART 44 + +/* Lock modes: */ +#define LKM_NLMODE 0 /* null lock */ ++++++ lvm-pv-create-link.diff ++++++ --- /var/tmp/diff_new_pack.lAU6HK/_old 2011-12-30 18:55:13.000000000 +0100 +++ /var/tmp/diff_new_pack.lAU6HK/_new 2011-12-30 18:55:13.000000000 +0100 @@ -1,147 +1,8 @@ Index: LVM2.2.02.58/tools/pvremove.c -=================================================================== ---- LVM2.2.02.58.orig/tools/pvremove.c 2009-12-04 03:18:34.000000000 +0800 -+++ LVM2.2.02.58/tools/pvremove.c 2010-02-04 15:24:32.000000000 +0800 -@@ -18,6 +18,30 @@ - const char _really_wipe[] = - "Really WIPE LABELS from physical volume \"%s\" of volume group \"%s\" [y/n]? "; - -+static const char* pv_remove_symlink(struct cmd_context* cmd, const char* name) -+{ -+ struct physical_volume *pv; -+ char *pvuuid; -+ char pvuuid_link[70]; -+ -+ if (!(pv = pv_read(cmd, name, NULL, NULL, 0, 0))) { -+ return NULL; -+ } -+ -+ pvuuid = malloc(sizeof(char)*40); -+ if (pvuuid == NULL) { -+ return NULL; -+ } -+ -+ id_write_format(&pv->id, pvuuid, 40); -+ -+ snprintf(pvuuid_link, 70, "/dev/disk/by-id/lvm2-pvuuid-%s", pvuuid); -+ unlink(pvuuid_link); //we really don't care if it successed or not. -+ -+ free(pvuuid); -+ return pvuuid; -+} -+ - /* - * Decide whether it is "safe" to wipe the labels on this device. - * 0 indicates we may not. -@@ -125,6 +149,8 @@ - log_print("Labels on physical volume \"%s\" successfully wiped", - pv_name); - -+ pv_remove_symlink(cmd, pv_name); -+ - ret = ECMD_PROCESSED; - - error: -Index: LVM2.2.02.58/tools/pvchange.c -=================================================================== ---- LVM2.2.02.58.orig/tools/pvchange.c 2009-09-15 06:47:49.000000000 +0800 -+++ LVM2.2.02.58/tools/pvchange.c 2010-02-04 15:24:32.000000000 +0800 -@@ -15,6 +15,90 @@ - - #include "tools.h" - -+static const char* pv_follow_if_link (const char* path) -+{ -+ int r; -+ int len = 60; -+ char *fpath = NULL; -+ char *npath = NULL; -+ struct stat st; -+ -+ r = lstat(path, &st); -+ if (r == -1) return NULL; //shouldn't happen -+ -+ if (S_ISLNK(st.st_mode)) { -+ while (1) { -+ npath = realloc(fpath, sizeof(char)*len); -+ if (npath == NULL) { -+ if (fpath != NULL) free(fpath); -+ return NULL; -+ } -+ fpath = npath; -+ -+ memset(fpath, 0, sizeof(char)*len); -+ r = readlink(path, fpath, len); -+ if (r != -1 && fpath[len-1] == 0) break; -+ if (r == -1) { -+ free(fpath); -+ return NULL; -+ } else { -+ len = len * 2; -+ } -+ } -+ } -+ else { -+ fpath = strdup(path); -+ } -+ return fpath; -+} -+ -+static const char* pv_symlink_handle(struct cmd_context* cmd, const char* name, int create) -+{ -+ struct physical_volume *pv; -+ char *pvuuid; -+ char *pvuuid_link; -+ -+ pvuuid_link = malloc(70); -+ if (pvuuid_link == NULL) return NULL; -+ -+ -+ if (!(pv = pv_read(cmd, name, NULL, NULL, 0, 0))) { -+ free(pvuuid_link); -+ return NULL; -+ } -+ -+ pvuuid = malloc(sizeof(char)*40); -+ if (pvuuid == NULL) { -+ free(pvuuid_link); -+ return NULL; -+ } -+ -+ id_write_format(&pv->id, pvuuid, 40); -+ -+ snprintf(pvuuid_link, 70, "/dev/disk/by-id/lvm2-pvuuid-%s", pvuuid); -+ -+ //we really don't care if it successed or not. -+ if (create) { -+ const char* tname = NULL; -+ int r; -+ tname = pv_follow_if_link(name); -+ if (tname != NULL) { -+ r = symlink(tname, pvuuid_link); -+ free(tname); -+ } -+ else { -+ symlink(name, pvuuid_link); -+ } -+ } else { -+ //pvuuid_link is saved for future unlink -+ //unlink(pvuuid_link); -+ } -+ -+ free(pvuuid); -+ return pvuuid_link; -+} -+ -+ - /* FIXME Locking. PVs in VG. */ - - static int _pvchange_single(struct cmd_context *cmd, struct physical_volume *pv, -Index: LVM2.2.02.58/lib/metadata/metadata.c -=================================================================== ---- LVM2.2.02.58.orig/lib/metadata/metadata.c 2010-01-07 22:29:53.000000000 +0800 -+++ LVM2.2.02.58/lib/metadata/metadata.c 2010-02-04 15:31:58.000000000 +0800 -@@ -1333,6 +1333,88 @@ +================================================================================ +--- LVM2.2.02.67/lib/metadata/metadata.c ++++ LVM2.2.02.67/lib/metadata/metadata.c +@@ -1424,6 +1424,88 @@ pp->yes = 0; } @@ -230,7 +91,7 @@ /* * pvcreate_single() - initialize a device with PV label and metadata area * -@@ -1353,6 +1435,7 @@ +@@ -1444,6 +1526,7 @@ struct dm_list mdas; struct pvcreate_params default_pp; char buffer[64] __attribute((aligned(8))); @@ -238,14 +99,13 @@ pvcreate_params_set_defaults(&default_pp); if (!pp) -@@ -1418,12 +1501,21 @@ +@@ -1509,11 +1592,20 @@ log_very_verbose("Writing physical volume data to disk \"%s\"", pv_name); + oldsymlink = pv_symlink_handle(cmd, pv_name, 0); + - if (!(pv_write(cmd, (struct physical_volume *)pv, &mdas, - pp->labelsector))) { + if (!(pv_write(cmd, pv, &mdas, pp->labelsector))) { log_error("Failed to write physical volume \"%s\"", pv_name); + if (oldsymlink) free(oldsymlink); goto error; @@ -260,3 +120,138 @@ log_print("Physical volume \"%s\" successfully created", pv_name); return pv; +--- LVM2.2.02.67/tools/pvchange.c ++++ LVM2.2.02.67/tools/pvchange.c +@@ -15,6 +15,90 @@ + + #include "tools.h" + ++static const char* pv_follow_if_link (const char* path) ++{ ++ int r; ++ int len = 60; ++ char *fpath = NULL; ++ char *npath = NULL; ++ struct stat st; ++ ++ r = lstat(path, &st); ++ if (r == -1) return NULL; //shouldn't happen ++ ++ if (S_ISLNK(st.st_mode)) { ++ while (1) { ++ npath = realloc(fpath, sizeof(char)*len); ++ if (npath == NULL) { ++ if (fpath != NULL) free(fpath); ++ return NULL; ++ } ++ fpath = npath; ++ ++ memset(fpath, 0, sizeof(char)*len); ++ r = readlink(path, fpath, len); ++ if (r != -1 && fpath[len-1] == 0) break; ++ if (r == -1) { ++ free(fpath); ++ return NULL; ++ } else { ++ len = len * 2; ++ } ++ } ++ } ++ else { ++ fpath = strdup(path); ++ } ++ return fpath; ++} ++ ++static const char* pv_symlink_handle(struct cmd_context* cmd, const char* name, int create) ++{ ++ struct physical_volume *pv; ++ char *pvuuid; ++ char *pvuuid_link; ++ ++ pvuuid_link = malloc(70); ++ if (pvuuid_link == NULL) return NULL; ++ ++ ++ if (!(pv = pv_read(cmd, name, NULL, NULL, 0, 0))) { ++ free(pvuuid_link); ++ return NULL; ++ } ++ ++ pvuuid = malloc(sizeof(char)*40); ++ if (pvuuid == NULL) { ++ free(pvuuid_link); ++ return NULL; ++ } ++ ++ id_write_format(&pv->id, pvuuid, 40); ++ ++ snprintf(pvuuid_link, 70, "/dev/disk/by-id/lvm2-pvuuid-%s", pvuuid); ++ ++ //we really don't care if it successed or not. ++ if (create) { ++ const char* tname = NULL; ++ int r; ++ tname = pv_follow_if_link(name); ++ if (tname != NULL) { ++ r = symlink(tname, pvuuid_link); ++ free(tname); ++ } ++ else { ++ symlink(name, pvuuid_link); ++ } ++ } else { ++ //pvuuid_link is saved for future unlink ++ //unlink(pvuuid_link); ++ } ++ ++ free(pvuuid); ++ return pvuuid_link; ++} ++ ++ + /* FIXME Locking. PVs in VG. */ + + static int _pvchange_single(struct cmd_context *cmd, struct volume_group *vg, +--- LVM2.2.02.67/tools/pvremove.c ++++ LVM2.2.02.67/tools/pvremove.c +@@ -18,6 +18,30 @@ + const char _really_wipe[] = + "Really WIPE LABELS from physical volume \"%s\" of volume group \"%s\" [y/n]? "; + ++static const char* pv_remove_symlink(struct cmd_context* cmd, const char* name) ++{ ++ struct physical_volume *pv; ++ char *pvuuid; ++ char pvuuid_link[70]; ++ ++ if (!(pv = pv_read(cmd, name, NULL, NULL, 0, 0))) { ++ return NULL; ++ } ++ ++ pvuuid = malloc(sizeof(char)*40); ++ if (pvuuid == NULL) { ++ return NULL; ++ } ++ ++ id_write_format(&pv->id, pvuuid, 40); ++ ++ snprintf(pvuuid_link, 70, "/dev/disk/by-id/lvm2-pvuuid-%s", pvuuid); ++ unlink(pvuuid_link); //we really don't care if it successed or not. ++ ++ free(pvuuid); ++ return pvuuid; ++} ++ + /* + * Decide whether it is "safe" to wipe the labels on this device. + * 0 indicates we may not. +@@ -125,6 +149,8 @@ + log_print("Labels on physical volume \"%s\" successfully wiped", + pv_name); + ++ pv_remove_symlink(cmd, pv_name); ++ + ret = ECMD_PROCESSED; + + error: continue with "q"... Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org