From owner-svn-ports-head@freebsd.org Fri Oct 2 15:18:53 2015 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0B25A0D717; Fri, 2 Oct 2015 15:18:53 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AFD491F2E; Fri, 2 Oct 2015 15:18:53 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t92FIrac049629; Fri, 2 Oct 2015 15:18:53 GMT (envelope-from rene@FreeBSD.org) Received: (from rene@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t92FInEp049612; Fri, 2 Oct 2015 15:18:49 GMT (envelope-from rene@FreeBSD.org) Message-Id: <201510021518.t92FInEp049612@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rene set sender to rene@FreeBSD.org using -f From: Rene Ladan Date: Fri, 2 Oct 2015 15:18:49 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r398437 - in head: . textproc textproc/pootle textproc/pootle/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Oct 2015 15:18:54 -0000 Author: rene Date: Fri Oct 2 15:18:48 2015 New Revision: 398437 URL: https://svnweb.freebsd.org/changeset/ports/398437 Log: Resurrect textproc/pootle and update it to 2.5.1.3 There might be some rough edges with getting it running properly, but time will tell. Add UID/GID 158 for pootle. Differential Revision: https://reviews.freebsd.org/D1234 Added: head/textproc/pootle/ - copied from r366980, head/textproc/pootle/ head/textproc/pootle/files/patch-pootle_apps_djblets_util_fields.py (contents, props changed) head/textproc/pootle/files/patch-pootle_apps_pootle__app_views_admin_dashboard.py (contents, props changed) head/textproc/pootle/files/patch-pootle_apps_pootle__misc_forms.py (contents, props changed) head/textproc/pootle/files/patch-pootle_apps_pootle__misc_util.py (contents, props changed) head/textproc/pootle/files/patch-pootle_apps_pootle__store_models.py (contents, props changed) head/textproc/pootle/files/patch-pootle_apps_pootle__store_views.py (contents, props changed) head/textproc/pootle/files/patch-pootle_apps_pootle__terminology_views.py (contents, props changed) head/textproc/pootle/files/patch-pootle_apps_registration_models.py (contents, props changed) head/textproc/pootle/files/patch-pootle_middleware_captcha.py (contents, props changed) head/textproc/pootle/files/patch-pootle_middleware_errorpages.py (contents, props changed) Deleted: head/textproc/pootle/files/patch-setup.py head/textproc/pootle/files/pkg-install.in head/textproc/pootle/pkg-plist Modified: head/GIDs head/UIDs head/textproc/Makefile head/textproc/pootle/Makefile head/textproc/pootle/distinfo head/textproc/pootle/files/pootle.in Modified: head/GIDs ============================================================================== --- head/GIDs Fri Oct 2 15:11:36 2015 (r398436) +++ head/GIDs Fri Oct 2 15:18:48 2015 (r398437) @@ -95,6 +95,7 @@ trircd:*:154: xorp:*:155: monetdb:*:156: barman:*:157: +pootle:*:158: nocat:*:159: sfs:*:171: agk:*:172: Modified: head/UIDs ============================================================================== --- head/UIDs Fri Oct 2 15:11:36 2015 (r398436) +++ head/UIDs Fri Oct 2 15:18:48 2015 (r398437) @@ -101,6 +101,7 @@ rbldns:*:153:153::0:0:rbldnsd pseudo-use trircd:*:154:154::0:0:& user:/usr/local/etc/tr-ircd:/usr/sbin/nologin monetdb:*:156:156::0:0:MonetDB user:/usr/local/monetdb5:/bin/sh barman:*:157:157::0:0:Barman user:/var/barman:/bin/sh +pootle:*:158:158::0:0:Pootle User:/var/db/pootle:/usr/sbin/nologin nocat:*:159:159::0:0:NoCat Daemon:/libexec/nocat:/sbin/nologin sfs:*:171:171::0:0:Self-Certifying File System:/nonexistent:/usr/sbin/nologin agk:*:172:172::0:0:AquaGateKeeper:/nonexistent:/nonexistent Modified: head/textproc/Makefile ============================================================================== --- head/textproc/Makefile Fri Oct 2 15:11:36 2015 (r398436) +++ head/textproc/Makefile Fri Oct 2 15:18:48 2015 (r398437) @@ -1182,6 +1182,7 @@ SUBDIR += po4a SUBDIR += pocketreader SUBDIR += pod2mdoc + SUBDIR += pootle SUBDIR += popup SUBDIR += popup-stacks SUBDIR += ppower4 Modified: head/textproc/pootle/Makefile ============================================================================== --- head/textproc/pootle/Makefile Tue Sep 2 10:07:49 2014 (r366980) +++ head/textproc/pootle/Makefile Fri Oct 2 15:18:48 2015 (r398437) @@ -2,97 +2,74 @@ # $FreeBSD$ PORTNAME= pootle -PORTVERSION= 2.1.6 -PORTREVISION= 2 +PORTVERSION= 2.5.1.3 CATEGORIES= textproc -MASTER_SITES= SF/translate/Pootle/${PORTVERSION}/ +MASTER_SITES= CHEESESHOP DISTNAME= Pootle-${PORTVERSION} -MAINTAINER= ports@FreeBSD.org -COMMENT= Pootle is a user-friendly web portal for simple translation process +MAINTAINER= rene@FreeBSD.org +COMMENT= User-friendly web portal for simple translation process -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django>=1.2:${PORTSDIR}/www/py-django \ - translate-toolkit>=1.8.1:${PORTSDIR}/textproc/translate-toolkit \ - ${PYTHON_PKGNAMEPREFIX}south>=0.7:${PORTSDIR}/databases/py-south - -RUN_DEPENDS:= ${BUILD_DEPENDS} - -BROKEN= Does not install -CONFLICTS= ${PYTHON_PKGNAMEPREFIX}django-profiles-[0-9]* \ - ${PYTHON_PKGNAMEPREFIX}django-registration-[0-9]* - -USES= gettext tar:bzip2 -USE_PYTHON= yes -USE_PYDISTUTILS=yes -PYDISTUTILS_PKGNAME= Pootle - -POOTLEUSER?= nobody -POOTLEGROUP?= nobody - -POOTLEDBDIR?= /var/db/pootle -POOTLELOGDIR?= /var/log/pootle -POOTLERUNDIR?= /var/run/pootle +LICENSE= GPLv2 +LICENSE_FILE= ${WRKSRC}/LICENSE + +RUN_DEPENDS= translate-toolkit>=1.11.0:${PORTSDIR}/textproc/translate-toolkit \ + ${PYTHON_PKGNAMEPREFIX}south>=0.7.6:${PORTSDIR}/databases/py-south\ + ${PYTHON_PKGNAMEPREFIX}cssmin>=0.1.4:${PORTSDIR}/www/py-cssmin \ + ${PYTHON_PKGNAMEPREFIX}lxml>=2.1.4:${PORTSDIR}/devel/py-lxml \ + ${PYTHON_PKGNAMEPREFIX}argparse>=0:${PORTSDIR}/devel/py-argparse \ + ${PYTHON_PKGNAMEPREFIX}django-taggit>0.10:${PORTSDIR}/www/py-django-taggit \ + ${PYTHON_PKGNAMEPREFIX}django-assets>=0.8:${PORTSDIR}/www/py-django-assets \ + ${PYTHON_PKGNAMEPREFIX}south>=0.7.6:${PORTSDIR}/databases/py-south \ + ${PYTHON_PKGNAMEPREFIX}django-voting>=0.1:${PORTSDIR}/www/py-django-voting \ + ${PYTHON_PKGNAMEPREFIX}simplejson>=0:${PORTSDIR}/devel/py-simplejson \ + ${PYTHON_PKGNAMEPREFIX}diff-match-patch>=0:${PORTSDIR}/textproc/py-diff-match-patch +# actually diff-match-patch is a dependency of translate-toolkit, +# but only this port uses it. + +USES= gettext python tar:bzip2 +USE_PYTHON= autoplist distutils + +USERS= pootle +GROUPS= pootle + +PLIST_SUB+= POOTLEUSER="${USERS}" \ + POOTLEGROUP="${GROUPS}" USE_RC_SUBR= pootle -SUB_LIST+= PYTHON_CMD="${PYTHON_CMD}" \ - POOTLEDBDIR="${POOTLEDBDIR}" \ - POOTLELOGDIR="${POOTLELOGDIR}" \ - POOTLERUNDIR="${POOTLERUNDIR}" \ - POOTLEUSER="${POOTLEUSER}" \ - POOTLEGROUP="${POOTLEGROUP}" \ - CHOWN="${CHOWN}" \ - CHMOD="${CHMOD}" \ - MKDIR="${MKDIR}" - -PLIST_SUB+= POOTLEDBDIR="${POOTLEDBDIR}" \ - POOTLELOGDIR="${POOTLELOGDIR}" - -SUB_FILES+= pkg-install -PKGINSTALL= ${WRKDIR}/pkg-install - -PORTDOCS= ChangeLog COPYING INSTALL README wsgi.py - -OPTIONS_DEFINE= MYSQL SUBVERSION MEMCACHED -OPTIONS_DEFAULT= MYSQL SUBVERSION MEMCACHED -SUBVERSION_DESC= ${SVN_DESC} -MEMCACHED_DESC= Enable memcached support - -NO_STAGE= yes -.include - -.if ${PORT_OPTIONS:MMYSQL} -USE_MYSQL= yes -.endif - -.if ${PORT_OPTIONS:MSUBVERSION} -RUN_DEPENDS+= svn:${PORTSDIR}/devel/subversion -.endif - -.if ${PORT_OPTIONS:MMEMCACHED} -LIB_DEPENDS+= libmemcached.so:${PORTSDIR}/databases/libmemcached -RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}memcached>=1.45:${PORTSDIR}/databases/py-memcached -.endif - -post-patch: - @${MV} ${WRKSRC}/localsettings.py ${WRKSRC}/localsettings.py.sample - @${REINPLACE_CMD} -e "s|^CONFIG_DIR.*=.*|CONFIG_DIR = \'${PREFIX}/etc/pootle\'|g" \ - -e "s|^DATA_DIR.*=.*|DATA_DIR = \\'${DATADIR}\\'|g" \ - -e "s|^WORKING_DIR.*=.*|WORKING_DIR = \\'${POOTLEDBDIR}\\'|g" \ - ${WRKSRC}/pootle/install_dirs.py - @${REINPLACE_CMD} -e "s|^INSTALL_CONFIG_DIR.*=.*|INSTALL_CONFIG_DIR = \'${PREFIX}/etc/pootle\'|g" \ - -e "s|^INSTALL_WORKING_DIR.*=.*|INSTALL_WORKING_DIR = \'${POOTLEDBDIR}\'|g" \ - ${WRKSRC}/setup.py +SUB_LIST+= PYTHON_CMD="${PYTHON_CMD}" -post-install: - @PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL - @${CP} -n ${PREFIX}/etc/pootle/localsettings.py.sample \ - ${PREFIX}/etc/pootle/localsettings.py || ${TRUE} +PORTDOCS= CREDITS INSTALL LICENSE + +OPTIONS_DEFINE= LDAP MEMCACHED MYSQL PGSQL +OPTIONS_DEFAULT=MEMCACHED MYSQL + +MEMCACHED_DESC= Use memcached to improve performance + +MYSQL_USE= MYSQL=yes -.if ${PORT_OPTIONS:MDOCS} - ${MKDIR} ${DOCSDIR} +LDAP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}ldap2>0:${PORTSDIR}/devel/py-ldap2 + +MEMCACHED_LIB_DEPENDS= libmemcached.so:${PORTSDIR}/databases/libmemcached +MEMCACHED_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}memcached>=1.45:${PORTSDIR}/databases/py-memcached + +MYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}MySQLdb>0:${PORTSDIR}/databases/py-MySQLdb + +PGSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}psycopg2>0:${PORTSDIR}/databases/py-pyscopg2 + +SUBVERSION_RUN_DEPENDS= svn:${PORTSDIR}/devel/subversion + +pre-configure: + @${REINPLACE_CMD} -e "s/,<0.11.2//g" \ + -e "s/,<0.8//g" \ + -e "s/==0.1//g" \ + -e "s/,<1.5//g" \ + ${WRKSRC}/requirements/base.txt + +post-install: + ${MKDIR} ${STAGEDIR}/${DOCSDIR} .for docs in ${PORTDOCS} - ${INSTALL_DATA} ${WRKSRC}/${docs} ${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/${docs} ${STAGEDIR}/${DOCSDIR} .endfor -.endif -.include +.include Modified: head/textproc/pootle/distinfo ============================================================================== --- head/textproc/pootle/distinfo Tue Sep 2 10:07:49 2014 (r366980) +++ head/textproc/pootle/distinfo Fri Oct 2 15:18:48 2015 (r398437) @@ -1,2 +1,2 @@ -SHA256 (Pootle-2.1.6.tar.bz2) = 1f3b492b76914596b01ebe040a59d9df10ffdf29a58ab9a4600f2f49dccd298e -SIZE (Pootle-2.1.6.tar.bz2) = 2921970 +SHA256 (Pootle-2.5.1.3.tar.bz2) = f0303896af702f6bc6cbd7f28fae9478f3f11e804c6f0194c1fb34d2557f4243 +SIZE (Pootle-2.5.1.3.tar.bz2) = 6387947 Added: head/textproc/pootle/files/patch-pootle_apps_djblets_util_fields.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_apps_djblets_util_fields.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,11 @@ +--- pootle/apps/djblets/util/fields.py.orig 2015-06-03 13:30:23 UTC ++++ pootle/apps/djblets/util/fields.py +@@ -30,7 +30,7 @@ from datetime import datetime + from django.conf import settings + from django.core.serializers.json import DjangoJSONEncoder + from django.db import models +-from django.utils import simplejson ++import simplejson + from django.utils.encoding import smart_unicode + + Added: head/textproc/pootle/files/patch-pootle_apps_pootle__app_views_admin_dashboard.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_apps_pootle__app_views_admin_dashboard.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,11 @@ +--- pootle/apps/pootle_app/views/admin/dashboard.py.orig 2015-06-03 13:30:23 UTC ++++ pootle/apps/pootle_app/views/admin/dashboard.py +@@ -26,7 +26,7 @@ from django.core.cache import cache + from django.http import HttpResponse + from django.shortcuts import render_to_response + from django.template import RequestContext +-from django.utils import simplejson ++import simplejson + from django.utils.translation import ugettext as _ + + from pootle import depcheck Added: head/textproc/pootle/files/patch-pootle_apps_pootle__misc_forms.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_apps_pootle__misc_forms.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,11 @@ +--- pootle/apps/pootle_misc/forms.py.orig 2015-06-03 13:30:23 UTC ++++ pootle/apps/pootle_misc/forms.py +@@ -79,7 +79,7 @@ def make_search_form(*args, **kwargs): + + if sparams_cookie: + import urllib +- from django.utils import simplejson ++ import simplejson + + initial_sparams = simplejson.loads(urllib.unquote(sparams_cookie)) + if isinstance(initial_sparams, dict): Added: head/textproc/pootle/files/patch-pootle_apps_pootle__misc_util.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_apps_pootle__misc_util.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,12 @@ +--- pootle/apps/pootle_misc/util.py.orig 2015-06-03 13:30:23 UTC ++++ pootle/apps/pootle_misc/util.py +@@ -25,7 +25,8 @@ from django.conf import settings + from django.core.cache import cache + from django.core.paginator import Paginator + from django.http import HttpResponseBadRequest +-from django.utils import simplejson, timezone ++from django.utils import timezone ++import simplejson + from django.utils.encoding import force_unicode, iri_to_uri + from django.utils.functional import Promise + Added: head/textproc/pootle/files/patch-pootle_apps_pootle__store_models.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_apps_pootle__store_models.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,58 @@ +--- pootle/apps/pootle_store/models.py.orig 2015-06-03 13:30:23 UTC ++++ pootle/apps/pootle_store/models.py +@@ -32,9 +32,8 @@ from django.conf import settings + from django.core.exceptions import ObjectDoesNotExist + from django.core.files.storage import FileSystemStorage + from django.core.urlresolvers import reverse +-from django.db import models, DatabaseError, IntegrityError ++from django.db import models, transaction, DatabaseError, IntegrityError + from django.db.models.signals import post_delete, post_save, pre_delete +-from django.db.transaction import commit_on_success + from django.utils import timezone, tzinfo + from django.utils.translation import ugettext_lazy as _ + +@@ -1102,7 +1101,7 @@ class Store(models.Model, base.Translati + + return False + +- @commit_on_success ++ @transaction.atomic + def parse(self, store=None): + self.clean_stale_lock() + +@@ -1154,7 +1153,7 @@ class Store(models.Model, base.Translati + if obsolete_unit: + obsolete_unit.delete() + +- @commit_on_success ++ @transaction.atomic + def update(self, update_structure=False, update_translation=False, + store=None, fuzzy=False, only_newer=False, modified_since=0): + """Update DB with units from file. +@@ -1320,7 +1319,7 @@ class Store(models.Model, base.Translati + # new qualitychecks, let's flush cache + deletefromcache(self, ["getcompletestats"]) + +- @commit_on_success ++ @transaction.atomic + def update_qualitychecks(self): + logging.debug(u"Updating quality checks for %s", self.pootle_path) + for unit in self.units.iterator(): +@@ -1583,7 +1582,7 @@ class Store(models.Model, base.Translati + """Returns a single unit based on the item number.""" + return self.units[item] + +- @commit_on_success ++ @transaction.atomic + def mergefile(self, newfile, profile, allownewstrings, suggestions, + notranslate, obsoletemissing): + """Merges :param:`newfile` with the current store. +@@ -1778,7 +1777,7 @@ class Store(models.Model, base.Translati + self.pending = pending_name + self.save() + +- @commit_on_success ++ @transaction.atomic + def import_pending(self): + """import suggestions from legacy .pending files, into database""" + self.init_pending() Added: head/textproc/pootle/files/patch-pootle_apps_pootle__store_views.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_apps_pootle__store_views.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,12 @@ +--- pootle/apps/pootle_store/views.py.orig 2015-06-03 13:30:23 UTC ++++ pootle/apps/pootle_store/views.py +@@ -35,7 +35,8 @@ from django.shortcuts import get_object_ + from django.template import loader, RequestContext + from django.utils.translation import to_locale, ugettext as _ + from django.utils.translation.trans_real import parse_accept_lang_header +-from django.utils import simplejson, timezone ++from django.utils import timezone ++import simplejson + from django.utils.encoding import iri_to_uri + from django.views.decorators.cache import never_cache + from django.views.decorators.http import require_POST Added: head/textproc/pootle/files/patch-pootle_apps_pootle__terminology_views.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_apps_pootle__terminology_views.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,20 @@ +--- pootle/apps/pootle_terminology/views.py.orig 2015-06-03 13:30:23 UTC ++++ pootle/apps/pootle_terminology/views.py +@@ -19,7 +19,7 @@ + # Pootle; if not, see . + + from django.conf import settings +-from django.db.transaction import commit_on_success ++from django.db import transaction + from django.shortcuts import render_to_response + from django.template import RequestContext + from django.utils.translation import ugettext as _ +@@ -63,7 +63,7 @@ def get_terminology_filename(translation + return 'pootle-terminology.' + translation_project.project.localfiletype + + +-@commit_on_success ++@transaction.atomic + @get_path_obj + @permission_required('administrate') + def extract(request, translation_project): Added: head/textproc/pootle/files/patch-pootle_apps_registration_models.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_apps_registration_models.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,36 @@ +--- pootle/apps/registration/models.py.orig 2015-06-03 13:30:23 UTC ++++ pootle/apps/registration/models.py +@@ -1,4 +1,5 @@ + import datetime ++import hashlib + import random + import re + +@@ -8,7 +9,6 @@ from django.contrib.sites.models import + from django.db import models + from django.db import transaction + from django.template.loader import render_to_string +-from django.utils.hashcompat import sha_constructor + from django.utils.translation import ugettext_lazy as _ + + +@@ -146,7 +146,7 @@ class RegistrationManager(models.Manager + msg.send() + user_registered.send(sender=self.model, user=new_user) + return new_user +- create_inactive_user = transaction.commit_on_success(create_inactive_user) ++ create_inactive_user = transaction.atomic(create_inactive_user) + + def create_profile(self, user): + """ +@@ -158,8 +158,8 @@ class RegistrationManager(models.Manager + username and a random salt. + + """ +- salt = sha_constructor(str(random.random())).hexdigest()[:5] +- activation_key = sha_constructor(salt+user.email).hexdigest() ++ salt = hashlib.sha1(str(random.random())).hexdigest()[:5] ++ activation_key = hashlib.sha1(salt+user.email).hexdigest() + return self.create(user=user, + activation_key=activation_key) + Added: head/textproc/pootle/files/patch-pootle_middleware_captcha.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_middleware_captcha.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,11 @@ +--- pootle/middleware/captcha.py.orig 2015-06-03 13:30:24 UTC ++++ pootle/middleware/captcha.py +@@ -29,7 +29,7 @@ from django.conf import settings + from django.http import HttpResponse + from django.shortcuts import render_to_response + from django.template import loader, RequestContext +-from django.utils import simplejson ++import simplejson + from django.utils.translation import ugettext as _ + + Added: head/textproc/pootle/files/patch-pootle_middleware_errorpages.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/textproc/pootle/files/patch-pootle_middleware_errorpages.py Fri Oct 2 15:18:48 2015 (r398437) @@ -0,0 +1,11 @@ +--- pootle/middleware/errorpages.py.orig 2015-06-03 13:30:24 UTC ++++ pootle/middleware/errorpages.py +@@ -28,7 +28,7 @@ from django.http import (Http404, HttpRe + HttpResponseServerError) + from django.template import RequestContext + from django.template.loader import render_to_string +-from django.utils import simplejson ++import simplejson + from django.utils.encoding import force_unicode + from django.utils.translation import ugettext as _ + Modified: head/textproc/pootle/files/pootle.in ============================================================================== --- head/textproc/pootle/files/pootle.in Tue Sep 2 10:07:49 2014 (r366980) +++ head/textproc/pootle/files/pootle.in Fri Oct 2 15:18:48 2015 (r398437) @@ -4,6 +4,7 @@ # # PROVIDE: pootle # REQUIRE: DAEMON +# KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to run pootle: # @@ -12,7 +13,7 @@ # pootle_flags (flags): Set extra flags here. More options in pootle(1) # Default is empty "". # pootle_logdir (path): Path to pootle log directory. -# Default is "%%POOTLELOGDIR%%". +# Default is /var/log/pootle # Empty is log to /dev/null. # pootle_user (user): Set user to run pootle. # Default is "%%POOTLEUSER%%". @@ -22,6 +23,13 @@ name=pootle rcvar=pootle_enable +load_rc_config $name + +: ${pootle_enable:=NO} +: ${pootle_user="%%POOTLEUSER%%"} +: ${pootle_group="%%POOTLEGROUP%%"} +: ${pootle_logdir=/var/log/pootle} + pidfile="%%POOTLERUNDIR%%/pootle.pid" command_interpreter="%%PYTHON_CMD%%" @@ -29,25 +37,29 @@ required_files="%%PREFIX%%/etc/pootle/lo command="%%PREFIX%%/bin/PootleServer" -load_rc_config $name -: ${pootle_enable="NO"} -: ${pootle_user="%%POOTLEUSER%%"} -: ${pootle_logdir="%%POOTLELOGDIR%%"} - -if [ -n "${pootle_logdir}" ]; then - pootle_stdout="${pootle_logdir}/access.log" - pootle_stderr="${pootle_logdir}/error.log" -else - pootle_stdout="/dev/null" - pootle_stderr="/dev/null" -fi - -start_cmd="pootle_start_cmd" +start_command=pootle_start_cmd +start_precmd=pootle_start_precmd -pootle_start_cmd () { +pootle_start_cmd() +{ [ -z "${rc_quiet}" ] && echo "Starting ${name}." /usr/sbin/daemon -p ${pidfile} -u ${pootle_user} ${command} ${pootle_flags} \ >>${pootle_stdout} 2>>${pootle_stderr} } +pootle_start_precmd() +{ + for i in db log run ; do + install -d -o ${pootle_user} -g ${pootle_group} -m 770 /var/${i}/pootle + done + + if [ -n "${pootle_logdir}" ] ; then + pootle_stdout="${pootle_logdir}/access.log" + pootle_stderr="${pootle_logdir}/error.log" + else + pootle_stdout="/dev/null" + pootle_stderr="/dev/null" + fi +} + run_rc_command "$1"