Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Conditionally include linux/udp.h #2894

Merged
merged 2 commits into from
Sep 20, 2024
Merged

Conversation

rnro
Copy link
Contributor

@rnro rnro commented Sep 20, 2024

Motivation:

To enable access to UDP_MAX_SEGMENTS we switched from including netinet/udp.h to including linux/udp.h however the latter isn't available in MUSL.

Modifications:

if linux/udp.h is available then import it in favor of netinet/udp.h. If we fall back to the latter then UDP_MAX_SEGMENTS won't be defined but that will be caught by the existing paths which account for this case.

Result:

NIO should be able to build against a static MUSL SDK again.

Motivation:

To enable access to `UDP_MAX_SEGMENTS` we switched from including
`netinet/udp.h` to including `linux/udp.h` however the latter isn't
available in MUSL.

Modifications:

if `linux/udp.h` is available then import it in favor of
`netinet/udp.h`. If we fall back to the latter then `UDP_MAX_SEGMENTS`
won't be defined but that will be caught by the existing paths which
account for this case.

Result:

NIO should be able to build against a static MUSL SDK again.
@Lukasa Lukasa added the 🔨 semver/patch No public API change. label Sep 20, 2024
@Lukasa Lukasa enabled auto-merge (squash) September 20, 2024 14:07
@rnro
Copy link
Contributor Author

rnro commented Sep 20, 2024

This should help with part of #2893

@Lukasa Lukasa merged commit f666505 into apple:main Sep 20, 2024
28 of 29 checks passed
@briancoyner
Copy link

Confirmed... main no longer generates the #include <linux/udp.h> error as described in #2893.

