Skip to content

Conversation

@kripton
Copy link
Member

@kripton kripton commented Apr 8, 2020

Same as #1620 but rebased on top of branch "0.10".
See also #1550

Opened as a draft since I didn't test this yet but I would like Travis to build it already.

@kripton kripton changed the base branch from master to 0.10 April 8, 2020 09:48
@kripton
Copy link
Member Author

kripton commented Apr 8, 2020

@peternewman: I had selected the wrong base branch at first, but corrected that later. However, Travis is not re-building it. Is there any way I can re-trigger the build or is a permission on Travis required that I don't have?
Would be nice if you could re-trigger the build. Thanks :)

@peternewman
Copy link
Member

@peternewman: I had selected the wrong base branch at first, but corrected that later. However, Travis is not re-building it. Is there any way I can re-trigger the build or is a permission on Travis required that I don't have?
Would be nice if you could re-trigger the build. Thanks :)

The later commit has done the trick. I think I've had the same problem in the past and only a fresh commit seems to get it in sync from memory.

Copy link
Member

@peternewman peternewman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few minor comments.

You should also stick your name in the AUTHORS bit and add this to NEWS.

env:
- TASK='compile'
- CPPUNIT='1.14'
- PROTOBUF='latest'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should expand the matrix a bit (probably to match master), but I can do that if you'd rather?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parking that for a later PR.

@kripton
Copy link
Member Author

kripton commented Apr 9, 2020

The later commit has done the trick. I think I've had the same problem in the past and only a fresh commit seems to get it in sync from memory.

Yep, true. I also thought the same that a new commit will trigger Travis. Good thing I found another thing that needs changing ;)

You should also stick your name in the AUTHORS bit and add this to NEWS.

