Skip to contentSkip to conversation

libssh: new package

PATCH Superseded Scott Fan 2 participants 3 messages Jul 28, 2015

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore

Scott Fan

author
#0 lore raw

PATCH 1/2 libssh: new package

libssh2 and libssh both implement SSH and provide a library API for apps. Both support SSH, SFTP, auth, channels etc. Both are 25K-30K lines of code.

[libssh2 vs libssh - A comparison]
http://www.libssh2.org/libssh2-vs-libssh.html

---
 package/Config.in          |  1 +
 package/libssh/Config.in   |  9 +++++++++
 package/libssh/libssh.hash |  2 ++
 package/libssh/libssh.mk   | 16 ++++++++++++++++
 4 files changed, 28 insertions(+)
 create mode 100644 package/libssh/Config.in
 create mode 100644 package/libssh/libssh.hash
 create mode 100644 package/libssh/libssh.mk
package/Config.in +1 -0
index 1e39c74..8d9511c 100644
@@ -748,6 +748,7 @@ menu "Crypto"
 	source "package/libsecret/Config.in"
 	source "package/libsha1/Config.in"
 	source "package/libsodium/Config.in"
+	source "package/libssh/Config.in"
 	source "package/libssh2/Config.in"
 	source "package/nettle/Config.in"
 	source "package/openssl/Config.in"
package/libssh/Config.in new file +9 -0
new file mode 100644
index 0000000..f5c4405
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_LIBSSH
+	bool "libssh"
+	help
+	  libssh is a mulitplatform C library implementing the SSHv2 and SSHv1
+	  protocol on client and server side. With libssh, you can remotely execute
+	  programs, transfer files, use a secure and transparent tunnel for your
+	  remote applications.
+
+	  http://www.libssh.org/
package/libssh/libssh.hash new file +2 -0
new file mode 100644
index 0000000..81466cc
@@ -0,0 +1,2 @@
+# from https://red.libssh.org/projects/libssh/files/
+md5	bffc9dc548c3bae3a3afc5ac1654b272	libssh-0.7.1.tar.xz
package/libssh/libssh.mk new file +16 -0
new file mode 100644
index 0000000..9d5422f
@@ -0,0 +1,16 @@
+################################################################################
+#
+## libssh
+#
+#################################################################################
+
+LIBSSH_VERSION = 0.7.1
+LIBSSH_SOURCE = libssh-$(LIBSSH_VERSION).tar.xz
+LIBSSH_SITE = https://red.libssh.org/attachments/download/154
+LIBSSH_LICENSE = LGPLv2.1
+LIBSSH_LICENSE_FILES = COPYING
+LIBSSH_INSTALL_STAGING = YES
+LIBSSH_SUPPORTS_IN_SOURCE_BUILD = NO
+LIBSSH_CONF_OPTS += -DWITH_SERVER=OFF
+
+$(eval $(cmake-package))
Signature · 1 line
2.4.6
author
#1 lore raw

PATCH 2/2 Remmina: new package

Remmina is a remote desktop client written in GTK+. Currently RDP, VNC, NX, XDMCP and SSH are supported.

http://remmina.sourceforge.net/

---
 package/Config.in                            |  1 +
 package/remmina/0001-libintl-underlink.patch | 11 +++++++++++
 package/remmina/Config.in                    | 17 +++++++++++++++++
 package/remmina/remmina.mk                   | 19 +++++++++++++++++++
 4 files changed, 48 insertions(+)
 create mode 100644 package/remmina/0001-libintl-underlink.patch
 create mode 100644 package/remmina/Config.in
 create mode 100644 package/remmina/remmina.mk
package/Config.in +1 -0
index 8d9511c..8ca27f4 100644
@@ -239,6 +239,7 @@ endif
 	source "package/fbterm/Config.in"
 	source "package/fbv/Config.in"
 	source "package/freerdp/Config.in"
+	source "package/remmina/Config.in"
 	source "package/imagemagick/Config.in"
 	source "package/linux-fusion/Config.in"
 	source "package/lite/Config.in"
package/remmina/0001-libintl-underlink.patch new file +11 -0
new file mode 100644
index 0000000..6afba38
@@ -0,0 +1,11 @@
+--- ./remmina/CMakeLists.txt.orig
++++ ./remmina/CMakeLists.txt
+@@ -91,7 +91,7 @@
+ add_executable(remmina ${REMMINA_SRCS})
+ 
+ include_directories(${GTK_INCLUDE_DIRS})
+-target_link_libraries(remmina ${GTK_LIBRARIES})
++target_link_libraries(remmina ${GTK_LIBRARIES} -lintl)
+ 
+ find_package(X11)
+ include_directories(${X11_INCLUDE_DIR})
package/remmina/Config.in new file +17 -0
new file mode 100644
index 0000000..168f898
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_REMMINA
+	bool "Remmina"
+	depends on BR2_PACKAGE_LIBGTK3
+	select BR2_PACKAGE_LIBGCRYPT
+	select BR2_PACKAGE_LIBSSH
+	select BR2_PACKAGE_LIBVNCSERVER
+	select BR2_PACKAGE_FREERDP
+	select BR2_PACKAGE_GETTEXT
+	help
+	  Remmina is a remote desktop client written in GTK+, aiming to be useful for 
+	  system administrators and travellers, who need to work with lots of remote 
+	  computers in front of either large monitors or tiny netbooks. 
+
+	  Remmina supports multiple network protocols in an integrated and consistent 
+	  user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported.
+
+	  http://remmina.sourceforge.net/
package/remmina/remmina.mk new file +19 -0
new file mode 100644
index 0000000..0a03f3d
@@ -0,0 +1,19 @@
+################################################################################
+#
+# Remmina
+#
+################################################################################
+
+REMMINA_VERSION = v1.1.2
+REMMINA_SITE = $(call github,FreeRDP,Remmina,$(REMMINA_VERSION))
+REMMINA_DEPENDENCIES = libgtk3 libgcrypt libssh libvncserver freerdp gettext
+REMMINA_LICENSE = GPLv2
+REMMINA_LICENSE_FILES = LICENSE
+
+REMMINA_CONF_OPTS = \
+	-DWITH_AVAHI=OFF \
+	-DWITH_APPINDICATOR=OFF \
+	-DWITH_TELEPATHY=OFF \
+	-DWITH_GNOMEKEYRING=OFF
+
+$(eval $(cmake-package))
Signature · 1 line
2.4.6
#2 lore raw

