openSUSE Commits
Threads by month
- ----- 2024 -----
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2012
- 1 participants
- 886 discussions
Hello community,
here is the log from the commit of package alsa for openSUSE:Factory checked in at 2012-08-04 08:59:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/alsa (Old)
and /work/SRC/openSUSE:Factory/.alsa.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "alsa", Maintainer is "tiwai(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/alsa/alsa.changes 2012-07-02 10:08:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.alsa.new/alsa.changes 2012-08-04 08:59:52.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Jul 5 10:11:35 CEST 2012 - tiwai(a)suse.de
+
+- Fix useless assert in hctl, backport from upstream
+
+-------------------------------------------------------------------
New:
----
0016-hctl-Remove-a-useless-assert.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ alsa.spec ++++++
--- /var/tmp/diff_new_pack.CgQOct/_old 2012-08-04 08:59:59.000000000 +0200
+++ /var/tmp/diff_new_pack.CgQOct/_new 2012-08-04 08:59:59.000000000 +0200
@@ -68,6 +68,7 @@
Patch13: 0013-tlv-improve-robustness-of-raw-value-ranges.patch
Patch14: 0014-conf-Add-more-USB-devices-to-S-PDIF-blacklist.patch
Patch15: 0015-Fix-the-binary-compatibility-of-ext-ctl-plugin-with-.patch
+Patch16: 0016-hctl-Remove-a-useless-assert.patch
Patch99: alsa-lib-doxygen-avoid-crash-for-11.3.diff
Url: http://www.alsa-project.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -133,6 +134,7 @@
%patch13 -p1
%patch14 -p1
%patch15 -p1
+%patch16 -p1
%if %suse_version == 1130
%patch99 -p1
%endif
++++++ 0016-hctl-Remove-a-useless-assert.patch ++++++
>From 86e27cdbf119440101a850e1b44baebfefe863ca Mon Sep 17 00:00:00 2001
From: Martin Sandsmark <martin.sandsmark(a)kde.org>
Date: Thu, 5 Jul 2012 09:40:07 +0200
Subject: [PATCH] hctl: Remove a useless assert
The case where the element is unavailable (for example gone away since
the event was created) is handled beneath.
See also bug 5471.
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=5471
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
---
src/control/hcontrol.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/control/hcontrol.c b/src/control/hcontrol.c
index 8ffc434..ee1d907 100644
--- a/src/control/hcontrol.c
+++ b/src/control/hcontrol.c
@@ -761,7 +761,6 @@ static int snd_hctl_handle_event(snd_hctl_t *hctl, snd_ctl_event_t *event)
if (event->data.elem.mask & (SNDRV_CTL_EVENT_MASK_VALUE |
SNDRV_CTL_EVENT_MASK_INFO)) {
elem = snd_hctl_find_elem(hctl, &event->data.elem.id);
- assert(elem);
if (!elem)
return -ENOENT;
res = snd_hctl_elem_throw_event(elem, event->data.elem.mask &
--
1.7.10.4
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package aaa_base for openSUSE:12.2 checked in at 2012-08-04 08:58:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2/aaa_base (Old)
and /work/SRC/openSUSE:12.2/.aaa_base.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "aaa_base", Maintainer is "ro(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:12.2/aaa_base/aaa_base.changes 2012-07-23 10:15:11.000000000 +0200
+++ /work/SRC/openSUSE:12.2/.aaa_base.new/aaa_base.changes 2012-08-04 08:58:35.000000000 +0200
@@ -1,0 +2,5 @@
+Tue Jul 31 14:56:35 UTC 2012 - lnussel(a)suse.de
+
+- fix service status for sysvscripts when booted with systemd (bnc#772028)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ aaa_base.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aaa_base/files/sbin/service new/aaa_base/files/sbin/service
--- old/aaa_base/files/sbin/service 2012-07-20 17:07:59.000000000 +0200
+++ new/aaa_base/files/sbin/service 2012-07-31 16:51:32.000000000 +0200
@@ -53,11 +53,13 @@
{
local rc="$1"
shift
- if sd_booted; then
- systemctl --quiet --lines=0 status "$rc.service" > /dev/null 2>&1
- else
- test -x ${RCDIR}/$rc
+ if test -x ${RCDIR}/$rc; then
+ return 0
fi
+ if sd_booted && systemctl --full --no-legend --no-pager --type=service --all list-units 2>/dev/null|grep -q "^$rc.service"; then
+ return 0
+ fi
+ return 1
}
check_wrapper ()
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package aaa_base for openSUSE:Factory checked in at 2012-08-04 08:58:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/aaa_base (Old)
and /work/SRC/openSUSE:Factory/.aaa_base.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "aaa_base", Maintainer is "ro(a)suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/aaa_base/aaa_base.changes 2012-07-23 09:51:59.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.aaa_base.new/aaa_base.changes 2012-08-04 08:58:28.000000000 +0200
@@ -1,0 +2,5 @@
+Tue Jul 31 14:56:35 UTC 2012 - lnussel(a)suse.de
+
+- fix service status for sysvscripts when booted with systemd (bnc#772028)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ aaa_base.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aaa_base/files/sbin/service new/aaa_base/files/sbin/service
--- old/aaa_base/files/sbin/service 2012-07-20 17:07:59.000000000 +0200
+++ new/aaa_base/files/sbin/service 2012-07-31 16:51:32.000000000 +0200
@@ -53,11 +53,13 @@
{
local rc="$1"
shift
- if sd_booted; then
- systemctl --quiet --lines=0 status "$rc.service" > /dev/null 2>&1
- else
- test -x ${RCDIR}/$rc
+ if test -x ${RCDIR}/$rc; then
+ return 0
fi
+ if sd_booted && systemctl --full --no-legend --no-pager --type=service --all list-units 2>/dev/null|grep -q "^$rc.service"; then
+ return 0
+ fi
+ return 1
}
check_wrapper ()
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package patchinfo.676 for openSUSE:12.2:Update checked in at 2012-08-03 08:41:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/patchinfo.676 (Old)
and /work/SRC/openSUSE:12.2:Update/.patchinfo.676.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.676", Maintainer is ""
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="676">
<packager>wrosenauer</packager>
<issue tracker="bnc" id="771583">VUL-0: MozillaFirefox 14/10.0.6ESR security update round</issue>
<issue tracker="cve" id="CVE-2012-1955"></issue>
<issue tracker="cve" id="CVE-2012-1964"></issue>
<issue tracker="cve" id="CVE-2012-1961"></issue>
<issue tracker="cve" id="CVE-2012-1965"></issue>
<issue tracker="cve" id="CVE-2012-1957"></issue>
<issue tracker="cve" id="CVE-2012-1963"></issue>
<issue tracker="cve" id="CVE-2012-1950"></issue>
<issue tracker="cve" id="CVE-2012-1962"></issue>
<issue tracker="cve" id="CVE-2012-1966"></issue>
<issue tracker="cve" id="CVE-2012-1959"></issue>
<issue tracker="cve" id="CVE-2012-1958"></issue>
<issue tracker="cve" id="CVE-2012-1954"></issue>
<issue tracker="cve" id="CVE-2012-1951"></issue>
<issue tracker="cve" id="CVE-2012-1948"></issue>
<issue tracker="cve" id="CVE-2012-1953"></issue>
<issue tracker="cve" id="CVE-2012-1949"></issue>
<issue tracker="cve" id="CVE-2012-1952"></issue>
<issue tracker="cve" id="CVE-2012-1967"></issue>
<category>security</category>
<rating>critical</rating>
<summary>MozillaFirefox: Security update to 14.0.1</summary>
<description>MozillaFirefox was updated to 14.0.1 to fix various bugs and security issues.
Following security issues were fixed:
MFSA 2012-42:
Mozilla developers identified and fixed several memory safety bugs in the
browser engine used in Firefox and other Mozilla-based products. Some of these
bugs showed evidence of memory corruption under certain circumstances, and we
presume that with enough effort at least some of these could be exploited to
run arbitrary code.
CVE-2012-1949: Brian Smith, Gary Kwong, Christian Holler, Jesse Ruderman,
Christoph Diehl, Chris Jones, Brad Lassey, and Kyle Huey reported memory safety
problems and crashes that affect Firefox 13.
CVE-2012-1948: Benoit Jacob, Jesse Ruderman, Christian Holler, and Bill
McCloskey reported memory safety problems and crashes that affect Firefox ESR
10 and Firefox 13.
MFSA 2012-43 / CVE-2012-1950: Security researcher Mario Gomes andresearch firm
Code Audit Labs reported a mechanism to short-circuit page loads through drag
and drop to the addressbar by canceling the page load. This causes the address
of the previously site entered to be displayed in the addressbar instead of the
currently loaded page. This could lead to potential phishing attacks on users.
MFSA 2012-44
Google security researcher Abhishek Arya used the Address Sanitizer tool to
uncover four issues: two use-after-free problems, one out of bounds read bug,
and a bad cast. The first use-after-free problem is caused when an array of
nsSMILTimeValueSpec objects is destroyed but attempts are made to call into
objects in this array later. The second use-after-free problem is in
nsDocument::AdoptNode when it adopts into an empty document and then adopts
into another document, emptying the first one. The heap buffer overflow is in
ElementAnimations when data is read off of end of an array and then pointers
are dereferenced. The bad cast happens when nsTableFrame::InsertFrames is
called with frames in aFrameList that are a mix of row group frames and column
group frames. AppendFrames is not able to handle this mix.
All four of these issues are potentially exploitable.
CVE-2012-1951: Heap-use-after-free in nsSMILTimeValueSpec::IsEventBased
CVE-2012-1954: Heap-use-after-free in nsDocument::AdoptNode
CVE-2012-1953: Out of bounds read in ElementAnimations::EnsureStyleRuleFor
CVE-2012-1952: Bad cast in nsTableFrame::InsertFrames
MFSA 2012-45 / CVE-2012-1955: Security researcher Mariusz Mlynski reported an
issue with spoofing of the location property. In this issue, calls to
history.forward and history.back are used to navigate to a site while
displaying the previous site in the addressbar but changing the baseURI to the
newer site. This can be used for phishing by allowing the user input form or
other data on the newer, attacking, site while appearing to be on the older,
displayed site.
MFSA 2012-46 / CVE-2012-1966: Mozilla security researcher moz_bug_r_a4 reported
a cross-site scripting (XSS) attack through the context menu using a data: URL.
In this issue, context menu functionality ("View Image", "Show only this
frame", and "View background image") are disallowed in a javascript: URL but
allowed in a data: URL, allowing for XSS. This can lead to arbitrary code
execution.
MFSA 2012-47 / CVE-2012-1957: Security researcher Mario Heiderich reported that
javascript could be executed in the HTML feed-view using <embed> tag within the
RSS <description>. This problem is due to <embed> tags not being filtered out
during parsing and can lead to a potential cross-site scripting (XSS) attack.
The flaw existed in a parser utility class and could affect other parts of the
browser or add-ons which rely on that class to sanitize untrusted input.
MFSA 2012-48 / CVE-2012-1958: Security researcher Arthur Gerkis used the
Address Sanitizer tool to find a use-after-free in nsGlobalWindow::PageHidden
when mFocusedContent is released and oldFocusedContent is used afterwards. This
use-after-free could possibly allow for remote code execution.
MFSA 2012-49 / CVE-2012-1959: Mozilla developer Bobby Holley found that
same-compartment security wrappers (SCSW) can be bypassed by passing them to
another compartment. Cross-compartment wrappers often do not go through SCSW,
but have a filtering policy built into them. When an object is wrapped
cross-compartment, the SCSW is stripped off and, when the object is read read
back, it is not known that SCSW was previously present, resulting in a
bypassing of SCSW. This could result in untrusted content having access to the
XBL that implements browser functionality.
MFSA 2012-50 / CVE-2012-1960: Google developer Tony Payne reported an out of
bounds (OOB) read in QCMS, Mozilla’s color management library. With a carefully
crafted color profile portions of a user's memory could be incorporated into a
transformed image and possibly deciphered.
MFSA 2012-51 / CVE-2012-1961: Bugzilla developer Frédéric Buclin reported that
the "X-Frame-Options header is ignored when the value is duplicated, for
example X-Frame-Options: SAMEORIGIN, SAMEORIGIN. This duplication occurs for
unknown reasons on some websites and when it occurs results in Mozilla browsers
not being protected against possible clickjacking attacks on those pages.
MFSA 2012-52 / CVE-2012-1962: Security researcher Bill Keese reported a memory
corruption. This is caused by JSDependentString::undepend changing a dependent
string into a fixed string when there are additional dependent strings relying
on the same base. When the undepend occurs during conversion, the base data is
freed, leaving other dependent strings with dangling pointers. This can lead to
a potentially exploitable crash.
MFSA 2012-53 / CVE-2012-1963: Security researcher Karthikeyan Bhargavan of
Prosecco at INRIA reported Content Security Policy (CSP) 1.0 implementation
errors. CSP violation reports generated by Firefox and sent to the "report-uri"
location include sensitive data within the "blocked-uri" parameter. These
include fragment components and query strings even if the "blocked-uri"
parameter has a different origin than the protected resource. This can be used
to retrieve a user's OAuth 2.0 access tokens and OpenID credentials by
malicious sites.
MFSA 2012-54 / CVE-2012-1964: Security Researcher Matt McCutchen reported that
a clickjacking attack using the certificate warning page. A man-in-the-middle
(MITM) attacker can use an iframe to display its own certificate error warning
page (about:certerror) with the "Add Exception" button of a real warning page
from a malicious site. This can mislead users to adding a certificate exception
for a different site than the perceived one. This can lead to compromised
communications with the user perceived site through the MITM attack once the
certificate exception has been added.
MFSA 2012-55 / CVE-2012-1965: Security researchers Mario Gomes and Soroush
Dalili reported that since Mozilla allows the pseudo-protocol feed: to prefix
any valid URL, it is possible to construct feed:javascript: URLs that will
execute scripts in some contexts. On some sites it may be possible to use this
to evade output filtering that would otherwise strip javascript: URLs and thus
contribute to cross-site scripting (XSS) problems on these sites.
MFSA 2012-56 / CVE-2012-1967: Mozilla security researcher moz_bug_r_a4 reported
a arbitrary code execution attack using a javascript: URL. The Gecko engine
features a JavaScript sandbox utility that allows the browser or add-ons to
safely execute script in the context of a web page. In certain cases,
javascript: URLs are executed in such a sandbox with insufficient context that
can allow those scripts to escape from the sandbox and run with elevated
privilege. This can lead to arbitrary code execution.</description>
</patchinfo>
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package NetworkManager-gnome for openSUSE:12.1:Update checked in at 2012-08-02 18:38:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update/NetworkManager-gnome (Old)
and /work/SRC/openSUSE:12.1:Update/.NetworkManager-gnome.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "NetworkManager-gnome", Maintainer is "gnome-maintainers(a)suse.de"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.kLmLDh/_old 2012-08-02 21:29:08.000000000 +0200
+++ /var/tmp/diff_new_pack.kLmLDh/_new 2012-08-02 21:29:08.000000000 +0200
@@ -1 +1 @@
-<link package='NetworkManager-gnome.201' cicount='copy' />
+<link package='NetworkManager-gnome.720' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package device-mapper.721 for openSUSE:12.2:Update checked in at 2012-08-02 18:30:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/device-mapper.721 (Old)
and /work/SRC/openSUSE:12.2:Update/.device-mapper.721.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "device-mapper.721", Maintainer is ""
Changes:
--------
New Changes file:
--- /dev/null 2012-07-29 18:28:42.219591462 +0200
+++ /work/SRC/openSUSE:12.2:Update/.device-mapper.721.new/device-mapper.changes 2012-08-02 18:30:50.000000000 +0200
@@ -0,0 +1,617 @@
+-------------------------------------------------------------------
+Thu Jul 26 17:15:54 UTC 2012 - fcrozat(a)suse.com
+
+- Add blkid-builtin.patch: use built-in blkid from udev
+
+-------------------------------------------------------------------
+Sun Sep 18 17:17:12 UTC 2011 - jengelh(a)medozas.de
+
+- Remove redundant tags/sections from specfile
+ (cf. packaging guidelines)
+- Use %_smp_mflags for parallel build
+
+-------------------------------------------------------------------
+Fri May 27 09:07:22 UTC 2011 - lnussel(a)suse.de
+
+- don't enable boot.device-mapper by default and don't load dm-mod
+ unconditionally in initrd. udev creates /dev/mapper/control so
+ dm-mod is automatically loaded when needed.
+
+-------------------------------------------------------------------
+Tue Feb 15 08:57:07 UTC 2011 - xwhu(a)novell.com
+
+- Update to device mapper 1.2.63
+ - Add configure --with-device-nodes-on=create for previous
+ behaviour.
+ - Move creation of device nodes from 'create' to 'resume'.
+ - Add dmeventd -R to restart dmeventd without losing monitoring
+ state
+
+-------------------------------------------------------------------
+Fri Jan 14 10:08:08 UTC 2011 - lnussel(a)suse.de
+
+- the lsmod|grep in boot.device-mapper is superfluous, modprobe does
+ that internally anyways
+
+-------------------------------------------------------------------
+Wed Dec 15 16:30:55 CST 2010 - cmeng(a)novell.com
+
+- sleep and try to wait opne_count to be 0 while lvremove.
+ (Bug #642296)
+
+-------------------------------------------------------------------
+Sun Oct 31 12:37:02 UTC 2010 - jengelh(a)medozas.de
+
+- Use %_smp_mflags
+
+-------------------------------------------------------------------
+Tue Oct 12 17:44:09 UTC 2010 - cristian.rodriguez(a)opensuse.org
+
+- mkinitrd-devmapper-boot.sh: do not complain if /dev/mapper
+ directory already exists and contains the control device.
+
+-------------------------------------------------------------------
+Thu Sep 30 07:32:27 UTC 2010 - stefan.fent(a)novell.com
+
+- add device-mapper-devel to baselibs.conf to be able to link lilo
+ against libdevmapper (bnc #642400)
+
+-------------------------------------------------------------------
+Fri Jul 16 10:11:59 UTC 2010 - xwhu(a)novell.com
+
+- bnc#556177, undefined symbol error while loading dmevent so.
+
+-------------------------------------------------------------------
+Mon Jul 5 09:43:41 UTC 2010 - xwhu(a)novell.com
+
+- bnc#619566, fix error in "dmsetup export" patch,
+
+-------------------------------------------------------------------
+Wed Jun 23 05:53:43 UTC 2010 - xwhu(a)novell.com
+
+- Update to LVM.1.02.49
+ - Support autoloading of dm-mod module for kernels from 2.6.35
+ - Use -d to control level of messages sent to syslog by dmeventd
+ - Do not print encryption key in message debug output
+ - Add support for new IMPORT{db} udev rule
+ - Add DM_UDEV_PRIMARY_SOURCE_FLAG udev flag to recognize proper
+ DM events
+ - Also include udev libs in libdevmapper.pc when udev_sync is
+ enabled
+ - Add support for ioctl's DM_UEVENT_GENERATED_FLAG
+- Use the upcoming udev rules update of dm, to cooperate with
+ artificial uevent (bnc#598193)
+
+-------------------------------------------------------------------
+Tue Jun 1 13:08:00 UTC 2010 - xwhu(a)novell.com
+
+- Link device-mapper to libudev
+
+-------------------------------------------------------------------
+Fri May 21 03:40:34 UTC 2010 - xwhu(a)novell.com
+
+- Fix mkinitrd-devmapper to use udev rules for device mapper
+
+-------------------------------------------------------------------
+Mon Apr 26 16:51:40 CEST 2010 - ro(a)suse.de
+
+- fix pkgconfig file for device mapper
+
+-------------------------------------------------------------------
+Sat Apr 3 03:07:44 UTC 2010 - xwhu(a)novell.com
+
+- Upgrade to device-mapper 1.02.
+ - Add libdevmapper functions to support synchronisation with udev
+ - Check udev is running when processing cookies and retain state
+ internally.
+ - Add support for the "snapshot-merge" kernel target
+
+-------------------------------------------------------------------
+Sun Dec 20 17:12:29 UTC 2009 - coolo(a)novell.com
+
+- use -j1 - parallel build breaks with symlinks_generated
+
+-------------------------------------------------------------------
+Mon Dec 7 15:47:57 CET 2009 - meissner(a)suse.de
+
+- added type punning patch from pth(a)suse.de
+
+-------------------------------------------------------------------
+Sun Nov 15 10:40:44 CET 2009 - meissner(a)suse.de
+
+- refreshed patches to avoid fuzz
+
+-------------------------------------------------------------------
+Wed Sep 23 06:39:29 UTC 2009 - xwhu(a)novell.com
+
+- Add -devmapper- infix to mkinitrd scripts
+
+-------------------------------------------------------------------
+Thu May 21 16:46:43 CST 2009 - xwhu(a)suse.de
+
+- specify usrlibdir for configuration
+
+-------------------------------------------------------------------
+Mon May 11 15:36:05 CST 2009 - xwhu(a)suse.de
+
+- Enable pkgconfig for GNOME 2.28
+
+-------------------------------------------------------------------
+Mon Apr 27 18:37:32 CST 2009 - xwhu(a)suse.de
+
+- Upgrade to 1.02.31
+ . Add "all" field to reports expanding to all fields of report type.
+ . Enforce device name length and character limitations in libdm.
+ . Replace _dm_snprintf with EMIT_PARAMS macro for creating target lines.
+ . Only resume devices in dm_tree_preload_children if size changes.
+ . Extend deptree buffers so the largest possible device numbers fit.
+ . Generate versioned libdevmapper-event.so.
+ . Underline longer report help text headings.
+
+-------------------------------------------------------------------
+Tue Apr 21 10:11:35 CEST 2009 - xwhu(a)suse.de
+
+- bnc#479104, export additional information
+
+-------------------------------------------------------------------
+Tue Feb 3 08:42:58 CET 2009 - hare(a)suse.de
+
+- No whitespace for DM_STATE export variable (bnc#440959)
+- Remove obsolete reference to boot.scsidev from init script
+
+-------------------------------------------------------------------
+Wed Dec 10 12:34:56 CET 2008 - olh(a)suse.de
+
+- use Obsoletes: -XXbit only for ppc64 to help solver during distupgrade
+ (bnc#437293)
+
+-------------------------------------------------------------------
+Wed Nov 5 16:57:47 CET 2008 - werner(a)suse.de
+
+- As boot.crypto depends on boot.device-mapper, the later one has
+ even on shutdown to depend on boot.udev to make sure that events
+ will be processed (bnc#413059)
+
+-------------------------------------------------------------------
+Thu Oct 30 12:34:56 CET 2008 - olh(a)suse.de
+
+- obsolete old -XXbit packages (bnc#437293)
+
+-------------------------------------------------------------------
+Sat Sep 13 07:03:44 CEST 2008 - xwhu(a)suse.de
+
+- Fix typo for correct compiling
+- Timeout if udevd's not running (bnc#425436)
+
+-------------------------------------------------------------------
+Wed Sep 10 11:56:17 CEST 2008 - xwhu(a)suse.de
+
+- update to 1.02.27
+ Align struct memblock in dbg_malloc for sparc.
+ Add --unquoted and --rows to dmsetup.
+ Avoid compiler warning about cast in dmsetup.c's OFFSET_OF macro.
+ Fix inverted no_flush debug message.
+ Remove --enable-jobs from configure. (Set at runtime instead.)
+ Bring configure.in and list.h into line with the lvm2 versions.
+
+-------------------------------------------------------------------
++++ 420 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.2:Update/.device-mapper.721.new/device-mapper.changes
New Changes file:
--- /dev/null 2012-07-29 18:28:42.219591462 +0200
+++ /work/SRC/openSUSE:12.2:Update/.device-mapper.721.new/lvm2-clvm.changes 2012-08-02 18:30:50.000000000 +0200
@@ -0,0 +1,94 @@
+-------------------------------------------------------------------
+Sun Sep 18 17:17:12 UTC 2011 - jengelh(a)medozas.de
+
+- Remove redundant tags/sections from specfile
+ (cf. packaging guidelines)
+- Use %_smp_mflags for parallel build
+
+-------------------------------------------------------------------
+Tue Feb 22 07:32:46 UTC 2011 - xwhu(a)novell.com
+
+- Re-enable clvmd build
+ - Cleanup unused patches
+ - Build against corosync instead of openais
+
+-------------------------------------------------------------------
+Sun Oct 31 12:37:02 UTC 2010 - jengelh(a)medozas.de
+
+- Use %_smp_mflags
+
+-------------------------------------------------------------------
+Thu Sep 9 12:17:25 UTC 2010 - coolo(a)novell.com
+
+- massive rebase of the patches
+
+-------------------------------------------------------------------
+Mon Apr 26 16:51:35 CEST 2010 - ro(a)suse.de
+
+- fix lvm2-clvm specfile so that patches apply
+
+-------------------------------------------------------------------
+Sat Apr 3 03:17:12 UTC 2010 - xwhu(a)novell.com
+
+- Upgrade to LVM2 2.02.58
+ - Rename liblvm.so to liblvm2app.so
+ - Introduce lvconvert --use_policies
+ - Add readonly locking type to replace implementation of
+ --ignorelockingfailure
+ - Add liblvm APIs to implement creation and deletion of VGs
+ - Add activation/udev_sync to lvm.conf
+ - Enable dmeventd monitoring section of config file by default
+ - Add --pvmetadatacopies for pvcreate, vgcreate, vgextend,
+ vgconvert.
+
+-------------------------------------------------------------------
+Sun Nov 15 10:41:04 CET 2009 - meissner(a)suse.de
+
+- refreshed patches to avoid fuzz-0
+
+-------------------------------------------------------------------
+Mon Apr 27 18:37:32 CST 2009 - xwhu(a)suse.de
+
+- Upgrade to LVM2 2.02.45
+ Avoid scanning empty metadata areas for VG names
+ Pass --test from lvresize to fsadm as --dry-run.
+ Remove duplicate cpg_initialize from clvmd startup.
+ Add option to /etc/sysconfig/cluster to select cluster type for clvmd.
+ Remove external dependency on the 'cut' command from fsadm.
+ Fix pvs segfault when pv mda attributes requested for not available PV.
+ Fix lvresize size conversion for fsadm when block size is not 1K.
+ Add pv_mda_size to pvs and vg_mda_size to vgs.
+ Add "--refresh" functionality to vgchange and vgmknodes.
+ Fix vgrename using UUID if there are VGs with identical names.
+ Fix segfault when invalid field given in reporting commands.
+ Merge device-mapper into the lvm2 tree.
+ Exit with non-zero status from vgdisplay if couldn't show any requested VG.
+ Fix snapshot monitoring library to not cancel monitoring invalid snapshot.
+ Fix conversion of md chunk size into sectors.
+ Fix misleading error message when there are no allocatable extents in VG.
+ Fix handling of PVs which reappeared with old metadata version.
+ Fix mirror DSO to call vgreduce with proper parameters.
+ Fix validation of --minor and --major in lvcreate to require -My always.
+ Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning.
+
+-------------------------------------------------------------------
+Tue Apr 1 01:10:00 CST 2009 - lmb(a)suse.de
+
+- clvmd: Ensure that the lockspace is released locally even we were the
+ lock master, avoiding an unclean shutdown (bnc#490415).
+
+-------------------------------------------------------------------
+Tue Mar 31 19:16:18 CST 2009 - xwhu(a)suse.de
+
+- Call cpg_leave before shutting down clvmd
+
+-------------------------------------------------------------------
+Wed Mar 25 23:14:29 CST 2009 - xwhu(a)suse.de
+
+- Do not filter out tmp device file(bnc#485572)
+
+-------------------------------------------------------------------
+Wed Mar 25 22:50:50 CST 2009 - xwhu(a)suse.de
+
+- Newly splitted off from lvm2, as a independent package now
+
New Changes file:
--- /dev/null 2012-07-29 18:28:42.219591462 +0200
+++ /work/SRC/openSUSE:12.2:Update/.device-mapper.721.new/lvm2.changes 2012-08-02 18:30:50.000000000 +0200
@@ -0,0 +1,1012 @@
+-------------------------------------------------------------------
+Fri Apr 20 07:52:09 UTC 2012 - rmilasan(a)suse.com
+
+- Run update of initrd at %post and %postun.
+ We need this to make sure initrd reflects the updates.
+
+-------------------------------------------------------------------
+Sun Sep 18 17:17:12 UTC 2011 - jengelh(a)medozas.de
+
+- Remove redundant tags/sections from specfile
+ (cf. packaging guidelines)
+- Use %_smp_mflags for parallel build
+
+-------------------------------------------------------------------
+Fri May 27 09:09:35 UTC 2011 - lnussel(a)suse.de
+
+- don't unconditionally enable boot.lvm by default. yast takes care
+ of enabling the script when creating lvm volumes.
+- don't hard require boot.device-mapper in boot.dmraid. dm-mod is
+ autoloaded when accessing /dev/mapper/control anyways.
+
+-------------------------------------------------------------------
+Thu Mar 10 11:07:22 UTC 2011 - coolo(a)novell.com
+
+- prereq sysvinit(boot.device-mapper) to fix build
+
+-------------------------------------------------------------------
+Tue Feb 15 08:48:48 UTC 2011 - xwhu(a)novell.com
+
+- Update to LVM 2.02.84
+ - Fix handling of simultaneous mirror image and mirrored log
+ image failure.
+ - Fix vgremove to allow removal of VG with missing PVs
+ - Remove log directly if all mirror images of a mirrored log fail
+ - Fix potential for corruption during cluster mirror device
+ failure
+ - Allow internal suspend and resume of origin without its
+ snapshots
+ - Allow exclusive activation of snapshots in a cluster
+
+-------------------------------------------------------------------
+Thu Nov 11 12:24:04 UTC 2010 - coolo(a)novell.com
+
+- own parent directories for device-mapper files
+
+-------------------------------------------------------------------
+Sun Oct 31 12:37:02 UTC 2010 - jengelh(a)medozas.de
+
+- Use %_smp_mflags
+
+-------------------------------------------------------------------
+Fri Jul 16 10:11:59 UTC 2010 - xwhu(a)novell.com
+
+- bnc#556177, undefined symbol error while loading dmevent so.
+
+-------------------------------------------------------------------
+Wed Jun 23 05:50:12 UTC 2010 - xwhu(a)novell.com
+
+- Update to LVM.2.02.67
+ - Require partial option in lvchange --refresh for partial LVs
+ - Add replicators' LVs to dtree for activation
+ - Add lvm2app interfaces to lookup a vgname from a pvid and pvname
+ - Fix memory leak for invalid regex pattern input
+ - Disallow the direct removal of a merging snapshot
+ - Fix lvconvert error message when existing mirrored LV is not found
+ - Add LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES environment variable
+ - Improve snapshot merge metadata import validation
+
+-------------------------------------------------------------------
+Tue Jun 1 14:06:38 UTC 2010 - xwhu(a)novell.com
+
+- Specify udev_sync and udev_rules in /etc/lvm/lvm.conf
+
+-------------------------------------------------------------------
+Fri May 21 03:41:47 UTC 2010 - xwhu(a)novell.com
+
+- Fix mkinitrd-lvm2 to use udev rules for lvm2
+
+-------------------------------------------------------------------
+Mon Apr 26 16:51:10 CEST 2010 - ro(a)suse.de
+
+- fix lvm2-clvm specfile so that patches apply
+
+-------------------------------------------------------------------
+Sat Apr 3 03:17:12 UTC 2010 - xwhu(a)novell.com
+
+- Upgrade to LVM2 2.02.58
+ - Rename liblvm.so to liblvm2app.so
+ - Introduce lvconvert --use_policies
+ - Add readonly locking type to replace implementation of
+ --ignorelockingfailure
+ - Add liblvm APIs to implement creation and deletion of VGs
+ - Add activation/udev_sync to lvm.conf
+ - Enable dmeventd monitoring section of config file by default
+ - Add --pvmetadatacopies for pvcreate, vgcreate, vgextend,
+ vgconvert.
+
+-------------------------------------------------------------------
+Sun Nov 29 06:58:45 UTC 2009 - xwhu(a)novell.com
+
+- Link liblvm2cmd.so to libdevmapper-event.so (bnc#556177)
+
+-------------------------------------------------------------------
+Sun Nov 15 10:40:19 CET 2009 - meissner(a)suse.de
+
+- quilt refreshed all patches.
+
+-------------------------------------------------------------------
+Mon Oct 12 13:31:12 UTC 2009 - xwhu(a)novell.com
+
+- make $tmp_mnt/etc/sysconfig before copying file into (bnc#525237)
+
+-------------------------------------------------------------------
+Wed Sep 23 06:38:47 UTC 2009 - xwhu(a)novell.com
+
+- Add -lvm2- infix to mkinitrd scripts
+- collect_lvm reads /etc/sysconfig/lvm (bnc#523944)
+
+-------------------------------------------------------------------
+Fri Aug 28 07:37:13 UTC 2009 - xwhu(a)novell.com
+
+- Support extended dev with major 259
+
+-------------------------------------------------------------------
+Fri Jun 26 11:08:39 CST 2009 - xwhu(a)suse.de
+
+- bnc#510058, typo in dont_ignore_tmp_device_file.diff, which hangs
+ mkinitrd
+
+Mon May 25 16:47:18 CST 2009 - xwhu(a)suse.de
+-------------------------------------------------------------------
+
+- Cleanup scripts for mkinitrd, so that udev can activate root LV.
+
+Mon Apr 27 18:37:32 CST 2009 - xwhu(a)suse.de
+-------------------------------------------------------------------
+
+- Upgrade to LVM2 2.02.45
+ Avoid scanning empty metadata areas for VG names
+ Pass --test from lvresize to fsadm as --dry-run.
+ Remove duplicate cpg_initialize from clvmd startup.
+ Add option to /etc/sysconfig/cluster to select cluster type for clvmd.
+ Remove external dependency on the 'cut' command from fsadm.
+ Fix pvs segfault when pv mda attributes requested for not available PV.
+ Fix lvresize size conversion for fsadm when block size is not 1K.
+ Add pv_mda_size to pvs and vg_mda_size to vgs.
+ Add "--refresh" functionality to vgchange and vgmknodes.
+ Fix vgrename using UUID if there are VGs with identical names.
+ Fix segfault when invalid field given in reporting commands.
+ Merge device-mapper into the lvm2 tree.
+ Exit with non-zero status from vgdisplay if couldn't show any requested VG.
+ Fix snapshot monitoring library to not cancel monitoring invalid snapshot.
+ Fix conversion of md chunk size into sectors.
+ Fix misleading error message when there are no allocatable extents in VG.
+ Fix handling of PVs which reappeared with old metadata version.
+ Fix mirror DSO to call vgreduce with proper parameters.
+ Fix validation of --minor and --major in lvcreate to require -My always.
+ Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning.
+
+-------------------------------------------------------------------
+Tue Mar 31 11:59:03 CST 2009 - xwhu(a)suse.de
+
+- Handle the case that drbd virtual device has the same PV uuid
+ with the underlining physical device.
+
+-------------------------------------------------------------------
+Wed Mar 25 23:14:29 CST 2009 - xwhu(a)suse.de
+
+- Do not filter out tmp device file(bnc#485572)
+- Do not try to activate VG when all paths are down already(bnc#479104)
+
+-------------------------------------------------------------------
+Wed Mar 25 22:50:50 CST 2009 - xwhu(a)suse.de
+
+- Split CLVMD as a independent package
+
+-------------------------------------------------------------------
+Tue Mar 24 00:23:13 CST 2009 - xwhu(a)suse.de
+
+- Fix for bnc#486952
+ use "killproc -INT" instead of "killproc"
+ handle signal in the main loop thread only
+
+-------------------------------------------------------------------
+Thu Feb 26 14:08:22 CST 2009 - xwhu(a)suse.de
+
+- add daemon_options parameter to clvmd.ocf
+- check EUNLOCK for dlm_ls_unlock_wait
+
+-------------------------------------------------------------------
+Wed Feb 25 18:39:26 CST 2009 - xwhu(a)suse.de
+
+- bnc#479422, check both lksb.sb_status and status.
+
+-------------------------------------------------------------------
+Fri Feb 20 10:24:00 CET 2009 - xwhu(a)suse.de
+
++++ 815 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.2:Update/.device-mapper.721.new/lvm2.changes
New:
----
64-lvm2.rules
LVM2.2.02.84.tgz
baselibs.conf
blkid-builtin.patch
boot.device-mapper
boot.lvm
clvmd.ocf
cmdline_large_minor.diff
collect_lvm
device-mapper-dmsetup-deps-export.patch
device-mapper-dmsetup-export.patch
device-mapper-gcc-warning.diff
device-mapper-type_punning.diff
device-mapper.changes
device-mapper.spec
dont_ignore_tmp_device_file.diff
handle_extended_devt.diff
improve_probing.diff
k_dev_t.dif
lvm-pv-create-link.diff
lvm.conf
lvm2-clvm.changes
lvm2-clvm.spec
lvm2.changes
lvm2.spec
man_page_sectors.diff
mkinitrd-devmapper-boot.sh
mkinitrd-devmapper-setup.sh
mkinitrd-lvm2-boot.sh
mkinitrd-lvm2-setup.sh
no-inc-audit.diff
no_buildroot_shared.diff
pipe_buff-definition.diff
sleep-try-open-count.diff
support-drbd-filter.diff
sys_mount_instead_linux_fs.diff
sysconfig.lvm
udev-rules_update.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ device-mapper.spec ++++++
#
# spec file for package device-mapper
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: device-mapper
# bug437293
%ifarch ppc64
Obsoletes: device-mapper-64bit
%endif
#
Version: 1.02.63
Release: 0
Summary: Device Mapper Tools
License: GPL-2.0+ ; LGPL-2.1+
Group: System/Base
Source: LVM2.2.02.84.tgz
Source1: boot.device-mapper
Source2: mkinitrd-devmapper-setup.sh
Source3: mkinitrd-devmapper-boot.sh
Source4: baselibs.conf
#Patches for device mapper
Patch60: k_dev_t.dif
Patch61: device-mapper-dmsetup-export.patch
Patch62: device-mapper-gcc-warning.diff
Patch65: device-mapper-dmsetup-deps-export.patch
Patch66: device-mapper-type_punning.diff
Patch67: udev-rules_update.diff
#Patch68: device-mapper-pkgconfig.patch
Patch70: sleep-try-open-count.diff
Patch71: blkid-builtin.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: libselinux-devel
BuildRequires: libudev-devel
PreReq: %insserv_prereq %fillup_prereq
%description
Programs, libraries, and man pages for configuring and using the device
mapper.
%package devel
Summary: Development package for the device mapper
Group: System/Base
Requires: %name = %version
%description devel
Files needed for software development using the device mapper
%prep
%setup -n LVM2.2.02.84
%patch60 -p1
%patch61 -p1
%patch62 -p1
#%patch63 -p1
%patch65 -p1
%patch66 -p0
%patch67 -p1
#%patch68 -p0
%patch70 -p1
#%patch80 -p0
%patch71 -p1
%build
CFLAGS="$RPM_OPT_FLAGS" \
%configure --bindir=/bin --libdir=/%_lib --with-usrlibdir=%_libdir \
--sbindir=/sbin --enable-dmeventd \
--with-udevdir=/lib/udev/rules.d \
--enable-selinux --enable-cmdlib \
--with-dmeventd-path=/sbin/dmeventd \
--with-device-uid=0 --with-device-gid=6 --with-device-mode=0640 \
--enable-udev_sync --enable-udev_rules --enable-compat \
--enable-pkgconfig --enable-realtime
export SUSE_ASNEEDED=0
make -j1 # symlinks are generated in parallel! %{?_smp_mflags}
%install
#%makeinstall
make install_device-mapper DESTDIR=$RPM_BUILD_ROOT
#make libdir=$RPM_BUILD_ROOT/%_libdir install_static_lib
mkdir -p $RPM_BUILD_ROOT/%_libdir
#ln -s /%_lib/libdevmapper.so.1.02 $RPM_BUILD_ROOT/%_libdir/libdevmapper.so
#ln -s /%_lib/libdevmapper-event.so.1.02 $RPM_BUILD_ROOT/%_libdir/libdevmapper-event.so
#rm $RPM_BUILD_ROOT/%_lib/libdevmapper.so
#rm $RPM_BUILD_ROOT/%_lib/libdevmapper-event.so
#install -m 744 scripts/devmap_mknod.sh $RPM_BUILD_ROOT/sbin/
mkdir -p $RPM_BUILD_ROOT/etc/init.d
install -m 744 %{SOURCE1} $RPM_BUILD_ROOT/etc/init.d
install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts
install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-dm.sh
install -m 755 %{SOURCE3} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-dm.sh
%post
%{run_ldconfig}
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup
%{insserv_cleanup}
%postun
%{run_ldconfig}
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup
%{insserv_cleanup}
%files
%defattr(-,root,root)
%doc INSTALL COPYING COPYING.LIB README VERSION_DM WHATS_NEW_DM
%config /etc/init.d/boot.device-mapper
/%_lib/libdevmapper.so.1.02
/%_lib/libdevmapper-event.so.1.02
%dir /lib/udev/rules.d
%dir /lib/udev
/lib/udev/rules.d/10-dm.rules
#/lib/udev/rules.d/12-dm-permissions.rules
/lib/udev/rules.d/13-dm-disk.rules
/lib/udev/rules.d/95-dm-notify.rules
/sbin/dmsetup
/sbin/dmeventd
#/sbin/devmap_mknod.sh
%{_mandir}/man8/dmsetup.8.gz
%{_mandir}/man8/dmeventd.8.gz
%dir /lib/mkinitrd
%dir /lib/mkinitrd/scripts
/lib/mkinitrd/scripts/setup-dm.sh
/lib/mkinitrd/scripts/boot-dm.sh
%files devel
%defattr(-,root,root)
/%_libdir/libdevmapper.so
/%_libdir/libdevmapper-event.so
/%_libdir/pkgconfig/*.pc
#%attr(644, root, root) %_libdir/libdevmapper.a
/usr/include/libdevmapper.h
/usr/include/libdevmapper-event.h
%changelog
++++++ lvm2-clvm.spec ++++++
#
# spec file for package lvm2-clvm
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Url: http://sources.redhat.com/cluster/clvm/
Name: lvm2-clvm
BuildRequires: device-mapper-devel
BuildRequires: libcorosync-devel
BuildRequires: libdlm-devel
BuildRequires: libopenais-devel
BuildRequires: libselinux-devel
BuildRequires: readline-devel
Version: 2.02.84
Release: 0
Requires: device-mapper >= 1.02.25
Requires: lvm2 = %{version}
Requires: openais
Provides: clvm
PreReq: %fillup_prereq %insserv_prereq
Summary: Clustered LVM2
License: GPL-2.0+ ; LGPL-2.1+
Group: System/Base
Source: LVM2.%{version}.tgz
Source1: lvm.conf
Source2: boot.lvm
Source3: sysconfig.lvm
Source4: mkinitrd-lvm2-setup.sh
Source5: mkinitrd-lvm2-boot.sh
Source6: 64-lvm2.rules
Source7: collect_lvm
Source8: clvmd.ocf
Patch: improve_probing.diff
Patch2: no-inc-audit.diff
Patch3: no_buildroot_shared.diff
Patch4: sys_mount_instead_linux_fs.diff
Patch6: man_page_sectors.diff
Patch11: cmdline_large_minor.diff
Patch13: pipe_buff-definition.diff
Patch14: lvm-pv-create-link.diff
Patch19: dont_ignore_tmp_device_file.diff
Patch20: support-drbd-filter.diff
Patch22: handle_extended_devt.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
A daemon for using LVM2 Logival Volumes in a clustered environment.
%prep
%setup -n LVM2.%{version}
%patch
%patch2
%patch3
%patch4
%patch6
%patch11
%patch13
#%patch14 -p1
%patch19 -p1
%patch20 -p1
%patch22 -p1
%build
MODPROBE_CMD=/sbin/modprobe \
LDFLAGS="-L /usr/%_lib/openais" \
%configure --prefix=/ \
--enable-selinux \
--enable-cmdlib \
--libdir=/%_lib --with-usrlibdir=%_libdir --enable-dmeventd --enable-cmdlib \
--with-clvmd=corosync --datarootdir=/usr/share
make %{?_smp_mflags}
%install
pushd daemons/clvmd
make install DESTDIR=$RPM_BUILD_ROOT
popd
pushd man
make install DESTDIR=$RPM_BUILD_ROOT
popd
install -D -m 755 $RPM_BUILD_ROOT/sbin/clvmd $RPM_BUILD_ROOT/usr/sbin/clvmd
rm $RPM_BUILD_ROOT/sbin/clvmd
rm -rf $RPM_BUILD_ROOT/%{_mandir}/man5
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/lv*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/pv*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/vg*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/dmsetup*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/fsadm*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/dmeventd*
install -m755 -D %{S:8} $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/lvm2/clvmd
%files
%defattr(-,root,root)
/usr/sbin/clvmd
%dir /usr/lib/ocf
%dir /usr/lib/ocf/resource.d
%dir /usr/lib/ocf/resource.d/lvm2
/usr/lib/ocf/resource.d/lvm2/clvmd
%{_mandir}/man8/clvmd.8.gz
%changelog
++++++ lvm2.spec ++++++
#
# spec file for package lvm2
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Url: http://sources.redhat.com/cluster/clvm/
Name: lvm2
BuildRequires: libselinux-devel
BuildRequires: libudev-devel
BuildRequires: readline-devel
Requires: device-mapper >= 1.02.25
Provides: lvm
PreReq: %fillup_prereq %insserv_prereq /sbin/mkinitrd
%if %suse_version > 1130
PreReq: sysvinit(boot.device-mapper)
%endif
Version: 2.02.84
Release: 0
Summary: LVM2 Tools
License: GPL-2.0+ ; LGPL-2.1+
Group: System/Base
Source: LVM2.%{version}.tgz
Source1: lvm.conf
Source2: boot.lvm
Source3: sysconfig.lvm
Source4: mkinitrd-lvm2-setup.sh
Source5: mkinitrd-lvm2-boot.sh
Source6: 64-lvm2.rules
Source7: collect_lvm
Source8: clvmd.ocf
Patch: improve_probing.diff
Patch2: no-inc-audit.diff
Patch3: no_buildroot_shared.diff
Patch4: sys_mount_instead_linux_fs.diff
#Patch5: pvscan_2TB_limit.diff
Patch6: man_page_sectors.diff
Patch11: cmdline_large_minor.diff
Patch13: pipe_buff-definition.diff
Patch14: lvm-pv-create-link.diff
Patch19: dont_ignore_tmp_device_file.diff
Patch22: handle_extended_devt.diff
#Patch23: lvm2cmd-link-to-devmapper-event.diff
#Patches for device mapper
Patch60: k_dev_t.dif
Patch61: device-mapper-dmsetup-export.patch
Patch62: device-mapper-gcc-warning.diff
Patch65: device-mapper-dmsetup-deps-export.patch
Patch81: udev-rules_update.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# Not a real replacement but we drop evms
Provides: evms = 2.5.5
Provides: evms-devel = 2.5.5
Provides: evms-gui = 2.5.5
Provides: evms-ha = 2.5.5
Obsoletes: evms <= 2.5.5
Obsoletes: evms-devel <= 2.5.5
Obsoletes: evms-gui <= 2.5.5
Obsoletes: evms-ha <= 2.5.5
%description
Programs and man pages for configuring and using the LVM2 Logical
Volume Manager.
%prep
%setup -n LVM2.%{version}
%patch
%patch2
%patch3
%patch4
#%patch5
%patch6
%patch11
%patch13
#%patch14 -p1
%patch19 -p1
%patch22 -p1
#%patch23 -p1
# patch to device-mapper
%patch60 -p1
%patch61 -p1
%patch62 -p1
#%patch63 -p1
%patch65 -p1
#%patch80 -p0
%patch81 -p1
%build
MODPROBE_CMD=/sbin/modprobe \
%configure --prefix=/ \
--bindir=/bin --libdir=/%_lib --with-userlibdir=%_libdir \
--sbindir=/sbin --enable-dmeventd \
--with-udevdir=/lib/udev/rules.d \
--with-dmeventd_path=/sbin/dmeventd \
--enable-udev_sync --enable-udev_rules --enable-compat \
--enable-cmdlib --enable-dmeventd \
--enable-realtime --enable-pkgconfig
export SUSE_ASNEEDED=0
make %{?_smp_mflags}
%install
make install_lvm2 DESTDIR=$RPM_BUILD_ROOT
install -d -m 755 $RPM_BUILD_ROOT/etc/lvm
install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/backup
install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/archive
install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/metadata
install -d -m 755 $RPM_BUILD_ROOT/var/lock/lvm
install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/etc/lvm
mkdir -p $RPM_BUILD_ROOT/etc/init.d
install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/etc/init.d
install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts
install -m 755 %{SOURCE4} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-lvm2.sh
install -m 755 %{SOURCE5} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-lvm2.sh
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/var/adm/fillup-templates
[ %_lib != lib ] && mv $RPM_BUILD_ROOT/lib/liblvm2cmd.so $RPM_BUILD_ROOT/%_lib/liblvm2cmd.so
[ %_lib != lib ] && mv $RPM_BUILD_ROOT/lib/libdevmapper-event-lvm2.so $RPM_BUILD_ROOT/%_lib/libdevmapper-event-lvm2.so
pushd $RPM_BUILD_ROOT/%_lib
ln -sf device-mapper/libdevmapper-event-lvm2mirror.so libdevmapper-event-lvm2mirror.so.2.02
ln -sf device-mapper/libdevmapper-event-lvm2snapshot.so libdevmapper-event-lvm2snapshot.so.2.02
popd
mkdir -p $RPM_BUILD_ROOT/usr/share
mv $RPM_BUILD_ROOT/share/man $RPM_BUILD_ROOT/%{_mandir}
rmdir $RPM_BUILD_ROOT/share
rm $RPM_BUILD_ROOT/usr/include/lvm2cmd.h
# install 64-lvm2.rules and collect_lvm
#install -m644 -D %{S:6} $RPM_BUILD_ROOT/lib/udev/rules.d/64-lvm2.rules
install -m755 -D %{S:7} $RPM_BUILD_ROOT/lib/udev/collect_lvm
# remove all device mapper files
rm $RPM_BUILD_ROOT/%{_mandir}/man8/fsadm.*
%post
%{fillup_and_insserv -n lvm boot.lvm}
[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup
if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then
echo "Skipping recreation of existing initial ramdisks, due"
echo "to presence of /var/lib/no_initrd_recreation_by_suspend"
elif [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
/sbin/ldconfig
%preun
%{stop_on_removal boot.lvm}
%postun
%{insserv_cleanup}
[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup
if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then
echo "Skipping recreation of existing initial ramdisks, due"
echo "to presence of /var/lib/no_initrd_recreation_by_suspend"
elif [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
/sbin/ldconfig
%files
%defattr(-,root,root)
%doc INSTALL README WHATS_NEW doc/*
%dir /etc/lvm
%dir /etc/lvm/backup
%dir /etc/lvm/archive
%dir /etc/lvm/metadata
%dir /var/lock/lvm
%config /etc/lvm/lvm.conf
%config /etc/init.d/boot.lvm
%dir /lib/mkinitrd
%dir /lib/mkinitrd/scripts
%dir /lib/udev
%dir /lib/udev/rules.d
#/lib/udev/rules.d/64-lvm2.rules
/lib/udev/rules.d/11-dm-lvm.rules
/lib/udev/collect_lvm
/lib/mkinitrd/scripts/setup-lvm2.sh
/lib/mkinitrd/scripts/boot-lvm2.sh
/var/adm/fillup-templates/sysconfig.lvm
/sbin/fsadm
/sbin/lvchange
/sbin/lvconvert
/sbin/lvcreate
/sbin/lvdisplay
/sbin/lvextend
/sbin/lvm
/sbin/lvmchange
/sbin/lvmdiskscan
/sbin/lvmdump
/sbin/lvmsadc
/sbin/lvmsar
/sbin/lvreduce
/sbin/lvremove
/sbin/lvrename
/sbin/lvresize
/sbin/lvs
/sbin/lvscan
/sbin/pvchange
/sbin/pvck
/sbin/pvcreate
/sbin/pvdisplay
/sbin/pvmove
/sbin/pvremove
/sbin/pvresize
/sbin/pvs
/sbin/pvscan
/sbin/vgcfgbackup
/sbin/vgcfgrestore
/sbin/vgchange
/sbin/vgck
/sbin/vgconvert
/sbin/vgcreate
/sbin/vgdisplay
/sbin/vgexport
/sbin/vgextend
/sbin/vgimport
/sbin/vgimportclone
/sbin/vgmerge
/sbin/vgmknodes
/sbin/vgreduce
/sbin/vgremove
/sbin/vgrename
/sbin/vgs
/sbin/vgscan
/sbin/vgsplit
/sbin/lvmconf
%dir /%_lib/device-mapper
/%_lib/device-mapper/libdevmapper-event-lvm2mirror.so
/%_lib/device-mapper/libdevmapper-event-lvm2snapshot.so
/%_lib/libdevmapper-event-lvm2mirror.so
/%_lib/libdevmapper-event-lvm2snapshot.so
/%_lib/liblvm2cmd.so
/%_lib/libdevmapper-event-lvm2mirror.so.2.02
/%_lib/libdevmapper-event-lvm2snapshot.so.2.02
/%_lib/liblvm2cmd.so.2.02
/%_lib/libdevmapper-event-lvm2.so
/%_lib/libdevmapper-event-lvm2.so.2.02
%{_mandir}/man5/lvm.conf.5.gz
%{_mandir}/man8/lvchange.8.gz
%{_mandir}/man8/lvcreate.8.gz
%{_mandir}/man8/lvconvert.8.gz
%{_mandir}/man8/lvdisplay.8.gz
%{_mandir}/man8/lvmdump.8.gz
%{_mandir}/man8/lvextend.8.gz
%{_mandir}/man8/lvm.8.gz
%{_mandir}/man8/lvmchange.8.gz
%{_mandir}/man8/lvmdiskscan.8.gz
%{_mandir}/man8/lvreduce.8.gz
%{_mandir}/man8/lvremove.8.gz
%{_mandir}/man8/lvrename.8.gz
%{_mandir}/man8/lvresize.8.gz
%{_mandir}/man8/lvs.8.gz
%{_mandir}/man8/lvscan.8.gz
%{_mandir}/man8/pvchange.8.gz
%{_mandir}/man8/pvck.8.gz
%{_mandir}/man8/pvcreate.8.gz
%{_mandir}/man8/pvdisplay.8.gz
%{_mandir}/man8/pvmove.8.gz
%{_mandir}/man8/pvremove.8.gz
%{_mandir}/man8/pvresize.8.gz
%{_mandir}/man8/pvs.8.gz
%{_mandir}/man8/pvscan.8.gz
%{_mandir}/man8/vgcfgbackup.8.gz
%{_mandir}/man8/vgcfgrestore.8.gz
%{_mandir}/man8/vgchange.8.gz
%{_mandir}/man8/vgck.8.gz
%{_mandir}/man8/vgconvert.8.gz
%{_mandir}/man8/vgcreate.8.gz
%{_mandir}/man8/vgdisplay.8.gz
%{_mandir}/man8/vgexport.8.gz
%{_mandir}/man8/vgextend.8.gz
%{_mandir}/man8/vgimport.8.gz
%{_mandir}/man8/vgimportclone.8.gz
%{_mandir}/man8/vgmerge.8.gz
%{_mandir}/man8/vgmknodes.8.gz
%{_mandir}/man8/vgreduce.8.gz
%{_mandir}/man8/vgremove.8.gz
%{_mandir}/man8/vgrename.8.gz
%{_mandir}/man8/vgs.8.gz
%{_mandir}/man8/vgscan.8.gz
%{_mandir}/man8/vgsplit.8.gz
%{_mandir}/man8/lvmconf.8.gz
%{_mandir}/man8/lvmsadc.8.gz
%{_mandir}/man8/lvmsar.8.gz
%changelog
++++++ 64-lvm2.rules ++++++
# This file causes block devices with LVM signatures to be automatically
# added to their volume group.
# See udev(8) for syntax
SUBSYSTEM!="block", GOTO="lvm_end"
ACTION!="add|change", GOTO="lvm_end"
ENV{ID_FS_TYPE}!="LVM2_member", GOTO="lvm_end"
ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-id/lvm2-pvuuid-$env{ID_FS_UUID_ENC}"
ENV{DMDEPS}=="0", GOTO="lvm_end"
IMPORT{PROGRAM}="collect_lvm $tempnode"
ENV{VGUUID}!="?*", GOTO="lvm_end"
ENV{VGNAME}!="?*", GOTO="lvm_end"
# If all related PV's available already, active all LVs inside.
ENV{COLLECT}=="0", RUN+="/sbin/vgchange -a y $env{VGNAME}"
LABEL="lvm_end"
++++++ baselibs.conf ++++++
device-mapper
device-mapper-devel
++++++ blkid-builtin.patch ++++++
>From a2e5d2cb9c53cff13e48efa7ba2791d9deb36314 Mon Sep 17 00:00:00 2001
From: Peter Rajnoha <prajnoha(a)redhat.com>
Date: Thu, 16 Feb 2012 14:39:02 +0000
Subject: [PATCH] Switch to using built-in blkid in 13-dm-disk.rules.
Available in udev since version 176.
---
WHATS_NEW_DM | 1 +
udev/13-dm-disk.rules | 2 +-
2 files changed, 2 insertions(+), 1 deletions(-)
Index: LVM2.2.02.84/udev/13-dm-disk.rules
===================================================================
--- LVM2.2.02.84.orig/udev/13-dm-disk.rules
+++ LVM2.2.02.84/udev/13-dm-disk.rules
@@ -20,7 +20,7 @@ ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id
ENV{DM_SUSPENDED}=="1", GOTO="dm_end"
ENV{DM_TARGET_TYPES}=="|*error*", GOTO="dm_end"
-IMPORT{program}="$env{DM_SBIN_PATH}/blkid -o udev -p $tempnode"
+IMPORT{builtin}="blkid"
ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS+="link_priority=-100"
OPTIONS+="watch"
ENV{DM_TARGET_TYPES}=="*snapshot-origin*", OPTIONS+="link_priority=-90"
++++++ boot.device-mapper ++++++
#! /bin/sh
#
# Copyright (c) 2001 SuSE GmbH Nuernberg, Germany. All rights reserved.
#
# /etc/init.d/boot.device-mapper
#
### BEGIN INIT INFO
# Provides: boot.device-mapper
# Required-Start: boot.udev boot.rootfsck
# Required-Stop: boot.udev
# Default-Start: B
# Default-Stop:
# Description: activate device mapper
### END INIT INFO
. /etc/rc.status
rc_reset
case "$1" in
start)
echo -n "Activating device mapper..."
modprobe dm-mod || rc_failed 1
rc_status -v
;;
stop)
rc_failed 3
rc_status -v
;;
status)
rc_failed 4
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
;;
esac
rc_exit
++++++ boot.lvm ++++++
#! /bin/sh
#
# Copyright (c) 2001 SuSE GmbH Nuernberg, Germany. All rights reserved.
#
# /etc/init.d/boot.lvm
#
### BEGIN INIT INFO
# Provides: boot.lvm
# Required-Start: boot.udev boot.rootfsck
# Should-Start: boot.device-mapper boot.multipath boot.md boot.dmraid
# Required-Stop: $null
# Should-Stop: $null
# Default-Start: B
# Default-Stop:
# Description: start logical volumes
### END INIT INFO
. /etc/rc.status
. /etc/sysconfig/lvm
# udev interaction
if [ -x /sbin/udevadm ] ; then
[ -z "$LVM_DEVICE_TIMEOUT" ] && LVM_DEVICE_TIMEOUT=60
else
LVM_DEVICE_TIMEOUT=0
fi
rc_reset
case "$1" in
start)
#
# Find and activate volume groups (HM 1/1/1999)
#
if test -d /etc/lvm -a -x /sbin/vgscan -a -x /sbin/vgchange ; then
# Waiting for udev to settle
if [ "$LVM_DEVICE_TIMEOUT" -gt 0 ] ; then
echo "Waiting for udev to settle..."
/sbin/udevadm settle --timeout=$LVM_DEVICE_TIMEOUT
fi
echo "Scanning for LVM volume groups..."
/sbin/vgscan --mknodes
echo "Activating LVM volume groups..."
/sbin/vgchange -a y $LVM_VGS_ACTIVATED_ON_BOOT
rc_status -v -r
fi
;;
stop)
if test -d /etc/lvm -a -x /sbin/vgchange ; then
/sbin/vgchange -a n
fi
rc_status -v
;;
status)
rc_failed 4
rc_status -v
;;
reload)
$0 start
;;
*)
echo "Usage: $0 {start|stop|status|reload}"
exit 1
;;
esac
rc_exit
++++++ clvmd.ocf ++++++
#!/bin/bash
# Copyright (c) 2008 Xinwei Hu
# All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# Further, this software is distributed without any warranty that it is
# free of the rightful claim of any third person regarding infringement
# or the like. Any license provided herein, whether implied or
# otherwise, applies only to this software file. Patent licenses, if
# any, provided herein do not apply to combinations of this program with
# other software, or any other product whatsoever.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
#
#######################################################################
# OCF initialization
. ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs
# Parameter defaults
: ${OCF_RESKEY_CRM_meta_gloablly_unique:="false"}
: ${OCF_RESKEY_daemon_timeout:="80"}
: ${OCF_RESKEY_daemon_options:="-d0"}
# Common variables
DAEMON="/usr/sbin/clvmd"
status_daemon()
{
PID=`pidofproc "$DAEMON"`
if [ -n "$PID" ]; then
return $OCF_SUCCESS
fi
return $OCF_NOT_RUNNING
}
bringup_daemon()
{
if [ ! -e "$DAEMON" ]; then
ocf_log err "Required binary not found: $DAEMON"
return $OCF_ERR_INSTALLED
fi
start_daemon "$DAEMON" "$OCF_RESKEY_daemon_options"; rc=$?
if [ $rc != 0 ]; then
ocf_log err "Could not start $DAEMON"
return $OCF_ERR_GENERIC
fi
sleep 1
COUNT=0
rc=$OCF_NOT_RUNNING
while [ $rc = $OCF_NOT_RUNNING ]; do
COUNT=`expr $COUNT + 1`
if [ $COUNT -gt $OCF_RESKEY_daemon_timeout ]; then
ocf_log err "`basename $DAEMON` did not come up"
return $OCF_ERR_GENERIC
fi
status_daemon; rc=$?
sleep 1
done
return $rc
}
kill_daemon()
{
status_daemon; rc=$?
if [ $rc != $OCF_SUCCESS ]; then
return rc
fi
ocf_log info "Stopping `basename "$DAEMON"`"
killproc -INT "$DAEMON"
sleep 1
status_daemon; rc=$?
COUNT=0
while [ $rc = $OCF_SUCCESS ]; do
COUNT=`expr $COUNT + 1`
if [ $COUNT -gt $OCF_RESKEY_daemon_timeout ]; then
ocf_log err "`basename $DAEMON` shutdown emergency"
killproc -9 "$DAEMON"
status_daemon; rc=$?
if [ $rc = $OCF_NOT_RUNNING ]; then
return $OCF_SUCCESS
else
return $OCF_ERR_GENERIC
fi
fi
killproc -INT "$DAEMON"
sleep 1
status_daemon; rc=$?
done
return $OCF_SUCCESS
}
clvmd_start() {
clvmd_monitor; rc=$?
if [ $rc != $OCF_NOT_RUNNING ]; then
return $rc
fi
ocf_log info "Starting $OCF_RESOURCE_INSTANCE"
bringup_daemon
return $?
}
clvmd_stop() {
clvmd_monitor; rc=$?
case $rc in
$OCF_NOT_RUNNING) return $OCF_SUCCESS;;
esac
ocf_log info "Stopping $OCF_RESOURCE_INSTANCE"
kill_daemon
}
clvmd_monitor() {
clvmd_validate
status_daemon
return $?
}
clvmd_usage() {
echo "usage: $0 {start|stop|monitor|validate-all|meta-data}"
echo " Expects to have a fully populated OCF RA-compliant environment set."
echo " In particualr, a value for OCF_ROOT"
}
clvmd_validate() {
: TODO: check for gloablly_unique=true and return OCF_ERR_CONFIGURED
case ${OCF_RESKEY_CRM_meta_gloablly_unique} in
yes|Yes|true|True|1)
ocf_log err "$OCF_RESOURCE_INSTANCE must be configured with the gloablly_unique=false meta attribute"
exit $OCF_ERR_CONFIGURED
;;
esac
return $OCF_SUCCESS
}
meta_data() {
cat <<END
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
<resource-agent name="clvmd">
<version>1.0</version>
<longdesc lang="en">
This is a clvmd Resource Agent.
It starts clvmd as anonymous clones.
</longdesc>
<shortdesc lang="en">clvmd resource agent</shortdesc>
<parameters>
<parameter name="daemon_timeout" unique="0">
<longdesc lang="en">
Number of seconds to allow the control daemon to come up and down
</longdesc>
<shortdesc lang="en">Daemon Timeout</shortdesc>
<content type="string" default="80"/>
</parameter>
<parameter name="daemon_options" unique="0">
<longdesc lang="en">
Options to clvmd. Refer to clvmd.8 for detailed descriptions.
</longdesc>
<shortdesc lang="en">Daemon Options</shortdesc>
<content type="string" default="-d0"/>
</parameter>
</parameters>
<actions>
<action name="start" timeout="90" />
<action name="stop" timeout="100" />
<action name="monitor" timeout="20" depth="0"/>
<action name="meta-data" timeout="5" />
<action name="validate-all" timeout="30" />
</actions>
</resource-agent>
END
}
case $__OCF_ACTION in
meta-data) meta_data
exit $OCF_SUCCESS
;;
start) clvmd_start
;;
stop) clvmd_stop
;;
monitor) clvmd_monitor
;;
validate-all) clvmd_validate
;;
usage|help) clvmd_usage
exit $OCF_SUCCESS
;;
*) clvmd_usage
exit $OCF_ERR_UNIMPLEMENTED
;;
esac
exit $?
++++++ cmdline_large_minor.diff ++++++
Index: tools/lvmcmdline.c
===================================================================
--- tools/lvmcmdline.c.orig 2011-01-13 23:00:29.000000000 +0800
+++ tools/lvmcmdline.c 2011-02-15 14:59:30.000000000 +0800
@@ -380,8 +380,8 @@
if (!_get_int_arg(av, &ptr) || (*ptr) || (av->sign == SIGN_MINUS))
return 0;
- if (av->i_value > 255) {
- log_error("Minor number outside range 0-255");
+ if (av->i_value > 1048575) {
+ log_error("Minor number outside range 0-1048575");
return 0;
}
++++++ collect_lvm ++++++
#!/bin/sh
PVNAME=$1
source /etc/sysconfig/lvm
/sbin/lvm pvs --config "devices {filter = [ \"a|$PVNAME|\", \"r/.*/\" ]}" --partial -o vg_name,vg_attr,pv_uuid,vg_uuid --ignorelockingfailure --noheadings $PVNAME 2>/dev/null | while read vgname vgattr pvuuid vguuid; do
if [[ $vgattr =~ mode. ]]; then
continue
fi
if [[ $vgattr =~ .....c ]]; then
exit 1
fi
lvlist=$(/sbin/lvm lvs --config "devices {filter = [ \"a|$PVNAME|\", \"r/.*/\" ]}" --partial -o lv_name,lv_attr --ignorelockingfailure --noheadings $vgname 2>/dev/null | while read lvname lvattr; do
if [[ $lvattr =~ mode. ]] ; then
continue
fi
if [[ $lvattr =~ ....-. ]]; then
echo -n $lvname
fi
done)
if [ -z "$lvlist" ] ; then
exit 1
fi
pvlist=$(/sbin/lvm vgdisplay --config "devices {filter = [ \"a|$PVNAME|\", \"r/.*/\" ]}" --partial -v $vgname 2>/dev/null | while read str1 str2 val; do
if [[ $str1 =~ PV && $str2 =~ UUID ]]; then
echo $val
fi
done)
echo PVUUID=$pvuuid
echo VGUUID=$vguuid
echo VGNAME=$vgname
if [[ -n $LVM_VGS_ACTIVATED_ON_BOOT ]]; then
found=0
for autovg in $LVM_VGS_ACTIVATED_ON_BOOT; do
if [[ $vgname == $autovg ]]; then
found=1
break
fi
done
if [[ $found == 0 ]]; then
echo COLLECT=1
exit 0
fi
fi
collected=0
for pv in $pvlist; do
if [[ x$pv = x$pvuuid ]]; then
continue
fi
if [[ ! -h /dev/disk/by-id/lvm2-pvuuid-$pv ]]; then
echo COLLECT=1
collected=1
break
fi
done
if [[ $collected = 0 ]]; then
echo COLLECT=0
fi
# /lib/udev/collect $vguuid $pvuuid $pvlist
# echo COLLECT=$?
done
++++++ device-mapper-dmsetup-deps-export.patch ++++++
Index: LVM2.2.02.84/tools/dmsetup.c
===================================================================
--- LVM2.2.02.84.orig/tools/dmsetup.c 2011-02-15 15:00:52.000000000 +0800
+++ LVM2.2.02.84/tools/dmsetup.c 2011-02-15 15:00:54.000000000 +0800
@@ -1645,6 +1645,7 @@
const char *name = NULL;
const char *uuid = NULL;
struct dm_info info;
+ struct dm_deps *deps;
if (data)
name = names->name;
@@ -1714,6 +1715,28 @@
printf("\n");
}
+ dm_task_destroy(dmt);
+
+ if (!(dmt = dm_task_create(DM_DEVICE_DEPS)))
+ goto out;
+
+ name = NULL;
+ if (data)
+ name = names->name;
+ else if (argc == 2)
+ name = argv[1];
+
+ if (!_set_task_device(dmt, name, 0))
+ goto out;
+
+ if (!dm_task_run(dmt))
+ goto out;
+
+ if (!(deps = dm_task_get_deps(dmt)))
+ goto out;
+
+ printf("DM_DEPS=%d\n", deps->count);
+
r = 1;
out:
if (dmt)
++++++ device-mapper-dmsetup-export.patch ++++++
Index: LVM2.2.02.84/tools/dmsetup.c
===================================================================
--- LVM2.2.02.84.orig/tools/dmsetup.c 2011-02-05 06:17:55.000000000 +0800
+++ LVM2.2.02.84/tools/dmsetup.c 2011-02-15 14:44:42.000000000 +0800
@@ -1633,6 +1633,94 @@
return r;
}
+static int _export(int argc, char **argv, void *data)
+{
+ int r = 0;
+ struct dm_task *dmt = NULL;
+ void *next = NULL;
+ uint64_t start, length;
+ char *target_type = NULL;
+ char *params;
+ struct dm_names *names = (struct dm_names *) data;
+ const char *name = NULL;
+ const char *uuid = NULL;
+ struct dm_info info;
+
+ if (data)
+ name = names->name;
+ else if (argc == 2)
+ name = argv[1];
+
+ if (!(dmt = dm_task_create(DM_DEVICE_STATUS)))
+ goto out;
+
+ if (!_set_task_device(dmt, name, 0))
+ goto out;
+
+ if (!dm_task_run(dmt))
+ goto out;
+
+ if (!dm_task_get_info(dmt, &info) || !info.exists)
+ goto out;
+
+ if (!name)
+ name = dm_task_get_name(dmt);
+
+ uuid = dm_task_get_uuid(dmt);
+ printf("DM_NAME=%s\n", name);
+
+ if ((uuid = dm_task_get_uuid(dmt)) && *uuid)
+ printf("DM_UUID=%s\n", uuid);
+
+ if (!info.exists) {
+ printf("DM_STATE=NOTPRESENT\n");
+ goto out;
+ }
+
+ printf("DM_STATE=%s\n",
+ info.suspended ? "SUSPENDED" :
+ (info.read_only ? "READONLY" : "ACTIVE"));
+
+ if (!info.live_table && !info.inactive_table)
+ printf("DM_TABLE_STATE=NONE\n");
+ else
+ printf("DM_TABLE_STATE=%s%s%s\n",
+ info.live_table ? "LIVE" : "",
+ info.live_table && info.inactive_table ? "/" : "",
+ info.inactive_table ? "INACTIVE" : "");
+
+ if (info.open_count != -1)
+ printf("DM_OPENCOUNT=%d\n", info.open_count);
+
+ printf("DM_LAST_EVENT_NR=%" PRIu32 "\n", info.event_nr);
+
+ printf("DM_MAJOR=%d\n", info.major);
+ printf("DM_MINOR=%d\n", info.minor);
+
+ if (info.target_count != -1)
+ printf("DM_TARGET_COUNT=%d\n", info.target_count);
+
+ /* export all table types */
+ next = dm_get_next_target(dmt, next, &start, &length,
+ &target_type, ¶ms);
+ if (target_type) {
+ printf("DM_TARGET_TYPES=%s", target_type);
+ while (next) {
+ next = dm_get_next_target(dmt, next, &start, &length,
+ &target_type, ¶ms);
+ if (target_type)
+ printf(",%s", target_type);
+ }
+ printf("\n");
+ }
+
+ r = 1;
+ out:
+ if (dmt)
+ dm_task_destroy(dmt);
+ return r;
+}
+
/* Show target names and their version numbers */
static int _targets(int argc __attribute__((unused)), char **argv __attribute__((unused)), void *data __attribute__((unused)))
{
@@ -2735,6 +2823,7 @@
{"info", "[<device>]", 0, 1, _info},
{"deps", "[<device>]", 0, 1, _deps},
{"status", "[<device>] [--target <target_type>]", 0, 1, _status},
+ {"export", "[<device>]", 0, 1, _export},
{"table", "[<device>] [--target <target_type>] [--showkeys]", 0, 1, _status},
{"wait", "<device> [<event_nr>]", 0, 2, _wait},
{"mknodes", "[<device>]", 0, 1, _mknodes},
Index: LVM2.2.02.84/man/dmsetup.8.in
===================================================================
--- LVM2.2.02.84.orig/man/dmsetup.8.in 2011-02-05 03:33:54.000000000 +0800
+++ LVM2.2.02.84/man/dmsetup.8.in 2011-02-15 14:44:42.000000000 +0800
@@ -50,6 +50,9 @@
.I [--noheadings] [--separator separator] [-o fields] [-O|--sort sort_fields]
.I [device_name]
.br
+.B dmsetup export
+.I [device_name]
+.br
.B dmsetup deps
.I [device_name]
.br
@@ -200,6 +203,10 @@
If successful a device will appear as
/dev/device-mapper/<device-name>.
See below for information on the table format.
+.IP \fBexport
+.I [device_name]
+.br
+Outputs information in key/value format to be imported by other programs.
.IP \fBdeps
.I [device_name]
.br
++++++ device-mapper-gcc-warning.diff ++++++
Index: LVM2.2.02.84/libdm/datastruct/hash.c
===================================================================
--- LVM2.2.02.84.orig/libdm/datastruct/hash.c 2010-10-01 05:06:52.000000000 +0800
+++ LVM2.2.02.84/libdm/datastruct/hash.c 2011-02-15 14:45:59.000000000 +0800
@@ -19,7 +19,7 @@
struct dm_hash_node *next;
void *data;
unsigned keylen;
- char key[0];
+ unsigned char key[0];
};
struct dm_hash_table {
@@ -136,7 +136,7 @@
static struct dm_hash_node **_find(struct dm_hash_table *t, const char *key,
uint32_t len)
{
- unsigned h = _hash(key, len) & (t->num_slots - 1);
+ unsigned h = _hash((unsigned char*)key, len) & (t->num_slots - 1);
struct dm_hash_node **c;
for (c = &t->slots[h]; *c; c = &((*c)->next)) {
@@ -235,7 +235,7 @@
char *dm_hash_get_key(struct dm_hash_table *t __attribute__((unused)),
struct dm_hash_node *n)
{
- return n->key;
+ return (char*)n->key;
}
void *dm_hash_get_data(struct dm_hash_table *t __attribute__((unused)),
Index: LVM2.2.02.84/libdm/ioctl/libdm-iface.c
===================================================================
--- LVM2.2.02.84.orig/libdm/ioctl/libdm-iface.c 2011-02-05 05:26:33.000000000 +0800
+++ LVM2.2.02.84/libdm/ioctl/libdm-iface.c 2011-02-15 14:45:59.000000000 +0800
@@ -1983,7 +1983,8 @@
dmt->skip_lockfs ? "S " : "",
dmt->secure_data ? "W " : "",
dmt->query_inactive_table ? "I " : "",
- dmt->sector, _sanitise_message(dmt->message),
+ (unsigned long long int)dmt->sector,
+ _sanitise_message(dmt->message),
dmi->data_size);
#ifdef DM_IOCTLS
if (ioctl(_control_fd, command, dmi) < 0) {
++++++ device-mapper-type_punning.diff ++++++
Index: lib/device/device.c
===================================================================
--- lib/device/device.c.orig 2009-08-02 01:14:52.000000000 +0800
+++ lib/device/device.c 2010-02-04 14:02:42.000000000 +0800
@@ -38,7 +38,7 @@
uint8_t end_cyl;
uint32_t start_sect;
uint32_t nr_sects;
-} __attribute__((packed));
+} __attribute__((packed,may_alias));
static int _is_partitionable(struct device *dev)
{
++++++ dont_ignore_tmp_device_file.diff ++++++
Index: LVM2.2.02.58/lib/device/dev-cache.c
===================================================================
--- LVM2.2.02.58.orig/lib/device/dev-cache.c 2009-07-16 04:02:46.000000000 +0800
+++ LVM2.2.02.58/lib/device/dev-cache.c 2010-02-04 15:32:59.000000000 +0800
@@ -358,7 +358,11 @@
dirent_count = scandir(dir, &dirent, NULL, alphasort);
if (dirent_count > 0) {
for (n = 0; n < dirent_count; n++) {
- if (dirent[n]->d_name[0] == '.') {
+ if (dirent[n]->d_name[0] == '.' && dirent[n]->d_name[1] == '\0') {
+ free(dirent[n]);
+ continue;
+ }
+ if (dirent[n]->d_name[0] == '.' && dirent[n]->d_name[1] == '.' && dirent[n]->d_name[2] == '\0') {
free(dirent[n]);
continue;
}
++++++ handle_extended_devt.diff ++++++
Index: LVM2.2.02.45/lib/filters/filter.c
===================================================================
--- LVM2.2.02.45.orig/lib/filters/filter.c
+++ LVM2.2.02.45/lib/filters/filter.c
@@ -179,6 +179,10 @@ static int _scan_proc_dev(const char *pr
/* All types unrecognised initially */
memset(_max_partitions_by_major, 0, sizeof(int) * NUMBER_OF_MAJORS);
+ /* Extended devt will use MAJOR 259
+ Consider it an non-partitionable block device */
+ _max_partitions_by_major[259] = 1;
+
if (dm_snprintf(proc_devices, sizeof(proc_devices),
"%s/devices", proc) < 0) {
log_error("Failed to create /proc/devices string");
++++++ improve_probing.diff ++++++
Index: lib/filters/filter.c
===================================================================
--- lib/filters/filter.c.orig 2011-01-27 08:21:37.000000000 +0800
+++ lib/filters/filter.c 2011-02-15 14:56:43.000000000 +0800
@@ -13,6 +13,12 @@
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <sys/ioctl.h>
+#include <linux/fs.h>
+#undef MAJOR
+#undef MINOR
+#undef MKDEV
+
#include "lib.h"
#include "dev-cache.h"
#include "filter.h"
@@ -147,11 +153,18 @@
}
/* Check it's accessible */
- if (!dev_open_flags(dev, O_RDONLY, 1, 1)) {
+ if (!dev_open_flags(dev, O_RDONLY|O_NONBLOCK, 1, 1)) {
log_debug("%s: Skipping: open failed", name);
return 0;
}
+ /* Skip cdrom device */
+ #define CDROM_GET_CAPABILITY 0x5331
+ if (ioctl(dev->fd, CDROM_GET_CAPABILITY) >= 0) {
+ log_debug("%s: Skipping: cdrom device", name );
+ goto out;
+ }
+
/* Check it's not too small */
if (!dev_get_size(dev, &size)) {
log_debug("%s: Skipping: dev_get_size failed", name);
++++++ k_dev_t.dif ++++++
Index: LVM2.2.02.45/libdm/ioctl/libdm-compat.h
===================================================================
--- LVM2.2.02.45.orig/libdm/ioctl/libdm-compat.h 2008-11-01 10:19:18.000000000 +0800
+++ LVM2.2.02.45/libdm/ioctl/libdm-compat.h 2009-04-27 17:43:08.000000000 +0800
@@ -40,7 +40,7 @@
int32_t open_count; /* out */
uint32_t flags; /* in/out */
- __kernel_dev_t dev; /* in/out */
+ __kernel_old_dev_t dev; /* in/out */
char name[DM_NAME_LEN]; /* device name */
char uuid[DM_UUID_LEN]; /* unique identifier for
@@ -60,7 +60,7 @@
struct dm_target_deps_v1 {
uint32_t count;
- __kernel_dev_t dev[0]; /* out */
+ __kernel_old_dev_t dev[0]; /* out */
};
enum {
++++++ lvm-pv-create-link.diff ++++++
Index: LVM2.2.02.67/tools/pvremove.c
===================================================================
--- LVM2.2.02.67.orig/tools/pvremove.c 2009-12-03 20:18:34.000000000 +0100
+++ LVM2.2.02.67/tools/pvremove.c 2010-09-09 13:51:21.370385527 +0200
@@ -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 @@ static int pvremove_single(struct cmd_co
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.67/tools/pvchange.c
===================================================================
--- LVM2.2.02.67.orig/tools/pvchange.c 2010-05-19 17:34:10.000000000 +0200
+++ LVM2.2.02.67/tools/pvchange.c 2010-09-09 13:51:21.370385527 +0200
@@ -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,
Index: LVM2.2.02.67/lib/metadata/metadata.c
===================================================================
--- LVM2.2.02.67.orig/lib/metadata/metadata.c 2010-05-24 17:32:20.000000000 +0200
+++ LVM2.2.02.67/lib/metadata/metadata.c 2010-09-09 13:52:19.866385579 +0200
@@ -1424,6 +1424,88 @@ void pvcreate_params_set_defaults(struct
pp->yes = 0;
}
+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;
+}
+
+
+
/*
* pvcreate_single() - initialize a device with PV label and metadata area
*
@@ -1444,6 +1526,7 @@ struct physical_volume * pvcreate_single
struct dm_list mdas;
struct pvcreate_params default_pp;
char buffer[64] __attribute((aligned(8)));
+ const char *oldsymlink;
pvcreate_params_set_defaults(&default_pp);
if (!pp)
@@ -1509,11 +1592,20 @@ struct physical_volume * pvcreate_single
log_very_verbose("Writing physical volume data to disk \"%s\"",
pv_name);
+ oldsymlink = pv_symlink_handle(cmd, pv_name, 0);
+
if (!(pv_write(cmd, pv, &mdas, pp->labelsector))) {
log_error("Failed to write physical volume \"%s\"", pv_name);
+ if (oldsymlink) free(oldsymlink);
goto error;
}
+ pv_symlink_handle(cmd, pv_name, 1);
+ if (oldsymlink) {
+ unlink(oldsymlink);
+ free(oldsymlink);
+ }
+
log_print("Physical volume \"%s\" successfully created", pv_name);
return pv;
++++++ lvm.conf ++++++
# This is an example configuration file for the LVM2 system.
# It contains the default settings that would be used if there was no
# /etc/lvm/lvm.conf file.
#
# Refer to 'man lvm.conf' for further information including the file layout.
#
# To put this file in a different directory and override /etc/lvm set
# the environment variable LVM_SYSTEM_DIR before running the tools.
# This section allows you to configure which block devices should
# be used by the LVM system.
devices {
# Where do you want your volume groups to appear ?
dir = "/dev"
# An array of directories that contain the device nodes you wish
# to use with LVM2.
scan = [ "/dev" ]
# A filter that tells LVM2 to only use a restricted set of devices.
# The filter consists of an array of regular expressions. These
# expressions can be delimited by a character of your choice, and
# prefixed with either an 'a' (for accept) or 'r' (for reject).
# The first expression found to match a device name determines if
# the device will be accepted or rejected (ignored). Devices that
# don't match any patterns are accepted.
# Remember to run vgscan after you change this parameter to ensure
# that the cache file gets regenerated (see below).
# By default we accept every block device except udev names:
filter = [ "r|/dev/.*/by-path/.*|", "r|/dev/.*/by-id/.*|", "a/.*/" ]
# Exclude the cdrom drive
# filter = [ "r|/dev/cdrom|" ]
# When testing I like to work with just loopback devices:
# filter = [ "a/loop/", "r/.*/" ]
# Or maybe all loops and ide drives except hdc:
# filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
# Use anchors if you want to be really specific
# filter = [ "a|^/dev/hda8$|", "r/.*/" ]
# The results of the filtering are cached on disk to avoid
# rescanning dud devices (which can take a very long time). By
# default this cache file is hidden in the /etc/lvm directory.
# It is safe to delete this file: the tools regenerate it.
cache = "/etc/lvm/.cache"
# You can turn off writing this cache file by setting this to 0.
write_cache_state = 1
# Advanced settings.
# List of pairs of additional acceptable block device types found
# in /proc/devices with maximum (non-zero) number of partitions.
# types = [ "fd", 16 ]
# If sysfs is mounted (2.6 kernels) restrict device scanning to
# the block devices it believes are valid.
# 1 enables; 0 disables.
sysfs_scan = 1
# By default, LVM2 will ignore devices used as components of
# software RAID (md) devices by looking for md superblocks.
# 1 enables; 0 disables.
md_component_detection = 1
}
# This section that allows you to configure the nature of the
# information that LVM2 reports.
log {
# Controls the messages sent to stdout or stderr.
# There are three levels of verbosity, 3 being the most verbose.
verbose = 0
# Should we send log messages through syslog?
# 1 is yes; 0 is no.
syslog = 1
# Should we log error and debug messages to a file?
# By default there is no log file.
#file = "/var/log/lvm2.log"
# Should we overwrite the log file each time the program is run?
# By default we append.
overwrite = 0
# What level of log messages should we send to the log file and/or syslog?
# There are 6 syslog-like log levels currently in use - 2 to 7 inclusive.
# 7 is the most verbose (LOG_DEBUG).
level = 0
# Format of output messages
# Whether or not (1 or 0) to indent messages according to their severity
indent = 1
# Whether or not (1 or 0) to display the command name on each line output
command_names = 0
# A prefix to use before the message text (but after the command name,
# if selected). Default is two spaces, so you can see/grep the severity
# of each message.
prefix = " "
# To make the messages look similar to the original LVM tools use:
# indent = 0
# command_names = 1
# prefix = " -- "
# Set this if you want log messages during activation.
# Don't use this in low memory situations (can deadlock).
# activation = 0
}
# Configuration of metadata backups and archiving. In LVM2 when we
# talk about a 'backup' we mean making a copy of the metadata for the
# *current* system. The 'archive' contains old metadata configurations.
# Backups are stored in a human readeable text format.
backup {
# Should we maintain a backup of the current metadata configuration ?
# Use 1 for Yes; 0 for No.
# Think very hard before turning this off!
backup = 1
# Where shall we keep it ?
# Remember to back up this directory regularly!
backup_dir = "/etc/lvm/backup"
# Should we maintain an archive of old metadata configurations.
# Use 1 for Yes; 0 for No.
# On by default. Think very hard before turning this off.
archive = 1
# Where should archived files go ?
# Remember to back up this directory regularly!
archive_dir = "/etc/lvm/archive"
# What is the minimum number of archive files you wish to keep ?
retain_min = 10
# What is the minimum time you wish to keep an archive file for ?
retain_days = 30
}
# Settings for the running LVM2 in shell (readline) mode.
shell {
# Number of lines of history to store in ~/.lvm_history
history_size = 100
}
# Miscellaneous global LVM2 settings
global {
# The file creation mask for any files and directories created.
# Interpreted as octal if the first digit is zero.
umask = 077
# Allow other users to read the files
#umask = 022
# Enabling test mode means that no changes to the on disk metadata
# will be made. Equivalent to having the -t option on every
# command. Defaults to off.
test = 0
# Whether or not to communicate with the kernel device-mapper.
# Set to 0 if you want to use the tools to manipulate LVM metadata
# without activating any logical volumes.
# If the device-mapper kernel driver is not present in your kernel
# setting this to 0 should suppress the error messages.
activation = 1
# If we can't communicate with device-mapper, should we try running
# the LVM1 tools?
# This option only applies to 2.4 kernels and is provided to help you
# switch between device-mapper kernels and LVM1 kernels.
# The LVM1 tools need to be installed with .lvm1 suffices
# e.g. vgscan.lvm1 and they will stop working after you start using
# the new lvm2 on-disk metadata format.
# The default value is set when the tools are built.
# fallback_to_lvm1 = 0
# The default metadata format that commands should use - "lvm1" or "lvm2".
# The command line override is -M1 or -M2.
# Defaults to "lvm1" if compiled in, else "lvm2".
# format = "lvm1"
# Location of proc filesystem
proc = "/proc"
# Type of locking to use. Defaults to file-based locking (1).
# Turn locking off by setting to 0 (dangerous: risks metadata corruption
# if LVM2 commands get run concurrently).
locking_type = 1
# Local non-LV directory that holds file-based locks while commands are
# in progress. A directory like /tmp that may get wiped on reboot is OK.
locking_dir = "/var/lock/lvm"
# Other entries can go here to allow you to load shared libraries
# e.g. if support for LVM1 metadata was compiled as a shared library use
# format_libraries = "liblvm2format1.so"
# Full pathnames can be given.
# Search this directory first for shared libraries.
# library_dir = "/lib"
}
activation {
# Device used in place of missing stripes if activating incomplete volume.
# For now, you need to set this up yourself first (e.g. with 'dmsetup')
# For example, you could make it return I/O errors using the 'error'
# target or make it return zeros.
missing_stripe_filler = "/dev/ioerror"
# Size (in KB) of each copy operation when mirroring
mirror_region_size = 512
# How much stack (in KB) to reserve for use while devices suspended
reserved_stack = 256
# How much memory (in KB) to reserve for use while devices suspended
reserved_memory = 8192
# Nice value used while devices suspended
process_priority = -18
# If volume_list is defined, each LV is only activated if there is a
# match against the list.
# "vgname" and "vgname/lvname" are matched exactly.
# "@tag" matches any tag set in the LV or VG.
# "@*" matches if any tag defined on the host is also set in the LV or VG
#
# volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
udev_rules = 1
udev_sync = 1
}
####################
# Advanced section #
####################
# Metadata settings
#
# metadata {
# Default number of copies of metadata to hold on each PV. 0, 1 or 2.
# It's best to leave this at 2.
# You might want to override it from the command line with 0 or 1
# when running pvcreate on new PVs which are to be added to large VGs.
# pvmetadatacopies = 2
# Approximate default size of on-disk metadata areas in sectors.
# You should increase this if you have large volume groups or
# you want to retain a large on-disk history of your metadata changes.
# pvmetadatasize = 255
# List of directories holding live copies of text format metadata.
# These directories must not be on logical volumes!
# It's possible to use LVM2 with a couple of directories here,
# preferably on different (non-LV) filesystems, and with no other
# on-disk metadata (pvmetadatacopies = 0). Or this can be in
# addition to on-disk metadata areas.
# The feature was originally added to simplify testing and is not
# supported under low memory situations - the machine could lock up.
#
# Never edit any files in these directories by hand unless you
# you are absolutely sure you know what you are doing! Use
# the supplied toolset to make changes (e.g. vgcfgrestore).
# dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ]
#}
dmeventd {
# mirror_library is the library used when monitoring a mirror device.
#
# "libdevmapper-event-lvm2mirror.so" attempts to recover from
# failures. It removes failed devices from a volume group and
# reconfigures a mirror as necessary. If no mirror library is
# provided, mirrors are not monitored through dmeventd.
mirror_library = "libdevmapper-event-lvm2mirror.so.2.02"
# snapshot_library is the library used when monitoring a snapshot device.
#
# "libdevmapper-event-lvm2snapshot.so" monitors the filling of
# snapshots and emits a warning through syslog, when the use of
# snapshot exceedes 80%. The warning is repeated when 85%, 90% and
# 95% of the snapshot are filled.
snapshot_library = "libdevmapper-event-lvm2snapshot.so.2.02"
}
++++++ man_page_sectors.diff ++++++
Index: man/pvdisplay.8.in
===================================================================
--- man/pvdisplay.8.in.orig 2009-10-26 22:37:09.000000000 +0800
+++ man/pvdisplay.8.in 2010-02-04 11:00:40.000000000 +0800
@@ -51,7 +51,7 @@
* physical volume device name
* volume group name
-* physical volume size in kilobytes
+* physical volume size in sectors
* internal physical volume number (obsolete)
* physical volume status
* physical volume (not) allocatable
++++++ mkinitrd-devmapper-boot.sh ++++++
#!/bin/bash
#%stage: boot
#%depends: start
#%modules: $dm_modules
#%udevmodules: dm-mod dm-snapshot
#%programs: /sbin/dmsetup /sbin/blockdev
# dm-crypt dm-zero dm-mirror
#%if: -n "$root_dm"
#
##### Device Mapper
##
## If the root device uses device mapper, this initializes and waits for the control file
##
## Command line parameters
## -----------------------
##
## root_dm=1 use device mapper
##
load_modules
# because we run before udev we need to create the device node manually
mkdir -p /dev/mapper
if [ ! -c /dev/mapper/control ] ; then
mknod /dev/mapper/control c 10 63
fi
++++++ mkinitrd-devmapper-setup.sh ++++++
#!/bin/bash
#
#%stage: devicemapper
#%depends: dmroot
#
# no dmsetup -> no dm
if [ -x /sbin/dmsetup ]; then
dm_blockdev=
# if any device before was on dm we have to activate it
[ "$tmp_root_dm" ] && root_dm=1
blockdev="$(dm_resolvedeps_recursive $blockdev)"
[ "$?" = 0 ] && root_dm=1
# include dm when using dm based block devs
[ "$DM_BLOCK" ] && root_dm=1
# include modules
if [ -n "$root_dm" ] ; then
# Add all dm modules
dm_modules=
for table in $(dmsetup table | cut -f 4 -d ' ' | sort | uniq); do
if [ "$table" ] && [ "$table" != "linear" ] && [ "$table" != "striped" ] ; then
dm_modules="$dm_modules dm-$table"
fi
done
fi
# include dm block var from sysconfig
mkdir -p etc/sysconfig
grep DM_BLOCK /etc/sysconfig/kernel > etc/sysconfig/kernel
mkdir -p lib/udev/rules.d
cp /lib/udev/rules.d/10-dm.rules lib/udev/rules.d
cp /lib/udev/rules.d/13-dm-disk.rules lib/udev/rules.d
cp /lib/udev/rules.d/95-dm-notify.rules lib/udev/rules.d
save_var root_dm
fi
++++++ mkinitrd-lvm2-boot.sh ++++++
#!/bin/bash
#%stage: volumemanager
#%depends: evms
#%programs: /sbin/vgscan /sbin/vgchange /sbin/lvm
#%modules: linear
#%if: -n "$root_lvm2"
#
##### LVM (Logical Volume Management)
##
## This activates and waits for an LVM.
##
## Command line parameters
## -----------------------
##
## root_lvm2=1 use LVM
## root=/dev/mapper/... use this device as Volume Group
## vg_roots use this group as Volume Group
##
lvm2_get_vg() {
local param=$1
local vg_root vg_name
local sysdev
case $param in
/dev/disk/by-*/*)
vg_root=
;;
/dev/mapper/*)
vg_name=${o##root=/dev/mapper/}
vg_root=${vg_name%%-*}
;;
/dev/*)
set -- $(IFS=/ ; echo $param)
if [ "$#" = "3" ] ; then
# Check sysfs. If there are subdirectories
# matching this name it's a block device
for d in /sys/block/$2\!* ; do
if [ -d $d ] ; then
sysdev=$d
fi
done
# Not found in sysfs, looks like a VG then
if [ -z "$sysdev" ] ; then
vg_root=$2
fi
fi
;;
esac
echo $vg_root
}
# load the necessary module before we initialize the raid system
load_modules
if [ -n "$root_lvm2" ] ; then
o=$(get_param root)
# Fallback if 'root=' is not specified
[ -z "$o" ] && o=$rootdev
vg_root=$(lvm2_get_vg $o)
if [ "$vg_root" ] ; then
# We are waiting for a device-mapper device
root_major=$(sed -n 's/\(.*\) device-mapper/\1/p' /proc/devices)
fi
o=$(get_param resume)
vg_resume=$(lvm2_get_vg $o)
if [ "$vg_resume" ] ; then
resume_major=$(sed -n 's/\(.*\) device-mapper/\1/p' /proc/devices)
fi
fi
# initialize remebered and parameterized devices
for vgr in $vg_root $vg_resume $vg_roots; do
vgchange -a y $vgr
done
unset lvm2_get_vg
++++++ mkinitrd-lvm2-setup.sh ++++++
#!/bin/bash
#
#%stage: volumemanager
#%depends: evms
#
# get information about the current blockdev
update_blockdev
# Check whether we are using LVM2 (only available when not using EVMS)
if [ -z "$root_evms" ] && [ -x /sbin/lvdisplay ] ; then
lvm_blockdev=
for bd in $blockdev; do
update_blockdev $bd
vg_name=$(lvdisplay -c 2> /dev/null | sed -n "/.*:$blockmajor:$blockminor/p")
vg_dev=${vg_name%%:*}
vg_name=${vg_name#*:}
vg_root=${vg_name%%:*}
if [ "$vg_root" ] ; then
local vg_blockdev
root_lvm2=1
realrootdev=${vg_dev## }
vg_blockdev=$(vgs --noheadings --options pv_name $vg_root 2> /dev/null | sed "s@,@\n@g" | sed "s@([0-9]*)@@g;s@ @@g" | sort | uniq)
lvm_blockdev="$lvm_blockdev $vg_blockdev"
[ $? -eq 0 ] || return 1
vg_roots="$vg_roots $vg_root"
else
lvm_blockdev="$lvm_blockdev $bd"
fi
done
blockdev="$lvm_blockdev"
fi
if use_script lvm2; then
tmp_root_dm=1 # lvm needs dm
mkdir -p $tmp_mnt/etc/sysconfig
mkdir -p $tmp_mnt/etc/lvm
mkdir -p $tmp_mnt/var/lock/lvm
cp -a /etc/lvm/lvm.conf $tmp_mnt/etc/lvm/
cp -a /etc/sysconfig/lvm $tmp_mnt/etc/sysconfig/
# udev rule for lvm2
mkdir -p $tmp_mnt/lib/udev/rules.d
cp /lib/udev/rules.d/11-dm-lvm.rules $tmp_mnt/lib/udev/rules.d/
if [ -e /lib/udev/rules.d/64-lvm2.rules ]; then
cp /lib/udev/rules.d/64-lvm2.rules $tmp_mnt/lib/udev/rules.d/
fi
fi
save_var root_lvm2
save_var vg_roots
++++++ no-inc-audit.diff ++++++
Index: lib/device/dev-io.c
===================================================================
--- lib/device/dev-io.c.orig 2009-05-20 19:09:49.000000000 +0800
+++ lib/device/dev-io.c 2010-02-04 11:00:22.000000000 +0800
@@ -31,6 +31,7 @@
# define u64 uint64_t /* Missing without __KERNEL__ */
# undef WNOHANG /* Avoid redefinition */
# undef WUNTRACED /* Avoid redefinition */
+# define _LINUX_AUDIT_H_ /* Avoid inclusion */
# include <linux/fs.h> /* For block ioctl definitions */
# define BLKSIZE_SHIFT SECTOR_SHIFT
# ifndef BLKGETSIZE64 /* fs.h out-of-date */
Index: lib/filters/filter.c
===================================================================
--- lib/filters/filter.c.orig 2010-02-04 11:00:18.000000000 +0800
+++ lib/filters/filter.c 2010-02-04 11:00:22.000000000 +0800
@@ -14,6 +14,7 @@
*/
#include <sys/ioctl.h>
+#define _LINUX_AUDIT_H_
#include <linux/fs.h>
#undef MAJOR
#undef MINOR
++++++ no_buildroot_shared.diff ++++++
Index: tools/Makefile.in
===================================================================
--- tools/Makefile.in.orig 2011-02-15 14:57:28.000000000 +0800
+++ tools/Makefile.in 2011-02-15 14:57:32.000000000 +0800
@@ -109,7 +109,7 @@
EXPORTED_HEADER = $(srcdir)/lvm2cmd.h
EXPORTED_FN_PREFIX = lvm2
-DEFS += -DLVM_SHARED_PATH=\"$(exec_prefix)/sbin/lvm\"
+DEFS += -DLVM_SHARED_PATH=\"/sbin/lvm\"
CFLOW_LIST = lvmcmdlib.c lvm2cmd.c
CFLOW_LIST_TARGET = liblvm2cmd.cflow
++++++ pipe_buff-definition.diff ++++++
Index: daemons/clvmd/clvmd.c
===================================================================
--- daemons/clvmd/clvmd.c.orig
+++ daemons/clvmd/clvmd.c
@@ -65,6 +65,8 @@
#define ISLOCAL_CSID(c) (memcmp(c, our_csid, max_csid_len) == 0)
+#include <linux/limits.h>
+
/* Head of the fd list. Also contains
the cluster_socket details */
static struct local_client local_client_head;
++++++ sleep-try-open-count.diff ++++++
Index: LVM2.2.02.67/libdm/libdm-deptree.c
===================================================================
--- LVM2.2.02.67.orig/libdm/libdm-deptree.c
+++ LVM2.2.02.67/libdm/libdm-deptree.c
@@ -1143,6 +1143,19 @@ static int _dm_tree_deactivate_children(
(child->presuspend_node &&
!_node_has_closed_parents(child->presuspend_node,
uuid_prefix, uuid_prefix_len))) {
+
+ int idx = 10;
+ while (info.open_count && idx--) {
+ struct timespec ts = {0, 500000000};
+ nanosleep(&ts, NULL);
+ _info_by_dev(dinfo->major, dinfo->minor, 1, &info);
+ }
+
+ if (info.open_count) {
+ log_error("give up on open_count");
+ continue;
+ }
+
/* Only report error from (likely non-internal) dependency at top level */
if (!level) {
log_error("Unable to deactivate open %s (%" PRIu32
++++++ support-drbd-filter.diff ++++++
This is still very primitive support of drbd in lvm2.
Can we use some /sys information for this ?
Index: LVM2.2.02.58/lib/cache/lvmcache.c
================================================================================
--- LVM2.2.02.58/lib/cache/lvmcache.c
+++ LVM2.2.02.58/lib/cache/lvmcache.c
@@ -1222,6 +1222,14 @@
dev_subsystem_name(existing->dev),
dev_name(existing->dev));
return NULL;
+ } else if (MAJOR(existing->dev->dev) == drbd_major() &&
+ MAJOR(dev->dev) != drbd_major()) {
+ log_very_verbose("Ignoring duplicate PV %s on "
+ "%s - using drbd %s",
+ pvid, dev_name(dev),
+ dev_name(existing->dev));
+ return NULL;
+
} else if (dm_is_dm_major(MAJOR(existing->dev->dev)) &&
!dm_is_dm_major(MAJOR(dev->dev))) {
log_very_verbose("Ignoring duplicate PV %s on "
@@ -1242,6 +1250,12 @@
"using dm %s", pvid,
dev_name(existing->dev),
dev_name(dev));
+ else if (MAJOR(existing->dev->dev) != drbd_major() &&
+ MAJOR(dev->dev) == drbd_major())
+ log_very_verbose("Duplicate PV %s on %s - "
+ "using drbd %s", pvid,
+ dev_name(existing->dev),
+ dev_name(dev));
/* FIXME If both dm, check dependencies */
//else if (dm_is_dm_major(MAJOR(existing->dev->dev)) &&
//dm_is_dm_major(MAJOR(dev->dev)))
--- LVM2.2.02.58/lib/filters/filter.c
+++ LVM2.2.02.58/lib/filters/filter.c
@@ -54,6 +54,13 @@
return _md_major;
}
+/* FIXME: Should we consider filter out non-primary
+ drbd resource ?? */
+int drbd_major(void)
+{
+ return _drbd_major;
+}
+
int blkext_major(void)
{
return _blkext_major;
++++++ sys_mount_instead_linux_fs.diff ++++++
Index: lib/device/dev-io.c
===================================================================
--- lib/device/dev-io.c.orig 2009-04-27 16:15:42.000000000 +0800
+++ lib/device/dev-io.c 2009-04-27 16:15:49.000000000 +0800
@@ -32,7 +32,7 @@
# undef WNOHANG /* Avoid redefinition */
# undef WUNTRACED /* Avoid redefinition */
# define _LINUX_AUDIT_H_ /* Avoid inclusion */
-# include <linux/fs.h> /* For block ioctl definitions */
+# include <sys/mount.h> /* For block ioctl definitions */
# define BLKSIZE_SHIFT SECTOR_SHIFT
# ifndef BLKGETSIZE64 /* fs.h out-of-date */
# define BLKGETSIZE64 _IOR(0x12, 114, size_t)
Index: lib/filters/filter.c
===================================================================
--- lib/filters/filter.c.orig 2009-04-27 16:15:42.000000000 +0800
+++ lib/filters/filter.c 2009-04-27 16:15:49.000000000 +0800
@@ -15,7 +15,7 @@
#include <sys/ioctl.h>
#define _LINUX_AUDIT_H_
-#include <linux/fs.h>
+#include <sys/mount.h>
#undef MAJOR
#undef MINOR
#undef MKDEV
++++++ sysconfig.lvm ++++++
## Path: System/File systems/LVM
## Description: LVM configuration
## Type: string
## Default: ""
#
# This variable allows to only activate the LVM volume groups listed at
# bootup. If it is empty, all LVM volume groups are activated at bootup.
# This variable needs setting only under very special circumstances.
# For almost all standard LVM installations it can safely stay empty.
#
LVM_VGS_ACTIVATED_ON_BOOT=""
++++++ udev-rules_update.diff ++++++
Index: LVM2.2.02.84/udev/10-dm.rules.in
===================================================================
--- LVM2.2.02.84.orig/udev/10-dm.rules.in 2011-01-28 19:41:52.000000000 +0800
+++ LVM2.2.02.84/udev/10-dm.rules.in 2011-02-15 14:50:19.000000000 +0800
@@ -94,6 +94,10 @@
TEST!="dm", IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o name,uuid,suspended"
ENV{DM_SUSPENDED}!="?*", IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o suspended"
+# dmsetup export is a SUSE extension to dmsetup
+# it is required by some other udev rules in SUSE distro.
+IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup export -j %M -m %m"
+
# dmsetup tool provides suspended state information in textual
# form with values "Suspended"/"Active". We translate it to
# 0/1 respectively to be consistent with sysfs values.
Index: LVM2.2.02.84/udev/13-dm-disk.rules
===================================================================
--- LVM2.2.02.84.orig/udev/13-dm-disk.rules 2009-11-13 20:33:27.000000000 +0800
+++ LVM2.2.02.84/udev/13-dm-disk.rules 2011-02-15 14:51:31.000000000 +0800
@@ -14,13 +14,16 @@
ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="dm_end"
ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="dm_end"
-SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}"
-ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}"
+SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}", OPTIONS+="string_escape=replace"
+ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}", OPTIONS+="string_escape=replace"
ENV{DM_SUSPENDED}=="1", GOTO="dm_end"
+ENV{DM_TARGET_TYPES}=="|*error*", GOTO="dm_end"
IMPORT{program}="$env{DM_SBIN_PATH}/blkid -o udev -p $tempnode"
-ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS="link_priority=-100"
+ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS+="link_priority=-100"
+OPTIONS+="watch"
+ENV{DM_TARGET_TYPES}=="*snapshot-origin*", OPTIONS+="link_priority=-90"
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xen for openSUSE:12.2:Update checked in at 2012-08-02 18:27:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/xen (Old)
and /work/SRC/openSUSE:12.2:Update/.xen.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen", Maintainer is "CARNOLD(a)suse.com"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_link
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
<link package='xen.717' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
02 Aug '12
Hello community,
here is the log from the commit of package preinstallimage-texlive-basics for openSUSE:Factory checked in at 2012-08-02 15:34:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/preinstallimage-texlive-basics (Old)
and /work/SRC/openSUSE:Factory/.preinstallimage-texlive-basics.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "preinstallimage-texlive-basics", Maintainer is ""
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _preinstallimage ++++++
--- /var/tmp/diff_new_pack.zMKjRs/_old 2012-08-02 15:34:41.000000000 +0200
+++ /var/tmp/diff_new_pack.zMKjRs/_new 2012-08-02 15:34:41.000000000 +0200
@@ -1,3 +1,3 @@
-Name: libqt4
-BuildRequires: libqt4-devel
+Name: preinstall-latex
+BuildRequires: texlive-latex
#!BuildIgnore: brp-trim-desktopfiles
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package kernel-firmware for openSUSE:12.1:Update checked in at 2012-08-02 11:38:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update/kernel-firmware (Old)
and /work/SRC/openSUSE:12.1:Update/.kernel-firmware.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-firmware", Maintainer is "MMarek(a)suse.com"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.Gn01rJ/_old 2012-08-02 11:38:44.000000000 +0200
+++ /var/tmp/diff_new_pack.Gn01rJ/_new 2012-08-02 11:38:44.000000000 +0200
@@ -1 +1 @@
-<link package='kernel-firmware.532' cicount='copy' />
+<link package='kernel-firmware.706' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libpng14 for openSUSE:12.1:Update checked in at 2012-08-01 17:16:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update/libpng14 (Old)
and /work/SRC/openSUSE:12.1:Update/.libpng14.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libpng14", Maintainer is ""
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.2GA8X3/_old 2012-08-01 17:16:12.000000000 +0200
+++ /var/tmp/diff_new_pack.2GA8X3/_new 2012-08-01 17:16:12.000000000 +0200
@@ -1 +1 @@
-<link package='libpng14.428' cicount='copy' />
+<link package='libpng14.697' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0