Discussion:
AppleTalk
(too old to reply)
Maxime Villard
2018-02-03 06:06:06 UTC
Permalink
I've had a conversation with core@ about the removal of our kernel AppleTalk
code, and I was asked to send a mail here to give people a chance to comment.

In NetBSD we have a kernel implementation of AppleTalk, in sys/netatalk/. This
code provides a user API (AF_APPLETALK, sockaddr_at etc.), that userland tools
can use to create sockets.

Our kernel netatalk has not been maintained in years, is grossly not MP-safe
(global variables), and I already found a bug that could be triggered even
when no AppleTalk interface was configured [1].

The userland 'netatalk' package, which we do have in pkgsrc, offers the same
functionalities as our kernel netatalk code. This package is well maintained
- the last release was less than a year ago -, well documented, and does not
depend on any kernel netatalk code.

The other BSDs already removed their netatalk/ several years ago, because it
is a burden to maintain, and the user package offers the same features without
it.

Therefore, our kernel netatalk code is a good candidate for removal.

Maxime

[1] http://mail-index.netbsd.org/source-changes/2017/12/09/msg090331.html

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Manuel Bouyer
2018-02-03 11:15:13 UTC
Permalink
Post by Maxime Villard
code, and I was asked to send a mail here to give people a chance to comment.
In NetBSD we have a kernel implementation of AppleTalk, in sys/netatalk/. This
code provides a user API (AF_APPLETALK, sockaddr_at etc.), that userland tools
can use to create sockets.
Our kernel netatalk has not been maintained in years, is grossly not MP-safe
(global variables), and I already found a bug that could be triggered even
when no AppleTalk interface was configured [1].
The userland 'netatalk' package, which we do have in pkgsrc, offers the same
functionalities as our kernel netatalk code. This package is well maintained
Are you sure it does the same thing ? the netatalk package does appletalk
over IP with regular AF_INET sockets and doesn't need special kernel
support. AF_APPLETALK is appletalk over ethernet, without the IP layer.
This was called ethertalk in the apple world, appletalk being the
original, serial based, apple network protocol.

AFAIK appletalk over IP is supported since MacOS X, and maybe before.
Early MacOS X releases probably had support for ethertalk too.
MacOS 9 and before did use ethertalk. Apple also produced peripherals
(e.g. printers) that had support for appletalk and/or ethertalk, but not IP.
--
Manuel Bouyer <***@antioche.eu.org>
NetBSD: 26 ans d'experience feront toujours la difference
--

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Hauke Fath
2018-02-03 13:15:52 UTC
Permalink
Post by Maxime Villard
code, and I was asked to send a mail here to give people a chance to comment.
Thanks, that's nice.
Post by Maxime Villard
In NetBSD we have a kernel implementation of AppleTalk, in sys/netatalk/. This
code provides a user API (AF_APPLETALK, sockaddr_at etc.), that userland tools
can use to create sockets.
Our kernel netatalk has not been maintained in years,
"It just works", I happen to use it almost every day. Also,
s/netatalk/appletalk/
Post by Maxime Villard
is grossly not MP-safe
(global variables), and I already found a bug that could be triggered even
when no AppleTalk interface was configured [1].
The userland 'netatalk' package, which we do have in pkgsrc, offers the same
functionalities as our kernel netatalk code.
You are confused.

The kernel NETATALK option compiles in a protocol stack for AppleTalk,
Apple's network protocol supported on Macintoshes from the mid-eighties
until (IIRC) max OS X 10.4.

The net/netatalk* packages install an AppleShare file server. Netatalk
started out AppleTalk-only, quickly replacing the userland-only CAP
because its kernel support made it more efficient - DDP packets are small,
AppleTalk first appeared on 230 KBit serial lines. Netatalk later grew ASIP
support, and lost AppleTalk support with v3.
Post by Maxime Villard
This package is well maintained
- the last release was less than a year ago -, well documented, and does not
depend on any kernel netatalk code.
Netatalk 3.x cannot talk to any Mac that relies on Appletalk for service
discovery, PAP printing and AppleShare filesharing.

Netatalk 2.2.6 is the last version to support those machines. It relies on
the kernel AppleTalk stack to do this.
Post by Maxime Villard
The other BSDs already removed their netatalk/ several years ago, because it
is a burden to maintain,
IOW, NetBSD is the last open source OS to provide network support for
pre-OSX Macintoshes. This is a feature in my book.
Post by Maxime Villard
and the user package offers the same features without it.
Wrong, see above.
Post by Maxime Villard
Therefore, our kernel netatalk code is a good candidate for removal.
I object. Strongly, if it helps.

Cheerio,
hauke


--
"It's never straight up and down" (DEVO)



