diff options
author | jbeich <jbeich@FreeBSD.org> | 2016-07-19 02:29:59 +0800 |
---|---|---|
committer | jbeich <jbeich@FreeBSD.org> | 2016-07-19 02:29:59 +0800 |
commit | 5e5508afd2454d3e9244b6d037251fccdd6b72f5 (patch) | |
tree | 34440f596ff7bad69811acc2aeccc9253e203a9e /sysutils/exfat-utils | |
parent | 53333ad10a2e4c538fa7c1e50de24b7f6da5a03b (diff) | |
download | freebsd-ports-gnome-5e5508afd2454d3e9244b6d037251fccdd6b72f5.tar.gz freebsd-ports-gnome-5e5508afd2454d3e9244b6d037251fccdd6b72f5.tar.zst freebsd-ports-gnome-5e5508afd2454d3e9244b6d037251fccdd6b72f5.zip |
sysutils/*exfat*: update to 1.2.4
- Chase project move to GitHub
- Chase patent licensing URL [1]
- Restore GPLv2 after r328060 [2]
- Fix build on DragonFly
- Drop unused iconv dependency
PR: 199874, 210823
PR: 210162 [1]
Suggested by: decke, tijl [2] (via bug 193629)
Approved by: maintainer timeout (2 weeks)
MFH: 2016Q3
Diffstat (limited to 'sysutils/exfat-utils')
-rw-r--r-- | sysutils/exfat-utils/Makefile | 42 | ||||
-rw-r--r-- | sysutils/exfat-utils/distinfo | 4 | ||||
-rw-r--r-- | sysutils/exfat-utils/files/patch-SConstruct | 14 | ||||
-rw-r--r-- | sysutils/exfat-utils/files/patch-libexfat_platform.h | 11 | ||||
-rw-r--r-- | sysutils/exfat-utils/files/patch-ublio | 176 | ||||
-rw-r--r-- | sysutils/exfat-utils/pkg-descr | 2 |
6 files changed, 211 insertions, 38 deletions
diff --git a/sysutils/exfat-utils/Makefile b/sysutils/exfat-utils/Makefile index be7a1e40827b..7325744d1632 100644 --- a/sysutils/exfat-utils/Makefile +++ b/sysutils/exfat-utils/Makefile @@ -1,41 +1,41 @@ # Created by: Alex Samorukov <samm@os2.kiev.ua> # $FreeBSD$ -PORTNAME= exfat-utils -PORTVERSION= 1.0.1 +PORTNAME= exfat +DISTVERSIONPREFIX= v +DISTVERSION= 1.2.4 CATEGORIES= sysutils -MASTER_SITES= GOOGLE_CODE +PKGNAMESUFFIX= -utils MAINTAINER= samm@os2.kiev.ua COMMENT= Utilities to create, check, label and dump exFAT filesystem -LICENSE= Microsoft-exFAT -LICENSE_NAME= Microsoft exFAT License -LICENSE_TEXT= Requires license from Microsoft, please see \ - http://www.microsoft.com/en-us/legal/intellectualproperty/IPLicensing/Programs/exFATFileSystem.aspx -LICENSE_PERMS= no-dist-mirror no-dist-sell no-pkg-mirror no-pkg-sell +LICENSE= GPLv2+ MSPAT +LICENSE_COMB= multi +LICENSE_FILE_GPLv2+ = ${WRKSRC}/COPYING +LICENSE_NAME_MSPAT= Microsoft exFAT Patent License +LICENSE_TEXT_MSPAT= It is important to note that open source and other publicly \ + available implementations of exFAT do not include a patent \ + license from Microsoft. A license is required in order to \ + implement exFAT and use it in a product or device. \ + https://www.microsoft.com/en-us/legal/intellectualproperty/mtl/exfat-licensing.aspx +LICENSE_PERMS_MSPAT= no-dist-mirror no-dist-sell no-pkg-mirror no-pkg-sell LIB_DEPENDS= libublio.so:devel/libublio -PROJECTHOST= exfat +USE_GITHUB= yes +GH_ACCOUNT= relan -USES= scons +USES= autoreconf localbase pkgconfig +GNU_CONFIGURE= yes PLIST_FILES= sbin/exfatlabel sbin/dumpexfat sbin/exfatfsck sbin/mkexfatfs \ + sbin/fsck.exfat sbin/mkfs.exfat \ man/man8/exfatlabel.8.gz man/man8/mkexfatfs.8.gz man/man8/exfatfsck.8.gz \ man/man8/dumpexfat.8.gz -do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/label/exfatlabel ${STAGEDIR}${PREFIX}/sbin - ${INSTALL_PROGRAM} ${WRKSRC}/dump/dumpexfat ${STAGEDIR}${PREFIX}/sbin - ${INSTALL_PROGRAM} ${WRKSRC}/fsck/exfatfsck ${STAGEDIR}${PREFIX}/sbin - ${INSTALL_PROGRAM} ${WRKSRC}/mkfs/mkexfatfs ${STAGEDIR}${PREFIX}/sbin - ${INSTALL_MAN} ${WRKSRC}/label/exfatlabel.8 ${STAGEDIR}${MAN8PREFIX}/man/man8 - ${INSTALL_MAN} ${WRKSRC}/mkfs/mkexfatfs.8 ${STAGEDIR}${MAN8PREFIX}/man/man8 - ${INSTALL_MAN} ${WRKSRC}/dump/dumpexfat.8 ${STAGEDIR}${MAN8PREFIX}/man/man8 - ${INSTALL_MAN} ${WRKSRC}/fsck/exfatfsck.8 ${STAGEDIR}${MAN8PREFIX}/man/man8 - post-patch: - @${REINPLACE_CMD} -e 's|/usr/local/|${PREFIX}/|' ${WRKSRC}/SConstruct + @${REINPLACE_CMD} -e '/fuse/d' ${WRKSRC}/configure.ac + @${REINPLACE_CMD} -e 's/ fuse//' ${WRKSRC}/Makefile.am .include <bsd.port.mk> diff --git a/sysutils/exfat-utils/distinfo b/sysutils/exfat-utils/distinfo index 6c24489a0386..430d60cab8c4 100644 --- a/sysutils/exfat-utils/distinfo +++ b/sysutils/exfat-utils/distinfo @@ -1,2 +1,2 @@ -SHA256 (exfat-utils-1.0.1.tar.gz) = eeacedca1878065dc3886674ae39cd51149c37bd7d6d7e9325c971a1d1acdab3 -SIZE (exfat-utils-1.0.1.tar.gz) = 51905 +SHA256 (relan-exfat-v1.2.4_GH0.tar.gz) = e65ca1b47f35421a1663b93c66e48abfd737c3e2f0c7f7154128ce2d30ecd0d8 +SIZE (relan-exfat-v1.2.4_GH0.tar.gz) = 55172 diff --git a/sysutils/exfat-utils/files/patch-SConstruct b/sysutils/exfat-utils/files/patch-SConstruct deleted file mode 100644 index 5287bb27bd57..000000000000 --- a/sysutils/exfat-utils/files/patch-SConstruct +++ /dev/null @@ -1,14 +0,0 @@ ---- SConstruct.orig 2013-02-02 14:14:34 UTC -+++ SConstruct -@@ -22,10 +22,7 @@ import os - import platform - import SCons - --env = Environment(**ARGUMENTS) --for var in ['PATH', 'SYSROOT']: -- if var in os.environ: -- env['ENV'][var] = os.environ[var] -+env = Environment(ENV = os.environ, **ARGUMENTS) - - destdir = env.get('DESTDIR', '/sbin'); - libs = ['exfat'] diff --git a/sysutils/exfat-utils/files/patch-libexfat_platform.h b/sysutils/exfat-utils/files/patch-libexfat_platform.h new file mode 100644 index 000000000000..0d0b85daf7c1 --- /dev/null +++ b/sysutils/exfat-utils/files/patch-libexfat_platform.h @@ -0,0 +1,11 @@ +--- libexfat/platform.h.orig 2016-06-03 05:30:35 UTC ++++ libexfat/platform.h +@@ -46,7 +46,7 @@ + #define EXFAT_LITTLE_ENDIAN LITTLE_ENDIAN + #define EXFAT_BIG_ENDIAN BIG_ENDIAN + +-#elif defined(__FreeBSD__) || defined(__DragonFlyBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) ++#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) + + #include <sys/endian.h> + #define exfat_bswap16(x) bswap16(x) diff --git a/sysutils/exfat-utils/files/patch-ublio b/sysutils/exfat-utils/files/patch-ublio new file mode 100644 index 000000000000..afa1410e16e2 --- /dev/null +++ b/sysutils/exfat-utils/files/patch-ublio @@ -0,0 +1,176 @@ +# Revert 3959f7d to restore ublio support and add autoconf glue. + +diff --git README.md README.md +index 60d5c71..81446a6 100644 +--- README.md ++++ README.md +@@ -7,6 +7,7 @@ Supported operating systems: + + * GNU/Linux + * Mac OS X 10.5 or later ++* FreeBSD + * OpenBSD + + Most GNU/Linux distributions already have fuse-exfat and exfat-utils in their repositories, so you can just install and use them. The next chapter describes how to compile them from source. +diff --git configure.ac configure.ac +index b45db3f..2bcda4b 100644 +--- configure.ac ++++ configure.ac +@@ -31,6 +31,12 @@ AC_PROG_CC_C99 + AC_PROG_RANLIB + AM_PROG_AR + AC_SYS_LARGEFILE ++PKG_CHECK_MODULES([UBLIO], [libublio], [ ++ CFLAGS="$CFLAGS $UBLIO_CFLAGS" ++ LIBS="$LIBS $UBLIO_LIBS" ++ AC_DEFINE([USE_UBLIO], [1], ++ [Define if block devices are not supported.]) ++], [:]) + PKG_CHECK_MODULES([FUSE], [fuse]) + AC_CONFIG_HEADERS([libexfat/config.h]) + AC_CONFIG_FILES([ +diff --git libexfat/io.c libexfat/io.c +index 60f28e2..14c0151 100644 +--- libexfat/io.c ++++ libexfat/io.c +@@ -37,12 +37,20 @@ + #include <sys/ioctl.h> + #endif + #include <sys/mount.h> ++#ifdef USE_UBLIO ++#include <sys/uio.h> ++#include <ublio.h> ++#endif + + struct exfat_dev + { + int fd; + enum exfat_mode mode; + off_t size; /* in bytes */ ++#ifdef USE_UBLIO ++ off_t pos; ++ ublio_filehandle_t ufh; ++#endif + }; + + static int open_ro(const char* spec) +@@ -74,6 +82,9 @@ struct exfat_dev* exfat_open(const char* spec, enum exfat_mode mode) + { + struct exfat_dev* dev; + struct stat stbuf; ++#ifdef USE_UBLIO ++ struct ublio_param up; ++#endif + + dev = malloc(sizeof(struct exfat_dev)); + if (dev == NULL) +@@ -211,6 +222,24 @@ struct exfat_dev* exfat_open(const char* spec, enum exfat_mode mode) + } + } + ++#ifdef USE_UBLIO ++ memset(&up, 0, sizeof(struct ublio_param)); ++ up.up_blocksize = 256 * 1024; ++ up.up_items = 64; ++ up.up_grace = 32; ++ up.up_priv = &dev->fd; ++ ++ dev->pos = 0; ++ dev->ufh = ublio_open(&up); ++ if (dev->ufh == NULL) ++ { ++ close(dev->fd); ++ free(dev); ++ exfat_error("failed to initialize ublio"); ++ return NULL; ++ } ++#endif ++ + return dev; + } + +@@ -218,6 +247,13 @@ int exfat_close(struct exfat_dev* dev) + { + int rc = 0; + ++#ifdef USE_UBLIO ++ if (ublio_close(dev->ufh) != 0) ++ { ++ exfat_error("failed to close ublio"); ++ rc = -EIO; ++ } ++#endif + if (close(dev->fd) != 0) + { + exfat_error("failed to close device: %s", strerror(errno)); +@@ -231,6 +267,13 @@ int exfat_fsync(struct exfat_dev* dev) + { + int rc = 0; + ++#ifdef USE_UBLIO ++ if (ublio_fsync(dev->ufh) != 0) ++ { ++ exfat_error("ublio fsync failed"); ++ rc = -EIO; ++ } ++#endif + if (fsync(dev->fd) != 0) + { + exfat_error("fsync failed: %s", strerror(errno)); +@@ -251,29 +294,56 @@ off_t exfat_get_size(const struct exfat_dev* dev) + + off_t exfat_seek(struct exfat_dev* dev, off_t offset, int whence) + { ++#ifdef USE_UBLIO ++ /* XXX SEEK_CUR will be handled incorrectly */ ++ return dev->pos = lseek(dev->fd, offset, whence); ++#else + return lseek(dev->fd, offset, whence); ++#endif + } + + ssize_t exfat_read(struct exfat_dev* dev, void* buffer, size_t size) + { ++#ifdef USE_UBLIO ++ ssize_t result = ublio_pread(dev->ufh, buffer, size, dev->pos); ++ if (result >= 0) ++ dev->pos += size; ++ return result; ++#else + return read(dev->fd, buffer, size); ++#endif + } + + ssize_t exfat_write(struct exfat_dev* dev, const void* buffer, size_t size) + { ++#ifdef USE_UBLIO ++ ssize_t result = ublio_pwrite(dev->ufh, buffer, size, dev->pos); ++ if (result >= 0) ++ dev->pos += size; ++ return result; ++#else + return write(dev->fd, buffer, size); ++#endif + } + + ssize_t exfat_pread(struct exfat_dev* dev, void* buffer, size_t size, + off_t offset) + { ++#ifdef USE_UBLIO ++ return ublio_pread(dev->ufh, buffer, size, offset); ++#else + return pread(dev->fd, buffer, size, offset); ++#endif + } + + ssize_t exfat_pwrite(struct exfat_dev* dev, const void* buffer, size_t size, + off_t offset) + { ++#ifdef USE_UBLIO ++ return ublio_pwrite(dev->ufh, buffer, size, offset); ++#else + return pwrite(dev->fd, buffer, size, offset); ++#endif + } + + ssize_t exfat_generic_pread(const struct exfat* ef, struct exfat_node* node, diff --git a/sysutils/exfat-utils/pkg-descr b/sysutils/exfat-utils/pkg-descr index 470e4661f434..fcc7119ae26c 100644 --- a/sysutils/exfat-utils/pkg-descr +++ b/sysutils/exfat-utils/pkg-descr @@ -4,4 +4,4 @@ It contains dumpexfat to dump properties of the filesystem, exfatfsck to report errors found on a exFAT filesystem, exfatlabel to label a exFAT filesystem and mkexfatfs to create a exFAT filesystem. -WWW: http://code.google.com/p/exfat/ +WWW: https://github.com/relan/exfat |