openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- 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
June 2014
- 1 participants
- 1147 discussions
Hello community,
here is the log from the commit of package i2c-tools for openSUSE:Factory checked in at 2014-06-26 08:00:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/i2c-tools (Old)
and /work/SRC/openSUSE:Factory/.i2c-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "i2c-tools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/i2c-tools/i2c-tools.changes 2014-02-24 06:52:06.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.i2c-tools.new/i2c-tools.changes 2014-06-26 08:00:24.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Jun 19 07:40:41 UTC 2014 - jdelvare(a)suse.com
+
+- i2c-tools-r6250-ddr3-fix-ext-temp-refresh.diff: Fix DDR3 extended
+ temp range refresh rate decoding.
+
+-------------------------------------------------------------------
New:
----
i2c-tools-r6250-ddr3-fix-ext-temp-refresh.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ i2c-tools.spec ++++++
--- /var/tmp/diff_new_pack.esQM3D/_old 2014-06-26 08:00:25.000000000 +0200
+++ /var/tmp/diff_new_pack.esQM3D/_new 2014-06-26 08:00:25.000000000 +0200
@@ -27,6 +27,7 @@
Recommends: modules
Source0: http://dl.lm-sensors.org/%{name}/releases/%{name}-%{version}.tar.bz2
Source1: http://dl.lm-sensors.org/%{name}/releases/%{name}-%{version}.tar.bz2.sig
+Patch0: i2c-tools-r6250-ddr3-fix-ext-temp-refresh.diff
Patch90: i2c-tools-hackweek-9-dependencies.diff
Patch91: i2c-tools-hackweek-9-improve-DDR3-support.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -48,6 +49,7 @@
%prep
%setup -q
+%patch0 -p1
%patch90 -p1
%patch91 -p1
++++++ i2c-tools-r6250-ddr3-fix-ext-temp-refresh.diff ++++++
Subject: decode-dimms: Fix DDR3 extended temp range refresh rate decoding
Upstream: yes (r6250)
Based on a patch from Peter Missel. The meaning of byte 31, bit 1,
was inverted. Also, this bit is only meaningful if the extended
temperature range is supported (bit 0 is set.)
--- i2c-tools-3.1/eeprom/decode-dimms (revision 6231)
+++ i2c-tools-3.1/eeprom/decode-dimms (revision 6250)
@@ -1289,8 +1289,9 @@
printl("DLL-Off Mode supported?", ($bytes->[30] & 128) ? "Yes" : "No");
printl("Operating temperature range", sprintf "0-%d degrees C",
($bytes->[31] & 1) ? 95 : 85);
- printl("Refresh Rate in extended temp range",
- ($bytes->[31] & 2) ? "2X" : "1X");
+ printl_cond($bytes->[31] & 1,
+ "Refresh Rate in extended temp range",
+ ($bytes->[31] & 2) ? "1X" : "2X");
printl("Auto Self-Refresh?", ($bytes->[31] & 4) ? "Yes" : "No");
printl("On-Die Thermal Sensor readout?",
($bytes->[31] & 8) ? "Yes" : "No");
--
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 libgadu for openSUSE:Factory checked in at 2014-06-26 08:00:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgadu (Old)
and /work/SRC/openSUSE:Factory/.libgadu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgadu"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgadu/libgadu.changes 2014-05-27 07:09:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libgadu.new/libgadu.changes 2014-06-26 08:00:22.000000000 +0200
@@ -1,0 +2,15 @@
+Tue Jun 17 23:14:00 UTC 2014 - twasilczyk(a)pidgin.im
+
+- Update to version 1.12.0:
+ + supports GG11 protocol
+ + important SSL-related API improvements
+ + OpenSSL is disabled by default
+ + pthread is a default hostname resolving method now
+ + stability improvements
+- Updated dependencies
+ + libgsm and speex are not used at all
+ + libexpat, libcurl and libxml are used only for automatic tests
+ + libprotobuf-c is an optional dependency
+- Removed unnecessary --with-pthread switch (it's default now)
+
+-------------------------------------------------------------------
Old:
----
libgadu-1.11.4.tar.gz
New:
----
libgadu-1.12.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgadu.spec ++++++
--- /var/tmp/diff_new_pack.jaCqZN/_old 2014-06-26 08:00:24.000000000 +0200
+++ /var/tmp/diff_new_pack.jaCqZN/_new 2014-06-26 08:00:24.000000000 +0200
@@ -19,21 +19,20 @@
%define soname 3
Name: libgadu
-Version: 1.11.4
+Version: 1.12.0
Release: 0
Summary: Library for Handling of Gadu-Gadu Instant Messaging
License: LGPL-2.1+
Group: System/Libraries
Url: http://toxygen.net/libgadu/
Source: http://github.com/wojtekka/%{name}/releases/download/%{version}/%{name}-%{v…
+BuildRequires: ca-certificates
BuildRequires: doxygen
-BuildRequires: libexpat-devel
-BuildRequires: libgsm-devel
BuildRequires: pkg-config
BuildRequires: pkgconfig(gnutls)
-BuildRequires: pkgconfig(libcurl)
-BuildRequires: pkgconfig(libxml-2.0)
-BuildRequires: pkgconfig(speex)
+BuildRequires: pkgconfig(libprotobuf-c)
+# these packages are necessary for tests, but not necessary for a library:
+# libexpat-devel, pkgconfig(libcurl), pkgconfig(libxml-2.0)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -66,8 +65,7 @@
%build
%configure \
- --disable-static \
- --with-pthread
+ --disable-static
make %{?_smp_mflags}
%install
++++++ libgadu-1.11.4.tar.gz -> libgadu-1.12.0.tar.gz ++++++
++++ 54259 lines of diff (skipped)
--
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 valgrind for openSUSE:Factory checked in at 2014-06-26 08:00:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/valgrind (Old)
and /work/SRC/openSUSE:Factory/.valgrind.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "valgrind"
Changes:
--------
--- /work/SRC/openSUSE:Factory/valgrind/valgrind.changes 2014-05-22 09:04:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.valgrind.new/valgrind.changes 2014-06-26 08:00:18.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Jun 18 15:08:53 UTC 2014 - dmueller(a)suse.com
+
+- add VEX-r2858.diff, valgrind-r13948.diff for (bnc#883157)
+
+-------------------------------------------------------------------
New:
----
VEX-r2858.diff
valgrind-r13948.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ valgrind.spec ++++++
--- /var/tmp/diff_new_pack.HE1qUc/_old 2014-06-26 08:00:20.000000000 +0200
+++ /var/tmp/diff_new_pack.HE1qUc/_new 2014-06-26 08:00:20.000000000 +0200
@@ -46,6 +46,8 @@
Patch6: r2798.diff
Patch7: aarch64-support.diff
Patch8: aarch64-VEX-support.diff
+Patch9: VEX-r2858.diff
+Patch10: valgrind-r13948.diff
# during building the major version of glibc is built into the suppression file
%define glibc_main_version %(getconf GNU_LIBC_VERSION | cut -d' ' -f2 | cut -d. -f1)
%define glibc_major_version %(getconf GNU_LIBC_VERSION | cut -d' ' -f2 | cut -d. -f2)
@@ -144,6 +146,7 @@
%ifarch aarch64
%patch8
%endif
+%patch9
cd ..
%patch1
%ifnarch aarch64
@@ -155,6 +158,7 @@
%else
%patch7
%endif
+%patch10
%build
%ifarch %arm
++++++ VEX-r2858.diff ++++++
------------------------------------------------------------------------
r2858 | mjw | 2014-05-09 13:41:06 +0200 (Fr, 09 Mai 2014) | 6 lines
Recognize MPX instructions and bnd prefix. Bug #333666.
Recognize and parse operands of new MPX instructions BNDMK, BNDCL,
BNDCU, BNDCN, BNDMOV, BNDLDX and BNDSTX. Also recognize bnd (F2) prefix
for CALL (E8,FF/2), RET (C2,C3), JMP (EB,E9,FF/4) and Jcc (70-7F,0F 80-8F).
All new MPX instructions are currently NOPs and the bnd prefix is ignored.
------------------------------------------------------------------------
Index: priv/guest_amd64_toIR.c
===================================================================
--- priv/guest_amd64_toIR.c (revision 2857)
+++ priv/guest_amd64_toIR.c (revision 2858)
@@ -767,10 +767,10 @@ static Bool have66orF2orF3 ( Prefix pfx
return toBool( ! haveNo66noF2noF3(pfx) );
}
-/* Return True iff pfx has 66 or F2 set */
-static Bool have66orF2 ( Prefix pfx )
+/* Return True iff pfx has 66 or F3 set */
+static Bool have66orF3 ( Prefix pfx )
{
- return toBool((pfx & (PFX_66|PFX_F2)) > 0);
+ return toBool((pfx & (PFX_66|PFX_F3)) > 0);
}
/* Clear all the segment-override bits in a prefix. */
@@ -4266,8 +4266,12 @@ ULong dis_Grp5 ( VexAbiInfo* vbi,
modrm = getUChar(delta);
if (epartIsReg(modrm)) {
- /* F2/XACQ and F3/XREL are always invalid in the non-mem case. */
- if (haveF2orF3(pfx)) goto unhandledR;
+ /* F2/XACQ and F3/XREL are always invalid in the non-mem case.
+ F2/CALL and F2/JMP may have bnd prefix. */
+ if (haveF2orF3(pfx)
+ && ! (haveF2(pfx)
+ && (gregLO3ofRM(modrm) == 2 || gregLO3ofRM(modrm) == 4)))
+ goto unhandledR;
assign(t1, getIRegE(sz,pfx,modrm));
switch (gregLO3ofRM(modrm)) {
case 0: /* INC */
@@ -4287,6 +4291,7 @@ ULong dis_Grp5 ( VexAbiInfo* vbi,
case 2: /* call Ev */
/* Ignore any sz value and operate as if sz==8. */
if (!(sz == 4 || sz == 8)) goto unhandledR;
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
sz = 8;
t3 = newTemp(Ity_I64);
assign(t3, getIRegE(sz,pfx,modrm));
@@ -4302,6 +4307,7 @@ ULong dis_Grp5 ( VexAbiInfo* vbi,
case 4: /* jmp Ev */
/* Ignore any sz value and operate as if sz==8. */
if (!(sz == 4 || sz == 8)) goto unhandledR;
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
sz = 8;
t3 = newTemp(Ity_I64);
assign(t3, getIRegE(sz,pfx,modrm));
@@ -4334,11 +4340,14 @@ ULong dis_Grp5 ( VexAbiInfo* vbi,
showSz ? nameISize(sz) : ' ',
nameIRegE(sz, pfx, modrm));
} else {
- /* Decide if F2/XACQ or F3/XREL might be valid. */
+ /* Decide if F2/XACQ, F3/XREL, F2/CALL or F2/JMP might be valid. */
Bool validF2orF3 = haveF2orF3(pfx) ? False : True;
if ((gregLO3ofRM(modrm) == 0/*INC*/ || gregLO3ofRM(modrm) == 1/*DEC*/)
&& haveF2orF3(pfx) && !haveF2andF3(pfx) && haveLOCK(pfx)) {
validF2orF3 = True;
+ } else if ((gregLO3ofRM(modrm) == 2 || gregLO3ofRM(modrm) == 4)
+ && (haveF2(pfx) && !haveF3(pfx))) {
+ validF2orF3 = True;
}
if (!validF2orF3) goto unhandledM;
/* */
@@ -4375,6 +4384,7 @@ ULong dis_Grp5 ( VexAbiInfo* vbi,
case 2: /* call Ev */
/* Ignore any sz value and operate as if sz==8. */
if (!(sz == 4 || sz == 8)) goto unhandledM;
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
sz = 8;
t3 = newTemp(Ity_I64);
assign(t3, loadLE(Ity_I64,mkexpr(addr)));
@@ -4390,6 +4400,7 @@ ULong dis_Grp5 ( VexAbiInfo* vbi,
case 4: /* JMP Ev */
/* Ignore any sz value and operate as if sz==8. */
if (!(sz == 4 || sz == 8)) goto unhandledM;
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
sz = 8;
t3 = newTemp(Ity_I64);
assign(t3, loadLE(Ity_I64,mkexpr(addr)));
@@ -19716,7 +19727,8 @@ Long dis_ESC_NONE (
case 0x7F: { /* JGb/JNLEb (jump greater) */
Long jmpDelta;
const HChar* comment = "";
- if (haveF2orF3(pfx)) goto decode_failure;
+ if (haveF3(pfx)) goto decode_failure;
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
jmpDelta = getSDisp8(delta);
vassert(-128 <= jmpDelta && jmpDelta < 128);
d64 = (guest_RIP_bbstart+delta+1) + jmpDelta;
@@ -20369,7 +20381,8 @@ Long dis_ESC_NONE (
}
case 0xC2: /* RET imm16 */
- if (have66orF2orF3(pfx)) goto decode_failure;
+ if (have66orF3(pfx)) goto decode_failure;
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
d64 = getUDisp16(delta);
delta += 2;
dis_ret(dres, vbi, d64);
@@ -20377,8 +20390,9 @@ Long dis_ESC_NONE (
return delta;
case 0xC3: /* RET */
- if (have66orF2(pfx)) goto decode_failure;
+ if (have66(pfx)) goto decode_failure;
/* F3 is acceptable on AMD. */
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
dis_ret(dres, vbi, 0);
DIP(haveF3(pfx) ? "rep ; ret\n" : "ret\n");
return delta;
@@ -20782,7 +20796,8 @@ Long dis_ESC_NONE (
}
case 0xE8: /* CALL J4 */
- if (haveF2orF3(pfx)) goto decode_failure;
+ if (haveF3(pfx)) goto decode_failure;
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
d64 = getSDisp32(delta); delta += 4;
d64 += (guest_RIP_bbstart+delta);
/* (guest_RIP_bbstart+delta) == return-to addr, d64 == call-to addr */
@@ -20805,9 +20820,10 @@ Long dis_ESC_NONE (
return delta;
case 0xE9: /* Jv (jump, 16/32 offset) */
- if (haveF2orF3(pfx)) goto decode_failure;
+ if (haveF3(pfx)) goto decode_failure;
if (sz != 4)
goto decode_failure; /* JRS added 2004 July 11 */
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
d64 = (guest_RIP_bbstart+delta+sz) + getSDisp(sz,delta);
delta += sz;
if (resteerOkFn(callback_opaque,d64)) {
@@ -20821,9 +20837,10 @@ Long dis_ESC_NONE (
return delta;
case 0xEB: /* Jb (jump, byte offset) */
- if (haveF2orF3(pfx)) goto decode_failure;
+ if (haveF3(pfx)) goto decode_failure;
if (sz != 4)
goto decode_failure; /* JRS added 2004 July 11 */
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
d64 = (guest_RIP_bbstart+delta+1) + getSDisp8(delta);
delta++;
if (resteerOkFn(callback_opaque,d64)) {
@@ -21241,7 +21258,8 @@ Long dis_ESC_0F (
case 0x8F: { /* JGb/JNLEb (jump greater) */
Long jmpDelta;
const HChar* comment = "";
- if (haveF2orF3(pfx)) goto decode_failure;
+ if (haveF3(pfx)) goto decode_failure;
+ if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
jmpDelta = getSDisp32(delta);
d64 = (guest_RIP_bbstart+delta+4) + jmpDelta;
delta += 4;
@@ -21332,6 +21350,66 @@ Long dis_ESC_0F (
}
return delta;
+ case 0x1A:
+ case 0x1B: { /* Future MPX instructions, currently NOPs.
+ BNDMK b, m F3 0F 1B
+ BNDCL b, r/m F3 0F 1A
+ BNDCU b, r/m F2 0F 1A
+ BNDCN b, r/m F2 0F 1B
+ BNDMOV b, b/m 66 0F 1A
+ BNDMOV b/m, b 66 0F 1B
+ BNDLDX b, mib 0F 1A
+ BNDSTX mib, b 0F 1B */
+
+ /* All instructions have two operands. One operand is always the
+ bnd register number (bnd0-bnd3, other register numbers are
+ ignored when MPX isn't enabled, but should generate an
+ exception if MPX is enabled) given by gregOfRexRM. The other
+ operand is either a ModRM:reg, ModRM:r/m or a SIB encoded
+ address, all of which can be decoded by using either
+ eregOfRexRM or disAMode. */
+
+ modrm = getUChar(delta);
+ int bnd = gregOfRexRM(pfx,modrm);
+ const HChar *oper;
+ if (epartIsReg(modrm)) {
+ oper = nameIReg64 (eregOfRexRM(pfx,modrm));
+ delta += 1;
+ } else {
+ addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
+ delta += alen;
+ oper = dis_buf;
+ }
+
+ if (haveF3no66noF2 (pfx)) {
+ if (opc == 0x1B) {
+ DIP ("bndmk %s, %%bnd%d\n", oper, bnd);
+ } else /* opc == 0x1A */ {
+ DIP ("bndcl %s, %%bnd%d\n", oper, bnd);
+ }
+ } else if (haveF2no66noF3 (pfx)) {
+ if (opc == 0x1A) {
+ DIP ("bndcu %s, %%bnd%d\n", oper, bnd);
+ } else /* opc == 0x1B */ {
+ DIP ("bndcn %s, %%bnd%d\n", oper, bnd);
+ }
+ } else if (have66noF2noF3 (pfx)) {
+ if (opc == 0x1A) {
+ DIP ("bndmov %s, %%bnd%d\n", oper, bnd);
+ } else /* opc == 0x1B */ {
+ DIP ("bndmov %%bnd%d, %s\n", bnd, oper);
+ }
+ } else if (haveNo66noF2noF3 (pfx)) {
+ if (opc == 0x1A) {
+ DIP ("bndldx %s, %%bnd%d\n", oper, bnd);
+ } else /* opc == 0x1B */ {
+ DIP ("bndstx %%bnd%d, %s\n", bnd, oper);
+ }
+ } else goto decode_failure;
+
+ return delta;
+ }
+
case 0xA2: { /* CPUID */
/* Uses dirty helper:
void amd64g_dirtyhelper_CPUID ( VexGuestAMD64State* )
++++++ valgrind-r13948.diff ++++++
------------------------------------------------------------------------
r13948 | mjw | 2014-05-09 13:41:46 +0200 (Fr, 09 Mai 2014) | 1 line
Add test for MPX instructions and bnd prefix. Bug #333666.
------------------------------------------------------------------------
Index: none/tests/amd64/mpx.stderr.exp
===================================================================
Index: none/tests/amd64/mpx.c
===================================================================
--- none/tests/amd64/mpx.c (revision 0)
+++ none/tests/amd64/mpx.c (revision 13948)
@@ -0,0 +1,38 @@
+int
+main (int argc, char **argv)
+{
+ // Since MPX is disabled all these are just NOPS.
+ // Some of these instructions are just random.
+ // Once the GCC support is merged creating real test cases will be easier.
+ // http://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
+
+ // This is what ld.so does in _dl_runtime_resolve to save the bnds.
+ asm ("bndmov %bnd0, (%rsp)");
+ asm ("bndmov %bnd1, 16(%rsp)");
+ asm ("bndmov %bnd2, 32(%rsp)");
+ asm ("bndmov %bnd3, 48(%rsp)");
+
+ // Create a bnd, check lower and upper...
+ asm ("bndmk (%rax,%rdx), %bnd0");
+ asm ("bndcl (%rax,%rdi,4), %bnd0");
+ asm ("bndcu 3(%rax,%rdi,4), %bnd0");
+ asm ("bndcn 3(%rax,%rdi,4), %bnd0");
+
+ // Load bnd pointer and update...
+ asm ("bndldx 3(%rbx,%rdx), %bnd2");
+ asm ("bndstx %bnd2, 3(,%r12,1)");
+
+ // "bnd" prefixed call, return and jmp...
+ asm ("bnd call foo\n\
+ bnd jmp end\n\
+ foo: bnd ret\n\
+ end: nop");
+
+ // And set the bnds back...
+ asm ("bndmov 48(%rsp), %bnd3");
+ asm ("bndmov 32(%rsp), %bnd2");
+ asm ("bndmov 16(%rsp), %bnd1");
+ asm ("bndmov (%rsp), %bnd0");
+
+ return 0;
+}
Index: none/tests/amd64/mpx.stdout.exp
===================================================================
Index: none/tests/amd64/mpx.vgtest
===================================================================
--- none/tests/amd64/mpx.vgtest (revision 0)
+++ none/tests/amd64/mpx.vgtest (revision 13948)
@@ -0,0 +1,3 @@
+prog: mpx
+prereq: test -x mpx
+vgopts: -q
Index: none/tests/amd64/Makefile.am
===================================================================
--- none/tests/amd64/Makefile.am (revision 13947)
+++ none/tests/amd64/Makefile.am (revision 13948)
@@ -56,6 +56,7 @@ EXTRA_DIST = \
loopnel.stderr.exp loopnel.stdout.exp loopnel.vgtest \
lzcnt64.stderr.exp lzcnt64.stdout.exp lzcnt64.vgtest \
movbe.stderr.exp movbe.stdout.exp movbe.vgtest \
+ mpx.stderr.exp mpx.stdout.exp mpx.vgtest \
nan80and64.stderr.exp nan80and64.stdout.exp nan80and64.vgtest \
nibz_bennee_mmap.stderr.exp nibz_bennee_mmap.stdout.exp \
nibz_bennee_mmap.vgtest \
@@ -133,6 +134,10 @@ endif
if BUILD_MOVBE_TESTS
check_PROGRAMS += movbe
endif
+if BUILD_MPX_TESTS
+ check_PROGRAMS += mpx
+endif
+
# DDD: these need to be made to work on Darwin like the x86/ ones were.
if ! VGCONF_OS_IS_DARWIN
Index: configure.ac
===================================================================
--- configure.ac (revision 13947)
+++ configure.ac (revision 13948)
@@ -2322,6 +2322,27 @@ AC_MSG_RESULT([no])
AM_CONDITIONAL(BUILD_FMA_TESTS, test x$ac_have_as_fma = xyes)
+# does the amd64 assembler understand MPX instructions?
+# Note, this doesn't generate a C-level symbol. It generates a
+# automake-level symbol (BUILD_MPX_TESTS), used in test Makefile.am's
+AC_MSG_CHECKING([if amd64 assembler knows the MPX instructions])
+
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
+ asm ("bndmov %bnd0,(%rsp)")
+]])], [
+ac_have_as_mpx=yes
+AC_MSG_RESULT([yes])
+], [
+ac_have_as_mpx=no
+AC_MSG_RESULT([no])
+])
+
+AM_CONDITIONAL(BUILD_MPX_TESTS, test x$ac_have_as_mpx = xyes)
+
+
+# Does the C compiler support the "ifunc" attribute
+# Note, this doesn't generate a C-level symbol. It generates a
+# automake-level symbol (BUILD_IFUNC_TESTS), used in test Makefile.am's
# does the x86/amd64 assembler understand MOVBE?
# Note, this doesn't generate a C-level symbol. It generates a
# automake-level symbol (BUILD_MOVBE_TESTS), used in test Makefile.am's
--
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 yast2-vm for openSUSE:Factory checked in at 2014-06-26 08:00:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-vm (Old)
and /work/SRC/openSUSE:Factory/.yast2-vm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-vm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-vm/yast2-vm.changes 2014-06-02 07:02:55.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-vm.new/yast2-vm.changes 2014-06-26 08:00:17.000000000 +0200
@@ -1,0 +2,9 @@
+Wed Jun 18 08:29:15 MDT 2014 - carnold(a)suse.com
+
+- Include enable and start of libvirtd service for s390x
+- Remove installing the pm-utils package. It is no longer needed
+- Restart apparmor before starting libvirtd. Otherwise libvirtd
+ runs unenforced at the first start.
+- 3.1.13
+
+-------------------------------------------------------------------
Old:
----
yast2-vm-3.1.12.tar.bz2
New:
----
yast2-vm-3.1.13.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-vm.spec ++++++
--- /var/tmp/diff_new_pack.YpP7YR/_old 2014-06-26 08:00:18.000000000 +0200
+++ /var/tmp/diff_new_pack.YpP7YR/_new 2014-06-26 08:00:18.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-vm
-Version: 3.1.12
+Version: 3.1.13
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-vm-3.1.12.tar.bz2 -> yast2-vm-3.1.13.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-vm-3.1.12/package/yast2-vm.changes new/yast2-vm-3.1.13/package/yast2-vm.changes
--- old/yast2-vm-3.1.12/package/yast2-vm.changes 2014-05-28 18:37:46.000000000 +0200
+++ new/yast2-vm-3.1.13/package/yast2-vm.changes 2014-06-18 16:47:50.000000000 +0200
@@ -1,4 +1,13 @@
-------------------------------------------------------------------
+Wed Jun 18 08:29:15 MDT 2014 - carnold(a)suse.com
+
+- Include enable and start of libvirtd service for s390x
+- Remove installing the pm-utils package. It is no longer needed
+- Restart apparmor before starting libvirtd. Otherwise libvirtd
+ runs unenforced at the first start.
+- 3.1.13
+
+-------------------------------------------------------------------
Wed May 28 10:30:33 MDT 2014 - carnold(a)suse.com
- bnc#877715 - SLES12_LOC : ALL_LANGS:the dialog Untranslated text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-vm-3.1.12/package/yast2-vm.spec new/yast2-vm-3.1.13/package/yast2-vm.spec
--- old/yast2-vm-3.1.12/package/yast2-vm.spec 2014-05-28 18:37:46.000000000 +0200
+++ new/yast2-vm-3.1.13/package/yast2-vm.spec 2014-06-18 16:47:50.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-vm
-Version: 3.1.12
+Version: 3.1.13
Release: 0
Group: System/YaST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-vm-3.1.12/src/modules/VM_XEN.rb new/yast2-vm-3.1.13/src/modules/VM_XEN.rb
--- old/yast2-vm-3.1.12/src/modules/VM_XEN.rb 2014-05-28 18:37:46.000000000 +0200
+++ new/yast2-vm-3.1.13/src/modules/VM_XEN.rb 2014-06-18 16:47:50.000000000 +0200
@@ -139,6 +139,14 @@
isPAE
end
+ def reloadApparmor
+ if Package.InstalledAll(["apparmor"])
+ cmd = "systemctl restart apparmor.service"
+ Builtins.y2milestone("Restart apparmor.service: %1", cmd)
+ SCR.Execute(path(".target.bash"), cmd)
+ end
+ end
+
def isX86_64
ret = true
@@ -367,7 +375,7 @@
packages = packages + ["xen-tools", "xen-libs", "libvirt-daemon-xen", "tigervnc"] if install_xen_tools
packages = packages + ["patterns-openSUSE-kvm_server"] if install_kvm_server
packages = packages + ["libvirt-daemon-qemu", "tigervnc"] if install_kvm_tools
- packages = packages + ["libvirt-daemon-lxc", "libvirt-daemon-config-network", "pm-utils"] if install_lxc
+ packages = packages + ["libvirt-daemon-lxc", "libvirt-daemon-config-network"] if install_lxc
result = Package.DoInstall(common_vm_packages + packages)
if result == false
Report.Error(_("Package installation failed\n"))
@@ -495,14 +503,6 @@
Lan.Write
end
end
-
- # Enable and start the libvirtd daemon for both KVM and Xen
- cmd = "systemctl enable libvirtd.service"
- Builtins.y2milestone("Enable libvirtd.service: %1", cmd)
- SCR.Execute(path(".target.bash"), cmd)
- cmd = "systemctl start libvirtd.service"
- Builtins.y2milestone("Start libvirtd.service: %1", cmd)
- SCR.Execute(path(".target.bash"), cmd)
else
# For s390, make sure /etc/zipl.conf contain switch_amode
switch_amode = Bootloader.kernel_param(:common, "switch_amode")
@@ -524,6 +524,17 @@
end
end
+ # Force AppArmor to reload the profiles
+ reloadApparmor
+
+ # Enable and start the libvirtd daemon for both KVM and Xen
+ cmd = "systemctl enable libvirtd.service"
+ Builtins.y2milestone("Enable libvirtd.service: %1", cmd)
+ SCR.Execute(path(".target.bash"), cmd)
+ cmd = "systemctl start libvirtd.service"
+ Builtins.y2milestone("Start libvirtd.service: %1", cmd)
+ SCR.Execute(path(".target.bash"), cmd)
+
# Firewall stage - modify the firewall setting, add the xen bridge to FW_FORWARD_ALWAYS_INOUT_DEV
# Progress::NextStage();
--
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 git for openSUSE:Factory checked in at 2014-06-26 08:00:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/git (Old)
and /work/SRC/openSUSE:Factory/.git.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "git"
Changes:
--------
--- /work/SRC/openSUSE:Factory/git/git.changes 2014-05-13 20:45:49.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.git.new/git.changes 2014-06-26 08:00:15.000000000 +0200
@@ -1,0 +2,34 @@
+Mon Jun 16 23:18:17 UTC 2014 - andreas.stieger(a)gmx.de
+
+- git 2.0.0
+- Backward compatibility notes:
+ * git push now uses "simple" semantics by default instead of
+ old "matching", use variable "push.default" to revert
+ * "git add -u" and "git add -A" operate on entire tree, use
+ "git add -u ." or "git add -A ." for current directory only.
+ * "git add <path>" is the same as "git add -A <path>" now, use
+ "git add --ignore-removal <path>" for previous behaviour
+ * "-q" option of "git diff-files" has been removed. To ignore
+ deletion, use "git diff-files --diff-filter=d"
+ * "git request-pull" lost a few "heuristics"
+ * default prefix for "git svn" remote-tracking branches changed
+ from refs/remotes to refs/remotes/origin/ unless with "--prefix"
+- Updates, fixes and features as listed in:
+ https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.0…
+
+-------------------------------------------------------------------
+Wed Jun 11 20:36:00 UTC 2014 - andreas.stieger(a)gmx.de
+
+- git 1.9.4:
+ * Commands that take pathspecs on the command line misbehaved
+ when the pathspec is given as an absolute pathname (which is a
+ practice not particularly encouraged) that points at a
+ symbolic link in the working tree.
+ * An earlier fix to the shell prompt script (in contrib/) for
+ using the PROMPT_COMMAND interface did not correctly check if
+ the extra code path needs to trigger, causing the branch name
+ not to appear when 'promptvars' option is disabled in bash or
+ PROMPT_SUBST is unset in zsh.
+- switch to xz tarball form kernel.org
+
+-------------------------------------------------------------------
Old:
----
v1.9.3.tar.gz
New:
----
git-2.0.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ git.spec ++++++
--- /var/tmp/diff_new_pack.D38JhQ/_old 2014-06-26 08:00:16.000000000 +0200
+++ /var/tmp/diff_new_pack.D38JhQ/_new 2014-06-26 08:00:16.000000000 +0200
@@ -20,14 +20,14 @@
%define _fwdefdir /etc/sysconfig/SuSEfirewall2.d/services
Name: git
-Version: 1.9.3
+Version: 2.0.0
Release: 0
Summary: Fast, scalable, distributed revision control system
License: GPL-2.0
Group: Development/Tools/Version Control
Url: http://git-scm.com
-Source0: https://github.com/git/%{name}/archive/v%{version}.tar.gz
+Source0: https://www.kernel.org/pub/software/scm/git/%{name}-%{version}.tar.xz
Source1: apache2-gitweb.conf
Source2: sysconfig.git-daemon
Source3: git-daemon.init
@@ -58,6 +58,7 @@
BuildRequires: sgml-skel
BuildRequires: tcsh
BuildRequires: xmlto
+BuildRequires: xz
Requires: git-core = %{version}
Recommends: git-svn git-cvs git-email gitk git-gui git-web
Suggests: git-daemon
--
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 yast2-pkg-bindings for openSUSE:Factory checked in at 2014-06-26 08:00:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-pkg-bindings (Old)
and /work/SRC/openSUSE:Factory/.yast2-pkg-bindings.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-pkg-bindings"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-pkg-bindings/yast2-pkg-bindings.changes 2014-06-01 18:56:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-pkg-bindings.new/yast2-pkg-bindings.changes 2014-06-26 08:00:07.000000000 +0200
@@ -1,0 +2,22 @@
+Tue Jun 10 09:40:33 UTC 2014 - lslezak(a)suse.cz
+
+- fixed ServiceRefresh to not add duplicated repositories (that
+ confuses package installation progress during installation)
+ (bnc#865037)
+- 3.1.15
+
+-------------------------------------------------------------------
+Thu Jun 5 18:37:51 UTC 2014 - lslezak(a)suse.cz
+
+- added Pkg::TargetInitializeOptions(), allows overriding the
+ target distribution autodetection (bnc#881320)
+- 3.1.14
+
+-------------------------------------------------------------------
+Wed Jun 4 07:15:20 UTC 2014 - lslezak(a)suse.cz
+
+- do not log false warning message about missing base product
+ when it is actually found (bnc#876677#c14)
+- 3.1.13
+
+-------------------------------------------------------------------
Old:
----
yast2-pkg-bindings-3.1.12.tar.bz2
New:
----
yast2-pkg-bindings-3.1.15.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-pkg-bindings-devel-doc.spec ++++++
--- /var/tmp/diff_new_pack.hbWLDD/_old 2014-06-26 08:00:09.000000000 +0200
+++ /var/tmp/diff_new_pack.hbWLDD/_new 2014-06-26 08:00:09.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-pkg-bindings-devel-doc
-Version: 3.1.12
+Version: 3.1.15
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: yast2-pkg-bindings-%{version}.tar.bz2
++++++ yast2-pkg-bindings.spec ++++++
--- /var/tmp/diff_new_pack.hbWLDD/_old 2014-06-26 08:00:09.000000000 +0200
+++ /var/tmp/diff_new_pack.hbWLDD/_new 2014-06-26 08:00:09.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-pkg-bindings
-Version: 3.1.12
+Version: 3.1.15
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-pkg-bindings-3.1.12.tar.bz2 -> yast2-pkg-bindings-3.1.15.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-3.1.12/package/yast2-pkg-bindings-devel-doc.spec new/yast2-pkg-bindings-3.1.15/package/yast2-pkg-bindings-devel-doc.spec
--- old/yast2-pkg-bindings-3.1.12/package/yast2-pkg-bindings-devel-doc.spec 2014-05-27 15:36:47.000000000 +0200
+++ new/yast2-pkg-bindings-3.1.15/package/yast2-pkg-bindings-devel-doc.spec 2014-06-10 14:36:32.000000000 +0200
@@ -16,7 +16,7 @@
#
Name: yast2-pkg-bindings-devel-doc
-Version: 3.1.12
+Version: 3.1.15
Release: 0
License: GPL-2.0
Group: Documentation/HTML
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-3.1.12/package/yast2-pkg-bindings.changes new/yast2-pkg-bindings-3.1.15/package/yast2-pkg-bindings.changes
--- old/yast2-pkg-bindings-3.1.12/package/yast2-pkg-bindings.changes 2014-05-27 15:36:47.000000000 +0200
+++ new/yast2-pkg-bindings-3.1.15/package/yast2-pkg-bindings.changes 2014-06-10 14:36:32.000000000 +0200
@@ -1,4 +1,26 @@
-------------------------------------------------------------------
+Tue Jun 10 09:40:33 UTC 2014 - lslezak(a)suse.cz
+
+- fixed ServiceRefresh to not add duplicated repositories (that
+ confuses package installation progress during installation)
+ (bnc#865037)
+- 3.1.15
+
+-------------------------------------------------------------------
+Thu Jun 5 18:37:51 UTC 2014 - lslezak(a)suse.cz
+
+- added Pkg::TargetInitializeOptions(), allows overriding the
+ target distribution autodetection (bnc#881320)
+- 3.1.14
+
+-------------------------------------------------------------------
+Wed Jun 4 07:15:20 UTC 2014 - lslezak(a)suse.cz
+
+- do not log false warning message about missing base product
+ when it is actually found (bnc#876677#c14)
+- 3.1.13
+
+-------------------------------------------------------------------
Tue May 27 13:18:29 UTC 2014 - lslezak(a)suse.cz
- move package cache to target system (copy RPMs to /mnt instead of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-3.1.12/package/yast2-pkg-bindings.spec new/yast2-pkg-bindings-3.1.15/package/yast2-pkg-bindings.spec
--- old/yast2-pkg-bindings-3.1.12/package/yast2-pkg-bindings.spec 2014-05-27 15:36:47.000000000 +0200
+++ new/yast2-pkg-bindings-3.1.15/package/yast2-pkg-bindings.spec 2014-06-10 14:36:32.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-pkg-bindings
-Version: 3.1.12
+Version: 3.1.15
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-3.1.12/src/PkgFunctions.cc new/yast2-pkg-bindings-3.1.15/src/PkgFunctions.cc
--- old/yast2-pkg-bindings-3.1.12/src/PkgFunctions.cc 2014-05-27 15:36:47.000000000 +0200
+++ new/yast2-pkg-bindings-3.1.15/src/PkgFunctions.cc 2014-06-06 13:01:31.000000000 +0200
@@ -44,7 +44,7 @@
#include <unistd.h>
// textdomain
-#include <libintl.h>
+#include <libintl.h>
/*
Textdomain "pkg-bindings"
*/
@@ -295,7 +295,7 @@
const char* dmode;
zypp::DownloadMode dm = zconfig.commit_downloadMode();
-
+
if (dm == zypp::DownloadDefault) dmode = "default";
else if (dm == zypp::DownloadInAdvance) dmode = "download_in_advance";
else if (dm == zypp::DownloadAsNeeded) dmode = "download_as_needed";
@@ -348,7 +348,7 @@
rpm_flags->add(YCPString("-U"));
ret->add(YCPString("rpm_install_flags"), rpm_flags);
-
+
ret->add(YCPString("history_log_file"), YCPString(zconfig.historyLogFile().asString()));
ret->add(YCPString("credentials_global_dir"), YCPString(zconfig.credentialsGlobalDir().asString()));
@@ -428,17 +428,28 @@
return YCPBoolean(true);
}
-bool PkgFunctions::RepoManagerUpdateTarget(const std::string& root)
+bool PkgFunctions::RepoManagerUpdateTarget(const std::string& root, const YCPMap& options)
{
bool new_target = _target_root != root;
// a repository manager is present and the target has been changed
- if (repo_manager && new_target)
+ // or there are options to set
+ if ((repo_manager && new_target) || options.size() > 0)
{
- y2milestone("Updating RepoManager target from %s to %s", _target_root.c_str(), root.c_str());
+ y2milestone("Updating RepoManager (target changed from %s to %s)", _target_root.c_str(), root.c_str());
+
+ zypp::RepoManagerOptions repo_manager_options(root);
+
+ y2debug("repomanager options size: %zd", options.size());
+ if(!options->value(YCPString("target_distro")).isNull() && options->value(YCPString("target_distro"))->isString())
+ {
+ // override the target distribution autodetection
+ y2milestone("Using target_distro: %s", options->value(YCPString("target_distro"))->asString()->value().c_str());
+ repo_manager_options.servicesTargetDistro = options->value(YCPString("target_distro"))->asString()->value();
+ }
// repository manager options cannot be replaced, a new repository manager is needed
- zypp::RepoManager* new_repo_manager = new zypp::RepoManager(zypp::RepoManagerOptions(root));
+ zypp::RepoManager* new_repo_manager = new zypp::RepoManager(repo_manager_options);
// register the known repositories
if (repos.empty() && service_manager.empty())
@@ -455,7 +466,7 @@
}
// replace the old repository manager
- delete repo_manager;
+ if (repo_manager) delete repo_manager;
repo_manager = new_repo_manager;
}
@@ -482,9 +493,9 @@
return new_target;
}
-bool PkgFunctions::SetTarget(const std::string &root)
+bool PkgFunctions::SetTarget(const std::string &root, const YCPMap& options)
{
- bool new_target = RepoManagerUpdateTarget(root);
+ bool new_target = RepoManagerUpdateTarget(root, options);
_target_root = root;
return new_target;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-3.1.12/src/PkgFunctions.h new/yast2-pkg-bindings-3.1.15/src/PkgFunctions.h
--- old/yast2-pkg-bindings-3.1.12/src/PkgFunctions.h 2014-05-27 15:36:47.000000000 +0200
+++ new/yast2-pkg-bindings-3.1.15/src/PkgFunctions.h 2014-06-06 13:01:31.000000000 +0200
@@ -31,10 +31,11 @@
#include <string>
#include <vector>
+#include <ycp/YCPMap.h>
+
class YCPBoolean;
class YCPValue;
class YCPList;
-class YCPMap;
class YCPSymbol;
class YCPString;
class YCPInteger;
@@ -127,10 +128,10 @@
// helper for updating repository manager after changing the target root
// return true if the target root has been changed
- bool RepoManagerUpdateTarget(const std::string& root);
+ bool RepoManagerUpdateTarget(const std::string& root, const YCPMap& options = YCPMap());
// set new target directory
- bool SetTarget(const std::string &root);
+ bool SetTarget(const std::string &root, const YCPMap& options = YCPMap());
// configured or default download area
zypp::Pathname download_area_path();
@@ -555,6 +556,8 @@
YCPValue TargetRebuildInit(const YCPString& root);
/* TYPEINFO: boolean(string)*/
YCPValue TargetInitialize (const YCPString& root);
+ /* TYPEINFO: boolean(string, map<any,any>)*/
+ YCPValue TargetInitializeOptions (const YCPString& root, const YCPMap& options);
/* TYPEINFO: boolean()*/
YCPValue TargetLoad ();
/* TYPEINFO: boolean()*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-3.1.12/src/Service.cc new/yast2-pkg-bindings-3.1.15/src/Service.cc
--- old/yast2-pkg-bindings-3.1.12/src/Service.cc 2014-05-27 15:36:48.000000000 +0200
+++ new/yast2-pkg-bindings-3.1.15/src/Service.cc 2014-06-10 14:36:32.000000000 +0200
@@ -414,7 +414,8 @@
it != reps.end(); ++it)
{
y2debug("Checking repo '%s' from service '%s'", it->alias().c_str(), it->service().c_str());
- if (it->service() == alias_str && !logFindAlias(it->alias()))
+ // skip repositories from other services or already loaded repositories
+ if (it->service() != alias_str || logFindAlias(it->alias()) > 0)
continue;
y2milestone("Service added a new repository: %s", it->alias().c_str());
@@ -423,7 +424,7 @@
if (it->enabled())
{
- y2milestone("Refreshing service: %s", it->alias().c_str());
+ y2milestone("Refreshing repository: %s", it->alias().c_str());
// refresh the last added repository
SourceRefreshNow(repos.size() - 1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-3.1.12/src/Source_Create.cc new/yast2-pkg-bindings-3.1.15/src/Source_Create.cc
--- old/yast2-pkg-bindings-3.1.12/src/Source_Create.cc 2014-05-27 15:36:48.000000000 +0200
+++ new/yast2-pkg-bindings-3.1.15/src/Source_Create.cc 2014-06-10 14:36:32.000000000 +0200
@@ -906,6 +906,8 @@
product->arch(),
alias
);
+
+ return;
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-pkg-bindings-3.1.12/src/Target_Load.cc new/yast2-pkg-bindings-3.1.15/src/Target_Load.cc
--- old/yast2-pkg-bindings-3.1.12/src/Target_Load.cc 2014-05-20 08:46:25.000000000 +0200
+++ new/yast2-pkg-bindings-3.1.15/src/Target_Load.cc 2014-06-06 13:01:31.000000000 +0200
@@ -91,7 +91,7 @@
y2error("TargetInit has failed: %s", excpt.msg().c_str() );
return YCPError(excpt.msg().c_str(), YCPBoolean(false));
}
-
+
// locks are optional, might not be present on the target
zypp::Pathname lock_file(_target_root + zypp::ZConfig::instance().locksFile());
try
@@ -106,7 +106,7 @@
}
pkgprogress.Done();
-
+
return YCPBoolean(true);
}
@@ -147,12 +147,29 @@
YCPValue
PkgFunctions::TargetInitialize (const YCPString& root)
{
+ return TargetInitializeOptions(root, YCPMap());
+}
+
+/** ------------------------
+ *
+ * @builtin TargetInitializeOptions
+ * @short Initialize Target, read the keys, set the repomanager options
+ * @param string root Root Directory
+ * @param map options for RepoManager
+ * supproted keys:
+ * "target_distro": <string> - override the target distribution autodetection,
+ * example values: "sle-11-x86_84", "sle-12-x86_84"
+ * @return boolean
+ */
+YCPValue
+PkgFunctions::TargetInitializeOptions (const YCPString& root, const YCPMap& options)
+{
const std::string r = root->value();
try
{
zypp_ptr()->initializeTarget(r);
- SetTarget(r);
+ SetTarget(r, options);
}
catch (zypp::Exception & excpt)
{
@@ -160,7 +177,7 @@
y2error("TargetInit has failed: %s", excpt.msg().c_str() );
return YCPError(excpt.msg().c_str(), YCPBoolean(false));
}
-
+
return YCPBoolean(true);
}
@@ -199,7 +216,7 @@
}
pkgprogress.Done();
-
+
return YCPBoolean(true);
}
@@ -216,7 +233,7 @@
try
{
zypp_ptr()->finishTarget();
-
+
zypp::Pathname lock_file(_target_root + zypp::ZConfig::instance().locksFile());
zypp::Locks::instance().save(lock_file);
}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
26 Jun '14
Hello community,
here is the log from the commit of package yast2-control-center-gnome for openSUSE:Factory checked in at 2014-06-26 07:58:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-control-center-gnome (Old)
and /work/SRC/openSUSE:Factory/.yast2-control-center-gnome.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-control-center-gnome"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-control-center-gnome/yast2-control-center-gnome.changes 2014-06-06 14:36:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-control-center-gnome.new/yast2-control-center-gnome.changes 2014-06-26 07:58:04.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Jun 19 11:33:03 UTC 2014 - fezhang(a)suse.com
+- ellipsize overlong icon texts and add tooltips (bnc#879959)
+- 3.1.5
+
+-------------------------------------------------------------------
Old:
----
yast2-control-center-gnome-3.1.4.tar.bz2
New:
----
yast2-control-center-gnome-3.1.5.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-control-center-gnome.spec ++++++
--- /var/tmp/diff_new_pack.TmFmF4/_old 2014-06-26 07:58:06.000000000 +0200
+++ /var/tmp/diff_new_pack.TmFmF4/_new 2014-06-26 07:58:06.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-control-center-gnome
-Version: 3.1.4
+Version: 3.1.5
Release: 0
Summary: YaST2 - Control Center (GNOME version)
++++++ yast2-control-center-gnome-3.1.4.tar.bz2 -> yast2-control-center-gnome-3.1.5.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-control-center-gnome-3.1.4/package/yast2-control-center-gnome.changes new/yast2-control-center-gnome-3.1.5/package/yast2-control-center-gnome.changes
--- old/yast2-control-center-gnome-3.1.4/package/yast2-control-center-gnome.changes 2014-06-03 10:21:30.000000000 +0200
+++ new/yast2-control-center-gnome-3.1.5/package/yast2-control-center-gnome.changes 2014-06-25 13:26:21.000000000 +0200
@@ -1,4 +1,9 @@
-------------------------------------------------------------------
+Thu Jun 19 11:33:03 UTC 2014 - fezhang(a)suse.com
+- ellipsize overlong icon texts and add tooltips (bnc#879959)
+- 3.1.5
+
+-------------------------------------------------------------------
Tue Jun 2 07:11:29 UTC 2014 - fezhang(a)suse.com
- Fix keyboard navigation in the search results (bnc#863950)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-control-center-gnome-3.1.4/package/yast2-control-center-gnome.spec new/yast2-control-center-gnome-3.1.5/package/yast2-control-center-gnome.spec
--- old/yast2-control-center-gnome-3.1.4/package/yast2-control-center-gnome.spec 2014-06-03 10:21:30.000000000 +0200
+++ new/yast2-control-center-gnome-3.1.5/package/yast2-control-center-gnome.spec 2014-06-25 13:26:21.000000000 +0200
@@ -16,7 +16,7 @@
#
Name: yast2-control-center-gnome
-Version: 3.1.4
+Version: 3.1.5
Release: 0
Summary: YaST2 - Control Center (GNOME version)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-control-center-gnome-3.1.4/src/cut-n-paste/shell/cc-shell-item-view.c new/yast2-control-center-gnome-3.1.5/src/cut-n-paste/shell/cc-shell-item-view.c
--- old/yast2-control-center-gnome-3.1.4/src/cut-n-paste/shell/cc-shell-item-view.c 2014-05-30 16:36:45.000000000 +0200
+++ new/yast2-control-center-gnome-3.1.5/src/cut-n-paste/shell/cc-shell-item-view.c 2014-06-25 13:26:21.000000000 +0200
@@ -148,6 +148,31 @@
g_free (id);
}
+gboolean
+iconview_query_tooltip_cb (GtkIconView *icon_view,
+ gint x,
+ gint y,
+ gboolean keyborad_tip,
+ GtkTooltip *tooltip,
+ CcShellItemView *cc_view)
+{
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gchar *tooltip_text;
+
+ if (!gtk_icon_view_get_tooltip_context (GTK_ICON_VIEW (cc_view),
+ &x, &y,
+ keyborad_tip,
+ &model, NULL, &iter))
+ return FALSE;
+
+ gtk_tree_model_get (model, &iter,
+ COL_NAME, &tooltip_text,
+ -1);
+ gtk_tooltip_set_text (tooltip, tooltip_text);
+ return TRUE;
+}
+
void
cc_shell_item_view_update_cells (CcShellItemView *view)
{
@@ -161,6 +186,7 @@
if (GTK_IS_CELL_RENDERER_TEXT (cell)) {
g_object_set (G_OBJECT (cell),
"wrap-mode", PANGO_WRAP_WORD,
+ "ellipsize", PANGO_ELLIPSIZE_END,
NULL);
/* We only have one text cell */
break;
@@ -199,13 +225,18 @@
{
self->priv = SHELL_ITEM_VIEW_PRIVATE (self);
- g_object_set (self, "margin", 0, NULL);
+ g_object_set (self,
+ "margin", 0,
+ "has-tooltip", TRUE,
+ NULL);
g_signal_connect (self, "item-activated",
G_CALLBACK (iconview_item_activated_cb), self);
g_signal_connect (self, "button-press-event",
G_CALLBACK (iconview_button_press_event_cb), self);
g_signal_connect (self, "button-release-event",
G_CALLBACK (iconview_button_release_event_cb), self);
+ g_signal_connect (self, "query-tooltip",
+ G_CALLBACK (iconview_query_tooltip_cb), self);
}
GtkWidget *
--
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 grub2 for openSUSE:Factory checked in at 2014-06-26 07:58:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grub2 (Old)
and /work/SRC/openSUSE:Factory/.grub2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grub2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/grub2/grub2.changes 2014-06-24 15:15:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.grub2.new/grub2.changes 2014-06-26 07:58:02.000000000 +0200
@@ -1,0 +2,11 @@
+Wed Jun 25 09:20:16 UTC 2014 - jack(a)suse.cz
+
+- xfs V5 superblock support (bnc#880166 bnc#883392)
+
+- added patches:
+ * grub2-xfs-Add-helper-for-inode-size.patch
+ * grub2-xfs-Fix-termination-loop-for-directory-iteration.patch
+ * grub2-xfs-Convert-inode-numbers-to-cpu-endianity-immediate.patch
+ * grub2-xfs-V5-filesystem-format-support.patch
+
+-------------------------------------------------------------------
New:
----
grub2-xfs-Add-helper-for-inode-size.patch
grub2-xfs-Convert-inode-numbers-to-cpu-endianity-immediate.patch
grub2-xfs-Fix-termination-loop-for-directory-iteration.patch
grub2-xfs-V5-filesystem-format-support.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ grub2.spec ++++++
--- /var/tmp/diff_new_pack.s3liAq/_old 2014-06-26 07:58:04.000000000 +0200
+++ /var/tmp/diff_new_pack.s3liAq/_new 2014-06-26 07:58:04.000000000 +0200
@@ -174,6 +174,10 @@
Patch225: grub2-ppc64-qemu.patch
Patch226: grub2-ppc64le-timeout.patch
Patch227: grub2-use-stat-instead-of-udevadm-for-partition-lookup.patch
+Patch228: grub2-xfs-Add-helper-for-inode-size.patch
+Patch229: grub2-xfs-Fix-termination-loop-for-directory-iteration.patch
+Patch230: grub2-xfs-Convert-inode-numbers-to-cpu-endianity-immediate.patch
+Patch231: grub2-xfs-V5-filesystem-format-support.patch
Requires: gettext-runtime
%if 0%{?suse_version} >= 1140
@@ -364,6 +368,10 @@
%patch225 -p1
%patch226 -p1
%patch227 -p1
+%patch228 -p1
+%patch229 -p1
+%patch230 -p1
+%patch231 -p1
# Generate po/LINGUAS for message catalogs ...
./linguas.sh
++++++ grub2-xfs-Add-helper-for-inode-size.patch ++++++
From 34231b28cbb6b2e10d7668c5b6d2432e8563bd1d Mon Sep 17 00:00:00 2001
From: Jan Kara <jack(a)suse.cz>
Date: Thu, 5 Jun 2014 20:56:21 +0200
Subject: [PATCH 1/4] xfs: Add helper for inode size
Signed-off-by: Jan Kara <jack(a)suse.cz>
---
grub-core/fs/xfs.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
index 16ffd3f1ebd9..a2fc942707c1 100644
--- a/grub-core/fs/xfs.c
+++ b/grub-core/fs/xfs.c
@@ -255,6 +255,11 @@ grub_xfs_inode_offset (struct grub_xfs_data *data,
data->sblock.log2_inode);
}
+static inline int
+grub_xfs_inode_size(struct grub_xfs_data *data)
+{
+ return 1 << data->sblock.log2_inode;
+}
static grub_err_t
grub_xfs_read_inode (struct grub_xfs_data *data, grub_uint64_t ino,
@@ -264,8 +269,8 @@ grub_xfs_read_inode (struct grub_xfs_data *data, grub_uint64_t ino,
int offset = grub_xfs_inode_offset (data, ino);
/* Read the inode. */
- if (grub_disk_read (data->disk, block, offset,
- 1 << data->sblock.log2_inode, inode))
+ if (grub_disk_read (data->disk, block, offset, grub_xfs_inode_size(data),
+ inode))
return grub_errno;
if (grub_strncmp ((char *) inode->magic, "IN", 2))
@@ -297,7 +302,7 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock)
if (node->inode.fork_offset)
recoffset = (node->inode.fork_offset - 1) / 2;
else
- recoffset = ((1 << node->data->sblock.log2_inode)
+ recoffset = (grub_xfs_inode_size(node->data)
- ((char *) &node->inode.data.btree.keys
- (char *) &node->inode))
/ (2 * sizeof (grub_uint64_t));
@@ -458,7 +463,7 @@ static int iterate_dir_call_hook (grub_uint64_t ino, const char *filename,
fdiro = grub_malloc (sizeof (struct grub_fshelp_node)
- sizeof (struct grub_xfs_inode)
- + (1 << ctx->diro->data->sblock.log2_inode) + 1);
+ + grub_xfs_inode_size(ctx->diro->data) + 1);
if (!fdiro)
{
grub_print_error ();
@@ -684,7 +689,7 @@ grub_xfs_mount (grub_disk_t disk)
data = grub_realloc (data,
sizeof (struct grub_xfs_data)
- sizeof (struct grub_xfs_inode)
- + (1 << data->sblock.log2_inode) + 1);
+ + grub_xfs_inode_size(data) + 1);
if (! data)
goto fail;
@@ -802,7 +807,7 @@ grub_xfs_open (struct grub_file *file, const char *name)
grub_memcpy (&data->diropen, fdiro,
sizeof (struct grub_fshelp_node)
- sizeof (struct grub_xfs_inode)
- + (1 << data->sblock.log2_inode));
+ + grub_xfs_inode_size(data));
grub_free (fdiro);
}
--
1.8.1.4
++++++ grub2-xfs-Convert-inode-numbers-to-cpu-endianity-immediate.patch ++++++
From 57ae4073cc28fa74014a62aca397a40ce1f73763 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack(a)suse.cz>
Date: Thu, 12 Jun 2014 11:01:11 +0200
Subject: [PATCH 3/4] xfs: Convert inode numbers to cpu endianity immediately
after reading
Currently XFS driver converted inode numbers to native endianity only
when using them to compute inode position. Although this works, it is
somewhat confusing. So convert inode numbers when reading them from disk
structures as every other field.
Signed-off-by: Jan Kara <jack(a)suse.cz>
---
grub-core/fs/xfs.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
index ef3bc787e968..7e247a32df5c 100644
--- a/grub-core/fs/xfs.c
+++ b/grub-core/fs/xfs.c
@@ -180,14 +180,14 @@ static inline grub_uint64_t
GRUB_XFS_INO_INOINAG (struct grub_xfs_data *data,
grub_uint64_t ino)
{
- return (grub_be_to_cpu64 (ino) & ((1LL << GRUB_XFS_INO_AGBITS (data)) - 1));
+ return (ino & ((1LL << GRUB_XFS_INO_AGBITS (data)) - 1));
}
static inline grub_uint64_t
GRUB_XFS_INO_AG (struct grub_xfs_data *data,
grub_uint64_t ino)
{
- return (grub_be_to_cpu64 (ino) >> GRUB_XFS_INO_AGBITS (data));
+ return (ino >> GRUB_XFS_INO_AGBITS (data));
}
static inline grub_disk_addr_t
@@ -511,13 +511,12 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
if (smallino)
{
parent = grub_be_to_cpu32 (diro->inode.data.dir.dirhead.parent.i4);
- parent = grub_cpu_to_be64 (parent);
/* The header is a bit smaller than usual. */
de = (struct grub_xfs_dir_entry *) ((char *) de - 4);
}
else
{
- parent = diro->inode.data.dir.dirhead.parent.i8;
+ parent = grub_be_to_cpu64(diro->inode.data.dir.dirhead.parent.i8);
}
/* Synthesize the direntries for `.' and `..'. */
@@ -550,7 +549,6 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
| (((grub_uint64_t) inopos[5]) << 16)
| (((grub_uint64_t) inopos[6]) << 8)
| (((grub_uint64_t) inopos[7]) << 0);
- ino = grub_cpu_to_be64 (ino);
c = de->name[de->len];
de->name[de->len] = '\0';
@@ -632,7 +630,8 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
is not used by GRUB. So it can be overwritten. */
filename[direntry->len] = '\0';
- if (iterate_dir_call_hook (direntry->inode, filename, &ctx))
+ if (iterate_dir_call_hook (grub_be_to_cpu64(direntry->inode),
+ filename, &ctx))
{
grub_free (dirblock);
return 1;
@@ -694,7 +693,7 @@ grub_xfs_mount (grub_disk_t disk)
goto fail;
data->diropen.data = data;
- data->diropen.ino = data->sblock.rootino;
+ data->diropen.ino = grub_be_to_cpu64(data->sblock.rootino);
data->diropen.inode_read = 1;
data->bsize = grub_be_to_cpu32 (data->sblock.bsize);
data->agsize = grub_be_to_cpu32 (data->sblock.agsize);
--
1.8.1.4
++++++ grub2-xfs-Fix-termination-loop-for-directory-iteration.patch ++++++
From a7d584c005bde09bb86475a79d714215b3480821 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack(a)suse.cz>
Date: Wed, 11 Jun 2014 18:36:59 +0200
Subject: [PATCH 2/4] xfs: Fix termination loop for directory iteration
Directory iteration used wrong position (sizeof wrong structure) for
termination of iteration inside a directory block. Luckily the position
ended up being wrong by just 1 byte and directory entries are larger so
things worked out fine in practice. But fix the problem anyway.
Signed-off-by: Jan Kara <jack(a)suse.cz>
---
grub-core/fs/xfs.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
index a2fc942707c1..ef3bc787e968 100644
--- a/grub-core/fs/xfs.c
+++ b/grub-core/fs/xfs.c
@@ -608,8 +608,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
- grub_be_to_cpu32 (tail->leaf_stale));
/* Iterate over all entries within this block. */
- while (pos < (dirblk_size
- - (int) sizeof (struct grub_xfs_dir2_entry)))
+ while (pos < tail_start)
{
struct grub_xfs_dir2_entry *direntry;
grub_uint8_t *freetag;
--
1.8.1.4
++++++ grub2-xfs-V5-filesystem-format-support.patch ++++++
From 2f725e644d8ccf001a4dccddc8abb2c9479352a7 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack(a)suse.cz>
Date: Wed, 11 Jun 2014 18:36:01 +0200
Subject: [PATCH] xfs: V5 filesystem format support
Signed-off-by: Jan Kara <jack(a)suse.cz>
---
grub-core/fs/xfs.c | 245 +++++++++++++++++++++++++++++++++++++----------------
1 file changed, 173 insertions(+), 72 deletions(-)
diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
index 7e247a32df5c..3b1d8994067f 100644
--- a/grub-core/fs/xfs.c
+++ b/grub-core/fs/xfs.c
@@ -34,6 +34,15 @@ GRUB_MOD_LICENSE ("GPLv3+");
#define XFS_INODE_FORMAT_EXT 2
#define XFS_INODE_FORMAT_BTREE 3
+/* Superblock version field flags */
+#define XFS_SB_VERSION_NUMBITS 0x000f
+#define XFS_SB_VERSION_MOREBITSBIT 0x8000
+
+/* features2 field flags */
+#define XFS_SB_VERSION2_FTYPE 0x00000200 /* inode type in dir */
+
+/* incompat feature flags */
+#define XFS_SB_FEAT_INCOMPAT_FTYPE (1 << 0) /* filetype in dirent */
struct grub_xfs_sblock
{
@@ -45,7 +54,9 @@ struct grub_xfs_sblock
grub_uint64_t rootino;
grub_uint8_t unused3[20];
grub_uint32_t agsize;
- grub_uint8_t unused4[20];
+ grub_uint8_t unused4[12];
+ grub_uint16_t version;
+ grub_uint8_t unused5[6];
grub_uint8_t label[12];
grub_uint8_t log2_bsize;
grub_uint8_t log2_sect;
@@ -54,12 +65,19 @@ struct grub_xfs_sblock
grub_uint8_t log2_agblk;
grub_uint8_t unused6[67];
grub_uint8_t log2_dirblk;
+ grub_uint8_t unused7[7];
+ grub_uint32_t features2;
+ grub_uint8_t unused8[4];
+ grub_uint32_t sb_features_compat;
+ grub_uint32_t sb_features_ro_compat;
+ grub_uint32_t sb_features_incompat;
+ grub_uint32_t sb_features_log_incompat;
} GRUB_PACKED;
struct grub_xfs_dir_header
{
grub_uint8_t count;
- grub_uint8_t smallino;
+ grub_uint8_t largeino;
union
{
grub_uint32_t i4;
@@ -67,14 +85,16 @@ struct grub_xfs_dir_header
} GRUB_PACKED parent;
} GRUB_PACKED;
+/* Structure for directory entry inlined in the inode */
struct grub_xfs_dir_entry
{
grub_uint8_t len;
grub_uint16_t offset;
char name[1];
- /* Inode number follows, 32 bits. */
+ /* Inode number follows, 32 / 64 bits. */
} GRUB_PACKED;
+/* Structure for directory entry in a block */
struct grub_xfs_dir2_entry
{
grub_uint64_t inode;
@@ -90,7 +110,8 @@ struct grub_xfs_btree_node
grub_uint16_t numrecs;
grub_uint64_t left;
grub_uint64_t right;
- grub_uint64_t keys[1];
+ /* In V5 here follow crc, uuid, etc. */
+ /* Then follow keys and block pointers */
} GRUB_PACKED;
struct grub_xfs_btree_root
@@ -123,17 +144,6 @@ struct grub_xfs_inode
grub_uint16_t unused3;
grub_uint8_t fork_offset;
grub_uint8_t unused4[17];
- union
- {
- char raw[156];
- struct dir
- {
- struct grub_xfs_dir_header dirhead;
- struct grub_xfs_dir_entry direntry[1];
- } dir;
- grub_xfs_extent extents[XFS_INODE_EXTENTS];
- struct grub_xfs_btree_root btree;
- } GRUB_PACKED data;
} GRUB_PACKED;
struct grub_xfs_dirblock_tail
@@ -157,6 +167,8 @@ struct grub_xfs_data
int pos;
int bsize;
grub_uint32_t agsize;
+ unsigned int hasftype:1;
+ unsigned int hascrc:1;
struct grub_fshelp_node diropen;
};
@@ -164,6 +176,24 @@ static grub_dl_t my_mod;
+static int grub_xfs_sb_hascrc(struct grub_xfs_data *data)
+{
+ return (grub_be_to_cpu16(data->sblock.version) & XFS_SB_VERSION_NUMBITS) == 5;
+}
+
+static int grub_xfs_sb_hasftype(struct grub_xfs_data *data)
+{
+ grub_uint32_t version = grub_be_to_cpu16(data->sblock.version);
+
+ if ((version & XFS_SB_VERSION_NUMBITS) == 5 &&
+ grub_be_to_cpu32(data->sblock.sb_features_incompat) & XFS_SB_FEAT_INCOMPAT_FTYPE)
+ return 1;
+ if (version & XFS_SB_VERSION_MOREBITSBIT &&
+ grub_be_to_cpu32(data->sblock.features2) & XFS_SB_VERSION2_FTYPE)
+ return 1;
+ return 0;
+}
+
/* Filetype information as used in inodes. */
#define FILETYPE_INO_MASK 0170000
#define FILETYPE_INO_REG 0100000
@@ -219,18 +249,6 @@ GRUB_XFS_EXTENT_SIZE (grub_xfs_extent *exts, int ex)
return (grub_be_to_cpu32 (exts[ex][3]) & ((1 << 21) - 1));
}
-static inline int
-GRUB_XFS_ROUND_TO_DIRENT (int pos)
-{
- return ((((pos) + 8 - 1) / 8) * 8);
-}
-
-static inline int
-GRUB_XFS_NEXT_DIRENT (int pos, int len)
-{
- return (pos) + GRUB_XFS_ROUND_TO_DIRENT (8 + 1 + len + 2);
-}
-
static inline grub_uint64_t
grub_xfs_inode_block (struct grub_xfs_data *data,
@@ -261,6 +279,92 @@ grub_xfs_inode_size(struct grub_xfs_data *data)
return 1 << data->sblock.log2_inode;
}
+static void *
+grub_xfs_inode_data(struct grub_xfs_inode *inode)
+{
+ if (inode->version <= 2)
+ return ((char *)inode) + 100;
+ return ((char *)inode) + 176;
+}
+
+static struct grub_xfs_dir_entry *
+grub_xfs_inline_de(struct grub_xfs_dir_header *head)
+{
+ /*
+ * With small inode numbers the header is 4 bytes smaller because of
+ * smaller parent pointer
+ */
+ return (void *)(((char *)head) + sizeof(struct grub_xfs_dir_header) -
+ (head->largeino ? 0 : sizeof(grub_uint32_t)));
+}
+
+static grub_uint8_t *
+grub_xfs_inline_de_inopos(struct grub_xfs_data *data,
+ struct grub_xfs_dir_entry *de)
+{
+ return ((grub_uint8_t *)(de + 1)) + de->len - 1 +
+ (data->hasftype ? 1 : 0);
+}
+
+static struct grub_xfs_dir_entry *
+grub_xfs_inline_next_de(struct grub_xfs_data *data,
+ struct grub_xfs_dir_header *head,
+ struct grub_xfs_dir_entry *de)
+{
+ char *p = (char *)de + sizeof(struct grub_xfs_dir_entry) - 1 + de->len;
+
+ p += head->largeino ? sizeof(grub_uint64_t) : sizeof(grub_uint32_t);
+ if (data->hasftype)
+ p++;
+
+ return (struct grub_xfs_dir_entry *)p;
+}
+
+static struct grub_xfs_dirblock_tail *
+grub_xfs_dir_tail(struct grub_xfs_data *data, void *dirblock)
+{
+ int dirblksize = 1 << (data->sblock.log2_bsize + data->sblock.log2_dirblk);
+
+ return (struct grub_xfs_dirblock_tail *)
+ ((char *)dirblock + dirblksize - sizeof (struct grub_xfs_dirblock_tail));
+}
+
+static struct grub_xfs_dir2_entry *
+grub_xfs_first_de(struct grub_xfs_data *data, void *dirblock)
+{
+ if (data->hascrc)
+ return (struct grub_xfs_dir2_entry *)((char *)dirblock + 64);
+ return (struct grub_xfs_dir2_entry *)((char *)dirblock + 16);
+}
+
+static inline int
+grub_xfs_round_dirent_size (int len)
+{
+ return (len + 7) & ~7;
+}
+
+static struct grub_xfs_dir2_entry *
+grub_xfs_next_de(struct grub_xfs_data *data, struct grub_xfs_dir2_entry *de)
+{
+ int size = sizeof (struct grub_xfs_dir2_entry) + de->len + 2 /* Tag */;
+
+ if (data->hasftype)
+ size++; /* File type */
+ return (struct grub_xfs_dir2_entry *)
+ (((char *)de) + grub_xfs_round_dirent_size (size));
+}
+
+static grub_uint64_t *
+grub_xfs_btree_keys(struct grub_xfs_data *data,
+ struct grub_xfs_btree_node *leaf)
+{
+ char *p = (char *)(leaf + 1);
+
+ if (data->hascrc)
+ p += 48; /* crc, uuid, ... */
+ return (grub_uint64_t *)p;
+}
+
static grub_err_t
grub_xfs_read_inode (struct grub_xfs_data *data, grub_uint64_t ino,
struct grub_xfs_inode *inode)
@@ -268,6 +372,9 @@ grub_xfs_read_inode (struct grub_xfs_data *data, grub_uint64_t ino,
grub_uint64_t block = grub_xfs_inode_block (data, ino);
int offset = grub_xfs_inode_offset (data, ino);
+ grub_dprintf("xfs", "Reading inode (%llu) - %llu, %d\n",
+ (unsigned long long) ino,
+ (unsigned long long) block, offset);
/* Read the inode. */
if (grub_disk_read (data->disk, block, offset, grub_xfs_inode_size(data),
inode))
@@ -290,6 +397,7 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock)
if (node->inode.format == XFS_INODE_FORMAT_BTREE)
{
+ struct grub_xfs_btree_root *root;
const grub_uint64_t *keys;
int recoffset;
@@ -297,15 +405,15 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock)
if (leaf == 0)
return 0;
- nrec = grub_be_to_cpu16 (node->inode.data.btree.numrecs);
- keys = &node->inode.data.btree.keys[0];
+ root = grub_xfs_inode_data(&node->inode);
+ nrec = grub_be_to_cpu16 (root->numrecs);
+ keys = &root->keys[0];
if (node->inode.fork_offset)
recoffset = (node->inode.fork_offset - 1) / 2;
else
recoffset = (grub_xfs_inode_size(node->data)
- - ((char *) &node->inode.data.btree.keys
- - (char *) &node->inode))
- / (2 * sizeof (grub_uint64_t));
+ - ((char *) keys - (char *) &node->inode))
+ / (2 * sizeof (grub_uint64_t));
do
{
int i;
@@ -327,7 +435,10 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock)
0, node->data->bsize, leaf))
return 0;
- if (grub_strncmp ((char *) leaf->magic, "BMAP", 4))
+ if ((!node->data->hascrc &&
+ grub_strncmp ((char *) leaf->magic, "BMAP", 4)) ||
+ (node->data->hascrc &&
+ grub_strncmp ((char *) leaf->magic, "BMA3", 4)))
{
grub_free (leaf);
grub_error (GRUB_ERR_BAD_FS, "not a correct XFS BMAP node");
@@ -335,8 +446,8 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock)
}
nrec = grub_be_to_cpu16 (leaf->numrecs);
- keys = &leaf->keys[0];
- recoffset = ((node->data->bsize - ((char *) &leaf->keys
+ keys = grub_xfs_btree_keys(node->data, leaf);
+ recoffset = ((node->data->bsize - ((char *) keys
- (char *) leaf))
/ (2 * sizeof (grub_uint64_t)));
}
@@ -346,7 +457,7 @@ grub_xfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock)
else if (node->inode.format == XFS_INODE_FORMAT_EXT)
{
nrec = grub_be_to_cpu32 (node->inode.nextents);
- exts = &node->inode.data.extents[0];
+ exts = grub_xfs_inode_data(&node->inode);
}
else
{
@@ -404,7 +515,7 @@ grub_xfs_read_symlink (grub_fshelp_node_t node)
switch (node->inode.format)
{
case XFS_INODE_FORMAT_INO:
- return grub_strndup (node->inode.data.raw, size);
+ return grub_strndup (grub_xfs_inode_data(&node->inode), size);
case XFS_INODE_FORMAT_EXT:
{
@@ -501,23 +612,18 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
{
case XFS_INODE_FORMAT_INO:
{
- struct grub_xfs_dir_entry *de = &diro->inode.data.dir.direntry[0];
- int smallino = !diro->inode.data.dir.dirhead.smallino;
+ struct grub_xfs_dir_header *head = grub_xfs_inode_data(&diro->inode);
+ struct grub_xfs_dir_entry *de = grub_xfs_inline_de(head);
+ int smallino = !head->largeino;
int i;
grub_uint64_t parent;
/* If small inode numbers are used to pack the direntry, the
parent inode number is small too. */
if (smallino)
- {
- parent = grub_be_to_cpu32 (diro->inode.data.dir.dirhead.parent.i4);
- /* The header is a bit smaller than usual. */
- de = (struct grub_xfs_dir_entry *) ((char *) de - 4);
- }
+ parent = grub_be_to_cpu32 (head->parent.i4);
else
- {
- parent = grub_be_to_cpu64(diro->inode.data.dir.dirhead.parent.i8);
- }
+ parent = grub_be_to_cpu64 (head->parent.i8);
/* Synthesize the direntries for `.' and `..'. */
if (iterate_dir_call_hook (diro->ino, ".", &ctx))
@@ -526,12 +632,10 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
if (iterate_dir_call_hook (parent, "..", &ctx))
return 1;
- for (i = 0; i < diro->inode.data.dir.dirhead.count; i++)
+ for (i = 0; i < head->count; i++)
{
grub_uint64_t ino;
- grub_uint8_t *inopos = (((grub_uint8_t *) de)
- + sizeof (struct grub_xfs_dir_entry)
- + de->len - 1);
+ grub_uint8_t *inopos = grub_xfs_inline_de_inopos(dir->data, de);
grub_uint8_t c;
/* inopos might be unaligned. */
@@ -556,10 +660,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
return 1;
de->name[de->len] = c;
- de = ((struct grub_xfs_dir_entry *)
- (((char *) de)+ sizeof (struct grub_xfs_dir_entry) + de->len
- + ((smallino ? sizeof (grub_uint32_t)
- : sizeof (grub_uint64_t))) - 1));
+ de = grub_xfs_inline_next_de(dir->data, head, de);
}
break;
}
@@ -586,15 +687,11 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
>> dirblk_log2);
blk++)
{
- /* The header is skipped, the first direntry is stored
- from byte 16. */
- int pos = 16;
+ struct grub_xfs_dir2_entry *direntry =
+ grub_xfs_first_de(dir->data, dirblock);
int entries;
- int tail_start = (dirblk_size
- - sizeof (struct grub_xfs_dirblock_tail));
-
- struct grub_xfs_dirblock_tail *tail;
- tail = (struct grub_xfs_dirblock_tail *) &dirblock[tail_start];
+ struct grub_xfs_dirblock_tail *tail =
+ grub_xfs_dir_tail(dir->data, dirblock);
numread = grub_xfs_read_file (dir, 0, 0,
blk << dirblk_log2,
@@ -606,13 +703,11 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
- grub_be_to_cpu32 (tail->leaf_stale));
/* Iterate over all entries within this block. */
- while (pos < tail_start)
+ while ((char *)direntry < (char *)tail)
{
- struct grub_xfs_dir2_entry *direntry;
grub_uint8_t *freetag;
char *filename;
- direntry = (struct grub_xfs_dir2_entry *) &dirblock[pos];
freetag = (grub_uint8_t *) direntry;
if (grub_get_unaligned16 (freetag) == 0XFFFF)
@@ -620,14 +715,16 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
grub_uint8_t *skip = (freetag + sizeof (grub_uint16_t));
/* This entry is not used, go to the next one. */
- pos += grub_be_to_cpu16 (grub_get_unaligned16 (skip));
+ direntry = (struct grub_xfs_dir2_entry *)
+ (((char *)direntry) +
+ grub_be_to_cpu16 (grub_get_unaligned16 (skip)));
continue;
}
- filename = &dirblock[pos + sizeof (*direntry)];
- /* The byte after the filename is for the tag, which
- is not used by GRUB. So it can be overwritten. */
+ filename = (char *)(direntry + 1);
+ /* The byte after the filename is for the filetype, padding, or
+ tag, which is not used by GRUB. So it can be overwritten. */
filename[direntry->len] = '\0';
if (iterate_dir_call_hook (grub_be_to_cpu64(direntry->inode),
@@ -644,8 +741,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
break;
/* Select the next directory entry. */
- pos = GRUB_XFS_NEXT_DIRENT (pos, direntry->len);
- pos = GRUB_XFS_ROUND_TO_DIRENT (pos);
+ direntry = grub_xfs_next_de(dir->data, direntry);
}
}
grub_free (dirblock);
@@ -670,6 +766,7 @@ grub_xfs_mount (grub_disk_t disk)
if (!data)
return 0;
+ grub_dprintf("xfs", "Reading sb\n");
/* Read the superblock. */
if (grub_disk_read (disk, 0, 0,
sizeof (struct grub_xfs_sblock), &data->sblock))
@@ -697,9 +794,13 @@ grub_xfs_mount (grub_disk_t disk)
data->diropen.inode_read = 1;
data->bsize = grub_be_to_cpu32 (data->sblock.bsize);
data->agsize = grub_be_to_cpu32 (data->sblock.agsize);
+ data->hasftype = grub_xfs_sb_hasftype(data);
+ data->hascrc = grub_xfs_sb_hascrc(data);
data->disk = disk;
data->pos = 0;
+ grub_dprintf("xfs", "Reading root ino %llu\n",
+ (unsigned long long) grub_cpu_to_be64(data->sblock.rootino));
grub_xfs_read_inode (data, data->diropen.ino, &data->diropen.inode);
--
1.8.1.4
1
0
Hello community,
here is the log from the commit of package resource-agents for openSUSE:Factory checked in at 2014-06-26 07:57:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/resource-agents (Old)
and /work/SRC/openSUSE:Factory/.resource-agents.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "resource-agents"
Changes:
--------
--- /work/SRC/openSUSE:Factory/resource-agents/resource-agents.changes 2014-06-19 13:08:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.resource-agents.new/resource-agents.changes 2014-06-26 07:58:00.000000000 +0200
@@ -1,0 +2,15 @@
+Wed Jun 25 08:51:06 UTC 2014 - kgronlund(a)suse.com
+
+- High: conntrackd: allow probe to return OCF_RUNNING_MASTER
+- High: Filesystem: Add force_unmount option
+- High: fs-lib.sh: Force kill processes with access to shared libraries on mount point
+- High: VirtualDomain: restore advertised start and stop timeout values to a sane value.
+- Exclude Xen resource agent (bnc#882548)
+- Merged upstream:
+ - Removed 0001-Low-ldirectord-fix-the-list-output-to-include-ops-fl.patch
+ - Removed 0001-ldirectord-Add-systemd-unit-file-bnc-863250.patch
+- Dropped (bnc#882548)
+ - Removed xen-replace-xm-with-xl.patch
+- upstream cs: v3.9.5-432-g07aeed7c9035
+
+-------------------------------------------------------------------
Old:
----
0001-Low-ldirectord-fix-the-list-output-to-include-ops-fl.patch
0001-ldirectord-Add-systemd-unit-file-bnc-863250.patch
resource-agents-3.9.5+git410.tar.xz
xen-replace-xm-with-xl.patch
New:
----
resource-agents-3.9.5+git432.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ resource-agents.spec ++++++
--- /var/tmp/diff_new_pack.Yd7MAV/_old 2014-06-26 07:58:01.000000000 +0200
+++ /var/tmp/diff_new_pack.Yd7MAV/_new 2014-06-26 07:58:01.000000000 +0200
@@ -44,7 +44,7 @@
Summary: Open Source HA Reusable Cluster Resource Scripts
License: GPL-2.0 and LGPL-2.1+
Group: Productivity/Clustering/HA
-Version: 3.9.5+git410
+Version: 3.9.5+git432
Release: 0
Url: http://linux-ha.org/
Source: resource-agents-%{version}.tar.xz
@@ -63,10 +63,6 @@
Patch10: fix-sg_persist-for-code-normalization.patch
# PATCH-FIX-UPSTREAM: Require monitoring user as parameter (bnc#850589, bnc#859683), kgronlund(a)suse.com
Patch12: 0001-High-oracle-Require-monitoring-user-as-parameter-bnc.patch
-# PATCH-FIX-UPSTREAM: ldirectord: Fix the list output to include ops flag (bnc#847005)
-Patch13: 0001-Low-ldirectord-fix-the-list-output-to-include-ops-fl.patch
-# PATCH-FEATURE-UPSTREAM: ldirectord: Add systemd unit file (bnc#863250)
-Patch14: 0001-ldirectord-Add-systemd-unit-file-bnc-863250.patch
# PATCH-FIX-UPSTREAM: mysql: Update mysql with more sensible defaults (bnc#863844)
Patch16: 0001-Medium-mysql-Update-mysql-with-more-sensible-default.patch
# PATCH-FIX-UPSTREAM: sg_persist: fix commented by Lars
@@ -77,8 +73,6 @@
Patch19: fix-sg_persist-devs-required-and-not-defined.patch
# sg_persist: change sg_persist ocft not configure isci and let user prepare it manually
Patch20: sg_persist-ocft-not-configure-iscsi.patch
-# PATCH-FIX-UPSTREAM: Replace use of xm with xl (bnc#882548), kgronlund(a)suse.com
-Patch21: xen-replace-xm-with-xl.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Obsoletes: heartbeat-resources
@@ -157,14 +151,11 @@
%patch8 -p1
%patch10 -p1
%patch12 -p1
-%patch13 -p1
-%patch14 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
-%patch21 -p1
###########################################################
%build
@@ -230,6 +221,10 @@
ln -s /usr/lib/ocf/lib/heartbeat/$f
done
)
+# remove Xen agent (bnc#882548)
+rm -f $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/heartbeat/Xen
+rm -f $RPM_BUILD_ROOT%{_mandir}/man7/ocf_heartbeat_Xen.7*
+
###########################################################
%clean
++++++ resource-agents-3.9.5+git410.tar.xz -> resource-agents-3.9.5+git432.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/configure.ac new/resource-agents-3.9.5+git432/configure.ac
--- old/resource-agents-3.9.5+git410/configure.ac 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/configure.ac 2014-06-19 21:56:51.000000000 +0200
@@ -56,6 +56,26 @@
[ --with-pkg-name=name Override package name (if you're a packager needing to pretend) ],
[ PACKAGE_NAME="$withval" ])
+AC_PATH_PROGS(PKGCONFIG, pkg-config)
+if test x"${PKGCONFIG}" = x""; then
+ AC_MSG_ERROR(You need pkgconfig installed in order to build ${PACKAGE})
+fi
+
+AC_ARG_WITH([systemdsystemunitdir],
+ [AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,
+ [with_systemdsystemunitdir=auto])
+AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
+ def_systemdsystemunitdir=$($PKGCONFIG --variable=systemdsystemunitdir systemd)
+
+ AS_IF([test "x$def_systemdsystemunitdir" = "x"],
+ [AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
+ [AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
+ with_systemdsystemunitdir=no],
+ [with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
+AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
+ [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
+AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
+
dnl
dnl AM_INIT_AUTOMAKE([1.11.1 foreign dist-bzip2 dist-xz])
dnl
@@ -451,7 +471,6 @@
AC_PATH_PROGS(IFCONFIG, ifconfig, /sbin/ifconfig)
AC_PATH_PROGS(MAILCMD, mailx mail, mail)
AC_PATH_PROGS(EGREP, egrep)
-AC_PATH_PROGS(PKGCONFIG, pkg-config)
AC_SUBST(MAILCMD)
AC_SUBST(EGREP)
@@ -487,10 +506,6 @@
AC_CHECK_LIB(socket, socket)
AC_CHECK_LIB(gnugetopt, getopt_long) dnl if available
-if test x"${PKGCONFIG}" = x""; then
- AC_MSG_ERROR(You need pkgconfig installed in order to build ${PACKAGE})
-fi
-
if test "x${enable_thread_safe}" = "xyes"; then
GPKGNAME="gthread-2.0"
else
@@ -861,6 +876,8 @@
ldirectord/init.d/ldirectord \
ldirectord/init.d/ldirectord.debian \
ldirectord/init.d/ldirectord.debian.default \
+ ldirectord/systemd/Makefile \
+ ldirectord/systemd/ldirectord.service \
ldirectord/logrotate.d/Makefile \
ldirectord/OCF/Makefile \
ldirectord/OCF/ldirectord \
@@ -883,7 +900,7 @@
AC_MSG_RESULT([])
AC_MSG_RESULT([$PACKAGE configuration:])
AC_MSG_RESULT([ Version = ${VERSION}])
-AC_MSG_RESULT([ Build Version = 6f1dffee54d1d537b601204ef1c90913ee820201])
+AC_MSG_RESULT([ Build Version = 07aeed7c9035d8881ee2ec035054f6cb0b53e9f4])
AC_MSG_RESULT([ Features =${PKG_FEATURES}])
AC_MSG_RESULT([])
AC_MSG_RESULT([ Prefix = ${prefix}])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/heartbeat/Filesystem new/resource-agents-3.9.5+git432/heartbeat/Filesystem
--- old/resource-agents-3.9.5+git410/heartbeat/Filesystem 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/heartbeat/Filesystem 2014-06-19 21:56:51.000000000 +0200
@@ -196,6 +196,26 @@
<content type="boolean" default="false" />
</parameter>
+<parameter name="force_unmount">
+<longdesc lang="en">
+This option allows specifying how to handle processes that are
+currently accessing the mount directory.
+
+"true" : Default value, kill processes accessing mount point
+"safe" : Kill processes accessing mount point using methods that
+ avoid functions that could potentially block during process
+ detection
+"false" : Do not kill any processes.
+
+The 'safe' option uses shell logic to walk the /procs/ directory
+for pids using the mount point while the default option uses the
+fuser cli tool. fuser is known to perform operations that can potentially
+block if unresponsive nfs mounts are in use on the system.
+</longdesc>
+<shortdesc lang="en">Kill processes before unmount</shortdesc>
+<content type="boolean" default="true" />
+</parameter>
+
</parameters>
<actions>
@@ -400,6 +420,25 @@
}
# end of Filesystem_start
+get_pids()
+{
+ local dir=$1
+ local procs
+ local mmap_procs
+
+ if ocf_is_true "$FORCE_UNMOUNT"; then
+ if [ "X${HOSTOS}" = "XOpenBSD" ];then
+ fstat | grep $dir | awk '{print $3}'
+ else
+ $FUSER -m $dir 2>/dev/null
+ fi
+ elif [ "$FORCE_UNMOUNT" = "safe" ]; then
+ procs=$(find /proc/[0-9]*/ -type l -lname "${dir}/*" -or -lname "${dir}" 2>/dev/null | awk -F/ '{print $3}')
+ mmap_procs=$(grep " ${dir}" /proc/[0-9]*/maps | awk -F/ '{print $3}')
+ printf "${procs}\n${mmap_procs}" | sort | uniq
+ fi
+}
+
signal_processes() {
local dir=$1
local sig=$2
@@ -407,15 +446,9 @@
# fuser returns a non-zero return code if none of the
# specified files is accessed or in case of a fatal
# error.
- pids=$(
- if [ "X${HOSTOS}" = "XOpenBSD" ];then
- fstat | grep $dir | awk '{print $3}'
- else
- $FUSER -m $dir 2>/dev/null
- fi
- )
+ pids=$(get_pids "$dir")
if [ -z "$pids" ]; then
- ocf_log info "No processes on $dir were signalled"
+ ocf_log info "No processes on $dir were signalled. force_unmount is set to '$FORCE_UNMOUNT'"
return
fi
for pid in $pids; do
@@ -687,6 +720,11 @@
fi
# Check the OCF_RESKEY_ environment variables...
+FORCE_UNMOUNT="yes"
+if [ -n "${OCF_RESKEY_force_unmount}" ]; then
+ FORCE_UNMOUNT=$OCF_RESKEY_force_unmount
+fi
+
DEVICE=$OCF_RESKEY_device
FSTYPE=$OCF_RESKEY_fstype
if [ ! -z "$OCF_RESKEY_options" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/heartbeat/VirtualDomain new/resource-agents-3.9.5+git432/heartbeat/VirtualDomain
--- old/resource-agents-3.9.5+git410/heartbeat/VirtualDomain 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/heartbeat/VirtualDomain 2014-06-19 21:56:51.000000000 +0200
@@ -167,8 +167,8 @@
</parameters>
<actions>
-<action name="start" timeout="$OCF_RESKEY_CRM_meta_timeout_default" />
-<action name="stop" timeout="$OCF_RESKEY_CRM_meta_timeout_default" />
+<action name="start" timeout="90" />
+<action name="stop" timeout="90" />
<action name="status" depth="0" timeout="30" interval="10" />
<action name="monitor" depth="0" timeout="30" interval="10" />
<action name="migrate_from" timeout="60" />
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/heartbeat/conntrackd new/resource-agents-3.9.5+git432/heartbeat/conntrackd
--- old/resource-agents-3.9.5+git410/heartbeat/conntrackd 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/heartbeat/conntrackd 2014-06-19 21:56:51.000000000 +0200
@@ -284,7 +284,7 @@
EOF
}
-statefile=conntrackd.${OCF_RESOURCE_INSTANCE}.master
+statefile=conntrackd.${OCF_RESOURCE_INSTANCE//:[0-9]*}.master
master_score=1000
slave_score=100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/heartbeat/db2 new/resource-agents-3.9.5+git432/heartbeat/db2
--- old/resource-agents-3.9.5+git410/heartbeat/db2 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/heartbeat/db2 2014-06-19 21:56:51.000000000 +0200
@@ -132,6 +132,9 @@
db2_validate() {
local db2home db2sql db2instance
+ # db2 uses korn shell
+ check_binary "ksh"
+
# check required instance vars
if [ -z "$OCF_RESKEY_instance" ]
then
@@ -208,6 +211,14 @@
return $OCF_SUCCESS
}
+master_score()
+{
+ if ! have_binary "crm_master"; then
+ return
+ fi
+
+ crm_master $*
+}
#
# Run the given command as db2 instance user
@@ -380,8 +391,17 @@
#
db2_start() {
local output start_cmd db
+ local start_opts="dbpartitionnum $db2node"
- if output=$(runasdb2 db2start dbpartitionnum $db2node)
+ # If we detect that db partitions are not in use, and no
+ # partition is explicitly specified, activate without
+ # partition information. This allows db2 instances without
+ # partition support to be managed.
+ if [ -z "$OCF_RESKEY_dbpartitionnum" ] && ! [ -a "$db2sql/db2nodes.cfg" ]; then
+ start_opts=""
+ fi
+
+ if output=$(runasdb2 db2start $start_opts)
then
ocf_log info "DB2 instance $instance($db2node) started: $output"
else
@@ -473,10 +493,15 @@
#
db2_stop_bg() {
local rc output
+ local stop_opts="dbpartitionnum $db2node"
rc=$OCF_SUCCESS
- if output=$(runasdb2 db2stop force dbpartitionnum $db2node)
+ if [ -z "$OCF_RESKEY_dbpartitionnum" ] && ! [ -a "$db2sql/db2nodes.cfg" ]; then
+ stop_opts=""
+ fi
+
+ if output=$(runasdb2 db2stop force $stop_opts)
then
ocf_log info "DB2 instance $instance($db2node) stopped: $output"
else
@@ -502,13 +527,13 @@
local stop_timeout grace_timeout stop_bg_pid i must_kill
# remove master score
- crm_master -D -l reboot
+ master_score -D -l reboot
# be very early here in order to avoid stale data
rm -f $STATE_FILE
- if ! db2_instance_status
- then
+ db2_instance_status
+ if [ $? -eq $OCF_NOT_RUNNING ]; then
ocf_log info "DB2 instance $instance already stopped"
return $OCF_SUCCESS
fi
@@ -585,7 +610,12 @@
local pscount
pscount=$(runasdb2 $db2bin/db2nps $db2node | cut -c9- | grep ' db2[^ ]' | wc -l)
- test $pscount -ge 4
+ if [ $pscount -ge 4 ]; then
+ return $OCF_SUCCESS;
+ elif [ $pscount -ge 1 ]; then
+ return $OCF_GENERIC_ERR
+ fi
+ return $OCF_NOT_RUNNING
}
#
@@ -626,12 +656,14 @@
#
db2_monitor() {
local CMD output hadr db
+ local rc
- if ! db2_instance_status
- then
+ db2_instance_status
+ rc=$?
+ if [ $rc -ne $OCF_SUCCESS ]; then
# instance is dead remove master score
- crm_master -D -l reboot
- exit $OCF_NOT_RUNNING
+ master_score -D -l reboot
+ exit $rc
fi
[ $db2node = 0 ] || return 0
@@ -667,22 +699,22 @@
ocf_log err "DB2 message: $output"
# dead primary, remove master score
- crm_master -D -l reboot
+ master_score -D -l reboot
return $OCF_ERR_GENERIC
esac
fi
ocf_log debug "DB2 database $instance($db2node)/$db appears to be working"
- ocf_is_ms && crm_master -v 10000 -l reboot
+ ocf_is_ms && master_score -v 10000 -l reboot
;;
Standby/*Peer)
- crm_master -v 8000 -l reboot
+ master_score -v 8000 -l reboot
;;
Standby/*)
ocf_log warn "DB2 database $instance($db2node)/$db in status $hadr can never be promoted"
- crm_master -D -l reboot
+ master_score -D -l reboot
;;
*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/heartbeat/ocf-shellfuncs.in new/resource-agents-3.9.5+git432/heartbeat/ocf-shellfuncs.in
--- old/resource-agents-3.9.5+git410/heartbeat/ocf-shellfuncs.in 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/heartbeat/ocf-shellfuncs.in 2014-06-19 21:56:51.000000000 +0200
@@ -22,7 +22,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
-# Build version: 6f1dffee54d1d537b601204ef1c90913ee820201
+# Build version: 07aeed7c9035d8881ee2ec035054f6cb0b53e9f4
# TODO: Some of this should probably split out into a generic OCF
# library for shell scripts, but for the time being, we'll just use it
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/heartbeat/rsyncd new/resource-agents-3.9.5+git432/heartbeat/rsyncd
--- old/resource-agents-3.9.5+git410/heartbeat/rsyncd 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/heartbeat/rsyncd 2014-06-19 21:56:51.000000000 +0200
@@ -164,7 +164,7 @@
if grep -v "^#" "$CONF_FILE" | grep "pid file" > /dev/null ; then
$COMMAND;
if [ $? -ne 0 ]; then
- ocf_log err "Error. rsycn daemon returned error $?."
+ ocf_log err "Error. rsync daemon returned error $?."
exit $OCF_ERR_GENERIC
fi
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/ldirectord/Makefile.am new/resource-agents-3.9.5+git432/ldirectord/Makefile.am
--- old/resource-agents-3.9.5+git410/ldirectord/Makefile.am 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/ldirectord/Makefile.am 2014-06-19 21:56:51.000000000 +0200
@@ -22,7 +22,7 @@
EXTRA_DIST = ldirectord ldirectord.cf
-SUBDIRS = logrotate.d init.d OCF
+SUBDIRS = logrotate.d init.d OCF systemd
ldirectord.8: ldirectord
$(POD2MAN) --section=8 $< > $@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/ldirectord/ldirectord.in new/resource-agents-3.9.5+git432/ldirectord/ldirectord.in
--- old/resource-agents-3.9.5+git410/ldirectord/ldirectord.in 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/ldirectord/ldirectord.in 2014-06-19 21:56:51.000000000 +0200
@@ -700,6 +700,13 @@
Default: no separate logging of service checks.
+B<ops = >B<yes> | B<no>
+
+Specify that a virtual service uses one-packet scheduling. This option
+can be used only for UDP services. If this option is specified, all connections
+are created only to schedule one packet. Option is useful to schedule
+UDP packets from same client port to different real servers.
+
=head1 IPv6
Directives for IPv6 are virtual6, real6, fallback6.
@@ -1364,6 +1371,7 @@
$vsrv{num_connects} = 0;
$vsrv{httpmethod} = "GET";
$vsrv{secret} = "";
+ $vsrv{ops} = "no";
push(@VIRTUAL, \%vsrv);
while(<CFGFILE>) {
$line++;
@@ -1497,6 +1505,12 @@
} else {
&config_error($line, "invalid protocol");
}
+ } elsif ($rcmd =~ /^ops\s*=\s*(.*)/) {
+ if ($1 eq "yes" || $1 eq "no") {
+ $vsrv{ops} = $1;
+ } else {
+ &config_error($line, "ops must be 'yes' or 'no'");
+ }
} elsif ($rcmd =~ /^service\s*=\s*(.*)/) {
$1 =~ /(\w+)/ && ($1 eq "dns" ||
$1 eq "ftp" ||
@@ -2239,6 +2253,9 @@
$$v{proto} = "-f";
}
$$v{flags} = "$$v{proto} " . &get_virtual_option($v) . " ";
+ if ($$v{protocol} eq "udp" && $$v{ops} eq "yes") {
+ $$v{flags} .= "-o ";
+ }
$$v{flags} .= "-s $$v{scheduler} " if defined ($$v{scheduler});
if (defined $$v{persistent}) {
$$v{flags} .= "-p $$v{persistent} ";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/ldirectord/systemd/Makefile.am new/resource-agents-3.9.5+git432/ldirectord/systemd/Makefile.am
--- old/resource-agents-3.9.5+git410/ldirectord/systemd/Makefile.am 1970-01-01 01:00:00.000000000 +0100
+++ new/resource-agents-3.9.5+git432/ldirectord/systemd/Makefile.am 2014-06-19 21:56:51.000000000 +0200
@@ -0,0 +1,24 @@
+#
+# ldirectord: Linux-HA heartbeat code
+#
+# Copyright (C) 2001 Michael Moerz
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+MAINTAINERCLEANFILES = Makefile.in
+
+if HAVE_SYSTEMD
+systemdsystemunit_DATA = ldirectord.service
+endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/ldirectord/systemd/ldirectord.service.in new/resource-agents-3.9.5+git432/ldirectord/systemd/ldirectord.service.in
--- old/resource-agents-3.9.5+git410/ldirectord/systemd/ldirectord.service.in 1970-01-01 01:00:00.000000000 +0100
+++ new/resource-agents-3.9.5+git432/ldirectord/systemd/ldirectord.service.in 2014-06-19 21:56:51.000000000 +0200
@@ -0,0 +1,11 @@
+[Unit]
+Description=Monitor and administer real servers in a LVS cluster of load balanced virtual servers
+
+[Service]
+ExecStart=@sbindir@/ldirectord start
+ExecStartPost=/usr/bin/touch /var/lock/subsys/ldirectord
+ExecStop=@sbindir@/ldirectord stop
+ExecStopPost=/usr/bin/rm -f /var/lock/subsys/ldirectord
+ExecReload=@sbindir@/ldirectord reload
+PIDFile=/var/run/ldirectord.ldirectord.pid
+Type=forking
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/resource-agents.spec.in new/resource-agents-3.9.5+git432/resource-agents.spec.in
--- old/resource-agents-3.9.5+git410/resource-agents.spec.in 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/resource-agents.spec.in 2014-06-19 21:56:51.000000000 +0200
@@ -126,6 +126,10 @@
Requires(post): /sbin/chkconfig
Requires(preun):/sbin/chkconfig
%endif
+%if %{defined systemd_requires}
+BuildRequires: systemd
+%{?systemd_requires}
+%endif
%description -n ldirectord
The Linux Director Daemon (ldirectord) was written by Jacob Rief.
@@ -174,6 +178,9 @@
%configure \
%{?conf_opt_rsctmpdir:%conf_opt_rsctmpdir} \
%{conf_opt_fatal} \
+%if %{defined _unitdir}
+ --with-systemdsystemunitdir=%{_unitdir} \
+%endif
--with-pkg-name=%{name} \
--with-ras-set=%{rasset}
@@ -198,7 +205,11 @@
test -d %{buildroot}/sbin || mkdir %{buildroot}/sbin
(
cd %{buildroot}/sbin
- ln -sf /%{_sysconfdir}/init.d/ldirectord rcldirectord
+%if %{defined _unitdir}
+ ln -s /usr/sbin/service rcldirectord
+%else
+ ln -sf /%{_sysconfdir}/init.d/ldirectord rcldirectord
+%endif
) || true
%endif
%endif
@@ -270,10 +281,26 @@
%if 0%{?suse_version}
%preun -n ldirectord
+%if %{defined _unitdir}
+%service_del_preun ldirectord.service
+%else
%stop_on_removal ldirectord
+%endif
%postun -n ldirectord
+%if %{defined _unitdir}
+%service_del_postun ldirectord.service
+%else
%insserv_cleanup
%endif
+%post -n ldirectord
+%if %{defined _unitdir}
+%service_add_post ldirectord.service
+%endif
+%pre -n ldirectord
+%if %{defined _unitdir}
+%service_add_pre ldirectord.service
+%endif
+%endif
%if 0%{?fedora}
%preun -n ldirectord
@@ -292,7 +319,12 @@
%dir %{_sysconfdir}/ha.d
%dir %{_sysconfdir}/ha.d/resource.d
%{_sysconfdir}/ha.d/resource.d/ldirectord
+%if %{defined _unitdir}
+%{_unitdir}/ldirectord.service
+%exclude %{_sysconfdir}/init.d/ldirectord
+%else
%{_sysconfdir}/init.d/ldirectord
+%endif
%if 0%{?suse_version}
/sbin/rcldirectord
%endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/rgmanager/src/resources/Makefile.am new/resource-agents-3.9.5+git432/rgmanager/src/resources/Makefile.am
--- old/resource-agents-3.9.5+git410/rgmanager/src/resources/Makefile.am 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/rgmanager/src/resources/Makefile.am 2014-06-19 21:56:51.000000000 +0200
@@ -26,7 +26,7 @@
script.sh netfs.sh clusterfs.sh smb.sh \
apache.sh openldap.sh samba.sh mysql.sh \
postgres-8.sh tomcat-5.sh lvm.sh \
- vm.sh SAPInstance SAPDatabase named.sh \
+ vm.sh SAPInstance SAPDatabase named.sh db2.sh \
ASEHAagent.sh drbd.sh nfsserver.sh \
tomcat-6.sh orainstance.sh oralistener.sh oracledb.sh \
bind-mount.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/rgmanager/src/resources/db2.sh new/resource-agents-3.9.5+git432/rgmanager/src/resources/db2.sh
--- old/resource-agents-3.9.5+git410/rgmanager/src/resources/db2.sh 1970-01-01 01:00:00.000000000 +0100
+++ new/resource-agents-3.9.5+git432/rgmanager/src/resources/db2.sh 2014-06-19 21:56:51.000000000 +0200
@@ -0,0 +1,133 @@
+#!/bin/bash
+#
+# Copyright (c) 2011 Holger Teutsch <holger.teutsch(a)web.de>
+# Copyright (c) 2014 David Vossel <dvossel(a)redhat.com>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+# NOTE:
+#
+# This agent is a wrapper around the heartbeat/db2 agent which limits the heartbeat
+# db2 agent to Standard role support. This allows cluster managers such as rgmanager
+# which do not have multi-state resource support to manage db2 instances with
+# a limited feature set.
+#
+
+export LC_ALL=C
+export LANG=C
+export PATH=/bin:/sbin:/usr/bin:/usr/sbin
+. $(dirname $0)/ocf-shellfuncs
+
+meta_data() {
+cat <<END
+<?xml version="1.0"?>
+<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
+<resource-agent name="db2.sh">
+<version>1.0</version>
+<longdesc lang="en">
+Resource Agent that manages an IBM DB2 LUW databases in Standard role. Multiple partitions are supported.
+
+When partitions are in use, each partition must be configured as a separate primitive resource.
+
+</longdesc>
+<shortdesc lang="en">Resource Agent that manages an IBM DB2 LUW databases in Standard role with multiple partition support.</shortdesc>
+
+<parameters>
+<parameter name="instance" unique="1" required="1">
+<longdesc lang="en">
+The instance of the database(s).
+</longdesc>
+<shortdesc lang="en">instance</shortdesc>
+<content type="string" default="" />
+</parameter>
+<parameter name="dblist" unique="0" required="0">
+<longdesc lang="en">
+List of databases to be managed, e.g "db1 db2".
+Defaults to all databases in the instance.
+</longdesc>
+<shortdesc lang="en">List of databases to be managed</shortdesc>
+<content type="string"/>
+</parameter>
+<parameter name="dbpartitionnum" unique="0" required="0">
+<longdesc lang="en">
+The number of the partion (DBPARTITIONNUM) to be managed.
+</longdesc>
+<shortdesc lang="en">database partition number (DBPARTITIONNUM)</shortdesc>
+<content type="string" default="0" />
+</parameter>
+</parameters>
+
+<actions>
+<action name="start" timeout="120"/>
+<action name="stop" timeout="120"/>
+<action name="monitor" depth="0" timeout="60" interval="20"/>
+<action name="monitor" depth="0" timeout="60" role="Master" interval="22"/>
+<action name="validate-all" timeout="5"/>
+<action name="meta-data" timeout="5"/>
+</actions>
+</resource-agent>
+END
+}
+
+heartbeat_db2_wrapper()
+{
+ # default heartbeat agent ocf root.
+ export OCF_ROOT=/usr/lib/ocf
+ heartbeat_db2="${OCF_ROOT}/resource.d/heartbeat/db2"
+
+ if ! [ -a $heartbeat_db2 ]; then
+ echo "heartbeat db2 agent not found at '${heartbeat_db2}'"
+ exit $OCF_ERR_INSTALLED
+ fi
+
+ $heartbeat_db2 $1
+}
+
+case $1 in
+ meta-data)
+ meta_data
+ exit 0
+ ;;
+ validate-all)
+ heartbeat_db2_wrapper $1
+ exit $?
+ ;;
+ start)
+ heartbeat_db2_wrapper $1
+ exit $?
+ ;;
+ stop)
+ heartbeat_db2_wrapper $1
+ exit $?
+ ;;
+ status|monitor)
+ heartbeat_db2_wrapper "monitor"
+ exit $?
+ ;;
+ restart)
+ heartbeat_db2_wrapper "stop"
+ rc=$?
+ if [ $rc -ne 0 ]; then
+ exit $rc
+ fi
+ heartbeat_db2_wrapper "start"
+ exit $?
+ ;;
+ *)
+ echo "Usage: db2.sh {start|stop|monitor|validate-all|meta-data}"
+ exit $OCF_ERR_UNIMPLEMENTED
+ ;;
+esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/rgmanager/src/resources/nfsserver.sh new/resource-agents-3.9.5+git432/rgmanager/src/resources/nfsserver.sh
--- old/resource-agents-3.9.5+git410/rgmanager/src/resources/nfsserver.sh 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/rgmanager/src/resources/nfsserver.sh 2014-06-19 21:56:51.000000000 +0200
@@ -462,12 +462,12 @@
# sm-notify can prevent umount of /var/lib/nfs/statd if
# it is still trying to notify unresponsive clients.
stop_process sm-notify
- if [ $? -ne 0]; then
+ if [ $? -ne 0 ]; then
ret=1
fi
stop_process rpc.statd
- if [ $? -ne 0]; then
+ if [ $? -ne 0 ]; then
ret=1
fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/resource-agents-3.9.5+git410/rgmanager/src/resources/utils/fs-lib.sh new/resource-agents-3.9.5+git432/rgmanager/src/resources/utils/fs-lib.sh
--- old/resource-agents-3.9.5+git410/rgmanager/src/resources/utils/fs-lib.sh 2014-05-29 23:00:27.000000000 +0200
+++ new/resource-agents-3.9.5+git432/rgmanager/src/resources/utils/fs-lib.sh 2014-06-19 21:56:51.000000000 +0200
@@ -273,6 +273,7 @@
kill_procs_using_mount () {
declare mp
declare procs
+ declare mmap_procs
if [ $# -lt 1 -o -z "$1" ]; then
ocf_log err "Usage: kill_procs_using_mount mount_point [signal]"
@@ -290,6 +291,10 @@
# anything held open in mount point after the slash
procs=$(find /proc/[0-9]*/ -type l -lname "${mp}/*" -or -lname "${mp}" 2>/dev/null | awk -F/ '{print $3}' | uniq)
+ # anything with memory mapping to something in the mountpoint
+ mmap_procs=$(grep " ${mp}" /proc/[0-9]*/maps | awk -F/ '{print $3}' | uniq)
+ procs=$(echo -e "${procs}\n${mmap_procs}" | sort | uniq)
+
for pid in $procs; do
if [ -n "$2" ]; then
kill -s $2 $pid
--
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 sg3_utils for openSUSE:Factory checked in at 2014-06-26 07:57:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sg3_utils (Old)
and /work/SRC/openSUSE:Factory/.sg3_utils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sg3_utils"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sg3_utils/sg3_utils.changes 2014-06-24 15:15:37.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.sg3_utils.new/sg3_utils.changes 2014-06-26 07:57:59.000000000 +0200
@@ -1,0 +2,12 @@
+Wed Jun 25 07:53:48 UTC 2014 - rmilasan(a)suse.com
+
+- Fix missing rule for generating links for partitions also (bnc#883032)
+ Add:
+ sg3_utils-fix-missing-rule-for-scsi_serial-partitions.patch
+
+-------------------------------------------------------------------
+Fri Jun 20 13:15:12 UTC 2014 - jengelh(a)inai.de
+
+- Add symbol versions to library
+
+-------------------------------------------------------------------
New:
----
sg3_utils-fix-missing-rule-for-scsi_serial-partitions.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sg3_utils.spec ++++++
--- /var/tmp/diff_new_pack.tPdRS6/_old 2014-06-26 07:58:00.000000000 +0200
+++ /var/tmp/diff_new_pack.tPdRS6/_new 2014-06-26 07:58:00.000000000 +0200
@@ -26,6 +26,7 @@
Url: http://sg.danny.cz/sg/sg3_utils.html
Source: http://sg.danny.cz/sg/p/%name-%version.tar.xz
+Patch0: sg3_utils-fix-missing-rule-for-scsi_serial-partitions.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: udev
BuildRequires: xz
@@ -80,9 +81,14 @@
%prep
%setup -q
+%patch0 -p1
%build
%configure --disable-static --with-pic
+# sg3_utils has added functions between (for example) 1.36 and 1.39
+# without tracking them. Add symvers so RPM updates work in all cases.
+echo 'V_%version { global: *; };' >symvers
+make %{?_smp_mflags} -C lib LDFLAGS="-Wl,--version-script=$PWD/symvers"
make %{?_smp_mflags}
%install
++++++ sg3_utils-fix-missing-rule-for-scsi_serial-partitions.patch ++++++
Index: sg3_utils-1.39/scripts/58-scsi-sg3_symlink.rules
===================================================================
--- sg3_utils-1.39/scripts/58-scsi-sg3_symlink.rules
+++ sg3_utils-1.39/scripts/58-scsi-sg3_symlink.rules
@@ -10,6 +10,7 @@ ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO
# Select which identifier to use per default
# 0: vpd page 0x80 identifier
ENV{SCSI_IDENT_SERIAL}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-S$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_SERIAL}"
+ENV{SCSI_IDENT_SERIAL}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-S$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_SERIAL}-part%n"
# 1: NAA identifier (prefix 3)
ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-3$env{SCSI_IDENT_LUN_NAA}"
ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-3$env{SCSI_IDENT_LUN_NAA}-part%n"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0