aboutsummaryrefslogtreecommitdiffstats
path: root/community/xfce4-vala
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2018-08-13 11:13:00 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2018-08-13 11:13:53 +0200
commit40b1305ed69e28673952a5dccc7460cc3d671680 (patch)
tree3930ca285ed8bf4452b01572b1267286dd6cdfe9 /community/xfce4-vala
parentd805751b348c56149c4886b963a79d9810e21e84 (diff)
downloadaports-40b1305ed69e28673952a5dccc7460cc3d671680.tar.bz2
aports-40b1305ed69e28673952a5dccc7460cc3d671680.tar.xz
community/xfce4-vala: enable gtk3 and modernize
Diffstat (limited to 'community/xfce4-vala')
-rw-r--r--community/xfce4-vala/APKBUILD29
-rw-r--r--community/xfce4-vala/gtk3.patch2958
2 files changed, 2971 insertions, 16 deletions
diff --git a/community/xfce4-vala/APKBUILD b/community/xfce4-vala/APKBUILD
index f7dc90dcc7..ebf6e92312 100644
--- a/community/xfce4-vala/APKBUILD
+++ b/community/xfce4-vala/APKBUILD
@@ -2,31 +2,29 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xfce4-vala
pkgver=4.10.3
-pkgrel=7
+pkgrel=8
pkgdesc="Vala bindings for Xfce4"
url="http://wiki.xfce.org/vala-bindings"
arch="all"
license="LGPL"
depends="exo-dev libxfce4util-dev libxfce4ui-dev garcon-dev
- xfce4-panel-dev xfconf-dev vala"
+ xfce4-panel-dev xfconf-dev vala automake autoconf libtool"
makedepends=""
install=
subpackages=
-source="http://archive.xfce.org/src/bindings/xfce4-vala/${pkgver%.*}/xfce4-vala-$pkgver.tar.bz2"
+source="http://archive.xfce.org/src/bindings/xfce4-vala/${pkgver%.*}/xfce4-vala-$pkgver.tar.bz2
+ gtk3.patch"
+
+builddir="$srcdir"/$pkgname-$pkgver
-_builddir="$srcdir"/$pkgname-$pkgver
prepare() {
- local _p
- cd "$_builddir"
- for _p in $source; do
- case $_p in
- *.patch) msg $_p; patch -p1 -i "$srcdir"/$_p || return 1;;
- esac
- done
+ cd "$builddir"
+ default_prepare
+ autoreconf -vif
}
build() {
- cd "$_builddir"
+ cd "$builddir"
local _apiver=$(valac --version | awk '{print $2}' \
| awk -F. '{print $1 "." $2}')
./configure \
@@ -42,10 +40,9 @@ build() {
}
package() {
- cd "$_builddir"
+ cd "$builddir"
make DESTDIR="$pkgdir" install
}
-md5sums="0bbb1d6e473e0fe9b335b7b1b49d8a71 xfce4-vala-4.10.3.tar.bz2"
-sha256sums="07a8f2b7c09fcdd3d86e0c52adea3c58ca011d0142a93997a01b4af77260ae7b xfce4-vala-4.10.3.tar.bz2"
-sha512sums="ef5d6c67d53edc428ed10e59c21a1264a0d6d06efbea531a15f2eb1309e632e3cd275657aeb01c5723f437b9c319b922055598f97b0ee7db45853beef4f4d987 xfce4-vala-4.10.3.tar.bz2"
+sha512sums="ef5d6c67d53edc428ed10e59c21a1264a0d6d06efbea531a15f2eb1309e632e3cd275657aeb01c5723f437b9c319b922055598f97b0ee7db45853beef4f4d987 xfce4-vala-4.10.3.tar.bz2
+c1f01720e30c77b17fd2d81b3692e7cb077412a0b629fef82a5c5bc421435f9093bcb6a81a72af693e484df2b713afde71567aa139cd521ddf1888701c9bb9a6 gtk3.patch"
diff --git a/community/xfce4-vala/gtk3.patch b/community/xfce4-vala/gtk3.patch
new file mode 100644
index 0000000000..c48d863f05
--- /dev/null
+++ b/community/xfce4-vala/gtk3.patch
@@ -0,0 +1,2958 @@
+From 62f270aec4ad6dfc34f63d26e3fac071b973efdc Mon Sep 17 00:00:00 2001
+From: Mike Massonnet <m8t@gandi.net>
+Date: Sun, 2 Oct 2016 18:33:22 +0200
+Subject: [PATCH] Update all packages
+
+- Include packages for both versions GTK+2 and GTK+3:
+ - exo-1, exo-2
+ - libxfcepanel-1.0, libxfcepanel-2.0
+ - libxfce4ui-1, libxfce4ui-2
+- Update all packages with vala-gi 0.26
+---
+ Makefile.am | 76 +-
+ configure.ac.in | 24 +-
+ packages/exo-1/exo-1.gi | 13 +-
+ packages/exo-2/exo-2-custom.vala | 30 +
+ packages/exo-2/exo-2.defines | 1 +
+ packages/exo-2/exo-2.deps | 8 +
+ packages/exo-2/exo-2.excludes | 6 +
+ packages/exo-2/exo-2.files | 2 +
+ packages/exo-2/exo-2.gi | 136 +++
+ packages/exo-2/exo-2.metadata | 7 +
+ packages/exo-2/exo-2.namespace | 1 +
+ packages/garcon-1/garcon-1.gi | 15 +-
+ packages/garcon-2/garcon-2.defines | 1 +
+ packages/garcon-2/garcon-2.deps | 2 +
+ packages/garcon-2/garcon-2.files | 2 +
+ packages/garcon-2/garcon-2.gi | 225 +++++
+ packages/garcon-2/garcon-2.metadata | 4 +
+ packages/garcon-2/garcon-2.namespace | 1 +
+ .../libxfce4panel-1.0/libxfce4panel-1.0.gi | 4 +-
+ .../libxfce4panel-2.0.defines | 1 +
+ .../libxfce4panel-2.0/libxfce4panel-2.0.deps | 8 +
+ .../libxfce4panel-2.0.excludes | 1 +
+ .../libxfce4panel-2.0/libxfce4panel-2.0.files | 2 +
+ .../libxfce4panel-2.0/libxfce4panel-2.0.gi | 799 ++++++++++++++++++
+ .../libxfce4panel-2.0.metadata | 2 +
+ .../libxfce4panel-2.0.namespace | 1 +
+ packages/libxfce4ui-1/libxfce4ui-1.gi | 19 +-
+ packages/libxfce4ui-2/libxfce4ui-2.defines | 1 +
+ packages/libxfce4ui-2/libxfce4ui-2.deps | 8 +
+ packages/libxfce4ui-2/libxfce4ui-2.excludes | 0
+ packages/libxfce4ui-2/libxfce4ui-2.files | 2 +
+ packages/libxfce4ui-2/libxfce4ui-2.gi | 426 ++++++++++
+ packages/libxfce4ui-2/libxfce4ui-2.metadata | 3 +
+ packages/libxfce4ui-2/libxfce4ui-2.namespace | 1 +
+ packages/libxfce4util-1.0/libxfce4util-1.0.gi | 32 +-
+ vapi/exo-1.vapi | 11 +-
+ vapi/exo-2.deps | 8 +
+ vapi/exo-2.vapi | 77 ++
+ vapi/garcon-1.vapi | 7 +-
+ vapi/libxfce4panel-1.0.vapi | 2 +-
+ vapi/libxfce4panel-2.0.deps | 8 +
+ vapi/libxfce4panel-2.0.vapi | 217 +++++
+ vapi/libxfce4ui-1.vapi | 10 +-
+ vapi/libxfce4ui-2.deps | 8 +
+ vapi/libxfce4ui-2.vapi | 130 +++
+ vapi/libxfce4util-1.0.vapi | 10 +-
+ vapi/libxfconf-0.vapi | 2 +-
+ 47 files changed, 2255 insertions(+), 99 deletions(-)
+ create mode 100644 packages/exo-2/exo-2-custom.vala
+ create mode 100644 packages/exo-2/exo-2.defines
+ create mode 100644 packages/exo-2/exo-2.deps
+ create mode 100644 packages/exo-2/exo-2.excludes
+ create mode 100644 packages/exo-2/exo-2.files
+ create mode 100644 packages/exo-2/exo-2.gi
+ create mode 100644 packages/exo-2/exo-2.metadata
+ create mode 100644 packages/exo-2/exo-2.namespace
+ create mode 100644 packages/garcon-2/garcon-2.defines
+ create mode 100644 packages/garcon-2/garcon-2.deps
+ create mode 100644 packages/garcon-2/garcon-2.files
+ create mode 100644 packages/garcon-2/garcon-2.gi
+ create mode 100644 packages/garcon-2/garcon-2.metadata
+ create mode 100644 packages/garcon-2/garcon-2.namespace
+ create mode 100644 packages/libxfce4panel-2.0/libxfce4panel-2.0.defines
+ create mode 100644 packages/libxfce4panel-2.0/libxfce4panel-2.0.deps
+ create mode 100644 packages/libxfce4panel-2.0/libxfce4panel-2.0.excludes
+ create mode 100644 packages/libxfce4panel-2.0/libxfce4panel-2.0.files
+ create mode 100644 packages/libxfce4panel-2.0/libxfce4panel-2.0.gi
+ create mode 100644 packages/libxfce4panel-2.0/libxfce4panel-2.0.metadata
+ create mode 100644 packages/libxfce4panel-2.0/libxfce4panel-2.0.namespace
+ create mode 100644 packages/libxfce4ui-2/libxfce4ui-2.defines
+ create mode 100644 packages/libxfce4ui-2/libxfce4ui-2.deps
+ create mode 100644 packages/libxfce4ui-2/libxfce4ui-2.excludes
+ create mode 100644 packages/libxfce4ui-2/libxfce4ui-2.files
+ create mode 100644 packages/libxfce4ui-2/libxfce4ui-2.gi
+ create mode 100644 packages/libxfce4ui-2/libxfce4ui-2.metadata
+ create mode 100644 packages/libxfce4ui-2/libxfce4ui-2.namespace
+ create mode 100644 vapi/exo-2.deps
+ create mode 100644 vapi/exo-2.vapi
+ create mode 100644 vapi/libxfce4panel-2.0.deps
+ create mode 100644 vapi/libxfce4panel-2.0.vapi
+ create mode 100644 vapi/libxfce4ui-2.deps
+ create mode 100644 vapi/libxfce4ui-2.vapi
+
+diff --git a/Makefile.am b/Makefile.am
+index 7d931e5..bd02bba 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -3,30 +3,50 @@ NULL =
+ if MAINTAINER_MODE
+ update-gi:
+ $(VALAGI) $(LIBXFCE4UTIL) packages/$(LIBXFCE4UTIL)
+- $(VALAGI) $(GARCON) packages/$(GARCON)
++ $(VALAGI) $(LIBXFCE4UI1) packages/$(LIBXFCE4UI1)
++ $(VALAGI) $(LIBXFCE4UI2) packages/$(LIBXFCE4UI2)
++ $(VALAGI) $(LIBXFCE4PANEL1) packages/$(LIBXFCE4PANEL1)
++ $(VALAGI) $(LIBXFCE4PANEL2) packages/$(LIBXFCE4PANEL2)
++ $(VALAGI) $(EXO1) packages/$(EXO1)
++ $(VALAGI) $(EXO2) packages/$(EXO2)
+ $(VALAGI) $(XFCONF) packages/$(XFCONF)
+- $(VALAGI) $(LIBXFCE4UI) packages/$(LIBXFCE4UI)
+- $(VALAGI) $(LIBXFCE4PANEL) packages/$(LIBXFCE4PANEL)
+- $(VALAGI) $(EXO) packages/$(EXO)
++ $(VALAGI) $(GARCON1) packages/$(GARCON1)
++# $(VALAGI) $(GARCON2) packages/$(GARCON2)
++# $(VALAGI) $(GARCONGTK21) packages/$(GARCONGTK21)
++# $(VALAGI) $(GARCONGTK31) packages/$(GARCONGTK31)
+
+ update-vapi:
+ (cd vapi;\
+ $(VAPIGEN) --vapidir=. --library $(LIBXFCE4UTIL)\
+ ../packages/$(LIBXFCE4UTIL)/$(LIBXFCE4UTIL).gi\
+ ../packages/$(LIBXFCE4UTIL)/$(LIBXFCE4UTIL)-custom.vala;\
+- $(VAPIGEN) --vapidir=. --library $(GARCON)\
+- ../packages/$(GARCON)/$(GARCON).gi;\
++ $(VAPIGEN) --vapidir=. --library $(LIBXFCE4UI1)\
++ ../packages/$(LIBXFCE4UI1)/$(LIBXFCE4UI1).gi;\
++ $(VAPIGEN) --vapidir=. --library $(LIBXFCE4UI2)\
++ ../packages/$(LIBXFCE4UI2)/$(LIBXFCE4UI2).gi;\
++ $(VAPIGEN) --vapidir=. --library $(LIBXFCE4PANEL1)\
++ ../packages/$(LIBXFCE4PANEL1)/$(LIBXFCE4PANEL1).gi;\
++ $(VAPIGEN) --vapidir=. --library $(LIBXFCE4PANEL2)\
++ ../packages/$(LIBXFCE4PANEL2)/$(LIBXFCE4PANEL2).gi;\
++ $(VAPIGEN) --vapidir=. --library $(EXO1)\
++ ../packages/$(EXO1)/$(EXO1).gi\
++ ../packages/$(EXO1)/$(EXO1)-custom.vala;\
++ $(VAPIGEN) --vapidir=. --library $(EXO2)\
++ ../packages/$(EXO2)/$(EXO2).gi\
++ ../packages/$(EXO2)/$(EXO2)-custom.vala;\
+ $(VAPIGEN) --vapidir=. --library $(XFCONF)\
+ ../packages/$(XFCONF)/$(XFCONF).gi\
+ ../packages/$(XFCONF)/$(XFCONF)-custom.vala;\
+- $(VAPIGEN) --vapidir=. --library $(LIBXFCE4UI)\
+- ../packages/$(LIBXFCE4UI)/$(LIBXFCE4UI).gi;\
+- $(VAPIGEN) --vapidir=. --library $(LIBXFCE4PANEL)\
+- ../packages/$(LIBXFCE4PANEL)/$(LIBXFCE4PANEL).gi;\
+- $(VAPIGEN) --vapidir=. --library $(EXO)\
+- ../packages/$(EXO)/$(EXO).gi\
+- ../packages/$(EXO)/$(EXO)-custom.vala;\
++ $(VAPIGEN) --vapidir=. --library $(GARCON1)\
++ ../packages/$(GARCON1)/$(GARCON1).gi;\
+ )
++# $(VAPIGEN) --vapidir=. --library $(GARCON2)\
++# ../packages/$(GARCON2)/$(GARCON2).gi;\
++# $(VAPIGEN) --vapidir=. --library $(GARCONGTK1)\
++# ../packages/$(GARCONGTK1)/$(GARCONGTK1).gi;\
++# $(VAPIGEN) --vapidir=. --library $(GARCONGTK2)\
++# ../packages/$(GARCONGTK2)/$(GARCONGTK2).gi;\
++# )
+ for i in packages/*/*.deps; do cp $$i vapi; done
+ endif
+
+@@ -34,23 +54,29 @@ tests: tests.stamp
+ tests.stamp:
+ (cd tests;\
+ $(VALAC) --pkg=posix --pkg=$(LIBXFCE4UTIL) --vapidir=../vapi $(LIBXFCE4UTIL).vala;\
+- $(VALAC) --pkg=gtk+-2.0 --pkg=$(GARCON) --vapidir=../vapi $(GARCON).vala;\
++ $(VALAC) --pkg=gtk+-2.0 --pkg=$(GARCON1) --vapidir=../vapi $(GARCON1).vala;\
+ $(VALAC) --pkg=$(XFCONF) --vapidir=../vapi $(XFCONF).vala;\
+- $(VALAC) --pkg=$(EXO) --vapidir=../vapi $(EXO).vala;\
++ $(VALAC) --pkg=$(EXO1) --vapidir=../vapi $(EXO1).vala;\
+ )
+ touch $@
+
+ vapi_DATA = \
+ vapi/$(LIBXFCE4UTIL).vapi \
+- vapi/$(GARCON).vapi \
+- vapi/$(GARCON).deps \
++ vapi/$(LIBXFCE4UI1).vapi \
++ vapi/$(LIBXFCE4UI1).deps \
++ vapi/$(LIBXFCE4UI2).vapi \
++ vapi/$(LIBXFCE4UI2).deps \
++ vapi/$(LIBXFCE4PANEL1).vapi \
++ vapi/$(LIBXFCE4PANEL1).deps \
++ vapi/$(LIBXFCE4PANEL2).vapi \
++ vapi/$(LIBXFCE4PANEL2).deps \
++ vapi/$(EXO1).vapi \
++ vapi/$(EXO1).deps \
++ vapi/$(EXO2).vapi \
++ vapi/$(EXO2).deps \
+ vapi/$(XFCONF).vapi \
+- vapi/$(LIBXFCE4UI).vapi \
+- vapi/$(LIBXFCE4UI).deps \
+- vapi/$(LIBXFCE4PANEL).vapi \
+- vapi/$(LIBXFCE4PANEL).deps \
+- vapi/$(EXO).vapi \
+- vapi/$(EXO).deps \
++ vapi/$(GARCON1).vapi \
++ vapi/$(GARCON1).deps \
+ $(NULL)
+
+ pkgconfigdir = $(datadir)/pkgconfig
+@@ -68,7 +94,7 @@ EXTRA_DIST = \
+ vapi \
+ tests/$(LIBXFCE4UTIL).vala \
+ tests/$(XFCONF).vala \
+- tests/$(EXO).vala \
++ tests/$(EXO1).vala \
+ $(NULL)
+
+ CLEANFILES = \
+@@ -76,7 +102,7 @@ CLEANFILES = \
+ tests/$(LIBXFCE4UTIL) \
+ tests/rcfile.rc \
+ tests/$(XFCONF) \
+- tests/$(EXO) \
++ tests/$(EXO1) \
+ $(NULL)
+
+ distclean-local:
+diff --git a/configure.ac.in b/configure.ac.in
+index c29cde0..200760f 100644
+--- a/configure.ac.in
++++ b/configure.ac
+@@ -21,19 +21,25 @@ dnl Check for basic programs
+ AC_PROG_INSTALL()
+
+ dnl Check for required packages
+-M8T_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.10.0])
+-M8T_CHECK_PACKAGE([GARCON], [garcon-1], [0.2.0])
+-M8T_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.10.0])
+-M8T_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.10.0])
+-M8T_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.10.0])
+-M8T_CHECK_PACKAGE([EXO], [exo-1], [0.8.0])
++M8T_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.12.0])
++M8T_CHECK_PACKAGE([LIBXFCE4UI1], [libxfce4ui-1], [4.12.0])
++M8T_CHECK_PACKAGE([LIBXFCE4UI2], [libxfce4ui-2], [4.12.0])
++M8T_CHECK_PACKAGE([LIBXFCE4PANEL1], [libxfce4panel-1.0], [4.12.0])
++M8T_CHECK_PACKAGE([LIBXFCE4PANEL2], [libxfce4panel-2.0], [4.12.0])
++M8T_CHECK_PACKAGE([EXO1], [exo-1], [0.10.0])
++M8T_CHECK_PACKAGE([EXO2], [exo-2], [0.10.0])
++M8T_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.12.0])
++M8T_CHECK_PACKAGE([GARCON1], [garcon-1], [0.4.0])
++M8T_CHECK_PACKAGE([GARCON2], [garcon-2], [0.4.0])
++#M8T_CHECK_PACKAGE([GARCONGTK21], [garcon-gtk2-1], [0.4.0])
++#M8T_CHECK_PACKAGE([GARCONGTK31], [garcon-gtk3-1], [0.4.0])
+
+ dnl Check for Vala
+ AC_ARG_WITH([vala-api],
+ AC_HELP_STRING([--with-vala-api=VERSION],
+ [Use Vala API version VERSION]),
+ [vala_api=$withval],
+- [vala_api='0.16'])
++ [vala_api='0.26'])
+ M8T_CHECK_VALA([$vala_api])
+ AC_ARG_WITH([default-vapidir],
+ AC_HELP_STRING([--with-default-vapidir],
+diff --git a/packages/exo-1/exo-1.gi b/packages/exo-1/exo-1.gi
+index 0a715be..0f1106b 100644
+--- a/packages/exo-1/exo-1.gi
++++ b/packages/exo-1/exo-1.gi
+@@ -130,7 +130,7 @@
+ </struct>
+ <struct name="ExoSimpleJobClass">
+ </struct>
+- <enum name="ExoIconViewDropPosition" type-name="ExoIconViewDropPosition" get-type="exo_icon_view_drop_position_get_type">
++ <enum name="ExoIconViewDropPosition">
+ <member name="EXO_ICON_VIEW_NO_DROP" value="0"/>
+ <member name="EXO_ICON_VIEW_DROP_INTO" value="1"/>
+ <member name="EXO_ICON_VIEW_DROP_LEFT" value="2"/>
+@@ -138,15 +138,15 @@
+ <member name="EXO_ICON_VIEW_DROP_ABOVE" value="4"/>
+ <member name="EXO_ICON_VIEW_DROP_BELOW" value="5"/>
+ </enum>
+- <enum name="ExoIconViewLayoutMode" type-name="ExoIconViewLayoutMode" get-type="exo_icon_view_layout_mode_get_type">
++ <enum name="ExoIconViewLayoutMode">
+ <member name="EXO_ICON_VIEW_LAYOUT_ROWS" value="0"/>
+ <member name="EXO_ICON_VIEW_LAYOUT_COLS" value="1"/>
+ </enum>
+- <flags name="ExoToolbarsModelFlags" type-name="ExoToolbarsModelFlags" get-type="exo_toolbars_model_flags_get_type">
++ <enum name="ExoToolbarsModelFlags">
+ <member name="EXO_TOOLBARS_MODEL_NOT_REMOVABLE" value="1"/>
+ <member name="EXO_TOOLBARS_MODEL_ACCEPT_ITEMS_ONLY" value="2"/>
+ <member name="EXO_TOOLBARS_MODEL_OVERRIDE_STYLE" value="4"/>
+- </flags>
++ </enum>
+ <object name="ExoCellRendererEllipsizedText" parent="GtkCellRendererText" type-name="ExoCellRendererEllipsizedText" get-type="exo_cell_renderer_ellipsized_text_get_type">
+ <constructor name="new" symbol="exo_cell_renderer_ellipsized_text_new">
+ <return-type type="GtkCellRenderer*"/>
+@@ -804,6 +804,7 @@
+ <property name="column-spacing" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="columns" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="enable-search" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="icon-column" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="item-width" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="layout-mode" type="ExoIconViewLayoutMode" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="margin" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+@@ -1644,8 +1645,8 @@
+ </vfunc>
+ </object>
+ <constant name="EXO_MAJOR_VERSION" type="int" value="0"/>
+- <constant name="EXO_MICRO_VERSION" type="int" value="0"/>
+- <constant name="EXO_MINOR_VERSION" type="int" value="9"/>
++ <constant name="EXO_MICRO_VERSION" type="int" value="7"/>
++ <constant name="EXO_MINOR_VERSION" type="int" value="10"/>
+ <constant name="EXO_PARAM_READABLE" type="int" value="0"/>
+ <constant name="EXO_PARAM_READWRITE" type="int" value="0"/>
+ <constant name="EXO_PARAM_WRITABLE" type="int" value="0"/>
+diff --git a/packages/exo-2/exo-2-custom.vala b/packages/exo-2/exo-2-custom.vala
+new file mode 100644
+index 0000000..e8bb49e
+--- /dev/null
++++ b/packages/exo-2/exo-2-custom.vala
+@@ -0,0 +1,30 @@
++namespace Exo {
++
++ /* exo-gdk-pixbuf-extensions.h */
++ [Compact]
++ public class Extensions {
++ public static Gdk.Pixbuf gdk_pixbuf_colorize (Gdk.Pixbuf src, Gdk.Color color);
++ public static Gdk.Pixbuf gdk_pixbuf_frame (Gdk.Pixbuf src, Gdk.Pixbuf frame, int left_offset, int top_offset, int right_offset, int bottom_offset);
++ public static Gdk.Pixbuf gdk_pixbuf_lucent (Gdk.Pixbuf src, uint percent);
++ public static Gdk.Pixbuf gdk_pixbuf_new_from_file_at_max_size (string filename, int max_width, int max_height, bool preserve_aspect_ratio) throws GLib.Error;
++ public static Gdk.Pixbuf gdk_pixbuf_scale_down (Gdk.Pixbuf source, bool preserve_aspect_ratio, int dest_width, int dest_height);
++ public static Gdk.Pixbuf gdk_pixbuf_scale_ratio (Gdk.Pixbuf source, int dest_size);
++ public static Gdk.Pixbuf gdk_pixbuf_spotlight (Gdk.Pixbuf src);
++ }
++
++ /* exo-string.h */
++ [Compact]
++ public class String {
++ [CCode (cname = "exo_str_elide_underscores")]
++ public static string elide_underscores (string text);
++ [CCode (cname = "exo_str_is_equal")]
++ public static bool is_equal (string? a, string? b);
++ [CCode (cname = "exo_str_replace")]
++ public static string replace (string str, string pattern, string replacement);
++ [CCode (cname = "exo_strdup_strftime")]
++ public static string dup_strftime (string format, void* tm);
++ [CCode (cname = "exo_strndupv")]
++ public static string[] ndupv (string[] strv, int num);
++ }
++
++}
+diff --git a/packages/exo-2/exo-2.defines b/packages/exo-2/exo-2.defines
+new file mode 100644
+index 0000000..3446cbe
+--- /dev/null
++++ b/packages/exo-2/exo-2.defines
+@@ -0,0 +1 @@
++-DEXO_COMPILATION
+diff --git a/packages/exo-2/exo-2.deps b/packages/exo-2/exo-2.deps
+new file mode 100644
+index 0000000..367d44b
+--- /dev/null
++++ b/packages/exo-2/exo-2.deps
+@@ -0,0 +1,8 @@
++atk
++gio-2.0
++cairo
++pango
++gdk-pixbuf-2.0
++gdk-3.0
++gtk+-3.0
++libxfce4util-1.0
+diff --git a/packages/exo-2/exo-2.excludes b/packages/exo-2/exo-2.excludes
+new file mode 100644
+index 0000000..eb0e0c5
+--- /dev/null
++++ b/packages/exo-2/exo-2.excludes
+@@ -0,0 +1,6 @@
++#exo-config.h
++exo-gdk-pixbuf-extensions.h
++#exo-job.h
++#exo-simple-job.h
++exo-string.h
++exo-utils.h
+diff --git a/packages/exo-2/exo-2.files b/packages/exo-2/exo-2.files
+new file mode 100644
+index 0000000..79c930e
+--- /dev/null
++++ b/packages/exo-2/exo-2.files
+@@ -0,0 +1,2 @@
++include/exo-2/exo
++lib/libexo-2.so
+diff --git a/packages/exo-2/exo-2.gi b/packages/exo-2/exo-2.gi
+new file mode 100644
+index 0000000..9990a7f
+--- /dev/null
++++ b/packages/exo-2/exo-2.gi
+@@ -0,0 +1,136 @@
++<?xml version="1.0"?>
++<api version="1.0">
++ <namespace name="Exo">
++ <function name="check_version" symbol="exo_check_version">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="required_major" type="guint"/>
++ <parameter name="required_minor" type="guint"/>
++ <parameter name="required_micro" type="guint"/>
++ </parameters>
++ </function>
++ <callback name="ExoSimpleJobFunc">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="param_values" type="GValueArray*"/>
++ <parameter name="error" type="GError**"/>
++ </parameters>
++ </callback>
++ <struct name="ExoSimpleJobClass">
++ </struct>
++ <object name="ExoJob" parent="GObject" type-name="ExoJob" get-type="exo_job_get_type">
++ <method name="cancel" symbol="exo_job_cancel">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ </parameters>
++ </method>
++ <method name="emit" symbol="exo_job_emit">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="signal_id" type="guint"/>
++ <parameter name="signal_detail" type="GQuark"/>
++ </parameters>
++ </method>
++ <method name="get_cancellable" symbol="exo_job_get_cancellable">
++ <return-type type="GCancellable*"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ </parameters>
++ </method>
++ <method name="info_message" symbol="exo_job_info_message">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="format" type="gchar*"/>
++ </parameters>
++ </method>
++ <method name="is_cancelled" symbol="exo_job_is_cancelled">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ </parameters>
++ </method>
++ <method name="launch" symbol="exo_job_launch">
++ <return-type type="ExoJob*"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ </parameters>
++ </method>
++ <method name="percent" symbol="exo_job_percent">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="percent" type="gdouble"/>
++ </parameters>
++ </method>
++ <method name="send_to_mainloop" symbol="exo_job_send_to_mainloop">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="func" type="GSourceFunc"/>
++ <parameter name="user_data" type="gpointer"/>
++ <parameter name="destroy_notify" type="GDestroyNotify"/>
++ </parameters>
++ </method>
++ <method name="set_error_if_cancelled" symbol="exo_job_set_error_if_cancelled">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="error" type="GError**"/>
++ </parameters>
++ </method>
++ <signal name="error" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="error" type="gpointer"/>
++ </parameters>
++ </signal>
++ <signal name="finished" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ </parameters>
++ </signal>
++ <signal name="info-message" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="message" type="char*"/>
++ </parameters>
++ </signal>
++ <signal name="percent" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="percent" type="gdouble"/>
++ </parameters>
++ </signal>
++ <vfunc name="execute">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="job" type="ExoJob*"/>
++ <parameter name="error" type="GError**"/>
++ </parameters>
++ </vfunc>
++ </object>
++ <object name="ExoSimpleJob" parent="ExoJob" type-name="ExoSimpleJob" get-type="exo_simple_job_get_type">
++ <method name="launch" symbol="exo_simple_job_launch">
++ <return-type type="ExoJob*"/>
++ <parameters>
++ <parameter name="func" type="ExoSimpleJobFunc"/>
++ <parameter name="n_param_values" type="guint"/>
++ </parameters>
++ </method>
++ </object>
++ <constant name="EXO_MAJOR_VERSION" type="int" value="0"/>
++ <constant name="EXO_MICRO_VERSION" type="int" value="7"/>
++ <constant name="EXO_MINOR_VERSION" type="int" value="10"/>
++ <constant name="EXO_PARAM_READABLE" type="int" value="0"/>
++ <constant name="EXO_PARAM_READWRITE" type="int" value="0"/>
++ <constant name="EXO_PARAM_WRITABLE" type="int" value="0"/>
++ </namespace>
++</api>
+diff --git a/packages/exo-2/exo-2.metadata b/packages/exo-2/exo-2.metadata
+new file mode 100644
+index 0000000..f45fcbf
+--- /dev/null
++++ b/packages/exo-2/exo-2.metadata
+@@ -0,0 +1,7 @@
++Exo cheader_filename="exo/exo.h"
++
++exo_*_reserved* hidden="1"
++
++# Rename signal names duplicated with method names
++ExoJob::info_message name="info_message_received"
++ExoJob::percent name="percent_progress"
+diff --git a/packages/exo-2/exo-2.namespace b/packages/exo-2/exo-2.namespace
+new file mode 100644
+index 0000000..808f403
+--- /dev/null
++++ b/packages/exo-2/exo-2.namespace
+@@ -0,0 +1 @@
++Exo
+diff --git a/packages/garcon-1/garcon-1.gi b/packages/garcon-1/garcon-1.gi
+index 1247f33..ddb4537 100644
+--- a/packages/garcon-1/garcon-1.gi
++++ b/packages/garcon-1/garcon-1.gi
+@@ -41,6 +41,12 @@
+ <parameter name="env" type="gchar*"/>
+ </parameters>
+ </function>
++ <function name="set_environment_xdg" symbol="garcon_set_environment_xdg">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="fallback_env" type="gchar*"/>
++ </parameters>
++ </function>
+ <struct name="GarconMenuItemPoolClass">
+ </struct>
+ <struct name="GarconMenuNodeClass">
+@@ -98,12 +104,6 @@
+ <parameter name="submenu" type="GarconMenu*"/>
+ </parameters>
+ </method>
+- <method name="get_directory" symbol="garcon_menu_get_directory">
+- <return-type type="GarconMenuDirectory*"/>
+- <parameters>
+- <parameter name="menu" type="GarconMenu*"/>
+- </parameters>
+- </method>
+ <method name="get_elements" symbol="garcon_menu_get_elements">
+ <return-type type="GList*"/>
+ <parameters>
+@@ -1010,9 +1010,10 @@
+ </parameters>
+ </vfunc>
+ </interface>
++ <constant name="GARCON_ENVIRONMENT_XFCE" type="char*" value="XFCE"/>
+ <constant name="GARCON_MAJOR_VERSION" type="int" value="0"/>
+ <constant name="GARCON_MICRO_VERSION" type="int" value="0"/>
+- <constant name="GARCON_MINOR_VERSION" type="int" value="2"/>
++ <constant name="GARCON_MINOR_VERSION" type="int" value="5"/>
+ <union name="GarconMenuNodeData">
+ </union>
+ </namespace>
+diff --git a/packages/garcon-2/garcon-2.defines b/packages/garcon-2/garcon-2.defines
+new file mode 100644
+index 0000000..5d60363
+--- /dev/null
++++ b/packages/garcon-2/garcon-2.defines
+@@ -0,0 +1 @@
++-DGARCON_COMPILATION
+diff --git a/packages/garcon-2/garcon-2.deps b/packages/garcon-2/garcon-2.deps
+new file mode 100644
+index 0000000..d4db059
+--- /dev/null
++++ b/packages/garcon-2/garcon-2.deps
+@@ -0,0 +1,2 @@
++gobject-2.0
++gio-2.0
+diff --git a/packages/garcon-2/garcon-2.files b/packages/garcon-2/garcon-2.files
+new file mode 100644
+index 0000000..be53c7a
+--- /dev/null
++++ b/packages/garcon-2/garcon-2.files
+@@ -0,0 +1,2 @@
++include/garcon-2/garcon
++lib/libgarcon-2.so
+diff --git a/packages/garcon-2/garcon-2.gi b/packages/garcon-2/garcon-2.gi
+new file mode 100644
+index 0000000..06112f8
+--- /dev/null
++++ b/packages/garcon-2/garcon-2.gi
+@@ -0,0 +1,225 @@
++<?xml version="1.0"?>
++<api version="1.0">
++ <namespace name="Garcon">
++ <function name="marshal_VOID__OBJECT_OBJECT" symbol="garcon_marshal_VOID__OBJECT_OBJECT">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="closure" type="GClosure*"/>
++ <parameter name="return_value" type="GValue*"/>
++ <parameter name="n_param_values" type="guint"/>
++ <parameter name="param_values" type="GValue*"/>
++ <parameter name="invocation_hint" type="gpointer"/>
++ <parameter name="marshal_data" type="gpointer"/>
++ </parameters>
++ </function>
++ <object name="GarconMenu" parent="GObject" type-name="GarconMenu" get-type="garcon_menu_get_type">
++ <implements>
++ <interface name="GarconMenuElement"/>
++ </implements>
++ <method name="add_menu" symbol="garcon_menu_add_menu">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="menu" type="GarconMenu*"/>
++ <parameter name="submenu" type="GarconMenu*"/>
++ </parameters>
++ </method>
++ <method name="get_elements" symbol="garcon_menu_get_elements">
++ <return-type type="GList*"/>
++ <parameters>
++ <parameter name="menu" type="GarconMenu*"/>
++ </parameters>
++ </method>
++ <method name="get_file" symbol="garcon_menu_get_file">
++ <return-type type="GFile*"/>
++ <parameters>
++ <parameter name="menu" type="GarconMenu*"/>
++ </parameters>
++ </method>
++ <method name="get_item_pool" symbol="garcon_menu_get_item_pool">
++ <return-type type="GarconMenuItemPool*"/>
++ <parameters>
++ <parameter name="menu" type="GarconMenu*"/>
++ </parameters>
++ </method>
++ <method name="get_items" symbol="garcon_menu_get_items">
++ <return-type type="GList*"/>
++ <parameters>
++ <parameter name="menu" type="GarconMenu*"/>
++ </parameters>
++ </method>
++ <method name="get_menu_with_name" symbol="garcon_menu_get_menu_with_name">
++ <return-type type="GarconMenu*"/>
++ <parameters>
++ <parameter name="menu" type="GarconMenu*"/>
++ <parameter name="name" type="gchar*"/>
++ </parameters>
++ </method>
++ <method name="get_menus" symbol="garcon_menu_get_menus">
++ <return-type type="GList*"/>
++ <parameters>
++ <parameter name="menu" type="GarconMenu*"/>
++ </parameters>
++ </method>
++ <method name="get_parent" symbol="garcon_menu_get_parent">
++ <return-type type="GarconMenu*"/>
++ <parameters>
++ <parameter name="menu" type="GarconMenu*"/>
++ </parameters>
++ </method>
++ <method name="load" symbol="garcon_menu_load">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="menu" type="GarconMenu*"/>
++ <parameter name="cancellable" type="GCancellable*"/>
++ <parameter name="error" type="GError**"/>
++ </parameters>
++ </method>
++ <constructor name="new" symbol="garcon_menu_new">
++ <return-type type="GarconMenu*"/>
++ <parameters>
++ <parameter name="file" type="GFile*"/>
++ </parameters>
++ </constructor>
++ <constructor name="new_applications" symbol="garcon_menu_new_applications">
++ <return-type type="GarconMenu*"/>
++ </constructor>
++ <constructor name="new_for_path" symbol="garcon_menu_new_for_path">
++ <return-type type="GarconMenu*"/>
++ <parameters>
++ <parameter name="filename" type="gchar*"/>
++ </parameters>
++ </constructor>
++ <property name="directory" type="GarconMenuDirectory*" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="file" type="GFile*" readable="1" writable="1" construct="0" construct-only="1"/>
++ <signal name="directory-changed" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="object" type="GarconMenu*"/>
++ <parameter name="p0" type="GarconMenuDirectory*"/>
++ <parameter name="p1" type="GarconMenuDirectory*"/>
++ </parameters>
++ </signal>
++ <signal name="reload-required" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="object" type="GarconMenu*"/>
++ </parameters>
++ </signal>
++ </object>
++ <object name="GarconMenuParser" parent="GObject" type-name="GarconMenuParser" get-type="garcon_menu_parser_get_type">
++ <implements>
++ <interface name="GarconMenuTreeProvider"/>
++ </implements>
++ <constructor name="new" symbol="garcon_menu_parser_new">
++ <return-type type="GarconMenuParser*"/>
++ <parameters>
++ <parameter name="file" type="GFile*"/>
++ </parameters>
++ </constructor>
++ <method name="run" symbol="garcon_menu_parser_run">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="parser" type="GarconMenuParser*"/>
++ <parameter name="cancellable" type="GCancellable*"/>
++ <parameter name="error" type="GError**"/>
++ </parameters>
++ </method>
++ <property name="file" type="GFile*" readable="1" writable="1" construct="0" construct-only="1"/>
++ </object>
++ <interface name="GarconMenuElement" type-name="GarconMenuElement" get-type="garcon_menu_element_get_type">
++ <requires>
++ <interface name="GObject"/>
++ </requires>
++ <method name="equal" symbol="garcon_menu_element_equal">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="a" type="GarconMenuElement*"/>
++ <parameter name="b" type="GarconMenuElement*"/>
++ </parameters>
++ </method>
++ <method name="get_comment" symbol="garcon_menu_element_get_comment">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </method>
++ <method name="get_icon_name" symbol="garcon_menu_element_get_icon_name">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </method>
++ <method name="get_name" symbol="garcon_menu_element_get_name">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </method>
++ <method name="get_no_display" symbol="garcon_menu_element_get_no_display">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </method>
++ <method name="get_show_in_environment" symbol="garcon_menu_element_get_show_in_environment">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </method>
++ <method name="get_visible" symbol="garcon_menu_element_get_visible">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </method>
++ <vfunc name="equal">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ <parameter name="other" type="GarconMenuElement*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_comment">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_icon_name">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_name">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_no_display">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_show_in_environment">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_visible">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="element" type="GarconMenuElement*"/>
++ </parameters>
++ </vfunc>
++ </interface>
++ <constant name="GARCON_ENVIRONMENT_XFCE" type="char*" value="XFCE"/>
++ <constant name="GARCON_MAJOR_VERSION" type="int" value="0"/>
++ <constant name="GARCON_MICRO_VERSION" type="int" value="0"/>
++ <constant name="GARCON_MINOR_VERSION" type="int" value="5"/>
++ </namespace>
++</api>
+diff --git a/packages/garcon-2/garcon-2.metadata b/packages/garcon-2/garcon-2.metadata
+new file mode 100644
+index 0000000..4158c28
+--- /dev/null
++++ b/packages/garcon-2/garcon-2.metadata
+@@ -0,0 +1,4 @@
++Garcon cheader_filename="garcon/garcon.h"
++garcon_menu_item_requires_terminal hidden="1"
++garcon_menu_item_supports_startup_notification hidden="1"
++garcon_menu_load.cancellable nullable="1"
+diff --git a/packages/garcon-2/garcon-2.namespace b/packages/garcon-2/garcon-2.namespace
+new file mode 100644
+index 0000000..4c193be
+--- /dev/null
++++ b/packages/garcon-2/garcon-2.namespace
+@@ -0,0 +1 @@
++Garcon
+diff --git a/packages/libxfce4panel-1.0/libxfce4panel-1.0.gi b/packages/libxfce4panel-1.0/libxfce4panel-1.0.gi
+index a6f1020..75a3d05 100644
+--- a/packages/libxfce4panel-1.0/libxfce4panel-1.0.gi
++++ b/packages/libxfce4panel-1.0/libxfce4panel-1.0.gi
+@@ -821,7 +821,7 @@
+ </interface>
+ <constant name="LIBXFCE4PANEL_MAJOR_VERSION" type="int" value="4"/>
+ <constant name="LIBXFCE4PANEL_MICRO_VERSION" type="int" value="0"/>
+- <constant name="LIBXFCE4PANEL_MINOR_VERSION" type="int" value="10"/>
+- <constant name="LIBXFCE4PANEL_VERSION" type="char*" value="4.10.0git-e3e5071"/>
++ <constant name="LIBXFCE4PANEL_MINOR_VERSION" type="int" value="12"/>
++ <constant name="LIBXFCE4PANEL_VERSION" type="char*" value="4.12.0git-1f2d853"/>
+ </namespace>
+ </api>
+diff --git a/packages/libxfce4panel-2.0/libxfce4panel-2.0.defines b/packages/libxfce4panel-2.0/libxfce4panel-2.0.defines
+new file mode 100644
+index 0000000..12f281a
+--- /dev/null
++++ b/packages/libxfce4panel-2.0/libxfce4panel-2.0.defines
+@@ -0,0 +1 @@
++-DLIBXFCE4PANEL_COMPILATION
+diff --git a/packages/libxfce4panel-2.0/libxfce4panel-2.0.deps b/packages/libxfce4panel-2.0/libxfce4panel-2.0.deps
+new file mode 100644
+index 0000000..367d44b
+--- /dev/null
++++ b/packages/libxfce4panel-2.0/libxfce4panel-2.0.deps
+@@ -0,0 +1,8 @@
++atk
++gio-2.0
++cairo
++pango
++gdk-pixbuf-2.0
++gdk-3.0
++gtk+-3.0
++libxfce4util-1.0
+diff --git a/packages/libxfce4panel-2.0/libxfce4panel-2.0.excludes b/packages/libxfce4panel-2.0/libxfce4panel-2.0.excludes
+new file mode 100644
+index 0000000..83bd2c9
+--- /dev/null
++++ b/packages/libxfce4panel-2.0/libxfce4panel-2.0.excludes
+@@ -0,0 +1 @@
++include/xfce4/libxfce4panel-2.0/libxfce4panel/xfce-panel-macros-46.h
+diff --git a/packages/libxfce4panel-2.0/libxfce4panel-2.0.files b/packages/libxfce4panel-2.0/libxfce4panel-2.0.files
+new file mode 100644
+index 0000000..127cdc5
+--- /dev/null
++++ b/packages/libxfce4panel-2.0/libxfce4panel-2.0.files
+@@ -0,0 +1,2 @@
++include/xfce4/libxfce4panel-2.0/libxfce4panel
++lib/libxfce4panel-2.0.so
+diff --git a/packages/libxfce4panel-2.0/libxfce4panel-2.0.gi b/packages/libxfce4panel-2.0/libxfce4panel-2.0.gi
+new file mode 100644
+index 0000000..74c2c82
+--- /dev/null
++++ b/packages/libxfce4panel-2.0/libxfce4panel-2.0.gi
+@@ -0,0 +1,799 @@
++<?xml version="1.0"?>
++<api version="1.0">
++ <namespace name="Xfce">
++ <function name="libxfce4panel_check_version" symbol="libxfce4panel_check_version">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="required_major" type="guint"/>
++ <parameter name="required_minor" type="guint"/>
++ <parameter name="required_micro" type="guint"/>
++ </parameters>
++ </function>
++ <function name="panel_create_button" symbol="xfce_panel_create_button">
++ <return-type type="GtkWidget*"/>
++ </function>
++ <function name="panel_create_toggle_button" symbol="xfce_panel_create_toggle_button">
++ <return-type type="GtkWidget*"/>
++ </function>
++ <function name="panel_get_channel_name" symbol="xfce_panel_get_channel_name">
++ <return-type type="gchar*"/>
++ </function>
++ <function name="panel_pixbuf_from_source" symbol="xfce_panel_pixbuf_from_source">
++ <return-type type="GdkPixbuf*"/>
++ <parameters>
++ <parameter name="source" type="gchar*"/>
++ <parameter name="icon_theme" type="GtkIconTheme*"/>
++ <parameter name="size" type="gint"/>
++ </parameters>
++ </function>
++ <function name="panel_pixbuf_from_source_at_size" symbol="xfce_panel_pixbuf_from_source_at_size">
++ <return-type type="GdkPixbuf*"/>
++ <parameters>
++ <parameter name="source" type="gchar*"/>
++ <parameter name="icon_theme" type="GtkIconTheme*"/>
++ <parameter name="dest_width" type="gint"/>
++ <parameter name="dest_height" type="gint"/>
++ </parameters>
++ </function>
++ <callback name="PluginConstructFunc">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="name" type="gchar*"/>
++ <parameter name="unique_id" type="gint"/>
++ <parameter name="display_name" type="gchar*"/>
++ <parameter name="comment" type="gchar*"/>
++ <parameter name="arguments" type="gchar**"/>
++ <parameter name="screen" type="GdkScreen*"/>
++ </parameters>
++ </callback>
++ <callback name="PluginInitFunc">
++ <return-type type="GType"/>
++ <parameters>
++ <parameter name="module" type="GTypeModule*"/>
++ <parameter name="make_resident" type="gboolean*"/>
++ </parameters>
++ </callback>
++ <callback name="XfcePanelPluginCheck">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="screen" type="GdkScreen*"/>
++ </parameters>
++ </callback>
++ <callback name="XfcePanelPluginFunc">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </callback>
++ <callback name="XfcePanelPluginPreInit">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="argc" type="gint"/>
++ <parameter name="argv" type="gchar**"/>
++ </parameters>
++ </callback>
++ <struct name="XfcePanelTypeModule">
++ </struct>
++ <enum name="XfcePanelPluginMode" type-name="XfcePanelPluginMode" get-type="xfce_panel_plugin_mode_get_type">
++ <member name="XFCE_PANEL_PLUGIN_MODE_HORIZONTAL" value="0"/>
++ <member name="XFCE_PANEL_PLUGIN_MODE_VERTICAL" value="1"/>
++ <member name="XFCE_PANEL_PLUGIN_MODE_DESKBAR" value="2"/>
++ </enum>
++ <enum name="XfcePanelPluginProviderPropType">
++ <member name="PROVIDER_PROP_TYPE_SET_SIZE" value="0"/>
++ <member name="PROVIDER_PROP_TYPE_SET_MODE" value="1"/>
++ <member name="PROVIDER_PROP_TYPE_SET_SCREEN_POSITION" value="2"/>
++ <member name="PROVIDER_PROP_TYPE_SET_BACKGROUND_ALPHA" value="3"/>
++ <member name="PROVIDER_PROP_TYPE_SET_NROWS" value="4"/>
++ <member name="PROVIDER_PROP_TYPE_SET_LOCKED" value="5"/>
++ <member name="PROVIDER_PROP_TYPE_SET_SENSITIVE" value="6"/>
++ <member name="PROVIDER_PROP_TYPE_SET_BACKGROUND_COLOR" value="7"/>
++ <member name="PROVIDER_PROP_TYPE_SET_BACKGROUND_IMAGE" value="8"/>
++ <member name="PROVIDER_PROP_TYPE_ACTION_REMOVED" value="9"/>
++ <member name="PROVIDER_PROP_TYPE_ACTION_SAVE" value="10"/>
++ <member name="PROVIDER_PROP_TYPE_ACTION_QUIT" value="11"/>
++ <member name="PROVIDER_PROP_TYPE_ACTION_QUIT_FOR_RESTART" value="12"/>
++ <member name="PROVIDER_PROP_TYPE_ACTION_BACKGROUND_UNSET" value="13"/>
++ <member name="PROVIDER_PROP_TYPE_ACTION_SHOW_CONFIGURE" value="14"/>
++ <member name="PROVIDER_PROP_TYPE_ACTION_SHOW_ABOUT" value="15"/>
++ <member name="PROVIDER_PROP_TYPE_ACTION_ASK_REMOVE" value="16"/>
++ </enum>
++ <enum name="XfcePanelPluginProviderSignal">
++ <member name="PROVIDER_SIGNAL_MOVE_PLUGIN" value="0"/>
++ <member name="PROVIDER_SIGNAL_EXPAND_PLUGIN" value="1"/>
++ <member name="PROVIDER_SIGNAL_COLLAPSE_PLUGIN" value="2"/>
++ <member name="PROVIDER_SIGNAL_SMALL_PLUGIN" value="3"/>
++ <member name="PROVIDER_SIGNAL_UNSMALL_PLUGIN" value="4"/>
++ <member name="PROVIDER_SIGNAL_LOCK_PANEL" value="5"/>
++ <member name="PROVIDER_SIGNAL_UNLOCK_PANEL" value="6"/>
++ <member name="PROVIDER_SIGNAL_REMOVE_PLUGIN" value="7"/>
++ <member name="PROVIDER_SIGNAL_ADD_NEW_ITEMS" value="8"/>
++ <member name="PROVIDER_SIGNAL_PANEL_PREFERENCES" value="9"/>
++ <member name="PROVIDER_SIGNAL_PANEL_LOGOUT" value="10"/>
++ <member name="PROVIDER_SIGNAL_PANEL_ABOUT" value="11"/>
++ <member name="PROVIDER_SIGNAL_PANEL_HELP" value="12"/>
++ <member name="PROVIDER_SIGNAL_SHOW_CONFIGURE" value="13"/>
++ <member name="PROVIDER_SIGNAL_SHOW_ABOUT" value="14"/>
++ <member name="PROVIDER_SIGNAL_FOCUS_PLUGIN" value="15"/>
++ <member name="PROVIDER_SIGNAL_SHRINK_PLUGIN" value="16"/>
++ <member name="PROVIDER_SIGNAL_UNSHRINK_PLUGIN" value="17"/>
++ </enum>
++ <enum name="XfceScreenPosition" type-name="XfceScreenPosition" get-type="xfce_screen_position_get_type">
++ <member name="XFCE_SCREEN_POSITION_NONE" value="0"/>
++ <member name="XFCE_SCREEN_POSITION_NW_H" value="1"/>
++ <member name="XFCE_SCREEN_POSITION_N" value="2"/>
++ <member name="XFCE_SCREEN_POSITION_NE_H" value="3"/>
++ <member name="XFCE_SCREEN_POSITION_NW_V" value="4"/>
++ <member name="XFCE_SCREEN_POSITION_W" value="5"/>
++ <member name="XFCE_SCREEN_POSITION_SW_V" value="6"/>
++ <member name="XFCE_SCREEN_POSITION_NE_V" value="7"/>
++ <member name="XFCE_SCREEN_POSITION_E" value="8"/>
++ <member name="XFCE_SCREEN_POSITION_SE_V" value="9"/>
++ <member name="XFCE_SCREEN_POSITION_SW_H" value="10"/>
++ <member name="XFCE_SCREEN_POSITION_S" value="11"/>
++ <member name="XFCE_SCREEN_POSITION_SE_H" value="12"/>
++ <member name="XFCE_SCREEN_POSITION_FLOATING_H" value="13"/>
++ <member name="XFCE_SCREEN_POSITION_FLOATING_V" value="14"/>
++ </enum>
++ <object name="XfceArrowButton" parent="GtkToggleButton" type-name="XfceArrowButton" get-type="xfce_arrow_button_get_type">
++ <implements>
++ <interface name="AtkImplementor"/>
++ <interface name="GtkBuildable"/>
++ <interface name="GtkActionable"/>
++ <interface name="GtkActivatable"/>
++ </implements>
++ <method name="get_arrow_type" symbol="xfce_arrow_button_get_arrow_type">
++ <return-type type="GtkArrowType"/>
++ <parameters>
++ <parameter name="button" type="XfceArrowButton*"/>
++ </parameters>
++ </method>
++ <method name="get_blinking" symbol="xfce_arrow_button_get_blinking">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="button" type="XfceArrowButton*"/>
++ </parameters>
++ </method>
++ <constructor name="new" symbol="xfce_arrow_button_new">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="arrow_type" type="GtkArrowType"/>
++ </parameters>
++ </constructor>
++ <method name="set_arrow_type" symbol="xfce_arrow_button_set_arrow_type">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="button" type="XfceArrowButton*"/>
++ <parameter name="arrow_type" type="GtkArrowType"/>
++ </parameters>
++ </method>
++ <method name="set_blinking" symbol="xfce_arrow_button_set_blinking">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="button" type="XfceArrowButton*"/>
++ <parameter name="blinking" type="gboolean"/>
++ </parameters>
++ </method>
++ <property name="arrow-type" type="GtkArrowType" readable="1" writable="1" construct="0" construct-only="0"/>
++ <signal name="arrow-type-changed" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="button" type="XfceArrowButton*"/>
++ <parameter name="type" type="GtkArrowType"/>
++ </parameters>
++ </signal>
++ </object>
++ <object name="XfcePanelImage" parent="GtkWidget" type-name="XfcePanelImage" get-type="xfce_panel_image_get_type">
++ <implements>
++ <interface name="AtkImplementor"/>
++ <interface name="GtkBuildable"/>
++ </implements>
++ <method name="clear" symbol="xfce_panel_image_clear">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="image" type="XfcePanelImage*"/>
++ </parameters>
++ </method>
++ <method name="get_size" symbol="xfce_panel_image_get_size">
++ <return-type type="gint"/>
++ <parameters>
++ <parameter name="image" type="XfcePanelImage*"/>
++ </parameters>
++ </method>
++ <constructor name="new" symbol="xfce_panel_image_new">
++ <return-type type="GtkWidget*"/>
++ </constructor>
++ <constructor name="new_from_pixbuf" symbol="xfce_panel_image_new_from_pixbuf">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="pixbuf" type="GdkPixbuf*"/>
++ </parameters>
++ </constructor>
++ <constructor name="new_from_source" symbol="xfce_panel_image_new_from_source">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="source" type="gchar*"/>
++ </parameters>
++ </constructor>
++ <method name="set_from_pixbuf" symbol="xfce_panel_image_set_from_pixbuf">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="image" type="XfcePanelImage*"/>
++ <parameter name="pixbuf" type="GdkPixbuf*"/>
++ </parameters>
++ </method>
++ <method name="set_from_source" symbol="xfce_panel_image_set_from_source">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="image" type="XfcePanelImage*"/>
++ <parameter name="source" type="gchar*"/>
++ </parameters>
++ </method>
++ <method name="set_size" symbol="xfce_panel_image_set_size">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="image" type="XfcePanelImage*"/>
++ <parameter name="size" type="gint"/>
++ </parameters>
++ </method>
++ <property name="pixbuf" type="GdkPixbuf*" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="size" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="source" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
++ <vfunc name="reserved1">
++ <return-type type="void"/>
++ </vfunc>
++ <vfunc name="reserved2">
++ <return-type type="void"/>
++ </vfunc>
++ <vfunc name="reserved3">
++ <return-type type="void"/>
++ </vfunc>
++ <vfunc name="reserved4">
++ <return-type type="void"/>
++ </vfunc>
++ </object>
++ <object name="XfcePanelPlugin" parent="GtkEventBox" type-name="XfcePanelPlugin" get-type="xfce_panel_plugin_get_type">
++ <implements>
++ <interface name="AtkImplementor"/>
++ <interface name="GtkBuildable"/>
++ <interface name="XfcePanelPluginProvider"/>
++ </implements>
++ <method name="add_action_widget" symbol="xfce_panel_plugin_add_action_widget">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="widget" type="GtkWidget*"/>
++ </parameters>
++ </method>
++ <method name="arrow_type" symbol="xfce_panel_plugin_arrow_type">
++ <return-type type="GtkArrowType"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="block_autohide" symbol="xfce_panel_plugin_block_autohide">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="blocked" type="gboolean"/>
++ </parameters>
++ </method>
++ <method name="block_menu" symbol="xfce_panel_plugin_block_menu">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="focus_widget" symbol="xfce_panel_plugin_focus_widget">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="widget" type="GtkWidget*"/>
++ </parameters>
++ </method>
++ <method name="get_arguments" symbol="xfce_panel_plugin_get_arguments">
++ <return-type type="gchar**"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_comment" symbol="xfce_panel_plugin_get_comment">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_display_name" symbol="xfce_panel_plugin_get_display_name">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_expand" symbol="xfce_panel_plugin_get_expand">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_locked" symbol="xfce_panel_plugin_get_locked">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_mode" symbol="xfce_panel_plugin_get_mode">
++ <return-type type="XfcePanelPluginMode"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_name" symbol="xfce_panel_plugin_get_name">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_nrows" symbol="xfce_panel_plugin_get_nrows">
++ <return-type type="guint"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_orientation" symbol="xfce_panel_plugin_get_orientation">
++ <return-type type="GtkOrientation"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_property_base" symbol="xfce_panel_plugin_get_property_base">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_screen_position" symbol="xfce_panel_plugin_get_screen_position">
++ <return-type type="XfceScreenPosition"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_shrink" symbol="xfce_panel_plugin_get_shrink">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_size" symbol="xfce_panel_plugin_get_size">
++ <return-type type="gint"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_small" symbol="xfce_panel_plugin_get_small">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="get_unique_id" symbol="xfce_panel_plugin_get_unique_id">
++ <return-type type="gint"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="lookup_rc_file" symbol="xfce_panel_plugin_lookup_rc_file">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="menu_insert_item" symbol="xfce_panel_plugin_menu_insert_item">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="item" type="GtkMenuItem*"/>
++ </parameters>
++ </method>
++ <method name="menu_show_about" symbol="xfce_panel_plugin_menu_show_about">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="menu_show_configure" symbol="xfce_panel_plugin_menu_show_configure">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="position_menu" symbol="xfce_panel_plugin_position_menu">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="menu" type="GtkMenu*"/>
++ <parameter name="x" type="gint*"/>
++ <parameter name="y" type="gint*"/>
++ <parameter name="push_in" type="gboolean*"/>
++ <parameter name="panel_plugin" type="gpointer"/>
++ </parameters>
++ </method>
++ <method name="position_widget" symbol="xfce_panel_plugin_position_widget">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="menu_widget" type="GtkWidget*"/>
++ <parameter name="attach_widget" type="GtkWidget*"/>
++ <parameter name="x" type="gint*"/>
++ <parameter name="y" type="gint*"/>
++ </parameters>
++ </method>
++ <method name="register_menu" symbol="xfce_panel_plugin_register_menu">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="menu" type="GtkMenu*"/>
++ </parameters>
++ </method>
++ <method name="remove" symbol="xfce_panel_plugin_remove">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <method name="save_location" symbol="xfce_panel_plugin_save_location">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="create" type="gboolean"/>
++ </parameters>
++ </method>
++ <method name="set_expand" symbol="xfce_panel_plugin_set_expand">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="expand" type="gboolean"/>
++ </parameters>
++ </method>
++ <method name="set_shrink" symbol="xfce_panel_plugin_set_shrink">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="shrink" type="gboolean"/>
++ </parameters>
++ </method>
++ <method name="set_small" symbol="xfce_panel_plugin_set_small">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="small" type="gboolean"/>
++ </parameters>
++ </method>
++ <method name="take_window" symbol="xfce_panel_plugin_take_window">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="window" type="GtkWindow*"/>
++ </parameters>
++ </method>
++ <method name="unblock_menu" symbol="xfce_panel_plugin_unblock_menu">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </method>
++ <property name="arguments" type="GStrv*" readable="1" writable="1" construct="0" construct-only="1"/>
++ <property name="comment" type="char*" readable="1" writable="1" construct="0" construct-only="1"/>
++ <property name="display-name" type="char*" readable="1" writable="1" construct="0" construct-only="1"/>
++ <property name="expand" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="mode" type="XfcePanelPluginMode" readable="1" writable="0" construct="0" construct-only="0"/>
++ <property name="name" type="char*" readable="1" writable="1" construct="0" construct-only="1"/>
++ <property name="nrows" type="guint" readable="1" writable="0" construct="0" construct-only="0"/>
++ <property name="orientation" type="GtkOrientation" readable="1" writable="0" construct="0" construct-only="0"/>
++ <property name="screen-position" type="XfceScreenPosition" readable="1" writable="0" construct="0" construct-only="0"/>
++ <property name="shrink" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="size" type="gint" readable="1" writable="0" construct="0" construct-only="0"/>
++ <property name="small" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="unique-id" type="gint" readable="1" writable="1" construct="0" construct-only="1"/>
++ <signal name="about" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </signal>
++ <signal name="configure-plugin" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </signal>
++ <signal name="free-data" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </signal>
++ <signal name="mode-changed" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="mode" type="XfcePanelPluginMode"/>
++ </parameters>
++ </signal>
++ <signal name="nrows-changed" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="rows" type="guint"/>
++ </parameters>
++ </signal>
++ <signal name="orientation-changed" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="orientation" type="GtkOrientation"/>
++ </parameters>
++ </signal>
++ <signal name="remote-event" when="LAST">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="name" type="char*"/>
++ <parameter name="value" type="GValue*"/>
++ </parameters>
++ </signal>
++ <signal name="removed" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </signal>
++ <signal name="save" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </signal>
++ <signal name="screen-position-changed" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="position" type="XfceScreenPosition"/>
++ </parameters>
++ </signal>
++ <signal name="size-changed" when="LAST">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ <parameter name="size" type="gint"/>
++ </parameters>
++ </signal>
++ <vfunc name="construct">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="plugin" type="XfcePanelPlugin*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="reserved1">
++ <return-type type="void"/>
++ </vfunc>
++ <vfunc name="reserved2">
++ <return-type type="void"/>
++ </vfunc>
++ </object>
++ <interface name="XfcePanelPluginProvider" type-name="XfcePanelPluginProvider" get-type="xfce_panel_plugin_provider_get_type">
++ <method name="ask_remove" symbol="xfce_panel_plugin_provider_ask_remove">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </method>
++ <method name="emit_signal" symbol="xfce_panel_plugin_provider_emit_signal">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="provider_signal" type="XfcePanelPluginProviderSignal"/>
++ </parameters>
++ </method>
++ <method name="get_name" symbol="xfce_panel_plugin_provider_get_name">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </method>
++ <method name="get_show_about" symbol="xfce_panel_plugin_provider_get_show_about">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </method>
++ <method name="get_show_configure" symbol="xfce_panel_plugin_provider_get_show_configure">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </method>
++ <method name="get_unique_id" symbol="xfce_panel_plugin_provider_get_unique_id">
++ <return-type type="gint"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </method>
++ <method name="remote_event" symbol="xfce_panel_plugin_provider_remote_event">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="name" type="gchar*"/>
++ <parameter name="value" type="GValue*"/>
++ <parameter name="handle" type="guint*"/>
++ </parameters>
++ </method>
++ <method name="removed" symbol="xfce_panel_plugin_provider_removed">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </method>
++ <method name="save" symbol="xfce_panel_plugin_provider_save">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </method>
++ <method name="set_locked" symbol="xfce_panel_plugin_provider_set_locked">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="locked" type="gboolean"/>
++ </parameters>
++ </method>
++ <method name="set_mode" symbol="xfce_panel_plugin_provider_set_mode">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="mode" type="XfcePanelPluginMode"/>
++ </parameters>
++ </method>
++ <method name="set_nrows" symbol="xfce_panel_plugin_provider_set_nrows">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="rows" type="guint"/>
++ </parameters>
++ </method>
++ <method name="set_screen_position" symbol="xfce_panel_plugin_provider_set_screen_position">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="screen_position" type="XfceScreenPosition"/>
++ </parameters>
++ </method>
++ <method name="set_size" symbol="xfce_panel_plugin_provider_set_size">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="size" type="gint"/>
++ </parameters>
++ </method>
++ <method name="show_about" symbol="xfce_panel_plugin_provider_show_about">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </method>
++ <method name="show_configure" symbol="xfce_panel_plugin_provider_show_configure">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </method>
++ <signal name="provider-signal" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="object" type="XfcePanelPluginProvider*"/>
++ <parameter name="p0" type="guint"/>
++ </parameters>
++ </signal>
++ <vfunc name="ask_remove">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_name">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_show_about">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_show_configure">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="get_unique_id">
++ <return-type type="gint"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="remote_event">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="name" type="gchar*"/>
++ <parameter name="value" type="GValue*"/>
++ <parameter name="handle" type="guint*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="removed">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="save">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="set_locked">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="locked" type="gboolean"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="set_mode">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="mode" type="XfcePanelPluginMode"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="set_nrows">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="rows" type="guint"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="set_screen_position">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="screen_position" type="XfceScreenPosition"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="set_size">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ <parameter name="size" type="gint"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="show_about">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </vfunc>
++ <vfunc name="show_configure">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="provider" type="XfcePanelPluginProvider*"/>
++ </parameters>
++ </vfunc>
++ </interface>
++ <constant name="LIBXFCE4PANEL_MAJOR_VERSION" type="int" value="4"/>
++ <constant name="LIBXFCE4PANEL_MICRO_VERSION" type="int" value="0"/>
++ <constant name="LIBXFCE4PANEL_MINOR_VERSION" type="int" value="12"/>
++ <constant name="LIBXFCE4PANEL_VERSION" type="char*" value="4.12.0git-1f2d853"/>
++ </namespace>
++</api>
+diff --git a/packages/libxfce4panel-2.0/libxfce4panel-2.0.metadata b/packages/libxfce4panel-2.0/libxfce4panel-2.0.metadata
+new file mode 100644
+index 0000000..857be91
+--- /dev/null
++++ b/packages/libxfce4panel-2.0/libxfce4panel-2.0.metadata
+@@ -0,0 +1,2 @@
++Xfce cheader_filename="libxfce4panel/libxfce4panel.h"
++*reserved* hidden="1"
+diff --git a/packages/libxfce4panel-2.0/libxfce4panel-2.0.namespace b/packages/libxfce4panel-2.0/libxfce4panel-2.0.namespace
+new file mode 100644
+index 0000000..296456d
+--- /dev/null
++++ b/packages/libxfce4panel-2.0/libxfce4panel-2.0.namespace
+@@ -0,0 +1 @@
++Xfce
+diff --git a/packages/libxfce4ui-1/libxfce4ui-1.gi b/packages/libxfce4ui-1/libxfce4ui-1.gi
+index d1e888c..a7345d0 100644
+--- a/packages/libxfce4ui-1/libxfce4ui-1.gi
++++ b/packages/libxfce4ui-1/libxfce4ui-1.gi
+@@ -28,6 +28,16 @@
+ <parameter name="offset" type="gchar*"/>
+ </parameters>
+ </function>
++ <function name="dialog_show_help_with_version" symbol="xfce_dialog_show_help_with_version">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="application" type="gchar*"/>
++ <parameter name="page" type="gchar*"/>
++ <parameter name="offset" type="gchar*"/>
++ <parameter name="version" type="gchar*"/>
++ </parameters>
++ </function>
+ <function name="dialog_show_info" symbol="xfce_dialog_show_info">
+ <return-type type="void"/>
+ <parameters>
+@@ -176,6 +186,10 @@
+ <member name="XFCE_SM_CLIENT_SHUTDOWN_HINT_HALT" value="2"/>
+ <member name="XFCE_SM_CLIENT_SHUTDOWN_HINT_REBOOT" value="3"/>
+ </enum>
++ <enum name="XfceSmCLientErrorEnum" type-name="XfceSmCLientErrorEnum" get-type="xfce_sm_client_error_enum_get_type">
++ <member name="XFCE_SM_CLIENT_ERROR_FAILED" value="0"/>
++ <member name="XFCE_SM_CLIENT_ERROR_INVALID_CLIENT" value="1"/>
++ </enum>
+ <object name="XfceSMClient" parent="GObject" type-name="XfceSMClient" get-type="xfce_sm_client_get_type">
+ <method name="connect" symbol="xfce_sm_client_connect">
+ <return-type type="gboolean"/>
+@@ -190,6 +204,9 @@
+ <parameter name="sm_client" type="XfceSMClient*"/>
+ </parameters>
+ </method>
++ <method name="error_quark" symbol="xfce_sm_client_error_quark">
++ <return-type type="GQuark"/>
++ </method>
+ <method name="get" symbol="xfce_sm_client_get">
+ <return-type type="XfceSMClient*"/>
+ </method>
+@@ -402,7 +419,7 @@
+ </object>
+ <constant name="LIBXFCE4UI_MAJOR_VERSION" type="int" value="4"/>
+ <constant name="LIBXFCE4UI_MICRO_VERSION" type="int" value="0"/>
+- <constant name="LIBXFCE4UI_MINOR_VERSION" type="int" value="10"/>
++ <constant name="LIBXFCE4UI_MINOR_VERSION" type="int" value="13"/>
+ <constant name="XFCE_BUTTON_TYPE_MIXED" type="char*" value="button-mixed"/>
+ <constant name="XFCE_BUTTON_TYPE_PIXBUF" type="char*" value="button-pixbuf"/>
+ </namespace>
+diff --git a/packages/libxfce4ui-2/libxfce4ui-2.defines b/packages/libxfce4ui-2/libxfce4ui-2.defines
+new file mode 100644
+index 0000000..c2e1547
+--- /dev/null
++++ b/packages/libxfce4ui-2/libxfce4ui-2.defines
+@@ -0,0 +1 @@
++-DLIBXFCE4UI_COMPILATION
+diff --git a/packages/libxfce4ui-2/libxfce4ui-2.deps b/packages/libxfce4ui-2/libxfce4ui-2.deps
+new file mode 100644
+index 0000000..4264788
+--- /dev/null
++++ b/packages/libxfce4ui-2/libxfce4ui-2.deps
+@@ -0,0 +1,8 @@
++libxfce4util-1.0
++atk
++gio-2.0
++cairo
++pango
++gdk-pixbuf-2.0
++gdk-3.0
++gtk+-3.0
+diff --git a/packages/libxfce4ui-2/libxfce4ui-2.excludes b/packages/libxfce4ui-2/libxfce4ui-2.excludes
+new file mode 100644
+index 0000000..e69de29
+diff --git a/packages/libxfce4ui-2/libxfce4ui-2.files b/packages/libxfce4ui-2/libxfce4ui-2.files
+new file mode 100644
+index 0000000..6a2de47
+--- /dev/null
++++ b/packages/libxfce4ui-2/libxfce4ui-2.files
+@@ -0,0 +1,2 @@
++include/xfce4/libxfce4ui-2/libxfce4ui
++lib/libxfce4ui-2.so
+diff --git a/packages/libxfce4ui-2/libxfce4ui-2.gi b/packages/libxfce4ui-2/libxfce4ui-2.gi
+new file mode 100644
+index 0000000..a7345d0
+--- /dev/null
++++ b/packages/libxfce4ui-2/libxfce4ui-2.gi
+@@ -0,0 +1,426 @@
++<?xml version="1.0"?>
++<api version="1.0">
++ <namespace name="Xfce">
++ <function name="dialog_confirm" symbol="xfce_dialog_confirm">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="stock_id" type="gchar*"/>
++ <parameter name="confirm_label" type="gchar*"/>
++ <parameter name="secondary_text" type="gchar*"/>
++ <parameter name="primary_format" type="gchar*"/>
++ </parameters>
++ </function>
++ <function name="dialog_show_error" symbol="xfce_dialog_show_error">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="error" type="GError*"/>
++ <parameter name="primary_format" type="gchar*"/>
++ </parameters>
++ </function>
++ <function name="dialog_show_help" symbol="xfce_dialog_show_help">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="application" type="gchar*"/>
++ <parameter name="page" type="gchar*"/>
++ <parameter name="offset" type="gchar*"/>
++ </parameters>
++ </function>
++ <function name="dialog_show_help_with_version" symbol="xfce_dialog_show_help_with_version">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="application" type="gchar*"/>
++ <parameter name="page" type="gchar*"/>
++ <parameter name="offset" type="gchar*"/>
++ <parameter name="version" type="gchar*"/>
++ </parameters>
++ </function>
++ <function name="dialog_show_info" symbol="xfce_dialog_show_info">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="secondary_text" type="gchar*"/>
++ <parameter name="primary_format" type="gchar*"/>
++ </parameters>
++ </function>
++ <function name="dialog_show_warning" symbol="xfce_dialog_show_warning">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="secondary_text" type="gchar*"/>
++ <parameter name="primary_format" type="gchar*"/>
++ </parameters>
++ </function>
++ <function name="gdk_screen_get_active" symbol="xfce_gdk_screen_get_active">
++ <return-type type="GdkScreen*"/>
++ <parameters>
++ <parameter name="monitor_return" type="gint*"/>
++ </parameters>
++ </function>
++ <function name="gtk_button_new_mixed" symbol="xfce_gtk_button_new_mixed">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="stock_id" type="gchar*"/>
++ <parameter name="label" type="gchar*"/>
++ </parameters>
++ </function>
++ <function name="gtk_frame_box_new" symbol="xfce_gtk_frame_box_new">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="label" type="gchar*"/>
++ <parameter name="container_return" type="GtkWidget**"/>
++ </parameters>
++ </function>
++ <function name="gtk_frame_box_new_with_content" symbol="xfce_gtk_frame_box_new_with_content">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="label" type="gchar*"/>
++ <parameter name="content" type="GtkWidget*"/>
++ </parameters>
++ </function>
++ <function name="gtk_window_center_on_active_screen" symbol="xfce_gtk_window_center_on_active_screen">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="window" type="GtkWindow*"/>
++ </parameters>
++ </function>
++ <function name="libxfce4ui_check_version" symbol="libxfce4ui_check_version">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="required_major" type="guint"/>
++ <parameter name="required_minor" type="guint"/>
++ <parameter name="required_micro" type="guint"/>
++ </parameters>
++ </function>
++ <function name="message_dialog" symbol="xfce_message_dialog">
++ <return-type type="gint"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="title" type="gchar*"/>
++ <parameter name="stock_id" type="gchar*"/>
++ <parameter name="primary_text" type="gchar*"/>
++ <parameter name="secondary_text" type="gchar*"/>
++ <parameter name="first_button_text" type="gchar*"/>
++ </parameters>
++ </function>
++ <function name="message_dialog_new" symbol="xfce_message_dialog_new">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="title" type="gchar*"/>
++ <parameter name="stock_id" type="gchar*"/>
++ <parameter name="primary_text" type="gchar*"/>
++ <parameter name="secondary_text" type="gchar*"/>
++ <parameter name="first_button_text" type="gchar*"/>
++ </parameters>
++ </function>
++ <function name="message_dialog_new_valist" symbol="xfce_message_dialog_new_valist">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="title" type="gchar*"/>
++ <parameter name="icon_stock_id" type="gchar*"/>
++ <parameter name="primary_text" type="gchar*"/>
++ <parameter name="secondary_text" type="gchar*"/>
++ <parameter name="first_button_text" type="gchar*"/>
++ <parameter name="args" type="va_list"/>
++ </parameters>
++ </function>
++ <function name="spawn_command_line_on_screen" symbol="xfce_spawn_command_line_on_screen">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="screen" type="GdkScreen*"/>
++ <parameter name="command_line" type="gchar*"/>
++ <parameter name="in_terminal" type="gboolean"/>
++ <parameter name="startup_notify" type="gboolean"/>
++ <parameter name="error" type="GError**"/>
++ </parameters>
++ </function>
++ <function name="spawn_on_screen" symbol="xfce_spawn_on_screen">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="screen" type="GdkScreen*"/>
++ <parameter name="working_directory" type="gchar*"/>
++ <parameter name="argv" type="gchar**"/>
++ <parameter name="envp" type="gchar**"/>
++ <parameter name="flags" type="GSpawnFlags"/>
++ <parameter name="startup_notify" type="gboolean"/>
++ <parameter name="startup_timestamp" type="guint32"/>
++ <parameter name="startup_icon_name" type="gchar*"/>
++ <parameter name="error" type="GError**"/>
++ </parameters>
++ </function>
++ <function name="spawn_on_screen_with_child_watch" symbol="xfce_spawn_on_screen_with_child_watch">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="screen" type="GdkScreen*"/>
++ <parameter name="working_directory" type="gchar*"/>
++ <parameter name="argv" type="gchar**"/>
++ <parameter name="envp" type="gchar**"/>
++ <parameter name="flags" type="GSpawnFlags"/>
++ <parameter name="startup_notify" type="gboolean"/>
++ <parameter name="startup_timestamp" type="guint32"/>
++ <parameter name="startup_icon_name" type="gchar*"/>
++ <parameter name="child_watch_closure" type="GClosure*"/>
++ <parameter name="error" type="GError**"/>
++ </parameters>
++ </function>
++ <enum name="XfceSMClientPriority">
++ <member name="XFCE_SM_CLIENT_PRIORITY_HIGHEST" value="0"/>
++ <member name="XFCE_SM_CLIENT_PRIORITY_WM" value="15"/>
++ <member name="XFCE_SM_CLIENT_PRIORITY_CORE" value="25"/>
++ <member name="XFCE_SM_CLIENT_PRIORITY_DESKTOP" value="35"/>
++ <member name="XFCE_SM_CLIENT_PRIORITY_DEFAULT" value="50"/>
++ <member name="XFCE_SM_CLIENT_PRIORITY_LOWEST" value="255"/>
++ </enum>
++ <enum name="XfceSMClientRestartStyle" type-name="XfceSMClientRestartStyle" get-type="xfce_sm_client_restart_style_get_type">
++ <member name="XFCE_SM_CLIENT_RESTART_NORMAL" value="0"/>
++ <member name="XFCE_SM_CLIENT_RESTART_IMMEDIATELY" value="1"/>
++ </enum>
++ <enum name="XfceSMClientShutdownHint" type-name="XfceSMClientShutdownHint" get-type="xfce_sm_client_shutdown_hint_get_type">
++ <member name="XFCE_SM_CLIENT_SHUTDOWN_HINT_ASK" value="0"/>
++ <member name="XFCE_SM_CLIENT_SHUTDOWN_HINT_LOGOUT" value="1"/>
++ <member name="XFCE_SM_CLIENT_SHUTDOWN_HINT_HALT" value="2"/>
++ <member name="XFCE_SM_CLIENT_SHUTDOWN_HINT_REBOOT" value="3"/>
++ </enum>
++ <enum name="XfceSmCLientErrorEnum" type-name="XfceSmCLientErrorEnum" get-type="xfce_sm_client_error_enum_get_type">
++ <member name="XFCE_SM_CLIENT_ERROR_FAILED" value="0"/>
++ <member name="XFCE_SM_CLIENT_ERROR_INVALID_CLIENT" value="1"/>
++ </enum>
++ <object name="XfceSMClient" parent="GObject" type-name="XfceSMClient" get-type="xfce_sm_client_get_type">
++ <method name="connect" symbol="xfce_sm_client_connect">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ <parameter name="error" type="GError**"/>
++ </parameters>
++ </method>
++ <method name="disconnect" symbol="xfce_sm_client_disconnect">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ </parameters>
++ </method>
++ <method name="error_quark" symbol="xfce_sm_client_error_quark">
++ <return-type type="GQuark"/>
++ </method>
++ <method name="get" symbol="xfce_sm_client_get">
++ <return-type type="XfceSMClient*"/>
++ </method>
++ <method name="get_client_id" symbol="xfce_sm_client_get_client_id">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ </parameters>
++ </method>
++ <method name="get_current_directory" symbol="xfce_sm_client_get_current_directory">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ </parameters>
++ </method>
++ <method name="get_full" symbol="xfce_sm_client_get_full">
++ <return-type type="XfceSMClient*"/>
++ <parameters>
++ <parameter name="restart_style" type="XfceSMClientRestartStyle"/>
++ <parameter name="priority" type="guchar"/>
++ <parameter name="resumed_client_id" type="gchar*"/>
++ <parameter name="current_directory" type="gchar*"/>
++ <parameter name="restart_command" type="gchar**"/>
++ <parameter name="desktop_file" type="gchar*"/>
++ </parameters>
++ </method>
++ <method name="get_option_group" symbol="xfce_sm_client_get_option_group">
++ <return-type type="GOptionGroup*"/>
++ <parameters>
++ <parameter name="argc" type="gint"/>
++ <parameter name="argv" type="gchar**"/>
++ </parameters>
++ </method>
++ <method name="get_priority" symbol="xfce_sm_client_get_priority">
++ <return-type type="guint8"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ </parameters>
++ </method>
++ <method name="get_restart_command" symbol="xfce_sm_client_get_restart_command">
++ <return-type type="gchar**"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ </parameters>
++ </method>
++ <method name="get_restart_style" symbol="xfce_sm_client_get_restart_style">
++ <return-type type="XfceSMClientRestartStyle"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ </parameters>
++ </method>
++ <method name="get_state_file" symbol="xfce_sm_client_get_state_file">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ </parameters>
++ </method>
++ <method name="get_with_argv" symbol="xfce_sm_client_get_with_argv">
++ <return-type type="XfceSMClient*"/>
++ <parameters>
++ <parameter name="argc" type="gint"/>
++ <parameter name="argv" type="gchar**"/>
++ <parameter name="restart_style" type="XfceSMClientRestartStyle"/>
++ <parameter name="priority" type="guchar"/>
++ </parameters>
++ </method>
++ <method name="is_connected" symbol="xfce_sm_client_is_connected">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ </parameters>
++ </method>
++ <method name="is_resumed" symbol="xfce_sm_client_is_resumed">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ </parameters>
++ </method>
++ <method name="request_shutdown" symbol="xfce_sm_client_request_shutdown">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ <parameter name="shutdown_hint" type="XfceSMClientShutdownHint"/>
++ </parameters>
++ </method>
++ <method name="set_current_directory" symbol="xfce_sm_client_set_current_directory">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ <parameter name="current_directory" type="gchar*"/>
++ </parameters>
++ </method>
++ <method name="set_desktop_file" symbol="xfce_sm_client_set_desktop_file">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ <parameter name="desktop_file" type="gchar*"/>
++ </parameters>
++ </method>
++ <method name="set_priority" symbol="xfce_sm_client_set_priority">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ <parameter name="priority" type="guint8"/>
++ </parameters>
++ </method>
++ <method name="set_restart_command" symbol="xfce_sm_client_set_restart_command">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ <parameter name="restart_command" type="gchar**"/>
++ </parameters>
++ </method>
++ <method name="set_restart_style" symbol="xfce_sm_client_set_restart_style">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="sm_client" type="XfceSMClient*"/>
++ <parameter name="restart_style" type="XfceSMClientRestartStyle"/>
++ </parameters>
++ </method>
++ <property name="argc" type="gint" readable="0" writable="1" construct="0" construct-only="1"/>
++ <property name="argv" type="GStrv*" readable="0" writable="1" construct="0" construct-only="1"/>
++ <property name="client-id" type="char*" readable="1" writable="1" construct="0" construct-only="1"/>
++ <property name="current-directory" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="desktop-file" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="priority" type="guchar" readable="1" writable="1" construct="1" construct-only="0"/>
++ <property name="restart-command" type="GStrv*" readable="1" writable="1" construct="0" construct-only="0"/>
++ <property name="restart-style" type="XfceSMClientRestartStyle" readable="1" writable="1" construct="1" construct-only="0"/>
++ <property name="resumed" type="gboolean" readable="1" writable="0" construct="0" construct-only="0"/>
++ <signal name="quit" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="object" type="XfceSMClient*"/>
++ </parameters>
++ </signal>
++ <signal name="quit-cancelled" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="object" type="XfceSMClient*"/>
++ </parameters>
++ </signal>
++ <signal name="quit-requested" when="LAST">
++ <return-type type="gboolean"/>
++ <parameters>
++ <parameter name="object" type="XfceSMClient*"/>
++ </parameters>
++ </signal>
++ <signal name="save-state" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="object" type="XfceSMClient*"/>
++ </parameters>
++ </signal>
++ <signal name="save-state-extended" when="LAST">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="object" type="XfceSMClient*"/>
++ </parameters>
++ </signal>
++ </object>
++ <object name="XfceTitledDialog" parent="GtkDialog" type-name="XfceTitledDialog" get-type="xfce_titled_dialog_get_type">
++ <implements>
++ <interface name="AtkImplementor"/>
++ <interface name="GtkBuildable"/>
++ </implements>
++ <method name="get_subtitle" symbol="xfce_titled_dialog_get_subtitle">
++ <return-type type="gchar*"/>
++ <parameters>
++ <parameter name="titled_dialog" type="XfceTitledDialog*"/>
++ </parameters>
++ </method>
++ <constructor name="new" symbol="xfce_titled_dialog_new">
++ <return-type type="GtkWidget*"/>
++ </constructor>
++ <constructor name="new_with_buttons" symbol="xfce_titled_dialog_new_with_buttons">
++ <return-type type="GtkWidget*"/>
++ <parameters>
++ <parameter name="title" type="gchar*"/>
++ <parameter name="parent" type="GtkWindow*"/>
++ <parameter name="flags" type="GtkDialogFlags"/>
++ <parameter name="first_button_text" type="gchar*"/>
++ </parameters>
++ </constructor>
++ <method name="set_subtitle" symbol="xfce_titled_dialog_set_subtitle">
++ <return-type type="void"/>
++ <parameters>
++ <parameter name="titled_dialog" type="XfceTitledDialog*"/>
++ <parameter name="subtitle" type="gchar*"/>
++ </parameters>
++ </method>
++ <property name="subtitle" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
++ <vfunc name="reserved0">
++ <return-type type="void"/>
++ </vfunc>
++ <vfunc name="reserved1">
++ <return-type type="void"/>
++ </vfunc>
++ <vfunc name="reserved2">
++ <return-type type="void"/>
++ </vfunc>
++ <vfunc name="reserved3">
++ <return-type type="void"/>
++ </vfunc>
++ <vfunc name="reserved4">
++ <return-type type="void"/>
++ </vfunc>
++ <vfunc name="reserved5">
++ <return-type type="void"/>
++ </vfunc>
++ </object>
++ <constant name="LIBXFCE4UI_MAJOR_VERSION" type="int" value="4"/>
++ <constant name="LIBXFCE4UI_MICRO_VERSION" type="int" value="0"/>
++ <constant name="LIBXFCE4UI_MINOR_VERSION" type="int" value="13"/>
++ <constant name="XFCE_BUTTON_TYPE_MIXED" type="char*" value="button-mixed"/>
++ <constant name="XFCE_BUTTON_TYPE_PIXBUF" type="char*" value="button-pixbuf"/>
++ </namespace>
++</api>
+diff --git a/packages/libxfce4ui-2/libxfce4ui-2.metadata b/packages/libxfce4ui-2/libxfce4ui-2.metadata
+new file mode 100644
+index 0000000..806207b
+--- /dev/null
++++ b/packages/libxfce4ui-2/libxfce4ui-2.metadata
+@@ -0,0 +1,3 @@
++Xfce cheader_filename="libxfce4ui/libxfce4ui.h"
++
++xfce_titled_dialog_reserved* hidden="1"
+diff --git a/packages/libxfce4ui-2/libxfce4ui-2.namespace b/packages/libxfce4ui-2/libxfce4ui-2.namespace
+new file mode 100644
+index 0000000..296456d
+--- /dev/null
++++ b/packages/libxfce4ui-2/libxfce4ui-2.namespace
+@@ -0,0 +1 @@
++Xfce
+diff --git a/packages/libxfce4util-1.0/libxfce4util-1.0.gi b/packages/libxfce4util-1.0/libxfce4util-1.0.gi
+index e8dc738..8b75580 100644
+--- a/packages/libxfce4util-1.0/libxfce4util-1.0.gi
++++ b/packages/libxfce4util-1.0/libxfce4util-1.0.gi
+@@ -39,34 +39,6 @@
+ <function name="gethostname" symbol="xfce_gethostname">
+ <return-type type="gchar*"/>
+ </function>
+- <function name="putenv" symbol="xfce_putenv">
+- <return-type type="gint"/>
+- <parameters>
+- <parameter name="string" type="gchar*"/>
+- </parameters>
+- </function>
+- <function name="setenv" symbol="xfce_setenv">
+- <return-type type="gint"/>
+- <parameters>
+- <parameter name="name" type="gchar*"/>
+- <parameter name="value" type="gchar*"/>
+- <parameter name="overwrite" type="gboolean"/>
+- </parameters>
+- </function>
+- <function name="strjoin" symbol="xfce_strjoin">
+- <return-type type="gchar*"/>
+- <parameters>
+- <parameter name="separator" type="gchar*"/>
+- <parameter name="strings" type="gchar**"/>
+- <parameter name="count" type="gint"/>
+- </parameters>
+- </function>
+- <function name="unsetenv" symbol="xfce_unsetenv">
+- <return-type type="void"/>
+- <parameters>
+- <parameter name="name" type="gchar*"/>
+- </parameters>
+- </function>
+ <function name="utf8_remove_controls" symbol="xfce_utf8_remove_controls">
+ <return-type type="gchar*"/>
+ <parameters>
+@@ -278,7 +250,7 @@
+ <member name="XFCE_LICENSE_TEXT_LGPL" value="2"/>
+ </enum>
+ <constant name="LIBXFCE4UTIL_MAJOR_VERSION" type="int" value="4"/>
+- <constant name="LIBXFCE4UTIL_MICRO_VERSION" type="int" value="0"/>
+- <constant name="LIBXFCE4UTIL_MINOR_VERSION" type="int" value="10"/>
++ <constant name="LIBXFCE4UTIL_MICRO_VERSION" type="int" value="1"/>
++ <constant name="LIBXFCE4UTIL_MINOR_VERSION" type="int" value="12"/>
+ </namespace>
+ </api>
+diff --git a/vapi/exo-1.vapi b/vapi/exo-1.vapi
+index 159a824..237932c 100644
+--- a/vapi/exo-1.vapi
++++ b/vapi/exo-1.vapi
+@@ -1,4 +1,4 @@
+-/* exo-1.vapi generated by vapigen-0.16, do not modify. */
++/* exo-1.vapi generated by vapigen-0.26, do not modify. */
+
+ namespace Exo {
+ [CCode (cheader_filename = "exo/exo.h", free_function = "")]
+@@ -159,6 +159,8 @@ namespace Exo {
+ public int column_spacing { get; set; }
+ public int columns { get; set; }
+ public bool enable_search { get; set; }
++ [NoAccessorMethod]
++ public int icon_column { get; set; }
+ public int item_width { get; set; }
+ public Exo.IconViewLayoutMode layout_mode { get; set; }
+ public int margin { get; set; }
+@@ -359,7 +361,7 @@ namespace Exo {
+ public string[] restart_command { get; set; }
+ public virtual signal void save_yourself ();
+ }
+- [CCode (cheader_filename = "exo/exo.h", cprefix = "EXO_ICON_VIEW_")]
++ [CCode (cheader_filename = "exo/exo.h", cprefix = "EXO_ICON_VIEW_", has_type_id = false)]
+ public enum IconViewDropPosition {
+ NO_DROP,
+ DROP_INTO,
+@@ -368,13 +370,12 @@ namespace Exo {
+ DROP_ABOVE,
+ DROP_BELOW
+ }
+- [CCode (cheader_filename = "exo/exo.h", cprefix = "EXO_ICON_VIEW_LAYOUT_")]
++ [CCode (cheader_filename = "exo/exo.h", cprefix = "EXO_ICON_VIEW_LAYOUT_", has_type_id = false)]
+ public enum IconViewLayoutMode {
+ ROWS,
+ COLS
+ }
+- [CCode (cheader_filename = "exo/exo.h", cprefix = "EXO_TOOLBARS_MODEL_")]
+- [Flags]
++ [CCode (cheader_filename = "exo/exo.h", cprefix = "EXO_TOOLBARS_MODEL_", has_type_id = false)]
+ public enum ToolbarsModelFlags {
+ NOT_REMOVABLE,
+ ACCEPT_ITEMS_ONLY,
+diff --git a/vapi/exo-2.deps b/vapi/exo-2.deps
+new file mode 100644
+index 0000000..367d44b
+--- /dev/null
++++ b/vapi/exo-2.deps
+@@ -0,0 +1,8 @@
++atk
++gio-2.0
++cairo
++pango
++gdk-pixbuf-2.0
++gdk-3.0
++gtk+-3.0
++libxfce4util-1.0
+diff --git a/vapi/exo-2.vapi b/vapi/exo-2.vapi
+new file mode 100644
+index 0000000..2248c8a
+--- /dev/null
++++ b/vapi/exo-2.vapi
+@@ -0,0 +1,77 @@
++/* exo-2.vapi generated by vapigen-0.26, do not modify. */
++
++namespace Exo {
++ [CCode (cheader_filename = "exo/exo.h")]
++ [Compact]
++ public class Extensions {
++ public static Gdk.Pixbuf gdk_pixbuf_colorize (Gdk.Pixbuf src, Gdk.Color color);
++ public static Gdk.Pixbuf gdk_pixbuf_frame (Gdk.Pixbuf src, Gdk.Pixbuf frame, int left_offset, int top_offset, int right_offset, int bottom_offset);
++ public static Gdk.Pixbuf gdk_pixbuf_lucent (Gdk.Pixbuf src, uint percent);
++ public static Gdk.Pixbuf gdk_pixbuf_new_from_file_at_max_size (string filename, int max_width, int max_height, bool preserve_aspect_ratio) throws GLib.Error;
++ public static Gdk.Pixbuf gdk_pixbuf_scale_down (Gdk.Pixbuf source, bool preserve_aspect_ratio, int dest_width, int dest_height);
++ public static Gdk.Pixbuf gdk_pixbuf_scale_ratio (Gdk.Pixbuf source, int dest_size);
++ public static Gdk.Pixbuf gdk_pixbuf_spotlight (Gdk.Pixbuf src);
++ }
++ [CCode (cheader_filename = "exo/exo.h")]
++ public class Job : GLib.Object {
++ [CCode (has_construct_function = false)]
++ protected Job ();
++ public void cancel ();
++ public void emit (uint signal_id, GLib.Quark signal_detail);
++ [NoWrapper]
++ public virtual bool execute () throws GLib.Error;
++ public unowned GLib.Cancellable get_cancellable ();
++ public void info_message (string format);
++ public bool is_cancelled ();
++ public unowned Exo.Job launch ();
++ public void percent (double percent);
++ public bool send_to_mainloop (GLib.SourceFunc func, GLib.DestroyNotify destroy_notify);
++ public bool set_error_if_cancelled () throws GLib.Error;
++ public virtual signal void error (void* error);
++ public virtual signal void finished ();
++ [CCode (cname = "info_message")]
++ public virtual signal void info_message_received (string message);
++ [CCode (cname = "percent")]
++ public virtual signal void percent_progress (double percent);
++ }
++ [CCode (cheader_filename = "exo/exo.h")]
++ public class SimpleJob : Exo.Job {
++ [CCode (has_construct_function = false)]
++ protected SimpleJob ();
++ public static unowned Exo.Job launch (Exo.SimpleJobFunc func, uint n_param_values);
++ }
++ [CCode (cheader_filename = "exo/exo.h")]
++ [Compact]
++ public class SimpleJobClass {
++ }
++ [CCode (cheader_filename = "exo/exo.h")]
++ [Compact]
++ public class String {
++ [CCode (cname = "exo_strdup_strftime")]
++ public static string dup_strftime (string format, void* tm);
++ [CCode (cname = "exo_str_elide_underscores")]
++ public static string elide_underscores (string text);
++ [CCode (cname = "exo_str_is_equal")]
++ public static bool is_equal (string? a, string? b);
++ [CCode (cname = "exo_strndupv")]
++ public static string[] ndupv (string[] strv, int num);
++ [CCode (cname = "exo_str_replace")]
++ public static string replace (string str, string pattern, string replacement);
++ }
++ [CCode (cheader_filename = "exo/exo.h", has_target = false)]
++ public delegate bool SimpleJobFunc (Exo.Job job, GLib.ValueArray param_values) throws GLib.Error;
++ [CCode (cheader_filename = "exo/exo.h")]
++ public const int MAJOR_VERSION;
++ [CCode (cheader_filename = "exo/exo.h")]
++ public const int MICRO_VERSION;
++ [CCode (cheader_filename = "exo/exo.h")]
++ public const int MINOR_VERSION;
++ [CCode (cheader_filename = "exo/exo.h")]
++ public const int PARAM_READABLE;
++ [CCode (cheader_filename = "exo/exo.h")]
++ public const int PARAM_READWRITE;
++ [CCode (cheader_filename = "exo/exo.h")]
++ public const int PARAM_WRITABLE;
++ [CCode (cheader_filename = "exo/exo.h")]
++ public static unowned string check_version (uint required_major, uint required_minor, uint required_micro);
++}
+diff --git a/vapi/garcon-1.vapi b/vapi/garcon-1.vapi
+index 1ea4814..9db7662 100644
+--- a/vapi/garcon-1.vapi
++++ b/vapi/garcon-1.vapi
+@@ -1,4 +1,4 @@
+-/* garcon-1.vapi generated by vapigen-0.16, do not modify. */
++/* garcon-1.vapi generated by vapigen-0.26, do not modify. */
+
+ namespace Garcon {
+ [CCode (cheader_filename = "garcon/garcon.h")]
+@@ -10,7 +10,6 @@ namespace Garcon {
+ public Menu.applications ();
+ [CCode (has_construct_function = false)]
+ public Menu.for_path (string filename);
+- public unowned Garcon.MenuDirectory get_directory ();
+ public unowned GLib.List get_elements ();
+ public unowned GLib.File get_file ();
+ public unowned Garcon.MenuItemPool get_item_pool ();
+@@ -254,6 +253,8 @@ namespace Garcon {
+ DEFAULT_MERGE_DIRS
+ }
+ [CCode (cheader_filename = "garcon/garcon.h")]
++ public const string ENVIRONMENT_XFCE;
++ [CCode (cheader_filename = "garcon/garcon.h")]
+ public const int MAJOR_VERSION;
+ [CCode (cheader_filename = "garcon/garcon.h")]
+ public const int MICRO_VERSION;
+@@ -271,4 +272,6 @@ namespace Garcon {
+ public static void marshal_VOID__OBJECT_OBJECT (GLib.Closure closure, GLib.Value return_value, uint n_param_values, GLib.Value param_values, void* invocation_hint, void* marshal_data);
+ [CCode (cheader_filename = "garcon/garcon.h")]
+ public static void set_environment (string env);
++ [CCode (cheader_filename = "garcon/garcon.h")]
++ public static void set_environment_xdg (string fallback_env);
+ }
+diff --git a/vapi/libxfce4panel-1.0.vapi b/vapi/libxfce4panel-1.0.vapi
+index 9260c69..7fa263d 100644
+--- a/vapi/libxfce4panel-1.0.vapi
++++ b/vapi/libxfce4panel-1.0.vapi
+@@ -1,4 +1,4 @@
+-/* libxfce4panel-1.0.vapi generated by vapigen-0.16, do not modify. */
++/* libxfce4panel-1.0.vapi generated by vapigen-0.26, do not modify. */
+
+ namespace Xfce {
+ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
+diff --git a/vapi/libxfce4panel-2.0.deps b/vapi/libxfce4panel-2.0.deps
+new file mode 100644
+index 0000000..367d44b
+--- /dev/null
++++ b/vapi/libxfce4panel-2.0.deps
+@@ -0,0 +1,8 @@
++atk
++gio-2.0
++cairo
++pango
++gdk-pixbuf-2.0
++gdk-3.0
++gtk+-3.0
++libxfce4util-1.0
+diff --git a/vapi/libxfce4panel-2.0.vapi b/vapi/libxfce4panel-2.0.vapi
+new file mode 100644
+index 0000000..e9f0765
+--- /dev/null
++++ b/vapi/libxfce4panel-2.0.vapi
+@@ -0,0 +1,217 @@
++/* libxfce4panel-2.0.vapi generated by vapigen-0.26, do not modify. */
++
++namespace Xfce {
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public class ArrowButton : Gtk.ToggleButton, Atk.Implementor, Gtk.Buildable, Gtk.Actionable, Gtk.Activatable {
++ [CCode (has_construct_function = false, type = "GtkWidget*")]
++ public ArrowButton (Gtk.ArrowType arrow_type);
++ public Gtk.ArrowType get_arrow_type ();
++ public bool get_blinking ();
++ public void set_arrow_type (Gtk.ArrowType arrow_type);
++ public void set_blinking (bool blinking);
++ public Gtk.ArrowType arrow_type { get; set; }
++ public virtual signal void arrow_type_changed (Gtk.ArrowType type);
++ }
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public class PanelImage : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
++ [CCode (has_construct_function = false, type = "GtkWidget*")]
++ public PanelImage ();
++ public void clear ();
++ [CCode (has_construct_function = false, type = "GtkWidget*")]
++ public PanelImage.from_pixbuf (Gdk.Pixbuf pixbuf);
++ [CCode (has_construct_function = false, type = "GtkWidget*")]
++ public PanelImage.from_source (string source);
++ public int get_size ();
++ public void set_from_pixbuf (Gdk.Pixbuf pixbuf);
++ public void set_from_source (string source);
++ public void set_size (int size);
++ [NoAccessorMethod]
++ public Gdk.Pixbuf pixbuf { owned get; set; }
++ public int size { get; set; }
++ [NoAccessorMethod]
++ public string source { owned get; set; }
++ }
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public class PanelPlugin : Gtk.EventBox, Atk.Implementor, Gtk.Buildable, Xfce.PanelPluginProvider {
++ [CCode (has_construct_function = false)]
++ protected PanelPlugin ();
++ public void add_action_widget (Gtk.Widget widget);
++ public Gtk.ArrowType arrow_type ();
++ public void block_autohide (bool blocked);
++ public void block_menu ();
++ [NoWrapper]
++ public virtual void @construct ();
++ public void focus_widget (Gtk.Widget widget);
++ public unowned string get_arguments ();
++ public unowned string get_comment ();
++ public unowned string get_display_name ();
++ public bool get_expand ();
++ public bool get_locked ();
++ public Xfce.PanelPluginMode get_mode ();
++ public uint get_nrows ();
++ public Gtk.Orientation get_orientation ();
++ public unowned string get_property_base ();
++ public Xfce.ScreenPosition get_screen_position ();
++ public bool get_shrink ();
++ public int get_size ();
++ public bool get_small ();
++ public unowned string lookup_rc_file ();
++ public void menu_insert_item (Gtk.MenuItem item);
++ public void menu_show_about ();
++ public void menu_show_configure ();
++ public static void position_menu (Gtk.Menu menu, int x, int y, bool push_in, void* panel_plugin);
++ public void position_widget (Gtk.Widget menu_widget, Gtk.Widget attach_widget, int x, int y);
++ public void register_menu (Gtk.Menu menu);
++ public void remove ();
++ public unowned string save_location (bool create);
++ public void set_expand (bool expand);
++ public void set_shrink (bool shrink);
++ public void set_small (bool small);
++ public void take_window (Gtk.Window window);
++ public void unblock_menu ();
++ [CCode (array_length = false, array_null_terminated = true)]
++ public string[] arguments { get; construct; }
++ public string comment { get; construct; }
++ public string display_name { get; construct; }
++ public bool expand { get; set; }
++ public Xfce.PanelPluginMode mode { get; }
++ public string name { get; construct; }
++ public uint nrows { get; }
++ public Gtk.Orientation orientation { get; }
++ public Xfce.ScreenPosition screen_position { get; }
++ public bool shrink { get; set; }
++ public int size { get; }
++ public bool small { get; set; }
++ public int unique_id { get; construct; }
++ public virtual signal void about ();
++ public virtual signal void configure_plugin ();
++ public virtual signal void free_data ();
++ public virtual signal void mode_changed (Xfce.PanelPluginMode mode);
++ public virtual signal void nrows_changed (uint rows);
++ public virtual signal void orientation_changed (Gtk.Orientation orientation);
++ public virtual signal bool remote_event (string name, GLib.Value value);
++ public virtual signal void removed ();
++ public virtual signal void save ();
++ public virtual signal void screen_position_changed (Xfce.ScreenPosition position);
++ public virtual signal bool size_changed (int size);
++ }
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ [Compact]
++ public class PanelTypeModule {
++ }
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public interface PanelPluginProvider {
++ public abstract void ask_remove ();
++ public void emit_signal (Xfce.PanelPluginProviderSignal provider_signal);
++ public abstract unowned string get_name ();
++ public abstract bool get_show_about ();
++ public abstract bool get_show_configure ();
++ public abstract int get_unique_id ();
++ public abstract bool remote_event (string name, GLib.Value value, uint handle);
++ public abstract void removed ();
++ public abstract void save ();
++ public abstract void set_locked (bool locked);
++ public abstract void set_mode (Xfce.PanelPluginMode mode);
++ public abstract void set_nrows (uint rows);
++ public abstract void set_screen_position (Xfce.ScreenPosition screen_position);
++ public abstract void set_size (int size);
++ public abstract void show_about ();
++ public abstract void show_configure ();
++ public signal void provider_signal (uint p0);
++ }
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", cprefix = "XFCE_PANEL_PLUGIN_MODE_")]
++ public enum PanelPluginMode {
++ HORIZONTAL,
++ VERTICAL,
++ DESKBAR
++ }
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", cprefix = "PROVIDER_PROP_TYPE_", has_type_id = false)]
++ public enum PanelPluginProviderPropType {
++ SET_SIZE,
++ SET_MODE,
++ SET_SCREEN_POSITION,
++ SET_BACKGROUND_ALPHA,
++ SET_NROWS,
++ SET_LOCKED,
++ SET_SENSITIVE,
++ SET_BACKGROUND_COLOR,
++ SET_BACKGROUND_IMAGE,
++ ACTION_REMOVED,
++ ACTION_SAVE,
++ ACTION_QUIT,
++ ACTION_QUIT_FOR_RESTART,
++ ACTION_BACKGROUND_UNSET,
++ ACTION_SHOW_CONFIGURE,
++ ACTION_SHOW_ABOUT,
++ ACTION_ASK_REMOVE
++ }
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", cprefix = "PROVIDER_SIGNAL_", has_type_id = false)]
++ public enum PanelPluginProviderSignal {
++ MOVE_PLUGIN,
++ EXPAND_PLUGIN,
++ COLLAPSE_PLUGIN,
++ SMALL_PLUGIN,
++ UNSMALL_PLUGIN,
++ LOCK_PANEL,
++ UNLOCK_PANEL,
++ REMOVE_PLUGIN,
++ ADD_NEW_ITEMS,
++ PANEL_PREFERENCES,
++ PANEL_LOGOUT,
++ PANEL_ABOUT,
++ PANEL_HELP,
++ SHOW_CONFIGURE,
++ SHOW_ABOUT,
++ FOCUS_PLUGIN,
++ SHRINK_PLUGIN,
++ UNSHRINK_PLUGIN
++ }
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", cprefix = "XFCE_SCREEN_POSITION_")]
++ public enum ScreenPosition {
++ NONE,
++ NW_H,
++ N,
++ NE_H,
++ NW_V,
++ W,
++ SW_V,
++ NE_V,
++ E,
++ SE_V,
++ SW_H,
++ S,
++ SE_H,
++ FLOATING_H,
++ FLOATING_V
++ }
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", has_target = false)]
++ public delegate bool PanelPluginCheck (Gdk.Screen screen);
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", has_target = false)]
++ public delegate void PanelPluginFunc (Xfce.PanelPlugin plugin);
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", has_target = false)]
++ public delegate bool PanelPluginPreInit (int argc, string argv);
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", has_target = false)]
++ public delegate unowned Gtk.Widget PluginConstructFunc (string name, int unique_id, string display_name, string comment, string arguments, Gdk.Screen screen);
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", has_target = false)]
++ public delegate GLib.Type PluginInitFunc (GLib.TypeModule module, bool make_resident);
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public const int LIBXFCE4PANEL_MAJOR_VERSION;
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public const int LIBXFCE4PANEL_MICRO_VERSION;
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public const int LIBXFCE4PANEL_MINOR_VERSION;
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public const string LIBXFCE4PANEL_VERSION;
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h", cname = "libxfce4panel_check_version")]
++ public static unowned string libxfce4panel_check_version (uint required_major, uint required_minor, uint required_micro);
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public static unowned Gtk.Widget panel_create_button ();
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public static unowned Gtk.Widget panel_create_toggle_button ();
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public static unowned string panel_get_channel_name ();
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public static unowned Gdk.Pixbuf panel_pixbuf_from_source (string source, Gtk.IconTheme icon_theme, int size);
++ [CCode (cheader_filename = "libxfce4panel/libxfce4panel.h")]
++ public static unowned Gdk.Pixbuf panel_pixbuf_from_source_at_size (string source, Gtk.IconTheme icon_theme, int dest_width, int dest_height);
++}
+diff --git a/vapi/libxfce4ui-1.vapi b/vapi/libxfce4ui-1.vapi
+index 266f8ce..1cef205 100644
+--- a/vapi/libxfce4ui-1.vapi
++++ b/vapi/libxfce4ui-1.vapi
+@@ -1,4 +1,4 @@
+-/* libxfce4ui-1.vapi generated by vapigen-0.16, do not modify. */
++/* libxfce4ui-1.vapi generated by vapigen-0.26, do not modify. */
+
+ namespace Xfce {
+ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
+@@ -7,6 +7,7 @@ namespace Xfce {
+ protected SMClient ();
+ public bool connect () throws GLib.Error;
+ public void disconnect ();
++ public static GLib.Quark error_quark ();
+ public static unowned Xfce.SMClient @get ();
+ public unowned string get_client_id ();
+ public unowned string get_current_directory ();
+@@ -75,6 +76,11 @@ namespace Xfce {
+ HALT,
+ REBOOT
+ }
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h", cprefix = "XFCE_SM_CLIENT_ERROR_")]
++ public enum SmCLientErrorEnum {
++ FAILED,
++ INVALID_CLIENT
++ }
+ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
+ public const string BUTTON_TYPE_MIXED;
+ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
+@@ -92,6 +98,8 @@ namespace Xfce {
+ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
+ public static void dialog_show_help (Gtk.Window parent, string application, string page, string offset);
+ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static void dialog_show_help_with_version (Gtk.Window parent, string application, string page, string offset, string version);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
+ public static void dialog_show_info (Gtk.Window parent, string secondary_text, string primary_format);
+ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
+ public static void dialog_show_warning (Gtk.Window parent, string secondary_text, string primary_format);
+diff --git a/vapi/libxfce4ui-2.deps b/vapi/libxfce4ui-2.deps
+new file mode 100644
+index 0000000..4264788
+--- /dev/null
++++ b/vapi/libxfce4ui-2.deps
+@@ -0,0 +1,8 @@
++libxfce4util-1.0
++atk
++gio-2.0
++cairo
++pango
++gdk-pixbuf-2.0
++gdk-3.0
++gtk+-3.0
+diff --git a/vapi/libxfce4ui-2.vapi b/vapi/libxfce4ui-2.vapi
+new file mode 100644
+index 0000000..0adcfdc
+--- /dev/null
++++ b/vapi/libxfce4ui-2.vapi
+@@ -0,0 +1,130 @@
++/* libxfce4ui-2.vapi generated by vapigen-0.26, do not modify. */
++
++namespace Xfce {
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public class SMClient : GLib.Object {
++ [CCode (has_construct_function = false)]
++ protected SMClient ();
++ public bool connect () throws GLib.Error;
++ public void disconnect ();
++ public static GLib.Quark error_quark ();
++ public static unowned Xfce.SMClient @get ();
++ public unowned string get_client_id ();
++ public unowned string get_current_directory ();
++ public static unowned Xfce.SMClient get_full (Xfce.SMClientRestartStyle restart_style, uchar priority, string resumed_client_id, string current_directory, string restart_command, string desktop_file);
++ public static unowned GLib.OptionGroup get_option_group (int argc, string argv);
++ public uchar get_priority ();
++ public unowned string get_restart_command ();
++ public Xfce.SMClientRestartStyle get_restart_style ();
++ public unowned string get_state_file ();
++ public static unowned Xfce.SMClient get_with_argv (int argc, string argv, Xfce.SMClientRestartStyle restart_style, uchar priority);
++ public bool is_connected ();
++ public bool is_resumed ();
++ public void request_shutdown (Xfce.SMClientShutdownHint shutdown_hint);
++ public void set_current_directory (string current_directory);
++ public void set_desktop_file (string desktop_file);
++ public void set_priority (uchar priority);
++ public void set_restart_command (string restart_command);
++ public void set_restart_style (Xfce.SMClientRestartStyle restart_style);
++ public int argc { construct; }
++ [CCode (array_length = false, array_null_terminated = true)]
++ public string[] argv { construct; }
++ public string client_id { get; construct; }
++ public string current_directory { get; set; }
++ [NoAccessorMethod]
++ public string desktop_file { owned get; set; }
++ public uchar priority { get; set construct; }
++ [CCode (array_length = false, array_null_terminated = true)]
++ public string[] restart_command { get; set; }
++ public Xfce.SMClientRestartStyle restart_style { get; set construct; }
++ [NoAccessorMethod]
++ public bool resumed { get; }
++ public virtual signal void quit ();
++ public virtual signal void quit_cancelled ();
++ public virtual signal bool quit_requested ();
++ public virtual signal void save_state ();
++ public virtual signal void save_state_extended ();
++ }
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public class TitledDialog : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {
++ [CCode (has_construct_function = false, type = "GtkWidget*")]
++ public TitledDialog ();
++ public unowned string get_subtitle ();
++ public void set_subtitle (string subtitle);
++ [CCode (has_construct_function = false, type = "GtkWidget*")]
++ public TitledDialog.with_buttons (string title, Gtk.Window parent, Gtk.DialogFlags flags, ...);
++ public string subtitle { get; set; }
++ }
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h", cprefix = "XFCE_SM_CLIENT_PRIORITY_", has_type_id = false)]
++ public enum SMClientPriority {
++ HIGHEST,
++ WM,
++ CORE,
++ DESKTOP,
++ DEFAULT,
++ LOWEST
++ }
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h", cprefix = "XFCE_SM_CLIENT_RESTART_")]
++ public enum SMClientRestartStyle {
++ NORMAL,
++ IMMEDIATELY
++ }
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h", cprefix = "XFCE_SM_CLIENT_SHUTDOWN_HINT_")]
++ public enum SMClientShutdownHint {
++ ASK,
++ LOGOUT,
++ HALT,
++ REBOOT
++ }
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h", cprefix = "XFCE_SM_CLIENT_ERROR_")]
++ public enum SmCLientErrorEnum {
++ FAILED,
++ INVALID_CLIENT
++ }
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public const string BUTTON_TYPE_MIXED;
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public const string BUTTON_TYPE_PIXBUF;
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public const int LIBXFCE4UI_MAJOR_VERSION;
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public const int LIBXFCE4UI_MICRO_VERSION;
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public const int LIBXFCE4UI_MINOR_VERSION;
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static bool dialog_confirm (Gtk.Window parent, string stock_id, string confirm_label, string secondary_text, string primary_format);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static void dialog_show_error (Gtk.Window parent, GLib.Error error, string primary_format);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static void dialog_show_help (Gtk.Window parent, string application, string page, string offset);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static void dialog_show_help_with_version (Gtk.Window parent, string application, string page, string offset, string version);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static void dialog_show_info (Gtk.Window parent, string secondary_text, string primary_format);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static void dialog_show_warning (Gtk.Window parent, string secondary_text, string primary_format);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static unowned Gdk.Screen gdk_screen_get_active (int monitor_return);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static unowned Gtk.Widget gtk_button_new_mixed (string stock_id, string label);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static unowned Gtk.Widget gtk_frame_box_new (string label, out unowned Gtk.Widget container_return);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static unowned Gtk.Widget gtk_frame_box_new_with_content (string label, Gtk.Widget content);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static void gtk_window_center_on_active_screen (Gtk.Window window);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h", cname = "libxfce4ui_check_version")]
++ public static unowned string libxfce4ui_check_version (uint required_major, uint required_minor, uint required_micro);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static int message_dialog (Gtk.Window parent, string title, string stock_id, string primary_text, string secondary_text, ...);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static unowned Gtk.Widget message_dialog_new (Gtk.Window parent, string title, string stock_id, string primary_text, string secondary_text, ...);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static unowned Gtk.Widget message_dialog_new_valist (Gtk.Window parent, string title, string icon_stock_id, string primary_text, string secondary_text, string first_button_text, void* args);
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static bool spawn_command_line_on_screen (Gdk.Screen screen, string command_line, bool in_terminal, bool startup_notify) throws GLib.Error;
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static bool spawn_on_screen (Gdk.Screen screen, string working_directory, string argv, string envp, GLib.SpawnFlags flags, bool startup_notify, uint32 startup_timestamp, string startup_icon_name) throws GLib.Error;
++ [CCode (cheader_filename = "libxfce4ui/libxfce4ui.h")]
++ public static bool spawn_on_screen_with_child_watch (Gdk.Screen screen, string working_directory, string argv, string envp, GLib.SpawnFlags flags, bool startup_notify, uint32 startup_timestamp, string startup_icon_name, GLib.Closure child_watch_closure) throws GLib.Error;
++}
+diff --git a/vapi/libxfce4util-1.0.vapi b/vapi/libxfce4util-1.0.vapi
+index e56873e..e69391d 100644
+--- a/vapi/libxfce4util-1.0.vapi
++++ b/vapi/libxfce4util-1.0.vapi
+@@ -1,4 +1,4 @@
+-/* libxfce4util-1.0.vapi generated by vapigen-0.16, do not modify. */
++/* libxfce4util-1.0.vapi generated by vapigen-0.26, do not modify. */
+
+ namespace Xfce {
+ [CCode (cheader_filename = "libxfce4util/libxfce4util.h")]
+@@ -90,16 +90,8 @@ namespace Xfce {
+ [CCode (cheader_filename = "libxfce4util/libxfce4util.h")]
+ public static unowned string gethostname ();
+ [CCode (cheader_filename = "libxfce4util/libxfce4util.h")]
+- public static int putenv (string str);
+- [CCode (cheader_filename = "libxfce4util/libxfce4util.h")]
+- public static int setenv (string name, string value, bool overwrite);
+- [CCode (cheader_filename = "libxfce4util/libxfce4util.h")]
+- public static unowned string strjoin (string separator, string strings, int count);
+- [CCode (cheader_filename = "libxfce4util/libxfce4util.h")]
+ public static void textdomain (string package, string localedir, string? encoding = null);
+ [CCode (cheader_filename = "libxfce4util/libxfce4util.h")]
+- public static void unsetenv (string name);
+- [CCode (cheader_filename = "libxfce4util/libxfce4util.h")]
+ public static unowned string utf8_remove_controls (string str, ssize_t max_len, string end);
+ [CCode (cheader_filename = "libxfce4util/libxfce4util.h")]
+ public static unowned string utf8_strndup (string src, ssize_t max_len);
+diff --git a/vapi/libxfconf-0.vapi b/vapi/libxfconf-0.vapi
+index c8163af..d1846ab 100644
+--- a/vapi/libxfconf-0.vapi
++++ b/vapi/libxfconf-0.vapi
+@@ -1,4 +1,4 @@
+-/* libxfconf-0.vapi generated by vapigen-0.16, do not modify. */
++/* libxfconf-0.vapi generated by vapigen-0.26, do not modify. */
+
+ namespace Xfconf {
+ [CCode (cheader_filename = "xfconf/xfconf.h")]