dev-perl/MogileFS-Server: Bump to version 2.720.0

- EAPI6
- Enable tests ( some appear to auto-skip when servers are missing
    and the objective is to enable them to see what breaks and maximally
    enable all possible end-user tests )
- Rework gentoo /etc/ stuff to use patches instead of explicit
    ${FILESDIR} copies, in order to make it easier for end users to
    tweak installed files with eapply_user, and make it easier to
    construct effective install trees trivially using upstream sources,
    as well as discouraging accidental retroactive changes to existing
    available versions ( happened many times in the past ), while
    encouraging using patch layering to augment incremental changes
    where relevant.
- Remove hacks around mogdeps, which vanished upstream in
    MogileFS-Server 2.56 ( 2011-2012 )
- Use 'checkpath' instead of 'install' in mogilefsd script, and remove
    EQAWARNING use of keepdir /var/run

Upstream:
- Work with DBD::SQLite latest lock errors
- remove update_host_property
- remove users of unreachable_fids table
- batch MySQL updates in monitor
- defer monitor DB updates until all HTTP requests are done
- defer expiry of timed out poolable connections
- disable watch_write before retrying write in poolable connections
- do not write before event_write in poolable connections
- add conn_pool_size config option
- enable TCP keepalives for iostat watcher sockets
- add "readonly" state to overide host device "alive" state

Package-Manager: Portage-2.3.8, Repoman-2.3.3
This commit is contained in:
Kent Fredric
2017-11-19 20:09:46 +13:00
parent 33d8cbce14
commit c0956c57d9
3 changed files with 261 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST MogileFS-Server-2.70.tar.gz 199850 SHA256 686f328a4a6dacdb6c6153e7c1837875580d8437bf91ebd74ef197b1caefa7a6 SHA512 e5dd7dbfd8422d69d1ffbe9d6cf5f8845e33484a7c812fe60285c0aa17d812a5de33d1a0503972749d70fed92767eedc1119bea650712150d9d5d4e4fdbccb8f WHIRLPOOL c47a79e0002b38d605d1b4407bab886a53f818f3b664421e6e83696a2db152fb71cd093acbaecc6fc46f2bb69a43339c105d4bf566af1e834492aa4a44adedcd
DIST MogileFS-Server-2.72.tar.gz 200057 SHA256 d7d5a45d50127bf62e451c6d86eb247103b01c46662898ae4e18daa08be8e0bf SHA512 4076ba33123c984f9d7c56db7d308b4d857e852caa8d811d86ed551b9ab74a6dfc93b034d034ec2802376035799860c613aef2bdd3898c1225e37727fda34ade WHIRLPOOL 1bb22dd7701d885268416556bec8c37f1f7cadcadcec50c27ecebd84c8222626eeb018d6d72f6ce2aeb985d3bbf9f625d9561a3109ef443c82a35faf15dce083

View File

@@ -0,0 +1,76 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DIST_AUTHOR=DORMANDO
DIST_VERSION=${PV%0.0}
inherit user perl-module
DESCRIPTION="Server for the MogileFS distributed file system"
HOMEPAGE="http://www.danga.com/mogilefs/ ${HOMEPAGE}"
IUSE="mysql sqlite postgres"
SLOT="0"
LICENSE="|| ( Artistic GPL-2 )"
KEYWORDS="~amd64 ~ppc ~x86"
# Upstream site recommends this,
# but it breaks Perlbal
# dev-perl/Perlbal-XS-HTTPHeaders
RDEPEND="dev-perl/Net-Netmask
>=dev-perl/Danga-Socket-1.610.0
>=dev-perl/Sys-Syscall-0.220.0
>=dev-perl/Perlbal-1.790
>=dev-perl/IO-AIO-4
dev-perl/libwww-perl
>=dev-perl/MogileFS-Client-1.170.0
>=dev-perl/MogileFS-Utils-2.280.0
dev-perl/Cache-Memcached
mysql? ( dev-perl/DBD-mysql )
postgres? ( dev-perl/DBD-Pg )
sqlite? ( dev-perl/DBD-SQLite )"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}/${P}-gentoo-init-conf.patch"
)
DIST_TEST="do"
MOGILE_USER="mogile"
pkg_setup() {
# Warning! It is important that the uid is constant over Gentoo machines
# As mogilefs may be used with non-local block devices that move!
enewuser ${MOGILE_USER} 460 -1 -1
}
src_install() {
perl-module_src_install || die "perl-module_src_install failed"
cd "${S}"
newconfd "${S}"/gentoo/conf.d/mogilefsd mogilefsd
newinitd "${S}"/gentoo/init.d/mogilefsd mogilefsd
newconfd "${S}"/gentoo/conf.d/mogstored mogstored
newinitd "${S}"/gentoo/init.d/mogstored mogstored
newinitd "${S}"/gentoo/init.d/mogautomount mogautomount
diropts -m 700 -o ${MOGILE_USER}
keepdir /var/mogdata
diropts -m 755 -o root
dodir /etc/mogilefs
insinto /etc/mogilefs
insopts -m 600 -o root -g ${MOGILE_USER}
newins "${S}"/gentoo/conf/mogilefsd.conf mogilefsd.conf
newins "${S}"/gentoo/conf/mogstored.conf mogstored.conf
}
pkg_postinst() {
chmod 640 "${ROOT}"/etc/mogilefs/{mogilefsd,mogstored}.conf
chown root:${MOGILE_USER} "${ROOT}"/etc/mogilefs/{mogilefsd,mogstored}.conf
}

View File

@@ -0,0 +1,184 @@
diff --git a/gentoo/conf.d/mogilefsd b/gentoo/conf.d/mogilefsd
new file mode 100644
index 0000000..b6968d1
--- /dev/null
+++ b/gentoo/conf.d/mogilefsd
@@ -0,0 +1,3 @@
+PIDFILE="/var/run/mogile/mogilefsd.pid"
+MOGILEFSD_OPTS="--daemonize --pidfile=${PIDFILE}"
+# vim: ft=gentoo-conf-d:
diff --git a/gentoo/conf.d/mogstored b/gentoo/conf.d/mogstored
new file mode 100644
index 0000000..aa3cb63
--- /dev/null
+++ b/gentoo/conf.d/mogstored
@@ -0,0 +1,3 @@
+PIDFILE="/var/run/mogile/mogstored.pid"
+MOGSTORED_OPTS=""
+# vim: ft=gentoo-conf-d:
diff --git a/gentoo/conf/mogilefsd.conf b/gentoo/conf/mogilefsd.conf
new file mode 100644
index 0000000..df50e23
--- /dev/null
+++ b/gentoo/conf/mogilefsd.conf
@@ -0,0 +1,34 @@
+# System user
+user = mogile
+# These are set inside the Gentoo conf.d/mogilefsd
+#pidfile = /var/run/mogile/mogilefsd.pid
+#daemonize = 1
+
+# Database settings
+db_dsn = DBI:mysql:mogilefs
+db_user = mogile
+# You must insert your password here!
+db_pass = __PASSWORD__
+
+# Network settings
+#conf_port = 7001
+#listen = 10.0.0.1:7001,
+
+# Storage
+#mog_root = /mnt/mogilefs
+
+# Plugins
+#plugins = ...
+
+# Tuning knobs
+#query_jobs = 20
+#delete_jobs = 1
+#replicate_jobs = 1
+#monitor_jobs = 1
+#reaper_jobs = 1
+#min_free_space = 100
+#max_disk_age = 5
+#node_timeout = 2
+#old_repl_compat = 1
+#default_mindevcount = 2
+#no_unreachable_tracking = 1
diff --git a/gentoo/conf/mogstored.conf b/gentoo/conf/mogstored.conf
new file mode 100644
index 0000000..100a8c3
--- /dev/null
+++ b/gentoo/conf/mogstored.conf
@@ -0,0 +1,21 @@
+# These are set inside the Gentoo conf.d/mogilefsd
+#pidfile = /var/run/mogile/mogstored.pid
+#daemonize = 1
+
+# Network settings
+#httplisten = 0.0.0.0:7500
+#mgmtlisten = 0.0.0.0:7501
+
+# Storage
+#docroot = /var/mogdata
+
+# Server type
+# Perlbal is the default
+#server = perlbal
+# But lighttpd is supported too
+#server = lighttpd
+#serverbin = /usr/sbin/lighttpd
+
+# Tuning knobs
+#max_conns = 10000
+#opt_iostat 1
diff --git a/gentoo/init.d/mogautomount b/gentoo/init.d/mogautomount
new file mode 100644
index 0000000..f287366
--- /dev/null
+++ b/gentoo/init.d/mogautomount
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+
+NAME="mogautomount"
+BINARY="/usr/bin/mogautomount"
+
+depend() {
+ use net
+ before mogstored
+}
+
+start() {
+ ebegin "Mounting MogileFS disks"
+ ${BINARY} --chmod-mountpoints
+ eend $?
+}
+
+stop() {
+ :
+}
+
+# vim: ft=gentoo-init-d:
diff --git a/gentoo/init.d/mogilefsd b/gentoo/init.d/mogilefsd
new file mode 100644
index 0000000..062568e
--- /dev/null
+++ b/gentoo/init.d/mogilefsd
@@ -0,0 +1,31 @@
+#!/sbin/openrc-run
+
+NAME="mogilefsd"
+BINARY="/usr/bin/mogilefsd"
+MOGILE_UID="mogile"
+MOGILE_GID="mogile"
+
+depend() {
+ use net mysql postgresql
+ after mysql postgresql
+}
+
+start() {
+ checkpath --directory \
+ --owner "${MOGILE_UID}:${MOGILE_GID}" \
+ --mode 700 \
+ "$(dirname $PIDFILE)"
+ ebegin "Starting $NAME"
+ start-stop-daemon --chuid ${MOGILE_UID}:${MOGILE_GID} --start \
+ --pidfile ${PIDFILE} --exec ${BINARY} \
+ -- ${MOGILEFSD_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping $NAME"
+ start-stop-daemon --stop --quiet --pidfile="${PIDFILE}"
+ eend $?
+}
+
+# vim: ft=gentoo-init-d noet:
diff --git a/gentoo/init.d/mogstored b/gentoo/init.d/mogstored
new file mode 100644
index 0000000..d28a853
--- /dev/null
+++ b/gentoo/init.d/mogstored
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+
+NAME="mogstored"
+BINARY="/usr/bin/mogstored"
+MOGILE_UID="mogile"
+MOGILE_GID="mogile"
+
+depend() {
+ use net logger
+ before mogilefsd
+ need mogautomount
+}
+
+start() {
+ install -o $MOGILE_UID -g $MOGILE_GID -d $(dirname $PIDFILE)
+ ebegin "Starting $NAME"
+ start-stop-daemon --start --quiet \
+ --pidfile=${PIDFILE} --exec ${BINARY} \
+ -- --daemonize --pidfile=${PIDFILE} ${MOGSTORED_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping $NAME"
+ start-stop-daemon --stop --quiet --pidfile="${PIDFILE}"
+ eend $?
+}
+
+# vim: ft=gentoo-init-d: