From 3bcf3726467d678126952436b80f4a10c2184c4d Mon Sep 17 00:00:00 2001 From: Stanislav Brabec Date: Tue, 22 Sep 2009 23:36:32 +0000 Subject: matchbox2: Make it working: * fixed known crashers * created usable icon theme * provided session script --- recipes/matchbox2/matchbox-desktop-2_svn.bb | 23 +- .../matchbox-panel-2-icon-themes/task-switcher.png | Bin 0 -> 132 bytes .../matchbox-panel-2-icon-themes/user-desktop.png | Bin 0 -> 403 bytes .../matchbox-panel-2-icon-themes_0.0.1.bb | 51 +++++ .../scaling-image-double-free.patch | 14 ++ .../matchbox-panel-2/startup-invalid-access.patch | 25 +++ .../startup-shown-uninitialized.patch | 13 ++ .../matchbox-panel-2/themeable-icons.patch | 92 ++++++++ recipes/matchbox2/matchbox-panel-2_svn.bb | 40 ++-- .../matchbox-wm-2/fix-timeout-handler-free.patch | 105 +++++++++ .../matchbox2/matchbox-wm-2/makefile-vars.patch | 234 +++++++++++++++++++++ recipes/matchbox2/matchbox-wm-2_svn.bb | 22 ++ recipes/matchbox2/matchbox2/defaults.in | 43 ++++ recipes/matchbox2/matchbox2/matchbox-session-2.in | 81 +++++++ recipes/matchbox2/matchbox2_2.0.bb | 29 +++ 15 files changed, 737 insertions(+), 35 deletions(-) create mode 100644 recipes/matchbox2/matchbox-panel-2-icon-themes/task-switcher.png create mode 100644 recipes/matchbox2/matchbox-panel-2-icon-themes/user-desktop.png create mode 100644 recipes/matchbox2/matchbox-panel-2-icon-themes_0.0.1.bb create mode 100644 recipes/matchbox2/matchbox-panel-2/scaling-image-double-free.patch create mode 100644 recipes/matchbox2/matchbox-panel-2/startup-invalid-access.patch create mode 100644 recipes/matchbox2/matchbox-panel-2/startup-shown-uninitialized.patch create mode 100644 recipes/matchbox2/matchbox-panel-2/themeable-icons.patch create mode 100644 recipes/matchbox2/matchbox-wm-2/fix-timeout-handler-free.patch create mode 100644 recipes/matchbox2/matchbox-wm-2/makefile-vars.patch create mode 100644 recipes/matchbox2/matchbox-wm-2_svn.bb create mode 100644 recipes/matchbox2/matchbox2/defaults.in create mode 100644 recipes/matchbox2/matchbox2/matchbox-session-2.in create mode 100644 recipes/matchbox2/matchbox2_2.0.bb (limited to 'recipes') diff --git a/recipes/matchbox2/matchbox-desktop-2_svn.bb b/recipes/matchbox2/matchbox-desktop-2_svn.bb index 8dc74ef509..21581e911b 100644 --- a/recipes/matchbox2/matchbox-desktop-2_svn.bb +++ b/recipes/matchbox2/matchbox-desktop-2_svn.bb @@ -2,26 +2,15 @@ DESCRIPTION = "Matchbox Window Manager Desktop" LICENSE = "GPL" SECTION = "x11/panels" DEPENDS = "gtk+ startup-notification" - -PV = "0.1+svnr${SRCREV}" +RDEPENDS = "matchbox-common" +PV = "2.0+svnr${SRCREV}" PR = "r0" +inherit autotools_stage pkgconfig + SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http" S = "${WORKDIR}/${PN}" -inherit autotools pkgconfig - -EXTRA_OECONF = "--enable-startup-notification --disable-libnotify" - -PARALLEL_MAKE = "" - -# matchbox--2 aims to replace their -1 counterpart, but at this point in time it's unfinished and unusable, so make it parallel installable -do_install_append() { - mv ${D}${bindir}/matchbox-desktop ${D}${bindir}/matchbox-desktop-2 -} - -do_stage() { - autotools_stage_all -} - +#PARALLEL_MAKE = "" +EXTRA_OECONF = "--program-transform-name='s/$/-2/'" diff --git a/recipes/matchbox2/matchbox-panel-2-icon-themes/task-switcher.png b/recipes/matchbox2/matchbox-panel-2-icon-themes/task-switcher.png new file mode 100644 index 0000000000..d7ec9879f0 Binary files /dev/null and b/recipes/matchbox2/matchbox-panel-2-icon-themes/task-switcher.png differ diff --git a/recipes/matchbox2/matchbox-panel-2-icon-themes/user-desktop.png b/recipes/matchbox2/matchbox-panel-2-icon-themes/user-desktop.png new file mode 100644 index 0000000000..87f7b31330 Binary files /dev/null and b/recipes/matchbox2/matchbox-panel-2-icon-themes/user-desktop.png differ diff --git a/recipes/matchbox2/matchbox-panel-2-icon-themes_0.0.1.bb b/recipes/matchbox2/matchbox-panel-2-icon-themes_0.0.1.bb new file mode 100644 index 0000000000..2d14e0c65b --- /dev/null +++ b/recipes/matchbox2/matchbox-panel-2-icon-themes_0.0.1.bb @@ -0,0 +1,51 @@ +DESCRIPTION = "icon theme for matchbox-panel-2" +LICENSE = "GPLv2" +SECTION = "x11/panels" +DEPENDS = "imagemagick-native" +RPROVIDES_${PN} = "matchbox-panel-2-icon-theme" +PACKAGE_ARCH = "all" +PV = "0.0.1+svnr${SRCREV}" +PR = "r0" + +inherit gtk-icon-cache + +SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-panel-2/applets/battery/data;proto=http;maxrev=1918 \ + svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-panel-2/applets/startup/data;proto=http \ + svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-panel-2/applets/brightness/data;proto=http \ + file://user-desktop.png \ + file://task-switcher.png \ +" +S = "${WORKDIR}" + +do_install() { + cd ${S} + mkdir -p ${D}${datadir}/icons/HighContrast/48x48/status ${D}${datadir}/icons/HighContrastInverse/48x48/status + install -m 0644 matchbox-panel-2/applets/battery/data/*.png ${D}${datadir}/icons/HighContrastInverse/48x48/status/ + mkdir -p ${D}${datadir}/icons/HighContrast/32x32/status ${D}${datadir}/icons/HighContrastInverse/32x32/status + install -m 0644 matchbox-panel-2/applets/brightness/data/*.png ${D}${datadir}/icons/HighContrastInverse/32x32/status/ + mkdir -p ${D}${datadir}/icons/HighContrast/32x32/animations ${D}${datadir}/icons/HighContrastInverse/32x32/animations + install -m 0644 matchbox-panel-2/applets/startup/data/*.png ${D}${datadir}/icons/HighContrastInverse/32x32/animations/ + cd ${D}${datadir}/icons/HighContrastInverse + for PNG in */*/*.png ; do + convert -negate $PNG ../HighContrast/$PNG + done + cd ${S} + mkdir -p ${D}${datadir}/icons/HighContrast/32x32/apps ${D}${datadir}/icons/HighContrastInverse/32x32/apps + install -m 0644 user-desktop.png task-switcher.png ${D}${datadir}/icons/HighContrast/32x32/apps/ + cd ${D}${datadir}/icons/HighContrast + for PNG in 32x32/apps/*.png ; do + convert -negate $PNG ../HighContrastInverse/$PNG + done + cd ${S} + + # FIXME: The default vendor provided theme uses "white on + # transparent" style and it is invisible with the default GTK+ + # style. We need a better solution for fallback icons and dark + # themes. For now, define only "black on transparent" as + # hicolor. It is still pretty ugly: Hicolor is expected to be + # hicolor, makes icons invisible in dark themes. + rm -r ${D}${datadir}/icons/HighContrastInverse + mv ${D}${datadir}/icons/HighContrast ${D}${datadir}/icons/hicolor +} + +FILES_${PN} += "${datadir}/icons/*" diff --git a/recipes/matchbox2/matchbox-panel-2/scaling-image-double-free.patch b/recipes/matchbox2/matchbox-panel-2/scaling-image-double-free.patch new file mode 100644 index 0000000000..ab1fca10b9 --- /dev/null +++ b/recipes/matchbox2/matchbox-panel-2/scaling-image-double-free.patch @@ -0,0 +1,14 @@ +http://bugzilla.openedhand.com/show_bug.cgi?id=1794 +Index: matchbox-panel/mb-panel-scaling-image.c +=================================================================== +--- matchbox-panel/mb-panel-scaling-image.c (revision 2098) ++++ matchbox-panel/mb-panel-scaling-image.c (working copy) +@@ -284,7 +285,7 @@ + + if (image->priv->caching) { + g_hash_table_insert (image->priv->cache, +- image->priv->icon, ++ g_strdup(image->priv->icon), + pixbuf); + } else + g_object_unref (pixbuf); diff --git a/recipes/matchbox2/matchbox-panel-2/startup-invalid-access.patch b/recipes/matchbox2/matchbox-panel-2/startup-invalid-access.patch new file mode 100644 index 0000000000..66fac2a710 --- /dev/null +++ b/recipes/matchbox2/matchbox-panel-2/startup-invalid-access.patch @@ -0,0 +1,25 @@ +http://bugzilla.openedhand.com/show_bug.cgi?id=1791 +Index: applets/startup/startup.c +=================================================================== +--- applets/startup/startup.c (revision 2098) ++++ applets/startup/startup.c (working copy) +@@ -170,16 +170,17 @@ + + /* handle launchee timeouts */ + while (tmp != NULL) { ++ GList *tmp_next = tmp->next; + LaunchItem *item = (LaunchItem *) tmp->data; + if ((item->when - t) <= 0) { +- applet->launch_list = g_list_remove (tmp, item); ++ applet->launch_list = g_list_delete_link (applet->launch_list, tmp); + g_source_remove (item->timeout_id); + free (item->id); + free (item); + + break; + } +- tmp = tmp->next; ++ tmp = tmp_next; + } + + if (applet->launch_list == NULL && applet->hourglass_shown) { diff --git a/recipes/matchbox2/matchbox-panel-2/startup-shown-uninitialized.patch b/recipes/matchbox2/matchbox-panel-2/startup-shown-uninitialized.patch new file mode 100644 index 0000000000..2ee3efd01e --- /dev/null +++ b/recipes/matchbox2/matchbox-panel-2/startup-shown-uninitialized.patch @@ -0,0 +1,13 @@ +http://bugzilla.openedhand.com/show_bug.cgi?id=1805 +Index: applets/startup/startup.c +=================================================================== +--- applets/startup/startup.c (revision 2098) ++++ applets/startup/startup.c (working copy) +@@ -228,6 +228,7 @@ + applet = g_slice_new (StartupApplet); + + applet->launch_list = NULL; ++ applet->hourglass_shown = FALSE; + + /* Create image */ + applet->image = MB_PANEL_SCALING_IMAGE diff --git a/recipes/matchbox2/matchbox-panel-2/themeable-icons.patch b/recipes/matchbox2/matchbox-panel-2/themeable-icons.patch new file mode 100644 index 0000000000..9b41ce81ed --- /dev/null +++ b/recipes/matchbox2/matchbox-panel-2/themeable-icons.patch @@ -0,0 +1,92 @@ +Index: configure.ac +=================================================================== +--- configure.ac (revision 2098) ++++ configure.ac (working copy) +@@ -88,14 +88,12 @@ + applets/launcher/Makefile + applets/notify/Makefile + applets/startup/Makefile +-applets/startup/data/Makefile + applets/startup-notify/Makefile + applets/systray/Makefile + applets/showdesktop/Makefile + applets/windowselector/Makefile + applets/battery/Makefile + applets/brightness/Makefile +-applets/brightness/data/Makefile + po/Makefile.in + po/Makefile + ]) +Index: applets/startup/startup.c +=================================================================== +--- applets/startup/startup.c (revision 2098) ++++ applets/startup/startup.c (working copy) +@@ -191,8 +191,8 @@ + if (applet->hourglass_cur_frame_n == 8) + applet->hourglass_cur_frame_n = 0; + +- icon = malloc (sizeof(DATADIR) + 16); +- sprintf (icon, "%s/hourglass-%i.png", DATADIR, ++ icon = malloc (12); ++ sprintf (icon, "hourglass-%i", + applet->hourglass_cur_frame_n); + + mb_panel_scaling_image_set_icon (applet->image, icon); +Index: applets/startup/Makefile.am +=================================================================== +--- applets/startup/Makefile.am (revision 2098) ++++ applets/startup/Makefile.am (working copy) +@@ -1,5 +1,3 @@ +-SUBDIRS = data +- + AM_CPPFLAGS=-DPKGDATADIR=\"$(pkgdatadir)\" \ + -DGETTEXT_PACKAGE=\"matchbox-panel\" \ + -DDATADIR=\"$(pkgdatadir)/startup/\" +Index: applets/brightness/Makefile.am +=================================================================== +--- applets/brightness/Makefile.am (revision 2098) ++++ applets/brightness/Makefile.am (working copy) +@@ -1,5 +1,3 @@ +-SUBDIRS = data +- + AM_CPPFLAGS=-DPKGDATADIR=\"$(pkgdatadir)\" \ + -DGETTEXT_PACKAGE=\"matchbox-panel\" \ + -DDATADIR=\"$(pkgdatadir)/brightness/\" +Index: applets/brightness/brightness.c +=================================================================== +--- applets/brightness/brightness.c (revision 2098) ++++ applets/brightness/brightness.c (working copy) +@@ -131,7 +131,6 @@ + NULL}; + + theme = gtk_icon_theme_get_default(); +- gtk_icon_theme_append_search_path(theme, DATADIR); + + applet = g_slice_new(BrightnessApplet); + scale = gtk_scale_button_new(GTK_ICON_SIZE_BUTTON, +Index: applets/windowselector/windowselector.c +=================================================================== +--- applets/windowselector/windowselector.c (revision 2098) ++++ applets/windowselector/windowselector.c (working copy) +@@ -797,7 +797,7 @@ + switch (applet->mode) { + case MODE_STATIC_ICON: + applet->image = mb_panel_scaling_image_new (orientation, +- "panel-task-switcher"); ++ "task-switcher"); + gtk_container_add (GTK_CONTAINER (applet->button), + applet->image); + break; +Index: applets/showdesktop/showdesktop.c +=================================================================== +--- applets/showdesktop/showdesktop.c (revision 2098) ++++ applets/showdesktop/showdesktop.c (working copy) +@@ -50,7 +50,7 @@ + + /* TODO: remove this function and instead use a toggle button? */ + +- icon = "panel-user-desktop"; ++ icon = "user-desktop"; + + mb_panel_scaling_image_set_icon (applet->image, icon); + } diff --git a/recipes/matchbox2/matchbox-panel-2_svn.bb b/recipes/matchbox2/matchbox-panel-2_svn.bb index 79fafff202..667b54967f 100644 --- a/recipes/matchbox2/matchbox-panel-2_svn.bb +++ b/recipes/matchbox2/matchbox-panel-2_svn.bb @@ -1,27 +1,31 @@ DESCRIPTION = "matchbox-panel-2 is a lightweight dock (system tray) application based on Gtk+" -LICENSE = "GPL" +LICENSE = "GPLv2" SECTION = "x11/panels" -DEPENDS = "gtk+ apmd startup-notification" -PV = "0.1+svnr${SRCREV}" -PR = "r8" +DEPENDS = "gtk+ startup-notification dbus dbus-glib matchbox-panel-2-icon-themes" +DEPENDS += " ${@base_contains("MACHINE_FEATURES", "acpi", "libacpi", "",d)}" +DEPENDS += " ${@base_contains("MACHINE_FEATURES", "apm", "apmd", "",d)}" +RDEPENDS_${PN} = "matchbox-panel-2-icon-theme" +PACKAGE_ARCH = "${MACHINE_ARCH}" +PV = "2.0+svnr${SRCREV}" +PR = "r0" -SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http" -S = "${WORKDIR}/${PN}" +inherit autotools_stage pkgconfig -inherit autotools pkgconfig +SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http \ + file://scaling-image-double-free.patch;patch=1;pnum=0 \ + file://startup-invalid-access.patch;patch=1;pnum=0 \ + file://startup-shown-uninitialized.patch;patch=1;pnum=0 \ + file://themeable-icons.patch;patch=1;pnum=0 \ +" +S = "${WORKDIR}/${PN}" -EXTRA_OECONF = "--enable-startup-notification --disable-libnotify" +EXTRA_OECONF = "--disable-static --program-transform-name='s/$/-2/'" +EXTRA_OECONF += " ${@base_contains("MACHINE_FEATURES", "acpi", "--with-battery=acpi", "",d)}" +EXTRA_OECONF += " ${@base_contains("MACHINE_FEATURES", "apm", "--with-battery=apm", "",d)}" -# matchbox--2 aims to replace their -1 counterpart, but at this point in time it's unfinished and unusable, so make it parallel installable do_install_append() { - mv ${D}${bindir}/matchbox-panel ${D}${bindir}/matchbox-panel-2 + rm ${D}${libdir}/matchbox-panel/lib*.*a } -do_stage() { - autotools_stage_all -} - -PACKAGES += "${PN}-applets" -FILES_${PN}-applets = "${libdir}/matchbox-panel/lib*.so* ${datadir}/*" -FILES_${PN}-dev += "${libdir}/matchbox-panel/lib*.a ${libdir}/matchbox-panel/lib*.la" - +FILES_${PN} += "${libdir}/matchbox-panel/*.so" +FILES_${PN}-dbg += "${libdir}/matchbox-panel/.debug" diff --git a/recipes/matchbox2/matchbox-wm-2/fix-timeout-handler-free.patch b/recipes/matchbox2/matchbox-wm-2/fix-timeout-handler-free.patch new file mode 100644 index 0000000000..1f68176845 --- /dev/null +++ b/recipes/matchbox2/matchbox-wm-2/fix-timeout-handler-free.patch @@ -0,0 +1,105 @@ +http://bugzilla.openedhand.com/show_bug.cgi?id=1432 +diff --git a/matchbox/core/mb-wm-client.c b/matchbox/core/mb-wm-client.c +index 0791060..f6d949d 100644 +--- a/matchbox/core/mb-wm-client.c ++++ b/matchbox/core/mb-wm-client.c +@@ -55,9 +58,11 @@ mb_wm_client_destroy (MBWMObject *obj) + + client->sig_prop_change_id = 0; + +- if (client->ping_cb_id) +- mb_wm_main_context_timeout_handler_remove (wm->main_ctx, +- client->ping_cb_id); ++ /* Must call mb_wm_client_ping_stop rather than ++ * mb_wm_main_context_timeout_handler_remove() to prevent a race condition ++ * segfault in the timeout list manipulation ++ */ ++ mb_wm_client_ping_stop (client); + + #if ENABLE_COMPOSITE + if (mb_wm_compositing_enabled (wm)) +diff --git a/matchbox/core/mb-wm-main-context.c b/matchbox/core/mb-wm-main-context.c +index f74d249..a206a2e 100644 +--- a/matchbox/core/mb-wm-main-context.c ++++ b/matchbox/core/mb-wm-main-context.c +@@ -822,7 +822,7 @@ mb_wm_main_context_handle_timeout (MBWMTimeOutEventInfo *tinfo, + static Bool + mb_wm_main_context_check_timeouts (MBWMMainContext *ctx) + { +- MBWMList * l = ctx->event_funcs.timeout; ++ MBWMList * l = mb_wm_util_list_get_first(ctx->event_funcs.timeout); + struct timeval current_time; + + if (!l) +@@ -833,29 +833,18 @@ mb_wm_main_context_check_timeouts (MBWMMainContext *ctx) + while (l) + { + MBWMTimeOutEventInfo * tinfo = l->data; ++ unsigned long tid = tinfo->id; + + if (!mb_wm_main_context_handle_timeout (tinfo, ¤t_time)) +- { +- MBWMList * prev = l->prev; +- MBWMList * next = l->next; +- +- if (prev) +- prev->next = next; +- else +- ctx->event_funcs.timeout = next; +- +- if (next) +- next->prev = prev; +- +- free (tinfo); +- free (l); +- +- l = next; +- } ++ { ++ /* Timeout handler notified it can be removed, do so now */ ++ mb_wm_main_context_timeout_handler_remove (ctx,tid); ++ /* To avoid race condition, restart at front of list */ ++ l = mb_wm_util_list_get_first(ctx->event_funcs.timeout); ++ } + else +- l = l->next; ++ l = mb_wm_util_list_next(l); + } +- + return True; + } + #endif /* !USE_GLIB_MAINLOOP */ +@@ -904,25 +893,14 @@ mb_wm_main_context_timeout_handler_remove (MBWMMainContext *ctx, + MBWMTimeOutEventInfo * info = l->data; + + if (info->id == id) +- { +- MBWMList * prev = l->prev; +- MBWMList * next = l->next; +- +- if (prev) +- prev->next = next; +- else +- ctx->event_funcs.timeout = next; +- +- if (next) +- next->prev = prev; +- +- free (info); +- free (l); +- +- return; +- } +- +- l = l->next; ++ { ++ /* Reset list head after entry removal */ ++ ctx->event_funcs.timeout = ++ mb_wm_util_list_remove(ctx->event_funcs.timeout, l->data); ++ return; ++ } ++ ++ l = mb_wm_util_list_next(l); + } + #else + g_source_remove (id); diff --git a/recipes/matchbox2/matchbox-wm-2/makefile-vars.patch b/recipes/matchbox2/matchbox-wm-2/makefile-vars.patch new file mode 100644 index 0000000000..8014e978a4 --- /dev/null +++ b/recipes/matchbox2/matchbox-wm-2/makefile-vars.patch @@ -0,0 +1,234 @@ +sed -i 's/@\([A-Z0-9_]*\)@/\$(\1)/g;s/\$(MBWM2_API_VERSION)/@MBWM2_API_VERSION@/g;s/_LIBRARIES/_LTLIBRARIES/g;s/_a_/_la_/g;s/\.a/.la/g' $(find -name Makefile.am) +Index: matchbox/client-types/Makefile.am +=================================================================== +--- matchbox/client-types/Makefile.am (revision 2087) ++++ matchbox/client-types/Makefile.am (working copy) +@@ -1,15 +1,15 @@ + if ENABLE_COMPOSITE +-compmgr_libs = libmb-wm-client-override.a ++compmgr_libs = libmb-wm-client-override.la + compmgr_ltlibs = libmb-wm-client-override.la + endif + +-THEME_LIBS = @MBWM_THEME_LIBS@/libmb-theme.a ++THEME_LIBS = $(MBWM_THEME_LIBS)/libmb-theme.la + +-INCLUDES = @MBWM_INCS@ @MBWM_CFLAGS@ ++INCLUDES = $(MBWM_INCS) $(MBWM_CFLAGS) + LDADD =$(THEME_LIBS) + DEPENDENCIES = $(THEME_LIBS) + +-pkgincludedir = $(includedir)/@MBWM2_INCDIR@/client-types ++pkgincludedir = $(includedir)/$(MBWM2_INCDIR)/client-types + + if ENABLE_LIBMATCHBOX + pkginclude_HEADERS = mb-wm-client-app.h \ +Index: matchbox/comp-mgr/Makefile.am +=================================================================== +--- matchbox/comp-mgr/Makefile.am (revision 2087) ++++ matchbox/comp-mgr/Makefile.am (working copy) +@@ -12,7 +12,7 @@ + endif + endif + +-pkgincludedir = $(includedir)/@MBWM2_INCDIR@/comp-mgr ++pkgincludedir = $(includedir)/$(MBWM2_INCDIR)/comp-mgr + + if ENABLE_LIBMATCHBOX + pkginclude_HEADERS = mb-wm-comp-mgr-clutter.h mb-wm-comp-mgr.h mb-wm-comp-mgr-xrender.h +@@ -21,7 +21,7 @@ + libmatchbox_window_manager_2_compmgr_la_SOURCES = $(core_h) $(core_c) \ + $(xrender_h) $(xrender_c) \ + $(clutter_h) $(clutter_c) +-libmatchbox_window_manager_2_compmgr_la_CFLAGS = @MBWM_INCS@ @MBWM_CFLAGS@ ++libmatchbox_window_manager_2_compmgr_la_CFLAGS = $(MBWM_INCS) $(MBWM_CFLAGS) + + MAINTAINERCLEANFILES = Makefile.in + +Index: matchbox/core/Makefile.am +=================================================================== +--- matchbox/core/Makefile.am (revision 2087) ++++ matchbox/core/Makefile.am (working copy) +@@ -37,13 +37,13 @@ + mb-wm-main-context.c \ + xas.c + +-pkgincludedir = $(includedir)/@MBWM2_INCDIR@/core ++pkgincludedir = $(includedir)/$(MBWM2_INCDIR)/core + + if ENABLE_LIBMATCHBOX + pkginclude_HEADERS = $(core_h) + endif + noinst_LTLIBRARIES = libmatchbox-window-manager-2-core.la + libmatchbox_window_manager_2_core_la_SOURCES = $(core_h) $(core_c) +-libmatchbox_window_manager_2_core_la_CFLAGS = @MBWM_INCS@ @MBWM_CFLAGS@ ++libmatchbox_window_manager_2_core_la_CFLAGS = $(MBWM_INCS) $(MBWM_CFLAGS) + + MAINTAINERCLEANFILES = Makefile.in +Index: matchbox/theme-engines/Makefile.am +=================================================================== +--- matchbox/theme-engines/Makefile.am (revision 2087) ++++ matchbox/theme-engines/Makefile.am (working copy) +@@ -5,7 +5,7 @@ + + COMMON_SRC = mb-wm-theme.h mb-wm-theme.c mb-wm-theme-xml.h mb-wm-theme-xml.c + +-pkgincludedir = $(includedir)/@MBWM2_INCDIR@/theme-engines ++pkgincludedir = $(includedir)/$(MBWM2_INCDIR)/theme-engines + + if ENABLE_LIBMATCHBOX + pkginclude_HEADERS = mb-wm-theme.h mb-wm-theme-png.h mb-wm-theme-xml.h +@@ -14,6 +14,6 @@ + libmb_theme_la_SOURCES = $(COMMON_SRC) $(PNG_SRC) + libmb_theme_la_CFLAGS = + +-INCLUDES = @MBWM_INCS@ @MBWM_CFLAGS@ -DDATADIR=\"$(datadir)\" ++INCLUDES = $(MBWM_INCS) $(MBWM_CFLAGS) -DDATADIR=\"$(datadir)\" + + MAINTAINERCLEANFILES = config.h.in Makefile.in +Index: matchbox/Makefile.am +=================================================================== +--- matchbox/Makefile.am (revision 2087) ++++ matchbox/Makefile.am (working copy) +@@ -7,7 +7,7 @@ + + MAINTAINERCLEANFILES = Makefile.in + +-pkgincludedir = $(includedir)/@MBWM2_INCDIR@ ++pkgincludedir = $(includedir)/$(MBWM2_INCDIR) + + SUBDIRS = core client-types theme-engines $(comp) managers + +Index: matchbox/managers/simple/Makefile.am +=================================================================== +--- matchbox/managers/simple/Makefile.am (revision 2087) ++++ matchbox/managers/simple/Makefile.am (working copy) +@@ -1,22 +1,22 @@ + INCLUDES = \ +- @MBWM_INCS@ \ +- @MBWM_CFLAGS@ ++ $(MBWM_INCS) \ ++ $(MBWM_CFLAGS) + + CLIENT_LIBS = \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-panel.la \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-dialog.la \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-note.la \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-app.la \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-input.la \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-desktop.la \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-menu.la ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-panel.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-dialog.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-note.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-app.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-input.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-desktop.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-menu.la + + if ENABLE_COMPOSITE +-COMPMGR_LIBS=@MBWM_COMPMGR_BUILDDIR@/libmatchbox-window-manager-2-compmgr.la \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-override.la ++COMPMGR_LIBS=$(MBWM_COMPMGR_BUILDDIR)/libmatchbox-window-manager-2-compmgr.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-override.la + endif + +-THEME_LIBS = @MBWM_THEME_BUILDDIR@/libmb-theme.la ++THEME_LIBS = $(MBWM_THEME_BUILDDIR)/libmb-theme.la + + bin_PROGRAMS = matchbox-window-manager-2-simple + +@@ -28,15 +28,15 @@ + $(LDFLAGS) + + matchbox_window_manager_2_simple_LDADD = \ +- @MBWM_CORE_LIB@ \ ++ $(MBWM_CORE_LIB) \ + $(THEME_LIBS) \ + $(CLIENT_LIBS) \ + $(COMPMGR_LIBS) \ +- @MBWM_LIBS@ ++ $(MBWM_LIBS) + + + matchbox_window_manager_2_simple_DEPENDENCIES = \ +- @MBWM_CORE_LIB@ \ ++ $(MBWM_CORE_LIB) \ + $(THEME_LIBS) \ + $(CLIENT_LIBS) \ + $(COMPMGR_LIBS) +Index: matchbox/managers/maemo/Makefile.am +=================================================================== +--- matchbox/managers/maemo/Makefile.am (revision 2087) ++++ matchbox/managers/maemo/Makefile.am (working copy) +@@ -1,23 +1,23 @@ + SUBDIRS = theme + + INCLUDES = \ +- @MBWM_INCS@ \ +- @MBWM_CFLAGS@ ++ $(MBWM_INCS) \ ++ $(MBWM_CFLAGS) + + CLIENT_LIBS = \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-panel.a \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-dialog.a \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-note.a \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-app.a \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-input.a \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-desktop.a \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-menu.a ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-panel.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-dialog.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-note.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-app.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-input.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-desktop.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-menu.la + +-THEME_LIBS = @MBWM_THEME_BUILDDIR@/libmb-theme.a ++THEME_LIBS = $(MBWM_THEME_BUILDDIR)/libmb-theme.la + + if ENABLE_COMPOSITE +-COMPMGR_LIBS=@MBWM_COMPMGR_BUILDDIR@/libmatchbox-window-manager-2-compmgr.a \ +- @MBWM_CLIENT_BUILDDIR@/libmb-wm-client-override.a ++COMPMGR_LIBS=$(MBWM_COMPMGR_BUILDDIR)/libmatchbox-window-manager-2-compmgr.la \ ++ $(MBWM_CLIENT_BUILDDIR)/libmb-wm-client-override.la + endif + + bin_PROGRAMS = matchbox-window-manager-2-maemo +@@ -33,14 +33,14 @@ + $(LDFLAGS) + + matchbox_window_manager_2_maemo_LDADD = \ +- @MBWM_CORE_LIB@ \ ++ $(MBWM_CORE_LIB) \ + $(THEME_LIBS) \ + $(CLIENT_LIBS) \ + $(COMPMGR_LIBS) \ +- @MBWM_LIBS@ ++ $(MBWM_LIBS) + + matchbox_window_manager_2_maemo_DEPENDENCIES = \ +- @MBWM_CORE_LIB@ \ ++ $(MBWM_CORE_LIB) \ + $(THEME_LIBS) \ + $(CLIENT_LIBS) \ + $(COMPMGR_LIBS) +Index: data/Makefile.am +=================================================================== +--- data/Makefile.am (revision 2087) ++++ data/Makefile.am (working copy) +@@ -1,10 +1,10 @@ + SUBDIRS=themes + +-pcfiles = libmatchbox2-$(MBWM2_API_VERSION).pc \ ++pcfiles = libmatchbox2-@MBWM2_API_VERSION@.pc \ + libmatchbox2.pc + + # clutter-..pc - for generic dependencies +-libmatchbox2-$(MBWM2_API_VERSION).pc: libmatchbox2.pc ++libmatchbox2-@MBWM2_API_VERSION@.pc: libmatchbox2.pc + @cp $< $@ + + if ENABLE_LIBMATCHBOX diff --git a/recipes/matchbox2/matchbox-wm-2_svn.bb b/recipes/matchbox2/matchbox-wm-2_svn.bb new file mode 100644 index 0000000000..e5aefc02ab --- /dev/null +++ b/recipes/matchbox2/matchbox-wm-2_svn.bb @@ -0,0 +1,22 @@ +DEPENDS = "gtk+ startup-notification dbus dbus-glib" +PV = "0.1.0+svnr${SRCREV}" +PR = "r0" + +SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-window-manager-2;proto=http \ + file://fix-timeout-handler-free.patch;patch=1 \ + file://makefile-vars.patch;patch=1;pnum=0 \ +" +S = "${WORKDIR}/matchbox-window-manager-2" + +inherit autotools pkgconfig + +# FIXME: --enable-glib-main-loop causes hard grab-freeze +EXTRA_OECONF = "--with-gtk --with-pango --enable-matchbox-remote --enable-png-theme --enable-maemo-manager" + +do_install_append() { + mv ${D}${bindir}/matchbox-remote ${D}${bindir}/matchbox-remote-2 + # Without libmatchbox there are no includes and no libraries, just empty directories: + rm -r ${D}${includedir} ${D}${libdir} +} + +FILES_${PN} += "${datadir}/themes/*" diff --git a/recipes/matchbox2/matchbox2/defaults.in b/recipes/matchbox2/matchbox2/defaults.in new file mode 100644 index 0000000000..cc81daf0e4 --- /dev/null +++ b/recipes/matchbox2/matchbox2/defaults.in @@ -0,0 +1,43 @@ +# Defaults for matchbox2: @sysconfdir@/matchbox2/defaults or ~/.matchbox2/defaults +# It is read only if nor /etc/matchbox2/session nor ~/.matchbox2/session exists + +# Which launchers should be added to autolauncher: +LAUNCHERS="BROWSER MAILER VIEWER NAVIGATION TERMINAL" + +# Menus for particular autolaunchers (name of variable with trailing "S", first available wins) +BROWSERS="midori fennec kazehakase minimo gpe-mini-browser links firefox" +MAILERS="balsa claws-mail" +VIEWERS="gqview gpe-gallery" +NAVIGATIONS="tangogps navit gpsdrive viking" +TERMINALS="vte rxvt xterm" + +# Available applets: +# autolauncher (virtual launcher applet set defined above) +# battery (battery status, if APM or ACPI is available) +# brightness (brigthess display and setup, if available) +# clock (clock) +# launcher:desktop (laucher of .desktop files) +# notify (notification box) +# showdesktop (show launchers on matchbox desktop) +# startup (hourglass startup notification) +# startup-notify (notification message on startup) +# systray (system tray) +# windowselector[:[static-icon|dynamic-icon|icon-name|name]] (selector of existing windows) +# +# Applets on the left/top side: +START_APPLETS="showdesktop autolauncher startup" +# Applets on the right/bottom side: +END_APPLETS="windowselector clock battery systray" +# Use autolauncher for set of launchers defined above. + +# Available matchbox window managers: +# (simple|maemo) +MATCHBOX_WM="simple" + +# generic options for particular components: +# (see respective --help) +WM_OPTIONS="" +DESKTOP_OPTIONS="" +PANEL_OPTIONS="--titlebar" + +# and here you can run anything you want diff --git a/recipes/matchbox2/matchbox2/matchbox-session-2.in b/recipes/matchbox2/matchbox2/matchbox-session-2.in new file mode 100644 index 0000000000..6e13fe0d69 --- /dev/null +++ b/recipes/matchbox2/matchbox2/matchbox-session-2.in @@ -0,0 +1,81 @@ +#!/bin/sh + +# running desktop-specific daemons in system-wide init is a mis-conception: +killall mb-applet-startup-monitor 2>/dev/null + +# This should be resourced elsewhere: +if [ -e /etc/profile ] +then +. /etc/profile +fi +if [ -e $HOME/profile ] +then +. $HOME/.profile +fi + +if [ -e $HOME/.matchbox2/session ] +then + exec $HOME/.matchbox2/session +fi +if [ -e @sysconfdir@/matchbox2/session ] +then + exec @sysconfdir@/matchbox2/session +fi + +if [ -e @sysconfdir@/matchbox2/defaults ] +then + . @sysconfdir@/matchbox2/defaults +fi +if [ -e $HOME/.matchbox2/defaults ] +then + . $HOME/.matchbox2/defaults +fi + +for LAUNCHER in $LAUNCHERS ; do + eval MENU\=\""\$${LAUNCHER}S"\" + for APP in $MENU ; do + if test -f @datadir@/applications/$APP.desktop ; then + AUTOLAUNCHER_APPLETS="$AUTOLAUNCHER_APPLETS launcher:$APP" + break + fi + done +done + +AUTOLAUNCHER_CMD="" +for APPLET in $AUTOLAUNCHER_APPLETS ; do + if test -z "$AUTOLAUNCHER_CMD" ; then + AUTOLAUNCHER_CMD="$APPLET" + else + AUTOLAUNCHER_CMD="$AUTOLAUNCHER_CMD,$APPLET" + fi +done +START_CMD="" +for APPLET in $START_APPLETS ; do + if test "$APPLET" = "autolauncher" ; then + APPLET="$AUTOLAUNCHER_CMD" + fi + if test -z "$START_CMD" ; then + START_CMD=" --start-applets=$APPLET" + else + START_CMD="$START_CMD,$APPLET" + fi +done +END_CMD="" +for APPLET in $END_APPLETS ; do + if test "$APPLET" = "autolauncher" ; then + APPLET="$AUTOLAUNCHER_CMD" + fi + if test -z "$END_CMD" ; then + END_CMD=" --end-applets=$APPLET" + else + END_CMD="$END_CMD,$APPLET" + fi +done + +PANEL_OPTIONS="$PANEL_OPTIONS$START_CMD$END_CMD" + +matchbox-panel-2 $PANEL_OPTIONS & +sleep 2 +# matchbox-desktop-2 does not resize. Run it last. +( sleep 5 ; matchbox-desktop-2 $DESKTOP_OPTIONS )& +exec matchbox-window-manager-2-$MATCHBOX_WM $WM_OPTIONS $@ diff --git a/recipes/matchbox2/matchbox2_2.0.bb b/recipes/matchbox2/matchbox2_2.0.bb new file mode 100644 index 0000000000..1762ff4766 --- /dev/null +++ b/recipes/matchbox2/matchbox2_2.0.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "Metapackage for Matchbox2 suite" +LICENSE = "GPL" +DEPENDS = "matchbox-wm-2 matchbox-panel-2 matchbox-desktop-2" +RDEPENDS = "matchbox-wm-2 matchbox-panel-2 matchbox-desktop-2" +SECTION = "x11/wm" +PR = "r0" + +SRC_URI = "file://matchbox-session-2.in \ + file://defaults.in \ +" +inherit update-alternatives + +ALTERNATIVE_NAME = "x-window-manager" +ALTERNATIVE_LINK = "${bindir}/x-window-manager" +ALTERNATIVE_PATH = "${bindir}/matchbox-session-2" +ALTERNATIVE_PRIORITY = "20" + +do_compile() { + sed "s:@datadir@:${datadir}:g;s:@sysconfdir@:${sysconfdir}:g" <${WORKDIR}/matchbox-session-2.in >matchbox-session-2 + sed "s:@datadir@:${datadir}:g;s:@sysconfdir@:${sysconfdir}:g" <${WORKDIR}/defaults.in >defaults +} + +do_install() { + mkdir -p ${D}${bindir} ${D}${sysconfdir}/matchbox2 + install -m 0755 matchbox-session-2 ${D}${bindir} + install -m 0644 defaults ${D}${sysconfdir}/matchbox2 +} + +FILES_${PN} += "${sysconfdir}/matchbox2" -- cgit 1.2.3-korg