Accepting request 330115 from home:ZRen:branches:network:ha-clustering:Factory

Add systemd support for o2cb and ocfs2 service. 

1. I've tested changes on opensuse13.2 and sle12 sp1. It works well. 
2. Backforward compatible.
3. It will be added into sle12 once it become mature in opensuse.

OBS-URL: https://build.opensuse.org/request/show/330115
OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/ocfs2-tools?expand=0&rev=84
This commit is contained in:
Goldwyn Rodrigues 2015-09-22 12:30:33 +00:00 committed by Git OBS Bridge
parent c57803101a
commit ba2ae35d8f
8 changed files with 850 additions and 9 deletions

View File

@ -0,0 +1,163 @@
From: Junxiao Bi <junxiao.bi@oracle.com>
To: <ocfs2-tools-devel@oss.oracle.com>
Date: 6/29/2015 4:29 PM
Subject: [Ocfs2-tools-devel] [PATCH 1/6] ocfs2-tools: add build scripts for rhel7
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
---
vendor/Makefile | 2 +-
vendor/rhel7/Makefile | 10 +++++++
vendor/rhel7/Vendor.make | 10 +++++++
vendor/rhel7/rpmarch.guess | 68 ++++++++++++++++++++++++++++++++++++++++++++
vendor/rhel7/vendor.guess | 13 +++++++++
5 files changed, 102 insertions(+), 1 deletion(-)
create mode 100644 vendor/rhel7/Makefile
create mode 100644 vendor/rhel7/Vendor.make
create mode 100755 vendor/rhel7/rpmarch.guess
create mode 100755 vendor/rhel7/vendor.guess
diff --git a/vendor/Makefile b/vendor/Makefile
index 8819586..58ac84d 100644
--- a/vendor/Makefile
+++ b/vendor/Makefile
@@ -2,6 +2,6 @@ TOPDIR = ..
include $(TOPDIR)/Preamble.make
-SUBDIRS = common rhel6 rhel5 sles10 rhel4 sles9 fc7 fc8 fc9
+SUBDIRS = common rhel7 rhel6 rhel5 sles10 rhel4 sles9 fc7 fc8 fc9
include $(TOPDIR)/Postamble.make
diff --git a/vendor/rhel7/Makefile b/vendor/rhel7/Makefile
new file mode 100644
index 0000000..7afe47c
--- /dev/null
+++ b/vendor/rhel7/Makefile
@@ -0,0 +1,10 @@
+TOPDIR = ../..
+
+include $(TOPDIR)/Preamble.make
+
+DIST_FILES = \
+ rpmarch.guess \
+ Vendor.make \
+ vendor.guess
+
+include $(TOPDIR)/Postamble.make
diff --git a/vendor/rhel7/Vendor.make b/vendor/rhel7/Vendor.make
new file mode 100644
index 0000000..b8fc25e
--- /dev/null
+++ b/vendor/rhel7/Vendor.make
@@ -0,0 +1,10 @@
+#
+# RHEL 7
+#
+
+TOOLSARCH = $(shell $(TOPDIR)/vendor/rhel7/rpmarch.guess tools $(TOPDIR))
+VENDOR_EXTENSION = el7
+
+include $(TOPDIR)/vendor/common/Vendor.make
+
+packages: rpm
diff --git a/vendor/rhel7/rpmarch.guess b/vendor/rhel7/rpmarch.guess
new file mode 100755
index 0000000..8519589
--- /dev/null
+++ b/vendor/rhel7/rpmarch.guess
@@ -0,0 +1,68 @@
+#! /bin/sh
+
+mode="$1"
+srcdir="$2"
+
+host_cpu=
+
+
+QUERYFILE=/etc/redhat-release
+
+if test -n "$QUERYFILE"; then
+ host_cpu="`rpm -qf $QUERYFILE --queryformat \"%{ARCH}\"`"
+fi
+
+if test -z "$host_cpu" -o "$host_cpu" = "noarch" ; then
+ host_alias=`$srcdir/config.guess`
+ host=`$srcdir/config.sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+fi
+
+case "$host_cpu" in
+ x86_64|ia64|s390x)
+ TOOLSARCH="$host_cpu"
+ ;;
+ i386|i486|i586|i686|i786|k6|k7)
+ TOOLSARCH="i386"
+ ;;
+ ppc|ppc64|ppciseries|ppcpseries|ppc64iseries|ppc64pseries|powerpc|powerpc64)
+ TOOLSARCH="ppc"
+ ;;
+ *)
+ echo "rpmarch.guess: Warning: unknown RPM CPU architecture: $host_cpu" >&2
+ TOOLSARCH=""
+ ;;
+esac
+
+# Only a few of these need to be overwritten from RPM's default
+case "$host_cpu" in
+ i386|i586)
+ MODULEARCH="i686"
+ ;;
+ ppc|ppc64|ppciseries|ppcpseries|ppc64iseries|ppc64pseries|powerpc|powerpc64)
+ MODULEARCH="ppc64"
+ ;;
+ *)
+ MODULEARCH=""
+ ;;
+esac
+
+case "$mode" in
+ module)
+ if [ -n "$MODULEARCH" ] ; then
+ echo "--target $MODULEARCH"
+ fi
+ ;;
+ tools)
+ if [ -n "$TOOLSARCH" ] ; then
+ echo "--target $TOOLSARCH"
+ fi
+ ;;
+ *)
+ echo "rpmarch.guess: Invalid mode: $mode" >&2
+ echo "error"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/vendor/rhel7/vendor.guess b/vendor/rhel7/vendor.guess
new file mode 100755
index 0000000..c3a8b12
--- /dev/null
+++ b/vendor/rhel7/vendor.guess
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+if [ ! -f /etc/redhat-release ]
+then
+ exit 1
+fi
+
+case "`rpm -qf /etc/redhat-release --qf '%{VERSION}' 2>/dev/null`" in
+ 7*) ;;
+ *) exit 1;;
+esac
+
+exit 0
--
1.7.9.5
_______________________________________________
Ocfs2-tools-devel mailing list
Ocfs2-tools-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-tools-devel

View File

@ -0,0 +1,309 @@
From: Junxiao Bi <junxiao.bi@oracle.com>
To: <ocfs2-tools-devel@oss.oracle.com>
Date: 6/29/2015 4:29 PM
Subject: [Ocfs2-tools-devel] [PATCH 2/6] ocfs2-tools: add systemd support
When systemd is enabled, the old way to start/stop/status service
should be disabled, so move /etc/init.d/o2cb and /etc/init.d/ocfs2
to /sbin.
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
---
vendor/common/Makefile | 4 ++-
vendor/common/Vendor.make | 1 +
vendor/common/o2cb.service | 14 ++++++++
vendor/common/ocfs2-tools.spec-generic.in | 55 +++++++++++++++++++++++------
vendor/common/ocfs2.service | 14 ++++++++
vendor/fc7/Vendor.make | 1 +
vendor/fc8/Vendor.make | 1 +
vendor/fc9/Vendor.make | 1 +
vendor/rhel4/Vendor.make | 1 +
vendor/rhel5/Vendor.make | 1 +
vendor/rhel6/Vendor.make | 1 +
vendor/rhel7/Vendor.make | 1 +
vendor/sles10/Vendor.make | 1 +
vendor/sles9/Vendor.make | 1 +
14 files changed, 85 insertions(+), 12 deletions(-)
create mode 100644 vendor/common/o2cb.service
create mode 100644 vendor/common/ocfs2.service
diff --git a/vendor/common/Makefile b/vendor/common/Makefile
index 864a71e..3c8902c 100644
--- a/vendor/common/Makefile
+++ b/vendor/common/Makefile
@@ -25,6 +25,8 @@ DIST_FILES = \
ocfs2-tools.spec-generic.in \
51-ocfs2.rules \
Vendor.make \
- o2cb.sysconfig.5.in
+ o2cb.sysconfig.5.in \
+ o2cb.service \
+ ocfs2.service
include $(TOPDIR)/Postamble.make
diff --git a/vendor/common/Vendor.make b/vendor/common/Vendor.make
index e92884e..2526cdc 100644
--- a/vendor/common/Vendor.make
+++ b/vendor/common/Vendor.make
@@ -20,6 +20,7 @@ $(TOPDIR)/ocfs2-tools-$(DIST_VERSION)-$(PKG_VERSION).$(VENDOR_EXTENSION).src.rpm
-e 's,@@PYVERSION@@,'$(PYVERSION)',g' \
-e 's,@@COMPILE_PY@@,'$(COMPILE_PY)',g' \
-e 's,@@CHKCONFIG_DEP@@,'$(CHKCONFIG_DEP)',g' \
+ -e 's,@@SYSTEMD_ENABLED@@,'$(SYSTEMD_ENABLED)',g' \
< "$(TOPDIR)/vendor/common/ocfs2-tools.spec-generic" \
> "$(TOPDIR)/vendor/common/ocfs2-tools.spec"
$(RPMBUILD) -bs --define "_sourcedir $(RPM_TOPDIR)" --define "_srcrpmdir $(RPM_TOPDIR)" "$(TOPDIR)/vendor/common/ocfs2-tools.spec"
diff --git a/vendor/common/o2cb.service b/vendor/common/o2cb.service
new file mode 100644
index 0000000..94e2b1a
--- /dev/null
+++ b/vendor/common/o2cb.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Load o2cb Modules
+Requires=network.service
+After=network.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/sbin/o2cb.init enable
+ExecStop=/sbin/o2cb.init disable
+ExecRestart=/sbin/o2cb.init restart
+
+[Install]
+WantedBy=multi-user.target
diff --git a/vendor/common/ocfs2-tools.spec-generic.in b/vendor/common/ocfs2-tools.spec-generic.in
index 4fabc8c..9527908 100644
--- a/vendor/common/ocfs2-tools.spec-generic.in
+++ b/vendor/common/ocfs2-tools.spec-generic.in
@@ -17,6 +17,7 @@
%define build_ocfs2console 0
%define compile_py 0
+%define systemd_enabled @@SYSTEMD_ENABLED@@
%if %{build_ocfs2console}
%define compile_py @@COMPILE_PY@@
@@ -80,9 +81,18 @@ make
%install
-mkdir -p $RPM_BUILD_ROOT/etc/init.d
-cp -f vendor/common/o2cb.init $RPM_BUILD_ROOT/etc/init.d/o2cb
-cp -f vendor/common/ocfs2.init $RPM_BUILD_ROOT/etc/init.d/ocfs2
+%if %{systemd_enabled}
+ mkdir -p $RPM_BUILD_ROOT/usr/lib/systemd/system
+ cp -f vendor/common/o2cb.service $RPM_BUILD_ROOT/usr/lib/systemd/system/
+ cp -f vendor/common/ocfs2.service $RPM_BUILD_ROOT/usr/lib/systemd/system/
+ mkdir -p $RPM_BUILD_ROOT/sbin
+ cp -f vendor/common/o2cb.init $RPM_BUILD_ROOT/sbin
+ cp -f vendor/common/ocfs2.init $RPM_BUILD_ROOT/sbin
+%else
+ mkdir -p $RPM_BUILD_ROOT/etc/init.d
+ cp -f vendor/common/o2cb.init $RPM_BUILD_ROOT/etc/init.d/o2cb
+ cp -f vendor/common/ocfs2.init $RPM_BUILD_ROOT/etc/init.d/ocfs2
+%endif
if [ -f /etc/redhat-release ]
then
# Red Hat chkconfig is completely and utterly broken
@@ -104,14 +114,27 @@ rm -rf "$RPM_BUILD_ROOT"
%post
-/sbin/chkconfig --add o2cb >/dev/null
-/sbin/chkconfig --add ocfs2 >/dev/null
+%if !%{systemd_enabled}
+ /sbin/chkconfig --add o2cb >/dev/null
+ /sbin/chkconfig --add ocfs2 >/dev/null
+%else
+ # clean up start/kill entry in /etc/rc*.d/ when upgrade.
+ if [ -f /etc/init.d/o2cb ]; then
+ /sbin/chkconfig --del o2cb >/dev/null
+ fi
+
+ if [ -f /etc/init.d/ocfs2 ]; then
+ /sbin/chkconfig --del ocfs2 >/dev/null
+ fi
+%endif
%preun
-if [ $1 = 0 ]; then # execute this only if we are NOT doing an upgrade
- /sbin/chkconfig --del ocfs2 >/dev/null
- /sbin/chkconfig --del o2cb >/dev/null
-fi
+%if !%{systemd_enabled}
+ if [ $1 = 0 ]; then # execute this only if we are NOT doing an upgrade
+ /sbin/chkconfig --del ocfs2 >/dev/null
+ /sbin/chkconfig --del o2cb >/dev/null
+ fi
+%endif
%files
%defattr(-,root,root)
@@ -127,10 +150,17 @@ fi
/sbin/o2image
/sbin/o2cluster
/sbin/ocfs2_hb_ctl
-/usr/bin/o2info
-/usr/sbin/o2hbmonitor
+%if %{systemd_enabled}
+/sbin/o2cb.init
+/sbin/ocfs2.init
+/usr/lib/systemd/system/o2cb.service
+/usr/lib/systemd/system/ocfs2.service
+%else
/etc/init.d/o2cb
/etc/init.d/ocfs2
+%endif
+/usr/bin/o2info
+/usr/sbin/o2hbmonitor
%config(noreplace) /etc/sysconfig/o2cb
/usr/share/man/man8/debugfs.ocfs2.8.gz
/usr/share/man/man8/fsck.ocfs2.8.gz
@@ -172,6 +202,9 @@ fi
%changelog
+* Thu Jun 18 2015 Junxiao Bi <junxiao.bi@oracle.com>
+- Add systemd support
+
* Thu Jan 27 2005 Manish Singh <manish.singh@oracle.com>
- Add ocfs2console
diff --git a/vendor/common/ocfs2.service b/vendor/common/ocfs2.service
new file mode 100644
index 0000000..768f806
--- /dev/null
+++ b/vendor/common/ocfs2.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Load ocfs2 Modules
+Requires=o2cb.service
+After=o2cb.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/sbin/ocfs2.init start
+ExecStop=/sbin/ocfs2.init stop
+ExecReload=/sbin/ocfs2.init restart
+
+[Install]
+WantedBy=multi-user.target
diff --git a/vendor/fc7/Vendor.make b/vendor/fc7/Vendor.make
index 025de08..a3002af 100644
--- a/vendor/fc7/Vendor.make
+++ b/vendor/fc7/Vendor.make
@@ -4,6 +4,7 @@
TOOLSARCH = $(shell $(TOPDIR)/vendor/fc7/rpmarch.guess tools $(TOPDIR))
VENDOR_EXTENSION = fc7
+SYSTEMD_ENABLED = 0
include $(TOPDIR)/vendor/common/Vendor.make
diff --git a/vendor/fc8/Vendor.make b/vendor/fc8/Vendor.make
index 6a78602..ba9c4f0 100644
--- a/vendor/fc8/Vendor.make
+++ b/vendor/fc8/Vendor.make
@@ -4,6 +4,7 @@
TOOLSARCH = $(shell $(TOPDIR)/vendor/fc8/rpmarch.guess tools $(TOPDIR))
VENDOR_EXTENSION = fc8
+SYSTEMD_ENABLED = 0
include $(TOPDIR)/vendor/common/Vendor.make
diff --git a/vendor/fc9/Vendor.make b/vendor/fc9/Vendor.make
index db9fde1..64d03fd 100644
--- a/vendor/fc9/Vendor.make
+++ b/vendor/fc9/Vendor.make
@@ -4,6 +4,7 @@
TOOLSARCH = $(shell $(TOPDIR)/vendor/fc9/rpmarch.guess tools $(TOPDIR))
VENDOR_EXTENSION = fc9
+SYSTEMD_ENABLED = 0
include $(TOPDIR)/vendor/common/Vendor.make
diff --git a/vendor/rhel4/Vendor.make b/vendor/rhel4/Vendor.make
index 2245f44..5ce8e05 100644
--- a/vendor/rhel4/Vendor.make
+++ b/vendor/rhel4/Vendor.make
@@ -4,6 +4,7 @@
TOOLSARCH = $(shell $(TOPDIR)/vendor/rhel4/rpmarch.guess tools $(TOPDIR))
VENDOR_EXTENSION = el4
+SYSTEMD_ENABLED = 0
include $(TOPDIR)/vendor/common/Vendor.make
diff --git a/vendor/rhel5/Vendor.make b/vendor/rhel5/Vendor.make
index fb5b591..8156000 100644
--- a/vendor/rhel5/Vendor.make
+++ b/vendor/rhel5/Vendor.make
@@ -4,6 +4,7 @@
TOOLSARCH = $(shell $(TOPDIR)/vendor/rhel5/rpmarch.guess tools $(TOPDIR))
VENDOR_EXTENSION = el5
+SYSTEMD_ENABLED = 0
include $(TOPDIR)/vendor/common/Vendor.make
diff --git a/vendor/rhel6/Vendor.make b/vendor/rhel6/Vendor.make
index 8f4a470..20144a3 100644
--- a/vendor/rhel6/Vendor.make
+++ b/vendor/rhel6/Vendor.make
@@ -4,6 +4,7 @@
TOOLSARCH = $(shell $(TOPDIR)/vendor/rhel6/rpmarch.guess tools $(TOPDIR))
VENDOR_EXTENSION = el6
+SYSTEMD_ENABLED = 0
include $(TOPDIR)/vendor/common/Vendor.make
diff --git a/vendor/rhel7/Vendor.make b/vendor/rhel7/Vendor.make
index b8fc25e..cc3925b 100644
--- a/vendor/rhel7/Vendor.make
+++ b/vendor/rhel7/Vendor.make
@@ -4,6 +4,7 @@
TOOLSARCH = $(shell $(TOPDIR)/vendor/rhel7/rpmarch.guess tools $(TOPDIR))
VENDOR_EXTENSION = el7
+SYSTEMD_ENABLED = 1
include $(TOPDIR)/vendor/common/Vendor.make
diff --git a/vendor/sles10/Vendor.make b/vendor/sles10/Vendor.make
index 85969ea..56b1feb 100644
--- a/vendor/sles10/Vendor.make
+++ b/vendor/sles10/Vendor.make
@@ -4,6 +4,7 @@
TOOLSARCH = $(shell $(TOPDIR)/vendor/sles10/rpmarch.guess tools $(TOPDIR))
VENDOR_EXTENSION = SLE10
+SYSTEMD_ENABLED = 0
include $(TOPDIR)/vendor/common/Vendor.make
diff --git a/vendor/sles9/Vendor.make b/vendor/sles9/Vendor.make
index 8cb0482..56be69f 100644
--- a/vendor/sles9/Vendor.make
+++ b/vendor/sles9/Vendor.make
@@ -4,6 +4,7 @@
TOOLSARCH = $(shell $(TOPDIR)/vendor/sles9/rpmarch.guess tools $(TOPDIR))
VENDOR_EXTENSION = SLE9
+SYSTEMD_ENABLED = 0
include $(TOPDIR)/vendor/common/Vendor.make
--
1.7.9.5
_______________________________________________
Ocfs2-tools-devel mailing list
Ocfs2-tools-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-tools-devel

View File

@ -0,0 +1,49 @@
From: Junxiao Bi <junxiao.bi@oracle.com>
To: <ocfs2-tools-devel@oss.oracle.com>
Date: 6/29/2015 4:29 PM
Subject: [Ocfs2-tools-devel] [PATCH 3/6] o2cb: don't write sysconfig if status not changed
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
---
vendor/common/o2cb.init.sh | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/vendor/common/o2cb.init.sh b/vendor/common/o2cb.init.sh
index 9e0b31c..e2f80f7 100755
--- a/vendor/common/o2cb.init.sh
+++ b/vendor/common/o2cb.init.sh
@@ -1925,16 +1925,20 @@ case "$1" in
;;
enable)
- O2CB_ENABLED=true
- write_sysconfig
- if_fail "$?" "Unable to write the driver configuration"
+ if [ "$O2CB_ENABLED" != "true" ]; then
+ O2CB_ENABLED=true
+ write_sysconfig
+ if_fail "$?" "Unable to write the driver configuration"
+ fi
start
;;
disable)
- O2CB_ENABLED=false
- write_sysconfig
- if_fail "$?" "Unable to write the driver configuration"
+ if [ "$O2CB_ENABLED" != "false" ]; then
+ O2CB_ENABLED=false
+ write_sysconfig
+ if_fail "$?" "Unable to write the driver configuration"
+ fi
stop
;;
--
1.7.9.5
_______________________________________________
Ocfs2-tools-devel mailing list
Ocfs2-tools-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-tools-devel

View File

@ -0,0 +1,79 @@
From: Junxiao Bi <junxiao.bi@oracle.com>
To: <ocfs2-tools-devel@oss.oracle.com>
Date: 6/29/2015 4:29 PM
Subject: [Ocfs2-tools-devel] [PATCH 4/6] o2cb: mount debugfs when load config
o2hbmonitor depends on debugfs to work, mount it when
load the config.
Signed-off-by: Cathy A Avery <cathy.avery@oracle.com>
Signed-off-by: Adnan G Misherfi <adnan.misherfi@oracle.com>
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
---
vendor/common/o2cb.init.sh | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/vendor/common/o2cb.init.sh b/vendor/common/o2cb.init.sh
index e2f80f7..dedb408 100755
--- a/vendor/common/o2cb.init.sh
+++ b/vendor/common/o2cb.init.sh
@@ -1315,10 +1315,25 @@ check_load_module()
return 2
}
+check_debugfs_mount()
+{
+ echo "checking debugfs..."
+
+ mount | grep debugfs | grep /sys/kernel/debug > /dev/null
+ if [ "$?" -eq "1" ]
+ then
+ mount -t debugfs nodev /sys/kernel/debug
+ fi
+}
+
+
+
load()
{
PLUGIN="$(select_stack_plugin)"
+ check_debugfs_mount
+
touch_lockfile
# XXX: SPECIAL CASE! We must load configfs for configfs_path() to work
@@ -1820,6 +1835,16 @@ online_status()
online_status_$PLUGIN "$CLUSTER"
}
+debugfs_mount_status()
+{
+ if mount | grep debugfs | grep /sys/kernel/debug > /dev/null
+ then
+ echo "Debug file system at /sys/kernel/debug: mounted"
+ else
+ echo "Debug file system at /sys/kernel/debug: not mounted"
+ fi
+}
+
status()
{
load_status
@@ -1833,6 +1858,8 @@ status()
online_status "$CLUSTER"
userdlm_status
+
+ debugfs_mount_status
}
#
--
1.7.9.5
_______________________________________________
Ocfs2-tools-devel mailing list
Ocfs2-tools-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-tools-devel

View File

@ -0,0 +1,165 @@
From c89760fc41f466a7a2be99ed2f648875c2d64e7a Mon Sep 17 00:00:00 2001
From: Eric Ren <zren@suse.com>
Date: Thu, 23 Jul 2015 17:13:39 +0800
Subject: [PATCH 2/3] vendor: Add vendor files for sles12
Add vendor files for sles12, and enable systemd support for o2cb
based on the patch named "add systemd support" from "Junxiao Bi"
<junxiao.bi@oracle.com>.
Signed-off-by: Eric Ren <zren@suse.com>
---
vendor/Makefile | 2 +-
vendor/sles12/Makefile | 10 +++++++
vendor/sles12/Vendor.make | 11 +++++++
vendor/sles12/rpmarch.guess | 70 +++++++++++++++++++++++++++++++++++++++++++++
vendor/sles12/vendor.guess | 13 +++++++++
5 files changed, 105 insertions(+), 1 deletion(-)
create mode 100644 vendor/sles12/Makefile
create mode 100644 vendor/sles12/Vendor.make
create mode 100755 vendor/sles12/rpmarch.guess
create mode 100755 vendor/sles12/vendor.guess
diff --git a/vendor/Makefile b/vendor/Makefile
index 58ac84d..022d030 100644
--- a/vendor/Makefile
+++ b/vendor/Makefile
@@ -2,6 +2,6 @@ TOPDIR = ..
include $(TOPDIR)/Preamble.make
-SUBDIRS = common rhel7 rhel6 rhel5 sles10 rhel4 sles9 fc7 fc8 fc9
+SUBDIRS = common sles12 rhel7 rhel6 rhel5 sles10 rhel4 sles9 fc7 fc8 fc9
include $(TOPDIR)/Postamble.make
diff --git a/vendor/sles12/Makefile b/vendor/sles12/Makefile
new file mode 100644
index 0000000..89c16a7
--- /dev/null
+++ b/vendor/sles12/Makefile
@@ -0,0 +1,10 @@
+TOPDIR = ../..
+
+include $(TOPDIR)/Preamble.make
+
+DIST_FILES = \
+ rpmarch.guess \
+ Vendor.make \
+ vendor.guess
+
+include $(TOPDIR)/Postamble.make
diff --git a/vendor/sles12/Vendor.make b/vendor/sles12/Vendor.make
new file mode 100644
index 0000000..b186054
--- /dev/null
+++ b/vendor/sles12/Vendor.make
@@ -0,0 +1,11 @@
+#
+# SLES 12
+#
+
+TOOLSARCH = $(shell $(TOPDIR)/vendor/sles12/rpmarch.guess tools $(TOPDIR))
+VENDOR_EXTENSION = SLE12
+SYSTEMD_ENABLED = 1
+
+include $(TOPDIR)/vendor/common/Vendor.make
+
+packages: rpm
diff --git a/vendor/sles12/rpmarch.guess b/vendor/sles12/rpmarch.guess
new file mode 100755
index 0000000..3514627
--- /dev/null
+++ b/vendor/sles12/rpmarch.guess
@@ -0,0 +1,70 @@
+#! /bin/sh
+
+mode="$1"
+srcdir="$2"
+
+host_cpu=
+
+QUERYFILE=/etc/SuSE-release
+
+if test -n "$QUERYFILE"; then
+ host_cpu="`rpm -qf $QUERYFILE --queryformat \"%{ARCH}\"`"
+fi
+
+if test -z "$host_cpu" -o "$host_cpu" = "noarch" ; then
+ host_alias=`$srcdir/config.guess`
+ host=`$srcdir/config.sub $host_alias`
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+fi
+
+case "$host_cpu" in
+ x86_64|ia64|s390x)
+ TOOLSARCH="$host_cpu"
+ ;;
+ i386|i486|i586|i686|i786|k6|k7)
+ TOOLSARCH="i386"
+ ;;
+ ppc|ppc64|ppciseries|ppcpseries|ppc64iseries|ppc64pseries|powerpc|powerpc64)
+ TOOLSARCH="ppc"
+ ;;
+ *)
+ echo "rpmarch.guess: Warning: unknown RPM CPU architecture: $host_cpu" >&2
+ TOOLSARCH=""
+ ;;
+esac
+
+# Only a few of these need to be overwritten from RPM's default
+case "$host_cpu" in
+ i586)
+ MODULEARCH="$host_cpu"
+ ;;
+ i386|i686)
+ MODULEARCH="i586"
+ ;;
+ ppc|ppc64|ppciseries|ppcpseries|ppc64iseries|ppc64pseries|powerpc|powerpc64)
+ MODULEARCH="ppc64"
+ ;;
+ *)
+ MODULEARCH=""
+ ;;
+esac
+
+case "$mode" in
+ module)
+ if [ -n "$MODULEARCH" ] ; then
+ echo "--target $MODULEARCH"
+ fi
+ ;;
+ tools)
+ if [ -n "$TOOLSARCH" ] ; then
+ echo "--target $TOOLSARCH"
+ fi
+ ;;
+ *)
+ echo "rpmarch.guess: Invalid mode: $mode" >&2
+ echo "error"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/vendor/sles12/vendor.guess b/vendor/sles12/vendor.guess
new file mode 100755
index 0000000..83ce085
--- /dev/null
+++ b/vendor/sles12/vendor.guess
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+if [ ! -f /etc/SuSE-release ]
+then
+ exit 1
+fi
+
+if [ "`rpm -qf /etc/SuSE-release --qf '%{VERSION}' 2>/dev/null`" != "12" ]
+then
+ exit 1
+fi
+
+exit 0
--
2.1.4

