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

Update nanopb to 0.3.9.5 (CocoaPods 1.30905.0) #4264

Merged
merged 16 commits into from
Apr 28, 2020
Merged

Conversation

paulb777
Copy link
Member

@paulb777 paulb777 commented Nov 7, 2019

Fix #5191

See google/nanopb-podspec#13 for a description of the new nanopb CocoaPods versioning scheme.

Updates test infrastructure to test preliminary versions of Analytics pod structure (but not functional) changes.

See #5455 for the corresponding no-op nanopb code gen changes.

Googlers - see also cl/308045137

#no-changelog

@paulb777
Copy link
Member Author

paulb777 commented Nov 7, 2019

@wilhuff The old gRPC-C++ dependency on nanopb "~> 0.3" is blocking the migration of Firebase to be able to update to the 1.0.0 version documented in google/nanopb-podspec#13. Is there a plan to update Firestore to a later version of gRPC-C++ that includes the nanopb removal? Or any other suggestion for resolution?

Firestore tests fail with

[!] CocoaPods could not find compatible versions for pod "nanopb":
  In Podfile:
    FirebaseFirestore (from `../../`) was resolved to 1.7.0, which depends on
      gRPC-C++ (= 0.0.9) was resolved to 0.0.9, which depends on
        gRPC-C++/Implementation (= 0.0.9) was resolved to 0.0.9, which depends on
          nanopb (~> 0.3)
    FirebaseFirestore (from `../../`) was resolved to 1.7.0, which depends on
      nanopb (~> 1.0.0)
@wilhuff
Copy link
Contributor

wilhuff commented Nov 7, 2019

I'll work with gRPC-team to get a respin of gRPC-C++ out. This will likely be in gRPC-C++ 1.25.1 (formal support for gRPC-C++ on iOS will come with that).

wilhuff added a commit that referenced this pull request Nov 14, 2019
This unblocks nanopb changes proposed in #4264.
@paulb777 paulb777 added this to the Firebase 7 milestone Feb 3, 2020
@paulb777
Copy link
Member Author

paulb777 commented Feb 3, 2020

Moving this to Firebase 7 to coordinate the breaking change update across internal and external repos.

wilhuff added a commit that referenced this pull request Feb 24, 2020
In addition to the version change, this comes with some other changes:

  * gRPC now depends upon Abseil, so we no longer directly include
    abseil-cpp for ourselves.
  * gRPC's CMake system now allows all interesting dependencies to
    specify their location via a ROOT_DIR variable (e.g.
    ABSL_ROOT_DIR). Use these to move sources outside the gRPC source
    tree, removing the need for a separate grpc-download target. This
    fixes the problem where each gRPC upgrade would wipe out its
    dependencies.

This unblocks nanopb changes proposed in #4264.
wilhuff added a commit that referenced this pull request Apr 16, 2020
In addition to the version change, this comes with some other changes:

  * gRPC now depends upon Abseil, so we no longer directly include
    abseil-cpp for ourselves.
  * gRPC's CMake system now allows all interesting dependencies to
    specify their location via a ROOT_DIR variable (e.g.
    ABSL_ROOT_DIR). Use these to move sources outside the gRPC source
    tree, removing the need for a separate grpc-download target. This
    fixes the problem where each gRPC upgrade would wipe out its
    dependencies.

This unblocks nanopb changes proposed in #4264.
wilhuff added a commit that referenced this pull request Apr 16, 2020
In addition to the version change, this comes with some other changes:

  * gRPC now depends upon Abseil, so we no longer directly include
    abseil-cpp for ourselves.
  * gRPC's CMake system now allows all interesting dependencies to
    specify their location via a ROOT_DIR variable (e.g.
    ABSL_ROOT_DIR). Use these to move sources outside the gRPC source
    tree, removing the need for a separate grpc-download target. This
    fixes the problem where each gRPC upgrade would wipe out its
    dependencies.

This unblocks nanopb changes proposed in #4264.
wilhuff added a commit that referenced this pull request Apr 22, 2020
This unblocks nanopb changes proposed in #4264.

