d9b8a42e76ca25536d20c8304cce0ca5fbbaf9ad
[feed/packages.git] / net / openssh / Makefile
1 #
2 # Copyright (C) 2006-2014 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:=openssh
11 PKG_VERSION:=7.8p1
12 PKG_RELEASE:=2
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
16 https://ftp.spline.de/pub/OpenBSD/OpenSSH/portable/ \
17 https://anorien.csc.warwick.ac.uk/pub/OpenBSD/OpenSSH/portable/
18 PKG_HASH:=1a484bb15152c183bb2514e112aa30dd34138c3cfb032eee5490a66c507144ca
19
20 PKG_LICENSE:=BSD ISC
21 PKG_LICENSE_FILES:=LICENCE
22
23
24 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
25 PKG_REMOVE_FILES:=
26 PKG_FIXUP:=autoreconf
27
28 include $(INCLUDE_DIR)/package.mk
29
30 define Package/openssh/Default
31 SECTION:=net
32 CATEGORY:=Network
33 DEPENDS:=+libopenssl +zlib
34 TITLE:=OpenSSH
35 MAINTAINER:=Peter Wagner <tripolar@gmx.at>
36 URL:=http://www.openssh.com/
37 SUBMENU:=SSH
38 VARIANT:=without-pam
39 endef
40
41 define Package/openssh-moduli
42 $(call Package/openssh/Default)
43 DEPENDS+= +openssh-keygen
44 TITLE+= moduli file
45 endef
46
47 define Package/openssh-moduli/description
48 OpenSSH server moduli file.
49 endef
50
51 define Package/openssh-client
52 $(call Package/openssh/Default)
53 TITLE+= client
54 ALTERNATIVES:=\
55 200:/usr/bin/ssh:/usr/bin/openssh-ssh \
56 200:/usr/bin/scp:/usr/bin/openssh-scp \
57
58 endef
59
60 define Package/openssh-client/description
61 OpenSSH client.
62 endef
63
64 define Package/openssh-client/conffiles
65 /etc/ssh/ssh_config
66 endef
67
68 define Package/openssh-client-utils
69 $(call Package/openssh/Default)
70 DEPENDS+= +openssh-client +openssh-keygen
71 TITLE+= client utilities
72 endef
73
74 define Package/openssh-client-utils/description
75 OpenSSH client utilities.
76 endef
77
78 define Package/openssh-keygen
79 $(call Package/openssh/Default)
80 TITLE+= keygen
81 endef
82
83 define Package/openssh-keygen/description
84 OpenSSH keygen.
85 endef
86
87 define Package/openssh-server
88 $(call Package/openssh/Default)
89 DEPENDS+= +openssh-keygen
90 TITLE+= server
91 USERID:=sshd=22:sshd=22
92 endef
93
94 define Package/openssh-server/description
95 OpenSSH server.
96 endef
97
98 define Package/openssh-server/conffiles
99 /etc/ssh/sshd_config
100 /etc/ssh/ssh_host_*_key
101 /etc/ssh/ssh_host_*_key.pub
102 endef
103
104 define Package/openssh-server-pam
105 $(call Package/openssh/Default)
106 DEPENDS+= +libpthread +openssh-keygen +libpam
107 TITLE+= server (with PAM support)
108 VARIANT:=with-pam
109 USERID:=sshd=22:sshd=22
110 endef
111
112 define Package/openssh-server-pam/description
113 OpenSSH server (with PAM support).
114 endef
115
116 define Package/openssh-server-pam/conffiles
117 /etc/pam.d/sshd
118 /etc/security/access-sshd-local.conf
119 /etc/ssh/sshd_config
120 endef
121
122 define Package/openssh-sftp-client
123 $(call Package/openssh/Default)
124 TITLE+= SFTP client
125 endef
126
127 define Package/openssh-sftp-client/description
128 OpenSSH SFTP client.
129 endef
130
131 define Package/openssh-sftp-server
132 $(call Package/openssh/Default)
133 TITLE+= SFTP server
134 # Strip dependencies to avoid pulling in OpenSSL etc.
135 DEPENDS:=
136 endef
137
138 define Package/openssh-sftp-server/description
139 OpenSSH SFTP server.
140 endef
141
142 define Package/openssh-sftp-avahi-service
143 $(call Package/openssh/Default)
144 TITLE+= (SFTP Avahi service)
145 DEPENDS:=+openssh-sftp-server +avahi-daemon
146 endef
147
148 define Package/openssh-sftp-avahi-service/description
149 This package contains the service definition for announcing
150 SFTP support via mDNS/DNS-SD.
151 endef
152
153 define Package/openssh-sftp-avahi-service/conffiles
154 /etc/avahi/services/sftp-ssh.service
155 endef
156
157 CONFIGURE_ARGS+= \
158 $(DISABLE_NLS) \
159 --sysconfdir=/etc/ssh \
160 --with-privsep-user=sshd \
161 --with-privsep-path=/var/empty \
162 --enable-shared \
163 --disable-static \
164 --disable-debug \
165 --disable-strip \
166 --disable-etc-default-login \
167 --disable-lastlog \
168 --disable-utmp \
169 --disable-utmpx \
170 --disable-wtmp \
171 --disable-wtmpx \
172 --without-bsd-auth \
173 --without-kerberos5 \
174 --without-x
175
176 ifeq ($(BUILD_VARIANT),with-pam)
177 CONFIGURE_ARGS += \
178 --with-pam
179 else
180 CONFIGURE_ARGS += \
181 --without-pam
182 endif
183
184 ifeq ($(CONFIG_OPENSSL_ENGINE_CRYPTO),y)
185 CONFIGURE_ARGS+= \
186 --with-ssl-engine
187 endif
188
189 ifneq ($(CONFIG_SSP_SUPPORT),y)
190 CONFIGURE_ARGS += \
191 --without-stackprotect
192 endif
193
194 CONFIGURE_VARS += LD="$(TARGET_CC)"
195
196 ifeq ($(BUILD_VARIANT),with-pam)
197 TARGET_LDFLAGS += -lpthread
198 endif
199
200 define Build/Compile
201 $(MAKE) -C $(PKG_BUILD_DIR) \
202 DESTDIR="$(PKG_INSTALL_DIR)" \
203 LIBS="" \
204 sftp-server
205 $(MAKE) -C $(PKG_BUILD_DIR) \
206 DESTDIR="$(PKG_INSTALL_DIR)" \
207 STRIP_OPT="" \
208 all install
209 endef
210
211 define Package/openssh-moduli/install
212 $(INSTALL_DIR) $(1)/etc/ssh
213 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/ssh/moduli $(1)/etc/ssh/
214 endef
215
216 define Package/openssh-client/install
217 $(INSTALL_DIR) $(1)/etc/ssh
218 chmod 0700 $(1)/etc/ssh
219 $(CP) $(PKG_INSTALL_DIR)/etc/ssh/ssh_config $(1)/etc/ssh/
220 $(INSTALL_DIR) $(1)/usr/bin
221 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ssh $(1)/usr/bin/openssh-ssh
222 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/scp $(1)/usr/bin/openssh-scp
223 endef
224
225 define Package/openssh-client-utils/install
226 $(INSTALL_DIR) $(1)/usr/bin
227 $(INSTALL_BIN) $(foreach bin,add agent keyscan keysign,$(PKG_BUILD_DIR)/ssh-$(bin)) $(1)/usr/bin/
228 endef
229
230 define Package/openssh-keygen/install
231 $(INSTALL_DIR) $(1)/usr/bin
232 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ssh-keygen $(1)/usr/bin/
233 endef
234
235 define Package/openssh-server/install
236 $(INSTALL_DIR) $(1)/etc/ssh
237 chmod 0700 $(1)/etc/ssh
238 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/ssh/sshd_config $(1)/etc/ssh/
239 sed -r -i 's,^#(HostKey /etc/ssh/ssh_host_(rsa|ecdsa|ed25519)_key)$$$$,\1,' $(1)/etc/ssh/sshd_config
240 $(INSTALL_DIR) $(1)/etc/init.d
241 $(INSTALL_BIN) ./files/sshd.init $(1)/etc/init.d/sshd
242 $(INSTALL_DIR) $(1)/usr/sbin
243 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/sshd $(1)/usr/sbin/
244 endef
245
246 define Package/openssh-server-pam/install
247 $(call Package/openssh-server/install,$(1))
248 sed -i 's,#PasswordAuthentication yes,PasswordAuthentication no,g' $(1)/etc/ssh/sshd_config
249 sed -i 's,#UsePAM no,UsePAM yes,g' $(1)/etc/ssh/sshd_config
250 $(INSTALL_DIR) $(1)/etc/pam.d
251 $(INSTALL_DATA) ./files/sshd.pam $(1)/etc/pam.d/sshd
252 $(INSTALL_DIR) $(1)/etc/security
253 $(INSTALL_DATA) ./files/sshd.pam-access $(1)/etc/security/access-sshd-local.conf
254 endef
255
256 define Package/openssh-sftp-client/install
257 $(INSTALL_DIR) $(1)/usr/bin
258 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sftp $(1)/usr/bin/
259 endef
260
261 define Package/openssh-sftp-server/install
262 $(INSTALL_DIR) $(1)/usr/lib
263 $(CP) $(PKG_INSTALL_DIR)/usr/lib/sftp-server $(1)/usr/lib/
264 $(INSTALL_DIR) $(1)/usr/libexec
265 ln -sf ../lib/sftp-server $(1)/usr/libexec/sftp-server
266 endef
267
268 define Package/openssh-sftp-avahi-service/install
269 $(INSTALL_DIR) $(1)/etc/avahi/services
270 $(INSTALL_DATA) ./files/sftp-ssh.service $(1)/etc/avahi/services/
271 endef
272
273 $(eval $(call BuildPackage,openssh-client))
274 $(eval $(call BuildPackage,openssh-moduli))
275 $(eval $(call BuildPackage,openssh-client-utils))
276 $(eval $(call BuildPackage,openssh-keygen))
277 $(eval $(call BuildPackage,openssh-server))
278 $(eval $(call BuildPackage,openssh-server-pam))
279 $(eval $(call BuildPackage,openssh-sftp-client))
280 $(eval $(call BuildPackage,openssh-sftp-server))
281 $(eval $(call BuildPackage,openssh-sftp-avahi-service))