Will do, good remark. In this PR (It'd be in 0.10 only then) or a new set of PRs?

About the travis matrix: Yes, I can do so. While merging I tried to be as less-invasive as possible. I diffed this .travis.yml against the one from master and added two more macOS runs. Now it should build against Protobuf 3.2 and 'latest'. However, in the 0.10-branch, those are under allow_failures. In master, they are in the matrix.

@peternewman
Copy link
Member

You should also stick your name in the AUTHORS bit and add this to NEWS.

Will do, good remark. In this PR (It'd be in 0.10 only then) or a new set of PRs?

We (well I), pull 0.10 into master fairly regularly, hence why I generally suggest targetting 0.10 if it's a bugfix, but master for new features, so you can just add those bits to 0.10 and they'll percolate through.

About the travis matrix: Yes, I can do so. While merging I tried to be as less-invasive as possible. I diffed this .travis.yml against the one from master and added two more macOS runs. Now it should build against Protobuf 3.2 and 'latest'. However, in the 0.10-branch, those are under allow_failures. In master, they are in the matrix.

If those OS X builds work (or at least only fail due to flaky tests), they can be in full, not just in allow_failures (incidentally as far as I'm aware they need to be in the main matrix but can ALSO be in allowed failures to allow failures). I think currently my workarounds for non latests Protobuf seem to be broken unfortunately, so they should probably stay in allowed failures.

@kripton
Copy link
Member Author

kripton commented Apr 12, 2020

@peternewman you're right, the current travis file no longer work, because according to https://formulae.brew.sh/formula/protobuf, the oldest version of protobuf that can be easily installed on macOS using homebrew is v3.6. So I would propose to come back to your proposal that I don't touch the travis files in this PR and this can be tackled after this PR has been merged.
I'll update that and the NEWS and AUTHORS file then.

However, the build failures on macOS (see Travis logs) seem pretty consistent. Might be worth another look. However, on Ubuntu it all look good. So I don't think that these changes broke the build.

@peternewman peternewman marked this pull request as ready for review April 13, 2020 11:36
@peternewman
Copy link
Member

@peternewman you're right, the current travis file no longer work, because according to https://formulae.brew.sh/formula/protobuf, the oldest version of protobuf that can be easily installed on macOS using homebrew is v3.6. So I would propose to come back to your proposal that I don't touch the travis files in this PR and this can be tackled after this PR has been merged.

Yep fair enough, we can do the other bit in parallel.

I'll update that and the NEWS and AUTHORS file then.

Great thanks.

However, the build failures on macOS (see Travis logs) seem pretty consistent. Might be worth another look. However, on Ubuntu it all look good. So I don't think that these changes broke the build.

Agreed, the current Mac failures look like real ones not race-conditions. We need to get them fixed ideally.

@peternewman
Copy link
Member

Agreed, the current Mac failures look like real ones not race-conditions. We need to get them fixed ideally.

Deleting the caches (i.e. effectively doing a make clean) hasn't fixed the OS X issues unfortunately.

@kripton
Copy link
Member Author

kripton commented Apr 16, 2020

@peternewman : Are you still able to build 0.10.7 (release, without any patches, against an older version of protobuf)?

I'd be interested in the content of the file common/protocol/OlaService.pb.cpp that is generated during the build. Especially the function protobuf_AssignDesc_OlaService.
What would also help would be the output of grep -nrC 3 protobuf_AddDesc_Ola_2eproto * in the build directory after compilation.

I am able to reproduce the build error on my Linux machine. I also have something that compiles successfully.
However, I'm not sure if it is correct. make test also succeeds but I'm not sure if compatibility between OLA 0.10.7 compiled against protobuf 3.2 without patches and OLA 0.10.X compiled against protobuf 3.11.x with the patches would be okay.

@peternewman
Copy link
Member

@peternewman : Are you still able to build 0.10.7 (release, without any patches, against an older version of protobuf)?

Not quite what you asked, but OLA 0.10 branch (i.e. what you're merging into) still builds fine against Protobuf 2.6.1 on Ubuntu 16.04:
0.10.7...0.10

No real surprise there as OLA's Travis CI is still using Xenial (until #1584 goes in).

I could try the release if you want, but I'm not sure what difference it makes.

I'd be interested in the content of the file common/protocol/OlaService.pb.cpp that is generated during the build.

OlaService.pb.cpp.txt

Especially the function protobuf_AssignDesc_OlaService.

void protobuf_AssignDesc_OlaService() {
  protobuf_AddDesc_Ola_2eproto();
  const ::google::protobuf::FileDescriptor* file =
    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
      "Ola.proto");
  GOOGLE_CHECK(file != NULL);
  OlaServerService_descriptor_ = file->service(0);
  OlaClientService_descriptor_ = file->service(1);
}

What would also help would be the output of grep -nrC 3 protobuf_AddDesc_Ola_2eproto * in the build directory after compilation.

I just build in the src directory:

$ grep -nrC 3 protobuf_AddDesc_Ola_2eproto *
Binary file common/.libs/libolacommon.so.0.0.0 matches
Binary file common/.libs/libolacommon.a matches
--
common/protocol/OlaService.pb.cpp-24-
common/protocol/OlaService.pb.cpp-25-
common/protocol/OlaService.pb.cpp-26-void protobuf_AssignDesc_OlaService() {
common/protocol/OlaService.pb.cpp:27:  protobuf_AddDesc_Ola_2eproto();
common/protocol/OlaService.pb.cpp-28-  const ::google::protobuf::FileDescriptor* file =
common/protocol/OlaService.pb.cpp-29-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
common/protocol/OlaService.pb.cpp-30-      "Ola.proto");
Binary file common/protocol/common_protocol_libolaproto_la-Ola.pb.o matches
--
common/protocol/Ola.pb.h-31-namespace proto {
common/protocol/Ola.pb.h-32-
common/protocol/Ola.pb.h-33-// Internal implementation detail -- do not call these.
common/protocol/Ola.pb.h:34:void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-35-void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-36-void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-37-
--
common/protocol/Ola.pb.h-331-
common/protocol/Ola.pb.h-332-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-333-  mutable int _cached_size_;
common/protocol/Ola.pb.h:334:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-335-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-336-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-337-
--
common/protocol/Ola.pb.h-400-
common/protocol/Ola.pb.h-401-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-402-  mutable int _cached_size_;
common/protocol/Ola.pb.h:403:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-404-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-405-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-406-
--
common/protocol/Ola.pb.h-469-
common/protocol/Ola.pb.h-470-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-471-  mutable int _cached_size_;
common/protocol/Ola.pb.h:472:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-473-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-474-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-475-
--
common/protocol/Ola.pb.h-538-
common/protocol/Ola.pb.h-539-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-540-  mutable int _cached_size_;
common/protocol/Ola.pb.h:541:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-542-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-543-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-544-
--
common/protocol/Ola.pb.h-652-  ::google::protobuf::int32 plugin_id_;
common/protocol/Ola.pb.h-653-  bool active_;
common/protocol/Ola.pb.h-654-  bool enabled_;
common/protocol/Ola.pb.h:655:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-656-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-657-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-658-
--
common/protocol/Ola.pb.h-734-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-735-  mutable int _cached_size_;
common/protocol/Ola.pb.h-736-  ::google::protobuf::RepeatedPtrField< ::ola::proto::PluginInfo > plugin_;
common/protocol/Ola.pb.h:737:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-738-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-739-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-740-
--
common/protocol/Ola.pb.h-813-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-814-  mutable int _cached_size_;
common/protocol/Ola.pb.h-815-  ::google::protobuf::int32 plugin_id_;
common/protocol/Ola.pb.h:816:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-817-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-818-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-819-
--
common/protocol/Ola.pb.h-912-  mutable int _cached_size_;
common/protocol/Ola.pb.h-913-  ::std::string* name_;
common/protocol/Ola.pb.h-914-  ::std::string* description_;
common/protocol/Ola.pb.h:915:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-916-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-917-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-918-
--
common/protocol/Ola.pb.h-991-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-992-  mutable int _cached_size_;
common/protocol/Ola.pb.h-993-  ::google::protobuf::int32 plugin_id_;
common/protocol/Ola.pb.h:994:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-995-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-996-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-997-
--
common/protocol/Ola.pb.h-1123-  ::google::protobuf::RepeatedPtrField< ::ola::proto::PluginInfo > conflicts_with_;
common/protocol/Ola.pb.h-1124-  bool enabled_;
common/protocol/Ola.pb.h-1125-  bool active_;
common/protocol/Ola.pb.h:1126:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1127-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1128-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-1129-
--
common/protocol/Ola.pb.h-1212-  mutable int _cached_size_;
common/protocol/Ola.pb.h-1213-  ::google::protobuf::int32 plugin_id_;
common/protocol/Ola.pb.h-1214-  bool enabled_;
common/protocol/Ola.pb.h:1215:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1216-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1217-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-1218-
--
common/protocol/Ola.pb.h-1291-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-1292-  mutable int _cached_size_;
common/protocol/Ola.pb.h-1293-  ::google::protobuf::int32 plugin_id_;
common/protocol/Ola.pb.h:1294:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1295-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1296-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-1297-
--
common/protocol/Ola.pb.h-1445-  bool active_;
common/protocol/Ola.pb.h-1446-  bool supports_rdm_;
common/protocol/Ola.pb.h-1447-  ::google::protobuf::int32 priority_;
common/protocol/Ola.pb.h:1448:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1449-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1450-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-1451-
--
common/protocol/Ola.pb.h-1590-  ::google::protobuf::RepeatedPtrField< ::ola::proto::PortInfo > input_port_;
common/protocol/Ola.pb.h-1591-  ::google::protobuf::RepeatedPtrField< ::ola::proto::PortInfo > output_port_;
common/protocol/Ola.pb.h-1592-  ::std::string* device_id_;
common/protocol/Ola.pb.h:1593:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1594-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1595-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-1596-
--
common/protocol/Ola.pb.h-1672-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-1673-  mutable int _cached_size_;
common/protocol/Ola.pb.h-1674-  ::google::protobuf::RepeatedPtrField< ::ola::proto::DeviceInfo > device_;
common/protocol/Ola.pb.h:1675:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1676-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1677-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-1678-
--
common/protocol/Ola.pb.h-1776-  ::std::string* data_;
common/protocol/Ola.pb.h-1777-  ::google::protobuf::int32 universe_;
common/protocol/Ola.pb.h-1778-  ::google::protobuf::int32 priority_;
common/protocol/Ola.pb.h:1779:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1780-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1781-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-1782-
--
common/protocol/Ola.pb.h-1865-  mutable int _cached_size_;
common/protocol/Ola.pb.h-1866-  ::google::protobuf::int32 universe_;
common/protocol/Ola.pb.h-1867-  int action_;
common/protocol/Ola.pb.h:1868:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1869-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1870-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-1871-
--
common/protocol/Ola.pb.h-1984-  ::google::protobuf::int32 port_id_;
common/protocol/Ola.pb.h-1985-  int action_;
common/protocol/Ola.pb.h-1986-  bool is_output_;
common/protocol/Ola.pb.h:1987:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1988-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-1989-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-1990-
--
common/protocol/Ola.pb.h-2078-  mutable int _cached_size_;
common/protocol/Ola.pb.h-2079-  ::std::string* name_;
common/protocol/Ola.pb.h-2080-  ::google::protobuf::int32 universe_;
common/protocol/Ola.pb.h:2081:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2082-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2083-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2084-
--
common/protocol/Ola.pb.h-2167-  mutable int _cached_size_;
common/protocol/Ola.pb.h-2168-  ::google::protobuf::int32 universe_;
common/protocol/Ola.pb.h-2169-  int merge_mode_;
common/protocol/Ola.pb.h:2170:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2171-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2172-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2173-
--
common/protocol/Ola.pb.h-2246-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-2247-  mutable int _cached_size_;
common/protocol/Ola.pb.h-2248-  ::google::protobuf::int32 universe_;
common/protocol/Ola.pb.h:2249:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2250-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2251-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2252-
--
common/protocol/Ola.pb.h-2406-  ::google::protobuf::RepeatedPtrField< ::ola::proto::PortInfo > input_ports_;
common/protocol/Ola.pb.h-2407-  ::google::protobuf::RepeatedPtrField< ::ola::proto::PortInfo > output_ports_;
common/protocol/Ola.pb.h-2408-  ::google::protobuf::int32 rdm_devices_;
common/protocol/Ola.pb.h:2409:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2410-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2411-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2412-
--
common/protocol/Ola.pb.h-2488-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-2489-  mutable int _cached_size_;
common/protocol/Ola.pb.h-2490-  ::google::protobuf::RepeatedPtrField< ::ola::proto::UniverseInfo > universe_;
common/protocol/Ola.pb.h:2491:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2492-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2493-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2494-
--
common/protocol/Ola.pb.h-2607-  ::google::protobuf::int32 port_id_;
common/protocol/Ola.pb.h-2608-  ::google::protobuf::int32 priority_mode_;
common/protocol/Ola.pb.h-2609-  ::google::protobuf::int32 priority_;
common/protocol/Ola.pb.h:2610:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2611-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2612-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2613-
--
common/protocol/Ola.pb.h-2701-  mutable int _cached_size_;
common/protocol/Ola.pb.h-2702-  ::std::string* data_;
common/protocol/Ola.pb.h-2703-  ::google::protobuf::int32 device_alias_;
common/protocol/Ola.pb.h:2704:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2705-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2706-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2707-
--
common/protocol/Ola.pb.h-2785-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-2786-  mutable int _cached_size_;
common/protocol/Ola.pb.h-2787-  ::std::string* data_;
common/protocol/Ola.pb.h:2788:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2789-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2790-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2791-
--
common/protocol/Ola.pb.h-2874-  mutable int _cached_size_;
common/protocol/Ola.pb.h-2875-  ::google::protobuf::int32 esta_id_;
common/protocol/Ola.pb.h-2876-  ::google::protobuf::uint32 device_id_;
common/protocol/Ola.pb.h:2877:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2878-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2879-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2880-
--
common/protocol/Ola.pb.h-2953-  ::google::protobuf::uint32 _has_bits_[1];
common/protocol/Ola.pb.h-2954-  mutable int _cached_size_;
common/protocol/Ola.pb.h-2955-  ::google::protobuf::int32 universe_;
common/protocol/Ola.pb.h:2956:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2957-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-2958-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-2959-
--
common/protocol/Ola.pb.h-3042-  mutable int _cached_size_;
common/protocol/Ola.pb.h-3043-  ::google::protobuf::int32 universe_;
common/protocol/Ola.pb.h-3044-  bool full_;
common/protocol/Ola.pb.h:3045:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3046-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3047-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-3048-
--
common/protocol/Ola.pb.h-3134-  mutable int _cached_size_;
common/protocol/Ola.pb.h-3135-  ::google::protobuf::RepeatedPtrField< ::ola::proto::UID > uid_;
common/protocol/Ola.pb.h-3136-  ::google::protobuf::int32 universe_;
common/protocol/Ola.pb.h:3137:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3138-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3139-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-3140-
--
common/protocol/Ola.pb.h-3243-  ::google::protobuf::uint32 message_length_;
common/protocol/Ola.pb.h-3244-  ::google::protobuf::uint32 message_count_;
common/protocol/Ola.pb.h-3245-  ::google::protobuf::uint32 checksum_;
common/protocol/Ola.pb.h:3246:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3247-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3248-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-3249-
--
common/protocol/Ola.pb.h-3401-  bool is_set_;
common/protocol/Ola.pb.h-3402-  bool include_raw_response_;
common/protocol/Ola.pb.h-3403-  ::ola::proto::RDMRequestOverrideOptions* options_;
common/protocol/Ola.pb.h:3404:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3405-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3406-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-3407-
--
common/protocol/Ola.pb.h-3549-  ::google::protobuf::int32 param_id_;
common/protocol/Ola.pb.h-3550-  bool include_raw_response_;
common/protocol/Ola.pb.h-3551-  ::ola::proto::RDMRequestOverrideOptions* options_;
common/protocol/Ola.pb.h:3552:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3553-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3554-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-3555-
--
common/protocol/Ola.pb.h-3658-  ::google::protobuf::int32 break_time_;
common/protocol/Ola.pb.h-3659-  ::google::protobuf::int32 mark_time_;
common/protocol/Ola.pb.h-3660-  ::google::protobuf::int32 data_time_;
common/protocol/Ola.pb.h:3661:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3662-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3663-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-3664-
--
common/protocol/Ola.pb.h-3754-  mutable int _cached_size_;
common/protocol/Ola.pb.h-3755-  ::std::string* raw_response_;
common/protocol/Ola.pb.h-3756-  ::ola::proto::RDMFrameTiming* timing_;
common/protocol/Ola.pb.h:3757:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3758-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3759-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-3760-
--
common/protocol/Ola.pb.h-3962-  ::google::protobuf::RepeatedPtrField< ::std::string> raw_response_;
common/protocol/Ola.pb.h-3963-  ::google::protobuf::RepeatedPtrField< ::ola::proto::RDMFrame > raw_frame_;
common/protocol/Ola.pb.h-3964-  ::google::protobuf::uint32 param_id_;
common/protocol/Ola.pb.h:3965:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3966-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-3967-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-3968-
--
common/protocol/Ola.pb.h-4081-  ::google::protobuf::uint32 seconds_;
common/protocol/Ola.pb.h-4082-  ::google::protobuf::uint32 frames_;
common/protocol/Ola.pb.h-4083-  int type_;
common/protocol/Ola.pb.h:4084:  friend void  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.h-4085-  friend void protobuf_AssignDesc_Ola_2eproto();
common/protocol/Ola.pb.h-4086-  friend void protobuf_ShutdownFile_Ola_2eproto();
common/protocol/Ola.pb.h-4087-
Binary file common/protocol/common_protocol_libolaproto_la-OlaService.pb.o matches
Binary file common/protocol/.libs/libolaproto.a matches
Binary file common/protocol/.libs/common_protocol_libolaproto_la-Ola.pb.o matches
Binary file common/protocol/.libs/common_protocol_libolaproto_la-OlaService.pb.o matches
--
common/protocol/OlaService.pb.cpp.txt-24-
common/protocol/OlaService.pb.cpp.txt-25-
common/protocol/OlaService.pb.cpp.txt-26-void protobuf_AssignDesc_OlaService() {
common/protocol/OlaService.pb.cpp.txt:27:  protobuf_AddDesc_Ola_2eproto();
common/protocol/OlaService.pb.cpp.txt-28-  const ::google::protobuf::FileDescriptor* file =
common/protocol/OlaService.pb.cpp.txt-29-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
common/protocol/OlaService.pb.cpp.txt-30-      "Ola.proto");
--
common/protocol/Ola.pb.cc-145-
common/protocol/Ola.pb.cc-146-
common/protocol/Ola.pb.cc-147-void protobuf_AssignDesc_Ola_2eproto() {
common/protocol/Ola.pb.cc:148:  protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-149-  const ::google::protobuf::FileDescriptor* file =
common/protocol/Ola.pb.cc-150-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
common/protocol/Ola.pb.cc-151-      "Ola.proto");
--
common/protocol/Ola.pb.cc-956-  delete TimeCode_reflection_;
common/protocol/Ola.pb.cc-957-}
common/protocol/Ola.pb.cc-958-
common/protocol/Ola.pb.cc:959:void protobuf_AddDesc_Ola_2eproto() {
common/protocol/Ola.pb.cc-960-  static bool already_here = false;
common/protocol/Ola.pb.cc-961-  if (already_here) return;
common/protocol/Ola.pb.cc-962-  already_here = true;
--
common/protocol/Ola.pb.cc-1213-// Force AddDescriptors() to be called at static initialization time.
common/protocol/Ola.pb.cc-1214-struct StaticDescriptorInitializer_Ola_2eproto {
common/protocol/Ola.pb.cc-1215-  StaticDescriptorInitializer_Ola_2eproto() {
common/protocol/Ola.pb.cc:1216:    protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-1217-  }
common/protocol/Ola.pb.cc-1218-} static_descriptor_initializer_Ola_2eproto_;
common/protocol/Ola.pb.cc-1219-const ::google::protobuf::EnumDescriptor* RegisterAction_descriptor() {
--
common/protocol/Ola.pb.cc-1420-}
common/protocol/Ola.pb.cc-1421-
common/protocol/Ola.pb.cc-1422-const STREAMING_NO_RESPONSE& STREAMING_NO_RESPONSE::default_instance() {
common/protocol/Ola.pb.cc:1423:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-1424-  return *default_instance_;
common/protocol/Ola.pb.cc-1425-}
common/protocol/Ola.pb.cc-1426-
--
common/protocol/Ola.pb.cc-1594-}
common/protocol/Ola.pb.cc-1595-
common/protocol/Ola.pb.cc-1596-const Ack& Ack::default_instance() {
common/protocol/Ola.pb.cc:1597:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-1598-  return *default_instance_;
common/protocol/Ola.pb.cc-1599-}
common/protocol/Ola.pb.cc-1600-
--
common/protocol/Ola.pb.cc-1768-}
common/protocol/Ola.pb.cc-1769-
common/protocol/Ola.pb.cc-1770-const PluginListRequest& PluginListRequest::default_instance() {
common/protocol/Ola.pb.cc:1771:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-1772-  return *default_instance_;
common/protocol/Ola.pb.cc-1773-}
common/protocol/Ola.pb.cc-1774-
--
common/protocol/Ola.pb.cc-1942-}
common/protocol/Ola.pb.cc-1943-
common/protocol/Ola.pb.cc-1944-const PluginReloadRequest& PluginReloadRequest::default_instance() {
common/protocol/Ola.pb.cc:1945:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-1946-  return *default_instance_;
common/protocol/Ola.pb.cc-1947-}
common/protocol/Ola.pb.cc-1948-
--
common/protocol/Ola.pb.cc-2128-}
common/protocol/Ola.pb.cc-2129-
common/protocol/Ola.pb.cc-2130-const PluginInfo& PluginInfo::default_instance() {
common/protocol/Ola.pb.cc:2131:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-2132-  return *default_instance_;
common/protocol/Ola.pb.cc-2133-}
common/protocol/Ola.pb.cc-2134-
--
common/protocol/Ola.pb.cc-2488-}
common/protocol/Ola.pb.cc-2489-
common/protocol/Ola.pb.cc-2490-const PluginListReply& PluginListReply::default_instance() {
common/protocol/Ola.pb.cc:2491:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-2492-  return *default_instance_;
common/protocol/Ola.pb.cc-2493-}
common/protocol/Ola.pb.cc-2494-
--
common/protocol/Ola.pb.cc-2709-}
common/protocol/Ola.pb.cc-2710-
common/protocol/Ola.pb.cc-2711-const PluginDescriptionRequest& PluginDescriptionRequest::default_instance() {
common/protocol/Ola.pb.cc:2712:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-2713-  return *default_instance_;
common/protocol/Ola.pb.cc-2714-}
common/protocol/Ola.pb.cc-2715-
--
common/protocol/Ola.pb.cc-2941-}
common/protocol/Ola.pb.cc-2942-
common/protocol/Ola.pb.cc-2943-const PluginDescriptionReply& PluginDescriptionReply::default_instance() {
common/protocol/Ola.pb.cc:2944:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-2945-  return *default_instance_;
common/protocol/Ola.pb.cc-2946-}
common/protocol/Ola.pb.cc-2947-
--
common/protocol/Ola.pb.cc-3237-}
common/protocol/Ola.pb.cc-3238-
common/protocol/Ola.pb.cc-3239-const PluginStateRequest& PluginStateRequest::default_instance() {
common/protocol/Ola.pb.cc:3240:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-3241-  return *default_instance_;
common/protocol/Ola.pb.cc-3242-}
common/protocol/Ola.pb.cc-3243-
--
common/protocol/Ola.pb.cc-3474-}
common/protocol/Ola.pb.cc-3475-
common/protocol/Ola.pb.cc-3476-const PluginStateReply& PluginStateReply::default_instance() {
common/protocol/Ola.pb.cc:3477:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-3478-  return *default_instance_;
common/protocol/Ola.pb.cc-3479-}
common/protocol/Ola.pb.cc-3480-
--
common/protocol/Ola.pb.cc-3894-}
common/protocol/Ola.pb.cc-3895-
common/protocol/Ola.pb.cc-3896-const PluginStateChangeRequest& PluginStateChangeRequest::default_instance() {
common/protocol/Ola.pb.cc:3897:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-3898-  return *default_instance_;
common/protocol/Ola.pb.cc-3899-}
common/protocol/Ola.pb.cc-3900-
--
common/protocol/Ola.pb.cc-4165-}
common/protocol/Ola.pb.cc-4166-
common/protocol/Ola.pb.cc-4167-const DeviceInfoRequest& DeviceInfoRequest::default_instance() {
common/protocol/Ola.pb.cc:4168:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-4169-  return *default_instance_;
common/protocol/Ola.pb.cc-4170-}
common/protocol/Ola.pb.cc-4171-
--
common/protocol/Ola.pb.cc-4405-}
common/protocol/Ola.pb.cc-4406-
common/protocol/Ola.pb.cc-4407-const PortInfo& PortInfo::default_instance() {
common/protocol/Ola.pb.cc:4408:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-4409-  return *default_instance_;
common/protocol/Ola.pb.cc-4410-}
common/protocol/Ola.pb.cc-4411-
--
common/protocol/Ola.pb.cc-4926-}
common/protocol/Ola.pb.cc-4927-
common/protocol/Ola.pb.cc-4928-const DeviceInfo& DeviceInfo::default_instance() {
common/protocol/Ola.pb.cc:4929:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-4930-  return *default_instance_;
common/protocol/Ola.pb.cc-4931-}
common/protocol/Ola.pb.cc-4932-
--
common/protocol/Ola.pb.cc-5386-}
common/protocol/Ola.pb.cc-5387-
common/protocol/Ola.pb.cc-5388-const DeviceInfoReply& DeviceInfoReply::default_instance() {
common/protocol/Ola.pb.cc:5389:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-5390-  return *default_instance_;
common/protocol/Ola.pb.cc-5391-}
common/protocol/Ola.pb.cc-5392-
--
common/protocol/Ola.pb.cc-5615-}
common/protocol/Ola.pb.cc-5616-
common/protocol/Ola.pb.cc-5617-const DmxData& DmxData::default_instance() {
common/protocol/Ola.pb.cc:5618:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-5619-  return *default_instance_;
common/protocol/Ola.pb.cc-5620-}
common/protocol/Ola.pb.cc-5621-
--
common/protocol/Ola.pb.cc-5934-}
common/protocol/Ola.pb.cc-5935-
common/protocol/Ola.pb.cc-5936-const RegisterDmxRequest& RegisterDmxRequest::default_instance() {
common/protocol/Ola.pb.cc:5937:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-5938-  return *default_instance_;
common/protocol/Ola.pb.cc-5939-}
common/protocol/Ola.pb.cc-5940-
--
common/protocol/Ola.pb.cc-6210-}
common/protocol/Ola.pb.cc-6211-
common/protocol/Ola.pb.cc-6212-const PatchPortRequest& PatchPortRequest::default_instance() {
common/protocol/Ola.pb.cc:6213:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-6214-  return *default_instance_;
common/protocol/Ola.pb.cc-6215-}
common/protocol/Ola.pb.cc-6216-
--
common/protocol/Ola.pb.cc-6605-}
common/protocol/Ola.pb.cc-6606-
common/protocol/Ola.pb.cc-6607-const UniverseNameRequest& UniverseNameRequest::default_instance() {
common/protocol/Ola.pb.cc:6608:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-6609-  return *default_instance_;
common/protocol/Ola.pb.cc-6610-}
common/protocol/Ola.pb.cc-6611-
--
common/protocol/Ola.pb.cc-6886-}
common/protocol/Ola.pb.cc-6887-
common/protocol/Ola.pb.cc-6888-const MergeModeRequest& MergeModeRequest::default_instance() {
common/protocol/Ola.pb.cc:6889:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-6890-  return *default_instance_;
common/protocol/Ola.pb.cc-6891-}
common/protocol/Ola.pb.cc-6892-
--
common/protocol/Ola.pb.cc-7154-}
common/protocol/Ola.pb.cc-7155-
common/protocol/Ola.pb.cc-7156-const OptionalUniverseRequest& OptionalUniverseRequest::default_instance() {
common/protocol/Ola.pb.cc:7157:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-7158-  return *default_instance_;
common/protocol/Ola.pb.cc-7159-}
common/protocol/Ola.pb.cc-7160-
--
common/protocol/Ola.pb.cc-7392-}
common/protocol/Ola.pb.cc-7393-
common/protocol/Ola.pb.cc-7394-const UniverseInfo& UniverseInfo::default_instance() {
common/protocol/Ola.pb.cc:7395:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-7396-  return *default_instance_;
common/protocol/Ola.pb.cc-7397-}
common/protocol/Ola.pb.cc-7398-
--
common/protocol/Ola.pb.cc-7915-}
common/protocol/Ola.pb.cc-7916-
common/protocol/Ola.pb.cc-7917-const UniverseInfoReply& UniverseInfoReply::default_instance() {
common/protocol/Ola.pb.cc:7918:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-7919-  return *default_instance_;
common/protocol/Ola.pb.cc-7920-}
common/protocol/Ola.pb.cc-7921-
--
common/protocol/Ola.pb.cc-8144-}
common/protocol/Ola.pb.cc-8145-
common/protocol/Ola.pb.cc-8146-const PortPriorityRequest& PortPriorityRequest::default_instance() {
common/protocol/Ola.pb.cc:8147:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-8148-  return *default_instance_;
common/protocol/Ola.pb.cc-8149-}
common/protocol/Ola.pb.cc-8150-
--
common/protocol/Ola.pb.cc-8531-}
common/protocol/Ola.pb.cc-8532-
common/protocol/Ola.pb.cc-8533-const DeviceConfigRequest& DeviceConfigRequest::default_instance() {
common/protocol/Ola.pb.cc:8534:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-8535-  return *default_instance_;
common/protocol/Ola.pb.cc-8536-}
common/protocol/Ola.pb.cc-8537-
--
common/protocol/Ola.pb.cc-8802-}
common/protocol/Ola.pb.cc-8803-
common/protocol/Ola.pb.cc-8804-const DeviceConfigReply& DeviceConfigReply::default_instance() {
common/protocol/Ola.pb.cc:8805:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-8806-  return *default_instance_;
common/protocol/Ola.pb.cc-8807-}
common/protocol/Ola.pb.cc-8808-
--
common/protocol/Ola.pb.cc-9032-}
common/protocol/Ola.pb.cc-9033-
common/protocol/Ola.pb.cc-9034-const UID& UID::default_instance() {
common/protocol/Ola.pb.cc:9035:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-9036-  return *default_instance_;
common/protocol/Ola.pb.cc-9037-}
common/protocol/Ola.pb.cc-9038-
--
common/protocol/Ola.pb.cc-9303-}
common/protocol/Ola.pb.cc-9304-
common/protocol/Ola.pb.cc-9305-const UniverseRequest& UniverseRequest::default_instance() {
common/protocol/Ola.pb.cc:9306:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-9307-  return *default_instance_;
common/protocol/Ola.pb.cc-9308-}
common/protocol/Ola.pb.cc-9309-
--
common/protocol/Ola.pb.cc-9528-}
common/protocol/Ola.pb.cc-9529-
common/protocol/Ola.pb.cc-9530-const DiscoveryRequest& DiscoveryRequest::default_instance() {
common/protocol/Ola.pb.cc:9531:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-9532-  return *default_instance_;
common/protocol/Ola.pb.cc-9533-}
common/protocol/Ola.pb.cc-9534-
--
common/protocol/Ola.pb.cc-9800-}
common/protocol/Ola.pb.cc-9801-
common/protocol/Ola.pb.cc-9802-const UIDListReply& UIDListReply::default_instance() {
common/protocol/Ola.pb.cc:9803:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-9804-  return *default_instance_;
common/protocol/Ola.pb.cc-9805-}
common/protocol/Ola.pb.cc-9806-
--
common/protocol/Ola.pb.cc-10068-}
common/protocol/Ola.pb.cc-10069-
common/protocol/Ola.pb.cc-10070-const RDMRequestOverrideOptions& RDMRequestOverrideOptions::default_instance() {
common/protocol/Ola.pb.cc:10071:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-10072-  return *default_instance_;
common/protocol/Ola.pb.cc-10073-}
common/protocol/Ola.pb.cc-10074-
--
common/protocol/Ola.pb.cc-10434-}
common/protocol/Ola.pb.cc-10435-
common/protocol/Ola.pb.cc-10436-const RDMRequest& RDMRequest::default_instance() {
common/protocol/Ola.pb.cc:10437:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-10438-  return *default_instance_;
common/protocol/Ola.pb.cc-10439-}
common/protocol/Ola.pb.cc-10440-
--
common/protocol/Ola.pb.cc-10959-}
common/protocol/Ola.pb.cc-10960-
common/protocol/Ola.pb.cc-10961-const RDMDiscoveryRequest& RDMDiscoveryRequest::default_instance() {
common/protocol/Ola.pb.cc:10962:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-10963-  return *default_instance_;
common/protocol/Ola.pb.cc-10964-}
common/protocol/Ola.pb.cc-10965-
--
common/protocol/Ola.pb.cc-11436-}
common/protocol/Ola.pb.cc-11437-
common/protocol/Ola.pb.cc-11438-const RDMFrameTiming& RDMFrameTiming::default_instance() {
common/protocol/Ola.pb.cc:11439:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-11440-  return *default_instance_;
common/protocol/Ola.pb.cc-11441-}
common/protocol/Ola.pb.cc-11442-
--
common/protocol/Ola.pb.cc-11788-}
common/protocol/Ola.pb.cc-11789-
common/protocol/Ola.pb.cc-11790-const RDMFrame& RDMFrame::default_instance() {
common/protocol/Ola.pb.cc:11791:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-11792-  return *default_instance_;
common/protocol/Ola.pb.cc-11793-}
common/protocol/Ola.pb.cc-11794-
--
common/protocol/Ola.pb.cc-12085-}
common/protocol/Ola.pb.cc-12086-
common/protocol/Ola.pb.cc-12087-const RDMResponse& RDMResponse::default_instance() {
common/protocol/Ola.pb.cc:12088:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-12089-  return *default_instance_;
common/protocol/Ola.pb.cc-12090-}
common/protocol/Ola.pb.cc-12091-
--
common/protocol/Ola.pb.cc-12776-}
common/protocol/Ola.pb.cc-12777-
common/protocol/Ola.pb.cc-12778-const TimeCode& TimeCode::default_instance() {
common/protocol/Ola.pb.cc:12779:  if (default_instance_ == NULL) protobuf_AddDesc_Ola_2eproto();
common/protocol/Ola.pb.cc-12780-  return *default_instance_;
common/protocol/Ola.pb.cc-12781-}
common/protocol/Ola.pb.cc-12782-

I am able to reproduce the build error on my Linux machine. I also have something that compiles successfully.
However, I'm not sure if it is correct. make test also succeeds but I'm not sure if compatibility between OLA 0.10.7 compiled against protobuf 3.2 without patches and OLA 0.10.X compiled against protobuf 3.11.x with the patches would be okay.

We don't need the two OLAs to be inter-compatible, as long as the patch doesn't break an older release. Do you want to push the patch somewhere else and I can try compiling it?

@kripton kripton force-pushed the protobuf-3.11-for-ola0.10 branch from 04dafab to 3f72d4a Compare April 21, 2020 19:29
@kripton
Copy link
Member Author

kripton commented Apr 21, 2020

Phew, that was a long list, I didn't expect that :)
However, I've "re-found" this patch here: https://github.com/openwrt/packages/blob/master/net/ola/patches/001-Eliminate-protobuf-AddDescriptors-call.patch
I had this in mind for the protobuf fixes for 0.10 but somehow forgot them. It is now included in this patch series. Thanks to cmuellner.
make test looks good on my machine.

I've also cleaned up the git history of this branch and updated the AUTHORS and NEWS files.

For Travis, I kept my fingers off for now, might come in a later PR. Yes, mostly related to #1584. Any reason why you are using matrix mixed with lots of includes? According to https://docs.travis-ci.com/user/build-matrix/#matrix-expansion we should be able to list the different ENVs we want to test with (verisions of CPPUNIT, LIBFTDI, PROTOBUF) and Travis automatically creates jobs to permutate them all. But I guess that practice is usually more difficult than theory ;)

Let's see if Travis builds this PR stable now. If you need help merging the protobuf fixes from 0.10 into master, I'd be glad to help.

@kripton
Copy link
Member Author

kripton commented Apr 21, 2020

Travis tasks with non-latest protobuf (= [email protected]) are failing on macOS. Linux is fine.
Protobuf@latest works but tests still fail sporadically.

@kripton
Copy link
Member Author

kripton commented Apr 21, 2020

Side note: I've now configured Travis to work on my fork of ola. So I can experiment with it without making a PR here

@kripton kripton force-pushed the protobuf-3.11-for-ola0.10 branch from b424f3c to 3f72d4a Compare April 21, 2020 21:36
@kripton
Copy link
Member Author

kripton commented Apr 24, 2020

@peternewman : Could you test the current state of the PR on your environments? Travis is failing for iOS for the older Protobuf versions and I currently feel unable to fix this myself :/

@peternewman
Copy link
Member

@peternewman : Could you test the current state of the PR on your environments? Travis is failing for iOS for the older Protobuf versions and I currently feel unable to fix this myself :/

Make and make check ran fine for me. I've not done anything more intensive yet.

Having had a quick look, it seem Travis OS X is failing to install the older Protobuf properly via Homebrew, rather than your code breaking things.

@peternewman
Copy link
Member

Having had a quick look, it seem Travis OS X is failing to install the older Protobuf properly via Homebrew, rather than your code breaking things.

I've just realised, looking back, we had the same behaviour on master with Travis too:
https://travis-ci.org/github/OpenLightingProject/ola/builds/672172559

@kripton
Copy link
Member Author

kripton commented May 8, 2020

All done. Tested it with protobuf 3.11.4. Make test looks good on Linux amd64:

============================================================================
Testsuite summary for OLA 0.10.7
============================================================================
# TOTAL: 91
# PASS:  91
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================

plus manually tested with ola_dmxmonitor, ola_dmxconsole and the web interface.

Still unsure about the travis file, even when merging latest 0.10 into this branch. Shall I revert the changes I did and reset to the latest Travis-file in the 0.10-branch?

@kripton
Copy link
Member Author

kripton commented May 8, 2020

According to Travis: Linux builds and test fine, macOS with gcc is also fine, with clang one flaky test failed, all other tests are good 👍

@kripton
Copy link
Member Author

kripton commented May 8, 2020

I've copied the .travis.yml from branch 0.10-libftdi1 to another branch of mine. Travis currently running here: https://travis-ci.org/github/kripton/ola/builds/684850689

@peternewman
Copy link
Member

All done. Tested it with protobuf 3.11.4. Make test looks good on Linux amd64:
plus manually tested with ola_dmxmonitor, ola_dmxconsole and the web interface.

That's great news!

Still unsure about the travis file, even when merging latest 0.10 into this branch. Shall I revert the changes I did and reset to the latest Travis-file in the 0.10-branch?

No, you should leave it as is, you've fixed it! If you look at the previous run on 0.10 ( https://travis-ci.org/github/OpenLightingProject/ola/builds/680355971 ) it wasn't even doing any Mac runs successfully. At least it's now doing one!

For some reason the trick I used to use on the pinned version (now 3.6) isn't working anymore, but one of us can fix that in a later PR, or as part of #1584 .

Copy link
Member

@peternewman peternewman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great @kripton . Just one minor comment on the NEWS text if you wouldn't mind fixing it, then we can merge this one too!

@kripton
Copy link
Member Author

kripton commented May 11, 2020

@peternewman Sure, changes to the NEWS file are no problem :)
However, I don't see any pending comment. Feel free to adapt the text to your liking and merge then. Or course, I can also do the changes if you add your comments

@peternewman
Copy link
Member

However, I don't see any pending comment. Feel free to adapt the text to your liking and merge then. Or course, I can also do the changes if you add your comments

Ah yeah, sorry, I re-opened or added it to an existing comment:
#1630 (comment)

Do you want to do the honours?

@kripton
Copy link
Member Author

kripton commented May 12, 2020

