Comments (10)
Thanks for the bug report. If you come up with a patch I'll apply it. I've had
trouble dealing with OS X and s3backer (I'm not a Mac expert).
Original comment by [email protected]
on 4 Aug 2011 at 1:50
- Changed state: Accepted
from s3backer.
Well, using pkg-config when you look for libfuse is probably a good move on any
platform.
In general, Mac OS is a lot like FreeBSD (albeit on a Mach kernel) and an awful
lot of the stuff is just the same as FreeBSD. The main thing about MacPorts is
that by default it puts stuff in /opt/local not /usr/local (though you should
avoid hardwiring that) to avoid any possible clash with Apple. In fact, Apple
don't put anything in /usr/local so that would've been fine, but there you go.
I'll be trying out s3backer with fuse4x some more and will let you know how
that goes.
Original comment by [email protected]
on 4 Aug 2011 at 2:00
from s3backer.
The build does already use pkg-config on OS X, it's just that it doesn't work
reliably and/or MacFUSE has a screwed up fuse.pc file.
See for example OS X notes on
http://code.google.com/p/s3backer/wiki/BuildAndInstall
If some command line ./configure environment variables are all that's needed,
I'll note them on that wiki page, etc.
Original comment by [email protected]
on 4 Aug 2011 at 2:06
from s3backer.
I tested this. pkg-config ran fine and output the following (from memory since
I'm not on that machine) when typed at the shell prompt immediately after the
configure failed.
-L /opt/local/lib -lfuse
These weren't used in the *configure* script, so configure complained that fuse
was absent. The actual make might use pkg-config, but the configure complains
and won't complete. I had a look through the configure script and could see
that it wasn't invoking pkg-config to do its checks.
Original comment by [email protected]
on 4 Aug 2011 at 2:10
from s3backer.
Just checked again since I want it on this machine too. Here's a transcript
from a second ago. By the way, the -I /opt/local/include seems to be critical.
When I didn't include it yesterday I got compiler warnings and stack check
fail when running s3backer. I believe it was a 32/64-bit issue with linking
SSL from/opt/local/lib but using incompatible headers from /usr/local/include.
I hope this is helpful!
rb@Crane$ cd s3backer-1.3.2/
rb@Crane$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... scripts/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for pkg-config... /opt/local/bin/pkg-config
checking pkg-config is at least version 0.19... yes
checking for FUSE... yes
checking for curl_version in -lcurl... yes
checking for BIO_new in -lcrypto... yes
checking for XML_ParserCreate in -lexpat... yes
checking for fuse_version in -lfuse... no
configure: error: required library libfuse missing
rb@Crane$ pkg-config --libs fuse
-pthread -L/opt/local/lib -lfuse -liconv
rb@Crane$ ls -l /opt/local/lib/*fuse*
-rwxr-xr-x 1 root admin 185024 4 Aug 15:10 /opt/local/lib/libfuse.2.dylib
-rw-r--r-- 1 root admin 239984 4 Aug 15:10 /opt/local/lib/libfuse.a
lrwxr-xr-x 1 root admin 15 4 Aug 15:10 /opt/local/lib/libfuse.dylib ->
libfuse.2.dylib
-rwxr-xr-x 1 root admin 935 4 Aug 15:10 /opt/local/lib/libfuse.la
rb@Crane$ CFLAGS='-I /opt/local/include' LIBS='-L /opt/local/lib' ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... scripts/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for pkg-config... /opt/local/bin/pkg-config
checking pkg-config is at least version 0.19... yes
checking for FUSE... yes
checking for curl_version in -lcurl... yes
checking for BIO_new in -lcrypto... yes
checking for XML_ParserCreate in -lexpat... yes
checking for fuse_version in -lfuse... yes
checking for compressBound in -lz... yes
checking for pthread_create in -lpthread... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking whether fdatasync is declared... no
checking for ANSI C header files... (cached) yes
checking assert.h usability... yes
checking assert.h presence... yes
checking for assert.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking curl/curl.h usability... yes
checking curl/curl.h presence... yes
checking for curl/curl.h... yes
checking err.h usability... yes
checking err.h presence... yes
checking for err.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking expat.h usability... yes
checking expat.h presence... yes
checking for expat.h... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdint.h... (cached) yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for unistd.h... (cached) yes
checking sys/queue.h usability... yes
checking sys/queue.h presence... yes
checking for sys/queue.h... yes
checking openssl/bio.h usability... yes
checking openssl/bio.h presence... yes
checking for openssl/bio.h... yes
checking openssl/buffer.h usability... yes
checking openssl/buffer.h presence... yes
checking for openssl/buffer.h... yes
checking openssl/evp.h usability... yes
checking openssl/evp.h presence... yes
checking for openssl/evp.h... yes
checking openssl/hmac.h usability... yes
checking openssl/hmac.h presence... yes
checking for openssl/hmac.h... yes
checking openssl/md5.h usability... yes
checking openssl/md5.h presence... yes
checking for openssl/md5.h... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating debian/Makefile
config.status: creating config.h
config.status: executing depfiles commands
Original comment by [email protected]
on 4 Aug 2011 at 2:15
from s3backer.
By the way, it's no longer MacFuse (that project died years ago) but fuse4x.
It has recently been added to MacPorts. See
https://trac.macports.org/ticket/29917 for background. MacPorts are very
diligent about pkg-config, in my experience, and MacPorts is a very stable
system. The fact it has turned up in MacPorts is why I'm trying s3backer again.
Thanks again. I really like the engineering of s3backer and I'm looking
forward to using it.
Original comment by [email protected]
on 4 Aug 2011 at 2:21
from s3backer.
The following change to "configure.ac" fixed the problem, but just as you are
not a Mac export I am not an autoconf expert. But I couldn't see another way
to do it from the autoconf docs. Note: this is not a mac-specific change. Any
system which has fuse outside of the standard library search path will need
this. It's a bit puzzling why PKG_CHECK_MODULES doesn't do this automatically.
@@ -49,6 +49,8 @@
PKG_PROG_PKG_CONFIG(0.19)
PKG_CHECK_MODULES(FUSE, fuse,,
[AC_MSG_ERROR(["fuse" not found in pkg-config])])
+LIBS="$LIBS $FUSE_LIBS" export LIBS
+CFLAGS="$CFLAGS $FUSE_CFLAGS" export CFLAGS
Original comment by [email protected]
on 4 Aug 2011 at 3:03
from s3backer.
Question: what happens on your system if you install the latest version of all
the MacPorts stuff (including fuse4x), then take the current s3backer 1.3.2
distribution and do this:
$ PATH="/opt/local/bin:${PATH}"
$ ./configure
This seems to work on my system. For example:
$ pkg-config --libs fuse
-pthread -L/opt/local/lib -lfuse -liconv
when pkg-config is in my $PATH.
Original comment by [email protected]
on 4 Aug 2011 at 8:47
from s3backer.
/opt/local/bin is already on my path on both Macs, and pkg-config works exactly
as it does for you. That's in my transcript above. But the configure script
from autoconf does not use that --libs output when it's checking for libfuse.
It just tries -lfuse without the -L/opt/local/lib. Did you try the configure
also?
Original comment by [email protected]
on 4 Aug 2011 at 9:05
from s3backer.
OK, now I get it... ./configure was working for me because I still had MacFUSE
installed.
I've committed a variation of your patch to fix configure.ac in r458.
Thanks!
Original comment by [email protected]
on 4 Aug 2011 at 9:57
- Changed state: Fixed
from s3backer.
Related Issues (20)
- s3 strong consistency HOT 1
- munmap_chunk(): invalid pointer HOT 2
- TRIM is very inefficient HOT 2
- block cache entry shrink policy not documented HOT 1
- Building with NBD results in configured build prefix being ignored for nbdkit plugin HOT 2
- nbdkit: error: invalid value "deflate" for boolean flag "--compress" HOT 4
- block cache flush and synchronous umount (with fuse) HOT 3
- too many time_wait socket when writing to a newly created disk HOT 1
- [enhancement] make holes in cache file for zero blocks with fallocate HOT 8
- [enhancement] zero_cache should write a full block when writing into all-zero block, thus avoiding read-modify-write cycle HOT 3
- [nbd] s3backer isn't creating the /dev/nbdX device HOT 9
- zero_block_cache_size incorrect in stats file HOT 4
- Feature requests changing encryption password HOT 3
- s3backer seems to not work with Swift - special parameters needed? HOT 2
- Question: How to use s3backer with a GCS bucket? HOT 13
- Feature Request: DEBs and RPMs built by github actions when tagging a release HOT 1
- error zeroing blocks: Success HOT 17
- Error 403 leads to I/O errors, no retry is attempted HOT 83
- Upgrade from 1.4.3 HOT 4
- Current time is not updated when a HTTP request is retried HOT 15
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from s3backer.