Compare commits

...

5 Commits

Author SHA1 Message Date
mabam
c9e26ed353
Refer to github.com/dgsga/netatalk in README.md 2021-10-26 22:29:52 +02:00
mabam
e32ff4e6e8
Update readme.md
Update readme.md to reflect code changes from December 2020.
2021-03-14 00:43:18 +01:00
mabam
525141ed45 Fixes for macFUSE v4.x file locations 2020-12-19 22:00:53 +01:00
mabam
ca11111a4b
afpfs-ng-OSX with GUI released 2018-01-23 21:45:52 +00:00
mabam
773bb3f617
New link to .pkg in README.md 2017-11-09 13:29:54 +01:00
8 changed files with 44 additions and 23 deletions

View File

@ -1,26 +1,44 @@
## afpfs-ng for macOS / OS X
```diff
- A N N O U N C E M E N T
- dgsga ported netatalk to compile and run on macOS!
- While afpfs-ng is in fact immature and incomplete, netatalk has been developed and
- refined over many years making it a solid software.
- So everyone who came here looking for a solution to network his Classic Mac or emulator
- (running up to Mac OS 9.2) with modern macOS, Id like to encourage using his solution.
- Find his repository and the related discussion at the following links, respectively:
```
https://github.com/dgsga/netatalk
https://www.emaculation.com/forum/viewtopic.php?f=34&t=11123
### Description
macOS / OS X ships with the ability to mount volumes via AFP. However, OS X 10.6 and newer are not capable of AFP version 2.x or older which is needed to network with Classic MacOS (7.6 to 9.2 via IP).
This version of afpfs-ng is based on Simon Vetter's version. It has fixes 'hacked in' to make it work with Fuse for macOS / OSXFUSE on macOS / OS X. As a consequence, it does not work with Fuse for Linux.
This version of afpfs-ng is based on Simon Vetters version. It has fixes hacked in to make it work with macFUSE on macOS / OS X. As a consequence, it does not work with Fuse for Linux.
It is of use for you if you emulate Classic MacOS, e.g. using SheepShaver or QEMU. And of course if you own an old Macintosh you want to exchange files with.
It is of use for you if you emulate Classic Mac OS, e. g. using SheepShaver or QEMU. And of course if you own an old Macintosh you want to exchange files with.
macOS / OS X already makes use of the 'mount_afp' command. Thus in this version of afpfs-ng that command has been changed to 'mount_afp2' (to indicate it is for use with AFP v. 2.x).
macOS / OS X already makes use of the mount_afp command. Thus in this version of afpfs-ng that command has been changed to mount_afp2 (to indicate it is for use with AFP v. 2.x).
### Prerequesites
Download and install Fuse for macOS from https://osxfuse.github.io/ (v. 3.7.1 as of writing this). The Fuse compatibility layer is NOT required.
Download and install macFUSE from https://osxfuse.github.io/ (v. 4.0.5 as of writing this).
### Installation
Either use the .pkg installer at https://c.web.de/@337526389169198226/qsvK6y4KQ-uVfzdGsiNUyg or compile yourself as follows:
Either use the .pkg installer at https://github.com/mabam/afpfs-ng-mac/releases or compile yourself as follows:
AFP up to v. 2.x does not offer password encryption which is why we simply disable it rather than installing gcrypt on macOS / OS X first:
Im not sure whether AFP up to v. 2.x offers password encryption. But I didnt succeed in compiling it in anyway, which is why I simply disabled it:
```bash
./configure --disable-gcrypt --enable-fuse
```
@ -31,7 +49,7 @@ make
sudo make install
```
Also, I couldn't figure how to make the fuse components compile automatically on macOS / OS X. This is how to do that manually:
Also, I couldnt figure how to make the Fuse components compile automatically on macOS / OS X. This is how to do that manually:
```bash
cd fuse
```
@ -45,15 +63,18 @@ sudo make install
### Usage, credits and license
Don't forget to load Fuse for macOS first:
See https://github.com/mabam/afpfs-ng-mac/releases for a version with GUI.
See https://emaculation.com/forum/viewtopic.php?f=34&p=58790#p58790 for some main issues.
If you prefer using the shell, dont forget to load macFUSE first:
```bash
/Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse
```
See README_old.md for examples on commands. But mind the change to 'mount_afp2'.
See README_old.md for examples on commands. But mind the change to mount_afp2.
There you can also find information on the license and credits.
Credits for this macOS / OS X version goes to 'adespoton' for his guidance.
Credits for this macOS / OS X version goes to adespoton for his guidance.
### Links / further reading

View File

@ -33,7 +33,7 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `fuse' library (-losxfuse). */
/* Define to 1 if you have the `fuse' library (-lfuse). */
#undef HAVE_LIBFUSE
/* Define to 1 if you have the `gcrypt' library (-lgcrypt). */

10
configure vendored
View File

@ -21824,13 +21824,13 @@ echo "$as_me: error: FUSE is not installed. To build without fuse, configure wi
{ (exit 1); exit 1; }; }
fi
{ echo "$as_me:$LINENO: checking for fuse_main in /usr/local/lib/libosxfuse.la" >&5
echo $ECHO_N "checking for fuse_main in /usr/local/lib/libosxfuse.la... $ECHO_C" >&6; }
{ echo "$as_me:$LINENO: checking for fuse_main in /usr/local/lib/libfuse.la" >&5
echo $ECHO_N "checking for fuse_main in /usr/local/lib/libfuse.la... $ECHO_C" >&6; }
if test "${ac_cv_lib_fuse_fuse_main+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="/usr/local/lib/libosxfuse.la $LIBS"
LIBS="/usr/local/lib/libfuse.la $LIBS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
@ -21890,13 +21890,13 @@ if test $ac_cv_lib_fuse_fuse_main = yes; then
#define HAVE_LIBFUSE 1
_ACEOF
LIBS="/usr/local/lib/libosxfuse.la $LIBS"
LIBS="/usr/local/lib/libfuse.la $LIBS"
fi
CFLAGS=$old_cflags
CPPFLAGS=$old_cppflags
LIBFUSE_LDFLAGS="/usr/local/lib/libosxfuse.la"
LIBFUSE_LDFLAGS="/usr/local/lib/libfuse.la"
if true; then
HAVE_LIBFUSE_TRUE=

View File

@ -79,7 +79,7 @@ case $host in
AC_CHECK_LIB([fuse], [fuse_main])
CFLAGS=$old_cflags
CPPFLAGS=$old_cppflags
LIBFUSE_LDFLAGS="/usr/local/lib/libosxfuse.la"
LIBFUSE_LDFLAGS="/usr/local/lib/libfuse.la"
AC_SUBST(LIBFUSE_LDFLAGS)
AM_CONDITIONAL(HAVE_LIBFUSE, true)
fi

View File

@ -5,8 +5,8 @@ mount_afp2_CFLAGS = -I$(top_srcdir)/include -D_FILE_OFFSET_BITS=64 @CFLAGS@
mount_afp2_LDADD = $(top_builddir)/lib/libafpclient.la
afpfsd_SOURCES = commands.c daemon.c fuse_int.c fuse_error.c
afpfsd_LDADD = $(top_builddir)/lib/libafpclient.la /usr/local/lib/libosxfuse.la
afpfsd_LDFLAGS = -export-dynamic /usr/local/lib/libosxfuse.la
afpfsd_LDADD = $(top_builddir)/lib/libafpclient.la /usr/local/lib/libfuse.la
afpfsd_LDFLAGS = -export-dynamic /usr/local/lib/libfuse.la
afpfsd_CFLAGS = -I$(top_srcdir)/include -D_FILE_OFFSET_BITS=64 @CFLAGS@
install-data-hook:

View File

@ -187,8 +187,8 @@ mount_afp2_SOURCES = client.c
mount_afp2_CFLAGS = -I$(top_srcdir)/include -D_FILE_OFFSET_BITS=64 @CFLAGS@
mount_afp2_LDADD = $(top_builddir)/lib/libafpclient.la
afpfsd_SOURCES = commands.c daemon.c fuse_int.c fuse_error.c
afpfsd_LDADD = $(top_builddir)/lib/libafpclient.la /usr/local/lib/libosxfuse.la
afpfsd_LDFLAGS = -export-dynamic /usr/local/lib/libosxfuse.la
afpfsd_LDADD = $(top_builddir)/lib/libafpclient.la /usr/local/lib/libfuse.la
afpfsd_LDFLAGS = -export-dynamic /usr/local/lib/libfuse.la
afpfsd_CFLAGS = -I$(top_srcdir)/include -D_FILE_OFFSET_BITS=64 @CFLAGS@
all: all-am

View File

@ -35,7 +35,7 @@
#ifdef __linux
#define FUSE_DEVICE "/dev/fuse"
#else
#define FUSE_DEVICE "/dev/osxfuse0"
#define FUSE_DEVICE "/dev/macfuse0"
#endif

View File

@ -20,7 +20,7 @@
#include "afpfs-ng/afp.h"
#include </usr/local/include/osxfuse/fuse.h>
#include </usr/local/include/fuse.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>