aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Grosbein <eugen@FreeBSD.org>2022-06-07 05:35:45 +0000
committerEugene Grosbein <eugen@FreeBSD.org>2022-06-07 05:35:45 +0000
commit298c90f57071c723c2c9fbbeba5e08cabf7519bd (patch)
tree9553d7cec0891ce296b81ea668698b269768b5b9
parent57d9640f3c3669d318865222a743652a6952ba2d (diff)
sysutils/fusefs-httpfs: build with https support
The software has https support via GNUTLS but the port did not enable it. Add new port option GNUTLS and enable it by default. While here, add LICENSE (GPLv2+). Pet portlint. Bump PORTREVISION.
-rw-r--r--sysutils/fusefs-httpfs/Makefile29
-rw-r--r--sysutils/fusefs-httpfs/files/patch-Makefile39
-rw-r--r--sysutils/fusefs-httpfs/files/patch-httpfs2.c25
3 files changed, 77 insertions, 16 deletions
diff --git a/sysutils/fusefs-httpfs/Makefile b/sysutils/fusefs-httpfs/Makefile
index 4975a1b74497..4bb9ac0cd4d2 100644
--- a/sysutils/fusefs-httpfs/Makefile
+++ b/sysutils/fusefs-httpfs/Makefile
@@ -2,6 +2,7 @@
PORTNAME= httpfs
PORTVERSION= 2.${VERSION}
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= sysutils www
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}2/
@@ -11,15 +12,39 @@ DISTNAME= ${PORTNAME}2-${VERSION}
MAINTAINER= ports@FreeBSD.org
COMMENT= Fuse-based http filesystem
-WRKSRC= ${WRKDIR}/${PORTNAME}2-${VERSION}
+LICENSE= GPLv2+
+LICENSE_FILE= ${WRKSRC}/debian/copyright
-VERSION= 0.1.5
USES= fuse pkgconfig gmake
+
+WRKSRC= ${WRKDIR}/${PORTNAME}2-${VERSION}
+VERSION= 0.1.5
CFLAGS+= -D__BSD_VISIBLE
ALL_TARGET= httpfs2
PLIST_FILES= bin/httpfs2
+CERT_STORE= ${LOCALBASE}/share/certs/ca-root-nss.crt
+MAKE_ENV+= CERT_STORE=${CERT_STORE}
+ALL_TARGET= full
+
+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}
+PLIST_FILES+= bin/httpfs2-mt bin/httpfs2-ssl bin/httpfs2-ssl-mt
+.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/sysutils/fusefs-httpfs/files/patch-Makefile b/sysutils/fusefs-httpfs/files/patch-Makefile
index f64302e6aa5d..4e2252a2840b 100644
--- a/sysutils/fusefs-httpfs/files/patch-Makefile
+++ b/sysutils/fusefs-httpfs/files/patch-Makefile
@@ -1,5 +1,5 @@
---- Makefile.orig 2012-09-03 16:58:02.000000000 +0200
-+++ Makefile 2013-02-19 18:03:41.000000000 +0100
+--- 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
@@ -7,19 +7,41 @@
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")
-@@ -45,7 +45,7 @@
+@@ -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
+-%.1: %.1.txt
- a2x -f manpage $<
-+ a2x -L -f manpage $<
++#%.1: %.1.txt
++# a2x -f manpage $<
%-ssl: $*
$(MAKE) CPPFLAGS='$(CPPFLAGS) $(SSL_CPPFLAGS)' LDFLAGS='$(LDFLAGS) $(SSL_LDFLAGS)' binsuffix=-ssl$(binsuffix) $*
-@@ -61,20 +61,6 @@
+@@ -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,.*-,,')
@@ -33,7 +55,6 @@
-pkg_deb_bin = $(pkg_deb_dir)/$(package)_$(version)-$(revision)_$(architecture).changes
-
-deb_pkg_key = CB8C5858
--
+
debclean:
rm -rf $(pkg_deb_dir)
-
diff --git a/sysutils/fusefs-httpfs/files/patch-httpfs2.c b/sysutils/fusefs-httpfs/files/patch-httpfs2.c
index 512f4eb6d4e7..c18b96efd4a4 100644
--- a/sysutils/fusefs-httpfs/files/patch-httpfs2.c
+++ b/sysutils/fusefs-httpfs/files/patch-httpfs2.c
@@ -1,5 +1,5 @@
---- httpfs2.c.orig 2013-02-19 15:45:06.000000000 +0100
-+++ httpfs2.c 2013-02-19 15:48:43.000000000 +0100
+--- httpfs2.c.orig 2012-09-03 14:58:02 UTC
++++ httpfs2.c
@@ -35,7 +35,7 @@
#include <assert.h>
#include <ctype.h>
@@ -9,7 +9,7 @@
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
-@@ -188,7 +188,7 @@
+@@ -188,7 +188,7 @@ static char * b64_encode(unsigned const char* ptr, lon
static int httpfs_stat(fuse_ino_t ino, struct stat *stbuf)
{
@@ -18,7 +18,7 @@
switch (ino) {
case 1:
stbuf->st_mode = S_IFDIR | 0755;
-@@ -257,7 +257,7 @@
+@@ -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));
@@ -27,7 +27,7 @@
fuse_add_direntry(req, b->p + oldsize, b->size - oldsize, name, &stbuf,
(off_t) b->size);
}
-@@ -667,7 +667,7 @@
+@@ -667,11 +667,12 @@ static char * url_encode(char * path) {
static int init_url(struct_url* url)
{
@@ -36,3 +36,18 @@
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