PATCH 2/2 Remmina: new package

Dear Scott Fan,

Quoted 6 lines · Scott Fan

Remmina is a remote desktop client written in GTK+. Currently RDP, VNC, NX, XDMCP and SSH are supported.

http://remmina.sourceforge.net/

Thanks for this contribution. See some comments below.

package/remmina/0001-libintl-underlink.patch

Quoted 6 lines
package/remmina/0001-libintl-underlink.patch new file +0 -0
new file mode 100644
index 0000000..6afba38
@@ -0,0 +1,11 @@

All patches should have a description + Signed-off-by. See
http://buildroot.org/downloads/manual/manual.html#_format_and_licensing_of_the_package_patches.

package/remmina/0001-libintl-underlink.patch line 8

Quoted 8 lines
package/remmina/0001-libintl-underlink.patch new file +8 -0
+--- ./remmina/CMakeLists.txt.orig
++++ ./remmina/CMakeLists.txt
+@@ -91,7 +91,7 @@
+ add_executable(remmina ${REMMINA_SRCS})
+ 
+ include_directories(${GTK_INCLUDE_DIRS})
+-target_link_libraries(remmina ${GTK_LIBRARIES})
++target_link_libraries(remmina ${GTK_LIBRARIES} -lintl)

This is not good: libintl may not exist. If you're using glibc, then the gettext functions are provided by the C library itself.

package/remmina/Config.in line 2

Quoted 8 lines
package/remmina/Config.in new file +2 -0
new file mode 100644
index 0000000..168f898
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_REMMINA
+	bool "Remmina"

lowercase

package/remmina/Config.in line 6

Quoted 4 lines
package/remmina/Config.in new file +4 -0
+	depends on BR2_PACKAGE_LIBGTK3
+	select BR2_PACKAGE_LIBGCRYPT
+	select BR2_PACKAGE_LIBSSH
+	select BR2_PACKAGE_LIBVNCSERVER

libvncserver depends on BR2_USE_MMU, so you need to propagate this dependency. Though I admit this dependency is already inherited by the libgtk3 dependency.

package/remmina/Config.in line 7

Quoted 1 line
package/remmina/Config.in new file +1 -0
+	select BR2_PACKAGE_FREERDP

Depends on wchar, !static libs and threads. For example, libgtk3 does not have the !static libs dependency.

package/remmina/Config.in line 8

Quoted 1 line
package/remmina/Config.in new file +1 -0
+	select BR2_PACKAGE_GETTEXT

This looks suspicious. Look at
http://buildroot.org/downloads/manual/manual.html#_gettext_integration_and_interaction_with_packages.

package/remmina/Config.in line 15

Quoted 7 lines
package/remmina/Config.in new file +7 -0
+	help
+	  Remmina is a remote desktop client written in GTK+, aiming to be useful for 
+	  system administrators and travellers, who need to work with lots of remote 
+	  computers in front of either large monitors or tiny netbooks. 
+
+	  Remmina supports multiple network protocols in an integrated and consistent 
+	  user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported.

Lines too long, please wrap at 72 characters.

package/remmina/remmina.mk line 3

Quoted 10 lines
package/remmina/Config.in new file +1 -0
+	  http://remmina.sourceforge.net/
package/remmina/remmina.mk new file +3 -0
new file mode 100644
index 0000000..0a03f3d
@@ -0,0 +1,19 @@
+################################################################################
+#
+# Remmina

lowercase

package/remmina/remmina.mk line 10

Quoted 7 lines
package/remmina/remmina.mk new file +7 -0
+#
+################################################################################
+
+REMMINA_VERSION = v1.1.2
+REMMINA_SITE = $(call github,FreeRDP,Remmina,$(REMMINA_VERSION))
+REMMINA_DEPENDENCIES = libgtk3 libgcrypt libssh libvncserver freerdp gettext
+REMMINA_LICENSE = GPLv2

The license is GPLv2+ with OpenSSL exception

package/remmina/remmina.mk line 11

Quoted 1 line
package/remmina/remmina.mk new file +1 -0
+REMMINA_LICENSE_FILES = LICENSE

Should also contain COPYING and LICENSE.OpenSSL

package/remmina/remmina.mk line 19

Quoted 8 lines
package/remmina/remmina.mk new file +8 -0
+
+REMMINA_CONF_OPTS = \
+	-DWITH_AVAHI=OFF \
+	-DWITH_APPINDICATOR=OFF \
+	-DWITH_TELEPATHY=OFF \
+	-DWITH_GNOMEKEYRING=OFF
+
+$(eval $(cmake-package))

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com