svn commit: r416105 - in head/www/seahub: . files

Dmitry Marakasov amdmi3 at FreeBSD.org
Sun May 29 13:57:54 UTC 2016


Author: amdmi3
Date: Sun May 29 13:57:52 2016
New Revision: 416105
URL: https://svnweb.freebsd.org/changeset/ports/416105

Log:
  - Update to 5.1.5
  - Multiple port improvements
  
  PR:		203929
  Submitted by:	Ultima1252 at gmail.com (maintainer)

Added:
  head/www/seahub/files/patch-send__user__notifications.sh.template
     - copied, changed from r416104, head/www/seahub/files/patch-send_user_notifications.sh.template
  head/www/seahub/files/pkg-message.in   (contents, props changed)
Deleted:
  head/www/seahub/files/altinstall.pth
  head/www/seahub/files/patch-send_user_notifications.sh.template
  head/www/seahub/files/setup.cfg
  head/www/seahub/files/setup.py
Modified:
  head/www/seahub/Makefile
  head/www/seahub/distinfo
  head/www/seahub/files/patch-setenv.sh.template
  head/www/seahub/files/seahub.in
  head/www/seahub/pkg-plist

Modified: head/www/seahub/Makefile
==============================================================================
--- head/www/seahub/Makefile	Sun May 29 13:55:12 2016	(r416104)
+++ head/www/seahub/Makefile	Sun May 29 13:57:52 2016	(r416105)
@@ -1,37 +1,10 @@
 # $FreeBSD$
 
 PORTNAME=	seahub
-PORTVERSION=	4.0.5
-PORTREVISION=	1
+PORTVERSION=	5.1.5
 DISTVERSIONPREFIX=	v
 DISTVERSIONSUFFIX=	-pro
 CATEGORIES=	www
-MASTER_SITES=	https://pypi.python.org/packages/source/p/pip/:pip \
-		https://pypi.python.org/packages/source/p/pbr/:pbr \
-		https://pypi.python.org/packages/source/l/lockfile/:lockfile \
-		https://pypi.python.org/packages/source/s/six/:six \
-		https://pypi.python.org/packages/source/g/gunicorn/:gunicorn \
-		https://pypi.python.org/packages/source/f/flup/:flup \
-		https://pypi.python.org/packages/source/d/daemon/:daemon \
-		https://pypi.python.org/packages/source/c/chardet/:chardet \
-		https://pypi.python.org/packages/source/p/python-dateutil/:dateutil \
-		https://pypi.python.org/packages/source/P/Pillow/:Pillow \
-		https://pypi.python.org/packages/source/D/Django/:Django \
-		http://downloads.reviewboard.org/releases/Djblets/0.6/:Djblets
-DISTFILES=	${DISTNAME}${EXTRACT_SUFX} \
-		pip-1.5.6.tar.gz:pip \
-		pbr-0.10.0.tar.gz:pbr \
-		lockfile-0.10.2.tar.gz:lockfile \
-		six-1.8.0.tar.gz:six \
-		gunicorn-18.0.tar.gz:gunicorn \
-		flup-1.0.2.tar.gz:flup \
-		daemon-1.1.tar.gz:daemon \
-		chardet-2.3.0.tar.gz:chardet \
-		python-dateutil-2.2.tar.gz:dateutil \
-		Pillow-2.6.1.zip:Pillow \
-		Django-1.5.9.tar.gz:Django \
-		Djblets-0.6.14.tar.gz:Djblets
-DIST_SUBDIR=	${PORTNAME}
 
 MAINTAINER=	ultima1252 at gmail.com
 COMMENT=	Web frontend for Seafile
@@ -39,24 +12,38 @@ COMMENT=	Web frontend for Seafile
 LICENSE=	APACHE20
 LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 