--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Maxime Villard
2018-02-03 14:59:15 UTC
Permalink
Post by Hauke Fath
Post by Maxime Villard
This package is well maintained
- the last release was less than a year ago -, well documented, and does not
depend on any kernel netatalk code.
Netatalk 3.x cannot talk to any Mac that relies on Appletalk for service
discovery, PAP printing and AppleShare filesharing.
Netatalk 2.2.6 is the last version to support those machines. It relies on
the kernel AppleTalk stack to do this.
So, you responded more quickly than I did; as I said in my reply, I figured
out that indeed I was mistaken, that netatalk 3 dropped DDP.
Post by Hauke Fath
Post by Maxime Villard
The other BSDs already removed their netatalk/ several years ago, because it
is a burden to maintain,
IOW, NetBSD is the last open source OS to provide network support for
pre-OSX Macintoshes. This is a feature in my book.
Not really, it seems that Linux also still has DDP in the kernel, but I don't
think they will keep that for a long time.

I see, also, that we have a netatalk-2.2.6 package. I guess it is because of
the missing DDP in -3? If so, then I guess we could keep the code.

Maxime

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Martin Husemann
2018-02-03 13:59:59 UTC
Permalink
Post by Hauke Fath
"It just works", I happen to use it almost every day. Also,
s/netatalk/appletalk/
How do you use it? What pkgs are involved/usefull?

(Just curious, I have a mac68k but never used appletalk)

Martin

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Maxime Villard
2018-02-03 13:47:16 UTC
Permalink
[...] AF_APPLETALK is appletalk over ethernet, without the IP layer.
You're talking about DDP, right? This is indeed appletalk over ethernet
without the IP layer.

I thought that netatalk supported DDP, you could pass -[no]ddp in afpd.conf.

But I've just figured out I was mistaken.

Giving a closer look at the release notes of netatalk 3.0, this version removed
support for DDP. That was in 2012. In the sources of the previous releases,
like netatalk-2.2.6, DDP _was_ supported, and actually it did use AF_APPLETALK.

So until 2012, we had one user of the kernel netatalk code, and back then you
could probably handle very old Macs. Now you can't anymore, see [1]; unless
you run netatalk 2.

Our atalk(4) man page is a bit misleading, in fact the linux one is closer to
our reality. NetBSD supports DDP and AARP: DDP is user-visible with the
AF_APPLETALK socket etc, AARP is internal and not visible.

The rest of the features (TimeMachine etc) work above IP, and are supported
by the netatalk package, in userland directly.

So what should we do? We are left with no user of this code, and as I said,
the other BSDs dropped that several years ago. Cisco dropped it in 2009 [2],
too.

Maxime

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685878;msg=118
[2] https://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/ios-packaging/product_bulletin_c25-520459.html

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Hauke Fath
2018-02-03 15:50:53 UTC
Permalink
Post by Martin Husemann
Post by Hauke Fath
"It just works", I happen to use it almost every day. Also,
s/netatalk/appletalk/
How do you use it? What pkgs are involved/usefull?
(Just curious, I have a mac68k but never used appletalk)
Install net/netatalk22, add

# Netatalk server
atalkd=YES
papd=YES
timelord=NO
afpd=YES
cnid_metad=YES

to rc.conf, define shares in netatalk/AppleVolumes.default (your home
is shared per default), and any printers that support PAP in
netatalk/papd.conf.

Upstream <https://netatalk.sourceforge.net/2.2/htmldocs/> has all the
finer details.

Cheerio,
hauke
--
Hauke Fath <***@Espresso.Rhein-Neckar.DE>
Ernst-Ludwig-Straße 15
64625 Bensheim
Germany

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Hauke Fath
2018-02-03 15:54:03 UTC
Permalink
Post by Hauke Fath
Upstream <https://netatalk.sourceforge.net/2.2/htmldocs/> has all the
finer details.
s/https/http/ for whatever reason.
--
Hauke Fath <***@Espresso.Rhein-Neckar.DE>
Ernst-Ludwig-Straße 15
64625 Bensheim
Germany

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Hauke Fath
2018-02-03 16:25:09 UTC
Permalink
Post by Hauke Fath
to rc.conf, define shares in netatalk/AppleVolumes.default (your home
is shared per default), and any printers that support PAP in
netatalk/papd.conf.
The latter is misleading - while Netatalk sports a pap client that you
could use to print to a pap-only printer (I used it to print from
NetBSD to a QMS 410), papd lets old Mac clients print to any printer by
piping jobs through lpd, cupsd or what have you.

