openwrt-packages/net/seafile-server/Makefile

244 lines
6.3 KiB
Makefile

#
# 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.4
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:=cc5aaf76044f907758a75a43e321fef499482d7b57d9e61d0297a4bba66dcce4
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
PYTHON3_PKG_BUILD:=0
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 \
+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/config
select LIBEVHTP_BUILD_DEPENDS
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 \
+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
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"
CONFIGURE_VARS += \
PYTHON="$(HOST_PYTHON3_BIN)"
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 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))