dev-perl/MogileFS-Server: Bump to version 2.720.0
authorKent Fredric <kentnl@gentoo.org>
Sun, 19 Nov 2017 07:09:46 +0000 (20:09 +1300)
committerKent Fredric <kentnl@gentoo.org>
Sun, 19 Nov 2017 07:10:33 +0000 (20:10 +1300)
- 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

dev-perl/MogileFS-Server/Manifest
dev-perl/MogileFS-Server/MogileFS-Server-2.720.0.ebuild [new file with mode: 0644]
dev-perl/MogileFS-Server/files/MogileFS-Server-2.720.0-gentoo-init-conf.patch [new file with mode: 0644]

index 34fd0abfc88a6b95f386994d8e2b3a5d9c00bd36..1a1126ebfd72edc6bafc9017ca5ecf4e6f341f69 100644 (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
diff --git a/dev-perl/MogileFS-Server/MogileFS-Server-2.720.0.ebuild b/dev-perl/MogileFS-Server/MogileFS-Server-2.720.0.ebuild
new file mode 100644 (file)
index 0000000..70b6fe8
--- /dev/null
@@ -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
+}
diff --git a/dev-perl/MogileFS-Server/files/MogileFS-Server-2.720.0-gentoo-init-conf.patch b/dev-perl/MogileFS-Server/files/MogileFS-Server-2.720.0-gentoo-init-conf.patch
new file mode 100644 (file)
index 0000000..7a90e5c
--- /dev/null
@@ -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: