aboutsummaryrefslogtreecommitdiffstats
path: root/unmaintained
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2017-11-14 01:43:08 +0100
committerJakub Jirutka <jakub@jirutka.cz>2017-11-14 01:43:08 +0100
commitf10ea8df610c3be33ff846a4e92ab4e846f79d05 (patch)
tree314b71fd453e9c9b9dbe50b99b5f164c1092883e /unmaintained
parent3def523fc023119ccede55509bc982562437b9db (diff)
downloadaports-f10ea8df610c3be33ff846a4e92ab4e846f79d05.tar.bz2
aports-f10ea8df610c3be33ff846a4e92ab4e846f79d05.tar.xz
unmaintained/ocfs2-tools: move from main
This aport is disabled for several years.
Diffstat (limited to 'unmaintained')
-rw-r--r--unmaintained/ocfs2-tools/APKBUILD86
-rw-r--r--unmaintained/ocfs2-tools/build.patch32
-rw-r--r--unmaintained/ocfs2-tools/ocfs2-tools-1.6-operations-missing-include.patch10
-rw-r--r--unmaintained/ocfs2-tools/ocfs2-tools-1.6.4-umode_t.patch12
-rw-r--r--unmaintained/ocfs2-tools/ocfs2-tools.cluster-conf17
-rw-r--r--unmaintained/ocfs2-tools/ocfs2-tools.confd38
-rw-r--r--unmaintained/ocfs2-tools/ocfs2-tools.initd193
7 files changed, 388 insertions, 0 deletions
diff --git a/unmaintained/ocfs2-tools/APKBUILD b/unmaintained/ocfs2-tools/APKBUILD
new file mode 100644
index 0000000000..9169d3dc96
--- /dev/null
+++ b/unmaintained/ocfs2-tools/APKBUILD
@@ -0,0 +1,86 @@
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+pkgname=ocfs2-tools
+pkgver=1.6.4
+pkgrel=2
+pkgdesc="Oracle Cluster File System 2 utilities"
+url="http://oss.oracle.com/projects/ocfs2-tools"
+arch=""
+license="GPL2"
+depends=
+depends_dev="e2fsprogs-dev glib-dev ncurses-dev readline-dev"
+makedepends="$depends_dev"
+install=
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://oss.oracle.com/projects/ocfs2-tools/dist/files/source/v${pkgver%.*}/$pkgname-$pkgver.tar.gz
+ build.patch
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname.cluster-conf
+ ocfs2-tools-1.6-operations-missing-include.patch
+ ocfs2-tools-1.6.4-umode_t.patch"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+
+prepare() {
+ cd "$_builddir"
+ update_config_sub || return 1
+ local i
+ for i in ../*.patch
+ do
+ msg "Applying patch $i"
+ patch -p1 -i $i || return 1
+ done
+
+ sed -i 's%sys/raw.h%linux/raw.h%' fswreck/include/main.h || return 1
+ sed -i 's%sys/raw.h%linux/raw.h%' debugfs.ocfs2/include/main.h || return 1
+ sed -i 's%sys/raw.h%linux/raw.h%' o2info/operations.c || return 1
+}
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-ocfs2console=yes \
+ --enable-dynamic-fsck=yes \
+ --enable-dynamic-ctl=yes \
+ --disable-glibtest \
+ || return 1
+ make -j1 || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install
+
+ # remove the 2 lines below (and this) if there is no init.d script
+ install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/o2cb
+ install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/o2cb
+ install -m644 -D "$srcdir"/$pkgname.cluster-conf "$pkgdir"/etc/ocfs2/cluster.conf
+}
+
+md5sums="2e94423507b63fcc08f93c094e789be8 ocfs2-tools-1.6.4.tar.gz
+c938040f0e77a4bb23e952c8f99b6cc5 build.patch
+bf827283ab0c5de69df2eacbcb598b79 ocfs2-tools.initd
+d81b6ab068ec92a137b58c9ad56c4637 ocfs2-tools.confd
+189e433cf001465f1565faae2e6e10ac ocfs2-tools.cluster-conf
+f1d6bd7f02e69b31b8a103d18c7209f6 ocfs2-tools-1.6-operations-missing-include.patch
+cd4710efdb07660459fda1b514cfa8a6 ocfs2-tools-1.6.4-umode_t.patch"
+sha256sums="dda9db208312e3e5f4f55ee77e66e7b35b9cc10421bc02065a6c168e42b24755 ocfs2-tools-1.6.4.tar.gz
+8e6a51ff12f1f08945102af0008c83e843aa20b25649adc157be92f27c2a3a42 build.patch
+c8852f8434c27d34996891fe404c495eaacc06b6e1df0f07fbf2b1675bda1b26 ocfs2-tools.initd
+9e090d955f51cdb32f9dd7eb20fec326b793daa90fd7df02a6e437fa00d269b7 ocfs2-tools.confd
+5e79d4eaac95fd81f833ca9e08f19f741e88f6c86ebf1b5c91465974b6a8b11f ocfs2-tools.cluster-conf
+f82b6d5f5a97b9ae139ca041a60c3553a07dcf1f3821a12ae1d8c17492eff1f9 ocfs2-tools-1.6-operations-missing-include.patch
+a4ba2f4aaa16018a08da9cea689c1f7d9d890691a53b74ceb3eddd6a8bebbc41 ocfs2-tools-1.6.4-umode_t.patch"
+sha512sums="3b5b834e23467736b2fc522449f3d86b9a4b4764a66ec6812e4ecf497f8d43c2fb1aba1955c6030336d88463e720a5ace0b7cde48853cf3b482c6727ed86a649 ocfs2-tools-1.6.4.tar.gz
+6a6b872fe0bb9ef8f3866881619145551ac4b77811082b24be08ecf351d22cd9dd6b239a2c6c962606a0282c5cb16e96ff5aac30a18c04fdf1bc0d1945841018 build.patch
+e6fd44358ba5a38446a8bea60c493f4ef9b7a2d7c0076116e91f0edabb66da1fd90be884a46052592f69e338887d4df5c7b7c0b01fadf837fdbc7906a96de52a ocfs2-tools.initd
+e510f08a9adc2d7c07e7b8a4d2c503c5a130a156ab1bf1cf45d8480dd94490968f718e966d0bae090a883ff36768e17971415f9905bd5dcf8632f16f7c0b931e ocfs2-tools.confd
+f844e5389e0b42d6f91a1335bd2ef4d2666e5b883c999d05acd3bc63ad901bc5838aa4da35bb1d069463d7cc7dcfa277dbaa938b5953e8d420a37cfbb30f24f3 ocfs2-tools.cluster-conf
+41b5e0d2eae738a8e05b6377e6dd4fc79592c6fc7b62dbc1ea6d7bd1fdb80122bc2f915748e64e30c9e964a1ebc73a65d81b5409fd499a959b3015d8c0683ead ocfs2-tools-1.6-operations-missing-include.patch
+7ec59c84a64d4e4cae0318a77e652d0172155fe4693c9dece0058ee1f92794bd3ed9c0ede230e98c3d635bd735b9bd83bd63a657db25575f1a6de7a50c407a4f ocfs2-tools-1.6.4-umode_t.patch"
diff --git a/unmaintained/ocfs2-tools/build.patch b/unmaintained/ocfs2-tools/build.patch
new file mode 100644
index 0000000000..c0e9e503ab
--- /dev/null
+++ b/unmaintained/ocfs2-tools/build.patch
@@ -0,0 +1,32 @@
+diff -Nuard ocfs2-tools-1.4.3.orig/ocfs2_controld/Makefile ocfs2-tools-1.4.3/ocfs2_controld/Makefile
+--- ocfs2-tools-1.4.3.orig/ocfs2_controld/Makefile 2009-04-14 00:10:40.000000000 +0200
++++ ocfs2-tools-1.4.3/ocfs2_controld/Makefile 2009-09-30 08:22:04.000000000 +0200
+@@ -17,7 +17,7 @@
+ PCMK_INCLUDES = -I/usr/include/pacemaker -I/usr/include/heartbeat/ $(GLIB_CFLAGS)
+ endif
+
+-INCLUDES = -I$(TOPDIR)/include -I. $(PCMK_INCLUDES)
++INCLUDES = -I/usr/include/libxml2 -I$(TOPDIR)/include -I. $(PCMK_INCLUDES)
+ LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb
+ LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a
+ LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2
+diff -Nuard ocfs2-tools-1.4.3.orig/ocfs2_controld/pacemaker.c ocfs2-tools-1.4.3/ocfs2_controld/pacemaker.c
+--- ocfs2-tools-1.4.3.orig/ocfs2_controld/pacemaker.c 2009-05-06 03:36:57.000000000 +0200
++++ ocfs2-tools-1.4.3/ocfs2_controld/pacemaker.c 2009-09-30 08:22:22.000000000 +0200
+@@ -22,6 +22,7 @@
+
+ #include <bzlib.h>
+
++#include <corosync/corodefs.h>
+ #include <pacemaker/crm_config.h>
+ /* heartbeat support is irrelevant here */
+ #undef SUPPORT_HEARTBEAT
+@@ -155,7 +156,7 @@
+ crm_log_init("ocfs2_controld", LOG_INFO, FALSE, TRUE, 0, NULL);
+
+ if(init_ais_connection(NULL, NULL, NULL, &local_node_uname, &our_nodeid) == FALSE) {
+- log_error("Connection to our AIS plugin (%d) failed", CRM_SERVICE);
++ log_error("Connection to our AIS plugin (%d) failed", PCMK_SERVICE);
+ return -1;
+ }
+
diff --git a/unmaintained/ocfs2-tools/ocfs2-tools-1.6-operations-missing-include.patch b/unmaintained/ocfs2-tools/ocfs2-tools-1.6-operations-missing-include.patch
new file mode 100644
index 0000000000..c4e63122e3
--- /dev/null
+++ b/unmaintained/ocfs2-tools/ocfs2-tools-1.6-operations-missing-include.patch
@@ -0,0 +1,10 @@
+--- a/o2info/operations.c
++++ b/o2info/operations.c
+@@ -24,6 +24,7 @@
+ #include <errno.h>
+ #include <linux/raw.h>
+ #include <inttypes.h>
++#include <sys/ioctl.h>
+
+ #include "ocfs2/ocfs2.h"
+ #include "ocfs2/bitops.h"
diff --git a/unmaintained/ocfs2-tools/ocfs2-tools-1.6.4-umode_t.patch b/unmaintained/ocfs2-tools/ocfs2-tools-1.6.4-umode_t.patch
new file mode 100644
index 0000000000..fb8b714082
--- /dev/null
+++ b/unmaintained/ocfs2-tools/ocfs2-tools-1.6.4-umode_t.patch
@@ -0,0 +1,12 @@
+--- ocfs2-tools-1.6.4/include/ocfs2-kernel/ocfs2_fs.h 2010-12-29 07:30:55.000000000 +0100
++++ ocfs2-tools-1.6.4.n/include/ocfs2-kernel/ocfs2_fs.h 2012-04-23 19:13:46.402253336 +0200
+@@ -1638,7 +1638,7 @@
+ }
+
+ static inline void ocfs2_set_de_type(struct ocfs2_dir_entry *de,
+- umode_t mode)
++ unsigned short mode)
+ {
+ de->file_type = ocfs2_type_by_mode[(mode & S_IFMT)>>S_SHIFT];
+ }
+
diff --git a/unmaintained/ocfs2-tools/ocfs2-tools.cluster-conf b/unmaintained/ocfs2-tools/ocfs2-tools.cluster-conf
new file mode 100644
index 0000000000..0d39f1839f
--- /dev/null
+++ b/unmaintained/ocfs2-tools/ocfs2-tools.cluster-conf
@@ -0,0 +1,17 @@
+node:
+ ip_port = 7777
+ ip_address = 10.0.0.1
+ number = 0
+ name = ocfs2-node1
+ cluster = ocfs2
+
+node:
+ ip_port = 7777
+ ip_address = 10.0.0.2
+ number = 1
+ name = ofcs2-node2
+ cluster = ocfs2
+
+cluster:
+ node_count = 2
+ name = ocfs2
diff --git a/unmaintained/ocfs2-tools/ocfs2-tools.confd b/unmaintained/ocfs2-tools/ocfs2-tools.confd
new file mode 100644
index 0000000000..29bc08406a
--- /dev/null
+++ b/unmaintained/ocfs2-tools/ocfs2-tools.confd
@@ -0,0 +1,38 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/ocfs2-tools/files/ocfs2.conf,v 1.1 2006/07/20 05:13:14 dberkholz Exp $
+
+# Put your cluster names here, separated by space, ie.
+# OCFS2_CLUSTER="cluster1 admincluster cluster2"
+OCFS2_CLUSTER="ocfs2"
+
+# Some heartbeat tweaks to prevent self-fencing quite so much during heavy load.
+# http://oss.oracle.com/projects/ocfs2/dist/documentation/ocfs2_faq.html
+
+# How long to wait before a node is considered dead from lack of network activity.
+OCFS2_IDLE_TIMEOUT_MS="30000"
+# How often we should attempt to send heartbeats.
+OCFS2_KEEPALIVE_DELAY_MS="2000"
+OCFS2_RECONNECT_DELAY_MS="2000"
+# How often we should attempt to send heartbeats.
+# How many interations before a node is considered dead from lack of IO activity.
+# (dead_threshold - 1) * 2s
+OCFS2_DEAD_THRESHOLD="31"
+
+# Default: "-fy" (force check on double-unmounted boot). I beleave this is best.
+# Native way is "-y", but once I have twice reboot/powerOFF with bad result...
+# Affected only fstab.
+OCFS2_FSCK="-fy"
+
+# http://oss.oracle.com/projects/ocfs2-tools/news/article_8.html
+# starting from 1.4.3, fsck.ocfs2 "aggressively cache the metadata blocks"
+# this is useful on lots of free memory, but I have heavy slowdown on x86_64
+# with 1G of RAM.
+# "yes" will "swapoff -a" & "swapon -a" around fsck to avoid caching over swap
+OCFS2_FSCK_SWAPOFF="yes"
+
+# Signal to kill processes on stop/umount on busy device (empty to not kill)
+#OCFS2_UMOUNT_KILL="KILL"
+
+# "yes" to force stop
+#OCFS2_FORCE_STOP="no"
diff --git a/unmaintained/ocfs2-tools/ocfs2-tools.initd b/unmaintained/ocfs2-tools/ocfs2-tools.initd
new file mode 100644
index 0000000000..b6d43ddc13
--- /dev/null
+++ b/unmaintained/ocfs2-tools/ocfs2-tools.initd
@@ -0,0 +1,193 @@
+#!/sbin/openrc-run
+
+: ${OCFS2_FSCK:="-fy"}
+
+depend() {
+ need net localmount
+ before netmount
+ after drbd
+}
+
+pseudofs() {
+ [ -n "`mount -t $1`" ] && return 0
+ ewarn "OCFS2: Pseudo-filesystem $1 are not mounted."
+ ewarn "Make sure you have following lines in your /etc/fstab:"
+ ewarn "none $2 $1 defaults 0 0"
+
+ # Why not?
+ ebegin "Mounting $1"
+ mount -t $1 none $2 && [ -n "`mount -t $1`" ]
+ eend $? || return 1
+}
+
+fmod() {
+ [[ -e "$1" ]] && return 0
+ modprobe -s $2 && [[ -e "$1" ]] && return 0
+ eerror "OCFS2: Module '$2' failed, '$1' not found"
+ return 1
+}
+
+# unsure about possibility to keep heartbeat unclean after correct umount
+# but Oracle do so
+clean_heartbeat(){
+ local err=0 id
+ for i in "/sys/kernel/config/cluster/$1/heartbeat"/*; do
+ [[ -d "$i" ]] || continue
+ id="${i##*/}"
+ ebegin "Cleaning OCFS2 heartbeat region $1/$id"
+ [[ "`/sbin/ocfs2_hb_ctl -I -u "$id" | grep -o " [0-9]* refs$"`" == " 0 refs" ]] && /sbin/ocfs2_hb_ctl -K -u "$id" || ! [[ -d "$i" ]]
+ eend $? || err=1
+ done
+ return $err
+}
+
+UUID(){
+ local dev fs stack uuid label
+ /sbin/mounted.ocfs2 -d|while read dev fs stack uuid label; do
+ [[ "$stack" == "o2cb" ]] && echo "$uuid"
+ done|sort -u
+}
+
+clusters(){
+ [[ -z "${OCFS2_CLUSTER}" ]] && for i in /sys/kernel/config/cluster/*; do
+ OCFS2_CLUSTER="${OCFS2_CLUSTER} ${i##*/}"
+ done
+ echo "${OCFS2_CLUSTER}"
+}
+
+stop_cluster(){
+ if clean_heartbeat $1 || [[ "${OCFS2_FORCE_STOP}" == yes ]]; then
+ ebegin "Stopping OCFS2 cluster '$1'"
+ /sbin/o2cb_ctl -H -n $1 -t cluster -a online=no >/dev/null
+ eend $? || return 1
+ else
+ return 1
+ fi
+}
+
+online(){
+ local cluster
+ for cluster in ${*:-$(clusters)}; do
+ grep -q "^1\$" /sys/kernel/config/cluster/$cluster/node/*/local 2>/dev/null || return 1
+ done
+ return 0
+}
+
+start() {
+ ( fmod /sys/fs/ocfs2 ocfs2 &&
+ fmod /sys/fs/ocfs2/cluster_stack ocfs2_stackglue &&
+ pseudofs configfs /sys/kernel/config &&
+ pseudofs ocfs2_dlmfs /dlm
+ ) || return 1
+ echo o2cb >/sys/fs/ocfs2/cluster_stack 2>/dev/null
+ if [[ "`cat /sys/fs/ocfs2/cluster_stack`" != "o2cb" ]]; then
+ eerror "OCFS2: Stack 'o2cb' not loaded. Check your kernel config."
+ return 1
+ fi
+
+ # autodetect
+ : ${OCFS2_CLUSTER:=$(UUID)}
+
+ for cluster in $(clusters); do
+ ebegin "Starting OCFS2 cluster '${cluster}'"
+ online $cluster || /sbin/o2cb_ctl -H -n ${cluster} -t cluster -a online=yes >/dev/null
+ if ! eend $? ; then
+ local OCFS2_FORCE_STOP=no
+ stop_cluster $cluster
+ return 1
+ fi
+
+ # Some heartbeat tweaks to prevent self-fencing quite so much during heavy load.
+ # http://oss.oracle.com/projects/ocfs2/dist/documentation/ocfs2_faq.html
+
+ # How long to wait before a node is considered dead from lack of network activity.
+ echo $OCFS2_IDLE_TIMEOUT_MS > /sys/kernel/config/cluster/${cluster}/idle_timeout_ms
+ # How often we should attempt to send heartbeats.
+ echo $OCFS2_KEEPALIVE_DELAY_MS > /sys/kernel/config/cluster/${cluster}/keepalive_delay_ms
+ echo $OCFS2_RECONNECT_DELAY_MS > /sys/kernel/config/cluster/${cluster}/reconnect_delay_ms
+ # How many interations before a node is considered dead from lack of IO activity.
+ # (dead_threshold - 1) * 2s
+ echo $OCFS2_DEAD_THRESHOLD > /sys/kernel/config/cluster/${cluster}/heartbeat/dead_threshold
+ done
+
+ local i
+ for i in 9 8 7 6 5 4 3 2 1 0; do
+ online && break
+ echo -n "$i"
+ sleep 1
+ done
+ # usure: IMHO locking not starts here
+# let i=OCFS2_RECONNECT_DELAY_MS*2/1000
+# sleep $i
+
+ # Voluntary fsck. Will be happened only ondemand -
+ # on both unmounted/double fault, placed in fstab.
+ [[ "$OCFS2_FSCK_SWAPOFF" == "yes" ]] && swapoff -a
+ for i in `mount -invfat ocfs2 2>/dev/null|sed -e 's: .*::g'` ; do
+ [[ -e "$i" ]] || continue
+ einfo "OCFS2: Trying 'fsck.ocfs2 $OCFS2_FSCK $i' (fs check if possible)"
+ /sbin/fsck.ocfs2 $OCFS2_FSCK "$i" 2>/dev/null
+ done
+ [[ "$OCFS2_FSCK_SWAPOFF" == "yes" ]] && swapon -a
+
+ # Any behaviour
+ ebegin "Mounting OCFS2 filesystems"
+ mount -at ocfs2
+ eend $?
+ return $?
+}
+
+_fuser(){
+ fuser -"${OCFS2_UMOUNT_KILL}" -v"${OCFS2_UMOUNT_KILL:+k}" $*
+ return $?
+}
+
+_umount(){
+ local i m
+ i=`umount $* 2>&1` && {
+ echo -n "$i"
+ return 0
+ }
+ echo "$i"
+ _fuser -mM `echo "$i"|grep "^umount: .* device is busy\.\$"|sed -e 's%^umount: \([^ ]*\): device is busy\.$%\1%g'` || return 1
+ [[ -z "${OCFS2_UMOUNT_KILL}" ]] && return 1
+ umount $* && return 0
+ sleep 1
+ umount $*
+ return $?
+}
+
+stop() {
+ local ret=0 dev m i
+ # now umount only clusters - under heartbeat. others later
+# ebegin "Unmounting OCFS2 filesystems"
+# _umount -at ocfs2
+# eend $?
+# ret=$?
+
+ for cluster in $(clusters); do
+ for dev in `cat /sys/kernel/config/cluster/$cluster/heartbeat/*/dev 2>/dev/null`; do
+ m=`grep "/dev/$dev " /proc/mounts|sed -e 's:^[^ ]* \([^ ]*\) .*$:\1:g'`
+ [[ -z "$m" ]] && continue
+ ebegin "Unmounting OCFS2 cluster '$cluster' filesystems '$dev' from '$m'"
+ if _umount $m; then
+ eend 0
+ continue
+ elif umount $m; then
+ einfon "Lazy unmounted. Waiting "
+ for i in 9 8 7 6 5 4 3 2 1 0; do
+ ( /sbin/ocfs2_hb_ctl -I -d /dev/$dev || break ) | grep -q " 0 refs\$" && break
+ echo -n "$i"
+ _fuser $m
+ sleep 1
+ done
+ echo
+ [[ "$i" != 0 ]] && continue
+ fi
+ eend 1
+ ret=1
+ done
+ stop_cluster $cluster || ret=1
+ done
+ return $ret
+}