e2bf01b6f867b0ef2060b2242e97a653b91d223b
[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.6p1
12 PKG_RELEASE:=1
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:=a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723
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
26 PKG_BUILD_DEPENDS:=libopenssl
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 endef
55
56 define Package/openssh-client/description
57 OpenSSH client.
58 endef
59
60 define Package/openssh-client/conffiles
61 /etc/ssh/ssh_config
62 endef
63
64 define Package/openssh-client-utils
65 $(call Package/openssh/Default)
66 DEPENDS+= +openssh-client +openssh-keygen
67 TITLE+= client utilities
68 endef
69
70 define Package/openssh-client-utils/description
71 OpenSSH client utilities.
72 endef
73
74 define Package/openssh-keygen
75 $(call Package/openssh/Default)
76 TITLE+= keygen
77 endef
78
79 define Package/openssh-keygen/description
80 OpenSSH keygen.
81 endef
82
83 define Package/openssh-server
84 $(call Package/openssh/Default)
85 DEPENDS+= +openssh-keygen
86 TITLE+= server
87 USERID:=sshd=22:sshd=22
88 endef
89
90 define Package/openssh-server/description
91 OpenSSH server.
92 endef
93
94 define Package/openssh-server/conffiles
95 /etc/ssh/sshd_config
96 /etc/ssh/ssh_host_*_key
97 /etc/ssh/ssh_host_*_key.pub
98 endef
99
100 define Package/openssh-server-pam
101 $(call Package/openssh/Default)
102 DEPENDS+= +libpthread +openssh-keygen +libpam
103 TITLE+= server (with PAM support)
104 VARIANT:=with-pam
105 USERID:=sshd=22:sshd=22
106 endef
107
108 define Package/openssh-server-pam/description
109 OpenSSH server (with PAM support).
110 endef
111
112 define Package/openssh-server-pam/conffiles
113 /etc/pam.d/sshd
114 /etc/security/access-sshd-local.conf
115 /etc/ssh/sshd_config
116 endef
117
118 define Package/openssh-sftp-client
119 $(call Package/openssh/Default)
120 TITLE+= SFTP client
121 endef
122
123 define Package/openssh-sftp-client/description
124 OpenSSH SFTP client.
125 endef
126
127 define Package/openssh-sftp-server
128 $(call Package/openssh/Default)
129 TITLE+= SFTP server
130 # Strip dependencies to avoid pulling in OpenSSL etc.
131 DEPENDS:=
132 endef
133
134 define Package/openssh-sftp-server/description
135 OpenSSH SFTP server.
136 endef
137
138 define Package/openssh-sftp-avahi-service
139 $(call Package/openssh/Default)
140 TITLE+= (SFTP Avahi service)
141 DEPENDS:=+openssh-sftp-server +avahi-daemon
142 endef
143
144 define Package/openssh-sftp-avahi-service/description
145 This package contains the service definition for announcing
146 SFTP support via mDNS/DNS-SD.
147 endef
148
149 define Package/openssh-sftp-avahi-service/conffiles
150 /etc/avahi/services/sftp-ssh.service
151 endef
152
153 CONFIGURE_ARGS+= \
154 $(DISABLE_NLS) \
155 --sysconfdir=/etc/ssh \
156 --with-privsep-user=sshd \
157 --with-privsep-path=/var/empty \
158 --enable-shared \
159 --disable-static \
160 --disable-debug \
161 --disable-strip \
162 --disable-etc-default-login \
163 --disable-lastlog \
164 --disable-utmp \
165 --disable-utmpx \
166 --disable-wtmp \
167 --disable-wtmpx \
168 --without-bsd-auth \
169 --without-kerberos5 \
170 --without-x
171
172 ifeq ($(BUILD_VARIANT),with-pam)
173 CONFIGURE_ARGS += \
174 --with-pam
175 else
176 CONFIGURE_ARGS += \
177 --without-pam
178 endif
179
180 ifeq ($(CONFIG_OPENSSL_ENGINE_CRYPTO),y)
181 CONFIGURE_ARGS+= \
182 --with-ssl-engine
183 endif
184
185 ifneq ($(CONFIG_SSP_SUPPORT),y)
186 CONFIGURE_ARGS += \
187 --without-stackprotect
188 endif
189
190 CONFIGURE_VARS += LD="$(TARGET_CC)"
191
192 ifeq ($(BUILD_VARIANT),with-pam)
193 TARGET_LDFLAGS += -lpthread
194 endif
195
196 define Build/Compile
197 $(MAKE) -C $(PKG_BUILD_DIR) \
198 DESTDIR="$(PKG_INSTALL_DIR)" \
199 LIBS="" \
200 sftp-server
201 $(MAKE) -C $(PKG_BUILD_DIR) \
202 DESTDIR="$(PKG_INSTALL_DIR)" \
203 STRIP_OPT="" \
204 all install
205 endef
206
207 define Package/openssh-client/preinst
208 #!/bin/sh
209 if [ -L $${IPKG_INSTROOT}/usr/bin/ssh ] && [ -L $${IPKG_INSTROOT}/usr/bin/scp ]; then
210 rm -f $${IPKG_INSTROOT}/usr/bin/ssh $${IPKG_INSTROOT}/usr/bin/scp;
211 fi
212 exit 0
213 endef
214
215 define Package/openssh-client/postrm
216 #!/bin/sh
217 rm -f $${IPKG_INSTROOT}/usr/bin/ssh $${IPKG_INSTROOT}/usr/bin/scp;
218 if [ -x $${IPKG_INSTROOT}/usr/sbin/dropbear ] ; then
219 ln -s /usr/sbin/dropbear $${IPKG_INSTROOT}/usr/bin/ssh;
220 ln -s /usr/sbin/dropbear $${IPKG_INSTROOT}/usr/bin/scp;
221 fi
222 exit 0
223 endef
224
225 define Package/openssh-moduli/install
226 $(INSTALL_DIR) $(1)/etc/ssh
227 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/ssh/moduli $(1)/etc/ssh/
228 endef
229
230 define Package/openssh-client/install
231 $(INSTALL_DIR) $(1)/etc/ssh
232 chmod 0700 $(1)/etc/ssh
233 $(CP) $(PKG_INSTALL_DIR)/etc/ssh/ssh_config $(1)/etc/ssh/
234 $(INSTALL_DIR) $(1)/usr/bin
235 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ssh $(1)/usr/bin/
236 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/scp $(1)/usr/bin/
237 endef
238
239 define Package/openssh-client-utils/install
240 $(INSTALL_DIR) $(1)/usr/bin
241 $(INSTALL_BIN) $(foreach bin,add agent keyscan keysign,$(PKG_BUILD_DIR)/ssh-$(bin)) $(1)/usr/bin/
242 endef
243
244 define Package/openssh-keygen/install
245 $(INSTALL_DIR) $(1)/usr/bin
246 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ssh-keygen $(1)/usr/bin/
247 endef
248
249 define Package/openssh-server/install
250 $(INSTALL_DIR) $(1)/etc/ssh
251 chmod 0700 $(1)/etc/ssh
252 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/ssh/sshd_config $(1)/etc/ssh/
253 sed -r -i 's,^#(HostKey /etc/ssh/ssh_host_(rsa|ecdsa|ed25519)_key)$$$$,\1,' $(1)/etc/ssh/sshd_config
254 $(INSTALL_DIR) $(1)/etc/init.d
255 $(INSTALL_BIN) ./files/sshd.init $(1)/etc/init.d/sshd
256 $(INSTALL_DIR) $(1)/usr/sbin
257 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/sshd $(1)/usr/sbin/
258 endef
259
260 define Package/openssh-server-pam/install
261 $(call Package/openssh-server/install,$(1))
262 sed -i 's,#PasswordAuthentication yes,PasswordAuthentication no,g' $(1)/etc/ssh/sshd_config
263 sed -i 's,#UsePAM no,UsePAM yes,g' $(1)/etc/ssh/sshd_config
264 $(INSTALL_DIR) $(1)/etc/pam.d
265 $(INSTALL_DATA) ./files/sshd.pam $(1)/etc/pam.d/sshd
266 $(INSTALL_DIR) $(1)/etc/security
267 $(INSTALL_DATA) ./files/sshd.pam-access $(1)/etc/security/access-sshd-local.conf
268 endef
269
270 define Package/openssh-sftp-client/install
271 $(INSTALL_DIR) $(1)/usr/bin
272 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sftp $(1)/usr/bin/
273 endef
274
275 define Package/openssh-sftp-server/install
276 $(INSTALL_DIR) $(1)/usr/lib
277 $(CP) $(PKG_INSTALL_DIR)/usr/lib/sftp-server $(1)/usr/lib/
278 $(INSTALL_DIR) $(1)/usr/libexec
279 ln -sf ../lib/sftp-server $(1)/usr/libexec/sftp-server
280 endef
281
282 define Package/openssh-sftp-avahi-service/install
283 $(INSTALL_DIR) $(1)/etc/avahi/services
284 $(INSTALL_DATA) ./files/sftp-ssh.service $(1)/etc/avahi/services/
285 endef
286
287 $(eval $(call BuildPackage,openssh-client))
288 $(eval $(call BuildPackage,openssh-moduli))
289 $(eval $(call BuildPackage,openssh-client-utils))
290 $(eval $(call BuildPackage,openssh-keygen))
291 $(eval $(call BuildPackage,openssh-server))
292 $(eval $(call BuildPackage,openssh-server-pam))
293 $(eval $(call BuildPackage,openssh-sftp-client))
294 $(eval $(call BuildPackage,openssh-sftp-server))
295 $(eval $(call BuildPackage,openssh-sftp-avahi-service))