@peternewman Ah, there it is :)
Done 👍

Copy link
Member

@peternewman peternewman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just some new flake8 issues (as flake8 is now a newer version).

I can sort them unless you fancy having a go?
https://travis-ci.org/github/OpenLightingProject/ola/jobs/685997330#L915-L921

ola_rdm_get.py and enforce_licence.py can all become line. Test logger could become s or d to match the others.

env:
- TASK='compile'
- CPPUNIT='1.14'
- PROTOBUF='latest'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parking that for a later PR.

@kripton
Copy link
Member Author

kripton commented May 12, 2020

@peternewman : I've made the changes and the unit test cases are still good. Didn't do any further tests as I don't have any RDM-capable interface nor fixtures available here.
flake8 check on Travis also look good :)

About that "Parking that for a later PR": Is it something that I should undo or are we good for this PR?

Copy link
Member

@peternewman peternewman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry some slight confusion on one flake8 change.

@peternewman
Copy link
Member

@peternewman : I've made the changes and the unit test cases are still good. Didn't do any further tests as I don't have any RDM-capable interface nor fixtures available here.
flake8 check on Travis also look good :)

Great, sounds good thanks. They're fairly minor changes as you can see (especially as the argument in ola_rdm_get.py isn't even used!

About that "Parking that for a later PR": Is it something that I should undo or are we good for this PR?

