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

Add privacy manifest #1604

Closed
wants to merge 1 commit into from

Conversation

HannahShiSFB
Copy link
Contributor

@HannahShiSFB HannahShiSFB commented Jan 21, 2024

Looks like abseil is not using any of the APIs listed in https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api?language=objc, so adding an empty manifest file.

fixes #1602

@HannahShiSFB HannahShiSFB changed the title add privacy manifest Add privacy manifest Jan 21, 2024
@HannahShiSFB HannahShiSFB marked this pull request as ready for review January 21, 2024 02:20
Copy link
Member

@derekmauro derekmauro left a comment

Choose a reason for hiding this comment

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

Thank you. Does this have to go in the absl/ directory, or can it go in the root directory of the project? I think I would prefer the root if it works, but I don't know if it does.

@HannahShiSFB
Copy link
Contributor Author

I put it into absl/ because abseil.podspec.gen.py is in absl/, will move the manifest file to root directory.

@derekmauro
Copy link
Member

Merged, thank you!

@HannahShiSFB
Copy link
Contributor Author

HannahShiSFB commented Jan 31, 2024

@derekmauro Hi Derek, Thank you for the quick response! May I ask, will Abseil have a release in the near future? We have clients count on the privacy manifest change.

BTW, we also need backport to Abseil version 20220623.0, to support grpc 1.49, do you know who I need to talk to?
Thanks a lot!

@derekmauro
Copy link
Member

@derekmauro Hi Derek, Thank you for the quick response! May I ask, will Abseil have a release in the near future? We have clients count on the privacy manifest change.

BTW, we also need backport to Abseil version 20220623.0, to support grpc 1.49, do you know who I need to talk to? Thanks a lot!

We just had a release last week and we normally release approximately every 6 months, so the timing on this inquiry isn't great. A backport is probably the simplest option. When do you need this by?

@HannahShiSFB
Copy link
Contributor Author

I have created the PRs to backport to the lts branches that gRPC is depending on, can you help merge them and publish new versions? Thanks.

@Zuzuyoti

This comment was marked as spam.

@derekmauro
Copy link
Member

I have created the PRs to backport to the lts branches that gRPC is depending on, can you help merge them and publish new versions? Thanks.

Can you please clarify the time frame that you need this by? If possible I'd like to wait a bit to see if there are any additional issues that require a patch in the most recent release so I can batch them into a single patch release.

@HannahShiSFB
Copy link
Contributor Author

I have created the PRs to backport to the lts branches that gRPC is depending on, can you help merge them and publish new versions? Thanks.

Can you please clarify the time frame that you need this by? If possible I'd like to wait a bit to see if there are any additional issues that require a patch in the most recent release so I can batch them into a single patch release.

May I ask how much time you are thinking about? We have a client(Firebase) is waiting eagerly and would want this asap, but if you're able to get the verifications in no more than a week, we can probably wait a bit...

@derekmauro
Copy link
Member

I merged your pull requests and can create new releases next week.

By the way, I noticed you didn't backport to 20230125.3. I guess you don't need that? I should probably backport to that as well anyway.

@HannahShiSFB
Copy link
Contributor Author

I merged your pull requests and can create new releases next week.

By the way, I noticed you didn't backport to 20230125.3. I guess you don't need that? I should probably backport to that as well anyway.

Thank you so much for your quick response! It helps a lot!
Yes, we don't need 20230125.3 at this point.

@derekmauro
Copy link
Member

I've created new releases with the backport.

@HannahShiSFB
Copy link
Contributor Author

Thank you! It's great!

Comment on lines +33 to +35
s.resource_bundles = {
s.module_name => 'PrivacyInfo.xcprivacy',
}
Copy link

@ncooke3 ncooke3 Mar 14, 2024

Choose a reason for hiding this comment

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

Hi @HannahShiSFB, because the resource bundle is at the root of the podspec, it will not get pulled down when clients like Firebase depend on subspecs of the pod (example).

See the approach taken in grpc/grpc#35542 and google/GoogleUtilities#144.

The subspecs in this spec look to be generated (example spec that has been published).

I can think of a few options to fix this:

  1. Add a new subspec with the privacy manifest and make it a dependency of all other subspecs.
  2. Wrap the existing bundle declaration in a subspec that clients like Firebase would manually point to in our podpspecs
  3. Throw the resource bundle in the base subspec's config subspec (abseil/base/config) because that nested config subspec looks to be a core dependency of many other subspecs.

Then, releasing a patch fix will be needed with any necessary backporting, and should also include changes from the unrelated #1639.

copybara-service bot pushed a commit that referenced this pull request Mar 18, 2024
Imported from GitHub PR #1643

Addressing comments at #1604
Add a xcprivacy subspec and have all other subspecs depend on it (option 1)

Didn't going with option 3 because there are several levels of subspecs in abseil podspec, it's difficult to track whether all of them directly or indirectly depends on abseil/base/config or ensure they will continue to depend on it.

Example of generated podsped: https://gist.github.com/HannahShiSFB/15d8fb6aa637f2781b7be4218d080f11
Merge 4405cdf into 4539c54

Merging this change closes #1643

COPYBARA_INTEGRATE_REVIEW=#1643 from HannahShiSFB:privacy-manifests 4405cdf
PiperOrigin-RevId: 616914674
Change-Id: If56d5a4f1a7cc6f9fac7a2d8e95b55d140e645fc
netkex pushed a commit to netkex/abseil-cpp that referenced this pull request Apr 3, 2024
Imported from GitHub PR abseil#1604

