HEADS UP: <utmp.h> gone. All welcome <utmpx.h>.

From: Ed Schouten <ed_at_80386.nl>
Date: Wed, 13 Jan 2010 20:42:54 +0100
Hello everyone,

I just made various commits to FreeBSD HEAD to remove our old user
accounting database interface (see utmp(5)) and replace it by the POSIX
standardized utmpx interface (see getutxent(3)). This means we just got
rid of some annoyances that are as old as the FreeBSD project itself:

- Hostnames were originally restricted to 16 bytes, which is way too
  short for your average hostname generated by your ISP, but also for
  IPv6 addresses, which are at most 32 + 7 = 39 characters.

- No support for login sessions not related to TTYs, like ppp(8),
  ftpd(8) sessions.

- No support for multiple login sessions on one TTY, for example
  generated by login(1).

I was not able to give us a smooth transition from utmp towards utmpx,
simply because our utmp implementation offered almost no utility
functions, which means all consumers modify the database files
themselves. This means you should probably recompile any applications
you're interested in that uses the user accounting database. I realize
this may be quite uncomfortable, but we can't always win.

[ This information is mainly for port maintainers: ]

I've noticed there is some breakage in ports, but it shouldn't be too
serious. I've seen cases where an application includes <utmp.h>, even
though it doesn't use anything provided by that header. In other cases
they used fields like UT_NAMESIZE to derive the maximum user name length
supported by the system, which is clearly not what this definition was
intended for. I've incremented __FreeBSD_version to 900007 to identify
the import of utmpx. In case a certain port breaks badly, let me know
and I'm willing to take a look at it.

Be sure to give it a try and report any issues. Thanks!

-- 
 Ed Schouten <ed_at_80386.nl>
 WWW: http://80386.nl/

Received on Wed Jan 13 2010 - 18:42:56 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:00 UTC