NeXT Computers

NeXT Computer, Inc. => NEXTSTEP / OPENSTEP Software => Topic started by: nextchef on December 17, 2008, 07:25:34 pm

Title: Access NeXT formatted drives on OSX using FUSE
Post by: nextchef on December 17, 2008, 07:25:34 pm
Here is a Slashdot post discussing some changes/additions in the v2 release of MacFUSE.  The thing of interest is the AncientFS module which adds support for a whole slew of older unix formats.  This supposedly includes some used by NS/OS such as the dump command output.  It is read-only support currently, but it might be of some interest to those here running OSX.

http://apple.slashdot.org/article.pl?sid=08%2F12%2F17%2F167220

Here is a link from Infinite Loop at Ars discussing it as well.

http://arstechnica.com/journals/apple.ars/2008/12/17/amit-singh-gives-macfuse-ancient-filesystem-compatibility
Title: unixfs
Post by: iDork on September 20, 2009, 02:31:27 am
... and almost a year later - has anyone tried compiling unixfs for MacFUSE? I tried using the latest developer tools in Tiger & Snow Leopard and it fails with 2 errors and numerous warnings. I admit that I have little experience with makefiles, but it was supposed to be as easy as "1. check out the code 2. run make".
Title: Re: unixfs
Post by: cuby on September 20, 2009, 08:32:22 am
Quote from: "iDork"... and almost a year later - has anyone tried compiling unixfs for MacFUSE? I tried using the latest developer tools in Tiger & Snow Leopard and it fails with 2 errors and numerous warnings.


Hm, unixfs works for me on Leopard (x86) with NeXTstep CD and file system images. Haven't tried on Snow Leopard so far. Which errors do you get?

