Index: devel/Makefile =================================================================== --- devel/Makefile +++ devel/Makefile @@ -135,6 +135,7 @@ SUBDIR += api-sanity-autotest SUBDIR += apitrace SUBDIR += app-builder + SUBDIR += appmenu-gtk-module SUBDIR += appstream-glib SUBDIR += apr1 SUBDIR += apr2 Index: devel/appmenu-gtk-module/Makefile =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/Makefile @@ -0,0 +1,46 @@ +# $FreeBSD$ + +PORTNAME= appmenu-gtk-module +PORTVERSION= 0.7.2 +CATEGORIES= devel +MASTER_SITES= https://gitlab.com/vala-panel-project/vala-panel-appmenu/uploads/${GL_HASH}/ +DISTNAME= vala-panel-appmenu-${PORTVERSION} + +MAINTAINER= landonf@freebsd.org +COMMENT= GTK+ modules to present application menus within the global menu bar + +LICENSE= LGPL3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= cmake pkgconfig gnome xorg tar:xz +USE_GNOME= glib20 +USE_XORG= x11 + +GL_HASH= 57fe7a74b38180002154fbd6028075db + +CMAKE_ON= ENABLE_APPMENU_COMMON +CMAKE_OFF= GSETTINGS_LOCALINSTALL \ + GSETTINGS_COMPILE + +GLIB_SCHEMAS= org.appmenu.gtk-module.gschema.xml + +OPTIONS_MULTI= GTK +OPTIONS_MULTI_GTK= GTK2 GTK3 +OPTIONS_DEFAULT= GTK2 GTK3 +OPTIONS_SUB= yes +GTK2_DESC= Install GTK+ 2.x module +GTK3_DESC= Install GTK+ 3.x module + +GTK2_CMAKE_BOOL= ENABLE_APPMENU_GTK2_MODULE +GTK2_VARS= USE_GNOME+=gtk20 + +GTK3_CMAKE_BOOL= ENABLE_APPMENU_GTK3_MODULE +GTK3_VARS= USE_GNOME+=gtk30 + +# Extract only the appmenu-gtk-module subproject +EXTRACT_AFTER_ARGS= \ + --no-same-owner --no-same-permissions \ + --include "^${DISTNAME}/subprojects/${PORTNAME}" \ + -s "|^${DISTNAME}/subprojects/${PORTNAME}/\(.*\)|${DISTNAME}/\1|" + +.include Index: devel/appmenu-gtk-module/distinfo =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1559344145 +SHA256 (vala-panel-appmenu-0.7.2.tar.xz) = 80884ebd71b665da7a1eac67752596ecbb29d3a8dd9eee9a2e3212dfc0aab6ae +SIZE (vala-panel-appmenu-0.7.2.tar.xz) = 120652 Index: devel/appmenu-gtk-module/files/patch-CMakeLists.txt =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/files/patch-CMakeLists.txt @@ -0,0 +1,60 @@ +--- CMakeLists.txt.orig 2019-05-01 22:08:39 UTC ++++ CMakeLists.txt +@@ -7,9 +7,12 @@ include(GNUInstallDirs) + include(CMakeDependentOption) + include(FeatureSummary) + find_package (PkgConfig QUIET) ++find_package(X11 REQUIRED) ++include_directories(${X11_INCLUDE_DIR}) + find_package(GLIB2 REQUIRED QUIET COMPONENTS GLIB GOBJECT GIO GIO_UNIX COMPILE_SCHEMAS) + include(GLibProgramHandlers) + find_package(GTK 3.22 QUIET COMPONENTS GDK GTK X11 WAYLAND) ++set(GTK3_FOUND ${GTK_FOUND}) + find_package(GTK 2.24 COMPONENTS GDK GTK X11) + set(GTK2_FOUND ${GTK_FOUND}) + +@@ -19,12 +22,19 @@ find_path(WAYLAND_INCLUDE + PATH_SUFFIXES wayland + ) + +-cmake_dependent_option(STANDALONE "Build appmenu-gtk-module STANDALONE" ON +- "NOT CORE_FOUND" OFF) +-option(ENABLE_APPMENU_GTK_MODULE "Build appmenu-gtk-module" ON) ++option(STANDALONE "Build appmenu-gtk-module STANDALONE" ON) ++option(ENABLE_APPMENU_COMMON "Build appmenu-gtk-module common" OFF) ++option(ENABLE_APPMENU_GTK3_MODULE "Build GTK3 appmenu-gtk-module" OFF) ++option(ENABLE_APPMENU_GTK2_MODULE "Build GTK2 appmenu-gtk-module" OFF) + +-set(APPMENU_GTK2_MODULE ${GTK2_FOUND} AND ${ENABLE_APPMENU_GTK_MODULE}) +-add_feature_info(Gtk3Module ENABLE_APPMENU_GTK_MODULE "Gtk+ module for AppMenu - Gtk3 version") ++if(GTK3_FOUND AND ENABLE_APPMENU_GTK3_MODULE) ++ set(APPMENU_GTK3_MODULE ON) ++endif() ++if(GTK2_FOUND AND ENABLE_APPMENU_GTK2_MODULE) ++ set(APPMENU_GTK2_MODULE ON) ++endif() ++ ++add_feature_info(Gtk3Module APPMENU_GTK3_MODULE "Gtk+ module for AppMenu - Gtk3 version") + add_feature_info(GtkModuleDemos ENABLE_GTK_MODULE_DEMOS "Gtk+ module for AppMenu - demos") + add_feature_info(Gtk2Module APPMENU_GTK2_MODULE "Gtk+ module for AppMenu - Gtk2 version") + +@@ -48,9 +58,12 @@ if(STANDALONE) + add_custom_target (dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) + endif() + +-if(ENABLE_APPMENU_GTK_MODULE OR STANDALONE) ++if(ENABLE_APPMENU_COMMON OR APPMENU_GTK2_MODULE OR APPMENU_GTK3_MODULE) + add_subdirectory(data) + add_subdirectory(lib) ++endif() ++ ++if(APPMENU_GTK2_MODULE OR APPMENU_GTK3_MODULE) + add_subdirectory(src) + add_subdirectory(tests) + endif() +@@ -62,4 +75,4 @@ if(ENABLE_GTK_MODULE_DEMOS) + endif() + endif() + cmake_dependent_option(ENABLE_GTK_MODULE_DEMOS "Enable demo programs and docs for gtk module" OFF +- "ENABLE_APPMENU_GTK_MODULE" OFF) ++ "APPMENU_GTK3_MODULE" OFF) Index: devel/appmenu-gtk-module/files/patch-data_CMakeLists.txt =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/files/patch-data_CMakeLists.txt @@ -0,0 +1,29 @@ +--- data/CMakeLists.txt.orig 2019-05-01 22:08:39 UTC ++++ data/CMakeLists.txt +@@ -1,3 +1,4 @@ ++if(ENABLE_APPMENU_COMMON) + add_custom_target(data-files-module SOURCES org.appmenu.gtk-module.gschema.xml appmenu-gtk-module.service) + + add_schema("org.appmenu.gtk-module.gschema.xml" "bin") +@@ -8,13 +9,18 @@ elseif (NOT SYSTEMD_FOUND AND SYSTEMD_SERVICES_INSTALL + message (FATAL_ERROR "Variable SYSTEMD_SERVICES_INSTALL_DIR is\ + defined, but we can't find systemd using pkg-config") + endif() ++ ++endif() # ENABLE_APPMENU_COMMON ++ + configure_file(appmenu-gtk2-parser.pc.in ${CMAKE_CURRENT_BINARY_DIR}/appmenu-gtk2-parser.pc @ONLY) + configure_file(appmenu-gtk3-parser.pc.in ${CMAKE_CURRENT_BINARY_DIR}/appmenu-gtk3-parser.pc @ONLY) + configure_file(appmenu-gtk-module.service.in ${CMAKE_CURRENT_BINARY_DIR}/appmenu-gtk-module.service @ONLY) +-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/appmenu-gtk3-parser.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +-if(GTK2_FOUND) ++if(APPMENU_GTK3_MODULE) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/appmenu-gtk3-parser.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) ++endif() ++if(APPMENU_GTK2_MODULE) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/appmenu-gtk2-parser.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + endif() +-if (SYSTEMD_FOUND) ++if (ENABLE_APPMENU_DATA AND SYSTEMD_FOUND) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/appmenu-gtk-module.service DESTINATION ${SYSTEMD_SERVICES_INSTALL_DIR}) + endif() Index: devel/appmenu-gtk-module/files/patch-lib_CMakeLists.txt =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/files/patch-lib_CMakeLists.txt @@ -0,0 +1,40 @@ +--- lib/CMakeLists.txt.orig 2019-05-01 22:08:39 UTC ++++ lib/CMakeLists.txt +@@ -19,17 +19,19 @@ if (STANDALONE) + set (VERSION "0") + endif() + +-add_library(appmenu-gtk3-parser SHARED +- ${LIB_SOURCES} +- ${GTK3_SOURCES}) +-target_link_libraries(appmenu-gtk3-parser PRIVATE ${GLIB2_LIBRARIES} ${GTK3_LIBRARIES}) +-target_include_directories(appmenu-gtk3-parser PRIVATE ${GLIB2_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS}) +-set_target_properties(appmenu-gtk3-parser PROPERTIES +- VERSION ${VERSION} +- SOVERSION ${VERSION_MAJOR}) +-install(TARGETS appmenu-gtk3-parser DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++if (APPMENU_GTK3_MODULE) ++ add_library(appmenu-gtk3-parser SHARED ++ ${LIB_SOURCES} ++ ${GTK3_SOURCES}) ++ target_link_libraries(appmenu-gtk3-parser PRIVATE ${GLIB2_LIBRARIES} ${GTK3_LIBRARIES}) ++ target_include_directories(appmenu-gtk3-parser PRIVATE ${GLIB2_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS}) ++ set_target_properties(appmenu-gtk3-parser PROPERTIES ++ VERSION ${VERSION} ++ SOVERSION ${VERSION_MAJOR}) ++ install(TARGETS appmenu-gtk3-parser DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++endif() + +-if (GTK2_FOUND) ++if (APPMENU_GTK2_MODULE) + add_library(appmenu-gtk2-parser SHARED + ${LIB_SOURCES}) + set_target_properties(appmenu-gtk2-parser PROPERTIES +@@ -46,4 +48,6 @@ set(LIB_PUBLIC_HEADERS + + set(GTK_MODULE_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}/appmenu-gtk-parser) + +-install(FILES ${LIB_PUBLIC_HEADERS} DESTINATION ${GTK_MODULE_INCLUDE_DIR}) ++if(ENABLE_APPMENU_COMMON) ++ install(FILES ${LIB_PUBLIC_HEADERS} DESTINATION ${GTK_MODULE_INCLUDE_DIR}) ++endif() Index: devel/appmenu-gtk-module/files/patch-src_CMakeLists.txt =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/files/patch-src_CMakeLists.txt @@ -0,0 +1,60 @@ +--- src/CMakeLists.txt.orig 2019-05-01 22:08:39 UTC ++++ src/CMakeLists.txt +@@ -1,29 +1,33 @@ +-set(MODULE_SOURCES +- appmenu-gtk-module.c +- datastructs.c +- datastructs.h +- datastructs-private.h +- hijack.c +- hijack.h +- support.c +- support.h +- blacklist.c +- blacklist.h +- platform.c +- platform.h +- consts.h) ++if(APPMENU_GTK2_MODULE OR APPMENU_GTK3_MODULE) ++ set(MODULE_SOURCES ++ appmenu-gtk-module.c ++ datastructs.c ++ datastructs.h ++ datastructs-private.h ++ hijack.c ++ hijack.h ++ support.c ++ support.h ++ blacklist.c ++ blacklist.h ++ platform.c ++ platform.h ++ consts.h) ++endif() + +-get_filename_component(GTK3_LIBDIR ${GTK3_GTK_LIBRARY} DIRECTORY) +-set(GTK3_MODULEDIR ${GTK3_LIBDIR}/gtk-3.0/modules) +-add_library(appmenu-gtk3-module MODULE ${MODULE_SOURCES}) +-target_include_directories(appmenu-gtk3-module PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../lib ${WAYLAND_INCLUDE}) +-target_link_libraries(appmenu-gtk3-module PRIVATE appmenu-gtk3-parser GLIB2::GIO_UNIX GTK3::GTK) +-set_target_properties(appmenu-gtk3-module PROPERTIES +- OUTPUT_NAME appmenu-gtk-module +- LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/gtk-3.0) +-install(TARGETS appmenu-gtk3-module DESTINATION ${GTK3_MODULEDIR}) ++if(APPMENU_GTK3_MODULE) ++ get_filename_component(GTK3_LIBDIR ${GTK3_GTK_LIBRARY} DIRECTORY) ++ set(GTK3_MODULEDIR ${GTK3_LIBDIR}/gtk-3.0/modules) ++ add_library(appmenu-gtk3-module MODULE ${MODULE_SOURCES}) ++ target_include_directories(appmenu-gtk3-module PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../lib ${WAYLAND_INCLUDE}) ++ target_link_libraries(appmenu-gtk3-module PRIVATE appmenu-gtk3-parser GLIB2::GIO_UNIX GTK3::GTK) ++ set_target_properties(appmenu-gtk3-module PROPERTIES ++ OUTPUT_NAME appmenu-gtk-module ++ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/gtk-3.0) ++ install(TARGETS appmenu-gtk3-module DESTINATION ${GTK3_MODULEDIR}) ++endif() + +-if(GTK2_FOUND) ++if(APPMENU_GTK2_MODULE) + get_filename_component(GTK2_LIBDIR ${GTK2_GTK_LIBRARY} DIRECTORY) + set(GTK2_MODULEDIR ${GTK2_LIBDIR}/gtk-2.0/modules) + add_library(appmenu-gtk2-module MODULE ${MODULE_SOURCES}) Index: devel/appmenu-gtk-module/files/patch-src_blacklist.c =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/files/patch-src_blacklist.c @@ -0,0 +1,13 @@ +--- src/blacklist.c.orig 2019-05-01 22:08:39 UTC ++++ src/blacklist.c +@@ -58,10 +58,7 @@ static bool is_string_in_array(const char *string, GVa + while (g_variant_iter_loop(&iter, "&s", &element)) + { + if (g_strcmp0(element, string) == 0) +- { +- g_clear_pointer(&element, g_free); + return true; +- } + } + + return false; Index: devel/appmenu-gtk-module/files/patch-src_datastructs-private.h =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/files/patch-src_datastructs-private.h @@ -0,0 +1,13 @@ +--- src/datastructs-private.h.orig 2019-05-01 22:08:39 UTC ++++ src/datastructs-private.h +@@ -30,8 +30,8 @@ + + struct _WindowData + { +- uint window_id; +- ulong wayland_window_id; ++ guint window_id; ++ gulong wayland_window_id; + GMenu *menu_model; + guint menu_model_export_id; + GSList *menus; Index: devel/appmenu-gtk-module/pkg-descr =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/pkg-descr @@ -0,0 +1,4 @@ +Enables integration of applications using the older GtkMenuShell and +GtkMenuItem APIs with a desktop environment's global menu bar. + +WWW: https://gitlab.com/vala-panel-project/vala-panel-appmenu Index: devel/appmenu-gtk-module/pkg-plist =================================================================== --- /dev/null +++ devel/appmenu-gtk-module/pkg-plist @@ -0,0 +1,11 @@ +include/appmenu-gtk-parser/appmenu-gtk-action-group.h +include/appmenu-gtk-parser/appmenu-gtk-menu-shell.h +include/appmenu-gtk-parser/appmenu-gtk-parser.h +%%GTK2%%lib/gtk-2.0/modules/libappmenu-gtk-module.so +%%GTK2%%lib/libappmenu-gtk2-parser.so +%%GTK2%%lib/libappmenu-gtk2-parser.so.0 +%%GTK2%%libdata/pkgconfig/appmenu-gtk2-parser.pc +%%GTK3%%lib/gtk-3.0/modules/libappmenu-gtk-module.so +%%GTK3%%lib/libappmenu-gtk3-parser.so +%%GTK3%%lib/libappmenu-gtk3-parser.so.0 +%%GTK3%%libdata/pkgconfig/appmenu-gtk3-parser.pc