summaryrefslogtreecommitdiff
path: root/filesystems/httpfs
diff options
context:
space:
mode:
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.