Skip to content

use transparent strlcpy/strlcat fallback#151

Open
guijan wants to merge 1 commit into
trusteddomainproject:masterfrom
guijan:libbsd-overlay
Open

use transparent strlcpy/strlcat fallback#151
guijan wants to merge 1 commit into
trusteddomainproject:masterfrom
guijan:libbsd-overlay

Conversation

@guijan
Copy link
Copy Markdown

@guijan guijan commented May 2, 2022

Using libbsd-overlay through pkg-config allows accessing strlcpy/strlcat by including <string.h> and programming as if we're on BSD. This simplifies compatibility code massively.

My interest here is making OpenDKIM work with my libobsd library which I'm trying to get into OpenWRT at openwrt/openwrt#9714. OpenDKIM is one of the programs my library needs to work with for that.
My library can act as an alternative to libbsd, and I'm trying to get others to use libbsd's libbsd-overlay mode over the normal libbsd mode because I think it leads to smaller, simpler, and cleaner code as evidenced by this PR.

I've build tested this on Alpine Linux and OpenBSD.

Using _libbsd-overlay_ through pkg-config allows accessing
`strlcpy`/`strlcat` by including `<string.h>`, just like on BSD. This
simplifies compatibility code massively.
@guijan
Copy link
Copy Markdown
Author

guijan commented Jun 14, 2022

Poking @mskucherawy.

@thegushi thegushi added needs-discussion for internal discussion needs-more-info Need more info from reporter labels May 25, 2026
@thegushi
Copy link
Copy Markdown
Collaborator

Thanks for the PR - the code reduction is appealing, but we have concerns about making libbsd (or a compatible library) a mandatory build dependency on non-BSD platforms. libbsd availability varies quite a bit across Linux distros and embedded targets, and we're wary of adding more complexity to the configure.ac dependency detection. Can you speak to how widely available libbsd-overlay is, particularly on older distros and non-mainstream platforms? This needs discussion with the broader team before we can consider merging.

@orlitzky
Copy link
Copy Markdown

TIL that musl has strlcpy and strlcat.

If it takes off, it may make sense to support this in addition to libbsd, but not as a replacement. In any case it would be much nicer to have the whitespace changes split out into separate commits for readability, and targeted at the develop branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-discussion for internal discussion needs-more-info Need more info from reporter

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants