-
Notifications
You must be signed in to change notification settings - Fork 2.1k
nmos-cpp: Add new version, cleanup and support macOS #28340
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
nmos-cpp: Add new version, cleanup and support macOS #28340
Conversation
Clean out very old releases as they will still be in the upstream but just not newly published
* Remove special cases for older 2022 versions * Make it conan 2 only and remove warning-producing lines * Newest version builds on macOS
recipes/nmos-cpp/all/conanfile.py
Outdated
# Simple change as github doesn't allow review comments on unchanged lines that are outside the +/- 3 lines of the changes. | ||
# To be removed in the review process. | ||
if self.settings.os == "Macos": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# Simple change as github doesn't allow review comments on unchanged lines that are outside the +/- 3 lines of the changes. | |
# To be removed in the review process. | |
if self.settings.os == "Macos": | |
if self.settings.os == "Macos": |
Comment just temporary to get the possibility of doing comments in this review tool here which didn't allow it despite unfolding unchanged lines.
recipes/nmos-cpp/all/conanfile.py
Outdated
del self.options.with_dnssd | ||
# The removal on macos makes sense as the mdnsresponder (which is by apple) comes with the OS/Xcode SDK I guess, | ||
# but why override the default. Took me (luckily only a few minutes) time to see why it wanted to get avahi despite the default_options and like thousands of | ||
# dependencies. mdnsresponder is just itself, avahi really has a large sets of dependencies and many of them LGPL infested... | ||
# Also getting the `conan graph info ... --format=html` for avahi and mdnsresponder and opening both in the browser is eye-opening. If there is a reason | ||
# why mdnsresponder isn't cutting it, would be nice to be noted. I'd prefer it with the two elif cases removed to have some consistency. | ||
elif self.settings.os == "Linux": | ||
self.options.with_dnssd = "avahi" | ||
elif self.settings.os == "Windows": | ||
self.options.with_dnssd = "mdnsresponder" | ||
# a last one to being able to github this ... | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
del self.options.with_dnssd | |
# The removal on macos makes sense as the mdnsresponder (which is by apple) comes with the OS/Xcode SDK I guess, | |
# but why override the default. Took me (luckily only a few minutes) time to see why it wanted to get avahi despite the default_options and like thousands of | |
# dependencies. mdnsresponder is just itself, avahi really has a large sets of dependencies and many of them LGPL infested... | |
# Also getting the `conan graph info ... --format=html` for avahi and mdnsresponder and opening both in the browser is eye-opening. If there is a reason | |
# why mdnsresponder isn't cutting it, would be nice to be noted. I'd prefer it with the two elif cases removed to have some consistency. | |
elif self.settings.os == "Linux": | |
self.options.with_dnssd = "avahi" | |
elif self.settings.os == "Windows": | |
self.options.with_dnssd = "mdnsresponder" | |
# a last one to being able to github this ... | |
del self.options.with_dnssd | |
So I wonder why not to remove this or what the reason is for that.
Maybe @garethsb could give some input why there is an override of the defaults. If there is a good reason, I think it should be documented (and I'd happily add that, here, where the override happens and with a short comment in the default_options
so that others don't need to wonder why despite the default avahi is pulled).
Otherwise maybe @jonathan-r-thorpe or @lo-simon who seem to be main contributors to nmos-cpp can comment?
Hi @irieger, and thanks for working on this. Macos build has been possible for a very long time, but we had some problems with it in the conan-center-index CI infrastructure, so agreed to disable it in the recipe. See #14152 (comment). If the build is now successful and the binaries work for people (note that at CCI maintainers request, the test package no longer actually tests that, which it did at the point that we disabled Macos), then very happy to have it reinstated. The rationale for the Avahi vs mDNSResponder differences is:
There are a number of pros and cons to both libraries, with bugs or missing features that affect NMOS, such as support for over-long service types, handling of multiple interfaces, advertising alias hostnames, resolving hostnames to multiple IP addresses, support for unicast DNS-SD, ... Some of these are documented in nmos-cpp repo. Finally, I recommend we get advice from @jonathan-r-thorpe and @lo-simon of which date/commit hash for this release. |
Hi @garethsb thanks for the answer.
I just had the
Ok, get it. Thanks for the explanation. Maybe I'll have another look, but it feels like having a default 'auto' option would be nice. That would be much cleaner than having a default that is overriden anyway and confuses the user why suddenly the selected option (default) is ignored. So idea is:
I'll try this in the evening and also test the client with mdnsresponder on Linux against the registry.
Would be nice to get some feedback there, sure. |
Summary
Changes to recipe: nmos-cpp/various
Motivation
Details
Sadly no official releases yet so doing a cci.xyz release. https://github.com/sony/nmos-cpp, quite a few fixes, like very visibly in the macOS support but also small other MRs.
Took the liberty to remove the 2022 versions and clean out the patches and some workarounds needed for those as well as removing the conan 1 properties to make it a bit cleaner overall.