New port: sysutils/ltfs: LTFS for stand alone tape drive

Add a new port for the FUSE based LTFS reference implementation

Reviewed by:	ken
Approved by:	timur (mentor)
Sponsored by:	BBOX.io
Differential Revision:	https://reviews.freebsd.org/D18841
This commit is contained in:
Kevin Bowling
2019-01-19 02:15:19 +00:00
parent 58b2122064
commit a5ba51a47e
6 changed files with 107 additions and 0 deletions

35
sysutils/ltfs/Makefile Normal file
View File

@@ -0,0 +1,35 @@
# Created by: Kevin Bowling <kbowling@FreeBSD.org>
# $FreeBSD$
PORTNAME= ltfs
DISTVERSIONPREFIX= v
DISTVERSION= 2.4.1.0
DISTVERSIONSUFFIX= -10219
CATEGORIES= sysutils
MAINTAINER= kbowling@FreeBSD.org
COMMENT= Reference implementation of LTFS for stand alone tape drive
LICENSE= BSD3CLAUSE
LICENSE_FILE = ${WRKSRC}/LICENSE
LIB_DEPENDS= libicudata.so:devel/icu \
libnetsnmp.so:net-mgmt/net-snmp \
libpkg.so:ports-mgmt/pkg \
libuuid.so:misc/e2fsprogs-libuuid
USES= autoreconf fuse gnome libtool:build pkgconfig ssl
CONFIGURE_ARGS+= --enable-icu-6x
GH_ACCOUNT= LinearTapeFileSystem
GNU_CONFIGURE= yes
INSTALL_TARGET= install-strip
USE_GITHUB= yes
USE_GNOME= libxml2
USE_LDCONFIG= yes
post-install:
@${RM} ${STAGEDIR}${DATADIR}/ltfs
@${RMDIR} ${STAGEDIR}${DATADIR}
.include <bsd.port.mk>

3
sysutils/ltfs/distinfo Normal file
View File

@@ -0,0 +1,3 @@
TIMESTAMP = 1547089187
SHA256 (LinearTapeFileSystem-ltfs-v2.4.1.0-10219_GH0.tar.gz) = c157ce5c62158a03778077e1ebffae3d6489cc5d984e04b402a45037e0030785
SIZE (LinearTapeFileSystem-ltfs-v2.4.1.0-10219_GH0.tar.gz) = 560077

View File

@@ -0,0 +1,12 @@
--- src/tape_drivers/freebsd/cam/Makefile.am.orig 2019-01-10 03:47:31 UTC
+++ src/tape_drivers/freebsd/cam/Makefile.am
@@ -56,6 +56,6 @@ libtape_cam_la-ibm_tape.lo: ../../ibm_tape.c
$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtape_cam_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CRC_OPTIMIZE) -MT libtape_cam_la-ibm_tape.lo -MD -MP -c -o libtape_cam_la-ibm_tape.lo ../../ibm_tape.c
install-exec-hook:
- mkdir -p $(libdir)/ltfs
- for f in $(lib_LTLIBRARIES); do rm -f $(libdir)/$$f; done
- for f in $(BASENAMES); do mv $(libdir)/$$f* $(libdir)/ltfs; done
+ mkdir -p $(DESTDIR)$(libdir)/ltfs
+ for f in $(lib_LTLIBRARIES); do rm -f $(DESTDIR)$(libdir)/$$f; done
+ for f in $(BASENAMES); do mv $(DESTDIR)$(libdir)/$$f* $(DESTDIR)$(libdir)/ltfs; done

5
sysutils/ltfs/pkg-descr Normal file
View File

@@ -0,0 +1,5 @@
Linear Tape File System (LTFS) is a filesystem to mount a LTFS formatted tape
in a tape drive. Once LTFS mounts a LTFS formatted tape as filesystem, users
can access to the tape via filesystem API.
WWW: https://github.com/LinearTapeFileSystem/ltfs

View File

@@ -0,0 +1,9 @@
This only works with IBM-branded LTO-5 or newer tape drives, although there is
a file backend for simulation purposes.
You will only be able to read and write tapes with a blocksize <= MAXPHYS,
which is 128KB by default. Put the following in your kernel config file and
recompile/reinstall to allow reading and writing tapes up to the maximum LTFS
blocksize of 1MB:
options MAXPHYS=(1024*1056)

43
sysutils/ltfs/pkg-plist Normal file
View File

@@ -0,0 +1,43 @@
bin/ltfs
bin/ltfsck
bin/mkltfs
etc/ltfs.conf
etc/ltfs.conf.local
include/ltfs/config.h
include/ltfs/libltfs/arch/arch_info.h
include/ltfs/libltfs/arch/signal_internal.h
include/ltfs/libltfs/arch/time_internal.h
include/ltfs/libltfs/dcache_ops.h
include/ltfs/libltfs/iosched_ops.h
include/ltfs/libltfs/kmi_ops.h
include/ltfs/libltfs/ltfs.h
include/ltfs/libltfs/ltfs_error.h
include/ltfs/libltfs/ltfs_fsops.h
include/ltfs/libltfs/ltfs_locking.h
include/ltfs/libltfs/ltfs_thread.h
include/ltfs/libltfs/ltfs_types.h
include/ltfs/libltfs/ltfslogging.h
include/ltfs/libltfs/ltfstrace.h
include/ltfs/libltfs/plugin.h
include/ltfs/libltfs/queue.h
include/ltfs/libltfs/tape.h
include/ltfs/libltfs/tape_ops.h
include/ltfs/libltfs/uthash.h
include/ltfs/libltfs/uthash_ext.h
lib/libltfs.a
lib/libltfs.so
lib/libltfs.so.0
lib/libltfs.so.0.0.0
lib/ltfs/libiosched-fcfs.so
lib/ltfs/libiosched-unified.so
lib/ltfs/libkmi-flatfile.so
lib/ltfs/libkmi-simple.so
lib/ltfs/libtape-cam.so
lib/ltfs/libtape-file.so
lib/ltfs/libtape-itdtimg.so
libdata/pkgconfig/ltfs.pc
man/man8/ltfs-sde.8.gz
man/man8/ltfsck.8.gz
man/man8/mkltfs.8.gz
share/snmp/LTFS-MIB.txt
share/snmp/LtfsSnmpTrapDef.txt