--- b/.github/workflows/ci.yml +++ a/.github/workflows/ci.yml @@ -33,7 +33,7 @@ DEBIAN_FRONTEND: noninteractive run: | apt-get update + apt-get -y install build-essential g++ autoconf autoconf-archive automake libtool libtorrent-rasterbar-dev libfuse-dev libcurl4-openssl-dev - apt-get -y install build-essential g++ autoconf autoconf-archive automake libtool libtorrent-rasterbar-dev libfuse3-dev libcurl4-openssl-dev - name: Build run: | autoreconf -i --- b/README.md +++ a/README.md @@ -47,13 +47,13 @@ ## Dependencies (on Linux) +* fuse ("fuse" in Ubuntu 16.04) +* libtorrent ("libtorrent-rasterbar8" in Ubuntu 16.04) +* libcurl ("libcurl3" in Ubuntu 16.04) -* fuse3 ("fuse3" in Ubuntu 22.04) -* libtorrent ("libtorrent-rasterbar8" in Ubuntu 22.04) -* libcurl ("libcurl4" in Ubuntu 22.04) ## Building from git on a recent Debian/Ubuntu + $ sudo apt-get install autoconf automake libfuse-dev libtorrent-rasterbar-dev libcurl4-openssl-dev g++ - $ sudo apt-get install autoconf automake libfuse3-dev libtorrent-rasterbar-dev libcurl4-openssl-dev g++ $ git clone https://github.com/johang/btfs.git btfs $ cd btfs $ autoreconf -i @@ -68,7 +68,7 @@ Use [`brew`](https://brew.sh) to get the dependencies. + $ brew install Caskroom/cask/osxfuse libtorrent-rasterbar autoconf automake pkg-config - $ brew install --cask macfuse libtorrent-rasterbar autoconf automake pkg-config $ git clone https://github.com/johang/btfs.git btfs $ cd btfs $ autoreconf -i --- b/configure.ac +++ a/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.69]) +AC_INIT(btfs, 3.1, johan.gunnarsson@gmail.com, btfs, https://github.com/johang/btfs) -AC_INIT([btfs],[3.1],[johan.gunnarsson@gmail.com],[btfs],[https://github.com/johang/btfs]) AC_CONFIG_SRCDIR([src/btfs.cc]) AM_INIT_AUTOMAKE @@ -8,7 +8,7 @@ AC_PROG_CXX # Checks for libraries. +PKG_CHECK_MODULES(FUSE, fuse >= 2.8.0) -PKG_CHECK_MODULES(FUSE, fuse3 >= 3.0) PKG_CHECK_MODULES(LIBTORRENT, libtorrent-rasterbar >= 1.0.0) PKG_CHECK_MODULES(LIBCURL, libcurl >= 7.22.0) @@ -25,5 +25,4 @@ # Check if -latomic is needed. AC_SEARCH_LIBS(__atomic_load, atomic) +AC_OUTPUT(Makefile src/Makefile scripts/Makefile man/Makefile) -AC_CONFIG_FILES([Makefile src/Makefile scripts/Makefile man/Makefile]) -AC_OUTPUT --- b/src/btfs.cc +++ a/src/btfs.cc @@ -17,7 +17,7 @@ along with BTFS. If not, see . */ +#define FUSE_USE_VERSION 26 -#define FUSE_USE_VERSION 31 #include #include @@ -27,8 +27,7 @@ #include #include +#include -#include -#include // The below pragma lines will silence lots of compiler warnings in the // libtorrent headers file. Not btfs' fault. @@ -421,9 +420,7 @@ } static int +btfs_getattr(const char *path, struct stat *stbuf) { -btfs_getattr(const char *path, struct stat *stbuf, - struct fuse_file_info *fi) { - (void) fi; if (!is_dir(path) && !is_file(path) && !is_root(path)) return -ENOENT; @@ -468,9 +465,7 @@ static int btfs_readdir(const char *path, void *buf, fuse_fill_dir_t filler, + off_t offset, struct fuse_file_info *fi) { - off_t offset, struct fuse_file_info *fi, - enum fuse_readdir_flags flags) { - (void)flags; if (!is_dir(path) && !is_file(path) && !is_root(path)) return -ENOENT; @@ -479,12 +474,12 @@ pthread_mutex_lock(&lock); + filler(buf, ".", NULL, 0); + filler(buf, "..", NULL, 0); - filler(buf, ".", NULL, 0, (enum fuse_fill_dir_flags)0); - filler(buf, "..", NULL, 0, (enum fuse_fill_dir_flags)0); for (std::set::iterator i = dirs[path].begin(); i != dirs[path].end(); ++i) { + filler(buf, i->c_str(), NULL, 0); - filler(buf, i->c_str(), NULL, 0, (enum fuse_fill_dir_flags)0); } pthread_mutex_unlock(&lock); @@ -560,8 +555,7 @@ } static void * +btfs_init(struct fuse_conn_info *conn) { -btfs_init(struct fuse_conn_info *conn, - struct fuse_config *cfg) { pthread_mutex_lock(&lock); time_of_mount = time(NULL);