Closed Tcoton closed 4 years ago
Hi @Tcoton
Can you run this from the same directory and post the output? It looks like the makefile is having trouble determining the current commit which is used as part of the version definition.
git rev-parse --short HEAD 2> /dev/null
$ pwd /Users/Username/Downloads/hfsfuse-master $ git rev-parse --short HEAD 2> /dev/null $
I also tried without the /dev/null
$ git rev-parse --short HEAD 2 fatal: not a git repository (or any of the parent directories): .git
@Tcoton hfsfuse normally needs to be built or packaged from a git clone, but I can see that that's definitely not ideal when github itself links to a zip that hasn't been packaged like that. I just changed this going forward with https://github.com/0x09/hfsfuse/commit/2e7b63bd604107067ae5d289f5640644f1e964f7, but to get around it without downloading a new copy you can also just build with
CFLAGS=-DHFSFUSE_VERSION_STRING="" make
I used lastest version to not induce anymore issues, results below:
$ make config WITH_UBLIO=local WITH_UTF8PROC=local
Makefile:63: Warning: git repo nor prepackaged version.h found, hfsfuse will be built without version information
echo CC=cc > config.mak
echo CONFIG_CFLAGS=-O3 -std=gnu11 -DHFSFUSE_VERSION_STRING=\"omitted\" >> config.mak
echo WITH_UBLIO=local >> config.mak
echo WITH_UTF8PROC=local >> config.mak
$ make
Makefile:63: Warning: git repo nor prepackaged version.h found, hfsfuse will be built without version information
cc -Wall -Wextra -pedantic -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-parameter -Wno-missing-field-initializers -Wno-missing-braces -DFUSE_USE_VERSION=28 -D_FILE_OFFSET_BITS=64 -I/usr/local/include/osxfuse -I /Users/Username/Downloads/hfsfuse-master/lib -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -c -o src/hfsfuse.o src/hfsfuse.c
In file included from
^
^
1 warning generated.
/Library/Developer/CommandLineTools/usr/bin/make -C lib/libhfsuser/
cc -Wall -Wextra -pedantic -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-parameter -Wno-missing-field-initializers -Wno-missing-braces -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -DHAVE_BIRTHTIME -DHAVE_UBLIO -DHAVE_UTF8PROC -I /Users/Username/Downloads/hfsfuse-master/lib -c -o cache.o cache.c
In file included from
^
^
1 warning generated.
cc -Wall -Wextra -pedantic -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-parameter -Wno-missing-field-initializers -Wno-missing-braces -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -DHAVE_BIRTHTIME -DHAVE_UBLIO -DHAVE_UTF8PROC -I /Users/Username/Downloads/hfsfuse-master/lib -c -o features.o features.c
In file included from
^
^
1 warning generated.
cc -Wall -Wextra -pedantic -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-parameter -Wno-missing-field-initializers -Wno-missing-braces -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -DHAVE_BIRTHTIME -DHAVE_UBLIO -DHAVE_UTF8PROC -I /Users/Username/Downloads/hfsfuse-master/lib -c -o hfsuser.o hfsuser.c
In file included from
^
^
1 warning generated.
ar rcs libhfsuser.a cache.o features.o hfsuser.o
ranlib libhfsuser.a
/Library/Developer/CommandLineTools/usr/bin/make -C lib/libhfs/
cc -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -c -o endian.o endian.c
In file included from
^
^
1 warning generated.
cc -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -c -o libhfs.o libhfs.c
In file included from
^
^
1 warning generated.
cc -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -c -o unicode.o unicode.c
In file included from
^
^
1 warning generated.
ar rcs libhfs.a endian.o libhfs.o unicode.o
ranlib libhfs.a
/Library/Developer/CommandLineTools/usr/bin/make -C lib/ublio/
cc -g -O2 -Wall -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -c ublio.c -o ublio.o
In file included from
^
^
1 warning generated.
ar rcs libublio.a ublio.o
/Library/Developer/CommandLineTools/usr/bin/make -C lib/utf8proc/
cc -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -fPIC -std=c99 -Wall -Wmissing-prototypes -pedantic -DUTF8PROC_EXPORTS -c -o utf8proc.o utf8proc.c
In file included from
^
^
1 warning generated.
rm -f libutf8proc.a
ar rs libutf8proc.a utf8proc.o
ar: creating archive libutf8proc.a
cc -dynamiclib -o libutf8proc.2.dylib utf8proc.o -install_name /usr/local/lib/libutf8proc.2.dylib -Wl,-compatibility_version -Wl,2 -Wl,-current_version -Wl,2.0.0
ln -f -s libutf8proc.2.dylib libutf8proc.dylib
cc -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -o hfsfuse src/hfsfuse.o lib/libhfsuser/libhfsuser.a lib/libhfs/libhfs.a lib/ublio/libublio.a lib/utf8proc/libutf8proc.a -losxfuse -lpthread
cc -Wall -Wextra -pedantic -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-parameter -Wno-missing-field-initializers -Wno-missing-braces -I /Users/Username/Downloads/hfsfuse-master/lib -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -c -o src/hfsdump.o src/hfsdump.c
In file included from
^
^
1 warning generated.
cc -O3 -std=gnu11 -DHFSFUSE_VERSION_STRING="omitted" -DHFSFUSE_VERSION_STRING=\"omitted\" -o hfsdump src/hfsdump.o lib/libhfsuser/libhfsuser.a lib/libhfs/libhfs.a lib/ublio/libublio.a lib/utf8proc/libutf8proc.a -lpthread
$ make install
Makefile:63: Warning: git repo nor prepackaged version.h found, hfsfuse will be built without version information
/Library/Developer/CommandLineTools/usr/bin/make -C lib/libhfsuser/
make[1]: Nothing to be done for all'. /Library/Developer/CommandLineTools/usr/bin/make -C lib/libhfs/ make[1]: Nothing to be done for
all'.
/Library/Developer/CommandLineTools/usr/bin/make -C lib/ublio/
make[1]: libublio.a' is up to date. /Library/Developer/CommandLineTools/usr/bin/make -C lib/utf8proc/ make[1]: Nothing to be done for
all'.
install hfsfuse /usr/local/bin/
$
@Tcoton great, looks like that worked. Were you able to run hfsfuse/hfsdump?
I pushed up another change to prevent the version definition from being redundantly saved when running make config
, which is why you're seeing those macro redefinitions warnings, but those are cosmetic and won't affect the built product that you have installed.
Since the out of tree build succeeded, if everything is working properly then I'll go ahead and close this out.
Below are the results of hfsfuse and hfsdump commands. I could not get the later to get me a positive result with or without sudo.
$ sudo hfsfuse --force /dev/disk7s1s2 /Volumes/ Plain HFS volumes not currently supported Couldn't open volume: Undefined error: 0
$ sudo hfsdump /dev/disk7s1s2 stat sudo: hfsdump: command not found
@Tcoton this project only supports reading of HFS+ filesystems. You may want to try hfsutils which provides some tools to work with older HFS (not plus) volumes and is available via homebrew with brew install hfsutils
.
I added a note to the README since it can be hard to notice if you're not already familiar with the difference between these. Closing this now, but I hope that other project helps and you're able to access your disk!
Trying to install hfsfuse on Mac OS catalina 10.15.5 and I get the following results:
$ make config WITH_UBLIO=local WITH_UTF8PROC=local echo CC=cc > config.mak echo CONFIG_CFLAGS=-O3 -std=gnu11 >> config.mak echo WITH_UBLIO=local >> config.mak echo WITH_UTF8PROC=local >> config.mak $ make cc -Wall -Wextra -pedantic -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-parameter -Wno-missing-field-initializers -Wno-missing-braces -DFUSE_USE_VERSION=28 -D_FILE_OFFSET_BITS=64 -I/usr/local/include/osxfuse -I /Users/MyUsername/Downloads/hfsfuse-master/lib -O3 -std=gnu11 -c -o src/hfsfuse.o src/hfsfuse.c src/hfsfuse.c:34:10: fatal error: 'version.h' file not found
include "version.h"
1 error generated. make: *** [src/hfsfuse.o] Error 1