Following the removal of keyserv, none of this functionality works since
it requires keyserv. Stub it out to always return an error.
Details
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped - Build Status
Buildable 65773 Build 62656: arc lint + arc unit
Event Timeline
I'm not convinced this is the right way to go about it. It will still be possible to compile binaries which use these interfaces, and existing binaries which will continue to run but cease to function, which violates the spirit of library versioning. What you should do instead is leave the functions untouched, but remove their prototypes from the header files and their names from the symbol map, and use __sym_compat() to provide compatibility symbols. See for instance rG7381dcc9eeb7 which deprecated gets(). This will allow FreeBSD 14 binaries which use these interfaces to continue working on a FreeBSD 15 system, but prevent compiling new binaries which rely on them.
I'm not sure that's necessary. You can ask portmgr to grep for authdes_create and key_setsecret in distfiles, then look at the affected ports if and only if they get any hits.
i agree about removing these symbols' visibility for new programs, but i'm not sure keeping the existing implementation makes sense. these functions rely on keyserv(8), which was already removed, so nothing that uses this API will work on FreeBSD 15.0; the only difference is we'll take longer to report an error.
so does it make sense to use the stub versions i've provided, but also fix the visbility issue?
Should these functions set errno before returning?
It looks like they didn't before, so consumers are presumably just checking for NULL and we shouldn't set errno.
this turned out to be a bit of a rabbit hole.
firstly, i merged D50444 and D50453 into this diff.
i've removed a few more DES symbols that don't work without keyserv. all the
removed symbols now have __sym_compat aliases.
i've entirely removed usr.sbin/ypupdated because it requires DES authentication.
i'll add UPDATING and RELNOTES entries and bump Dd once this is ready to land.
| lib/libc/rpc/svc_auth_des.c | ||
|---|---|---|
| 65 | I guess this is the most appropriate, Failed (unspecified error) | |