[opensuse-packaging] Build failures because of GNOME 3, and how to fix them
Hi all, GNOME 3 should reach Factory soon as it got pushed this morning. Since that's a big change, it will likely have some impact in terms of build failures, and create some new ones in Factory. Here are the common cases that should help you fix those issues. If you hit something else, don't hesitate to ask the GNOME team for help. Common causes for build failures ================================ a) Some devel packages got renamed Because we have both gtk2 and gtk3 versions of some libraries, some devel packages have been renamed. For example, what used to be gtksourceview-devel in 11.4 is now gtksourceview2-devel. Same for libunique-devel (now libunique1-devel), libwnck-devel (now libwnck2-devel), and more. The solution here is to move to pkgconfig() BuildRequires: the devel package renaming won't have an impact anymore. This is available since openSUSE 11.3, if I'm not mistaken. For instance, instead of using BuildRequires: gtksourceview-devel you would use: BuildRequires: pkgconfig(gtksourceview-2.0) gtksourceview-2.0 is the basename (without the .pc extension) of the pkg-config file provided by the library. b) configure fails, complaining about a library that cannot be found It's obviously hard to know what the exact issue is, but it's possible that you were relying on the fact that one of your BuildRequires was requiring a package that should have been in your BuildRequires (a direct dependency of your package). So it was working before, but that was a bit lucky. The solution here is to explicitly list all the build dependencies as BuildRequires, instead of relying on another package to bring them in (unless some well-known cases, like glibc-devel, or the glib2-devel/pkgconfig(glib-2.0) when you have GTK+ as BuildRequires, etc.) c) NetworkManager API changed With the move to NetworkManager 0.9, some API got changed. I'm not aware of any good guideline on how to fix this; I'd advise to check upstream in git/svn if there's a fix for this. Else, ping us. But that shouldn't affect too many packages, hopefully. d) libnotify API changed A few functions were removed, and an argument to notify_notification_new() was removed. The solution for this issue is not too hard. The first thing to do is to check upstream if a fix got committed already. Else, a patch can be easily written. An example can be found at: https://build.opensuse.org/stage/package/view_file?file=tsclient-libnotify07.patch&package=tsclient&project=GNOME%3AApps e) Package tries to build a gnome-panel applet Because of the port to GTK+ 3 and D-Bus, the libpanel-applet API has changed, and some porting is needed. This is not a trivial task, although it's definitely doable. It's unclear to me how many packages outside of GNOME:Apps/GNOME:Factory are affected. Note that it can affect some python apps that need the gnomeapplet module (which isn't built anymore). There are several solutions: + look what upstream did in git/svn, and: - if they removed it, just stop building the applet - if they ported it, take the patch and apply it + if nothing is done, ping me so I know how many packages are affected. I might invest time in writing a compatibility layer if it turns out to be needed. Thanks, Vincent -- Les gens heureux ne sont pas pressés. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Mon, 2011-05-02 at 12:09 +0200, Vincent Untz wrote:
d) libnotify API changed
A few functions were removed, and an argument to notify_notification_new() was removed.
The solution for this issue is not too hard. The first thing to do is to check upstream if a fix got committed already. Else, a patch can be easily written. An example can be found at: https://build.opensuse.org/stage/package/view_file?file=tsclient-libnotify07.patch&package=tsclient&project=GNOME%3AApps
A different way for the same is to do what most upstream projects seem to be merging: Given that libnotify 0.7.0 (and newer) changed the API call for notify_notification_new to require one parameter less, and given that NOTIFY_CHECK_VERSION() was introduce a little bit late (in libnotify 0.5.0 actually), you can use these samples: Introduce the NOTIFY_CHECK_VERSION macro. We do not know which version it is, so we assume "0" +ifndef NOTIFY_CHECK_VERSION +define NOTIFY_CHECK_VERSION(x,y,z) 0 +endif Then the various API calls can be captured like this: +if !NOTIFY_CHECK_VERSION(0,7,0) n = notify_notification_new (summary, body, GTK_STOCK_DIALOG_INFO, NULL); +#else + n = notify_notification_new (summary, body, GTK_STOCK_DIALOG_INFO); +#endif Of course which one looks neater or not is in the eye of the viewer. It's just that introducing the NOTIFY_CHECK_VERSION makes the code more 'future readable' as it's how most future checks for LIBNOTIFY will be handled.. so let's start this now. Dominique -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Am Montag, 2. Mai 2011, 12:09:28 schrieb Vincent Untz: ...
c) NetworkManager API changed
With the move to NetworkManager 0.9, some API got changed. I'm not aware of any good guideline on how to fix this; I'd advise to check upstream in git/svn if there's a fix for this. Else, ping us. But that shouldn't affect too many packages, hopefully.
As far as I read there is no networkmanager 0.9 support in KDE and other desktops so far. And it is unlikely to come soon. Does this mean that factory will not be usable for non-Gnome people for an unknown amount of time ? Could we have both versions in parallel ? -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On 05/02/2011 01:11 PM, Adrian Schröter wrote:
Am Montag, 2. Mai 2011, 12:09:28 schrieb Vincent Untz: ...
c) NetworkManager API changed
With the move to NetworkManager 0.9, some API got changed. I'm not aware of any good guideline on how to fix this; I'd advise to check upstream in git/svn if there's a fix for this. Else, ping us. But that shouldn't affect too many packages, hopefully.
As far as I read there is no networkmanager 0.9 support in KDE and other desktops so far. And it is unlikely to come soon.
Does this mean that factory will not be usable for non-Gnome people for an unknown amount of time ?
Could we have both versions in parallel ?
A KDE fix is in the works and tested to work fine AFAIK. I don't know other environments. Regards. -- İsmail Dönmez - openSUSE Booster SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Maxfeldstr. 5, 90409 Nürnberg, Germany -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Le lundi 02 mai 2011 à 13:18 +0200, Ismail Dönmez a écrit :
On 05/02/2011 01:11 PM, Adrian Schröter wrote:
Am Montag, 2. Mai 2011, 12:09:28 schrieb Vincent Untz: ...
c) NetworkManager API changed
With the move to NetworkManager 0.9, some API got changed. I'm not aware of any good guideline on how to fix this; I'd advise to check upstream in git/svn if there's a fix for this. Else, ping us. But that shouldn't affect too many packages, hopefully.
As far as I read there is no networkmanager 0.9 support in KDE and other desktops so far. And it is unlikely to come soon.
Does this mean that factory will not be usable for non-Gnome people for an unknown amount of time ?
Could we have both versions in parallel ?
A KDE fix is in the works and tested to work fine AFAIK. I don't know other environments.
Most (if not all) other environments are using nm-applet which is still provided by NetworkManager-gnome package and works fine. -- Frederic Crozat <fcrozat@novell.com> Novell -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Am Montag, 2. Mai 2011, 13:32:30 schrieb Frederic Crozat:
Le lundi 02 mai 2011 à 13:18 +0200, Ismail Dönmez a écrit :
On 05/02/2011 01:11 PM, Adrian Schröter wrote:
Am Montag, 2. Mai 2011, 12:09:28 schrieb Vincent Untz: ...
c) NetworkManager API changed
With the move to NetworkManager 0.9, some API got changed. I'm not aware of any good guideline on how to fix this; I'd advise to check upstream in git/svn if there's a fix for this. Else, ping us. But that shouldn't affect too many packages, hopefully.
As far as I read there is no networkmanager 0.9 support in KDE and other desktops so far. And it is unlikely to come soon.
Does this mean that factory will not be usable for non-Gnome people for an unknown amount of time ?
Could we have both versions in parallel ?
A KDE fix is in the works and tested to work fine AFAIK. I don't know other environments.
okay, could we wait for this first ?
Most (if not all) other environments are using nm-applet which is still provided by NetworkManager-gnome package and works fine.
that even fails to start here (either due to conflicts with kded and/or broken theming and other unknown "error 42" reason :/). -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Hi Adrian, Le lundi 02 mai 2011, à 12:08 +0200, Adrian Schröter a écrit :
Am Montag, 2. Mai 2011, 13:32:30 schrieb Frederic Crozat:
Le lundi 02 mai 2011 à 13:18 +0200, Ismail Dönmez a écrit :
On 05/02/2011 01:11 PM, Adrian Schröter wrote:
Am Montag, 2. Mai 2011, 12:09:28 schrieb Vincent Untz: ...
c) NetworkManager API changed
With the move to NetworkManager 0.9, some API got changed. I'm not aware of any good guideline on how to fix this; I'd advise to check upstream in git/svn if there's a fix for this. Else, ping us. But that shouldn't affect too many packages, hopefully.
As far as I read there is no networkmanager 0.9 support in KDE and other desktops so far. And it is unlikely to come soon.
Does this mean that factory will not be usable for non-Gnome people for an unknown amount of time ?
Could we have both versions in parallel ?
A KDE fix is in the works and tested to work fine AFAIK. I don't know other environments.
okay, could we wait for this first ?
We asked for feedback on opensuse-factory, and we were even told it's fine to go ahead. Cheers, Vincent -- Les gens heureux ne sont pas pressés. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
participants (5)
-
Adrian Schröter
-
Dimstar / Dominique Leuenberger
-
Frederic Crozat
-
Ismail Dönmez
-
Vincent Untz