Hello community,

here is the log from the commit of package libgpod for openSUSE:Factory
checked in at Thu Apr 7 10:11:48 CEST 2011.



--------
--- GNOME/libgpod/libgpod.changes       2011-03-28 21:12:12.000000000 +0200
+++ /mounts/work_src_done/STABLE/libgpod/libgpod.changes        2011-04-04 
23:50:26.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Apr  4 16:49:09 CDT 2011 - [email protected]
+
+- Fix Mono alignment issue causing broken C# bindings
+  + Add fix-mono-alignment.patch
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


New:
----
  fix-mono-alignment.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libgpod.spec ++++++
--- /var/tmp/diff_new_pack.qfLCZh/_old  2011-04-07 10:11:08.000000000 +0200
+++ /var/tmp/diff_new_pack.qfLCZh/_new  2011-04-07 10:11:08.000000000 +0200
@@ -20,12 +20,14 @@
 
 Name:           libgpod
 Version:        0.8.0
-Release:        7
+Release:        9
 Url:            http://www.gtkpod.org/libgpod.html
 Group:          System/Libraries
 License:        LGPLv2.1+
 Summary:        Library to Manipulate Songs and Playlists Stored on an iPod
 Source:         %{name}-%{version}.tar.bz2
+# PATCH-FIX-UPSTREAM fix-mono-alignment.patch -- in libgpod master, commit 
9a64ee60dd3e68c78292b97241616ac1d7a01c15
+Patch0:         fix-mono-alignment.patch
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  glib2-devel
@@ -144,6 +146,7 @@
 %lang_package
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 %configure --disable-silent-rules --with-pic \

++++++ fix-mono-alignment.patch ++++++
>From 9a64ee60dd3e68c78292b97241616ac1d7a01c15 Mon Sep 17 00:00:00 2001
From: Christian Krause <[email protected]>
Date: Thu, 6 Jan 2011 23:12:43 +0100
Subject: [PATCH] [mono] fix alignment issues on x86

---
 bindings/mono/Makefile.include            |    2 +-
 bindings/mono/libgpod-sharp/Artwork.cs    |    4 ++++
 bindings/mono/libgpod-sharp/Chapter.cs    |    4 ++++
 bindings/mono/libgpod-sharp/IpodInfo.cs   |    5 +++++
 bindings/mono/libgpod-sharp/PhotoAlbum.cs |    5 +++++
 bindings/mono/libgpod-sharp/Playlist.cs   |    5 +++++
 bindings/mono/libgpod-sharp/Track.cs      |    4 ++++
 configure.ac                              |    7 +++++++
 8 files changed, 35 insertions(+), 1 deletions(-)

