Skip to content
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

Revert "Disable clang warning in order to mitigate protocolbuffers/protobuf#9181" #1210

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ezzieyguywuf
Copy link
Contributor

This reverts commit dbe419d.

Since protocolbuffers/protobuf#9181 hase been
resolved, this workaround should no longer be needed.

…otobuf#9181"

This reverts commit dbe419d.

Since protocolbuffers/protobuf#9181 hase been
resolved, this workaround should no longer be needed.
@eminence
Copy link
Member

I was going to ask if the fixed protobuf package is available everywhere it needs to be, but it seems that our new github CI has answered that question for us 😃

@ezzieyguywuf
Copy link
Contributor Author

CI is failing due to an old protobuf version in homebrew.

See Homebrew/homebrew-core#105661 for an open PR that will update the version.

@keithw
Copy link
Member

keithw commented Jul 12, 2022

My fear here would be that, because Homebrew doesn't (or didn't historically) track dependencies after installation, even after Homebrew updates the upstream version of protobuf, we still can't take this PR because it will break Mosh for every Homebrew user who has installed an old version of protobuf at any point. But I haven't looked at this in a long time. Can Homebrew set it up so if the user updates Mosh, it will also update the protobuf package?

@ezzieyguywuf
Copy link
Contributor Author

Can Homebrew set it up so if the user updates Mosh, it will also update the protobuf package?

I don't know, but I will look into this. In most package managers that I've interacted with, it's been possible to set a minimum version for a given dependency.

Therefore, I'd think we could set a minimum version for the next mosh version in homebrew and this would be resolved.

I'll update this PR as I learn more.

@eminence
Copy link
Member

eminence commented Jul 12, 2022

What about other clang-based platforms? Has the latest protobuf release been out long enough to make it into all of the necessary package repos? I don't necessarily mind breaking mosh builds if the answer is "run this command to get the latest protobuf". But if the answer is "wait a few more months for your distribution's package repo to get updated and then run this command to get the latest protobuf", then that's not good.

Edit: I should clarify that breaking mosh builds in general is not good, so even if homebrew accepts your patch today, it may be prudent to wait some period of time to naturally let that updated protobuf package become more widely used, thus less likely to cause mosh build errors

@ezzieyguywuf
Copy link
Contributor Author

But if the answer is "wait a few more months for your distribution's package repo to get updated and then run this command to get the latest protobuf", then that's not good.

This is fixed since v3.20, which hit on march 25th, 2022

I can take a look at repology to see which versions are being distributed on various Linux distributions

@ezzieyguywuf
Copy link
Contributor Author

I can take a look at repology

Yikes ,the badges (see below) sure shows a lot of red.

This is somewhat misleading for a few reasons:

  1. Some distributions show many different versions (e.g. Fedora 26 through Fedora 36)
  2. For our purposes, anything >= 3.20 (including >= v20.0 which is when the new versioning started) would be considered "green"

Here's an abbreviated summary:

  • Alpine Linux: only "Edge" version has a new enough protobuf - I think this is the development version
    • Version 3.16.0 was released on May 23, 2022
    • They seem to have a pretty regular release cadence
  • Arch Linux: all show a minimum v21.1, so all good
  • CentOS: latest version 3.14.0 in "CentoOS Stream 9", so this is red
    • Stream is "a rolling-release Linux distro that exists midstream between the upstream development in Fedora Linux and the downstream development for Red Hat Enterprise Linux"
  • Chocolatey (the Windows package manager): v3.20.1, so this is fine for us
  • Debian: v3.20.1 in Debian Unstable - all others are v3.12.4 or lower
  • Fedora: All v3.19.4 or lower
  • Gentoo: v3.19.3
  • Homebrew: v3.19.4
  • Ubuntu
    • 18.04 LTS: 3.2.0
    • 20.05 LTS: 3.6.1.3
    • 22.04 LTS: 3.12.4
    • 22.10 (this is the latest release): 3.12.4

So overall I guess it's not looking too good.

I'm curious why the macos CI is the only one to fail though, I guess maybe b/c we're using gcc in the other environments?

Either way, I guess it's still too soon for this PR - I'm happy to close it, or just let it sit here until the new protobuf has percolated into enough package managers.

badges

@eminence
Copy link
Member

Thanks for putting together that summary

I'm curious why the macos CI is the only one to fail though, I guess maybe b/c we're using gcc in the other environments?

I think that's right. My reading of the protobuf issue is that it's specific to clang. I don't honestly know how common clang is (as the default compiler) on systems like Debian (but I did ask a friend who said it is "approximately never").

So Homebrew is obviously the primary concern here, and we definitely need to wait for that. Let's park this PR for now and revisit later. I don't think there's an urgent need to revert this patch.

@carlocab
Copy link

Can Homebrew set it up so if the user updates Mosh, it will also update the protobuf package?

brew install mosh and brew upgrade mosh will always upgrade mosh's dependencies to the newest version known to that installation of brew. This is typically the version in the homebrew-core repository, but there are some users who go out of their way to prevent brew from updating itself.

@carlocab
Copy link

Homebrew is now on 21.2. Thanks @ezzieyguywuf for getting the ball rolling on it!

@achernya
Copy link
Collaborator

achernya commented Aug 3, 2022

Let's close this out for now. We should not merge this before the 1.4 release, but we can revisit after.

@ezzieyguywuf
Copy link
Contributor Author

ezzieyguywuf commented Aug 3, 2022

Let's close this out for now. We should not merge this before the 1.4 release, but we can revisit after.

Sgtm. I'm surprised that last CI run failed, it should be using the updated protoc

Edit: interesting - i took a look and the errors looks different.

Still protobuf related, but this time due to unused parameters.

Should be fixable but i agree that this can wait till after 1.4

@achernya
Copy link
Collaborator

achernya commented Aug 3, 2022

I think that's because of protocolbuffers/protobuf#10357, I have #1215 out to fix that.

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.

5 participants