MacOS – How to print on a Yosemite managed printer from a Panther Mac

cupsmacosNetworkpantherprinting

A couple I know have two computers I'm supporting – one is a iMac which I recently upgraded from Snow Leopard (10.6) to Yosemite (10.10). The printer is attached to this machine. The other computer, unfortunately, is a 450MHz Power Mac G4 (AGP graphics) running the last version of Panther (10.3.9). Surprisingly, the 14-year-old computer still works and is actively being used (primarily for AppleWorks documents, which is another "ugh").

Before the iMac was upgraded, I had done something to it which let the Power Mac see the shared printer. I suspect it had to do with CUPS, but I could be wrong. Ever since the upgrade to Yosemite, the Power Mac has been unable to print, and I can't seem to recreate the old setup.

My question resumed in one sentence is:

How do I share a printer from a Mac running Yosemite to one running Panther, so that the Panther one can print?

Best Answer

For clarity I will name your Power Mac G4 running Panther: Pant and your iMac running Yosemite: Yose.

Yosemite has problem to print in an IPv4 environment (see: How to make shared printing works on Yosemite within an IPv4 only network?. On the other hand Panther is able to run IPv6.

Check IPv6

Hence the 1rst point to check to be able to print from Pant is that Ipv6 is up and running. If Pant and Yose are connected through Ethernet, you will check this with (this is a command to enter within Terminal):

ifconfig en0

and you should get an output containing a line starting as:

inet6 fe80::

Which prooves that Pant has an IPv6 address and is IPv6 connected. If they are connected through AirPort, you have to check the same output with:

ifconfig en1

If Pant doesn't have an IPv6 address, you will have to modify its network configuration through:

System Preferences > Network

select Advanced... and under the TCP/IP window, select

Configure IPv6: Automatically

Click OK, Apply. Check that IPv6 is now up and running.

Check cupsd

If you just enabled IPv6 for the 1st time on Pant then you will have to restart cupsd so that it will be able to talk this protocol.

The easiest way is to simply restart Pant. (But if you prefer to understand what you modify clearly, to restart cupsd is sufficient).

You will now have to check that cupsd is able to talk IPv6. (If I would had a Panther running Mac at hand I would have answered directly, but I don't).

Here are the command to type within Terminal to perform this checking:

ps ax | egrep '[ /](PID|cupsd)'

will display you 2 lines as:

  PID   TT  STAT      TIME COMMAND
76864   ??  Ss     0:00.26 /usr/sbin/cupsd -l

where the number PID is the proces id of the cupsd daemon.

Use this process id (here 76864) to check if this daemon is talking IPv6 through the help of lsof as follows:

/usr/bin/sudo lsof -p 76864 | egrep '(COMMAND|IPv)'

This is a priviledged command, hence you have to use sudo which will ask you your user password. This command should give you an output very similar to:

COMMAND   PID USER   FD     TYPE             DEVICE  SIZE/OFF      NODE NAME
cupsd   76864 root    9u    IPv4 0x9007abdfc3bf58ad       0t0       TCP localhost:ipp (LISTEN)
cupsd   76864 root   15u    IPv6 0x9007abdfb88bf0cd       0t0       TCP localhost:ipp (LISTEN)

If you have a line where TYPE == IPv6 then the cupsd on Pant is talking IPv6.

Restart the sharing

If you just enabled IPv6 for the 1st time on Pant then you will have to enable from fresh the sharing on Yose so that Pant will see it correctly through the IPv6 channel.

On Yose open

System Preferences > Sharing

stop Printer Sharing, wait for Printer Sharing: Off to display, and restart it.

On Pant add a new printer, and you should see a new one to add and configure on Yose.

Disclaimer

This is a blind receipe (I don't have a Panther to fully check it). I tried to avoid at most dangerous modifications on MacOS.

Any feedback would be appreciated to improve this draft answer.