@rnro rnro deleted the linux_udp_musl_build branch September 23, 2024 13:18
cgrindel-self-hosted-renovate bot referenced this pull request in cgrindel/rules_swift_package_manager Sep 25, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [apple/swift-nio](https://github.com/apple/swift-nio) | minor
| `2.72.0` -> `2.73.0` |

---

### Release Notes

<details>
<summary>apple/swift-nio (apple/swift-nio)</summary>

###
[`v2.73.0`](https://github.com/apple/swift-nio/releases/tag/2.73.0)

[Compare
Source](https://github.com/apple/swift-nio/compare/2.72.0...2.73.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### SemVer Minor

- Make `ByteBuffer`'s description more useful by
[@&#8203;supersonicbyte](https://github.com/supersonicbyte) in
[https://github.com/apple/swift-nio/pull/2864](https://github.com/apple/swift-nio/pull/2864)
- Expose `UDP_MAX_SEGMENTS` via System by
[@&#8203;rnro](https://github.com/rnro) in
[https://github.com/apple/swift-nio/pull/2891](https://github.com/apple/swift-nio/pull/2891)
- Add new `ChannelOption` to get the amount of buffered outbound data in
the Channel by
[@&#8203;johnnzhou](https://github.com/johnnzhou) in
[https://github.com/apple/swift-nio/pull/2849](https://github.com/apple/swift-nio/pull/2849)
- Add an `AcceptBackoffHandler` to the async server bootstraps by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2782](https://github.com/apple/swift-nio/pull/2782)

##### SemVer Patch

- Adding a nicer description for `WebSocketFrame` by
[@&#8203;supersonicbyte](https://github.com/supersonicbyte) in
[https://github.com/apple/swift-nio/pull/2862](https://github.com/apple/swift-nio/pull/2862)
- Improving `description` and adding `debugDescription` to `NIOAny` by
[@&#8203;supersonicbyte](https://github.com/supersonicbyte) in
[https://github.com/apple/swift-nio/pull/2866](https://github.com/apple/swift-nio/pull/2866)
- Make FileChunk sendable by
[@&#8203;ali-ahsan-ali](https://github.com/ali-ahsan-ali) in
[https://github.com/apple/swift-nio/pull/2871](https://github.com/apple/swift-nio/pull/2871)
- Make `ByteBuffer.debugDescription` suitable for structural display by
[@&#8203;dnadoba](https://github.com/dnadoba) in
[https://github.com/apple/swift-nio/pull/2495](https://github.com/apple/swift-nio/pull/2495)
- Add support for WASILibc by
[@&#8203;MaxDesiatov](https://github.com/MaxDesiatov) in
[https://github.com/apple/swift-nio/pull/2671](https://github.com/apple/swift-nio/pull/2671)
- `NIOSingleStepByteToMessageDecoder` reentrancy safety by
[@&#8203;rnro](https://github.com/rnro) in
[https://github.com/apple/swift-nio/pull/2881](https://github.com/apple/swift-nio/pull/2881)
- Adopt `NIOThrowingAsyncSequenceProducer` by
[@&#8203;rnro](https://github.com/rnro) in
[https://github.com/apple/swift-nio/pull/2879](https://github.com/apple/swift-nio/pull/2879)
- Clamp buffer to maximum upon large write operation by
[@&#8203;ali-ahsan-ali](https://github.com/ali-ahsan-ali) in
[https://github.com/apple/swift-nio/pull/2745](https://github.com/apple/swift-nio/pull/2745)
- Revert "Adopt `NIOThrowingAsyncSequenceProducer`
([#&#8203;2879](https://github.com/apple/swift-nio/issues/2879))"
by [@&#8203;rnro](https://github.com/rnro) in
[https://github.com/apple/swift-nio/pull/2892](https://github.com/apple/swift-nio/pull/2892)
- Add concrete description for `EmbeddedEventLoop` by
[@&#8203;aryan-25](https://github.com/aryan-25) in
[https://github.com/apple/swift-nio/pull/2890](https://github.com/apple/swift-nio/pull/2890)
- Conditionally include linux/udp.h by
[@&#8203;rnro](https://github.com/rnro) in
[https://github.com/apple/swift-nio/pull/2894](https://github.com/apple/swift-nio/pull/2894)
- Work around a type checking error when using the Static Linux SDK by
[@&#8203;euanh](https://github.com/euanh) in
[https://github.com/apple/swift-nio/pull/2898](https://github.com/apple/swift-nio/pull/2898)

##### Other Changes

- \[CI] Run tests on push to main by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2868](https://github.com/apple/swift-nio/pull/2868)
- \[CI] License header support `.in` and `.cmake` files by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2870](https://github.com/apple/swift-nio/pull/2870)
- Include nanoseconds in assertion of timestamp for NIOFileSystem tests
by [@&#8203;gjcairo](https://github.com/gjcairo) in
[https://github.com/apple/swift-nio/pull/2869](https://github.com/apple/swift-nio/pull/2869)
- Correct the link of sswg-security at SECURITY.md by
[@&#8203;lamtrinhdev](https://github.com/lamtrinhdev) in
[https://github.com/apple/swift-nio/pull/2872](https://github.com/apple/swift-nio/pull/2872)
- Speculative fix for flakey AsyncTestingEventLoop test by
[@&#8203;simonjbeaumont](https://github.com/simonjbeaumont) in
[https://github.com/apple/swift-nio/pull/2873](https://github.com/apple/swift-nio/pull/2873)
- ci: Install shellcheck if not present in CI runner by
[@&#8203;simonjbeaumont](https://github.com/simonjbeaumont) in
[https://github.com/apple/swift-nio/pull/2882](https://github.com/apple/swift-nio/pull/2882)
- ci: Use ${GITHUB_BASE_REF} as treeish for checking API break by
[@&#8203;simonjbeaumont](https://github.com/simonjbeaumont) in
[https://github.com/apple/swift-nio/pull/2883](https://github.com/apple/swift-nio/pull/2883)
- ci: Refer to nested reusable workflows using remote variant by
[@&#8203;simonjbeaumont](https://github.com/simonjbeaumont) in
[https://github.com/apple/swift-nio/pull/2884](https://github.com/apple/swift-nio/pull/2884)
- \[CI] Fix pull request label workflow by
[@&#8203;FranzBusch](https://github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2885](https://github.com/apple/swift-nio/pull/2885)

#### New Contributors

- [@&#8203;ali-ahsan-ali](https://github.com/ali-ahsan-ali)
made their first contribution in
[https://github.com/apple/swift-nio/pull/2871](https://github.com/apple/swift-nio/pull/2871)
- [@&#8203;aryan-25](https://github.com/aryan-25) made their
first contribution in
[https://github.com/apple/swift-nio/pull/2890](https://github.com/apple/swift-nio/pull/2890)
- [@&#8203;johnnzhou](https://github.com/johnnzhou) made their
first contribution in
[https://github.com/apple/swift-nio/pull/2849](https://github.com/apple/swift-nio/pull/2849)
- [@&#8203;euanh](https://github.com/euanh) made their first
contribution in
[https://github.com/apple/swift-nio/pull/2898](https://github.com/apple/swift-nio/pull/2898)

**Full Changelog**:
apple/swift-nio@2.72.0...2.73.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45NC4xIiwidXBkYXRlZEluVmVyIjoiMzguOTQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: cgrindel-self-hosted-renovate[bot] <139595543+cgrindel-self-hosted-renovate[bot]@users.noreply.github.com>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
🔨 semver/patch No public API change.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants