Date: Sat, 18 May 2013 12:11:07 GMT From: Mikolaj Golub <trociny@FreeBSD.org> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/178738: databases/py-swift: add rc.d script and fix posix_fadvise Message-ID: <201305181211.r4ICB79t037852@oldred.FreeBSD.org> Resent-Message-ID: <201305181220.r4ICK0f4099575@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 178738 >Category: ports >Synopsis: databases/py-swift: add rc.d script and fix posix_fadvise >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat May 18 12:20:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Mikolaj Golub >Release: >Organization: >Environment: >Description: * Add rc.d script * Add the patch that fixes posix_fadvise64 linuxism: swift tries to call posix_fadvise64, which does not exists on FreeBSD and does not needed because off_t is 8 bytes on both 32 and 64-bit platforms, so posix_fadvise should be called instead. This has been reported upstream (#1179268) but there is no reaction so far. >How-To-Repeat: >Fix: Patch attached with submission follows: Index: databases/py-swift/files/swift.in =================================================================== --- databases/py-swift/files/swift.in (revision 0) +++ databases/py-swift/files/swift.in (working copy) @@ -0,0 +1,116 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# PROVIDE: swift +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf to enable swift: +# +# swift_enable (bool): Set it to "YES" to enable swift. +# Default is "NO". +# swift_servers (list): Specify servers to run as a space separated +# list of possible values: +# account, account-reaper, account-replicator, +# container, container-auditor, container-replicator, +# container-sync, container-updater, +# object, object-auditor, object-expirer, +# object-replicator, object-updater, +# proxy. +# The following aliases may be used: +# "ACCOUNT" -- all account servers; +# "EXPIRER" -- object-expirer; +# "CONTAINER" -- all container server; +# "OBJECT" -- all object servers; +# "PROXY" -- all proxy servers; +# "STORAGE" -- all storage node servers +# (alias for "ACCOUNT CONTAINER OBJECT"); +# "ALL" -- all servers +# (alias for "ACCOUNT CONTAINER EXPIRER OBJECT PROXY"). +# Default is "ALL". + +. /etc/rc.subr + +name="swift" +rcvar=swift_enable + +extra_commands="reload shutdown status" +reload_cmd="swift_init reload" +shutdown_cmd="swift_init shutdown" +start_cmd="swift_init start" +status_cmd="swift_init status" +stop_cmd="swift_init stop" + +required_files=%%PREFIX%%/etc/swift/swift.conf + +PATH=%%PREFIX%%/bin:$PATH + +load_rc_config $name + +: ${swift_enable:="NO"} +: ${swift_servers:="ALL"} + +swift_expand_servers() +{ + local x + + for x; do + case "${x}" in + ALL) + swift_expand_servers PROXY + swift_expand_servers EXPIRER + ;& + STORAGE) + swift_expand_servers ACCOUNT + swift_expand_servers CONTAINER + swift_expand_servers OBJECT + ;; + ACCOUNT) + echo account + echo account-reaper + echo account-replicator + ;; + EXPIRER) + echo object-expirer + ;; + CONTAINER) + echo container + echo container-auditor + echo container-replicator + echo container-sync + echo container-updater + ;; + OBJECT) + echo object + echo object-auditor + echo object-replicator + echo object-updater + ;; + PROXY) + echo proxy + ;; + account|account-reaper|account-replicator|\ + container|container-auditor|container-replicator|\ + container-sync|container-updater|\ + object|object-auditor|object-expirer|object-replicator|\ + object-updater|\ + proxy) + echo "${x}" + ;; + *) + warn "unknown service: ${x}" + exit 1 + ;; + esac + done | sort -u +} + +swift_init() +{ + local cmd=$1 + + swift-init `swift_expand_servers ${swift_servers}` ${cmd} +} + +run_rc_command "$1" Index: databases/py-swift/files/patch-utils.py =================================================================== --- databases/py-swift/files/patch-utils.py (revision 0) +++ databases/py-swift/files/patch-utils.py (working copy) @@ -0,0 +1,17 @@ +--- swift/common/utils.py.orig 2013-05-18 14:10:21.000000000 +0300 ++++ swift/common/utils.py 2013-05-18 14:09:06.000000000 +0300 +@@ -274,12 +274,12 @@ def drop_buffer_cache(fd, offset, length + """ + global _posix_fadvise + if _posix_fadvise is None: +- _posix_fadvise = load_libc_function('posix_fadvise64') ++ _posix_fadvise = load_libc_function('posix_fadvise') + # 4 means "POSIX_FADV_DONTNEED" + ret = _posix_fadvise(fd, ctypes.c_uint64(offset), + ctypes.c_uint64(length), 4) + if ret != 0: +- logging.warn("posix_fadvise64(%s, %s, %s, 4) -> %s" ++ logging.warn("posix_fadvise(%s, %s, %s, 4) -> %s" + % (fd, offset, length, ret)) + + Index: databases/py-swift/Makefile =================================================================== --- databases/py-swift/Makefile (revision 317313) +++ databases/py-swift/Makefile (working copy) @@ -24,6 +24,7 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}eventlet>=0.9. USE_PYTHON= -2.7 USE_PYDISTUTILS= easy_install +USE_RC_SUBR= swift MAN1= swift-account-auditor.1 \ swift-account-reaper.1 \ >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305181211.r4ICB79t037852>