Looks like abseil is not using any of the APIs listed in https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api?language=objc, so adding an empty manifest file.

fixes abseil#1602
Merge 79da4bd into f7d2b13

Merging this change closes abseil#1604

COPYBARA_INTEGRATE_REVIEW=abseil#1604 from HannahShiSFB:privacy-manifests 79da4bd
PiperOrigin-RevId: 600525731
Change-Id: I3fbc6dcc6e47032665a9fa72c000ae245a25dd52
netkex pushed a commit to netkex/abseil-cpp that referenced this pull request Apr 3, 2024
Imported from GitHub PR abseil#1643

Addressing comments at abseil#1604
Add a xcprivacy subspec and have all other subspecs depend on it (option 1)

Didn't going with option 3 because there are several levels of subspecs in abseil podspec, it's difficult to track whether all of them directly or indirectly depends on abseil/base/config or ensure they will continue to depend on it.

Example of generated podsped: https://gist.github.com/HannahShiSFB/15d8fb6aa637f2781b7be4218d080f11
Merge 4405cdf into 4539c54

Merging this change closes abseil#1643

COPYBARA_INTEGRATE_REVIEW=abseil#1643 from HannahShiSFB:privacy-manifests 4405cdf
PiperOrigin-RevId: 616914674
Change-Id: If56d5a4f1a7cc6f9fac7a2d8e95b55d140e645fc
derekmauro added a commit to derekmauro/abseil-cpp that referenced this pull request Apr 8, 2024
* Prevent overflow in absl::CEscape()
Strings larger than 1 GiB on a platform with a 32-bit size_t could
potentially overflow size_t in `CEscapedLength()`, resulting in an
undersized allocation. The resulting write in
`CEscapeAndAppendInternal()` would then write beyond the bounds of the
output buffer.

A second overflow, where the calculated escaped length is added to the
size of the string being appended to, is also fixed.

In both cases the program will now abort prior to the overflow.

Credit goes to Ronald Crane (Zippenhop LLC) for reporting this issue.

PiperOrigin-RevId: 607019573
Change-Id: I97bf246cde96102a793d2db49446cccae08abf59

* Workaround for NVIDIA C++ compiler being unable to parse variadic
expansions in range of range-based for loop

Fixes: abseil#1629
PiperOrigin-RevId: 611131201
Change-Id: I787731e00207b544ee16055e6e0d323a5094a433

* Fix OSX support with CocoaPods and Xcode 15

PiperOrigin-RevId: 615090942
Change-Id: I7cc20a0129dcfbbddedd9e6d816bb6234bff14b3

* PR abseil#1643: add xcprivacy to all subspecs
Imported from GitHub PR abseil#1643

Addressing comments at abseil#1604
Add a xcprivacy subspec and have all other subspecs depend on it (option 1)

Didn't going with option 3 because there are several levels of subspecs in abseil podspec, it's difficult to track whether all of them directly or indirectly depends on abseil/base/config or ensure they will continue to depend on it.

Example of generated podsped: https://gist.github.com/HannahShiSFB/15d8fb6aa637f2781b7be4218d080f11
Merge 4405cdf into 4539c54

Merging this change closes abseil#1643

COPYBARA_INTEGRATE_REVIEW=abseil#1643 from HannahShiSFB:privacy-manifests 4405cdf
PiperOrigin-RevId: 616914674
Change-Id: If56d5a4f1a7cc6f9fac7a2d8e95b55d140e645fc
derekmauro added a commit that referenced this pull request Apr 8, 2024
* Prevent overflow in absl::CEscape()
Strings larger than 1 GiB on a platform with a 32-bit size_t could
potentially overflow size_t in `CEscapedLength()`, resulting in an
undersized allocation. The resulting write in
`CEscapeAndAppendInternal()` would then write beyond the bounds of the
output buffer.

A second overflow, where the calculated escaped length is added to the
size of the string being appended to, is also fixed.

In both cases the program will now abort prior to the overflow.

Credit goes to Ronald Crane (Zippenhop LLC) for reporting this issue.

PiperOrigin-RevId: 607019573
Change-Id: I97bf246cde96102a793d2db49446cccae08abf59

* Workaround for NVIDIA C++ compiler being unable to parse variadic
expansions in range of range-based for loop

Fixes: #1629
PiperOrigin-RevId: 611131201
Change-Id: I787731e00207b544ee16055e6e0d323a5094a433

* Fix OSX support with CocoaPods and Xcode 15

PiperOrigin-RevId: 615090942
Change-Id: I7cc20a0129dcfbbddedd9e6d816bb6234bff14b3

* PR #1643: add xcprivacy to all subspecs
Imported from GitHub PR #1643

Addressing comments at #1604
Add a xcprivacy subspec and have all other subspecs depend on it (option 1)

Didn't going with option 3 because there are several levels of subspecs in abseil podspec, it's difficult to track whether all of them directly or indirectly depends on abseil/base/config or ensure they will continue to depend on it.

Example of generated podsped: https://gist.github.com/HannahShiSFB/15d8fb6aa637f2781b7be4218d080f11
Merge 4405cdf into 4539c54

Merging this change closes #1643

COPYBARA_INTEGRATE_REVIEW=#1643 from HannahShiSFB:privacy-manifests 4405cdf
PiperOrigin-RevId: 616914674
Change-Id: If56d5a4f1a7cc6f9fac7a2d8e95b55d140e645fc
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.

[Bug]: Add Privacy Manifest
4 participants