You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

246 lines
6.7 KiB

#
# 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))