mirror of
https://github.com/novatiq/packages.git
synced 2026-04-29 23:18:42 +01:00
seafile-server: Update to 7.1.2, revamp package
* 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>
This commit is contained in:
+191
-89
@@ -8,144 +8,246 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=seafile-server
|
||||
PKG_VERSION:=6.3.4
|
||||
PKG_RELEASE:=7
|
||||
PKG_LICENSE:=GPL-3.0
|
||||
PKG_VERSION:=7.1.2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/haiwen/seafile-server/tar.gz/v$(PKG_VERSION)-server?
|
||||
PKG_HASH:=1ba4c641bad8d7592fd2592827e81470c88b8e802707d2b1e6d551c16d0da100
|
||||
PKG_HASH:=30b972d17eb13da28f4dffcbabd2a2a4a7426a017f694e0fb8440e93fd5bd355
|
||||
|
||||
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>, Jeffery To <jeffery.to@gmail.com>
|
||||
PKG_LICENSE:=AGPL-3.0-only
|
||||
PKG_LICENSE_FILES:=LICENSE.txt
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-server
|
||||
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
|
||||
PKG_BUILD_DEPENDS:=vala/host libevhtp
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_INSTALL:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/nls.mk
|
||||
include ../../lang/python/python-package.mk
|
||||
include ../../lang/python/python3-package.mk
|
||||
|
||||
# Check that the actual Makefile version-relase match the above.
|
||||
$(eval $(shell awk '/^PKG_VERSION.*=/ { print "SEAHUB_" $$$$0 }' ../seafile-seahub/Makefile))
|
||||
ifneq ($(PKG_VERSION),$(SEAHUB_PKG_VERSION))
|
||||
$(error $(if $(SEAHUB_PKG_VERSION), \
|
||||
Version mismatch between seafile-seahub ($(SEAHUB_PKG_VERSION)) and \
|
||||
seafile-server ($(PKG_VERSION)), \
|
||||
Could not get PKG_VERSION from seafile-seahub Makefile))
|
||||
$(error $(if $(SEAHUB_PKG_VERSION), \
|
||||
Version mismatch between seafile-seahub ($(SEAHUB_PKG_VERSION)) and \
|
||||
seafile-server ($(PKG_VERSION)), \
|
||||
Could not get PKG_VERSION from seafile-seahub Makefile))
|
||||
endif
|
||||
|
||||
define Package/seafile-server
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Seafile server
|
||||
URL:=https://seafile.com/
|
||||
DEPENDS:=+libarchive +libopenssl +glib2 +libsearpc +seafile-ccnet +seafile-seahub +sqlite3-cli \
|
||||
+python-mysqlclient +python-urllib3 +jansson +libevent2 +libevent2-openssl \
|
||||
+libevent2-pthreads +zlib +libzdb +libsqlite3 +libmysqlclient +oniguruma \
|
||||
+libpthread +libuuid +bash +procps-ng +procps-ng-pkill +SEAFILE_FUSE_SUPPORT:libfuse $(ICONV_DEPENDS)
|
||||
MENU:=1
|
||||
endef
|
||||
|
||||
define Package/seafile-server/config
|
||||
source "$(SOURCE)/Config.in"
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Seafile server
|
||||
URL:=https://seafile.com/
|
||||
DEPENDS:= \
|
||||
+bash \
|
||||
+glib2 \
|
||||
+jansson \
|
||||
+libarchive \
|
||||
+libevent2 \
|
||||
+libevent2-openssl \
|
||||
+libmariadb \
|
||||
+libopenssl \
|
||||
+libpthread \
|
||||
+libsearpc \
|
||||
+libsqlite3 \
|
||||
+libuuid \
|
||||
+oniguruma \
|
||||
+procps-ng-pkill \
|
||||
+python3-pymysql \
|
||||
+python3-seafile-server \
|
||||
+seafile-ccnet \
|
||||
+seafile-seahub \
|
||||
+sqlite3-cli \
|
||||
+zlib \
|
||||
$(ICONV_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/seafile-server/description
|
||||
Open source cloud storage with advanced features on privacy protection and teamwork.
|
||||
Open source cloud storage with advanced features on privacy
|
||||
protection and teamwork.
|
||||
endef
|
||||
|
||||
CONFIGURE_ARGS += --enable-python
|
||||
define Package/seafile-server-fuse
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Seafile server - FUSE extension
|
||||
URL:=https://seafile.com/
|
||||
DEPENDS:= \
|
||||
+bash \
|
||||
+glib2 \
|
||||
+jansson \
|
||||
+libevent2 \
|
||||
+libevent2-openssl \
|
||||
+libfuse \
|
||||
+libmariadb \
|
||||
+libopenssl \
|
||||
+libpthread \
|
||||
+libsearpc \
|
||||
+libsqlite3 \
|
||||
+libuuid \
|
||||
+procps-ng-pkill \
|
||||
+seafile-ccnet \
|
||||
+seafile-server \
|
||||
+zlib \
|
||||
$(ICONV_DEPENDS)
|
||||
endef
|
||||
|
||||
ifeq ($(CONFIG_SEAFILE_FUSE_SUPPORT),y)
|
||||
CONFIGURE_ARGS += --enable-fuse
|
||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/fuse
|
||||
else
|
||||
CONFIGURE_ARGS += --disable-fuse
|
||||
endif
|
||||
define Package/seafile-server-fuse/description
|
||||
$(call Package/seafile-server/description)
|
||||
|
||||
ifeq ($(CONFIG_SEAFILE_CONSOLE_SUPPORT),y)
|
||||
CONFIGURE_ARGS += --enable-console
|
||||
else
|
||||
CONFIGURE_ARGS += --disable-console
|
||||
endif
|
||||
This package contains the FUSE extension (seaf-fuse) for Seafile
|
||||
server.
|
||||
endef
|
||||
|
||||
PKG_BUILD_DEPENDS:=vala/host libevhtp
|
||||
define Package/python3-seafile-server
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Python bindings for Seafile server
|
||||
DEPENDS:=+python3-light +python3-logging +python3-searpc +python3-seafile-ccnet
|
||||
VARIANT:=python3
|
||||
endef
|
||||
|
||||
# This is required as python-package.mk overrides the default setting of having interlinking enabled
|
||||
define Package/python3-seafile-server/description
|
||||
$(call Package/seafile-server/description)
|
||||
|
||||
This package contains Python bindings for Seafile server.
|
||||
endef
|
||||
|
||||
CONFIGURE_ARGS += \
|
||||
--disable-console \
|
||||
--enable-fuse \
|
||||
--enable-python \
|
||||
--with-mysql="$(STAGING_DIR)/usr/bin/mysql_config"
|
||||
|
||||
# This is required as python[3]-package.mk overrides the default setting of having interlinking enabled
|
||||
ifdef CONFIG_USE_MIPS16
|
||||
TARGET_CFLAGS += -minterlink-mips16
|
||||
TARGET_CFLAGS += -minterlink-mips16
|
||||
endif
|
||||
TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib -liconv \
|
||||
-L$(STAGING_DIR)/usr/lib/mysql -lmysqlclient -lz -levent_openssl -levent
|
||||
|
||||
ifdef CONFIG_GCC_LIBSSP
|
||||
TARGET_LDFLAGS += -lssp
|
||||
TARGET_LDFLAGS += -lssp
|
||||
endif
|
||||
|
||||
define Package/seafile-server/conffiles
|
||||
/etc/config/seafile
|
||||
/etc/config/seafile-server
|
||||
endef
|
||||
|
||||
SEAFILE_SERVER_BINARIES:= \
|
||||
seaf-fsck \
|
||||
seafile-controller \
|
||||
seaf-server \
|
||||
seaf-server-init \
|
||||
seafserv-gc
|
||||
|
||||
SEAFILE_SERVER_SHELL_SCRIPTS:= \
|
||||
reset-admin.sh \
|
||||
seaf-fsck.sh \
|
||||
seaf-gc.sh \
|
||||
seafile.sh \
|
||||
seahub.sh \
|
||||
setup-seafile-mysql.sh \
|
||||
setup-seafile.sh
|
||||
# sqlite2mysql.sh handled differently
|
||||
|
||||
SEAFILE_SERVER_PYTHON_SCRIPTS:= \
|
||||
check_init_admin.py \
|
||||
setup-seafile-mysql.py \
|
||||
sqlite2mysql.py
|
||||
|
||||
# Include Python 2 bindings in this package to maintain compatibility with previous versions
|
||||
define Package/seafile-server/install
|
||||
$(INSTALL_DIR) $(1)/usr/{bin,lib}
|
||||
$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
|
||||
$(INSTALL_DIR) $(1)/usr/{bin,libexec}
|
||||
$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)/{seafile,seaserv}
|
||||
$(INSTALL_DIR) $(1)/usr/share/seafile/seafile-server
|
||||
$(INSTALL_DIR) $(1)/usr/share/seafile/conf
|
||||
$(INSTALL_DIR) $(1)/etc/{config,init.d}
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/seafile/ $(1)$(PYTHON_PKG_DIR)/
|
||||
$(CP) $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/seaserv/ $(1)$(PYTHON_PKG_DIR)/
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/seaf-gc.sh $(1)/usr/share/seafile/seafile-server/
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/seaf-fsck.sh $(1)/usr/share/seafile/seafile-server/
|
||||
ifeq ($(CONFIG_SEAFILE_FUSE_SUPPORT),y)
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/seaf-fuse.sh $(1)/usr/share/seafile/seafile-server/
|
||||
endif
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/setup-seafile-mysql.py $(1)/usr/share/seafile/seafile-server/
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/setup-seafile-mysql.sh $(1)/usr/share/seafile/seafile-server/
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/sqlite2mysql.py $(1)/usr/share/seafile/seafile-server/
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/sqlite2mysql.sh $(1)/usr/share/seafile/seafile-server/
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/check_init_admin.py $(1)/usr/share/seafile/seafile-server/
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/upgrade/ $(1)/usr/share/seafile/seafile-server/
|
||||
$(CP) ./files/seafile.conf $(1)/etc/config/seafile
|
||||
$(INSTALL_BIN) ./files/seafile.init $(1)/etc/init.d/seafile
|
||||
$(INSTALL_BIN) ./files/seahub.init $(1)/etc/init.d/seahub
|
||||
find $(1) -name "*\.pyc" -o -name "*\.pyo" | xargs rm -f
|
||||
$(INSTALL_DIR) $(1)/etc/{config,init.d,seafile}
|
||||
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
|
||||
|
||||
for bin in $(SEAFILE_SERVER_BINARIES) ; do \
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$$$$bin $(1)/usr/libexec/ ; \
|
||||
done
|
||||
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/python/seafile/*.py $(1)$(PYTHON_PKG_DIR)/seafile/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/python/seaserv/*.py $(1)$(PYTHON_PKG_DIR)/seaserv/
|
||||
|
||||
for sh in $(SEAFILE_SERVER_SHELL_SCRIPTS) ; do \
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/$$$$sh $(1)/usr/bin/$$$${sh%.sh} ; \
|
||||
done
|
||||
mv $(1)/usr/bin/reset-admin $(1)/usr/bin/reset-seafile-admin
|
||||
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/sqlite2mysql.sh $(1)/usr/share/seafile/seafile-server/
|
||||
|
||||
for py in $(SEAFILE_SERVER_PYTHON_SCRIPTS) ; do \
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/scripts/$$$$py $(1)/usr/share/seafile/seafile-server/ ; \
|
||||
done
|
||||
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/{sql,upgrade} $(1)/usr/share/seafile/seafile-server/
|
||||
rm -rf $(1)/usr/share/seafile/seafile-server/upgrade/win32
|
||||
|
||||
$(INSTALL_BIN) ./files/create-seafile-admin.sh $(1)/usr/bin/create-seafile-admin
|
||||
|
||||
$(INSTALL_CONF) ./files/seafile-server.config $(1)/etc/config/seafile-server
|
||||
$(INSTALL_BIN) ./files/seafile-server.init $(1)/etc/init.d/seafile-server
|
||||
$(INSTALL_DATA) ./files/seafile-server.upgrade $(1)/lib/upgrade/keep.d/seafile-server
|
||||
endef
|
||||
|
||||
define Build/InstallDev
|
||||
$(INSTALL_DIR) $(1)/usr/include
|
||||
$(INSTALL_DIR) $(1)/usr/include/seafile
|
||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||
$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/include/seafile/ $(1)/usr/include/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libseafile.pc $(1)/usr/lib/pkgconfig/
|
||||
$(CP) $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/seafile/ $(1)$(PYTHON_PKG_DIR)/
|
||||
$(CP) $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/seaserv/ $(1)$(PYTHON_PKG_DIR)/
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/seafile/*.h $(1)/usr/include/seafile/
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libseafile.pc $(1)/usr/lib/pkgconfig/
|
||||
endef
|
||||
|
||||
define Py3Build/Compile
|
||||
rm -rf $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/{seafile,seaserv}
|
||||
$(INSTALL_DIR) $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/{seafile,seaserv}
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/python/seafile/*.py $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/seafile/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/python/seaserv/*.py $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/seaserv/
|
||||
endef
|
||||
|
||||
define Package/seafile-server-fuse/install
|
||||
$(INSTALL_DIR) $(1)/usr/{bin,libexec}
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/seaf-fuse $(1)/usr/libexec/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/seaf-fuse.sh $(1)/usr/bin/seaf-fuse
|
||||
endef
|
||||
|
||||
Py3Package/python3-seafile-server/install:=:
|
||||
|
||||
define Package/seafile-server/postinst
|
||||
#!/bin/sh
|
||||
[ ! -f /etc/init.d/seafile ] && exit 0
|
||||
cat << EOF
|
||||
|
||||
if [ ! -d /usr/share/seafile/seafile-data ]
|
||||
then
|
||||
echo "*** Installation completed, running configuration script..."
|
||||
/etc/init.d/seafile setup
|
||||
Please see:
|
||||
|
||||
if [ $$? -ne 0 ]
|
||||
then
|
||||
echo
|
||||
echo "*** ERROR: Configuration failed. Please fix the issues if any and re-run the script using the command below:"
|
||||
echo "*** \"/etc/init.d/seafile setup\""
|
||||
fi
|
||||
else
|
||||
echo "*** seafile-data directory already exists."
|
||||
echo
|
||||
echo "*** In case you are upgrading seafile, please run the appropriate upgrade script"
|
||||
echo "*** manually before using the new version."
|
||||
echo "*** Upgrade scripts are located at \"/usr/share/seafile/seafile-server/upgrade\""
|
||||
echo
|
||||
echo "*** For more information, please read http://manual.seafile.com/deploy/upgrade.html"
|
||||
fi
|
||||
https://github.com/openwrt/packages/blob/master/net/seafile-server/README.md
|
||||
|
||||
for OpenWrt-specific installation notes (in particular, if you are
|
||||
upgrading from a version before 7.1).
|
||||
|
||||
EOF
|
||||
|
||||
[ -z "$$IPKG_INSTROOT" ] || exit 0
|
||||
|
||||
cat << EOF
|
||||
|
||||
opkg will attempt to start Seafile server now. This may fail if you have
|
||||
not set up Seafile server before or if you are upgrading and have not
|
||||
run the upgrade scripts.
|
||||
|
||||
EOF
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,seafile-server))
|
||||
$(eval $(call BuildPackage,seafile-server-fuse))
|
||||
|
||||
$(eval $(call Py3Package,python3-seafile-server))
|
||||
$(eval $(call BuildPackage,python3-seafile-server))
|
||||
$(eval $(call BuildPackage,python3-seafile-server-src))
|
||||
|
||||
Reference in New Issue
Block a user