diff options
Diffstat (limited to 'net-mgmt/seafile-server')
-rw-r--r-- | net-mgmt/seafile-server/Makefile | 4 | ||||
-rw-r--r-- | net-mgmt/seafile-server/files/patch-configure.ac | 34 | ||||
-rw-r--r-- | net-mgmt/seafile-server/files/patch-server_Makefile.am | 11 | ||||
-rw-r--r-- | net-mgmt/seafile-server/files/patch-server_access-file.c | 90 | ||||
-rw-r--r-- | net-mgmt/seafile-server/files/patch-server_http-server.c | 11 | ||||
-rw-r--r-- | net-mgmt/seafile-server/files/patch-server_upload-file.c | 93 |
6 files changed, 182 insertions, 61 deletions
diff --git a/net-mgmt/seafile-server/Makefile b/net-mgmt/seafile-server/Makefile index 269174ccd8c6..d6c3bcd88a9e 100644 --- a/net-mgmt/seafile-server/Makefile +++ b/net-mgmt/seafile-server/Makefile @@ -4,6 +4,7 @@ PORTNAME= seafile-server DISTVERSIONPREFIX= v DISTVERSION= ${SEAFILE_VER} DISTVERSIONSUFFIX= -server +PORTREVISION= 1 CATEGORIES= net-mgmt MAINTAINER= ultima@FreeBSD.org @@ -33,7 +34,6 @@ USES= autoreconf iconv libarchive libtool localbase mysql \ USE_GITHUB= yes GH_ACCOUNT= haiwen USE_GNOME= glib20 -USE_LDCONFIG= yes USE_RC_SUBR= seafile SHEBANG_FILES= scripts/*.sh scripts/upgrade/*.sh *.sh scripts/build/*.py \ @@ -73,8 +73,6 @@ post-patch: ${WRKSRC}/scripts/upgrade/regenerate_secret_key.sh ${REINPLACE_CMD} -e 's|^INSTALL.*|INSTALLPATH="${PREFIX}/${SEAFILE_SERVER}/seafile"|' \ ${WRKSRC}/scripts/seaf-cli-wrapper.sh - ${REINPLACE_CMD} 's/<evhtp.h>/<evhtp\/evhtp.h>/' ${WRKSRC}/server/upload-file.c \ - ${WRKSRC}/server/access-file.c ${WRKSRC}/server/http-server.c ${REINPLACE_CMD} -E 's/stat.+\$$/stat -f %Su $$/' ${WRKSRC}/scripts/seafile.sh ${REINPLACE_CMD} 's/%%SEAFILE_USER%%/${USERS:[1]}/ ; s/%%SEAFILE_GROUP%%/${GROUPS:[1]}/' \ ${WRKSRC}/scripts/setup-seafile.sh ${WRKSRC}/scripts/setup-seafile-mysql.py diff --git a/net-mgmt/seafile-server/files/patch-configure.ac b/net-mgmt/seafile-server/files/patch-configure.ac index 69e4c8779570..09b57e887dd6 100644 --- a/net-mgmt/seafile-server/files/patch-configure.ac +++ b/net-mgmt/seafile-server/files/patch-configure.ac @@ -1,4 +1,4 @@ ---- configure.ac.orig 2016-12-27 07:02:58 UTC +--- configure.ac.orig 2017-11-03 09:11:19 UTC +++ configure.ac @@ -51,8 +51,16 @@ else AC_MSG_RESULT(no) @@ -30,7 +30,7 @@ AC_ARG_ENABLE(python, AC_HELP_STRING([--enable-python],[build seafile python binding]), [compile_python=$enableval], -@@ -89,6 +102,7 @@ AM_CONDITIONAL([COMPILE_FUSE], [test "${ +@@ -89,6 +102,7 @@ AM_CONDITIONAL([COMPILE_FUSE], [test "${compile_fuse}" AM_CONDITIONAL([WIN32], [test "$bwin32" = "true"]) AM_CONDITIONAL([MACOS], [test "$bmac" = "true"]) @@ -47,7 +47,7 @@ LIB_ICONV=-liconv elif test "$bmac" = true ; then LIB_WS32= -@@ -149,6 +166,24 @@ elif test "$bmac" = true ; then +@@ -149,6 +165,24 @@ elif test "$bmac" = true ; then LIB_MAC="-framework CoreServices" LIB_CRYPT32= LIB_ICONV=-liconv @@ -72,7 +72,7 @@ else LIB_WS32= LIB_GDI32= -@@ -162,6 +199,8 @@ else +@@ -162,6 +196,8 @@ else LIB_MAC= MSVC_CFLAGS= LIB_CRYPT32= @@ -81,7 +81,7 @@ fi AC_SUBST(LIB_WS32) -@@ -174,6 +214,8 @@ AC_SUBST(LIB_IPHLPAPI) +@@ -174,6 +210,8 @@ AC_SUBST(LIB_IPHLPAPI) AC_SUBST(LIB_SHELL32) AC_SUBST(LIB_PSAPI) AC_SUBST(LIB_MAC) @@ -90,3 +90,27 @@ AC_SUBST(MSVC_CFLAGS) AC_SUBST(LIB_CRYPT32) AC_SUBST(LIB_ICONV) +@@ -189,6 +227,8 @@ ZDB_REQUIRED=2.10 + CURL_REQUIRED=7.17 + FUSE_REQUIRED=2.7.3 + ZLIB_REQUIRED=1.2.0 ++LIBEVHTP_REQUIRED=1.2.10 ++ONIGURUMA_REQUIRED=5.9.2 + + PKG_CHECK_MODULES(SSL, [openssl]) + AC_SUBST(SSL_CFLAGS) +@@ -221,6 +261,14 @@ AC_SUBST(LIBEVENT_LIBS) + PKG_CHECK_MODULES(ZLIB, [zlib >= $ZLIB_REQUIRED]) + AC_SUBST(ZLIB_CFLAGS) + AC_SUBST(ZLIB_LIBS) ++ ++PKG_CHECK_MODULES(LIBEVHTP, [evhtp >= $LIBEVHTP_REQUIRED]) ++AC_SUBST(LIBEVHTP_CFLAGS) ++AC_SUBST(LIBEVHTP_LIBS) ++ ++PKG_CHECK_MODULES(ONIGURUMA, [oniguruma >= $ONIGURUMA_REQUIRED]) ++AC_SUBST(ONIGURUMA_CFLAGS) ++AC_SUBST(ONIGURUMA_LIBS) + + if test x${compile_python} = xyes; then + AM_PATH_PYTHON([2.6]) diff --git a/net-mgmt/seafile-server/files/patch-server_Makefile.am b/net-mgmt/seafile-server/files/patch-server_Makefile.am new file mode 100644 index 000000000000..996f696b33b7 --- /dev/null +++ b/net-mgmt/seafile-server/files/patch-server_Makefile.am @@ -0,0 +1,11 @@ +--- server/Makefile.am.orig 2018-01-04 05:04:59 UTC ++++ server/Makefile.am +@@ -114,7 +114,7 @@ seaf_server_SOURCES = \ + + seaf_server_LDADD = @CCNET_LIBS@ \ + $(top_builddir)/lib/libseafile_common.la \ +- @GLIB2_LIBS@ @GOBJECT_LIBS@ @SSL_LIBS@ @LIB_RT@ @LIB_UUID@ -lsqlite3 @LIBEVENT_LIBS@ -levhtp \ ++ @ONIGURUMA_LIBS@ @GLIB2_LIBS@ @GOBJECT_LIBS@ @SSL_LIBS@ @LIB_RT@ @LIB_UUID@ -lsqlite3 @LIBEVENT_LIBS@ @LIBEVHTP_LIBS@ \ + $(top_builddir)/common/cdc/libcdc.la \ + $(top_builddir)/common/db-wrapper/libdbwrapper.la \ + @SEARPC_LIBS@ @JANSSON_LIBS@ ${LIB_WS32} @ZLIB_LIBS@ \ diff --git a/net-mgmt/seafile-server/files/patch-server_access-file.c b/net-mgmt/seafile-server/files/patch-server_access-file.c index 797711a79065..ca439a95cb90 100644 --- a/net-mgmt/seafile-server/files/patch-server_access-file.c +++ b/net-mgmt/seafile-server/files/patch-server_access-file.c @@ -1,54 +1,38 @@ ---- server/access-file.c.orig 2016-10-09 09:30:49 UTC +--- server/access-file.c.orig 2018-01-04 08:07:23 UTC +++ server/access-file.c -@@ -224,10 +224,10 @@ write_block_data_cb (struct bufferevent - bev->cbarg = data->saved_cb_arg; - - /* Resume reading incomming requests. */ -- evhtp_request_resume (data->req); -- - evhtp_send_reply_end (data->req); - -+ evhtp_request_resume (data->req); -+ - free_sendblock_data (data); - return; - } -@@ -309,10 +309,10 @@ next: - bev->cbarg = data->saved_cb_arg; - - /* Resume reading incomming requests. */ -- evhtp_request_resume (data->req); -- - evhtp_send_reply_end (data->req); - -+ evhtp_request_resume (data->req); -+ - free_sendfile_data (data); - return; - } -@@ -406,10 +406,10 @@ write_dir_data_cb (struct bufferevent *b - bev->cbarg = data->saved_cb_arg; - - /* Resume reading incomming requests. */ -- evhtp_request_resume (data->req); -- - evhtp_send_reply_end (data->req); - -+ evhtp_request_resume (data->req); -+ - free_senddir_data (data); - return; - } -@@ -697,10 +697,10 @@ finish_file_range_request (struct buffer - bev->cbarg = data->saved_cb_arg; - - /* Resume reading incomming requests. */ -- evhtp_request_resume (data->req); -- - evhtp_send_reply_end (data->req); - -+ evhtp_request_resume (data->req); -+ - free_send_file_range_data (data); - } - +@@ -618,7 +618,7 @@ do_file(evhtp_request_t *req, SeafRepo *repo, const ch + /* Block any new request from this connection before finish + * handling this request. + */ +- evhtp_request_pause (req); ++ bufferevent_disable(bev, EV_READ); + + /* Kick start data transfer by sending out http headers. */ + evhtp_send_reply_start(req, EVHTP_RES_OK); +@@ -967,7 +967,7 @@ do_file_range (evhtp_request_t *req, SeafRepo *repo, c + /* Block any new request from this connection before finish + * handling this request. + */ +- evhtp_request_pause (req); ++ bufferevent_disable(bev, EV_READ); + + /* Kick start data transfer by sending out http headers. */ + evhtp_send_reply_start(req, EVHTP_RES_PARTIAL); +@@ -1037,7 +1037,7 @@ start_download_zip_file (evhtp_request_t *req, const c + /* Block any new request from this connection before finish + * handling this request. + */ +- evhtp_request_pause (req); ++ bufferevent_disable(bev, EV_READ); + + /* Kick start data transfer by sending out http headers. */ + evhtp_send_reply_start(req, EVHTP_RES_OK); +@@ -1365,7 +1365,7 @@ do_block(evhtp_request_t *req, SeafRepo *repo, const c + /* Block any new request from this connection before finish + * handling this request. + */ +- evhtp_request_pause (req); ++ bufferevent_disable(bev, EV_READ); + + /* Kick start data transfer by sending out http headers. */ + evhtp_send_reply_start(req, EVHTP_RES_OK); diff --git a/net-mgmt/seafile-server/files/patch-server_http-server.c b/net-mgmt/seafile-server/files/patch-server_http-server.c new file mode 100644 index 000000000000..71ad20eaaf83 --- /dev/null +++ b/net-mgmt/seafile-server/files/patch-server_http-server.c @@ -0,0 +1,11 @@ +--- server/http-server.c.orig 2018-01-03 02:47:07 UTC ++++ server/http-server.c +@@ -2122,7 +2122,7 @@ http_server_run (void *arg) + + http_request_init (server); + +- evhtp_use_threads (priv->evhtp, NULL, server->worker_threads, NULL); ++ evhtp_use_threads_wexit (priv->evhtp, NULL, NULL, server->worker_threads, NULL); + + struct timeval tv; + tv.tv_sec = CLEANING_INTERVAL_SEC; diff --git a/net-mgmt/seafile-server/files/patch-server_upload-file.c b/net-mgmt/seafile-server/files/patch-server_upload-file.c new file mode 100644 index 000000000000..b6730b8e6b44 --- /dev/null +++ b/net-mgmt/seafile-server/files/patch-server_upload-file.c @@ -0,0 +1,93 @@ +--- server/upload-file.c.orig 2017-11-03 09:11:19 UTC ++++ server/upload-file.c +@@ -2048,12 +2048,12 @@ upload_read_cb (evhtp_request_t *req, evbuf_t *buf, vo + out: + if (res != EVHTP_RES_OK) { + /* Don't receive any data before the connection is closed. */ +- evhtp_request_pause (req); ++ bufferevent_disable(evhtp_request_get_bev(req), EV_READ); + + /* Set keepalive to 0. This will cause evhtp to close the + * connection after sending the reply. + */ +- req->keepalive = 0; ++ evhtp_request_set_keepalive(req, 0); + + fsm->state = RECV_ERROR; + } +@@ -2254,8 +2254,8 @@ upload_headers_cb (evhtp_request_t *req, evhtp_headers + } + + /* Set up per-request hooks, so that we can read file data piece by piece. */ +- evhtp_set_hook (&req->hooks, evhtp_hook_on_read, upload_read_cb, fsm); +- evhtp_set_hook (&req->hooks, evhtp_hook_on_request_fini, upload_finish_cb, fsm); ++ evhtp_request_set_hook (req, evhtp_hook_on_read, upload_read_cb, fsm); ++ evhtp_request_set_hook (req, evhtp_hook_on_request_fini, upload_finish_cb, fsm); + /* Set arg for upload_cb or update_cb. */ + req->cbarg = fsm; + +@@ -2265,12 +2265,12 @@ upload_headers_cb (evhtp_request_t *req, evhtp_headers + + err: + /* Don't receive any data before the connection is closed. */ +- evhtp_request_pause (req); ++ bufferevent_disable(evhtp_request_get_bev(req), EV_READ); + + /* Set keepalive to 0. This will cause evhtp to close the + * connection after sending the reply. + */ +- req->keepalive = 0; ++ evhtp_request_set_keepalive(req, 0); + send_error_reply (req, EVHTP_RES_BADREQ, err_msg); + + g_free (repo_id); +@@ -2339,38 +2339,38 @@ upload_file_init (evhtp_t *htp, const char *http_temp_ + + cb = evhtp_set_regex_cb (htp, "^/upload/.*", upload_cb, NULL); + /* upload_headers_cb() will be called after evhtp parsed all http headers. */ +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/upload-api/.*", upload_api_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/upload-raw-blks-api/.*", + upload_raw_blks_api_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/upload-blks-api/.*", upload_blks_api_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/upload-blks-aj/.*", upload_blks_ajax_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/upload-aj/.*", upload_ajax_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/update/.*", update_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/update-api/.*", update_api_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/update-blks-api/.*", update_blks_api_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/update-blks-aj/.*", update_blks_ajax_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + cb = evhtp_set_regex_cb (htp, "^/update-aj/.*", update_ajax_cb, NULL); +- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); ++ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL); + + evhtp_set_regex_cb (htp, "^/upload_progress.*", upload_progress_cb, NULL); + |