Your message dated Sat, 26 Nov 2016 22:22:47 +0000
with message-id <[email protected]>
and subject line Bug#845518: fixed in protobuf-c 1.2.1-2
has caused the Debian Bug report #845518,
regarding protobuf-c-compiler cannot be executed during cross compilation
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
845518: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=845518
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: protobuf-c-compiler
Version: 1.2.1-1
Tags: patch
User: [email protected]
Usertags: rebootstrap
Control: affects -1 + src:collectd src:criu src:dnstap-ldns src:libgadu
src:ocserv src:php-pinba src:riemann-c-client src:unbound
protobuf-c-compiler is a build tool that is quite similar to flex and
bison in some aspects: You run it during a build and use the resulting C
source code together with a library in your application. When cross
compiling this means that you need a build architecture
protobuf-c-compiler and the corresponding host architecture library.
What currently happens in practise is that you get the host architecture
protofbuf-c-compiler. Thus running it fails.
Unfortunately, protobuf-c-compiler is something we need for bringing up
new architectures. The dependency chain is wicked. login is essential
and built from shadow. shadow Build-Depends on libaudit-dev, which is
built from audit. audit Build-Depends on libprelude-dev, which is built
from libprelude. libprelude Build-Depends on libgnutls28-dev, which is
built from gnutls28. Since very recently gnutls28 Build-Depends on
libunbound-dev, which is built from unbound. unbound Build-Depends on
protobuf-c-compiler. See? Wicked.
When resolving cross build dependencies, all dependencies are considered
host architecture dependencies by default. Switching a chain from host
architecture to build architecture is simple (e.g. M-A:foreign), but
switching a chain from build to host is impossible. Marking
protobuf-c-compiler Multi-Arch: foreign would thus enable us to execute
it during cross builds, but it would also select libprotobuf-c-dev for
the build architecture while users need libprotobuf-c-dev for the host
architecture. The key here is to flip the dependency around (due to the
aforementioned limitation). Rather than having packages build depend on
the compiler, have them depend on the library and have the library
depend on the compiler.
There are a few basic approaches to implement the flip and they each
have unique advantages and disadvantages. So let me explain them.
* "have people depend on two packages"
This will be used by e.g. flex. Packages that need both flex and the
library will simply have to say "Build-Depends: flex, libfl-dev".
Then they will get a build architecture flex and a host architecture
libfl-dev. For protobuf-c this would amount to dropping the
dependency from protobuf-c-compiler on libprotobuf-c-dev and then
marking protobuf-c-compiler Multi-Arch: foreign. All of the 8
build-rdeps of protobuf-c-compiler already have a dependency on
libprotobuf-c-dev or libprotobuf-c0-dev. Thus no changes are
necessary in the build-rdeps. The approach is simple. I sent a
similar patch for flex in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=840080#16.
* "swap the packages behind the scenes"
Rename protobuf-c-compiler to something else (e.g.
libprotobuf-c-bin), have it drop its dependency on libprotobuf-c-dev
and mark it Multi-Arch: foreign. Then have libprotobuf-c-dev depend
on libprotobuf-c-bin and provide protobuf-c-compiler. It sounds
strange at first and needs to go through the NEW queue, but it makes
it really hard to get Build-Depends wrong. I sent a similar patch for
flex in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=840080#5.
* "dump the problem on users"
Mark libprotobuf-c* Multi-Arch: same and request that rdeps use
"Build-Depends: protobuf-c-compiler:native, libprotobuf-c-dev". This
solution is even simpler from the protobuf side than the first, but
incurs complexity in downstreams. Thus I don't like it.
Given the low number (8) of build-rdeps I find both of the first two
options reasonable.
I'd appreciate if you could give an initial reply in a timely manner.
I'll try to answer any open questions and work out a patch for the
preferred approach. I'm also attaching a patch for the first approach,
because it is so simple. It's kinda urgent now that gnutls28 3.5.6-3
pulled protobuf-c into the bootstrap set. :-/
Helmut
diff --minimal -Nru protobuf-c-1.2.1/debian/changelog
protobuf-c-1.2.1/debian/changelog
--- protobuf-c-1.2.1/debian/changelog 2016-02-02 23:42:33.000000000 +0100
+++ protobuf-c-1.2.1/debian/changelog 2016-11-24 09:26:34.000000000 +0100
@@ -1,3 +1,12 @@
+protobuf-c (1.2.1-1.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Mark libprotobuf-c* Multi-Arch: same.
+ * Drop the protobuf-c-compiler -> libprotobuf-c-dev dependency.
+ * Mark protobuf-c-compiler Multi-Arch: foreign (Closes: #-1).
+
+ -- Helmut Grohne <[email protected]> Thu, 24 Nov 2016 09:26:34 +0100
+
protobuf-c (1.2.1-1) unstable; urgency=medium
* Imported Upstream version 1.2.0
diff --minimal -Nru protobuf-c-1.2.1/debian/control
protobuf-c-1.2.1/debian/control
--- protobuf-c-1.2.1/debian/control 2016-02-02 23:42:33.000000000 +0100
+++ protobuf-c-1.2.1/debian/control 2016-11-24 09:26:31.000000000 +0100
@@ -26,6 +26,7 @@
Conflicts: libprotobuf-c0-dev
Replaces: libprotobuf-c0-dev
Breaks: protobuf-c-compiler (<< 1.0.0~)
+Multi-Arch: same
Description: Protocol Buffers C static library and headers (protobuf-c)
Protocol Buffers are a flexible, efficient, automated mechanism for
serializing structured data - similar to XML, but smaller, faster, and
@@ -43,6 +44,7 @@
Architecture: any
Section: libs
Depends: ${misc:Depends}, ${shlibs:Depends}
+Multi-Arch: same
Description: Protocol Buffers C shared library (protobuf-c)
Protocol Buffers are a flexible, efficient, automated mechanism for
serializing structured data - similar to XML, but smaller, faster, and
@@ -61,6 +63,7 @@
Section: debug
Priority: extra
Depends: libprotobuf-c1 (= ${binary:Version}), ${misc:Depends}
+Multi-Arch: same
Description: Protocol Buffers C shared library debug symbols (protobuf-c)
Protocol Buffers are a flexible, efficient, automated mechanism for
serializing structured data - similar to XML, but smaller, faster, and
@@ -77,9 +80,9 @@
Package: protobuf-c-compiler
Architecture: any
Depends:
- libprotobuf-c-dev (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
+Multi-Arch: foreign
Description: Protocol Buffers C compiler (protobuf-c)
Protocol Buffers are a flexible, efficient, automated mechanism for
serializing structured data - similar to XML, but smaller, faster, and
--- End Message ---
--- Begin Message ---
Source: protobuf-c
Source-Version: 1.2.1-2
We believe that the bug you reported is fixed in the latest version of
protobuf-c, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Robert Edmonds <[email protected]> (supplier of updated protobuf-c package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Sat, 26 Nov 2016 16:50:30 -0500
Source: protobuf-c
Binary: libprotobuf-c-dev libprotobuf-c1 libprotobuf-c1-dbg protobuf-c-compiler
Architecture: source
Version: 1.2.1-2
Distribution: unstable
Urgency: medium
Maintainer: Robert Edmonds <[email protected]>
Changed-By: Robert Edmonds <[email protected]>
Description:
libprotobuf-c-dev - Protocol Buffers C static library and headers (protobuf-c)
libprotobuf-c1 - Protocol Buffers C shared library (protobuf-c)
libprotobuf-c1-dbg - Protocol Buffers C shared library debug symbols
(protobuf-c)
protobuf-c-compiler - Protocol Buffers C compiler (protobuf-c)
Closes: 845518
Changes:
protobuf-c (1.2.1-2) unstable; urgency=medium
.
[ Helmut Grohne ]
* Mark libprotobuf-c* Multi-Arch: same.
* Drop the protobuf-c-compiler -> libprotobuf-c-dev dependency.
* Mark protobuf-c-compiler Multi-Arch: foreign (Closes: #845518).
Checksums-Sha1:
8f5d435a91ba319f8a3d807d050e853d620d0e7f 2243 protobuf-c_1.2.1-2.dsc
874ce504468fee0f39b9f0c6863f8596b2ec5119 4144 protobuf-c_1.2.1-2.debian.tar.xz
Checksums-Sha256:
95f5387c88741b7565adb87cb9d36db77e4e4d6b7d122d4ab1f697d8df5247d4 2243
protobuf-c_1.2.1-2.dsc
22c71b6d5637afeb5c1665e6132574685694db14f96a770b352174bfeea0e792 4144
protobuf-c_1.2.1-2.debian.tar.xz
Files:
5ca6244670e3d2681058d0426aa2eea2 2243 devel optional protobuf-c_1.2.1-2.dsc
c7161f7c821ab70ef8d491e79e24cd93 4144 devel optional
protobuf-c_1.2.1-2.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEE3z2W7rOCeCDzAmZcAYF6sKr2za4FAlg6BocACgkQAYF6sKr2
za4MghAAj6lRuFJlS1Ivg0w0aeYdqNhmkq0ziw2zsuPW1f9NY0TFYaaXQ4bQsigK
+MsMnt1Bf8TYQNZ5tx0ubq69JrzvNGh2j2qEpYzJLWFALaIMXIxCfA5q17uSMVYo
MpZmjWSWS3bQzaEFaQCNrCnknF58C5jqlyuxJAIYwxw2QiX3zT7vlfPyNEjZLOSk
4HX6M8NWSaGxUWWMdkgF1cAIyvg1V+xv8ikIXcR8Z1YV64uY2JIb/KrJW8U4YCbp
pr5yKksAiuiBMK6G8AS3nga4gC+3mK2SZWHrwPPTHITE371M4S06W5/dlFFSpsLX
G1anoEZYm3+r+cv/gR+x1Tz8q18/7rKEPKi3BKuPMo2+MZHPvmXi4bMTDhUl58+K
xhQ69XJLtCBTOjCxM87nIjgLfOvnIQ54rpJd5lAGb84gAqTwrz1X7ueJ5kD4IA/v
XQcBVlj22xlgMsl2/Ttmfry4B6z/olW79lQDchWixo1JdksgaxUIh1yEtlNTdWNE
AXKcIhry9Fo1UdJXknad1XsMHGa63c2py6DLdQp+aWW9p1B4tVMQkoPCa0Bca/X0
5Rgsc3odHf8fYyRcDRfBWOw5ONNJwg+yQ6D0elZ3P+4NtB4UQIt7c7Vs0GSXOk7d
YDdG8XGJ6QE47Xr54BqpGLlN+r59iWzfgav1C7aPY/0dNVwPKWs=
=BcKp
-----END PGP SIGNATURE-----
--- End Message ---