View File

@ -0,0 +1,30 @@
From dc357b652edb7e8e2970fd6f4549c433710093b8 Mon Sep 17 00:00:00 2001
From: Eric Ren <zren@suse.com>
Date: Tue, 8 Sep 2015 10:27:51 +0800
Subject: [PATCH 3/3] ocfs2-tools: add systemd support fix
The ocfs2.service should be after remote-fs.target so that iscsi
volume would be available at first.
Signed-off-by: Eric Ren <zren at suse.com>
Reviewed-by: Junxiao Bi <junxiao.bi at oracle.com>
---
vendor/common/ocfs2.service | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vendor/common/ocfs2.service b/vendor/common/ocfs2.service
index 768f806..c7ecbea 100644
--- a/vendor/common/ocfs2.service
+++ b/vendor/common/ocfs2.service
@@ -1,7 +1,7 @@
[Unit]
Description=Load ocfs2 Modules
Requires=o2cb.service
-After=o2cb.service
+After=o2cb.service remote-fs.target
[Service]
Type=oneshot
--
2.1.4

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Tue Sep 8 02:58:55 UTC 2015 - zren@suse.com
- Add systemd support for o2cb and ocfs2 service
+ 0003-o2cb-add-build-scripts-for-rhel7.patch
+ 0004-add-systemd-support.patch
+ 0005-do-not-write-sysconfig-if-status-not-changed.patch
+ 0006-o2cb-mount-debugfs-when-load-config.patch
+ 0007-vendor-Add-vendor-files-for-sles12.patch
+ 0008-ocfs2-tools-add-systemd-support-fix.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Fri May 8 13:12:57 UTC 2015 - ghe@suse.com Fri May 8 13:12:57 UTC 2015 - ghe@suse.com

