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