diff mbox series

package/openssh: adding a way to install only sftp-server

Message ID 20190215220257.12430-1-angelo@amarulasolutions.com
State Rejected
Headers show
Series package/openssh: adding a way to install only sftp-server | expand

Commit Message

Angelo Compagnucci Feb. 15, 2019, 10:02 p.m. UTC
This patch adds a way to install only sftp-server in case it is
needed by other packages (like dropbear) or a full openssh installation is
not needed.

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
---
 package/openssh/Config.in  |  9 +++++++++
 package/openssh/openssh.mk | 10 ++++++++++
 2 files changed, 19 insertions(+)

Comments

Thomas Petazzoni Feb. 15, 2019, 10:17 p.m. UTC | #1
Hello Angelo,

On Fri, 15 Feb 2019 23:02:57 +0100
Angelo Compagnucci <angelo.compagnucci@gmail.com> wrote:

> This patch adds a way to install only sftp-server in case it is
> needed by other packages (like dropbear) or a full openssh installation is
> not needed.

Why not using package/gesftpserver/ if you need a sftp server in a
dropbear-only environment ?

> +if BR2_PACKAGE_OPENSSH
> +
> +config BR2_PACKAGE_OPENSSH_SFTP_ONLY

Options "FOO_ONLY" are not really nice. If we really want to do this,
then we probably want:

BR2_PACKAGE_OPENSSH_SSH
BR2_PACKAGE_OPENSSH_SSHD
BR2_PACKAGE_OPENSSH_SFTP_SERVER

etc.

> +	bool "install only sftp"
> +	help
> +	  Install only sftp binary (ex: dropbear sftp support)
> +
> +endif
> diff --git a/package/openssh/openssh.mk b/package/openssh/openssh.mk
> index 4fef5caedb..bfd93845d9 100644
> --- a/package/openssh/openssh.mk
> +++ b/package/openssh/openssh.mk
> @@ -88,4 +88,14 @@ endef
>  
>  OPENSSH_POST_INSTALL_TARGET_HOOKS += OPENSSH_INSTALL_SSH_COPY_ID
>  
> +ifeq ($(BR2_PACKAGE_OPENSSH_SFTP_ONLY),y)
> +define OPENSSH_INSTALL_TARGET_CMDS
> +	$(INSTALL) -D -m 755 $(@D)/sftp-server \
> +		$(TARGET_DIR)/usr/libexec/sftp-server
> +endef
> +undefine OPENSSH_INSTALL_INIT_SYSTEMD
> +undefine OPENSSH_INSTALL_INIT_SYSV
> +undefine OPENSSH_POST_INSTALL_TARGET_HOOKS

Yerk, "undefine". We don't use this anywhere else in Buildroot
packages :-/

Could you consider using gesftpserver ? :-)

Thanks,

Thomas
Peter Korsgaard Feb. 18, 2019, 3:51 p.m. UTC | #2
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:

 > Hello Angelo,
 > On Fri, 15 Feb 2019 23:02:57 +0100
 > Angelo Compagnucci <angelo.compagnucci@gmail.com> wrote:

 >> This patch adds a way to install only sftp-server in case it is
 >> needed by other packages (like dropbear) or a full openssh installation is
 >> not needed.

 > Why not using package/gesftpserver/ if you need a sftp server in a
 > dropbear-only environment ?

Yes, my thoughts exactly!
diff mbox series

Patch

diff --git a/package/openssh/Config.in b/package/openssh/Config.in
index 683a9c0e51..ba0dc62f83 100644
--- a/package/openssh/Config.in
+++ b/package/openssh/Config.in
@@ -9,3 +9,12 @@  config BR2_PACKAGE_OPENSSH
 	  friends.
 
 	  http://www.openssh.com/
+
+if BR2_PACKAGE_OPENSSH
+
+config BR2_PACKAGE_OPENSSH_SFTP_ONLY
+	bool "install only sftp"
+	help
+	  Install only sftp binary (ex: dropbear sftp support)
+
+endif
diff --git a/package/openssh/openssh.mk b/package/openssh/openssh.mk
index 4fef5caedb..bfd93845d9 100644
--- a/package/openssh/openssh.mk
+++ b/package/openssh/openssh.mk
@@ -88,4 +88,14 @@  endef
 
 OPENSSH_POST_INSTALL_TARGET_HOOKS += OPENSSH_INSTALL_SSH_COPY_ID
 
+ifeq ($(BR2_PACKAGE_OPENSSH_SFTP_ONLY),y)
+define OPENSSH_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 755 $(@D)/sftp-server \
+		$(TARGET_DIR)/usr/libexec/sftp-server
+endef
+undefine OPENSSH_INSTALL_INIT_SYSTEMD
+undefine OPENSSH_INSTALL_INIT_SYSV
+undefine OPENSSH_POST_INSTALL_TARGET_HOOKS
+endif
+
 $(eval $(autotools-package))