View File

@ -37,6 +37,12 @@ Patch205: ocfs2-tools-kernel33.patch
Patch206: ocfs2-tools-resource.patch Patch206: ocfs2-tools-resource.patch
Patch301: 0001-libo2dlm-Close-file-description-after-use.patch Patch301: 0001-libo2dlm-Close-file-description-after-use.patch
Patch302: 0002-debugfs.ocfs2-Fix-a-bug-in-process_open_args.patch Patch302: 0002-debugfs.ocfs2-Fix-a-bug-in-process_open_args.patch
Patch401: 0003-o2cb-add-build-scripts-for-rhel7.patch
Patch402: 0004-add-systemd-support.patch
Patch403: 0005-do-not-write-sysconfig-if-status-not-changed.patch
Patch404: 0006-o2cb-mount-debugfs-when-load-config.patch
Patch405: 0007-vendor-Add-vendor-files-for-sles12.patch
Patch406: 0008-ocfs2-tools-add-systemd-support-fix.patch
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: e2fsprogs-devel BuildRequires: e2fsprogs-devel
@ -63,6 +69,11 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} < 1320 %if 0%{?suse_version} < 1320
Recommends: ocfs2-kmp Recommends: ocfs2-kmp
%endif %endif
%if 0%{?suse_version} >= 1315
%define systemd_enabled 1
%else
%define systemd_enabled 0
%endif
%description %description
OCFS2 is the Oracle Cluster File System. OCFS2 is the Oracle Cluster File System.
@ -137,6 +148,12 @@ OCFS2 filesystem.
%patch206 -p1 %patch206 -p1
%patch301 -p1 %patch301 -p1
%patch302 -p1 %patch302 -p1
%patch401 -p1
%patch402 -p1
%patch403 -p1
%patch404 -p1
%patch405 -p1
%patch406 -p1
%build %build
export PROJECT="ocfs2-tools" export PROJECT="ocfs2-tools"
@ -153,18 +170,27 @@ cd ..
%install %install
mkdir -p %{buildroot}/sbin mkdir -p %{buildroot}/sbin
mkdir -p %{buildroot}%{_prefix}/bin mkdir -p %{buildroot}%{_prefix}/bin
mkdir -p %{buildroot}%{_sysconfdir}/init.d
mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
mkdir -p %{buildroot}%{_sysconfdir}/udev/rules.d/ mkdir -p %{buildroot}%{_sysconfdir}/udev/rules.d/
mkdir -p %{buildroot}%{_prefix}/lib/ocf/resource.d/ocfs2 mkdir -p %{buildroot}%{_prefix}/lib/ocf/resource.d/ocfs2
cp -f vendor/common/o2cb.init %{buildroot}%{_sysconfdir}/init.d/o2cb
cp -f vendor/common/ocfs2.init %{buildroot}%{_sysconfdir}/init.d/ocfs2
cp -f vendor/common/51-ocfs2.rules %{buildroot}%{_sysconfdir}/udev/rules.d cp -f vendor/common/51-ocfs2.rules %{buildroot}%{_sysconfdir}/udev/rules.d
cp -f $RPM_SOURCE_DIR/o2cb.ocf %{buildroot}%{_prefix}/lib/ocf/resource.d/ocfs2/o2cb cp -f $RPM_SOURCE_DIR/o2cb.ocf %{buildroot}%{_prefix}/lib/ocf/resource.d/ocfs2/o2cb
chmod a+x %{buildroot}%{_prefix}/lib/ocf/resource.d/ocfs2/o2cb chmod a+x %{buildroot}%{_prefix}/lib/ocf/resource.d/ocfs2/o2cb
cp -f vendor/common/o2cb.sysconfig %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.o2cb cp -f vendor/common/o2cb.sysconfig %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.o2cb
ln -sf ..%{_sysconfdir}/init.d/o2cb %{buildroot}/sbin/rco2cb
ln -sf ..%{_sysconfdir}/init.d/ocfs2 %{buildroot}/sbin/rcocfs2 %if %{systemd_enabled}
mkdir -p %{buildroot}/usr/lib/systemd/system
cp -f vendor/common/o2cb.service %{buildroot}/usr/lib/systemd/system/
cp -f vendor/common/ocfs2.service %{buildroot}/usr/lib/systemd/system/
cp -f vendor/common/o2cb.init %{buildroot}/sbin
cp -f vendor/common/ocfs2.init %{buildroot}/sbin
%else
mkdir -p %{buildroot}%{_sysconfdir}/init.d
cp -f vendor/common/o2cb.init %{buildroot}%{_sysconfdir}/init.d/o2cb
cp -f vendor/common/ocfs2.init %{buildroot}%{_sysconfdir}/init.d/ocfs2
ln -sf ..%{_sysconfdir}/init.d/o2cb %{buildroot}/sbin/rco2cb
ln -sf ..%{_sysconfdir}/init.d/ocfs2 %{buildroot}/sbin/rcocfs2
%endif
make DESTDIR="%{buildroot}" install make DESTDIR="%{buildroot}" install
cd reflink cd reflink
@ -236,12 +262,21 @@ python -c "import compileall; compileall.compile_dir('%{buildroot}/%{py_sitedir}
%files o2cb %files o2cb
%defattr(-,root,root) %defattr(-,root,root)
%doc README.O2CB %doc README.O2CB
/sbin/rco2cb
/sbin/rcocfs2
/sbin/o2cb_ctl /sbin/o2cb_ctl
/sbin/o2cb /sbin/o2cb
%{_sysconfdir}/init.d/o2cb
%{_sysconfdir}/init.d/ocfs2 %if %{systemd_enabled}
/sbin/o2cb.init
/sbin/ocfs2.init
/usr/lib/systemd/system/o2cb.service
/usr/lib/systemd/system/ocfs2.service
%else
/sbin/rco2cb
/sbin/rcocfs2
%{_sysconfdir}/init.d/o2cb
%{_sysconfdir}/init.d/ocfs2
%endif
%{_mandir}/man8/o2cb_ctl.8* %{_mandir}/man8/o2cb_ctl.8*
%{_localstatedir}/adm/fillup-templates/sysconfig.o2cb %{_localstatedir}/adm/fillup-templates/sysconfig.o2cb
%{_mandir}/man7/o2cb.7.gz %{_mandir}/man7/o2cb.7.gz