diff --git a/bindings/mono/Makefile.include b/bindings/mono/Makefile.include
index 504b059..a587456 100644
--- a/bindings/mono/Makefile.include
+++ b/bindings/mono/Makefile.include
@@ -18,7 +18,7 @@ all: $(ASSEMBLY_FILE)
 $(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
 
 $(ASSEMBLY_FILE): $(SOURCES_BUILD)
-       $(MCS) -debug -unsafe -target:$(TARGET) -out:$@ $(LINK) $(SOURCES_BUILD)
+       $(MCS) $(GMCS_FLAGS) -debug -unsafe -target:$(TARGET) -out:$@ $(LINK) 
$(SOURCES_BUILD)
 
 EXTRA_DIST = $(SOURCES_BUILD)
 
diff --git a/bindings/mono/libgpod-sharp/Artwork.cs 
b/bindings/mono/libgpod-sharp/Artwork.cs
index 5be7369..5773e35 100644
--- a/bindings/mono/libgpod-sharp/Artwork.cs
+++ b/bindings/mono/libgpod-sharp/Artwork.cs
@@ -24,7 +24,11 @@ namespace GPod {
        using native;
        
        namespace native {
+#if ALIGNMENT_X86_LINUX
+               [StructLayout (LayoutKind.Sequential, Pack=4)]
+#else
                [StructLayout (LayoutKind.Sequential)]
+#endif
                internal struct Itdb_Artwork {
                        public IntPtr thumbnail;
                        public uint   id;
diff --git a/bindings/mono/libgpod-sharp/Chapter.cs 
b/bindings/mono/libgpod-sharp/Chapter.cs
index 66ca556..ea632cd 100644
--- a/bindings/mono/libgpod-sharp/Chapter.cs
+++ b/bindings/mono/libgpod-sharp/Chapter.cs
@@ -22,7 +22,11 @@ namespace GPod {
        using native;
        
        namespace native {
+#if ALIGNMENT_X86_LINUX
+               [StructLayout (LayoutKind.Sequential, Pack=4)]
+#else
                [StructLayout (LayoutKind.Sequential)]
+#endif
                internal struct Itdb_Chapter {
                        public uint   startpos;
                        public IntPtr chaptertitle;
diff --git a/bindings/mono/libgpod-sharp/IpodInfo.cs 
b/bindings/mono/libgpod-sharp/IpodInfo.cs
index 697041b..14024eb 100644
--- a/bindings/mono/libgpod-sharp/IpodInfo.cs
+++ b/bindings/mono/libgpod-sharp/IpodInfo.cs
@@ -23,6 +23,11 @@ namespace GPod {
        using System.Collections.Generic;
        
        namespace native {
+#if ALIGNMENT_X86_LINUX
+               [StructLayout (LayoutKind.Sequential, Pack=4)]
+#else
+               [StructLayout (LayoutKind.Sequential)]
+#endif
                internal struct Itdb_IpodInfo {
                        public IntPtr         model_number;
                        public double         capacity;
diff --git a/bindings/mono/libgpod-sharp/PhotoAlbum.cs 
b/bindings/mono/libgpod-sharp/PhotoAlbum.cs
index 42b2365..4a248ec 100644
--- a/bindings/mono/libgpod-sharp/PhotoAlbum.cs
+++ b/bindings/mono/libgpod-sharp/PhotoAlbum.cs
@@ -24,6 +24,11 @@ namespace GPod {
        using native;
        
        namespace native {
+#if ALIGNMENT_X86_LINUX
+               [StructLayout (LayoutKind.Sequential, Pack=4)]
+#else
+               [StructLayout (LayoutKind.Sequential)]
+#endif
                internal struct Itdb_PhotoAlbum {
                        public IntPtr photodb;
                        public IntPtr name;
diff --git a/bindings/mono/libgpod-sharp/Playlist.cs 
b/bindings/mono/libgpod-sharp/Playlist.cs
index 7ff5a68..48e4e32 100644
--- a/bindings/mono/libgpod-sharp/Playlist.cs
+++ b/bindings/mono/libgpod-sharp/Playlist.cs
@@ -24,6 +24,11 @@ namespace GPod {
        using native;
        
        namespace native {
+#if ALIGNMENT_X86_LINUX
+               [StructLayout (LayoutKind.Sequential, Pack=4)]
+#else
+               [StructLayout (LayoutKind.Sequential)]
+#endif
                internal struct Itdb_Playlist {
                        public IntPtr itdb;
                        public IntPtr name;
diff --git a/bindings/mono/libgpod-sharp/Track.cs 
b/bindings/mono/libgpod-sharp/Track.cs
index 434df7e..ce716fa 100644
--- a/bindings/mono/libgpod-sharp/Track.cs
+++ b/bindings/mono/libgpod-sharp/Track.cs
@@ -24,7 +24,11 @@ namespace GPod {
        
        
        namespace native {
+#if ALIGNMENT_X86_LINUX
+               [StructLayout (LayoutKind.Sequential, Pack=4)]
+#else
                [StructLayout (LayoutKind.Sequential)]
+#endif
                internal struct Itdb_Track {
                        public IntPtr           itdb;
                        public IntPtr           title;
diff --git a/configure.ac b/configure.ac
index a52ac3a..c3ea6c2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -315,6 +315,13 @@ dnl **************************************************
 MONO_MIN_VERSION=1.9.1
 GTK_SHARP_MIN_VERSION=2.12
 LIBGPOD_CHECK_MONO
+AC_CHECK_ALIGNOF([double])
+if test "$ac_cv_alignof_double" -eq 4 ; then
+    GMCS_FLAGS=-define:ALIGNMENT_X86_LINUX
+else
+    GMCS_FLAGS=
+fi
+AC_SUBST(GMCS_FLAGS)
 
 dnl warnings bits, copied from gnome-keyring configure.in
 dnl Turn on the additional warnings last, so -Werror doesn't affect other 
tests.
-- 
1.7.0.1


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to