Merge lp:~roadmr/checkbox/ppppcc-glmark2-es2 into lp:~checkbox-dev/checkbox/ppa-packaging-plainbox-provider-canonical-certification
Status: | Merged |
---|---|
Approved by: | Zygmunt Krynicki |
Approved revision: | 31 |
Merged at revision: | 31 |
Proposed branch: | lp:~roadmr/checkbox/ppppcc-glmark2-es2 |
Merge into: | lp:~checkbox-dev/checkbox/ppa-packaging-plainbox-provider-canonical-certification |
Diff against target: |
40 lines (+13/-3) 1 file modified
debian/control (+13/-3) |
To merge this branch: | bzr merge lp:~roadmr/checkbox/ppppcc-glmark2-es2 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Zygmunt Krynicki (community) | Approve | ||
Review via email:
|
Commit message
Depend/install glmark2-es2 via an architecture-
The architecture-
while plainbox-
avoid making it Architecture: any, it was made to recommend a metapackage.
The tiny metapackage *is* arch-specific and itself depends selectively on
glmark2-es2; so on the designated architectures the metapackage will install
glmark2-es2, while on the other architectures it will have no dependencies
and just be installed by itself.
I also snuck in a couple minor debian/control syntax fixes.
Description of the change
OOps... the previous merge failed because an arch: all package can't have arch-specific dependencies. See the build log:
dpkg-gencontrol: error: the Recommends field contains an arch-specific dependency but the package is architecture all
The fix I'm proposing is to depend/install glmark2-es2 via an architecture-
The architecture-
while plainbox-
avoid making it Architecture: any, it was made to recommend a metapackage.
The tiny metapackage *is* arch-specific and itself depends selectively on
glmark2-es2; so on the designated architectures the metapackage will install
glmark2-es2, while on the other architectures it will have no dependencies
and just be installed by itself.
I also snuck in a couple minor debian/control syntax fixes.
I tested that this builds correctly, and it does. On my test system, it spit out an amd64-specific package for the metapackage:
Package: plainbox- glmark2- es2-meta provider- canonical- certification
Source: plainbox-
Version: 0.6
Architecture: amd64
Maintainer: Ubuntu Developers <email address hidden>
Installed-Size: 27
Section: utils
Priority: optional
Here you can see it doesn't depend on anything, so it will not try to pull glmark2-es2 on amd64.
I can't do an arm* build, but I imagine it'd have a Depends: field in that case.
And this is why an arch:all package can't have this restriction: the way the arch-specific dependency works is by "mangling" the control data accordingly to account for the selective dependency. This is explained in detail here: https:/ /www.debian. org/doc/ debian- policy/ ch-relationship s.html (maybe I could have avoided the earlier build problem if I'd read this carefully).