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 ---

Reply via email to