package/wireshark: re-enable for static build configurations

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Thomas: explain why ENABLE_STATIC=OFF is the right thing]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Fabrice Fontaine 2019-04-16 11:41:06 +02:00 committed by Thomas Petazzoni
parent 276072dbd4
commit 2a6b1f05cd
4 changed files with 102 additions and 8 deletions

View File

@ -0,0 +1,39 @@
From 388cd212f3f055600a37f550dd79b156193f3ce5 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Tue, 16 Apr 2019 11:19:13 +0200
Subject: [PATCH] FindGLIB2.cmake: fix static build
captype, editcap and capinfos needs glib2 and its depedencies such as
pcre otherwise static build will fail on missing references
Currenttly, FindGLIB2.cmake sets GLIB2_LIBRARIES to GLIB2_LIBRARY then
it checks for pcre library only when CMAKE_FIND_LIBRARIES_SUFFIXES is
equal to ".a". When it is equal to ".so;.a", pcre is not added even
if pkg-config has only found a static library.
To fix this error, update FindGLIB2.cmake to append GLIB_LIBRARY to the
GLIB2_LIBRARIES. In the UNIX context, GLIB2_LIBRARIES will contain all
the needed dependencies returned by pkg-config
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Upstream status: https://code.wireshark.org/review/#/c/32869/]
---
cmake/modules/FindGLIB2.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmake/modules/FindGLIB2.cmake b/cmake/modules/FindGLIB2.cmake
index 2b55b742fe..46ad3c41a6 100644
--- a/cmake/modules/FindGLIB2.cmake
+++ b/cmake/modules/FindGLIB2.cmake
@@ -92,7 +92,7 @@ find_package_handle_standard_args( GLIB2
)
if( GLIB2_FOUND )
- set( GLIB2_LIBRARIES ${GLIB2_LIBRARY} )
+ list( APPEND GLIB2_LIBRARIES ${GLIB2_LIBRARY} )
# Include transitive dependencies for static linking.
if(UNIX AND CMAKE_FIND_LIBRARY_SUFFIXES STREQUAL ".a")
find_library(PCRE_LIBRARY pcre)
--
2.20.1

View File

@ -0,0 +1,42 @@
From e4cbd1964bcb7e989acd97c4c17508160ec31c5a Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Tue, 16 Apr 2019 10:54:01 +0200
Subject: [PATCH] CMakeLists.txt: disable rpath in static build
Trying to set RPATH to a static binary results in a build failure:
CMake Error at cmake_install.cmake:50 (file):
file RPATH_CHANGE could not write new RPATH:
/usr/lib
to the file:
/home/fabrice/br-test-pkg/br-arm-full-static/target/usr/bin/tshark
No valid ELF RPATH or RUNPATH entry exists in the file;
To fix this error, do not set RPATH if ENABLE_STATIC is set by the user
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Upstream status: will be sent after first patch is merged]
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95822cd0a6..38ba2382bb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -185,7 +185,7 @@ set(PROJECT_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}")
set(LIBRARY_INSTALL_RPATH "")
set(EXECUTABLE_INSTALL_RPATH "")
set(EXTCAP_INSTALL_RPATH "")
-if(NOT (WIN32 OR APPLE))
+if(NOT (WIN32 OR APPLE OR ENABLE_STATIC))
# Try to set a RPATH for installed binaries if the library directory is
# not already included in the default search list.
list(FIND CMAKE_C_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_FULL_LIBDIR}" IS_SYSTEM_DIR)
--
2.20.1

View File

@ -4,7 +4,6 @@ config BR2_PACKAGE_WIRESHARK
depends on BR2_USE_MMU # fork(), glib2 depends on BR2_USE_MMU # fork(), glib2
depends on BR2_USE_WCHAR # glib2 depends on BR2_USE_WCHAR # glib2
depends on BR2_TOOLCHAIN_HAS_THREADS # glib2 depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
depends on !BR2_STATIC_LIBS
select BR2_PACKAGE_LIBPCAP select BR2_PACKAGE_LIBPCAP
select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBGCRYPT
select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBGLIB2
@ -20,6 +19,7 @@ config BR2_PACKAGE_WIRESHARK_GUI
default y default y
depends on BR2_INSTALL_LIBSTDCPP # qt5 depends on BR2_INSTALL_LIBSTDCPP # qt5
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # qt5 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # qt5
depends on !BR2_STATIC_LIBS # qt5
depends on BR2_PACKAGE_HAS_UDEV # qt5 input depends on BR2_PACKAGE_HAS_UDEV # qt5 input
select BR2_PACKAGE_QT5 select BR2_PACKAGE_QT5
select BR2_PACKAGE_QT5BASE select BR2_PACKAGE_QT5BASE
@ -33,14 +33,13 @@ config BR2_PACKAGE_WIRESHARK_GUI
help help
Enable Qt5 GUI Enable Qt5 GUI
comment "Qt5 GUI needs a udev /dev management and a toolchain w/ C++, NPTL" comment "Qt5 GUI needs a udev /dev management and a toolchain w/ C++, NPTL, dynamic library"
depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP || \ depends on !BR2_PACKAGE_HAS_UDEV || !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
endif # BR2_PACKAGE_WIRESHARK endif # BR2_PACKAGE_WIRESHARK
comment "wireshark needs a toolchain w/ wchar, threads, dynamic library" comment "wireshark needs a toolchain w/ wchar, threads"
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS
depends on BR2_USE_MMU depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
BR2_STATIC_LIBS

View File

@ -17,8 +17,7 @@ WIRESHARK_MAKE_ENV = \
WIRESHARK_CONF_OPTS = \ WIRESHARK_CONF_OPTS = \
-DENABLE_PCAP=ON \ -DENABLE_PCAP=ON \
-DENABLE_SMI=OFF \ -DENABLE_SMI=OFF
-DENABLE_STATIC=OFF
# wireshark needs the host version of lemon during compilation. # wireshark needs the host version of lemon during compilation.
# This binrary is provided by sqlite-src (which is different from # This binrary is provided by sqlite-src (which is different from
@ -147,6 +146,21 @@ else
WIRESHARK_CONF_OPTS += -DBUILD_sdjournal=OFF WIRESHARK_CONF_OPTS += -DBUILD_sdjournal=OFF
endif endif
# Disable plugins as some of them (like l16mono) can't be built
# statically. ENABLE_STATIC=ON actually means "disable shared library"
# and ENABLE_STATIC=OFF means "enable shared library". So for the
# BR2_SHARED_STATIC_LIBS=y case, we want ENABLE_STATIC=OFF even if
# that sounds counter-intuitive.
ifeq ($(BR2_STATIC_LIBS),y)
WIRESHARK_CONF_OPTS += \
-DENABLE_PLUGINS=OFF \
-DENABLE_STATIC=ON
else
WIRESHARK_CONF_OPTS += \
-DENABLE_PLUGINS=ON \
-DENABLE_STATIC=OFF
endif
define WIRESHARK_REMOVE_DOCS define WIRESHARK_REMOVE_DOCS
find $(TARGET_DIR)/usr/share/wireshark -name '*.txt' -print0 \ find $(TARGET_DIR)/usr/share/wireshark -name '*.txt' -print0 \
-o -name '*.html' -print0 | xargs -0 rm -f -o -name '*.html' -print0 | xargs -0 rm -f