-RUN_DEPENDS=	${LOCALBASE}/www/haiwen/seafile-server/seafile/bin/seaf-server:net-mgmt/seafile \
-		bash:shells/bash
+RUN_DEPENDS=	bash:shells/bash \
+		${LOCALBASE}/www/haiwen/seafile-server/seafile/bin/seaf-server:net-mgmt/seafile \
+		${PYTHON_PKGNAMEPREFIX}django18>=0:www/py-django18 \
+		${PYTHON_PKGNAMEPREFIX}pytz>=0:devel/py-pytz \
+		${PYTHON_PKGNAMEPREFIX}django-statici18n>=0:www/py-django-statici18n \
+		${PYTHON_PKGNAMEPREFIX}djangorestframework>=0:www/py-djangorestframework \
+		${PYTHON_PKGNAMEPREFIX}django_compressor>=0:www/py-django_compressor \
+		${PYTHON_PKGNAMEPREFIX}django-post_office>=0:www/py-django-post_office \
+		${PYTHON_PKGNAMEPREFIX}django-constance>=0:www/py-django-constance \
+		${PYTHON_PKGNAMEPREFIX}gunicorn>=0:www/py-gunicorn \
+		${PYTHON_PKGNAMEPREFIX}flup>=0:www/py-flup \
+		${PYTHON_PKGNAMEPREFIX}chardet>=0:textproc/py-chardet \
+		${PYTHON_PKGNAMEPREFIX}dateutil>=0:devel/py-dateutil \
+		${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six \
+		${PYTHON_PKGNAMEPREFIX}openpyxl>=0:textproc/py-openpyxl \
+		${PYTHON_PKGNAMEPREFIX}pillow>=0:graphics/py-pillow \
+		${PYTHON_PKGNAMEPREFIX}MySQLdb>0:databases/py-MySQLdb
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	haiwen
 
-USES=		python:2 shebangfix
-SHEBANG_FILES=	*.sh *.template
+USES=		python:-2.7 shebangfix
+SHEBANG_FILES=	*.sh tests/*.sh *.template *.py tools/*.py seahub/*.py
 
 NO_BUILD=	yes
 
-OPTIONS_DEFINE=		SEAFOBJ SEAFDAV NLS SITEPACKAGES
+OPTIONS_DEFINE=		SEAFOBJ SEAFDAV NLS
 OPTIONS_DEFAULT=	SEAFOBJ SEAFDAV
 OPTIONS_SUB=		yes
 
 SEAFOBJ_DESC=		Enable Seafile file object modeling support
 SEAFDAV_DESC=		Enable Seafile WsgiDav-based support
-SITEPACKAGES_DESC=	Install python packages under thirdpart directory
 
 SEAFOBJ_CONFIGURE_WITH=	seafobj
 SEAFOBJ_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}seafobj>0:www/py-seafobj
@@ -67,62 +54,39 @@ SEAFDAV_RUN_DEPENDS=	${PYTHON_PKGNAMEPRE
 NLS_USES=		gettext iconv
 NLS_CONFIGURE_OFF=	--disable-nls
 
-VIRTUALENV=	${WRKDIR}/virtualenv
 HAIWENDIR=	www/haiwen
 SEAFILE_SERVER=	${HAIWENDIR}/seafile-server
 SEAHUBDIR=	${SEAFILE_SERVER}/seahub
 SEALIB=		${SEAFILE_SERVER}/seafile/lib
 SITEPACKAGEDIR=	${SEAHUBDIR}/thirdpart
+SEAHUB_DATA_DIR=	${HAIWENDIR}/seahub-data
 
-SEAFILE_USERNAME?=	www
-SEAFILE_GROUPNAME?=	${SEAFILE_USERNAME}
+USERS=		seafile
+GROUPS=		${USERS}
 
 USE_RC_SUBR=	${PORTNAME}
-PLIST_SUB=	SEAFILE_USERNAME=${SEAFILE_USERNAME} \
-		SEAFILE_GROUPNAME=${SEAFILE_GROUPNAME} \
+PLIST_SUB=	USERS=${USERS} \
+		GROUPS=${GROUPS} \
 		SEAFILE_SERVER=${SEAFILE_SERVER} \
 		SEAHUBDIR=${SEAHUBDIR} \
 		HAIWENDIR=${HAIWENDIR} \
 		SITEPACKAGEDIR=${SITEPACKAGEDIR}
 
-PORT_SITE_PKGS=	pip-1.5.6 \
-		pbr-0.10.0 \
-		pillow-2.6.1 \
-		lockfile-0.10.2 \
-		six-1.8.0 \
-		gunicorn-18.0 \
-		flup-1.0.2 \
-		daemon-1.1 \
-		chardet-2.3.0 \
-		python-dateutil-2.2 \
-		Django-1.5.9 \
-		Djblets-0.6.14
-
-.include <bsd.port.options.mk>
-
-post-install-sitepackages:
-	@${MKDIR} ${VIRTUALENV}${LOCALBASE}/bin ${VIRTUALENV}${LOCALBASE}/include \
-		${VIRTUALENV}${LOCALBASE}/lib/${PYTHON_VERSION}/site-packages
-	(cd ${WRKSRC}; export PYTHONPATH=${VIRTUALENV}${LOCALBASE}/lib/${PYTHON_VERSION}/site-packages; \
-		(for sp_pkg in ${PORT_SITE_PKGS}; do \
-		cd ${WRKDIR}/$$sp_pkg && ${ECHO_CMD} -e "[install]\nprefix=${VIRTUALENV}${LOCALBASE}" >> setup.cfg && \
-		if [ "$$sp_pkg" == "Djblets-0.6.14" ]; then ${REINPLACE_CMD} -e "s|PIL|Pillow|" ./Djblets.egg-info/requires.txt; \
-			${REINPLACE_CMD} -e "s|PIL|Pillow|" ./setup.py; fi && \
-		${PYTHON_CMD} setup.py install; \
-		done))
-	(cd ${VIRTUALENV}${LOCALBASE}/lib/${PYTHON_VERSION}/site-packages && \
-		${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${SITEPACKAGEDIR})
+SUB_FILES=	pkg-message
 
-.if ${PORT_OPTIONS:MSITEPACKAGES}
-post-install:post-install-sitepackages
-.endif
+SUB_LIST+=	USERS=${USERS} \
+		GROUPS=${GROUPS} \
+		SEAFILE_SERVER=${SEAFILE_SERVER} \
+		HAIWENDIR=${HAIWENDIR} \
+		PYTHON=${PYTHON_VERSION}
 
-post-patch:
+do-patch:
 	echo "${WRKSRC}..."
 	@${MKDIR} ${WRKSRC}/runtime
 	${CP} ${FILESDIR}/runtime_seahub.conf ${WRKSRC}/runtime/seahub.conf
-	${REINPLACE_CMD} -e "s|SEAFILE_VERSION = '3.0.0'|SEAFILE_VERSION = '${PORTVERSION}'|" ${WRKSRC}/seahub/settings.py
-	${REINPLACE_CMD} -e 's|##FIX_HAIWENDIR##|${PREFIX}/${HAIWENDIR}|' ${WRKSRC}/*.template
+	${REINPLACE_CMD} -e "s|SEAFILE_VERSION = '[0-9].[0-9].[0-9]'|SEAFILE_VERSION = '${PORTVERSION}'|" \
+			 ${WRKSRC}/seahub/settings.py
+	${REINPLACE_CMD} -e 's|##FIX_WWWDIR##|${PREFIX}/${HAIWENDIR}|' ${WRKSRC}/*.template
 	${REINPLACE_CMD} -e 's|##FIX_SEALIB##|${PREFIX}/${SEALIB}|' ${WRKSRC}/*.template
 	${REINPLACE_CMD} -e 's|##FIX_SITEPACKAGEDIR##|${PREFIX}/${SITEPACKAGEDIR}|' ${WRKSRC}/*.template
 	${REINPLACE_CMD} -e 's|##PYTHON_VERSION##|${PYTHON_VERSION}|g' ${WRKSRC}/*.template
@@ -130,16 +94,22 @@ post-patch:
 	${FIND} ${WRKSRC} -name "*.bak" -exec ${RM} {} \;
 	${FIND} ${WRKSRC} -name "*.orig" -exec ${RM} {} \;
 	(cd ${WRKSRC}; (for file in run-seahub.sh.template \
-				   send_user_notifications.sh.template setenv.sh.template; do \
-		cp $$file $${file%%.template}; \
+		send_user_notifications.sh.template setenv.sh.template; do \
+		${CP} $$file $${file%%.template}; \
 		done))
 	${RM} ${WRKSRC}/.gitignore
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/runtime/ \
-		${STAGEDIR}${PREFIX}/${SEAHUBDIR}
+		${STAGEDIR}${PREFIX}/${SEAHUBDIR} ${STAGEDIR}${PREFIX}/${SEAHUB_DATA_DIR}
 	${INSTALL} ${WRKSRC}/runtime/seahub.conf \
 		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/runtime/
-	(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${SEAHUBDIR})
+	(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${SEAHUBDIR} \
+	"! -name Makefile ! -name runtime ! -name seahub.conf ! -name avatars \
+	! -name default-non-register.jpg ! -name default.png ! -name groups")
+	(cd ${WRKSRC}/media && ${COPYTREE_SHARE} ./avatars \
+		 ${STAGEDIR}${PREFIX}/${SEAHUB_DATA_DIR})
+	${LN} -fs ${PREFIX}/${SEAHUB_DATA_DIR}/avatars \
+		${STAGEDIR}${PREFIX}/${SEAHUBDIR}/media/avatars
 
 .include <bsd.port.mk>

Modified: head/www/seahub/distinfo
==============================================================================
--- head/www/seahub/distinfo	Sun May 29 13:55:12 2016	(r416104)
+++ head/www/seahub/distinfo	Sun May 29 13:57:52 2016	(r416105)
@@ -1,26 +1,3 @@
-SHA256 (seahub/haiwen-seahub-v4.0.5-pro_GH0.tar.gz) = 1c20d8b2871ccf12e9aebb94ef7f631040b26c5728e7988ce1a6c188a0de14c5
-SIZE (seahub/haiwen-seahub-v4.0.5-pro_GH0.tar.gz) = 4994725
-SHA256 (seahub/pip-1.5.6.tar.gz) = b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c
-SIZE (seahub/pip-1.5.6.tar.gz) = 938120
-SHA256 (seahub/pbr-0.10.0.tar.gz) = 52a61a863566fafa45507a9aa40e6c88edc1e09d96cde5f5a6aa3b4d26c913ce
-SIZE (seahub/pbr-0.10.0.tar.gz) = 77690
-SHA256 (seahub/lockfile-0.10.2.tar.gz) = 9e42252f17d1dd89ee31745e0c4fbe58862c25147eb0ef5295c9cd9bcb4ea2c1
-SIZE (seahub/lockfile-0.10.2.tar.gz) = 20662
-SHA256 (seahub/six-1.8.0.tar.gz) = 047bbbba41bac37c444c75ddfdf0573dd6e2f1fbd824e6247bb26fa7d8fa3830
-SIZE (seahub/six-1.8.0.tar.gz) = 26925
-SHA256 (seahub/gunicorn-18.0.tar.gz) = b61f38786af6b8d644b530552012d669c7415fcf5852de320f290800db97983d
-SIZE (seahub/gunicorn-18.0.tar.gz) = 366635
-SHA256 (seahub/flup-1.0.2.tar.gz) = 4bad317a5fc1ce3d4fe5e9b6d846ec38a8023e16876785d4f88102f2c8097dd9
-SIZE (seahub/flup-1.0.2.tar.gz) = 49051
-SHA256 (seahub/daemon-1.1.tar.gz) = acab001b35f4b1a24210ba0900740b7b6eda1f5eb3e8128f8768c98622d5162f
-SIZE (seahub/daemon-1.1.tar.gz) = 2094
-SHA256 (seahub/chardet-2.3.0.tar.gz) = e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa
-SIZE (seahub/chardet-2.3.0.tar.gz) = 164346
-SHA256 (seahub/python-dateutil-2.2.tar.gz) = eec865307ebe7f329a6a9945c15453265a449cdaaf3710340828a1934d53e468
-SIZE (seahub/python-dateutil-2.2.tar.gz) = 259085
-SHA256 (seahub/Pillow-2.6.1.zip) = 96bdd40714daf326d01c6286591b5dfe60336c23b7a6bf8e048bcc339513a414
-SIZE (seahub/Pillow-2.6.1.zip) = 7531553
-SHA256 (seahub/Django-1.5.9.tar.gz) = 47ce505c5046c38817828bee253b7256872f86c4340db1af698cb8548dbaa0d2
-SIZE (seahub/Django-1.5.9.tar.gz) = 8074400
-SHA256 (seahub/Djblets-0.6.14.tar.gz) = 66fca180825ded0051a4c85275dd14b2758f7decbd1d71028b83775440f3adce
-SIZE (seahub/Djblets-0.6.14.tar.gz) = 277749
+TIMESTAMP = 1464112057
+SHA256 (haiwen-seahub-v5.1.5-pro_GH0.tar.gz) = 1b3dd496b2d0620fccb51fcb6a266ed2ff3207d8db702e1f86733de4a71add3d
+SIZE (haiwen-seahub-v5.1.5-pro_GH0.tar.gz) = 6839749

Copied and modified: head/www/seahub/files/patch-send__user__notifications.sh.template (from r416104, head/www/seahub/files/patch-send_user_notifications.sh.template)
==============================================================================
--- head/www/seahub/files/patch-send_user_notifications.sh.template	Sun May 29 13:55:12 2016	(r416104, copy source)
+++ head/www/seahub/files/patch-send__user__notifications.sh.template	Sun May 29 13:57:52 2016	(r416105)
@@ -1,5 +1,5 @@
---- send_user_notifications.sh.template.orig	2014-08-27 23:32:32.180696163 -0400
-+++ send_user_notifications.sh.template	2014-08-27 23:49:17.160755773 -0400
+--- send_user_notifications.sh.template.orig	2015-11-26 15:49:19 UTC
++++ send_user_notifications.sh.template
 @@ -1,9 +1,9 @@
  #!/bin/sh
  

Modified: head/www/seahub/files/patch-setenv.sh.template
==============================================================================
--- head/www/seahub/files/patch-setenv.sh.template	Sun May 29 13:55:12 2016	(r416104)
+++ head/www/seahub/files/patch-setenv.sh.template	Sun May 29 13:57:52 2016	(r416105)
@@ -1,10 +1,10 @@
---- setenv.sh.template.orig	2014-08-27 23:31:44.842536517 -0400
-+++ setenv.sh.template	2014-08-27 23:45:27.650653756 -0400
+--- setenv.sh.template.orig	2015-11-11 03:13:51 UTC
++++ setenv.sh.template
 @@ -1,3 +1,5 @@
 -export CCNET_CONF_DIR=/home/plt/dev/ccnet/seafile/tests/basic/conf2
 -export SEAFILE_CONF_DIR=/home/plt/dev/ccnet/seafile/tests/basic/conf2/seafile-data
 -export PYTHONPATH=/opt/lib/python2.6/site-packages:thirdpart:$PYTHONPATH
-+#! /bin/sh
++#!/bin/sh
 +
 +export CCNET_CONF_DIR=##FIX_WWWDIR##/ccnet
 +export SEAFILE_CONF_DIR=##FIX_WWWDIR##/seafile-data

Added: head/www/seahub/files/pkg-message.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/seahub/files/pkg-message.in	Sun May 29 13:57:52 2016	(r416105)
@@ -0,0 +1,6 @@
+If a new config is created, run this to setup admin.
+
+%%PREFIX%%/%%SEAFILE_SERVER%%/reset-admin.sh
+If a new config is created, run this to setup admin.
+
+%%PREFIX%%/%%SEAFILE_SERVER%%/reset-admin.sh

Modified: head/www/seahub/files/seahub.in
==============================================================================
--- head/www/seahub/files/seahub.in	Sun May 29 13:55:12 2016	(r416104)
+++ head/www/seahub/files/seahub.in	Sun May 29 13:57:52 2016	(r416105)
@@ -1,7 +1,7 @@
 #!/bin/sh
 #
 # PROVIDE: seahub
-# REQUIRE: LOGIN cleanvar
+# REQUIRE: LOGIN cleanvar seafile
 # KEYWORD: shutdown
 #
 
@@ -10,12 +10,29 @@
 #
 # seahub_enable (bool):		Set to "NO" by default.
 #				Set it to "YES" to enable seahub.
+# seafile_user (str): 		User to run seafile as
+#				Default to "%%USERS%%" created by the port
+# seafile_group (str):		Group to run seafile as
+#				Default to "%%GROUPS%%" created by the port
+# seafile_path (str):		Set to "" by default will use the path
+#				%%PREFIX%%/%%SEAFILE_SERVER%%.
+#				Set it to a different path.
+# seafile_ccnet (str):		Set to "" by default will use the path
+#				%%PREFIX%%/%%HAIWENDIR%%/ccnet.
+#				Set it to a different path.
+# seafile_conf (str):		Set to "" by default will use the path
+#				%%PREFIX%%/%%HAIWENDIR%%/conf.
+#				Set it to a different path.
+# seafile_datadir (str):	Set to "" by default will use the path
+#				in file %%PREFIX%%/%%HAIWENDIR%%/ccnet/seafile.ini.
+#				Set it to a different path.
+# seafile_logdir (str):		Set to "" by default will use the path
+#				%%PREFIX%%/%%HAIWENDIR%%/logs.
+#				Set it to a different path.
 # seahub_fastcgi (bool):	Set to "NO" by default.
 #				Set to "YES" to start the fastcgi mode.
-# seahub_port	(str):		Default is 8000.
-# seahub_path	(str):		Set to "" by default will use the path
-#				/usr/local/www/haiwen/seahub-server.
-#				Set it to a different path. 
+# seahub_host (int):		Default is 127.0.0.1.
+# seahub_port (int):		Default is 8000.
 
 . /etc/rc.subr
 
@@ -24,49 +41,150 @@ rcvar=seahub_enable
 
 load_rc_config $name
 
-start_cmd="${name}_start"
-restart_cmd="${name}_restart"
-stop_cmd="${name}_stop"
+extra_commands="clearsessions"
+start_cmd="seahub_start"
+restart_cmd="seahub_restart"
+stop_cmd="seahub_stop"
+clearsessions_cmd="seahub_clearsessions"
+
+: ${seahub_enable="NO"}
+: ${seafile_user:="%%USERS%%"}
+: ${seafile_group:="%%GROUPS%%"}
+: ${seafile_path:="%%PREFIX%%/%%SEAFILE_SERVER%%"}
+: ${seafile_ccnet:="%%PREFIX%%/%%HAIWENDIR%%/ccnet"}
+: ${seafile_conf:="%%PREFIX%%/%%HAIWENDIR%%/conf"}
+: ${seafile_datadir:="`cat ${seafile_ccnet}/seafile.ini 2>/dev/null`"}
+: ${seafile_logdir:="%%PREFIX%%/%%HAIWENDIR%%/logs"}
+: ${seahub_fastcgi="NO"}
+: ${seahub_host:="127.0.0.1"}
+: ${seahub_port:="8000"}
+
+manage_py=${seafile_path}/seahub/manage.py
+gunicorn_conf=${seafile_path}/runtime/seahub.conf
+pidfile=${seafile_path}/runtime/seahub.pid
+errorlog=${seafile_path}/runtime/error.log
+accesslog=${seafile_path}/runtime/access.log
+
+command="%%PREFIX%%/bin/%%PYTHON%%"
+
+required_dirs="${seafile_ccnet} ${seafile_conf} ${seafile_datadir} ${seafile_logdir}"
+required_files="${seafile_ccnet}/seafile.ini"
+
+validate_seahub_running() {
+	if pgrep -f "${manage_py}" 2>/dev/null 1>&2; then
+		echo "Seahub is already running."
+		exit 1;
+	fi
+}
+
+warning_if_seafile_not_running() {
+	if ! pgrep -f "seafile-controller -c ${seafile_ccnet}" 2>/dev/null 1>&2; then
+		echo
+		echo "Warning: seafile not running. Have you run \"service seafile start\" ?"
+		echo
+		exit 1
+	fi
+}
+
+prepare_env() {
+	if [ -z "$LANG" ]; then
+		echo "LANG is not set in ENV, set to en_US.UTF-8"
+		export LANG='en_US.UTF-8'
+	fi
+	if [ -z "$LC_ALL" ]; then
+		echo "LC_ALL is not set in ENV, set to en_US.UTF-8"
+		export LC_ALL='en_US.UTF-8'
+	fi
+
+	export CCNET_CONF_DIR=${seafile_ccnet}
+	export SEAFILE_CONF_DIR=${seafile_datadir}
+	export SEAFILE_CENTRAL_CONF_DIR=${seafile_conf}
+	export PYTHONPATH=${seafile_path}/seafile/lib/python2.6/site-packages:${seafile_path}/seafile/lib64/python2.6/site-packages:${seafile_path}/seahub/thirdpart:$PYTHONPATH
+	export PYTHONPATH=${seafile_path}/seafile/lib/python2.7/site-packages:${seafile_path}/seafile/lib64/python2.7/site-packages:$PYTHONPATH
+	export SEAHUB_LOG_DIR=${seafile_logdir}
+
+}
+
+before_start() {
+	prepare_env;
+	warning_if_seafile_not_running;
+	validate_seahub_running;
+}
 
-: ${seahub_path:=%%PREFIX%%/www/haiwen/seafile-server}
-: ${seahub_port:=8000}
+seahub_clearsessions() {
+	prepare_env;
 
-command="$seahub_path/seahub.sh"
+	echo "Start clear expired session records ..."
+	su -m "${seafile_user}" -c "$command \"${manage_py}\" clearsessions"
+
+	echo
+	echo "Done"
+	echo
+}
 
 seahub_start()
 {
-	echo ${seahub_path}
-	echo ${seahub_port}
-
-	if checkyesno ${name}_enable; then
-		if checkyesno ${name}_fastcgi; then
+	if checkyesno seahub_enable; then
+		if checkyesno seahub_fastcgi; then
 			echo "Starting seahub service fastcgi mode"
-			$command start-fastcgi ${seahub_port}
+			check_required_before;
+			before_start;
+
+	# Returns 127.0.0.1 if SEAFILE_FASTCGI_HOST is unset or hasn't got any value,
+	# otherwise returns value of SEAFILE_FASTCGI_HOST environment variable
+
+			echo "Starting seahub (fastcgi) at ${seahub_host}:${seahub_port} ..."
+			su -m "${seafile_user}" -c "$command \"${manage_py}\" runfcgi host=\"${seahub_host}\" port=\"${seahub_port}\" pidfile=$pidfile \
+			outlog=${accesslog} errlog=${errorlog}"
+
+	# Ensure seahub is started successfully
+			sleep 5
+			if ! pgrep -f "${manage_py}" 1>/dev/null; then
+				printf "\033[33mError:Seahub failed to start.\033[m\n"
+				exit 1;
+			fi
+			echo
+			echo "Seahub is started"
+			echo
 		else
-			echo "Starting seahub service"
-			$command start ${seahub_port} %{seahub_port}
+			check_required_before;
+			before_start;
+			echo "Starting seahub at port ${seahub_port} ..."
+			su -m "${seafile_user}" -c "$command \"${manage_py}\" run_gunicorn -c \"${gunicorn_conf}\" -b \"0.0.0.0:${seahub_port}\" --preload"
+
+	# Ensure seahub is started successfully
+			sleep 5
+			if ! pgrep -f "${manage_py}" 2>/dev/null 1>&2; then
+				printf "\033[33mError:Seahub failed to start.\033[m\n"
+				echo "Please try to run \"./seahub.sh start\" again"
+				exit 1;
+			fi
+			echo
+			echo "Seahub is started"
+			echo
 		fi
-	else
-		return 0 
+		else
+			return 0 
 	fi
 }
 
-seahub_stop()
-{
-	echo "Stoping seahub service"
-	$command stop
+seahub_stop() {
+	if [ -f ${pidfile} ]; then
+		pid=$(cat "${pidfile}")
+		echo "Stopping ${name}."
+		kill ${pid}
+		rm -f ${pidfile}
+		return 0
+	else
+		echo "Seahub is not running"
+	fi
 }
 
 seahub_restart()
 {
-	if checkyesno ${name}_fastcgi; then
-		echo "Restarting seahub service fastcgi mode"
-		$command restart-fastcgi ${seahub_port}
-	else
-		echo "Restarting seahub service"
-		$command restart ${seahub_port}
-	fi
+	seahub_stop;
+	sleep 2
+	seahub_start;
 }
 
-load_rc_config $name
 run_rc_command "$1"

Modified: head/www/seahub/pkg-plist
==============================================================================
--- head/www/seahub/pkg-plist	Sun May 29 13:55:12 2016	(r416104)
+++ head/www/seahub/pkg-plist	Sun May 29 13:57:52 2016	(r416105)
@@ -8,32 +8,445 @@
 %%SEAHUBDIR%%/fabfile/__init__.py
 %%SEAHUBDIR%%/fabfile/locale.py
 %%SEAHUBDIR%%/i18n.sh
+%%SEAHUBDIR%%/locale/ar/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/bg/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/bg_BG/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/ca/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/ca/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/cs/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/cs_CZ/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/da_DK/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/de/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/de/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/el/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/el_GR/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/en/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/en/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/en_US/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/es/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/es/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/es_AR/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/es_AR/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/es_MX/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/es_MX/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/fr/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/fr/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/he/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/he/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/hr/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/hr_HR/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/hu/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/hu/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/is/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/is/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/it/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/it/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/ja/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/ja/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/ko/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/ko/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/lv/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/lv/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/lv_LV/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/nb/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/nb_NO/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/nl/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/nl_NL/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/pl/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/pl/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/pt_BR/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/pt_BR/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/pt_PT/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/ru/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/ru/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/sk/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/sk_SK/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/sl/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/sl_SI/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/sv/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/sv/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/th/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/th_TH/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/tr/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/tr/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/uk/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/uk/LC_MESSAGES/djangojs.po
+%%SEAHUBDIR%%/locale/vi/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/zh_CN/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/zh_CN/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/locale/zh_TW/LC_MESSAGES/django.po
+%%SEAHUBDIR%%/locale/zh_TW/LC_MESSAGES/djangojs.po
 %%SEAHUBDIR%%/manage.py
+%%SEAHUBDIR%%/media/assets/css/backbone.css
+%%SEAHUBDIR%%/media/assets/css/backbone.e3c60fd65a27.css
+%%SEAHUBDIR%%/media/assets/css/magnific-popup.656241b2c8ed.css
+%%SEAHUBDIR%%/media/assets/css/magnific-popup.css
+%%SEAHUBDIR%%/media/assets/css/select2-3.5.2.b9d0598b4e1c.css
+%%SEAHUBDIR%%/media/assets/css/select2-3.5.2.css
+%%SEAHUBDIR%%/media/assets/css/select2-spinner.7b9776076d5f.gif
+%%SEAHUBDIR%%/media/assets/css/select2-spinner.gif
+%%SEAHUBDIR%%/media/assets/css/select2.2ca61b76e220.png
+%%SEAHUBDIR%%/media/assets/css/select2.custom.9fe18e0ae58c.css
+%%SEAHUBDIR%%/media/assets/css/select2.custom.css
+%%SEAHUBDIR%%/media/assets/css/select2.png
+%%SEAHUBDIR%%/media/assets/css/select2x2.49e3f0060186.png
+%%SEAHUBDIR%%/media/assets/css/select2x2.png
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/activities.77ea3149773c.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/activities.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/devices.ce46433dc2f6.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/devices.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/dirents.040a5eb353dd.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/dirents.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/group-discussions.44e990cae2b8.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/group-discussions.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/group-members.043343107764.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/group-members.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/group-repos.629d7b4d403d.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/group-repos.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/groups.b2bc7f1951b4.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/groups.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/pub-repos.56fb5a44d957.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/pub-repos.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repo-group-folder-perm.4ee72982f503.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repo-group-folder-perm.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repo-shared-download-links.62e5080bd3a1.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repo-shared-download-links.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repo-shared-upload-links.fcda4d72bd7a.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repo-shared-upload-links.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repo-user-folder-perm.4668eb760aaa.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repo-user-folder-perm.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repos.92498fbca8dc.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/repos.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/starred-files.0fd48b6cab65.js
+%%SEAHUBDIR%%/media/assets/scripts/app/collections/starred-files.js
+%%SEAHUBDIR%%/media/assets/scripts/app/main.e72a78a72bbe.js
+%%SEAHUBDIR%%/media/assets/scripts/app/main.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/activity.dbdb311e9b4c.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/activity.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/device.550278ee3aa2.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/device.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/dirent.c07efc8ecbd5.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/dirent.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/group-discussion.6d7706b3388e.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/group-discussion.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/group-repo.a538f82f1af9.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/group-repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/group.2004ce3576b3.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/group.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/pub-repo.3f52334f11d8.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/pub-repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/repo.b07bd5e3b6e6.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/starred-file.bd1fd7cfed45.js
+%%SEAHUBDIR%%/media/assets/scripts/app/models/starred-file.js
+%%SEAHUBDIR%%/media/assets/scripts/app/router.9d4338b92a2f.js
+%%SEAHUBDIR%%/media/assets/scripts/app/router.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/account.f2c65b1d9682.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/account.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/activities.6cda1288e4e2.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/activities.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/activity-item.bea485958936.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/activity-item.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/add-group-repo.ec79d1d08b97.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/add-group-repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/add-pub-repo.6e432a7b9e31.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/add-pub-repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/add-pubrepo-item.83b33d2ec341.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/add-pubrepo-item.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/add-repo.b72fc7676dc4.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/add-repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/create-pub-repo.ce79f8c58507.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/create-pub-repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/details.98bb9832bb1a.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/details.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/device.26991cb363d1.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/device.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/devices.f7a71c76de30.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/devices.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/dirent-mvcp.c499744db505.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/dirent-mvcp.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/dirent-rename.982441df26a2.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/dirent-rename.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/repo-change-password.7c8f8db7a529.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/repo-change-password.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/repo-folder-perm-admin.8273386c97cb.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/repo-folder-perm-admin.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/repo-history-settings.4803dcbb740a.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/repo-history-settings.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/repo-share-link-admin.0672516d5f06.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dialogs/repo-share-link-admin.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dir.02920cbcae41.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dir.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dirent-grid.651b5500f929.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dirent-grid.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dirent.6cc3a9245200.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/dirent.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/fileupload.3c98d2504541.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/fileupload.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/folder-perm-item.82219b903356.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/folder-perm-item.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/folder-perm.541d097583c5.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/folder-perm.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/folder-share-item.8b76a00d4a15.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/folder-share-item.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-discussion.f345d622bd34.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-discussion.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-discussions.26e69a971181.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-discussions.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-item.e0ea3311eec8.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-item.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-manage-member.365797e94e66.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-manage-member.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-manage-members.26c3fd20be85.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-manage-members.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-member.4ab6f561f5b1.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-member.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-members.d1aa17751bfc.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-members.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-repo.a49039a3a363.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-settings.c1527a1f4c3c.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group-settings.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group.bc8663eaa839.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/group.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/groups.b7528bcd84af.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/groups.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/myhome-repos.ac04ecee2de0.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/myhome-repos.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/myhome-shared-repos.9dd550d3e931.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/myhome-shared-repos.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/notifications.014e2094dad3.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/notifications.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/organization-repo.34722b466d0c.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/organization-repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/organization.0bc2df34fdd3.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/organization.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/repo-folder-perm.d70918b7033c.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/repo-folder-perm.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/repo-shared-link.b7ec2564223e.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/repo-shared-link.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/repo.4d22dfd295a5.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/share.6e66da80c77e.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/share.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/shared-repo.30ca796e613d.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/shared-repo.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/side-nav.3e4649dfdf9f.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/side-nav.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/starred-file-item.599c6b575c74.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/starred-file-item.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/starred-file.8f88d203900a.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/starred-file.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/widgets/dropdown.db6556a7a6eb.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/widgets/dropdown.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/widgets/hl-item-view.a562f3b9a3ba.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/widgets/hl-item-view.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/widgets/popover.be8c9e7df49f.js
+%%SEAHUBDIR%%/media/assets/scripts/app/views/widgets/popover.js
+%%SEAHUBDIR%%/media/assets/scripts/build.a0552a4ed8dc.js
+%%SEAHUBDIR%%/media/assets/scripts/build.js
+%%SEAHUBDIR%%/media/assets/scripts/common.e04b1a324080.js
+%%SEAHUBDIR%%/media/assets/scripts/common.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/build.e81023b1ccb6.txt
+%%SEAHUBDIR%%/media/assets/scripts/dist/build.d9508a510082.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/build.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/build.txt
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/ca/djangojs.c2528b8e21fb.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/ca/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/de/djangojs.60e44dbed55b.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/de/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/en/djangojs.7d3052cf2fbf.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/en/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/es-ar/djangojs.fcfe6788392f.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/es-ar/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/es-mx/djangojs.5dcdfaf67a7f.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/es-mx/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/es/djangojs.a07b2b70fbfa.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/es/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/fr/djangojs.a74d8ba43e70.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/fr/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/he/djangojs.648b3fd2ae90.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/he/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/hu/djangojs.a143fd85f0fa.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/hu/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/is/djangojs.7c474b58871c.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/is/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/it/djangojs.d0d40722ab7b.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/it/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/ja/djangojs.63f51f39597d.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/ja/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/ko/djangojs.304dff70ffde.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/ko/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/lv/djangojs.9c3fdaf77b4b.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/lv/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/nl/djangojs.8153d62922f5.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/nl/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/pl/djangojs.05646003e192.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/pl/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/pt-br/djangojs.9a3a4088c97e.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/pt-br/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/ru/djangojs.68cc5d3199f1.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/ru/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/sk/djangojs.a30e59df1a2b.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/sk/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/sl/djangojs.6e392445dc33.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/sl/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/sv/djangojs.88b23a7490d9.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/sv/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/th/djangojs.8815c1a5874e.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/th/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/tr/djangojs.dd3ba3c51a97.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/tr/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/uk/djangojs.e7963bbebfbf.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/uk/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/zh-cn/djangojs.3c70e7c81127.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/zh-cn/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/zh-tw/djangojs.cabe6dd3f54d.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/i18n/zh-tw/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/lib/jquery.ui.widget.1.11.3.ba4bd4e41caf.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/lib/jquery.ui.widget.1.11.3.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/lib/require.75e6d0132deb.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/lib/require.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/main.d5bc655e7329.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/main.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/sysadmin-main.04fc935872de.js
+%%SEAHUBDIR%%/media/assets/scripts/dist/sysadmin-main.js
+%%SEAHUBDIR%%/media/assets/scripts/file-tree.225c1b52bbee.js
+%%SEAHUBDIR%%/media/assets/scripts/file-tree.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ca/djangojs.0b7bde8db6d7.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ca/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/de/djangojs.3d559e4657a2.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/de/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/en/djangojs.4fef8f9a3076.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/en/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/es-ar/djangojs.67d20b9a10bf.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/es-ar/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/es-mx/djangojs.5037e19b30f0.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/es-mx/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/es/djangojs.724f1a942157.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/es/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/fr/djangojs.54253d6a3a87.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/fr/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/he/djangojs.f701701595f1.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/he/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/hu/djangojs.7a8ffdbd8e1f.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/hu/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/is/djangojs.95e6773d924f.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/is/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/it/djangojs.433355eca56a.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/it/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ja/djangojs.f1c2cf8fa83f.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ja/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ko/djangojs.3d570893c4ff.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ko/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/lv/djangojs.378231a600de.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/lv/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/nl/djangojs.5cb669631d87.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/nl/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/pl/djangojs.95167ba6553e.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/pl/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/pt-br/djangojs.66918dcf7798.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/pt-br/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ru/djangojs.5f67e916a7d2.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/ru/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/sk/djangojs.78fad6240039.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/sk/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/sl/djangojs.b4d2169424f0.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/sl/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/sv/djangojs.4853d2006a00.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/sv/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/th/djangojs.f53496bdd5ff.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/th/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/tr/djangojs.be605e0502f2.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/tr/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/uk/djangojs.6e7dad71790d.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/uk/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/zh-cn/djangojs.f476bcb718e9.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/zh-cn/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/zh-tw/djangojs.7a3f17ce6df0.js
+%%SEAHUBDIR%%/media/assets/scripts/i18n/zh-tw/djangojs.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/backbone.c1a39c11a835.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/backbone.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/backbone.paginator.ee50c2f50e53.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/backbone.paginator.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.c0b3962f9f23.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.fileupload.5.42.1.bc1c71220915.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.fileupload.5.42.1.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.fileupload.file-processing.1.3.0.ee4d16d07ff3.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.fileupload.file-processing.1.3.0.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.fileupload.ui.9.6.0.afc32532b865.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.fileupload.ui.9.6.0.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.fileupload.validation.1.1.2.63b30087cf31.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.fileupload.validation.1.1.2.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.iframe-transport.1.4.ccdffe1d1ff0.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.iframe-transport.1.4.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.magnific-popup.46e3906a2c4d.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.magnific-popup.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.simplemodal.67fb20a63282.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.simplemodal.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.core.954b6603ec44.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.core.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.progressbar.0695670bde95.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.progressbar.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.tabs.7406a3c5d2e3.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.tabs.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.widget.1.11.1.5bae5494c8e9.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.widget.1.11.1.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.widget.1.11.3.e7ca91e0a8c2.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jquery.ui.widget.1.11.3.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/js.cookie.4267ca2ad477.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/js.cookie.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jstree.1.0.2561f0294340.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/jstree.1.0.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/marked.min.c2a88705e206.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/marked.min.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/moment-with-locales.c4492e6216cc.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/moment-with-locales.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/require.640929dac3c2.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/require.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/select2-3.5.2.d5f38f0c37db.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/select2-3.5.2.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/text.71e5a361c2c7.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/text.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/tmpl.min.0e87d44edb61.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/tmpl.min.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/underscore.1dccc53d7339.js
+%%SEAHUBDIR%%/media/assets/scripts/lib/underscore.js
+%%SEAHUBDIR%%/media/assets/scripts/main.ee715e56433e.js
+%%SEAHUBDIR%%/media/assets/scripts/main.js
+%%SEAHUBDIR%%/media/assets/scripts/pinyin-by-unicode.8a45c2cfbafa.js
+%%SEAHUBDIR%%/media/assets/scripts/pinyin-by-unicode.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/collection/device-errors.de63a040c8f3.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/collection/device-errors.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/collection/devices.8d5db2a23814.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/collection/devices.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/main.f7e9051f92b1.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/main.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/models/device-error.8f106faa372b.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/models/device-error.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/models/device.f19a3afd8107.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/models/device.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/models/sysinfo.b8f278d86fba.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/models/sysinfo.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/router.2766c70bce4b.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/router.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/dashboard.51a7a29b6678.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/dashboard.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/desktop-devices.ee988b50467e.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/desktop-devices.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/device-error.a936d0df1029.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/device-error.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/device-errors.2b8290ddd2d3.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/device-errors.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/device.b98906c08588.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/device.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/mobile-devices.e6100fd15170.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/mobile-devices.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/side-nav.10fcdd741b89.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-app/views/side-nav.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-main.e14c688752f6.js
+%%SEAHUBDIR%%/media/assets/scripts/sysadmin-main.js
 %%SEAHUBDIR%%/media/codemirror/codemirror-2.36.js
 %%SEAHUBDIR%%/media/codemirror/codemirror.css
 %%SEAHUBDIR%%/media/codemirror/monokai.css
@@ -45,93 +458,110 @@
 %%SEAHUBDIR%%/media/css/controls.png
 %%SEAHUBDIR%%/media/css/controls.svg
 %%SEAHUBDIR%%/media/css/doc_and_pdf.css
+%%SEAHUBDIR%%/media/css/editormd.min.css
 %%SEAHUBDIR%%/media/css/file_view_extra.css
 %%SEAHUBDIR%%/media/css/font/fontawesome-webfont.eot
 %%SEAHUBDIR%%/media/css/font/fontawesome-webfont.ttf
 %%SEAHUBDIR%%/media/css/font/fontawesome-webfont.woff
+%%SEAHUBDIR%%/media/css/jquery-ui.datepicker.min.css
 %%SEAHUBDIR%%/media/css/loading.gif
 %%SEAHUBDIR%%/media/css/mediaelementplayer.css
 %%SEAHUBDIR%%/media/css/mobile.css
-%%SEAHUBDIR%%/media/css/pagedown.css
 %%SEAHUBDIR%%/media/css/seacloud.css
 %%SEAHUBDIR%%/media/css/seahub.css
 %%SEAHUBDIR%%/media/css/seahub.min.css
 %%SEAHUBDIR%%/media/css/select2.css
-%%SEAHUBDIR%%/media/css/sf_editor_toolbar.css
-%%SEAHUBDIR%%/media/css/sf_font/seafile-font.eot
-%%SEAHUBDIR%%/media/css/sf_font/seafile-font.ttf
-%%SEAHUBDIR%%/media/css/sf_font/seafile-font.woff
+%%SEAHUBDIR%%/media/css/sf_font2/%%USERS%%-font2.eot
+%%SEAHUBDIR%%/media/css/sf_font2/%%USERS%%-font2.svg
+%%SEAHUBDIR%%/media/css/sf_font2/%%USERS%%-font2.ttf
+%%SEAHUBDIR%%/media/css/sf_font2/%%USERS%%-font2.woff
 %%SEAHUBDIR%%/media/css/spreadsheet_convert.css
 %%SEAHUBDIR%%/media/img/add.png
 %%SEAHUBDIR%%/media/img/admin_in.png
 %%SEAHUBDIR%%/media/img/admin_out.png
-%%SEAHUBDIR%%/media/img/bell.png
 %%SEAHUBDIR%%/media/img/bg.png
 %%SEAHUBDIR%%/media/img/calcplus-16.png
-%%SEAHUBDIR%%/media/img/client-v2-download-lib.png
 %%SEAHUBDIR%%/media/img/clip.png
 %%SEAHUBDIR%%/media/img/close.png
 %%SEAHUBDIR%%/media/img/del.png
-%%SEAHUBDIR%%/media/img/demo/group.png
-%%SEAHUBDIR%%/media/img/discuss.png
 %%SEAHUBDIR%%/media/img/download.png
-%%SEAHUBDIR%%/media/img/dropdown-arrow.png
 %%SEAHUBDIR%%/media/img/edit.png
-%%SEAHUBDIR%%/media/img/edit_12.png
 %%SEAHUBDIR%%/media/img/email_bg.jpg
 %%SEAHUBDIR%%/media/img/favicon.png
 %%SEAHUBDIR%%/media/img/file-icon-16.png
+%%SEAHUBDIR%%/media/img/file-locked-32.png
+%%SEAHUBDIR%%/media/img/file/192/excel.png
+%%SEAHUBDIR%%/media/img/file/192/file.png
+%%SEAHUBDIR%%/media/img/file/192/music.png
+%%SEAHUBDIR%%/media/img/file/192/pdf.png
+%%SEAHUBDIR%%/media/img/file/192/pic.png
+%%SEAHUBDIR%%/media/img/file/192/ppt.png
+%%SEAHUBDIR%%/media/img/file/192/txt.png
+%%SEAHUBDIR%%/media/img/file/192/word.png
+%%SEAHUBDIR%%/media/img/file/24/excel.png
+%%SEAHUBDIR%%/media/img/file/24/file.png
+%%SEAHUBDIR%%/media/img/file/24/music.png
+%%SEAHUBDIR%%/media/img/file/24/pdf.png
+%%SEAHUBDIR%%/media/img/file/24/pic.png
+%%SEAHUBDIR%%/media/img/file/24/ppt.png
+%%SEAHUBDIR%%/media/img/file/24/txt.png
+%%SEAHUBDIR%%/media/img/file/24/word.png
+%%SEAHUBDIR%%/media/img/file/excel-192.png
 %%SEAHUBDIR%%/media/img/file/excel.png
+%%SEAHUBDIR%%/media/img/file/file-192.png
 %%SEAHUBDIR%%/media/img/file/file.png
+%%SEAHUBDIR%%/media/img/file/music-192.png
 %%SEAHUBDIR%%/media/img/file/music.png
+%%SEAHUBDIR%%/media/img/file/pdf-192.png

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-ports-head mailing list