diff --git a/gnome-bluetooth-libgnome-control-center.patch b/gnome-bluetooth-libgnome-control-center.patch new file mode 100644 index 0000000..b228927 --- /dev/null +++ b/gnome-bluetooth-libgnome-control-center.patch @@ -0,0 +1,280 @@ +From e4ceaa852b837d0f52b391d75fdf1d786cceafba Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Fri, 15 Jul 2011 09:57:41 +0000 +Subject: properties: Work-around CC library disappearing + +I was asking for ridicule in the code dept. +--- +diff --git a/configure.ac b/configure.ac +index 5405a6b..87f52b9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -83,11 +83,12 @@ dnl Requires for the properties window + PANELS_DIR="${libdir}/control-center-1/panels" + AC_SUBST(PANELS_DIR) + ++dnl Missing libgnome-control-center ++dnl which will be resolved at run-time + PKG_CHECK_MODULES(PROPS, + dbus-glib-1 >= $DBUS_GLIB_REQUIRED + glib-2.0 >= $GLIB_REQUIRED +- gtk+-3.0 >= 2.90.7 +- libgnome-control-center) ++ gtk+-3.0 >= 2.90.7) + + dnl Requires for the applet + PKG_CHECK_MODULES(APPLET, +@@ -213,6 +214,7 @@ AC_OUTPUT(Makefile + applet/bluetooth-applet.desktop.in + properties/Makefile + properties/bluetooth-properties.desktop.in ++ properties/cut-n-paste/Makefile + wizard/Makefile + wizard/bluetooth-wizard.desktop.in + sendto/Makefile +diff --git a/properties/Makefile.am b/properties/Makefile.am +index 08b4b21..0a716f8 100644 +--- a/properties/Makefile.am ++++ b/properties/Makefile.am +@@ -1,4 +1,6 @@ + ++SUBDIRS = cut-n-paste ++ + ccpanelsdir = $(PANELS_DIR) + ccpanels_LTLIBRARIES = libbluetooth.la + +diff --git a/properties/cc-bluetooth-panel.c b/properties/cc-bluetooth-panel.c +index 26199f6..4aad398 100644 +--- a/properties/cc-bluetooth-panel.c ++++ b/properties/cc-bluetooth-panel.c +@@ -26,7 +26,7 @@ + #endif + + #include +-#include ++#include "cut-n-paste/cc-shell.h" + + #include "cc-bluetooth-panel.h" + +diff --git a/properties/cc-bluetooth-panel.h b/properties/cc-bluetooth-panel.h +index a074783..d3d7625 100644 +--- a/properties/cc-bluetooth-panel.h ++++ b/properties/cc-bluetooth-panel.h +@@ -25,7 +25,7 @@ + #ifndef _CC_BLUETOOTH_PANEL_H + #define _CC_BLUETOOTH_PANEL_H + +-#include ++#include "cut-n-paste/cc-panel.h" + + G_BEGIN_DECLS + +diff --git a/properties/cut-n-paste/Makefile.am b/properties/cut-n-paste/Makefile.am +new file mode 100644 +index 0000000..1e49a32 +--- a/properties/cut-n-paste/Makefile.am ++++ b/properties/cut-n-paste/Makefile.am +@@ -0,0 +1,3 @@ ++ ++ ++EXTRA_DIST = cc-shell.h cc-panel.h +diff --git a/properties/cut-n-paste/cc-panel.h b/properties/cut-n-paste/cc-panel.h +new file mode 100644 +index 0000000..57169a9 +--- a/properties/cut-n-paste/cc-panel.h ++++ b/properties/cut-n-paste/cc-panel.h +@@ -0,0 +1,81 @@ ++/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- ++ * ++ * Copyright (C) 2010 Red Hat, Inc. ++ * Copyright (C) 2010 Intel, Inc ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * Authors: William Jon McCann ++ * Thomas Wood ++ */ ++ ++ ++#ifndef __CC_PANEL_H ++#define __CC_PANEL_H ++ ++#include ++#include ++ ++ ++G_BEGIN_DECLS ++ ++#define CC_TYPE_PANEL (cc_panel_get_type ()) ++#define CC_PANEL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_TYPE_PANEL, CcPanel)) ++#define CC_PANEL_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), CC_TYPE_PANEL, CcPanelClass)) ++#define CC_IS_PANEL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_TYPE_PANEL)) ++#define CC_IS_PANEL_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_TYPE_PANEL)) ++#define CC_PANEL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_TYPE_PANEL, CcPanelClass)) ++ ++typedef struct CcPanelPrivate CcPanelPrivate; ++ ++typedef struct _CcPanel CcPanel; ++typedef struct _CcPanelClass CcPanelClass; ++ ++/* cc-shell.h requires CcPanel, so make sure it is defined first */ ++#include ++ ++/** ++ * CcPanel: ++ * ++ * The contents of this struct are private and should not be accessed directly. ++ */ ++struct _CcPanel ++{ ++ /*< private >*/ ++ GtkBin parent; ++ CcPanelPrivate *priv; ++}; ++/** ++ * CcPanelClass: ++ * ++ * The contents of this struct are private and should not be accessed directly. ++ */ ++struct _CcPanelClass ++{ ++ /*< private >*/ ++ GtkBinClass parent_class; ++ ++ GPermission * (* get_permission) (CcPanel *panel); ++}; ++ ++GType cc_panel_get_type (void); ++ ++CcShell* cc_panel_get_shell (CcPanel *panel); ++ ++GPermission *cc_panel_get_permission (CcPanel *panel); ++ ++G_END_DECLS ++ ++#endif /* __CC_PANEL_H */ +diff --git a/properties/cut-n-paste/cc-shell.h b/properties/cut-n-paste/cc-shell.h +new file mode 100644 +index 0000000..bc142f1 +--- a/properties/cut-n-paste/cc-shell.h ++++ b/properties/cut-n-paste/cc-shell.h +@@ -0,0 +1,105 @@ ++/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- ++ * ++ * Copyright (c) 2010 Intel, Inc. ++ * ++ * The Control Center is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by the ++ * Free Software Foundation; either version 2 of the License, or (at your ++ * option) any later version. ++ * ++ * The Control Center is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with the Control Center; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ * Author: Thomas Wood ++ */ ++ ++#ifndef _CC_SHELL_H ++#define _CC_SHELL_H ++ ++#include ++ ++G_BEGIN_DECLS ++ ++#define CC_TYPE_SHELL cc_shell_get_type() ++ ++#define CC_SHELL(obj) \ ++ (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ ++ CC_TYPE_SHELL, CcShell)) ++ ++#define CC_SHELL_CLASS(klass) \ ++ (G_TYPE_CHECK_CLASS_CAST ((klass), \ ++ CC_TYPE_SHELL, CcShellClass)) ++ ++#define CC_IS_SHELL(obj) \ ++ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ ++ CC_TYPE_SHELL)) ++ ++#define CC_IS_SHELL_CLASS(klass) \ ++ (G_TYPE_CHECK_CLASS_TYPE ((klass), \ ++ CC_TYPE_SHELL)) ++ ++#define CC_SHELL_GET_CLASS(obj) \ ++ (G_TYPE_INSTANCE_GET_CLASS ((obj), \ ++ CC_TYPE_SHELL, CcShellClass)) ++ ++ ++#define CC_SHELL_PANEL_EXTENSION_POINT "control-center-1" ++ ++typedef struct _CcShell CcShell; ++typedef struct _CcShellClass CcShellClass; ++typedef struct _CcShellPrivate CcShellPrivate; ++ ++/* cc-panel.h requires CcShell, so make sure they are defined first */ ++#include ++ ++/** ++ * CcShell: ++ * ++ * The contents of this struct are private should not be accessed directly. ++ */ ++struct _CcShell ++{ ++ /*< private >*/ ++ GObject parent; ++ ++ CcShellPrivate *priv; ++}; ++ ++/** ++ * CcShellClass: ++ * @set_active_panel_from_id: virtual function to set the active panel from an ++ * id string ++ * ++ */ ++struct _CcShellClass ++{ ++ /*< private >*/ ++ GObjectClass parent_class; ++ ++ /*< public >*/ ++ /* vfuncs */ ++ gboolean (*set_active_panel_from_id) (CcShell *shell, ++ const gchar *id, ++ GError **error); ++ GtkWidget * (*get_toplevel) (CcShell *shell); ++}; ++ ++GType cc_shell_get_type (void) G_GNUC_CONST; ++ ++CcPanel* cc_shell_get_active_panel (CcShell *shell); ++void cc_shell_set_active_panel (CcShell *shell, ++ CcPanel *panel); ++gboolean cc_shell_set_active_panel_from_id (CcShell *shell, ++ const gchar *id, ++ GError **error); ++GtkWidget * cc_shell_get_toplevel (CcShell *shell); ++ ++G_END_DECLS ++ ++#endif /* _CC_SHELL_H */ +-- +cgit v0.9 diff --git a/gnome-bluetooth.changes b/gnome-bluetooth.changes index 7e89649..2d937fa 100644 --- a/gnome-bluetooth.changes +++ b/gnome-bluetooth.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Aug 3 07:50:11 CEST 2011 - vuntz@opensuse.org + +- Add gnome-bluetooth-libgnome-control-center.patch: the new + gnome-control-center doesn't install libgnome-control-center + development files, so work around this. +- Add gnome-common BuildRequires and call to gnome-autogen.sh, + needed for the patch. +- Remove now unneeded pkgconfig(libgnome-control-center) + BuildRequires. + ------------------------------------------------------------------- Mon Jul 4 14:16:45 CEST 2011 - vuntz@opensuse.org diff --git a/gnome-bluetooth.spec b/gnome-bluetooth.spec index ff9c4dc..cb7ff60 100644 --- a/gnome-bluetooth.spec +++ b/gnome-bluetooth.spec @@ -28,7 +28,11 @@ Source: http://download.gnome.org/sources/gnome-bluetooth/3.1/%{name}-%{ Source1: 61-gnome-bluetooth-rfkill.rules # PATCH-MISSING-TAG -- See http://en.opensuse.org/Packaging/Patches Patch0: lxde-support.patch +# PATCH-FIX-UPSTREAM gnome-bluetooth-libgnome-control-center.patch vuntz@opensuse.org -- Work-around disappearing libgnome-control-center-devel not existing, taken from git +Patch1: gnome-bluetooth-libgnome-control-center.patch BuildRequires: fdupes +# Needed for patch1 +BuildRequires: gnome-common BuildRequires: gnome-doc-utils-devel BuildRequires: gobject-introspection-devel BuildRequires: intltool @@ -37,7 +41,6 @@ BuildRequires: translation-update-upstream BuildRequires: update-desktop-files BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(gtk+-3.0) -BuildRequires: pkgconfig(libgnome-control-center) BuildRequires: pkgconfig(nautilus-sendto) %if 0%{?BUILD_FROM_VCS} BuildRequires: gnome-common @@ -113,12 +116,14 @@ send files over bluetooth. %setup -q translation-update-upstream %patch0 -p1 +%patch1 -p1 %if 0%{?BUILD_FROM_VCS} [ -x ./autogen.sh ] && NOCONFIGURE=1 ./autogen.sh %endif %build +NOCONFIGURE=1 gnome-autogen.sh %configure \ --disable-icon-update \ --disable-scrollkeeper \ @@ -188,6 +193,8 @@ rm -rf %{buildroot} %{_datadir}/gnome-bluetooth/ %{_datadir}/icons/hicolor/*/*/bluetooth* %{_mandir}/man1/bluetooth-* +%dir %{_libdir}/control-center-1 +%dir %{_libdir}/control-center-1/panels %{_libdir}/control-center-1/panels/libbluetooth.so # Own the plugin directory, but exclude the plugin library itself %dir %{_libdir}/gnome-bluetooth