#
|
|
# Copyright (C) 2007-2017 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=seafile-server
|
|
PKG_VERSION:=7.1.2
|
|
PKG_RELEASE:=2
|
|
|
|
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:=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_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/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))
|
|
endif
|
|
|
|
define Package/seafile-server
|
|
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.
|
|
endef
|
|
|
|
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
|
|
|
|
define Package/seafile-server-fuse/description
|
|
$(call Package/seafile-server/description)
|
|
|
|
This package contains the FUSE extension (seaf-fuse) for Seafile
|
|
server.
|
|
endef
|
|
|
|
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
|
|
|
|
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 python3-package.mk overrides the default setting of having interlinking enabled
|
|
ifdef CONFIG_USE_MIPS16
|
|
TARGET_CFLAGS += -minterlink-mips16
|
|
endif
|
|
|
|
ifdef CONFIG_GCC_LIBSSP
|
|
TARGET_LDFLAGS += -lssp
|
|
endif
|
|
|
|
define Package/seafile-server/conffiles
|
|
/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
|
|
|
|
define Package/seafile-server/install
|
|
$(INSTALL_DIR) $(1)/usr/{bin,libexec}
|
|
$(INSTALL_DIR) $(1)/usr/share/seafile/seafile-server
|
|
$(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
|
|
|
|
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/seafile
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(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
|
|
cat << EOF
|
|
|
|
Please see:
|
|
|
|
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))
|