- #
- # 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:=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:=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/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))
- 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 python[3]-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
-
- # Include Python 2 bindings in this package to maintain compatibility with previous versions
- define Package/seafile-server/install
- $(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)/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/seafile
- $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
- $(INSTALL_DIR) $(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
- 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))
|