That was regarding expanding the matrix, your change is perfect as it fixes some broken tests on Mac.

@kripton
Copy link
Member Author

kripton commented May 13, 2020

Great, sounds good thanks. They're fairly minor changes as you can see (especially as the argument in ola_rdm_get.py isn't even used!

Indeed, that arguments not being used was a bit confusing to me.

Changes done, Travis passed 🎉

Copy link
Member

@peternewman peternewman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for this one too @kripton !

@peternewman peternewman merged commit d9528b3 into OpenLightingProject:0.10 May 13, 2020
@kripton kripton deleted the protobuf-3.11-for-ola0.10 branch May 13, 2020 09:15
@peternewman peternewman linked an issue May 13, 2020 that may be closed by this pull request
@peternewman
Copy link
Member

Hmm, we may have spoken a bit too soon @kripton . I just went to merge 0.10 back into master, mostly for the Python bits, and found some merge collisions which after a bit of digging allowed me to rediscover #1192 and #1336 so I think the AddDescriptors stuff should ideally be re-edited to be as follows:
#if GOOGLE_PROTOBUF_VERSION < 3002000

Are you happy to do that on 0.10 @kripton and do a quick test on your OS? Sorry to keep dragging you into this...

@kripton
Copy link
Member Author

kripton commented May 13, 2020

Hmm, we may have spoken a bit too soon @kripton . I just went to merge 0.10 back into master, mostly for the Python bits, and found some merge collisions which after a bit of digging allowed me to rediscover #1192 and #1336 so I think the AddDescriptors stuff should ideally be re-edited to be as follows:
#if GOOGLE_PROTOBUF_VERSION < 3002000

No problem. Sure, I will have a look 👍

@kripton
Copy link
Member Author

kripton commented May 14, 2020

@peternewman : Done, see #1638 :)

@peternewman peternewman added this to the 0.10.8 milestone Jul 13, 2020
buildroot-auto-update pushed a commit to buildroot/buildroot that referenced this pull request Feb 16, 2022
The ola package (Open Lighting Architecture) version 0.10.2 was
removed in commit e692e1f due to an
incompatibility with the protobuf version 3.2.0 present in Buildroot
at that time.

ola was fixed to support newer protobuf version in:
OpenLightingProject/ola#1630

This commit reintroduce this package at version 0.10.8.
For changelogs since its removal at 0.10.2, see:
- https://github.com/OpenLightingProject/ola/releases/tag/0.10.3
- https://github.com/OpenLightingProject/ola/releases/tag/0.10.4
- https://github.com/OpenLightingProject/ola/releases/tag/0.10.5
- https://github.com/OpenLightingProject/ola/releases/tag/0.10.6
- https://github.com/OpenLightingProject/ola/releases/tag/0.10.7
- https://github.com/OpenLightingProject/ola/releases/tag/0.10.8

This commit is based on the previously removed ola package, with the
following rework:
- Remove the dependency on BR2_HOST_GCC_AT_LEAST_4_5 as host gcc is
  now guaranteed to be at least 4.8.
- Update target gcc dependency to >= 4.8 to reflect protobuf
  requirement.
- Remove the BR2_PACKAGE_OLA_SLP option, which was removed in
  ola 0.9.4.
- Change the "DMX4Linux" plugin option name to "Open DMX" to better
  reflect the ola option (DMX4Linux is a legacy plugin for 2.6
  Kernels).
- Update Python support to version 3.x only
- Remove patches, as they are no longer needed
- Add options for ola plugins: ftdidmx, gpio, karate,
  openpixelcontrol, renard, spi, uartdmx, usbdmx
- Reorder options alphabetically
- Update project URL
- Add license hashes

Signed-off-by: Julien Olivain <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make fails with 'GOOGLE_CHECK' not declared in this scope

3 participants