[MIR] capnproto

Bug #1367551 reported by Michi Henning
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
capnproto (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Can we please include this in main? unity-scopes-api has a dependency on capnproto.

Source and bug tracking for this are here: https://github.com/kentonv/capnproto

There are no dependencies other than C++ 11 (gcc 4.7 or later work).

Revision history for this message
Matthias Klose (doko) wrote :

this is not a complete MIR. Please follow https://wiki.ubuntu.com/MainInclusionProcess

at least a symbols file is missing

Changed in capnproto (Ubuntu):
status: New → Incomplete
Revision history for this message
Michi Henning (michihenning) wrote :

I had a look at the requirements, but they don't mention anything about a symbols file. What do I need to do here?

Revision history for this message
Michael Terry (mterry) wrote :

Symbols files help maintainers notice when the API changes and helps other packages know which minimum version of a library they need to depend on.

See https://wiki.debian.org/UsingSymbolsFiles

Note that a lack of a symbols file isn't a blocker, but they are super encouraged.

Revision history for this message
Michi Henning (michihenning) wrote :

Yes, I know what a symbols file is. But the requirements don't mention one. So, what am I supposed to actually do? Build the library, run nm over it and then post the symbols file here?

It's simply that I don't understand what I am expected to do.

Revision history for this message
Michael Terry (mterry) wrote :

See the "How to manage the content of symbols files" section of https://wiki.debian.org/UsingSymbolsFiles on how to generate a starting symbols file.

But basically yes, build the library then run a tool to generate the symbols file. Then please pass the patch to Debian because we don't really want to maintain a symbols delta for long.

Revision history for this message
Tom Lee (6-launchpad-c) wrote :

I help maintain the capnproto Debian packages. Debian bug #720063 (the original ITP) may be relevant to this discussion:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720063

C++ mangled symbols are arch dependent & c++filt wasn't playing nice. Then I stumbled across this part of the Debian Policy Manual:

https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-depends

Specifically:

"However, maintaining exhaustive symbols information for a C++ library can be quite onerous, so shlibs files may be more appropriate for most C++ libraries. Libraries with a corresponding udeb must also provide a shlibs file, since the udeb infrastructure does not use symbols files."

And this:

http://www.eyrie.org/~eagle/journal/2012-02/001.html

"In the end, I reverted the changes and have gone back to not providing a symbols file, and instead just using shlibs."

At this point we opted out of the symbols file as far as the Debian packages were concerned. Open to patches if symbols can be easily maintained, but it sounds like others have been down that road & struggled.

Revision history for this message
Michael Terry (mterry) wrote :

Thanks Tom for the background.

OK Michi, if Debian is NACK on symbols, don't worry about it for Ubuntu either. But doko's original request to flesh this bug out with info from https://wiki.ubuntu.com/MainInclusionProcess still stands. Doesn't have to be back-breakingly comprehensive. See bug 1369477's comment #1 for an example.

Revision history for this message
Michi Henning (michihenning) wrote :

Hi Michael, thanks for that! Hoping that the info below will be sufficient.

libcapnp-0.4.0
libcapnp-dev
capnproto
-------------------
Availability: Currently in universe
Rationale: Dependency for unity-scopes-api
Security: No security history.
Quality Assurance: Package works out of the box with no prompting. There are no major bugs in Ubuntu or Debian.
Dependencies: All are in main.
Standards Compliance: FHS and Debian Policy compliant.
Maintenance: Simple package that the unity-api-team will take care of. Added bug subscription for unity-api-team to package canproto.

Revision history for this message
Michael Terry (mterry) wrote :

So capnproto is a build-dependency of unity-scopes-api yes... But unity-scopes-api isn't in main and doesn't have a MIR filed. So do we actually need to promote this?

Revision history for this message
Michi Henning (michihenning) wrote :

Hmmm... Unity8 won't build without unity-scopes-api. I would expect Unity8 to be in main, at least eventually?

Revision history for this message
Michael Terry (mterry) wrote : Re: [Bug 1367551] Re: [MIR] capnproto

Yes, eventually. :)

Just not at the moment. When we want to promote it, we can do the whole
dep tree. No need to promote canproto until then.

Revision history for this message
Michi Henning (michihenning) wrote :

OK, that's fine with me.

Kenton pointed out that there was integer overflow issue in 0.4.0. That's fixed in 0.4.2 and 0.5.2, but neither of these are available from upstream yet. Apparently, there is an issue with the tests on armel. I'll use the pbuilder box to see what's going wrong with the armel tests and let Kenton know.

Revision history for this message
Michi Henning (michihenning) wrote :

Lukasz and Pawel have been been working on getting the MIR for this happening. I'm out of that loop though, so I don't know the details.

Revision history for this message
Michael Terry (mterry) wrote :

We're trying to land u8 in main, so I guess I ought to review this. Michi, what about the integer overflow issue and broken arm tests from comment #12?

Revision history for this message
Michi Henning (michihenning) wrote :

