0x09 / hfsfuse

FUSE driver for HFS+ filesystems
Other
77 stars 13 forks source link

rc/hfsfuse.c:34:10: fatal error: 'version.h' file not found #11

Closed Tcoton closed 4 years ago

Tcoton commented 4 years ago

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

0x09 commented 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

Tcoton commented 4 years ago

$ 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

0x09 commented 4 years ago

@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

Tcoton commented 4 years ago

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 :363: :4:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:3:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 :363: :2:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:1:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 :363: :2:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:1:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 :363: :2:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:1:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 :363: :2:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:1:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 :363: :2:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:1:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 :363: :2:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:1:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 :363: :2:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:1:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 :364: :2:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:1:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 :363: :2:9: warning: 'HFSFUSE_VERSION_STRING' macro redefined [-Wmacro-redefined]

define HFSFUSE_VERSION_STRING "omitted"

    ^

:1:9: note: previous definition is here

define HFSFUSE_VERSION_STRING omitted

    ^

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 forall'. /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 forall'. install hfsfuse /usr/local/bin/ $

0x09 commented 4 years ago

@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.

Tcoton commented 4 years ago

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

0x09 commented 4 years ago

@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.

0x09 commented 4 years ago

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!