diff --git a/filesystems/Makefile b/filesystems/Makefile index 67ebb926d71f..ac97631af284 100644 --- a/filesystems/Makefile +++ b/filesystems/Makefile @@ -1,152 +1,153 @@ COMMENT = File systems and related utilities SUBDIR += R-cran-fs SUBDIR += acfgfs SUBDIR += afuse SUBDIR += archivemount SUBDIR += automount SUBDIR += avfs SUBDIR += befuse SUBDIR += bindfs SUBDIR += cfs SUBDIR += chironfs SUBDIR += clamfs SUBDIR += cramfs SUBDIR += cryptofs SUBDIR += curlftpfs SUBDIR += darling-dmg SUBDIR += davfs2 SUBDIR += dsbmc SUBDIR += dsbmc-cli SUBDIR += dsbmd SUBDIR += e2fsprogs SUBDIR += e2fsprogs-core SUBDIR += e2tools SUBDIR += encfs SUBDIR += exfat SUBDIR += exfat-utils SUBDIR += ext2 SUBDIR += fstyp SUBDIR += fswatch-mon SUBDIR += fusefs-libs SUBDIR += fusefs-libs3 SUBDIR += genromfs SUBDIR += gphotofs SUBDIR += gvfs SUBDIR += hammer2 SUBDIR += hfsexplorer SUBDIR += hfsfuse SUBDIR += hfsutils SUBDIR += httpdirfs SUBDIR += ifuse SUBDIR += jmtpfs SUBDIR += kio-fuse SUBDIR += libbde SUBDIR += libblkid SUBDIR += libfsapfs SUBDIR += libfsext SUBDIR += libfsfat SUBDIR += libfshfs SUBDIR += libfsntfs SUBDIR += libfsxfs SUBDIR += libgedit-gfls SUBDIR += libmodi SUBDIR += linux-c7-dosfstools SUBDIR += lizardfs SUBDIR += lkl SUBDIR += ltfs SUBDIR += mergerfs SUBDIR += mhddfs SUBDIR += moosefs2-cgi SUBDIR += moosefs2-cgiserv SUBDIR += moosefs2-chunkserver SUBDIR += moosefs2-cli SUBDIR += moosefs2-client SUBDIR += moosefs2-master SUBDIR += moosefs2-metalogger SUBDIR += moosefs2-netdump SUBDIR += moosefs3-cgi SUBDIR += moosefs3-cgiserv SUBDIR += moosefs3-chunkserver SUBDIR += moosefs3-cli SUBDIR += moosefs3-client SUBDIR += moosefs3-master SUBDIR += moosefs3-metalogger SUBDIR += moosefs3-netdump SUBDIR += mp3fs SUBDIR += mtools SUBDIR += mtpfs SUBDIR += nbd-client-kmod SUBDIR += nbt SUBDIR += ntfs SUBDIR += ntfs-compression SUBDIR += ntfs2btrfs SUBDIR += ods2 SUBDIR += openzfs SUBDIR += openzfs-kmod SUBDIR += p5-Filesys-Statvfs SUBDIR += p5-Fuse SUBDIR += pear-Horde_Vfs SUBDIR += pod SUBDIR += progsreiserfs SUBDIR += py-dfvfs SUBDIR += py-fs SUBDIR += py-fs2 SUBDIR += py-fsspec SUBDIR += py-fsspec-xrootd SUBDIR += py-fusepy SUBDIR += py-gcsfs SUBDIR += py-kerchunk SUBDIR += py-libzfs SUBDIR += py-llfuse SUBDIR += py-prometheus-zfs SUBDIR += py-pyfakefs SUBDIR += py-s3fs SUBDIR += py-tahoe-lafs SUBDIR += py-zfs-autobackup SUBDIR += rar2fs SUBDIR += rubygem-chef-winrm-fs SUBDIR += rubygem-winrm-fs SUBDIR += rubygem-winrm-fs-gitlab SUBDIR += s3backer SUBDIR += s3fs SUBDIR += sandboxfs SUBDIR += sasquatch SUBDIR += scan_ffs SUBDIR += securefs SUBDIR += simple-mtpfs SUBDIR += smbnetfs SUBDIR += squashfs-tools SUBDIR += squashfs-tools-ng SUBDIR += squashfuse SUBDIR += sshfs SUBDIR += tclvfs SUBDIR += ufs SUBDIR += ufs_copy SUBDIR += unionfs SUBDIR += unreliablefs + SUBDIR += versitygw SUBDIR += webdavfs SUBDIR += wimlib SUBDIR += xfsm SUBDIR += xfsprogs SUBDIR += xfuse SUBDIR += zap SUBDIR += zerofs SUBDIR += zfs-periodic SUBDIR += zfs-replicate SUBDIR += zfs-snap-diff SUBDIR += zfs-snapshot-clean SUBDIR += zfs-snapshot-mgmt SUBDIR += zfs-stats SUBDIR += zfs-stats-lite SUBDIR += zfsnap SUBDIR += zfsnap2 SUBDIR += zfstools SUBDIR += zip SUBDIR += zisofs-tools SUBDIR += zrepl SUBDIR += zrepl-dsh2dsh SUBDIR += ztop SUBDIR += zxfer .include diff --git a/filesystems/versitygw/Makefile b/filesystems/versitygw/Makefile new file mode 100644 index 000000000000..8116275cc1e5 --- /dev/null +++ b/filesystems/versitygw/Makefile @@ -0,0 +1,24 @@ +PORTNAME= versitygw +DISTVERSIONPREFIX= v +DISTVERSION= 1.1.0 +CATEGORIES= filesystems www + +MAINTAINER= dch@FreeBSD.org +COMMENT= High-Performance S3 Gateway and Translation Service +WWW= https://github.com/versity/versitygw/blob/main/go.mod + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= go:modules +USE_RC_SUBR= versitygw +GO_MODULE= github.com/versity/versitygw +GO_TARGET= ./cmd/versitygw + +PLIST_DIRS= /var/log/versitygw +PLIST_FILES= bin/versitygw + +post-install: + ${MKDIR} ${STAGEDIR}/var/log/versitygw + +.include diff --git a/filesystems/versitygw/distinfo b/filesystems/versitygw/distinfo new file mode 100644 index 000000000000..300d925f4abc --- /dev/null +++ b/filesystems/versitygw/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1768659439 +SHA256 (go/filesystems_versitygw/versitygw-v1.1.0/v1.1.0.mod) = 5783deed6dcb3c3ea9c2c3e83cfe4ee7dcba84827f00929a8103c2d3bfe8709a +SIZE (go/filesystems_versitygw/versitygw-v1.1.0/v1.1.0.mod) = 4125 +SHA256 (go/filesystems_versitygw/versitygw-v1.1.0/v1.1.0.zip) = 3a97294c889bd39f83d0e2fe33ba259d594ce74cd8a65a492b549363c4969290 +SIZE (go/filesystems_versitygw/versitygw-v1.1.0/v1.1.0.zip) = 1014217 diff --git a/filesystems/versitygw/files/versitygw.in b/filesystems/versitygw/files/versitygw.in new file mode 100644 index 000000000000..6cc04da99cea --- /dev/null +++ b/filesystems/versitygw/files/versitygw.in @@ -0,0 +1,94 @@ +#!/bin/sh + +# PROVIDE: versitygw +# REQUIRE: DAEMON +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# versitygw_enable (bool): Set it to YES to enable versitygw. +# Default is "NO". +# versitygw_user (user): Set user to run versitygw. +# Default is "versitygw". +# versitygw_group (group): Set group to run versitygw. +# Default is "versitygw". +# versitygw_options (string): Provide additional runtime options. +# Default is "". +# versitygw_readonly (file): Disallow writes. +# Default is "yes". +# versitygw_access_log (file): Path for access logs. +# Default is "/var/log/versitgw/access.log". +# versitygw_admin_log (file): Path for admin logs. +# Default is "/var/log/versitgw/admin.log". +# versitygw_listen (file): IP:port to listen on. +# Default is "localhost:7070". + +. /etc/rc.subr + +name=versitygw +rcvar=versitygw_enable + +load_rc_config $name + +: ${versitygw_enable:="NO"} +: ${versitygw_user:="www"} +: ${versitygw_group:="www"} +: ${versitygw_access_log:="/var/log/versitygw/access.log"} +: ${versitygw_admin_log:="/var/log/versitygw/admin.log"} +: ${versitygw_access_key:=""} +: ${versitygw_secret_key:=""} +: ${versitygw_directory:=""} +: ${versitygw_listen:="localhost:7070"} +: ${versitygw_options:=""} +: ${versitygw_readonly:="yes"} + +if checkyesno versitygw_readonly; then + versitygw_is_readonly="--readonly" +else + versitygw_is_readonly="" +fi + +pidfile=/var/run/versitygw.pid +procname="%%PREFIX%%/bin/versitygw" +command="/usr/sbin/daemon" +command_args="-f -p ${pidfile} \ + /usr/bin/env ${versitygw_env} ${procname} \ + --access ${versitygw_access_key} \ + --secret ${versitygw_secret_key} \ + --access-log ${versitygw_access_log} \ + --admin-access-log ${versitygw_admin_log} \ + ${versitygw_is_readonly} \ + --port ${versitygw_listen} \ + posix ${versitygw_directory}" + +monitor_cmd=versitygw_monitor +start_precmd=versitygw_startprecmd +required_dirs="$versitygw_directory" + +versitygw_monitor() +{ + sig_reload=USR1 + run_rc_command "reload" +} + +versitygw_startprecmd() +{ + if [ ! -e ${versitygw_access_log} ]; then + install -m 0640 -o ${versitygw_user} -g ${versitygw_group} /dev/null ${versitygw_access_log}; + fi + + if [ ! -e ${versitygw_admin_log} ]; then + install -m 0640 -o ${versitygw_user} -g ${versitygw_group} /dev/null ${versitygw_admin_log}; + fi + + if [ ! -e ${pidfile} ]; then + install -o ${versitygw_user} -g ${versitygw_group} /dev/null ${pidfile}; + fi + + if [ ! -d ${versitygw_dir} ]; then + install -d -o ${versitygw_user} -g ${versitygw_group} ${versitygw_dir} + fi +} + +run_rc_command "$1" diff --git a/filesystems/versitygw/pkg-descr b/filesystems/versitygw/pkg-descr new file mode 100644 index 000000000000..e69115780903 --- /dev/null +++ b/filesystems/versitygw/pkg-descr @@ -0,0 +1,7 @@ +Versity S3 Gateway is a simple to use tool for seamless inline translation +between AWS S3 object commands and storage systems. It supports: + +- Serving your local filesystem into an S3 server with a single command +- Proxying local S3 requests to S3 storage with caching + +See https://github.com/versity/versitygw/wiki/Quickstart for usage. diff --git a/filesystems/versitygw/pkg-message b/filesystems/versitygw/pkg-message new file mode 100644 index 000000000000..2ae165d97189 --- /dev/null +++ b/filesystems/versitygw/pkg-message @@ -0,0 +1,20 @@ +[ +{ type: install + message: <