Ticket #120 (closed defect: fixed)
Kill Athena finger with fire
Reported by: | ezyang | Owned by: | jdreed |
---|---|---|---|
Priority: | low | Milestone: | Natty Release |
Component: | -- | Keywords: | |
Cc: | Fixed in version: | ||
Upstream bug: |
Description
The acpi-support/power-funcs bash support file on Ubuntu (and probably Debian) uses a finger|grep|sed chain to extract the information it wants. Unfortunately, MIT's finger changes the format, and this operation fails.
For this particular case, if finger outputs :0, not p0, for TTY, things should work.
Change History
comment:3 Changed 14 years ago by jdreed
It's possible that we should kill debathena-finger with fire at this point, because:
a) it's primary purpose in the old-days was to be Hesiod-aware, and thanks to NSS, it already is
b) it has horrible hacks for the Office field that don't work
c) it could be replaced with a simple Perl script
The only thing really stopping us from using upstream finger (possibly wrapped by a shell script that also calls zlocate(1)) is the fact that our GECOS field has 5 components, and everyone else has 4. ("Nickname" is nonstandard).
We could ask Ops about changing the GECOS format, so that:
Name,Nickname,Office,Office_Phone,Home_Phone
becomes
Name (Nickname),Office,Office_Phone, Home_Phone
That would break Athena 9, but that's a good thing at this point.
See also #200, #486, as this will all become mood in the LDAP world maybe.
comment:4 Changed 14 years ago by jdreed
Er, the one functionality we'd lose is that local accounts couldn't display their MIT finger info. (That is, finger jdreed would return my local account, not MIT one). We can decide we don't care, or we can write a simpler wrapper.
comment:5 Changed 14 years ago by jdreed
So, /mit/jdreed/Public/finger.pl is a simple perl script that will generate the "Athena-wide" portion of MIT finger. (I assert it was always a bug that the Athena-wide portion included logged-in and TTY listings for the local machine.) So at this point, we could replace debathena-finger with a wrapper than called regular finger for the "Local:" part, and then the Perl script. And we could skip the "Athena-wide" part if we determine that STDOUT is a pipeline.
Or better yet, since I bet nobody uses the Athena-specific features anymore, we could add a new argument ("-a") to get "Athena" finger info, and otherwise just run finger.debathena-orig.
comment:6 Changed 14 years ago by jdreed
- Owner set to jdreed
- Status changed from new to accepted
- Milestone changed from The Distant Future to Natty Release
We're going to fix this by killing Athena finger with fire.
comment:7 Changed 14 years ago by jdreed
- Summary changed from finger bc-compat output (clobbers acpi-support/power-funcs) to Kill Athena finger with fire
Garry has a patch which will strip the Nickname field from GECOS. I will coordinate with him for a deployment next week or during Spring Break. I want to have a Hermes article ready, as well as notify cfyi. In the meantime, if anybody knows of any web services that are parsing GECOS for anything other than "Full Name", tell them: a) they're wrong; b) they're going to lose.
comment:8 Changed 14 years ago by jdreed
- Status changed from accepted to committed
Committed in r25030. I'd like an explicit ACK on this so we can push to -development on Monday, and then coordinate with Garry for the Hesiod DCM changes.
comment:9 Changed 14 years ago by jdreed
Except it's not quite that simple. We still need a finger-config on older platforms to wrap finger with "-m". And Athena machines should still run a fingerd, so -login should depend on fingerd.
Fixed in r25031-2.
comment:11 Changed 14 years ago by jdreed
The current solution does not work. Quoth aptitude:
The following packages have unmet dependencies: debathena-finger-config: Conflicts: debathena-finger (<= 10.0.2-0debathena1) but 10.0.2-0debathena1~ubuntu10.04 is installed. acpi-support: Depends: finger but it is not installable fingerd: Depends: finger but it is not installable The following actions will resolve these dependencies: Keep the following packages at their current version: debathena-finger-config [1.4~ubuntu10.04 (lucid, now)] finger [0.17-13build1 (lucid, now)]
comment:12 Changed 14 years ago by jdreed
I think this is now functional, in that alpha lucid machines end up with finger 0.17-13build1
and no debathena-finger-config (as per clients). But I don't have a karmic or lenny alpha machine to test on.
comment:13 Changed 14 years ago by jdreed
This appears to work correctly on Hardy too, in that they get the one-line wrapper from finger-config. Karmic and up have the requisite upstream version of finger. I'd like to move this to proposed soon.
comment:14 Changed 13 years ago by geofft
Confirmed that it works fine (both upgrade path and code) and should be moved to -proposed.
comment:16 Changed 13 years ago by jdreed
- Status changed from proposed to closed
- Resolution set to fixed
p0 actually refers to pts/0, not display :0, so that's actually a remote login, not a local console login.
debathena-finger doesn't currently output the display anywhere. Maybe we could add it?