Merge lp:~adam-stokes/ubuntu/quantal/gnome-vfs/lp977940-multiarch into lp:ubuntu/quantal/gnome-vfs

Proposed by Adam Stokes
Status: Merged
Merge reported by: Stéphane Graber
Merged at revision: not available
Proposed branch: lp:~adam-stokes/ubuntu/quantal/gnome-vfs/lp977940-multiarch
Merge into: lp:ubuntu/quantal/gnome-vfs
Diff against target: 223 lines (+50/-17)
7 files modified
debian/changelog (+13/-0)
debian/control (+11/-3)
debian/control.in (+13/-4)
debian/libgnomevfs2-0.install (+3/-3)
debian/libgnomevfs2-dev.install (+5/-5)
debian/libgnomevfs2-extra.install (+1/-1)
debian/rules (+4/-1)
To merge this branch: bzr merge lp:~adam-stokes/ubuntu/quantal/gnome-vfs/lp977940-multiarch
Reviewer Review Type Date Requested Status
Adam Stokes (community) Needs Information
Jamie Strandboge Needs Information
Ubuntu branches Pending
Review via email: mp+114258@code.launchpad.net

Description of the change

- Forces libgnomevfs2-common to be replaced in order to clean out older files from libgnomevfs2-extra in a previous non multiarch package.
- Rebuilt with multi-arch support (LP: #977940)

To post a comment you must log in.
Revision history for this message
Jamie Strandboge (jdstrand) wrote :

While I have not done multiarch transitions myself, I read through the various documentation and wonder why libgnomevfs2-bin uses 'Multi-Arch: foreign'. Shouldn't this be 'Multi-Arch: same' because libgnomevfs2-bin provides binaries in /usr/bin (and in debian/control* uses 'Architecture: any' as opposed to 'all') and therfore does not meet the "one copy of this package, of any architecture, is sufficient to satisfy the needs of the runtime library package of every architecture" as per http://wiki.debian.org/Multiarch/Implementation#Converting_your_package_for_multiarch?

Otherwise, it looks like there is an approporiate use of Breaks, Replaces, Pre-Depends, etc. The files install to the correct places and the pc files look ok by visual inspection.

review: Needs Information
Revision history for this message
Adam Stokes (adam-stokes) wrote :

> While I have not done multiarch transitions myself, I read through the various
> documentation and wonder why libgnomevfs2-bin uses 'Multi-Arch: foreign'.
> Shouldn't this be 'Multi-Arch: same' because libgnomevfs2-bin provides
> binaries in /usr/bin (and in debian/control* uses 'Architecture: any' as
> opposed to 'all') and therfore does not meet the "one copy of this package, of
> any architecture, is sufficient to satisfy the needs of the runtime library
> package of every architecture" as per http://wiki.debian.org/Multiarch/Impleme
> ntation#Converting_your_package_for_multiarch?
>
> Otherwise, it looks like there is an approporiate use of Breaks, Replaces,
> Pre-Depends, etc. The files install to the correct places and the pc files
> look ok by visual inspection.

I'm still a little unclear behind the Multi-Arch: same vs. foreign. As I see it we mark the binary package as foreign stating that "The package is not co-installable with itself, but should be allowed to satisfy the dependencies of a package of a different arch from itself."

I'm probably mis-reading the documentation but if someone could verify Jamie's question I can make modifications if necessary.

review: Needs Information
Revision history for this message
Stéphane Graber (stgraber) wrote :

From the wiki:

Multi-Arch: same

    This package is co-installable with itself, but it must not be used to satisfy the dependency of any package of a different architecture from itself.

Multi-Arch: foreign

    The package is not co-installable with itself, but should be allowed to satisfy the dependencies of a package of a different arch from itself.

    If a package is declared Multi-Arch: foreign, preference should be given to a package for the native architecture if available; if it is not available, the package manager may automatically install any available package, regardless of architecture, or it may choose to make this an option controlled by user configuration.

Multi-Arch: allowed

    This permits the reverse-dependencies of the package to annotate their Depends: field to indicate that a foreign architecture version of the package satisfies the dependencies, but does not change the resolution of any existing dependencies. This value exists to prevent any packages from incorrectly annotating dependencies as being architecture-neutral without coordination with the maintainer of the depended-on package.

Multi-Arch: same should only be used when the package is co-installable with itself from another architecture, so it'd be wrong to use it for a package shipping stuff in /usr/bin.

Multi-Arch: foreign is however the right choice for a package shipping binaries in /usr/bin and that doesn't contain any library.

Revision history for this message
Adam Stokes (adam-stokes) wrote :

Waiting on rdepends testing to finish, it is suggested to wait for those results before ack.

Revision history for this message
Adam Stokes (adam-stokes) wrote :

rdeps tests:

./gnome-sharp2_2.24.2-2-amd64-20120808-1143:Status: successful
./gst-plugins-base0.10_0.10.36-1ubuntu1-amd64-20120808-1151:Status: successful
./shotwell_0.12.3-0ubuntu1-amd64-20120808-1250:Status: successful
./gnome-python_2.28.1+dfsg-1-amd64-20120808-1137:Status: successful
./inkscape_0.48.3.1-1ubuntu4-amd64-20120808-1203:Status: successful
./libgnomeui_2.24.5-2ubuntu2-amd64-20120808-1237:Status: successful
./libgnome_2.32.1-2ubuntu1-amd64-20120808-1232:Status: successful
./libgsf_1.14.21-2.1-amd64-20120808-1244:Status: successful

Revision history for this message
Stéphane Graber (stgraber) wrote :

Can you make sure all changes are covered in the changelog?

The Breaks/Replaces change isn't currently covered and neither is the versioned dependency on cdbs and dh (thouh these might have been required for the multi-arch pre-depends?)

36. By Adam Stokes

* Add breaks for libgnomevfs2-common << 2.24.4
* In addition to breaking on earlier versions we
  force libgnomevfs2-common to be reinstalled
  this ensures all library locations are properly created and files
  exist in their architecture specific installation.
* Update build deps version to receive the full support of multi-arch
  processing.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2011-10-18 16:34:00 +0000
3+++ debian/changelog 2012-08-10 13:20:34 +0000
4@@ -1,3 +1,16 @@
5+gnome-vfs (1:2.24.4-1ubuntu3) quantal; urgency=low
6+
7+ * Add breaks for libgnomevfs2-common << 2.24.4
8+ * In addition to breaking on earlier versions we
9+ force libgnomevfs2-common to be reinstalled
10+ this ensures all library locations are properly created and files
11+ exist in their architecture specific installation.
12+ * Update build deps version to receive the full support of multi-arch
13+ processing.
14+ * Rebuilt with multi-arch support (LP: #977940)
15+
16+ -- Adam Stokes <adam.stokes@canonical.com> Tue, 10 Jul 2012 14:19:59 -0400
17+
18 gnome-vfs (1:2.24.4-1ubuntu2) precise; urgency=low
19
20 * debian/control.in: Drop libgamin-dev build dependency and FAM support.
21
22=== modified file 'debian/control'
23--- debian/control 2011-10-18 16:34:00 +0000
24+++ debian/control 2012-08-10 13:20:34 +0000
25@@ -9,7 +9,7 @@
26 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
27 XSBC-Original-Maintainer: Josselin Mouette <joss@debian.org>
28 Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>, Emilio Pozuelo Monfort <pochu@debian.org>, Josselin Mouette <joss@debian.org>, Michael Biebl <biebl@debian.org>
29-Build-Depends: cdbs,
30+Build-Depends: cdbs (>= 0.4.93~),
31 dh-autoreconf,
32 gnome-common,
33 gtk-doc-tools (>= 1.0),
34@@ -19,7 +19,7 @@
35 libbz2-dev,
36 libsmbclient-dev,
37 gettext,
38- debhelper (>= 8),
39+ debhelper (>= 8.1.3~),
40 zlib1g-dev,
41 intltool (>= 0.35.0),
42 gnome-mime-data,
43@@ -38,7 +38,8 @@
44 Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-vfs/ubuntu
45
46 Package: libgnomevfs2-common
47-Architecture: all
48+Architecture: any
49+Multi-Arch: foreign
50 Depends: ${misc:Depends},
51 shared-mime-info
52 Conflicts: gnome-panel (<< 2.10.0),
53@@ -56,6 +57,8 @@
54
55 Package: libgnomevfs2-0
56 Architecture: any
57+Multi-Arch: same
58+Pre-Depends: ${misc:Pre-Depends}
59 Depends: ${shlibs:Depends},
60 ${misc:Depends},
61 dbus (>= 0.90),
62@@ -77,6 +80,7 @@
63
64 Package: libgnomevfs2-bin
65 Architecture: any
66+Multi-Arch: foreign
67 Depends: ${shlibs:Depends},
68 ${misc:Depends}
69 Replaces: libgnomevfs2-common (<< 2.12.2-4)
70@@ -92,6 +96,8 @@
71
72 Package: libgnomevfs2-extra
73 Architecture: any
74+Multi-Arch: same
75+Pre-Depends: ${misc:Pre-Depends}
76 Depends: ${shlibs:Depends},
77 ${misc:Depends},
78 libgnomevfs2-common (>= ${gnome:Version}),
79@@ -132,7 +138,9 @@
80
81 Package: libgnomevfs2-dev
82 Architecture: any
83+Multi-Arch: same
84 Section: libdevel
85+Pre-Depends: ${misc:Pre-Depends}
86 Depends: libgnomevfs2-0 (= ${binary:Version}),
87 ${misc:Depends},
88 libgconf2-dev (>= 2.8.0-1),
89
90=== modified file 'debian/control.in'
91--- debian/control.in 2011-10-18 16:34:00 +0000
92+++ debian/control.in 2012-08-10 13:20:34 +0000
93@@ -4,7 +4,7 @@
94 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
95 XSBC-Original-Maintainer: Josselin Mouette <joss@debian.org>
96 Uploaders: @GNOME_TEAM@
97-Build-Depends: cdbs,
98+Build-Depends: cdbs (>= 0.4.93~),
99 dh-autoreconf,
100 gnome-common,
101 gtk-doc-tools (>= 1.0),
102@@ -14,7 +14,7 @@
103 libbz2-dev,
104 libsmbclient-dev,
105 gettext,
106- debhelper (>= 8),
107+ debhelper (>= 8.1.3~),
108 zlib1g-dev,
109 intltool (>= 0.35.0),
110 gnome-mime-data,
111@@ -33,7 +33,8 @@
112 Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-vfs/ubuntu
113
114 Package: libgnomevfs2-common
115-Architecture: all
116+Architecture: any
117+Multi-Arch: foreign
118 Depends: ${misc:Depends},
119 shared-mime-info
120 Conflicts: gnome-panel (<< 2.10.0),
121@@ -51,6 +52,8 @@
122
123 Package: libgnomevfs2-0
124 Architecture: any
125+Multi-Arch: same
126+Pre-Depends: ${misc:Pre-Depends}
127 Depends: ${shlibs:Depends},
128 ${misc:Depends},
129 dbus (>= 0.90),
130@@ -58,7 +61,8 @@
131 libgnomevfs2-common (<< ${gnome:NextVersion})
132 Recommends: dbus-x11
133 Suggests: libgnomevfs2-bin, libgnomevfs2-extra, gamin | fam
134-Replaces: libgnomevfs2-common (<< 2.12.2-4)
135+Replaces: libgnomevfs2-common (<< 1:2.24.4-1)
136+Breaks: libgnomevfs2-common (<< 1:2.24.4-1)
137 Conflicts: libbonobo2-0 (<< 2.15.0)
138 Description: GNOME Virtual File System (runtime libraries)
139 GNOME VFS is the GNOME virtual file system. It is the foundation of the
140@@ -72,6 +76,7 @@
141
142 Package: libgnomevfs2-bin
143 Architecture: any
144+Multi-Arch: foreign
145 Depends: ${shlibs:Depends},
146 ${misc:Depends}
147 Replaces: libgnomevfs2-common (<< 2.12.2-4)
148@@ -87,6 +92,8 @@
149
150 Package: libgnomevfs2-extra
151 Architecture: any
152+Multi-Arch: same
153+Pre-Depends: ${misc:Pre-Depends}
154 Depends: ${shlibs:Depends},
155 ${misc:Depends},
156 libgnomevfs2-common (>= ${gnome:Version}),
157@@ -127,7 +134,9 @@
158
159 Package: libgnomevfs2-dev
160 Architecture: any
161+Multi-Arch: same
162 Section: libdevel
163+Pre-Depends: ${misc:Pre-Depends}
164 Depends: libgnomevfs2-0 (= ${binary:Version}),
165 ${misc:Depends},
166 libgconf2-dev (>= 2.8.0-1),
167
168=== modified file 'debian/libgnomevfs2-0.install'
169--- debian/libgnomevfs2-0.install 2008-11-12 17:28:27 +0000
170+++ debian/libgnomevfs2-0.install 2012-08-10 13:20:34 +0000
171@@ -1,3 +1,3 @@
172-debian/tmp/usr/lib/libgnomevfs-2.so.*
173-debian/tmp/usr/lib/gnome-vfs-2.0/gnome-vfs-daemon
174-debian/tmp/usr/lib/gnome-vfs-2.0/modules/lib{network,file,tar,computer,gzip,vfs-test,sftp,dns-sd}.so
175+debian/tmp/usr/lib/*/libgnomevfs-2.so.*
176+debian/tmp/usr/lib/*/gnome-vfs-2.0/gnome-vfs-daemon
177+debian/tmp/usr/lib/*/gnome-vfs-2.0/modules/lib{network,file,tar,computer,gzip,vfs-test,sftp,dns-sd}.so
178
179=== modified file 'debian/libgnomevfs2-dev.install'
180--- debian/libgnomevfs2-dev.install 2008-11-12 17:28:27 +0000
181+++ debian/libgnomevfs2-dev.install 2012-08-10 13:20:34 +0000
182@@ -1,7 +1,7 @@
183 debian/tmp/usr/include
184-debian/tmp/usr/lib/libgnomevfs-2.so
185-debian/tmp/usr/lib/libgnomevfs-2.la
186-debian/tmp/usr/lib/libgnomevfs-2.a
187-debian/tmp/usr/lib/pkgconfig
188-debian/tmp/usr/lib/gnome-vfs-2.0/include
189+debian/tmp/usr/lib/*/libgnomevfs-2.so
190+debian/tmp/usr/lib/*/libgnomevfs-2.la
191+debian/tmp/usr/lib/*/libgnomevfs-2.a
192+debian/tmp/usr/lib/*/pkgconfig
193+debian/tmp/usr/lib/*/gnome-vfs-2.0/include
194 debian/tmp/usr/share/gtk-doc/html/gnome-vfs-2.0/* usr/share/doc/libgnomevfs2-common/html/
195
196=== modified file 'debian/libgnomevfs2-extra.install'
197--- debian/libgnomevfs2-extra.install 2008-11-12 17:28:27 +0000
198+++ debian/libgnomevfs2-extra.install 2012-08-10 13:20:34 +0000
199@@ -1,2 +1,2 @@
200-debian/tmp/usr/lib/gnome-vfs-2.0/modules/lib{bzip2,smb,http,ftp}.so
201+debian/tmp/usr/lib/*/gnome-vfs-2.0/modules/lib{bzip2,smb,http,ftp}.so
202 debian/extra-modules.conf /etc/gnome-vfs-2.0/modules/
203
204=== modified file 'debian/rules'
205--- debian/rules 2011-06-10 17:38:40 +0000
206+++ debian/rules 2012-08-10 13:20:34 +0000
207@@ -19,12 +19,15 @@
208 #debug lib
209 DEB_DH_STRIP_ARGS := --dbg-package=libgnomevfs2-0-dbg
210
211+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
212+
213 DEB_CONFIGURE_EXTRA_FLAGS := --enable-gtk-doc \
214 --enable-gnutls \
215 --enable-avahi \
216 --disable-openssl \
217 --disable-hal \
218- --libexecdir=/usr/lib/gnome-vfs-2.0 \
219+ --libexecdir=/usr/lib/$(DEB_HOST_MULTIARCH)/gnome-vfs-2.0 \
220+ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
221 $(HOST_ARCH_CONFIGURE_FLAGS)
222
223 DEB_CONFIGURE_SCRIPT_ENV += LDFLAGS="-Wl,--as-needed"

Subscribers

People subscribed via source and target branches

to all changes: