Name: appmenu Version: 25.04 %global forgeurl https://gitlab.com/vala-panel-project/vala-panel-%{name} %global tag %{version} %global date 20250422 %forgemeta Release: 0%{?dist} License: LGPL-3.0-or-later Summary: Global Menu plugin URL: %{forgeurl} Source0: %{forgesource} Source1: 80-%{name}-gtk-module.sh BuildRequires: bamf-daemon BuildRequires: cmake BuildRequires: gettext BuildRequires: java-devel BuildRequires: meson BuildRequires: ninja-build BuildRequires: systemd-rpm-macros BuildRequires: vala BuildRequires: pkgconfig(dbusmenu-glib-0.4) BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(libbamf3) BuildRequires: pkgconfig(libwnck-3.0) >= 3.4.0 BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(budgie-1.0) BuildRequires: pkgconfig(libmatepanelapplet-4.0) BuildRequires: pkgconfig(libxfce4panel-2.0) BuildRequires: pkgconfig(libxfconf-0) # Fedora doesn't have vala-panel # BuildRequires: pkgconfig(vala-panel) Requires: (%{name}-gtk2-module if gtk2) Requires: (%{name}-gtk3-module if gtk3) Recommends: %{name}-registrar Recommends: %{name}-glib-translator Recommends: (%{name}-mate if mate-panel) Recommends: (%{name}-xfce if xfce4-panel) Recommends: (%{name}-budgie if budgie-desktop) %description Global Menu applet for use with Vala Panel, xfce4-panel and mate-panel (Budgie 10.x is also planned). Appmenu-gtk-module is used as a backend %files -f vala-panel-%{name}.lang %doc %{_docdir}/vala-panel-%{name}/README.md %doc %{_docdir}/%{name}-gtk-module/{AUTHORS,README.md,TODO} %license %{_defaultlicensedir}/vala-panel-%{name}/LICENSE %license %{_defaultlicensedir}/%{name}-gtk-module/LICENSE %{_datadir}/glib-2.0/schemas/org.valapanel.%{name}.gschema.xml %{_datadir}/glib-2.0/schemas/org.%{name}.gtk-module.gschema.xml %{_userunitdir}/%{name}-gtk-module.service %{_sysconfdir}/X11/xinit/xinitrc.d/80-%{name}-gtk-module.sh #------------------------------------------------------------------------------- %package gtk-parser-devel Summary: Common development-files for appmenu-gtk{2,3}-parser BuildArch: noarch %description gtk-parser-devel This package contains common headers and documentation for appmenu-gtk{2,3}-parser. %files gtk-parser-devel %{_includedir}/appmenu-gtk-parser #------------------------------------------------------------------------------- %package gtk2-parser Summary: Gtk2MenuShell to GMenuModel parser %description gtk2-parser This library converts Gtk2MenuShells into GMenuModels. %files gtk2-parser %{_libdir}/libappmenu-gtk2-parser.so.* #------------------------------------------------------------------------------- %package gtk2-parser-devel Summary: Development-files for appmenu-gtk2-parser Requires: gtk2-devel%{?_isa} Requires: appmenu-gtk-parser-devel == %{version}-%{release} Requires: appmenu-gtk2-parser%{?_isa} == %{version}-%{release} %description gtk2-parser-devel This package contains development-files for appmenu-gtk2-parser. %files gtk2-parser-devel %{_libdir}/libappmenu-gtk2-parser.so %{_libdir}/pkgconfig/appmenu-gtk2-parser.pc #------------------------------------------------------------------------------- %package gtk3-parser Summary: Gtk3MenuShell to GMenuModel parser %description gtk3-parser This library converts Gtk3MenuShells into GMenuModels. %files gtk3-parser %{_libdir}/libappmenu-gtk3-parser.so.* #------------------------------------------------------------------------------- %package gtk3-parser-devel Summary: Development-files for appmenu-gtk3-parser Requires: gtk3-devel%{?_isa} Requires: appmenu-gtk-parser-devel == %{version}-%{release} Requires: appmenu-gtk3-parser%{?_isa} == %{version}-%{release} %description gtk3-parser-devel This package contains development-files for appmenu-gtk3-parser. %files gtk3-parser-devel %{_libdir}/libappmenu-gtk3-parser.so %{_libdir}/pkgconfig/appmenu-gtk3-parser.pc #------------------------------------------------------------------------------- %package gtk2-module Summary: Gtk2MenuShell D-Bus exporter Requires: appmenu-gtk2-parser%{?_isa} == %{version}-%{release} Requires: appmenu == %{version}-%{release} Provides: appmenu-gtk == %{version}-%{release} Provides: appmenu-gtk%{?_isa} == %{version}-%{release} %description gtk2-module This GTK+ 2 module exports Gtk2MenuShells over D-Bus. %files gtk2-module %{_libdir}/gtk-2.0/modules/lib%{name}-gtk-module.so #------------------------------------------------------------------------------- %package gtk3-module Summary: Gtk3MenuShell D-Bus exporter Requires: appmenu-gtk3-parser%{?_isa} == %{version}-%{release} Requires: appmenu == %{version}-%{release} Provides: appmenu-gtk3 == %{version}-%{release} Provides: appmenu-gtk3%{?_isa} == %{version}-%{release} %description gtk3-module This GTK+ 3 module exports Gtk3MenuShells over D-Bus. %files gtk3-module %{_libdir}/gtk-3.0/modules/lib%{name}-gtk-module.so #------------------------------------------------------------------------------- %package registrar Summary: Small utility to hold DBusMenu menus %description registrar Small utility to hold DBusMenu menus %files registrar %{_libexecdir}/vala-panel/appmenu-registrar %{_datadir}/dbus-1/services/com.canonical.AppMenu.Registrar.service #------------------------------------------------------------------------------- %package glib-translator Summary: GLib library to translate DBusMenu menus into GMenuModels %description glib-translator GLib library to translate DBusMenu menus into GMenuModels %files glib-translator %{_datadir}/vala/vapi/appmenu-glib-translator.* %{_datadir}/gir-1.0/AppmenuGLibTranslator-24.02.gir %{_libdir}/girepository-1.0/AppmenuGLibTranslator-24.02.typelib %{_libdir}/libappmenu-glib-translator.so.* #------------------------------------------------------------------------------- %package glib-translator-devel Summary: Development-files for appmenu-glib-translator Requires: gtk3-devel%{?_isa} Requires: appmenu-glib-translator%{?_isa} == %{version}-%{release} %description glib-translator-devel This package contains development-files for appmenu-gtk3-parser. %files glib-translator-devel %{_includedir}/appmenu-glib-translator/importer.h %{_libdir}/libappmenu-glib-translator.so %{_libdir}/pkgconfig/appmenu-glib-translator.pc #------------------------------------------------------------------------------- %package -n xfce4-appmenu-plugin Summary: Global Menu plugin for xfce4-panel Requires: xfce4-panel Requires: appmenu == %{version}-%{release} %description -n xfce4-appmenu-plugin Global Menu plugin for xfce4-panel %files -n xfce4-appmenu-plugin %{_libdir}/xfce4/panel/plugins/libappmenu-xfce.so %{_datadir}/xfce4/panel/plugins/appmenu.desktop #------------------------------------------------------------------------------- %package -n mate-appmenu-plugin Summary: Global Menu plugin for mate-panel Requires: mate-panel Requires: vala-panel-appmenu == %{version}-%{release} %description -n mate-appmenu-plugin Global Menu plugin for mate-panel %files -n mate-appmenu-plugin %{_libdir}/mate-panel/libappmenu-mate.so %{_datadir}/mate-panel/applets/org.vala-panel.appmenu.mate-panel-applet #------------------------------------------------------------------------------- %package -n budgie-appmenu-plugin Summary: Global Menu plugin for budgie-panel Requires: budgie-desktop Requires: vala-panel-appmenu == %{version}-%{release} %description -n budgie-appmenu-plugin Global Menu plugin for budgie %files -n budgie-appmenu-plugin %{_libdir}/budgie-desktop/plugins/budgie-appmenu-plugin #------------------------------------------------------------------------------- %package jayatana Summary: Global Menu module for Java Applications %description jayatana Global Menu module for Java Applications. Contains Bugs! %files jayatana %{_datadir}/java/jayatana*.jar %{_libdir}/jayatana #------------------------------------------------------------------------------- %prep %forgeautosetup # Setup systemd-unit for Fedora. f="subprojects/%{name}-gtk-module/data/%{name}-gtk-module.service.in" %{__sed} -i.orig -e's!xfce-session.target$!default.target!g' \ -e's!mate-session.target$!default.target!g' \ -e's!gnome-session.target$!default.target!g' \ -e's!@CMAKE_INSTALL_FULL_BINDIR@$!%{_bindir}!g' ${f} %{_bindir}/touch -r ${f}.orig ${f} && %{__rm} ${f}.orig %build %meson -Dxfce=enabled -Dvalapanel=disabled -Djayatana=enabled -Dbudgie=enabled -Dmate=enabled %meson_build %install %meson_install %find_lang vala-panel-%{name} install -Dm755 %{SOURCE1} -t %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/ %post %systemd_user_post %{name}-gtk-module.service %preun %systemd_user_preun %{name}-gtk-module.service %postun %systemd_user_postun_with_restart %{name}-gtk-module.service #------------------------------------------------------------------------------- %changelog * Tue Apr 22 2025 Hazel Bunny - 25.04-1 - Initial package