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
=== modified file 'debian/changelog'
--- debian/changelog 2011-10-18 16:34:00 +0000
+++ debian/changelog 2012-08-10 13:20:34 +0000
@@ -1,3 +1,16 @@
1gnome-vfs (1:2.24.4-1ubuntu3) quantal; urgency=low
2
3 * Add breaks for libgnomevfs2-common << 2.24.4
4 * In addition to breaking on earlier versions we
5 force libgnomevfs2-common to be reinstalled
6 this ensures all library locations are properly created and files
7 exist in their architecture specific installation.
8 * Update build deps version to receive the full support of multi-arch
9 processing.
10 * Rebuilt with multi-arch support (LP: #977940)
11
12 -- Adam Stokes <adam.stokes@canonical.com> Tue, 10 Jul 2012 14:19:59 -0400
13
1gnome-vfs (1:2.24.4-1ubuntu2) precise; urgency=low14gnome-vfs (1:2.24.4-1ubuntu2) precise; urgency=low
215
3 * debian/control.in: Drop libgamin-dev build dependency and FAM support.16 * debian/control.in: Drop libgamin-dev build dependency and FAM support.
417
=== modified file 'debian/control'
--- debian/control 2011-10-18 16:34:00 +0000
+++ debian/control 2012-08-10 13:20:34 +0000
@@ -9,7 +9,7 @@
9Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>9Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
10XSBC-Original-Maintainer: Josselin Mouette <joss@debian.org>10XSBC-Original-Maintainer: Josselin Mouette <joss@debian.org>
11Uploaders: 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>11Uploaders: 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>
12Build-Depends: cdbs,12Build-Depends: cdbs (>= 0.4.93~),
13 dh-autoreconf,13 dh-autoreconf,
14 gnome-common,14 gnome-common,
15 gtk-doc-tools (>= 1.0),15 gtk-doc-tools (>= 1.0),
@@ -19,7 +19,7 @@
19 libbz2-dev,19 libbz2-dev,
20 libsmbclient-dev,20 libsmbclient-dev,
21 gettext,21 gettext,
22 debhelper (>= 8),22 debhelper (>= 8.1.3~),
23 zlib1g-dev,23 zlib1g-dev,
24 intltool (>= 0.35.0),24 intltool (>= 0.35.0),
25 gnome-mime-data,25 gnome-mime-data,
@@ -38,7 +38,8 @@
38Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-vfs/ubuntu38Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-vfs/ubuntu
3939
40Package: libgnomevfs2-common40Package: libgnomevfs2-common
41Architecture: all41Architecture: any
42Multi-Arch: foreign
42Depends: ${misc:Depends},43Depends: ${misc:Depends},
43 shared-mime-info44 shared-mime-info
44Conflicts: gnome-panel (<< 2.10.0),45Conflicts: gnome-panel (<< 2.10.0),
@@ -56,6 +57,8 @@
5657
57Package: libgnomevfs2-058Package: libgnomevfs2-0
58Architecture: any59Architecture: any
60Multi-Arch: same
61Pre-Depends: ${misc:Pre-Depends}
59Depends: ${shlibs:Depends},62Depends: ${shlibs:Depends},
60 ${misc:Depends},63 ${misc:Depends},
61 dbus (>= 0.90),64 dbus (>= 0.90),
@@ -77,6 +80,7 @@
7780
78Package: libgnomevfs2-bin81Package: libgnomevfs2-bin
79Architecture: any82Architecture: any
83Multi-Arch: foreign
80Depends: ${shlibs:Depends},84Depends: ${shlibs:Depends},
81 ${misc:Depends}85 ${misc:Depends}
82Replaces: libgnomevfs2-common (<< 2.12.2-4)86Replaces: libgnomevfs2-common (<< 2.12.2-4)
@@ -92,6 +96,8 @@
9296
93Package: libgnomevfs2-extra97Package: libgnomevfs2-extra
94Architecture: any98Architecture: any
99Multi-Arch: same
100Pre-Depends: ${misc:Pre-Depends}
95Depends: ${shlibs:Depends},101Depends: ${shlibs:Depends},
96 ${misc:Depends},102 ${misc:Depends},
97 libgnomevfs2-common (>= ${gnome:Version}),103 libgnomevfs2-common (>= ${gnome:Version}),
@@ -132,7 +138,9 @@
132138
133Package: libgnomevfs2-dev139Package: libgnomevfs2-dev
134Architecture: any140Architecture: any
141Multi-Arch: same
135Section: libdevel142Section: libdevel
143Pre-Depends: ${misc:Pre-Depends}
136Depends: libgnomevfs2-0 (= ${binary:Version}),144Depends: libgnomevfs2-0 (= ${binary:Version}),
137 ${misc:Depends},145 ${misc:Depends},
138 libgconf2-dev (>= 2.8.0-1),146 libgconf2-dev (>= 2.8.0-1),
139147
=== modified file 'debian/control.in'
--- debian/control.in 2011-10-18 16:34:00 +0000
+++ debian/control.in 2012-08-10 13:20:34 +0000
@@ -4,7 +4,7 @@
4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5XSBC-Original-Maintainer: Josselin Mouette <joss@debian.org>5XSBC-Original-Maintainer: Josselin Mouette <joss@debian.org>
6Uploaders: @GNOME_TEAM@6Uploaders: @GNOME_TEAM@
7Build-Depends: cdbs,7Build-Depends: cdbs (>= 0.4.93~),
8 dh-autoreconf,8 dh-autoreconf,
9 gnome-common,9 gnome-common,
10 gtk-doc-tools (>= 1.0),10 gtk-doc-tools (>= 1.0),
@@ -14,7 +14,7 @@
14 libbz2-dev,14 libbz2-dev,
15 libsmbclient-dev,15 libsmbclient-dev,
16 gettext,16 gettext,
17 debhelper (>= 8),17 debhelper (>= 8.1.3~),
18 zlib1g-dev,18 zlib1g-dev,
19 intltool (>= 0.35.0),19 intltool (>= 0.35.0),
20 gnome-mime-data,20 gnome-mime-data,
@@ -33,7 +33,8 @@
33Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-vfs/ubuntu33Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-vfs/ubuntu
3434
35Package: libgnomevfs2-common35Package: libgnomevfs2-common
36Architecture: all36Architecture: any
37Multi-Arch: foreign
37Depends: ${misc:Depends},38Depends: ${misc:Depends},
38 shared-mime-info39 shared-mime-info
39Conflicts: gnome-panel (<< 2.10.0),40Conflicts: gnome-panel (<< 2.10.0),
@@ -51,6 +52,8 @@
5152
52Package: libgnomevfs2-053Package: libgnomevfs2-0
53Architecture: any54Architecture: any
55Multi-Arch: same
56Pre-Depends: ${misc:Pre-Depends}
54Depends: ${shlibs:Depends},57Depends: ${shlibs:Depends},
55 ${misc:Depends},58 ${misc:Depends},
56 dbus (>= 0.90),59 dbus (>= 0.90),
@@ -58,7 +61,8 @@
58 libgnomevfs2-common (<< ${gnome:NextVersion})61 libgnomevfs2-common (<< ${gnome:NextVersion})
59Recommends: dbus-x1162Recommends: dbus-x11
60Suggests: libgnomevfs2-bin, libgnomevfs2-extra, gamin | fam63Suggests: libgnomevfs2-bin, libgnomevfs2-extra, gamin | fam
61Replaces: libgnomevfs2-common (<< 2.12.2-4)64Replaces: libgnomevfs2-common (<< 1:2.24.4-1)
65Breaks: libgnomevfs2-common (<< 1:2.24.4-1)
62Conflicts: libbonobo2-0 (<< 2.15.0)66Conflicts: libbonobo2-0 (<< 2.15.0)
63Description: GNOME Virtual File System (runtime libraries)67Description: GNOME Virtual File System (runtime libraries)
64 GNOME VFS is the GNOME virtual file system. It is the foundation of the68 GNOME VFS is the GNOME virtual file system. It is the foundation of the
@@ -72,6 +76,7 @@
7276
73Package: libgnomevfs2-bin77Package: libgnomevfs2-bin
74Architecture: any78Architecture: any
79Multi-Arch: foreign
75Depends: ${shlibs:Depends},80Depends: ${shlibs:Depends},
76 ${misc:Depends}81 ${misc:Depends}
77Replaces: libgnomevfs2-common (<< 2.12.2-4)82Replaces: libgnomevfs2-common (<< 2.12.2-4)
@@ -87,6 +92,8 @@
8792
88Package: libgnomevfs2-extra93Package: libgnomevfs2-extra
89Architecture: any94Architecture: any
95Multi-Arch: same
96Pre-Depends: ${misc:Pre-Depends}
90Depends: ${shlibs:Depends},97Depends: ${shlibs:Depends},
91 ${misc:Depends},98 ${misc:Depends},
92 libgnomevfs2-common (>= ${gnome:Version}),99 libgnomevfs2-common (>= ${gnome:Version}),
@@ -127,7 +134,9 @@
127134
128Package: libgnomevfs2-dev135Package: libgnomevfs2-dev
129Architecture: any136Architecture: any
137Multi-Arch: same
130Section: libdevel138Section: libdevel
139Pre-Depends: ${misc:Pre-Depends}
131Depends: libgnomevfs2-0 (= ${binary:Version}),140Depends: libgnomevfs2-0 (= ${binary:Version}),
132 ${misc:Depends},141 ${misc:Depends},
133 libgconf2-dev (>= 2.8.0-1),142 libgconf2-dev (>= 2.8.0-1),
134143
=== modified file 'debian/libgnomevfs2-0.install'
--- debian/libgnomevfs2-0.install 2008-11-12 17:28:27 +0000
+++ debian/libgnomevfs2-0.install 2012-08-10 13:20:34 +0000
@@ -1,3 +1,3 @@
1debian/tmp/usr/lib/libgnomevfs-2.so.*1debian/tmp/usr/lib/*/libgnomevfs-2.so.*
2debian/tmp/usr/lib/gnome-vfs-2.0/gnome-vfs-daemon2debian/tmp/usr/lib/*/gnome-vfs-2.0/gnome-vfs-daemon
3debian/tmp/usr/lib/gnome-vfs-2.0/modules/lib{network,file,tar,computer,gzip,vfs-test,sftp,dns-sd}.so3debian/tmp/usr/lib/*/gnome-vfs-2.0/modules/lib{network,file,tar,computer,gzip,vfs-test,sftp,dns-sd}.so
44
=== modified file 'debian/libgnomevfs2-dev.install'
--- debian/libgnomevfs2-dev.install 2008-11-12 17:28:27 +0000
+++ debian/libgnomevfs2-dev.install 2012-08-10 13:20:34 +0000
@@ -1,7 +1,7 @@
1debian/tmp/usr/include1debian/tmp/usr/include
2debian/tmp/usr/lib/libgnomevfs-2.so2debian/tmp/usr/lib/*/libgnomevfs-2.so
3debian/tmp/usr/lib/libgnomevfs-2.la3debian/tmp/usr/lib/*/libgnomevfs-2.la
4debian/tmp/usr/lib/libgnomevfs-2.a4debian/tmp/usr/lib/*/libgnomevfs-2.a
5debian/tmp/usr/lib/pkgconfig5debian/tmp/usr/lib/*/pkgconfig
6debian/tmp/usr/lib/gnome-vfs-2.0/include6debian/tmp/usr/lib/*/gnome-vfs-2.0/include
7debian/tmp/usr/share/gtk-doc/html/gnome-vfs-2.0/* usr/share/doc/libgnomevfs2-common/html/7debian/tmp/usr/share/gtk-doc/html/gnome-vfs-2.0/* usr/share/doc/libgnomevfs2-common/html/
88
=== modified file 'debian/libgnomevfs2-extra.install'
--- debian/libgnomevfs2-extra.install 2008-11-12 17:28:27 +0000
+++ debian/libgnomevfs2-extra.install 2012-08-10 13:20:34 +0000
@@ -1,2 +1,2 @@
1debian/tmp/usr/lib/gnome-vfs-2.0/modules/lib{bzip2,smb,http,ftp}.so1debian/tmp/usr/lib/*/gnome-vfs-2.0/modules/lib{bzip2,smb,http,ftp}.so
2debian/extra-modules.conf /etc/gnome-vfs-2.0/modules/2debian/extra-modules.conf /etc/gnome-vfs-2.0/modules/
33
=== modified file 'debian/rules'
--- debian/rules 2011-06-10 17:38:40 +0000
+++ debian/rules 2012-08-10 13:20:34 +0000
@@ -19,12 +19,15 @@
19#debug lib19#debug lib
20DEB_DH_STRIP_ARGS := --dbg-package=libgnomevfs2-0-dbg20DEB_DH_STRIP_ARGS := --dbg-package=libgnomevfs2-0-dbg
2121
22DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
23
22DEB_CONFIGURE_EXTRA_FLAGS := --enable-gtk-doc \24DEB_CONFIGURE_EXTRA_FLAGS := --enable-gtk-doc \
23 --enable-gnutls \25 --enable-gnutls \
24 --enable-avahi \26 --enable-avahi \
25 --disable-openssl \27 --disable-openssl \
26 --disable-hal \28 --disable-hal \
27 --libexecdir=/usr/lib/gnome-vfs-2.0 \29 --libexecdir=/usr/lib/$(DEB_HOST_MULTIARCH)/gnome-vfs-2.0 \
30 --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
28 $(HOST_ARCH_CONFIGURE_FLAGS)31 $(HOST_ARCH_CONFIGURE_FLAGS)
2932
30DEB_CONFIGURE_SCRIPT_ENV += LDFLAGS="-Wl,--as-needed"33DEB_CONFIGURE_SCRIPT_ENV += LDFLAGS="-Wl,--as-needed"

Subscribers

People subscribed via source and target branches

to all changes: