mirror of
https://github.com/openwrt/packages.git
synced 2025-12-23 12:24:32 +04:00
* Package scripts that are shipped by upstream in their binary download
* Includes setup scripts (setup-seafile.sh to use SQLite,
setup-seafile-mysql.{sh,py} to use MySQL) and control scripts
(seafile.sh, seahub.sh)
* Does not include seafile-admin, which is not shipped in upstream's
binary download. Combined with the fact that it hasn't been updated
to Python 3 suggests the script has been abandoned.
* Replace previous init scripts with a simplified script
* Previous init scripts (seafile.init, seahub.init) were modified from
older versions of seafile.sh and seahub.sh, but they haven't kept up
with changes to upstream's scripts
* New init script (seafile-server.init) start/stops both Seafile and
Seahub (there is no need to control them separately) by calling
upstream's control scripts
* Replace previous package config file with new config file
* Options in previous config file (seafile.conf) were mainly for using
Seahub in FastCGI mode. FastCGI was deprecated in Django 1.7 and
removed in 1.9; upstream's control script will only start Seahub
using Gunicorn. (Options for Gunicorn including port number can be
changed by editing /etc/seafile/conf/gunicorn.conf.py.)
* New config file (seafile-server.config) has one option that controls
where the Seafile/Seahub data directories are stored
* Patch scripts/binaries to use standard, system-wide directory
locations
* Script files (wrappers for binaries) in /usr/bin
* Binaries (not meant to be run directly by the user) in /usr/libexec
* Config files in /etc/seafile
* Pid/socket files in /var/run/seafile
* Logs in /var/log/seafile
* Include a new script to create the first admin account
* With upstream's original scripts, the user is required to
interactively create the first admin account when Seahub is started
for the first time
* The user will now use the new script (create-seafile-admin.sh) to
create the first admin account after setup (using setup-seafile.sh
or setup-seafile-mysql.sh) and before starting Seafile/Seahub
* seahub.sh is patched to only check if there is at least one admin
account and exit with an error if there is no admin account
* Remove build config options and add seafile-server-fuse package
* The console option controls whether the console window is shown when
Seafile server is run on Windows. It has no use on Linux.
* The fuse option controls whether seaf-fuse is built. (seaf-fuse is a
FUSE implementation that allows the Seafile database/file system to
be mounted to a local directory.) seaf-fuse is now always built and
is available in a separate package (seafile-server-fuse).
* Add myself as a maintainer
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
66 lines
2.6 KiB
Diff
66 lines
2.6 KiB
Diff
Author: Alexandre Rossi <alexandre.rossi@gmail.com>
|
|
Description: Fix download stalling on recent libevhtp
|
|
A while ago[1], evhtp_request_pause() behavior changed: it now disables
|
|
both read and write events. seafile-server would then stall.
|
|
.
|
|
[1] https://github.com/criticalstack/libevhtp/commit/6cd89466fd6bd76c5b8624be65af5893afe3e40c
|
|
[2] https://github.com/haiwen/seafile/issues/1119
|
|
Forwarded: no
|
|
|
|
--- a/server/access-file.c
|
|
+++ b/server/access-file.c
|
|
@@ -661,7 +661,7 @@ do_file(evhtp_request_t *req, SeafRepo *
|
|
/* 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);
|
|
@@ -1021,7 +1021,7 @@ do_file_range (evhtp_request_t *req, Sea
|
|
/* 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);
|
|
@@ -1091,7 +1091,7 @@ start_download_zip_file (evhtp_request_t
|
|
/* 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);
|
|
@@ -1435,7 +1435,7 @@ do_block(evhtp_request_t *req, SeafRepo
|
|
/* 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);
|
|
--- a/server/upload-file.c
|
|
+++ b/server/upload-file.c
|
|
@@ -2196,6 +2196,7 @@ out:
|
|
if (res != EVHTP_RES_OK) {
|
|
/* Don't receive any data before the connection is closed. */
|
|
//evhtp_request_pause (req);
|
|
+ // or for later evhtp 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.
|
|
@@ -2513,6 +2514,7 @@ upload_headers_cb (evhtp_request_t *req,
|
|
err:
|
|
/* Don't receive any data before the connection is closed. */
|
|
//evhtp_request_pause (req);
|
|
+ // or for later evhtp 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.
|