• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Yet Another Netatalk 2.2 Fork

slipperygrey

Well-known member
@NJRoadfan I've reintroduced the papd spoolreply(), as well as session tickle disabling, code with some changes. The original patch author got back to me with a few extra tweaks on top of the changes that you and I suggested. Would you mind testing the latest branch-netatalk-2-2-x in your GS/OS environment to make sure everything is still well? I tested with LaserWriter 7 / System 6.0.7 and LaserWriter 8 / MacOS 8.6 on my end, and there were no observed ill effects from the changes.

I also learned that these two patches are for making Netatalk 2 coexist with a project called atalkvpn which is a tunnel for AppleTalk phase 1, which can be used over AppleTalk PPP for instance. Apparently, some extra safeguards against timeouts were needed for such a high-latency connection. Pretty cool to find yet another piece of actively developed software that relies on Netatalk 2!

As a bonus, here's a print-out, made with LaserWriter 7.0 drivers over a LocalTalk bridge, via a Power Mac 8600, through Netatalk papd on a RPi, spooled by CUPS over wifi to an HP Tango printer. And no, I didn't draw this picture. It was found on the original 20MB hard drive in this SE. I hope I didn't break any forum rules for encouraging violence against PCs. ;)
 

Attachments

  • IMG_4652.jpg
    IMG_4652.jpg
    1.7 MB · Views: 41

NJRoadfan

Well-known member
It seems to be working with the Apple IIgs......

The only caveat is that I'm testing on another machine 150 miles away, but its the same build of GSport 0.31.

One thing I noticed is that the PAPStatus updates are far less frequent. What changed?
 

NJRoadfan

Well-known member
OK, I see what changed. That was the EXACT fix I found when the problem first came up (remove spooler_reply() call from cm_psadobe()).
 

slipperygrey

Well-known member
I'm glad to announce the first tagged release of this Netatalk fork! A broader group of people have tested it for a good few weeks now, and code changes have been minor recently, so I think this is as good a time as any to cut a "stable" release as a baseline for further development.

Find the release notes and tarballs at: https://github.com/rdmark/Netatalk-2.x/releases/tag/netatalk-2-220101

As I was compiling the release notes, I thought the sheer amount of changes warranted a bit of a larger version number bump. It's no longer a simple hotfix release for 2.2.6. Therefore, I decided to give the fork a new name: "Netatalk 2.x"
 
Last edited:
I'm glad to announce the first tagged release of this Netatalk fork! A broader group of people have tested it for a good few weeks now, and code changes have been minor recently, so I think this is as good a time as any to cut a "stable" release as a baseline for further development.

Find the release notes and tarballs at: https://github.com/rdmark/Netatalk-2.x/releases/tag/netatalk-2-220101

As I was compiling the release notes, I thought the sheer amount of changes warranted a bit of a larger version number bump. It's no longer a simple hotfix release for 2.2.6. Therefore, I decided to give the fork a new name: "Netatalk 2.x"
Congratulations! This is so neat!
 

elvis

Member
I'm glad to announce the first tagged release of this Netatalk fork! A broader group of people have tested it for a good few weeks now, and code changes have been minor recently, so I think this is as good a time as any to cut a "stable" release as a baseline for further development.

Find the release notes and tarballs at: https://github.com/rdmark/Netatalk-2.x/releases/tag/netatalk-2-220101

As I was compiling the release notes, I thought the sheer amount of changes warranted a bit of a larger version number bump. It's no longer a simple hotfix release for 2.2.6. Therefore, I decided to give the fork a new name: "Netatalk 2.x"
Fantastic news. Thank you for doing this.
 

Byte Knight

Well-known member
Your new version works awesome! Setting up network printing with a modern laser printer was a breeze. Thanks for all your help!
 

Byte Knight

Well-known member
Ok, I'm blown away - I was able to even get my Canon MG6220 inkjet printer to print in color from my LC III! All I had to do was set it up in the CUPS local web page and then select it under Chooser -> Laserwriter -> Generic and it just works. Amazing!
 

CC_333

Well-known member
Ok, I'm blown away - I was able to even get my Canon MG6220 inkjet printer to print in color from my LC III! All I had to do was set it up in the CUPS local web page and then select it under Chooser -> Laserwriter -> Generic and it just works. Amazing!
Is anything like this possible for, say, Windows 9x or NT 3.x/4.x?

c
 

shadedream

Well-known member
Glad to see this project happening. I've been getting by with a custom compiled 2.2.4 install on one of my raspberry pis previously. Will be nice to have a more up to date version running.
 

