Ticket #120 (closed defect: fixed)

Opened 12 years ago

Last modified 10 years ago

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:1 Changed 12 years ago by broder

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?

comment:2 Changed 12 years ago by jdreed

  • Component set to --
  • Milestone set to The Distant Future

comment:3 Changed 10 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 10 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 10 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 10 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 10 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 10 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 10 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:10 Changed 10 years ago by jdreed

  • Status changed from committed to development

comment:11 Changed 10 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 10 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 10 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 10 years ago by geofft

Confirmed that it works fine (both upgrade path and code) and should be moved to -proposed.

comment:15 Changed 10 years ago by geofft

  • Status changed from development to proposed

comment:16 Changed 10 years ago by jdreed

  • Status changed from proposed to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.