Open ylluminarious opened 7 years ago
I just submitted a PR https://github.com/Homebrew/homebrew-core/pull/24302
I had to make the following modifications to make it build correctly:
uuid/uuid.h
header.prefpane
with an explicit make prefpane
(not building by default ?)tools/macos
.Filesystems/fuse-ext2.fs
and PreferencePanes/fuse-ext2.prefPane
.@yalp Thanks. Glad that someone is getting on this issue.
Last step requires a release of fuse-ext2, so I submitted an issue #71
In the mean time, people can build with Homebrew using the submitted formula directly:
brew install https://raw.githubusercontent.com/yalp/homebrew-core/fuse-ext2/Formula/fuse-ext2.rb
or to build from master
branch:
brew install --head https://raw.githubusercontent.com/yalp/homebrew-core/fuse-ext2/Formula/fuse-ext2.rb
This could be a nice addition to the README if we can't get a release of fuse-ext2 anytime soon because of stability / release readiness issues.
Maybe the fuse-ext2
repo could host the fuse-ext2.rb
formula file (as a user I feel suspicious about installing a formula from an unknown remote Github repo) ?
@yalp Good idea regarding hosting the formula here if homebrew-core rejects it. However, it looks like we just got a new release tagged in #71 so I'd suggest continuing to try to get the formula into the core repository. Thanks again for your efforts and thanks to @alperakcan for cooperating and helping out with this!
Made a new attempt with 0.0.10 release: https://github.com/Homebrew/homebrew-core/pull/24339
removed pre-release mark from v0.0.10
The formula currently errors with:
$ brew install --HEAD https://raw.githubusercontent.com/yalp/homebrew-core/fuse-ext2/Formula/fuse-ext2.rb
######################################################################## 100.0%
==> Installing dependencies for fuse-ext2: automake, e2fsprogs
==> Installing fuse-ext2 dependency: automake
==> Downloading https://homebrew.bintray.com/bottles/automake-1.16.1.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring automake-1.16.1.sierra.bottle.tar.gz
🍺 /usr/local/Cellar/automake/1.16.1: 131 files, 3MB
==> Installing fuse-ext2 dependency: e2fsprogs
==> Downloading https://homebrew.bintray.com/bottles/e2fsprogs-1.44.0.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring e2fsprogs-1.44.0.sierra.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local,
because this installs several executables which shadow macOS system commands.
If you need to have this software first in your PATH run:
echo 'export PATH="/usr/local/opt/e2fsprogs/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/e2fsprogs/sbin:$PATH"' >> ~/.bash_profile
For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/e2fsprogs/lib
CPPFLAGS: -I/usr/local/opt/e2fsprogs/include
For pkg-config to find this software you may need to set:
PKG_CONFIG_PATH: /usr/local/opt/e2fsprogs/lib/pkgconfig
==> Summary
🍺 /usr/local/Cellar/e2fsprogs/1.44.0: 138 files, 6.8MB
==> Installing fuse-ext2 --HEAD
==> Cloning https://github.com/alperakcan/fuse-ext2.git
Cloning into '/Users/eric/Library/Caches/Homebrew/fuse-ext2--git'...
remote: Counting objects: 97, done.
remote: Compressing objects: 100% (88/88), done.
remote: Total 97 (delta 29), reused 33 (delta 3), pack-reused 0
Receiving objects: 100% (97/97), 134.98 KiB | 1.02 MiB/s, done.
Resolving deltas: 100% (29/29), done.
==> Checking out branch master
==> ./autogen.sh
==> ./configure --prefix=/usr/local/Cellar/fuse-ext2/HEAD-9f19d68
==> make
Last 15 lines from /Users/eric/Library/Logs/Homebrew/fuse-ext2/03.make:
libtool: link: clang -g -O2 -o fuse-ext2.uninstall fuse-ext2.uninstall.o -lext2fs -lcom_err /usr/local/lib/libosxfuse.dylib -liconv -pthread
libtool: link: clang -g -O2 -o fuse-ext2.wait fuse-ext2.wait.o -framework CoreFoundation -lext2fs -lcom_err /usr/local/lib/libosxfuse.dylib -liconv -pthread
/bin/sh ../libtool --mode=link clang -g -O2 -framework Foundation -o fuse-ext2.install fuse-ext2.install.o -lext2fs -lcom_err -losxfuse
libtool: link: clang -Wall -DHAVE_CONFIG_H -I/usr/local/include -D__FreeBSD__=10 -idirafter/usr/local/include/osxfuse/fuse --std=gnu89 -idirafter/usr/local/opt/e2fsprogs/include -o fuse-ext2 fuse_ext2-fuse-ext2.o fuse_ext2-do_probe.o fuse_ext2-do_check.o fuse_ext2-do_fillstatbuf.o fuse_ext2-do_readinode.o fuse_ext2-do_writeinode.o fuse_ext2-do_killfilebyinode.o fuse_ext2-op_init.o fuse_ext2-op_destroy.o fuse_ext2-op_access.o fuse_ext2-op_fgetattr.o fuse_ext2-op_getattr.o fuse_ext2-op_getxattr.o fuse_ext2-op_open.o fuse_ext2-op_read.o fuse_ext2-op_readdir.o fuse_ext2-op_readlink.o fuse_ext2-op_release.o fuse_ext2-op_statfs.o fuse_ext2-op_chown.o fuse_ext2-op_chmod.o fuse_ext2-op_create.o fuse_ext2-op_flush.o fuse_ext2-op_fsync.o fuse_ext2-op_mkdir.o fuse_ext2-op_rmdir.o fuse_ext2-op_unlink.o fuse_ext2-op_utimens.o fuse_ext2-op_write.o fuse_ext2-op_mknod.o fuse_ext2-op_symlink.o fuse_ext2-op_truncate.o fuse_ext2-op_link.o fuse_ext2-op_rename.o -lext2fs -lcom_err /usr/local/lib/libosxfuse.dylib -liconv -pthread
libtool: link: clang -g -O2 -o fuse-ext2.install fuse-ext2.install.o -framework Foundation -lext2fs -lcom_err /usr/local/lib/libosxfuse.dylib -liconv -pthread
Making all in tools
Making all in macosx
( cd ../../tools/macosx/prefpane; \
xcodebuild; \
)
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
make[3]: *** [prefpane] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Do not report this issue to Homebrew/brew or Homebrew/core!
These open issues may also help:
fuse-ext2 0.0.10 (new formula) https://github.com/Homebrew/homebrew-core/pull/24339
Someone had suggested running sudo xcode-select -r
but that didn't resolve it.
Went ahead and installed XCode. Then I get this:
$ brew install --HEAD https://raw.githubusercontent.com/yalp/homebrew-core/fuse-ext2/Formula/fuse-ext2.rb
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (caskroom/cask).
No changes to formulae.
######################################################################## 100.0%
==> Cloning https://github.com/alperakcan/fuse-ext2.git
Updating /Users/eric/Library/Caches/Homebrew/fuse-ext2--git
==> Checking out branch master
==> ./autogen.sh
==> ./configure --prefix=/usr/local/Cellar/fuse-ext2/HEAD-9f19d68
==> make
Last 15 lines from /Users/eric/Library/Logs/Homebrew/fuse-ext2/03.make:
18 ??? 0x0000000000000015 0x0 + 21
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Command /Applications/Xcode.app/Contents/Developer/usr/bin/ibtool failed with exit code 6. The tool may have crashed. Please file a bug report at http://bugreport.apple.com with the above output and attach any crash logs for ibtool, ibtoold, Xcode, and Interface Builder Cocoa Touch Tool created around the time of this failure. These logs can be found in ~/Library/Logs/DiagnosticReports or /Library/Logs/DiagnosticReports.
** BUILD FAILED **
The following build commands failed:
CompileXIB English.lproj/fuse_ext2Pref.xib
(1 failure)
make[3]: *** [prefpane] Error 65
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Do not report this issue to Homebrew/brew or Homebrew/core!
These open issues may also help:
fuse-ext2 0.0.10 (new formula) https://github.com/Homebrew/homebrew-core/pull/24339
@eduncan911 try actually opening xcode and letting its dependencies install ... I installed it with just fine with
brew install --HEAD https://raw.githubusercontent.com/yalp/homebrew-core/fuse-ext2/Formula/fuse-ext2.rb
Also, not sure if this is an issue only when installing with brew.... but when you run fuse-ext2. The displayed version is not updated to 0.0.10. it displays:
fuse-ext2 0.0.9 29 - FUSE EXT2FS Driver
Copyright (C) 2008-2015 Alper Akcan <alper.akcan@gmail.com>
Copyright (C) 2009 Renzo Davoli <renzo@cs.unibo.it>
Usage: fuse-ext2 <device|image_file> <mount_point> [-o option[,...]]
Options: ro, force, allow_other
Please see details in the manual.
Example: fuse-ext2 /dev/sda1 /mnt/sda1
http://github.com/alperakcan/fuse-ext2/
Maybe that should be brought up in another issue.
Appreciate this getting improved!
Question: Why is this requiring the command line tools installation of Xcode?
$ brew install https://raw.githubusercontent.com/yalp/homebrew-core/fuse-ext2/Formula/fuse-ext2.rb ######################################################################## 100.0% Error: Xcode alone is not sufficient on High Sierra. Install the Command Line Tools: xcode-select --install
from Technical Note 2339 (which is not being maintained but I'm not finding anything suggesting it's actually inaccurate though with the state of Apple's documentation… ¯_(ツ)_/¯ ):
If Xcode is installed on your machine, then there is no need to install them. Xcode comes bundled with all your command-line tools.
When I just clone the source and make it without doing a separate xcode-select --install (though it fails on the uuid_string_t issue you identify above).
TIA.
Update: it seems like the homebrew people are being very picky and this isn't getting merged :-/
@haikusw Yes, unfortunately Homebrew has become much too picky (in many regards) for my tastes anymore. I've moved to MacPorts and I can heartily recommend anyone else to do the same. If you need reasons why, feel free to contact me or ask me here (although we should avoid cluttering this thread).
I am going to try and make this program available via MacPorts soon and I will post an update here when I do so. The MacPorts folks seem much less picky than Homebrew so it should go through without a hitch.
Hopefully it will be installable via:
sudo port install fuse-ext2
or some such.
Thanks @ylluminarious. (sigh)
There is a Homebrew formula for this software, but it uses an old binary from Sourceforge. It would be great if someone fixed this (or made a new formula) to get new versions from this Github repo. This would certainly ease the current OS X installation process. Not to mention that the current installation method could install duplicate dependencies. This is because users may already have these dependencies through their package manager.