Cheerio,
hauke
--
Hauke Fath <***@Espresso.Rhein-Neckar.DE>
Ernst-Ludwig-Straße 15
64625 Bensheim
Germany

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Martin Husemann
2018-02-03 17:07:45 UTC
Permalink
Post by Hauke Fath
Post by Hauke Fath
to rc.conf, define shares in netatalk/AppleVolumes.default (your home
is shared per default), and any printers that support PAP in
netatalk/papd.conf.
The latter is misleading - while Netatalk sports a pap client that you
could use to print to a pap-only printer (I used it to print from
NetBSD to a QMS 410), papd lets old Mac clients print to any printer by
piping jobs through lpd, cupsd or what have you.
Brilliant, that gives a nice testing setup (together with the shares).

Martin

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
r***@fdy2.co.uk
2018-02-05 17:35:42 UTC
Permalink
Post by Hauke Fath
Post by Martin Husemann
Post by Hauke Fath
"It just works", I happen to use it almost every day. Also,
s/netatalk/appletalk/
How do you use it? What pkgs are involved/usefull?
(Just curious, I have a mac68k but never used appletalk)
Install net/netatalk22, add
[snip]

I use the same setup with 68k Macs, works fine.

Robert Swindells

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Manuel Bouyer
2018-02-03 18:09:02 UTC
Permalink
Post by Maxime Villard
[...] AF_APPLETALK is appletalk over ethernet, without the IP layer.
You're talking about DDP, right? This is indeed appletalk over ethernet
without the IP layer.
yes that's it.
Post by Maxime Villard
I thought that netatalk supported DDP, you could pass -[no]ddp in afpd.conf.
But I've just figured out I was mistaken.
Giving a closer look at the release notes of netatalk 3.0, this version removed
support for DDP. That was in 2012. In the sources of the previous releases,
like netatalk-2.2.6, DDP _was_ supported, and actually it did use AF_APPLETALK.
So until 2012, we had one user of the kernel netatalk code, and back then you
could probably handle very old Macs. Now you can't anymore, see [1]; unless
you run netatalk 2.
Our atalk(4) man page is a bit misleading, in fact the linux one is closer to
our reality. NetBSD supports DDP and AARP: DDP is user-visible with the
AF_APPLETALK socket etc, AARP is internal and not visible.
The rest of the features (TimeMachine etc) work above IP, and are supported
by the netatalk package, in userland directly.
So what should we do? We are left with no user of this code, and as I said,
the other BSDs dropped that several years ago. Cisco dropped it in 2009 [2],
too.
My point was just to warn that the netatalk package won't do ethertalk
without kernel support. I didn't notice that netatalk dropped ethertalk
support, and I dropped my last ethertalk device (which was a laserjet)
a few years ago.
--
Manuel Bouyer <***@antioche.eu.org>
NetBSD: 26 ans d'experience feront toujours la difference
--

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
r***@fdy2.co.uk
2018-02-05 17:46:40 UTC
Permalink
Post by Maxime Villard
code, and I was asked to send a mail here to give people a chance to comment.
[snip]
Post by Maxime Villard
Therefore, our kernel netatalk code is a good candidate for removal.
I object.

The userspace code in Netatalk 3.0 and above is not a replacement for
the
reasons described in other posts to the thread.

Robert Swindells

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Kamil Rytarowski
2018-02-05 19:16:25 UTC
Permalink
The userspace code in Netatalk 3.0 and above is not a replacement for the
reasons described in other posts to the thread.
Robert Swindells
Is it possible to push this code to user-space?
Robert Elz
2018-02-05 21:59:19 UTC
Permalink
Date: Mon, 5 Feb 2018 20:16:25 +0100
From: Kamil Rytarowski <***@gmx.com>
Message-ID: <e3b14c80-83fc-6510-2c37-***@gmx.com>

| Is it possible to push this code to user-space?

That is what CAP is/was ... The Columbia Appletalk Package - originally from
Columbia University, but mostly maintained by David Hornsby (who was) at the
University of Melbourne.

It is still available from ftp://munnari.oz.au/mac/cap60/* if anyone wants to
play, however take note that its last patches seem to date from June 1998,
so the chances of it compiling cleanly on any modern C compiler are not
great.

kre


--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Maxime Villard
2018-02-06 06:47:21 UTC
Permalink
Post by r***@fdy2.co.uk
Post by Maxime Villard
code, and I was asked to send a mail here to give people a chance to comment.
[snip]
Post by Maxime Villard
Therefore, our kernel netatalk code is a good candidate for removal.
I object.
The userspace code in Netatalk 3.0 and above is not a replacement for the
reasons described in other posts to the thread.
In case it wasn't clear, Hauke's answer is entirely fine, and I don't plan on
removing AppleTalk anymore.

Maxime

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Loading...