This upgrades everything in the gRPC constellation of dependencies to match gRPC at 1.28:

  * gRPC to 1.28.0 (note that gRPC 1.28.1, while released, is a fix for just the python binding and there's no gRPC-C++ CocoaPod at that version)
  * Abseil to 20200225 (as of gRPC 1.27 this is now a gRPC dependency too; there's a later patch but gRPC doesn't use it yet)
  * Protobuf C++ to 3.11.4 (only used for testing in Firestore)
  * C-Ares to 1.15.0
  * BoringSSL to match (no change between gRPC 1.27.0 and 1.28.0)

Also, this disables CFStream-based transport on Apple platforms. This works around b/133182964, wherein CFStream will occasionally fail to raise a has-bytes-available events, causing Firestore to appear to hang.
@wilhuff
Copy link
Contributor

wilhuff commented Apr 22, 2020

With #4312 submitted this change should now be unblocked.

@wilhuff wilhuff assigned paulb777 and unassigned wilhuff Apr 22, 2020
@paulb777 paulb777 changed the title Test nanopb 1.0.0 (0.3.9.4) Apr 23, 2020
@paulb777 paulb777 modified the milestones: Firebase 7, M70 Apr 23, 2020
ryanwilson pushed a commit that referenced this pull request Apr 24, 2020
This unblocks nanopb changes proposed in #4264.

This upgrades everything in the gRPC constellation of dependencies to match gRPC at 1.28:

  * gRPC to 1.28.0 (note that gRPC 1.28.1, while released, is a fix for just the python binding and there's no gRPC-C++ CocoaPod at that version)
  * Abseil to 20200225 (as of gRPC 1.27 this is now a gRPC dependency too; there's a later patch but gRPC doesn't use it yet)
  * Protobuf C++ to 3.11.4 (only used for testing in Firestore)
  * C-Ares to 1.15.0
  * BoringSSL to match (no change between gRPC 1.27.0 and 1.28.0)

Also, this disables CFStream-based transport on Apple platforms. This works around b/133182964, wherein CFStream will occasionally fail to raise a has-bytes-available events, causing Firestore to appear to hang.
@paulb777 paulb777 changed the title Update nanopb to 0.3.9.5 (CocoaPods 1.0.0) Apr 24, 2020
@paulb777 paulb777 assigned wilhuff and unassigned paulb777 Apr 24, 2020
@paulb777 paulb777 changed the title Update nanopb to 0.3.9.5 (CocoaPods 1.300905.0) Apr 27, 2020
Copy link
Contributor

@samedson samedson left a comment

Choose a reason for hiding this comment

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

Crashlytics 👍

Ran a sanity check crashes are still reported

Copy link
Contributor

@samedson samedson left a comment

Choose a reason for hiding this comment

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

Might have spoke too soon - Crashlytics is having an incident right now, so crashes aren't showing up for GDT (I forgot to force-on the GDT experiment).

Going to try again tomorrow

@@ -1,3 +1,10 @@
# v6.7.0 -- M70
- [fixed] Updated the nanopb version dependency across Firebase to 0.3.9.5 that
Copy link
Contributor

Choose a reason for hiding this comment

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

You can phrase this more simply and tersely, while giving more details.

Updated nanopb to 0.3.9.5 (across all Firebase pods). This includes a fix for CVE-2020-5235. Note that the versioning scheme for the nanopb CocoaPod has changed, see https://github.com/google/nanopb-podspec for more details.

In particular:

  • We should link to details of the specific vulnerability we're fixing
  • I don't think we need to fully spell out the versioning change here, given that we're linking to a page that describes it in detail
Firestore/Example/Podfile Show resolved Hide resolved
Copy link
Contributor

@wilhuff wilhuff left a comment

Choose a reason for hiding this comment

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

LGTM

@paulb777
Copy link
Member Author

Going to merge now since testing looks good so far and to have a day to further bake before tomorrow's code freeze.

@paulb777 paulb777 merged commit 6851328 into master Apr 28, 2020
@paulb777 paulb777 deleted the pb-test-nanopb branch April 28, 2020 00:10
@doudounan
Copy link

doudounan commented Apr 28, 2020

Got a pod install error in GDTCCTWatchOSTestApp with this GoogleDataTransportCCTSupport.podspec

[!] CocoaPods could not find compatible versions for pod "nanopb":
In snapshot (Podfile.lock):
nanopb (= 0.3.9011, ~> 0.3.901)

In Podfile:
GoogleDataTransportCCTSupport (from ../../) was resolved to 3.1.0, which depends on
nanopb (~> 1.30905.0)

Specs satisfying the nanopb (= 0.3.9011, ~> 0.3.901), nanopb (~> 1.30905.0) dependency were found, but they required a higher minimum deployment target.

@paulb777
Copy link
Member Author

@doudounan Likely a similar fix as #5483 is needed

@doudounan
Copy link

@paulb777 Thanks, Paul.

@krsvital
Copy link

krsvital commented May 8, 2020

i have tha same problem, and only full downgrade solved this

pod 'nanopb', '>0.3.9011'
pod 'FirebaseCore', '>6.6.7'
pod 'FirebaseCoreDiagnostics', '>1.2.4'
pod 'FirebaseMessaging', '4.3.1'
pod 'GoogleDataTransport', '>6.0.0'
pod 'GoogleDataTransportCCTSupport', '~>3.0.0'

@paulb777
Copy link
Member Author

paulb777 commented May 8, 2020

@krsvital If you're seeing this problem after the Firebase 6.24.0 release, please open a new issue with your Podfile and Podfile.lock.

@firebase firebase locked as resolved and limited conversation to collaborators May 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.