summaryrefslogtreecommitdiff
path: root/filesystems/httpfs
diff options
context:
space:
mode:
authorRobert Clausecker <fuz@FreeBSD.org>2024-09-27 12:48:46 +0200
committerRobert Clausecker <fuz@FreeBSD.org>2024-11-06 16:17:35 +0100
commit6e2da9672f79f44048d597f0f61e4646cdeade9d (patch)
treec92e4b3158e3419e8cec38e00227d08dcdaab3e9 /filesystems/httpfs
parentmath/sdpa: speed up build (diff)
filesystems: add new category for file systems and related utilities
The filesystems category houses file systems and file system utilities. It is added mainly to turn the sysutils/fusefs-* pseudo-category into a proper one, but is also useful for the sundry of other file systems related ports found in the tree. Ports that seem like they belong there are moved to the new category. Two ports, sysutils/fusefs-funionfs and sysutils/fusefs-fusepak are not moved as they currently don't fetch and don't have TIMESTAMP set in their distinfo, but that is required to be able to push a rename of the port by the pre-receive hook. Approved by: portmgr (rene) Reviewed by: mat Pull Request: https://github.com/freebsd/freebsd-ports/pull/302 PR: 281988
Diffstat (limited to 'filesystems/httpfs')
-rw-r--r--filesystems/httpfs/Makefile53
-rw-r--r--filesystems/httpfs/distinfo3
-rw-r--r--filesystems/httpfs/files/patch-Makefile60
-rw-r--r--filesystems/httpfs/files/patch-httpfs2.c53
-rw-r--r--filesystems/httpfs/pkg-descr4
5 files changed, 173 insertions, 0 deletions
diff --git a/filesystems/httpfs/Makefile b/filesystems/httpfs/Makefile
new file mode 100644
index 000000000000..40eaf89aa25b
--- /dev/null
+++ b/filesystems/httpfs/Makefile
@@ -0,0 +1,53 @@
+PORTNAME= httpfs
+PORTVERSION= 2.${VERSION}
+PORTREVISION= 2
+PORTEPOCH= 1
+CATEGORIES= filesystems www
+MASTER_SITES= SF/${PORTNAME}/${PORTNAME}2/
+PKGNAMEPREFIX= fusefs-
+DISTNAME= ${PORTNAME}2-${VERSION}
+
+MAINTAINER= ports@FreeBSD.org
+COMMENT= Fuse-based http filesystem
+WWW= https://httpfs.sourceforge.net/
+
+LICENSE= GPLv2+
+LICENSE_FILE= ${WRKSRC}/debian/copyright
+
+DEPRECATED= Abandonware, last release in 2012 and there are multiple issues unresolved
+EXPIRATION_DATE=2024-12-31
+
+USES= fuse pkgconfig gmake
+
+WRKSRC= ${WRKDIR}/${PORTNAME}2-${VERSION}
+VERSION= 0.1.5
+CFLAGS+= -D__BSD_VISIBLE
+PLIST_FILES= bin/httpfs2
+
+CERT_STORE= ${LOCALBASE}/share/certs/ca-root-nss.crt
+MAKE_ENV+= CERT_STORE=${CERT_STORE}
+
+OPTIONS_DEFINE= GNUTLS
+OPTIONS_DEFAULT= GNUTLS
+
+GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
+GNUTLS_RUN_DEPENDS= ${CERT_STORE}:security/ca_root_nss
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/httpfs2 ${STAGEDIR}${PREFIX}/bin
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MGNUTLS}
+ALL_TARGET= full
+PLIST_FILES+= bin/httpfs2-mt bin/httpfs2-ssl bin/httpfs2-ssl-mt
+.else
+ALL_TARGET= httpfs2
+.endif
+
+do-install-GNUTLS-on:
+ cd ${WRKSRC} && \
+ ${INSTALL_PROGRAM} httpfs2-mt httpfs2-ssl httpfs2-ssl-mt \
+ ${STAGEDIR}${PREFIX}/bin
+
+.include <bsd.port.mk>
diff --git a/filesystems/httpfs/distinfo b/filesystems/httpfs/distinfo
new file mode 100644
index 000000000000..350e69639b94
--- /dev/null
+++ b/filesystems/httpfs/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1730905182
+SHA256 (httpfs2-0.1.5.tar.gz) = 01cb4bb38deb344f540da6f1464dc7edbdeb51213ad810b8c9c282c1e17e0fc1
+SIZE (httpfs2-0.1.5.tar.gz) = 16870
diff --git a/filesystems/httpfs/files/patch-Makefile b/filesystems/httpfs/files/patch-Makefile
new file mode 100644
index 000000000000..4e2252a2840b
--- /dev/null
+++ b/filesystems/httpfs/files/patch-Makefile
@@ -0,0 +1,60 @@
+--- Makefile.orig 2012-09-03 14:58:02 UTC
++++ Makefile
+@@ -1,5 +1,5 @@
+ MAIN_CFLAGS := -g -Os -Wall $(shell pkg-config fuse --cflags)
+-MAIN_CPPFLAGS := -Wall -Wno-unused-function -Wconversion -Wtype-limits -DUSE_AUTH -D_XOPEN_SOURCE=700 -D_ISOC99_SOURCE
++MAIN_CPPFLAGS := -Wall -Wno-unused-function -Wconversion -DUSE_AUTH -D_XOPEN_SOURCE=700 -D_ISOC99_SOURCE
+ THR_CPPFLAGS := -DUSE_THREAD
+ THR_LDFLAGS := -lpthread
+ MAIN_LDFLAGS := $(shell pkg-config fuse --libs | sed -e s/-lrt// -e s/-ldl// -e s/-pthread// -e "s/ / /g")
+@@ -10,7 +10,7 @@ ifeq ($(shell pkg-config --atleast-version 2.10 gnutls
+
+ variants += -ssl -ssl-mt
+
+- CERT_STORE := /etc/ssl/certs/ca-certificates.crt
++# CERT_STORE := /etc/ssl/certs/ca-certificates.crt
+ SSL_CPPFLAGS := -DUSE_SSL $(shell pkg-config gnutls --cflags) -DCERT_STORE=\"$(CERT_STORE)\"
+ SSL_LDFLAGS := $(shell pkg-config gnutls --libs)
+ endif
+@@ -23,7 +23,8 @@ manpages = $(addsuffix .1,$(binaries))
+
+ intermediates += $(addsuffix .xml,$(manpages))
+
+-targets = $(binaries) $(manpages)
++#targets = $(binaries) $(manpages)
++targets = $(binaries)
+
+ full:
+ $(MAKE) all $(addprefix all,$(variants))
+@@ -44,8 +45,8 @@ clean-recursive:
+ %-full:
+ $(MAKE) $* $(addprefix $*,$(variants))
+
+-%.1: %.1.txt
+- a2x -f manpage $<
++#%.1: %.1.txt
++# a2x -f manpage $<
+
+ %-ssl: $*
+ $(MAKE) CPPFLAGS='$(CPPFLAGS) $(SSL_CPPFLAGS)' LDFLAGS='$(LDFLAGS) $(SSL_LDFLAGS)' binsuffix=-ssl$(binsuffix) $*
+@@ -60,20 +61,6 @@ clean-recursive:
+ $(MAKE) CPPFLAGS='$(CPPFLAGS) -DRETRY_ON_RESET' binsuffix=-rst$(binsuffix) $*
+
+ # Rules to automatically make a Debian package
+-
+-package = $(shell dpkg-parsechangelog | grep ^Source: | sed -e s,'^Source: ',,)
+-version = $(shell dpkg-parsechangelog | grep ^Version: | sed -e s,'^Version: ',, -e 's,-.*,,')
+-revision = $(shell dpkg-parsechangelog | grep ^Version: | sed -e -e 's,.*-,,')
+-architecture = $(shell dpkg --print-architecture)
+-tar_dir = $(package)-$(version)
+-tar_gz = $(tar_dir).tar.gz
+-pkg_deb_dir = pkgdeb
+-unpack_dir = $(pkg_deb_dir)/$(tar_dir)
+-orig_tar_gz = $(pkg_deb_dir)/$(package)_$(version).orig.tar.gz
+-pkg_deb_src = $(pkg_deb_dir)/$(package)_$(version)-$(revision)_source.changes
+-pkg_deb_bin = $(pkg_deb_dir)/$(package)_$(version)-$(revision)_$(architecture).changes
+-
+-deb_pkg_key = CB8C5858
+
+ debclean:
+ rm -rf $(pkg_deb_dir)
diff --git a/filesystems/httpfs/files/patch-httpfs2.c b/filesystems/httpfs/files/patch-httpfs2.c
new file mode 100644
index 000000000000..c18b96efd4a4
--- /dev/null
+++ b/filesystems/httpfs/files/patch-httpfs2.c
@@ -0,0 +1,53 @@
+--- httpfs2.c.orig 2012-09-03 14:58:02 UTC
++++ httpfs2.c
+@@ -35,7 +35,7 @@
+ #include <assert.h>
+ #include <ctype.h>
+ #include <sys/stat.h>
+-#include <sys/dir.h>
++#include <dirent.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <sys/socket.h>
+@@ -188,7 +188,7 @@ static char * b64_encode(unsigned const char* ptr, lon
+
+ static int httpfs_stat(fuse_ino_t ino, struct stat *stbuf)
+ {
+- stbuf->st_ino = ino;
++ stbuf->st_ino = (uint32_t)ino;
+ switch (ino) {
+ case 1:
+ stbuf->st_mode = S_IFDIR | 0755;
+@@ -257,7 +257,7 @@ static void dirbuf_add(fuse_req_t req, struct dirbuf *
+ b->size += fuse_add_direntry(req, NULL, 0, name, NULL, 0);
+ b->p = (char *) realloc(b->p, b->size);
+ memset(&stbuf, 0, sizeof(stbuf));
+- stbuf.st_ino = ino;
++ stbuf.st_ino = (uint32_t)ino;
+ fuse_add_direntry(req, b->p + oldsize, b->size - oldsize, name, &stbuf,
+ (off_t) b->size);
+ }
+@@ -667,11 +667,12 @@ static char * url_encode(char * path) {
+
+ static int init_url(struct_url* url)
+ {
+- memset(url, 0, sizeof(url));
++ memset(url, 0, sizeof(*url));
+ url->sock_type = SOCK_CLOSED;
+ url->timeout = TIMEOUT;
+ #ifdef USE_SSL
+- url->cafile = CERT_STORE;
++ if ((url->cafile = getenv("CERT_STORE")) == NULL)
++ url->cafile = CERT_STORE;
+ #endif
+ return 0;
+ }
+@@ -911,7 +912,7 @@ int main(int argc, char *argv[])
+ return 3;
+ }
+ #ifdef USE_SSL
+- else {
++ else if(main_url.ss != NULL) {
+ print_ssl_info(main_url.ss);
+ }
+ #endif
diff --git a/filesystems/httpfs/pkg-descr b/filesystems/httpfs/pkg-descr
new file mode 100644
index 000000000000..f66315b8419d
--- /dev/null
+++ b/filesystems/httpfs/pkg-descr
@@ -0,0 +1,4 @@
+httpfs depends on FUSE. It uses HTTP/1.1 extensions to read arbitrary
+bytes from a file on a web-server. This is particular interesting for
+an iso, since it can be investigated (loop device) without actually
+downloading the whole iso.