mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-23 04:23:08 +00:00
- Add a proper resource for starting/stopping rc.d script.
- Improve detection of interfaces. PR: 124238 Submitted by: Piotr Rybicki <meritus@innervision.pl> Approved by: maintainer
This commit is contained in:
parent
f6d0ec6f9f
commit
d5768e8244
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=226961
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= heartbeat
|
||||
PORTVERSION= 1.2.5
|
||||
PORTREVISION= 5
|
||||
PORTREVISION= 6
|
||||
CATEGORIES= sysutils
|
||||
MASTER_SITES= http://linux-ha.org/download/
|
||||
|
||||
|
@ -1,154 +0,0 @@
|
||||
--- lib/clplumbing/resource.h.orig Tue Apr 18 23:30:49 2006
|
||||
+++ lib/clplumbing/resource.h Tue Apr 18 23:28:06 2006
|
||||
@@ -0,0 +1,151 @@
|
||||
+/*
|
||||
+ * Copyright (c) 1982, 1986, 1993
|
||||
+ * The Regents of the University of California. All rights reserved.
|
||||
+ *
|
||||
+ * Redistribution and use in source and binary forms, with or without
|
||||
+ * modification, are permitted provided that the following conditions
|
||||
+ * are met:
|
||||
+ * 1. Redistributions of source code must retain the above copyright
|
||||
+ * notice, this list of conditions and the following disclaimer.
|
||||
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||||
+ * notice, this list of conditions and the following disclaimer in the
|
||||
+ * documentation and/or other materials provided with the distribution.
|
||||
+ * 3. All advertising materials mentioning features or use of this software
|
||||
+ * must display the following acknowledgement:
|
||||
+ * This product includes software developed by the University of
|
||||
+ * California, Berkeley and its contributors.
|
||||
+ * 4. Neither the name of the University nor the names of its contributors
|
||||
+ * may be used to endorse or promote products derived from this software
|
||||
+ * without specific prior written permission.
|
||||
+ *
|
||||
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
+ * SUCH DAMAGE.
|
||||
+ *
|
||||
+ * @(#)resource.h 8.4 (Berkeley) 1/9/95
|
||||
+ * $FreeBSD: /tmp/pcvs/ports/sysutils/heartbeat/files/Attic/extrapatch-lib-clplumbing-resource.h,v 1.1 2006-04-18 21:53:58 ehaupt Exp $
|
||||
+ */
|
||||
+
|
||||
+#ifndef _SYS_RESOURCE_H_
|
||||
+#define _SYS_RESOURCE_H_
|
||||
+
|
||||
+/*
|
||||
+ * Process priority specifications to get/setpriority.
|
||||
+ */
|
||||
+#define PRIO_MIN -20
|
||||
+#define PRIO_MAX 20
|
||||
+
|
||||
+#define PRIO_PROCESS 0
|
||||
+#define PRIO_PGRP 1
|
||||
+#define PRIO_USER 2
|
||||
+
|
||||
+/*
|
||||
+ * Resource utilization information.
|
||||
+ */
|
||||
+
|
||||
+#define RUSAGE_SELF 0
|
||||
+#define RUSAGE_CHILDREN -1
|
||||
+
|
||||
+#include <sys/time.h>
|
||||
+
|
||||
+struct rusage {
|
||||
+ struct timeval ru_utime; /* user time used */
|
||||
+ struct timeval ru_stime; /* system time used */
|
||||
+ long ru_maxrss; /* max resident set size */
|
||||
+#define ru_first ru_ixrss
|
||||
+ long ru_ixrss; /* integral shared memory size */
|
||||
+ long ru_idrss; /* integral unshared data " */
|
||||
+ long ru_isrss; /* integral unshared stack " */
|
||||
+ long ru_minflt; /* page reclaims */
|
||||
+ long ru_majflt; /* page faults */
|
||||
+ long ru_nswap; /* swaps */
|
||||
+ long ru_inblock; /* block input operations */
|
||||
+ long ru_oublock; /* block output operations */
|
||||
+ long ru_msgsnd; /* messages sent */
|
||||
+ long ru_msgrcv; /* messages received */
|
||||
+ long ru_nsignals; /* signals received */
|
||||
+ long ru_nvcsw; /* voluntary context switches */
|
||||
+ long ru_nivcsw; /* involuntary " */
|
||||
+#define ru_last ru_nivcsw
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+ * Resource limits
|
||||
+ */
|
||||
+#define RLIMIT_CPU 0 /* cpu time in milliseconds */
|
||||
+#define RLIMIT_FSIZE 1 /* maximum file size */
|
||||
+#define RLIMIT_DATA 2 /* data size */
|
||||
+#define RLIMIT_STACK 3 /* stack size */
|
||||
+#define RLIMIT_CORE 4 /* core file size */
|
||||
+#define RLIMIT_RSS 5 /* resident set size */
|
||||
+#define RLIMIT_MEMLOCK 6 /* locked-in-memory address space */
|
||||
+#define RLIMIT_NPROC 7 /* number of processes */
|
||||
+#define RLIMIT_NOFILE 8 /* number of open files */
|
||||
+#define RLIMIT_SBSIZE 9 /* maximum size of all socket buffers */
|
||||
+#define RLIMIT_VMEM 10 /* virtual process size (inclusive of mmap) */
|
||||
+
|
||||
+#define RLIM_NLIMITS 11 /* number of resource limits */
|
||||
+
|
||||
+#define RLIM_INFINITY ((rlim_t)(((u_quad_t)1 << 63) - 1))
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+ * Resource limit string identifiers
|
||||
+ */
|
||||
+
|
||||
+#ifdef _RLIMIT_IDENT
|
||||
+static char *rlimit_ident[] = {
|
||||
+ "cpu",
|
||||
+ "fsize",
|
||||
+ "data",
|
||||
+ "stack",
|
||||
+ "core",
|
||||
+ "rss",
|
||||
+ "memlock",
|
||||
+ "nproc",
|
||||
+ "nofile",
|
||||
+ "sbsize",
|
||||
+ "vmem",
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+struct orlimit {
|
||||
+ int32_t rlim_cur; /* current (soft) limit */
|
||||
+ int32_t rlim_max; /* maximum value for rlim_cur */
|
||||
+};
|
||||
+
|
||||
+struct rlimit {
|
||||
+ rlim_t rlim_cur; /* current (soft) limit */
|
||||
+ rlim_t rlim_max; /* maximum value for rlim_cur */
|
||||
+};
|
||||
+
|
||||
+/* Load average structure. */
|
||||
+struct loadavg {
|
||||
+ fixpt_t ldavg[3];
|
||||
+ long fscale;
|
||||
+};
|
||||
+
|
||||
+#ifdef _KERNEL
|
||||
+extern struct loadavg averunnable;
|
||||
+
|
||||
+#else
|
||||
+#include <sys/cdefs.h>
|
||||
+
|
||||
+__BEGIN_DECLS
|
||||
+int getpriority __P((int, int));
|
||||
+int getrlimit __P((int, struct rlimit *));
|
||||
+int getrusage __P((int, struct rusage *));
|
||||
+int setpriority __P((int, int, int));
|
||||
+int setrlimit __P((int, const struct rlimit *));
|
||||
+__END_DECLS
|
||||
+
|
||||
+#endif /* _KERNEL */
|
||||
+#endif /* !_SYS_RESOURCE_H_ */
|
20
sysutils/heartbeat/files/patch-configure
Normal file
20
sysutils/heartbeat/files/patch-configure
Normal file
@ -0,0 +1,20 @@
|
||||
--- configure.orig 2009-01-20 22:45:46.000000000 +0100
|
||||
+++ configure 2009-01-20 22:48:19.000000000 +0100
|
||||
@@ -36536,6 +36536,9 @@
|
||||
|
||||
|
||||
|
||||
+ac_config_files+="heartbeat/resource.d/BSDService"
|
||||
+
|
||||
+
|
||||
cat >confcache <<\_ACEOF
|
||||
# This file is a shell script that caches the results of configure
|
||||
# tests run on this system so they can be shared between configure
|
||||
@@ -37283,6 +37286,7 @@
|
||||
"heartbeat/resource.d/Makefile" ) CONFIG_FILES="$CONFIG_FILES heartbeat/resource.d/Makefile" ;;
|
||||
"heartbeat/resource.d/apache" ) CONFIG_FILES="$CONFIG_FILES heartbeat/resource.d/apache" ;;
|
||||
"heartbeat/resource.d/AudibleAlarm" ) CONFIG_FILES="$CONFIG_FILES heartbeat/resource.d/AudibleAlarm" ;;
|
||||
+ "heartbeat/resource.d/BSDService" ) CONFIG_FILES="$CONFIG_FILES heartbeat/resource.d/BSDService" ;;
|
||||
"heartbeat/resource.d/Delay" ) CONFIG_FILES="$CONFIG_FILES heartbeat/resource.d/Delay" ;;
|
||||
"heartbeat/resource.d/db2" ) CONFIG_FILES="$CONFIG_FILES heartbeat/resource.d/db2" ;;
|
||||
"heartbeat/resource.d/Filesystem" ) CONFIG_FILES="$CONFIG_FILES heartbeat/resource.d/Filesystem" ;;
|
@ -0,0 +1,95 @@
|
||||
--- heartbeat/resource.d/BSDService.in.orig 2009-01-16 21:21:34.000000000 +0100
|
||||
+++ heartbeat/resource.d/BSDService.in 2009-01-16 21:21:11.000000000 +0100
|
||||
@@ -0,0 +1,92 @@
|
||||
+#!/bin/sh
|
||||
+#
|
||||
+# Created by Piotr Rybicki (meritus@innervision.pl) for BSD community
|
||||
+#
|
||||
+# This script can be used do start/stop FreeBSD's
|
||||
+# /usr/local/etc/rc.d/* services.
|
||||
+#
|
||||
+# One MUST NOT enable service (in /etc/rc.conf
|
||||
+# there cannot be SERVICE_enable"YES" line)
|
||||
+# Although other params for service are welcomed
|
||||
+#
|
||||
+# Service is started by 'onestart' parameter internally
|
||||
+#
|
||||
+# usage: $0 {start|stop|status}
|
||||
+#
|
||||
+# An example usage in /usr/local/etc/ha.d/haresources:
|
||||
+# node1 10.0.0.170 BSDService::mysql-server
|
||||
+#
|
||||
+usage() {
|
||||
+ cat <<-!
|
||||
+usage: $0 SERVICE {start|stop|status}";
|
||||
+!
|
||||
+ exit 1
|
||||
+}
|
||||
+
|
||||
+. /usr/local/etc/ha.d/shellfuncs
|
||||
+RCD=/usr/local/etc/rc.d
|
||||
+#VARLIB=/var/lib/heartbeat
|
||||
+#VLFILE=$VARLIB/rsctmp/Delay
|
||||
+
|
||||
+BSDService_Status() {
|
||||
+ if [ ! -f $RCD/$1 ]
|
||||
+ then
|
||||
+ echo "There is no $RCD/$1 script!. Fatal"
|
||||
+ fi
|
||||
+
|
||||
+ $RCD/$1 onestatus 2>&1 1>/dev/null
|
||||
+
|
||||
+ if [ $? -eq 0 ]
|
||||
+ then
|
||||
+ if [ $2 = 'verbose' ]
|
||||
+ then
|
||||
+ echo "Service $1 is running OK"
|
||||
+ fi
|
||||
+ return 0
|
||||
+ else
|
||||
+ if [ $2 = 'verbose' ]
|
||||
+ then
|
||||
+ echo "Service $1 is NOT running"
|
||||
+ fi
|
||||
+ return 1
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+BSDService_Start() {
|
||||
+ BSDService_Status $1 noverbose
|
||||
+ if [ $? -eq 0 ]
|
||||
+ then
|
||||
+ echo "Service $1 already running"
|
||||
+ return 0
|
||||
+ else
|
||||
+ $RCD/$1 onestart
|
||||
+ return $?
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+BSDService_Stop() {
|
||||
+ BSDService_Status $1 noverbose
|
||||
+ if [ $? -eq 0 ]
|
||||
+ then
|
||||
+ $RCD/$1 onestop
|
||||
+ return $?
|
||||
+ else
|
||||
+ echo "Service $1 already stopped"
|
||||
+ return 0
|
||||
+ fi
|
||||
+}
|
||||
+
|
||||
+if [ $# -ne 2 ]
|
||||
+then
|
||||
+ usage; exit 1;
|
||||
+fi
|
||||
+
|
||||
+case $2 in
|
||||
+ start) BSDService_Start $1 ;;
|
||||
+ stop) BSDService_Stop $1 ;;
|
||||
+ status) BSDService_Status $1 verbose ;;
|
||||
+ *) usage
|
||||
+ exit 1;;
|
||||
+esac
|
||||
+exit $?
|
||||
+
|
@ -0,0 +1,37 @@
|
||||
--- heartbeat/resource.d/Makefile.in.orig 2009-01-16 22:05:29.000000000 +0100
|
||||
+++ heartbeat/resource.d/Makefile.in 2009-01-16 22:07:37.000000000 +0100
|
||||
@@ -47,7 +47,7 @@
|
||||
$(srcdir)/Makefile.in $(srcdir)/OCF.in $(srcdir)/Raid1.in \
|
||||
$(srcdir)/SendArp.in $(srcdir)/ServeRAID.in $(srcdir)/WAS.in \
|
||||
$(srcdir)/WinPopup.in $(srcdir)/Xinetd.in $(srcdir)/apache.in \
|
||||
- $(srcdir)/db2.in $(srcdir)/portblock.in
|
||||
+ $(srcdir)/db2.in $(srcdir)/portblock.in $(srcdir)/BSDService.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
@@ -58,7 +58,7 @@
|
||||
CONFIG_CLEAN_FILES = apache AudibleAlarm Delay db2 Filesystem ICP \
|
||||
IPaddr IPaddr2 IPsrcaddr LinuxSCSI LVM LVSSyncDaemonSwap \
|
||||
MailTo OCF portblock Raid1 ServeRAID SendArp WAS WinPopup \
|
||||
- Xinetd
|
||||
+ Xinetd BSDService
|
||||
am__installdirs = "$(DESTDIR)$(halibdir)" "$(DESTDIR)$(harddir)"
|
||||
halibPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(halib_PROGRAMS)
|
||||
@@ -357,6 +357,7 @@
|
||||
hard_SCRIPTS = \
|
||||
apache \
|
||||
AudibleAlarm \
|
||||
+ BSDService \
|
||||
db2 \
|
||||
Delay \
|
||||
Filesystem \
|
||||
@@ -414,6 +415,8 @@
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
AudibleAlarm: $(top_builddir)/config.status $(srcdir)/AudibleAlarm.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
+BSDService: $(top_builddir)/config.status $(srcdir)/BSDService.in
|
||||
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
Delay: $(top_builddir)/config.status $(srcdir)/Delay.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
db2: $(top_builddir)/config.status $(srcdir)/db2.in
|
@ -1,11 +1,54 @@
|
||||
--- heartbeat/resource.d/IPaddr.in.orig 2008-10-16 19:49:31.000000000 +0200
|
||||
+++ heartbeat/resource.d/IPaddr.in 2008-10-16 19:51:23.000000000 +0200
|
||||
@@ -105,7 +105,7 @@
|
||||
--- heartbeat/resource.d/IPaddr.in.orig 2009-01-16 21:01:12.000000000 +0100
|
||||
+++ heartbeat/resource.d/IPaddr.in 2009-01-16 21:13:44.000000000 +0100
|
||||
@@ -79,6 +79,23 @@
|
||||
return 1
|
||||
}
|
||||
|
||||
case $SYSTYPE in
|
||||
*BSD)
|
||||
- $IFCONFIG | grep "$ipaddr" -B4 | grep "UP," | cut -d ":" -f 1
|
||||
+ $IFCONFIG | grep "$ipaddr " -B20 | grep "UP," | tail -n 1 | cut -d ":" -f 1
|
||||
return 0;;
|
||||
+find_interface_bsd() {
|
||||
+
|
||||
+ ipaddr="$1";
|
||||
+
|
||||
+ for ifname in `$IFCONFIG -l`
|
||||
+ do
|
||||
+# echo "IFNAME:$ifname"
|
||||
+ $IFCONFIG $ifname | grep "inet.*[: ]$ipaddr " >/dev/null 2>&1
|
||||
+ if [ $? -eq 0 ]
|
||||
+ then
|
||||
+ echo $ifname
|
||||
+ return 0
|
||||
+ fi
|
||||
+ done
|
||||
+ return 1
|
||||
+}
|
||||
+
|
||||
#
|
||||
# Find out which alias serves the given IP address
|
||||
# The argument is an IP address, and its output
|
||||
@@ -131,6 +148,9 @@
|
||||
SunOS)
|
||||
IF=`find_interface_solaris $BASEIP`
|
||||
;;
|
||||
+ BSD)
|
||||
+ IF=`find_interface_bsd $BASEIP`
|
||||
+ ;;
|
||||
*)
|
||||
: "comparing $ipaddr to $addr (from ifconfig)"
|
||||
IF=`find_interface_generic $BASEIP`
|
||||
;;
|
||||
@@ -253,6 +273,7 @@
|
||||
;;
|
||||
|
||||
*BSD)
|
||||
+ echo "ipaddr: $ipaddr, iface: $iface, ifinfo: $ifinfo"
|
||||
CMD="$IFCONFIG $iface inet $ipaddr netmask 255.255.255.255 alias"
|
||||
;;
|
||||
*)
|
||||
@@ -461,6 +482,9 @@
|
||||
SunOS)
|
||||
j=1
|
||||
;;
|
||||
+ *BSD)
|
||||
+ j=1
|
||||
+ ;;
|
||||
*)
|
||||
j=0
|
||||
TRYADRCNT=`ls "${NICBASE}:"* | wc -l | tr -d ' ' 2>/dev/null`
|
||||
|
@ -7,6 +7,7 @@ etc/ha.d/rc.d/ip-request
|
||||
etc/ha.d/rc.d/ip-request-resp
|
||||
etc/ha.d/rc.d/status
|
||||
etc/ha.d/resource.d/AudibleAlarm
|
||||
etc/ha.d/resource.d/BSDService
|
||||
etc/ha.d/resource.d/Delay
|
||||
etc/ha.d/resource.d/Filesystem
|
||||
etc/ha.d/resource.d/ICP
|
||||
|
Loading…
Reference in New Issue
Block a user