[Buildroot] [PATCH v4] remmina: new package

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Dec 29 22:23:31 UTC 2015


Dear Scott Fan,

On Tue,  1 Sep 2015 22:36:14 +0800, Scott Fan wrote:
> Remmina is a remote desktop client written in GTK+.
> Currently RDP, VNC, NX, XDMCP and SSH are supported.
> 
> http://remmina.sourceforge.net/
> 
> Signed-off-by: Scott Fan <fancp2007 at gmail.com>

It's been a long while, so I wanted to get back to your patch.
Unfortunately, it doesn't build properly:

-- Checking for module 'freerdp>=1.0'
--   Found freerdp, version 1.2.5-dev
CMake Error at /home/test/buildroot/output/host/usr/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find FREERDP (missing: FREERDP_LIBRARY)
Call Stack (most recent call first):
  /home/test/buildroot/output/host/usr/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindFREERDP.cmake:47 (find_package_handle_standard_args)
  cmake/FindOptionalPackage.cmake:37 (find_package)
  remmina-plugins/CMakeLists.txt:59 (find_suggested_package)

It might be due to the fact that we updated freerdp in the mean time,
I'm not sure. You can reproduce this failure by building the following
configuration:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2015.11-rc1-71-g90d1299.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_7=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_REMMINA=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_LIBGTK3=y
# BR2_TARGET_ROOTFS_TAR is not set

> diff --git a/package/remmina/Config.in b/package/remmina/Config.in
> new file mode 100644
> index 0000000..e82f31b
> --- /dev/null
> +++ b/package/remmina/Config.in
> @@ -0,0 +1,28 @@
> +config BR2_PACKAGE_REMMINA
> +	bool "remmina"
> +	depends on BR2_PACKAGE_XORG7
> +	depends on BR2_PACKAGE_LIBGTK3

Since you also select some X11 library, I guess this package will only
work with the X11 backend of GTK3, so presumably, you need:

	depends on BR2_PACKAGE_LIBGTK3_X11

> +	depends on BR2_USE_MMU # libvncserver depends on BR2_USE_MMU
> +	depends on BR2_USE_WCHAR # freerdp
> +	depends on !BR2_STATIC_LIBS # freerdp
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # freerdp
> +	select BR2_PACKAGE_XLIB_LIBX11
> +	select BR2_PACKAGE_XLIB_LIBXEXT
> +	select BR2_PACKAGE_XLIB_LIBXKBFILE
> +	select BR2_PACKAGE_LIBGCRYPT
> +	select BR2_PACKAGE_LIBSSH

Is LIBSSH really mandatory? CMake says:

-- Finding suggested package LIBSSH.
--   Disable this using "-DWITH_LIBSSH=OFF".

> +	select BR2_PACKAGE_LIBVNCSERVER
> +	select BR2_PACKAGE_FREERDP
> +	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT

Is gettext really mandatory ? CMake says:

-- Finding suggested package Gettext.
--   Disable this using "-DWITH_GETTEXT=OFF".
-- Found Gettext: /home/test/buildroot/output/host/usr/bin/msgmerge (found version "0.19.7") 

> diff --git a/package/remmina/remmina.mk b/package/remmina/remmina.mk
> new file mode 100644
> index 0000000..0ac5fd0
> --- /dev/null
> +++ b/package/remmina/remmina.mk
> @@ -0,0 +1,34 @@
> +################################################################################
> +#
> +# remmina
> +#
> +################################################################################
> +
> +REMMINA_VERSION = v1.1.2
> +REMMINA_SITE = $(call github,FreeRDP,Remmina,$(REMMINA_VERSION))

We now would like to have hash files even for github sourced packages.
So if you could add a hash file, it would be good.

> +REMMINA_LICENSE = GPLv2+ with OpenSSL exception
> +REMMINA_LICENSE_FILES = COPYING LICENSE LICENSE.OpenSSL
> +
> +REMMINA_CONF_OPTS = \
> +	-DWITH_AVAHI=OFF \
> +	-DWITH_APPINDICATOR=OFF \
> +	-DWITH_GNOMEKEYRING=OFF \
> +	-DWITH_TELEPATHY=OFF \
> +	-DWITH_VTE=OFF
> +
> +REMMINA_DEPENDENCIES = \
> +	libgtk3 libgcrypt libssh libvncserver freerdp \
> +	xlib_libX11 xlib_libXext xlib_libxkbfile
> +
> +ifeq ($(BR2_NEEDS_GETTEXT),y)
> +REMMINA_DEPENDENCIES += gettext
> +
> +define REMMINA_POST_PATCH_FIXINTL
> +	$(SED) 's/$${GTK_LIBRARIES}/$${GTK_LIBRARIES} -lintl/' \
> +		$(@D)/remmina/CMakeLists.txt

I think the package should rather use the FindIntl() function provided
by CMake, see https://cmake.org/cmake/help/v3.3/module/FindIntl.html,
by doing:

find_package(Intl)

This is probably something you can bring upstream to the Remmina
developers. In the mean time, we can live with the $(SED) hack you
proposed.

Could you rework the patch to address the various comments, and send an
updated version?

Thanks!

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


More information about the buildroot mailing list