-- Michael
Title: Re: unixfs
Post by: cuby on September 20, 2009, 09:15:54 am
Just tried on 10.6.1, this also works for me. You did install the MacFUSE before trying to compile the ufs module (I assume you followed Amit Singh's instructions)?

I used MacFUSE 2.0.3,2.dmg from http://code.google.com/p/macfuse/. After installing this, compiling ufs worked out of the box for me and I could mount a NeXTstep UFS CD-ROM image.

-- Michael
Title: Access NeXT formatted drives on OSX using FUSE
Post by: iDork on September 20, 2009, 03:47:04 pm
I must have missed that part of the instructions :oops:
I did have MacFUSE installed on my Tiger machine, but an old version I guess. My Snow Leopard machine, however, was completely fuseless. After installing the current version I was able to build unixfs without errors.

Thanks,
Alex
Title: Access NeXT formatted drives on OSX using FUSE
Post by: protocol7 on September 22, 2009, 02:30:01 am
I'm having the same problem here and like iDork, I'm not too savvy when it comes to this stuff. If make doesn't work, I crumble.

Running 10.4.11 (PPC), MacFuse 2.0.3.2.

Here's what I get when I try to make:

make
for dir in ancientfs minixfs sysvfs ufs; do (cd $dir && make); done
gcc -D__FreeBSD__=10 -D__DARWIN_64_BIT_INO_T=1 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=27 -I/usr/local/include/fuse -I../common/unixfs -Wall -Werror -g -arch i386 -arch ppc ancientfs_tap.c -c -o ancientfs_tap.o
cc1: warnings being treated as errors
ancientfs_tap.c: In function 'unixfs_internal_init':
ancientfs_tap.c:182: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'uint32_t'
cc1: warnings being treated as errors
ancientfs_tap.c: In function 'unixfs_internal_init':
ancientfs_tap.c:182: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'uint32_t'
ancientfs_tap.c: In function 'unixfs_internal_iget':
ancientfs_tap.c:332: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
ancientfs_tap.c: In function 'unixfs_internal_iget':
ancientfs_tap.c:332: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
lipo: can't figure out the architecture type of: /var/tmp//cclqjfiY.out
make[1]: *** [ancientfs_tap.o] Error 1
gcc -D__FreeBSD__=10 -D__DARWIN_64_BIT_INO_T=1 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=27 -I/usr/local/include/fuse -I../common/unixfs -I../common/linux -I../common/linux/kernel/include -Wall -Werror -g -arch i386 -arch ppc unixfs_minixfs.c -c -o unixfs_minixfs.o
cc1: warnings being treated as errors
unixfs_minixfs.c: In function 'unixfs_internal_iget':
unixfs_minixfs.c:140: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
unixfs_minixfs.c:151: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
cc1: warnings being treated as errors
unixfs_minixfs.c: In function 'unixfs_internal_iget':
unixfs_minixfs.c:140: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
unixfs_minixfs.c:151: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
lipo: can't figure out the architecture type of: /var/tmp//ccTn50CT.out
make[1]: *** [unixfs_minixfs.o] Error 1
gcc -D__FreeBSD__=10 -D__DARWIN_64_BIT_INO_T=1 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=27 -I/usr/local/include/fuse -I../common/unixfs -I../common/linux -Wall -Werror -g -arch i386 -arch ppc unixfs_sysvfs.c -c -o unixfs_sysvfs.o
cc1: warnings being treated as errors
unixfs_sysvfs.c: In function 'unixfs_internal_iget':
unixfs_sysvfs.c:164: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
unixfs_sysvfs.c:170: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
unixfs_sysvfs.c:180: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
cc1: warnings being treated as errors
unixfs_sysvfs.c: In function 'unixfs_internal_iget':
unixfs_sysvfs.c:164: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
unixfs_sysvfs.c:170: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
unixfs_sysvfs.c:180: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
lipo: can't figure out the architecture type of: /var/tmp//cc3WlcZH.out
make[1]: *** [unixfs_sysvfs.o] Error 1
gcc -D__FreeBSD__=10 -D__DARWIN_64_BIT_INO_T=1 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=27 -I/usr/local/include/fuse -I. -I../common/linux -I../common/linux/kernel/include -I../common/linux/kernel/fs -I../common/unixfs -Wall -Werror -g -arch i386 -arch ppc unixfs_ufs.c -c -o unixfs_ufs.o
cc1: warnings being treated as errors
unixfs_ufs.c: In function 'unixfs_internal_iget':
unixfs_ufs.c:133: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
unixfs_ufs.c:145: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
cc1: warnings being treated as errors
unixfs_ufs.c: In function 'unixfs_internal_iget':
unixfs_ufs.c:133: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
unixfs_ufs.c:145: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'ino_t'
lipo: can't figure out the architecture type of: /var/tmp//ccZFPjvD.out
make[1]: *** [unixfs_ufs.o] Error 1
make: [all] Error 2 (ignored)
Title: Access NeXT formatted drives on OSX using FUSE
Post by: cuby on September 22, 2009, 04:55:02 am
Quote from: "protocol7"I'm having the same problem here and like iDork, I'm not too savvy when it comes to this stuff. If make doesn't work, I crumble.

Running 10.4.11 (PPC), MacFuse 2.0.3.2.

Here's what I get when I try to make:

make
for dir in ancientfs minixfs sysvfs ufs; do (cd $dir && make); done
gcc -D__FreeBSD__=10 -D__DARWIN_64_BIT_INO_T=1 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=27 -I/usr/local/include/fuse -I../common/unixfs -Wall -Werror -g -arch i386 -arch ppc ancientfs_tap.c -c -o ancientfs_tap.o
cc1: warnings being treated as errors
ancientfs_tap.c: In function 'unixfs_internal_init':
ancientfs_tap.c:182: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type 'uint32_t'
...


Simply said, that's gcc in paranoid mode :D caused by a -Werror flag in the Makefile. Simply remove any occurrence of -Werror in all Makefiles*. In the current svn checkout, I could find the Werror flag in the ancientfs, minixfs, sysvfs and ufs directories in the following locations (filename:line_nr:code):

ancientfs/Makefile:17:CFLAGS_EXTRA = -Wall -Werror -g
ancientfs/Makefile:25:CFLAGS_EXTRA = -Wall -Werror -g -rdynamic
ancientfs/Makefile:33:CFLAGS_EXTRA = -Wall -Werror -g -rdynamic
minixfs/Makefile:16:CFLAGS_EXTRA = -Wall -Werror -g
sysvfs/Makefile:16:CFLAGS_EXTRA = -Wall -Werror -g
ufs/Makefile:15:CFLAGS_EXTRA = -Wall -Werror -g


I have a PPC Mac Mini running 10.4.11 here and can try to build ufs later today if this doesn't work for you.

-- Michael

* Yeah, I know, that's a quick hack - obviously, it would be better to fix the format strings in the printf's involved.
Title: Access NeXT formatted drives on OSX using FUSE
Post by: protocol7 on September 22, 2009, 02:18:57 pm
Thanks for the tip Michael, but it didn't work for me. It got a lot further but ultimately ended up with errors. I won't paste the whole output because of the length.

TBH I'm not sure how up-to-date my Xcode installation is. Maybe if you can try it on your Mini when you get a chance, we can see if it works ok for you. Then I'll know it's a problem at my end.
Title: Access NeXT formatted drives on OSX using FUSE
Post by: cuby on September 23, 2009, 09:34:29 am
Quote from: "protocol7"Thanks for the tip Michael, but it didn't work for me. It got a lot further but ultimately ended up with errors. I won't paste the whole output because of the length.


ok, I tried on Tiger - not on my Mac Mini (which doesn't have an Airport card and I couldn't find an Ethernet cable...) but on a handy 10.4 x86 virtual machine running 10.4.7.

Removing -Werror from the Makefile lets us ignore all format warnings, my build then breaks at the very end in the linking stage since the Makefile in ufs expects a libfuse_ino64, but we only have the "regular" libfuse. So, replacing LIBS = -lfuse_ino64 by LIBS = -lfuse in ufs/Makefile works for me, a quick test shows that I can successfully mount the NeXTstep 3.3 boot floppy image. I put the build tree and binary (dual-fat x86/ppc) on  http://multicores.org/unixfs-current.tar.gz.

QuoteTBH I'm not sure how up-to-date my Xcode installation is. Maybe if you can try it on your Mini when you get a chance, we can see if it works ok for you. Then I'll know it's a problem at my end.


I'm using Xcode 2.4.1 and MacFUSE 2.1.4 (beta), which seems to be the latest version for OS X 10.4. Hope this also works for you - if not, let me know.

I'll contact Amit Singh, perhaps it still makes sense to add the fixes for all 10.4 or PPC Mac users out there.

-- Michael
Title: Access NeXT formatted drives on OSX using FUSE
Post by: protocol7 on September 24, 2009, 12:53:23 am
Thanks for the help Michael. I grabbed your archive. It still won't compile here, even with your fixed makefiles. It seems to be an architecture issue. Turns out my Xcode was pretty out of date (2.1) so I updated to 2.4.1 but it still fails to compile.

Your ufs binary works fine though (thanks!), but I'd like the others too if possible. They would get me along nicely until I can find out how to compile them myself.

I tried to see if I could mount any of my PPC Rhapsody discs, but it seems that variation of UFS isn't supported.
Title: Access NeXT formatted drives on OSX using FUSE
Post by: cuby on September 24, 2009, 01:47:23 am
Quote from: "protocol7"Your ufs binary works fine though (thanks!), but I'd like the others too if possible. They would get me along nicely until I can find out how to compile them myself.


Hmm, that's strange. Perhaps you can send me your error log via email (engel@multicores.org)?

QuoteI tried to see if I could mount any of my PPC Rhapsody discs, but it seems that variation of UFS isn't supported.


I haven't tried Rhapsody discs so far, but I think I have a disk image for Rhapsody somewhere in my backup.

-- Michael