treewide: refactor to use PKG_BUILD_FLAGS:=gc-sections
[feed/packages.git] / net / transmission / Makefile
1 #
2 # Copyright (C) 2009-2016 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=transmission
11 PKG_VERSION:=4.0.2
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
15 PKG_SOURCE_URL:=https://github.com/transmission/transmission/releases/download/$(PKG_VERSION)/
16 PKG_HASH:=39bf7a104a722805a9dc089cdaaffe33bf90b82230a7ea7f340cae59f00a2ee8
17
18 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
19 PKG_LICENSE:=GPL-2.0-or-later
20 PKG_LICENSE_FILES:=COPYING
21 PKG_CPE_ID:=cpe:/a:transmissionbt:transmission
22
23 PKG_INSTALL:=1
24 PKG_BUILD_DEPENDS:=libb64 node/host
25 PKG_BUILD_PARALLEL:=1
26 PKG_BUILD_FLAGS:=gc-sections
27 PKG_CONFIG_DEPENDS:= \
28 CONFIG_LIBCURL_GNUTLS \
29 CONFIG_LIBCURL_MBEDTLS \
30 CONFIG_LIBCURL_OPENSSL \
31 CONFIG_LIBCURL_WOLFSSL \
32 CONFIG_LIBCURL_NOSSL
33
34 include $(INCLUDE_DIR)/package.mk
35 include $(INCLUDE_DIR)/cmake.mk
36 include $(INCLUDE_DIR)/package-seccomp.mk
37
38 define Package/transmission/template
39 SUBMENU:=BitTorrent
40 SECTION:=net
41 CATEGORY:=Network
42 TITLE:=BitTorrent client
43 URL:=https://www.transmissionbt.com
44 DEPENDS:=+libatomic +libcurl +libdeflate +libdht +libevent2 \
45 +libevent2-pthreads +libminiupnpc +libnatpmp +libpthread +libpsl \
46 +librt +libutp +zlib +LIBCURL_NOSSL:libmbedtls \
47 +LIBCURL_GNUTLS:libmbedtls
48 endef
49
50 define Package/transmission-daemon
51 $(call Package/transmission/template)
52 USERID:=transmission=224:transmission=224
53 endef
54
55 define Package/transmission-cli
56 $(call Package/transmission/template)
57 TITLE+= (utilities)
58 endef
59
60 define Package/transmission-remote
61 $(call Package/transmission/template)
62 TITLE+= (remote)
63 endef
64
65 define Package/transmission-web
66 $(call Package/transmission/template)
67 TITLE+= (webinterface)
68 DEPENDS:=+transmission-daemon
69 PKGARCH:=all
70 endef
71
72 define Package/transmission-daemon/description
73 Transmission is a simple BitTorrent client.
74 It features a very simple, intuitive interface
75 on top on an efficient, cross-platform back-end.
76 This package contains the daemon itself.
77 endef
78
79 define Package/transmission-cli/description
80 CLI utilities for transmission.
81 endef
82
83 define Package/transmission-remote/description
84 CLI remote interface for transmission.
85 endef
86
87 define Package/transmission-web/description
88 Webinterface resources for transmission.
89 endef
90
91 define Package/transmission-daemon/conffiles
92 /etc/config/transmission
93 endef
94
95 TARGET_CFLAGS += -flto -DHAVE_SIZE_T -latomic
96 TARGET_LDFLAGS += -Wl,--as-needed
97
98 CMAKE_OPTIONS += \
99 -DENABLE_CLI:BOOL=YES \
100 -DENABLE_GTK:BOOL=NO \
101 -DENABLE_QT:BOOL=NO \
102 -DENABLE_MAC:BOOL=NO \
103 -DENABLE_TESTS:BOOL=NO \
104 -DENABLE_NLS:BOOL=NO \
105 -DENABLE_UTP:BOOL=YES \
106 -DRUN_CLANG_TIDY:BOOL=NO \
107 -DUSE_SYSTEM_EVENT2:BOOL=YES \
108 -DUSE_SYSTEM_DEFLATE:BOOL=YES \
109 -DUSE_SYSTEM_DHT:BOOL=YES \
110 -DUSE_SYSTEM_MINIUPNPC:BOOL=YES \
111 -DUSE_SYSTEM_NATPMP:BOOL=YES \
112 -DUSE_SYSTEM_UTP:BOOL=YES \
113 -DUSE_SYSTEM_B64:BOOL=YES \
114 -DUSE_SYSTEM_PSL:BOOL=YES \
115 -DWITH_INOTIFY:BOOL=YES \
116 -DWITH_KQUEUE:BOOL=NO \
117 -DWITH_SYSTEMD:BOOL=NO \
118 -DB64_INCLUDE_DIR=$(STAGING_DIR)/usr/include \
119 -DB64_LIBRARY=$(STAGING_DIR)/usr/lib/libb64.a \
120 -DDHT_INCLUDE_DIR=$(STAGING_DIR)/usr/include \
121 -DDHT_LIBRARY=$(STAGING_DIR)/usr/lib/libdht.so \
122 -DUTP_INCLUDE_DIR=$(STAGING_DIR)/usr/include \
123 -DUTP_LIBRARY=$(STAGING_DIR)/usr/lib/libutp.so \
124 $(if $(CONFIG_LIBCURL_NOSSL),-DWITH_CRYPTO=mbedtls) \
125 $(if $(CONFIG_LIBCURL_GNUTLS),-DWITH_CRYPTO=mbedtls) \
126 $(if $(CONFIG_LIBCURL_MBEDTLS),-DWITH_CRYPTO=mbedtls) \
127 $(if $(CONFIG_LIBCURL_OPENSSL),-DWITH_CRYPTO=openssl) \
128 $(if $(CONFIG_LIBCURL_WOLFSSL),-DWITH_CRYPTO=wolfssl)
129
130 define Package/transmission-daemon/install
131 $(INSTALL_DIR) $(1)/usr/bin
132 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/transmission-daemon $(1)/usr/bin/
133 $(INSTALL_DIR) $(1)/etc/init.d/
134 $(INSTALL_BIN) files/transmission.init $(1)/etc/init.d/transmission
135 $(INSTALL_DIR) $(1)/etc/config
136 $(INSTALL_CONF) files/transmission.config $(1)/etc/config/transmission
137 $(INSTALL_DIR) $(1)/etc/sysctl.d/
138 $(INSTALL_CONF) files/transmission.sysctl $(1)/etc/sysctl.d/20-transmission.conf
139 $(call InstallSeccomp,$(1),./files/transmission-daemon.json)
140 endef
141
142 define Package/transmission-cli/install
143 $(INSTALL_DIR) $(1)/usr/bin
144 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/transmission-cli \
145 $(PKG_INSTALL_DIR)/usr/bin/transmission-create \
146 $(PKG_INSTALL_DIR)/usr/bin/transmission-edit \
147 $(PKG_INSTALL_DIR)/usr/bin/transmission-show \
148 $(1)/usr/bin/
149 endef
150
151 define Package/transmission-remote/install
152 $(INSTALL_DIR) $(1)/usr/bin
153 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/transmission-remote $(1)/usr/bin/
154 endef
155
156 define Package/transmission-web/install
157 $(INSTALL_DIR) $(1)/usr/share/transmission
158 $(CP) $(PKG_INSTALL_DIR)/usr/share/transmission/public_html $(1)/usr/share/transmission/
159 endef
160
161 $(eval $(call BuildPackage,transmission-daemon))
162 $(eval $(call BuildPackage,transmission-cli))
163 $(eval $(call BuildPackage,transmission-remote))
164 $(eval $(call BuildPackage,transmission-web))