Skip to content

fuse-archive: new submission at 1.12 #28658

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions fuse/fuse-archive/Portfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem 1.0

# Fuse3 building doesn't work right, hande stuff manually for now.
#PortGroup fuse 1.0
configure.cppflags-prepend -I${prefix}/include/fuse3
depends_lib-append port:macfuse
depends_build-append path:bin/pkg-config:pkgconfig

PortGroup github 1.0
PortGroup boost 1.0
PortGroup makefile 1.0

github.setup google fuse-archive 1.12 v
github.tarball_from archive
revision 0
categories fuse
license Apache-2
maintainers nomaintainer
description Mount archives with FUSE
long_description \
Mount an archive or compressed file as a FUSE file system.

checksums rmd160 4a55ca94cc1792698697cf0d8b77d957cad71dde \
sha256 cf05bc4f23de0985fb578a2d02f95d6cb82eb6bc2f6e740f57702a172e0088df \
size 624697

depends_lib-append port:libarchive
boost.version 1.81
patchfiles make.diff apple.diff
use_configure no
build.target all
compiler.cxx_standard 2020

destroot {
xinstall -m 755 ${worksrcpath}/out/fuse-archive ${destroot}${prefix}/bin
xinstall -d ${destroot}${prefix}/share/man/man1
xinstall -m 644 ${worksrcpath}/fuse-archive.1 ${destroot}${prefix}/share/man/man1
}
20 changes: 20 additions & 0 deletions fuse/fuse-archive/files/apple.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- fuse-archive.cc 2025-03-19 16:19:28
+++ fuse-archive.cc 2025-06-10 03:33:48
@@ -951,7 +951,7 @@

std::string const cache_dir = GetCacheDir();

-#if !defined(__FreeBSD__) && !defined(__OpenBSD__)
+#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__APPLE__)
g_cache_fd = open(cache_dir.c_str(), O_TMPFILE | O_RDWR | O_EXCL, 0);
if (g_cache_fd >= 0) {
LOG(DEBUG) << "Created anonymous cache file in " << Path(cache_dir);
@@ -2929,7 +2929,7 @@
// Get a file descriptor to the parent directory of the mount point.
int mount_point_parent_fd =
open(!mount_point_parent.empty() ? mount_point_parent.c_str() : ".",
- O_DIRECTORY | O_PATH);
+ O_DIRECTORY | O_EXEC);
if (mount_point_parent_fd < 0) {
PLOG(ERROR) << "Cannot access directory " << Path(mount_point_parent);
throw ExitCode::CANNOT_CREATE_MOUNT_POINT;
10 changes: 10 additions & 0 deletions fuse/fuse-archive/files/make.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- Makefile
+++ Makefile
@@ -17,6 +17,7 @@ CXXFLAGS += $(shell $(PKG_CONFIG) --cflags $(DEPS))
LDFLAGS += $(shell $(PKG_CONFIG) --libs $(DEPS))
CXXFLAGS += -std=c++20 -Wall -Wextra -Wno-missing-field-initializers -Wno-sign-compare -Wno-unused-parameter
CXXFLAGS += -D_FILE_OFFSET_BITS=64
+CXXFLAGS += -std=gnu++20 -DFUSE_DARWIN_ENABLE_EXTENSIONS=0

ifeq ($(DEBUG), 1)
CXXFLAGS += -O0 -g