That was fixed quite some time ago, so it should no longer be a problem. (We are at 0.5.3 now; that's in yakkety, not sure about Vivid and Xenial.) I never managed to reproduce the problem on arm.

Michael Terry (mterry)
Changed in capnproto (Ubuntu):
assignee: nobody → Ubuntu Security Team (ubuntu-security)
Changed in capnproto (Ubuntu):
status: Incomplete → New
Revision history for this message
Seth Arnold (seth-arnold) wrote :

I reviewed capnproto version 0.5.3-2ubuntu1 as checked into xenial. This
should not be considered a full security audit but rather a quick gauge of
maintainability.

- There are four CVEs: CVE-2015-2310 CVE-2015-2311 CVE-2015-2312 CVE-2015-2313
  These were handled in what is perhaps the finest vendor response I've seen.

- capnproto is a serialization and RPC mechanism
- Build-Depends: debhelper, gcc, python-all, dpkg-dev, docbook-xsl,
  docbook-xml, xsltproc, dh-autoreconf, netbase
- capnproto does not itself daemonize
- No pre/post inst/rm scripts
- No initscripts
- No dbus services
- No setuid binaries
- Binaries in path: capnp, capnpc-c++, capnpc-capnp, capnpc symlink
- No sudo fragments
- No udev rules
- No cron jobs
- Small tests run during the build
- Clean build logs

- No subprocesses spawned
- Memory management is careful
- No file IO
- No logging
- No environment variables
- No privileged operations
- No cryptography
- Shockingly doesn't appear to do any networking
- I did not discover privileged portions of code
- No temporary files
- No WebKit
- No javascript
- cppcheck warnings were all false positives
- No PolicyKit

capnproto is highly complicated code; at one point, a comment even
indicates that it's roughly akin to the compiler or C library in intention
and complexity. It's also coded with clear discipline and all evidence
points to the author's obsession with writing good software.

Security team ACK for promoting capnproto to main.

Thanks

Changed in capnproto (Ubuntu):
assignee: Ubuntu Security Team (ubuntu-security) → nobody
Michael Terry (mterry)
Changed in capnproto (Ubuntu):
assignee: nobody → Michael Terry (mterry)
Revision history for this message
Michael Terry (mterry) wrote :

LGTM

Changed in capnproto (Ubuntu):
assignee: Michael Terry (mterry) → nobody
status: New → Fix Committed
Revision history for this message
Steve Langasek (vorlon) wrote :

Override component to main
capnproto 0.5.3-2ubuntu1 in yakkety: universe/misc -> main
capnproto 0.5.3-2ubuntu1 in yakkety amd64: universe/devel/optional/100% -> main
capnproto 0.5.3-2ubuntu1 in yakkety arm64: universe/devel/optional/100% -> main
capnproto 0.5.3-2ubuntu1 in yakkety armhf: universe/devel/optional/100% -> main
capnproto 0.5.3-2ubuntu1 in yakkety i386: universe/devel/optional/100% -> main
capnproto 0.5.3-2ubuntu1 in yakkety powerpc: universe/devel/optional/100% -> main
capnproto 0.5.3-2ubuntu1 in yakkety ppc64el: universe/devel/optional/100% -> main
capnproto 0.5.3-2ubuntu1 in yakkety s390x: universe/devel/optional/100% -> main
libcapnp-0.5.3 0.5.3-2ubuntu1 in yakkety amd64: universe/libs/optional/100% -> main
libcapnp-0.5.3 0.5.3-2ubuntu1 in yakkety arm64: universe/libs/optional/100% -> main
libcapnp-0.5.3 0.5.3-2ubuntu1 in yakkety armhf: universe/libs/optional/100% -> main
libcapnp-0.5.3 0.5.3-2ubuntu1 in yakkety i386: universe/libs/optional/100% -> main
libcapnp-0.5.3 0.5.3-2ubuntu1 in yakkety powerpc: universe/libs/optional/100% -> main
libcapnp-0.5.3 0.5.3-2ubuntu1 in yakkety ppc64el: universe/libs/optional/100% -> main
libcapnp-0.5.3 0.5.3-2ubuntu1 in yakkety s390x: universe/libs/optional/100% -> main
libcapnp-dev 0.5.3-2ubuntu1 in yakkety amd64: universe/libdevel/optional/100% -> main
libcapnp-dev 0.5.3-2ubuntu1 in yakkety arm64: universe/libdevel/optional/100% -> main
libcapnp-dev 0.5.3-2ubuntu1 in yakkety armhf: universe/libdevel/optional/100% -> main
libcapnp-dev 0.5.3-2ubuntu1 in yakkety i386: universe/libdevel/optional/100% -> main
libcapnp-dev 0.5.3-2ubuntu1 in yakkety powerpc: universe/libdevel/optional/100% -> main
libcapnp-dev 0.5.3-2ubuntu1 in yakkety ppc64el: universe/libdevel/optional/100% -> main
libcapnp-dev 0.5.3-2ubuntu1 in yakkety s390x: universe/libdevel/optional/100% -> main
22 publications overridden.

Changed in capnproto (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.