NJRoadfan

Well-known member
Is anything like this possible for, say, Windows 9x or NT 3.x/4.x?

c
Yes, CUPS can handle printing duties for older versions of Windows too. Samba works similar to Netatalk in that it can pick up any available printer queues on the system and share them via SMB. On the Windows side, you can use generic Postscript drivers since cups-filters will process it via Ghostscript and send it whatever format your "modern" printer expects.
 

ghost180sx

Member
This is awesome. Just finished building this on an Rpi B+ (original), OC'ed to 800mhz. Latest raspbian. After figuring out the config for the first time, now have Appletalk Shares working on modernish Macs (10.4-10.8) as well as my Quadra 660AV on 7.6.1. Next up I'll be getting my AsanteTalk out of the closet and seeing if I can't make it talk to my Plus with 6.0.8. Performance is very good for being hosted on the Pi, and dosen't stress the system much at all.
 

JAG

Well-known member
This is fantastic. I'm working on getting this up and running as well. So far, it compiles and works well on Ubuntu 20.04 LTS running in a virtual machine.

BTW, does anyone remember why netatalk shares don't show up in the Chooser under Mac OS 9? Is it the AFP over TCP thing? Any way to change that? I can connect via IP address.
 

slipperygrey

Well-known member
This is fantastic. I'm working on getting this up and running as well. So far, it compiles and works well on Ubuntu 20.04 LTS running in a virtual machine.

BTW, does anyone remember why netatalk shares don't show up in the Chooser under Mac OS 9? Is it the AFP over TCP thing? Any way to change that? I can connect via IP address.
This compelled me to give this a quick try, and I can report that DDP service discovery works perfectly fine on OS 9.2.1 on my G4 Quicksilver.

My initial guess would be that the network bridge between your VM and the host machine (another Linux system?) is not forwarding DDP packets. One thing you can try is to start File Sharing on your OS9 machine, and then use nbplkup in your VM to see if it can see the AppleTalk services running on your physical Mac.
 

JAG

Well-known member
I'll give that a shot, thanks. I couldn't get netatalk to run correctly on a RasPi 3 so that's why I used a VM. It compiles and installs fine on the RasPi 3, and the afpd service is running, but atalkd, papd, etc all fail with errors

atalkd:
$ sudo service atalkd status
Feb 08 22:24:14 raspberrypi systemd[1]: atalkd.service: Scheduled restart job, restart counter is at 5.
Feb 08 22:24:14 raspberrypi systemd[1]: Stopped Netatalk AppleTalk daemon for AFP fileserver.
Feb 08 22:24:14 raspberrypi systemd[1]: atalkd.service: Start request repeated too quickly.
Feb 08 22:24:14 raspberrypi systemd[1]: atalkd.service: Failed with result 'exit-code'.
Feb 08 22:24:14 raspberrypi systemd[1]: Failed to start Netatalk AppleTalk daemon for AFP fileserver.

papd:
$ sudo service papd status
● papd.service - AppleTalk print server daemon
Loaded: loaded (/lib/systemd/system/papd.service; enabled; vendor preset: enabled)
Active: inactive (dead)

Feb 08 22:24:08 raspberrypi systemd[1]: Dependency failed for AppleTalk print server daemon.
Feb 08 22:24:09 raspberrypi systemd[1]: papd.service: Job papd.service/start failed with result 'dependency'.

I used the exact same source code and build steps as with the Ubuntu 20.04 VM running on a Xeon server. I may try a plain Ubuntu distro on the Pi instead and see how that goes.
 

NJRoadfan

Well-known member
Try building with '--enable-debian' instead of '--enable-systemd'. Curious if the new systemd scripts are causing the problem.

atalkd needs a resting period of a few seconds between stopping the daemon and restarting it. The classic init.d script has a 2 second delay between stop/start when "restart" is invoked.
 

slipperygrey

Well-known member
@JAG Those atalkd error messages don't tell us much. You may want to grab some more comprehensive logs from syslog (e.g. through journalctl) to see what the actual error is.

Have you tried modifying the AppleTalk network configurations in atalkd.conf? You could try specifying the network interface that you want it to use there.

BTW, if you'd like you could create an issue ticket in the GitLab project and we can dig deeper over there.
 

Johnnya101

Well-known member
If it helps, I tried using macippi on my pi 3b and ran into lots of issues with netatalk in general. It just does not like any pi older than a 3b plus. Guessing we are running into the same problems with it.
 
Top